summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam R. Otte <wotte@dre.vanderbilt.edu>2009-11-10 20:33:31 +0000
committerWilliam R. Otte <wotte@dre.vanderbilt.edu>2009-11-10 20:33:31 +0000
commitf1790ce045fad390af2c69b2c25f714705c90b66 (patch)
tree45261f5f605e6cf33789427f838cc87599dbc485
parent0e7e7420693d452ba049b31217a915c2c52da1fe (diff)
downloadATCD-test_branch_one.tar.gz
branching/taggingtest_branch_one
-rw-r--r--modules/CIAO/CIAO-INSTALL.html175
-rw-r--r--modules/CIAO/CIAO.mwc5
-rw-r--r--modules/CIAO/CIAO_DAnCE.mwc9
-rw-r--r--modules/CIAO/CIAO_TAO.mwc34
-rw-r--r--modules/CIAO/CIAO_TAO_DAnCE.mwc30
-rw-r--r--modules/CIAO/COPYING110
-rw-r--r--modules/CIAO/ChangeLog1594
-rw-r--r--modules/CIAO/ChangeLogs/ChangeLog-04a5390
-rw-r--r--modules/CIAO/ChangeLogs/ChangeLog-04b2250
-rw-r--r--modules/CIAO/ChangeLogs/ChangeLog-06a8579
-rw-r--r--modules/CIAO/ChangeLogs/ChangeLog-06b2752
-rw-r--r--modules/CIAO/ChangeLogs/ChangeLog-07a1122
-rw-r--r--modules/CIAO/ChangeLogs/ChangeLog-07b2845
-rw-r--r--modules/CIAO/ChangeLogs/ChangeLog-09a15360
-rw-r--r--modules/CIAO/ChangeLogs/ChangeLog-pre_release6202
-rw-r--r--modules/CIAO/DAnCE/Deployment/CIAO_ExecutionManagerDaemon.idl25
-rw-r--r--modules/CIAO/DAnCE/Deployment/CIAO_Interfaces.mpc85
-rw-r--r--modules/CIAO/DAnCE/Deployment/CIAO_NodeManagerDaemon.idl34
-rw-r--r--modules/CIAO/DAnCE/Deployment/DAnCE_Core.mpc454
-rw-r--r--modules/CIAO/DAnCE/Deployment/DAnCE_Loader.h26
-rw-r--r--modules/CIAO/DAnCE/Deployment/DAnCE_Properties.idl43
-rw-r--r--modules/CIAO/DAnCE/Deployment/Deployment.idl34
-rw-r--r--modules/CIAO/DAnCE/Deployment/Deployment_Application.idl28
-rw-r--r--modules/CIAO/DAnCE/Deployment/Deployment_ApplicationManager.idl35
-rw-r--r--modules/CIAO/DAnCE/Deployment/Deployment_Base.idl42
-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.idl211
-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.idl199
-rw-r--r--modules/CIAO/DAnCE/Deployment/Deployment_PlanError.idl13
-rw-r--r--modules/CIAO/DAnCE/Deployment/Deployment_RepositoryManager.idl47
-rw-r--r--modules/CIAO/DAnCE/Deployment/Deployment_ResourceCommitmentManager.idl36
-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.idl69
-rw-r--r--modules/CIAO/DAnCE/Deployment/Deployment_TargetManager.idl34
-rw-r--r--modules/CIAO/DAnCE/Deployment/Deployment_common.h63
-rw-r--r--modules/CIAO/DAnCE/Deployment/Deployment_stub_export.h58
-rw-r--r--modules/CIAO/DAnCE/Deployment/Deployment_svnt_export.h58
-rw-r--r--modules/CIAO/DAnCE/Deployment/Module_Main.h92
-rw-r--r--modules/CIAO/DAnCE/DomainApplication/DomainApplication.mpc14
-rw-r--r--modules/CIAO/DAnCE/DomainApplication/Domain_Application_Export.h58
-rw-r--r--modules/CIAO/DAnCE/DomainApplication/Domain_Application_Impl.cpp121
-rw-r--r--modules/CIAO/DAnCE/DomainApplication/Domain_Application_Impl.h81
-rw-r--r--modules/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager.mpc19
-rw-r--r--modules/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Export.h58
-rw-r--r--modules/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp520
-rw-r--r--modules/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h72
-rw-r--r--modules/CIAO/DAnCE/DomainApplicationManager/Node_Locator.cpp172
-rw-r--r--modules/CIAO/DAnCE/DomainApplicationManager/Node_Locator.h55
-rw-r--r--modules/CIAO/DAnCE/ExecutionManager/DAnCE_ExecutionManager_Module_Export.h58
-rw-r--r--modules/CIAO/DAnCE/ExecutionManager/ExecutionManager.mpc23
-rw-r--r--modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Export.h57
-rw-r--r--modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Impl.cpp159
-rw-r--r--modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Impl.h71
-rw-r--r--modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Module.cpp379
-rw-r--r--modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Module.h102
-rw-r--r--modules/CIAO/DAnCE/ExecutionManager/Execution_Manager_Exec.cpp7
-rw-r--r--modules/CIAO/DAnCE/Logger/DAnCELoggerFactory.h19
-rw-r--r--modules/CIAO/DAnCE/Logger/DAnCE_Logger_Export.h58
-rw-r--r--modules/CIAO/DAnCE/Logger/File_Logger_Backend.cpp46
-rw-r--r--modules/CIAO/DAnCE/Logger/File_Logger_Backend.h50
-rw-r--r--modules/CIAO/DAnCE/Logger/Log_Macros.h90
-rw-r--r--modules/CIAO/DAnCE/Logger/Logger.mpc18
-rw-r--r--modules/CIAO/DAnCE/Logger/Logger_Service.cpp159
-rw-r--r--modules/CIAO/DAnCE/Logger/Logger_Service.h29
-rw-r--r--modules/CIAO/DAnCE/MPC/config/ciao_executionmanager_skel.mpb8
-rw-r--r--modules/CIAO/DAnCE/MPC/config/ciao_executionmanager_stub.mpb8
-rw-r--r--modules/CIAO/DAnCE/MPC/config/ciao_nodeapplication.mpb7
-rw-r--r--modules/CIAO/DAnCE/MPC/config/ciao_nodeapplicationmanager.mpb8
-rw-r--r--modules/CIAO/DAnCE/MPC/config/ciao_nodemanager_skel.mpb7
-rw-r--r--modules/CIAO/DAnCE/MPC/config/ciao_nodemanager_stub.mpb8
-rw-r--r--modules/CIAO/DAnCE/MPC/config/ciao_plan_generator.mpb8
-rw-r--r--modules/CIAO/DAnCE/MPC/config/ciao_targetmanager_stub.mpb8
-rw-r--r--modules/CIAO/DAnCE/MPC/config/ciao_targetmanager_svnt.mpb7
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance.mpb7
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_cdmw_idl.mpb7
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_component_server.mpb5
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_component_server_svnt.mpb7
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_deployment_stub.mpb10
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_deployment_svnt.mpb8
-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_extension_stub.mpb5
-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_mocks.mpb9
-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.mpb8
-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_nodemanager_svnt.mpb8
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_plan_generator.mpb7
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_plan_launcher_base.mpb6
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_redirectionservice.mpb7
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_repositorymanager.mpb8
-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_targetmanager.mpb7
-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_tm_daemon.mpb7
-rw-r--r--modules/CIAO/DAnCE/MPC/config/dance_utils.mpb7
-rw-r--r--modules/CIAO/DAnCE/NodeApplication/ComponentAttributesSetter.cpp88
-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.h42
-rw-r--r--modules/CIAO/DAnCE/NodeApplication/NodeApplication.mpc28
-rw-r--r--modules/CIAO/DAnCE/NodeApplication/NodeApplication_Export.h58
-rw-r--r--modules/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.cpp2191
-rw-r--r--modules/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.h219
-rw-r--r--modules/CIAO/DAnCE/NodeApplication/ServerActivator_Impl.cpp249
-rw-r--r--modules/CIAO/DAnCE/NodeApplication/ServerActivator_Impl.h93
-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.cpp207
-rw-r--r--modules/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h60
-rw-r--r--modules/CIAO/DAnCE/NodeManager/DAnCE_NodeManager_Module_Export.h58
-rw-r--r--modules/CIAO/DAnCE/NodeManager/NodeManager.mpc22
-rw-r--r--modules/CIAO/DAnCE/NodeManager/NodeManager_Export.h58
-rw-r--r--modules/CIAO/DAnCE/NodeManager/NodeManager_Impl.cpp180
-rw-r--r--modules/CIAO/DAnCE/NodeManager/NodeManager_Impl.h69
-rw-r--r--modules/CIAO/DAnCE/NodeManager/Node_Manager_Exec.cpp6
-rw-r--r--modules/CIAO/DAnCE/NodeManager/Node_Manager_Module.cpp649
-rw-r--r--modules/CIAO/DAnCE/NodeManager/Node_Manager_Module.h133
-rw-r--r--modules/CIAO/DAnCE/NodeManager/README13
-rw-r--r--modules/CIAO/DAnCE/Plan_Generator/PCVisitor.cpp271
-rw-r--r--modules/CIAO/DAnCE/Plan_Generator/PCVisitor.h128
-rw-r--r--modules/CIAO/DAnCE/Plan_Generator/PCVisitorBase.cpp28
-rw-r--r--modules/CIAO/DAnCE/Plan_Generator/PCVisitorBase.h171
-rw-r--r--modules/CIAO/DAnCE/Plan_Generator/PCVisitorBase.inl155
-rw-r--r--modules/CIAO/DAnCE/Plan_Generator/Plan_Generator.mpc20
-rw-r--r--modules/CIAO/DAnCE/Plan_Generator/Plan_Generator_Impl.cpp151
-rw-r--r--modules/CIAO/DAnCE/Plan_Generator/Plan_Generator_Impl.h78
-rw-r--r--modules/CIAO/DAnCE/Plan_Generator/Plan_Generator_Impl_Export.h58
-rw-r--r--modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher.cpp40
-rw-r--r--modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher.h26
-rw-r--r--modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher.mpc47
-rw-r--r--modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp820
-rw-r--r--modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.h117
-rw-r--r--modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl_Export.h58
-rw-r--r--modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Module.cpp47
-rw-r--r--modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Module.h58
-rw-r--r--modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Module_Export.h58
-rw-r--r--modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Exec.cpp8
-rw-r--r--modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp117
-rw-r--r--modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Impl.h43
-rw-r--r--modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Impl_Export.h58
-rw-r--r--modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Module.cpp56
-rw-r--r--modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Module.h56
-rw-r--r--modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Module_Export.h58
-rw-r--r--modules/CIAO/DAnCE/Plan_Launcher/launcher.cpp11
-rw-r--r--modules/CIAO/DAnCE/RedirectionService/CCMObjectLocator.cpp390
-rw-r--r--modules/CIAO/DAnCE/RedirectionService/CCMObjectLocator.h105
-rw-r--r--modules/CIAO/DAnCE/RedirectionService/NameServiceRedirection.cpp271
-rw-r--r--modules/CIAO/DAnCE/RedirectionService/NameServiceRedirection.h57
-rw-r--r--modules/CIAO/DAnCE/RedirectionService/RedirectionService.cpp162
-rw-r--r--modules/CIAO/DAnCE/RedirectionService/RedirectionService.h75
-rw-r--r--modules/CIAO/DAnCE/RedirectionService/RedirectionService.mpc14
-rw-r--r--modules/CIAO/DAnCE/RedirectionService/RedirectionService_Export.h58
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/DAnCE_RepositoryManager_Module_Export.h58
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/PC_Updater.cpp256
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/PC_Updater.h114
-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.cpp265
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/RM_Helper.h81
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/RepositoryManager.cpp281
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/RepositoryManager.mpc68
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/RepositoryManagerDaemon.idl13
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.cpp1256
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.h235
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/Repository_Manager_Admin_Export.h58
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/Repository_Manager_Exec.cpp6
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/Repository_Manager_Module.cpp520
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/Repository_Manager_Module.h128
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/URL_Parser.cpp101
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/URL_Parser.h64
-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.h68
-rw-r--r--modules/CIAO/DAnCE/RepositoryManager/repository_manager_admin_exec.cpp466
-rw-r--r--modules/CIAO/DAnCE/Starter/Starter.cpp924
-rw-r--r--modules/CIAO/DAnCE/Starter/Starter.h73
-rw-r--r--modules/CIAO/DAnCE/Starter/Starter.mpc10
-rw-r--r--modules/CIAO/DAnCE/StaticConfigurator/README29
-rw-r--r--modules/CIAO/DAnCE/StaticConfigurator/StaticDAnCEApp.cpp.tmpl103
-rw-r--r--modules/CIAO/DAnCE/StaticConfigurator/StaticDAnCEApp.mpc.tmpl20
-rw-r--r--modules/CIAO/DAnCE/StaticConfigurator/StaticDAnCEParser.cpp157
-rw-r--r--modules/CIAO/DAnCE/StaticConfigurator/StaticDAnCEParser.mpc17
-rw-r--r--modules/CIAO/DAnCE/TargetManager/CmpClient.cpp305
-rw-r--r--modules/CIAO/DAnCE/TargetManager/DAnCE_TargetManagerDaemon.idl12
-rw-r--r--modules/CIAO/DAnCE/TargetManager/DomainDataManager.cpp688
-rw-r--r--modules/CIAO/DAnCE/TargetManager/DomainDataManager.h258
-rw-r--r--modules/CIAO/DAnCE/TargetManager/DomainEvents.idl25
-rw-r--r--modules/CIAO/DAnCE/TargetManager/ResourceCommitmentManager.cpp61
-rw-r--r--modules/CIAO/DAnCE/TargetManager/ResourceCommitmentManager.h64
-rw-r--r--modules/CIAO/DAnCE/TargetManager/TM_Client.mpc22
-rw-r--r--modules/CIAO/DAnCE/TargetManager/TargetManager.idl32
-rw-r--r--modules/CIAO/DAnCE/TargetManager/TargetManager.mpc71
-rw-r--r--modules/CIAO/DAnCE/TargetManager/TargetManagerExt.idl84
-rw-r--r--modules/CIAO/DAnCE/TargetManager/TargetManager_Impl.cpp64
-rw-r--r--modules/CIAO/DAnCE/TargetManager/TargetManager_Impl.h61
-rw-r--r--modules/CIAO/DAnCE/TargetManager/TargetManager_Impl_export.h58
-rw-r--r--modules/CIAO/DAnCE/TargetManager/TargetManager_exec.cpp251
-rw-r--r--modules/CIAO/DAnCE/TargetManager/TargetManager_exec.h140
-rw-r--r--modules/CIAO/DAnCE/TargetManager/Target_Manager_Exec.cpp6
-rw-r--r--modules/CIAO/DAnCE/TargetManager/Target_Manager_Module.cpp338
-rw-r--r--modules/CIAO/DAnCE/TargetManager/Target_Manager_Module.h105
-rw-r--r--modules/CIAO/DAnCE/TargetManager/Target_Manager_Module_export.h58
-rw-r--r--modules/CIAO/DAnCE/Utils/DAnCE_Utils.mpc16
-rw-r--r--modules/CIAO/DAnCE/Utils/DAnCE_Utils_Export.h58
-rw-r--r--modules/CIAO/DAnCE/Utils/Plan_Handler.cpp349
-rw-r--r--modules/CIAO/DAnCE/Utils/Plan_Handler.h75
-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__.py46
-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.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
-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/lib/.empty1
-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/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.h141
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleCommon.idl21
-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.cpp138
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer_exec.h102
-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.h98
-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.h98
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider.idl22
-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.h116
-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.h98
-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.h101
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider.idl22
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider.mpc111
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider_exec.cpp160
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider_exec.h116
-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.cpp130
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher_exec.h98
-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.h98
-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.cdp286
-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/SimplexConnectionExplicitHome.cdp262
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS.cdp279
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NilFacet.cdp262
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/em_launcher.mpc6
-rwxr-xr-xmodules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test.pl174
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/simple_em_launcher.cpp130
-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
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/nm_launcher.mpc6
-rwxr-xr-xmodules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/run_test.pl117
-rw-r--r--modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/simple_nm_launcher.cpp127
-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.cpp36
-rw-r--r--modules/CIAO/DAnCE/tests/DeploymentPlanTestReferences/DeploymentPlanTestReferences.mpc9
-rw-r--r--modules/CIAO/DAnCE/tests/DeploymentPlanTestReferences/test.cpp52
-rw-r--r--modules/CIAO/DAnCE/tests/DeploymentTest1/DeploymentTest1.mpc9
-rw-r--r--modules/CIAO/DAnCE/tests/DeploymentTest1/test.cpp67
-rw-r--r--modules/CIAO/DAnCE/tests/MocksTest/MockObjectHome.cpp19
-rw-r--r--modules/CIAO/DAnCE/tests/MocksTest/MockObjectHome.h24
-rw-r--r--modules/CIAO/DAnCE/tests/MocksTest/MockTest.cdp196
-rw-r--r--modules/CIAO/DAnCE/tests/MocksTest/MockTest.mpc28
-rw-r--r--modules/CIAO/DAnCE/tests/MocksTest/MocksTest.cpp37
-rw-r--r--modules/CIAO/DAnCE/tests/MocksTest/MocksTest_Export.h58
-rw-r--r--modules/CIAO/DAnCE/tests/MocksTest/plCommand.In5
-rwxr-xr-xmodules/CIAO/DAnCE/tests/MocksTest/run_test.pl97
-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/ObjectLocatorTest/Dummy.idl13
-rw-r--r--modules/CIAO/DAnCE/tests/ObjectLocatorTest/DummyImpl.cpp13
-rw-r--r--modules/CIAO/DAnCE/tests/ObjectLocatorTest/DummyImpl.h22
-rw-r--r--modules/CIAO/DAnCE/tests/ObjectLocatorTest/ObjectLocatorTest.mpc35
-rw-r--r--modules/CIAO/DAnCE/tests/ObjectLocatorTest/RegistrationPath.h9
-rw-r--r--modules/CIAO/DAnCE/tests/ObjectLocatorTest/clt_main.cpp56
-rw-r--r--modules/CIAO/DAnCE/tests/ObjectLocatorTest/srv_main.cpp55
-rw-r--r--modules/CIAO/DAnCE/tests/RedirectionServiceTest/Dummy.idl13
-rw-r--r--modules/CIAO/DAnCE/tests/RedirectionServiceTest/DummyImpl.cpp14
-rw-r--r--modules/CIAO/DAnCE/tests/RedirectionServiceTest/DummyImpl.h24
-rw-r--r--modules/CIAO/DAnCE/tests/RedirectionServiceTest/RedirectionServiceTest.mpc25
-rw-r--r--modules/CIAO/DAnCE/tests/RedirectionServiceTest/RegistrationPath.h11
-rw-r--r--modules/CIAO/DAnCE/tests/RedirectionServiceTest/clt_main.cpp110
-rw-r--r--modules/CIAO/DAnCE/tests/RedirectionServiceTest/srv_main.cpp75
-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/MPC/config/ccm.mpb6
-rw-r--r--modules/CIAO/MPC/config/ccm_componentserver_stub.mpb8
-rw-r--r--modules/CIAO/MPC/config/ccm_componentserver_svnt.mpb7
-rw-r--r--modules/CIAO/MPC/config/ccm_configvalue.mpb7
-rw-r--r--modules/CIAO/MPC/config/ccm_cookie.mpb7
-rw-r--r--modules/CIAO/MPC/config/ccm_executor.mpb5
-rw-r--r--modules/CIAO/MPC/config/ccm_stub.mpb8
-rw-r--r--modules/CIAO/MPC/config/ccm_svnt.mpb7
-rw-r--r--modules/CIAO/MPC/config/ciao.mpb7
-rw-r--r--modules/CIAO/MPC/config/ciao_client.mpb7
-rw-r--r--modules/CIAO/MPC/config/ciao_componentserver_stub.mpb7
-rw-r--r--modules/CIAO/MPC/config/ciao_componentserver_svnt.mpb7
-rw-r--r--modules/CIAO/MPC/config/ciao_config_handlers.mpb21
-rw-r--r--modules/CIAO/MPC/config/ciao_config_handlers_base.mpb13
-rw-r--r--modules/CIAO/MPC/config/ciao_connector_base.mpb6
-rw-r--r--modules/CIAO/MPC/config/ciao_container_base.mpb7
-rw-r--r--modules/CIAO/MPC/config/ciao_context_impl.mpb7
-rw-r--r--modules/CIAO/MPC/config/ciao_cs_client.mpb7
-rw-r--r--modules/CIAO/MPC/config/ciao_dds4ccm_ndds_impl.mpb7
-rw-r--r--modules/CIAO/MPC/config/ciao_example_output.mpb6
-rw-r--r--modules/CIAO/MPC/config/ciao_exe.mpb6
-rw-r--r--modules/CIAO/MPC/config/ciao_executor.mpb5
-rw-r--r--modules/CIAO/MPC/config/ciao_lib.mpb6
-rw-r--r--modules/CIAO/MPC/config/ciao_logger.mpb7
-rw-r--r--modules/CIAO/MPC/config/ciao_output.mpb7
-rw-r--r--modules/CIAO/MPC/config/ciao_port_activator_stub.mpb7
-rw-r--r--modules/CIAO/MPC/config/ciao_servant.mpb5
-rw-r--r--modules/CIAO/MPC/config/ciao_servant_activator.mpb7
-rw-r--r--modules/CIAO/MPC/config/ciao_server.mpb8
-rw-r--r--modules/CIAO/MPC/config/ciao_session_container.mpb8
-rw-r--r--modules/CIAO/MPC/config/ciao_vcwarnings.mpb20
-rw-r--r--modules/CIAO/MPC/config/ciao_xml_utils.mpb8
-rw-r--r--modules/CIAO/MPC/config/ciaoexe.mpb4
-rw-r--r--modules/CIAO/MPC/config/ciaoidldefaults.mpb6
-rw-r--r--modules/CIAO/MPC/config/ciaolib_with_idl.mpb5
-rw-r--r--modules/CIAO/MPC/config/componentidldefaults.mpb21
-rw-r--r--modules/CIAO/MPC/config/connectoridldefaults.mpb6
-rw-r--r--modules/CIAO/MPC/config/dds4ccm_base.mpb7
-rw-r--r--modules/CIAO/MPC/config/dds4ccm_skel.mpb7
-rw-r--r--modules/CIAO/MPC/config/taoidl3toidl2defaults.mpb23
-rw-r--r--modules/CIAO/MPC/config/xscdefaults.mpb21
-rw-r--r--modules/CIAO/NEWS1048
-rw-r--r--modules/CIAO/PROBLEM-REPORT-FORM97
-rw-r--r--modules/CIAO/README152
-rw-r--r--modules/CIAO/Release53
-rw-r--r--modules/CIAO/VERSION11
-rw-r--r--modules/CIAO/bin/PerlCIAO/TestUtils.base3
-rw-r--r--modules/CIAO/bin/PerlCIAO/TestUtils.pm323
-rw-r--r--modules/CIAO/bin/PerlCIAO/TestUtils_Base.pm78
-rwxr-xr-xmodules/CIAO/bin/PerlCIAO/generate_container.pl126
-rw-r--r--modules/CIAO/bin/PerlCIAO/perlciao.mpc10
-rw-r--r--modules/CIAO/bin/ciao_tests.lst36
-rwxr-xr-xmodules/CIAO/bin/generate_component_mpc.pl306
-rwxr-xr-xmodules/CIAO/bin/update_package.py118
-rwxr-xr-xmodules/CIAO/bin/valgrind_nodedaemon.py87
-rw-r--r--modules/CIAO/ccm/CCM.mpc182
-rw-r--r--modules/CIAO/ccm/CCM_Base.idl14
-rw-r--r--modules/CIAO/ccm/CCM_CCM2Context.idl34
-rw-r--r--modules/CIAO/ccm/CCM_CCMException.idl29
-rw-r--r--modules/CIAO/ccm/CCM_Component.idl11
-rw-r--r--modules/CIAO/ccm/CCM_ComponentId.idl34
-rw-r--r--modules/CIAO/ccm/CCM_Configurator.idl21
-rw-r--r--modules/CIAO/ccm/CCM_Container.idl12
-rw-r--r--modules/CIAO/ccm/CCM_Container_Ex.idl10
-rw-r--r--modules/CIAO/ccm/CCM_Context.idl45
-rw-r--r--modules/CIAO/ccm/CCM_Cookie.idl18
-rw-r--r--modules/CIAO/ccm/CCM_EnterpriseComponent.idl12
-rw-r--r--modules/CIAO/ccm/CCM_Entity2Context.idl35
-rw-r--r--modules/CIAO/ccm/CCM_EntityComponent.idl38
-rw-r--r--modules/CIAO/ccm/CCM_EntityContext.idl22
-rw-r--r--modules/CIAO/ccm/CCM_Enumeration.idl24
-rw-r--r--modules/CIAO/ccm/CCM_EventBase.idl13
-rw-r--r--modules/CIAO/ccm/CCM_EventConsumerBase.idl46
-rw-r--r--modules/CIAO/ccm/CCM_Events.idl85
-rw-r--r--modules/CIAO/ccm/CCM_Exceptions.idl26
-rw-r--r--modules/CIAO/ccm/CCM_ExecutorLocator.idl28
-rw-r--r--modules/CIAO/ccm/CCM_Home.idl29
-rw-r--r--modules/CIAO/ccm/CCM_HomeConfiguration.idl23
-rw-r--r--modules/CIAO/ccm/CCM_HomeExecutorBase.idl14
-rw-r--r--modules/CIAO/ccm/CCM_HomeFinder.idl29
-rw-r--r--modules/CIAO/ccm/CCM_HomeRegistration.idl21
-rw-r--r--modules/CIAO/ccm/CCM_Homes.idl19
-rw-r--r--modules/CIAO/ccm/CCM_KeylessCCMHome.idl19
-rw-r--r--modules/CIAO/ccm/CCM_Navigation.idl41
-rw-r--r--modules/CIAO/ccm/CCM_Object.idl58
-rw-r--r--modules/CIAO/ccm/CCM_PrimaryKeyBase.idl13
-rw-r--r--modules/CIAO/ccm/CCM_ProxyHomeRegistration.idl23
-rw-r--r--modules/CIAO/ccm/CCM_Receptacle.idl55
-rw-r--r--modules/CIAO/ccm/CCM_Session2Context.idl37
-rw-r--r--modules/CIAO/ccm/CCM_SessionComponent.idl34
-rw-r--r--modules/CIAO/ccm/CCM_SessionContext.idl18
-rw-r--r--modules/CIAO/ccm/CCM_SessionSynchronization.idl26
-rw-r--r--modules/CIAO/ccm/CCM_StandardConfigurator.idl28
-rw-r--r--modules/CIAO/ccm/CCM_StateIdFactory.idl59
-rw-r--r--modules/CIAO/ccm/CCM_Stub_Export.h58
-rw-r--r--modules/CIAO/ccm/CCM_Svnt_Export.h58
-rw-r--r--modules/CIAO/ccm/CCM_Transaction.idl76
-rw-r--r--modules/CIAO/ccm/ComponentServer/CCM_ComponentServer.idl62
-rw-r--r--modules/CIAO/ccm/ComponentServer/CCM_ComponentServer.mpc65
-rw-r--r--modules/CIAO/ccm/ComponentServer/CCM_ComponentServer_Base.idl56
-rw-r--r--modules/CIAO/ccm/ComponentServer/CCM_ComponentServer_Client.idl47
-rw-r--r--modules/CIAO/ccm/Components.idl17
-rw-r--r--modules/CIAO/ccm/CosPersistentState.idl21
-rw-r--r--modules/CIAO/ccm/Security.idl23
-rw-r--r--modules/CIAO/ciao/CIAO.mpc37
-rw-r--r--modules/CIAO/ciao/CIAO_Client_Export.h58
-rw-r--r--modules/CIAO/ciao/CIAO_Config.h20
-rw-r--r--modules/CIAO/ciao/CIAO_Container_Export.h58
-rw-r--r--modules/CIAO/ciao/CIAO_FailureReasons.idl25
-rw-r--r--modules/CIAO/ciao/CIAO_Server_Export.h58
-rw-r--r--modules/CIAO/ciao/Client_init.cpp95
-rw-r--r--modules/CIAO/ciao/Client_init.h75
-rw-r--r--modules/CIAO/ciao/ComponentServer/CIAO_CS_Client.idl40
-rw-r--r--modules/CIAO/ciao/ComponentServer/CIAO_ComponentInstallation_Impl.cpp129
-rw-r--r--modules/CIAO/ciao/ComponentServer/CIAO_ComponentInstallation_Impl.h65
-rw-r--r--modules/CIAO/ciao/ComponentServer/CIAO_ComponentServer.cpp363
-rw-r--r--modules/CIAO/ciao/ComponentServer/CIAO_ComponentServer.h60
-rw-r--r--modules/CIAO/ciao/ComponentServer/CIAO_ComponentServer.idl66
-rw-r--r--modules/CIAO/ciao/ComponentServer/CIAO_ComponentServer.mpc99
-rw-r--r--modules/CIAO/ciao/ComponentServer/CIAO_ComponentServer_Impl.cpp262
-rw-r--r--modules/CIAO/ciao/ComponentServer/CIAO_ComponentServer_Impl.h82
-rw-r--r--modules/CIAO/ciao/ComponentServer/CIAO_Container_Impl.cpp476
-rw-r--r--modules/CIAO/ciao/ComponentServer/CIAO_Container_Impl.h119
-rw-r--r--modules/CIAO/ciao/ComponentServer/CIAO_Properties.idl27
-rw-r--r--modules/CIAO/ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp518
-rw-r--r--modules/CIAO/ciao/ComponentServer/CIAO_ServerActivator_Impl.h192
-rw-r--r--modules/CIAO/ciao/Containers/CIAO_Servant_Activator.idl24
-rw-r--r--modules/CIAO/ciao/Containers/CIAO_Servant_Activator.mpc24
-rw-r--r--modules/CIAO/ciao/Containers/Container_Base.cpp50
-rw-r--r--modules/CIAO/ciao/Containers/Container_Base.h159
-rw-r--r--modules/CIAO/ciao/Containers/Container_Base.idl82
-rw-r--r--modules/CIAO/ciao/Containers/Container_Base.inl33
-rw-r--r--modules/CIAO/ciao/Containers/Containers.mpc30
-rw-r--r--modules/CIAO/ciao/Containers/Servant_Activator.cpp167
-rw-r--r--modules/CIAO/ciao/Containers/Servant_Activator.h100
-rw-r--r--modules/CIAO/ciao/Containers/Session/Session_Container.cpp920
-rw-r--r--modules/CIAO/ciao/Containers/Session/Session_Container.h231
-rw-r--r--modules/CIAO/ciao/Containers/Session/Session_Container.idl15
-rw-r--r--modules/CIAO/ciao/Containers/Session/Session_Container.inl13
-rw-r--r--modules/CIAO/ciao/Containers/Session/Session_Container.mpc30
-rw-r--r--modules/CIAO/ciao/Contexts/Context.mpc16
-rw-r--r--modules/CIAO/ciao/Contexts/Context_Impl_Base.cpp76
-rw-r--r--modules/CIAO/ciao/Contexts/Context_Impl_Base.h105
-rw-r--r--modules/CIAO/ciao/Contexts/Context_Impl_Base.inl24
-rw-r--r--modules/CIAO/ciao/Contexts/Context_Impl_T.cpp63
-rw-r--r--modules/CIAO/ciao/Contexts/Context_Impl_T.h114
-rw-r--r--modules/CIAO/ciao/Contexts/Context_Impl_export.h58
-rw-r--r--modules/CIAO/ciao/Logger/CIAOLoggerFactory.h19
-rw-r--r--modules/CIAO/ciao/Logger/CIAO_Logger_Export.h58
-rw-r--r--modules/CIAO/ciao/Logger/File_Logger_Backend.cpp46
-rw-r--r--modules/CIAO/ciao/Logger/File_Logger_Backend.h52
-rw-r--r--modules/CIAO/ciao/Logger/Log_Macros.h82
-rw-r--r--modules/CIAO/ciao/Logger/Logger.mpc18
-rw-r--r--modules/CIAO/ciao/Logger/Logger_Service.cpp151
-rw-r--r--modules/CIAO/ciao/Logger/Logger_Service.h34
-rw-r--r--modules/CIAO/ciao/Servants/CIAO_Port_Activator.idl37
-rw-r--r--modules/CIAO/ciao/Servants/CIAO_Servant_Impl_export.h58
-rw-r--r--modules/CIAO/ciao/Servants/Home_Servant_Impl_Base.cpp31
-rw-r--r--modules/CIAO/ciao/Servants/Home_Servant_Impl_Base.h67
-rw-r--r--modules/CIAO/ciao/Servants/Home_Servant_Impl_T.cpp225
-rw-r--r--modules/CIAO/ciao/Servants/Home_Servant_Impl_T.h107
-rw-r--r--modules/CIAO/ciao/Servants/Port_Activator.cpp39
-rw-r--r--modules/CIAO/ciao/Servants/Port_Activator.h82
-rw-r--r--modules/CIAO/ciao/Servants/Port_Activator_T.cpp79
-rw-r--r--modules/CIAO/ciao/Servants/Port_Activator_T.h80
-rw-r--r--modules/CIAO/ciao/Servants/Servant_Impl_Base.cpp758
-rw-r--r--modules/CIAO/ciao/Servants/Servant_Impl_Base.h247
-rw-r--r--modules/CIAO/ciao/Servants/Servant_Impl_T.cpp239
-rw-r--r--modules/CIAO/ciao/Servants/Servant_Impl_T.h111
-rw-r--r--modules/CIAO/ciao/Servants/Servant_Impl_Utils_T.cpp182
-rw-r--r--modules/CIAO/ciao/Servants/Servants.mpc57
-rw-r--r--modules/CIAO/ciao/Servants/StandardConfigurator_Impl.cpp33
-rw-r--r--modules/CIAO/ciao/Servants/StandardConfigurator_Impl.h73
-rw-r--r--modules/CIAO/ciao/Server_init.cpp281
-rw-r--r--modules/CIAO/ciao/Server_init.h103
-rw-r--r--modules/CIAO/ciao/Valuetype_Factories/ConfigValue.cpp43
-rw-r--r--modules/CIAO/ciao/Valuetype_Factories/ConfigValue.h38
-rw-r--r--modules/CIAO/ciao/Valuetype_Factories/ConfigValue_Export.h58
-rw-r--r--modules/CIAO/ciao/Valuetype_Factories/Cookie_Export.h58
-rw-r--r--modules/CIAO/ciao/Valuetype_Factories/Cookies.cpp68
-rw-r--r--modules/CIAO/ciao/Valuetype_Factories/Cookies.h70
-rw-r--r--modules/CIAO/ciao/Valuetype_Factories/Cookies.inl10
-rw-r--r--modules/CIAO/ciao/Valuetype_Factories/Factories.mpc23
-rw-r--r--modules/CIAO/ciao/Version.h9
-rw-r--r--modules/CIAO/connectors/ami4ccm/docs/AMI4CCM-explanation.odtbin0 -> 27491 bytes
-rw-r--r--modules/CIAO/connectors/ami4ccm/docs/AMI4CCM-spec.odtbin0 -> 22132 bytes
-rw-r--r--modules/CIAO/connectors/ami4ccm/examples/Hello/AMI/AMI.idl32
-rw-r--r--modules/CIAO/connectors/ami4ccm/examples/Hello/AMI/AMI.mpc141
-rw-r--r--modules/CIAO/connectors/ami4ccm/examples/Hello/AMI/AMI_MyFoo_i.cpp216
-rw-r--r--modules/CIAO/connectors/ami4ccm/examples/Hello/AMI/AMI_MyFoo_i.h110
-rw-r--r--modules/CIAO/connectors/ami4ccm/examples/Hello/AMI/AMI_exec.cpp320
-rw-r--r--modules/CIAO/connectors/ami4ccm/examples/Hello/AMI/AMI_exec.h158
-rw-r--r--modules/CIAO/connectors/ami4ccm/examples/Hello/Hello_Base/Hello.idl27
-rw-r--r--modules/CIAO/connectors/ami4ccm/examples/Hello/Hello_Base/Hello_Base.idl45
-rw-r--r--modules/CIAO/connectors/ami4ccm/examples/Hello/Hello_Base/Hello_Base.mpc149
-rw-r--r--modules/CIAO/connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver.idl24
-rw-r--r--modules/CIAO/connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver.mpc136
-rw-r--r--modules/CIAO/connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp242
-rw-r--r--modules/CIAO/connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver_exec.h144
-rw-r--r--modules/CIAO/connectors/ami4ccm/examples/Hello/Sender/Hello_Sender.idl31
-rw-r--r--modules/CIAO/connectors/ami4ccm/examples/Hello/Sender/Hello_Sender.mpc137
-rw-r--r--modules/CIAO/connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp410
-rw-r--r--modules/CIAO/connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.h195
-rw-r--r--modules/CIAO/connectors/ami4ccm/examples/Hello/descriptors/Plan.cdp385
-rwxr-xr-xmodules/CIAO/connectors/ami4ccm/examples/Hello/descriptors/run_test.pl224
-rw-r--r--modules/CIAO/connectors/dds4ccm/docs/09-10-23.pdfbin0 -> 386299 bytes
-rw-r--r--modules/CIAO/connectors/dds4ccm/docs/09-10-25.pdfbin0 -> 917372 bytes
-rw-r--r--modules/CIAO/connectors/dds4ccm/docs/09-10-27.pdfbin0 -> 35850 bytes
-rw-r--r--modules/CIAO/connectors/dds4ccm/docs/DDS_DefaultQoS.xml254
-rw-r--r--modules/CIAO/connectors/dds4ccm/docs/DDS_QoSProfile.xsd390
-rw-r--r--modules/CIAO/connectors/dds4ccm/docs/DDSforCCM-meta.uml567
-rw-r--r--modules/CIAO/connectors/dds4ccm/docs/_DDS for CCM Readable Files README.pdfbin0 -> 26381 bytes
-rw-r--r--modules/CIAO/connectors/dds4ccm/docs/ccm_dds.idl396
-rw-r--r--modules/CIAO/connectors/dds4ccm/docs/ccm_dds_dlrl.idl44
-rw-r--r--modules/CIAO/connectors/dds4ccm/docs/details.txt33
-rw-r--r--modules/CIAO/connectors/dds4ccm/docs/ptc_09-10-26 DDS4CCM v1-0 WCB.pdfbin0 -> 1169849 bytes
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Hello/Base/Hello_Base.idl18
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Hello/Base/Hello_Base.mpc72
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Hello/Connector/Hello_Connector.idl163
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Hello/Connector/Hello_Connector.mpc148
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Hello/Connector/Hello_Connector_exec.cpp30
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Hello/Connector/Hello_Connector_exec.h60
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Hello/DDS_Receiver/DDS_Receiver.mpc10
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Hello/DDS_Receiver/Hello_Receiver.cpp169
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Hello/DDS_Sender/DDS_Sender.mpc10
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Hello/DDS_Sender/Hello_Sender.cpp151
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.idl38
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.mpc138
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp217
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.h151
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.idl38
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.mpc139
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp212
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.h113
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/1_to_5.cdp954
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/5_Receivers.cdp981
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/5_Senders.cdp767
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/5_to_1.cdp960
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/DeploymentPlan.cdp395
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/ReceiverOnly.cdp247
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/SenderOnly.cdp216
-rwxr-xr-xmodules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_1_to_5.pl206
-rwxr-xr-xmodules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_5_to_1.pl206
-rwxr-xr-xmodules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_5_to_5.pl240
-rwxr-xr-xmodules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_receiver.pl218
-rwxr-xr-xmodules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_sender.pl218
-rwxr-xr-xmodules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_test.pl206
-rwxr-xr-xmodules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_test_dds.pl24
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Quoter/Base/Quoter_Base.idl23
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Quoter/Base/Quoter_Base.mpc74
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Quoter/Broker/Broker.idl36
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Quoter/Broker/Broker.mpc139
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Quoter/Broker/Broker_exec.cpp526
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Quoter/Broker/Broker_exec.h238
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.idl153
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.mpc145
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.cpp30
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.h61
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Quoter/Distributor/Distributor.idl49
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Quoter/Distributor/Distributor.mpc140
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.cpp386
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.h190
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Quoter/descriptors/Plan.cdp391
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Quoter/descriptors/USER_QOS_PROFILES.xml66
-rwxr-xr-xmodules/CIAO/connectors/dds4ccm/examples/Quoter/descriptors/run_test.pl189
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Shapes/Base/Shapes_Base.idl26
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Shapes/Base/Shapes_Base.mpc73
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector.idl163
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector.mpc145
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector_exec.cpp30
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector_exec.h60
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Shapes/Receiver/Shapes_Receiver.idl39
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Shapes/Receiver/Shapes_Receiver.mpc139
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Shapes/Receiver/Shapes_Receiver_exec.cpp358
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Shapes/Receiver/Shapes_Receiver_exec.h143
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Shapes/Sender/Shapes_Sender.idl39
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Shapes/Sender/Shapes_Sender.mpc140
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Shapes/Sender/Shapes_Sender_exec.cpp288
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Shapes/Sender/Shapes_Sender_exec.h104
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/Plan.cdp459
-rw-r--r--modules/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/USER_QOS_PROFILES.xml66
-rwxr-xr-xmodules/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/run_test.pl189
-rw-r--r--modules/CIAO/connectors/dds4ccm/id3p_test/Multiple_Reader_Ports/test.idl3p17
-rw-r--r--modules/CIAO/connectors/dds4ccm/idl/dds4ccm.mpc123
-rw-r--r--modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Base.idl356
-rw-r--r--modules/CIAO/connectors/dds4ccm/idl/dds4ccm_ConnectorStatusListener.idl334
-rw-r--r--modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Connector_Base.idl3p27
-rw-r--r--modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Connector_Event.idl3p24
-rw-r--r--modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Connector_State.idl3p26
-rw-r--r--modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Getter.idl3p51
-rw-r--r--modules/CIAO/connectors/dds4ccm/idl/dds4ccm_ListenerControl.idl320
-rw-r--r--modules/CIAO/connectors/dds4ccm/idl/dds4ccm_MultiListener.idl3p34
-rw-r--r--modules/CIAO/connectors/dds4ccm/idl/dds4ccm_MultiUpdater.idl3p41
-rw-r--r--modules/CIAO/connectors/dds4ccm/idl/dds4ccm_MultiWriter.idl3p27
-rw-r--r--modules/CIAO/connectors/dds4ccm/idl/dds4ccm_PortStatusListener.idl323
-rw-r--r--modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_Get.idl3p23
-rw-r--r--modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_MultiListen.idl3p27
-rw-r--r--modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_MultiUpdate.idl3p21
-rw-r--r--modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_MultiWrite.idl3p21
-rw-r--r--modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_RawListen.idl3p27
-rw-r--r--modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_Read.idl3p23
-rw-r--r--modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_StateListen.idl3p27
-rw-r--r--modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_Update.idl3p21
-rw-r--r--modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_Write.idl3p21
-rw-r--r--modules/CIAO/connectors/dds4ccm/idl/dds4ccm_RawListener.idl3p24
-rw-r--r--modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Reader.idl3p46
-rw-r--r--modules/CIAO/connectors/dds4ccm/idl/dds4ccm_StateListener.idl3p27
-rw-r--r--modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Updater.idl3p35
-rw-r--r--modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Writer.idl3p21
-rw-r--r--modules/CIAO/connectors/dds4ccm/idl/dds_rtf2_dcps.idl1206
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/Coherent_Changes_Guard.cpp19
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/Coherent_Changes_Guard.h38
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/Connector_T.cpp401
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/Connector_T.h128
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/DataReader.cpp254
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/DataReader.h140
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/DataReaderHandler_T.cpp50
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/DataReaderHandler_T.h40
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/DataReaderListener.cpp114
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/DataReaderListener.h64
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/DataReaderListener_T.cpp92
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/DataReaderListener_T.h58
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/DataWriter.cpp187
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/DataWriter.h104
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/DataWriterListener.cpp79
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/DataWriterListener.h62
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/DataWriterListener_T.cpp75
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/DataWriterListener_T.h58
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipant.cpp517
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipant.h188
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantFactory.cpp128
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantFactory.h67
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/Duration_t.h35
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/Getter_T.cpp217
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/Getter_T.h74
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/InconsistentTopicStatus.h41
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/InstanceHandleSeq.h60
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/InstanceHandle_t.h41
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/ListenerControl.cpp54
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/ListenerControl.h63
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/LivelinessChangedStatus.h55
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/LivelinessLostStatus.h41
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/NDDS_Traits.h51
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/OfferedDeadlineMissedStatus.h47
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/OfferedIncompatibleQosStatus.h51
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/PublicationMatchedStatus.h55
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/Publisher.cpp247
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/Publisher.h116
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/PublisherListener.cpp82
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/PublisherListener.h67
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/QosPolicyCountSeq.h34
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/QueryCondition.cpp88
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/QueryCondition.h74
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/ReadCondition.cpp63
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/ReadCondition.h63
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/Reader_T.cpp355
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/Reader_T.h60
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/RequestedDeadlineMissedStatus.h47
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/RequestedIncompatibleQosStatus.h51
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/SampleInfo.h60
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/SampleLostStatus.h28
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/SampleRejectedStatus.h51
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/StatusCondition.cpp60
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/StatusCondition.h61
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/Subscriber.cpp255
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/Subscriber.h127
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/SubscriberListener.cpp120
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/SubscriberListener.h82
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/SubscriptionMatchedStatus.h56
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/Time_t.h35
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/Topic.cpp117
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/Topic.h81
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/TopicDescription.cpp55
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/TopicDescription.h57
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/Updater_T.cpp103
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/Updater_T.h48
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/Utils.cpp36
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/Utils.h27
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/Writer_T.cpp111
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/Writer_T.h48
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/dds4ccm_ndds_impl_export.h58
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/ndds_impl.mpc38
-rw-r--r--modules/CIAO/docs/CIAO.pdfbin0 -> 992896 bytes
-rw-r--r--modules/CIAO/docs/CIAO_Style_Guide.txt60
-rw-r--r--modules/CIAO/docs/ConfigValues.html270
-rw-r--r--modules/CIAO/docs/Connectors.graffle10989
-rw-r--r--modules/CIAO/docs/EnvVars.html35
-rw-r--r--modules/CIAO/docs/OMG-CCM-Tutorial.pptbin0 -> 14526976 bytes
-rw-r--r--modules/CIAO/docs/Porting_Hints.txt55
-rw-r--r--modules/CIAO/docs/Purify.html72
-rw-r--r--modules/CIAO/docs/RT-Extension.html132
-rw-r--r--modules/CIAO/docs/TODO.html240
-rw-r--r--modules/CIAO/docs/Trace.html32
-rw-r--r--modules/CIAO/docs/XML/ciao_rt_cad_ext.dtd93
-rw-r--r--modules/CIAO/docs/XML/componentassembly.dtd367
-rw-r--r--modules/CIAO/docs/XML/corbacomponent.dtd316
-rw-r--r--modules/CIAO/docs/XML/properties.dtd87
-rw-r--r--modules/CIAO/docs/XML/softpkg.dtd220
-rw-r--r--modules/CIAO/docs/com-impl.html60
-rw-r--r--modules/CIAO/docs/fm/CIAO.fmbin0 -> 669696 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Component_Container_and_CORBA.epsbin0 -> 23331 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Component_Container_and_CORBA.sxdbin0 -> 7110 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Components_Administrator_Highlight.epsbin0 -> 33784 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Components_Administrator_Highlight.sxdbin0 -> 7984 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Components_Messenger_Highlight.epsbin0 -> 33795 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Components_Messenger_Highlight.sxdbin0 -> 7974 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Components_Messenger_Runnable_Highlight.epsbin0 -> 33545 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Components_Messenger_Runnable_Highlight.sxdbin0 -> 7913 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Components_Receiver_Highlight.epsbin0 -> 33765 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Components_Receiver_Highlight.sxdbin0 -> 7996 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Descriptors_Administrator.epsbin0 -> 45153 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Descriptors_Administrator.sxdbin0 -> 7650 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Descriptors_Application.epsbin0 -> 43126 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Descriptors_Application.sxdbin0 -> 7749 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Descriptors_Messenger.epsbin0 -> 45003 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Descriptors_Messenger.sxdbin0 -> 7689 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Descriptors_Messenger_Assembly.epsbin0 -> 45649 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Descriptors_Messenger_Assembly.sxdbin0 -> 7734 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Descriptors_Receiver.epsbin0 -> 43962 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Descriptors_Receiver.sxdbin0 -> 7609 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Generic_Component_Diagram.epsbin0 -> 24463 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Generic_Component_Diagram.sxdbin0 -> 7347 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_IDL3_to_IDL2_Files.epsbin0 -> 36027 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_IDL3_to_IDL2_Files.sxdbin0 -> 7578 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_IDL_CIDL_Files.epsbin0 -> 55449 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_IDL_CIDL_Files.sxdbin0 -> 7907 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_IDL_CIDL_Files_CIDL_Highlight.epsbin0 -> 56760 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_IDL_CIDL_Files_CIDL_Highlight.sxdbin0 -> 8165 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_MessengerHome_Class_Diagram.epsbin0 -> 48412 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_MessengerHome_Class_Diagram.sxdbin0 -> 7983 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Messenger_Class_Diagram.epsbin0 -> 54234 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Messenger_Class_Diagram.sxdbin0 -> 8447 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Messenger_Component_Diagram.epsbin0 -> 33462 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Messenger_Component_Diagram.sxdbin0 -> 7825 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram.epsbin0 -> 50590 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram.sxdbin0 -> 7886 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_All_Connections_Highlight.epsbin0 -> 229977 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_All_Connections_Highlight.sxdbin0 -> 8041 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_All_Nodes_Highlight.epsbin0 -> 230269 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_All_Nodes_Highlight.sxdbin0 -> 7934 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_Connection_Highlight.epsbin0 -> 51341 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_Connection_Highlight.sxdbin0 -> 8051 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_Node_Highlight.epsbin0 -> 51917 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_Node_Highlight.sxdbin0 -> 8141 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Messenger_IDL_Generated_Class_Diagram.epsbin0 -> 37446 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Messenger_IDL_Generated_Class_Diagram.sxdbin0 -> 7495 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Messenger_Interaction_Diagram.epsbin0 -> 25993 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Messenger_Interaction_Diagram.sxdbin0 -> 7390 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Roadmap_01.epsbin0 -> 23463 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Roadmap_01.sxdbin0 -> 7094 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Roadmap_02.epsbin0 -> 23424 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Roadmap_02.sxdbin0 -> 7151 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Roadmap_03.epsbin0 -> 23927 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Roadmap_03.sxdbin0 -> 7146 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Roadmap_04.epsbin0 -> 23427 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Roadmap_04.sxdbin0 -> 7151 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Roadmap_05.epsbin0 -> 23434 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Roadmap_05.sxdbin0 -> 7148 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Roadmap_06.epsbin0 -> 23457 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Roadmap_06.sxdbin0 -> 7147 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Roadmap_07.epsbin0 -> 23459 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Roadmap_07.sxdbin0 -> 7146 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Roadmap_08.epsbin0 -> 23127 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Roadmap_08.sxdbin0 -> 7149 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Roadmap_09.epsbin0 -> 23346 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Roadmap_09.sxdbin0 -> 7146 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Roadmap_Overview.epsbin0 -> 22216 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Roadmap_Overview.sxdbin0 -> 6811 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Runnable_Class_Diagram.epsbin0 -> 41532 bytes
-rw-r--r--modules/CIAO/docs/fm/images/CIAO_Runnable_Class_Diagram.sxdbin0 -> 7786 bytes
-rw-r--r--modules/CIAO/docs/fm/images/OCILOGO_bw_book.epsbin0 -> 72640 bytes
-rw-r--r--modules/CIAO/docs/generate_component_mpc.html84
-rw-r--r--modules/CIAO/docs/imgs/CCM-v5.vsdbin0 -> 486912 bytes
-rw-r--r--modules/CIAO/docs/imgs/CCM.vsdbin0 -> 643072 bytes
-rw-r--r--modules/CIAO/docs/imgs/DAnCE-Dynamic.pngbin0 -> 71061 bytes
-rw-r--r--modules/CIAO/docs/imgs/DAnCE-Dynamic.sxdbin0 -> 46579 bytes
-rw-r--r--modules/CIAO/docs/imgs/File-Gen-Existing.pngbin0 -> 40181 bytes
-rw-r--r--modules/CIAO/docs/imgs/File-Gen-Future.pngbin0 -> 41057 bytes
-rw-r--r--modules/CIAO/docs/imgs/File_Generation_Flow.vsdbin0 -> 107008 bytes
-rw-r--r--modules/CIAO/docs/imgs/IDL-CIDL-classes.vsdbin0 -> 201216 bytes
-rw-r--r--modules/CIAO/docs/imgs/basic-container.pngbin0 -> 8000 bytes
-rw-r--r--modules/CIAO/docs/imgs/ciao-dynamic1.jpgbin0 -> 56203 bytes
-rw-r--r--modules/CIAO/docs/imgs/ciao-dynamic2.jpgbin0 -> 46081 bytes
-rw-r--r--modules/CIAO/docs/imgs/ciao-static-vs-dynamic.jpgbin0 -> 44220 bytes
-rw-r--r--modules/CIAO/docs/imgs/ciao-static1.jpgbin0 -> 53013 bytes
-rw-r--r--modules/CIAO/docs/imgs/ciao-static2.jpgbin0 -> 64775 bytes
-rw-r--r--modules/CIAO/docs/imgs/component-basic.pngbin0 -> 151172 bytes
-rw-r--r--modules/CIAO/docs/imgs/dance_arch.jpgbin0 -> 70602 bytes
-rw-r--r--modules/CIAO/docs/imgs/dance_arch.vsdbin0 -> 100352 bytes
-rw-r--r--modules/CIAO/docs/imgs/deployment.pngbin0 -> 10392 bytes
-rw-r--r--modules/CIAO/docs/imgs/extended-container.pngbin0 -> 19243 bytes
-rw-r--r--modules/CIAO/docs/imgs/home-config.pngbin0 -> 9873 bytes
-rw-r--r--modules/CIAO/docs/imgs/static_dance_arch.jpgbin0 -> 58200 bytes
-rw-r--r--modules/CIAO/docs/imgs/static_dance_arch.vsdbin0 -> 86528 bytes
-rw-r--r--modules/CIAO/docs/imgs/static_dance_impl.jpgbin0 -> 56173 bytes
-rw-r--r--modules/CIAO/docs/imgs/static_dance_impl.vsdbin0 -> 101888 bytes
-rw-r--r--modules/CIAO/docs/index.html168
-rw-r--r--modules/CIAO/docs/new_components.html129
-rw-r--r--modules/CIAO/docs/releasenotes/dance.html229
-rw-r--r--modules/CIAO/docs/releasenotes/index.html119
-rw-r--r--modules/CIAO/docs/releasenotes/switch.html35
-rw-r--r--modules/CIAO/docs/schema/06-04-02.xsd1010
-rw-r--r--modules/CIAO/docs/schema/Basic_Deployment_Data.xsd430
-rw-r--r--modules/CIAO/docs/schema/CIAOEvents.xsd104
-rw-r--r--modules/CIAO/docs/schema/CIAOServerResources.xsd218
-rw-r--r--modules/CIAO/docs/schema/Deployment.xsd29
-rw-r--r--modules/CIAO/docs/schema/Modified_Deployment.xsd826
-rw-r--r--modules/CIAO/docs/schema/README.html64
-rw-r--r--modules/CIAO/docs/schema/SANet_Network.xsd98
-rw-r--r--modules/CIAO/docs/schema/ServerResourceUsage.txt119
-rw-r--r--modules/CIAO/docs/schema/Spec_Defined_Deployment.xsd897
-rw-r--r--modules/CIAO/docs/schema/Spec_Defined_XMI.xsd35
-rw-r--r--modules/CIAO/docs/schema/Task_Map.xsd90
-rw-r--r--modules/CIAO/docs/schema/XMI.xsd39
-rw-r--r--modules/CIAO/docs/schema/ccd.xsd27
-rw-r--r--modules/CIAO/docs/schema/cdd.xsd60
-rw-r--r--modules/CIAO/docs/schema/cdp.xsd43
-rw-r--r--modules/CIAO/docs/schema/ciaopolicy.xsd607
-rw-r--r--modules/CIAO/docs/schema/cid.xsd126
-rw-r--r--modules/CIAO/docs/schema/cpd.xsd49
-rw-r--r--modules/CIAO/docs/schema/iad.xsd32
-rw-r--r--modules/CIAO/docs/schema/pcd.xsd32
-rw-r--r--modules/CIAO/docs/schema/toplevel.xsd15
-rw-r--r--modules/CIAO/docs/schema/unused_06-04-02.xsd201
-rw-r--r--modules/CIAO/docs/schema/unused_elements.xsd161
-rw-r--r--modules/CIAO/docs/schema/xsc-banner.cpp11
-rw-r--r--modules/CIAO/docs/schema/xsc-banner.h17
-rwxr-xr-xmodules/CIAO/docs/static_ciao_contents.html359
-rwxr-xr-xmodules/CIAO/docs/static_ciao_index.html23
-rwxr-xr-xmodules/CIAO/docs/static_ciao_toc.html26
-rw-r--r--modules/CIAO/docs/static_config_example.html1353
-rw-r--r--modules/CIAO/docs/static_config_rtexample.html1079
-rw-r--r--modules/CIAO/docs/static_dance.html214
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/01.html374
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/02.html198
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/03.html543
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/04.html162
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Broker/StockBroker.idl40
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Broker/StockBroker.mpc153
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Broker/StockBrokerDriver.cpp110
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Broker/StockBroker_exec.cpp213
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Broker/StockBroker_exec.h131
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/StockDistributor.idl47
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/StockDistributor.mpc155
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/StockDistributorDriver.cpp115
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/StockDistributor_exec.cpp347
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/StockDistributor_exec.h242
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Icons/AddConnMode.gifbin0 -> 106 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Icons/SetMode.gifbin0 -> 125 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Model/Quoter.xme1963
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/README.html172
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.idl46
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.mpc83
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Broker.cpd13
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Default.pcd6
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Distributor.cpd13
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Domain.cdd14
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/NodeMap.dat3
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Plan.cdp248
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockBroker.ccd49
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockBrokerMonolithicImpl.cid35
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockBroker_exec.iad78
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockBroker_stub.iad56
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockBroker_svnt.iad73
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockDistributor.ccd49
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockDistributorMonolithicImpl.cid35
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockDistributor_exec.iad78
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockDistributor_stub.iad56
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockDistributor_svnt.iad73
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockQuoter.cid39
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockQuoter.cpd11
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/TopLevelPackage.tpd6
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/XMI.xsd35
-rwxr-xr-xmodules/CIAO/docs/tutorials/Quoter/Simple/descriptors/runNodeDaemons.pl41
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/fig1.jpgbin0 -> 13971 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/fig10.jpgbin0 -> 138254 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/fig11.jpgbin0 -> 133189 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/fig12.jpgbin0 -> 135258 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/fig2.jpgbin0 -> 183594 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/fig3.jpgbin0 -> 46408 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/fig4.jpgbin0 -> 11225 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/fig5.jpgbin0 -> 45883 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/fig5a.jpgbin0 -> 112890 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/fig6.jpgbin0 -> 85037 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/fig7.jpgbin0 -> 122359 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/fig8.jpgbin0 -> 136474 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/fig9.jpgbin0 -> 128558 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/quoter.jpgbin0 -> 15027 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/step1.jpgbin0 -> 17752 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/step2.jpgbin0 -> 29764 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/step3.jpgbin0 -> 32189 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/step6.jpgbin0 -> 10762 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/images/steps.jpgbin0 -> 82487 bytes
-rw-r--r--modules/CIAO/docs/tutorials/Quoter/Simple/index.html351
-rw-r--r--modules/CIAO/docs/value_factory_registration.html49
-rw-r--r--modules/CIAO/etc/ciao.doxygen174
-rw-r--r--modules/CIAO/etc/ciao_DAnCE.doxygen172
-rw-r--r--modules/CIAO/etc/ciao_config_handlers.doxygen173
-rw-r--r--modules/CIAO/etc/ciao_dds4ccm.doxygen172
-rw-r--r--modules/CIAO/examples/BasicSP/BMClosedED/BMClosedED.idl24
-rw-r--r--modules/CIAO/examples/BasicSP/BMClosedED/BMClosedED.mpc114
-rw-r--r--modules/CIAO/examples/BasicSP/BMClosedED/BMClosedED_exec.cpp193
-rw-r--r--modules/CIAO/examples/BasicSP/BMClosedED/BMClosedED_exec.h133
-rw-r--r--modules/CIAO/examples/BasicSP/BMClosedED/config1
-rw-r--r--modules/CIAO/examples/BasicSP/BMDevice/BMDevice.idl31
-rw-r--r--modules/CIAO/examples/BasicSP/BMDevice/BMDevice.mpc116
-rw-r--r--modules/CIAO/examples/BasicSP/BMDevice/BMDevice_exec.cpp159
-rw-r--r--modules/CIAO/examples/BasicSP/BMDevice/BMDevice_exec.h130
-rw-r--r--modules/CIAO/examples/BasicSP/BMDisplay/BMDisplay.idl21
-rw-r--r--modules/CIAO/examples/BasicSP/BMDisplay/BMDisplay.mpc118
-rw-r--r--modules/CIAO/examples/BasicSP/BMDisplay/BMDisplay_exec.cpp142
-rw-r--r--modules/CIAO/examples/BasicSP/BMDisplay/BMDisplay_exec.h96
-rw-r--r--modules/CIAO/examples/BasicSP/BasicSP.idl48
-rw-r--r--modules/CIAO/examples/BasicSP/BasicSP.mpc100
-rw-r--r--modules/CIAO/examples/BasicSP/BasicSP.mwc9
-rw-r--r--modules/CIAO/examples/BasicSP/EC/EC.idl41
-rw-r--r--modules/CIAO/examples/BasicSP/EC/EC.mpc157
-rw-r--r--modules/CIAO/examples/BasicSP/EC/EC_exec.cpp296
-rw-r--r--modules/CIAO/examples/BasicSP/EC/EC_exec.h168
-rw-r--r--modules/CIAO/examples/BasicSP/EC/README9
-rw-r--r--modules/CIAO/examples/BasicSP/EC/client.cpp62
-rw-r--r--modules/CIAO/examples/BasicSP/EC/controller.cpp126
-rw-r--r--modules/CIAO/examples/BasicSP/README.html70
-rw-r--r--modules/CIAO/examples/BasicSP/RepoMan_Usage.html117
-rw-r--r--modules/CIAO/examples/BasicSP/descriptors/BasicSP.dat4
-rw-r--r--modules/CIAO/examples/BasicSP/descriptors/BasicSP_Homed.cdp504
-rw-r--r--modules/CIAO/examples/BasicSP/descriptors/BasicSP_Unhomed.cdp408
-rwxr-xr-xmodules/CIAO/examples/BasicSP/descriptors/run_test.pl193
-rw-r--r--modules/CIAO/examples/DevGuideExamples/CIAO.mwc5
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.idl24
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.mpc110
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client.cpp120
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.cpp10
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.mpc48
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.cpp10
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.mpc32
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_i.cpp259
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_i.h112
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/History.idl19
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/History_exec_i.cpp95
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/History_exec_i.h70
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Message.idl21
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.idl34
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.mpc172
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_i.cpp253
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_i.h129
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Publication.idl17
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Publication_exec_i.cpp81
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Publication_exec_i.h70
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.idl23
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.mpc110
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_i.cpp176
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_i.h102
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Runnable.idl17
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Runnable_exec_i.cpp60
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/Runnable_exec_i.h65
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/Messenger_StaticDAnCE.mpc18
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/README.txt35
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/StaticDAnCEApp.cpp102
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/plan.h47
-rwxr-xr-xmodules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/run_test.pl110
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.ccd47
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.cid34
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.cpd15
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Exec.iad40
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Stub.iad30
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Svnt.iad40
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application-flattened.cdp255
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application.cdp25
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application.pcd23
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/ApplicationNodeMap.dat5
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Deployment.xsd776
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Domain.cdd24
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Libraries.iad11
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.ccd90
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.cid37
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.cpd15
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.ccd31
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.cid110
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.cpd13
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Exec.iad40
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Stub.iad25
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Svnt.iad40
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/README_15a5
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.ccd48
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.cid34
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.cpd11
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Exec.iad40
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Stub.iad29
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Svnt.iad40
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/XMI.xsd35
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/admin.dat7
-rw-r--r--modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/package.tpd8
-rwxr-xr-xmodules/CIAO/examples/DevGuideExamples/Messenger/descriptors/run_test.pl117
-rw-r--r--modules/CIAO/examples/DevGuideExamples/readme.txt12
-rw-r--r--modules/CIAO/examples/Display/Display_Base/Display_Base.idl46
-rw-r--r--modules/CIAO/examples/Display/Display_Base/Display_Base.mpc79
-rw-r--r--modules/CIAO/examples/Display/GPS/GPS.idl30
-rw-r--r--modules/CIAO/examples/Display/GPS/GPS.mpc117
-rw-r--r--modules/CIAO/examples/Display/GPS/GPSEI.idl33
-rw-r--r--modules/CIAO/examples/Display/GPS/GPS_exec.cpp137
-rw-r--r--modules/CIAO/examples/Display/GPS/GPS_exec.h111
-rw-r--r--modules/CIAO/examples/Display/GPS/GPS_tracing_exec.cpp131
-rw-r--r--modules/CIAO/examples/Display/GPS/GPS_tracing_exec.h112
-rw-r--r--modules/CIAO/examples/Display/NavDisplay/NavDisplay.idl29
-rw-r--r--modules/CIAO/examples/Display/NavDisplay/NavDisplay.mpc115
-rw-r--r--modules/CIAO/examples/Display/NavDisplay/NavDisplay_exec.cpp105
-rw-r--r--modules/CIAO/examples/Display/NavDisplay/NavDisplay_exec.h92
-rw-r--r--modules/CIAO/examples/Display/NavDisplayGUI_exec/AddNavUnitCmd.cpp28
-rw-r--r--modules/CIAO/examples/Display/NavDisplayGUI_exec/AddNavUnitCmd.h27
-rw-r--r--modules/CIAO/examples/Display/NavDisplayGUI_exec/Command.h20
-rw-r--r--modules/CIAO/examples/Display/NavDisplayGUI_exec/DetailView.cpp168
-rw-r--r--modules/CIAO/examples/Display/NavDisplayGUI_exec/DetailView.h49
-rw-r--r--modules/CIAO/examples/Display/NavDisplayGUI_exec/MapView.cpp40
-rw-r--r--modules/CIAO/examples/Display/NavDisplayGUI_exec/MapView.h23
-rw-r--r--modules/CIAO/examples/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc89
-rw-r--r--modules/CIAO/examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.cpp156
-rw-r--r--modules/CIAO/examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.h102
-rw-r--r--modules/CIAO/examples/Display/NavDisplayGUI_exec/NavUnit.cpp9
-rw-r--r--modules/CIAO/examples/Display/NavDisplayGUI_exec/NavUnit.h57
-rw-r--r--modules/CIAO/examples/Display/NavDisplayGUI_exec/NodeItem.cpp64
-rw-r--r--modules/CIAO/examples/Display/NavDisplayGUI_exec/NodeItem.h47
-rw-r--r--modules/CIAO/examples/Display/NavDisplayGUI_exec/QuitCmd.cpp25
-rw-r--r--modules/CIAO/examples/Display/NavDisplayGUI_exec/QuitCmd.h25
-rw-r--r--modules/CIAO/examples/Display/NavDisplayGUI_exec/RootPanel.cpp88
-rw-r--r--modules/CIAO/examples/Display/NavDisplayGUI_exec/RootPanel.h49
-rw-r--r--modules/CIAO/examples/Display/NavDisplayGUI_exec/UpdatePositionCmd.cpp30
-rw-r--r--modules/CIAO/examples/Display/NavDisplayGUI_exec/UpdatePositionCmd.h28
-rw-r--r--modules/CIAO/examples/Display/NavDisplayGUI_exec/Worker.cpp46
-rw-r--r--modules/CIAO/examples/Display/NavDisplayGUI_exec/Worker.h35
-rw-r--r--modules/CIAO/examples/Display/NavDisplayGUI_exec/trolltech.gifbin0 -> 42629 bytes
-rw-r--r--modules/CIAO/examples/Display/NavDisplayGUI_exec/worldmap1.gifbin0 -> 207612 bytes
-rw-r--r--modules/CIAO/examples/Display/NavDisplayGUI_exec/worldmap1.xpm651
-rw-r--r--modules/CIAO/examples/Display/README.html181
-rw-r--r--modules/CIAO/examples/Display/RateGen/RateGen.idl34
-rw-r--r--modules/CIAO/examples/Display/RateGen/RateGen.mpc135
-rw-r--r--modules/CIAO/examples/Display/RateGen/RateGen_exec.cpp289
-rw-r--r--modules/CIAO/examples/Display/RateGen/RateGen_exec.h163
-rw-r--r--modules/CIAO/examples/Display/RateGen/controller.cpp121
-rw-r--r--modules/CIAO/examples/Display/descriptors/DeploymentPlan.cdp26
-rw-r--r--modules/CIAO/examples/Display/descriptors/Modified_Deployment.xsd826
-rw-r--r--modules/CIAO/examples/Display/descriptors/NodeManagerMap.dat2
-rw-r--r--modules/CIAO/examples/Display/descriptors/XMI.xsd35
-rwxr-xr-xmodules/CIAO/examples/Display/descriptors/basicNodeDaemon.pl57
-rw-r--r--modules/CIAO/examples/Display/descriptors/flattened_deploymentplan.cdp305
-rwxr-xr-xmodules/CIAO/examples/Display/descriptors/run_NodeDaemons.pl40
-rwxr-xr-xmodules/CIAO/examples/Display/descriptors/run_test_without_ns.pl173
-rw-r--r--modules/CIAO/examples/Hello/Hello_Base/Hello_Base.idl21
-rw-r--r--modules/CIAO/examples/Hello/Hello_Base/Hello_Base.mpc78
-rw-r--r--modules/CIAO/examples/Hello/Receiver/Receiver.idl22
-rw-r--r--modules/CIAO/examples/Hello/Receiver/Receiver.mpc143
-rw-r--r--modules/CIAO/examples/Hello/Receiver/Receiver_exec.cpp166
-rw-r--r--modules/CIAO/examples/Hello/Receiver/Receiver_exec.h115
-rw-r--r--modules/CIAO/examples/Hello/Sender/Sender.idl44
-rw-r--r--modules/CIAO/examples/Hello/Sender/Sender.mpc140
-rw-r--r--modules/CIAO/examples/Hello/Sender/Sender_exec.cpp231
-rw-r--r--modules/CIAO/examples/Hello/Sender/Sender_exec.h185
-rw-r--r--modules/CIAO/examples/Hello/Sender/starter.cpp88
-rw-r--r--modules/CIAO/examples/Hello/descriptors/Aliased_Map.dat2
-rw-r--r--modules/CIAO/examples/Hello/descriptors/DeploymentPlan.cdp383
-rw-r--r--modules/CIAO/examples/Hello/descriptors/DeploymentPlan_without_ns.cdp317
-rw-r--r--modules/CIAO/examples/Hello/descriptors/Domain.cdd17
-rw-r--r--modules/CIAO/examples/Hello/descriptors/Hello.pcd10
-rw-r--r--modules/CIAO/examples/Hello/descriptors/NodeManagerMap.dat4
-rw-r--r--modules/CIAO/examples/Hello/descriptors/package.tpd8
-rwxr-xr-xmodules/CIAO/examples/Hello/descriptors/run_NodeDaemons.pl43
-rwxr-xr-xmodules/CIAO/examples/Hello/descriptors/run_test.pl205
-rwxr-xr-xmodules/CIAO/examples/Hello/descriptors/run_test_alias.pl195
-rwxr-xr-xmodules/CIAO/examples/Hello/descriptors/run_test_without_ns.pl181
-rw-r--r--modules/CIAO/examples/Hello/descriptors/svc_em.conf9
-rw-r--r--modules/CIAO/examples/Hello/descriptors_RTCCM/NodeManagerMap.dat2
-rw-r--r--modules/CIAO/examples/Hello/descriptors_RTCCM/RTsvc.conf5
-rw-r--r--modules/CIAO/examples/Hello/descriptors_RTCCM/input.csr70
-rw-r--r--modules/CIAO/examples/Hello/descriptors_RTCCM/rt-config-example.cdp215
-rw-r--r--modules/CIAO/examples/Hello/descriptors_RTCCM/rt-config-example.csr73
-rw-r--r--modules/CIAO/examples/Hello/descriptors_RTCCM/rt-example.cdp271
-rwxr-xr-xmodules/CIAO/examples/Hello/descriptors_RTCCM/rt_run_test.pl165
-rw-r--r--modules/CIAO/examples/Hello/step-by-step.html234
-rw-r--r--modules/CIAO/examples/Null_Component/Null_Component.idl39
-rw-r--r--modules/CIAO/examples/Null_Component/Null_Component.mpc112
-rw-r--r--modules/CIAO/examples/Null_Component/Null_Component_exec.cpp173
-rw-r--r--modules/CIAO/examples/Null_Component/Null_Component_exec.h118
-rw-r--r--modules/CIAO/examples/Null_Component/Null_Interface.idl22
-rw-r--r--modules/CIAO/examples/Null_Component/Null_Interface.mpc78
-rw-r--r--modules/CIAO/examples/Null_Component/StaticDAnCEApp.cpp101
-rw-r--r--modules/CIAO/examples/Null_Component/StaticDAnCEApp.mpc28
-rw-r--r--modules/CIAO/examples/Null_Component/descriptors/NodeMap.dat1
-rw-r--r--modules/CIAO/examples/Null_Component/descriptors/Null_Homed.cdp109
-rw-r--r--modules/CIAO/examples/Null_Component/descriptors/Null_Unhomed.cdp85
-rwxr-xr-xmodules/CIAO/examples/Null_Component/descriptors/run_test.pl182
-rw-r--r--modules/CIAO/examples/Null_Component/model/Null_Component.xme882
-rw-r--r--modules/CIAO/examples/Null_Component/plan.h37
-rw-r--r--modules/CIAO/examples/Philosophers/Philosophers.idl75
-rw-r--r--modules/CIAO/examples/Philosophers/README1
-rw-r--r--modules/CIAO/performance-tests/Benchmark/Benchmark.idl48
-rw-r--r--modules/CIAO/performance-tests/Benchmark/Benchmark.mpc98
-rw-r--r--modules/CIAO/performance-tests/Benchmark/LatencyTest.cpp22
-rw-r--r--modules/CIAO/performance-tests/Benchmark/LatencyTest.h31
-rw-r--r--modules/CIAO/performance-tests/Benchmark/Multi_Threaded/Client_Task.cpp30
-rw-r--r--modules/CIAO/performance-tests/Benchmark/Multi_Threaded/Client_Task.h29
-rw-r--r--modules/CIAO/performance-tests/Benchmark/Multi_Threaded/Multi_Threaded.mpc25
-rw-r--r--modules/CIAO/performance-tests/Benchmark/Multi_Threaded/NOTE.txt15
-rw-r--r--modules/CIAO/performance-tests/Benchmark/Multi_Threaded/README12
-rw-r--r--modules/CIAO/performance-tests/Benchmark/Multi_Threaded/client.cpp90
-rwxr-xr-xmodules/CIAO/performance-tests/Benchmark/Multi_Threaded/run_test.pl87
-rw-r--r--modules/CIAO/performance-tests/Benchmark/Multi_Threaded/svc.conf5
-rw-r--r--modules/CIAO/performance-tests/Benchmark/README22
-rw-r--r--modules/CIAO/performance-tests/Benchmark/RoundTrip/README9
-rw-r--r--modules/CIAO/performance-tests/Benchmark/RoundTrip/RoundTrip.idl30
-rw-r--r--modules/CIAO/performance-tests/Benchmark/RoundTrip/RoundTrip.mpc134
-rw-r--r--modules/CIAO/performance-tests/Benchmark/RoundTrip/RoundTripEI.idl33
-rw-r--r--modules/CIAO/performance-tests/Benchmark/RoundTrip/RoundTrip_exec.cpp124
-rw-r--r--modules/CIAO/performance-tests/Benchmark/RoundTrip/RoundTrip_exec.h103
-rw-r--r--modules/CIAO/performance-tests/Benchmark/RoundTrip/client.cpp174
-rwxr-xr-xmodules/CIAO/performance-tests/Benchmark/RoundTrip/run_test.pl115
-rw-r--r--modules/CIAO/performance-tests/Benchmark/RoundTrip/svc.conf6
-rw-r--r--modules/CIAO/performance-tests/Benchmark/RoundTripClient/RoundTripClient.idl31
-rw-r--r--modules/CIAO/performance-tests/Benchmark/RoundTripClient/RoundTripClient.mpc134
-rw-r--r--modules/CIAO/performance-tests/Benchmark/RoundTripClient/RoundTripClientEI.idl34
-rw-r--r--modules/CIAO/performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec.cpp158
-rw-r--r--modules/CIAO/performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec.h92
-rw-r--r--modules/CIAO/performance-tests/Benchmark/RoundTripClient/client.cpp49
-rwxr-xr-xmodules/CIAO/performance-tests/Benchmark/RoundTripClient/run_test.pl103
-rwxr-xr-xmodules/CIAO/performance-tests/Benchmark/RoundTripClient/run_test_ior_cad.pl78
-rw-r--r--modules/CIAO/performance-tests/Benchmark/RoundTripServer/LatencyTest.cpp25
-rw-r--r--modules/CIAO/performance-tests/Benchmark/RoundTripServer/LatencyTest.h40
-rw-r--r--modules/CIAO/performance-tests/Benchmark/RoundTripServer/RoundTripServer.mpc22
-rw-r--r--modules/CIAO/performance-tests/Benchmark/RoundTripServer/Test.idl16
-rw-r--r--modules/CIAO/performance-tests/Benchmark/RoundTripServer/server.cpp94
-rw-r--r--modules/CIAO/performance-tests/Benchmark/descriptors/Benchmark.cad34
-rw-r--r--modules/CIAO/performance-tests/Benchmark/descriptors/CIAO_Installation_Data.ini5
-rw-r--r--modules/CIAO/performance-tests/Benchmark/descriptors/Multi_Threaded.cad112
-rw-r--r--modules/CIAO/performance-tests/Benchmark/descriptors/NOTE.txt65
-rw-r--r--modules/CIAO/performance-tests/Benchmark/descriptors/RoundTrip.csd46
-rw-r--r--modules/CIAO/performance-tests/Benchmark/descriptors/RoundTrip.ssd43
-rw-r--r--modules/CIAO/performance-tests/Benchmark/descriptors/RoundTripClient.cad49
-rw-r--r--modules/CIAO/performance-tests/Benchmark/descriptors/RoundTripClient.csd44
-rw-r--r--modules/CIAO/performance-tests/Benchmark/descriptors/RoundTripClient.ssd39
-rw-r--r--modules/CIAO/performance-tests/Benchmark/descriptors/Test-IOR.cad41
-rw-r--r--modules/CIAO/performance-tests/Benchmark/descriptors/test-multi-process.dat5
-rw-r--r--modules/CIAO/performance-tests/Benchmark/descriptors/test.dat2
-rw-r--r--modules/CIAO/performance-tests/Benchmark/server.cpp94
-rw-r--r--modules/CIAO/performance-tests/Benchmark/svc.conf6
-rw-r--r--modules/CIAO/performance-tests/Protocols/Controller/Controller.cpp229
-rw-r--r--modules/CIAO/performance-tests/Protocols/Controller/Controller.mpc12
-rw-r--r--modules/CIAO/performance-tests/Protocols/Receiver/Receiver.idl22
-rw-r--r--modules/CIAO/performance-tests/Protocols/Receiver/Receiver.mpc116
-rw-r--r--modules/CIAO/performance-tests/Protocols/Receiver/Receiver_exec.cpp287
-rw-r--r--modules/CIAO/performance-tests/Protocols/Receiver/Receiver_exec.h94
-rw-r--r--modules/CIAO/performance-tests/Protocols/Sender/Custom_Network_Priority_Mapping.cpp133
-rw-r--r--modules/CIAO/performance-tests/Protocols/Sender/Custom_Network_Priority_Mapping.h58
-rw-r--r--modules/CIAO/performance-tests/Protocols/Sender/Sender.idl41
-rw-r--r--modules/CIAO/performance-tests/Protocols/Sender/Sender.mpc116
-rw-r--r--modules/CIAO/performance-tests/Protocols/Sender/Sender_exec.cpp697
-rw-r--r--modules/CIAO/performance-tests/Protocols/Sender/Sender_exec.h62
-rw-r--r--modules/CIAO/performance-tests/Protocols/common/Protocols.idl32
-rw-r--r--modules/CIAO/performance-tests/Protocols/common/Protocols.mpc78
-rw-r--r--modules/CIAO/performance-tests/Protocols/descriptors/CIAO_Installation_Data.ini5
-rw-r--r--modules/CIAO/performance-tests/Protocols/descriptors/Receiver.csd40
-rw-r--r--modules/CIAO/performance-tests/Protocols/descriptors/Receiver.ssd37
-rw-r--r--modules/CIAO/performance-tests/Protocols/descriptors/Sender.csd40
-rw-r--r--modules/CIAO/performance-tests/Protocols/descriptors/Sender.ssd37
-rw-r--r--modules/CIAO/performance-tests/Protocols/descriptors/default.cad59
-rw-r--r--modules/CIAO/performance-tests/Protocols/descriptors/remote.cad62
-rwxr-xr-xmodules/CIAO/performance-tests/Protocols/descriptors/run_test.pl77
-rw-r--r--modules/CIAO/performance-tests/Protocols/descriptors/svc.conf1
-rw-r--r--modules/CIAO/performance-tests/Protocols/descriptors/test.dat2
-rw-r--r--modules/CIAO/performance-tests/mico/mico-thrput-st/README26
-rwxr-xr-xmodules/CIAO/performance-tests/mico/mico-thrput-st/RoundTrip40
-rw-r--r--modules/CIAO/performance-tests/mico/mico-thrput-st/RoundTrip.idl13
-rw-r--r--modules/CIAO/performance-tests/mico/mico-thrput-st/RoundTrip_impl.cc10
-rw-r--r--modules/CIAO/performance-tests/mico/mico-thrput-st/RoundTrip_impl.h9
-rw-r--r--modules/CIAO/performance-tests/mico/mico-thrput-st/client.cc150
-rwxr-xr-xmodules/CIAO/performance-tests/mico/mico-thrput-st/mico-env14
-rw-r--r--modules/CIAO/performance-tests/mico/mico-thrput-st/server.cc43
-rw-r--r--modules/CIAO/rules.ciao.GNU66
-rw-r--r--modules/CIAO/tests/Bug_2130_Regression/Logs/PROBLEM-REPORT-FORM93
-rw-r--r--modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.idl27
-rw-r--r--modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.mpc121
-rw-r--r--modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPointEI.idl19
-rw-r--r--modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.cpp592
-rw-r--r--modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.h244
-rw-r--r--modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/controller.cpp197
-rw-r--r--modules/CIAO/tests/Bug_2130_Regression/descriptors/DeploymentPlan.cdp117
-rw-r--r--modules/CIAO/tests/Bug_2130_Regression/descriptors/TestNodeManagerMap.dat1
-rw-r--r--modules/CIAO/tests/Bug_2130_Regression/descriptors/rt-config-example.csr30
-rwxr-xr-xmodules/CIAO/tests/Bug_2130_Regression/descriptors/run_test.pl179
-rw-r--r--modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW.idl52
-rw-r--r--modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW.mpc44
-rw-r--r--modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW_skel_export.h58
-rw-r--r--modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW_stub_export.h58
-rw-r--r--modules/CIAO/tests/CIAO_ComponentServer/Activator/Activator.mpc6
-rw-r--r--modules/CIAO/tests/CIAO_ComponentServer/Activator/client.cpp191
-rwxr-xr-xmodules/CIAO/tests/CIAO_ComponentServer/Activator/run_test.pl35
-rw-r--r--modules/CIAO/tests/CIAO_ComponentServer/Basic/Basic.mpc6
-rw-r--r--modules/CIAO/tests/CIAO_ComponentServer/Basic/client.cpp143
-rwxr-xr-xmodules/CIAO/tests/CIAO_ComponentServer/Basic/run_test.pl110
-rw-r--r--modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.idl21
-rw-r--r--modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.mpc112
-rw-r--r--modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec.cpp131
-rw-r--r--modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec.h108
-rw-r--r--modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/client.cpp187
-rwxr-xr-xmodules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/run_test.pl33
-rw-r--r--modules/CIAO/tests/CIDL/CodeGen/Basic.idl65
-rw-r--r--modules/CIAO/tests/CIDL/CodeGen/Basic.mpc80
-rw-r--r--modules/CIAO/tests/CIDL/CodeGen/CodeGen.idl46
-rw-r--r--modules/CIAO/tests/CIDL/CodeGen/CodeGen.mpc116
-rw-r--r--modules/CIAO/tests/CIDL/CodeGen/README40
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes.idl51
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes.mpc17
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink.idl29
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink.mpc18
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource.idl24
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource.mpc17
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets.idl46
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets.mpc17
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles.idl68
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles.mpc21
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent.idl96
-rw-r--r--modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent.mpc21
-rw-r--r--modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent_exec_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Events/Abstract/Abstract.idl38
-rw-r--r--modules/CIAO/tests/IDL3/Events/Abstract/Abstract.mpc17
-rw-r--r--modules/CIAO/tests/IDL3/Events/Abstract/Abstract_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Events/Abstract/Abstract_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Events/Any/Any.mpc26
-rw-r--r--modules/CIAO/tests/IDL3/Events/Any/EventAny.idl16
-rw-r--r--modules/CIAO/tests/IDL3/Events/Any/README35
-rw-r--r--modules/CIAO/tests/IDL3/Events/Any/main.cpp85
-rwxr-xr-xmodules/CIAO/tests/IDL3/Events/Any/run_test.pl31
-rw-r--r--modules/CIAO/tests/IDL3/Events/Regular/Regular.idl44
-rw-r--r--modules/CIAO/tests/IDL3/Events/Regular/Regular.mpc20
-rw-r--r--modules/CIAO/tests/IDL3/Events/Regular/Regular_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Events/Regular/Regular_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes.idl54
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes.mpc17
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Basic/Basic.idl31
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Basic/Basic.mpc17
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Basic/Basic_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Basic/Basic_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Factory/Factory.idl35
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Factory/Factory.mpc17
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Factory/Factory_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Factory/Factory_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Finder/Finder.idl30
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Finder/Finder.mpc17
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Finder/Finder_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Finder/Finder_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance.idl33
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance.mpc17
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/All/README88
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/All/all.mpc37
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/All/convert.idl53
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/All/include.idl35
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/All/keyword_clash.idl89
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/All/pass_through.idl94
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/All/raw_include.idl27
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.idl25
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.mpc17
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.idl27
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.mpc17
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.idl38
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.mpc17
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.idl28
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.mpc18
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events.idl22
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events.mpc17
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes.idl28
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes.mpc18
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Lookup/README21
-rw-r--r--modules/CIAO/tests/IDL3/Lookup/lookup_test.idl76
-rw-r--r--modules/CIAO/tests/IDL3/Lookup/lookup_test.mpc18
-rwxr-xr-xmodules/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/run_test.pl56
-rw-r--r--modules/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/test.idl11
-rw-r--r--modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/IDL2XMI_Test.mpc14
-rw-r--r--modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.cpp103
-rw-r--r--modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.h67
-rwxr-xr-xmodules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/run_test.pl59
-rw-r--r--modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/xmlvalidator.cpp64
-rw-r--r--modules/CIAO/tests/IDL3_to_XMI/XMI.dtd6384
-rwxr-xr-xmodules/CIAO/tests/IDL3_to_XMI/XMI_For_Array/run_test.pl56
-rw-r--r--modules/CIAO/tests/IDL3_to_XMI/XMI_For_Array/test.idl20
-rw-r--r--modules/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/File1.idl15
-rw-r--r--modules/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/File2.idl20
-rwxr-xr-xmodules/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/run_test.pl56
-rwxr-xr-xmodules/CIAO/tests/IDL3_to_XMI/XMI_For_Module_Reopen/run_test.pl79
-rw-r--r--modules/CIAO/tests/IDL3_to_XMI/XMI_For_Module_Reopen/test.idl43
-rwxr-xr-xmodules/CIAO/tests/IDL3_to_XMI/XMI_For_Native/run_test.pl63
-rw-r--r--modules/CIAO/tests/IDL3_to_XMI/XMI_For_Native/test.idl6
-rwxr-xr-xmodules/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/run_test.pl56
-rw-r--r--modules/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/test.idl25
-rw-r--r--modules/CIAO/tests/IDL_Test/Cornucopia/Cornucopia.idl134
-rw-r--r--modules/CIAO/tests/IDL_Test/Cornucopia/Cornucopia.mpc129
-rw-r--r--modules/CIAO/tests/IDL_Test/Cornucopia/README30
-rw-r--r--modules/CIAO/tests/IDL_Test/Included_Component/IC_Bar.idl8
-rw-r--r--modules/CIAO/tests/IDL_Test/Included_Component/IC_Bar.mpc105
-rw-r--r--modules/CIAO/tests/IDL_Test/Included_Component/IC_Foo.idl12
-rw-r--r--modules/CIAO/tests/IDL_Test/Included_Component/IC_Foo.mpc104
-rw-r--r--modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Bar.idl9
-rw-r--r--modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Bar.mpc137
-rw-r--r--modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Foo.idl13
-rw-r--r--modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Foo.mpc132
-rw-r--r--modules/CIAO/tests/IDL_Test/Keywords/Keyword_Clash.idl110
-rw-r--r--modules/CIAO/tests/IDL_Test/Keywords/Keywords.mpc109
-rw-r--r--modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export.idl8
-rw-r--r--modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export.mpc128
-rw-r--r--modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export_exec.cpp106
-rw-r--r--modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export_exec.h84
-rw-r--r--modules/CIAO/tests/IDL_Test/PIDL_Include/PIDLInclude.idl14
-rw-r--r--modules/CIAO/tests/IDL_Test/PIDL_Include/PIDLInclude.mpc131
-rw-r--r--modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/Basic.idl54
-rw-r--r--modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/Basic.mpc82
-rw-r--r--modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/CodeGen.idl47
-rw-r--r--modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/README12
-rw-r--r--modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/Reused_Facet_Interface.mpc112
-rw-r--r--modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base.idl17
-rw-r--r--modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base.mpc65
-rw-r--r--modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base_skel_export.h58
-rw-r--r--modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base_stub_export.h58
-rw-r--r--modules/CIAO/tests/Minimum/Receiver/Receiver.idl18
-rw-r--r--modules/CIAO/tests/Minimum/Receiver/Receiver.mpc134
-rw-r--r--modules/CIAO/tests/Minimum/Receiver/Receiver_exec.cpp132
-rw-r--r--modules/CIAO/tests/Minimum/Receiver/Receiver_exec.h98
-rw-r--r--modules/CIAO/tests/Minimum/Sender/Sender.idl28
-rw-r--r--modules/CIAO/tests/Minimum/Sender/Sender.mpc113
-rw-r--r--modules/CIAO/tests/Minimum/Sender/Sender_exec.cpp138
-rw-r--r--modules/CIAO/tests/Minimum/Sender/Sender_exec.h101
-rw-r--r--modules/CIAO/tests/tests.mwc9
-rw-r--r--modules/CIAO/tools/Config_Handlers/ADD_Handler.cpp177
-rw-r--r--modules/CIAO/tools/Config_Handlers/ADD_Handler.h71
-rw-r--r--modules/CIAO/tools/Config_Handlers/Any_Handler.cpp59
-rw-r--r--modules/CIAO/tools/Config_Handlers/Any_Handler.h62
-rw-r--r--modules/CIAO/tools/Config_Handlers/Basic_Deployment_Data.cpp17580
-rw-r--r--modules/CIAO/tools/Config_Handlers/Basic_Deployment_Data.hpp8561
-rw-r--r--modules/CIAO/tools/Config_Handlers/CCD_Handler.cpp181
-rw-r--r--modules/CIAO/tools/Config_Handlers/CCD_Handler.h57
-rw-r--r--modules/CIAO/tools/Config_Handlers/CEPE_Handler.cpp51
-rw-r--r--modules/CIAO/tools/Config_Handlers/CEPE_Handler.h67
-rw-r--r--modules/CIAO/tools/Config_Handlers/CPD_Handler.cpp152
-rw-r--r--modules/CIAO/tools/Config_Handlers/CPD_Handler.h68
-rw-r--r--modules/CIAO/tools/Config_Handlers/CRDD_Handler.cpp66
-rw-r--r--modules/CIAO/tools/Config_Handlers/CRDD_Handler.h67
-rw-r--r--modules/CIAO/tools/Config_Handlers/Common.h46
-rw-r--r--modules/CIAO/tools/Config_Handlers/ComponentPropertyDescription_Handler.cpp41
-rw-r--r--modules/CIAO/tools/Config_Handlers/ComponentPropertyDescription_Handler.h61
-rw-r--r--modules/CIAO/tools/Config_Handlers/Config_Handlers.mpc139
-rw-r--r--modules/CIAO/tools/Config_Handlers/Config_Handlers_Common_Export.h58
-rw-r--r--modules/CIAO/tools/Config_Handlers/Config_Handlers_Export.h58
-rw-r--r--modules/CIAO/tools/Config_Handlers/DD_Handler.cpp212
-rw-r--r--modules/CIAO/tools/Config_Handlers/DD_Handler.h114
-rw-r--r--modules/CIAO/tools/Config_Handlers/DP_Handler.cpp276
-rw-r--r--modules/CIAO/tools/Config_Handlers/DP_Handler.h87
-rw-r--r--modules/CIAO/tools/Config_Handlers/DP_PCD_Handler.cpp107
-rw-r--r--modules/CIAO/tools/Config_Handlers/DP_PCD_Handler.h67
-rw-r--r--modules/CIAO/tools/Config_Handlers/DataType_Handler.cpp179
-rw-r--r--modules/CIAO/tools/Config_Handlers/DataType_Handler.h62
-rw-r--r--modules/CIAO/tools/Config_Handlers/Deployment.cpp854
-rw-r--r--modules/CIAO/tools/Config_Handlers/Deployment.hpp221
-rw-r--r--modules/CIAO/tools/Config_Handlers/DnC_Dump.cpp982
-rw-r--r--modules/CIAO/tools/Config_Handlers/DnC_Dump.h153
-rw-r--r--modules/CIAO/tools/Config_Handlers/DnC_Dump_T.cpp90
-rw-r--r--modules/CIAO/tools/Config_Handlers/DnC_Dump_T.h50
-rw-r--r--modules/CIAO/tools/Config_Handlers/Dump_Obj.cpp65
-rw-r--r--modules/CIAO/tools/Config_Handlers/Dump_Obj.h77
-rw-r--r--modules/CIAO/tools/Config_Handlers/DynAny_Handler.mpc22
-rw-r--r--modules/CIAO/tools/Config_Handlers/DynAny_Handler/DataType_Handler.cpp181
-rw-r--r--modules/CIAO/tools/Config_Handlers/DynAny_Handler/DataType_Handler.h60
-rw-r--r--modules/CIAO/tools/Config_Handlers/DynAny_Handler/DynAlias_Handler.cpp195
-rw-r--r--modules/CIAO/tools/Config_Handlers/DynAny_Handler/DynAlias_Handler.h52
-rw-r--r--modules/CIAO/tools/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp379
-rw-r--r--modules/CIAO/tools/Config_Handlers/DynAny_Handler/DynAny_Handler.h85
-rw-r--r--modules/CIAO/tools/Config_Handlers/DynAny_Handler/DynAny_Handler_Export.h54
-rw-r--r--modules/CIAO/tools/Config_Handlers/DynAny_Handler/DynEnum_Handler.cpp109
-rw-r--r--modules/CIAO/tools/Config_Handlers/DynAny_Handler/DynEnum_Handler.h52
-rw-r--r--modules/CIAO/tools/Config_Handlers/DynAny_Handler/DynSequence_Handler.cpp163
-rw-r--r--modules/CIAO/tools/Config_Handlers/DynAny_Handler/DynSequence_Handler.h52
-rw-r--r--modules/CIAO/tools/Config_Handlers/DynAny_Handler/DynStruct_Handler.cpp130
-rw-r--r--modules/CIAO/tools/Config_Handlers/DynAny_Handler/DynStruct_Handler.h52
-rw-r--r--modules/CIAO/tools/Config_Handlers/DynAny_Handler/dynany_test.idl28
-rw-r--r--modules/CIAO/tools/Config_Handlers/DynAny_Handler/test.cpp291
-rw-r--r--modules/CIAO/tools/Config_Handlers/DynAny_Handler/test.mpc16
-rw-r--r--modules/CIAO/tools/Config_Handlers/ERE_Handler.cpp61
-rw-r--r--modules/CIAO/tools/Config_Handlers/ERE_Handler.h70
-rw-r--r--modules/CIAO/tools/Config_Handlers/ESD_Handler.cpp124
-rw-r--r--modules/CIAO/tools/Config_Handlers/ESD_Handler.h69
-rw-r--r--modules/CIAO/tools/Config_Handlers/IDD_Handler.cpp165
-rw-r--r--modules/CIAO/tools/Config_Handlers/IDD_Handler.h70
-rw-r--r--modules/CIAO/tools/Config_Handlers/IDREF_Base.cpp111
-rw-r--r--modules/CIAO/tools/Config_Handlers/IDREF_Base.h89
-rw-r--r--modules/CIAO/tools/Config_Handlers/ID_Handler.cpp45
-rw-r--r--modules/CIAO/tools/Config_Handlers/ID_Handler.h78
-rw-r--r--modules/CIAO/tools/Config_Handlers/IRDD_Handler.cpp118
-rw-r--r--modules/CIAO/tools/Config_Handlers/IRDD_Handler.h74
-rw-r--r--modules/CIAO/tools/Config_Handlers/MDD_Handler.cpp174
-rw-r--r--modules/CIAO/tools/Config_Handlers/MDD_Handler.h68
-rw-r--r--modules/CIAO/tools/Config_Handlers/PCD_Handler.cpp135
-rw-r--r--modules/CIAO/tools/Config_Handlers/PCD_Handler.h75
-rw-r--r--modules/CIAO/tools/Config_Handlers/PL_Handler.cpp52
-rw-r--r--modules/CIAO/tools/Config_Handlers/PL_Handler.h53
-rw-r--r--modules/CIAO/tools/Config_Handlers/PSPE_Handler.cpp148
-rw-r--r--modules/CIAO/tools/Config_Handlers/PSPE_Handler.h65
-rw-r--r--modules/CIAO/tools/Config_Handlers/Package_Handlers/CAD_Handler.cpp271
-rw-r--r--modules/CIAO/tools/Config_Handlers/Package_Handlers/CAD_Handler.h59
-rw-r--r--modules/CIAO/tools/Config_Handlers/Package_Handlers/CID_Handler.cpp390
-rw-r--r--modules/CIAO/tools/Config_Handlers/Package_Handlers/CID_Handler.h67
-rw-r--r--modules/CIAO/tools/Config_Handlers/Package_Handlers/CPD_Handler.cpp160
-rw-r--r--modules/CIAO/tools/Config_Handlers/Package_Handlers/CPD_Handler.h74
-rw-r--r--modules/CIAO/tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.cpp165
-rw-r--r--modules/CIAO/tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.h54
-rw-r--r--modules/CIAO/tools/Config_Handlers/Package_Handlers/IAD_Handler.cpp124
-rw-r--r--modules/CIAO/tools/Config_Handlers/Package_Handlers/IAD_Handler.h66
-rw-r--r--modules/CIAO/tools/Config_Handlers/Package_Handlers/NIA_Handler.h65
-rw-r--r--modules/CIAO/tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp165
-rw-r--r--modules/CIAO/tools/Config_Handlers/Package_Handlers/PCD_Handler.h69
-rw-r--r--modules/CIAO/tools/Config_Handlers/Package_Handlers/PC_Intf.cpp75
-rw-r--r--modules/CIAO/tools/Config_Handlers/Package_Handlers/PC_Intf.h58
-rw-r--r--modules/CIAO/tools/Config_Handlers/Package_Handlers/Package_Handlers.mpc52
-rw-r--r--modules/CIAO/tools/Config_Handlers/Package_Handlers/Packaging_Handlers_Export.h58
-rw-r--r--modules/CIAO/tools/Config_Handlers/Package_Handlers/SID_Handler.cpp142
-rw-r--r--modules/CIAO/tools/Config_Handlers/Package_Handlers/SID_Handler.h71
-rw-r--r--modules/CIAO/tools/Config_Handlers/Package_Handlers/test.cpp113
-rw-r--r--modules/CIAO/tools/Config_Handlers/Property_Handler.cpp56
-rw-r--r--modules/CIAO/tools/Config_Handlers/Property_Handler.h70
-rw-r--r--modules/CIAO/tools/Config_Handlers/RDD_Handler.cpp55
-rw-r--r--modules/CIAO/tools/Config_Handlers/RDD_Handler.h63
-rw-r--r--modules/CIAO/tools/Config_Handlers/Req_Handler.cpp57
-rw-r--r--modules/CIAO/tools/Config_Handlers/Req_Handler.h71
-rw-r--r--modules/CIAO/tools/Config_Handlers/STD_CID_Handler.cpp173
-rw-r--r--modules/CIAO/tools/Config_Handlers/STD_CID_Handler.h75
-rw-r--r--modules/CIAO/tools/Config_Handlers/STD_CPD_Handler.cpp59
-rw-r--r--modules/CIAO/tools/Config_Handlers/STD_CPD_Handler.h78
-rw-r--r--modules/CIAO/tools/Config_Handlers/STD_IAD_Handler.cpp46
-rw-r--r--modules/CIAO/tools/Config_Handlers/STD_IAD_Handler.h64
-rw-r--r--modules/CIAO/tools/Config_Handlers/STD_PCD_Handler.cpp52
-rw-r--r--modules/CIAO/tools/Config_Handlers/STD_PCD_Handler.h74
-rw-r--r--modules/CIAO/tools/Config_Handlers/STD_PC_Intf.cpp71
-rw-r--r--modules/CIAO/tools/Config_Handlers/STD_PC_Intf.h62
-rw-r--r--modules/CIAO/tools/Config_Handlers/SatisfierProperty_Handler.cpp126
-rw-r--r--modules/CIAO/tools/Config_Handlers/SatisfierProperty_Handler.h69
-rw-r--r--modules/CIAO/tools/Config_Handlers/Utils/Exceptions.h39
-rw-r--r--modules/CIAO/tools/Config_Handlers/Utils/Functors.h87
-rw-r--r--modules/CIAO/tools/Config_Handlers/XMI.cpp888
-rw-r--r--modules/CIAO/tools/Config_Handlers/XMI.hpp397
-rw-r--r--modules/CIAO/tools/Config_Handlers/XMLSchema/Traversal.hpp77
-rw-r--r--modules/CIAO/tools/Config_Handlers/XMLSchema/Traversal.ipp10
-rw-r--r--modules/CIAO/tools/Config_Handlers/XMLSchema/Traversal.tpp11
-rw-r--r--modules/CIAO/tools/Config_Handlers/XMLSchema/TypeInfo.hpp22
-rw-r--r--modules/CIAO/tools/Config_Handlers/XMLSchema/TypeInfo.ipp7
-rw-r--r--modules/CIAO/tools/Config_Handlers/XMLSchema/TypeInfo.tpp98
-rw-r--r--modules/CIAO/tools/Config_Handlers/XMLSchema/Types.hpp670
-rw-r--r--modules/CIAO/tools/Config_Handlers/XMLSchema/Types.ipp8
-rw-r--r--modules/CIAO/tools/Config_Handlers/XMLSchema/Types.tpp9
-rw-r--r--modules/CIAO/tools/Config_Handlers/XMLSchema/Writer.hpp159
-rw-r--r--modules/CIAO/tools/Config_Handlers/XMLSchema/Writer.ipp10
-rw-r--r--modules/CIAO/tools/Config_Handlers/XMLSchema/Writer.tpp10
-rw-r--r--modules/CIAO/tools/Config_Handlers/XMLSchema/id_map.hpp138
-rw-r--r--modules/CIAO/tools/Config_Handlers/XML_File_Intf.cpp103
-rw-r--r--modules/CIAO/tools/Config_Handlers/XML_File_Intf.h56
-rw-r--r--modules/CIAO/tools/Config_Handlers/XML_Typedefs.cpp14
-rw-r--r--modules/CIAO/tools/Config_Handlers/XML_Typedefs.h38
-rw-r--r--modules/CIAO/tools/Config_Handlers/XSCRT/Elements.hpp572
-rw-r--r--modules/CIAO/tools/Config_Handlers/XSCRT/Elements.ipp7
-rw-r--r--modules/CIAO/tools/Config_Handlers/XSCRT/Elements.tpp7
-rw-r--r--modules/CIAO/tools/Config_Handlers/XSCRT/ExtendedTypeInfo.hpp182
-rw-r--r--modules/CIAO/tools/Config_Handlers/XSCRT/ExtendedTypeInfo.ipp141
-rw-r--r--modules/CIAO/tools/Config_Handlers/XSCRT/Parser.hpp67
-rw-r--r--modules/CIAO/tools/Config_Handlers/XSCRT/Parser.ipp7
-rw-r--r--modules/CIAO/tools/Config_Handlers/XSCRT/Parser.tpp7
-rw-r--r--modules/CIAO/tools/Config_Handlers/XSCRT/Traversal.hpp266
-rw-r--r--modules/CIAO/tools/Config_Handlers/XSCRT/Traversal.ipp7
-rw-r--r--modules/CIAO/tools/Config_Handlers/XSCRT/Traversal.tpp195
-rw-r--r--modules/CIAO/tools/Config_Handlers/XSCRT/Writer.hpp81
-rw-r--r--modules/CIAO/tools/Config_Handlers/XSCRT/Writer.ipp7
-rw-r--r--modules/CIAO/tools/Config_Handlers/XSCRT/Writer.tpp7
-rw-r--r--modules/CIAO/tools/Config_Handlers/XSCRT/XML.hpp493
-rw-r--r--modules/CIAO/tools/Config_Handlers/XSCRT/XML.ipp7
-rw-r--r--modules/CIAO/tools/Config_Handlers/XSCRT/XML.tpp7
-rw-r--r--modules/CIAO/tools/Config_Handlers/XSCRT/XMLSchema.hpp588
-rw-r--r--modules/CIAO/tools/Config_Handlers/XSC_XML_Handlers_Export.h54
-rw-r--r--modules/CIAO/tools/Config_Handlers/ccd.cpp1502
-rw-r--r--modules/CIAO/tools/Config_Handlers/ccd.hpp741
-rw-r--r--modules/CIAO/tools/Config_Handlers/cdd.cpp3334
-rw-r--r--modules/CIAO/tools/Config_Handlers/cdd.hpp1654
-rw-r--r--modules/CIAO/tools/Config_Handlers/cdp.cpp2366
-rw-r--r--modules/CIAO/tools/Config_Handlers/cdp.hpp1187
-rw-r--r--modules/CIAO/tools/Config_Handlers/cid.cpp6047
-rw-r--r--modules/CIAO/tools/Config_Handlers/cid.hpp2885
-rw-r--r--modules/CIAO/tools/Config_Handlers/cpd.cpp2081
-rw-r--r--modules/CIAO/tools/Config_Handlers/cpd.hpp1008
-rw-r--r--modules/CIAO/tools/Config_Handlers/iad.cpp1491
-rw-r--r--modules/CIAO/tools/Config_Handlers/iad.hpp748
-rw-r--r--modules/CIAO/tools/Config_Handlers/pcd.cpp1304
-rw-r--r--modules/CIAO/tools/Config_Handlers/pcd.hpp647
-rw-r--r--modules/CIAO/tools/Config_Handlers/test.cdp1827
-rw-r--r--modules/CIAO/tools/Config_Handlers/test.cpp119
-rw-r--r--modules/CIAO/tools/Config_Handlers/toplevel.cpp348
-rw-r--r--modules/CIAO/tools/Config_Handlers/toplevel.hpp220
-rw-r--r--modules/CIAO/tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc66
-rw-r--r--modules/CIAO/tools/IDL3_to_IDL2/README140
-rw-r--r--modules/CIAO/tools/IDL3_to_IDL2/TAO_IDL3_TO_IDL2_BE_Export.h58
-rw-r--r--modules/CIAO/tools/IDL3_to_IDL2/basic_visitor.cpp1211
-rw-r--r--modules/CIAO/tools/IDL3_to_IDL2/basic_visitor.h129
-rw-r--r--modules/CIAO/tools/IDL3_to_IDL2/be_extern.h86
-rw-r--r--modules/CIAO/tools/IDL3_to_IDL2/be_global.cpp197
-rw-r--r--modules/CIAO/tools/IDL3_to_IDL2/be_global.h116
-rw-r--r--modules/CIAO/tools/IDL3_to_IDL2/be_helper.cpp435
-rw-r--r--modules/CIAO/tools/IDL3_to_IDL2/be_helper.h180
-rw-r--r--modules/CIAO/tools/IDL3_to_IDL2/be_init.cpp32
-rw-r--r--modules/CIAO/tools/IDL3_to_IDL2/be_produce.cpp168
-rw-r--r--modules/CIAO/tools/IDL3_to_IDL2/be_sunsoft.cpp157
-rw-r--r--modules/CIAO/tools/IDL3_to_IDL2/be_sunsoft.h45
-rw-r--r--modules/CIAO/tools/IDL3_to_IDL2/checking_visitor.cpp461
-rw-r--r--modules/CIAO/tools/IDL3_to_IDL2/checking_visitor.h113
-rw-r--r--modules/CIAO/tools/IDL3_to_IDL2/identifier_helper.cpp123
-rw-r--r--modules/CIAO/tools/IDL3_to_IDL2/identifier_helper.h66
-rw-r--r--modules/CIAO/tools/IDL3_to_IDL2/idl3_to_idl2_visitor.cpp779
-rw-r--r--modules/CIAO/tools/IDL3_to_IDL2/idl3_to_idl2_visitor.h79
-rw-r--r--modules/CIAO/tools/IDL3_to_XMI/CIAO_IDL3_TO_XMI_Export.h58
-rw-r--r--modules/CIAO/tools/IDL3_to_XMI/IDL3_TO_XMI.mpc65
-rw-r--r--modules/CIAO/tools/IDL3_to_XMI/IDL3_to_XMI_visitor.cpp2688
-rw-r--r--modules/CIAO/tools/IDL3_to_XMI/IDL3_to_XMI_visitor.h325
-rw-r--r--modules/CIAO/tools/IDL3_to_XMI/IR_Simulator_visitor.cpp1175
-rw-r--r--modules/CIAO/tools/IDL3_to_XMI/IR_Simulator_visitor.h132
-rw-r--r--modules/CIAO/tools/IDL3_to_XMI/Literals.cpp156
-rw-r--r--modules/CIAO/tools/IDL3_to_XMI/Literals.h170
-rw-r--r--modules/CIAO/tools/IDL3_to_XMI/be_extern.h86
-rw-r--r--modules/CIAO/tools/IDL3_to_XMI/be_global.cpp222
-rw-r--r--modules/CIAO/tools/IDL3_to_XMI/be_global.h103
-rw-r--r--modules/CIAO/tools/IDL3_to_XMI/be_helper.cpp438
-rw-r--r--modules/CIAO/tools/IDL3_to_XMI/be_helper.h176
-rw-r--r--modules/CIAO/tools/IDL3_to_XMI/be_init.cpp31
-rw-r--r--modules/CIAO/tools/IDL3_to_XMI/be_produce.cpp139
-rw-r--r--modules/CIAO/tools/IDL3_to_XMI/be_sunsoft.cpp193
-rw-r--r--modules/CIAO/tools/IDL3_to_XMI/be_sunsoft.h39
-rw-r--r--modules/CIAO/tools/IDL3_to_XMI/identifier_helper.cpp115
-rw-r--r--modules/CIAO/tools/IDL3_to_XMI/identifier_helper.h64
-rw-r--r--modules/CIAO/tools/XML/CIAO_XML_Utils_Export.h54
-rw-r--r--modules/CIAO/tools/XML/XML.mpc13
-rw-r--r--modules/CIAO/tools/XML/XML_Error_Handler.cpp70
-rw-r--r--modules/CIAO/tools/XML/XML_Error_Handler.h63
-rw-r--r--modules/CIAO/tools/XML/XML_Helper.h100
-rw-r--r--modules/CIAO/tools/XML/XML_Helper.tpp304
-rw-r--r--modules/CIAO/tools/XML/XML_Schema_Resolver.cpp78
-rw-r--r--modules/CIAO/tools/XML/XML_Schema_Resolver.h109
-rw-r--r--modules/CIAO/tools/XML/XML_Schema_Resolver.tpp48
-rw-r--r--modules/CIAO/tools/XML/XercesString.cpp151
-rw-r--r--modules/CIAO/tools/XML/XercesString.h78
-rw-r--r--modules/CIAO/tools/tools.mwc7
1649 files changed, 284586 insertions, 0 deletions
diff --git a/modules/CIAO/CIAO-INSTALL.html b/modules/CIAO/CIAO-INSTALL.html
new file mode 100644
index 00000000000..28f1915c1fc
--- /dev/null
+++ b/modules/CIAO/CIAO-INSTALL.html
@@ -0,0 +1,175 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!-- $Id$ --><html xmlns="http://www.w3.org/1999/xhtml"><head>
+ <title>Building and Installing CIAO </title>
+ <LINK rev="made" href="mailto:schmidt@cs.wustl.edu"></head>
+ <body text="#000000" vLink="#ff0f0f" link="#000fff" bgColor="#ffffff">
+ <hr>
+ <h3>Building and Installing CIAO</h3>
+ <p>The first thing you should do to install CIAO is to set the environment
+ variable <code>CIAO_ROOT</code> to
+ be <code>$TAO_ROOT/CIAO</code>, or whereever you have installed
+ the CIAO sources. The <code>DANCE_ROOT</code> environment
+ variable should also be set to <code>$CIAO_ROOT/DAnCE</code>, or
+ wherever you have installed the DAnCE sources. Please refer
+ to the <A href="../../ACE-INSTALL.html">ACE installation notes</A> and <A href="../TAO-INSTALL.html">
+ TAO installation notes</A> for instructions on setting <code>$ACE_ROOT</code>
+ and <code>$TAO_ROOT</code>, respectively. They are needed since CIAO sits on
+ top of ACE+TAO. Compiling ACE+TAO successfully is the <strong>first</strong> requirement
+ for compiling CIAO.
+ </p>
+ <p>CIAO is divided into several parts, so different installation/building rules
+ apply to different parts of CIAO.<br>
+ <br>
+ </p>
+ <ol>
+ <li>
+ CIAO core/examples: This part of CIAO include following directories: <code>$CIAO_ROOT/ccm</code>, <code>$CIAO_ROOT/ciao</code>,
+ <code>$CIAO_ROOT/examples</code>.
+ <li>
+ CIAO Deployment and Configuration Framework: This part of CIAO includes all the
+ directories in <code>$CIAO_ROOT/DAnCE</code>. DAnCE is an implementation of the
+ new <a href="http://www.omg.org/cgi-bin/doc?ptc/2003-07-02">Deployment and
+ Configuration</a> specification. We refer, henceforth, to all pieces as CIAO
+ in general. This piece will be referred specifically by their name
+ as DAnCE though they are part of CIAO.
+ </li>
+ </ol>
+ <hr>
+ <h3>Supported Platforms for CIAO</h3>
+ <p>CIAO should be usable on all platforms that TAO runs on. Please see <A href="../TAO-INSTALL.html">
+ TAO's installation</A> pages for details
+ </p>
+ <p>If you have <A href="../../docs/ACE-porting.html">porting questions</A> or
+ have a problem compiling CIAO with TAO and ACE on the platforms shown above
+ please send email to either <A href="news:comp.soft-sys.ace">ACE Newsgroup</A> or
+ the <A href="mailto:ciao-users@cs.wustl.edu">CIAO mailing list</A> and we'll
+ try to help you fix the problems. You can also submit bug reports and
+ enhancement requests in our <A href="../../docs/usage-bugzilla.html">bug tracking
+ system</A>.
+ </p>
+ <p>CIAO can be obtained <a href="http://www.dre.vanderbilt.edu/Download.html">electronically</a>
+ via the WWW and ftp. <a href="http://www.dre.vanderbilt.edu/CIAO">CIAO</a> is
+ bundled with the ACE and TAO release. You'll always need the most recent
+ version of ACE and TAO because CIAO tracks changes to ACE and TAO very closely.
+ </p>
+ <hr>
+ <h3>Obtaining and Installing Xerces-C</h3>
+ <p>The Xerces-C XML parsing library is a necessary component to build parts of
+ DAnCE that need to process XML based descriptor files, which include the <b>Plan
+ Launcher</b> and the <b>Repository Manager</b>. Currently, the only Xerces-C
+ versions supported by the DOC group is version 2.6 or later or 3.0 or later.
+ Earlier versions of the Xerces-C library may work.
+ </p>
+ <h4>Building Xerces-C</h4>
+ <p>You may check <a href="http://www.dre.vanderbilt.edu/~wotte/xerces/">here</a> to
+ see if there is a prebuilt binary available for your platform. Otherwise, you
+ will have to obtain the source from the <a href="http://xml.apache.org/xerces-c/download.cgi">
+ Xerces-C webpage</a> and build it. Building Xerces-C is fairly
+ straightfoward. Please see the documentation available <a href="http://xml.apache.org/xerces-c/build.html">
+ here</a> for instructions particular to your platform.
+ </p>
+ <ul>
+ <li>
+ <strong>NOTE</strong>: Some of the provided projects with Xerces-C attach
+ inconsistant library decorators onto the end of the Xerces-C libraries. The MPC
+ build tool will expect these libraries to be named xerces-c for non debug
+ versions, and xerces-cd for debug versions.
+ </ul>
+ <h4>Xerces-C Environment Settings</h4>
+ <p>If the Xerces includes and libraries are in your system include and library
+ paths, respectively, then you need not set up any environment and may proceed
+ to the next step. If not, you will need to set an environment variable named
+ XERCESCROOT to a path such that $XERCESCROOT/include points to the includes and
+ $XERCESCROOT/lib points to the libraries. Also make sure that $XERCESCROOT/lib
+ is in the appropriate environment variable that your platform uses to search
+ for dynamically linked libraries.
+ </p>
+ <hr>
+ <h3>Install CIAO core/tools/examples</h3>
+ <p>Most of the GNUmakefiles/project files/solution files required to build CIAO
+ are available in the release. If you don't like the configurations used, please
+ feel free to regenerate them using MPC. Please see <A href="../../MPC/README">this</A>
+ for more details.
+ </p>
+ <p>To build CIAO core/tools/examples:
+ </p>
+ <ol>
+ <li>
+ Make sure ACE and TAO are built.
+ <li>
+ Make sure you have the Xerces-C libraries installed/built
+ <li>
+ Enable Xerces-C in default.features by setting <code>xerces3=1</code> or
+ <code>xerces2=1</code>, depending on your version Xerces-C libraries.
+ <li>
+ Make sure all ACE/TAO/etc. generated libs are in <code>$ACE_ROOT/lib</code>. To
+ build CIAO you will need:
+ <ul>
+ <li>
+ <code>ACE</code>
+ <li>
+ <code>TAO</code>
+ <li>
+ <code>TAO_IDL</code>
+ <li>
+ <code>IFR_Client</code>
+ <li>
+ <code>IORTable</code>
+ <li>
+ <code>Valuetype</code>
+ <li>
+ <code>Security</code>
+ <li>
+ <code>ACEXML</code>
+ </li>
+ </ul>
+ <li>
+ Generate the Makefile/Solution/Project files and build
+ <p>For the supported build tools please see <a href="http://downloads.ociweb.com/MPC/MakeProjectCreator.pdf">
+ MPC manual</a>.
+ </p>
+ <p>You have to execute the MPC command in the following directories if you only
+ want to build the examples and have a peek at CIAO:
+ </p>
+ <ul>
+ <li>
+ <code>$CIAO_ROOT/DAnCE/</code>
+ </li>
+ </ul>
+ <p>On <strong>Linux</strong>: do <code>$ACE_ROOT/bin/mwc.pl -type gnuace</code> at the
+ locations specified above then <code>make</code>.
+ </p>
+ <p>On <strong>Windows/VC71</strong>: do <code>%ACE_ROOT%/bin/mwc.pl -type vc71</code>
+ at the locations specified above then Open the solution file and build.
+ </p>
+ <p><strong>Note:</strong> You can run <code>mwc.pl</code> at <code>$CIAO_ROOT.</code>
+ After running the command
+ with proper augment once then you
+ can do <code>make</code> at <code>$CIAO_ROOT</code> (Linux) or open the
+ workspace/solution file at <code>$CIAO_ROOT</code> (Windows) to build.
+ </p>
+ </li>
+ </ol>
+ <strong>Building CIAO quickly</strong> : You can build CIAO quickly by doing
+ the following:
+ <ul class="noindent">
+ <li>
+ Remove all the GNUmakefiles or project files that are shipped with the release or download a source only distribution.
+ <li>
+ Open up <code>$CIAO_ROOT/CIAO_TAO.mwc</code>
+ .
+ <li>
+ Run <code>$ACE_ROOT/bin/mwc.pl CIAO_TAO.mwc -type gnuace</code> from <code>$CIAO_ROOT</code>
+ .
+ <li>
+ Type 'make'
+ <li style="LIST-STYLE-TYPE: none">
+ This will build all the required ACE+TAO libraries including CIAO libraries and
+ tools.
+ </li>
+ </ul>
+ <hr>
+ <p>Back to the <a href="http://www.cs.wustl.edu/~schmidt/CIAO.html">CIAO</a> home
+ page. <!--#include virtual="/~schmidt/cgi-sig.html" --></p>
+ </body>
+</html>
diff --git a/modules/CIAO/CIAO.mwc b/modules/CIAO/CIAO.mwc
new file mode 100644
index 00000000000..dd297256b34
--- /dev/null
+++ b/modules/CIAO/CIAO.mwc
@@ -0,0 +1,5 @@
+// -*- MPC -*-
+// $Id$
+
+workspace {
+}
diff --git a/modules/CIAO/CIAO_DAnCE.mwc b/modules/CIAO/CIAO_DAnCE.mwc
new file mode 100644
index 00000000000..54f28c615b4
--- /dev/null
+++ b/modules/CIAO/CIAO_DAnCE.mwc
@@ -0,0 +1,9 @@
+//$Id$
+
+workspace {
+ ccm
+ ciao
+ DAnCE
+ tools/Config_Handlers
+ tools/XML
+}
diff --git a/modules/CIAO/CIAO_TAO.mwc b/modules/CIAO/CIAO_TAO.mwc
new file mode 100644
index 00000000000..5438c540674
--- /dev/null
+++ b/modules/CIAO/CIAO_TAO.mwc
@@ -0,0 +1,34 @@
+// -*- MPC -*-
+// $Id$
+
+workspace {
+ $(ACE_ROOT)/ace
+ $(ACE_ROOT)/apps/gperf/src
+ $(ACE_ROOT)/apps/JAWS/server
+ $(ACE_ROOT)/ACEXML/common
+ $(ACE_ROOT)/ACEXML/parser/parser
+ $(ACE_ROOT)/ACEXML/apps/svcconf
+ $(ACE_ROOT)/contrib
+ $(TAO_ROOT)/tao
+ $(TAO_ROOT)/TAO_IDL
+ $(TAO_ROOT)/utils
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosEvent.mpc
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNaming.mpc
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNaming_Serv.mpc
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNaming_Skel.mpc
+ $(TAO_ROOT)/orbsvcs/Naming_Service
+ $(TAO_ROOT)/orbsvcs/orbsvcs/Svc_Utils.mpc
+ $(TAO_ROOT)/orbsvcs/orbsvcs/Security.mpc
+ $(TAO_ROOT)/orbsvcs/orbsvcs/IFRService.mpc
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RTEvent_Serv.mpc
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RTEvent_Skel.mpc
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RTEvent.mpc
+ ccm
+ ciao
+ DAnCE
+ connectors
+ tools
+ tests
+ examples
+ performance-tests
+}
diff --git a/modules/CIAO/CIAO_TAO_DAnCE.mwc b/modules/CIAO/CIAO_TAO_DAnCE.mwc
new file mode 100644
index 00000000000..79b50057636
--- /dev/null
+++ b/modules/CIAO/CIAO_TAO_DAnCE.mwc
@@ -0,0 +1,30 @@
+// -*- MPC -*-
+// $Id$
+
+workspace {
+ $(ACE_ROOT)/ace
+ $(ACE_ROOT)/apps/gperf/src
+ $(ACE_ROOT)/apps/JAWS/server
+ $(ACE_ROOT)/ACEXML/common
+ $(ACE_ROOT)/ACEXML/parser/parser
+ $(ACE_ROOT)/ACEXML/apps/svcconf
+ $(ACE_ROOT)/contrib
+ $(TAO_ROOT)/TAO_IDL
+ $(TAO_ROOT)/tao
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNaming.mpc
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNaming_Serv.mpc
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNaming_Skel.mpc
+ $(TAO_ROOT)/orbsvcs/Naming_Service/Naming_Service.mpc
+ $(TAO_ROOT)/orbsvcs/orbsvcs/Svc_Utils.mpc
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RTEvent.mpc
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RTEvent_Serv.mpc
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RTEvent_Skel.mpc
+ ccm
+ ciao
+ DAnCE
+ tools/Config_Handlers
+ tools/XML
+ exclude {
+ DAnCE/tests
+ }
+}
diff --git a/modules/CIAO/COPYING b/modules/CIAO/COPYING
new file mode 100644
index 00000000000..0b4d139ae6e
--- /dev/null
+++ b/modules/CIAO/COPYING
@@ -0,0 +1,110 @@
+
+ _________________________________________________________________
+
+ Copyright and Licensing Information for ACE(TM), TAO(TM), CIAO(TM), and
+ CoSMIC(TM)
+
+ [1]ACE(TM), [2]TAO(TM), [3]CIAO(TM), and [4]CoSMIC(TM) (henceforth
+ referred to as "DOC software") are copyrighted by [5]Douglas C.
+ Schmidt and his [6]research group at [7]Washington University,
+ [8]University of California, Irvine, and [9]Vanderbilt University,
+ Copyright (c) 1993-2009, all rights reserved. Since DOC software is
+ open-source, freely available software, you are free to use, modify,
+ copy, and distribute--perpetually and irrevocably--the DOC software
+ source code and object code produced from the source, as well as copy
+ and distribute modified versions of this software. You must, however,
+ include this copyright statement along with any code built using DOC
+ software that you release. No copyright statement needs to be provided
+ if you just ship binary executables of your software products.
+
+ You can use DOC software in commercial and/or binary software releases
+ and are under no obligation to redistribute any of your source code
+ that is built using DOC software. Note, however, that you may not do
+ anything to the DOC software code, such as copyrighting it yourself or
+ claiming authorship of the DOC software code, that will prevent DOC
+ software from being distributed freely using an open-source
+ development model. You needn't inform anyone that you're using DOC
+ software in your software, though we encourage you to let [10]us know
+ so we can promote your project in the [11]DOC software success
+ stories.
+
+ The [12]ACE, [13]TAO, [14]CIAO, and [15]CoSMIC web sites are
+ maintained by the [16]DOC Group at the [17]Institute for Software
+ Integrated Systems (ISIS) and the [18]Center for Distributed Object
+ Computing of Washington University, St. Louis for the development of
+ open-source software as part of the open-source software community.
+ Submissions are provided by the submitter ``as is'' with no warranties
+ whatsoever, including any warranty of merchantability, noninfringement
+ of third party intellectual property, or fitness for any particular
+ purpose. In no event shall the submitter be liable for any direct,
+ indirect, special, exemplary, punitive, or consequential damages,
+ including without limitation, lost profits, even if advised of the
+ possibility of such damages. Likewise, DOC software is provided as is
+ with no warranties of any kind, including the warranties of design,
+ merchantability, and fitness for a particular purpose,
+ noninfringement, or arising from a course of dealing, usage or trade
+ practice. Washington University, UC Irvine, Vanderbilt University,
+ their employees, and students shall have no liability with respect to
+ the infringement of copyrights, trade secrets or any patents by DOC
+ software or any part thereof. Moreover, in no event will Washington
+ University, UC Irvine, or Vanderbilt University, their employees, or
+ students be liable for any lost revenue or profits or other special,
+ indirect and consequential damages.
+
+ DOC software is provided with no support and without any obligation on
+ the part of Washington University, UC Irvine, Vanderbilt University,
+ their employees, or students to assist in its use, correction,
+ modification, or enhancement. A [19]number of companies around the
+ world provide commercial support for DOC software, however.
+
+ DOC software is Y2K-compliant, as long as the underlying OS platform
+ is Y2K-compliant. Likewise, DOC software is compliant with the new US
+ daylight savings rule passed by Congress as "The Energy Policy Act of
+ 2005," which established new daylight savings times (DST) rules for
+ the United States that expand DST as of March 2007. Since DOC software
+ obtains time/date and calendaring information from operating systems
+ users will not be affected by the new DST rules as long as they
+ upgrade their operating systems accordingly.
+
+ The names ACE(TM), TAO(TM), CIAO(TM), CoSMIC(TM), Washington
+ University, UC Irvine, and Vanderbilt University, may not be used to
+ endorse or promote products or services derived from this source
+ without express written permission from Washington University, UC
+ Irvine, or Vanderbilt University. This license grants no permission to
+ call products or services derived from this source ACE(TM), TAO(TM),
+ CIAO(TM), or CoSMIC(TM), nor does it grant permission for the name
+ Washington University, UC Irvine, or Vanderbilt University to appear
+ in their names.
+
+ If you have any suggestions, additions, comments, or questions, please
+ let [20]me know.
+
+ [21]Douglas C. Schmidt
+ _________________________________________________________________
+
+ Back to the [22]ACE home page.
+
+References
+
+ 1. http://www.cs.wustl.edu/~schmidt/ACE.html
+ 2. http://www.cs.wustl.edu/~schmidt/TAO.html
+ 3. http://www.dre.vanderbilt.edu/CIAO/
+ 4. http://www.dre.vanderbilt.edu/cosmic/
+ 5. http://www.dre.vanderbilt.edu/~schmidt/
+ 6. http://www.cs.wustl.edu/~schmidt/ACE-members.html
+ 7. http://www.wustl.edu/
+ 8. http://www.uci.edu/
+ 9. http://www.vanderbilt.edu/
+ 10. mailto:doc_group@cs.wustl.edu
+ 11. http://www.cs.wustl.edu/~schmidt/ACE-users.html
+ 12. http://www.cs.wustl.edu/~schmidt/ACE.html
+ 13. http://www.cs.wustl.edu/~schmidt/TAO.html
+ 14. http://www.dre.vanderbilt.edu/CIAO/
+ 15. http://www.dre.vanderbilt.edu/cosmic/
+ 16. http://www.dre.vanderbilt.edu/
+ 17. http://www.isis.vanderbilt.edu/
+ 18. http://www.cs.wustl.edu/~schmidt/doc-center.html
+ 19. http://www.cs.wustl.edu/~schmidt/commercial-support.html
+ 20. mailto:d.schmidt@vanderbilt.edu
+ 21. http://www.dre.vanderbilt.edu/~schmidt/
+ 22. http://www.cs.wustl.edu/ACE.html
diff --git a/modules/CIAO/ChangeLog b/modules/CIAO/ChangeLog
new file mode 100644
index 00000000000..4f00ad25b0e
--- /dev/null
+++ b/modules/CIAO/ChangeLog
@@ -0,0 +1,1594 @@
+Tue Nov 10 20:00:17 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/descriptors/ReceiverOnly.cdp:
+ * connectors/dds4ccm/examples/Hello/descriptors/SenderOnly.cdp:
+ Made deployable again.
+
+ * connectors/dds4ccm/examples/Hello/descriptors/run_5_to_5.pl:
+ * connectors/dds4ccm/examples/Hello/descriptors/run_receiver.pl:
+ * connectors/dds4ccm/examples/Hello/descriptors/run_sender.pl:
+ Improved cleanup of ior files.
+
+Tue Nov 10 19:03:31 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp:
+ Sleep 1 second before start sending seems enough.
+
+ * connectors/dds4ccm/examples/Hello/descriptors/5_Receivers.cdp:
+ * connectors/dds4ccm/examples/Hello/descriptors/5_Senders.cdp:
+ * connectors/dds4ccm/examples/Hello/descriptors/5_to_1.cdp:
+ * connectors/dds4ccm/examples/Hello/descriptors/run_5_to_1.pl:
+ Made deployable again.
+
+Tue Nov 10 14:32:00 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Connector/Hello_Connector.idl
+ * connectors/dds4ccm/examples/Hello/Connector/Hello_Connector.mpc
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.mpc
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.mpc
+ * connectors/dds4ccm/examples/Quoter/Broker/Broker.mpc
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.idl
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.mpc
+ * connectors/dds4ccm/examples/Quoter/Distributor/Distributor.mpc
+ * connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector.idl
+ * connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector.mpc
+ * connectors/dds4ccm/examples/Shapes/Receiver/Shapes_Receiver.mpc
+ * connectors/dds4ccm/examples/Shapes/Sender/Shapes_Sender.mpc
+ * connectors/dds4ccm/idl/dds4ccm_Connector_Base.idl3p
+ * connectors/dds4ccm/idl/dds4ccm_Connector_Event.idl3p
+ * connectors/dds4ccm/idl/dds4ccm_Connector_State.idl3p
+ * connectors/dds4ccm/idl/dds4ccm_ConnectorStatusListener.idl3
+ * connectors/dds4ccm/idl/dds4ccm_Getter.idl3p
+ * connectors/dds4ccm/idl/dds4ccm_ListenerControl.idl3
+ * connectors/dds4ccm/idl/dds4ccm_MultiListener.idl3p
+ * connectors/dds4ccm/idl/dds4ccm_MultiUpdater.idl3p
+ * connectors/dds4ccm/idl/dds4ccm_MultiWriter.idl3p
+ * connectors/dds4ccm/idl/dds4ccm_Port_Get.idl3p
+ * connectors/dds4ccm/idl/dds4ccm_Port_MultiListen.idl3p
+ * connectors/dds4ccm/idl/dds4ccm_Port_MultiUpdate.idl3p
+ * connectors/dds4ccm/idl/dds4ccm_Port_MultiWrite.idl3p
+ * connectors/dds4ccm/idl/dds4ccm_Port_RawListen.idl3p
+ * connectors/dds4ccm/idl/dds4ccm_Port_Read.idl3p
+ * connectors/dds4ccm/idl/dds4ccm_Port_StateListen.idl3p
+ * connectors/dds4ccm/idl/dds4ccm_Port_Update.idl3p
+ * connectors/dds4ccm/idl/dds4ccm_Port_Write.idl3p
+ * connectors/dds4ccm/idl/dds4ccm_PortStatusListener.idl3
+ * connectors/dds4ccm/idl/dds4ccm_RawListener.idl3p
+ * connectors/dds4ccm/idl/dds4ccm_Reader.idl3p
+ * connectors/dds4ccm/idl/dds4ccm_StateListener.idl3p
+ * connectors/dds4ccm/idl/dds4ccm_Updater.idl3p
+ * connectors/dds4ccm/idl/dds4ccm_Writer.idl3p
+ Fixed mpc files, do full includes related to CIAO_ROOT
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ Unicode fix
+
+Tue Nov 10 14:12:00 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/descriptors/1_to_5.cdp
+ * connectors/dds4ccm/examples/Hello/descriptors/DeploymentPlan.cdp
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.idl
+ Make this deployable again
+
+Tue Nov 10 13:25:00 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/descriptors/1_to_5.cdp:
+ * connectors/dds4ccm/examples/Hello/descriptors/DeploymentPlan.cdp:
+ First updates after introducing the IDL3+ ports
+
+Tue Nov 10 12:56:00 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Quoter/Broker/Broker.idl:
+ Added missin provices
+
+ * connectors/dds4ccm/examples/Quoter/descriptors/Plan.cdp:
+ Corrected this plan
+
+Tue Nov 10 12:40:00 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Shapes/descriptors/Plan.cdp:
+ Fixed this plan
+
+Tue Nov 10 12:11:00 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.h:
+ Resolved fuzz error.
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp:
+ Debug logging (instead of error logging).
+
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp:
+ Sleep 5 seconds before start sending.
+
+ * connectors/dds4ccm/examples/Hello/descriptors/1_to_5.cdp:
+ * connectors/dds4ccm/examples/Hello/descriptors/run_1_to_5.pl:
+ Changed to meet the last status of this example.
+
+ * connectors/dds4ccm/examples/Quoter/Broker/Broker.idl:
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.idl:
+ * connectors/dds4ccm/examples/Quoter/Distributor/Distributor.idl:
+ Resolved minor fuzz error.
+
+Tue Nov 10 10:41:47 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/docs/*:
+ Removed all interim updates and added the beta 2 files
+
+Tue Nov 10 10:04:47 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Connector/Hello_Connector.idl
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.idl
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.h
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.idl
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp
+ * connectors/dds4ccm/examples/Quoter/Broker/Broker.idl
+ * connectors/dds4ccm/examples/Quoter/Broker/Broker.idl3
+ * connectors/dds4ccm/examples/Quoter/Broker/Broker.idl3p
+ * connectors/dds4ccm/examples/Quoter/Broker/Broker.mpc
+ * connectors/dds4ccm/examples/Quoter/Broker/Broker_exec.cpp
+ * connectors/dds4ccm/examples/Quoter/Broker/Broker_exec.h
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.idl
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.idl3
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.idl3p
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.mpc
+ * connectors/dds4ccm/examples/Quoter/Distributor/Distributor.idl
+ * connectors/dds4ccm/examples/Quoter/Distributor/Distributor.idl3
+ * connectors/dds4ccm/examples/Quoter/Distributor/Distributor.idl3p
+ * connectors/dds4ccm/examples/Quoter/Distributor/Distributor.mpc
+ * connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector.idl
+ * connectors/dds4ccm/examples/Shapes/descriptors/Plan.cdp
+ * connectors/dds4ccm/examples/Shapes/Receiver/Shapes_Receiver.idl
+ * connectors/dds4ccm/examples/Shapes/Receiver/Shapes_Receiver_exec.cpp
+ * connectors/dds4ccm/examples/Shapes/Receiver/Shapes_Receiver_exec.h
+ * connectors/dds4ccm/impl/ndds/Connector_T.cpp
+ * connectors/dds4ccm/impl/ndds/Connector_T.h
+ * connectors/dds4ccm/impl/ndds/DataReaderHandler_T.cpp
+ Use the new idl3+ porttype/port/mirrorport. Moved all idl from idl3 to
+ regular idl files. Updated some code because some of the idl methods
+ now get their correct name
+
+Tue Nov 10 09:22:47 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Shapes/Sender/Shapes_Sender.idl:
+ Use the idl3+ port keyword
+
+Tue Nov 10 09:23:47 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.idl:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.h:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp:
+ Added attributes name and expected_samples.
+
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp:
+ Timestamp always the same text length.
+ Sleep one second before starting to send messages.
+
+ * connectors/dds4ccm/examples/Hello/descriptors/DeploymentPlan.cdp:
+ Added Receiver attributes (name and expected_samples).
+
+Tue Nov 10 08:30:30 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Base/Hello_Base.idl:
+ Removed DDS key since we only write.
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp:
+ Debug message in stead of error message.
+
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.idl:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.h:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp:
+ Added attributes (log_time, message, #iterations.
+
+ * connectors/dds4ccm/examples/Hello/descriptors/DeploymentPlan.cdp:
+ Added values for introduced attributes.
+
+ * examples/Hello/Receiver/Receiver_exec.cpp:
+ Resolved compiler warning.
+
+Mon Nov 9 19:34:21 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tests/IDL_Test/Cornucopia/Cornucopia.idl:
+
+ Added an abstract interface and concrete child to the
+ test IDL, to test a multiple-definition code generation
+ bug across the stub and LEM header files. Thanks to
+ Johnny Willemsen <jwillemsen at remedy dot nl> for
+ providing the test case.
+
+Mon Nov 9 19:32:42 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Base/Hello_Base.mpc
+ * connectors/dds4ccm/examples/Hello/Connector/Hello_Connector.mpc
+ * connectors/dds4ccm/examples/Hello/Connector/Hello_Connector_exec.h
+ * connectors/dds4ccm/examples/Quoter/Base/Quoter_Base.mpc
+ * connectors/dds4ccm/examples/Quoter/Broker/Broker_exec.cpp
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.mpc
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.h
+ * connectors/dds4ccm/examples/Shapes/Base/Shapes_Base.mpc
+ * connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector.mpc
+ * connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector_exec.h
+ * connectors/dds4ccm/examples/Shapes/Receiver/Shapes_Receiver_exec.cpp
+ * connectors/dds4ccm/impl/ndds/Connector_T.h
+ * connectors/dds4ccm/impl/ndds/DataWriterListener_T.cpp
+ * connectors/dds4ccm/impl/ndds/DataWriterListener_T.h
+ * connectors/dds4ccm/impl/ndds/Getter_T.cpp
+ * connectors/dds4ccm/impl/ndds/Getter_T.h
+ * connectors/dds4ccm/impl/ndds/NDDS_Traits.h
+ * connectors/dds4ccm/impl/ndds/SampleInfo.h
+ * connectors/dds4ccm/impl/ndds/Writer_T.cpp
+ * connectors/dds4ccm/impl/ndds/Writer_T.h
+ Use the new RTI Corba kit feature to put the generated code in its
+ own library. Moved CCM sequence to the connector traits.
+
+ * connectors/dds4ccm/impl/ndds/Builtin_Writer_T.cpp
+ * connectors/dds4ccm/impl/ndds/Builtin_Writer_T.h
+ Deleted, not used anymore. No buildit types are supported
+
+ * connectors/dds4ccm/impl/ndds/Reader.cpp
+ * connectors/dds4ccm/impl/ndds/Reader.h
+ Deleted, not used at all
+
+ * connectors/dds4ccm/impl/ndds/Reader_T.cpp
+ * connectors/dds4ccm/impl/ndds/Reader_T.h
+ Small refactoring to prevent code duplication
+
+Mon Nov 9 19:11:42 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Base/Hello_Base.idl:
+ * connectors/dds4ccm/examples/Hello/Base/Hello_Base.mpc:
+ Added.
+
+ * connectors/dds4ccm/examples/Hello/Connector/Hello_Connector.idl:
+ * connectors/dds4ccm/examples/Hello/Connector/Hello_Connector.mpc:
+ * connectors/dds4ccm/examples/Hello/Connector/Hello_Connector_exec.h:
+ * connectors/dds4ccm/examples/Hello/Connector/Hello_Connector_exec.cpp:
+ Added. Implementation of Hello connector.
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.mpc:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.mpc:
+ Made project names unique.
+
+Mon Nov 9 18:47:23 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Base:
+ * connectors/dds4ccm/examples/Hello/Connector:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.idl:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.mpc:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.h:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.idl:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.mpc:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.h:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp:
+ * connectors/dds4ccm/examples/Hello/descriptors/DeploymentPlan.cdp:
+ * connectors/dds4ccm/examples/Hello/descriptors/run_test.pl:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.idl3p:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Base.idl:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Base.mpc:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector.idl:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector.mpc:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.h:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.cpp:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.idl3p:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Base.idl:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Base.mpc:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector.idl:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector.mpc:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector_exec.h:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector_exec.cpp:
+ Completely rewritten this example. This example now uses the connector
+ template implementation.
+
+Mon Nov 9 13:16:48 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Shapes/Receiver/Shapes_Receiver_exec.cpp:
+ Delete ticker_ on exit.
+
+ * connectors/dds4ccm/examples/Shapes/Sender/Shapes_Sender.idl:
+ * connectors/dds4ccm/examples/Shapes/Sender/Shapes_Sender_exec.h:
+ * connectors/dds4ccm/examples/Shapes/Sender/Shapes_Sender_exec.cpp:
+ Removed unused Trigger interface.
+ Delete ticker_ and square_ on exit.
+
+Mon Nov 9 13:04:29 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Shapes/Receiver/Shapes_Receiver.idl:
+ * connectors/dds4ccm/examples/Shapes/Receiver/Shapes_Receiver.mpc:
+ * connectors/dds4ccm/examples/Shapes/Receiver/Shapes_Receiver_exec.h:
+ * connectors/dds4ccm/examples/Shapes/Receiver/Shapes_Receiver_exec.cpp:
+ * connectors/dds4ccm/examples/Shapes/Sender/Shapes_Sender.idl:
+ * connectors/dds4ccm/examples/Shapes/Sender/Shapes_Sender.mpc:
+ * connectors/dds4ccm/examples/Shapes/Sender/Shapes_Sender_exec.h:
+ * connectors/dds4ccm/examples/Shapes/Sender/Shapes_Sender_exec.cpp:
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver.idl:
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver.mpc:
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver_exec.h:
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver_exec.cpp:
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender.idl:
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender.mpc:
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender_exec.h:
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender_exec.cpp:
+ Renamed Sender.* and Receiver.* into Shapes_Sender.* and
+ Shapes_Receiver.*
+
+Mon Nov 9 12:43:45 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector.idl:
+ * connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector.mpc:
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver.idl:
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver.mpc:
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender.idl:
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender.mpc:
+ * connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector.idl3:
+ * connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector.idl3p:
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver.idl3:
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver.idl3p:
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender.idl3:
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender.idl3p:
+ Removed idl3p files and renamed idl3 extention to idl.
+ Inserted the content of the idl3p files at the bottom of
+ the idl files.
+
+Mon Nov 9 12:13:48 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender_exec.cpp:
+ Resolved compiler warning on Windows.
+
+Mon Nov 9 11:46:44 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp:
+ Resolved unicode compiler error.
+
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver_exec.h:
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver_exec.cpp:
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender_exec.h:
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender_exec.cpp:
+ Removed thread. Using the ORB reactor thread to generate
+ and receive ShapeTypes.
+
+ * examples/Hello/Sender/Sender_exec.cpp:
+ Resolved unicode compiler error.
+
+Mon Nov 9 09:49:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector.idl3
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender.idl3
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender_exec.cpp
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender_exec.h
+ * connectors/dds4ccm/impl/ndds/Getter_T.cpp
+ * connectors/dds4ccm/impl/ndds/Reader_T.cpp
+ * connectors/dds4ccm/impl/ndds/Reader_T.h
+ * connectors/dds4ccm/impl/ndds/Updater_T.h
+ * connectors/dds4ccm/impl/ndds/Writer_T.cpp
+ * connectors/dds4ccm/impl/ndds/Writer_T.h
+ Cleanup and some experiments for update 6 of the spec
+
+Mon Nov 9 07:03:57 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * examples/Hello/Receiver/Receiver_exec.cpp:
+ * examples/Hello/Sender/Sender_exec.cpp:
+ Resolved compiler errors on Windows.
+
+Sat Nov 7 08:11:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector.idl3:
+ Start using extended ports
+
+Fri Nov 6 18:33:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/docs/DDS4CCM v1-0-interim 7.odt:
+ Update of the spec of this evening
+
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender_exec.cpp:
+ Use %C for char strings
+
+ * connectors/dds4ccm/impl/ndds/Builtin_Writer_T.h
+ * connectors/dds4ccm/impl/ndds/Coherent_Changes_Guard.cpp
+ * connectors/dds4ccm/impl/ndds/Coherent_Changes_Guard.h
+ * connectors/dds4ccm/impl/ndds/Connector_T.h
+ * connectors/dds4ccm/impl/ndds/DataReaderListener_T.h
+ * connectors/dds4ccm/impl/ndds/DataWriterListener_T.h
+ * connectors/dds4ccm/impl/ndds/Getter_T.h
+ * connectors/dds4ccm/impl/ndds/ndds_impl.mpc
+ * connectors/dds4ccm/impl/ndds/Reader_T.h
+ * connectors/dds4ccm/impl/ndds/Updater_T.h
+ * connectors/dds4ccm/impl/ndds/Writer_T.cpp
+ * connectors/dds4ccm/impl/ndds/Writer_T.h
+ Moved Coherent_Changes_Guard to its own file. Use ACE_Copy_Disabled and
+ some small code cleanup
+
+Fri Nov 6 17:07:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/Writer_T.cpp:
+ * connectors/dds4ccm/impl/ndds/Writer_T.h:
+ Use ACE_Copy_Disabled to prevent copying. Added a guard class that will
+ call begin/end coherent_changes.
+
+Fri Nov 6 14:42:00 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Quoter/Broker/Broker_exec.cpp:
+ * connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.cpp:
+ Code realignment.
+
+Fri Nov 6 14:29:32 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver_exec.cpp:
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender_exec.cpp:
+ * connectors/dds4ccm/impl/ndds/Connector_T.cpp:
+ * connectors/dds4ccm/impl/ndds/DataReaderListener_T.cpp:
+ * connectors/dds4ccm/impl/ndds/Getter_T.cpp:
+ * connectors/dds4ccm/impl/ndds/Reader_T.cpp:
+ * connectors/dds4ccm/impl/ndds/Updater_T.cpp:
+ Code realignment.
+
+Fri Nov 6 13:22:43 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/Connector_T.cpp:
+ * connectors/dds4ccm/impl/ndds/Getter_T.h:
+ * connectors/dds4ccm/impl/ndds/Reader_T.h:
+ * connectors/dds4ccm/impl/ndds/Updater_T.h:
+ * connectors/dds4ccm/impl/ndds/Writer_T.h:
+ Every class is now derived from its appropriate type
+ (instead of CCM_TYPE).
+
+Fri Nov 6 13:05:57 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/Builtin_Writer_T.h:
+ * connectors/dds4ccm/impl/ndds/Builtin_Writer_T.cpp:
+ Renamed NDDS_TYPE into DDS_TYPE.
+
+Fri Nov 6 12:03:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/Connector_T.cpp:
+ * connectors/dds4ccm/impl/ndds/DataWriterListener_T.cpp:
+ * connectors/dds4ccm/impl/ndds/DataWriterListener_T.h:
+ Moved this listener out of the RTI specific namespace, it
+ is a vendor indepedent template
+
+Fri Nov 6 12:56:49 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/Builtin_Writer_T.h:
+ * connectors/dds4ccm/impl/ndds/Builtin_Writer_T.cpp:
+ * connectors/dds4ccm/impl/ndds/Getter_T.h:
+ * connectors/dds4ccm/impl/ndds/Getter_T.cpp:
+ * connectors/dds4ccm/impl/ndds/Reader_T.h:
+ * connectors/dds4ccm/impl/ndds/Reader_T.cpp:
+ * connectors/dds4ccm/impl/ndds/Updater_T.h:
+ * connectors/dds4ccm/impl/ndds/Updater_T.cpp:
+ * connectors/dds4ccm/impl/ndds/Writer_T.h:
+ * connectors/dds4ccm/impl/ndds/Writer_T.cpp:
+ Renamed template argument BASE into CCM_TYPE.
+
+Fri Nov 6 11:51:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/Connector_T.cpp:
+ * connectors/dds4ccm/impl/ndds/Connector_T.h:
+ * connectors/dds4ccm/impl/ndds/DataWriterListener.h:
+ * connectors/dds4ccm/impl/ndds/DataWriterListener_T.cpp:
+ * connectors/dds4ccm/impl/ndds/DataWriterListener_T.h:
+ Added DataWriterListener which invokes on the ConnectorStatusListener
+
+ * connectors/dds4ccm/impl/ndds/DataReaderListener_T.cpp:
+ * connectors/dds4ccm/impl/ndds/DataReaderListener_T.h:
+ Removed listener member, not used
+
+Fri Nov 6 12:28:42 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/DataReaderHandler_T.h:
+ * connectors/dds4ccm/impl/ndds/DataReaderHandler_T.cpp:
+ * connectors/dds4ccm/impl/ndds/DataReaderListener_T.h:
+ * connectors/dds4ccm/impl/ndds/DataReaderListener_T.cpp:
+ Put DataReaderHandler_T in its seperate file.
+
+Fri Nov 6 12:02:48 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/DataReaderListener_T.cpp:
+ Use duplicate on the context.
+
+Fri Nov 6 10:44:13 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/DataReaderListener_T.h:
+ * connectors/dds4ccm/impl/ndds/DataReaderListener_T.cpp:
+ Template argument CCM_TYPE also used in DataReaderHandler_T.
+
+Fri Nov 6 10:30:06 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/Connector_T.h:
+ * connectors/dds4ccm/impl/ndds/Connector_T.cpp:
+ Renamed NDDS_TYPE to DDS_TYPE. Clean up some
+ unused variables.
+
+ * connectors/dds4ccm/impl/ndds/DataReaderListener_T.h:
+ * connectors/dds4ccm/impl/ndds/DataReaderListener_T.cpp:
+ * connectors/dds4ccm/impl/ndds/Getter_T.h:
+ * connectors/dds4ccm/impl/ndds/Updater_T.cpp:
+ Renamed NDDS_TYPE to DDS_TYPE.
+
+Fri Nov 6 09:20:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.h
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector_exec.h
+ * connectors/dds4ccm/impl/ndds/Builtin_Writer_T.cpp
+ * connectors/dds4ccm/impl/ndds/Builtin_Writer_T.h
+ * connectors/dds4ccm/impl/ndds/Connector_T.cpp
+ * connectors/dds4ccm/impl/ndds/Writer_T.cpp
+ * connectors/dds4ccm/impl/ndds/Writer_T.h
+ Renamed writer files to be consistent
+
+ * connectors/dds4ccm/impl/ndds/Builtin_Writer.h
+ * connectors/dds4ccm/impl/ndds/Builtin_Writer.tpp
+ * connectors/dds4ccm/impl/ndds/Writer.h
+ * connectors/dds4ccm/impl/ndds/Writer.tpp
+ removed
+
+Fri Nov 6 10:03:08 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp:
+ * connectors/dds4ccm/examples/Quoter/Broker/Broker_exec.cpp:
+ * connectors/dds4ccm/impl/ndds/Reader_T.cpp:
+ Resolved some compiler warnings.
+
+ * connectors/dds4ccm/impl/ndds/Connector_T.h:
+ * connectors/dds4ccm/impl/ndds/Connector_T.cpp:
+ * connectors/dds4ccm/impl/ndds/DataReaderListener_T.h:
+ * connectors/dds4ccm/impl/ndds/DataReaderListener_T.cpp:
+ Moved the context to the DataReaderListener_T. This will
+ make the Connector_T code cleaner and all functionality is
+ at hand in the DataReaderListener_T.
+ Also renamed CONNECTOR_TYPE to CCM_TYPE.
+
+Thu Nov 5 20:51:18 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.h:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp:
+ * connectors/dds4ccm/impl/ndds/Reader_T.cpp:
+ Resolved a few minor fuzz errors.
+
+Thu Nov 5 19:43:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/RawListener.cpp:
+ * connectors/dds4ccm/impl/ndds/RawListener.h:
+ Deleted, not used
+
+Thu Nov 5 19:16:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver_exec.cpp:
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender_exec.cpp:
+ * connectors/dds4ccm/impl/ndds/Connector_T.cpp:
+ Fix some compile errors due to refactoring on head
+
+Thu Nov 5 18:53:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ Integrated work of the dds4ccm_1 branch which extends the DDS4CCM
+ connector infrastructure, adds a shapes component and adds timestamp
+ to the hello world example for measuring latency
+
+ Thu Nov 5 17:04:35 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver_exec.cpp:
+ Removed some printf statements.
+
+ Thu Nov 5 16:32:02 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector_exec.h:
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender_exec.cpp:
+ Resolved compiler errors.
+
+ * connectors/dds4ccm/impl/ndds/Reader_T.cpp:
+ * connectors/dds4ccm/impl/ndds/Updater_T.cpp:
+ Removed some printf statements.
+
+ Thu Nov 5 16:09:43 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/DataReaderListener_T.cpp:
+ Resolved compiler errors on linux.
+
+ Thu Nov 5 16:06:58 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.cpp:
+ Removed some printf statements.
+
+ * connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector_exec.h:
+ Added ConnectionStatusListener
+
+ * connectors/dds4ccm/impl/ndds/DataReaderListener_T.h:
+ * connectors/dds4ccm/impl/ndds/DataReaderListener_T.cpp:
+ Removed some comments and printf statements.
+
+ * connectors/dds4ccm/impl/ndds/Getter_T.cpp:
+ * connectors/dds4ccm/impl/ndds/Reader.cpp:
+ * connectors/dds4ccm/impl/ndds/Reader_T.cpp:
+ Removed some printf statements.
+
+ Thu Nov 5 14:40:52 UTC 2009 Marijke Hengstmengel <mhengstmengel@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/Connector_T.cpp
+ * connectors/dds4ccm/impl/ndds/DataReaderListener_T.cpp
+ * connectors/dds4ccm/impl/ndds/DataReaderListener_T.h
+ Change in DataRaederListener for ConnectionStatus
+
+ Thu Nov 5 12:39:52 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector_exec.h:
+ * connectors/dds4ccm/impl/ndds/Connector_T.cpp:
+ Resolved compiler errors on Linux.
+
+ Thu Nov 5 12:25:04 UTC 2009 Marijke Hengstmengel <mhengstmengel@remedy.nl>
+ * connectors/dds4ccm/impl/ndds/Connector_T.cpp
+ * connectors/dds4ccm/impl/ndds/Connector_T.h
+ * connectors/dds4ccm/impl/ndds/ConnectorStatusListener.cpp
+ * connectors/dds4ccm/impl/ndds/ConnectorStatusListener.h
+ * connectors/dds4ccm/impl/ndds/ndds_impl.mpc
+ Changes in implementation of ConnectorStatusControl
+
+ Thu Nov 5 12:09:57 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/DataReaderListener_T.h:
+ * connectors/dds4ccm/impl/ndds/DataReaderListener_T.cpp:
+ Cleanup some printf and unused methods.
+
+
+ Thu Nov 5 11:22:29 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Shapes/descriptors/Plan.cdp:
+ Enabled resizing of shape.
+
+ * connectors/dds4ccm/impl/ndds/Connector_T.cpp:
+ * connectors/dds4ccm/impl/ndds/DataReaderListener_T.h:
+ * connectors/dds4ccm/impl/ndds/DataReaderListener_T.cpp:
+ Implemented context switch.
+
+ Thu Nov 5 10:37:04 UTC 2009 Marijke Hengstmengel <mhengstmengel@remedy.nl>
+ * connectors/dds4ccm/impl/ndds/ConnectorStatusListener.cpp:
+ * connectors/dds4ccm/impl/ndds/ConnectorStatusListener.h:
+ Add implementation of ConnectorStatusControl
+
+ Thu Nov 5 09:17:37 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/PortStatusListener.cpp:
+ * connectors/dds4ccm/impl/ndds/PortStatusListener.h:
+ Removed, not needed at all
+
+ Thu Nov 5 10:04:04 UTC 2009 Marijke Hengstmengel <mhengstmengel@remedy.nl>
+
+ * connectors/dds4ccm/examples/Quoter/Broker/Broker.idl3:
+ * connectors/dds4ccm/examples/Quoter/Broker/Broker_exec.cpp:
+ * connectors/dds4ccm/examples/Quoter/Broker/Broker_exec.h:
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.idl3:
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.h:
+ * connectors/dds4ccm/examples/Quoter/descriptors/Plan.cdp:
+ * connectors/dds4ccm/idl/dds4ccm_ConnectorStatusListener.idl3:
+ * connectors/dds4ccm/impl/ndds/Connector_T.cpp:
+ * connectors/dds4ccm/impl/ndds/Connector_T.h:
+ * connectors/dds4ccm/impl/ndds/ndds_impl.mpc:
+ Add implementation of ConnectorStatusControl
+
+ Thu Nov 5 07:34:04 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Shapes/Base/Shapes_Base.idl:
+ X, Y and shapesize should be long (in stead off short).
+
+ * connectors/dds4ccm/examples/Shapes/descriptors/Plan.cdp:
+ Default rawlistener on.
+
+ Wed Nov 4 16:56:37 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/DDS_Sender/Hello_Sender.cpp:
+ Added missing include for msvc9
+
+ Wed Nov 4 12:57:37 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/DataReaderListener_T.h:
+ * connectors/dds4ccm/impl/ndds/DataReaderListener_T.cpp:
+ Created context switch. The rawlistener informs port listener
+ in a seperate thread.
+
+ Tue Nov 3 15:42:33 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.h:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp:
+ Resolved compiler errors on Windows.
+
+ Tue Nov 3 15:02:49 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver.idl3:
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver_exec.h:
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver_exec.cpp:
+ Enabled rawlistener. Also created a flag to turn this on/off using
+ the deployment plan.
+
+ * connectors/dds4ccm/examples/Shapes/descriptors/Plan.cdp:
+ Added ability to turn on/off raw listener. Also created connections
+ to enable raw listen.
+
+ Mon Nov 2 18:35:23 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver.idl3:
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver_exec.h:
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver_exec.cpp:
+ Resolved typo. Also extended with connection to ListenControl.
+
+ * connectors/dds4ccm/examples/Shapes/descriptors/Plan.cdp:
+ Changed due to previous typos.
+
+ Mon Nov 2 12:37:27 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector_exec.cpp:
+ Realingment.
+
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver.idl3:
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver_exec.h:
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver_exec.cpp:
+ Implemented framework PortStatusListener.
+
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender.idl3:
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender_exec.h:
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender_exec.cpp:
+ Resize shape can be set in Deployment plan.
+
+ * connectors/dds4ccm/examples/Shapes/descriptors/Plan.cdp:
+ * connectors/dds4ccm/examples/Shapes/descriptors/USER_QOS_PROFILES.xml:
+ Resize shape made available. Also set Qos settings for DDS exactly these
+ same as in the DDS demo.
+
+ * connectors/dds4ccm/impl/ndds/Connector_T.cpp:
+ * connectors/dds4ccm/impl/ndds/Getter_T.h:
+ * connectors/dds4ccm/impl/ndds/Getter_T.cpp:
+ * connectors/dds4ccm/impl/ndds/SampleInfo.h:
+ Minor changes.
+
+ Thu Oct 29 14:42:29 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender_exec.h:
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender_exec.cpp:
+ Made shape resize configurable.
+
+ * connectors/dds4ccm/examples/Shapes/descriptors/Plan.cdp:
+ Made shape resize configurable.
+
+ Thu Oct 29 14:36:45 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/Reader_T.cpp:
+ Resolved compiler errors on linux.
+
+ Thu Oct 29 13:41:45 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Shapes/Base/Shapes_Base.idl:
+ * connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector.idl3:
+ * connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector_exec.h:
+ * connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector_exec.cpp:
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver.idl3:
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver_exec.h:
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver_exec.cpp:
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender.idl3:
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender_exec.h:
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender_exec.cpp:
+ * connectors/dds4ccm/examples/Shapes/descriptors/Plan.cdp:
+ * connectors/dds4ccm/examples/Shapes/descriptors/run_test.pl:
+ Refactored so that it suits the RTI shapes demo.
+
+ * connectors/dds4ccm/impl/ndds/Getter_T.h:
+ * connectors/dds4ccm/impl/ndds/Getter_T.cpp:
+ Refactored the get_one method.
+
+ Fri Oct 23 12:20:08 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver.idl3:
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver_exec.h:
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver_exec.cpp:
+ Started with the implementation of the getter in this example.
+ The user is able to configure (using the deployment plan) whether
+ to get the data, to read the data or to do both.
+
+ * connectors/dds4ccm/examples/Shapes/descriptors/Plan.cdp:
+ The user is able to configure whether to get the data,
+ to read the data or to do both.
+ Added configparameters 'get_data' and 'read_data' to establish
+ this.
+
+ * connectors/dds4ccm/impl/ndds/Connector_T.cpp:
+ Resolved bug.
+
+ Fri Oct 23 11:37:53 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender_exec.cpp:
+ Resolved a typo which results in strange behaviour.
+
+ Fri Oct 23 11:32:32 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver_exec.cpp:
+ More accurate date time logging.
+
+ Fri Oct 23 10:59:06 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Quoter/Broker/Broker_exec.cpp:
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver_exec.cpp:
+ Resolved runtime crashes related to compiler warnings.
+ Specified which rate is set (sender or receiver).
+
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender_exec.cpp:
+ Specified which rate is set (sender or receiver).
+
+ Fri Oct 23 10:46:12 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver.idl3:
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver_exec.h:
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver_exec.cpp:
+ Implemented read_one and read_all
+
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender_exec.cpp:
+ Resolved minor bug.
+
+ * connectors/dds4ccm/examples/Shapes/descriptors/Plan.cdp:
+ changed to meet the receivers IDL.
+
+ Fri Oct 23 09:03:57 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Shapes/Base/Shapes_Base.idl:
+ * connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector.idl3:
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender.idl3:
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender_exec.h:
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender_exec.cpp:
+ * connectors/dds4ccm/examples/Shapes/descriptors/Plan.cdp:
+ Added functionality to the sender.
+
+ Fri Oct 23 06:45:22 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Quoter/Broker/Broker_exec.h:
+ * connectors/dds4ccm/examples/Quoter/Broker/Broker_exec.cpp:
+ * connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector.idl3:
+ * connectors/dds4ccm/impl/ndds/Connector_T.cpp:
+ * connectors/dds4ccm/impl/ndds/Reader.cpp:
+ * connectors/dds4ccm/impl/ndds/Reader_T.h:
+ * connectors/dds4ccm/impl/ndds/Reader_T.cpp:
+ Resolved some fuzz errors.
+
+ Thu Oct 22 15:19:53 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/Getter_T.h:
+ * connectors/dds4ccm/impl/ndds/Getter_T.cpp:
+ Used the correct duration conversion.
+
+ * connectors/dds4ccm/impl/ndds/Duration_t.h:
+ * connectors/dds4ccm/impl/ndds/Time_t.h:
+ Rename variables to proper names.
+
+ * connectors/dds4ccm/impl/ndds/Reader_T.cpp:
+ Resolved compiler errors on Linux.
+
+ Thu Oct 22 14:14:08 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/SampleInfo.h:
+ Used the conversion methods for AccessStatus
+ and InstanceStatus in seq conversion operators.
+
+ Thu Oct 22 13:50:23 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/SampleInfo.h:
+ Added conversion methods for AccessStatus and InstanceStatus.
+
+ Thu Oct 22 13:13:13 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/DDS_Receiver/Hello_Receiver.cpp:
+ * connectors/dds4ccm/examples/Hello/DDS_Sender/Hello_Sender.cpp:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp:
+ Used ACE_Date_Time to log timing differences.
+
+ * connectors/dds4ccm/examples/Hello/descriptors/run_test.pl:
+ Extended sleep time.
+
+ * connectors/dds4ccm/examples/Hello/descriptors/run_test_dds.pl:
+ Added to run DDS only hello example.
+
+ * connectors/dds4ccm/impl/ndds/Reader_T.cpp:
+ * connectors/dds4ccm/impl/ndds/SampleInfo.h:
+ Added operators to convert SampleInfoSeq to ReadInfo
+ and to convert SampleInfoSeq to ReadInfoSeq.
+
+ Wed Oct 21 13:43:25 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/DDS_Sender/Hello_Sender.cpp:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp:
+ Used an ACE_Time_Value in sleep methods.
+
+ * connectors/dds4ccm/examples/Quoter/Broker/Broker_exec.h:
+ * connectors/dds4ccm/examples/Quoter/Broker/Broker_exec.cpp:
+ Extended the Broker with get_one.
+
+ * connectors/dds4ccm/impl/ndds/Connector_T.h:
+ * connectors/dds4ccm/impl/ndds/Connector_T.cpp:
+ Giving the getter its own DataReader instance.
+
+ * connectors/dds4ccm/impl/ndds/Getter_T.cpp:
+ Implemented a draft version of get_one.
+
+ * connectors/dds4ccm/impl/ndds/Updater_T.cpp:
+ is_lifecycle_checked default set to false.
+
+ Wed Oct 21 08:44:22 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/DDS_Sender/Hello_Sender.cpp:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp:
+ * connectors/dds4ccm/examples/Hello/descriptors/run_test.pl:
+ * examples/Hello/Receiver/Receiver_exec.cpp:
+ Changed sleeping times.
+
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.idl3:
+ * connectors/dds4ccm/impl/ndds/Connector_T.h:
+ * connectors/dds4ccm/impl/ndds/Connector_T.cpp:
+ Made key_fields attribute readonly.
+
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver_exec.h:
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver_exec.cpp:
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender_exec.h:
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender_exec.cpp:
+ * connectors/dds4ccm/examples/Shapes/descriptors/Plan.cdp:
+ Changed in order to run run test script.
+
+ Tue Oct 20 13:41:12 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/descriptors/DeploymentPlan.cdp:
+ Added number of iterations.
+
+ * examples/Hello/Receiver/Receiver_exec.cpp:
+ Times in micro seconds
+
+ * examples/Hello/Sender/Sender_exec.cpp:
+ Removed extra loggin.
+
+ Tue Oct 20 12:44:49 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/DDS_Receiver/Hello_Receiver.cpp:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp:
+ * connectors/dds4ccm/examples/Hello/descriptors/DeploymentPlan.cdp:
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender_exec.h:
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender_exec.cpp:
+ Logging in micro seconds.
+
+ Tue Oct 20 09:24:28 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/DDS_Receiver/Hello_Receiver.cpp:
+ * connectors/dds4ccm/examples/Hello/DDS_Sender/Hello_Sender.cpp:
+ Added timing.
+
+ Tue Oct 20 08:44:31 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * examples/Hello/Receiver/Receiver.idl:
+ * examples/Hello/Receiver/Receiver_exec.h:
+ * examples/Hello/Receiver/Receiver_exec.cpp:
+ * examples/Hello/descriptors/DeploymentPlan.cdp:
+ Added number of iterations.
+
+ Mon Oct 19 18:29:02 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Shapes/Base/Shapes_Base.idl:
+ Made is real IDL.
+
+ * connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector.idl3:
+ * connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector_exec.h:
+ * connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector_exec.cpp:
+ Resolved compiler errors
+
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver.idl3:
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver_exec.h:
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver_exec.cpp:
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender_exec.h:
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender_exec.cpp:
+ Created a compileable version.
+
+ * connectors/dds4ccm/impl/ndds/Reader_T.cpp:
+ Resolved some compiler errors on Linux.
+
+ Mon Oct 19 17:20:34 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Quoter/Base/Quoter_Base.idl:
+ * connectors/dds4ccm/examples/Shapes/Base/Shapes_Base.idl:
+ Removed the space character from "// @key"
+
+ Mon Oct 19 17:08:41 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Shapes:
+ * connectors/dds4ccm/examples/Shapes/Base:
+ * connectors/dds4ccm/examples/Shapes/Base/Shapes_Base.idl:
+ * connectors/dds4ccm/examples/Shapes/Base/Shapes_Base.mpc:
+ * connectors/dds4ccm/examples/Shapes/Connector:
+ * connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector.idl3:
+ * connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector.idl3p:
+ * connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector.mpc:
+ * connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector_exec.h:
+ * connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector_exec.cpp:
+ * connectors/dds4ccm/examples/Shapes/Receiver:
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver.idl3:
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver.idl3p:
+ * connectors/dds4ccm/examples/Shapes/Receiver/Receiver.mpc:
+ * connectors/dds4ccm/examples/Shapes/Sender:
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender.idl3:
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender.idl3p:
+ * connectors/dds4ccm/examples/Shapes/Sender/Sender.mpc:
+ * connectors/dds4ccm/examples/Shapes/descriptors:
+ * connectors/dds4ccm/examples/Shapes/descriptors/Plan.cdp:
+ * connectors/dds4ccm/examples/Shapes/descriptors/USER_QOS_PROFILES.xml:
+ * connectors/dds4ccm/examples/Shapes/descriptors/run_test.pl:
+ Added framework for a shape example.
+
+ * connectors/dds4ccm/impl/ndds/DataReaderListener_T.cpp:
+ Removed logging regarding StockInfo.
+
+ Mon Oct 19 13:17:12 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.h:
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.cpp:
+ * connectors/dds4ccm/impl/ndds/Connector_T.h:
+ * connectors/dds4ccm/impl/ndds/Connector_T.cpp:
+ The connector template should be provided with a name.
+
+ Mon Oct 19 12:36:26 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.h:
+ Code outlining.
+
+ * connectors/dds4ccm/impl/ndds/Connector_T.cpp:
+ Enabled getter.
+
+ * connectors/dds4ccm/impl/ndds/Getter_T.cpp:
+ * connectors/dds4ccm/impl/ndds/Updater_T.cpp:
+ Resolved compiler warnings.
+
+ Mon Oct 19 11:14:34 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/descriptors/DeploymentPlan.cdp:
+ Added log timing flag.
+
+ * examples/Hello/Receiver/Receiver_exec.cpp:
+ * examples/Hello/Sender/Sender.idl:
+ * examples/Hello/Sender/Sender_exec.h:
+ * examples/Hello/Sender/Sender_exec.cpp:
+ Implemented timing information.
+
+ * examples/Hello/descriptors/DeploymentPlan.cdp:
+ Added log timing flag.
+
+ Fri Oct 16 15:00:14 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp:
+ Using high res timers to determine time difference.
+
+ Fri Oct 16 14:23:05 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.idl:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.h:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp:
+ Introduced an attribute which controls the timestamp logging.
+
+ Fri Oct 16 14:09:33 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp:
+ Rewritten timers.
+
+ Fri Oct 16 13:46:48 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp:
+ Added send and receive timestamps.
+
+ Fri Oct 16 10:51:03 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Quoter/Broker/Broker_exec.cpp:
+ Left getter out for now.
+
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.h:
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.cpp:
+ Removed Connector_T template class and put it in it's own file.
+
+ * connectors/dds4ccm/impl/ndds/Connector_T.h:
+ * connectors/dds4ccm/impl/ndds/Connector_T.cpp:
+ * connectors/dds4ccm/impl/ndds/DataReaderListener_T.cpp:
+ Created a Connector_T template class.
+
+ * connectors/dds4ccm/impl/ndds/Updater_T.h:
+ Removed unnecessary include.
+
+ Thu Oct 15 17:25:03 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Quoter/Broker/Broker.idl3:
+ * connectors/dds4ccm/examples/Quoter/Broker/Broker_exec.cpp:
+ Removed some tabs. Expanded the getter framework.
+
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.idl3:
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.cpp:
+ Expanded the getter framework.
+
+ * connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.cpp:
+ Improved logging regarding updater.
+
+ * connectors/dds4ccm/examples/Quoter/descriptors/Plan.cdp:
+ Added connector for the getter.
+
+ * connectors/dds4ccm/examples/Quoter/descriptors/run_test.pl:
+ Sleep time changed.
+
+ * connectors/dds4ccm/impl/ndds/Getter_T.h:
+ * connectors/dds4ccm/impl/ndds/Getter_T.cpp:
+ Expanded the getter framework a bit more.
+
+ * connectors/dds4ccm/impl/ndds/NDDS_Traits.h:
+ Removed tabs.
+
+ * connectors/dds4ccm/impl/ndds/Reader_T.cpp:
+ * connectors/dds4ccm/impl/ndds/Updater_T.cpp:
+ Some more investigation on the updater framework.
+
+ Thu Oct 15 09:21:57 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.idl3:
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.h:
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.cpp:
+ * connectors/dds4ccm/impl/ndds/Getter_T.h:
+ * connectors/dds4ccm/impl/ndds/Getter_T.cpp:
+ Added Getter framework.
+
+ Wed Oct 14 15:09:11 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.cpp:
+ Changed logging. Catching proper exceptions.
+
+ * connectors/dds4ccm/impl/ndds/Updater_T.cpp:
+ Changed logging. Using this-> for class variables.
+
+ Wed Oct 14 13:48:51 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.cpp:
+ * connectors/dds4ccm/impl/ndds/Updater_T.h:
+ * connectors/dds4ccm/impl/ndds/Updater_T.cpp:
+ Implemented DDS interface for updater.
+
+ Wed Oct 14 09:24:51 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.idl3:
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.h:
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.cpp:
+ * connectors/dds4ccm/examples/Quoter/Distributor/Distributor.idl3:
+ * connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.h:
+ * connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.cpp:
+ * connectors/dds4ccm/examples/Quoter/descriptors/Plan.cdp:
+ * connectors/dds4ccm/impl/ndds/Updater_T.h:
+ * connectors/dds4ccm/impl/ndds/Updater_T.cpp:
+ Added updater framework.
+
+ * connectors/dds4ccm/examples/Quoter/descriptors/run_test.pl:
+ Reduced sleeping time.
+
+Thu Nov 5 12:44:31 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/CIAO_common.h:
+ Deleted
+
+ * ciao/Client_init.cpp
+ * ciao/Client_init.h
+ * ciao/ComponentServer/CIAO_ComponentServer.cpp
+ * ciao/ComponentServer/CIAO_ComponentServer_Impl.cpp
+ * ciao/ComponentServer/CIAO_Container_Impl.cpp
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp
+ * ciao/Containers/Container_Base.cpp
+ * ciao/Containers/Servant_Activator.cpp
+ * ciao/Containers/Session/Session_Container.cpp
+ * ciao/Logger/File_Logger_Backend.cpp
+ * ciao/Servants/Home_Servant_Impl_T.cpp
+ * ciao/Servants/Servant_Impl_Base.cpp
+ * ciao/Servants/Servant_Impl_Utils_T.cpp
+ * ciao/Server_init.cpp
+ * connectors/ami4ccm/examples/Hello/AMI/AMI_exec.cpp
+ * connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp
+ * connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp
+ * connectors/dds4ccm/docs/DDS4CCM v1-0 batch5.odt
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.cpp
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector_exec.cpp
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp
+ * onnectors/dds4ccm/examples/Quoter/Broker/Broker_exec.cpp
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.cpp
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.h
+ * connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.cpp
+ * DAnCE/ExecutionManager/ExecutionManager_Module.cpp
+ * DAnCE/NodeManager/Node_Manager_Module.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.h
+ * DAnCE/TargetManager/DomainDataManager.cpp
+ * DAnCE/TargetManager/TargetManager_exec.cpp
+ * DAnCE/tests/CIAO/Components/ProcessColocation_exec.cpp
+ * DAnCE/tests/CIAO/Components/SimpleAttribute_exec.cpp
+ * DAnCE/tests/CIAO/Components/SimpleConsumer_exec.cpp
+ * DAnCE/tests/CIAO/Components/SimpleEmitter_exec.cpp
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.cpp
+ * DAnCE/tests/CIAO/Components/SimpleNilFacetProvider_exec.cpp
+ * DAnCE/tests/CIAO/Components/SimpleNilFacetUser_exec.cpp
+ * DAnCE/tests/CIAO/Components/SimpleNull_exec.cpp
+ * DAnCE/tests/CIAO/Components/SimpleProvider_exec.cpp
+ * DAnCE/tests/CIAO/Components/SimplePublisher_exec.cpp
+ * DAnCE/tests/CIAO/Components/SimpleUser_exec.cpp
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker_exec.cpp
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor_exec.cpp
+ * examples/BasicSP/BMClosedED/BMClosedED_exec.cpp
+ * examples/BasicSP/BMDevice/BMDevice_exec.cpp
+ * examples/BasicSP/BMDisplay/BMDisplay_exec.cpp
+ * examples/BasicSP/EC/EC_exec.cpp
+ * examples/DevGuideExamples/Messenger/Administrator_exec_i.cpp
+ * examples/DevGuideExamples/Messenger/History_exec_i.cpp
+ * examples/DevGuideExamples/Messenger/Messenger_exec_i.cpp
+ * examples/DevGuideExamples/Messenger/Publication_exec_i.cpp
+ * examples/DevGuideExamples/Messenger/Receiver_exec_i.cpp
+ * examples/DevGuideExamples/Messenger/Runnable_exec_i.cpp
+ * examples/Display/GPS/GPS_exec.cpp
+ * examples/Display/GPS/GPS_exec.h
+ * examples/Display/GPS/GPS_tracing_exec.cpp
+ * examples/Display/NavDisplay/NavDisplay_exec.cpp
+ * examples/Display/RateGen/RateGen_exec.cpp
+ * examples/Hello/Receiver/Receiver_exec.cpp
+ * examples/Hello/Sender/Sender_exec.cpp
+ * examples/Null_Component/Null_Component_exec.cpp
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.cpp
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec.cpp
+ * tests/IDL_Test/Lem_Specific_Export/Lem_Export_exec.cpp
+ * tests/Minimum/Receiver/Receiver_exec.cpp
+ * tests/Minimum/Sender/Sender_exec.cpp
+ * tools/Config_Handlers/Any_Handler.cpp
+ * tools/Config_Handlers/CCD_Handler.cpp
+ * tools/Config_Handlers/CEPE_Handler.cpp
+ * tools/Config_Handlers/ComponentPropertyDescription_Handler.cpp
+ * tools/Config_Handlers/CPD_Handler.cpp
+ * tools/Config_Handlers/CRDD_Handler.cpp
+ * tools/Config_Handlers/DataType_Handler.cpp
+ * tools/Config_Handlers/DD_Handler.cpp
+ * tools/Config_Handlers/DP_PCD_Handler.cpp
+ * tools/Config_Handlers/ERE_Handler.cpp
+ * tools/Config_Handlers/ID_Handler.cpp
+ * tools/Config_Handlers/IDREF_Base.cpp
+ * tools/Config_Handlers/IRDD_Handler.cpp
+ * tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.cpp
+ * tools/Config_Handlers/Package_Handlers/IAD_Handler.cpp
+ * tools/Config_Handlers/Package_Handlers/PC_Intf.cpp
+ * tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp
+ * tools/Config_Handlers/PCD_Handler.cpp
+ * tools/Config_Handlers/PL_Handler.cpp
+ * tools/Config_Handlers/Property_Handler.cpp
+ * tools/Config_Handlers/RDD_Handler.cpp
+ * tools/Config_Handlers/Req_Handler.cpp
+ * tools/Config_Handlers/SatisfierProperty_Handler.cpp
+ * tools/Config_Handlers/STD_PC_Intf.cpp
+ * tools/Config_Handlers/XML_File_Intf.cpp
+ Removed CIAO_Common.h, the macro was just needed for one file, not for all
+ users. If you need CIAO logging macros, include ciao/Logger/Log_Macros.h
+
+Thu Nov 5 10:19:31 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Containers/Container_Base.h:
+ Removed old macro that wasn't used and didn't compile
+
+ * ciao/Contexts/Context_Impl_Base.h:
+ Doxygen changes
+
+Wed Nov 4 17:54:31 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ccm/ComponentServer/CCM_ComponentServer.mpc:
+ * ciao/ComponentServer/CIAO_ComponentServer.mpc:
+ Only generate the export files using one idl file
+
+Wed Nov 4 13:38:31 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/docs/DDS for CCM FTF 04Nov09.doc:
+ * connectors/dds4ccm/docs/DDS4CCM v1-0 batch6.odt:
+ * connectors/dds4ccm/docs/dds4CCM v1.0 NT v5.idl3p:
+ Batch 6 documents
+
+Wed Nov 4 12:48:31 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Deployment/Deployment_DeploymentPlan.idl:
+ Escaped MirrorPort, it is a reserved keyword with the changes
+ in TAO_IDL from yesterday
+
+Wed Nov 4 11:50:31 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ccm/ComponentServer/CCM_ComponentServer.mpc:
+ Reduced the number of source files generates, generate
+ export files
+
+ * ccm/ComponentServer/DAnCE_ComponentServer_stub_export.h:
+ * ccm/ComponentServer/DAnCE_ComponentServer_svnt_export.h:
+ Removed, will be generated by TAO_IDL from now
+
+Wed Nov 4 11:30:31 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/ComponentServer/CIAO_ComponentInstallation_Impl.h
+ * DAnCE/DomainApplication/Domain_Application_Impl.h
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h
+ * DAnCE/DomainApplicationManager/Node_Locator.h
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.h
+ * DAnCE/ExecutionManager/ExecutionManager_Module.h
+ * DAnCE/NodeApplication/ComponentAttributesSetter.h
+ * DAnCE/NodeApplication/NodeApplication_Impl.h
+ * DAnCE/NodeApplication/ServerActivator_Impl.h
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h
+ * DAnCE/NodeManager/Node_Manager_Module.h
+ * DAnCE/NodeManager/NodeManager_Impl.h
+ * DAnCE/Plan_Launcher/Plan_Launcher.h
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Module.h
+ * DAnCE/Plan_Launcher/Plan_Launcher_Module.h
+ * DAnCE/RepositoryManager/Repository_Manager_Module.h
+ * DAnCE/Starter/Starter.cpp
+ * DAnCE/TargetManager/Target_Manager_Module.h
+ * DAnCE/Utils/Plan_Handler.h
+ Doxygen fixes
+
+Wed Nov 4 11:16:31 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/ComponentServer/CIAO_ComponentServer.cpp:
+ * ciao/ComponentServer/CIAO_ComponentServer.h:
+ Removed more deprecated code
+
+ * ciao/ComponentServer/CIAO_Container_Impl.h
+ Layout change
+
+Wed Nov 4 11:07:31 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * MPC/config/ciao_componentserver_configurator.mpb:
+ * MPC/config/ciao_config_manager.mpb:
+ * MPC/config/ciao_nodeapp_configurator.mpb:
+ * MPC/config/ciao_noop_configurator.mpb:
+ Removed, not used anymore
+
+ * ciao/ComponentServer/Configurators/*:
+ * ciao/ComponentServer/CIAO_ServerResources.idl:
+ * ciao/ComponentServer/Configurator_Factory.cpp:
+ * ciao/ComponentServer/Configurator_Factory.h:
+ * ciao/ComponentServer/CIAO_CS_Client_svnt_export.h:
+ * ciao/ComponentServer/CIAO_ComponentServer_stub_export.h:
+ * ciao/ComponentServer/CIAO_ComponentServer_svnt_export.h:
+ Removed, all not used anymore.
+
+ * ciao/ComponentServer/CIAO_ComponentInstallation_Impl.h:
+ * ciao/ComponentServer/CIAO_ComponentServer_Impl.h:
+ * ciao/ComponentServer/CIAO_Container_Impl.h:
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.h:
+ Updated export macro
+
+ * ciao/ComponentServer/CIAO_ComponentServer.cpp:
+ * ciao/ComponentServer/CIAO_ComponentServer.h:
+ Removed all configurator support which was doing nothing more then a noop
+ configurator
+
+ * ciao/ComponentServer/CIAO_ComponentServer.mpc:
+ Cleanup, generate export macros
+
+ * ciao/ComponentServer/CIAO_Properties.idl:
+ Removed deprecated property
+
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp:
+ Removed old stuff
+
+Wed Nov 4 10:04:31 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/RT-CCM/*:
+ Removed from svn head, RTCCM isn't supported anymore. On the long
+ term we want to support RTCCM through the QoS4CCM spec, at that
+ moment we can revive this directory from svn
+
+Wed Nov 4 06:48:31 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/ComponentServer/CIAO_ComponentServer.mpc:
+ Suppress skeleton files
+
+ * ciao/ComponentServer/Configurators/Basic_Config_Manager.cpp:
+ * ciao/ComponentServer/Configurators/Basic_Config_Manager.h:
+ * ciao/ComponentServer/Configurators/Config_Manager.h:
+ Layout changes
+
+ * ciao/ComponentServer/Configurators/RTNodeApp_Configurator.cpp:
+ Initialise pointer with 0
+
+ * ciao/ComponentServer/Configurators/RT/RT_Configurator.mpc:
+ New file
+
+Tue Nov 3 17:46:17 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tests/IDL_Test/Cornucopia/Cornucopia.idl:
+ * tests/IDL_Test/Keywords/Keyword_Clash.idl:
+
+ Updated test IDL to included IDL3+ cases, sent by
+ Johnny Willemsen <jwillemsen at remedy dot nl>.
+
+Tue Nov 3 13:54:31 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ccm/extension/*:
+ Removed this from svn head for the moment. We don't support QoS4CCM at all
+ at this moment, so let us only ship things we really need
+
+Tue Nov 3 13:41:31 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Servants/CIAO_Port_Activator_export.h:
+ Removed, generated by TAO_IDL from now
+
+ * ciao/Servants/Home_Servant_Impl_T.h:
+ Doxygen changes
+
+ * ciao/Servants/Servants.mpc:
+ Use seperate project for idl generation, generate no C.inl but
+ do generate an export file
+
+Tue Nov 3 13:32:31 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Contexts/Swapping/*:
+ Removed from the archive, swapping containers don't work and it will be a major
+ job to reimplement this
+
+Tue Nov 3 13:29:31 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Servants/Swapping/*:
+ Removed from the archive, swapping containers don't work and it will be a major
+ job to reimplement this
+
+Tue Nov 3 13:27:31 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Containers/Session/Session_Container.h:
+ Updated export macro
+
+ * ciao/Containers/Session/Session_Container.mpc:
+ Use seperate project for idl generation, generate no C.inl/S.cpp/S.inl but
+ do generate an export file
+
+ * ciao/Containers/Session/Session_Container_export.h:
+ Removed, generated by TAO_IDL from now
+
+Tue Nov 3 13:20:31 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Containers/CIAO_Servant_Activator.mpc:
+ Moved IDL generation into a seperate project so that we can generate the
+ export file
+
+ * ciao/Containers/CIAO_Servant_Activator_export.h:
+ Removed, generated by TAO_IDL from now
+
+ * ciao/Containers/Servant_Activator.h:
+ Updated export macro
+
+ * ciao/Containers/Swapping/*:
+ Removed from the archive, swapping containers don't work and it will be a major
+ job to reimplement this
+
+Tue Nov 3 13:06:31 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp:
+ Small code fix
+
+ * ciao/Containers/CIAO_Servant_Activator.mpc:
+ Cleanup of this file and no need to generate C.inl file
+
+ * ciao/Containers/Container_Base.h:
+ Updated the export macro
+
+ * ciao/Containers/Containers.mpc:
+ Use a seperate project for the idl file which also generates the export
+ file
+
+ * ciao/Containers/Container_Base_export.h:
+ Removed from the archive, generated by TAO_IDL
+
+Sun Nov 1 09:50:31 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/docs/DDS for CCM FTF 30Oct09.doc
+ * connectors/dds4ccm/docs/dds4CCM v1.0 NT v3 update 6.idl3p
+ Files related to draft update 6
+
+Thu Oct 29 11:31:31 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Logger/Log_Macros.h:
+ * DAnCE/Logger/Logger_Service.h:
+ Unicode fixes
+
+Mon Oct 26 11:19:31 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/docs/DDS for CCM FTF 22Oct09.doc:
+ * connectors/dds4ccm/docs/DDS4CCM v1-0 batch5.odt:
+ Latest version of the spec
+
+Mon Oct 19 19:53:31 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ Fixed vc71 error.
+
+Fri Oct 16 08:52:48 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * etc/ciao_dds4ccm.doxygen:
+ new doxygen file for dds4ccm
+
+Fri Oct 16 07:43:48 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/ComponentServer/CIAO_Container_Impl.cpp:
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp:
+ * ciao/Servants/Servant_Impl_Base.cpp:
+ Small code improvements
+
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.h:
+ Doxygen changes, removed commented out namespace
+
+ * ciao/Containers/Container_Base.h:
+ * ciao/ComponentServer/Configurator_Factory.cpp
+ Doxygen changes
+
+ * ciao/Servants/Port_Activator.cpp:
+ * ciao/Servants/Port_Activator.h:
+ * ciao/Servants/Port_Activator.inl:
+ Virtual functions shouldn't be in an inline file
+
+ * tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc:
+ Fixed build error
+
+Thu Oct 15 07:23:48 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc:
+ * tools/IDL3_to_XMI/IDL3_TO_XMI.mpc:
+ Use tao_idl_fe
+
+Wed Oct 14 07:54:48 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * docs/tutorials/Quoter/Simple/01.html:
+ Updated link to MPC documentation
+
+Tue Oct 13 18:55:48 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * NEWS:
+
+ Updated with PlanLocality.
+
+Tue Oct 13 18:38:21 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CIAO/DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleProcessColocation_2.cdp:
+ * CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleProcessColocation_Default.cdp:
+
+ Additional testing and bugfixes.
+
+Tue Oct 13 18:15:48 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * performance-tests/Benchmark/Benchmark_skel_export.h:
+ * performance-tests/Benchmark/Benchmark_stub_export.h:
+ * performance-tests/Benchmark/BenchmarkE.idl:
+ Removed these files, they are generated as part of the build
+
+Tue Oct 13 17:17:39 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Logger/Log_Macros.h:
+
+ Fixed log message indenting with tracing enabled.
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.h:
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/SimpleProcessColocation.cdp:
+
+ First pass planlocality support.
+
+Tue Oct 13 06:32:48 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/ComponentServer/CIAO_ComponentServer.cpp
+ * DAnCE/ExecutionManager/ExecutionManager_Module.cpp
+ * DAnCE/NodeManager/Node_Manager_Module.cpp
+ * DAnCE/NodeManager/NodeManager_Impl.cpp
+ * DAnCE/NodeManager/NodeManager_Impl.h
+ * DAnCE/RepositoryManager/repository_manager_admin_exec.cpp
+ * DAnCE/RepositoryManager/Repository_Manager_Module.cpp
+ * DAnCE/Starter/Starter.cpp
+ * DAnCE/TargetManager/Target_Manager_Module.cpp
+ Fixed compile warnings with PPC
+
+Mon Oct 12 14:03:48 CDT 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIAO version 0.7.4 released.
+
+Local Variables:
+mode: change-log
+add-log-time-format: (lambda () (progn (setq tz (getenv "TZ")) (set-time-zone-rule "UTC") (setq time (format-time-string "%a %b %e %H:%M:%S %Z %Y" (current-time))) (set-time-zone-rule tz) time))
+indent-tabs-mode: nil
+End:
diff --git a/modules/CIAO/ChangeLogs/ChangeLog-04a b/modules/CIAO/ChangeLogs/ChangeLog-04a
new file mode 100644
index 00000000000..e344fe85bee
--- /dev/null
+++ b/modules/CIAO/ChangeLogs/ChangeLog-04a
@@ -0,0 +1,5390 @@
+Fri Jul 30 18:29:54 2004 Ossama Othman <ossama@dre.vanderbilt.edu>
+
+ * ciao/Servant_Impl_T.cpp (get_all_facets, get_all_consumers):
+
+ Fixed another instance of incorrect emulated exception
+ parameters. The method definitions incorrectly used a default
+ valued parameters.
+
+ Fixed unused parameter warnings.
+
+Fri Jul 30 17:29:18 2004 Ossama Othman <ossama@dre.vanderbilt.edu>
+
+ * NEWS: Added CIAO 0.4.2 noteworthy items.
+
+Thu Jul 29 16:54:01 2004 Ossama Othman <ossama@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/Servant_Impl_T.cpp (get_all_facets):
+ (get_all_consumers):
+
+ Fixed incorrect emulated exception parameters. The method
+ definitions incorrectly used a default valued parameters.
+
+ Fixed unused parameter warnings.
+
+Thu Jul 29 16:47:56 2004 Ossama Othman <ossama@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.inl
+ (get_nodeapp_manager):
+
+ Removed emulated exception parameter. The corresponding method
+ declaration in the header doesn't have such a parameter. Fixes
+ a compile-time problem.
+
+Thu Jul 29 14:28:55 2004 Ossama Othman <ossama@dre.vanderbilt.edu>
+
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp
+ (createPackage, deletePackage, findPackageByName):
+
+ Fixed emulated exception macro usage. Addresses compile-time
+ problems in MSVC++ 6 builds.
+
+Tue Jul 27 14:48:10 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h:
+ Removed the emulated exception parameter from the destructor
+ so the file will be compiled when the exception is turned off.
+
+Tue Jul 27 09:58:58 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/NodeApplication.mpc:
+ Rearranged the order of libraries to fix link errors in static
+ configurations.
+
+Mon Jul 26 11:08:14 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DAnCE/tests/Config_Handlers/handler_test.mpb:
+ Added CIAO_DnC_Client to resolve link errors
+
+Mon Jul 26 11:06:38 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.inl:
+ Added ACE_INLINE for the get_nodeapp_ref method to resolve
+ linking errors in the builds with static configurations
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h:
+ changed changed nade_app_manager to node_app_manager!
+
+ * DAnCE/NodDaemon/NodeDaemon.mpc:
+ Resolved link errors
+
+Sun Jul 25 22:13:48 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * Release:
+
+ Makefile with release information.
+
+Sun Jul 25 22:15:03 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * ChangeLog:
+
+Sat Jul 24 20:57:03 2004 Krishnakumar B <kitty@nospam.invalid.domain>
+
+ * docs/releasenotes/dance.html: Updated the release notes for
+ DAnCE.
+
+Fri Jul 23 23:43:01 2004 Nanbor Wang <nanbor@cse.wustl.edu>
+
+ I didn't get around to send the following to Venkita before he
+ left for vacation so I'm checking them in here.
+
+ * tests/RTCCM/Priority_Test/README:
+ * tests/RTCCM/Priority_Test/descriptors/README: Documentation for
+ running the simple Priority tests applications.
+
+Tue Jul 20 16:03:14 2004 Krishnakumar B <kitty@nospam.invalid.domain>
+
+ * docs/releasenotes/dance.html: Updated the release notes for
+ DAnCE.
+
+Tue Jul 20 12:37:50 2004 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * docs/releasenotes/dance.html
+
+ Added this file to describe what the current status is
+ about the DAnCE.
+
+Mon Jul 19 14:16:10 2004 Krishnakumar B <kitty@nospam.invalid.domain>
+
+ * ciao/ServerActivator_Impl.cpp (init): Use the argument
+ spawn_delay to set the value of the delay in seconds that the
+ ServerActivator waits for the ComponentServer to come up. This
+ is needed when the ComponentServer is not able to come up before
+ the hardcoded value of 5 seconds passes by, which happens when
+ running the ComponentServer under Valgrind.
+
+Mon Jul 19 12:47:17 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/CCM_Core.mpc:
+
+ Added ifr_client to Deployment_stub and Deployment_svnt. This
+ should fix VC6 build issues.
+
+Sun Jul 18 12:53:04 2004 Ossama Othman <ossama@dre.vanderbilt.edu>
+
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client.cpp (main):
+
+ Fixed "better conversion sequence" warning by using component
+ reference ".in()" accessor.
+
+Thu Jul 15 21:52:12 2004 Johnnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeManager/NodeDaemon_Impl.h:
+ * DAnCE/tests/NodeApplicationTest/NodeAppTest_RoundTrip.idl:
+ Fixed incorrect doxygen file tag
+
+Wed Jul 14 10:40:41 2004 Ossama Othman <ossama@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+ (init):
+ * DAnCE/NodeManager/NodeDaemon_Impl.cpp (preparePlan):
+
+ Fixed "control reaches end of non-void function" warning.
+
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.cpp
+ (ExecutionManager_Impl):
+ * DAnCE/ciao/NodeApplication_Impl.cpp:
+
+ Corrected emulated exception macro usage.
+
+ Fixed "unused parameter" warning.
+
+Wed Jul 14 08:46:24 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CCF/CCF/CIDL/CIDL.mpc:
+ * CCF/CCF/IDL2/IDL2.mpc:
+
+ Fixed the MPC files that were busted.
+
+Tue Jul 13 09:49:50 2004 Venkita Subramonian <venkita@cs.wustl.edu>
+
+ * docs/releasenotes/index.html: Updated release notes with
+ information on static configurator and Nanbor's examples for
+ composition of RT applications using real-time extensions in
+ CIAO.
+
+Tue Jul 13 04:27:19 2004 Ossama Othman <ossama@dre.vanderbilt.edu>
+
+ * performance-tests/Protocols/Controller/Controller.cpp:
+
+ Removed unused variable.
+
+Mon Jul 12 11:06:54 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/Documentation/Build.html: Fixed a few URLs. Thanks to
+ Matthew Gillen <mgillen@bbn.com> for reporting this.
+
+Sun Jul 11 06:07:12 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/XML_Helpers/Assembly_Handlers.inl:
+ * tools/XML_Helpers/RTConfig_Handlers.inl:
+ * tools/XML_Helpers/Softpkg_Handlers.inl:
+ Fixed compile errors in Borland build, use full namespaces for the
+ baseclass
+
+Fri Jul 9 20:36:14 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.inl:
+
+ Fixed a warning.
+
+Fri Jul 9 20:21:46 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * performance-tests/Protocols/Receiver/Receiver_svnt.h:
+ * performance-tests/Protocols/Receiver/Receiver_svnt.cpp:
+ * performance-tests/Protocols/Sender/Sender_svnt.h:
+ * performance-tests/Protocols/Sender/Sender_svnt.cpp:
+
+ Removed them from the repo.
+
+Thu Jul 8 17:16:34 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/Config_Handlers.mpc:
+ * DAnCE/RepositoryManager/RepositoryManager.mpc:
+ * DAnCE/tests/Config_Handlers/handler_test.mpb:
+
+ Made changes to not build these when exceptions=0
+
+Thu Jul 8 16:59:26 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc:
+ *
+ DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ * DAnCE/NodeManager/NodeDaemon_Impl.cpp:
+
+ Fix build errors.
+
+Thu Jul 8 16:53:06 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Moved the call to populate_port_tables() from the
+ component servant constructor to the end of
+ the ciao_postactivate() method in the component servant,
+ but it is commented out for now until related issues
+ in DaNCe are resolved.
+
+Thu Jul 8 16:46:55 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ * DAnCE/ciao/NodeApp_CB_Impl.cpp:
+ * DAnCE/ciao/NodeApp_CB_Impl.h:
+
+ Fixing build errors.
+
+Thu Jul 8 16:30:48 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/NodeApplication_Impl.cpp:
+
+ Made changes to fix emulated build errors.
+
+Wed Jul 7 21:52:24 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * docs/releasenotes/index.html:
+
+ Revamped to provide a new look. Has updated information. The
+ notes are missing a link to dance.html which should have
+ information about DAnCE. Tao will take care of that.
+
+Wed Jul 7 15:04:37 2004 Venkita Subramonian <venkita@cs.wustl.edu>
+
+ * examples/OEP/BasicSP/descriptors/test.rtd:
+ * examples/OEP/BasicSP/descriptors/svcmap.dat:
+ * examples/OEP/BasicSP/descriptors/RTsvc.conf:
+ * examples/OEP/BasicSP/descriptors/BasicSP-rt.cad:
+
+ Added these files to be used in RT version of BasicSP.
+
+ * examples/OEP/BasicSP/NOTE.txt:
+
+ Updated notes on how to run with RTComponentServer.
+
+Wed Jul 7 14:35:33 2004 Venkita Subramonian <venkita@cs.wustl.edu>
+
+ * docs/static_ciao_contents.html:
+ * docs/static_config_example.html:
+ * docs/static_config_rtexample.html:
+
+ Updated documentation for CIAO Static configurator.
+
+Wed Jul 7 12:22:04 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp:
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.h:
+ * DAnCE/RepositoryManager/Repository_Manager.cpp:
+ * DAnCE/RepositoryManager/Update_Plan.cpp:
+ * DAnCE/RepositoryManager/Repository_Manager_conf.h:
+
+ Addressed Ossama Othman's code review comments.
+ Thanks Ossama.
+
+Wed Jul 7 11:42:15 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * docs/TODO.html:
+ Some cosmetic changes.
+
+Wed Jul 7 10:42:19 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * docs/releasenotes/switch.html:
+ * docs/releasenotes/index.html:
+
+ Updated the file to follow the directory change for DAnCE.
+ Updated the link to the TODO list.
+
+Wed Jul 7 09:53:56 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * docs/TODO.html:
+
+ Overhauled the TODO completely keeping in mind the latest
+ thoughts and forces.
+
+ * docs/todo.html:
+
+ Removed this from th erepository.
+
+Tue Jul 6 18:05:35 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CIAO-INSTALL.html:
+
+ Did a massive update to this since it was woefully outdated.
+
+Tue Jul 6 14:34:16 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+
+ Comment out the "dump plan" debugging statement, coz the current
+ "DnC_dump" class is somewhat broken under VC71.
+
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.h
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.h
+
+ Fixed warnings due to lacking including header files.
+
+ * DAnCE/ciao/CCM_Core.mpc
+ * DAnCE/tests/NodeApplicationTest/NodeAppTest.mpc
+ * DAnCE/NodeApplication/NodeApplication.mpc
+
+ Fixed a bunch of linking errors under VC71.
+
+ Now everything build fine under Windows with VC71.
+
+Tue Jul 6 14:22:00 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CCF/CCF/CIDL/CIDL.mpc:
+ * CCF/CCF/CodeGenerationKit/CodeGenerationKit.mpc:
+ * CCF/CCF/CompilerElements/CompilerElements.mpc:
+ * CCF/CCF/IDL2/IDL2.mpc:
+ * CCF/CCF/IDL3/IDL3.mpc:
+ * CIDLC/CIDLC.mpc:
+
+ All of them require exceptions to be available. Therefore added
+ requires += exceptions.
+
+ * CCF/CCF/CodeGenerationKit/IndentationXML.hpp:
+
+ Remove the comma at the end of the enum declaration.
+
+
+ All the above should fix compilation errors in Full_Reactors
+ builds.
+
+Tue Jul 6 10:17:06 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+
+ Removed unnecessary comments.
+
+Tue Jul 6 10:15:11 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/ImplementationInfo.cpp (CIAO):
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.cpp (destroyManager):
+
+ Deleted some comments which has been addressed already.
+
+Mon Jul 5 08:39:06 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * tools/Segment_Timer/Segment_Timer.cpp:
+ * tools/static_configurator/Static_Assembly_Parser.cpp:
+
+ Fixed warnings that were caused from converting strings to
+ non-const char *.
+
+Mon Jul 5 08:36:07 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * tests/temp/README:
+ * tests/temp/assembly/README:
+ * tests/temp/assembly/client.cpp:
+ * tests/temp/assembly/control.idl:
+ * tests/temp/assembly/control.mpc:
+ * tests/temp/assembly/run_test.pl:
+ * tests/temp/assembly/server.cpp:
+
+ Completely removed them. They were not supposed to be shipped or
+ built. We have better test programs for those features now.
+
+Mon Jul 5 08:27:39 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * examples/OEP/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc:
+
+ Added requires += qt
+
+ * examples/handcrafted/BasicSP_EC/EC/EC.mpc:
+ * examples/handcrafted/BasicSP_EC2/BasicSP.mpc:
+ * examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService.mpc:
+
+ They should not be compiled inour daily builds at all. They are
+ not for that.
+
+ * tests/RTCCM/DiffServ/Controller/Controller.mpc:
+ * tests/RTCCM/DiffServ/Receiver/Receiver.mpc:
+ * tests/RTCCM/DiffServ/Sender/Sender.mpc:
+
+ Change the library names. Else they clash with other things in
+ the build system.
+
+Sun Jul 4 22:13:37 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * performance-tests/Benchmark/RoundTrip/RoundTrip_exec.cpp:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip_exec.h:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec.cpp:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec.h:
+
+ Added ciao_preactivate () and ciao_postactivate () methods.
+
+ * performance-tests/Protocols/Receiver/Receiver.mpc:
+ * performance-tests/Protocols/Sender/Sender.mpc:
+
+ Did the following
+
+ (1) Changed the name of the shared object to Protocol_*_stub and
+ Protocol_*_svnt. This was needed since there are other examples
+ that have named the libraries as Sender_stub and
+ Receiver_stub. Since all of these libraries are written to
+ $ACE_ROOT/lib, one library overwrites the other and all hell
+ breaks loose.
+
+ (2) The executor librares are not being compiled now. We have
+ used the requires += dummy to prevent them from compiling. The
+ executor code depends on a header file that hasn't been checked
+ in. I am informing the code author about this. Till the author
+ fixes the code, the executor code will not be compiled.
+
+ * performance-tests/Protocols/Controller/Controller.mpc:
+
+ They now link to Protocol_*_stubs.
+
+
+Sun Jul 4 19:05:35 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * examples/handcrafted/BasicSP_EC/BasicSP.mpc:
+ * examples/handcrafted/BasicSP_EC/BMClosedED/BMClosedED.mpc:
+ * examples/handcrafted/BasicSP_EC/BMDevice/BMDevice.mpc:
+ * examples/handcrafted/BasicSP_EC/BMDisplay/BMDisplay.mpc:
+ * examples/handcrafted/BasicSP_EC/EC/EC.mpc:
+ * examples/handcrafted/BasicSP_EC2/BMClosedED/BMClosedED.mpc:
+ * examples/handcrafted/BasicSP_EC2/BMDevice/BMDevice.mpc:
+ * examples/handcrafted/BasicSP_EC2/BMDisplay/BMDisplay.mpc:
+ * examples/handcrafted/BasicSP_EC2/EC/EC.mpc:
+
+ Do not compile these. They wouldn't compile at all. These are
+ useful examples that are needed for EC integration.
+
+Sun Jul 4 18:59:09 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * examples/Hello/Receiver/Receiver_exec.cpp:
+ * examples/OEP/BasicSP/BMClosedED/BMClosedED_exec.cpp:
+ * examples/OEP/BasicSP/BMDevice/BMDevice_exec.cpp:
+ * examples/OEP/BasicSP/BMDisplay/BMDisplay_exec.cpp:
+ * examples/OEP/Display/NavDisplay/NavDisplay_exec.cpp:
+ * examples/OEP/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.cpp:
+
+ No need to register value factories explicitly. They are now
+ generated in the servant code.
+
+Sun Jul 4 18:40:10 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * performance-tests/Protocols/Receiver/ReceiverImpl.ccd
+ * performance-tests/Protocols/Receiver/Receiver_svnt.h
+ * performance-tests/Protocols/Sender/SenderImpl.ccd
+ * performance-tests/Protocols/Sender/Sender_svnt.h:
+
+ Removed the generated code form the repository.
+
+Sun Jul 4 11:14:03 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/CCM_Core.mpc:
+
+ Restructured things so that CIAO_DnC_Server doesn't need to be
+ linked with stub projects.
+
+ * DAnCE/ciao/Container_Base.h:
+
+ Added an include for the xport file.
+
+Sun Jul 4 10:17:52 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/CCM_Core.mpc:
+
+ The deployment_stub should depend on the CIAO_DnC_Server. This
+ would need some restructuring. I will do this shortly.
+
+Sun Jul 4 09:07:20 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CIAO.mwc:
+
+ Added DAnCE and removed DnC
+
+ * DAnCE/RepositoryManager/Repository_Manager.cpp:
+ * DAnCE/ExecutionManager/Execution_Manager.cpp:
+
+ Fixed warnings in our daily builds.
+
+ * DAnCE/NodeManager/NodeDaemon.mpc:
+
+ Use CIAO_DnC_Server instead of CIAO_Server.
+
+ * DAnCE/ciao/CCM_Core.mpc:
+
+ Removed unneeded dependancies.
+
+Sat Jul 3 10:03:22 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/Deployment_Base.idl:
+ * DAnCE/ciao/Deployment_Data.idl:
+ * DAnCE/ciao/Deployment.idl:
+ The original Deployment.idl is splited into the above 3 files to
+ get rid of the VC warning.
+
+ * DAnCE/ciao/Deployment_Ex.idl:
+ This file is removed due to the bad name.
+
+ * DAnCE/ciao/CCM_Core.idl:
+ The MPC file is changed to follow the above changes.
+
+Thu Jul 1 16:27:07 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * CIAOTAO.mwc:
+ * DAnCE/tests/Config_Handlers/handler_test.mpb:
+
+ Updated mpc to build the new DAnCE directory.
+
+Thu Jul 1 16:19:21 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ *
+ DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.h:
+ * DAnCE/tests/Config_Handlers/handler_test.mpb:
+ * DAnCE/tests/scripts/BasicSP/basicNodeDaemon.pl:
+
+ Updated the files to include the right header files.
+
+Thu Jul 1 16:01:12 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DADAnCE/Deployment.xsd
+ * DAnCE/Deployment.mwc:
+ * DAnCE/Deployment.xsd.orig:
+ * DAnCE/XMI.xsd:
+ * DAnCE/XMI.xsd.orig:
+ * DAnCE/Config_Handlers/Any_Handler.cpp:
+ * DAnCE/Config_Handlers/Any_Handler.h:
+ * DAnCE/Config_Handlers/Basic_Handler.cpp:
+ * DAnCE/Config_Handlers/Basic_Handler.h:
+ * DAnCE/Config_Handlers/CAD_Handler.cpp:
+ * DAnCE/Config_Handlers/CAD_Handler.h:
+ * DAnCE/Config_Handlers/CEPE_Handler.h
+ * DAnCE/Config_Handlers/CEPE_Handler.cpp:
+ * DAnCE/Config_Handlers/CPK_Handler.cpp:
+ * DAnCE/Config_Handlers/CPK_Handler.h:
+ * DAnCE/Config_Handlers/CPR_Handler.cpp:
+ * DAnCE/Config_Handlers/CPR_Handler.h:
+ * DAnCE/Config_Handlers/Cap_Handler.cpp:
+ * DAnCE/Config_Handlers/Cap_Handler.h:
+ * DAnCE/Config_Handlers/CompImplDesc_Handler.cpp:
+ * DAnCE/Config_Handlers/CompImplDesc_Handler.h:
+ * DAnCE/Config_Handlers/CompIntrDesc_Handler.cpp:
+ * DAnCE/Config_Handlers/CompIntrDesc_Handler.h:
+ * DAnCE/Config_Handlers/CompPkgDesc_Handler.cpp:
+ * DAnCE/Config_Handlers/CompPkgDesc_Handler.h:
+ * DAnCE/Config_Handlers/Config_Error_Handler.cpp:
+ * DAnCE/Config_Handlers/Config_Error_Handler.h:
+ * DAnCE/Config_Handlers/Config_Handler_export.h:
+ * DAnCE/Config_Handlers/Config_Handlers.mpc:
+ * DAnCE/Config_Handlers/DT_Handler.cpp:
+ * DAnCE/Config_Handlers/DT_Handler.h:
+ * DAnCE/Config_Handlers/Deployment.h:
+ * DAnCE/Config_Handlers/DnC_Dump.cpp:
+ * DAnCE/Config_Handlers/DnC_Dump.h:
+
+ Checked in all the XML handlers needed by DAnCE.
+
+Thu Jul 1 15:54:15 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/Domain_Handler.cpp:
+ * DAnCE/Config_Handlers/Domain_Handler.h:
+ * DAnCE/Config_Handlers/ERE_Handler.cpp:
+ * DAnCE/Config_Handlers/ERE_Handler.h:
+ * DDAnCE/Config_Handlers/IAD_Handler.h
+ * DAnCE/Config_Handlers/IAD_Handler.cpp:
+ * DAnCE/Config_Handlers/ID_Handler.cpp:
+ * DAnCE/Config_Handlers/ID_Handler.h:
+ * DAnCE/Config_Handlers/IR_Handler.cpp:
+ * DAnCE/Config_Handlers/IR_Handler.h:
+ * DAnCE/Config_Handlers/MID_Handler.cpp:
+ * DAnCE/Config_Handlers/MID_Handler.h:
+ * DAnCE/Config_Handlers/NIA_Handler.cpp:
+ * DAnCE/Config_Handlers/NIA_Handler.h:
+ * DAnCE/Config_Handlers/PCI_Handler.cpp:
+ * DAnCE/Config_Handlers/PCI_Handler.h:
+ * DAnCE/Config_Handlers/PC_Handler.cpp:
+ * DAnCE/Config_Handlers/PC_Handler.h:
+ * DAnCE/Config_Handlers/Plan_Handler.cpp:
+ * DAnCE/Config_Handlers/Plan_Handler.h:
+ * DAnCE/Config_Handlers/Process_Element.cpp:
+ * DAnCE/Config_Handlers/Process_Element.h:
+ * DAnCE/Config_Handlers/Process_Element_T.cpp:
+ * DAnCE/Config_Handlers/Process_Element_T.h:
+ * DAnCE/Config_Handlers/Property_Handler.cpp:
+ * DAnCE/Config_Handlers/Property_Handler.h:
+ * DAnCE/Config_Handlers/RS_Handler.cpp:
+ * DAnCE/Config_Handlers/RS_Handler.h:
+ * DAnCE/Config_Handlers/RUK_Handler.cpp:
+ * DAnCE/Config_Handlers/RUK_Handler.h:
+ * DAnCE/Config_Handlers/Requirement_Handler.cpp:
+ * DAnCE/Config_Handlers/Requirement_Handler.h:
+ * DAnCE/Config_Handlers/SPK_Handler.cpp:
+ * DAnCE/Config_Handlers/SPK_Handler.h:
+ * DAnCE/Config_Handlers/SP_Handler.cpp:
+ * DAnCE/Config_Handlers/SP_Handler.h:
+ * DAnCE/Config_Handlers/TPD_Handler.cpp:
+ * DAnCE/Config_Handlers/TPD_Handler.h:
+ * DAnCE/Config_Handlers/Utils.cpp:
+ * DAnCE/Config_Handlers/Utils.h:
+ * DAnCE/Config_Handlers/XercesString.cpp:
+ * DAnCE/Config_Handlers/XercesString.h:
+
+ First cut check-in for XML handlers.
+
+
+
+Thu Jul 1 15:51:14 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/Deployment_Configuration.cpp:
+ * DAnCE/DomainApplicationManager/Deployment_Configuration.h:
+ * DAnCE/DomainApplicationManager/Deployment_Configuration.inl:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc:
+ *
+ DAnCE/DomainApplicationManager/DomainApplicationManager_Export.h:
+ *
+ DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h:
+ *
+ DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.inl:
+ * DAnCE/ExecutionManager/ExecutionManager.idl:
+ * DAnCE/ExecutionManager/ExecutionManager.mpc:
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.cpp:
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.h:
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.inl:
+ * DAnCE/ExecutionManager/ExecutionManager_stub_export.h:
+ * DAnCE/ExecutionManager/Execution_Manager.cpp:
+
+ Checking in the DomainApplicationManager and ExecutionManager
+ interfaces.
+
+Thu Jul 1 15:47:45 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/NodeApplication.cpp:
+ * DAnCE/NodeApplication/NodeApplication.mpc:
+ * DAnCE/NodeApplicationManager/CIAO_NAM_Export.h:
+ * DAnCE/NodeApplicationManager/ImplementationInfo.cpp:
+ * DAnCE/NodeApplicationManager/ImplementationInfo.h:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.inl:
+ * DAnCE/NodeManager/NodeDaemon.idl:
+ * DAnCE/NodeManager/NodeDaemon.mpc:
+ * DAnCE/NodeManager/NodeDaemon_Impl.cpp:
+ * DAnCE/NodeManager/NodeDaemon_Impl.h:
+ * DAnCE/NodeManager/NodeDaemon_Impl.inl:
+ * DAnCE/NodeManager/NodeDaemon_stub_export.h:
+ * DAnCE/NodeManager/Node_Daemon.cpp:
+
+ Checked in the NodeApplication, NodeApplicationManager
+ and NodeManager code.
+
+Thu Jul 1 15:45:48 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/RepositoryManager/RepositoryManager.idl:
+ * DAnCE/RepositoryManager/RepositoryManager.mpc:
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp:
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.h:
+ * DAnCE/RepositoryManager/Repository_Manager.cpp:
+ * DAnCE/RepositoryManager/Update_Plan.cpp:
+ * DAnCE/RepositoryManager/Update_Plan.h:
+
+ Moved the RepositoryManager directory here.
+
+Thu Jul 1 15:40:06 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/CCM_Base.idl:
+ * DAnCE/ciao/CCM_Component.idl:
+ * DAnCE/ciao/CCM_Container.idl:
+ * DAnCE/ciao/CCM_Container_Ex.idl:
+ * DAnCE/ciao/CCM_Core.mpc:
+ * DAnCE/ciao/CCM_Event.idl:
+ * DAnCE/ciao/CCM_Transaction.idl:
+ * DAnCE/ciao/CIAO_Client_Export.h:
+ * DAnCE/ciao/CIAO_Container_Export.h:
+ * DAnCE/ciao/CIAO_Server_Export.h:
+ * DAnCE/ciao/CIAO_Value.idl:
+ * DAnCE/ciao/CIAO_common.h:
+ * DAnCE/ciao/Client_init.cpp:
+ * DAnCE/ciao/Client_init.h:
+ * DAnCE/ciao/Components.idl:
+ * DAnCE/ciao/ComponentsC.h:
+ * DAnCE/ciao/ComponentsS.h:
+ * DAnCE/ciao/Container_Base.cpp:
+ * DAnCE/ciao/Container_Base.h:
+ * DAnCE/ciao/Container_Base.inl:
+ * DAnCE/ciao/Container_Base.pidl:
+ * DAnCE/ciao/Cookies.cpp:
+ * DAnCE/ciao/Cookies.h:
+ * DAnCE/ciao/Cookies.inl:
+ * DAnCE/ciao/CosPersistentState.idl:
+ * DAnCE/ciao/Deployment.idl:
+ * DAnCE/ciao/Deployment_Core.idl:
+ * DAnCE/ciao/Deployment_stub_export.h:
+ * DAnCE/ciao/Deployment_svnt_export.h:
+ * DAnCE/ciao/NodeApp_CB_Impl.cpp:
+ * DAnCE/ciao/NodeApp_CB_Impl.h:
+ * DAnCE/ciao/NodeApplication_CallBack.idl:
+ * DAnCE/ciao/NodeApplication_Impl.cpp:
+ * DAnCE/ciao/NodeApplication_Impl.h:
+ * DAnCE/ciao/NodeApplication_Impl.inl:
+ * DAnCE/ciao/Servant_Impl_Base.cpp:
+ * DAnCE/ciao/Servant_Impl_Base.h:
+ * DAnCE/ciao/Servant_Impl_T.cpp:
+ * DAnCE/ciao/Servant_Impl_T.h:
+ * DAnCE/ciao/Server_init.cpp:
+ * DAnCE/ciao/Server_init.h:
+ * DAnCE/ciao/Version.h:
+
+ Moving DnC/ciao over here.
+
+Thu Jul 1 15:37:33 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/tests/Config_Handlers/CompImplDesc_Handler_Test.cpp:
+ * DAnCE/tests/Config_Handlers/CompIntrDesc_Handler_Test.cpp:
+ * DAnCE/tests/Config_Handlers/CompPkgDesc_Handler_Test.cpp:
+ * DAnCE/tests/Config_Handlers/Domain_Handler_Test.cpp:
+ * DAnCE/tests/Config_Handlers/Handler_Test.cpp:
+ * DAnCE/tests/Config_Handlers/Handler_Test.h:
+ * DAnCE/tests/Config_Handlers/Handler_Test.i:
+ * DAnCE/tests/Config_Handlers/Handler_Tests.mpc:
+ * DAnCE/tests/Config_Handlers/IAD_Handler_Test.cpp:
+ * DAnCE/tests/Config_Handlers/PC_Handler_Test.cpp:
+ * DAnCE/tests/Config_Handlers/Plan_Handler_Test.cpp:
+ * DAnCE/tests/Config_Handlers/handler_test.mpb:
+
+ Checking in the tests for the XML handlers.
+
+Thu Jul 1 15:29:57 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/tests/Config_Handlers/HUDisplay/Airframe.ccd:
+ * DAnCE/tests/Config_Handlers/HUDisplay/Airframe.cid:
+ * DAnCE/tests/Config_Handlers/HUDisplay/Airframe.cpd:
+ * DAnCE/tests/Config_Handlers/HUDisplay/Airframe_Exec.iad:
+ * DAnCE/tests/Config_Handlers/HUDisplay/Airframe_Stub.iad:
+ * DAnCE/tests/Config_Handlers/HUDisplay/Airframe_Svnt.iad:
+ * DAnCE/tests/Config_Handlers/HUDisplay/Deployment.xsd:
+ * DAnCE/tests/Config_Handlers/HUDisplay/Domain.cdd:
+ * DAnCE/tests/Config_Handlers/HUDisplay/GPS.ccd:
+ * DAnCE/tests/Config_Handlers/HUDisplay/GPS.cid:
+ * DAnCE/tests/Config_Handlers/HUDisplay/GPS.cpd:
+ * DAnCE/tests/Config_Handlers/HUDisplay/GPS_Exec.iad:
+ * DAnCE/tests/Config_Handlers/HUDisplay/GPS_Stub.iad:
+ * DAnCE/tests/Config_Handlers/HUDisplay/GPS_Svnt.iad:
+ * DAnCE/tests/Config_Handlers/HUDisplay/HUDisplay.cdp:
+ * DAnCE/tests/Config_Handlers/HUDisplay/HUDisplay.cid:
+ * DAnCE/tests/Config_Handlers/HUDisplay/HUDisplay.cpd:
+ * DAnCE/tests/Config_Handlers/HUDisplay/HUDisplay.pcd:
+ * DAnCE/tests/Config_Handlers/HUDisplay/Libraries.iad:
+ * DAnCE/tests/Config_Handlers/HUDisplay/NavDisplay.ccd:
+ * DAnCE/tests/Config_Handlers/HUDisplay/NavDisplay.cid:
+ * DAnCE/tests/Config_Handlers/HUDisplay/NavDisplay.cpd:
+ * DAnCE/tests/Config_Handlers/HUDisplay/NavDisplay_Exec.iad:
+ * DAnCE/tests/Config_Handlers/HUDisplay/NavDisplay_Stub.iad:
+ * DAnCE/tests/Config_Handlers/HUDisplay/NavDisplay_Svnt.iad:
+ * DAnCE/tests/Config_Handlers/HUDisplay/Timer.ccd:
+ * DAnCE/tests/Config_Handlers/HUDisplay/Timer.cid:
+ * DAnCE/tests/Config_Handlers/HUDisplay/Timer.cpd:
+ * DAnCE/tests/Config_Handlers/HUDisplay/Timer_Exec.iad:
+ * DAnCE/tests/Config_Handlers/HUDisplay/Timer_Stub.iad:
+ * DAnCE/tests/Config_Handlers/HUDisplay/Timer_Svnt.iad:
+ * DAnCE/tests/Config_Handlers/HUDisplay/XMI.xsd:
+ * DAnCE/tests/Config_Handlers/HUDisplay/package.tpd:
+
+ Checking in the HUDisplay deployment descriptors.
+
+Thu Jul 1 15:26:54 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/tests/NodeApplicationTest/NodeAppTest.mpc:
+ * DAnCE/tests/NodeApplicationTest/NodeAppTest_RoundTrip.cidl:
+ * DAnCE/tests/NodeApplicationTest/NodeAppTest_RoundTrip.idl:
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client.cpp:
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_ex.cpp:
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_simple.cpp:
+ * DAnCE/tests/NodeApplicationTest/README:
+ * DAnCE/tests/NodeApplicationTest/RoundTrip_exec.cpp:
+ * DAnCE/tests/NodeApplicationTest/RoundTrip_exec.h:
+ * DAnCE/tests/NodeApplicationTest/RoundTrip_exec_export.h:
+ * DAnCE/tests/NodeApplicationTest/RoundTrip_stub_export.h:
+ * DAnCE/tests/NodeApplicationTest/RoundTrip_svnt_export.h:
+ * DAnCE/tests/NodeApplicationTest/run_test.pl:
+ * DAnCE/tests/NodeApplicationTest/run_test_ex.pl:
+ * DAnCE/tests/NodeApplicationTest/run_test_simple.pl:
+ * DAnCE/tests/scripts/BasicSP/basicNodeDaemon.pl:
+ * DAnCE/tests/scripts/BasicSP/basicsp.dat:
+
+ First cut checkins for new DAnCE directory.
+
+Thu Jul 1 14:46:24 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Plan_Handler.cpp:
+
+ Removed includes to Process_Basic_Type.h.
+
+Thu Jul 1 13:20:08 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Plan_Handler.cpp:
+
+ Removed includes to Process_Basic_Type.h
+
+Thu Jul 1 12:16:41 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/ExecutionManager/Execution_Manager.cpp:
+ * DnC/ExecutionManager/ExecutionManager_Impl.h:
+ * DnC/ExecutionManager/ExecutionManager_Impl.cpp:
+ * DnC/NodeManager/Node_Daemon.cpp:
+ * DnC/NodeManager/NodeDaemon_Impl.h:
+ * DnC/NodeManager/NodeDaemon_Impl.cpp:
+
+ Addressed comments left by Ossama after his code review.
+
+Thu Jul 1 12:02:05 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/CAD_Handler.cpp:
+ * DnC/Config_Handlers/CPR_Handler.cpp:
+ * DnC/Config_Handlers/Cap_Handler.cpp:
+ * DnC/Config_Handlers/CompImplDesc_Handler.cpp:
+ * DnC/Config_Handlers/CompIntrDesc_Handler.cpp:
+ * DnC/Config_Handlers/CompPkgDesc_Handler.cpp:
+ * DnC/Config_Handlers/Config_Handlers.mpc:
+ * DnC/Config_Handlers/Domain_Handler.cpp:
+ * DnC/Config_Handlers/IAD_Handler.cpp:
+ * DnC/Config_Handlers/IR_Handler.cpp:
+ * DnC/Config_Handlers/NIA_Handler.cpp:
+ * DnC/Config_Handlers/PCI_Handler.cpp:
+ * DnC/Config_Handlers/PC_Handler.cpp:
+ * DnC/Config_Handlers/Plan_Handler.cpp:
+ * DnC/Config_Handlers/Process_Basic_Type.h:
+ * DnC/Config_Handlers/Process_Basic_Type.i:
+ * DnC/Config_Handlers/Process_Element_T.cpp:
+ * DnC/Config_Handlers/TPD_Handler.cpp:
+ * DnC/Config_Handlers/Utils.cpp:
+ * DnC/Config_Handlers/Utils.h:
+ * DnC/Config_Handlers/Process_Basic_Type.h:
+ * DnC/Config_Handlers/Process_Basic_Type.i:
+
+ Moved the code in Process_Basic_Type.h and
+ Process_Basic_Type.i to Utils.h and Utils.cpp,
+ as all the utility functions are defined
+ in that file.
+
+Thu Jul 1 11:37:14 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * docs/todo.html:
+ Added two bullets in the Todo list.
+
+Thu Jul 1 11:06:42 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Process_Element_T.cpp:
+ * DnC/Config_Handlers/Process_Element_T.h:
+
+ Added the files to follow ACE coding standards.
+
+ * DnC/Config_Handlers/Process_Element.tpp:
+ * DnC/Config_Handlers/Process_Element.i:
+
+ Removed these files, as they were not following the
+ ACE standards.
+
+ The code in the above files have been moved to
+ Process_Element_T.cpp and Process_Element_T.h.
+
+Thu Jul 1 10:56:28 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * docs/releasenotes/index.html:
+ * docs/todo.html:
+
+ Updated the todo list.
+
+Wed Jun 30 22:29:51 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * docs/releasenotes/switch.html:
+ * docs/releasenotes/index.html:
+ Updated the release note. I will work on the to-do list
+ as well.
+
+Wed Jun 30 18:01:58 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Fixed another bug in the receptacle code generation. Thanks to
+ Gary Duzan for reporting the problem <gduzan at bbn dot com>.
+
+Wed Jun 30 17:16:53 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Process_Element.tpp:
+
+ Added code to catch DOM exceptions.
+
+Wed Jun 30 17:00:10 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/RepositoryManager/RepositoryManager_Impl.cpp:
+ * DnC/RepositoryManager/RepositoryManager_Impl.h:
+ * DnC/RepositoryManager/Repository_Manager.cpp:
+
+ Added code to catch parser exceptions for
+ incorrect URls
+
+Wed Jun 30 13:32:08 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/tests/NodeApplicationTest/NodeAppTest.mpc:
+
+ Removed "after += CIAO_DnC_Container" from the stub project.
+
+Wed Jun 30 13:14:50 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/ciao/CCM_Core.mpc:
+
+ Added -St to Deployment_stub probject to reduce the size of
+ generated code.
+
+Wed Jun 30 10:59:55 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CIAO.mwc:
+ * CIAOTAO.mwc:
+
+ Added the new DnC directories.
+
+ * DnC/ciao/CCM_Core.mpc:
+
+ Changed the name of the libraries generated. We should not
+ overwrite the original ones.
+
+ * DnC/Config_Handlers/Config_Handlers.mpc:
+ * DnC/DomainApplicationManager/DomainApplicationManager.mpc:
+ * DnC/ExecutionManager/ExecutionManager.mpc:
+ * DnC/NodeApplication/NodeApplication.mpc:
+ * DnC/NodeApplicationManager/NodeApplicationManager.mpc:
+ * DnC/NodeManager/NodeDaemon.mpc:
+ * DnC/RepositoryManager/RepositoryManager.mpc:
+ * DnC/tests/NodeApplicationTest/NodeAppTest.mpc:
+
+ Use the new libraries.
+
+Wed Jun 30 09:26:42 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/Hello/Sender/starter.cpp:
+ * examples/OEP/BasicSP/BMClosedED/BMClosedED_exec.cpp:
+ * examples/OEP/BasicSP/BMDevice/BMDevice_exec.cpp:
+ * examples/OEP/BasicSP/BMDevice/BMDevice_exec.h:
+ * examples/OEP/BasicSP/BMDisplay/BMDisplay_exec.cpp:
+ * examples/OEP/BasicSP/EC/controller.cpp:
+ * examples/OEP/Display/NavDisplay/NavDisplay_exec.cpp:
+ * examples/OEP/Display/RateGen/RateGen_exec.cpp:
+ * examples/OEP/Display/RateGen/controller.cpp:
+
+ Changes to eliminate build warnings (mostly assignments of
+ const char* to char*) and cosmetic changes.
+
+Wed Jun 30 08:37:15 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/Hello/Receiver/Receiver_exec.cpp:
+
+ In Receiver_exec_i::ccm_activate(), changed the construction of
+ the argv argument passed to ORB_init() to eliminate a const
+ char* to char* conversion warning.
+
+Tue Jun 29 15:34:00 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ We were not setting the sequence length when we were iterating
+ over the sequence of connections for a "uses multiple"
+ case. Thanks Ed Mulholland for reporting this.
+
+Tue Jun 29 01:40:25 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/ExecutionManager/ExecutionManager_Impl.cpp:
+ * DnC/ExecutionManager/ExecutionManager_Impl.h:
+ * DnC/NodeApplicationManager/ImplementationInfo.cpp:
+ * DnC/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ * DnC/NodeApplicationManager/NodeApplicationManager_Impl.h:
+ * DnC/ciao/Container_Base.cpp:
+ * DnC/ciao/NodeApplication_Impl.cpp:
+ * DnC/ciao/NodeApplication_Impl.h:
+ * DnC/ciao/NodeApplication_Impl.inl:
+
+ Fixed some of Ossama's comments, added exception catching clauses
+ in NodeApplication.
+
+Tue Jun 29 06:18:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * performance-tests/Protocols/Controller/Controller.mpc:
+ Changed project name to avoid duplicate project names
+
+Mon Jun 28 11:58:01 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/tests/RobotAssembly/RobotAssembly.mpc:
+ * DnC/tests/RobotAssembly/RobotAssembly.mwc:
+ * DnC/tests/RobotAssembly/RobotAssembly_stub_export.h:
+ * DnC/tests/RobotAssembly/RobotAssembly_svnt_export.h:
+ * DnC/tests/RobotAssembly/Robot_Base.idl:
+ *
+ DnC/tests/RobotAssembly/HumanMachineInterface/HumanMachineInterface.cidl:
+ *
+ DnC/tests/RobotAssembly/HumanMachineInterface/HumanMachineInterface.idl:
+ *
+ DnC/tests/RobotAssembly/HumanMachineInterface/HumanMachineInterface.mpc:
+ *
+ DnC/tests/RobotAssembly/HumanMachineInterface/HumanMachineInterface_exec.cpp:
+ *
+ DnC/tests/RobotAssembly/HumanMachineInterface/HumanMachineInterface_exec.h:
+ *
+ DnC/tests/RobotAssembly/HumanMachineInterface/HumanMachineInterface_exec_export.h:
+ *
+ DnC/tests/RobotAssembly/HumanMachineInterface/HumanMachineInterface_stub_export.h:
+ *
+ DnC/tests/RobotAssembly/HumanMachineInterface/HumanMachineInterface_svnt_export.h:
+ *
+ DnC/tests/RobotAssembly/ManagementWorkInstructions/ManagementWorkInstructions.cidl:
+ *
+ DnC/tests/RobotAssembly/ManagementWorkInstructions/ManagementWorkInstructions.idl:
+ *
+ DnC/tests/RobotAssembly/ManagementWorkInstructions/ManagementWorkInstructions.mpc:
+ *
+ DnC/tests/RobotAssembly/ManagementWorkInstructions/ManagementWorkInstructions_exec.cpp:
+ *
+ DnC/tests/RobotAssembly/ManagementWorkInstructions/ManagementWorkInstructions_exec.h:
+ *
+ DnC/tests/RobotAssembly/ManagementWorkInstructions/ManagementWorkInstructions_exec_export.h:
+ *
+ DnC/tests/RobotAssembly/ManagementWorkInstructions/ManagementWorkInstructions_stub_export.h:
+ *
+ DnC/tests/RobotAssembly/ManagementWorkInstructions/ManagementWorkInstructions_svnt_export.h:
+ *
+ DnC/tests/RobotAssembly/PalletConveyorManager/PalletConveyorManager.cidl:
+ *
+ DnC/tests/RobotAssembly/PalletConveyorManager/PalletConveyorManager.idl:
+ *
+ DnC/tests/RobotAssembly/PalletConveyorManager/PalletConveyorManager.mpc:
+ *
+ DnC/tests/RobotAssembly/PalletConveyorManager/PalletConveyorManager_exec.cpp:
+ *
+ DnC/tests/RobotAssembly/PalletConveyorManager/PalletConveyorManager_exec.h:
+ *
+ DnC/tests/RobotAssembly/PalletConveyorManager/PalletConveyorManager_exec_export.h:
+ *
+ DnC/tests/RobotAssembly/PalletConveyorManager/PalletConveyorManager_stub_export.h:
+ *
+ DnC/tests/RobotAssembly/PalletConveyorManager/PalletConveyorManager_svnt_export.h:
+ * DnC/tests/RobotAssembly/RobotManager/RobotManager.cidl:
+ * DnC/tests/RobotAssembly/RobotManager/RobotManager.idl:
+ *
+ DnC/tests/RobotAssembly/WatchSettingManager/WatchSettingManager.cidl:
+ *
+ DnC/tests/RobotAssembly/WatchSettingManager/WatchSettingManager.idl:
+ *
+ DnC/tests/RobotAssembly/WatchSettingManager/WatchSettingManager.mpc:
+ *
+ DnC/tests/RobotAssembly/WatchSettingManager/WatchSettingManager_exec.cpp:
+ *
+ DnC/tests/RobotAssembly/WatchSettingManager/WatchSettingManager_exec.h:
+ *
+ DnC/tests/RobotAssembly/WatchSettingManager/WatchSettingManager_exec_export.h:
+ *
+ DnC/tests/RobotAssembly/WatchSettingManager/WatchSettingManager_stub_export.h:
+ *
+ DnC/tests/RobotAssembly/WatchSettingManager/WatchSettingManager_svnt_export.h:
+ * DnC/tests/RobotAssembly/RobotManager/RobotManager_svnt_export.h:
+ * DnC/tests/RobotAssembly/RobotManager/RobotManager_stub_export.h:
+ * DnC/tests/RobotAssembly/RobotManager/RobotManager_exec_export.h:
+ * DnC/tests/RobotAssembly/RobotManager/RobotManager.mpc:
+ * DnC/tests/RobotAssembly/RobotManager/RobotManager_exec.cpp:
+ * DnC/tests/RobotAssembly/RobotManager/RobotManager_exec.h:
+
+ RobotAssembly example deployment scenario files.
+
+Mon Jun 28 11:33:00 2004 Emre Turkay <turkaye@dre.vanderbilt.edu>
+
+ * DnC/Deployment.mwc:
+
+ DnC tests projects reincluded to the compilation.
+
+ * DnC/tests/Config_Handlers/handler_test.mpb:
+
+ Added after statement to ensure Config_Handlers is compiled before
+ compiling handler_tests.
+
+Mon Jun 28 11:18:00 2004 Emre Turkay <turkaye@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/DnC_Dump.cpp:
+ * DnC/Config_Handlers/DnC_Dump.h:
+
+ Fixed the VC6 errors by excluding the DnC dump functionality on the
+ compilers ACE_HAS_BROKEN_NESTED_TEMPLATES.
+
+Mon Jun 28 10:44:00 2004 Emre Turkay <turkaye@dre.vanderbilt.edu>
+
+ * DnC/tests/Config_Handlers/Handler_Test.cpp:
+ * DnC/tests/Config_Handlers/CompImplDesc_Handler_Test.cpp:
+ * DnC/tests/Config_Handlers/CompIntrDesc_Handler_Test.cpp:
+ * DnC/tests/Config_Handlers/CompPkgDesc_Handler_Test.cpp:
+ * DnC/tests/Config_Handlers/Domain_Handler_Test.cpp:
+ * DnC/tests/Config_Handlers/Handler_Test.h:
+ * DnC/tests/Config_Handlers/IAD_Handler_Test.cpp:
+ * DnC/tests/Config_Handlers/PC_Handler_Test.cpp:
+ * DnC/tests/Config_Handlers/Plan_Handler_Test.cpp:
+ * DnC/tests/Config_Handlers/handler_test.mpb:
+
+ Fixed the VC6 errors by excluding the DnC tests on the
+ compilers ACE_HAS_BROKEN_NESTED_TEMPLATES.
+
+Mon Jun 28 10:40:00 2004 Emre Turkay <turkaye@dre.vanderbilt.edu>
+
+ * DnC/tests/Config_Handlers/RobotAssembly/README.html:
+
+ Deleted "file://" from -p & -d options of executor.
+
+Mon Jun 28 08:03:25 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Fixed a bug with code generation for uses multiple. Thanks to Ed
+ Mulholland for reporting the problem.
+
+Mon Jun 28 00:18:04 2004 Irfan Pyarali <irfan@oomworks.com>
+
+ * CIAO/performance-tests/Protocols:
+
+ Added new test. Closely mirrors
+ $TAO_ROOT/performance-tests/Protocols but uses CCM components
+ rather that TAO applications.
+
+Sun Jun 27 12:59:04 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/tests/scripts/BasicSP/basicNodeDaemon.pl:
+ * DnC/tests/scripts/BasicSP/basicsp.dat:
+ * DnC/tests/scripts/RobotAssembly/robotNodeDaemon.pl:
+ * DnC/tests/scripts/RobotAssembly/robotassembly.dat:
+
+ Added the scripts directory to help in the integrated
+ testing.
+
+Sun Jun 27 12:50:12 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/tests/Config_Handlers/HUDisplay/Deployment.xsd:
+ * DnC/tests/Config_Handlers/HUDisplay/XMI.xsd:
+
+ Checked in the schema files into the repository to assist
+ unit and integration testing.
+
+Sun Jun 27 12:20:23 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/tests/Config_Handlers/RobotAssembly/DeploymentPlan.cdp:
+
+ Updated the plan descriptor to use just two nodes rather
+ than five.
+
+Sun Jun 27 11:56:55 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DnC/tests/NodeApplicationTest/NodeAppTest.mpc:
+
+ Fixed compile errors in our daily builds.
+
+Fri Jun 25 23:59:00 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * Process_Element.cpp
+ * Process_Element.h
+ * Process_Element.i
+ * Process_Element.tpp
+
+ Re-organize the code to avoid sutble potential problems.
+ Bala made above changes on my machine.
+
+Fri Jun 25 17:35:00 2004 Emre Turkay <turkaye@dre.vanderbilt.edu>
+
+ * DnC/tests/NodeApplicationTest/NodeApp_test_client.cpp:
+
+ Fixed compilation problems with VC6. Varibles defined in for loop
+ remain persistant out of scope of the for loop.
+
+Fri Jun 25 10:51:26 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Fixed compilation problems with VC6. To put it short VC6 just
+ cannot handle templates properly. Thanks to gan Deng for reporting
+ the problem.
+
+Thu Jun 24 17:25:36 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/ciao/NodeApplication_Impl.cpp:
+
+ Added ACE_TRY clock to the code.
+
+Thu Jun 24 17:13:20 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Reverted changes to
+
+ "Fri Jun 4 18:16:47 2004 Jeff Parsons
+ <j.parsons@vanderbilt.edu>" to get things going on VC6 builds.
+
+ Added changes to ensure that there is a gap between "<" brackets
+ for templates and the scoping operator "::" Thanks to Ed
+ Mulholland for reporting the problem.
+
+ * DnC/ciao/Servant_Impl_T.cpp:
+ * DnC/ciao/Servant_Impl_T.h:
+ * ciao/Servant_Impl_T.cpp:
+ * ciao/Servant_Impl_T.h:
+
+ Do not use traits as template parameters. VC6 cannot just handle
+ all this. Thanks to Theckla Louchios <theckla.louchios@lmco.com>
+ for reporting the problem.
+
+Thu Jun 24 16:40:53 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/RepositoryManager/RepositoryManager.mpc:
+ * DnC/RepositoryManager/Repository_Manager.cpp:
+ Some more changes for VC6.
+
+Thu Jun 24 15:34:53 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * CIAOTAO.mwc
+ Reversed the change to avoid trouble for people who don't use
+ the new DnC framework.
+
+Thu Jun 24 15:17:45 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Config_Handlers.mpc
+ * DnC/Config_Handlers/DnC_Dump.cpp
+ * DnC/Config_Handlers/DnC_Dump.h
+ * DnC/Config_Handlers/Process_Element.tpp
+ * DnC/Config_Handlers/Utils.cpp
+ * DnC/Config_Handlers/XercesString.cpp
+ * DnC/DomainApplicationManager/DomainApplicationManager.mpc
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DnC/ExecutionManager/ExecutionManager.mpc
+ * DnC/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+ * DnC/NodeManager/NodeDaemon.mpc
+
+ Checked in some changes to make DnC compile under VC6.
+
+Thu Jun 24 14:49:44 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/RepositoryManager/Repository_Manager.cpp:
+
+ Commented out the dump functions.
+
+Thu Jun 24 08:10:09 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DnC/tests/NodeApplicationTest/NodeAppTest.mpc:
+
+ Added requires += dnc to the projects.
+
+Wed Jun 23 16:52:50 2004 Emre Turkay <turkaye@dre.vanderbilt.edu>
+
+ * DnC/tests/Config_Handlers/RobotAssembly/README.html:
+
+ Fixed links.
+
+Wed Jun 23 16:19:25 2004 Emre Turkay <turkaye@dre.vanderbilt.edu>
+
+ * DnC/tests/Config_Handlers/RobotAssembly/README.html:
+
+ Committed the README file which desribes how to compile/run the
+ RobotAssembly example.
+
+Wed Jun 23 15:33:06 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/DomainApplicationManager/DomainApplicationManager.mpc
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.h
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.inl
+
+ Added "debug level" controlled debugging statements.
+ Addressed Ossama's comments. Thanks Ossama!
+
+Wed Jun 23 13:52:06 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/tests/Config_Handlers/RobotAssembly/ACE.iad:
+ * DnC/tests/Config_Handlers/RobotAssembly/CIAO.iad:
+ *
+ DnC/tests/Config_Handlers/RobotAssembly/DefaultConfiguration.pcd:
+ * DnC/tests/Config_Handlers/RobotAssembly/Deployment.xsd:
+ * DnC/tests/Config_Handlers/RobotAssembly/DeploymentPlan.cdp:
+ *
+ DnC/tests/Config_Handlers/RobotAssembly/HumanMachineInterface.ccd:
+ *
+ DnC/tests/Config_Handlers/RobotAssembly/HumanMachineInterface.cid:
+ *
+ DnC/tests/Config_Handlers/RobotAssembly/HumanMachineInterface.cpd:
+ *
+ DnC/tests/Config_Handlers/RobotAssembly/HumanMachineInterface_exec.iad:
+ *
+ DnC/tests/Config_Handlers/RobotAssembly/HumanMachineInterface_stub.iad:
+ *
+ DnC/tests/Config_Handlers/RobotAssembly/HumanMachineInterface_svnt.iad:
+ *
+ DnC/tests/Config_Handlers/RobotAssembly/ManagementWorkInstructions.ccd:
+ *
+ DnC/tests/Config_Handlers/RobotAssembly/ManagementWorkInstructions.cid:
+ *
+ DnC/tests/Config_Handlers/RobotAssembly/ManagementWorkInstructions.cpd:
+ *
+ DnC/tests/Config_Handlers/RobotAssembly/ManagementWorkInstructions_exec.iad:
+ *
+ DnC/tests/Config_Handlers/RobotAssembly/ManagementWorkInstructions_stub.iad:
+ *
+ DnC/tests/Config_Handlers/RobotAssembly/ManagementWorkInstructions_svnt.iad:
+ *
+ DnC/tests/Config_Handlers/RobotAssembly/PalletConveyorManager.ccd:
+ *
+ DnC/tests/Config_Handlers/RobotAssembly/PalletConveyorManager.cid:
+ *
+ DnC/tests/Config_Handlers/RobotAssembly/PalletConveyorManager.cpd:
+ *
+ DnC/tests/Config_Handlers/RobotAssembly/PalletConveyorManager_exec.iad:
+ *
+ DnC/tests/Config_Handlers/RobotAssembly/PalletConveyorManager_stub.iad:
+ *
+ DnC/tests/Config_Handlers/RobotAssembly/PalletConveyorManager_svnt.iad:
+ * DnC/tests/Config_Handlers/RobotAssembly/RobotAssembly.cid:
+ * DnC/tests/Config_Handlers/RobotAssembly/RobotAssembly.cpd:
+ * DnC/tests/Config_Handlers/RobotAssembly/RobotManager.ccd:
+ * DnC/tests/Config_Handlers/RobotAssembly/RobotManager.cid:
+ * DnC/tests/Config_Handlers/RobotAssembly/RobotManager.cpd:
+ * DnC/tests/Config_Handlers/RobotAssembly/RobotManager_exec.iad:
+ * DnC/tests/Config_Handlers/RobotAssembly/RobotManager_stub.iad:
+ * DnC/tests/Config_Handlers/RobotAssembly/RobotManager_svnt.iad:
+ * DnC/tests/Config_Handlers/RobotAssembly/TAO.iad:
+ * DnC/tests/Config_Handlers/RobotAssembly/WatchSettingManager.ccd:
+ * DnC/tests/Config_Handlers/RobotAssembly/WatchSettingManager.cid:
+ * DnC/tests/Config_Handlers/RobotAssembly/WatchSettingManager.cpd:
+ *
+ DnC/tests/Config_Handlers/RobotAssembly/WatchSettingManager_exec.iad:
+ *
+ DnC/tests/Config_Handlers/RobotAssembly/WatchSettingManager_stub.iad:
+ *
+ DnC/tests/Config_Handlers/RobotAssembly/WatchSettingManager_svnt.iad:
+ * DnC/tests/Config_Handlers/RobotAssembly/XMI.xsd:
+ * DnC/tests/Config_Handlers/RobotAssembly/package.tpd:
+
+ Added the robot assembly example descriptors.
+
+Wed Jun 23 13:44:37 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/ExecutionManager/ExecutionManager_Impl.cpp:
+
+ Fixed a compilation error.
+
+Wed Jun 23 13:24:23 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Process_Element.cpp:
+ * DnC/Config_Handlers/Process_Element.h:
+
+ Added missing includes to fix compilation errors.
+
+Wed Jun 23 13:07:13 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/RepositoryManager/Repository_Manager.cpp:
+
+ Made changes to fix memory leaks.
+
+Wed Jun 23 13:05:04 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/RepositoryManager/RepositoryManager_Impl.cpp:
+ * DnC/RepositoryManager/Repository_Manager.cpp:
+
+ Made changes to fix some memory leaks.
+
+Wed Jun 23 12:31:14 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/RepositoryManager/RepositoryManager_Impl.cpp:
+ * DnC/RepositoryManager/RepositoryManager_Impl.h:
+ * DnC/RepositoryManager/Repository_Manager.cpp:
+
+ Made changes to allow "read local URL" work in
+ Windows machines as well.
+
+Wed Jun 23 11:48:10 2004 Emre Turkay <turkaye@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Process_Element.h:
+ * DnC/Config_Handlers/Process_Element.i:
+ * DnC/Config_Handlers/Process_Element.tpp:
+
+ The functions and classes are placed in the deployment namespace.
+
+Wed Jun 23 03:14:16 2004 Ossama Othman <ossama@dre.vanderbilt.edu>
+
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.h:
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.inl:
+ * DnC/ExecutionManager/ExecutionManager_Impl.cpp:
+ * DnC/ExecutionManager/ExecutionManager_Impl.h:
+ * DnC/NodeApplicationManager/ImplementationInfo.cpp:
+ * DnC/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ * DnC/NodeApplicationManager/NodeApplicationManager_Impl.h:
+ * DnC/NodeApplicationManager/NodeApplicationManager_Impl.inl:
+ * DnC/NodeManager/NodeDaemon_Impl.cpp:
+ * DnC/NodeManager/NodeDaemon_Impl.h:
+ * DnC/RepositoryManager/RepositoryManager_Impl.cpp:
+ * DnC/RepositoryManager/RepositoryManager_Impl.h:
+ * DnC/RepositoryManager/Repository_Manager.cpp:
+ * DnC/RepositoryManager/Update_Plan.cpp:
+ * DnC/ciao/Container_Base.cpp:
+ * DnC/ciao/Container_Base.h:
+ * DnC/ciao/Cookies.cpp:
+ * DnC/ciao/Deployment_Core.idl:
+ * DnC/ciao/NodeApp_CB_Impl.cpp:
+ * DnC/ciao/NodeApp_CB_Impl.h:
+ * DnC/ciao/NodeApplication_Impl.cpp:
+ * DnC/ciao/NodeApplication_Impl.h:
+ * DnC/ciao/NodeApplication_Impl.inl:
+ * DnC/ciao/Servant_Impl_Base.cpp:
+ * DnC/ciao/Servant_Impl_T.cpp:
+
+ Performed a code review and left comments for DnC developers.
+
+Tue Jun 22 18:05:19 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/Documentation/Build.html:
+
+ Added comment about the requirement of boost 1.30.2 in order
+ to build CCF/CIDLC on Windows.
+ Thanks to Valery <acapstan@bigpond.net.au> for catching this.
+
+Tue Jun 22 10:38:58 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Added a missing _duplicate () in the connect_emittype () calls.
+
+Mon Jun 21 17:46:32 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/RepositoryManager/Update_Plan.cpp:
+
+ Made changes to fix a run-time error.
+
+Fri Jun 18 16:40:14 2004 Emre Turkay <turkaye@dre.vanderbilt.edu>
+
+ * examples/OEP/BasicSP/README.html:
+
+ ".exe" extensions are deleted, because they are not exist in
+ linux
+
+Fri Jun 18 16:18:42 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/RepositoryManager/Update_Plan.cpp:
+
+ Added comments in the code to assist code review.
+
+Fri Jun 18 15:49:17 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CCF/Documentation/Build.html:
+
+ Cleaned links up a bit.
+
+Fri Jun 18 14:39:39 2004 Emre Turkay <turkaye@dre.vanderbilt.edu>
+
+ * DnC/tests/NodeApplicationTest/NodeAppTest.mpc:
+
+ CIAO_Container is added as an "after" dependency for the
+ NodeAppTest_RoundTrip_stub.
+
+Fri Jun 18 14:14:12 2004 Emre Turkay <turkaye@dre.vanderbilt.edu>
+
+ * examples/OEP/BasicSP/README.html:
+
+ Moved the file from Display directory to BasicSP directory.
+
+Fri Jun 18 14:05:27 2004 Emre Turkay <turkaye@dre.vanderbilt.edu>
+
+ * examples/OEP/Display/README.html:
+
+ The file describing how to build and run the example according to
+ the new DnC spec is added.
+
+Fri Jun 18 13:34:16 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DomainApplicationManager/DomainApplicationManager.mpc
+ * ExecutionManager/ExecutionManager.mpc
+ * NodeManager/NodeDaemon.mpc
+ * RepositoryManager/Repository_Manager.cpp
+
+ Fixed linking problems in Windows. Added debug/test
+ capabilities by remotely shutdown ExecutionManager.
+
+Fri Jun 18 11:59:56 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * docs/tutorial/Hello/hello_exec.cpp:
+ * docs/tutorial/Hello/hello_exec.h:
+ Updated these files to follow up the changes in CIDLC.
+
+Fri Jun 18 11:56:09 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/RepositoryManager/Update_Plan.cpp:
+ * DnC/RepositoryManager/Update_Plan.h:
+
+ Helper files to update the deployment plan from the package
+ configuration IDL data structure.
+
+ Made changes to follow DOC group standard of never a function
+ more than a page.
+
+Fri Jun 18 09:36:13 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CCF/Documentation/Build.html:
+
+ Updated the file with a link to Win32 zip files for the Utility
+ library.
+
+Thu Jun 17 16:59:21 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/RepositoryManager/RepositoryManager.mpc:
+ * DnC/RepositoryManager/Repository_Manager.cpp:
+ * DnC/RepositoryManager/Update_Plan.cpp:
+ * DnC/RepositoryManager/Update_Plan.h:
+
+ Moved all the plan handler helper functions to a new
+ file Update_Plan.cpp.
+
+Thu Jun 17 16:02:16 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * examples/OEP/BasicSP/BMClosedED/BMClosedED_exec.cpp:
+ Added one in. () to the debug call.
+
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DnC/NodeApplicationManager/ImplementationInfo.cpp
+ * DnC/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+ * DnC/RepositoryManager/Repository_Manager.cpp
+ * DnC/ciao/Deployment_Core.idl
+ * DnC/ciao/NodeApplication_Impl.cpp
+ * DnC/ciao/NodeApplication_Impl.h
+ Added the support for ComponentIOR. Also adjusted the start
+ process which is essential to BasicSP.
+
+Thu Jun 17 16:00:01 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/tests/Config_Handlers/HUDisplay/Airframe.cid:
+ * DnC/tests/Config_Handlers/HUDisplay/Airframe_Exec.iad:
+ * DnC/tests/Config_Handlers/HUDisplay/Airframe_Stub.iad:
+ * DnC/tests/Config_Handlers/HUDisplay/Airframe_Svnt.iad:
+ * DnC/tests/Config_Handlers/HUDisplay/GPS.cid:
+ * DnC/tests/Config_Handlers/HUDisplay/GPS_Exec.iad:
+ * DnC/tests/Config_Handlers/HUDisplay/GPS_Stub.iad:
+ * DnC/tests/Config_Handlers/HUDisplay/GPS_Svnt.iad:
+ * DnC/tests/Config_Handlers/HUDisplay/HUDisplay.cdp:
+ * DnC/tests/Config_Handlers/HUDisplay/HUDisplay.cid:
+ * DnC/tests/Config_Handlers/HUDisplay/Libraries.iad:
+ * DnC/tests/Config_Handlers/HUDisplay/NavDisplay.cid:
+ * DnC/tests/Config_Handlers/HUDisplay/NavDisplay_Exec.iad:
+ * DnC/tests/Config_Handlers/HUDisplay/NavDisplay_Stub.iad:
+ * DnC/tests/Config_Handlers/HUDisplay/NavDisplay_Svnt.iad:
+ * DnC/tests/Config_Handlers/HUDisplay/Timer.cid:
+ * DnC/tests/Config_Handlers/HUDisplay/Timer_Exec.iad:
+ * DnC/tests/Config_Handlers/HUDisplay/Timer_Stub.iad:
+ * DnC/tests/Config_Handlers/HUDisplay/Timer_Svnt.iad:
+
+ Updated the BasicSP scenario example descriptors.
+
+Thu Jun 17 13:24:01 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/RepositoryManager/Repository_Manager.cpp:
+
+ Added some comments onto the code.
+
+Wed Jun 16 17:12:21 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/ExecutionManager/ExecutionManager.mpc
+ * DnC/NodeManager/NodeDaemon.mpc
+ * DnC/RepositoryManager/RepositoryManager.mpc
+
+ Fixed export library problems in Windows. Added necessary build
+ dependency settings.
+
+Wed Jun 16 16:33:13 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/RepositoryManager/Repository_Manager.cpp:
+
+ Updated mpc file to link to the ExecutionManager and NodeDaemon
+ stubs as operations on these entities are used within the
+ executor.
+
+ * DnC/NodeManager/NodeDaemon.mpc:
+ * DnC/NodeManager/NodeDaemon_stub_export.h:
+ * DnC/NodeManager/Node_Daemon.cpp:
+
+ Added stub macros to generate stub libraries
+
+ * DnC/ExecutionManager/ExecutionManager.mpc:
+ * DnC/ExecutionManager/ExecutionManager_stub_export.h:
+
+ Stub exports for ExecutionManager.
+
+Wed Jun 16 15:18:21 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/RepositoryManager/RepositoryManager.mpc:
+
+ Fixed linking errors by adding NodeManager and ExecutionManager
+ stub code into the project settings.
+
+Wed Jun 16 12:48:11 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/RepositoryManager/Repository_Manager.cpp:
+
+ Made changes to use ACE_Hash_Map instead of std::map.
+
+Wed Jun 16 12:02:12 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/RepositoryManager/Repository_Manager.cpp:
+
+ Made substantial changes to populate the DeploymentPlan
+ IDL data structure from the PackageConfiguration data
+ structure.
+
+ This change enables the DnC framework to have a much shorter
+ version of the DeploymentPlan XML descriptor, as we can get
+ the needed information from the PackageConfiguration IDL
+ data structure and not from the XML descriptors itself.
+
+Wed Jun 16 11:24:13 2004 Emre Turkay <turkaye@dre.vanderbilt.edu>
+ * DnC/Config_Handlers/RUK_Handler.h:
+ * DnC/Config_Handlers/NIA_Handler.h:
+ * DnC/Config_Handlers/MID_Handler.h:
+ * DnC/Config_Handlers/IR_Handler.h:
+ * DnC/Config_Handlers/IAD_Handler.h:
+ * DnC/Config_Handlers/DnC_Dump.h:
+ * DnC/Config_Handlers/Basic_Handler.h:
+
+ Comments, etc.
+
+Tue Jun 15 20:53:28 2004 Irfan Pyarali <irfan@oomworks.com>
+
+ * tools/ServerActivator/ServerActivator_test_client.cpp:
+
+ Added missing include file.
+
+ * tools/Segment_Timer/Segment_Timer.cpp:
+
+ Commented out debug statement since the division in it was
+ failing to compile on Windows.
+
+ * tools/RTComponentServer/RTServer_Impl.cpp (init):
+
+ Indent fixes.
+
+ * tests/RTCCM/DiffServ/descriptors/run_test.pl:
+
+ Remove assembly descriptor file also.
+
+Tue Jun 15 15:27:08 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * Dnc/NodeApplication/NodeApplication.cpp
+ * Dnc/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+ * Dnc/NodeApplicationManager/NodeApplicationManager_Impl.h
+ * Dnc/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DnC/ExecutionManager/ExecutionManager_Impl.cpp
+ * Dnc/NodeManager/NodeDaemon_Impl.cpp
+ * Dnc/NodeManager/NodeDaemon_Impl.h
+ * Dnc/NodeManager/Node_Daemon.cpp
+ * DnC/ciao/NodeApp_CB_Impl.cpp
+ * DnC/ciao/NodeApp_CB_Impl.h
+
+ Fixed memory leak problems. Now "NodeDaemon" process and
+ "NodeApplication" process should have no memomry leak problem.
+ Further test will be based on deploying and tearing down a
+ deploymentplan many times and try to find memory leak.
+
+Tue Jun 15 10:48:08 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/RepositoryManager/Repository_Manager.cpp:
+
+ Let the object reference narrow down to ExecutionManager
+ instead of ExecutionManagerDameon.
+
+Mon Jun 14 15:01:08 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/RepositoryManager/Repository_Manager.cpp:
+ * DnC/ExecutionManager/Execution_Manager.cpp
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DnC/DomainApplicationManager/Deployment_Configuration.cpp
+
+ Fixed memory leak problems. Now ExecutionManager "process" should
+ have no memomry leak at all. Further test will be on "NodeDaemon"
+ process, which will detect memory management problem for NodeApplicationManager
+ as well.
+
+Mon Jun 14 14:24:08 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/NodeManager/Node_Daemon.cpp:
+ * examples/OEP/BasicSP/EC/client.cpp
+
+ Added missing header file "ace/OS_NS_unistd.h" which contains
+ hostname function.
+
+Sun Jun 13 16:13:08 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+
+ Some cosmetic changes.
+
+Sun Jun 13 17:55:01 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/RepositoryManager/Repository_Manager.cpp:
+
+ Made changes to check if we have a wrong URL to
+ start parsing the deployment plan.
+
+Sat Jun 12 23:17:08 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ * DnC/NodeApplicationManager/ImplementationInfo.cpp:
+ * DnC/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ * DnC/NodeApplicationManager/NodeApplicationManager_Impl.h:
+ * DnC/NodeApplicationManager/NodeApplicationManager_Impl.inl:
+ * DnC/NodeManager/NodeDaemon_Impl.cpp:
+ * DnC/NodeManager/NodeDaemon_Impl.h:
+ * DnC/NodeManager/NodeDaemon_Impl.inl:
+ * DnC/RepositoryManager/Repository_Manager.cpp:
+ * DnC/ciao/NodeApp_CB_Impl.cpp:
+ * DnC/ciao/NodeApp_CB_Impl.h:
+
+ Debugged on Windows with Visual Studio + Purify. Now
+ Every thing should be fine and people could start to
+ do their own code revision.
+
+ @@Note: If you want to make any change other than
+ syntactic Changes please be careful and make sure you
+ don't break anything.
+
+ Now I am moving to add support for Properties.
+ Things we need for the Demo.
+ 1. ComponentIOR registration.
+ 2. Component Attribute initialization.
+
+Sat Jun 12 16:51:11 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Property_Handler.cpp:
+ * DnC/Config_Handlers/TPD_Handler.cpp:
+
+ Made some coding standard changes.
+
+Fri Jun 11 20:34:12 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.h
+ * DnC/ExecutionManager/ExecutionManager_Impl.cpp
+ * DnC/ExecutionManager/ExecutionManager_Impl.h
+ * DnC/ExecutionManager/ExecutionManager_Impl.inl
+ * DnC/NodeApplication/NodeApplication.cpp
+ * DnC/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+ * DnC/NodeApplicationManager/NodeApplicationManager_Impl.h
+ * DnC/NodeApplicationManager/NodeApplicationManager_Impl.inl
+ * DnC/NodeManager/NodeDaemon_Impl.cpp
+ * DnC/NodeManager/NodeDaemon_Impl.h
+ * DnC/NodeManager/NodeDaemon_Impl.inl
+ * DnC/RepositoryManager/Repository_Manager.cpp
+ * DnC/ciao/Deployment_Core.idl
+ * DnC/ciao/NodeApplication_Impl.cpp
+ * DnC/ciao/NodeApplication_Impl.h
+
+ Many Changes of the files. Now on linux it runs up to 3 times
+ correctly and hangs on the fourth time. I am moving to windows
+ for this now. Don't commit any change till I send out
+ notification email, please!
+
+Fri Jun 11 18:58:04 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Utils.h:
+ * DnC/Config_Handlers/Utils.cpp:
+
+ Last ChangeLog:
+
+ Fri Jun 11 17:31:04 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ Reverted the changes back to an earlier version since parse_href_tags
+ is used by other classes, and last change caused compilation error.
+
+Fri Jun 11 17:31:04 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Utils.h:
+ * DnC/Config_Handlers/Utils.cpp:
+
+ Removed un-used methods create_document, parse_href_tags from
+ the Utils directory.
+
+Fri Jun 11 16:59:35 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/tests/Config_Handlers/HUDisplay/HUDisplay.cdp:
+
+ Deleted the extension name ".so" for all library artifacts, since
+ this stuff is not platform generic.
+
+Fri Jun 11 16:46:25 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Plan_Handler.cpp:
+ * DnC/Config_Handlers/Process_Basic_Type.i:
+ * DnC/RepositoryManager/Repository_Manager.cpp:
+
+ Made some more coding standard changes.
+
+Fri Jun 11 16:12:54 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/CPK_Handler.cpp:
+ * DnC/Config_Handlers/CPR_Handler.cpp:
+ * DnC/Config_Handlers/DT_Handler.cpp:
+ * DnC/Config_Handlers/Domain_Handler.cpp:
+ * DnC/Config_Handlers/IAD_Handler.cpp:
+ * DnC/Config_Handlers/IR_Handler.cpp:
+ * DnC/Config_Handlers/MID_Handler.cpp:
+ * DnC/Config_Handlers/NIA_Handler.cpp:
+ * DnC/Config_Handlers/PCI_Handler.cpp:
+ * DnC/Config_Handlers/PC_Handler.cpp:
+
+ Made some more coding standard compliance changes.
+
+Fri Jun 11 15:44:00 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/CAD_Handler.cpp:
+ * DnC/Config_Handlers/CEPE_Handler.cpp:
+ * DnC/Config_Handlers/Cap_Handler.cpp:
+ * DnC/Config_Handlers/CompImplDesc_Handler.cpp:
+ * DnC/Config_Handlers/CompIntrDesc_Handler.cpp:
+ * DnC/Config_Handlers/CompPkgDesc_Handler.cpp:
+ * DnC/Config_Handlers/Config_Error_Handler.cpp:
+ * DnC/Config_Handlers/DnC_Dump.cpp:
+ * DnC/Config_Handlers/MID_Handler.h:
+ * DnC/Config_Handlers/Process_Element.tpp:
+
+ Made some more coding standards compliance changes.
+
+Fri Jun 11 14:50:42 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/RepositoryManager/Repository_Manager.cpp:
+
+ Made some more coding standard changes.
+
+Fri Jun 11 14:15:04 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/DnC_Dump.cpp:
+
+ Made some cosmetic changes.
+
+Fri Jun 11 13:07:35 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/RepositoryManager/Repository_Manager.cpp:
+
+ Uncommented some code which was accidentally
+ commented in my previous commit.
+
+Fri Jun 11 12:55:49 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Process_Element.tpp:
+ * DnC/RepositoryManager/RepositoryManager_Impl.cpp:
+ * DnC/RepositoryManager/Repository_Manager.cpp:
+
+ Made changes to free up memory created by XMLString::
+ transcode operations.
+
+Fri Jun 11 12:07:27 2004 Emre Turkay <turkaye@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Process_Element.cpp:
+ * DnC/Config_Handlers/Process_Element.i:
+ * DnC/Config_Handlers/Process_Element.tpp:
+ * DnC/Config_Handlers/Utils.cpp:
+ * DnC/Config_Handlers/Utils.h:
+ * DnC/Config_Handlers/RepositoryManager_Impl.cpp:
+ * DnC/RepositoryManager/Repository_Manager.cpp:
+
+ Deleted the duplicate definition of create_doc & create_doc is
+ replaced with create_parser.
+
+Fri Jun 11 00:10:42 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Process_Element.cpp:
+ * DnC/Config_Handlers/Utils.cpp:
+ * DnC/Config_Handlers/Utils.h:
+ * DnC/RepositoryManager/RepositoryManager_Impl.cpp:
+ * DnC/RepositoryManager/Repository_Manager.cpp:
+
+ Fixed segmentation faults, traced during integration
+ teting.
+
+Thu Jun 10 18:38:46 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Any_Handler.cpp:
+ * DnC/Config_Handlers/CPK_Handler.cpp:
+ * DnC/Config_Handlers/Utils.cpp:
+ * DnC/Config_Handlers/Handler_Test.i:
+
+ Fixed errors based on errors discovered using Purify
+
+Thu Jun 10 18:24:58 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Process_Element.tpp:
+
+ More memory leaks fixed.
+
+Thu Jun 10 18:12:44 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Process_Element.cpp:
+ * DnC/Config_Handlers/Property_Handler.cpp:
+ * DnC/Config_Handlers/RS_Handler.cpp:
+ * DnC/Config_Handlers/SP_Handler.cpp:
+
+ Finally, Config_Handler directory compiles correctly
+
+Thu Jun 10 18:06:52 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/CAD_Handler.cpp:
+ * DnC/Config_Handlers/CPK_Handler.cpp:
+ * DnC/Config_Handlers/CompImplDesc_Handler.cpp:
+ * DnC/Config_Handlers/Utils.cpp:
+
+ Fixed compilation errors from improper use of XMLString::release.
+
+Thu Jun 10 18:05:09 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Process_Element.cpp:
+ * DnC/Config_Handlers/Property_Handler.cpp:
+ * DnC/Config_Handlers/RS_Handler.cpp:
+ * DnC/Config_Handlers/SP_Handler.cpp:
+
+ More memory leaks fixed.
+
+2004-06-10 turkaye <turkaye@lambada.isis.vanderbilt.edu>
+
+ * DnC/Config_Handlers/CAD_Handler.cpp:
+ * DnC/Config_Handlers/CPK_Handler.cpp:
+ * DnC/Config_Handlers/CompImplDesc_Handler.cpp:
+
+ Memory leak problem with XMLString::transcode () is solved.
+
+Thu Jun 10 17:46:10 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Utils.cpp:
+ * DnC/Config_Handlers/TPD_Handler.cpp:
+
+ Fixed memory leaks pertaining to ACE_TString making copies of
+ dynamically allocated memory. The memory supplied to ACE_TString
+ has to be deleted! Fixed memory for these.
+
+Thu Jun 10 17:44:57 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Process_Element.cpp:
+ * DnC/Config_Handlers/Property_Handler.cpp:
+ * DnC/Config_Handlers/RS_Handler.cpp:
+ * DnC/Config_Handlers/Requirement_Handler.cpp:
+ * DnC/Config_Handlers/SP_Handler.cpp:
+
+ More memory leaks fixes.
+
+Thu Jun 10 17:27:35 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Utils.cpp:
+
+ Fixed some memory leaks as well!!
+
+Thu Jun 10 17:26:25 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Process_Element.cpp:
+
+ Fixed memory leaks.
+
+Thu Jun 10 14:06:03 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * ciao/Servant_Impl_T.cpp:
+ * DnC/ciao/Servant_Impl_T.cpp:
+
+ Modified code that passed _var.out() to ACE_NEW_RETURN,
+ since sometimes on Windows platforms, for whatever
+ reason Var_Base::out() will be called after the
+ allocation, effectively cancelling it out. It is
+ alwas safe to declare a pointer, pass it to ACE_NEW_*
+ and then assign it to a _var, so that is what is
+ done now in get_all_facets() and get_all_consumers().
+
+Thu Jun 10 10:17:00 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/ciao/Container_Base.h:
+ Followed up a Jeff's Change in the old ciao.
+
+ * DnC/ExecutionManager/ExecutionManager_Impl.cpp:
+ * DnC/ExecutionManager/ExecutionManager_Impl.h:
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.h:
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ * DnC/RepositoryManager/Repository_Manager.cpp:
+ * DnC/NodeManager/Node_Daemon.cpp:
+ * DnC/ciao/NodeApplication_Impl.cpp:
+ * DnC/DomainApplicationMananger/NodeApplicationManager_Impl.cpp:
+
+ Many adjustments, bug fixing, added missing functionalities.
+ This is not a working version now.
+
+Wed Jun 9 11:17:31 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/DomainApplicationManager_Impl.cpp
+
+ Fixed a bug which is caused by initialzing ulong sequence type.
+
+Tue Jun 8 20:53:12 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/NodeApplicationManager/ImplementationInfo.cpp:
+ * DnC/NodeApplicationManager/ImplementationInfo.h:
+ Added these files.
+
+ * DnC/NodeApplicationManager/NodeApplicationManager.mpc:
+ Changed MPC file reflect the changes.
+
+ Seems MPC doesn't support template very well for GCC. The
+ dependency is not set at all. I have no choice but to switch to
+ normal operator overlaoding.
+
+Tue Jun 8 19:54:03 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/ciao/CCM_Core.mpc:
+ * DnC/ciaoImplementation.h:
+ Removed this file also changed MPC file.
+
+Tue Jun 8 14:15:31 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/DomainApplicationManager_Impl.cpp
+
+ Tested it and it could split plan well and also contact
+ NodeDaemon without problem.
+
+ Fixed a bug caused by not using a reference.
+
+Tue Jun 8 17:18:28 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/NodeApplication/NodeApplication.mpc:
+ * DnC/ciao/CCM_Core.mpc:
+ Fixed another set of linking problem about export macros.
+
+Tue Jun 8 14:15:31 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/RepositoryManager/RepositoryManager.mpc:
+
+ Added missing library CIAO_Server.
+
+Tue Jun 8 15:50:28 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ Added duplicate for one return value.
+
+Tue Jun 8 15:00:30 2004 Emre Turkay <turkaye@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/TPD_Handler.h:
+ * DnC/Config_Handlers/TPD_Handler.cpp:
+ * DnC/RepositoryManager/RepositoryManager_Impl.cpp:
+
+ Added TopLevelDescription handler.
+
+Tue Jun 8 14:29:01 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/RepositoryManager/RepositoryManager_Impl.cpp:
+
+ Made changes to read the top level package URL
+ and create the PackageConfiguration IDL data structure.
+
+Tue Jun 8 14:15:31 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Utils.h:
+
+ Fixed the Windows export library problem.
+
+ * DnC/RepositoryManager/RepositoryManager_Impl.cpp:
+
+ Added "return" to those unimplemented functions to makde the
+ compiler happy.
+
+Tue Jun 8 14:10:08 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/ciao/CCM_Core.mpc:
+ Fixed source file placement.
+
+Tue Jun 8 10:35:32 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.h:
+
+ Added dump function to dump connections.
+
+Tue Jun 8 10:16:48 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/RepositoryManager/Repository_Manager.cpp:
+
+ Added diagnostic comments to aid in debugging during execution
+ of the Executor.
+
+Tue Jun 8 09:55:41 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/RepositoryManager/Repository_Manager.cpp:
+
+ Commented out certain un-necessary DEBUG statements.
+
+Tue Jun 8 02:53:32 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.h:
+ Rewritten the connection part of the interface.
+ Enhanced the performace by avoiding excessive deep copy and
+ better condition branching. Also added exception mechanism in
+ the connction part.
+
+Mon Jun 7 21:22:03 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ * DnC/NodeApplicationManager/NodeApplicationManager_Impl.inl:
+ * DnC/NodeApplicationManager/NodeApplicationManager_Impl.h:
+ Finished this interface implementation.
+
+ * DnC/ciao/ImplementationInfo.h:
+ Added this file containing the templated helper operators.
+
+Mon Jun 7 15:44:51 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/ExecutionManager/Execution_Manager.cpp:
+ * DnC/ExecutionManager/ExecutionManager.mpc:
+
+ First cut at writing the executor that is used to start
+ deployment process and terminate it. Changed the mpc file to
+ rename the generated executable to be named executor as
+ described in the specification.
+
+Mon Jun 7 14:23:38 2004 Emre Turkay <turkaye@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/DnC_Dump.cpp:
+
+ Fixed an error causing segmentation fault by changing
+ Dump_Obj::desc_map_ template argument from "const char*"
+ to "std::string".
+
+
+Mon Jun 7 12:10:31 2004 Gan Deng <gan.dengg@vanderbilt.edu>
+
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+
+ The PortConnectionDescription structure a PortKind variable change the
+ code to make the connection decisions based on value of that variable.
+ Also change the connection fields values which will be passed to
+ finishLaunch() to make the NodeApplication work.
+
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.h:
+
+ Change the definition type of the <plan_> variable from const reference
+ to just regular object mapped from IDL struct type.
+
+Mon Jun 7 01:40:57 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ * DnC/NodeApplicationManager/NodeApplicationManager_Impl.h:
+ Finished the creat_connctions method.
+ Partially finished the startLaunch method.
+
+ * DnC/ciao/NodeApplication_Impl.h:
+ * DnC/ciao/NodeApplication_Impl.cpp:
+ * DnC/ciao/NodeApplication_Impl.inl:
+ Finished implementing the NodeApplication interface.
+ Added the finish launch method.
+
+Sun Jun 6 21:13:27 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+
+ Removed generation of a template parameter to the Servant_Impl
+ base class that was removed from the CIAO_Server library in
+
+ Fri Jun 4 18:16:47 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+Sat Jun 5 23:26:53 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ Tweaked a bit of the code to make it compile.
+
+ Gan, Please look at my comments in the code.
+
+Sat Jun 5 17:24:21 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Change the order of member initialization in the constructors of
+ AttributeEmitter and ReadonlyAttributeEmitter to match a recent
+ change in the order of their class members.
+
+Sat Jun 5 16:45:14 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/RepositoryManager/RepositoryManager_Impl.cpp:
+ * DnC/RepositoryManager/RepositoryManager_Impl.h:
+ * DnC/RepositoryManager/Repository_Manager.cpp:
+
+ Updated repository manager to return the PackageConfiguration
+ element created while parsing the top level package
+ URL.
+
+Sat Jun 5 15:04:15 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/RepositoryManager/Repository_Manager.cpp:
+
+ Updated the repository manager to dump out the
+ top level package and the deployment plan.
+
+Sat Jun 5 14:59:47 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/tests/NodeApplicationTest/README:
+ Added this readme file for user to understand the testing scenario.
+
+
+Sat Jun 5 14:46:12 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * ./DnC/ciao/Servant_Impl_Base.h:
+
+ Cosmetic changes.
+
+ * DnC/ciao/Servant_Impl_T.cpp:
+ * DnC/ciao/Servant_Impl_T.h:
+
+ Removed one of the template parameters and used instead
+ the typedefs generated by the IDL compiler for interfaces.
+
+ Followed Jeff Parson's Changes. Hopefully we can merge the two
+ ciao directories soon so I don't have to duplicate the commit
+ every time after Jeff makes changes.
+
+Fri Jun 4 18:16:47 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * ciao/Servant_Impl_Base.h:
+
+ Cosmetic changes.
+
+ * ciao/Servant_Impl_T.cpp:
+ * ciao/Servant_Impl_T.h:
+
+ Removed one of the template parameters and used instead
+ the typedefs generated by the IDL compiler for interfaces.
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Moved the call to populate_port_tables() from ciao_postactivate()
+ to the servant constructor.
+
+Fri Jun 4 17:19:44 2004 Krishnakumar B <kitty@nospam.invalid.domain>
+
+ * DnC/tests/Config_Handlers/HUDisplay/Airframe.ccd:
+ * DnC/tests/Config_Handlers/HUDisplay/Airframe.cid:
+ * DnC/tests/Config_Handlers/HUDisplay/Airframe.cpd:
+ * DnC/tests/Config_Handlers/HUDisplay/Airframe_Exec.iad:
+ * DnC/tests/Config_Handlers/HUDisplay/Airframe_Stub.iad:
+ * DnC/tests/Config_Handlers/HUDisplay/Airframe_Svnt.iad:
+ * DnC/tests/Config_Handlers/HUDisplay/Domain.cdd:
+ * DnC/tests/Config_Handlers/HUDisplay/GPS.ccd:
+ * DnC/tests/Config_Handlers/HUDisplay/GPS.cid:
+ * DnC/tests/Config_Handlers/HUDisplay/GPS.cpd:
+ * DnC/tests/Config_Handlers/HUDisplay/GPS_Exec.iad:
+ * DnC/tests/Config_Handlers/HUDisplay/GPS_Stub.iad:
+ * DnC/tests/Config_Handlers/HUDisplay/GPS_Svnt.iad:
+ * DnC/tests/Config_Handlers/HUDisplay/HUDisplay.cdp:
+ * DnC/tests/Config_Handlers/HUDisplay/HUDisplay.cid:
+ * DnC/tests/Config_Handlers/HUDisplay/HUDisplay.cpd:
+ * DnC/tests/Config_Handlers/HUDisplay/HUDisplay.pcd:
+ * DnC/tests/Config_Handlers/HUDisplay/Libraries.iad:
+ * DnC/tests/Config_Handlers/HUDisplay/NavDisplay.ccd:
+ * DnC/tests/Config_Handlers/HUDisplay/NavDisplay.cid:
+ * DnC/tests/Config_Handlers/HUDisplay/NavDisplay.cpd:
+ * DnC/tests/Config_Handlers/HUDisplay/NavDisplay_Exec.iad:
+ * DnC/tests/Config_Handlers/HUDisplay/NavDisplay_Stub.iad:
+ * DnC/tests/Config_Handlers/HUDisplay/NavDisplay_Svnt.iad:
+ * DnC/tests/Config_Handlers/HUDisplay/Timer.ccd:
+ * DnC/tests/Config_Handlers/HUDisplay/Timer.cid:
+ * DnC/tests/Config_Handlers/HUDisplay/Timer.cpd:
+ * DnC/tests/Config_Handlers/HUDisplay/Timer_Exec.iad:
+ * DnC/tests/Config_Handlers/HUDisplay/Timer_Stub.iad:
+ * DnC/tests/Config_Handlers/HUDisplay/Timer_Svnt.iad:
+ * DnC/tests/Config_Handlers/HUDisplay/package.tpd:
+
+ Moved the descriptor files needed to test BasicSP from my
+ homepage to the CVS repository. The Config_Handlers should be
+ able to build a tree starting from package.tpd. Not sure, if it
+ works that way now.
+
+Fri Jun 4 15:54:09 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Cosmetic and other minor changes to generated code.
+
+Fri Jun 4 15:38:18 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/ciao/Deployment_Core.idl
+
+ Change the "Connection" IDL type by replacing the "string name"
+ field with three more fields, i.e., "string instanceName",
+ "string portName" and "CCMComponentPortKind kind". We feel the
+ old one in DnC spec is not well defined and make the run-time
+ thing harder.
+
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.h:
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+
+ Finished all the functionality to handle connections and all
+ other things required.
+
+Fri Jun 4 15:32:50 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/tests/NodeApplicationTest/RoundTripEI.idl:
+ Removed this file.
+
+ * DnC/tests/NodeApplicationTest/RoundTrip_exec.h:
+ * DnC/tests/NodeApplicationTest/RoundTrip_exec.cpp:
+ * DnC/tests/NodeApplicationTest/NodeAppTest_RoundTrip.idl:
+ * DnC/tests/NodeApplicationTest/NodeAppTest.mpc:
+ Changed these files to get the get_all_facets test working.
+ Note: I have changed the component implementation to the new
+ executor mapping that Boris proposed. It's not a must in this
+ example but we can use it later as a tutorial for our users.
+
+ * DnC/tests/NodeApplicationTest/run_test_ex.pl:
+ * DnC/tests/NodeApplicationTest/NodeApp_test_client_ex.cpp:
+ Added these two files to test the get_all_facets function.
+
+Fri Jun 4 15:02:15 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/DomainApplicationManager/DomainApplicationManager.mpc:
+ * DnC/RepositoryManager/RepositoryManager.mpc:
+ * DnC/RepositoryManager/RepositoryManager_Impl.cpp:
+ * DnC/RepositoryManager/RepositoryManager_Impl.h:
+ * DnC/RepositoryManager/Repository_Manager.cpp:
+
+ Made changes so that RepositoryManager can dump out the
+ PackageConfiguration elements.
+
+Fri Jun 4 11:42:18 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.h:
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+
+ Added functions to handle connections. Get rid of the <Connections>
+ field from the hash map table since they don't need to be maintained
+ any more.
+
+
+Fri Jun 4 11:37:51 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Fixed a bug in code generation for the port table population
+ method check in with
+
+ Thu Jun 3 12:35:51 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ and changed code generation of facet servant classes to be
+ a template class with a dummy argument. Immediately below
+ the declaration, we generate a typedef to the actual
+ facet servant class name, using int as the template argument.
+ Because the facet servant class name is based only on the
+ underlying interface type, this change prevents link errors
+ when components in other translation units use the same
+ interface type for a facet, since the compiler will use
+ only one symbol for all the template instantiations, and
+ it is legal to typedef something more than once if it is
+ aliased to the same type. Finally, added checks to ensure
+ that the facet servant class is generated only once in
+ each translation unit, by allowing the underlying interface
+ AST node to be traversed by the facet class code emitter
+ only once.
+
+Fri Jun 4 11:40:18 2004 Emre Turkay <turkaye@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/DnC_Dump.cpp:
+
+ Clean-up of the unused, commented out code sections.
+
+Fri Jun 4 11:31:09 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/DnC_Dump.cpp:
+
+ Made changes to fix "Ref" variables.
+
+Fri Jun 4 11:22:46 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/ciao/Deployment_Core.idl:
+ * DnC/ciao/Deployment.idl:
+ Changed the connection struct definition to better suite our
+ needs.
+
+Fri Jun 4 11:19:45 2004 Emre Turkay <turkaye@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/DnC_Dump.cpp:
+
+ Fixed the dump function for Deployment::SubcomponentPortEndpoint.
+ Prints out the instanceRef.
+
+Fri Jun 4 10:46:42 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/DnC_Dump.cpp:
+
+ Made changes to fix dumping of some "Ref" variables.
+
+Fri Jun 4 09:53:14 2004 Emre Turkay <turkaye@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/tckind_names.h:
+ * DnC/Config_Handlers/tckind_names.cpp:
+ * DnC/Config_Handlers/DnC_Dump.cpp:
+
+ Deleted the files which initially written for dumping out the
+ ComponentPropertyDescription::type. It is handled as a big
+ switch section in DnC_Dump.cpp.
+
+Fri Jun 4 09:52:28 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.h:
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+
+ Removed the check_plan_validity () method and added its
+ functionality in the get_plan_info () method. This eliminates
+ the need to have a separate loop to iterate over the list of
+ names to populate the NodeManager references, now this step is
+ done within a single loop.
+
+Thu Jun 3 17:28:49 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/tests/NodeApplicationTest/NodeApp_test_client.cpp:
+ Formatted the output a bit to make the message more reflective.
+
+ * DnC/ciao/CCM_Core.mpc:
+ Moved the callback implementation from deployment servant to
+ stub.
+
+Thu Jun 3 16:25:58 2004 Emre Turkay <turkaye@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/DnC_Dump.cpp:
+
+ Added the dump code for ComponentPropertyDescription::type (CORBA::TypeCode).
+
+Thu Jun 3 16:15:41 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * DnC/NodeApplication/NodeApplication.mpc:
+ * DnC/ciao/CCM_Core.mpc:
+
+ Some tweaks to the MPC files.
+
+Thu Jun 3 16:10:11 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+
+ Forgot to remove generated members of the servant class that
+ have been moved to the base classes.
+
+Thu Jun 3 16:07:35 2004 Emre Turkay <turkaye@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/DnC_Dump.h:
+ * DnC/Config_Handlers/DnC_Dump.cpp:
+
+ Added the methods required to dump referenced values
+ correctly. Dump functions are chaged accordingly.
+
+Thu Jun 3 14:19:31 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/ExecutionManager/ExecutionManager.mpc:
+ * DnC/ExecutionManager/Execution_Manager.cpp:
+
+ Removed CIAO::Server_init () method calls from the server, as
+ this server does not need capabilities for explicitly processing
+ valuetypes. These calls are already present in NodeApplication
+ entity.
+
+Thu Jun 3 12:35:51 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * ciao/Servant_Impl_T.cpp:
+ * ciao/Servant_Impl_T.h:
+ * ciao/Servant_Impl_Base.cpp:
+ * ciao/Servant_Impl_Base.h:
+
+ New files added to CIAO_Server. A template base class is now
+ inserted into the inheritance hierarchy between the skeleton
+ class of the component's equivalent interface and the
+ servant class generated by the CIDL compiler. This template
+ class also has a non-template base class to hold code that
+ is based neither on the template parameters or on the
+ inheritance chain. These two classes will hold code common
+ to all generated servant classes, templatized for the
+ skeleton class type, the executor type and the context type.
+ So far, only get_all_facets() and get_all_consumers() have
+ been factored out and implemented.
+
+ * ciao/CCM_Core.mpc:
+
+ Changes to reflect the items above. Also added -Sc to the
+ generated IDL compiler command line of each project to
+ suppress the generation of the TIE classes.
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Change to reflect the items listed above, and also a new
+ method to populate tables in class Servant_Impl_Base that
+ store port descriptions. So far the event consumers and
+ the facets of the component are stored.
+
+Thu Jun 3 12:37:21 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/NodeManager/Node_Daemon.cpp:
+
+ Used OS_NS_stdio.h header file for fopen fclose methods defined
+ in ACE_OS namespace.
+
+Thu Jun 3 10:51:32 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/NodeManager/NodeDaemon.idl:
+
+ Changed #include "Deployment.idl" to "#include
+ ciao/Deployment.idl" to conform to the DnC include format.
+
+Wed Jun 2 23:26:41 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/CompImplDesc_Handler.h:
+ * DnC/Config_Handlers/DnC_Dump.h:
+ * DnC/ExecutionManager/ExecutionManager.mpc:
+ * DnC/ExecutionManager/ExecutionManager_Impl.h:
+ * DnC/NodeApplication/NodeApplication.mpc:
+ * DnC/NodeApplicationManager/NodeApplicationManager.mpc:
+ * DnC/NodeManager/NodeDaemon.mpc:
+ * DnC/NodeManager/NodeDaemon_Impl.cpp:
+ * DnC/RepositoryManager/RepositoryManager.mpc:
+ * DnC/tests/NodeApplicationTest/NodeAppTest.mpc:
+ * DnC/tests/NodeApplicationTest/NodeAppTest_RoundTrip.idl:
+ * DnC/tests/NodeApplicationTest/NodeApp_test_client.cpp:
+ * DnC/tests/NodeApplicationTest/NodeApp_test_client_simple.cpp:
+ * DnC/tests/NodeApplicationTest/run_test_simple.pl:
+
+ Updated these files to make it work with the new directory
+ structure.
+
+ Now, Let me explain the issue.
+ When I started implement the new DnC spec I was forced to change
+ some of the CIAO core implementations. The one very important
+ CIAO session container implementation is changed but not
+ significantly. However because we use MPC templates extensively
+ in CIAO some of the legacy mpb files is causing some trouble. I
+ catched this mistake when I was actually using some of the newly
+ provided functionalities in the conatainer, the red light
+ showed itself as a run time relocation error.
+
+ Another driving force of these change is from CIDLC. Since in
+ the generated code ciao/*** is used as the include file name,
+ there is no way that I can make the new container implementation
+ link with the servant project of the component implementation.
+
+Wed Jun 2 23:21:37 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/ciao/CCM_Base.idl:
+ * DnC/ciao/CCM_Component.idl:
+ * DnC/ciao/CCM_Container.idl:
+ * DnC/ciao/CCM_Container_Ex.idl:
+ * DnC/ciao/CCM_Core.mpc:
+ * DnC/ciao/CCM_Event.idl:
+ * DnC/ciao/CCM_Transaction.idl:
+ * DnC/ciao/CIAO_Client_Export.h:
+ * DnC/ciao/CIAO_Container_Export.h:
+ * DnC/ciao/CIAO_Server_Export.h:
+ * DnC/ciao/CIAO_Value.idl:
+ * DnC/ciao/CIAO_common.h:
+ * DnC/ciao/CVS:
+ * DnC/ciao/Client_init.cpp:
+ * DnC/ciao/Client_init.h:
+ * DnC/ciao/Components.idl:
+ * DnC/ciao/ComponentsC.h:
+ * DnC/ciao/ComponentsS.h:
+ * DnC/ciao/Container_Base.cpp:
+ * DnC/ciao/Container_Base.h:
+ * DnC/ciao/Container_Base.inl:
+ * DnC/ciao/Container_Base.pidl:
+ * DnC/ciao/Cookies.cpp:
+ * DnC/ciao/Cookies.h:
+ * DnC/ciao/Cookies.inl:
+ * DnC/ciao/CosPersistentState.idl:
+ * DnC/ciao/Deployment.idl:
+ * DnC/ciao/Deployment_Core.idl:
+ * DnC/ciao/Deployment_stub_export.h:
+ * DnC/ciao/Deployment_svnt_export.h:
+ * DnC/ciao/NodeApp_CB_Impl.cpp:
+ * DnC/ciao/NodeApp_CB_Impl.h:
+ * DnC/ciao/NodeApplication_CallBack.idl:
+ * DnC/ciao/NodeApplication_Impl.cpp:
+ * DnC/ciao/NodeApplication_Impl.h:
+ * DnC/ciao/NodeApplication_Impl.inl:
+ * DnC/ciao/Server_init.cpp:
+ * DnC/ciao/Server_init.h:
+ * DnC/ciao/Version.h:
+
+ Added these files to replace the files in the old DnC/Core directory.
+
+Wed Jun 2 22:55:57 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/Core/CCM_Base.idl:
+ * DnC/Core/CCM_BaseS.cpp:
+ * DnC/Core/CCM_BaseS.h:
+ * DnC/Core/CCM_Component.idl:
+ * DnC/Core/CCM_ComponentS.cpp:
+ * DnC/Core/CCM_ComponentS.h:
+ * DnC/Core/CCM_Container.idl:
+ * DnC/Core/CCM_ContainerS.cpp:
+ * DnC/Core/CCM_Container_Ex.idl:
+ * DnC/Core/CCM_Container_ExS.cpp:
+ * DnC/Core/CCM_Core.mpc:
+ * DnC/Core/CCM_Event.idl:
+ * DnC/Core/CCM_EventS.cpp:
+ * DnC/Core/CCM_EventS.h:
+ * DnC/Core/CCM_Transaction.idl:
+ * DnC/Core/CCM_TransactionS.cpp:
+ * DnC/Core/CIAO_Client_Export.h:
+ * DnC/Core/CIAO_Container_Export.h:
+ * DnC/Core/CIAO_Server_Export.h:
+ * DnC/Core/CIAO_Value.idl:
+ * DnC/Core/CIAO_ValueS.cpp:
+ * DnC/Core/CIAO_ValueS.h:
+ * DnC/Core/CIAO_common.h:
+ * DnC/Core/Client_init.cpp:
+ * DnC/Core/Client_init.h:
+ * DnC/Core/Components.idl:
+ * DnC/Core/Container_Base.cpp:
+ * DnC/Core/Container_Base.h:
+ * DnC/Core/Container_Base.inl:
+ * DnC/Core/Container_Base.pidl:
+ * DnC/Core/Cookies.cpp:
+ * DnC/Core/Cookies.h:
+ * DnC/Core/Cookies.inl:
+ * DnC/Core/CosPersistentState.idl:
+ * DnC/Core/CosPersistentStateS.cpp:
+ * DnC/Core/Deployment.idl:
+ * DnC/Core/DeploymentS.cpp:
+ * DnC/Core/Deployment_Core.idl:
+ * DnC/Core/Deployment_stub_export.h:
+ * DnC/Core/Deployment_svnt_export.h:
+ * DnC/Core/GNUmakefile:
+ * DnC/Core/GNUmakefile.CIAO_Client:
+ * DnC/Core/GNUmakefile.CIAO_Container:
+ * DnC/Core/GNUmakefile.CIAO_Server:
+ * DnC/Core/GNUmakefile.Deployment_stub:
+ * DnC/Core/GNUmakefile.Deployment_svnt:
+ * DnC/Core/NodeApp_CB_Impl.cpp:
+ * DnC/Core/NodeApp_CB_Impl.h:
+ * DnC/Core/NodeApplication_CallBack.idl:
+ * DnC/Core/NodeApplication_Impl.cpp:
+ * DnC/Core/NodeApplication_Impl.h:
+ * DnC/Core/NodeApplication_Impl.inl:
+ * DnC/Core/Object_Set_T.cpp:
+ * DnC/Core/Object_Set_T.h:
+ * DnC/Core/Object_Set_T.inl:
+ * DnC/Core/Server_init.cpp:
+ * DnC/Core/Server_init.h:
+ * DnC/Core/Version.h:
+ * DnC/Core/:
+
+ Removed all these files to avoid the suite the change of the
+ directory. Note: now DnC/Core is replaced by DnC/ciao.
+
+Wed Jun 2 21:54:51 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * ciao/CCM_Base.idl:
+
+ Fixed identifier of a member of PortDescription - changed
+ 'Name' to 'name', to conform to the CCM spec.
+
+Wed Jun 2 19:22:29 2004 Venkita Subramonian <venkita@cs.wustl.edu>
+
+ * ChangeLog:
+
+ Forgot to add change description for the previous change.
+
+Wed Jun 2 19:07:01 2004 Venkita Subramonian <venkita@cs.wustl.edu>
+
+ * ciao/CIAO_Client_Export.h:
+ * ciao/CIAO_Container_Export.h:
+ * ciao/CIAO_Export.h:
+ * ciao/CIAO_Server_Export.h:
+ * examples/OEP/BasicSP/BasicSP_stub_export.h:
+ * examples/OEP/BasicSP/BasicSP_svnt_export.h:
+ * examples/OEP/BasicSP/BMClosedED/BMClosedED_exec_export.h:
+ * examples/OEP/BasicSP/BMClosedED/BMClosedED_stub_export.h:
+ * examples/OEP/BasicSP/BMClosedED/BMClosedED_svnt_export.h:
+ * examples/OEP/BasicSP/BMDevice/BMDevice_exec_export.h:
+ * examples/OEP/BasicSP/BMDevice/BMDevice_stub_export.h:
+ * examples/OEP/BasicSP/BMDevice/BMDevice_svnt_export.h:
+ * examples/OEP/BasicSP/BMDisplay/BMDisplay_exec_export.h:
+ * examples/OEP/BasicSP/BMDisplay/BMDisplay_stub_export.h:
+ * examples/OEP/BasicSP/BMDisplay/BMDisplay_svnt_export.h:
+ * examples/OEP/BasicSP/EC/EC_exec_export.h:
+ * examples/OEP/BasicSP/EC/EC_stub_export.h:
+ * examples/OEP/BasicSP/EC/EC_svnt_export.h:
+ * tools/Segment_Timer/Segment_Timer_Export.h:
+ * tools/Simple_Component_Server/Simple_Server_Stub_Export.h:
+ * tools/XML_Helpers/XML_Helpers_Export.h:
+
+ Regenerated these files with -s option to take care of static
+ builds on Windows.
+
+Wed Jun 2 18:57:29 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/Core/NodeApplication_Impl.cpp:
+ Fixed a few bugs inside.
+
+ * DnC/tests/NodeApplicationTest/NodeAppTest.mpc:
+ * DnC/tests/NodeApplicationTest/NodeApp_test_client_simple.cpp:
+ * DnC/tests/NodeApplicationTest/NodeApp_test_client.cpp:
+ * DnC/tests/NodeApplicationTest/run_test.pl:
+ * DnC/tests/NodeApplicationTest/NodeApp_test_client_simple.cpp:
+
+ Added a test to do a more complete test on NodeApplication.
+ Please note that there is a name change of files. The mpc file
+ explains very thing.
+
+ * DnC/Core/Client_init.cpp:
+ I made the default value for debug_level 1, later we should
+ reverse the change.
+
+Wed Jun 2 18:37:24 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ * DnC/NodeManager/NodeDaemon_Impl.cpp:
+ * DnC/NodeManager/Node_Daemon.cpp:
+
+ Changes to ensure that the DomainApplicationManager is capable
+ of calling the NodeDaemon to spawn a NodeApplicationManager for
+ the corresponding application.
+
+Wed Jun 2 16:38:48 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/CompImplDesc_Handler.cpp:
+ * DnC/Config_Handlers/DnC_Dump.cpp:
+ * DnC/Config_Handlers/IAD_Handler.cpp:
+ * DnC/Config_Handlers/MID_Handler.cpp:
+ * DnC/Config_Handlers/NIA_Handler.cpp:
+ * DnC/Config_Handlers/PC_Handler.cpp:
+
+ Made changes to fix testing errors.
+
+Wed Jun 2 15:50:12 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/DomainApplicationManager/DomainApplicationManager.mpc
+
+ Added Config_Handlers library to fix linking probelm in Windows.
+
+ * DnC/ExecutionManager/ExecutionManager.mpc
+
+ Added ciao_deployment_stub and CIAO_Server libraries to fix
+ linking probelm in Windows.
+
+ * DnC/RepositoryManager/RepositoryManager.mpc
+
+ Added ciao_deployment_stub library to fix linking probelm in Windows.
+
+
+Wed Jun 2 15:07:56 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+
+ Fixed errors in split_plan() function to make it work.
+
+
+Wed Jun 2 12:30:56 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/CompImplDesc_Handler.cpp:
+ * DnC/Config_Handlers/DnC_Dump.cpp:
+ * DnC/Config_Handlers/IAD_Handler.cpp:
+ * DnC/Config_Handlers/MID_Handler.cpp:
+ * DnC/Config_Handlers/NIA_Handler.cpp:
+ * DnC/Config_Handlers/PCI_Handler.cpp:
+ * DnC/Config_Handlers/PC_Handler.cpp:
+
+ Made changes to fix some more testing errors.
+
+Wed Jun 2 11:51:57 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/ExecutionManager/Execution_Manager.cpp:
+ * DnC/ExecutionManager/ExecutionManager_Impl.cpp:
+
+ Fixed hashtable used within the ExcutionManager to check for
+ duplicates in the right manner.
+
+Wed Jun 2 10:31:27 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/tests/Config_Handlers/handler_test.mpb:
+ * DnC/Config_Handlers/Config_Handlers.mpc:
+ Updated these two file to make it compile with working on the
+ system like Debian or RedHat which have the pre-build binary
+ installed instead of xerces source.
+
+Wed Jun 2 00:48:30 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/CAD_Handler.cpp:
+ * DnC/Config_Handlers/CompImplDesc_Handler.cpp:
+ * DnC/Config_Handlers/CompPkgDesc_Handler.cpp:
+ * DnC/Config_Handlers/DnC_Dump.cpp:
+ * DnC/Config_Handlers/Process_Element.i:
+ * DnC/Config_Handlers/Process_Element.tpp:
+
+ Made changes to fix testing errors.
+
+Tue Jun 1 18:13:23 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/Core/NodeApplication_Impl.cpp:
+ * DnC/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ Updated these two files to fix the bug related to nil ();
+
+Tue Jun 1 18:09:19 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/NodeManager/NodeDaemon.mpc
+
+ Modify this to fix linking errors for missing library.
+
+Tue Jun 1 17:52:29 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/NodeApplicationManager/NodeApplicationManager.mpc
+
+ Modify this to fix linking errors.
+
+
+Tue Jun 1 17:39:57 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/CompPortDesc_Handler.cpp:
+ * DnC/Config_Handlers/CompPortDesc_Handler.h:
+ * DnC/Config_Handlers/CompPropDesc_Handler.cpp:
+ * DnC/Config_Handlers/CompPropDesc_Handler.h:
+
+ Removed the above handlers as they are not used at all.
+
+ * DnC/Config_Handlers/Config_Handlers.mpc:
+
+ Updated the MPC file accordingly.
+
+Tue Jun 1 15:30:49 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Basic_Handler.h:
+ * DnC/Config_Handlers/CAD_Handler.cpp:
+ * DnC/Config_Handlers/Cap_Handler.cpp:
+ * DnC/Config_Handlers/CompImplDesc_Handler.cpp:
+ * DnC/Config_Handlers/CompIntrDesc_Handler.cpp:
+ * DnC/Config_Handlers/CompPkgDesc_Handler.cpp:
+ * DnC/Config_Handlers/CompPortDesc_Handler.cpp:
+ * DnC/Config_Handlers/Process_Element.i:
+ * DnC/Config_Handlers/Process_Element.tpp:
+
+ Made changes to fix some testing errors
+
+Tue Jun 1 15:08:23 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/NodeManager/NodeApplicationManager_Impl.h:
+ * DnC/NodeManager/NodeApplicationManager_Impl.cpp:
+
+ Removed these files; New implementation present in
+ DnC/NodeApplicationManager directory
+
+ * DnC/NodeManager/Node_Daemon.cpp:
+ * DnC/NodeManager/NodeDaemon_Impl.h:
+ * DnC/NodeManager/NodeDaemon_Impl.cpp:
+ * DnC/NodeManager/NodeDaemon.mpc:
+
+ Changed the Node Manager to interact with the new
+ NodeApplication Manager implementation.
+
+Tue Jun 1 15:08:13 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/tests/NodeApplicationTest/run_test.pl:
+ * DnC/tests/NodeApplicationTest/NodeApp_test_client.cpp:
+
+ Added run_test.pl to run this test via scripts
+
+Tue Jun 1 14:48:01 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ * DnC/NodeApplicationManager/NodeApplicationManager_Impl.h:
+ * DnC/NodeApplicationManager/NodeApplicationManager_Impl.inl:
+ Updated the class to cooperate with NodeManager.
+ There is some memory management and lifecycle of object issue
+ solved by this update. Basically speaking, since NodeManager is
+ a daemon (running forever if nothing went wrong) we have to make
+ sure that the NodeApplicationManager will be actually destroyed
+ when its not needed any more. This update enables us to do this
+ and prevented us from hacking the OMG IDL file.
+
+Tue Jun 1 12:36:10 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Basic_Handler.cpp:
+ * DnC/Config_Handlers/Basic_Handler.h:
+ * DnC/Config_Handlers/CAD_Handler.cpp:
+ * DnC/Config_Handlers/CAD_Handler.h:
+ * DnC/Config_Handlers/CPR_Handler.h:
+ * DnC/Config_Handlers/Cap_Handler.h:
+ * DnC/Config_Handlers/CompImplDesc_Handler.cpp:
+ * DnC/Config_Handlers/CompImplDesc_Handler.h:
+ * DnC/Config_Handlers/CompIntrDesc_Handler.h:
+ * DnC/Config_Handlers/CompPkgDesc_Handler.h:
+ * DnC/Config_Handlers/DnC_Dump.cpp:
+ * DnC/Config_Handlers/Domain_Handler.h:
+ * DnC/Config_Handlers/IAD_Handler.h:
+ * DnC/Config_Handlers/IR_Handler.h:
+ * DnC/Config_Handlers/MID_Handler.h:
+ * DnC/Config_Handlers/NIA_Handler.h:
+ * DnC/Config_Handlers/PCI_Handler.h:
+ * DnC/Config_Handlers/PC_Handler.h:
+ * DnC/Config_Handlers/Plan_Handler.h:
+ * DnC/Config_Handlers/Process_Element.i:
+
+ Made changes to fix testing errors.
+
+Tue Jun 1 12:09:18 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ * DnC/NodeApplicationManager/NodeApplicationManager_Impl.h:
+ Changed the init method to return a objectRef of
+ the NodeApplicationManager to make NodeManager happy.
+
+Tue Jun 1 11:40:29 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Basic_Handler.h
+ * DnC/Config_Handlers/CompIntrDesc_Handler.h
+ * DnC/Config_Handlers/CompPkgDesc_Handler.h
+ * DnC/Config_Handlers/CompPortDesc_Handler.h
+ * DnC/Config_Handlers/CompPropDesc_Handler.h
+ * DnC/Config_Handlers/Config_Error_Handler.h
+ * DnC/Config_Handlers/DnC_Dump.h
+ * DnC/Config_Handlers/IAD_Handler.h
+ * DnC/Config_Handlers/IR_Handler.h
+ * DnC/Config_Handlers/MID_Handler.h
+ * DnC/Config_Handlers/NIA_Handler.h
+ * DnC/Config_Handlers/PCI_Handler.h
+ * DnC/Config_Handlers/PC_Handler.h
+ * DnC/Config_Handlers/RUK_Handler.h
+
+ Fixed the export libary problem for Windows.
+
+Tue Jun 1 10:49:49 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/CAD_Handler.cpp:
+ * DnC/Config_Handlers/Domain_Handler.cpp:
+
+ Made changes to fix testing errors.
+
+Tue Jun 1 10:41:49 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ * DnC/NodeApplicationManager/NodeApplicationManager_Impl.h:
+ * DnC/NodeApplicationManager/NodeApplicationManager_Impl.inl:
+ Finished the NodeApplicationManager except the connection
+ part.
+
+Tue Jun 1 10:16:21 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/DomainApplicationManager/DomainApplicationManager_Export.h
+
+ Added this file for Windows to export library.
+
+
+Tue Jun 1 10:12:46 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/RepositoryManager/RepositoryManager.idl:
+ * DnC/RepositoryManager/RepositoryManager.mpc:
+ * DnC/RepositoryManager/RepositoryManager_Impl.cpp:
+ * DnC/RepositoryManager/RepositoryManager_Impl.h:
+ * DnC/RepositoryManager/Repository_Manager.cpp:
+
+ Made a first-cut check-i for repository manager.
+
+Tue Jun 1 10:01:25 2004 Venkita Subramonian <venkita@cs.wustl.edu>
+
+ * examples/OEP/BasicSP/BMDevice/BMDevice.cidl:
+ * examples/OEP/BasicSP/BMClosedED/BMClosedED.cidl:
+
+ Included BasicSP.idl to fix problems during static linking.
+
+Tue Jun 1 00:42:56 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/DnC_Dump.cpp:
+ * DnC/Config_Handlers/Plan_Handler.cpp:
+ * DnC/Config_Handlers/Process_Element.cpp:
+
+ Made changes to fix some testing errors.
+
+
+Tue Jun 1 00:32:22 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/CAD_Handler.cpp:
+ * DnC/Config_Handlers/CPK_Handler.cpp:
+ * DnC/Config_Handlers/DnC_Dump.cpp:
+ * DnC/Config_Handlers/IAD_Handler.cpp:
+ * DnC/Config_Handlers/PC_Handler.cpp:
+ * DnC/Config_Handlers/Plan_Handler.cpp:
+ * DnC/Config_Handlers/Process_Element.cpp:
+
+ Made changes to fix some testing errors.
+
+Mon May 31 18:50:28 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/PC_Handler.cpp:
+ * DnC/Config_Handlers/Plan_Handler.cpp:
+
+ Made changes to fix some testing errors.
+
+Mon May 31 18:27:47 2004 Venkita Subramonian <venkita@cs.wustl.edu>
+ * tools/Segment_Timer/Segment_Timer.h:
+ * tools/static_configurator/Static_Configurator.cpp:
+
+ Made some fixes related to DLL exports to get rid of
+ build errors on Windows.
+
+Mon May 31 18:25:30 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Any_Handler.cpp:
+ * DnC/Config_Handlers/CPK_Handler.cpp:
+ * DnC/Config_Handlers/CompPkgDesc_Handler.cpp:
+ * DnC/Config_Handlers/PC_Handler.cpp:
+ * DnC/Config_Handlers/Plan_Handler.cpp:
+ * DnC/Config_Handlers/Property_Handler.cpp:
+
+ Made some changes to fix some testing errors.
+
+
+Mon May 31 17:18:55 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Any_Handler.cpp:
+ * DnC/Config_Handlers/CompIntrDesc_Handler.cpp:
+ * DnC/Config_Handlers/CompPropDesc_Handler.cpp:
+ * DnC/Config_Handlers/DT_Handler.cpp:
+ * DnC/Config_Handlers/DT_Handler.h:
+
+ Resolved Typecode and Any related errors relating to parsing the
+ Deployment plan.
+
+Mon May 31 16:33:16 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Added support for the emits-related navigation method,
+ and automatic registration of value factories for
+ event consumers. Also fixed bug in code generation
+ for uses multiple.
+
+ * ciao/Container_Base.h:
+
+ Added CIAO_REGISTER_OBV_FACTORY macro, used by the
+ CIDL compiler when generating factory registration
+ calls for event consumers. There is also a version of
+ this macro called CIAO_REGISTER_VALUE_FACTORY in
+ CIAO_common.h. This version takes an extra argument
+ which is an ORB pointer. This macro was separately
+ added, planning for the day when we may want
+ components to run with a separate process and/or ORB
+ from their containers. These two versions will have
+ to be reconciled at some point.
+
+ * tools/Segment_Timer/Segment_Timer.mpc:
+
+ Added the export file to the project.
+
+ * tools/XML_Helpers/RTConfig_Handlers.cpp:
+
+ Added some static casts to eliminate warnings on
+ MSVC.
+
+Mon May 31 16:19:17 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/NodeApplicationManager/NodeApplicationManager.mpc:
+ Updated this file.
+
+ * DnC/NodeApplicationManager/CIAO_NAM_Export.h:
+ Added this export file.
+
+ * DnC/NodeApplicationManager/NodeApplicationManager.cpp:
+ Removed this file since NodeApplicationManager will be
+ collocated with NodeManager.
+
+ * DnC/NodeApplicationManager/CIAO_NodeApplicationManager.idl:
+ Removed this file since I have moved this into deployment_svnt
+ project.
+
+ * DnC/Core/NodeApplication_Impl.cpp:
+ Changed from 0 to CORBA::Object::_nil () as return value.
+
+Mon May 31 15:18:25 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/test/NodeApplicationTest/NodeAppTest_RoundTrip.idl:
+ * DnC/test/NodeApplicationTest/NodeApp_test_client.cpp:
+ * DnC/test/NodeApplicationTest/RoundTripEI.idl:
+ * DnC/test/NodeApplicationTest/RoundTrip_exec.cpp:
+ * DnC/test/NodeApplicationTest/RoundTrip_exec.h:
+
+ Changed the idl interface to supports rather than provides as
+ this feature has not been implemented yet.
+
+Mon May 31 14:48:21 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/DomainApplicationManager/DomainApplicationManager.mpc:
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.h:
+
+ Added export library thing for Windows.
+
+
+Mon May 31 13:35:15 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Config_Handlers.mpc:
+
+ Added the missing dependency library to the mpc file, which
+ is CIAO_Server library.
+
+Mon May 31 13:10:15 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/DomainApplicationManager/DomainApplicationManager.mpc:
+
+ Added necessary dependency libraries to the mpc file, which
+ causes build probelm under Windows.
+
+ * DnC/DomainApplication/DomainApplication_Impl.h
+ * DnC/DomainApplication/DomainApplication_Impl.cpp
+
+ Removed these files since DomainApplication are now
+ combined with DomainApplicationManager.
+
+
+Mon May 31 11:00:50 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/Core/NodeApplication_Impl.cpp:
+ Fixed one bug of the refence count of Component instance
+ objectRef.
+
+Mon May 31 00:40:25 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/Core/NodeApplication_Impl.cpp:
+ * DnC/Core/NodeApplication_Impl.h:
+
+ Added component/home removal functionality.
+ Also added a install method which will be called by
+ NodeApplicationManager to install everything which belong
+ to the NodeApplication.
+
+Sun May 30 17:47:10 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/tests/NodeApplicationTest:
+
+ Directory for testing CIAO's NodeApplication entity
+
+ * DnC/tests/NodeApplicationTest/NodAppTest.mpc:
+ mpc file for this test case
+
+ * DnC/tests/NodeApplicationTest/NodeAppTest_RoundTrip.idl:
+ * DnC/tests/NodeApplicationTest/NodeAppTest_RoundTrip.cidl:
+ * DnC/tests/NodeApplicationTest/RoundTripEI.idl:
+
+ A simple component as a test case that provides an interface
+ LatencyTest which has a single operation defined that cubes a
+ long
+
+ * DnC/tests/NodeApplicationTest/RoundTrip_stub_export.h:
+ * DnC/tests/NodeApplicationTest/RoundTrip_svnt_export.h:
+ * DnC/tests/NodeApplicationTest/RoundTrip_exec_export.h:
+
+ Export files to keep windows happy
+
+ * DnC/tests/NodeApplicationTest/RoundTrip_exec.h:
+ * DnC/tests/NodeApplicationTest/RoundTrip_exec.cpp:
+
+ Component implementation definitions
+
+ * DnC/tests/NodeApplicationTest/NodeApp_test_client.cpp:
+
+ Client program that tries to install the RoundTrip home with the
+ NodeApplication aka ComponentServer, create the Component,
+ i.e. RoundTrip, and invoke the cube long operation.
+
+ This test case exercises the call path for home installation,
+ component creation within the new DnC specification. This test
+ case should also have component removal operations, which will
+ be added as and when this is implemented in CIAO.
+
+Sun May 30 15:43:24 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/NodeApplication/NodeApplication.mpc:
+ * DnC/NodeApplication/NodeApplication.cpp:
+
+ Resolved compilation and link errors. Now the NodeApplication
+ can be started generating an ior! Next step will be to write a
+ test client to install homes and create components.
+
+Sun May 30 14:36:21 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/NodeApplication/NodeApplication.mpc:
+ * DnC/NodeApplication/NodeApplication.cpp:
+ * DnC/Core/Container_Base.h:
+ * DnC/Core/Container_Base.cpp:
+ * DnC/Core/Deployment_Core.idl:
+ * DnC/Core/NodeApplication_Impl.h:
+ * DnC/Core/NodeApplication_Impl.cpp:
+
+ Updateed those files to finish home creation part.
+
+Sat May 29 15:25:22 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/RepositoryManager/RepositoryManager_Impl.h:
+ * DnC/RepositoryManager/RepositoryManager_Impl.cpp:
+ * DnC/RepositoryManager/RepositoryManager.mpc:
+
+ First cut implementation of Repository Manager.
+
+Fri May 28 23:17:44 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/NodeManager/NodeDaemon.idl:
+ * DnC/NodeManager/NodeDaemon.mpc:
+ * DnC/NodeManager/Node_Daemon.cpp:
+ * DnC/NodeManager/NodeDaemon_Impl.h:
+
+ Fixed compilation and linking errors stemming from refactoring
+ DnC core to include the Deployment.idl files. Modified the
+ include paths as now these are autogenerated from the
+ ciao_deployment.mpb file
+
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.h:
+
+ Removed the getApplications () member function the the header
+ file. This is not present as a part of the interface. This
+ resolves link errors
+
+ * DnC/ExecutionManager/ExecutionManager.mpc:
+
+ Removed the unnecessary ciao_server target from the mpc file as
+ this library is not needed
+
+Fri May 28 10:18:45 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+
+ Fixed warnings resulting from non usage of .in () while
+ assigning to a _ptr from a _var.
+
+ * DnC/DomaiinApplicationManager/DomainApplicationManager_Impl.inl:
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.h:
+
+ Created file for storing inline functions
+
+Thu May 27 22:16:26 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * examples/handcrafted/BasicSP_EC/BMClosedED/BMClosedEDE.idl:
+ * examples/handcrafted/BasicSP_EC/BMClosedED/BMClosedED_svnt.cpp:
+ * examples/handcrafted/BasicSP_EC/BMClosedED/BMClosedED_svnt.h:
+ * examples/handcrafted/BasicSP_EC/BMDevice/BMDeviceE.idl:
+ * examples/handcrafted/BasicSP_EC/BMDevice/BMDevice_svnt.cpp:
+ * examples/handcrafted/BasicSP_EC/BMDevice/BMDevice_svnt.h:
+ * examples/handcrafted/BasicSP_EC/BMDisplay/BMDisplayE.idl:
+ * examples/handcrafted/BasicSP_EC/BMDisplay/BMDisplay_svnt.cpp:
+ * examples/handcrafted/BasicSP_EC/BMDisplay/BMDisplay_svnt.h:
+ * examples/handcrafted/BasicSP_EC/EC/ECE.idl:
+ * examples/handcrafted/BasicSP_EC/EC/EC_svnt.cpp:
+ * examples/handcrafted/BasicSP_EC/EC/EC_svnt.h:
+
+ Removed these files from the Repo. Please be careful when you
+ commit files and please double check EVEN you have done make
+ realclean!
+
+
+Thu May 27 22:14:18 2004 Venkita Subramonian <venkita@cs.wustl.edu>
+
+ * tools/static_configurator/Static_Configurator.mpc:
+ * tools/static_configurator/Static_Configurator.h:
+ * tools/static_configurator/Static_Configurator.cpp:
+ * tools/static_configurator/Static_Assembly_Visitors.cpp:
+ * tools/static_configurator/Static_Assembly_Parser.cpp:
+
+ Made changes related to performance measurement of static
+ configuration mechanisms.
+
+ * tools/Segment_Timer/Segment_Timer_Export.h:
+ * tools/Segment_Timer/Segment_Timer.{cpp,h,mpc}:
+ * tools/Segment_Timer/README:
+
+ Adding segment timer files. This class is used in the
+ performance measurements of static and dynamic configurations.
+
+ * tools/RTComponentServer/RTComponentServer.mpc:
+ * tools/Assembly_Deployer/Assembly_Visitors.cpp:
+ * tools/Assembly_Deployer/Assembly_Manager.cpp:
+ * tools/Assembly_Deployer/Assembly_Impl.cpp:
+ * tools/Assembly_Deployer/Assembly_Deployer.mpc:
+
+ Made changes related to performance measurement of dynamic
+ configuration mechanisms.
+
+Thu May 27 18:39:10 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.h:
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+
+ Redefine the Hash map to make all the artifacts (NodeManager,
+ NodeApplicationManager, NodeApplication, Connections) handy
+ to use. Changed all the member functions to reflect this
+ change.
+
+Thu May 27 17:45:26 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/tests/Config_Handlers/handler_test.mpb:
+
+ Added reqires dnc to stop the noise on the scoreboard.
+
+Thu May 27 22:10:27 2004 Emre Turkay <turkaye@dre.vanderbilt.edu>
+ * DnC/Core/Deployment.idl:
+
+ Added DeploymentPlan::UUID.
+
+Thu May 27 22:02:21 2004 Emre Turkay <turkaye@dre.vanderbilt.edu>
+ * DnC/Config_Handlers/Plan_Handler.cpp:
+
+ Added handler for DeploymentPlan::UUID
+
+Thu May 27 16:42:26 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+
+ Added a check to make sure that duplicate NodeManager names are
+ not added to the internal hashmap maintained in this
+ entity. This ensures that the length always corresponds to the
+ unique set of node names. Thanks to Gan Deng for pointing this
+ out.
+
+Thu May 27 16:38:19 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * DnC/Deployment.xsd: Added UUID element to deploymentPlan.
+
+
+Thu May 27 13:03:02 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.h:
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+
+ Added the get_plan_info () method, that parses the plan
+ according to the individual nodes on which the plan needs to be
+ deployed. Also changed internal tables to use ACE_Vector to
+ store plan related information.
+
+Thu May 27 11:02:47 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.h:
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+
+ Added two new operations get_uuid and set_uuid that will help
+ the ExecutionManager associating the DomainApplicationManager
+ with a concrete DeploymentPlan passed. These are defined on the
+ servant only.
+
+ * DnC/ExecutionManager/ExecutionManager_Impl.h:
+ * DnC/ExecutionManager/ExecutionManager_Impl.cpp:
+
+ Implementation of Deployment::ExecutionManager interface. This
+ has now been integrated with the DomainApplicationManager.
+
+ * DnC/DomainApplicationManager/Deployment_Configuration.h:
+
+ Removed "#include Core/.." as now the include paths are
+ generated from the deployment_svnt.mpb
+
+ * DnC/ExecutionManager/Execution_Manager.cpp:
+ * DnC/ExecutionManager/ExectionManager.idl:
+
+ CIAO's implementation of ExecutionManager Daemon
+ interface. Added a shutdown () method for clean release of
+ resources associated with the Daemon
+
+ * DnC/ExecutionManager/ExecutionManager.mpc:
+
+ mpc file to generate Makefiles!
+
+Wed May 26 17:08:21 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.h
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+
+ Changed the member functions signature in accordance with the
+ modified DomainApplicationManager IDL interface.
+
+
+Wed May 26 16:24:54 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/Core/Deployment.idl
+
+ Modified the IDL interface of the DomainApplicationManager,
+ which now integrates the functionality of both
+ DomainApplicationManager and DomainApplication in the original
+ DnC spec. The old DomainApplication interface is deleted.
+
+Wed May 26 11:33:11 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/Core/CCM_Core.mpc
+
+ Added necessary library (TAO_Valuetype) to the Deployment_stub
+ project. Removed the unnecessary Deployment_CoreC.cpp file which
+ caused linking error.
+
+Wed May 26 11:15:23 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/Core/NodeApplication_Impl.cpp
+
+ Fixed linking errors because the "start" method on the
+ NodeApplication used a wrong function signature.
+
+Wed May 26 11:06:23 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/DomainApplicationManager/DomainApplicationManager.mpc
+ * DnC/DomainApplicationManager/Deployment_Configuration.inl
+
+ Added these two files.
+
+Wed May 26 11:03:23 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/Core/CCM_Core.mpc
+
+ Fixed typo in this mpc file.
+
+Wed May 26 10:14:23 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/DomainApplicationManager/DomainApplicationManager_Impl.*
+
+ Fixed the compiling errors. More functinality will be
+ added soon.
+
+ * DnC/DomainApplicationManager/Deployment_Configuration.*
+
+ Added this helper class to deal with deployment topology
+ data file.
+
+
+Tue May 25 22:40:23 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/Core/NodeApp_CB_Impl.cpp:
+ * DnC/Core/NodeApp_CB_Impl.h:
+ * DnC/Core/NodeApplication_CallBack.idl:
+ Added these files for NodeApplication callback interface.
+
+ * DnC/Core/CCM_Core.mpc:
+ Updated the file to reflect above changes.
+
+Tue May 25 13:05:35 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/Deployment.idl:
+ * DnC/Property.idl:
+ * DnC/Deployment.mpc:
+ * DnC/Deployment_stub_export.h:
+ * DnC/Deployment_stub_export.h:
+ * DnC/Core/Container_Impl.h:
+ * DnC/Core/Container_Impl.inl:
+ * DnC/Core/Container_Impl.cpp:
+ * DnC/Core/CCM_Deplyment.idl:
+
+ Removed these files. Everything is moved into the DnC/Core
+ directory, also the Deployment.idl is splited into
+ Deployment.idl and Deployment_Core.idl. The first one contains
+ information needed for DnC runtime except NodeApplication.
+ The latter file combines the old Container with NodeApplication.
+
+ * DnC/Core/Deployment.idl:
+ * DnC/Core/Deployment_Core.mpc:
+ * DnC/Core/Deployment_stub_export.h:
+ * DnC/Core/Deployment_stub_export.h:
+ * DnC/Core/NodeApplication_Impl.h:
+ * DnC/Core/NodeApplication_Impl.inl:
+ * DnC/Core/NodeApplication_Impl.cpp:
+ Added these files.
+
+ * DnC/Core/CCM_Core.mpc:
+ This file updated to reflect the chages above.
+
+ The idea is to use the old container as the NodeApplication and
+ the ComponentServer. This implies that new process will be
+ spawned upon new NodeApplication is created.
+
+ In turn the NodeApplicationManager will be collocated with
+ NodeManager.
+
+ These changes give us advantages for implementing the spec in an
+ effecient way without inccuring much confilicts with the Spec.
+
+
+Tue May 25 12:06:37 2004 Venkita Subramonian <venkita@cs.wustl.edu>
+
+ * tests/RTCCM/Priority_Test/Workers/IOB_Worker_exec.cpp:
+ * tests/RTCCM/Priority_Test/Workers/CB_Worker_exec.cpp:
+ * tests/RTCCM/Priority_Test/Controllers/Controller_exec.{cpp,h}:
+ * tests/RTCCM/Priority_Test/Controllers/Rate_Controller.{cpp,h}:
+
+ Fixed compile errors regarding pure virtual functions not being
+ implemented. Added empty method definitions for ciao_preactivate
+ and ciao_postactivate.
+
+Tue May 25 12:08:48 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/NodeManager/Node_Daemon.cpp:
+
+ Removed repetitive registration with the IORTable
+
+Tue May 25 12:02:52 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * DnC/Deployment.xsd:
+
+ Initial set of "normalization" changes.
+
+
+ * DnC/Deployment.xsd.orig:
+ * DnC/XMI.xsd.orig:
+
+ Added backup copies.
+
+Mon May 24 14:13:51 2004 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DnC/DomainApplicationManager/DomainApplicationManager.h:
+ * DnC/DomainApplicationManager/DomainApplicationManager.cpp:
+
+ * DnC/DomainApplication/DomainApplication.h:
+ * DnC/DomainApplication/DomainApplication.cpp:
+
+ Added these files.
+
+
+Mon May 24 21:18:07 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * examples/Hello/descriptors/run_test_remote.pl:
+ * examples/Hello/descriptors/run_test_default.pl:
+
+ Updated the test script since Assembly_Deployer takes
+ two more command line options.
+
+Mon May 24 19:44:32 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/ADD_Handler.*:
+ * DnC/Config_Handlers/ACD_Handler.*:
+ * DnC/Config_Handlers/APM_Handler.*:
+ * DnC/Config_Handlers/CRDD_Handler.*:
+ * DnC/Config_Handlers/DP_Handler.*:
+ * DnC/Config_Handlers/IDD_Handler.*:
+ * DnC/Config_Handlers/IRDD_Handler.*:
+ * DnC/Config_Handlers/MDD_Handler.*:
+ * DnC/Config_Handlers/PCD_Handler.*:
+ * DnC/Config_Handlers/PPM_Handler.*:
+ * DnC/Config_Handlers/PSPE_Handler.*:
+ * DnC/Config_Handlers/PSPR_Handler.*:
+ * DnC/Config_Handlers/RDD_Handler.*:
+ * DnC/Config_Handlers/SID_Handler.*:
+ * DnC/Config_Handlers/SPE_Handler.*:
+ * DnC/Config_Handlers/SPR_Handler.*:
+
+ Removed the above mentioned handlers as they are
+ not used.
+
+Mon May 24 11:50:15 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Plan_Handler.cpp:
+
+ Added changes to reflect the changes made in the IDL file.
+
+
+Sun May 23 14:31:51 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/NodeManager/NodeDaemon.mpc:
+
+ Added exename flag to set the right executable name to be generated
+
+Sun May 23 13:32:34 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/NodeManager/NodeDaemon.mpc:
+ * DnC/NodeManager/NodeApplicationManager_Impl.h:
+ * DnC/NodeManager/NodeApplicationManger_Impl.cpp:
+ * DnC/NodeManager/NodeDaemon_Impl.cpp:
+ * DnC/NodeManager/Node_Daemon.cpp:
+
+ Got the call-chain working, wherein, a preparePlan call to the
+ Daemon creates a NodeApplication Manager and passes along the
+ plan as well. Next, now the Daemon, depending on the command
+ line argument passed can also register with the Naming Service
+ using the node-name as the context. This enables multiple
+ NodeManagers to be activated on different hosts. An simple IOR
+ based scheme will not work in this case.
+
+Fri May 21 20:12:43 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/NodeManager/NodeDaemon.idl:
+ * DnC/NodeManager/NodeDaemon.mpc:
+ * DnC/NodeManager/NodeDaemon_Impl.h:
+ * DnC/NodeManager/NodeDaemon_Impl.cpp:
+ * DnC/NodeManager/Node_Daemon.cpp:
+ * DnC/NodeManager/NodeApplicationManager_Impl.h:
+ * DnC/NodeManager/NodeApplicationManager_Impl.cpp:
+
+ Updated these files inline with the Specification i.e. removed
+ un-necessary methods along with making the
+ NodeApplicationManager a CORBA::Object rather than a CORBA
+ server. In this case, the NodeManager, i.e. the NodeDaemon, will
+ share the same ORB with the the Application Manager. Further,
+ the mpc file was updated to make things compile and link
+ properly.
+
+Thu May 20 23:29:54 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Deployment.xsd:
+ Uploaded the new schema.
+
+Thu May 20 19:28:20 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/Core/CCM_Core.mpc
+ * DnC/Core/CCM_Deployment.idl
+ * DnC/Core/ComponentServer_Impl.cpp
+ * DnC/Core/ComponentServer_Impl.h
+ * DnC/Core/ComponentServer_Impl.inl
+ * DnC/Core/Container_Impl.cpp
+ * DnC/Core/Container_Impl.h
+
+ Removed the ComponentInstallation interfaces.
+ Now the CORE of new CIAO should be fixed.
+
+Thu May 20 18:54:01 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Deployment.idl:
+
+ Updated the IDL for Component Data Model changes.
+
+Thu May 20 14:44:48 2004 Irfan Pyarali <irfan@oomworks.com>
+
+ * tests/RTCCM/DiffServ/Controller/Controller.cpp:
+
+ No RT-isms necessary anymore.
+
+Thu May 20 14:31:20 2004 Irfan Pyarali <irfan@oomworks.com>
+
+ * tests/RTCCM/DiffServ/descriptors/rtsvc.conf:
+
+ This file is no longer needed.
+
+ * tests/RTCCM/DiffServ/descriptors/run_test.pl:
+
+ No need to specify rtsvc.conf file.
+
+ * tools/RTComponentServer/RTComponentServer.cpp (main):
+
+ No need to check that multiple priorities are supported. Some
+ servers can do with one priority.
+
+Thu May 20 13:40:25 2004 Irfan Pyarali <irfan@oomworks.com>
+
+ * tests/RTCCM/DiffServ/Sender/Sender.mpc:
+ * tests/RTCCM/DiffServ/Sender/Custom_Network_Priority_Mapping.cpp:
+
+ Simply refer to the same files in TAO/tests/RTCORBA/Diffserv
+ instead of making a copy here.
+
+ * tests/RTCCM/DiffServ/Receiver/Receiver_exec.cpp:
+ * tests/RTCCM/DiffServ/Sender/Sender_exec.cpp:
+ * tests/RTCCM/DiffServ/descriptors/run_test.pl:
+
+ Minor fixes.
+
+Thu May 20 11:34:33 2004 Irfan Pyarali <irfan@oomworks.com>
+
+ * tools/ComponentServer/ComponentServer.cpp:
+ * tools/Assembly_Deployer/Assembly_Deployer.cpp:
+
+ Added missing include file.
+
+ * tests/RTCCM/DiffServ/descriptors/run_test.pl:
+
+ Added new assembly deployer option.
+
+ * tests/RTCCM/DiffServ/descriptors/rtsvc.conf:
+
+ Added FIFO scheduling option.
+
+ * tests/RTCCM/DiffServ/Controller/Controller.cpp (svc):
+
+ Minor fixes.
+
+Thu May 20 10:36:23 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/Core/CCM_Base.idl
+ * DnC/Core/CCM_Component.idl
+ * DnC/Core/CCM_Container.idl
+ * DnC/Core/CCM_Container_Ex.idl
+ * DnC/Core/CCM_Core.mpc
+ * DnC/Core/CCM_Deployment.idl
+ * DnC/Core/CCM_Event.idl
+ * DnC/Core/CCM_Transaction.idl
+ * DnC/Core/CIAO_Client_Export.h
+ * DnC/Core/CIAO_Container_Export.h
+ * DnC/Core/CIAO_Server_Export.h
+ * DnC/Core/CIAO_Value.idl
+ * DnC/Core/CIAO_common.h
+ * DnC/Core/Client_init.cpp
+ * DnC/Core/Client_init.h
+ * DnC/Core/ComponentInstallation_Impl.cpp
+ * DnC/Core/ComponentInstallation_Impl.h
+ * DnC/Core/ComponentInstallation_Impl.inl
+ * DnC/Core/ComponentServer_Impl.cpp
+ * DnC/Core/ComponentServer_Impl.h
+ * DnC/Core/ComponentServer_Impl.inl
+ * DnC/Core/Component_Base.idl
+ * DnC/Core/Components.idl
+ * DnC/Core/Container_Base.cpp
+ * DnC/Core/Container_Base.h
+ * DnC/Core/Container_Base.inl
+ * DnC/Core/Container_Base.pidl
+ * DnC/Core/Container_Impl.cpp
+ * DnC/Core/Container_Impl.h
+ * DnC/Core/Container_Impl.inl
+ * DnC/Core/Cookies.cpp
+ * DnC/Core/Cookies.h
+ * DnC/Core/Cookies.inl
+ * DnC/Core/CosPersistentState.idl
+ * DnC/Core/Object_Set_T.cpp
+ * DnC/Core/Object_Set_T.h
+ * DnC/Core/Object_Set_T.inl
+ * DnC/Core/Server_init.cpp
+ * DnC/Core/Server_init.h
+ * DnC/Core/Version.h
+
+ Finished refactoring the Core part of CIAO.
+
+Wed May 19 15:15:21 2004 Irfan Pyarali <irfan@oomworks.com>
+
+ * tests/RTCCM/DiffServ:
+
+ Added a new DiffServ test. This test is similar to the
+ RTCORBA/DiffServ test but uses components instead of a client
+ and server.
+
+ Here are the new files:
+
+ - Controller/Controller.cpp
+ - Controller/Controller.mpc
+ - Receiver/Receiver.cidl
+ - Receiver/Receiver.idl
+ - Receiver/Receiver.mpc
+ - Receiver/Receiver_exec.cpp
+ - Receiver/Receiver_exec.h
+ - Receiver/Receiver_exec_export.h
+ - Receiver/Receiver_stub_export.h
+ - Receiver/Receiver_svnt_export.h
+ - Sender/Custom_Network_Priority_Mapping.cpp
+ - Sender/Custom_Network_Priority_Mapping.h
+ - Sender/Sender.cidl
+ - Sender/Sender.idl
+ - Sender/Sender.mpc
+ - Sender/Sender_exec.cpp
+ - Sender/Sender_exec.h
+ - Sender/Sender_exec_export.h
+ - Sender/Sender_stub_export.h
+ - Sender/Sender_svnt_export.h
+ - common/DiffServ.idl
+ - common/DiffServ.mpc
+ - common/DiffServ_stub_export.h
+ - common/DiffServ_svnt_export.h
+ - descriptors/CIAO_Installation_Data.ini
+ - descriptors/Receiver.csd
+ - descriptors/Receiver.ssd
+ - descriptors/Sender.csd
+ - descriptors/Sender.ssd
+ - descriptors/default.cad
+ - descriptors/remote.cad
+ - descriptors/rtsvc.conf
+ - descriptors/test.dat
+
+Tue May 18 23:20:10 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/CompIntrDesc_Handler.cpp:
+ * DnC/Config_Handlers/CompIntrDesc_Handler.h:
+ * DnC/Config_Handlers/Config_Handlers.mpc:
+
+ Updated for handling HREF and IDREF tags.
+
+Tue May 18 14:43:51 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Property_Handler.h:
+ * DnC/Config_Handlers/Property_Handler.cpp:
+
+ Revoked previous commit.
+
+Tue May 18 14:25:25 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Property_Handler.h:
+ * DnC/Config_Handlers/Property_Handler.cpp:
+
+ Added a xercesc::DOMNode * as a formal argument. Though this
+ argument is unnecessary in the process_property () function,
+ this was necessary to have a common signature for all the
+ process_* functions, so that they could be templatized.
+
+Tue May 18 12:01:14 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/CAD_Handler.cpp:
+ * DnC/Config_Handlers/CAD_Handler.h:
+
+ Updated to handle HREF and IDREF tags.
+
+Tue May 18 06:30:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DnC/NodeApplicationManager/NodeApplicationManager.mpc:
+ Fixed typos in this MPC file
+
+Tue May 18 00:54:00 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/CAD_Handler.cpp:
+ * DnC/Config_Handlers/CAD_Handler.h:
+ * DnC/Config_Handlers/Config_Handlers.mpc:
+ * DnC/Config_Handlers/DnC_Dump.cpp:
+ * DnC/Deployment.idl:
+
+ Made a change to the IDL for the ComponentDataModel
+ elements.
+
+ Updated the affected handlers.
+
+Mon May 17 22:15:11 2004 Venkita Subramonian <venkita@cs.wustl.edu>
+
+ * docs/index.html:
+ * docs/EnvVars.html:
+
+ Left over files from RTCIAO-tests branch merge. Thanks to
+ Nanbor for pointing this out.
+
+Mon May 17 21:07:25 2004 Venkita Subramonian <venkita@cs.wustl.edu>
+
+ * tools/static_configurator/Static_Assembly_Visitors.h:
+ * tools/static_configurator/Static_Configurator.cpp:
+ * tools/static_configurator/Static_Configurator.mpc:
+
+ Fixed some compile errors because of a typo.
+
+Mon May 17 19:29:43 2004 Venkita Subramonian <venkita@cs.wustl.edu>
+
+ * tools/RTComponentServer/RTServer_Impl.cpp:
+ * tools/RTComponentServer/RTServer_Impl.h:
+ * tools/RTComponentServer/RTServer_Impl.inl: Added extra
+ parameters to RTContainer_Impl, RTSession_Container and
+ ComponentServer_Impl ctors for static configuration.
+
+ * tools/static_configurator/Static_Assembly.h:
+ * tools/static_configurator/Static_Assembly_Visitors.cpp:
+ * tools/static_configurator/Static_Assembly_Visitors.h:
+ * tools/static_configurator/Static_Configurator.cpp:
+ * tools/static_configurator/Static_Configurator.h:
+ * tools/static_configurator/Static_Configurator.mpc:
+
+ Changes to statically parse .rtcad files and generate main
+ driver for static RTCCM applications.
+
+Mon May 17 16:16:37 2004 Venkita Subramonian <venkita@cs.wustl.edu>
+
+ Merging RTCIAO-tests branch to the main trunk. This branch
+ contained the RTCCM tests from Nanbor (nanbor@txcorp.com).
+
+ * ciao/CIAO_common.h:
+ * ciao/Client_init.cpp: Minor modifications to CIAO core. Addition
+ of CIAO_debug_level.
+
+ * ciao/ComponentInstallation_Impl.cpp:
+ * ciao/ServerActivator_Impl.cpp:
+ * ciao/ServerActivator_Impl.h: Addition of extra command line
+ flags to be passed on to the component server during its spawning.
+
+ * tests/RTCCM/Priority_Test/descriptors/CB_Worker.csd:
+ * tests/RTCCM/Priority_Test/descriptors/IOB_Worker.csd:
+ * tests/RTCCM/Priority_Test/descriptors/Worker.ssd:
+ * tests/RTCCM/Priority_Test/descriptors/CIAO_Installation_Data.ini:
+ * tests/RTCCM/Priority_Test/descriptors/Controller.csd:
+ * tests/RTCCM/Priority_Test/descriptors/Controller.ssd:
+ * tests/RTCCM/Priority_Test/descriptors/RTsvc.conf:
+ * tests/RTCCM/Priority_Test/descriptors/svcmap.dat:
+ * tests/RTCCM/Priority_Test/descriptors/test.dat:
+ * tests/RTCCM/Priority_Test/descriptors/test.rtd:
+ * tests/RTCCM/Priority_Test/descriptors/basic-remote.cad:
+ * tests/RTCCM/Priority_Test/descriptors/basic_remote.pl:
+ * tests/RTCCM/Priority_Test/descriptors/basic_rt.rtd:
+ * tests/RTCCM/Priority_Test/descriptors/basic_test.pl:
+ * tests/RTCCM/Priority_Test/descriptors/bench.conf:
+ * tests/RTCCM/Priority_Test/descriptors/Controller25.csd:
+ * tests/RTCCM/Priority_Test/descriptors/Controller50.csd:
+ * tests/RTCCM/Priority_Test/descriptors/Controller75.csd:
+ * tests/RTCCM/Priority_Test/descriptors/demo-25.cad:
+ * tests/RTCCM/Priority_Test/descriptors/demo-50.cad:
+ * tests/RTCCM/Priority_Test/descriptors/demo.cad:
+ * tests/RTCCM/Priority_Test/descriptors/no-rt-3rates.cad:
+ * tests/RTCCM/Priority_Test/descriptors/rate_test.pl:
+ * tests/RTCCM/Priority_Test/descriptors/remote.dat:
+ * tests/RTCCM/Priority_Test/descriptors/rt-3rate-rt-high-dec.cad:
+ * tests/RTCCM/Priority_Test/descriptors/rt-3rate-rt-high-inc.cad:
+ * tests/RTCCM/Priority_Test/descriptors/rt-3rate-rt-low-dec.cad:
+ * tests/RTCCM/Priority_Test/descriptors/rt-3rate-rt-low-inc.cad:
+ * tests/RTCCM/Priority_Test/descriptors/rt-3rate-rt-mid-dec.cad:
+ * tests/RTCCM/Priority_Test/descriptors/rt-3rate-rt-mid-inc.cad:
+ * tests/RTCCM/Priority_Test/descriptors/rt-3rates-dec.cad:
+ * tests/RTCCM/Priority_Test/descriptors/rt-3rates-inc.cad:
+ * tests/RTCCM/Priority_Test/descriptors/rt-3rates-laned-dec.cad:
+ * tests/RTCCM/Priority_Test/descriptors/rt-3rates-laned-inc.cad:
+ * tests/RTCCM/Priority_Test/descriptors/shared_rt.rtd:
+
+ New files for running the test.
+
+ * tests/RTCCM/Priority_Test/Priority_Test.mpc:
+ * tests/RTCCM/Priority_Test/Workers/Worker.mpc:
+ * tests/RTCCM/Priority_Test/Controllers/Controller.mpc: Manually
+ changed the generated MPC files as the "depends" keyword is
+ depricated by "after" in MPC, and the dependencies is broken in
+ earlier changes in MPC generator scripts.
+
+ * tests/RTCCM/Priority_Test/Priority_Test.idl: Changed the use of
+ "unsigned long" type to "long". CIDL compiler doesn't seem to
+ support unsigned long yet.
+
+ * tests/RTCCM/Priority_Test/Workers/Worker.idl: Fixed a typo.
+
+ * tests/RTCCM/Priority_Test/Workers/CB_Worker_exec.cpp:
+ * tests/RTCCM/Priority_Test/Workers/CB_Worker_exec.h:
+ * tests/RTCCM/Priority_Test/Workers/IOB_Worker_exec.cpp:
+ * tests/RTCCM/Priority_Test/Workers/IOB_Worker_exec.h: Fixed a
+ couple of compilation errors and changed some operation
+ signatures to match the interface change in Priority_Test.idl.
+
+ * tests/RTCCM/Priority_Test/Priority_Test.idl:
+ * tests/RTCCM/Priority_Test/Controllers/Controller.cidl:
+ * tests/RTCCM/Priority_Test/Controllers/Controller.idl:
+ * tests/RTCCM/Priority_Test/Controllers/Controller.mpc:
+ * tests/RTCCM/Priority_Test/Controllers/ControllerEI.idl:
+ * tests/RTCCM/Priority_Test/Controllers/Controller_exec.cpp:
+ * tests/RTCCM/Priority_Test/Controllers/Controller_exec.h:
+ * tests/RTCCM/Priority_Test/Controllers/Controller_exec_export.h:
+ * tests/RTCCM/Priority_Test/Controllers/Controller_stub_export.h:
+ * tests/RTCCM/Priority_Test/Controllers/Controller_svnt_export.h:
+ * tests/RTCCM/Priority_Test/Controllers/Pulser.cpp:
+ * tests/RTCCM/Priority_Test/Controllers/Pulser.h:
+ * tests/RTCCM/Priority_Test/Controllers/Rate_Controller.h:
+ * tests/RTCCM/Priority_Test/Controllers/Rate_Controller.cpp:
+ * tests/RTCCM/Priority_Test/Workers/CB_Worker_exec.cpp:
+ * tests/RTCCM/Priority_Test/Workers/CB_Worker_exec.h:
+ * tests/RTCCM/Priority_Test/Workers/IOB_Worker_exec.cpp:
+ * tests/RTCCM/Priority_Test/Workers/IOB_Worker_exec.h:
+ * tests/RTCCM/Priority_Test/Workers/README:
+ * tests/RTCCM/Priority_Test/Workers/Worker.cidl:
+ * tests/RTCCM/Priority_Test/Workers/Worker.idl:
+ * tests/RTCCM/Priority_Test/Workers/Worker.mpc:
+ * tests/RTCCM/Priority_Test/Workers/WorkerEI.idl:
+ * tests/RTCCM/Priority_Test/Workers/Worker_exec_export.h:
+ * tests/RTCCM/Priority_Test/Workers/Worker_stub_export.h:
+ * tests/RTCCM/Priority_Test/Workers/Worker_svnt_export.h:
+ * tests/RTCCM/Priority_Test/descriptors/CB_Worker.csd:
+ * tests/RTCCM/Priority_Test/descriptors/IOB_Worker.csd:
+ * tests/RTCCM/Priority_Test/descriptors/Worker.ssd:
+
+ New files for test Worker components.
+
+ * tests/RTCCM/Priority_Test/Priority_Test.idl:
+ * tests/RTCCM/Priority_Test/Priority_Test.mpc:
+ * tests/RTCCM/Priority_Test/Priority_Test_stub_export.h:
+ * tests/RTCCM/Priority_Test/Priority_Test_svnt_export.h:
+
+ Added files for RTCCM Priority_Test project.
+
+ * examples/OEP/BasicSP/BMClosedED/BMClosedED_exec.cpp:
+ * examples/OEP/BasicSP/BMDevice/BMDevice_exec.cpp:
+ * examples/OEP/BasicSP/BMDisplay/BMDisplay_exec.cpp:
+ * examples/OEP/BasicSP/EC/EC_exec.cpp:
+ * examples/OEP/BasicSP/EC/client.cpp:
+ * examples/OEP/BasicSP/EC/controller.cpp:
+ * examples/OEP/Display/GPS/GPS_exec.cpp:
+ * examples/OEP/Display/GPS/GPS_tracing_exec.cpp:
+ * examples/OEP/Display/NavDisplay/NavDisplay_exec.cpp:
+ * examples/OEP/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.cpp:
+ * examples/OEP/Display/RateGen/RateGen_exec.cpp:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip_exec.cpp:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec.cpp:
+ * performance-tests/Benchmark/RoundTripServer/LatencyTest.cpp:
+ * performance-tests/Benchmark/RoundTripServer/RoundTripServer.mpc:
+
+ Added CIAO::debug_level to facilitate conditional printing of
+ debug messages.
+
+ * performance-tests/Benchmark/RoundTripClient/run_test.pl:
+ * performance-tests/Benchmark/RoundTripClient/run_test_ior_cad.pl:
+
+ Setting CIAO_ROOT if not already set.
+
+ * tools/Assembly_Deployer/Assembly_Deployer.cpp:
+ * tools/Assembly_Deployer/Assembly_Impl.cpp:
+ * tools/Assembly_Deployer/Assembly_Impl.h:
+ * tools/Assembly_Deployer/Assembly_Impl.inl:
+ * tools/Assembly_Deployer/Assembly_Visitors.cpp:
+ * tools/RTComponentServer/ComponentServer_Task.cpp:
+ * tools/RTComponentServer/RTConfig_Manager.cpp:
+ * tools/ServerActivator/ServerActivator.cpp:
+ * tools/XML_Helpers/Assembly_Handlers.cpp:
+ * tools/XML_Helpers/RTConfig_Handlers.cpp:
+ * tools/XML_Helpers/Svcconf_Handler.cpp:
+
+ Minor changes including adding CIAO::debug_level.
+
+ * tools/ComponentServer/ComponentServer.cpp: Changes to run
+ component server in SCHED_FIFO class.
+
+ * tools/Daemon/CIAO_Daemon.cpp: Added command line processing for
+ extra command-line argument for component server process.
+
+ * tools/XML_Helpers/XMLHelpers.mpc: Added ciao_client to the base
+ project list so as to link in the CIAO::debug_level feature.
+
+Mon May 17 19:01:36 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/ExecutionManager/ExecutionManager_Impl.cpp:
+ * DnC/ExecutionManager/ExecutionManager_Impl.h:
+ * DnC/ExecutionManager/ExecutionManager_Impl.inl:
+ * DnC/NodeApplicationManager/CIAO_NodeApplicationManager.idl:
+ * DnC/NodeApplicationManager/NodeApplicationManager.cpp:
+ * DnC/NodeApplicationManager/NodeApplicationManager.mpc:
+ * DnC/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ * DnC/NodeApplicationManager/NodeApplicationManager_Impl.h:
+ * DnC/NodeApplicationManager/NodeApplicationManager_Impl.inl:
+ * DnC/NodeManager/NodeDaemon.idl:
+ * DnC/NodeManager/NodeDaemon.mpc:
+ * DnC/NodeManager/NodeDaemon_Impl.cpp:
+ * DnC/NodeManager/NodeDaemon_Impl.h:
+ * DnC/NodeManager/NodeDaemon_Impl.inl:
+ * DnC/NodeManager/Node_Daemon.cpp:
+ Added these files.
+
+ * DnC/Node/NodeApplicationManager_Impl.h
+ * DnC/Node/NodeApplication_Impl.h
+ Removed these files.
+
+Mon May 17 16:17:40 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Plan_Handler.cpp:
+ * DnC/Config_Handlers/Plan_Handler.h:
+
+ Updated the handler to handle updated IDREFs.
+
+Mon May 17 10:11:46 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Plan_Handler.h:
+ * DnC/Config_Handlers/Domain_Handler.h:
+
+ Replaced the use of a Synch_Mutex with that of a Null_Mutex as
+ there will not be multiple threads parsing the handler.
+
+Mon May 17 11:24:11 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DnC/Config_Handlers/Plan_Handler.h:
+ Fixed fuzz error
+
+Sun May 16 12:39:40 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/DnC_Dump.h:
+ * DnC/Config_Handlers/DnC_Dump.cpp:
+
+ Added dump functions to print out values encoded within a
+ CORBA::Any. Currently, this handles only basic types, support
+ for types encoded using CORBA::DnyAny needs to be incorporated.
+
+Sun May 16 01:17:44 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Deployment.idl:
+
+ Changed the data structures needed by the Execution
+ data model, to conform to the model given in the
+ specification
+
+ * DnC/Config_Handlers/Plan_Handler.cpp:
+ * DnC/Config_Handlers/Plan_Handler.h:
+ * DnC/Config_Handlers/Config_Handlers.mpc:
+ * DnC/Config_Handlers/Domain_Handler.cpp:
+
+ Added a new top level handler for the DeploymentPlan.
+
+ Since the IDL changed, i had to change 11 other handlers
+ and included them within the top level handler.
+
+ Updated the .mpc file accordingly.
+
+Fri May 14 20:53:37 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Deployment.idl:
+
+ Separated the data model definitions from the
+ management model definitions.
+
+Fri May 14 15:28:56 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Domain_Handler.cpp:
+ * DnC/Config_Handlers/Domain_Handler.h:
+ * DnC/tests/Config_Handlers/Domain_Handler_Test.cpp:
+
+ Updated Domain_Handler_Test.cpp to use the dump
+ functions within the DnC_Dump.cpp rather than the
+ functions from Domain_Handler.cpp.
+
+ Removed the unnecessary functions from the Domain_Handler.cpp.
+
+Fri May 14 15:13:17 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/DnC_Dump.cpp:
+ * DnC/Config_Handlers/DnC_Dump.h:
+
+ Added the dump functions for the Domain Handler.
+
+Fri May 14 12:17:55 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Requirement_Handler.cpp:
+ * DnC/Config_Handlers/Property_Handler.cpp:
+ * DnC/Config_Handlers/SP_Handler.cpp:
+ * DnC/Config_Handlers/RS_Handler.cpp:
+
+ Among, the common data type handlers, the aforementioned four
+ handlers need to handle elements that can be referenced via
+ <href> tags and <xmi:id> tags. In this commit, I have addressed
+ parsing <href> tags, next, more complicated step will be to
+ handle <xmi:id> tags.
+
+Thu May 13 22:56:22 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/DnC_Dump.cpp:
+
+ Filled in the dump_* functions that pertain to common
+ elements. Howerver, dumping data stored in a CORBA::Any would
+ not be possible unless we know what value is stored in the first
+ place! Hence, we may need to re think this approach for Anys.
+
+ * DnC/Requirement_Handler.cpp:
+
+ Updated the handler to process the <name> tag added to the
+ Deployment schema.
+
+Thu May 13 19:46:24 2004 Krishnakumar B <kitty@nospam.invalid.domain>
+
+ * DnC/Deployment.xsd: Reverted an accidental check-in that
+ introduced a bogus schema.
+
+Thu May 13 17:50:16 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/Deployment.xsd:
+
+ Added the name attribute for the Deployment:Requirement complex
+ type defined in the schema. This was present in the model but
+ not in the schema and necessitated this addition.
+
+Thu May 13 15:13:50 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/tests/Config_Handlers/Domain_Handler_Test.cpp:
+ * DnC/tests/Config_Handlers/Domain_Handler_Test.mpc:
+
+ Added the test to test the Domain Handler.
+
+Thu May 13 14:27:14 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/CompPortDesc_Handler.cpp:
+ * DnC/Config_Handlers/Config_Handlers.mpc:
+
+ Changed the library name from Config_Handers
+ to Config_Handlers in the .mpc file.
+
+ Included scop resolution operators for all
+ class member function definitions in the .cpp file.
+
+Thu May 13 13:10:35 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Domain_Handler.cpp:
+ * DnC/Config_Handlers/Domain_Handler.h:
+
+ Updated Domain_Handler to handle property and
+ satisfier property elements.
+
+Wed May 12 20:05:55 2004 Ossama Othman <ossama@dre.vanderbilt.edu>
+
+ * examples/handcrafted/BasicSP_EC/EC/client.cpp:
+
+ Corrected case of header file in #include directive.
+ "ace/Streams.h" -> "ace/streams.h". Blame it on MS Windows case
+ insenstivity. :-)
+
+Wed May 12 15:52:29 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Utils.h:
+ * DnC/Config_Handlers/Utils.cpp:
+
+ Added two utility methods create_document () and parse_href_tag
+ () that will allow creation of an iterator pointing to top of
+ the document as specified in the <href = "..."> tag. Now all
+ handlers that need to handle <href> definitions can make use of
+ this utility.
+
+Wed May 12 15:08:14 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/Hello/Hello_Base/Hello_Base.mpc:
+
+ Copied export macro settings from stub project to servant
+ project. The servant project had only one export macro
+ defined for both *C.h and *S.h files, and so was
+ clobbering the stub export macro already generated.
+
+Wed May 12 14:25:00 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Domain_Handler.cpp:
+ * DnC/Config_Handlers/Domain_Handler.h:
+
+ Added some more general functions.
+
+Wed May 12 13:51:37 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Domain_Handler.cpp:
+ * DnC/Config_Handlers/Domain_Handler.h:
+
+ Added some general functions which other handlers could
+ use.
+
+Wed May 12 12:59:21 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Domain_Handler.cpp:
+ * DnC/Config_Handlers/Domain_Handler.h:
+
+ Added dump functions for the structures.
+
+Wed May 12 12:44:40 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Domain_Handler.cpp:
+ * DnC/Config_Handlers/Domain_Handler.h:
+
+ Made changes to handle HREF tags within
+ another referenced document.
+
+Wed May 12 00:06:26 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Domain_Handler.cpp:
+ * DnC/Config_Handlers/Domain_Handler.h:
+
+ Made changes to handle HREF tags.
+
+Tue May 11 22:58:35 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Changes to support multiplex uses ports in components.
+ Thanks to Bala Natarajan <bala@dre.vanderbilt.edu> for
+ writing the hand-crafted version of the servant glue
+ code.
+
+Tue May 11 22:55:22 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/OEP/BasicSP/BasicSP.mpc:
+
+ Fixed IDL compiler command line options so the stub and
+ skeleton export macros will get generated correctly regardless
+ of the order of execution of the stub and skeleton project
+ generation.
+
+Tue May 11 16:12:07 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/DT_Handler.h:
+ * DnC/Config_Handlers/DT_Handler.cpp:
+
+ Added CORBA::TypeCode::duplicate for basic type codes as the
+ individual handlers and IDL structures will be releasing the
+ typecodes generated.
+
+ * DnC/Config_Handlers/Any_Handler.h:
+ * DnC/Config_Handlers/Any_Handlers.cpp:
+
+ Insted of requiring that each top level handler pass an ORB
+ reference to the Any handler, now the Any handler calls ORB init
+ There is not additional overhead other than the call as the same
+ ORB reference is returned each time from the ORB table
+
+ * DnC/Config_Handlers/Config_Handlers.mpc:
+
+ Added targets Any_Handler.cpp and DT_Handler.cpp
+
+Tue May 11 12:51:14 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Domain_Handler.h:
+ * DnC/Config_Handlers/Domain_Handler.cpp:
+
+ Changed the interface of the functions process_domain_node
+ and process_domain_bridge.
+
+Tue May 11 12:25:39 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CIDLC/ExecutorMappingGenerator.cpp:
+
+ Fixed bug in home operation emitter.
+
+Tue May 11 11:17:25 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Any_Handler.h:
+ * DnC/Config_Handlers/Any_Handler.cpp:
+
+ Any handler that processes schema definitions of the type <any>
+ ... </any>. Currently, this handler supports only built-in
+ types. Issues pertaining to specifying properties in IDL (typed)
+ v/s specifying them in schema (dynamic) as an Any are being
+ examined
+
+Tue May 11 10:45:55 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/CCF/IDL3/LexicalAnalyzer.cpp:
+ * CCF/CCF/IDL3/Parser.cpp:
+ * CCF/CCF/IDL3/Parser.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Uses.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Uses.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Uses.hpp:
+ * CCF/CCF/IDL3/SemanticGraph/Component.cpp:
+ * CCF/CCF/IDL3/SemanticGraph/Component.hpp:
+ * CCF/CCF/IDL3/Traversal/Component.hpp:
+ * CIDLC/ExecutorMappingGenerator.cpp:
+
+ Support for uses multiple.
+
+Tue May 11 01:47:27 2004 Krishnakumar B <kitty@nospam.invalid.domain>
+
+ * DnC/Config_Handlers/XercesString.cpp (Config_Handler): When
+ changing the function used to compare strings from
+ XMLString::equals() to XMLString::compareIString(), a check on
+ the return value equal to zero is needed to ensure similar
+ semantics.
+
+Tue May 11 00:18:58 2004 Krishnakumar B <kitty@nospam.invalid.domain>
+
+ * DnC/Config_Handlers/XercesString.cpp (Config_Handler): Changed
+ the comparison function to use case-insensitive comparison, as
+ case doesn't make sense while comparing XML strings.
+
+Mon May 10 23:35:25 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/tests/Config_Handlers/Domain_Handler_Test.cpp:
+
+ Added a new test to test the Domain Handler, which
+ parses the D&C specification's DomainDescriptor.
+
+Mon May 10 22:40:37 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/DnC_Dump.cpp:
+ * Dnc/Config_Handlers/DnC_Dump.h:
+ * DnC/Config_Handlers/Config_Handlers.mpc:
+
+ I moved DnC_Dump.{h,cpp} from DnC/ to
+ DnC/Config_Handlers
+
+Mon May 10 19:04:57 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/DT_Handler.h:
+ * DnC/Config_Handlers/DT_Handlers.cpp:
+
+ Type code operations especially creation of dynamic typecodes
+ require operations defined in the ORB interface. Hence, instead
+ of calling ORB::init within this common handlers, changed the
+ interface of the process_DataType method to require a
+ CORBA::ORB_ptr. Also modularized the creation of typecodes into
+ process_basic_tc, process_enum_tc etc depending on the *type* of
+ typecode to be created
+
+ * DnC/Config_Handlers/Utils.h:
+ * DnC/Config_Handlers/Utils.cpp:
+
+ Added helper methods that allow coversion to CORBA::* types from
+ string values. These helper methods will be used by the Any
+ handler to insert the required values into a CORBA::Any object
+ dynamically.
+
+Mon May 10 18:56:11 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Domain_Handler.h:
+ * DnC/Config_Handlers/Domain_Handler.cpp:
+
+ Made changes to handle the "Property" elements.
+
+Mon May 10 18:21:34 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/DT_Handler.h:
+ * DnC/Config_Handlers/DT_Handler.cpp:
+ Data_Type handler class that parses the <type> .. </type> tags
+ in the Deployment schema.
+
+Mon May 10 13:42:04 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Domain_Handler.cpp:
+ Removed the trailing #endif as the corresponding #ifndef was
+ removed earlier.
+
+Sun May 9 19:28:56 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Domain_Handler.cpp:
+
+ Made some changes to the dump function to print the
+ contents of the data structure.
+
+Sun May 9 17:32:11 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/ACD_Handler.cpp:
+ * DnC/Config_Handlers/ADD_Handler.cpp:
+ * DnC/Config_Handlers/APM_Handler.cpp:
+ * DnC/Config_Handlers/CAD_Handler.cpp:
+ * DnC/Config_Handlers/Cap_Handler.cpp:
+ * DnC/Config_Handlers/CEPE_Handler.cpp:
+ * DnC/Config_Handlers/CompImplDes_Handler.cpp:
+ * DnC/Config_Handlers/CompIntrDesc_Handler.cpp:
+ * DnC/Config_Handlers/CompPkgDesc_Handler.cpp:
+ * DnC/Config_Handlers/CompPortDesc_Handler.cpp:
+ * DnC/Config_Handlers/Config_Error_Handler.cpp:
+ * DnC/Config_Handlers/CPR_Handler.cpp:
+ * DnC/Config_Handlers/CRDD_Handler.cpp:
+ * DnC/Config_Handlers/Domain_Handler.cpp:
+ * DnC/Config_Handlers/DP_Handler.cpp:
+ * DnC/Config_Handlers/ERE_Handler.cpp:
+ * DnC/Config_Handlers/IAD_Handler.cpp:
+ * DnC/Config_Handlers/IDD_Handler.cpp:
+ * DnC/Config_Handlers/ID_Handler.cpp:
+ * DnC/Config_Handlers/IRDD_Handler.cpp:
+ * DnC/Config_Handlers/IR_Handler.cpp:
+ * DnC/Config_Handlers/MDD_Handler.cpp:
+ * DnC/Config_Handlers/MID_Handler.cpp:
+ * DnC/Config_Handlers/NIA_Handler.cpp:
+ * DnC/Config_Handlers/PCD_Handler.cpp:
+ * DnC/Config_Handlers/PC_Handler.cpp:
+ * DnC/Config_Handlers/PCI_Handler.cpp:
+ * DnC/Config_Handlers/PPM_Handler.cpp:
+ * DnC/Config_Handlers/Property_Handler.cpp:
+ * DnC/Config_Handlers/PSPE_Handler.cpp:
+ * DnC/Config_Handlers/PSPR_Handler.cpp:
+ * DnC/Config_Handlers/RDD_Handler.cpp:
+ * DnC/Config_Handlers/Requirement_Handler.cpp:
+ * DnC/Config_Handlers/RS_Handler.cpp:
+ * DnC/Config_Handlers/SID_Handler.cpp:
+ * DnC/Config_Handlers/SPE_Handler.cpp:
+ * DnC/Config_Handlers/SP_Handler.cpp:
+ * DnC/Config_Handlers/SPK_Handler.cpp:
+ * DnC/Config_Handlers/SPR_Handler.cpp:
+ Removed all #ifndef definitions that hide multiple includes from
+ the .cpp files. These implementations being non-templatized will
+ not be included in any header files. Hence the guard for
+ multiple inclusions should not be present in them similar to
+ other .cpp files in TAO.
+
+Sun May 9 14:07:10 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Deployment.idl:
+ * DnC/Config_Handlers/Domain_Handler.cpp:
+ * DnC/Config_Handlers/Domain_Handler.h:
+
+ Made changes to the IDL and supported the same in my
+ XML handlers.
+
+Sun May 9 13:06:48 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/Deployment.mpc:
+ * DnC/Config_Handlers/Config_Handlers.mpc:
+ Added requries += dnc to avoid unintentional build of DnC
+ directory.
+
+Sun May 9 09:08:06 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * examples/OEP/BasicSP/BMClosedED/BMClosedED_exec.cpp:
+ * examples/OEP/BasicSP/BMClosedED/BMClosedED_exec.h:
+ * examples/OEP/BasicSP/BMDevice/BMDevice_exec.cpp:
+ * examples/OEP/BasicSP/BMDevice/BMDevice_exec.h:
+ * examples/OEP/BasicSP/BMDisplay/BMDisplay_exec.cpp:
+ * examples/OEP/BasicSP/BMDisplay/BMDisplay_exec.h:
+ * examples/OEP/BasicSP/EC/EC_exec.cpp:
+ * examples/OEP/BasicSP/EC/EC_exec.h:
+ * examples/OEP/Display/GPS/GPS_exec.cpp:
+ * examples/OEP/Display/GPS/GPS_exec.h:
+ * examples/OEP/Display/GPS/GPS_tracing_exec.cpp:
+ * examples/OEP/Display/GPS/GPS_tracing_exec.h:
+ * examples/OEP/Display/NavDisplay/NavDisplay_exec.cpp:
+ * examples/OEP/Display/NavDisplay/NavDisplay_exec.h:
+ * examples/OEP/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.cpp:
+ * examples/OEP/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.h:
+ * examples/OEP/Display/RateGen/RateGen_exec.cpp:
+ * examples/OEP/Display/RateGen/RateGen_exec.h:
+
+ More fixes to the executors.
+
+Sun May 9 07:46:35 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * ciao/CCM_Component.idl:
+ * ciao/CCM_Container.idl:
+
+ Added CIAO specific operations ciao_practivate () and
+ ciao_postactivate () which would allow the deployment
+ infrastructure to invoke them before and after ccm_activate
+ (). There are more elegant methods to do this, but for want of
+ time we will just stick to this. We can revisit this later if
+ needed. There is a need for such things in some projects that we
+ are working on to initialize a few things upfront and tear them
+ later. The downside of this is that the executors need to
+ implement ciao_preactivate () and ciao_postactivate (). I think
+ there is a good idea to avoid that. We will visit that soon.
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Added code generation for ciao_preactivate () and
+ ciao_postactivate ().
+
+ * tools/Assembly_Deployer/Assembly_Impl.cpp:
+
+ Cosmetic fix.
+
+ * tools/Assembly_Deployer/Assembly_Visitors.h:
+
+ Added a typedef for the iterator in the CIAO::Assembly_Context
+ struct.
+
+ * tools/Assembly_Deployer/Assembly_Visitors.cpp:
+
+ Iterate over the CCMObject references and call preactivate,
+ activate and postactivate on all of them one after another.
+
+ * examples/Hello/Receiver/Receiver_exec.cpp:
+ * examples/Hello/Receiver/Receiver_exec.h:
+ * examples/Hello/Sender/Sender_exec.cpp:
+ * examples/Hello/Sender/Sender_exec.h:
+
+ Added the preactivate and postactivate calls.
+
+Sat May 8 15:19:18 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/ACD_Handler.cpp:
+ * DnC/Config_Handlers/ADD_Handler.cpp:
+ * DnC/Config_Handlers/APM_Handler.cpp:
+ * DnC/Config_Handlers/CAD_Handler.cpp:
+ * DnC/Config_Handlers/CPR_Handler.cpp:
+ * DnC/Config_Handlers/CRDD_Handler.cpp:
+ * DnC/Config_Handlers/CompImplDesc_Handler.cpp:
+ * DnC/Config_Handlers/CompPkgDesc_Handler.cpp:
+ * DnC/Config_Handlers/CompPortDesc_Handler.cpp:
+ * DnC/Config_Handlers/Config_Handlers.mpc:
+ * DnC/Config_Handlers/DP_Handler.cpp:
+ * DnC/Config_Handlers/Domain_Handler.cpp:
+ * DnC/Config_Handlers/Domain_Handler.h:
+ * DnC/Config_Handlers/IDD_Handler.cpp:
+ * DnC/Config_Handlers/IRDD_Handler.cpp:
+ * DnC/Config_Handlers/MDD_Handler.cpp:
+ * DnC/Config_Handlers/MID_Handler.cpp:
+ * DnC/Config_Handlers/PCD_Handler.cpp:
+ * DnC/Config_Handlers/PCI_Handler.cpp:
+ * DnC/Config_Handlers/PC_Handler.cpp:
+ * DnC/Config_Handlers/PPM_Handler.cpp:
+ * DnC/Config_Handlers/PSPE_Handler.cpp:
+ * DnC/Config_Handlers/PSPR_Handler.cpp:
+ * DnC/Config_Handlers/RDD_Handler.cpp:
+ * DnC/Config_Handlers/SID_Handler.cpp:
+ * DnC/Config_Handlers/SPE_Handler.cpp:
+ * DnC/Config_Handlers/SPR_Handler.cpp:
+
+ Removed unnecessary declaration of ACE_DECLARE_NEW_CORBA_ENV
+
+Sat May 8 14:53:33 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Domain.cpp:
+
+ Added a sample "main" program to test the Domain_Handler
+ wrriten to parse the DomainDescriptor.
+
+Sat May 8 14:50:26 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Deployment.idl:
+
+ Added a missing structure member infoProperty
+ to the structure Domain.
+
+Fri May 7 20:38:15 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ A fix for generated code for inherited home factory operations.
+ It makes use of the fact that a derived home must manage a
+ component that is derived from the component its base home
+ manages. This means that the corresponding executor classes
+ have the same inheritance relationships. When a call is
+ made to a base home factory operation on a derived home,
+ the derived home's managed component will be returned as
+ a base component reference. Operations called on this
+ component will end up in the derived component executor
+ (the user must implement the inherited operations, although
+ the implementation may be different than that in the
+ base component executor).
+
+Fri May 7 17:19:02 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Filled in some missing items in generation of facet, component
+ and home servant classes, and of component context classes.
+ These missing items included some cases of code generation for
+ things inherited from the base home or the base component, such
+ as regular operations, attribute operations, port operations,
+ and home factory operations, as well as operations and attributes
+ of supported interfaces and their ancestors. Note that there
+ is still a problem with compiling home factory operations
+ inherited from a base home, but this problem will be fixed
+ with the upcoming refactoring of the CIAO-specific
+ _ciao_activate_component() and _ciao_passivate_component()
+ methods in the home servant class. This fix closes [BUGID:1800].
+
+Fri May 7 14:46:54 2004 Ossama Othman <ossama@dre.vanderbilt.edu>
+
+ * GNUmakefile:
+
+ Removed this GNUmakefile. It must now be generated by MPC.
+
+Fri May 7 13:17:10 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/ConFig_Handlers/Domain_Handler.cpp:
+ * DnC/Config_Handlers/Domain_Handler.h:
+ * DnC/Config_Handlers/Resource_Handler.cpp:
+ * DnC/Config_Handlers/SR_Handler.cpp:
+
+ Updated the handlers to handler href, xmi:id cases.
+
+Fri May 7 12:53:34 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * CCF/CCF/CIDL/CIDL.mpc:
+ * CCF/CCF/CodeGenerationKit/CodeGenerationKit.mpc:
+ * CCF/CCF/CompilerElements/CompilerElements.mpc:
+ * CCF/CCF/IDL2/IDL2.mpc:
+ * CCF/CCF/IDL3/IDL3.mpc:
+ Fixed a bug for using MPC to build CCF.
+
+Fri May 7 12:44:42 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/RS_Handler.cpp:
+
+ Modified the handler to parse out of order schema
+ definitions. Now parsing is independent of the appearance of the
+ schema elements as it should be.
+
+Thu May 6 16:20:00 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/SP_Handler.cpp:
+
+ Added functionality to parse the schema definitions when the
+ individual elements appear in no specific order.
+
+Mon May 3 23:04:13 2004 Ossama Othman <ossama@dre.vanderbilt.edu>
+
+ * CIAO-INSTALL.html:
+
+ Corrected typo.
+
+Mon May 3 23:17:31 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Deployment.idl:
+
+ Changed the datatype from ULongSeq to StringSeq
+ in the following structures:
+
+ SharedResource, Node, Interconnect and Bridge.
+
+Mon May 3 22:44:09 2004 George Edwards <g.edwards@vanderbilt.edu>
+
+ * DnC/Deployment.idl:
+
+ Fixed ComponentPortDescription struct to comply with new spec.
+
+ * DnC/Deployment.mpc:
+
+ Added DnC_Dump.cpp to Deployment_stub project.
+
+ * DnC/DnC_Dump.h:
+ * DnC/DnC_Dump.cpp:
+
+ Added dump functions for PackageConfiguration,
+ ComponentPackageDescription, PackagedComponentImplementation,
+ ComponentPortDescription, and ComponentPropertyDescription.
+
+Mon May 3 00:00:00 2004 Ossama Othman <ossama@dre.vanderbilt.edu>
+
+ * Makefile*:
+
+ Removed all Makefiles. GNUmakefiles must now be generated by
+ MPC.
+
+Sat May 1 22:37:33 2004 Ossama Othman <ossama@dre.vanderbilt.edu>
+
+ * Makefile:
+ * GNUmakefile:
+
+ Renamed "Makefile" to "GNUmakefile" to make it obvious to
+ users that GNU Make is required to parse the file.
+
+Fri Apr 30 17:46:09 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CIDLC/ExecutorMappingGenerator.cpp:
+
+ Implemented supporting of forward declared interfaces.
+ Also some minor tweaking for Intel C++.
+
+Fri Apr 30 13:08:04 2004 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DnC/DnC_Dump.h:
+ * DnC/DnC_Dump.cpp:
+
+ Added these two new files. These two files created a
+ DnC_Dump class which is used to print out the contents
+ of various IDL data structures.
+
+Thu Apr 29 22:56:04 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Deployment.idl:
+
+ Rolled back some changes made on the TargetDataModel
+ structures.
+
+Thu Apr 29 22:34:41 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Deployment.idl:
+
+ Changed all the structures in the TargetData Model
+ to match what is given in the spec.
+
+Thu Apr 29 22:26:05 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Deployment.idl:
+
+ Made a change in the structure Domain
+ to add a new field info_property
+ which is of the type Properties.
+
+Thu Apr 29 18:46:51 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Config_Error_Handler.h:
+ * DnC/Config_Handlers/Config_Error_Handler.cpp:
+
+ Generic Error Handler class for the main functions
+ which we will be writing to dump out the IDL
+ data structures populated by the XML handlers.
+
+Thu Apr 29 18:09:41 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Deployment.xsd:
+
+ Fixed a type "xsl" tp "xsd"
+
+Thu Apr 29 17:47:04 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Deployment.xsd:
+ * DnC/XMI.xsd:
+
+ Updated the schemaLocation attribute within the
+ Deployment.xsd schema and
+ added the appropriate XMI.xsd file.
+
+Thu Apr 29 06:13:23 2004 Aniruddha Gokhale <a.gokhale@vanderbilt.edu>
+
+ * DnC/Deployment.idl:
+ struct ComponentImplementationDescription: Added new field called
+ infoProperty of type Properties (Issue 5967).
+
+ struct ImplementationRequirement: added a new struct (Issue 6392)
+
+ * Dnc/ConfigHandlers/CompImplDesc_Handler.cpp:
+ Fixed compilation errors due to incorrect naming usage of a typedef.
+
+Mon Apr 26 23:40:27 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * ciao/Cookies.cpp:
+ * ciao/Cookies.h:
+ * ciao/Cookies.inl:
+
+ Subtle changes to improve interoperability.
+
+ Problem: We, for some unknown reason, created a proprietary
+ cookie called CIAO::Map_Key_Cookie (which inherited from an IDL
+ type CIAO::Cookie) and used that as a concrete implementation of
+ Components::Cookie.
+
+ Context: Though this would work, this breaks interoperability
+ when the Cookies are send on the wire. The remote target tries
+ to unmarshal the CIAO::Cookie valuetype as a Component::Cookie
+ which fails miserably.
+
+ Solution: Deprecate this proprietary IDL type CIAO::Cookie and
+ make Map_Key_Cookie inherit directly from Component::Cookie.
+
+ Made some changes to the interface to return a bool instead of
+ an int.
+
+ * ciao/CIAO_Value.idl:
+
+ Added note for deprecation.
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ The call to Map_Key_Cookie::extract () should check for a false
+ instead of -1.
+
+ * tools/Assembly_Deployer/Assembly_Impl.cpp:
+
+ The call to Map_Key_Cookie::extract () should check for a false
+ instead of -1.
+
+ Thanks to Ed Mulholland and Jacques Kerner for reporting the
+ problem.
+
+Mon Apr 26 17:35:29 2004 George Edwards <g.edwards@vanderbilt.edu>
+
+ * DnC/Config_Handlers/CompPkgDesc_Handler.cpp:
+
+ Made changes to fix compilation errors.
+
+Mon Apr 26 12:19:56 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/IC_Handler.cpp:
+
+ Made changes to fix some compiler issues.
+
+Mon Apr 26 12:13:36 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Bridge_Handler.h:
+ * DnC/Config_Handlers/Bridge_Handler.h:
+ * DnC/Config_Handlers/IC_Handler.cpp:
+ * DnC/Config_Handlers/IC_Handler.h:
+ * DnC/Config_Handlers/Node_Handler.h:
+ * DnC/Config_Handlers/Node_Handler.cpp:
+ * DnC/Config_Handlers/Resource_Handler.cpp:
+ * DnC/Config_Handlers/Resource_Handler.h:
+ * DnC/Config_Handlers/SR_Handler.h:
+ * DnC/Config_Handlers/SR_Handler.cpp:
+ * DnC/Config_Handlers/Domain_Handler.cpp:
+
+ Made changes to fix some compiler issues.
+
+Mon Apr 26 11:50:48 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Bridge_Handler.h:
+ * DnC/Config_Handlers/Bridge_Handler.cpp:
+ * DnC/Config_Handlers/Domain_Handler.cpp:
+ * DnC/Config_Handlers/IC_Handler.cpp:
+ * DnC/Config_Handlers/IC_Handler.h:
+ * DnC/Config_Handlers/Node_Handler.h:
+ * DnC/Config_Handlers/Resource_Handler.cpp:
+ * DnC/Config_Handlers/Resource_Handler.h:
+ * DnC/Config_Handlers/SR_Handler.h:
+
+ Made changes to fix some compiler issues.
+
+Mon Apr 26 08:57:37 2004 Aniruddha Gokhale <a.gokhale@vanderbilt.edu>
+
+ * DnC/Config_Handlers/Config_Handlers.mpc:
+ Added Cap_Handler.cpp
+ Added CompIntrDesc_Handler.cpp
+ Added CompPortDesc_Handler.cpp
+ Added IAD_Handler.cpp
+ Added IR_Handler.cpp
+ Added NIA_Handler.cpp
+
+ * DnC/Config_handlers/SR_Handler.cpp:
+ Included SP_Handler.h
+ Fixed undefined variables and conversion from string to long
+
+ * DnC/Config_handlers/Node_Handler.cpp:
+ Fixed errors arising out of using same name for variables of
+ different types in the same scope (one defined in the parameter
+ and another as a loop variable).
+
+ Fixed errors in type coversion.
+
+ * DnC/Config_handlers/Resource_Handler.cpp:
+ Fixed errors in type coversion.
+
+ * DnC/Config_handlers/MID_Handler.cpp:
+ Fixed an error due to incorrect number of parameters
+
+ * DnC/Config_handlers/DP_Handler.cpp:
+ Fixed an error due to incorrect number of parameters and
+ incorrect file name inclusion.
+
+
+Mon Apr 26 14:04:32 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/CCM_Core.mpc:
+ CIAO_Server must link with CIAO_Container. Not doing so causes link
+ errors with Borland.
+
+Mon Apr 26 09:33:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DnC/Config_Handlers/Config_Handlers.mpc:
+ Removed not needed / after $(CIAO_ROOT)/DnC in includes. This gave
+ problems with Borland
+
+Sun Apr 25 07:42:06 2004 Aniruddha Gokhale <a.gokhale@vanderbilt.edu>
+
+ * DnC/Config_Handlers/Config_Handlers.mpc:
+ Added Bridge_Handler.cpp
+ Added Domain_Handler.cpp
+ Added IC_Handler.cpp
+ Added Node_Handler.cpp
+ Added Resource_Handler.cpp
+ Added SR_Handler.cpp
+
+
+Sat Apr 24 23:43:13 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Bridge_Handler.cpp:
+ * DnC/Config_Handlers/Bridge_Handler.h:
+ * DnC/Config_Handlers/Domain_Handler.h:
+ * DnC/Config_Handlers/Domain_Handler.cpp:
+ * DnC/Config_Handlers/IC_Handler.h:
+ * DnC/Config_Handlers/IC_Handler.cpp:
+ * DnC/Config_Handlers/Node_Handler.h:
+ * DnC/Config_Handlers/Node_Handler.cpp:
+ * DnC/Config_Handlers/Resource_Handler.h:
+ * DnC/Config_Handlers/Resource_Handler.cpp:
+ * DnC/Config_Handlers/SR_Handler.h:
+ * DnC/Config_Handlers/SR_Handler.cpp:
+
+ Added the following handlers belonging to the
+ Target Data Model.
+
+Sat Apr 24 23:13:56 2004 Aniruddha Gokhale <a.gokhale@vanderbilt.edu>
+
+ * DnC/Deployment.idl:
+ struct ComponentPackageReference: Added two new fields called
+ requiredUUID and requiredName of type string (Issue 6047).
+
+ * DnC/Config_Handler/SPE_Handler.h:
+ * DnC/Config_Handler/SPE_Handler.cpp:
+ * DnC/Config_Handler/ACD_Handler.h:
+ * DnC/Config_Handler/ACD_Handler.cpp:
+ * DnC/Config_Handler/APM_Handler.h:
+ * DnC/Config_Handler/APM_Handler.cpp:
+ * DnC/Config_Handler/MID_Handler.h:
+ * DnC/Config_Handler/MID_Handler.cpp:
+ Enclosed these into the CIAO namespace
+
+ Removed needless copies by having the parent (caller) provide
+ the memory for the child (callee) to populate it.
+
+ Other cosmetic changes, fixing typos.
+
+ * DnC/Config_Handler/PC_Handler.cpp:
+ * DnC/Config_Handler/PCI_Handler.cpp:
+ Fixed undefined variables.
+
+ * DnC/Config_Handler/CAD_Handler.h:
+ * DnC/Config_Handler/CAD_Handler.cpp:
+ XML handlers for the ComponentAssemblyDescription artifact of
+ the Component Data Model.
+
+ * DnC/Config_Handler/SID_Handler.h:
+ * DnC/Config_Handler/SID_Handler.cpp:
+ XML handlers for the ComponentPackageReference artifact of
+ the Component Data Model.
+
+ * DnC/Config_Handler/CPR_Handler.h:
+ * DnC/Config_Handler/CPR_Handler.cpp:
+ XML handlers for the ComponentPackageReference artifact of
+ the Component Data Model.
+
+ * DnC/Config_Handler/SPR_Handler.h:
+ * DnC/Config_Handler/SPR_Handler.cpp:
+ XML handlers for the SubcomponentPropertyReference artifact of
+ the Component Data Model.
+
+ * DnC/Config_Handler/CompImplDesc_Handler.h:
+ * DnC/Config_Handler/CompImplDesc_Handler.cpp:
+ XML handlers for the ComponentImplementationDescription artifact of
+ the Component Data Model.
+
+ * DnC/Config_Handler/DP_Handler.cpp:
+ Renamed included file CID_Handler.h to CompIntfDesc_Handler.h
+ since there was a name clash.
+
+ * DnC/Config_Handler/Config_Handlers.mpc:
+ Fixed the CONFIG_HANDLER_BUILD_DLL typo
+ Added ACD_Handler.cpp
+ Added APM_Handler.cpp
+ Added CAD_Handler.cpp
+ Added MID_Handler.cpp
+ Added SPE_Handler.cpp
+ Added CompImplDesc_Handler.cpp
+ Added CompPkgDesc_Handler.cpp
+ Added PC_Handler.cpp
+ Added PCI_Handler.cpp
+ Added SID_Handler.cpp
+ Added CPR_Handler.cpp
+ Added SPR_Handler.cpp
+ Reincluded DP_Handler.cpp
+
+Sat Apr 24 22:25:55 2004 George Edwards <g.edwards@vanderbilt.edu>
+
+ Added files:
+ * DnC/Config_Handlers/PCI_Handler.h:
+ * DnC/Config_Handlers/PCI_Handler.cpp:
+
+ Added new handlers for PackagedComponentImplementation.
+
+Sat Apr 24 21:22:48 2004 George Edwards <g.edwards@vanderbilt.edu>
+
+ Added files:
+ * DnC/Config_Handlers/PC_Handler.h:
+ * DnC/Config_Handlers/PC_Handler.cpp:
+ * DnC/Config_Handlers/CompPkgDesc_Handler.h:
+ * DnC/Config_Handlers/CompPkgDesc_Handler.cpp:
+
+ Added new handlers for PackageConfiguration and
+ ComponentPackageDescription.
+
+Sat Apr 24 16:02:03 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DnC/Config_Handler/Domain_Handler.h:
+
+ Added a header file for the new handler about to
+ be written.
+
+ This handler will parse the "Domain" type
+ defined in the Deployment.xsd schema of the
+ DnC specification.
+
+Sat Apr 24 10:46:14 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/Config_Handler/PCD_Handler.cpp:
+ * DnC/Config_Handler/ERE_Handler.h:
+ * DnC/Config_Handler/ERE_Handler.cpp:
+
+ Missed out on these handlers in my earlier commit. Made the same
+ changes as listed earlier for these handlers as well
+
+Fri Apr 23 19:45:53 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/Config_Handler/ADD_Handler.cpp:
+ * DnC/Config_Handler/DP_Handler.cpp:
+ * DnC/Config_Handler/CRDD_Handler.cpp:
+ * DnC/Config_Handler/IDD_Handler.cpp:
+ * DnC/Config_Handler/IRDD_Handler.cpp:
+ * DnC/Config_Handler/MDD_Handler.cpp:
+ * DnC/Config_Handler/RDD_Handler.cpp:
+ * DnC/Config_Handler/PCD_Handler.cpp:
+ * DnC/Config_Handler/DP_Handler.cpp:
+
+ Eliminated the additional copy incurred when sequences are
+ populated by de-referencing pointer to sequence return
+ type. This fixes Andy's comments in the files that unearthed
+ this problem. Please grep for Arvind: comments to see how the
+ problem has been fixed
+
+ * DnC/Config_Handler/Config_Handlers.mpc:
+
+ Commented out DP_Handler.cpp from the list of files to be
+ compiled as it requires CID.h file that is not yet written! This
+ ensures that the Handlers build.
+
+ * DnC/Config_Handler/Any_Handler.h:
+ * DnC/Config_Handler/CEPE_Handler.h:
+ * DnC/Config_Handler/ID_Handler.h:
+ * DnC/Config_Handler/Property_Handler.h:
+ * DnC/Config_Handler/RS_Handler.h:
+ * DnC/Config_Handler/SP_Handler.h:
+ * DnC/Config_Handler/SPK_Handler.h:
+ * DnC/Config_Handler/Requirement_Handler.h:
+
+ Changed the interfaces of each process_<handlerName> methods to
+ take a reference to the required return type rather than return
+ a pointer to the allocated return value. This change was
+ necessary to accommodate the use-cases defined in top level
+ handlers.
+
+ * DnC/Config_Handler/Any_Handler.cpp:
+ * DnC/Config_Handler/CEPE_Handler.cpp:
+ * DnC/Config_Handler/ID_Handler.cpp:
+ * DnC/Config_Handler/Property_Handler.cpp:
+ * DnC/Config_Handler/RS_Handler.cpp:
+ * DnC/Config_Handler/SP_Handler.cpp:
+ * DnC/Config_Handler/SPK_Handler.cpp:
+ * DnC/Config_Handler/Requirement_Handler.cpp:
+
+ Removed all memory allocation for the return types within the
+ Common element handler implementations. In the current use case,
+ all the return types are passed in as references. Therefore, it
+ is now the responsibility of the caller to allocate memory for
+ the corresponding data-types.
+
+Fri Apr 23 10:57:26 2004 Aniruddha Gokhale <a.gokhale@vanderbilt.edu>
+
+ * DnC/Deployment.idl:
+ struct ConnectionResourceDeploymentDescription: Added a new struct
+ and corresponding unbounded sequence (Issue 6392).
+
+ struct PlanSubcomponentPropertyReference: Replaced instanceRef
+ field with a field called instance of type
+ InstanceDeploymentDescription.
+
+ struct PlanSubcomponentPortEndpoint: Replaced instanceRef and
+ kind fields with a field called instance of type
+ InstanceDeploymentDescription.
+
+ struct PlanConnectionDescription: Added a field called
+ deployedResource of type ConnectionResourceDeploymentDescriptions.
+
+ * DnC/Config_Handler/IRDD_Handler.h:
+ * DnC/Config_Handler/IRDD_Handler.cpp:
+ XML handlers for the InstanceResourceDeploymentDescription artifact of
+ the Execution Model.
+
+ * DnC/Config_Handler/IDD_Handler.h:
+ * DnC/Config_Handler/IDD_Handler.cpp:
+ XML handlers for the InstanceDeploymentDescription artifact of
+ the Execution Model.
+
+ * DnC/Config_Handler/IRDD_Handler.h:
+ * DnC/Config_Handler/IRDD_Handler.cpp:
+ XML handlers for the ConnectionResourceDeploymentDescription artifact of
+ the Execution Model.
+
+ * DnC/Config_Handler/PCD_Handler.h:
+ * DnC/Config_Handler/PCD_Handler.cpp:
+ XML handlers for the PlanConnectionDescription artifact of
+ the Execution Model.
+
+ * DnC/Config_Handler/PSPE_Handler.h:
+ * DnC/Config_Handler/PSPE_Handler.cpp:
+ XML handlers for the PlanSubcomponentPortEndpoint artifact of
+ the Execution Model.
+
+ * DnC/Config_Handler/PPM_Handler.h:
+ * DnC/Config_Handler/PPM_Handler.cpp:
+ XML handlers for the PlanPropertyMapping artifact of
+ the Execution Model.
+
+ * DnC/Config_Handler/PSPR_Handler.h:
+ * DnC/Config_Handler/PSPR_Handler.cpp:
+ XML handlers for the PlanSubcomponentPropertyReference artifact of
+ the Execution Model.
+
+ * DnC/Config_Handler/Config_Handlers.mpc:
+ Added IDD_Handler.cpp
+ Added IRDD_Handler.cpp
+ Added CRDD_Handler.cpp
+ Added PCD_Handler.cpp
+ Added PSPE_Handler.cpp
+ Added PPM_Handler.cpp
+ Added PSPR_Handler.cpp
+
+Fri Apr 23 04:40:12 2004 Aniruddha Gokhale <a.gokhale@vanderbilt.edu>
+
+ * DnC/Deployment.idl:
+ struct DeploymentPlan: Added a field called infoProperty of type
+ Properties (Issue 5967)
+
+ struct ArtifactDeploymentDescription: Added a field called
+ deployedResource of type ResourceDeploymentDescriptions
+ (Issue 6392)
+
+ struct ArtifactDeploymentDescription: Changed the field type for
+ location from string to CORBA::StringSeq (Issue 5957, 6053).
+
+ struct ArtifactDeploymentDescription: Moved it around to
+ overcome forward declarations.
+
+ struct MonolithicDeploymentDescription: Changed the field name
+ from artifactRef to artifact and changed its type from
+ CORBA::ULongSeq to ArtifactDeploymentDescriptions (Issue 5957)
+
+ struct ResourceDeploymentDescription: Added a new struct and
+ corresponding unbounded sequence (Issue 6392).
+
+ enum ResourceUsageKind: Added a new enum (Issue 6392).
+
+ struct InstanceResourceDeploymentDescription: Added a new struct
+ and corresponding unbounded sequence (Issue 6392).
+
+ * DnC/Config_Handler/DP_Handler.h:
+ * DnC/Config_Handler/DP_Handler.cpp:
+ Added handling of "infoProperty" (Issue 5967)
+ Other cosmetic changes, such as fixed usage of an undefined
+ variable
+
+ * DnC/Config_Handler/ADD_Handler.h:
+ * DnC/Config_Handler/ADD_Handler.cpp:
+ XML handlers for the ArtifactDeploymentDescription artifact of
+ the Execution Model.
+
+ * DnC/Config_Handler/MDD_Handler.h:
+ * DnC/Config_Handler/MDD_Handler.cpp:
+ XML handlers for the MonolithicDeploymentDescription artifact of
+ the Execution Model.
+
+ * DnC/Config_Handler/RDD_Handler.h:
+ * DnC/Config_Handler/RDD_Handler.cpp:
+ XML handlers for the ResourceDeploymentDescription artifact of
+ the Execution Model.
+
+ * DnC/Config_Handler/Config_Handlers.mpc:
+ Added ADD_Handler.cpp
+ Added MDD_Handler.cpp
+ Added RDD_Handler.cpp
+
+Thu Apr 22 22:18:04 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * ciao/CCM_Component.idl:
+
+ Added 'typeprefix Components "omg.org";' inside the
+ Components module. All openings of an IDL module must
+ have the same prefix, and the openings of the Components
+ module in other IDL file have this prefix.
+
+Thu Apr 22 21:32:39 2004 Aniruddha Gokhale <a.gokhale@vanderbilt.edu>
+
+ * DnC/Deployment.idl:
+ Added a "string UUID;" field (Issue 6047) to the DeploymentPlan
+ structure. The spec shows UUID as an attribute, which serves as
+ the unique identfier of a plan. However, the spec does not
+ include it in the IDL nor the schema. I decided to add it for now.
+
+ * DnC/Config_Handler/DP_Handler.h:
+ * DnC/Config_Handler/DP_Handler.cpp:
+ XML handlers for the DeploymentPlan artifact of the Execution Model.
+
+ * DnC/Config_Handler/Config_Handlers.mpc:
+ Added DP_Handler.cpp
+
+Thu Apr 22 15:36:14 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/Config_Handler/Config_Handlers.mpc
+ * DnC/Config_Handler/Property_Handler.cpp:
+ * DnC/Config_Handler/Property_Handler.h:
+ * DnC/Config_Handler/Requirement_Handler.h:
+ * DnC/Config_Handler/Requirement_Handler.cpp:
+ * DnC/Config_Handler/SPK_Handler.h:
+ * DnC/Config_Handler/SPK_Handler.cpp:
+ XML handlers for common elements present in schema definitions.
+
+Thu Apr 22 11:35:42 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/Config_Handler/CEPE_Handler.h:
+ * DnC/Config_Handler/CEPE_Handler.cpp:
+ * DnC/Config_Handler/ERE_Handler.h:
+ * DnC/Config_Handler/ERE_Handler.cpp:
+ * DnC/Config_Handler/ID_Handler.h:
+ * DnC/Config_Handler/ID_Handler.cpp:
+ * DnC/Config_Handler/RS_Handler.h:
+ * DnC/Config_Handler/RS_Handler.cpp:
+ * DnC/Config_Handlers/SP_Handler.h:
+ * DnC/Config_Handler/SP_Handler.cpp:
+ Correct ::Deployment namespace definitions to Deployment:: as it
+ need not always start from the root. Changed ACE_NEW_RETURN
+ macros to ACE_NEW_THROW_EX as exceptions are going to be used as
+ default meachnism to flag errors. Thanks to Kitty for pointing
+ these two changes.
+
+Wed Apr 21 22:35:07 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/Config_Handler/Config_Handlers.mpc:
+ Modified the mpc file to include handlers that compile as a test
+ * DnC/Config_Handler/ID_Handler.h:
+ * DnC/Config_Handler/ID_Handler.cpp:
+ * DnC/Config_Handler/CEPE_Handler.h:
+ * DnC/Config_Handler/CEPE_Handler.cpp:
+ * DnC/Config_Handler/RS_Handler.h:
+ * DnC/Config_Handler/RS_Handler.cpp:
+ * DnC/Config_Handler/SP_Handler.h:
+ * DnC/Config_Handler/SP_Handler.cpp:
+ * DnC/Config_Handler/Utils.h:
+ * DnC/Config_Handler/Utils.cpp:
+ * DnC/Config_Handler/Any_Handler.h:
+ Handlers for common elements; each handler handles a separate
+ type
+ * DnC/Config_Handler/Config_Handler_export.h:
+ Export files for all the handlers
+
+Wed Apr 21 22:27:34 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/Deployment.mpc:
+ Changed the export tags from all-caps to mixed mode
+ * DnC/Deployment_stub_export.h:
+ * DnC/Deployment_svnt_export.h:
+ Re-generated the export files accordingly
+
+Wed Apr 21 13:08:50 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/APM_Handler.cpp
+ Fixed a typo.
+
+Wed Apr 21 12:33:11 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/Deployment.mwc:
+ * DnC/Deployment.mpc:
+ Workspace and Project files for generating stubs and skeletons
+ for Deployment.idl file
+
+ * DnC/Deployment_stub_export.h:
+ * DnC/Deployment_svnt_export.h:
+ Export macros for Deployment stub and skeleton files
+
+Wed Apr 21 10:53:50 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DnC/Deployment.idl:
+
+ Fixed the error in the "struct SubcomponentPortEndpoint"
+ definition in the IDL file.
+
+Wed Apr 21 10:33:50 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/Deployment.idl:
+ * DnC/DnC_*:
+
+ Switched back the the OMG IDL DnC file.
+
+Tue Apr 20 21:37:26 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * Dnc/Config_Handlers/Config_Handlers.mpc:
+ Changed the file to generate shared library rathern than an
+ executable.
+
+Tue Apr 20 20:29:37 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * Dnc/Config_Handlers/Config_Handers.mpc:
+
+ mpc file for the DnC configuration handlers
+
+Tue Apr 20 17:11:35 2004 Irfan Pyarali <irfan@oomworks.com>
+
+ * examples/Hello/Sender/Sender_exec.h (Sender_Impl):
+
+ The second constructor also needed the same fix.
+
+Tue Apr 20 15:50:07 2004 Irfan Pyarali <irfan@oomworks.com>
+
+ * examples/Hello/Sender/Sender_exec.h (Sender_Impl):
+
+ <message_> was getting initialized properly causing a crash
+ later in the execution.
+
+Mon Apr 19 18:04:11 2004 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DnC/Config_Handlers/ACD_Handler.cpp
+ * DnC/Config_Handlers/ACD_Handler.h
+ * DnC/Config_Handlers/APM_Handler.cpp
+ * DnC/Config_Handlers/APM_Handler.h
+ * DnC/Config_Handlers/MID_Handler.cpp
+ * DnC/Config_Handlers/MID_Handler.h
+ * DnC/Config_Handlers/SPE_Handler.cpp
+ * DnC/Config_Handlers/SPE_Handler.h
+
+ XML handlers for below XML data types respectively:
+
+ "AssemblyConnectionDescription "
+ "AssemblyPropertyMapping"
+ "MonolithicImplementationDescription"
+ "SubcomponentPortEndpoint"
+
+ * DnC/Config_Handlers/XercesString.cpp
+ * DnC/Config_Handlers/XercesString.h
+
+ Helper class for using Xerces library to write XML handlers.
+
+Mon Apr 19 14:50:11 2004 Krishnakumar B <kitty@nospam.invalid.domain>
+
+ * DnC/Config_Handlers: Created new directory for adding the
+ handlers for the Deployment & Configuration Specification.
+
+Thu Apr 15 18:13:29 2004 Irfan Pyarali <irfan@oomworks.com>
+
+ * CIAO-INSTALL.html (HREF):
+
+ Fixed link to binary files.
+
+Mon Apr 12 14:40:32 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * docs/index.html:
+
+ fixed a broken link.
+
diff --git a/modules/CIAO/ChangeLogs/ChangeLog-04b b/modules/CIAO/ChangeLogs/ChangeLog-04b
new file mode 100644
index 00000000000..233cfed69fc
--- /dev/null
+++ b/modules/CIAO/ChangeLogs/ChangeLog-04b
@@ -0,0 +1,2250 @@
+Tue Dec 28 19:50:06 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * Release:
+
+ Updated the name of the target for generating the textual
+ version of CIAO-INSTALL.html file.
+
+Sat Dec 25 20:55:55 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * Release:
+
+ Added INSTALL target which generates textual version of
+ CIAO-INSTAll.html for the release.
+
+Sat Dec 25 15:01:40 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CIDLC/ExecImplSourceGenerator.cpp:
+
+ Got rid of unused environment variable warnings in the generated
+ code.
+
+Wed Dec 22 06:53:30 2004 Chad Elliott <elliott_c@ociweb.com>
+
+ * tests/CIDL/CodeGen/CodeGen.mpc:
+
+ Make sure that CodeGen_stub gets built before CodeGen_exec.
+
+Tue Dec 21 11:29:03 2004 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * tools/Segment_Timer/Segment_Timer.h
+
+ Increased the value of the macro MAX_READINGS, since the
+ current value is too small and caused core dump for even
+ 50 connections. Thanks Roland Schmmack <Roland.Schimmack@gmx.de>
+ for reporting this bug!
+
+Mon Dec 20 17:27:01 2004 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/ciao/CCM_Core.mpc
+ * ciao/Deployment_Core.idl
+ * ciao/NodeApplication_Impl.cpp
+ * ciao/NodeApplication_Impl.h
+ * ciao/NodeApplication_Impl.inl
+
+ Reverted changes back because of the check-in mistake I just made.
+
+Mon Dec 20 16:32:54 2004 Nanbor Wang <nanbor@cse.wustl.edu>
+
+ * DAnCE/Config_Handlers/Config_Handlers.mpc: Added include path to
+ self for XSC_Config_Handlers project..
+
+Wed Dec 15 13:48:44 2004 Chad Elliott <elliott_c@ociweb.com>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+
+ Get rid of build warnings from gcc 3.3.
+
+Tue Nov 30 21:41:58 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp (namespace):
+
+ More use of ACE_NEW_THROW_EX instead of ACE_NEW_RETURN.
+
+Tue Nov 30 21:03:00 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp (namespace):
+
+ Another use of ACE_NEW_THROW_EX instead of ACE_NEW_RETURN.
+
+Tue Nov 30 20:39:26 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp (namespace):
+
+ Used ACE_NEW_THROW_EX instead of ACE_NEW_RETURN.
+
+Tue Nov 30 20:22:19 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp (namespace):
+
+ Fixes for VC6.
+
+Wed Nov 24 09:47:58 2004 Chad Elliott <elliott_c@ociweb.com>
+
+ * examples/OEP/Display/NavDisplayGUI_exec/DetailView.cpp:
+
+ Added static_cast from double to int to avoid build warnings from
+ g++.
+
+Wed Nov 17 17:46:44 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/Hello/Receiver/Receiver.idl:
+
+ Added 'uses multiple' receptacle to test code generation
+ and compilation.
+
+Sat Nov 13 18:04:36 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/examples/Hello/Hello_Base/Hello_Base.idl:
+ * DAnCE/examples/Hello/Hello_Base/Hello_Base.mpc:
+ * DAnCE/examples/Hello/Hello_Base/Hello_Base_stub_export.h:
+ * DAnCE/examples/Hello/Hello_Base/Hello_Base_svnt_export.h:
+ * DAnCE/examples/Hello/Receiver/Receiver.cidl:
+ * DAnCE/examples/Hello/Receiver/Receiver.idl:
+ * DAnCE/examples/Hello/Receiver/Receiver.mpc:
+ * DAnCE/examples/Hello/Receiver/Receiver_exec.cpp:
+ * DAnCE/examples/Hello/Receiver/Receiver_exec.h:
+ * DAnCE/examples/Hello/Receiver/Receiver_exec_export.h:
+ * DAnCE/examples/Hello/Receiver/Receiver_stub_export.h:
+ * DAnCE/examples/Hello/Receiver/Receiver_svnt_export.h:
+ * DAnCE/examples/Hello/Sender/Sender.cidl:
+ * DAnCE/examples/Hello/Sender/Sender.idl:
+ * DAnCE/examples/Hello/Sender/Sender.mpc:
+ * DAnCE/examples/Hello/Sender/Sender_exec.cpp:
+ * DAnCE/examples/Hello/Sender/Sender_exec.h:
+ * DAnCE/examples/Hello/Sender/Sender_exec_export.h:
+ * DAnCE/examples/Hello/Sender/Sender_stub_export.h:
+ * DAnCE/examples/Hello/Sender/Sender_svnt_export.h:
+ * DAnCE/examples/Hello/Sender/starter.cpp:
+ * DAnCE/examples/Hello/descriptors/Deployment.xsd:
+ * DAnCE/examples/Hello/descriptors/Domain.cdd:
+ * DAnCE/examples/Hello/descriptors/Hello.cdp:
+ * DAnCE/examples/Hello/descriptors/Hello.cid:
+ * DAnCE/examples/Hello/descriptors/Hello.cpd:
+ * DAnCE/examples/Hello/descriptors/Hello.pcd:
+ * DAnCE/examples/Hello/descriptors/Libraries.iad:
+ * DAnCE/examples/Hello/descriptors/Receiver.ccd:
+ * DAnCE/examples/Hello/descriptors/Receiver.cid:
+ * DAnCE/examples/Hello/descriptors/Receiver.cpd:
+ * DAnCE/examples/Hello/descriptors/Receiver_Exec.iad:
+ * DAnCE/examples/Hello/descriptors/Receiver_Stub.iad
+ * DAnCE/examples/Hello/descriptors/Receiver_Svnt.iad:
+ * DAnCE/examples/Hello/descriptors/Sender.ccd:
+ * DAnCE/examples/Hello/descriptors/Sender.cid:
+ * DAnCE/examples/Hello/descriptors/Sender.cpd:
+ * DAnCE/examples/Hello/descriptors/Sender_Exec.iad:
+ * DAnCE/examples/Hello/descriptors/Sender_Stub.iad:
+ * DAnCE/examples/Hello/descriptors/Sender_Svnt.iad:
+ * DAnCE/examples/Hello/descriptors/XMI.xsd:
+ * DAnCE/examples/Hello/descriptors/hello.dat:
+ * DAnCE/examples/Hello/descriptors/package.tpd:
+
+ Added another version of the Hello example
+ in the DanCE/examples directory.
+
+ This example will use the DanCE framework for
+ deploying the components used in the example.
+
+Sat Nov 13 13:17:48 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * NEWS
+
+ Added the Real-time Event Channel integration plan into
+ the NEWS file.
+
+Fri Nov 12 06:21:03 2004 Chad Elliott <elliott_c@ociweb.com>
+
+ * tests/RTCCM/Priority_Test/Controllers/Pulser.h:
+ * tests/RTCCM/Priority_Test/Controllers/Pulser.cpp:
+
+ Changed the open and close method of the Pulser class to match
+ the signature of the ACE_Task_Base.
+
+Thu Nov 11 17:17:48 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * ciao/Servant_Activator.cpp:
+ * DAnCE/examples/BasicSP/BMDisplay/BMDisplay_exec.cpp:
+ * DAnCE/examples/BasicSP/BMClosedED/BMClosedED_exec.cpp:
+ * DAnCE/examples/BasicSP/BMDevice/BMDevice_exec.cpp:
+ * docs/tutorial/Hello/hello_exec.cpp:
+ Fixed warnings in the scoreboard from RH8 NoInline build
+
+ Thu Nov 11 11:24:05 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ In the generated servant method populate_port_tables(),
+ added the line 'ACE_ENV_ARG_NOT_USED;' to avoid an
+ unused parameter warning if there happens to be no
+ populating to be done in this genrated method.
+
+Thu Nov 11 10:50:45 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ExecImplSourceGenerator.cpp:
+
+ Fixed incorrect generation of environment arg macro.
+ Thanks to Chad Elliott <elliott_c@ociweb.com> for
+ pointing out the mistake.
+
+Thu Nov 11 09:46:58 2004 Chad Elliott <elliott_c@ociweb.com>
+
+ * performance-tests/Protocols/Receiver/Receiver.mpc:
+ * performance-tests/Protocols/Sender/Sender.mpc:
+ * tests/RTCCM/DiffServ/Controller/Controller.mpc:
+
+ Added requires += exceptions for these projects.
+
+ * performance-tests/Protocols/Sender/Sender_exec.cpp:
+
+ Removed ACE_CHECK's which caused compilation errors when
+ exceptions=0 was set.
+
+Thu Nov 11 14:40:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/ciao/Servant_Activator.cpp:
+ * docs/tutorial/Hello/hello_exec.cpp:
+ Fixed unused parameter warnings in emulated exception build
+
+Tue Nov 9 14:20:31 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Fixed incorrect code generation for home factory operations.
+ Thanks to Chad Elliott <elliott_c@ociweb.com> for pointing
+ out the mistake. This fixes [BUGID:1977].
+
+Mon Nov 8 12:58:24 2004 Chad Elliott <elliott_c@ociweb.com>
+
+ * DAnCE/tests/NodeApplicationTest/NodeAppTest.mpc:
+
+ Fixed build ordering to match library requirements.
+
+ * ciao/StandardConfigurator_Impl.h:
+
+ Removed the StandardConfigurator_Impl:: prefix on the configure
+ method (gcc 3.4.1 did not like it).
+
+Fri Nov 5 09:55:28 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * performance-tests/Benchmark/RoundTrip/client.cpp:
+
+ The svc.conf file passed in to the client was not being passed
+ to the ORB as ACE::Get_Opt ate up the argument before being
+ passed to the client ORB. This fixes this error at the client
+ side temporarily by initializing the ORB before parsing the
+ arguments. Thanks to Abhi <abhi@qualcomm.com> for reporting
+ this.
+
+Thu Nov 4 09:31:29 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/RepositoryManager/Update_Plan.cpp:
+
+ Made changes to fix some build warnings.
+ Thanks to Chad Elliot <elliott_c@ociweb.com> for reporting
+ this warning.
+
+Wed Nov 3 16:32:54 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ExecutorMappingGenerator.cpp:
+
+ Added generation of newline before each operation
+ parameter so each one will be on a separate line.
+ It was discovered that the VC 7.1 lexer truncates lines
+ longer than 1024 characters.
+
+Wed Nov 3 22:32:18 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp (namespace):
+
+ VC6 error fixes. Grr...!
+
+Wed Nov 3 12:38:21 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/RepositoryManager/Update_Plan.cpp:
+ * DAnCE/RepositoryManager/Update_Plan.h:
+
+ Made changes to handle multiple component instances
+ deployment.
+
+Tue Nov 2 17:26:42 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Fixed the emitters for supported operations to include
+ abstract interfaces in their traversals.
+
+Tue Nov 2 09:59:15 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantGenerator.cpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+
+ Fixed some regular expressions, used to generate the servant
+ header file ifdef guard and export macros, to recognize the
+ file extension .cdl in addition to the existing patterns for
+ .cidl and .idl. These particular regular expressions were
+ overlooked in the checkin of
+
+ Thu Sep 30 11:03:20 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+Tue Nov 2 04:45:44 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Addressing compile errors in Borland. Thanks to Johnny for the
+ suggestion.
+
+Mon Nov 1 15:09:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * VERSION:
+ Fixed description and mailing lists to use
+
+Fri Oct 29 17:18:51 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp (namespace):
+
+ Fixed some weird VC6 issues reported by Theckla
+ Louchios<theckla.louchiois@lmco.com>.
+
+Fri Oct 29 10:44:52 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * DAnCE/RepositoryManager/Repository_Manager.cpp;
+
+ Cosmetic changes.
+
+Mon Oct 25 07:31:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/RepositoryManager/Repository_Manager.cpp:
+ * DAnCE/RepositoryManager/Repository_Manager_Impl.cpp:
+ Use ACE auto_ptr instead of std::auto_ptr to fix compile problems
+ with vc6.
+
+Fri Oct 22 11:49:25 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/Config_Handlers.mpc:
+
+ Reversed this change "Thu Oct 21 18:37:12 2004 Gan Deng
+ <dengg@dre.vanderbilt.edu>"
+
+Fri Oct 22 08:16:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/RTCCM/DiffServ/Controller/Controller.mpc:
+ Added DiffServ_Stub to the libs part, this should fix the link errors
+ in the CBX Static Release build
+
+Fri Oct 22 07:51:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/IDL3_to_IDL2/TAO_IDL3_TO_IDL2_BE_Export.h:
+ Used ACE_AS_STATIC_LIBS to check whether we need to build a DLL
+ or not, TAO_AS_STATIC_LIBS was used, but this project isn't
+ dependent on TAO, just on ACE
+
+Thu Oct 21 18:37:12 2004 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/Config_Handlers.mpc
+
+ Put the xerces-c library into "lib +=" to avoid
+ linking to the wrong library.
+
+Wed Oct 13 06:37:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/RTCCM/Priority_Test/Workers/Worker.mpc
+ * tests/RTCCM/Priority_Test/Controllers/Controller.mpc:
+ Added Priority_Test_stub to the libs, this should fix the link errors
+ in the borland builds
+
+ * tests/CIDL/CodeGen/CodeGen.mpc:
+ Added CIDL_Basic_stub to the libs, this should fix the link errors
+ in the borland builds
+
+Tue Oct 12 09:07:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * performance-tests/Benchmark/Multi_Threaded/Multi_Threaded.mpc:
+ Removed / at the end of the includes part, this should fix the
+ compile error in the Borland builds
+
+Mon Oct 11 23:41:16 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * examples/OEP/BasicSP/BMDisplay/BMDisplay.mpc:
+ * examples/OEP/Display/GPS/GPS.mpc:
+ * examples/OEP/Display/NavDisplay/NavDisplay.mpc:
+ * examples/OEP/Display/RateGen/RateGen.mpc:
+
+ Fixed typos that broke the builds.
+
+Mon Oct 11 11:02:41 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/CCF/CodeGenerationKit/IndentationIDL.hpp:
+
+ Put double new line after `}'.
+
+ * CIDLC/cidlc.cpp:
+
+ Print build date and time in --version.
+
+Mon Oct 11 10:08:48 2004 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/examples/BasicSP/Readme.html
+
+ Update the README file for running the example.
+
+Sun Oct 10 10:45:48 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * performance-tests/Benchmark/RoundTrip/RoundTrip.mpc:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient.mpc:
+
+ Fix for some typos which broke the daily builds.
+
+Sun Oct 10 02:47:21 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/tests/Config_Handlers/CompImplDesc_Handler_Test.cpp:
+ * DAnCE/tests/Config_Handlers/CompIntrDesc_Handler_Test.cpp:
+ * DAnCE/tests/Config_Handlers/CompPkgDesc_Handler_Test.cpp:
+ * DAnCE/tests/Config_Handlers/Domain_Handler_Test.cpp:
+ * DAnCE/tests/Config_Handlers/Handler_Test.cpp:
+ * DAnCE/tests/Config_Handlers/Handler_Test.h:
+ * DAnCE/tests/Config_Handlers/IAD_Handler_Test.cpp:
+ * DAnCE/tests/Config_Handlers/PC_Handler_Test.cpp:
+ * DAnCE/tests/Config_Handlers/Plan_Handler_Test.cpp:
+
+ Fix for MSVC6 build errors. They compile fine on MSVC6 now. I am
+ just hoping that this fix also addresses compile errors in
+ Borland. The Borland compilation errors are also similar to the
+ MSVC6 errors and hence the hope!
+
+Sun Oct 10 00:21:39 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/examples/BasicSP/BMDisplay/BMDisplay.mpc:
+
+ Fixed a typo.
+
+Sat Oct 9 23:43:52 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/Plan_Handler.cpp:
+
+ Fixed a compilation error in Borland builds.
+
+ * DAnCE/examples/BasicSP/BMClosedED/BMClosedED.mpc:
+ * DAnCE/examples/BasicSP/BMDisplay/BMDisplay.mpc:
+ * DAnCE/examples/BasicSP/EC/EC.mpc:
+ * examples/OEP/BasicSP/BMClosedED/BMClosedED.mpc:
+ * examples/OEP/BasicSP/BMDevice/BMDevice.mpc:
+ * examples/OEP/BasicSP/BMDisplay/BMDisplay.mpc:
+ * examples/OEP/BasicSP/EC/EC.mpc:
+ * examples/OEP/Display/GPS/GPS.mpc:
+ * examples/OEP/Display/NavDisplay/NavDisplay.mpc:
+ * examples/OEP/Display/RateGen/RateGen.mpc:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip.mpc:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient.mpc:
+
+ Added missing libraries. They have been wrong for a very long
+ time. Thanks to Borland builds for catching these. I am sure
+ there are a few more and I will allow one more build to catch
+ them.
+
+ * examples/OEP/Display/RateGen/RateGen_exec.cpp:
+ * examples/OEP/Display/RateGen/RateGen_exec.h:
+
+ Fixed warnings due to hidden virtual functions.
+
+
+Sat Oct 9 14:29:41 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Added a .in () to the _var variable used in push_event ().
+
+ * DAnCE/Config_Handlers/XercesString.cpp:
+ * DAnCE/Config_Handlers/XercesString.h:
+
+ Removed an unnecessary operator== which was confusing some
+ compilers.
+
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp:
+ * DAnCE/RepositoryManager/Repository_Manager.cpp:
+
+ Changed the wrong exceptions that were being thrown.
+
+ * DAnCE/examples/BasicSP/EC/EC_exec.cpp:
+ * DAnCE/examples/BasicSP/EC/EC_exec.h:
+ * examples/OEP/BasicSP/EC/EC_exec.cpp:
+ * examples/OEP/BasicSP/EC/EC_exec.h:
+
+ The declaration of open () and close () was hiding the base
+ class methods. Changed the name of the functions.
+
+ The above changes should fix part of the errors from the Borland
+ builds.
+
+Thu Oct 7 03:17:54 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * docs/schema/Basic_Deployment_Data.xsd:
+ * docs/schema/ccd.xsd:
+ * docs/schema/cdp.xsd:
+
+ Updated to be more compliant with the DnC spec.
+
+Wed Oct 6 16:10:27 2004 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * docs/schema/ciaopolicy.xsd:
+
+ Finished filling out the policy schema.
+
+Sun Oct 03 09:38:03 2004 Nanbor Wang <nanbor@cse.wustl.edu>
+
+ * DAnCE/Config_Handlers/XSCRT/Elements.hpp:
+ * DAnCE/Config_Handlers/XSCRT/ExtendedTypeInfo.hpp:
+ * DAnCE/Config_Handlers/XSCRT/Parser.hpp:
+ * DAnCE/Config_Handlers/XSCRT/Traversal.hpp:
+ * DAnCE/Config_Handlers/XSCRT/XMLSchema.hpp:
+ * DAnCE/Config_Handlers/pcd.hpp:
+ * DAnCE/Config_Handlers/iad.hpp:
+ * DAnCE/Config_Handlers/cpd.hpp:
+ * DAnCE/Config_Handlers/cid.hpp:
+ * DAnCE/Config_Handlers/cdp.hpp:
+ * DAnCE/Config_Handlers/cdd.hpp:
+ * DAnCE/Config_Handlers/Deployment.hpp:
+ * DAnCE/Config_Handlers/Basic_Deployment_Data.hpp:
+ * DAnCE/Config_Handlers/ccd.hpp:
+ * DAnCE/Config_Handlers/toplevel.hpp: Change to include XSCRT
+ headers as "user libraries" instead of <system libraries>.
+
+Sun Oct 03 09:18:05 2004 Nanbor Wang <nanbor@cse.wustl.edu>
+
+ * DAnCE/tests/Config_Handlers/handler_test.mpb: Changed to use the
+ xerces base project that Johnny added. The base project
+ correctly uses lit_libs to include xerces.
+
+Thu Sep 30 14:49:23 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ExecImplHeaderGenerator.cpp:
+ * CIDLC/ExecImplSourceGenerator.cpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+
+ Removed identifiers of unused args.
+
+ * CIDLC/RepositoryIdGenerator.cpp:
+
+ Extended generator to compute repo ids for
+ homes and components.
+
+ * CIDLC/DescriptorGenerator.cpp:
+
+ Changed code to use the context value set by the expanded
+ repo id generator and removed code to compute repo id
+ in this generator.
+
+Thu Sep 30 11:03:20 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ExecImplGenerator.cpp:
+ * CIDLC/ExecImplHeaderGenerator.cpp:
+ * CIDLC/ExecImplSourceGenerator.cpp:
+ * CIDLC/ExecutorMappingGenerator.cpp:
+ * CIDLC/ServantGenerator.cpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Added handling of file extension .cdl, as found in
+ spec documents.
+
+Thu Sep 30 09:16:52 2004 Nanbor Wang <nanbor_a_txcorp_._com>
+
+ * CCF/Config.rules: Added new definitions to actually add the
+ boost and utility related directives into compiler/linker
+ flags.
+
+Thu Sep 30 09:55:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Config_Handlers/DnC_Dump_T.h:
+ Fixed fuzz error
+
+Wed Sep 29 17:30:25 2004 Irfan Pyarali <irfan@oomworks.com>
+
+ * performance-tests/Protocols:
+
+ - Minor changes were made to the Sender to in lieu of some
+ interface changes.
+
+ - run_test.pl was changed so that a simple version of the test
+ can be executed.
+
+ * performance-tests/Protocols/Sender/Sender.mpc:
+ * performance-tests/Protocols/Receiver/Receiver.mpc:
+
+ Removed "dummy" label so that it is included in nightly builds.
+
+ * performance-tests/Protocols/descriptors/CIAO_Installation_Data.ini:
+ * performance-tests/Protocols/Sender/Sender.mpc:
+ * performance-tests/Protocols/descriptors/Receiver.csd:
+ * performance-tests/Protocols/descriptors/Receiver.ssd:
+ * performance-tests/Protocols/descriptors/Sender.csd:
+ * performance-tests/Protocols/descriptors/Sender.ssd:
+
+ Sender_* was changed to Protocols_Sender_* and Receiver_* was
+ changed to Protocols_Receiver_*.
+
+ * performance-tests/Protocols/Sender/Sender_exec.cpp:
+ * performance-tests/Protocols/Sender/Sender.mpc:
+
+ Custom_Network_Priority_Mapping.cpp was included directly. If
+ listed as a source file that is not in the current directory,
+ mpc mucks the object file location.
+
+ * performance-tests/Protocols/descriptors/Receiver.csd:
+ * performance-tests/Protocols/descriptors/Receiver.ssd:
+ * performance-tests/Protocols/descriptors/Sender.csd:
+ * performance-tests/Protocols/descriptors/Sender.ssd:
+
+ Hello was changed to Protocols.
+
+ * tests/RTCCM/DiffServ/descriptors/CIAO_Installation_Data.ini:
+ * tests/RTCCM/DiffServ/Sender/Sender.mpc:
+ * tests/RTCCM/DiffServ/descriptors/Receiver.csd:
+ * tests/RTCCM/DiffServ/descriptors/Receiver.ssd:
+ * tests/RTCCM/DiffServ/descriptors/Sender.csd:
+ * tests/RTCCM/DiffServ/descriptors/Sender.ssd:
+
+ Sender_* was changed to DiffServ_Sender_* and Receiver_* was
+ changed to DiffServ_Receiver_*.
+
+ * tests/RTCCM/DiffServ/Sender/Sender_exec.cpp:
+ * tests/RTCCM/DiffServ/Sender/Sender.mpc:
+
+ Custom_Network_Priority_Mapping.cpp was included directly. If
+ listed as a source file that is not in the current directory,
+ mpc mucks the object file location.
+
+ * tests/RTCCM/DiffServ/descriptors/Receiver.csd:
+ * tests/RTCCM/DiffServ/descriptors/Receiver.ssd:
+ * tests/RTCCM/DiffServ/descriptors/Sender.csd:
+ * tests/RTCCM/DiffServ/descriptors/Sender.ssd:
+
+ Hello was changed to DiffServ.
+
+ * tests/RTCCM/DiffServ/Controller/Controller.mpc:
+
+ "requires" directive was incorrect. Correct directive is
+ "after".
+
+Wed Sep 29 19:20:19 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/examples/BasicSP/BMClosedED/BMClosedED_svnt.cpp:
+ * DAnCE/examples/BasicSP/EC/EC_svnt.cpp:
+ * DAnCE/examples/BasicSP/EC/EC_svnt.h:
+
+ Removed them from the main trunk.
+
+Wed Sep 29 14:39:29 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ The dump function was too complicated not compiling on many
+ platforms cleanly. This effort is to simplify the dump functions
+ so that we can compile on many platforms.
+
+ * DAnCE/Config_Handlers/DnC_Dump.cpp:
+ * DAnCE/Config_Handlers/DnC_Dump.h:
+
+ Moved template functions out of the class.
+
+ * DAnCE/Config_Handlers/DnC_Dump_T.cpp:
+ * DAnCE/Config_Handlers/DnC_Dump_T.h:
+
+ New files for the template functions.
+
+ * DAnCE/Config_Handlers/Dump_Obj.cpp:
+ * DAnCE/Config_Handlers/Dump_Obj.h:
+
+ Utility functions have been moved here.
+
+ * DAnCE/Config_Handlers/Config_Handlers.mpc:
+ New files added to the build.
+
+Wed Sep 29 07:51:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Servant_Activator.h:
+ * DAnCE/ciao/Servant_Activator.h:
+ Added missing prama pop
+
+Wed Sep 29 07:09:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Config_Handlers/Utils.h:
+ Added missing include of ace/post.h
+
+Mon Sep 27 17:57:08 2004 Krishnakumar B <kitty@dre.vanderbilt.edu>
+
+ * DAnCE/examples/BasicSP/BasicSP.mpc:
+ * DAnCE/examples/BasicSP/BMClosedED/BMClosedED.mpc:
+ * DAnCE/examples/BasicSP/BMDevice/BMDevice.mpc:
+ * DAnCE/examples/BasicSP/BMDisplay/BMDisplay.mpc:
+ * DAnCE/examples/BasicSP/EC/EC.mpc:
+
+ Fixed the MPC files to refer to the version of DAnCE libraries
+ instead of the old CIAO libraries.
+
+Mon Sep 27 22:41:52 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Remove calling Home_Servant_impl_Base () directly.
+
+ * DAnCE/ciao/Home_Servant_Impl_Base.cpp:
+ * DAnCE/ciao/Home_Servant_Impl_Base.h:
+ * ciao/Home_Servant_Impl_Base.cpp:
+ * ciao/Home_Servant_Impl_Base.h:
+
+ Provided a default constructor with explicit keyword. This
+ should help VC6 and Borland compilers to compile the generated
+ servants just fine.
+
+Mon Sep 27 19:45:04 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Remove calling Context_Impl_Base () and Servant_Impl_Base ()
+ directly.
+
+ * DAnCE/ciao/Context_Impl_Base.cpp:
+ * DAnCE/ciao/Context_Impl_Base.h:
+ * DAnCE/ciao/Servant_Impl_Base.cpp:
+ * DAnCE/ciao/Servant_Impl_Base.h:
+ * ciao/Context_Impl_Base.cpp:
+ * ciao/Context_Impl_Base.h:
+ * ciao/Servant_Impl_Base.cpp:
+ * ciao/Servant_Impl_Base.h:
+
+ Added a explicit default constructor so that they are not called
+ implicitly when derived classes are instantiated.
+
+ * DAnCE/DomainApplicationManager/Deployment_Configuration.h:
+
+ Checking in the change mentioned before just now, since it
+ fell trhough the cracks.
+
+Mon Sep 27 15:41:20 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/Deployment_Configuration.h:
+
+ Export the class out for Win32 builds.
+
+ * DAnCE/ExecutionManager/ExecutionManager.mpc:
+
+ Removed a strange character frm the mpc file.
+
+Mon Sep 27 15:26:46 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h:
+
+ Added a new exception specification to correct an error in BCB6
+ builds.
+
+ * DAnCE/ciao/CCM_Core.mpc:
+
+ Deployment_stub should link with CIAO_DnC_Client.
+
+Mon Sep 27 12:56:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/RepositoryManager/RepositoryManager.mpc:
+ * DAnCE/Config_Handlers/Config_Handlers.mpc:
+ Instead of adding all xerces stuff to the project itself, inherit
+ from the new xerces base project
+
+Mon Sep 27 12:02:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeManager/NodeDaemon.mpc:
+ Instead of adding ifr_client to libs, use the
+ corresponding base projects
+
+Mon Sep 27 11:54:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Config_Handlers/Config_Handlers.mpc:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc:
+ * DAnCE/ExecutionManager/ExecutionManager.mpc:
+ Instead of adding the valuetype and ifr_client to libs, use the
+ corresponding base projects
+
+Mon Sep 27 08:54:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/examples/BasicSP/EC/EC_exec.cpp:
+ Added missing ACE_TRY_CHECK
+
+Mon Sep 27 08:03:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Context_Impl_Base.cpp:
+ Use false instead of FALSE.
+
+Wed Sep 22 17:46:14 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Removed unused parameter identifiers and fixed the order of some
+ class member initializations.
+
+Tue Sep 21 13:28:40 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * docs/value_factory_registration.html:
+
+ New documentation file, describing the behavior of the CIDL
+ compiler with respect to automatic generation of code to
+ register valuetype factories for eventtypes referenced by
+ 'consumes' declarations in a component.
+
+Tue Sep 21 13:04:39 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Added code to check an eventtype used as an event consumer
+ in a component for the presence of an operation or
+ factory. If either is found, code generation for registering
+ the associated _init class with the container's ORB is skipped.
+ Also added command line option to toggle off generation of
+ the factory registration in all cases. Thanks to
+ Vasili Goutas <vasili@goutas.de> for the posting to the ciao-users
+ mailing list that prompted us to make the CIDL compiler
+ smarter and more friendly with regard to this feature.
+
+Tue Sep 21 13:00:33 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CCF/CCF/IDL3/IDL3.vcproj:
+
+ Added new files create by Boris for eventtype factory support.
+
+ * CCF/CCF/IDL3/SemanticGraph/EventType.cpp:
+
+ Fixed search-and-replace error in EventTypeFactory constructor
+ that had it inheriting from itself.
+
+Tue Sep 21 11:08:20 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/CCF/IDL2/SemanticGraph/ValueType.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/ValueType.hpp:
+ * CCF/CCF/IDL2/Traversal/ValueType.hpp:
+ * CCF/CCF/IDL3/Parser.cpp:
+ * CCF/CCF/IDL3/Parser.hpp:
+ * CCF/CCF/IDL3/SemanticAction.hpp:
+ * CCF/CCF/IDL3/SemanticAction/EventTypeFactory.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Factory.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/EventTypeFactory.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/EventTypeFactory.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Factory.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Factory.hpp:
+ * CCF/CCF/IDL3/SemanticGraph/EventType.cpp:
+ * CCF/CCF/IDL3/SemanticGraph/EventType.hpp:
+ * CCF/CCF/IDL3/Traversal/EventType.hpp:
+
+ Added support for eventtype factories.
+
+Tue Sep 21 07:39:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/ciao/Context_Impl_Base.cpp:
+ Use false instead of FALSE.
+
+Mon Sep 20 18:47:47 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/Config_Handlers.mpc:
+
+ Use lit_libs for xercesc as suggested by Chad Elliott.
+
+ * performance-tests/Protocols/Sender/Sender.idl:
+
+ Fixed the IDL to compile with the latest changes to IDL
+ compiler.
+
+Mon Sep 20 18:43:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * performance-tests/Benchmark/RoundTripServer/RoundTripServer.mpc:
+ Added strategies as base project
+
+Mon Sep 20 11:37:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/ciao/StandardConfigurator_Impl.h:
+ Removed not needed qualifier, and fixed incorrect Id tag
+
+Sun Sep 19 19:12:22 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/Deployment.idl:
+
+ Fixed variable name that differ by case from the data type.
+
+Fri Sep 17 16:46:32 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/CIDLC.sln:
+
+ Added the 5 projects from CCF.sln so the CIDL compiler can be
+ built from scratch in a single MSVC 7.1 Solution.
+
+Fri Sep 17 08:27:57 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/Context_Impl_Base.cpp:
+ * ciao/Context_Impl_Base.cpp:
+
+ Use false instead of FALSE. This should fix compile errors in
+ debian full reactor builds.
+
+Fri Sep 17 13:22:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * performance-tests/Benchmark/RoundTripServer/RoundTripServer.mpc:
+ Use ciao_server as base
+
+Thu Sep 16 10:15:04 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * DAnCE/ciao/Servant_Impl_Base.h:
+
+ Added inheritance to Servant_Impl_Base of
+ POA_Components::CCMObject to bring it in sync with the
+ version in regular CIAO/ciao.
+
+ * DAnCE/ciao/Servant_Impl_T.h:
+
+ Made inheritance of Servant_Impl_Base virtual, to bring it
+ in sync with the version in regular CIAO/ciao.
+
+Thu Sep 16 08:44:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/ciao/Servant_Activator.cpp:
+ * CIAO/ciao/Servant_Activator.cpp:
+ Fixed compile errors in Borland build
+
+Tue Sep 14 20:43:31 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * ciao/Context_Impl_Base.h:
+ * DAnCE/ciao/Context_Impl_Base.h:
+
+ Moved a sufficiently substantial included file above the
+ #pragma once directive, so that some compilers will not
+ complain that it's obsolete.
+
+Tue Sep 14 15:02:24 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * DAnCE/ciao/Context_Impl_Base.cpp:
+ * DAnCE/ciao/Context_Impl_Base.h:
+ * DAnCE/ciao/Context_Impl_T.cpp:
+ * DAnCE/ciao/Context_Impl_T.h:
+ * DAnCE/ciao/Home_Servant_Impl_Base.cpp:
+ * DAnCE/ciao/Home_Servant_Impl_Base.h:
+ * DAnCE/ciao/Home_Servant_Impl_T.cpp:
+ * DAnCE/ciao/Home_Servant_Impl_T.h:
+ * ciao/Context_Impl_Base.cpp:
+ * ciao/Context_Impl_Base.h:
+ * ciao/Context_Impl_T.cpp:
+ * ciao/Context_Impl_T.h:
+ * ciao/Home_Servant_Impl_Base.cpp:
+ * ciao/Home_Servant_Impl_Base.h:
+ * ciao/Home_Servant_Impl_T.cpp:
+ * ciao/Home_Servant_Impl_T.h:
+
+ New files, duplicated in CIAO/ciao and
+ CIAO/DAnCE/ciao, containing base classes
+ for the CIDL-compiler-generated context
+ and home servant classes. A template class
+ sits in the hierarchy between the generated
+ class and its skeleton base class (in the
+ case of the home servant) or its executor
+ base (in the case of the context). The
+ template class also inherits from a
+ non-template class which is used to hold
+ members and operations not using any template
+ parameters.
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+ * DAnCE/ciao/CCM_Core.mpc:
+ * DAnCE/ciao/Servant_Impl_Base.cpp:
+ * DAnCE/ciao/Servant_Impl_Base.h:
+ * DAnCE/ciao/Servant_Impl_T.cpp:
+ * DAnCE/ciao/Servant_Impl_T.h:
+ * ciao/CCM_Core.mpc:
+ * ciao/Servant_Impl_Base.cpp:
+ * ciao/Servant_Impl_Base.h:
+ * ciao/Servant_Impl_T.cpp:
+ * ciao/Servant_Impl_T.h:
+
+ Modified existing files to correspond with the
+ new files described above and:
+
+ - Added implementations for the component servant
+ operations provide_facet(), get_named_facets(),
+ get_consumer() and get_named_consumers().
+
+ - Added inheritance of CCMObject to the non-template
+ base class, to enable operations in the template
+ base class, which used no template parameters but
+ which were there only to be in the inheritance
+ hierarchy from skeleton to generated servant, to
+ be moved to the non-template base class, and
+ thus not be reinstantiated with every new type.
+
+ - Moved operations from generated code to one of
+ the two base classes.
+
+Mon Sep 13 13:18:33 2004 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * RepositoryManager/Update_Plan.h
+
+ Fixed a waring in Windows build by changing "class" to "struct"
+ in forward declaration.
+
+ * examples/BasicSP/BasicSP.mpc
+ * examples/BasicSP/BMClosedED/BMClosedED.mpc
+ * examples/BasicSP/BMDevice/BMDevice.mpc
+ * examples/BasicSP/BMDisplay/BMDisplay.mpc
+ * examples/BasicSP/EC/EC.mpc
+
+ Changed the output stub, servant, and executor library names
+ for all the components in BasicSP example. The reason is
+ becasue all the DnC descriptors are tightly coupled with the
+ output library names. I might come back switch this change
+ back since this will conflict with the BasicSP example in
+ CIAO_ROOT/examples.
+
+Mon Sep 13 13:07:33 2004 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+
+ Fixed a bug inside create_connections () method.
+
+Mon Sep 13 15:16:33 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/tests/NodeApplicationTest/run_test.pl:
+ * DAnCE/tests/NodeApplicationTest/run_test_ex.pl:
+ * DAnCE/tests/NodeApplicationTest/run_test_simple.pl:
+
+ Fixed the paths in the scripts.
+
+Mon Sep 13 07:11:06 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/Port_Activator.h:
+ * DAnCE/ciao/Servant_Activator.cpp:
+ * ciao/Port_Activator.h:
+ * ciao/Servant_Activator.cpp:
+
+ Fixes for MSVC++ compilation errors. Inspite of being careful I
+ introduced a couple of VC++ anathemas.
+
+Mon Sep 13 06:16:31 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/Container_Base.cpp:
+ * ciao/Container_Base.cpp:
+
+ Fixed wrong ACE_CHECK usage. This should fix compilation errors
+ in Full_Reactors build.
+
+Mon Sep 13 04:20:44 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/CCM_Core.mpc:
+
+ Removed iorinterceptor and objreftemplate from CIAO_DnC_Server
+ project. No reason to believe that they need thes. This should
+ hopefully remove the warnings in our daily builds.
+
+ * examples/Hello/Sender/Sender_exec.cpp:
+
+ Added a simple debug statement.
+
+ * performance-tests/Benchmark/Benchmark.mpc:
+
+ Tried fixing the link errors on the scoreboard.
+
+Mon Sep 13 03:50:08 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/CCM_Core.mpc:
+ * DAnCE/ciao/Container_Base.cpp:
+ * DAnCE/ciao/Container_Base.h:
+ * DAnCE/ciao/Container_Base.inl:
+ * DAnCE/ciao/Port_Activator.cpp:
+ * DAnCE/ciao/Port_Activator.h:
+ * DAnCE/ciao/Port_Activator_T.cpp:
+ * DAnCE/ciao/Port_Activator_T.h:
+ * DAnCE/ciao/Servant_Activator.cpp:
+ * DAnCE/ciao/Servant_Activator.h:
+
+ Replicated changes to DAnCE. DAnCE testing hasn't been completed
+ yet.
+
+Sun Sep 12 22:10:38 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Changes to the CIDL which uses the servant and port activators
+ checked in now.
+
+Mon Sep 13 03:00:52 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ To overcome the long standing problem in DAnCE, we are now making
+ the facet and consumer servants to be on demand activatable. This
+ would make sure that application level ports are not activated
+ until used. This should help address the problems between DAnCE
+ and existing way of doing things. These changes should be useful
+ even after old CIAO is removed since we want to give existing
+ component applications the same activation semantics with DAnCE.
+
+ This checkin addresses old CIAO. DAnCE and CIDLC changes will come
+ in soon.
+
+ * ciao/Servant_Activator.cpp:
+ * ciao/Servant_Activator.h:
+
+ New files for facet and consumer activations. We now have a
+ seperate servant activator for facet and consumer ports. The
+ servant activator acts like a factory activating the right port
+ activators which can create the right servant for every port.
+
+ * ciao/Port_Activator.cpp:
+ * ciao/Port_Activator.h:
+ * ciao/Port_Activator_T.cpp:
+ * ciao/Port_Activator_T.h:
+
+ Concrete port activators for every port.
+
+ * ciao/CCM_Core.mpc:
+
+ Added the new files for building.
+
+ * ciao/Container_Base.cpp:
+ * ciao/Container_Base.h:
+ * ciao/Container_Base.inl:
+
+ Changes to the Container to use the above servant activator. The
+ continer creates the servant activator and sets that in the POA
+ meant for facet and consumers.
+
+Fri Sep 10 23:08:15 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/Container_Base.cpp:
+ * DAnCE/ciao/Container_Base.h:
+ * ciao/Container_Base.cpp:
+ * ciao/Container_Base.h:
+
+ Reverted this change "Sat Sep 11 03:35:24 2004 Balachandran
+ Natarajan <bala@dre.vanderbilt.edu>"
+
+Fri Sep 10 22:53:58 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/CCM_Core.mpc:
+ * ciao/CCM_Core.mpc:
+
+ Linked with TAO_Utils library
+
+Sat Sep 11 03:35:24 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/Container_Base.cpp:
+ * DAnCE/ciao/Container_Base.h:
+ * ciao/Container_Base.cpp:
+ * ciao/Container_Base.h:
+
+ Removed install_servant () since it is not used.
+
+Fri Sep 10 22:28:45 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Changes to accomodate the accessor renaming.
+
+Sat Sep 11 03:22:06 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * ciao/Container_Base.cpp:
+ * ciao/Container_Base.h:
+ * ciao/Container_Base.inl:
+ * DAnCE/ciao/Container_Base.cpp:
+ * DAnCE/ciao/Container_Base.h:
+ * DAnCE/ciao/Container_Base.inl:
+
+ Made a few changes. They are
+
+ . Added a second POA into the container. One of the POA's will
+ host the component and the other POA will host the facet and
+ consumer servants. Obviously the two POA's have different sets
+ of policies. The new POA is primarily targeted to activate
+ facet and consumer servants on demand.
+
+ . Renamed the accessor to the ORB and POA. Made them const
+ methods
+
+ . Improved documentation and a number of costeic changes.
+
+
+ * DAnCE/RepositoryManager/Repository_Manager.cpp:
+ * DAnCE/RepositoryManager/Update_Plan.cpp:
+ * DAnCE/RepositoryManager/Update_Plan.h:
+
+ BUnch of cosmetic changes to be conformant with ACE+TAI coding
+ guidelines.
+
+ * DAnCE/ciao/Servant_Impl_Base.cpp:
+ * DAnCE/ciao/Servant_Impl_T.cpp:
+ * ciao/Servant_Impl_Base.cpp:
+ * ciao/Servant_Impl_T.cpp:
+
+ Fixed simple compilation errors and warnings.
+
+Thu Sep 9 17:07:59 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tests/IDL3/Events/Abstract/Abstract.idl:
+
+ Uncommented IDL testing multiple inheritance of eventtypes.
+
+Thu Sep 9 10:30:22 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * DAnCE/ciao/Container_Base.cpp:
+ * DAnCE/ciao/Container_Base.h:
+ * ciao/Container_Base.cpp:
+
+ Added generate_reference() method to DAnCE version of
+ Container_Base, and fixed ACE_CHECK macro mistake in
+ both versions.
+
+Wed Sep 8 11:52:45 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * DAnCE/ciao/Servant_Impl_Base.h:
+ * DAnCE/ciao/Servant_Impl_Base.cpp:
+
+ Updated files with changes made to the corresponding files
+ in regular CIAO/ciao.
+
+Tue Sep 7 22:14:43 2004 Ossama Othman <ossama@dre.vanderbilt.edu>
+
+ * CCF/CCF/IDL2/SemanticGraph/Elements.hpp:
+ * CCF/CCF/IDL2/Traversal/Elements.hpp:
+ * CIDLC/ExecutorMappingGenerator.cpp:
+
+ Fixed unused argument warnings.
+
+Tue Sep 7 15:48:19 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * DAnCE/ciao/Servant_Impl_Base.cpp:
+ * ciao/Servant_Impl_Base.cpp:
+
+ Cosmetic changes.
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+ * DAnCE/ciao/Servant_Impl_T.cpp:
+ * DAnCE/ciao/Servant_Impl_T.h:
+ * ciao/Servant_Impl_T.cpp:
+ * ciao/Servant_Impl_T.h:
+
+ Moved several methods from the generated servant class to the
+ template Servant_Impl base class.
+
+Tue Sep 7 10:44:10 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/CIDLC.mpc:
+ * CIDLC/CIDLC.vcproj:
+ * CIDLC/RepositoryIdGenerator.cpp:
+ * CIDLC/RepositoryIdGenerator.hpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+ * CIDLC/cidlc.cpp:
+
+ - Updated the RepositoryIdGenerator and re-added the source
+ and header files to the build. This generator creates
+ repository ids for interfaces and eventtypes, and stores
+ them internally in a context variable for later access
+ in code generation. It also handles modifications to the
+ repository ids stemming from 'typeprefix' or 'typeid'
+ declarations.
+
+ - Added generation of 'provide_<facet name>_i' and
+ 'get_consumer_<event consumer name>_i' methods in the servant,
+ which create dummy object references and store them in the
+ appropriate port table in the servant base class.
+
+ - Re-implemented the generated 'provide_<facet name>' and
+ 'get_consumer_<event consumer name>' methods. They now
+ use the container's POA to activate the dummy objects
+ created by the corresponding _i methods described above.
+ The activation takes place upon the first outside access
+ of these objects. If an object has already been activated,
+ it will simply be found in its port table and returned.
+ Thanks to Bala for the prototype code for this feature.
+
+ * ciao/Container_Base.cpp:
+ * ciao/Container_Base.h:
+
+ Added 'generate_reference' utility method called by the
+ '_i' methods described above.
+
+ * ciao/Servant_Impl_Base.cpp:
+ * ciao/Servant_Impl_Base.h:
+
+ Added 'lookup_facet' and 'lookup_consumer' methods used in
+ generated servant code to determine if a desired object has
+ been activated already (and added to a port table) or not.
+
+Mon Aug 30 12:52:28 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * performance-tests/Benchmark/Benchmark.mpc:
+
+ Fixes for link errors in the daily builds
+
+Sun Aug 29 19:25:21 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * tools/XML_Helpers/XMLHelpers.mpc:
+
+ Fix for link errors in Debian_Core builds.
+
+Sun Aug 29 19:02:42 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/CCM_Core.mpc:
+
+ Added valuetype seperately to the Deployment_svnt project.
+
+Sun Aug 29 18:10:13 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/examples/BasicSP/BMClosedED/BMClosedED_svnt.h:
+ * DAnCE/examples/BasicSP/BMDevice/BMDevice_svnt.h:
+ * DAnCE/examples/BasicSP/BMDisplay/BMDisplay_svnt.h:
+ * DAnCE/examples/BasicSP/EC/EC_svnt.h:
+
+ These files should not be in the repository.
+
+Sat Aug 28 18:44:00 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/examples/BasicSP/BMDevice/BMDevice.mpc:
+
+ Fixed a compile erros in the daily builds.
+
+Sat Aug 28 09:22:15 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/examples/BasicSP/BasicSP.mpc:
+ * DAnCE/examples/BasicSP/BMClosedED/BMClosedED.mpc:
+ * DAnCE/examples/BasicSP/BMDevice/BMDevice.mpc:
+ * DAnCE/examples/BasicSP/BMDisplay/BMDisplay.mpc:
+ * DAnCE/examples/BasicSP/EC/EC.mpc:
+
+ Fixed the project names and shared librray names so that they
+ don't collide with the regual BasicSP test. Ideally there
+ shouldn't be any duplicate code. I waill talk to Gan about
+ this.
+
+Thu Aug 26 16:45:10 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tests/IDL3/Lookup/README:
+ * tests/IDL3/Lookup/lookup_test.idl:
+ * tests/IDL3/Lookup/lookup_test.mpc:
+
+ New files, a test for the IDL compiler lookup of declarations
+ in base interfaces, valuetypes, components, and homes, and
+ in supported interfaces, referenced by the local name in the
+ derived IDL type. Thanks to Boris Kolpackov
+ <boris@dre.vanderbilt.edu> for reporting the bug and for
+ providing an example IDL file that illustrates the various
+ cases.
+
+Thu Aug 26 13:24:40 2004 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/examples/BaiscSP/*.*:
+
+ Created above directory and subdictories to add an example for
+ using DAnCE.
+
+Thu Aug 26 12:28:40 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/CIDLC.vcproj:
+
+ Added missing files to project.
+
+Thu Aug 26 11:25:39 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tests/CIDL/CodeGen/CodeGen.mpc:
+
+ Changed dependency from ciao_server to ciao_servant.
+
+Wed Aug 25 11:28:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Config_Handlers/DnC_Dump.h:
+ Removed not needed qualifier
+
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.h:
+ Removed not needed ; after namespace closure
+
+Wed Aug 25 11:24:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Config_Handlers/Config_Error_Handler.h:
+ Removed not needed ; after namespace closure
+
+Tue Aug 24 11:31:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Config_Handlers/Config.h:
+ Removed not needed ; after namespace closure
+
+Mon Aug 23 21:47:10 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/XSCRT/Elements.hpp:
+ * DAnCE/Config_Handlers/XSCRT/Elements.ipp:
+ * DAnCE/Config_Handlers/XSCRT/Elements.tpp:
+ * DAnCE/Config_Handlers/XSCRT/ExtendedTypeInfo.hpp:
+ * DAnCE/Config_Handlers/XSCRT/ExtendedTypeInfo.ipp:
+ * DAnCE/Config_Handlers/XSCRT/Parser.hpp:
+ * DAnCE/Config_Handlers/XSCRT/Parser.ipp:
+ * DAnCE/Config_Handlers/XSCRT/Parser.tpp:
+ * DAnCE/Config_Handlers/XSCRT/Traversal.hpp:
+ * DAnCE/Config_Handlers/XSCRT/Traversal.ipp:
+ * DAnCE/Config_Handlers/XSCRT/Traversal.tpp:
+ * DAnCE/Config_Handlers/XSCRT/XMLSchema.hpp:
+ * DAnCE/Config_Handlers/XSCRT/XMLSchema.ipp:
+ * DAnCE/Config_Handlers/XSCRT/XMLSchema.tpp:
+
+ Added XSCRT 0.0.4 into the repository to compile the handlers.
+
+Mon Aug 23 21:32:50 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CIDLC/TypeNameEmitter.cpp:
+
+ Fixed a compiler error in the daily builds showing up from a
+ non-const declaration of a char * for extraction into an Any.
+
+ * DAnCE/Config_Handlers/Config.h:
+
+ Deployment.h has been renamed to Config.h
+
+ * DAnCE/Config_Handlers/Process_Element.h:
+ * DAnCE/Config_Handlers/Basic_Handler.h:
+
+ Include Config.h
+
+ * DAnCE/Config_Handlers/Basic_Deployment_Data.cpp:
+ * DAnCE/Config_Handlers/Basic_Deployment_Data.hpp:
+ * DAnCE/Config_Handlers/Deployment.cpp:
+ * DAnCE/Config_Handlers/Deployment.hpp:
+ * DAnCE/Config_Handlers/ccd.cpp:
+ * DAnCE/Config_Handlers/ccd.hpp:
+ * DAnCE/Config_Handlers/cdd.cpp:
+ * DAnCE/Config_Handlers/cdd.hpp:
+ * DAnCE/Config_Handlers/cdp.cpp:
+ * DAnCE/Config_Handlers/cdp.hpp:
+ * DAnCE/Config_Handlers/cid.cpp:
+ * DAnCE/Config_Handlers/cid.hpp:
+ * DAnCE/Config_Handlers/cpd.cpp:
+ * DAnCE/Config_Handlers/cpd.hpp:
+ * DAnCE/Config_Handlers/iad.cpp:
+ * DAnCE/Config_Handlers/iad.hpp:
+ * DAnCE/Config_Handlers/pcd.cpp:
+ * DAnCE/Config_Handlers/pcd.hpp:
+ * DAnCE/Config_Handlers/toplevel.cpp:
+ * DAnCE/Config_Handlers/toplevel.hpp:
+ * DAnCE/Config_Handlers/Config_Handlers.mpc:
+
+ Generated code from XSC which is going to be used for the next
+ generation handlers. They have been added in the MPC but guarded
+ with requires += dummy_label since they give lot of warnings.
+
+Mon Aug 23 08:02:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc:
+ Fixed typo in vpath
+
+Sun Aug 22 22:23:12 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/Config_Handlers.mpc:
+
+ Fixed VC6 compilation errors.
+
+Mon Aug 23 01:07:24 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/StandardConfigurator_Impl.cpp:
+ * ciao/StandardConfigurator_Impl.cpp:
+
+ Fixed unused variable warnings.
+
+Sun Aug 22 21:28:34 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/Servant_Impl_Base.cpp:
+ * DAnCE/ciao/Servant_Impl_Base.h:
+ * DAnCE/ciao/StandardConfigurator_Impl.cpp:
+ * DAnCE/ciao/StandardConfigurator_Impl.h:
+ * DAnCE/ciao/CCM_Core.mpc:
+
+ Added these files to the DAnCE builds. These were from the
+ following change
+
+ Tue Aug 17 14:29:00 2004 Jules White <jules@dre.vanderbilt.edu>
+
+ * ciao/CCM_Core.mpc:
+ * ciao/Servant_Impl_Base.cpp:
+ * ciao/Servant_Impl_Base.h:
+ * ciao/StandardConfigurator_Impl.cpp:
+ * ciao/StandardConfigurator_Impl.h:
+
+ Fixed compilation errors in builds where exceptions have been
+ turned off.
+
+Sun Aug 22 22:11:49 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.cpp:
+
+ Fixed redeclaration error in VC6 builds.
+
+Sun Aug 22 20:08:10 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Fixed unused variable warnings in the generated code.
+
+Sun Aug 22 17:06:44 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * tools/IDL3_to_IDL2/be_global.cpp:
+ * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.cpp:
+
+ Fixed unused variable warnings in our daily builds.
+
+Sun Aug 22 16:26:01 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * performance-tests/Protocols/Receiver/Receiver.mpc:
+
+ Fixed a compile error in our daily builds.
+
+Fri Aug 20 16:01:55 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc:
+
+ Fixed typo in source file name.
+
+Fri Aug 20 10:39:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/ciao/Container_Base.h:
+ Fixed compile errors
+
+Fri Aug 20 07:32:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Container_Base.h:
+ Fixed compile errors
+
+Thu Aug 19 17:13:22 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/Literals.cpp:
+ * CIDLC/Literals.hpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+ * CIDLC/TypeNameEmitter.cpp:
+ * CIDLC/TypeNameEmitter.hpp:
+
+ Added code generation for the set_attributes() method called
+ on the servant by the deployer.
+
+Thu Aug 19 16:09:45 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/Container_Base.h:
+ * ciao/Container_Base.h:
+
+ Fixed a compilation error reported by Roland Schimmack <Roland
+ dot Schimmack at gmx dot de>
+
+Thu Aug 19 08:44:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * PROBLEM-REPORT-FORM:
+ Ask for the default.features file used by MPC.
+
+Wed Aug 18 14:21:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeManager/NodeDaemon_Impl.h:
+ Added missing pragma pop
+
+Tue Aug 17 14:29:00 2004 Jules White <jules@dre.vanderbilt.edu>
+
+ * CIAO/ciao/Servant_Impl_Base.h:
+ * CIAO/ciao/Servant_Impl_Base.cpp:
+ Added a method to create and return the StandardConfigurator for a component.
+ Overrided _default_POA so that it returns the POA of the servant's container.
+
+ * CIAO/ciao/StandardConfigurator_Impl.h:
+ * CIAO/ciao/StandardConfigurator_Impl.cpp:
+ Created an implementation of the StandardConfigurator interface.
+
+Mon Aug 16 22:15:52 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/tests/NodeApplicationTest/RoundTrip_exec.cpp:
+ * DAnCE/tests/NodeApplicationTest/RoundTrip_exec.h:
+
+ Fixed compilation errors in builds where exceptions have been
+ turned off.
+
+Mon Aug 16 22:09:52 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * performance-tests/Protocols/Sender/Sender.mpc:
+
+ Fix for link errors on the scoreboard.
+
+Mon Aug 16 21:01:49 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * performance-tests/Benchmark/Benchmark.mpc:
+
+ Fix for link errors on the scoreboard.
+
+Mon Aug 16 16:44:13 2004 J.T. Conklin <jtc@acorntoolworks.com>
+
+ * CIAO/DAnCE/ExecutionManager/Execution_Manager.cpp:
+ * CIAO/DAnCE/NodeManager/Node_Daemon.cpp:
+ * CIAO/DAnCE/ciao/CCM_Container.idl:
+ * CIAO/ciao/CCM_Container.idl:
+ Changed #include "orbsvcs/orbsvcs/..." to #include "orbsvcs/...".
+
+Mon Aug 16 16:36:49 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.cpp:
+
+ Changed conversion for eventtypes to generate, instead of the
+ original eventtype, a valuetype with Components::EventBase added
+ to its inheritance list. This is completely equivalent to the
+ original eventtype and has the advantage that it eliminates the
+ need to use the -Sm option (disabling CCM equivalent IDL
+ preprocessing) when running the IDL compiler on a converted
+ file. Thanks to Bala Natarajan <bala@dre.vanderbilt.edu> for
+ the suggestion.
+
+Mon Aug 16 14:14:15 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.idl:
+
+ Do not do the compile the implied data part of the IDL.
+
+Mon Aug 16 12:42:59 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/CAD_Handler.h:
+ * DAnCE/Config_Handlers/CEPE_Handler.h:
+ * DAnCE/Config_Handlers/CPK_Handler.h:
+ * DAnCE/Config_Handlers/CPR_Handler.h:
+ * DAnCE/Config_Handlers/Cap_Handler.h:
+ * DAnCE/Config_Handlers/CompIntrDesc_Handler.h:
+ * DAnCE/Config_Handlers/CompPkgDesc_Handler.h:
+ * DAnCE/Config_Handlers/DT_Handler.h:
+ * DAnCE/Config_Handlers/Domain_Handler.h:
+ * DAnCE/Config_Handlers/ERE_Handler.h:
+ * DAnCE/Config_Handlers/IAD_Handler.h:
+ * DAnCE/Config_Handlers/ID_Handler.h:
+ * DAnCE/Config_Handlers/IR_Handler.h:
+ * DAnCE/Config_Handlers/MID_Handler.h:
+ * DAnCE/Config_Handlers/NIA_Handler.h:
+ * DAnCE/Config_Handlers/PCI_Handler.h:
+ * DAnCE/Config_Handlers/PC_Handler.h:
+ * DAnCE/Config_Handlers/Plan_Handler.h:
+ * DAnCE/Config_Handlers/Process_Element.h:
+ * DAnCE/Config_Handlers/Property_Handler.h:
+ * DAnCE/Config_Handlers/RS_Handler.h:
+ * DAnCE/Config_Handlers/RUK_Handler.h:
+ * DAnCE/Config_Handlers/Requirement_Handler.h:
+ * DAnCE/Config_Handlers/SPK_Handler.h:
+ * DAnCE/Config_Handlers/SP_Handler.h:
+ * DAnCE/Config_Handlers/TPD_Handler.h:
+ * DAnCE/Config_Handlers/Utils.h:
+
+ Use ciao/ to include any header files from core ciao.
+
+ * DAnCE/ciao/CCM_Core.mpc:
+ * DAnCE/tests/Config_Handlers/handler_test.mpb:
+ * DAnCE/tests/NodeApplicationTest/NodeAppTest.mpc:
+
+ Use the right libraries for linking. This should probably
+ address some of the core build errors on the scoreboard.
+
+Sun Aug 15 18:32:49 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc:
+ * tools/IDL3_to_IDL2/TAO_IDL3_TO_IDL2_BE_Export.h:
+ * tools/IDL3_to_IDL2/be_extern.h:
+ * tools/IDL3_to_IDL2/be_global.cpp:
+ * tools/IDL3_to_IDL2/be_global.h:
+ * tools/IDL3_to_IDL2/be_helper.cpp:
+ * tools/IDL3_to_IDL2/be_helper.h:
+ * tools/IDL3_to_IDL2/be_init.cpp:
+ * tools/IDL3_to_IDL2/be_produce.cpp:
+ * tools/IDL3_to_IDL2/be_sunsoft.cpp:
+ * tools/IDL3_to_IDL2/be_sunsoft.h:
+ * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.cpp:
+ * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.h:
+ * tools/IDL3_to_IDL2/README:
+
+ New files implementing a tool that inputs an IDL file with IDL3
+ constructs and generates another IDL file with the IDL3
+ constructs converted to the spec-defined IDL2 equivalents. Using
+ the generated file instead of the original one in applications
+ will allow the developer to reference the IDL2 equivalent types
+ in application IDL, rather than just in C++ code as before.
+ The generated IDL file has a '_IDL2' suffix added to the
+ original file name just before the '.idl' extension.
+
+Sun Aug 15 09:17:59 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * performance-tests/Benchmark/Benchmark.mpc:
+
+ Added missing libraries as reported by our daily builds.
+
+Sun Aug 15 09:12:36 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/tests/Config_Handlers/handler_test.mpb:
+
+ Fixed the handlers to link in CIAO_DnC_Container too.
+
+Sat Aug 14 14:44:24 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/Config_Handlers.mpc:
+
+ Do not include /usr/lib to be in libpaths. This is odd and
+ shouldn't be there at the application level. Applications should
+ only be bothered about using $XERCESCROOT and the like. If the
+ application doesn't specify the compiler, linker and the loader
+ knows where to pick things from.
+
+Sat Aug 14 14:07:53 2004 Aniruddha Gokhale <a.gokhale@vanderbilt.edu>
+
+ * DAnCE/NodeManager/Node_Daemon.cpp:
+
+ Included "ace/os_include/os_netdb.h since otherwise the
+ MAXHOSTNAMELEN constant was not found.
+
+Sat Aug 14 15:36:28 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/NodeManager/NodeDaemon_Impl.cpp:
+ * DAnCE/NodeManager/NodeDaemon_Impl.h:
+ * DAnCE/NodeManager/Node_Daemon.cpp:
+
+ Cosmetic fixes for fuzz errors and other simple fixes for the
+ daily builds.
+
+ * DAnCE/NodeManager/README:
+
+ Added a README file in the directory.
+
+Sat Aug 14 04:20:44 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.h:
+ * DAnCE/ciao/ComponentsC.h:
+ * ciao/ComponentsC.h:
+
+ Removed a trailing ; at the end of namespace closure. g++-3.4.1
+ starts getting seizures once it locates a trailing ;.
+
+Sat Aug 14 03:29:18 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/tests/Config_Handlers/handler_test.mpb:
+ * DAnCE/tests/NodeApplicationTest/NodeAppTest.mpc:
+ * tools/XML_Helpers/XMLHelpers.mpc:
+
+ Tried fixing some warnings and errors in the builds. I am not
+ able to reproduce it and so I am taking a blind shot.
+
+Thu Aug 12 14:14:00 Jules White <jules@dre.vanderbilt.edu>
+
+ * docs/schema/cdp.xsd:
+ * docs/schema/Modified_Deployment.xsd:
+
+ Changed the schema so that it was more compliant with the spec.
+
+Thu Aug 12 15:25:44 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/NEWS:
+ * DAnCE/ciao/Servant_Impl_T.cpp:
+ * DAnCE/ciao/Servant_Impl_T.h:
+
+ Updates at this
+
+Thu Aug 12 11:35:44 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/Servant_Impl_T.cpp:
+ * DAnCE/ciao/Servant_Impl_T.h:
+
+ Propogating the changes from "Mon Aug 9 11:38:04 2004 Jeff
+ Parsons <j.parsons@vanderbilt.edu>" to DAnCE.
+
+ * DAnCE/tests/Config_Handlers/Handler_Test.cpp:
+ * DAnCE/tests/Config_Handlers/Handler_Test.h:
+
+ Cleaned up things so that it is more portable.
+
+ * DAnCE/tests/Config_Handlers/handler_test.mpb:
+
+ Put Handler_Test as a template file.
+
+Thu Aug 12 16:20:19 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/tests/Config_Handlers/Handler_Test.cpp:
+ * DAnCE/tests/Config_Handlers/Handler_Test.h:
+ * DAnCE/tests/Config_Handlers/Handler_Test.i:
+
+ Fixed fuzz errors.
+
+Wed Aug 11 22:37:31 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/NodeManager/Node_Daemon.cpp:
+ * tests/RTCCM/DiffServ/Sender/Sender_exec.cpp:
+
+ Fixed fuzz errors.
+
+Wed Aug 11 22:15:26 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/tests/NodeApplicationTest/NodeAppTest.mpc:
+
+ Fixed yet another problem with MPC file. Should by now compile
+ clean on the scoreboard. Let us see hwo it goes.
+
+Wed Aug 11 20:08:58 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CIDLC/CIDLC.mpc:
+
+ Fixed library paths. This seems to have been busted.
+
+Wed Aug 11 14:38:00 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/Execution_Manager.cpp:
+
+ Made certain parts exception safe and fixed fuzz errors.
+
+ * tests/CIDL/CodeGen/CodeGen.mpc:
+
+ The MPC file was busted which lead to errors in the daily
+ builds.
+
+ * tests/RTCCM/DiffServ/Receiver/Receiver.mpc:
+
+ Fixed errors in he MPC file.
+
+ * tests/RTCCM/DiffServ/Sender/Sender_exec.cpp:
+
+ Fixed fuzz errors.
+
+Wed Aug 11 12:45:09 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CIDLC/CIDLC.mpc:
+
+ Added new files startting with Exec* into the CIDLC project.
+
+ * CIAOTAO.mwc:
+
+ Added tests section to the above file.
+
+Wed Aug 11 15:08:44 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * tests/CIDL/CodeGen/CodeGen.mpc:
+
+ Fix for the compilation errors in the daily builds.
+
+Mon Aug 9 11:38:04 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * ciao/Servant_Impl_T.cpp:
+ * ciao/Servant_Impl_T.h:
+
+ Moved the body of the destructor and the same_component()
+ method from the generated servant class to the base class.
+
+Sat Aug 7 17:55:59 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DAnCE/tests/NodeApplicationTest/NodeAppTest.mpc:
+
+ Prevented compilation errors if CIDL is not built.
+
+Sat Aug 7 16:43:45 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * tests/CIDL/CodeGen/CodeGen.mpc:
+ * tests/IDL3/Homes/Basic/Basic.mpc:
+
+ Changed the name of the stub library and project names. There
+ was a clash in project and library names.
+
+Thu Aug 5 17:42:56 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ExecImplGenerator.cpp:
+ * CIDLC/ExecImplGenerator.hpp:
+ * CIDLC/ExecImplHeaderGenerator.cpp:
+ * CIDLC/ExecImplHeaderGenerator.hpp:
+ * CIDLC/ExecImplSourceGenerator.cpp:
+ * CIDLC/ExecImplSourceGenerator.hpp:
+
+ New files, which generate empty executor implementation
+ classes (with spec-defined operations filled in and
+ IDL operations and attributes marked for the developer
+ to fill in). This generation is optional, triggered by
+ the CIDL compiler command line option --gen-exec-impl.
+ Two other options --exec-hdr-file-suffix and --exec-src-file-suffix,
+ can override the default generated file extensions of
+ _exec.h and _exec.cpp. Tao others, --exec-hdr-file-regex and
+ --exec-src-file-regex, allow replacement of default generated
+ filenames by pattern matching with regular expressions.
+ And finally, two more, --exec-export-include,
+ overrides the default generated export macro header file,
+ and --exec-export-macro, overrides the default generated
+ export macro for the executor implementation file.
+
+ * CIDLC/Literals.cpp:
+ * CIDLC/Literals.hpp:
+ * CIDLC/ServantGenerator.cpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantHeaderGenerator.hpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+ * CIDLC/TypeNameEmitter.cpp:
+ * CIDLC/TypeNameEmitter.hpp:
+ * CIDLC/cidlc.cpp:
+
+ - Added generation of (unimplemented) home finder
+ operations.
+
+ - Filled gaps and organized the command line options
+ for servant filename suffixes and regular expressions
+ to replace default generated filenames.
+
+ - Added a new type name emitter that generates the
+ appropriate NULL return value for any type.
+
+ * tests/CIDL/CodeGen/Basic.idl:
+ * tests/CIDL/CodeGen/Basic_stub_export.h:
+ * tests/CIDL/CodeGen/Basic_svnt_export.h:
+ * tests/CIDL/CodeGen/CodeGen.cidl:
+ * tests/CIDL/CodeGen/CodeGen.idl:
+ * tests/CIDL/CodeGen/CodeGen.mpc:
+ * tests/CIDL/CodeGen/CodeGen_exec_export.h:
+ * tests/CIDL/CodeGen/CodeGen_stub_export.h:
+ * tests/CIDL/CodeGen/CodeGen_svnt_export.h:
+ * tests/CIDL/CodeGen/README:
+
+ New test, for servant and executor implemtation code
+ generation of the CIDL compiler. This test target
+ correct code generation for many component-specific
+ features of IDL - catching operations and attributes
+ for supported interfaces, operations and attributes
+ for parents of supported interfaces, home operations
+ from base homes, inherited home factory and finder
+ operations, etc. The object of the test is to check
+ that the generated code builds and links successfully.
+
+Thu Aug 5 15:49:10 2004 Ossama Othman <ossama@dre.vanderbilt.edu>
+
+ * DAnCE/tests/NodeApplicationTest/RoundTrip_exec.h:
+
+ Made destructors in reference count enabled classes protected to
+ enforce proper memory management through the reference counting
+ mechansism (i.e. prevent directly calling operator delete() on
+ the reference counted object).
+
+ (cube_long):
+ * DAnCE/tests/NodeApplicationTest/RoundTrip_exec.cpp (cube_long):
+ * performance-tests/Benchmark/RoundTrip/RoundTrip_exec.h
+ (makeCall):
+ * performance-tests/Benchmark/RoundTrip/RoundTrip_exec.cpp
+ (makeCall):
+
+ Added missing emulated exception parameter. Fixes compile-time
+ errors in emulated exception builds.
+
+ * examples/OEP/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.cpp
+ (ccm_activate):
+
+ Corrected emulated excepton parameter. Fixes a compile-time
+ error in emulated exception builds.
+
+ * performance-tests/Protocols/Controller/Controller.mpc:
+ * tests/RTCCM/DiffServ/Receiver/Receiver.mpc
+ (DiffServ_Receiver_exec):
+ * tests/RTCCM/DiffServ/Sender/Sender.mpc (DiffServ_Sender_exec):
+
+ Added missing "requires += exceptions". These tests will not
+ compile in emulated exception configurations.
+
+ * performance-tests/Benchmark/RoundTrip/RoundTrip_exec.cpp
+ (get_latency):
+
+ Fixed unused parameter warning in emulated exception builds.
+
+Thu Aug 5 11:48:49 2004 Ossama Othman <ossama@dre.vanderbilt.edu>
+
+ * performance-tests/Protocols/Controller/Controller.mpc:
+
+ Corrected library link order. Addresses undefined reference
+ link-time errors in static builds.
+
+ * tools/XML_Helpers/XMLHelpers.mpc (Helper_Test):
+
+ Added missing TAO_IFR_Client library to "libs" variable.
+ Addresses undefined reference link-time errors in static
+ builds.
+
+Thu Aug 5 13:28:49 2004 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * docs/schema/ciaopolicy.xsd:
+
+ Schema describing ORB policy configurations.
+
+Thu Aug 5 11:56:03 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CCF/CCF/CodeGenerationKit/IndentationImplanter.hpp:
+
+ Changed template template parameter of class Implanter from
+ "Buffer" to "BufferType" because the former was causing a
+ problem with VC 7.1 clashing with a class Buffer in another
+ file.
+
+Thu Aug 5 08:48:50 2004 Krishnakumar B <kitty@nospam.invalid.domain>
+
+ * CIAO-INSTALL.html: Updated to reflect dependency on Xerces and
+ native exceptions.
+
+Wed Aug 4 22:50:17 2004 Ossama Othman <ossama@dre.vanderbilt.edu>
+
+ * examples/Hello/Sender/Sender.mpc (Hello_Starter):
+ * performance-tests/Protocols/Controller/Controller.mpc (perf):
+ * tools/XML_Helpers/XMLHelpers.mpc (Helper_Test):
+
+ Fixed static build link-time errors caused by not linking the
+ appropriate libraries.
+
+Wed Aug 4 22:31:24 2004 Ossama Othman <ossama@dre.vanderbilt.edu>
+
+ * docs/tutorial/Hello/client.cpp (main):
+
+ Fixed typo that caused a syntax error.
+
+Wed Aug 4 17:24:18 2004 Ossama Othman <ossama@dre.vanderbilt.edu>
+
+ * examples/OEP/Display/RateGen/RateGen_exec.cpp (create):
+ * performance-tests/Benchmark/LatencyTest.cpp (makeCall):
+ * performance-tests/Benchmark/RoundTripServer/LatencyTest.cpp
+ (makeCall):
+ * tests/RTCCM/Priority_Test/Controllers/Rate_Controller.cpp
+ (create):
+ * tests/RTCCM/Priority_Test/Workers/CB_Worker_exec.cpp:
+ * tests/RTCCM/Priority_Test/Workers/IOB_Worker_exec.cpp:
+
+ Fixued unused parameter warnings.
+
+ * docs/tutorial/Hello/hello_exec.cpp:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip_exec.cpp:
+
+ Fixed emulated exception usage.
+
+ Fixed unused argument warnings.
+
+ * docs/tutorial/Hello/client.cpp (main):
+ * docs/tutorial/Hello/simple_client.cpp (main):
+ * performance-tests/Benchmark/Multi_Threaded/client.cpp (main):
+ * performance-tests/Benchmark/RoundTrip/client.cpp (main):
+ * performance-tests/Benchmark/RoundTripClient/client.cpp (main):
+
+ Fixed CORBA::ORB_init() arguments in emulated exception case.
+
+ Added missing ACE_TRY_CHECK after CORBA::ORB_init() call.
+
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec.cpp
+ (start):
+
+ Fixed emulated exception usage.
+
+ Added missing emulated exception parameter. Fixes a
+ compile-time error.
+
+ Fixed unused parameter warnings.
+
+ * tests/RTCCM/DiffServ/Sender/Sender_exec.cpp:
+
+ Include "ace/OS_NS_unistd.h" to pull in ACE_OS::sleep()
+ declaration.
+
+ * tests/RTCCM/Priority_Test/Controllers/Controller_exec.cpp:
+
+ Include "ace/OS_NS_stdio.h" to pull in ACE_OS::snprintf()
+ declaration.
+
+ Fixed unused parameter warnings.
+
+Wed Aug 4 16:43:43 2004 Ossama Othman <ossama@dre.vanderbilt.edu>
+
+ * DAnCE/tests/NodeApplicationTest/RoundTrip_exec.cpp:
+ * examples/OEP/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.cpp
+ (push_Refresh):
+
+ Fixed emulated exception usage.
+
+ Fixed unused parameter warnings.
+
+ * examples/OEP/BasicSP/EC/EC_exec.cpp (pulse):
+
+ Added missing ACE_TRY_CHECK emulated exception macro. Fixes
+ warning about unused "ACE_TRY_LABEL" label.
+
+ * examples/OEP/Display/RateGen/client.cpp:
+
+ Include "ace/OS_NS_unistd.h" to pull in ACE_OS::sleep()
+ declaration.
+
+ * examples/Hello/Receiver/Receiver_exec.cpp (ccm_activate):
+ * examples/OEP/BasicSP/BMClosedED/BMClosedED_exec.cpp
+ (ccm_activate):
+ * examples/OEP/BasicSP/BMDevice/BMDevice_exec.cpp (ccm_activate):
+ * examples/OEP/BasicSP/BMDisplay/BMDisplay_exec.cpp
+ (ccm_activate):
+ * examples/OEP/Display/GPS/GPS_exec.cpp (get_MyLocation, posx):
+ (posy, create):
+ * examples/OEP/Display/GPS/GPS_tracing_exec.cpp (get_MyLocation):
+ (posx, posy, create):
+ * examples/OEP/Display/NavDisplay/NavDisplay_exec.cpp
+ (ccm_activate):
+ * examples/OEP/Display/NavDisplayGUI_exec/AddNavUnitCmd.cpp
+ (execute):
+ * examples/OEP/Display/NavDisplayGUI_exec/NodeItem.cpp (moveBy):
+ * examples/OEP/Display/NavDisplayGUI_exec/QuitCmd.cpp (execute):
+
+ Fixed unused parameter warnings.
+
+Wed Aug 4 11:16:47 2004 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * Components/ComplexComponent/Attributes/Attributes.idl:
+ * Homes/Attributes/HomeAttributes.idl:
+ * ImpliedIDL/Components/Basic/ICBasic.idl:
+ * Homes/Finder/Finder.idl:
+ * ImpliedIDL/Components/EventSink/ICEventSink.idl:
+ * ImpliedIDL/Components/EventSource/ICEventSource.idl:
+ * ImpliedIDL/Components/Receptacles/ICReceptacles.idl:
+
+ Addressed some build errors on the Fuzz build.
+
+ * Components/ComplexComponent/Attributes/AttributesS.cpp:
+ * Components/ComplexComponent/EventSink/EventSinkS.cpp:
+ * Components/ComplexComponent/EventSource/EventSourceS.cpp:
+ * Components/ComplexComponent/Facets/FacetsS.cpp:
+ * Components/ComplexComponent/Receptacles/ReceptaclesS.cpp:
+ * Components/SimpleComponent/SimpleComponentS.cpp:
+ * Events/Abstract/AbstractS.cpp:
+ * Events/Regular/RegularS.cpp:
+ * Homes/Attributes/HomeAttributesS.cpp:
+ * Homes/Basic/BasicS.cpp:
+ * Homes/Factory/FactoryS.cpp:
+ * Homes/Finder/FinderS.cpp:
+ * Homes/Inheritance/InheritanceS.cpp:
+ * ImpliedIDL/Components/Basic/ICBasicS.cpp:
+ * ImpliedIDL/Components/EventSink/ICEventSinkS.cpp:
+ * ImpliedIDL/Components/EventSource/ICEventSourceS.cpp:
+ * ImpliedIDL/Components/Receptacles/ICReceptaclesS.cpp:
+ * ImpliedIDL/Events/EventsS.cpp:
+ * ImpliedIDL/Homes/HomesS.cpp:
+
+ Removed a bunch of generated code from the repository.
+
+Tue Aug 3 20:18:48 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * docs/schema/cid.xsd:
+ * docs/schema/Deployment.xsd:
+
+ Added some tweaks.
+
+Tue Aug 3 14:25:44 2004 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * IDL3/Components/ComplexComponent/Attributes/Attributes.idl:
+ * IDL3/Components/ComplexComponent/Attributes/Attributes.mpc:
+ * IDL3/Components/ComplexComponent/Attributes/AttributesS.cpp:
+ * IDL3/Components/ComplexComponent/Attributes/Attributes_stub_export.h:
+ * IDL3/Components/ComplexComponent/Attributes/Attributes_svnt_export.h:
+ * IDL3/Components/ComplexComponent/EventSink/EventSink.idl:
+ * IDL3/Components/ComplexComponent/EventSink/EventSink.mpc:
+ * IDL3/Components/ComplexComponent/EventSink/EventSinkS.cpp:
+ * IDL3/Components/ComplexComponent/EventSink/EventSink_stub_export.h:
+ * IDL3/Components/ComplexComponent/EventSink/EventSink_svnt_export.h:
+ * IDL3/Components/ComplexComponent/EventSource/EventSource.idl:
+ * IDL3/Components/ComplexComponent/EventSource/EventSource.mpc:
+ * IDL3/Components/ComplexComponent/EventSource/EventSourceS.cpp:
+ * IDL3/Components/ComplexComponent/EventSource/EventSource_stub_export.h:
+ * IDL3/Components/ComplexComponent/EventSource/EventSource_svnt_export.h:
+ * IDL3/Components/ComplexComponent/Facets/Facets.idl:
+ * IDL3/Components/ComplexComponent/Facets/Facets.mpc:
+ * IDL3/Components/ComplexComponent/Facets/FacetsS.cpp:
+ * IDL3/Components/ComplexComponent/Facets/Facets_stub_export.h:
+ * IDL3/Components/ComplexComponent/Facets/Facets_svnt_export.h:
+ * IDL3/Components/ComplexComponent/Receptacles/Receptacles.idl:
+ * IDL3/Components/ComplexComponent/Receptacles/Receptacles.mpc:
+ * IDL3/Components/ComplexComponent/Receptacles/ReceptaclesS.cpp:
+ * IDL3/Components/ComplexComponent/Receptacles/Receptacles_stub_export.h:
+ * IDL3/Components/ComplexComponent/Receptacles/Receptacles_svnt_export.h:
+ * IDL3/Components/SimpleComponent/SimpleComponent.idl:
+ * IDL3/Components/SimpleComponent/SimpleComponent.mpc:
+ * IDL3/Components/SimpleComponent/SimpleComponentS.cpp:
+ * IDL3/Components/SimpleComponent/SimpleComponent_exec_export.h:
+ * IDL3/Components/SimpleComponent/SimpleComponent_stub_export.h:
+ * IDL3/Components/SimpleComponent/SimpleComponent_svnt_export.h:
+ * IDL3/Events/Abstract/Abstract.idl:
+ * IDL3/Events/Abstract/Abstract.mpc:
+ * IDL3/Events/Abstract/AbstractS.cpp:
+ * IDL3/Events/Abstract/Abstract_stub_export.h:
+ * IDL3/Events/Abstract/Abstract_svnt_export.h:
+ * IDL3/Events/Regular/Regular.idl:
+ * IDL3/Events/Regular/Regular.mpc:
+ * IDL3/Events/Regular/RegularS.cpp:
+ * IDL3/Events/Regular/Regular_stub_export.h:
+ * IDL3/Events/Regular/Regular_svnt_export.h:
+ * IDL3/Homes/Attributes/HomeAttributes.idl:
+ * IDL3/Homes/Attributes/HomeAttributes.mpc:
+ * IDL3/Homes/Attributes/HomeAttributesS.cpp:
+ * IDL3/Homes/Attributes/HomeAttributes_stub_export.h:
+ * IDL3/Homes/Attributes/HomeAttributes_svnt_export.h:
+ * IDL3/Homes/Basic/Basic.idl:
+ * IDL3/Homes/Basic/Basic.mpc:
+ * IDL3/Homes/Basic/BasicS.cpp:
+ * IDL3/Homes/Basic/Basic_stub_export.h:
+ * IDL3/Homes/Basic/Basic_svnt_export.h:
+ * IDL3/Homes/Factory/Factory.idl:
+ * IDL3/Homes/Factory/Factory.mpc:
+ * IDL3/Homes/Factory/FactoryS.cpp:
+ * IDL3/Homes/Factory/Factory_stub_export.h:
+ * IDL3/Homes/Factory/Factory_svnt_export.h:
+ * IDL3/Homes/Finder/Finder.idl:
+ * IDL3/Homes/Finder/Finder.mpc:
+ * IDL3/Homes/Finder/FinderS.cpp:
+ * IDL3/Homes/Finder/Finder_stub_export.h:
+ * IDL3/Homes/Finder/Finder_svnt_export.h:
+ * IDL3/Homes/Inheritance/Inheritance.idl:
+ * IDL3/Homes/Inheritance/Inheritance.mpc:
+ * IDL3/Homes/Inheritance/InheritanceS.cpp:
+ * IDL3/Homes/Inheritance/Inheritance_stub_export.h:
+ * IDL3/Homes/Inheritance/Inheritance_svnt_export.h:
+ * IDL3/ImpliedIDL/Components/Basic/ICBasic.idl:
+ * IDL3/ImpliedIDL/Components/Basic/ICBasic.mpc:
+ * IDL3/ImpliedIDL/Components/Basic/ICBasicS.cpp:
+ * IDL3/ImpliedIDL/Components/Basic/ICBasic_stub_export.h:
+ * IDL3/ImpliedIDL/Components/Basic/ICBasic_svnt_export.h:
+ * IDL3/ImpliedIDL/Components/EventSink/ICEventSink.idl:
+ * IDL3/ImpliedIDL/Components/EventSink/ICEventSink.mpc:
+ * IDL3/ImpliedIDL/Components/EventSink/ICEventSinkS.cpp:
+ * IDL3/ImpliedIDL/Components/EventSink/ICEventSink_stub_export.h:
+ * IDL3/ImpliedIDL/Components/EventSink/ICEventSink_svnt_export.h:
+ * IDL3/ImpliedIDL/Components/EventSource/ICEventSource.idl:
+ * IDL3/ImpliedIDL/Components/EventSource/ICEventSource.mpc:
+ * IDL3/ImpliedIDL/Components/EventSource/ICEventSourceS.cpp:
+ * IDL3/ImpliedIDL/Components:
+
+ Various tests of compilation for IDL3 constructs.
+
+Tue Aug 3 18:36:10 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * docs/schema/README.html:
+
+ File explaining what these new descriptors mean.
+
+ * docs/schema/Basic_Deployment_Data.xsd:
+ * docs/schema/Deployment.xsd:
+ * docs/schema/Modified_Deployment.xsd:
+ * docs/schema/Spec_Defined_Deployment.xsd:
+ * docs/schema/Spec_Defined_XMI.xsd:
+ * docs/schema/ccd.xsd:
+ * docs/schema/cdd.xsd:
+ * docs/schema/cdp.xsd:
+ * docs/schema/cid.xsd:
+ * docs/schema/cpd.xsd:
+ * docs/schema/iad.xsd:
+ * docs/schema/pcd.xsd:
+ * docs/schema/toplevel.xsd:
+ * docs/schema/unused_elements.xsd:
+
+ Sets of schemata that will be used in DAnCE. The meaning of
+ these different schemata have been documented in the
+ README.html.
+
+Sun Aug 1 09:30:37 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * ChangeLogs:
+
+ Created a new directory and moved a bunch of ChangeLog entries
+ there.
+
+Sat Jul 31 11:15:15 2004 Ossama Othman <ossama@dre.vanderbilt.edu>
+
+ * CIAO version 0.4.2 released.
+
+Local Variables:
+add-log-time-format: current-time-string
+End:
diff --git a/modules/CIAO/ChangeLogs/ChangeLog-06a b/modules/CIAO/ChangeLogs/ChangeLog-06a
new file mode 100644
index 00000000000..f2d22b3e963
--- /dev/null
+++ b/modules/CIAO/ChangeLogs/ChangeLog-06a
@@ -0,0 +1,8579 @@
+Tue Apr 18 00:14:56 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h
+
+ Reverted back the two files I accidentally checked in, which
+ should have gone into a branch. :(
+
+Mon Apr 17 18:04:56 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * M docs/tutorials/Quoter/Simple/Distributor/Distributor.mpc
+ * examples/BasicSP/BasicSP.mpc
+ * examples/BasicSP/BMClosedED/BMClosedED.mpc
+ * examples/BasicSP/BMDevice/BMDevice.mpc
+ * examples/BasicSP/BMDisplay/BMDisplay.mpc
+ * examples/BasicSP/EC/EC.mpc
+ * examples/Display/HUDisplay.mpc
+ * examples/Display/GPS/GPS.mpc
+ * examples/Display/NavDisplay/NavDisplay.mpc
+ * examples/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc
+ * examples/Display/RateGen/RateGen.mpc
+ * examples/Hello/Hello_Base/Hello_Base.mpc
+ * examples/Hello/Receiver/Receiver.mpc
+ * examples/Hello/Sender/Sender.mpc
+ * examples/Swapping/Hello_Base/Hello_Base.mpc
+ * examples/Swapping/Receiver/Receiver.mpc
+ * examples/Swapping/Sender/Sender.mpc
+ * tools/Config_Handlers/Config_Handlers.mpc
+
+ Linking fixes for OS X.
+
+
+Mon Apr 17 02:33:44 UTC 2006 Wallace Zhang <zhangw@ociweb.com>
+
+ * RACE/Planners/SimpleBinPacker/SimpleBinPacker.mpc:
+ * tools/Config_Handlers/Config_Handlers.mpc:
+
+ Avoids building with ace_for_tao.
+
+Fri Apr 14 14:50:47 UTC 2006 Wallace Zhang <zhangw@ociweb.com>
+
+ * examples/BasicSP/BMClosedED/BMClosedED.mpc:
+ * examples/BasicSP/BMDisplay/BMDisplay.mpc:
+ * examples/Display/GPS/GPS.mpc:
+ * examples/Display/RateGen/RateGen.mpc:
+ * examples/Hello/Sender/Sender.mpc:
+ * examples/Swapping/Sender/Sender.mpc:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip.mpc:
+ * tests/CIDL/CodeGen/CodeGen.mpc:
+ * tests/Minimum/Receiver/Receiver.mpc:
+
+ Avoids building with ace_for_tao.
+
+Thu Apr 13 19:18:22 UTC 2006 Wallace Zhang <zhangw@ociweb.com>
+
+ * docs/tutorials/Quoter/Simple/Broker/Broker.mpc:
+ * docs/tutorials/Quoter/Simple/Distributor/Distributor.mpc:
+ * examples/BasicSP/BMDevice/BMDevice.mpc:
+ * examples/BasicSP/EC/EC.mpc:
+ * examples/Display/NavDisplay/NavDisplay.mpc:
+ * examples/Hello/Receiver/Receiver.mpc:
+ * examples/Swapping/Receiver/Receiver.mpc:
+ * performance-tests/Benchmark/Benchmark.mpc:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.mpc:
+ * tests/Minimum/Sender/Sender.mpc:
+
+ Avoids building with ace_for_tao.
+
+Apr Thu 13 03:32:35 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * ciaosvcs/Events/CIAO_Events.idl
+
+ Removed this file.
+
+ * ciaosvcs/Events/CIAO_Events.mpc
+
+ Modified to put an empty segment of IDL_Files.
+
+Wed Apr 12 17:51:03 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * NEWS
+
+ Updated the NEWS file.
+
+Wed Apr 12 14:47:14 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/NodeApplication.mpc
+ * DAnCE/NodeManager/Monitor.mpc
+ * DAnCE/NodeManager/NodeManager.mpc
+ * DAnCE/StaticConfigurator/StaticDAnCEParser.mpc
+ * DAnCE/tests/NodeApplicationTest/NodeAppTest.mpc
+ * ciaosvcs/Events/CIAO_Events.mpc
+
+ Fixes for linking errors/warnings on OS X builds.
+
+Tue Apr 11 12:39:14 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/Utils/Utils.mpc:
+ Use exceptions as base project
+
+Tue Apr 11 12:43:14 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Container_Base.cpp:
+ Small simplification
+
+Tue Apr 11 12:22:14 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.mpc:
+ * tests/IDL3/Components/SimpleComponent/SimpleComponent.mpc:
+ Updated base projects to get correct build order
+
+Tue Apr 11 08:43:14 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.cpp:
+ Initialise pointers with 0
+
+Tue Apr 11 06:54:14 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Minimum/Minimum_Base/Minimum.mpc:
+ * tests/IDL3/Lookup/lookup_test.mpc:
+ * tests/IDL3/ImpliedIDL/Homes/Homes.mpc:
+ * tests/IDL3/ImpliedIDL/Events/Events.mpc:
+ * tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.mpc:
+ * tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.mpc:
+ * tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.mpc:
+ * tests/IDL3/Homes/Inheritance/Inheritance.mpc:
+ * tests/IDL3/Homes/Finder/Finder.mpc:
+ * tests/IDL3/Homes/Factory/Factory.mpc:
+ * tests/IDL3/Homes/Basic/Basic.mpc:
+ * tests/IDL3/Homes/Attributes/HomeAttributes.mpc:
+ * tests/IDL3/Events/Regular/Regular.mpc:
+ * tests/IDL3/Events/Abstract/Abstract.mpc:
+ * tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles.mpc:
+ * tests/IDL3/Components/ComplexComponent/Facets/Facets.mpc:
+ * tests/IDL3/Components/ComplexComponent/EventSource/EventSource.mpc:
+ * tests/IDL3/Components/ComplexComponent/EventSink/EventSink.mpc:
+ * tests/IDL3/Components/ComplexComponent/Attributes/Attributes.mpc:
+ * tests/CIDL/CodeGen/CodeGen.mpc:
+ * tests/Bug_2130_Regression/interfaces/ENW.mpc:
+ * performance-tests/Protocols/common/Protocols.mpc:
+ * examples/Swapping/Hello_Base/Hello_Base.mpc:
+ * examples/Hello/Hello_Base/Hello_Base.mpc:
+ * examples/Display/HUDisplay.mpc:
+ * examples/BasicSP/BasicSP.mpc:
+ * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.mpc:
+ Updated base projects to get correct build order
+
+Tue Apr 11 06:35:14 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/CIAO_Events/CIAO_Events_Handlers.mpc:
+ Use base projects to set dependencies
+
+Mon Apr 10 18:48:14 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeApplication/NodeApplication.mpc:
+ Fixed base project
+
+Mon Apr 10 14:29:13 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * TAO/CIAO/ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.cpp
+
+ Modified to make _narrow to be called at the first step
+ when connecting supplier and config. Also modified to
+ make debug statements debug_level controlled.
+
+Mon Apr 10 12:31:14 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/CCM_Core.mpc:
+ Removed commented out line
+
+ * DAnCE/ExecutionManager/ExecutionManager.mpc:
+ * DAnCE/NodeApplication/NodeApplication.mpc:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc:
+ * DAnCE/NodeManager/NodeManager.mpc:
+ * DAnCE/StaticConfigurator/StaticDAnCEParser.mpc:
+ Updated base projects
+
+Mon Apr 10 11:51:14 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciaosvcs/Events/CIAO_Events_Base/CIAO_Events_Base.mpc:
+ Readded ciao_container_dnc
+
+ * ciao/CCM_Core.mpc:
+ Use more base projects
+
+ * DAnCE/Interfaces/Interfaces.mpc:
+ * DAnCE/ExecutionManager/ExecutionManager.mpc:
+ Use other base projects to get correct build order
+
+Mon Apr 10 10:00:14 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciaosvcs/Events/CIAO_Events_Base/CIAO_Events_Base.mpc:
+ Removed ciao_container_dnc
+
+Mon Apr 10 09:38:14 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciaosvcs/Events/CIAO_Events.mpc:
+ Use ciao_rtevent_dnc as base
+
+Mon Apr 10 09:18:14 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.mpc:
+ * ciaosvcs/Events/CIAO_Events.mpc:
+ Use ciao_events_base_dnc as base project
+
+Mon Apr 10 09:15:14 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/CCM_Core.mpc:
+ For Deployment_Stub use ciao_events_base_dnc and ciao_client_dnc
+ as base projects
+
+Mon Apr 10 08:50:14 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciaosvcs/Events/CIAO_Events.mpc:
+ Removed ciao_events_dnc as base project, we are building
+ this lib right now
+
+ * ciaosvcs/Events/CIAO_Events_Base/CIAO_Events_Base.mpc:
+ Use base projects instead of libs
+
+ * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.mpc:
+ Remvoed ciao_events_dnc
+
+Sat Apr 8 15:39:14 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * ciaosvcs/Events/CIAO_Events_Base/CIAO_Events_Base.mpc
+
+ Fixed a linking error in SuSE_CP_Static build.
+
+Fri Apr 7 04:09:33 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h
+
+ Fixed a bug in detecting External connection and Internal
+ connections. Earlier when an external component is detected,
+ not *all* connections associated with this components are
+ purged from the to-be-removed connections list. Added another
+ helper method <purge_connections> to accomplish this task.
+
+ Modified to enforce passivation occured on all components
+ before any connections are removed.
+
+Fri Apr 7 03:55:46 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+
+ Fixed a bug when redeploying components using the same set
+ of NodeManagers. Earlier when destroying applications or
+ components, internal components and external/shared components
+ are not all unbinded from the map, which causes duplicate
+ instance exception thrown.
+
+Thu Apr 6 16:01:30 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CCF/CCF/CompilerElements/TokenStream.hpp:
+
+ Added empty virtual destructor to template base class, to
+ eliminate bogus GCC warnings.
+
+Thu Apr 6 15:22:31 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * ciaosvcs/Events/CIAO_Events.mpc
+
+ Fixed linking errors on WinXP_BCB6_Pro_Dynamic_Release build.
+
+ * examples/Hello/descriptors_shared_components/deploymentplan.cdp
+ * examples/Hello/descriptors_shared_components/deploymentplan_shared_components.cdp
+
+ Modified to illustrate the shared components scenario.
+
+Thu Apr 6 14:54:59 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * ciaosvcs/Events/CIAO_EventService_Factory_impl.h
+ * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.h
+
+ Some cosmestic changes.
+
+Thu Apr 6 08:20:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/CCM_Component.idl:
+ Removed the forward declaration of IRObject and just include
+ ciao/CCM_Component.idl. The forward declaration is causing
+ problems with the versioned namespace support, will investigate
+ this later
+
+Wed Apr 5 20:57:32 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * TAO/CIAO/ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.cpp
+
+ Make debug statement debug_level controlled.
+
+Wed Apr 5 18:49:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/CIAO_Events/CIAOEvents.hpp:
+ Fixed compile errors
+
+Wed Apr 5 13:18:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.h:
+ Fixed pragma once warning
+
+ * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.cpp:
+ Fixed conversion warning
+
+Wed Apr 5 12:24:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/Basic_Deployment_Data.hpp:
+ Fixed compile errors
+
+Tue Apr 4 18:11:37 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * ciaosvcs/Events/CIAO_EventService_Factory_impl.cpp
+ * ciaosvcs/Events/CIAO_EventService_Factory_impl.h
+
+ Fixed an warning in WinXP_BCB6_Pro_Dynamic_Debug build
+ by modifying the name of the original "init" method.
+
+Tue Apr 4 17:27:52 UTC 2006 xiong,ming <ming.xiong@vanderbilt.edu>
+
+ * tools/Config_Handlers/CIAO_Events/test.cpp
+
+ Fixed an warning.
+
+Mon Apr 3 20:00:11 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/Literals.hpp:
+ * CIDLC/Literals.cpp:
+
+ Changed an enum value 'SIZE' to 'LIT_SIZE' to avoid an
+ apparent conflict with something in WinDef.h on
+ Windows.
+
+Thu Mar 30 18:28:32 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * ciao/Deployment_Events.idl
+ * ciaosvcs/Events/CIAO_Events_Base/CIAO_EventServiceBase.cpp
+
+ Fixed fuzz errors.
+
+Thu Mar 30 17:16:17 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * ciaosvcs/Events/CIAO_Direct/*
+
+ Removed all files under this directory since they are
+ no longer used.
+
+Thu Mar 30 17:23:12 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * tools/Config_Handlers/Config_Handlers.mpc
+
+ Added link dependency to CIAO_Events_Handler project.
+
+Thu Mar 30 16:38:25 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * CIAO_DAnCE.mwc
+ * CIAO_TAO.mwc
+ * CIAO_TAO_DAnCE.mwc
+
+ Added "ciaosvcs" into the workspace.
+
+ * ciao/CCM_Core.mpc
+ * ciao/CCM_Event.idl
+ * ciao/Container_Base.cpp
+ * ciao/Container_Base.h
+ * ciao/Deployment_Core.idl
+ * ciao/Deployment_Data.idl
+ * ciao/Deployment_Events.idl
+
+ Added an "CIAO_DnC_Events" project. Enhanced Deployment_Core.idl
+ to support configuring and deploying pub/sub services.
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp
+ * DAnCE/NodeApplication/NodeApplication_Impl.h
+ * DAnCE/NodeApplication/NodeApplication_Impl.inl
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+
+ Enhanced DAnCE to support pub/sub services integration.
+
+ * ciaosvcs/Events/CIAO_EventService_Factory_impl.cpp
+ * ciaosvcs/Events/CIAO_EventService_Factory_impl.h
+ * ciaosvcs/Events/CIAO_Events.idl
+ * ciaosvcs/Events/CIAO_Events.mpc
+ * ciaosvcs/Events/CIAO_Events_Export.h
+ * ciaosvcs/Events/CIAO_Direct/CIAO_DirectEvent.cpp
+ * ciaosvcs/Events/CIAO_Direct/CIAO_DirectEvent.h
+ * ciaosvcs/Events/CIAO_Direct/CIAO_DirectEvent.idl
+ * ciaosvcs/Events/CIAO_Direct/CIAO_DirectEvent_Export.h
+ * ciaosvcs/Events/CIAO_Events_Base/CIAO_EventServiceBase.cpp
+ * ciaosvcs/Events/CIAO_Events_Base/CIAO_EventServiceBase.h
+ * ciaosvcs/Events/CIAO_Events_Base/CIAO_Events.idl
+ * ciaosvcs/Events/CIAO_Events_Base/CIAO_Events_Base.mpc
+ * ciaosvcs/Events/CIAO_Events_Base/CIAO_Events_Export.h
+ * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEVENT_Export.h
+ * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.cpp
+ * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.h
+ * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.idl
+ * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.mpc
+
+ Added CIAO_Event_Service support, which are some reusable
+ libraries and CORBA services that could be configured and
+ installed on demand through the DAnCE toolchain.
+
+ * docs/schema/Basic_Deployment_Data.xsd
+ * docs/schema/CIAOEvents.xsd
+ * docs/schema/cdp.xsd
+
+ Enhanced XML schema to capture metadata information for
+ configuring and deploying pub/sub services.
+
+ * tools/Config_Handlers/Basic_Deployment_Data.cpp
+ * tools/Config_Handlers/Basic_Deployment_Data.hpp
+ * tools/Config_Handlers/CPD_Handler.cpp
+ * tools/Config_Handlers/Config_Handlers.mpc
+ * tools/Config_Handlers/DP_Handler.cpp
+ * tools/Config_Handlers/ESD_Handler.cpp
+ * tools/Config_Handlers/ESD_Handler.h
+ * tools/Config_Handlers/PSPE_Handler.cpp
+ * tools/Config_Handlers/CIAO_Events/CIAOEvents.cpp
+ * tools/Config_Handlers/CIAO_Events/CIAOEvents.hpp
+ * tools/Config_Handlers/CIAO_Events/CIAOEvents_Handler.cpp
+ * tools/Config_Handlers/CIAO_Events/CIAOEvents_Handler.h
+ * tools/Config_Handlers/CIAO_Events/CIAO_Events_Handlers.mpc
+ * tools/Config_Handlers/CIAO_Events/CIAO_Events_Handlers_Export.h
+ * tools/Config_Handlers/CIAO_Events/test.cpp
+
+ Added config handler support to accomodate the above changes.
+
+ * examples/Hello/descriptors_events/ciao-events-example-with-filters.ced
+ * examples/Hello/descriptors_events/ciao-events-example.ced
+ * examples/Hello/descriptors_events/flattened_deploymentplan_events.cdp
+ * examples/Hello/descriptors_events/flattened_deploymentplan_with_filters.cdp
+
+ Added several examples to showcase the capability of CIAO
+ pub/sub services.
+
+Thu Mar 30 14:43:46 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/AttributeSourceEmitters_T.hpp:
+
+ Added 'using namespace StringLiterals;' to this file. Thanks
+ to Nanbor Wang <nanbor@txcorp.com> for pointing out that
+ this line is also necessary on some platforms, in addition
+ to the change of
+
+ Wed Mar 29 20:29:40 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+Wed Mar 29 20:29:40 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/AttributeSourceEmitters_T.hpp:
+
+ Added #include of Literals.hpp. Some platforms are picking up
+ the declarations in this file without the explicit include,
+ others are not.
+
+Wed Mar 29 19:52:54 UTC 2006 Nanbor Wang <nanbor@exothermic.txcorp.com>
+
+ * examples/Hello/descriptors_RTCCM/rt-config-example.csr:
+ Updated <cmdline> and <svcconf> element with more realistic
+ values.
+
+Wed Mar 29 04:40:58 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+
+ Added the functionality to honor command line arguments
+ and service configuration file options defined through
+ RT-CCM descriptors.
+
+Mon Mar 27 19:56:51 UTC 2006 Nanbor Wang <nanbor@exothermic.txcorp.com>
+
+ * DAnCE/NodeApplication/NodeApplication.cpp (main): Added code to
+ print out commandline options of the NodeApplicaion. The print
+ out is available for CIAO_DEBUG_LEVEL > 9.
+
+ * DAnCE/NodeApplication/Configuration_Factory.h:
+ * DAnCE/NodeApplication/Configuration_Factory.cpp: Changed
+ parse_args function to pass "argc" as reference to be consistent
+ with Arg_Shifter's signature.
+
+ Double-check the "-o" flag first with exact string comparison
+ before extracting the parameter to avoid mistaking any of the
+ "-ORBxxx" command line flags as the "-o" flag. Thanks to Sandro
+ Andrade <sandro @dcc.ufba.br> for reporting the bug.
+
+Mon Mar 20 22:35:47 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * ciao/Servant_Impl_Utils_T.cpp:
+
+ - Added 'typename' qualifier when declaring instances
+ of an iterator for a templatized hash map, since gcc
+ reminds us that leaving the compiler to implicitly
+ determine if the scoped name denotes a member or a
+ type is deprecated.
+
+ - Added an #include of Cookies.h, which is need by compilers
+ that don't require the template sourced to be included in
+ the header file.
+
+Sun Mar 19 20:37:47 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/TypeNameEmitter.cpp:
+ * CIDLC/TypeNameEmitter.hpp:
+
+ Removed these files, their former contents are now divided
+ between CorbaTypenameEmitters.{hpp,cpp} and
+ UtilityTypeNameEmitters.{hpp,cpp}.
+
+Fri Mar 17 14:23:53 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * ciao/CCM_Core.mpc:
+ * ciao/Servant_Impl_Base.cpp:
+ * ciao/Servant_Impl_Base.h
+
+ - Changed port table types from
+ ACE_Hash_Map_Manager_Ex<> to ACE_Array_Map<>,
+ which is more lightweight and makes no
+ allocations if no entries are added to
+ the table.
+
+ - Implemented spec-defined methods
+ get_all_receptacles(), get_all_publishers(),
+ and disconnect_consumer().
+
+ * ciao/Servant_Impl_Utils_T.cpp:
+
+ New file, containing implementations of new
+ static template methods added to class
+ Servant_Impl_Base, which are called in
+ generated code as part of the implementation
+ of the spec-defined methods mentioned above.
+
+ * CIDLC/AttributeHeaderEmitters.cpp:
+ * CIDLC/AttributeHeaderEmitters.hpp:
+ * CIDLC/AttributeSourceEmitters_T.hpp:
+ * CIDLC/CompositionEmitter.cpp:
+ * CIDLC/CompositionEmitter.hpp:
+ * CIDLC/CorbaTypeNameEmitters.cpp:
+ * CIDLC/CorbaTypeNameEmitters.hpp:
+ * CIDLC/EmitterBase.cpp:
+ * CIDLC/EmitterBase.hpp:
+ * CIDLC/EmitterContext.cpp:
+ * CIDLC/EmitterContext.hpp:
+ * CIDLC/InterfaceEmitter.cpp:
+ * CIDLC/InterfaceEmitter.hpp:
+ * CIDLC/ModuleEmitter.cpp:
+ * CIDLC/ModuleEmitter.hpp:
+ * CIDLC/OperationHeaderEmitters.cpp:
+ * CIDLC/OperationHeaderEmitters.hpp:
+ * CIDLC/ParameterEmitter_T.hpp:
+ * CIDLC/Upcase.hpp:
+ * CIDLC/UtilityTypeNameEmitters.cpp:
+ * CIDLC/UtilityTypeNameEmitters.hpp:
+
+ New files, containing common code factored
+ out of the C++ source files below.
+
+ * CIDLC/CIDLC.mpc:
+ * CIDLC/DescriptorGenerator.cpp:
+ * CIDLC/ExecImplHeaderGenerator.cpp:
+ * CIDLC/ExecImplSourceGenerator.cpp:
+ * CIDLC/ExecutorMappingGenerator.cpp:
+ * CIDLC/Literals.cpp:
+ * CIDLC/Literals.hpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ - Added new generated code as part of the
+ implementation of the spec-defined methods
+ mentioned above.
+
+ - Added support for attribute exceptions in
+ code optionally generated for the stencil
+ executor implementation classes.
+
+Thu Mar 16 16:31:51 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * ciao/CCM_Component.idl:
+
+ Added "omg.org" prefix to the recently added opening of the
+ CORBA module in this file.
+
+Tue Mar 14 10:10:58 UTC 2006 Nilabja Roy <nilabjar@dre.vanderbilt.edu>
+
+ * DAnCE/NodeManager/MonitorController.h:
+ Reverting back to previous version to avoid conflicts
+
+Tue Mar 14 09:46:25 UTC 2006 Nilabja Roy <nilabjar@dre.vanderbilt.edu>
+
+ * DAnCE/NodeManager/MonitorController.cpp:
+ Reverting back to previous version. Mistakenly added conflicted version.
+
+Thu Mar 9 09:18:58 2006 Douglas C. Schmidt <schmidt@cse.wustl.edu>
+
+ * COPYING: Updated the date to include 2006.
+ Thanks to Alan Kierstead <ackierstead at fedex dot com> for
+ motivating the fix to this oversight.
+
+Thu Mar 09 08:55:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Interfaces/ExecutionManagerDaemon.idl:
+ * DAnCE/Interfaces/NodeManagerDaemon.idl:
+ New idl files, these are the same as there are now in the directory
+ but then just renamed to match the interfaces in these files and
+ then don't conflict with the ones I created in ciao.
+
+ * DAnCE/Interfaces/ExecutionManager.idl:
+ * DAnCE/Interfaces/NodeManager.idl:
+ Removed, file names where not correct and now conflict with files in
+ the ciao directory
+
+ * DAnCE/Interfaces/Interfaces.mpc:
+ Updated because of file renames
+
+ * ciao/CCM_Base.idl:
+ Removed old comment
+
+ * ciao/CCM_Component.idl:
+ Forward declare CORBA::IRObject instead of including the IFR_Client
+ idl file
+
+ * ciao/Deployment_Base.idl:
+ Removed not needed include
+
+ * ciao/Dynamic_Component_Activator.h:
+ Reordered includes
+
+ * ciao/Swapping_Servant_Home_Impl_Base.h:
+ * ciao/Upgradeable_Context_Impl_T.h:
+ * ciao/Swapping_Servant_Home_Impl_T.h:
+ * ciao/Swapping_Servant_Home_Impl_T.cpp:
+ Added ciao/ as prefix for the includes
+
+ * ciao/Upgradeable_Context_Impl_T.h:
+ Added private default constructor
+
+ * ciao/Deployment.idl:
+ * ciao/DomainApplicationManager.idl:
+ * ciao/ExecutionManager.idl:
+ * ciao/NodeApplication_Callback.idl:
+ * ciao/NodeApplicationManager.idl:
+ * ciao/NodeManager.idl:
+ * ciao/RepositoryManager.idl:
+ * ciao/CCM_Core.mpc:
+ Splitted Deployment.idl in multiple files so that the linker
+ can decide not to link in a set of object files we don't need.
+ This will reduce footprint for several applications
+
+ * DAnCE/DomainApplicationManager/Deployment_Configuration.h:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.h:
+ * DAnCE/ExecutionManager/DAM_Map.cpp:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h:
+ * DAnCE/NodeManager/NodeManager_Impl.h:
+ * DAnCE/NodeManager/Node_Manager.cpp:
+ * DAnCE/NodeManager/NodeManager.mpc:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.{h.cpp}:
+ * DAnCE/TargetManager/Deployment_Configuration.h:
+ Updated for the idl subsetting of ciao/Deployment.idl. Also add ciao/
+ prefix to several includes and try to cleanup a little.
+
+ * DAnCE/RepositoryManager/RepositoryManager.idl:
+ * DAnCE/RepositoryManager/RepositoryManagerDaemon.idl:
+ Renamed the first file to the second, matches the interface name.
+
+ * DAnCE/RepositoryManager/RepositoryManager.mpc:
+ * DAnCE/RepositoryManager/RMadmin.cpp:
+ * DAnCE/RepositoryManager/PC_Updater.{h,cpp}:
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.h:
+ * DAnCE/RepositoryManager/RepositoryManager.cpp:
+ Updated because of rename above
+
+ * DAnCE/RTNodeApplication/senv.sh:
+ Removed this file, no need here.
+
+ * DAnCE/RTNodeApplication/NodeApplication_Task.h:
+ No need for virtual inheritance, that consumes more footprint then
+ needed.
+
+ * DAnCE/RTNodeApplication/NodeApplication_Task.cpp:
+ Reordered includes
+
+Wed Mar 08 15:58:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/ServerResources.idl:
+ Fixed incorrect file header
+
+Wed Mar 08 14:01:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rules.ciao.GNU:
+ Added $(CIAO_ROOT)/ciao to LDFLAGS and $(CIAO) to INCLDIRS
+ as we do in rules.tao.GNU, this improves the footprint stats
+
+Mon Mar 06 16:16:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Swapping_Container.{h,cpp}:
+ Made serial_number_ unsigned and documented why it is static
+
+ * performance-tests/Benchmark/LatencyTest.h:
+ Removed not needed msvc pragma push/pop
+
+Sun Mar 05 11:16:46 2006 Wallace Zhang <zhangw@ociweb.com>
+
+ * CIAO version 0.5 released.
+
+Thu Mar 2 17:50:36 UTC 2006 Boris Kolpackov <boris@kolpackov.net>
+
+ * CCF/CCF/IDL2/SemanticGraph/Struct.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Union.cpp:
+
+ Fixed a bug in the logic that determines completeness of recursive
+ structs and unions.
+
+Thu Mar 2 08:49:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeApplication/Container_Impl.cpp:
+ Replaced NULL with 0
+
+Thu Mar 2 01:33:09 UTC 2006 Wallace Zhang <zhangw@ociweb.com>
+
+ * NEWS:
+
+ Updated this file with info from Ming Xiong and Gan Deng.
+
+Wed Mar 1 22:34:52 UTC 2006 Wallace Zhang <zhangw@ociweb.com>
+
+ * NEWS:
+
+ Updated the file with info from Ming Xiong.
+
+Wed Mar 1 19:34:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIAO-INSTALL.html:
+ Updated rename of CIAOTAO.mwc to CIAO_TAO.mwc
+
+Wed Mar 1 15:02:10 UTC 2006 xiong,ming <ming.xiong@vanderbilt.edu>
+
+ * DAnCE/NodeApplication/Container_Impl.h
+ * DAnCE/NodeApplication/Container_Impl.cpp
+
+ Added codes to unregister with naming service when removing
+ components
+
+Tue Feb 28 18:46:42 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Deployment.xsd
+ * DAnCE/Deployment.xsd.orig
+ * DAnCE/XMI.xsd
+ * DAnCE/XMI.xsd.orig
+
+ Removed these schema files. They were misleading and useless.
+
+Fri Feb 24 21:21:02 UTC 2006 xiong,ming <ming.xiong@vanderbilt.edu>
+
+ * tools/Config_Handlers/Config_Handlers.mpc
+
+ Added a verbatim to disable hidden_visibility for Config_Handlers
+
+Fri Feb 24 18:54:52 UTC 2006 Stoyan Paunov <spaunov@isis.vanderbilt.edu>
+
+ * DAnCE/RepositoryManager/HTTP_Handler.cpp:
+ * DAnCE/RepositoryManager/RM_Helper.h:
+ * DAnCE/RepositoryManager/RM_Helper.cpp:
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp:
+ some cosmetic changes
+
+ * DAnCE/RepositoryManager/URL_Parser.h:
+ made the constructor protected and made the ACE_Singleton a friend
+
+ * DAnCE/RepositoryManager/URL_Parser.cpp:
+ fixed a bug and improved the robustness of the code
+
+Fri Feb 24 09:38:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIAO-INSTALL.html:
+ Fixed typo
+
+Thu Feb 23 23:35:59 UTC 2006 Chad Elliott <elliott_c@ociweb.com>
+
+ * examples/Swapping/Receiver/Receiver.mpc:
+ * examples/Swapping/Sender/Sender.mpc:
+
+ I was over zealous in my previous change. I shortened too many
+ project names (those that are defined in projects outside of these
+ mpc files).
+
+Wed Feb 22 16:38:32 UTC 2006 Chad Elliott <elliott_c@ociweb.com>
+
+ * CIAO-INSTALL.html:
+
+ Updated the documentation on how to build cidlc on Windows.
+
+ * examples/Swapping/Receiver/Receiver.mpc:
+ * examples/Swapping/Sender/Sender.mpc:
+
+ Shortened the project names in these MPC files to avoid fuzz
+ warnings.
+
+Wed Feb 22 01:11:59 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/NodeApplication/Container_Impl.cpp
+
+ Fixed a bug about naming service registration.
+ Thanks Sandro Andrade <sandro @dcc.ufba.br> for reporting
+ a bug about removing component error.
+
+Tue Feb 21 23:59:05 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * ciao/Deployment.idl
+
+ Added a parameter to the perform_redeployment() operation
+ to the NodeApplicationManager interface to separate the
+ "installation of new components" from the "removal of
+ existing components".
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+
+ Modified the logic of perform_redeployment() functionality
+ to enforce correct order of ReDaC, which is:
+ (1) Install new components,
+ (2) Set up new connections,
+ (3) Remove old connections, and
+ (4) Remove old components.
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h
+
+ Fixed a bug about removing components when using ReDaC.
+ In NodeApplicationManager, after the perform_redeployment()
+ call calls the remove_components() method to actually
+ destroy components from the component server, DAnCE NAM doesn't
+ unbind those components from the cached component_map_, hence
+ when the create_connections() method is called afterwords,
+ NAM tries to access the destroyed components to get
+ their port information, which causes the Object_Not_Exist
+ exception thrown.
+
+ The fix will unbind the removed components from the
+ cached component map. However, the trick is that after
+ we unbind these components, the port iinformation of
+ these components are also lost, then the
+ DomainApplicaitonManager could not handle the
+ "removal" of connections correctly.
+
+ The Right Fix is to enforce correct call sequence, which
+ are illustrated above.
+ Thanks Sandro Andrade <sandro @dcc.ufba.br> for reporting
+ a bug about removing component error.
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.h
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp
+
+ Added a component state map to keep track of component state
+ information. With this map, components will be activated
+ only when they are newly created, and will be passivated
+ only when they are currently active. This will also fix
+ a bug about the component initialization sequence. Earlier,
+ when components are installed, they are immediately activated
+ by explicitly calling ciao_preactivate, ciao_activate, and
+ ciao_postactivate on the comopnent object reference,
+ which is not compliant to the Spec defined semantics.
+ This fix shall ensure that the components are activated AFTER
+ their connections have been setup.
+
+ * DAnCE/NodeApplication/Container_Impl.cpp
+
+ Fixed a bug when passing object reference to a local function.
+ Earlier the memory of the object reference is released by
+ the callee, which causes the object reference becomes invalid
+ after the function returns.
+
+Tue Feb 21 19:43:11 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient.mpc
+ * performance-tests/Protocols/Controller/Controller.mpc
+
+ Added avoids+= ace_for_tao to two additional projects.
+
+ * examples/Display/descriptors/EM.ior
+ * examples/Display/descriptors/GPS.ior
+ * examples/Display/descriptors/NavDisplay.ior
+ * examples/Display/descriptors/NavDisplayGUI.ior
+
+ Removed these ior files.
+
+Tue Feb 21 17:40:20 UTC 2006 Nishanth Shankaran <nshankar@dre.vanderbilt.edu>
+
+ * DAnCE/NodeManager/MonitorController.cpp:
+
+ Fixed ACE_TRACE compilation error.
+
+Mon Feb 20 15:08:49 2006 Wallace Zhang <zhangw@ociweb.com>
+
+ * CIAO version 0.4.10 released.
+
+Mon Feb 20 19:48:12 UTC 2006 xiong,ming <ming.xiong@vanderbilt.edu>
+
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_Impl.ccd
+
+ Removed this file because it is generated
+
+Fri Feb 17 19:22:21 UTC 2006 Wallace Zhang <zhangw@ociweb.com>
+
+ * NEWS:
+
+ Updated this file with more inputs.
+
+Thu Feb 16 15:04:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIAO_DAnCE.mwc:
+ Fixed typo in this file
+
+Thu Feb 16 04:14:15 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient.mpc
+ * performance-tests/Protocols/Receiver/Receiver.mpc
+ * performance-tests/Protocols/Sender/Sender.mpc
+
+ Disabled building some project when ace_for_tao is set.
+
+Wed Feb 15 19:24:31 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CIAO.mwc
+
+ This file now builds all of CIAO.
+
+ * CIAODAnCE.mwc
+ * CIAO_DAnCE.mwc
+
+ Renamed this file to CIAO_DAnCE.mwc
+
+ * CIAOTAO.mwc
+ * CIAO_TAO.mwc
+
+ Renamed this file to CIAO_TAO.mwc.
+
+ Thanks to Chad Elliott (elliott_c at ociweb dot com) for suggesting
+ these changes.
+
+ * CIAO_TAO_DAnCE.mwc
+
+ Removed the DAnCE/tests/Config_Handlers exclusion, as it no
+ longer exists.
+
+Wed Feb 15 07:35:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.cpp:
+ Replaced ACE cast macros with their C++ versions
+
+Wed Feb 15 07:28:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+ Fixed generation so that it compiles with Borland
+
+Tue Feb 14 23:01:46 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp
+
+ Fixed a bug when removing ReDaC components from the container.
+ This bug was caused by the container set indexing error when
+ handling newly installed components.
+ Thanks Sandro Andrade <sandro @dcc.ufba.br> for reporting
+ this issue.
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+
+ Some cosmetic changes.
+
+ * DAnCE/NodeApplicationManager/ImplementationInfo.cpp
+ * DAnCE/NodeApplicationManager/ImplementationInfo.h
+
+ Added a const modifier in the constructor to ensure safety.
+
+ * DAnCE/NodeManager/NodeManager_Impl.cpp
+
+ Fixed a bug when detecting whether a component is shared
+ by multiple assemblies. Earlier, when ReDaC is used, existing
+ components are wrongly treated as shared components.
+
+Tue Feb 14 22:02:59 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CIAO_TAO_DAnCE.mwc
+
+ Added naming service and Config_Handlers.
+
+ * DAnCE/NodeManager/NodeManager.mpc
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.mpc
+
+ Fixed link time warnings on OS X.
+
+Tue Feb 14 19:57:32 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp
+
+ Fixed a bug about when a component has a name with "Exec"
+ string in it, the _stub library could be picked up
+ incorrectly.
+
+Mon Feb 13 20:53:58 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h
+
+ Fixed a bug about removing existing components. Earlier
+ the logic in detecting "to-be-removed" components has
+ a bug.
+
+Mon Feb 13 20:11:35 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.cpp
+
+ Changed ACE_const_cast to c++ native const_cast since the
+ former one is deprecated. Also changed the implementation of
+ the acquireSession() logic, so the deadlock bug could
+ be reproduced.
+
+Mon Feb 13 20:01:38 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp
+
+ Cosmetics change.
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h
+
+ Enhanced to call ccm_activate, ciao_preactivate, and
+ ciao_postactivate when installing new components.
+ Thanks Sandro Andrade <sandro @dcc.ufba.br> for reporting
+ this issue.
+
+ Also added the logic for remove_existing_components into
+ the class, which has not been integrated yet.
+
+ Refactor the code by putting these logics into separate
+ methods to enhance readability.
+
+Mon Feb 13 17:12:09 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/Execution_Manager.cpp
+
+ Fixed a bug about registering EM with naming service, originally
+ an invalid naming context is specified. Also allowed EM to both
+ register to naming service AND dump and IOR file. Thanks Sandro
+ Andrade <sandro at dcc dot ufba dot br> for reporting this bug.
+
+Mon Feb 13 15:41:21 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.cpp
+
+ Fixed a warning about "deprecated conversion from string
+ constant to `char*' on RHEL_Static_GCC-3.4.2 build.
+
+Mon Feb 13 11:34:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.h:
+ Removed not allowed semicolon
+
+Mon Feb 13 09:22:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.h:
+ Fixed compile error in single threaded builds
+
+Mon Feb 13 08:32:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Server_init.cpp:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/controller.cpp:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.cpp:
+ Fixed conversion warnings
+
+Sat Feb 11 21:39:54 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * ciaosvcs/Events/CIAO_Direct/CIAO_DirectEvent.h
+ * ciaosvcs/Events/CIAO_Direct/CIAO_DirectEvent_Factory.h
+
+ Fixed fuzz build erros.
+
+Sat Feb 11 21:26:08 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * tests/Bug_2130_Regression/descriptors/run_test.pl
+
+ Fixed the command line option to start the NodeApplication
+ to enable real-time support.
+ Thanks Roland Schimmack <Roland.Schimmack @ gmx.de> for
+ reporting this error.
+
+Sat Feb 11 21:00:00 UTC 2006 xiong,ming <ming.xiong@vanderbilt.edu>
+
+ * ciao/Server_init.cpp
+
+ Removed an extra explicit qualification
+
+Sat Feb 11 18:49:21 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciaosvcs/Events/CIAO_Events.mpc
+ * ciaosvcs/Events/CIAO_Direct/CIAO_DirectEvent.mpc
+ Removed these files to get at least our builds running again
+
+Fri Feb 10 16:11:35 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * ciaosvcs/Events/CIAO_Events.mpc
+ * ciaosvcs/Events/CIAO_Direct/CIAO_DirectEvent.mpc
+
+ Temporarily disable the build of these projects before
+ the integration effort is complete to avoid pollute
+ the scoreboard.
+
+Fri Feb 10 14:28:14 UTC 2006 xiong,ming <ming.xiong@vanderbilt.edu>
+
+ * docs/tutorials/CoSMIC/01.html
+ * docs/tutorials/CoSMIC/02.html
+ * docs/tutorials/CoSMIC/index.html
+ * docs/tutorials/CoSMIC/Images/fig10.jpg
+ * docs/tutorials/CoSMIC/Images/fig11.jpg
+ * docs/tutorials/CoSMIC/Images/fig2.jpg
+ * docs/tutorials/CoSMIC/Images/fig4.jpg
+ * docs/tutorials/CoSMIC/Images/fig5.jpg
+ * docs/tutorials/CoSMIC/Images/fig6.jpg
+ * docs/tutorials/CoSMIC/Images/fig7.jpg
+ * docs/tutorials/CoSMIC/Images/fig8.jpg
+ * docs/tutorials/CoSMIC/Images/fig9.jpg
+ * docs/tutorials/CoSMIC/Model/Quoter.xme
+
+ Updated the CoSMIC tutorial so that it is consistent with
+ the latest GME and CoSMIC.
+
+Fri Feb 10 11:15:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Port_Activator.h:
+ Doxygen improvements
+
+ * ciao/NodeApp_CB_Impl.h:
+ Made destructor protected
+
+ * ciao/Container_Base.{h,cpp}:
+ Made the refcount unsigned long, addressed several comments and
+ improved documentation
+
+Fri Feb 10 04:56:26 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/NodeApplication/Container_Impl.cpp
+ * DAnCE/NodeApplication/Container_Impl.h
+ * ciao/Server_init.cpp
+ * ciao/Server_init.h
+
+ Added support for creating multicomponent naming context through
+ the deployment plan. Thanks Dipa Suri <dipa.suri @ lmco.com> for
+ contributing a NameUtility class implementation.
+
+ * ciaosvcs/Events/CIAO_Events.idl
+ * ciaosvcs/Events/CIAO_Events.mpc
+ * ciaosvcs/Events/CIAO_Direct/CIAO_DirectEvent.cpp
+ * ciaosvcs/Events/CIAO_Direct/CIAO_DirectEvent.h
+ * ciaosvcs/Events/CIAO_Direct/CIAO_DirectEvent.idl
+ * ciaosvcs/Events/CIAO_Direct/CIAO_DirectEvent.mpc
+ * ciaosvcs/Events/CIAO_Direct/CIAO_DirectEvent_Factory.cpp
+ * ciaosvcs/Events/CIAO_Direct/CIAO_DirectEvent_Factory.h
+
+ Added some files for event channel integration for CIAO.
+ More file check-ins are on the way.
+
+Thu Feb 9 23:38:19 UTC 2006 xiong,ming <ming.xiong@vanderbilt.edu>
+
+ * TAO/CIAO/CIAOTAO.mwc
+
+ Updated mwc to include some dependencies required by tests
+ and examples.
+
+ * tests/Bug_2130_Regression/Logs/PROBLEM-REPORT-FORM
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.cidl
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.idl
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.mpc
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPointEI.idl
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_Impl.ccd
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.cpp
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.h
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec_export.h
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_stub_export.h
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_svnt_export.h
+ * tests/Bug_2130_Regression/SEC_CheckPoint/controller.cpp
+ * tests/Bug_2130_Regression/descriptors/DeploymentPlan.cdp
+ * tests/Bug_2130_Regression/descriptors/TestNodeManagerMap.dat
+ * tests/Bug_2130_Regression/descriptors/rt-config-example.csr
+ * tests/Bug_2130_Regression/descriptors/run_test.pl
+ * tests/Bug_2130_Regression/interfaces/ENW.idl
+ * tests/Bug_2130_Regression/interfaces/ENW.mpc
+ * tests/Bug_2130_Regression/interfaces/ENW_stub_export.h
+ * tests/Bug_2130_Regression/interfaces/ENW_svnt_export.h
+
+ Added a new tests for Bug_2130.
+ Thanks Roland Schimmack <Roland.Schimmack @ gmx.de> for
+ providing this test case.
+
+Thu Feb 9 16:48:42 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/IDL3_to_IDL2/be_global.h:
+ * tools/IDL3_to_IDL2/be_init.cpp:
+ * tools/IDL3_to_IDL2/be_sunsoft.cpp:
+ * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.cpp:
+ * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.h:
+
+ Removed all usage of internal 'idl_bool' typedef in the
+ IDL3 to IDL2 converter, consistently with the changes to
+ the TAO IDL compiler front end, which is used by this
+ tool.
+
+Thu Feb 9 16:33:45 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/ADD_Handler.cpp
+ * tools/Config_Handlers/Any_Handler.cpp
+ * tools/Config_Handlers/CCD_Handler.cpp
+ * tools/Config_Handlers/CEPE_Handler.cpp
+ * tools/Config_Handlers/CPD_Handler.cpp
+ * tools/Config_Handlers/CRDD_Handler.cpp
+ * tools/Config_Handlers/ComponentPropertyDescription_Handler.cpp
+ * tools/Config_Handlers/DD_Handler.cpp
+ * tools/Config_Handlers/DP_Handler.cpp
+ * tools/Config_Handlers/DP_PCD_Handler.cpp
+ * tools/Config_Handlers/DataType_Handler.cpp
+ * tools/Config_Handlers/ERE_Handler.cpp
+ * tools/Config_Handlers/IDD_Handler.cpp
+ * tools/Config_Handlers/IDREF_Base.cpp
+ * tools/Config_Handlers/ID_Handler.cpp
+ * tools/Config_Handlers/IRDD_Handler.cpp
+ * tools/Config_Handlers/MDD_Handler.cpp
+ * tools/Config_Handlers/PCD_Handler.cpp
+ * tools/Config_Handlers/PSPE_Handler.cpp
+ * tools/Config_Handlers/Property_Handler.cpp
+ * tools/Config_Handlers/RDD_Handler.cpp
+ * tools/Config_Handlers/Req_Handler.cpp
+ * tools/Config_Handlers/STD_PC_Intf.cpp
+ * tools/Config_Handlers/XML_File_Intf.cpp
+
+ Added CIAO_TRACE statements to aid in debugging.
+
+Wed Feb 08 15:53:31 2006 Wallace Zhang <zhangw@ociweb.com>
+
+ * CIAO version 0.4.9 released.
+
+Tue Feb 7 16:10:10 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeManager/NodeManager.mpc
+
+ Fixed an ordering problem.
+
+Mon Feb 6 19:13:13 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc
+
+ Fixed an export problem manifesting in VC8.
+
+ * performance-tests/Benchmark/Benchmark.mpc
+
+ Added an empty IDL_Files section to the servant to prevent
+ nmake from regenerating from the IDL file.
+
+Mon Feb 6 13:54:39 UTC 2006 Ossama Othman <ossama_othman at symantec dot com>
+
+ * ciao/ComponentsC.h:
+
+ Place TAO namespace in this pre-generated stub header within a
+ TAO versioned namespace, as TAO_IDL does for all stubs. Fixes
+ build errors in versioned-namespace enabled builds.
+
+Mon Feb 6 13:33:54 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/NoOp_Configurator.h
+
+ Case sensitivity error from previous commit.
+
+Mon Feb 6 00:39:41 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/Configurator_Factory.cpp
+ * DAnCE/NodeApplication/Configurator_Factory.h
+ * DAnCE/NodeApplication/NodeApplication.mpc
+ * DAnCE/NodeApplication/NodeApplication_Core.h
+ * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc
+ * DAnCE/NodeManager/MonitorController.h
+ * DAnCE/NodeManager/NodeManager.mpc
+ * DAnCE/NodeApplication/NoOp_Configurator.cpp
+ * DAnCE/NodeApplication/NoOp_Configurator.h
+ * DAnCE/NodeApplication/NoOp_Configurator_export.h
+
+ Fixed linking errors on Borland 6. Mostly involved improper
+ symbol export control.
+
+ * tools/Config_Handlers/cdd.hpp
+ * tools/Config_Handlers/cdp.hpp
+
+ Added a fix for a broken <string> include in Borland 6.
+
+Fri Feb 3 24:30:19 UTC 2006 Ossama Othman <ossama_othman at symantec dot com>
+
+ * ciao/CIAO_common.h:
+
+ Removed extraneous "#" in "# #error" preprocessor directive.
+
+ * ciao/Client_init.h:
+
+ Moved CIAO namespace out of TAO-versioned namespace block. It
+ shouldn't have been there. Fixes namespace clashes in versioned
+ namespace enabled builds.
+
+Thu Feb 2 23:55:01 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+ * NEWS
+
+ Updated the release notes.
+
+Thu Feb 2 22:59:23 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/RepositoryManager/ZIP_Wrapper.cpp
+
+ Updated include from zziplib.h to zzip/zzip.h, as the former
+ is deprecated and absent in the most recent release.
+
+Thu Feb 2 15:49:31 2006 Douglas C. Schmidt <schmidt@cs.wustl.edu>
+
+ * docs/tutorials/CoSMIC/01.html: Commited a fix for a typo detected by
+ Abdullah Sowayan <abdullah dot sowayan at lmco dot com> and
+ fixed by Ming Xiong.
+
+Thu Feb 2 16:58:15 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIAO_TAO_DAnCE.mwc:
+ * CIAODAnCE.mwc:
+ Removed Old_Config_Handlers and spec_RepositoryManager
+
+Thu Feb 2 16:31:15 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeManager/BaseMonitor.h
+ * DAnCE/NodeManager/CIAO_Monitor.h
+ * DAnCE/NodeManager/MonitorCB.h
+ * DAnCE/NodeManager/MonitorController.cpp
+ * DAnCE/NodeManager/MonitorController.h
+ * DAnCE/TargetManager/DomainDataManager.h
+
+ Removed extra ';' after closing braces on namespaces.
+ Was causing errors on GCC4 builds.
+
+ * DAnCE/NodeManager/MonitorController.inl
+
+ Removed this file, as it is no longer used.
+
+Wed Feb 1 21:21:35 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeManager/BaseMonitor.h
+ * DAnCE/NodeManager/CIAO_Monitor.cpp
+ * DAnCE/NodeManager/CIAO_Monitor.h
+ * DAnCE/NodeManager/MonitorCB.cpp
+ * DAnCE/NodeManager/MonitorCB.h
+ * DAnCE/NodeManager/MonitorController.cpp
+ * DAnCE/NodeManager/MonitorController.h
+ * DAnCE/TargetManager/DomainDataManager.cpp
+ * DAnCE/TargetManager/DomainDataManager.h
+ * DAnCE/TargetManager/TargetManager_exec.cpp
+ * DAnCE/TargetManager/TargetManager_exec.h
+
+ Wraps the TargetManager/Monitors inside the CIAO namespace.
+ Thanks to Nilabja Roy (nilabjar@dre.vanderbilt.edu) for
+ making these changes and thanks to Johnny for noticing this!
+
+Wed Feb 1 20:42:42 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp
+ * tools/Config_Handlers/RT-CCM/TPL_Handler.cpp
+ * tools/Config_Handlers/Utils/XercesString.cpp
+ * tools/Config_Handlers/Utils/XercesString.h
+ * tools/Config_Handlers/XMLSchema/Writer.hpp
+
+ Fixes for warnings on ICC platforms.
+
+Wed Feb 1 14:38:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/TargetManager/DomainDataManager.h:
+ Small doxygein improvement
+
+Wed Feb 1 04:32:38 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+ * RACE/Planner_Manager/Component/Planner_Manager.idl
+
+ Resolve a linking error on Windows.
+
+Tue Jan 31 23:33:23 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Old_Config_Handlers
+ * DAnCE/test/Config_Handlers_Tests
+
+ Removed deprecated config handlers.
+
+ * NEWS
+
+ Commented on this removal.
+
+Tue Jan 31 21:51:52 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+ * examples/Hello/descriptors/run_test.pl
+ * examples/Hello/descriptors/run_test_without_ns.pl
+
+ Added a parameter to the NodeManagers to cause them to wait
+ up to 30 seconds for the NodeApplications to spawn before failing.
+ This should fix the hello test on several platforms.
+
+Tue Jan 31 21:29:06 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+ * examples/Hello/descriptors/run_test.pl
+
+ Updated to force naming service to not use multicast, instead
+ using NameServiceIOR environment variable.
+
+ * examples/Hello/descriptors/run_test_without_ns.pl
+
+ Updated ports to reflect new NodeManagerMap.
+
+Tue Jan 31 15:11:29 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+ * RACE/Controller/Component/Controller.mpc
+
+ Fixed linking errors on OS X.
+
+Tue Jan 31 14:41:31 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DAnCE/NodeManager/NodeManager_Impl.cpp
+
+ Fixed a couple of warning on SuSE_10_0_GCC4.0.2_x86_64_Valgrind
+ build.
+
+Tue Jan 31 11:42:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+ Fixed compile error with VxWorks 5.5.1
+
+Mon Jan 30 22:43:26 UTC 2006 Stoyan Paunov <spaunov@isis.vanderbilt.edu>
+
+ * examples/Hello/descriptors/run_NodeDaemons.pl:
+
+ Fixing this script so that the Hello example deploys successfully.
+
+Mon Jan 30 21:16:40 UTC 2006 Ming Xiong <ming.xiong@vanderbilt.edu>
+
+ * docs/tutorials/CoSMIC/01.html
+ * docs/tutorials/CoSMIC/02.html
+ * docs/tutorials/CoSMIC/03.html
+ * docs/tutorials/CoSMIC/04.html
+ * docs/tutorials/CoSMIC/index.html
+ * docs/tutorials/CoSMIC/Icons/AddConnMode.gif
+ * docs/tutorials/CoSMIC/Icons/SetMode.gif
+ * docs/tutorials/CoSMIC/Images/fig1.jpg
+ * docs/tutorials/CoSMIC/Images/fig10.jpg
+ * docs/tutorials/CoSMIC/Images/fig11.jpg
+ * docs/tutorials/CoSMIC/Images/fig2.jpg
+ * docs/tutorials/CoSMIC/Images/fig3.jpg
+ * docs/tutorials/CoSMIC/Images/fig4.jpg
+ * docs/tutorials/CoSMIC/Images/fig5.jpg
+ * docs/tutorials/CoSMIC/Images/fig6.jpg
+ * docs/tutorials/CoSMIC/Images/fig7.jpg
+ * docs/tutorials/CoSMIC/Images/fig8.jpg
+ * docs/tutorials/CoSMIC/Images/fig9.jpg
+ * docs/tutorials/CoSMIC/Model/Quoter.xme
+
+ Added CoSMIC tutorial for /docs/tutorials/Quoter/Simple
+
+Mon Jan 30 17:50:38 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc
+
+ Modified to inherit from dance_extension_stub project
+ so the included header file could be found.
+
+Mon Jan 30 17:35:12 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/Interfaces/Interfaces.mpc
+ * DAnCE/NodeManager/NodeManager.mpc
+ * DAnCE/NodeManager/NodeManager_Impl.h
+
+ Fixed a linking error of NodeManager when trying to
+ link to IDL generated servant code.
+
+ * DAnCE/NodeManager/CIAO_NodeManager_Export.h
+ * DAnCE/Interfaces/NodeManager_svnt_export.h
+
+ Removed the first one and added the second one to
+ fix the linking error when trying to find entry
+ point for IDL compiler generated servant code.
+
+Mon Jan 30 05:07:09 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+ * examples/Hello/descriptors/NodeManagerMap.dat
+
+ Corrected the ports to match those in the run_test.pl script.
+
+Mon Jan 30 01:59:23 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc
+
+ Cosmetic change.
+
+ * DAnCE/NodeManager/NodeManager.mpc
+
+ Fixed a typo.
+
+Mon Jan 30 01:47:21 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/NodeManager/NodeManager.mpc
+ * DAnCE/NodeManager/NodeManager_Impl.h
+ * DAnCE/NodeManager/NodeManager_Export.h
+
+ Added dll import/export mechanism into NodeManager library.
+
+Sat Jan 28 22:24:35 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+ * examples/Hello/descriptors/run_test.pl
+
+ Corrected the name of the NodeManagerMap passed to ExecutionManager.
+ This was causing the test to fail across all platforms.
+
+Sat Jan 28 05:55:45 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeManager/NodeManager.mpc
+
+ Added a missing after clause.
+
+Fri Jan 27 22:42:47 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+ * RACE/Controller/Component/Controller.mpc
+
+ Fixed linking errors on Windows.
+
+Fri Jan 27 20:58:19 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * tests/Bug_2130_Regression
+
+ A place to host Bug 2130 test case.
+
+Fri Jan 27 20:42:47 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/DnC_Dump_T.h
+
+ Silenced warnings in solaris.
+
+Fri Jan 27 20:30:01 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DAnCE/NodeManager/NodeManager_Impl.cpp
+
+ Fixed uninitialized variable warnings on Solaris GCC.
+
+ *DAnCE/NodeManager/NodeManager.mpc
+
+ Refactored the projects here so all files related to NodeManager
+ are only compiled once.
+
+Fri Jan 27 19:15:19 UTC 2006 Nilabja R <nilabjar@dre.vanderbilt.edu>
+
+ * DAnCE/NodeManager/Monitor.mpc: Added the dependancy on
+ TargetManaer_stub
+
+Fri Jan 27 19:07:08 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeManager/MonitorController.h
+ * DAnCE/NodeManager/MonitorController.inl
+
+ Refined the fix in
+ Fri Jan 27 17:29:54 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+ to use ACE_SYNCH_MUTEX. Thanks to Doug Schmidt for suggesting the
+ improvement.
+
+Fri Jan 27 17:35:55 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+ * RACE/Controller/Component/Controller.mpc
+
+ Fixed linking errors on Mac OS X.
+
+Fri Jan 27 17:29:54 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeManager/MonitorController.h
+ * DAnCE/NodeManager/MonitorController.inl
+
+ Added preprocessor logic to fall back to an ACE_Mutex on
+ platforms that don't support ACE_Thread_Mutex.
+
+Fri Jan 27 16:59:11 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DAnCE/NodeManager/NodeManager_Impl.cpp
+
+ Fixed a couple of warnings on SuSE_10_0_GCC4.0.2_x86_64_Valgrind
+ build about pointer initialization.
+
+Thu Jan 26 23:48:47 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * examples/Hello/step-by-step.html
+
+ Fixed a fuzz error about dependency on ~schmidt/ACE_wrappers.
+
+Thu Jan 26 19:25:06 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/TargetManager/TargetManager.mpc
+
+ Added an empty IDL_Files segment to the _exec project,
+ which should clean up tons of Windows VC build erros
+ and warnings.
+
+Thu Jan 26 17:57:45 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/ExecutionManager.mpc
+ * DAnCE/NodeManager/NodeManager.mpc
+
+ Modified to inherit from a base project dance_extension_stub.mpb
+ to avoid explicily included path specification.
+
+Thu Jan 26 10:25:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h:
+ Fixed incorrect doxygen tag
+
+ * CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.inl:
+ Added missing ACE_INLINE macro's
+
+
+Thu Jan 26 01:44:15 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.h
+ * DAnCE/NodeApplicationManager/ImplementationInfo.cpp
+ * DAnCE/NodeApplicationManager/ImplementationInfo.h
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h
+ * DAnCE/NodeManager/NodeManager_Impl.cpp
+ * DAnCE/StaticConfigurator/StaticDAnCEParser.cpp
+ * ciao/Deployment.idl
+
+ Fixed a bug of shared component capability. Originally, we
+ haven't differentiate between "shared components" and
+ "external components", so when a component ref count becomes
+ 0, the "shared components" will become empty, however, since
+ some components are installed remotely, removing it will
+ cause problem if we don't have such differentiation.
+
+Wed Jan 25 23:44:01 UTC 2006 Nishanth Shankaran <nshankar@dre.vanderbilt.edu>
+
+ * CIAOTAO.mwc:
+ * CIAO.mwc:
+
+ Added RACE to the workspace.
+
+Wed Jan 25 22:47:30 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * CIAO_TAO_DAnCE.mwc
+
+ Added another mwc file which builds ACE, TAO, CIAO, DAnCE
+ minium to run a CIAO simple example.
+
+Wed Jan 25 22:28:06 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/ExecutionManager.mpc
+ * DAnCE/NodeManager/NodeManager.mpc
+
+ Added include+= to find header files and fixed a typo.
+
+ * DAnCE/NodeManager/NodeManager_Impl.cpp
+
+ Fixed an error in Linux build.
+
+Wed Jan 25 22:11:23 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+
+ Changed order of the base member initialization list, which
+ should clear some warnings of the Linux builds.
+
+Wed Jan 25 21:32:44 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc
+ * DAnCE/NodeManager/NodeManager.mpc
+
+ Fixed dependency problems.
+
+Wed Jan 25 20:28:35 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/Interfaces/ExecutionManager.idl
+ * DAnCE/Interfaces/Interfaces.mpc
+ * DAnCE/Interfaces/README
+ * DAnCE/Interfaces/NodeManager.idl
+ * DAnCE/Interfaces/NodeManager_stub_export.h
+ * DAnCE/Interfaces/ExecutionManager_stub_export.h
+
+ Added these files into a separate directory
+ called DAnCE/Interfaces to termporarily solve the MPC
+ directory dependency issue.
+
+ * DAnCE/ExecutionManager/ExecutionManager.idl
+ * DAnCE/NodeManager/NodeManager.idl
+
+ Removed these files.
+
+ * DAnCE/ExecutionManager/ExecutionManager.mpc
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.h
+ * DAnCE/NodeManager/NodeManager.mpc
+ * DAnCE/NodeManager/NodeManager_Impl.h
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.h
+
+ Modified to accomodate the above refactoring work.
+
+Wed Jan 25 19:46:57 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * ciao/Deployment_common.h
+
+ Added this new file, which is supposed to contain all the
+ reusable types/classes/methods across the DAnCE toolchain.
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.h
+
+ Modified the code to accomodate the above refactoring work.
+
+ * DAnCE/TargetManager/DomainDataManager.cpp
+
+ Got rid of a warning message about unreferenced variable.
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManage.mpc
+
+ Added a dependency from DAM to ExecutionManager_stub project.
+
+Wed Jan 25 02:53:07 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.h
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.h
+ * ciao/Deployment.idl
+
+ Fixed a bug about destroying *ApplicationManagers.
+ This fix will ensure that DAM won't be destroyed if any
+ components managed by itself are still up and running.
+
+Wed Jan 25 01:41:53 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp
+
+ Some cosmetic changes.
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+
+ Fixed a bug about when to killing a NodeApplication process.
+
+ * ciao/Container_Base.cpp
+
+ Comment out meaningless debug statement.
+
+Wed Jan 25 00:56:39 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * examples/Hello/descriptors/run_test_without_ns.pl
+
+ Modified to use the correct NodeManagerMap.dat file.
+
+Wed Jan 25 00:47:02 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * examples/Hello/descriptors_RTCCM/RTsvc.conf
+ * examples/Hello/descriptors_RTCCM/input.csr
+ * examples/Hello/descriptors_RTCCM/rt-config-example.cdp
+ * examples/Hello/descriptors_RTCCM/rt-config-example.csr
+ * examples/Hello/descriptors_RTCCM/rt-example.cdp
+ * examples/Hello/descriptors_RTCCM/rt_run_test.pl
+ * examples/Hello/descriptors_ReDaC/deploymentplan.cdp
+ * examples/Hello/descriptors_ReDaC/deploymentplan_add.cdp
+ * examples/Hello/descriptors_ReDaC/deploymentplan_remove.cdp
+ * examples/Hello/descriptors_naming/deploymentplan_naming.cdp
+
+ Create some new descriptors, reorganized them, and put
+ them into different directories.
+
+Wed Jan 25 00:23:02 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * CIAODAnCE.mwc
+
+ Added another mwc file which only builds CIAO and DAnCE.
+
+ * examples/Hello/step-by-step.html
+
+ Fixed an error in this documentation page.
+
+ * examples/Hello/descriptors/RTsvc.conf
+ * examples/Hello/descriptors/TestNodeManagerMap.dat
+ * examples/Hello/descriptors/flattened_deploymentplan_without_ns_add.cdp
+ * examples/Hello/descriptors/rt-config-example.cdp
+ * examples/Hello/descriptors/rt-config-example.csr
+ * examples/Hello/descriptors/rt-example.cdp
+ * examples/Hello/descriptors/flattened_deploymentplan_without_ns_add.cdp
+ * examples/Hello/descriptors/rt_run_test.pl
+
+ Removed these descriptor files and put them into separate
+ directories to better organize things.
+
+ * examples/Hello/descriptors_shared_components/deploymentplan.cdp
+ * examples/Hello/descriptors_shared_components/
+ deploymentplan_shared_components.cdp
+
+ Added a dedicated directory to put descriptors for shared
+ components scenario.
+
+Wed Jan 25 00:10:50 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h
+ * DAnCE/ExecutionManager/DAM_Map.cpp
+ * DAnCE/ExecutionManager/DAM_Map.h
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.h
+
+ Added capabilities to handle adding/removing
+ connections between components in new assembly and existing/external
+ components in old assemblies. This involves putting
+ ExecutionManager as a coordinator for different DAMs.
+
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.h
+ * DAnCE/NodeApplicationManager/ImplementationInfo.cpp
+ * DAnCE/NodeApplicationManager/ImplementationInfo.h
+ * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.inl
+ * DAnCE/NodeManager/NAM_Map.h
+ * DAnCE/NodeManager/NodeManager_Impl.cpp
+ * DAnCE/NodeManager/NodeManager_Impl.h
+ * DAnCE/NodeManager/Node_Manager.cpp
+
+ Added capabilities for handling shared components across
+ different assemblies. This involves putting NodeManager
+ as a local coordinator for different NAMs.
+
+ * DAnCE/NodeApplication/NodeApplication.cpp
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp
+ * DAnCE/NodeApplication/NodeApplication_Impl.h
+
+ Enhancement of adding/removing connections.
+
+ * DAnCE/Plan_Launcher/DAM_Map.cpp
+ * DAnCE/Plan_Launcher/DAM_Map.h
+
+ Removed from the repo, since they are located in the other
+ directory as well, and we can use relative path to point
+ to those existing files.
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.h
+
+ Enhanced to handle shared components scenario which interacts
+ with *managers.
+
+ * DAnCE/StaticConfigurator/StaticDAnCEParser.cpp
+
+ Fixed for working with the newly enhanced DAnCE toolchain.
+
+ * ciao/Deployment.idl
+
+ Adding enhancements for adding shared components capabilities
+
+Wed Jan 25 00:01:37 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/NodeManager/MonitorCB.cpp
+
+ Fixed a warning about unreferenced variable in Windows build.
+
+ * DAnCE/NodeManager/MonitorController.h
+
+ Included header file missing path to its directory.
+
+ * DAnCE/TargetManager/CmpClient.cpp
+
+ Fixed a warning about unreferenced variable in Windows build.
+
+Mon Jan 23 23:10:32 UTC 2006 Stoyan Paunov <spaunov@isis.vanderbilt.edu>
+
+
+ * DAnCE/spec_RepositoryManager/HTTP_Client.h:
+ * DAnCE/spec_RepositoryManager/HTTP_Client.cpp:
+ * DAnCE/spec_RepositoryManager/HTTP_Handler.h:
+ * DAnCE/spec_RepositoryManager/HTTP_Handler.cpp:
+ * DAnCE/spec_RepositoryManager/Options.h:
+ * DAnCE/spec_RepositoryManager/Options.cpp:
+ * DAnCE/spec_RepositoryManager/PC_Updater.h:
+ * DAnCE/spec_RepositoryManager/PC_Updater.cpp:
+ * DAnCE/spec_RepositoryManager/PC_Updater_T.h:
+ * DAnCE/spec_RepositoryManager/PC_Updater_T.cpp:
+ * DAnCE/spec_RepositoryManager/README.txt:
+ * DAnCE/spec_RepositoryManager/RM_Helper.h:
+ * DAnCE/spec_RepositoryManager/RM_Helper.cpp:
+ * DAnCE/spec_RepositoryManager/RMadmin.cpp:
+ * DAnCE/spec_RepositoryManager/RepositoryManager.idl:
+ * DAnCE/spec_RepositoryManager/RepositoryManager.cpp:
+ * DAnCE/spec_RepositoryManager/RepositoryManager_Impl.h:
+ * DAnCE/spec_RepositoryManager/RepositoryManager_Impl.cpp:
+ * DAnCE/spec_RepositoryManager/URL_Parser.h:
+ * DAnCE/spec_RepositoryManager/URL_Parser.cpp:
+ * DAnCE/spec_RepositoryManager/ZIP_Wrapper.h:
+ * DAnCE/spec_RepositoryManager/ZIP_Wrapper.cpp:
+ * DAnCE/spec_RepositoryManager/spec_RepositoryManager.mpc:
+
+ Removed these files. Zapping the DAnCE/spec_RepositoryManager/
+ directory which used to hold the implementation of the
+ RepositoryManager while the ExecutionManager was in the
+ DAnCE/RepositoryManager/ directory.
+
+Mon Jan 23 22:41:49 UTC 2006 Stoyan Paunov <spaunov@isis.vanderbilt.edu>
+
+ * DAnCE/RepositoryManager/HTTP_Client.h:
+ * DAnCE/RepositoryManager/HTTP_Client.cpp:
+ * DAnCE/RepositoryManager/HTTP_Handler.h:
+ * DAnCE/RepositoryManager/HTTP_Handler.cpp:
+ * DAnCE/RepositoryManager/Options.h:
+ * DAnCE/RepositoryManager/Options.cpp:
+ * DAnCE/RepositoryManager/PC_Updater.h:
+ * DAnCE/RepositoryManager/PC_Updater.cpp:
+ * DAnCE/RepositoryManager/PC_Updater_T.h:
+ * DAnCE/RepositoryManager/PC_Updater_T.cpp:
+ * DAnCE/RepositoryManager/README.txt:
+ * DAnCE/RepositoryManager/RM_Helper.h:
+ * DAnCE/RepositoryManager/RM_Helper.cpp:
+ * DAnCE/RepositoryManager/RMadmin.cpp:
+ * DAnCE/RepositoryManager/RepositoryManager.idl:
+ * DAnCE/RepositoryManager/RepositoryManager.cpp:
+ * DAnCE/RepositoryManager/RepositoryManager.mpc:
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.h:
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp:
+ * DAnCE/RepositoryManager/URL_Parser.h:
+ * DAnCE/RepositoryManager/URL_Parser.cpp:
+ * DAnCE/RepositoryManager/ZIP_Wrapper.h:
+ * DAnCE/RepositoryManager/ZIP_Wrapper.cpp:
+
+ Moving what used to be DAnCE/spec_RepositoryManager directory to
+ the DAnCE/RepositoryManager directory.
+
+Mon Jan 23 22:14:06 UTC 2006 Stoyan Paunov <spaunov@isis.vanderbilt.edu>
+
+ * DAnCE/spec_RepositoryManager/RepositoryManager_Impl.cpp:
+
+ Adding couple more checks to increase robustness.
+
+Mon Jan 23 20:07:17 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeManager/BaseMonitor.h
+
+ Added a virtual destructor to resolve warnings.
+
+ * DAnCE/TargetManager/DomainDataManager.cpp
+ * DAnCE/TargetManager/TargetManager_exec.cpp
+
+ Fixed some problems caused by
+ Mon Jan 23 15:11:40 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+Mon Jan 23 17:03:09 UTC 2006 Nishanth Shankaran <nshankar@dre.vanderbilt.edu>
+
+ * RACE/Controller/Component/Controller_svnt_export.h:
+ * RACE/Controller/Component/Controller_stub_export.h:
+ * RACE/Controller/Component/Controller_exec_export.h:
+ * RACE/Controller/Component/Controller_exec.h:
+ * RACE/Controller/Component/Controller_exec.cpp:
+ * RACE/Controller/Component/Controller.mpc:
+ * RACE/Controller/Component/Controller.idl:
+ * RACE/Controller/Component/Controller.cidl:
+
+ Added IDL, CIDL, and MPC files for the RACE controller along with a
+ dummy implementation of the controller.
+
+Mon Jan 23 15:11:40 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/TargetManager/TargetManager.mpc
+
+ Cleaned up the MPC file, fixed a linking error on OS X.
+
+Sat Jan 21 21:54:59 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/SizeTypeCalculator.cpp:
+
+ Fixed a bug in size type calculation of nested structs and unions.
+ Thanks to Sandro Santos Andrade <sandros@dcc.ufba.br> for
+ reporting the problem.
+
+Sat Jan 21 20:27:13 UTC 2006 Nilabja R <nilabjar@dre.vanderbilt.edu>
+
+ * DAnCE/TargetManager/TargetManager.idl:
+ * DAnCE/TargetManager/TargetManager.mpc:
+ * DAnCE/TargetManager/TargetManagerExt.idl:
+ Added this file to include the facet for RACE Controller
+ * DAnCE/TargetManager/TargetManager_exec.h:
+ * DAnCE/TargetManager/TargetManager_exec.cpp:
+ Added implementation for the facet serving the RACE Controller.
+
+
+Sat Jan 21 02:04:15 UTC 2006 Nilabja R <nilabjar@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ Removed trailing whitespaces and tabs
+
+ * DAnCE/NodeManager/BaseMonitor.h:
+ * DAnCE/NodeManager/CIAO_Monitor.h:
+ * DAnCE/NodeManager/CIAO_Monitor.cpp:
+ * DAnCE/NodeManager/MonitorCB.h:
+ * DAnCE/NodeManager/MonitorCB.cpp:
+ * DAnCE/NodeManager/MonitorController.h:
+ * DAnCE/NodeManager/MonitorController.cpp:
+ Removed system headers and replaced systme calls with ACE calls.
+ Also updated documentation with doxygen standard
+
+ * DAnCE/TargetManager/TargetManager_exec.cpp:
+ Removed system headers and replaced systme calls with ACE calls.
+ Also updated documentation with doxygen standard
+
+ * tools/Config_Handlers/DD_Handler.h:
+ * tools/Config_Handlers/DD_Handler.cpp:
+ Removed system headers and replaced systme calls with ACE calls.
+ Also updated documentation with doxygen standard
+
+Fri Jan 20 22:30:21 UTC 2006 Nilabja R <nilabjar@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ The include to NodeManagerC.h is removed since the dependency on
+ NodeManager_stub was removed.
+
+Fri Jan 20 20:33:23 UTC 2006 Nilabja R <nilabjar@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc:
+ Changed the Domain Application Manager to remove the dependency on
+ NodeManager_stub.
+
+Fri Jan 20 07:24:47 UTC 2006 Stoyan Paunov <spaunov@isis.vanderbilt.edu>
+
+ * DAnCE/spec_RepositoryManager/PC_Updater.h:
+ * DAnCE/spec_RepositoryManager/RMadmin.cpp:
+ * DAnCE/spec_RepositoryManager/RepositoryManager.cpp:
+ * DAnCE/spec_RepositoryManager/RepositoryManager_Impl.h:
+ * DAnCE/spec_RepositoryManager/RepositoryManager_Impl.cpp:
+ * DAnCE/spec_RepositoryManager/URL_Parser.h:
+ * DAnCE/spec_RepositoryManager/ZIP_Wrapper.h:
+ * DAnCE/spec_RepositoryManager/ZIP_Wrapper.cpp:
+
+ Improved the documentation, the output and added some minor features.
+ Changed all occurnences of 'new' to ACE_NEW in ZIP_Wrapper.cpp which
+ I had previously forgotten.
+
+ * DAnCE/new_RepositoryManager/packages/inconsistent.cpk:
+ * DAnCE/new_RepositoryManager/packages/package.cpk:
+
+ Removed these files.
+
+Thu Jan 19 01:29:58 UTC 2006 Stoyan Paunov <spaunov@isis.vanderbilt.edu>
+
+ * DAnCE/spec_RepositoryManager/HTTP_Handler.h:
+ * DAnCE/spec_RepositoryManager/HTTP_Handler.cpp:
+ * DAnCE/spec_RepositoryManager/PC_Updater.h:
+ * DAnCE/spec_RepositoryManager/PC_Updater_T.h:
+ * DAnCE/spec_RepositoryManager/RM_Helper.h:
+ * DAnCE/spec_RepositoryManager/RM_Helper.cpp:
+ * DAnCE/spec_RepositoryManager/RMadmin.cpp:
+ * DAnCE/spec_RepositoryManager/RepositoryManager.cpp:
+ * DAnCE/spec_RepositoryManager/RepositoryManager_Impl.cpp:
+ * DAnCE/spec_RepositoryManager/URL_Parser.h:
+ * DAnCE/spec_RepositoryManager/URL_Parser.cpp:
+ * DAnCE/spec_RepositoryManager/ZIP_Wrapper.h:
+
+ Changed all occurenced of new to ACE_NEW. Turned some documentation to
+ Doxygen style. Modified the URL_Parser singleton to use the ACE_Singleton
+ class. More changes on the way.
+
+Wed Jan 18 23:56:51 UTC 2006 Nilabja R <nilabjar@dre.vanderbilt.edu>
+
+ * DAnCE/NodeManager/BaseMonitor.h: Corrected the file name in @file
+
+ * DAnCE/TargetManager/CmpClient.cpp: Corrected the file name in @file
+
+Wed Jan 18 16:42:41 UTC 2006 Nilabja R <nilabjar@dre.vanderbilt.edu>
+
+ * DAnCE/NodeManager/BaseMonitor.h:Added documentation, changed
+ function signature
+ * DAnCE/NodeManager/CIAO_Monitor.cpp:Removed system headers
+ * DAnCE/NodeManager/Monitor.mpc:Added cvs tag
+ * DAnCE/NodeManager/MonitorController.cpp:Removed sleep call
+ * DAnCE/NodeManager/NodeManager.mpc:Added after clause to compile
+ TargetManager_stub before
+
+ * DAnCE/TargetManager/TM_Client.mpc:Added cvs tag
+ * DAnCE/TargetManager/TargetManager.mpc: Added cvs tag ,
+ Removed Deployment_Configuration.cpp from TargetManager_exec
+
+Tue Jan 17 23:52:11 UTC 2006 Stoyan Paunov <spaunov@isis.vanderbilt.edu>
+
+ * DAnCE/spec_RepositoryManager/Options.h:
+ * DAnCE/spec_RepositoryManager/Options.cpp:
+ * DAnCE/spec_RepositoryManager/RMadmin.cpp:
+
+ Took care of the todo's that Johnny suggested. Now using ACE_Singleton
+ parametrized with ACE_Null_Mutex.
+
+Tue Jan 17 21:07:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/spec_RepositoryManager/HTTP_Client.h:
+ Layout change
+ * DAnCE/spec_RepositoryManager/HTTP_Handler.{h,cpp}:
+ Changed bytecount_ to size_t
+
+Tue Jan 17 21:03:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/spec_RepositoryManager/Options.h:
+ Doxygen improvements
+
+ * DAnCE/spec_RepositoryManager/Options.cpp:
+ Layout changes and add some todo's
+
+Tue Jan 17 19:31:56 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Config_Handlers.mpc
+
+ Added a project inherit improperly removed by
+ Mon Jan 16 16:22:25 UTC 2006 Nilabja R <nilabjar@dre.vanderbilt.edu>
+
+Mon Jan 16 19:59:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/spec_RepositoryManager/ZIP_Wrapper.h:
+ * DAnCE/spec_RepositoryManager/URL_Parser.h:
+ * DAnCE/spec_RepositoryManager/PC_Updater.h:
+ * DAnCE/spec_RepositoryManager/PC_Updater_T.cpp:
+ * DAnCE/spec_RepositoryManager/HTTP_Handler.h:
+ * DAnCE/spec_RepositoryManager/HTTP_Client.h:
+ Doxygen improvements
+
+ * DAnCE/spec_RepositoryManager/ZIP_Wrapper.cpp:
+ * DAnCE/spec_RepositoryManager/PC_Updater_T.h:
+ * DAnCE/spec_RepositoryManager/HTTP_Client.cpp:
+ * DAnCE/spec_RepositoryManager/HTTP_Handler.cpp:
+ Layout changes
+
+Mon Jan 16 18:36:47 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Basic_Deployment_Data.hpp
+
+ Addressed some warnings from the RHEL_Static_GCC-3.4.2
+ build.
+
+Mon Jan 16 16:48:11 UTC 2006 Stoyan Paunov <spaunov@isis.vanderbilt.edu>
+
+ * DAnCE/spec_RepositoryManager/Options.h:
+ * DAnCE/spec_RepositoryManager/Options.cpp:
+ * DAnCE/spec_RepositoryManager/PC_Updater.cpp:
+ * DAnCE/spec_RepositoryManager/README.txt:
+ * DAnCE/spec_RepositoryManager/RMadmin.cpp:
+ * DAnCE/spec_RepositoryManager/RepositoryManager.cpp:
+ * DAnCE/spec_RepositoryManager/RepositoryManager_Impl.h:
+ * DAnCE/spec_RepositoryManager/RepositoryManager_Impl.cpp:
+
+ Added the newest changes to the RepoMan. This change add the
+ functionality that pertains to interface types. It is currently
+ disabled due to lack of support in the modeling tools for interfaces
+ for assemby-based interfaces.
+
+ I still need to clean up some of the output and some of the code before
+ the release of the beta.
+
+Mon Jan 16 16:22:25 UTC 2006 Nilabja R <nilabjar@dre.vanderbilt.edu>
+
+ * DAnCE/NodeManager/BaseMonitor.h:
+ * DAnCE/NodeManager/CIAO_Monitor.h:
+ * DAnCE/NodeManager/CIAO_Monitor.cpp:
+ * DAnCE/NodeManager/Monitor.mpc:
+ * DAnCE/NodeManager/MonitorCB.h:
+ * DAnCE/NodeManager/MonitorCB.cpp:
+ * DAnCE/NodeManager/MonitorController.h:
+ * DAnCE/NodeManager/MonitorController.inl:
+ * DAnCE/NodeManager/MonitorController.cpp:
+ * DAnCE/NodeManager/NodeManager.mpc:
+ * DAnCE/NodeManager/NodeManager_Impl.h:
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+ * DAnCE/NodeManager/Node_Manager.cpp:
+ These files implement the Monitor within the
+ NodeManager implementation.
+
+ * DAnCE/TargetManager/CmpClient.cpp:
+ * DAnCE/TargetManager/Deployment_Configuration.h:
+ * DAnCE/TargetManager/Deployment_Configuration.cpp:
+ * DAnCE/TargetManager/DomainDataManager.h:
+ * DAnCE/TargetManager/DomainDataManager.cpp:
+ * DAnCE/TargetManager/TM_Client.mpc:
+ * DAnCE/TargetManager/TargetManager.cidl:
+ * DAnCE/TargetManager/TargetManager.idl:
+ * DAnCE/TargetManager/TargetManager.mpc:
+ * DAnCE/TargetManager/TargetManager_exec.h:
+ * DAnCE/TargetManager/TargetManager_exec.cpp:
+ * DAnCE/TargetManager/TargetManager_exec_export.h:
+ * DAnCE/TargetManager/TargetManager_stub_export.h:
+ * DAnCE/TargetManager/TargetManager_svnt_export.h:
+ These files implement the Target Manager Implementation
+
+ * DAnCE/TargetManager/descriptors/Domain.cdd:
+ * DAnCE/TargetManager/descriptors/NodeDetails.dat:
+ * DAnCE/TargetManager/descriptors/NodeManagerMap.dat:
+ * DAnCE/TargetManager/descriptors/flattened_deploymentplan.cdp:
+ * DAnCE/TargetManager/descriptors/run_test_TargetManager.pl:
+ These are needed for the running of the TargetManager
+
+ * ciao/CCM_Core.mpc:
+ * ciao/Deployment.idl:
+ * ciao/Deployment_Base.idl:
+ * ciao/Deployment_Data.idl:
+ * ciao/Packaging_Data.idl:
+ * ciao/ServerResources.idl:
+ Needs to be changed to resolve conflicts when compiling the
+ Target Manager cidl file
+
+ * ciao/Target_Data.idl:
+ This is the file which contains declarations which has been
+ separated for the Target manager
+
+ * tools/Config_Handlers/Config_Handlers.mpc:
+ * tools/Config_Handlers/DD_Handler.h:
+ * tools/Config_Handlers/DD_Handler.cpp:
+ These implement the extension to the config handlers for
+ the parsing of the Target data domain.
+
+Fri Jan 13 20:39:21 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/XSCRT/Parser.hpp
+ * tools/Config_Handlers/XSCRT/XML.hpp
+
+ Added a templated casting operator for Xerces types instead
+ of using standard dynamic_cast. Thanks to Ossama Othman
+ ossama at dre dot vanderbilt dot edu for suggesting this
+ fix.
+
+ * CIAO-INSTALL.html
+ * NEWS
+
+ The above changes removed the requirement for an RTTI enabled
+ version of Xerces. Updated these documents to reflect this.
+
+Thu Jan 12 21:40:47 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * examples/Hello/ReDaC-Usage.html
+
+ Fixed some typos and an error.
+
+Tue Jan 10 22:34:22 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Basic_Deployment_Data.cpp
+ * tools/Config_Handlers/Basic_Deployment_Data.hpp
+ * tools/Config_Handlers/cdd.cpp
+ * tools/Config_Handlers/cdd.hpp
+
+ Regenerated to reflect updates to schema in
+ Tue Jan 10 19:01:45 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Modified_Deployment.xsd
+
+ Removed, as this file is obsolete, and schema should only exist in
+ CIAO_ROOT/docs/schema
+
+Tue Jan 10 22:05:17 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * examples/Hello/ReDaC-Usage.html
+
+ Added a tutorial-like web page to showcase ReDaC service
+ of DAnCE.
+
+ * NEWS
+
+ Updated with DAnCE's recent enhancements.
+
+Tue Jan 10 19:01:45 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+ * docs/schema/Basic_Deployment_Data.xsd
+ * docs/schema/cdd.xsd
+
+ Corrected incorrect cardinality on several target domain elements.
+
+Tue Jan 10 11:10:01 UTC 2006 Boris Kolpackov <boris@kolpackov.net>
+
+ * NEWS:
+
+ Updated with recent developments.
+
+Mon Jan 9 14:17:39 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client.cpp:
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_dynamic.cpp:
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_ex.cpp:
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_simple.cpp:
+ * examples/Hello/descriptors/Receiver_Svnt.iad:
+ * examples/Hello/descriptors/Sender_Svnt.iad:
+ * examples/Hello/descriptors/flattened_deploymentplan.cdp:
+ * examples/Hello/descriptors/flattened_deploymentplan_without_ns.cdp:
+ * examples/Hello/descriptors/flattened_deploymentplan_without_ns_add.cdp:
+ * examples/Hello/descriptors/flattened_deploymentplan_without_ns_remove.cdp:
+ * examples/Hello/descriptors/rt-config-example.cdp:
+ * examples/Hello/descriptors/rt-example.cdp:
+
+ Updated occurrences of the string name of the servant executor
+ DLL extry point to correspond with the changes in
+
+ Fri Jan 6 20:09:34 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+Fri Jan 6 20:09:34 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ExecImplHeaderGenerator.cpp:
+ * CIDLC/ExecImplSourceGenerator.cpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Changed the names of the generated extern C functions that
+ create the home and servant executors to incorportate the
+ entire scoped name of the class, to avoid name clashes
+ (since extern "C" functions link globally no matter what
+ scope they are declared in) when class names are
+ duplicated inside different nested namespaces. Thanks
+ to James Hill <james.h.hill@vanderbilt.edu> and Boris
+ Kolpackov <boris@dre.vanderbilt.edu> for their help
+ with the problem.
+
+ * DAnCE/tests/Config_Handlers/HUDisplay/Airframe_Svnt.iad:
+ * DAnCE/tests/Config_Handlers/HUDisplay/GPS_Svnt.iad:
+ * DAnCE/tests/Config_Handlers/HUDisplay/NavDisplay_Svnt.iad:
+ * DAnCE/tests/Config_Handlers/HUDisplay/Timer_Svnt.iad:
+ * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.idl:
+ * docs/tutorials/Quoter/Simple/descriptors/Broker_Svnt.iad:
+ * docs/tutorials/Quoter/Simple/descriptors/Distributor_Svnt.iad:
+ * docs/tutorials/Quoter/Simple/descriptors/flattened_deploymentplan.cdp:
+ * examples/BasicSP/descriptors/Airframe_Svnt.iad:
+ * examples/BasicSP/descriptors/GPS_Svnt.iad:
+ * examples/BasicSP/descriptors/NavDisplay_Svnt.iad:
+ * examples/BasicSP/descriptors/Timer_Svnt.iad:
+ * examples/BasicSP/descriptors/flattened_deploymentplan.cdp:
+
+ Updated the hand-crafted descriptor files in CIAO tests and
+ examples to reflect the changes above.
+
+Thu Jan 5 21:28:17 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+
+ Fixed some warning in Boarland C++ builds.
+
+Thu Jan 5 00:53:30 UTC 2006 J.T. Conklin <jtc@acorntoolworks.com>
+
+ * ChangeLog:
+
+ Untabify.
+ Delete-trailing-spaces.
+
+ Changed "add-log-time-format" to a really ugly lambda expression
+ that formats changelog timestamps in UTC and works with both GNU
+ Emacs and XEmacs.
+
+Wed Jan 4 21:01:15 2006 Boris Kolpackov <boris@kolpackov.net>
+
+ * ciao/CCM_Base.idl:
+
+ Replaced #if !defined (CIAO_HAS_IMPORT_KEYWORD) with
+ #ifdef CIAO_HAS_IMPORT_KEYWORD. This will give CIDLC's
+ CPP a chance to handle it properly.
+
+ * CCF/CCF/CompilerElements/Preprocessor.cpp:
+
+ Fixed a bug in lexeme parsing.
+
+Wed Jan 4 11:39:59 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+ * ciao/CCM_Core.mpc
+
+ Removed $CIAO_ROOT/DAnCE include, added CIAO_ROOT/ciao.
+
+Tue Jan 3 19:55:43 2006 Boris Kolpackov <boris@kolpackov.net>
+
+ * CCF/CCF/CompilerElements/Preprocessor.cpp:
+ * CCF/CCF/CompilerElements/Preprocessor.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Include.cpp:
+ * CIDLC/cidlc.cpp:
+
+ Implemented support for basic preprocessor directives:
+ #ifdef, #ifndef, #else, and #endif as well as the -D
+ command-line option. Also added exception handlers for
+ filesystem exceptions.
+
+ * CCF/CCF/IDL2/SemanticAction/Impl/Member.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Union.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Struct.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Struct.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Union.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Union.hpp:
+
+ Implemented incomplete struct and union semantics which
+ will appear in CORBA 3.1.
+
+ * CCF/CCF/CodeGenerationKit/IndentationCxx.hpp:
+
+ Code clean-ups.
+
+Fri Dec 30 11:56:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Dynamic_Component_Servant_Base.{h,cpp}:
+ Moved the default constructor to public again, vc8 needs it, no
+ idea why, have to recheck later
+
+Thu Dec 29 08:53:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ Fixed implicit conversion warning
+
+Wed Dec 28 10:42:31 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DAnCE/Old_Config_Handlers/DnC_Dump.cpp
+ * tools/Config_Handlers/DnC_Dump.cpp
+ * tools/Config_Handlers/PSPE_Handler.cpp
+
+ Silenced some warnings from
+ Fri Dec 23 11:49:04 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+Wed Dec 28 12:53:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Context_Impl_Base.{h,cpp}:
+ Readded the default constructor, some compilers need it, no idea
+ why, will sort this out later but this at least makes the scoreboard
+ less red
+
+Tue Dec 27 15:57:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Container_Base.{h,cpp}:
+ * ciao/Context_Impl_Base.{h,cpp}:
+ * ciao/Home_Servant_Impl_Base.{h,cpp}:
+ * ciao/Servant_Impl_Base.{h,cpp}:
+ * ciao/Swapping_Servant_Home_Impl_Base.{h,cpp}:
+ * ciao/Swapping_Servant_Home_Impl_T.h:
+ Moved the default constructor to the private section and removed
+ the implementation with the assert
+
+Tue Dec 27 15:08:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeApplication/NodeApplication_Core.cpp:
+ Initialise pointer with 0
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.{h,cpp,inl}:
+ Just declare the default constructor private, it seems not
+ to be used and the implementation was incorrect
+
+Fri Dec 23 11:49:04 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/Deployment_Configuration.cpp
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.h
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp
+ * DAnCE/NodeApplication/NodeApplication_Impl.h
+ * DAnCE/NodeApplication/NodeApplication_Impl.inl
+ * DAnCE/NodeApplication/RTConfig_Manager.cpp
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.inl
+ * DAnCE/NodeManager/NodeManager_Impl.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.h
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_dynamic.cpp
+ * ciao/Container_Base.cpp
+ * ciao/Deployment.idl
+ * ciao/Deployment_Core.idl
+ * examples/Hello/descriptors/flattened_deploymentplan_without_ns.cdp
+ * examples/Hello/descriptors/flattened_deploymentplan_without_ns_add.cdp
+ * examples/Hello/descriptors/flattened_deploymentplan_without_ns_remove.cdp
+
+ Merged from CVS Branch CIAO_ReDAC_01. This merge enables DAnCE to
+ handle dynamic updating component assemblies as well as its
+ configurations on the fly. Major IDL changes include the following:
+
+ 1) Modified the finishLaunch() operation on the DomainApplicationManager
+ interface by adding an additional boolean parameter to differentiate
+ whether this is for inital deployment or for redeployment.
+
+ 2) Modified the finishLaunch() operation on the NodeApplicationManager
+ interface by adding an additional boolean parameter to differentiate
+ whether this is for inital deployment or for redeployment.
+
+ 3) Added new operations perform_redeployment() to the ExecutionManager
+ interface and NodeApplicationManager interface.
+
+Fri Dec 23 13:47:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/ComponentPackager/*
+ Removed all these files, this component was using ziparchive and
+ we didn't build it. After checking this with the DAnCE developers
+ the conclustion was to zap it
+
+Thu Dec 22 19:53:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeManager/NodeManager_Impl.h:
+ Removed not needed msvc pragma push/pop
+
+Thu Dec 22 19:51:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/ExecutionManager/DAM_Map.cpp:
+ Made variable const
+
+Thu Dec 22 19:47:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ Removed some old includes, make a variable const
+
+ * DAnCE/DomainApplicationManager/Deployment_Configuration.{h,cpp}:
+ Made get_default_node_manager_ior and get_node_manager_ior
+ const methods
+
+Thu Dec 22 19:43:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp:
+ Initialise pointers with 0
+
+ * DAnCE/NodeApplicationManager/ImplementationInfo.h:
+ Removed include of cpp file in this file, this file is not
+ declaring a template
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h:
+ Converted documentation to doxygen style
+
+Thu Dec 22 19:36:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/ComponentPackager/ComponentPackager.mpc:
+ Use exceptions as base project
+
+ * DAnCE/ComponentPackager/Component_Packager.cpp:
+ Converted some documentation to doxygen style
+
+ * DAnCE/ComponentPackager/Base_Packager.cpp:
+ Fixed argument not used warnings
+
+ * DAnCE/ComponentPackager/CPK_Packager.{h,cpp}:
+ Small cleanup
+
+Thu Dec 22 14:10:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/ComponentPackager/Base_Packager.h:
+ Changed documentation to doxygen style
+
+Tue Dec 20 08:07:51 2005 Simon McQueen <sm@prismtech.com>
+
+ * CIAO version 0.4.8 released.
+
+Fri Dec 16 15:58:27 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp
+
+ Modified to fix a bug reported by Will Otte regarding
+ DAnCE's parsing of deployment plan to find component
+ servant and executor libraries. This is a temporary
+ workaround so even if a component name happens to
+ have "_exec" string inside it, DAnCE could still
+ work correctly to find the corresponding servant
+ and executor libraries.
+
+Fri Dec 16 14:57:21 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * ciao/Container_Base.cpp
+ * ciao/Container_Base.h
+
+ Fixed a bug about RT-CCM. The bug creeped out when the
+ facet_consumer_poa_ is not configured properly to use
+ application specific real-time policies. Thanks to
+ Roland Schimmack <Roland.Schimmack @ gmx.de> for
+ reporting this bug.
+
+Tue Dec 13 12:13:26 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu>
+
+ * COPYING: Updated this file to mention compliance issues wrt the
+ new "The Energy Policy Act of 2005". Thanks to Malcolm Spence
+ for providing this.
+
+Tue Dec 13 09:07:21 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * CCF/Documentation/Build.html
+ * CIDLC/README.html
+
+ Updates to the CIDLC build documentation. Thanks to James Hill
+ <hillj at isis dot vanderbilt dot edu> for completing this update.
+
+Mon Dec 12 13:20:00 UTC 2005 Simon Massey <sma@prismtech.com>
+
+ * NEWS:
+
+ Added Nanbor's changes from the release notes.
+
+Fri Dec 9 13:39:10 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Any_Handler.h
+
+ Added a missing include for the versioned namespace macros.
+
+Fri Dec 9 09:18:01 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * ciao/Server_init.h
+
+ Added a missing include for the versioned namespace macros.
+
+Thu Dec 08 21:34:36 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * NEWS
+
+ Updated the NEWS file to capture ReDaC stuff.
+
+Thu Dec 8 15:38:02 2005 Ossama Othman <ossama@dre.vanderbilt.edu>
+
+ * DAnCE/Old_Config_Handlers/DT_Handler.h:
+ * ciao/Client_init.h:
+ * ciao/Context_Impl_T.h:
+ * ciao/Server_init.h:
+ * ciao/Upgradeable_Context_Impl_T.h:
+ * tools/Config_Handlers/Any_Handler.h:
+
+ Fixed versioned namespace support. The versioning macros calls
+ around forward declarations in the CORBA namespace were
+ missing.
+
+Thu Dec 08 08:38:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+ Fixed compile errors with VxWorks
+
+Wed Dec 07 18:05:35 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * ciao/Deployment.idl
+ * ciao/Deployment_Core.idl
+ * doc/index.html
+
+ Document CIAO specific interface extension/modifications.
+
+Wed Dec 7 12:41:22 2005 Boris Kolpackov <boris@kolpackov.net>
+
+ * CIDLC/ExecImplGenerator.cpp:
+ * CIDLC/ExecImplHeaderGenerator.cpp:
+ * CIDLC/ExecImplSourceGenerator.cpp:
+ * CIDLC/ExecutorMappingGenerator.cpp:
+ * CIDLC/ServantGenerator.cpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+ * CCF/Example/CIDL/LocalExecutorMapping/ExecutorMappingGenerator.cpp:
+
+ Fixed a bug in regular expressions that are used to get rid of
+ file suffixes.
+
+Tue Dec 06 12:33:27 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/RT-CCM/CIAOServerResources.cpp
+ * tools/Config_Handlers/RT-CCM/CIAOServerResources.hpp
+
+ Fixed warnings in Borland.
+
+Tue Dec 6 16:14:01 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * ciao/Servant_Impl_T.cpp:
+
+ Changed initialization of boolean class members from '0'
+ to 'false'.
+
+ * ciao/Servant_Impl_T.h:
+
+ Added comments to the executor and context class members,
+ providing info about where they are initialized.
+
+Mon Dec 5 14:43:48 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/ExecutionManager.mpc
+
+ Removed superfluous dependancy on Xerces.
+
+Sun Dec 4 11:13:32 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/StaticConfigurator/StaticDAnCEParser.mpc
+ * DAnCE/tests/Config_Handlers/handler_test.mpb
+
+ Fix linking errors on Tiger.
+
+Fri Dec 2 11:25:48 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/RepositoryManager/RepositoryManager.idl
+ * DAnCE/RepositoryManager/RepositoryManager.mpc
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.h
+ * DAnCE/RepositoryManager/Repository_Manager.cpp
+ * DAnCE/RepositoryManager/Repository_Manager_conf.h
+ * DAnCE/RepositoryManager/Update_Plan.cpp
+ * DAnCE/RepositoryManager/Update_Plan.h
+
+ Removed the deprecated RepositoryManager implementation.
+
+ * NEWS
+
+ Updated the NEWS file to reflect this.
+
+Thu Dec 1 10:16:46 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Basic_Deployment_Data.hpp
+ * tools/Config_Handlers/RT-CCM/CIAOServerResources.cpp
+ * tools/Config_Handlers/RT-CCM/CIAOServerResources.hpp
+
+ Fixed some errors caused by previous commit.
+
+Thu Dec 1 12:57:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/DomainApplicationManager/Deployment_Configuration.cpp:
+ Use 0 instead of NULL, NULL is not portable
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ * DAnCE/NodeManager/NAM_Map.cpp:
+ Initialise pointers with 0 and return false instead of 0
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.h:
+ Removed not needed msvc pragma push/pop
+
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+ Initialise pointers with 0 and removed some printf that seems some
+ left over debugging statements
+
+Wed Nov 30 16:24:43 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * docs/schema/xsc-banner.h
+
+ Updated this file to reflect recent export macro changes.
+
+ * tools/Config_Handlers/Basic_Deployment_Data.cpp
+ * tools/Config_Handlers/Basic_Deployment_Data.hpp
+ * tools/Config_Handlers/Deployment.cpp
+ * tools/Config_Handlers/Deployment.hpp
+ * tools/Config_Handlers/ccd.cpp
+ * tools/Config_Handlers/ccd.hpp
+ * tools/Config_Handlers/cdp.cpp
+ * tools/Config_Handlers/cdp.hpp
+ * tools/Config_Handlers/cid.cpp
+ * tools/Config_Handlers/cid.hpp
+ * tools/Config_Handlers/cpd.cpp
+ * tools/Config_Handlers/cpd.hpp
+ * tools/Config_Handlers/iad.cpp
+ * tools/Config_Handlers/iad.hpp
+ * tools/Config_Handlers/pcd.cpp
+ * tools/Config_Handlers/pcd.hpp
+ * tools/Config_Handlers/toplevel.cpp
+ * tools/Config_Handlers/toplevel.hpp
+ * tools/Config_Handlers/RT-CCM/CIAOServerResources.cpp
+ * tools/Config_Handlers/RT-CCM/CIAOServerResources.hpp
+
+ Made a borland specific fix apply to all compilers, hopefully
+ fixing ICC builds.
+
+Wed Nov 30 12:30:59 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * examples/Hello/descriptors/flattened_deploymentplan.cdp
+
+ Added metadata necessary to initialize an enum attribute.
+
+Wed Nov 30 08:06:00 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/RepositoryManager/RepositoryManager.mpc:
+ This project is deprecated according to Will, so added
+ requires+=dummy_label, it is up to the DAnCE people to
+ decide when they zap this from the archive
+
+Fri Nov 25 10:50:00 UTC 2005 Simon Massey <sma@prismtech.com>
+
+ * DAnCE/Old_Config_Handlers/XercesString.cpp
+
+ Fixed prototype return type qualifier missmatch
+
+Thu Nov 24 16:04:05 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * tools/Config_Handlers/Config_Handlers.mpc
+
+ Added the MPC base project dependency to typecodefactory,
+ and hopefully this should fix some linking erros on the
+ scoreboard.
+
+Thu Nov 24 11:25:09 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/Old_Config_Handlers/XercesString.h
+
+ Fixed a warning, since declaring function return type
+ to be const is meaningless.
+
+Tue Nov 22 16:03:24 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/NodeApplication/Container_Impl.cpp
+
+ Fixed a memory management related bug, we should not
+ explicitly call release() on the component object
+ reference of var type.
+
+Mon Nov 21 17:24:42 2005 Boris Kolpackov <boris@kolpackov.net>
+
+ * NEWS:
+
+ Updated with information about changes in CCF.
+
+Fri Nov 18 10:28:31 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * performance-tests/Benchmark/RoundTrip/RoundTrip.mpc
+
+ Quashed a link time warning on OS X.
+
+Thu Nov 17 18:13:28 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/Swapping/Sender/Sender.mpc:
+
+ Added a dependency of SenderE.idl on itself, to keep
+ VC8 from launching the IDL compiler on it until it
+ has been generated by the CIDL compiler.
+
+Thu Nov 17 09:53:35 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+
+ Fixed warning about unused arguments
+
+Wed Nov 16 11:30:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/Swapping/Sender/Sender_exec.cpp:
+ Fixed warning in VxWorks build
+
+Mon Nov 14 22:43:09 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.h
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_dynamic.cpp
+ * ciao/Deployment.idl
+
+ Fixed some errors and warnings on the builds.
+
+Mon Nov 14 11:05:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/Display/RateGen/RateGen_exec.h:
+ * examples/BasicSP/EC/EC_exec.h:
+ Timer id's are long, not int
+
+ * ciao/Servant_Activator.cpp:
+ Fixed 64bit conversion warnings
+
+Sun Nov 13 12:54:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/Swapping/Sender/Sender_exec_2.cpp:
+ * examples/Swapping/Sender/Sender_exec_1.cpp:
+ * examples/Hello/Sender/Sender_exec.cpp:
+ * examples/BasicSP/BMClosedED/BMClosedED_exec.cpp:
+ Fixed warnings in VxWorks build
+
+Fri Nov 11 17:49:40 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.h
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h
+ * DAnCE/NodeManager/NodeManager_Impl.cpp
+ * DAnCE/NodeManager/NodeManager_Impl.h
+ * ciao/Deployment.idl
+
+ More stuff regarding dynamic assembly management. These
+ changes won't break existing initial deployment and
+ configuration.
+
+Fri Nov 11 12:37:00 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.h
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp
+ * DAnCE/NodeApplication/NodeApplication_Impl.h
+ * DAnCE/NodeManager/NodeManager_Impl.cpp
+ * DAnCE/NodeManager/NodeManager_Impl.h
+ * DAnCE/tests/NodeApplicationTest/NodeAppTest.mpc
+ * ciao/Deployment.idl
+ * ciao/Deployment_Core.idl
+
+ Added the DAnCE enhancements to support dynamic
+ assembly management and reconfiguration. No actual
+ implementation is there except some capability
+ in NodeApplication_Impl servant class.
+
+Thu Nov 10 17:13:20 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * ciao/Servant_Activator.cpp
+
+ Enhanced a debug output message.
+
+Thu Nov 10 06:54:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Port_Activator_T.cpp:
+ Fixed warning in VxWorks build
+
+Tue Nov 8 22:13:50 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeManager/NodeManager_Impl.cpp
+ * ciao/Container_Base.cpp
+ * ciao/Servant_Impl_Base.cpp
+ * ciao/Swapping_Servant_Home_Impl_T.cpp
+ * ciao/Upgradeable_Context_Impl_T.cpp
+ * examples/BasicSP/EC/EC.mpc
+
+ Resolved some warnings in OS X relating to ambiguous conversions.
+
+Mon Nov 7 16:23:41 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/ExecutionManager.mpc
+ * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc
+ * performance-tests/Benchmark/Benchmark.mpc
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient.mpc
+ * performance-tests/Benchmark/RoundTripServer/RoundTripServer.mpc
+
+ Resolving linking errors on OS X.
+
+Mon Nov 7 14:00:31 2005 Nanbor Wang <nanbor@exothermic.txcorp.com>
+
+ * NEWS: Added some new TO-DO items.
+
+Mon Nov 07 10:23:09 2005 Nanbor Wang <nanbor@exothermic.txcorp.com>
+
+ * DAnCE/NodeApplication/RTNodeApp_Configurator.cpp: Fixed
+ incorrect usage of extracting a struct from an any. Thanks much
+ to Gan for helping with the debugging effort.
+
+ * examples/Hello/descriptors/rt_run_test.pl:
+ * examples/Hello/descriptors/rt-example.cdp: Enabled the use of RT
+ policy sets and RT-enabled NodeApplication in the example by
+ default.
+
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp: Minor enhancement to
+ the debug messages.
+
+Fri Nov 04 16:44:29 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/ImplementtionInfo.cpp
+
+ Changed to use the "copying" version of the Any insertion
+ operator. Thanks Jeff Parsons for the help on this.
+
+Thu Nov 03 15:34:39 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/ImplementationInfo.cpp
+
+ Fixed a bug which causes unknow exception when calling
+ startLaunch on NodeApplicationManager.
+
+Thu Nov 3 19:36:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+ Fixed implicit conversion warning in VxWorks build
+
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client.cpp:
+ Renamed global variable count to counter to fix clash with STL count
+ algoritm on VxWorks
+
+Thu Nov 03 11:14:52 2005 Nanbor Wang <nanbor@exothermic.txcorp.com>
+
+ * DAnCE/NodeApplication/RTConfig_Manager.cpp: Added a tad more and
+ improve existing debugging print out.
+
+ * examples/Hello/descriptors/rt-example.cdp:
+ * examples/Hello/descriptors/rt-config-example.csr:
+ * examples/Hello/descriptors/rt_run_test.pl: Changed to use a
+ simpler version of DeploymentPlan for the test for now.
+
+Wed Nov 02 19:28:14 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * tools/Config_Handlers/RT-CCM/CB_Handler.cpp
+ * tools/Config_Handlers/RT-CCM/TPL_Handler.cpp
+ * tools/Config_Handlers/RT-CCM/PS_Handler.cpp
+ * DAnCE/NodeApplication/RTConfig_Manager.cpp:
+
+ Fixed some bugs related to populating/displaying ServerResource
+ data structure.
+
+Wed Nov 02 14:55:14 2005 Nanbor Wang <nanbor@exothermic.txcorp.com>
+
+ * DAnCE/NodeApplication/RTNodeApp_Configurator.cpp: Fixed strings
+ comparisons syntax.
+
+ * DAnCE/NodeApplication/RTConfig_Manager.cpp:
+ * DAnCE/NodeApplication/RTConfig_Manager.h: Added a new
+ print_resource method and a bunch of debugging print out to help
+ debugging XML parsing and propagating.
+
+ * examples/Hello/descriptors/RTsvc.conf:
+ * examples/Hello/descriptors/rt_run_test.pl: Added a RTsvc.conf
+ file to start up the NodeApplication in RT mode.
+
+ * examples/Hello/descriptors/rt-config-example.csr: Made RT
+ resource definitions more realistic and added a new policy set
+ for debugging XML parsing.
+
+Wed Nov 02 07:09:10 2005 Nanbor Wang <nanbor@exothermic.txcorp.com>
+
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp: Fixed
+ usage of strings.
+
+Tue Nov 01 22:41:04 2005 Nanbor Wang <nanbor@exothermic.txcorp.com>
+
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp: Changed to
+ insert policy set name into ContainerPolicySet property instead
+ of the actual policy since we already have the policy set
+ definitions when creating the NodeApplication.
+
+Tue Nov 01 13:44:58 2005 Nanbor Wang <nanbor@exothermic.txcorp.com>
+
+ * DAnCE/NodeApplication/RTConfig_Manager.cpp:
+ * DAnCE/NodeApplication/RTConfig_Manager.h:
+ * DAnCE/NodeApplication/RTConfig_Manager.inl:
+ * DAnCE/NodeApplication/RTNodeApp_Configurator.cpp:
+ * DAnCE/NodeApplication/RTNodeApp_Configurator.h: Integrated
+ RTConfig_Manager with the RTNodeApp_Configurator.
+
+Mon Oct 31 22:37:42 2005 Nanbor Wang <nanbor@exothermic.txcorp.com>
+
+ * DAnCE/NodeApplication/NodeApplication/NodeApplication.mpc:
+ * DAnCE/NodeApplication/NodeApplication/RTConfig_Manager.cpp:
+ * DAnCE/NodeApplication/NodeApplication/RTConfig_Manager.h:
+ * DAnCE/NodeApplication/NodeApplication/RTConfig_Manager.inl:
+ Added the RT configuration manager that keep track of all the RT
+ resources and policy sets in a NodeApplication. We still need
+ to hook this up in the RTNodeApp_Configurator.
+
+Mon Oct 31 11:22:41 2005 <Gan Deng@SKYLINENETGEAR>
+
+ * examples/Hello/descriptors/rt-config-example.csr
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp
+ * DAnCE/NodeApplicationManager/ImplementationInfo.cpp
+
+ Fixed the descriptor by adding the server resource id tag.
+
+Sun Oct 30 22:49:52 2005 Nanbor Wang <nanbor@exothermic.txcorp.com>
+
+ * DAnCE/NodeManager/Node_Manager.cpp: Fixed missing -a Get_Opt
+ parameter and usage text. "-a" is used to set the optional
+ command line flags for the NodeApplication. The logic was there
+ in the Get_Opt loop but the Get_Opt object was not set to parse
+ the flag and the usage text for Node_Manager didn't mention the
+ flag either.
+
+ Eventually, the optional command line flags should really come
+ from the ServerResource XML file.
+
+ * NodeApplicationManager/NodeApplicationManager_Impl.cpp: Added a
+ missing space to separate optional command line flags from the
+ default ones. The old one worked only when no optional
+ commandline flags are presented.
+
+ * ciao/Deployment_Core.idl: Removed "init" method from the
+ Container interface since it is really implementation specific.
+
+ * DAnCE/NodeApplication/Container_Impl.cpp:
+ * DAnCE/NodeApplication/Container_Impl.h: Changed the signature of
+ init method to take a PolicyList pointer directly since this is
+ what we really need to initialize a container.
+
+ * DAnCE/NodeApplication/Configurator_Factory.h: Added comments
+ documentating how we should really support multiple external
+ configurator module and how it could be done.
+
+ * DAnCE/NodeApplication/Configurator_Factory.cpp: Changed DLL open
+ to not closing down the DLL handle on exit. Otherwise,
+ NodeApplication can not shut down cleanly.
+
+ * DAnCE/NodeApplication/NodeApp_Configurator.h: Commented on the
+ potential need for a finalizer method, or two.
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp: Added actual
+ hooks to process optional policies for RT support.
+
+ * DAnCE/NodeApplication/RTNodeApp_Configurator.cpp: Added code to
+ parse the optional properties and manipulate RT resources and
+ policies.
+
+Sun Oct 30 10:27:27 2005 Nanbor Wang <nanbor@exothermic.txcorp.com>
+
+ * DAnCE/NodeApplication/Configurator_Factory.cpp: Fixed a typo in
+ command line option flag.
+
+Fri Oct 28 12:30:06 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/Configurator_Factory.cpp
+ * DAnCE/NodeApplication/RTNodeApp_Configurator.cpp
+ * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc
+
+ Scoreboard fixes.
+
+Thu Oct 27 21:06:39 2005 Boris Kolpackov <boris@kolpackov.net>
+
+ * CCF/CCF/CodeGenerationKit/IndentationCxx.hpp:
+
+ Added support for indentation of function arguments.
+
+Thu Oct 27 00:29:11 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc
+ * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.h
+ * DAnCE/NodeApplicationManager/ImplementationInfo.h
+ * DAnCE/StaticConfigurator/StaticDAnCEParser.mpc
+
+ Fixed some compilation and linking errors shown on the scoreboard,
+ particularly for Windows builds.
+
+Thu Oct 27 07:16:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rules.ciao.GNU:
+ When cmd is the shell, use a different way to get the CIAO versions
+ needed for building with VxWorks 5.5 with Windows as host
+
+Wed Oct 26 23:07:59 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/TypeNameEmitter.cpp:
+ * CIDLC/TypeNameEmitter.hpp:
+
+ Added backend support for the frontend features added by
+ Boris in
+
+ Tue Oct 25 14:08:44 2005 Boris Kolpackov <boris@kolpackov.net>.
+
+Wed Oct 26 16:16:32 2005 Nanbor Wang <nanbor@exothermic.txcorp.com>
+
+ * DAnCE/NodeApplication/NodeApp_Configurator.cpp:
+ * DAnCE/NodeApplication/NodeApp_Configurator.h: Updated the
+ NodeApp_Configurator to support pre_orb_initialize and
+ post_orb_initialize methods which will be invoked before and
+ after ORB_init is called.
+
+ * DAnCE/NodeApplication/NodeApplication.cpp: Moved ORB_init into
+ NodeApplication_Core object.
+
+ * DAnCE/NodeApplication/NodeApplication_Core.cpp:
+ * DAnCE/NodeApplication/NodeApplication_Core.h:
+ * DAnCE/NodeApplication/NodeApplication_Core.inl: Moved the
+ NodeApplication_Options and NoOp_Configurator classes into
+ Configurator_Factory.* file. Refactored NodeApplication_Core to
+ enable pre_orb_initialize and post_orb_initialize.
+
+ * DAnCE/NodeApplication/Configurator_Factory.cpp:
+ * DAnCE/NodeApplication/Configurator_Factory.h: Factored all the
+ NodeApp_Configurtor creation strategies and NodeApplication
+ configuration managements into these files. It also includes
+ the no-ops NodeApp_Configurator used by non-RT NodeApplication.
+
+ We should extend the argument parsing logic to support
+ user-supplied NodeApp_Configurator at some point.
+
+ * DAnCE/NodeApplication/NodeApplication.mpc:
+ * DAnCE/NodeApplication/RTNA_Configurator_Export.h:
+ * DAnCE/NodeApplication/RTNodeApp_Configurator.cpp:
+ * DAnCE/NodeApplication/RTNodeApp_Configurator.h: Added the
+ dynamic library for real-time configuration. The current
+ implementation set up the NodeApplication process by enabling
+ the RTCORBA support. We still need to add the capability to
+ parse and allocate RT resources and policies.
+
+Wed Oct 26 18:37:00 2005 Boris Kolpackov <boris@kolpackov.net>
+
+ * CCF/CCF/IDL2/SemanticAction/Impl/Typedef.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Array.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Elements.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Elements.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Sequence.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/String.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Union.hpp:
+
+ Corrected a left/right node mismatch in
+ type-arguments->specialization relation.
+
+Wed Oct 26 16:37:26 2005 Boris Kolpackov <boris@kolpackov.net>
+
+ * CCF/CCF/IDL2/SemanticAction/Impl/Typedef.cpp:
+
+ Clear array type before starting sequence, string, etc.,
+ declarations.
+
+Tue Oct 25 14:08:44 2005 Boris Kolpackov <boris@kolpackov.net>
+
+ * CCF/CCF/IDL2/Parser.cpp:
+ * CCF/CCF/IDL2/Parser.hpp:
+ * CCF/CCF/IDL2/SemanticGraph.hpp:
+ * CCF/CCF/IDL2/Traversal.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Typedef.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Typedef.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Typedef.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Union.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Array.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Array.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Elements.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Elements.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Sequence.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Sequence.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/String.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/String.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Union.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Union.hpp:
+ * CCF/CCF/IDL2/Traversal/Array.cpp:
+ * CCF/CCF/IDL2/Traversal/Array.hpp:
+ * CCF/CCF/IDL2/Traversal/Elements.hpp:
+ * CCF/CCF/IDL2/Traversal/IntExpression.hpp:
+ * CCF/CCF/IDL2/Traversal/Sequence.cpp:
+ * CCF/CCF/IDL2/Traversal/Sequence.hpp:
+ * CCF/CCF/IDL2/Traversal/String.cpp:
+ * CCF/CCF/IDL2/Traversal/String.hpp:
+
+ Implemented the second part of the const expression support.
+ This includes bounded sequences, strings, and arrays.
+
+Mon Oct 24 09:36:28 2005 Venkita Subramonian <venkita@cs.wustl.edu>
+
+ * docs/static_dance.html:
+
+ Corrected minor error with display of figures.
+
+Mon Oct 24 08:10:29 2005 Venkita Subramonian <venkita@cs.wustl.edu>
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.{h,inl,cpp}:
+ * DAnCE/NodeApplication/Container_Impl.{h,inl,cpp}:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.{cpp,inl,h}:
+ * DAnCE/NodeManager/NodeManager_Impl.{cpp,h}:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc:
+ * DAnCE/NodeManager/NodeManager.mpc:
+ * DAnCE/StaticConfigurator/README:
+ * DAnCE/StaticConfigurator/StaticDAnCEParser.{cpp,mpc}:
+ * DAnCE/StaticConfigurator/StaticDAnCEApp.{cpp.tmpl,mpc.tmpl}:
+ * docs/static_dance.html:
+ * docs/imgs/dance_arch.{vsd,jpg}:
+ * docs/imgs/static_dance_arch.{vsd,jpg}:
+ * docs/imgs/static_dance_impl.{vsd,jpg}:
+
+ Added Static D&C capability to CIAO. See
+ $CIAO_ROOT/docs/static_dance.html for further details.
+
+Fri Oct 21 13:58:13 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/DynAny_Handler.mpc
+
+ Modified to make this not build on systems built with minimum
+ corba.
+
+Fri Oct 21 09:56:10 2005 Nanbor Wang <nanbor@exothermic.txcorp.com>
+
+ * DAnCE/RTNodeApplication/RTNodeApplication.mpc: Removed the MPC
+ file to prevent it from being built.
+
+ * DAnCE/RTNodeApplication/REAME: Stated the directory has been
+ depricated.
+
+Fri Oct 21 13:11:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ Fixed unitialized warnings
+
+Fri Oct 21 10:04:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Old_Config_Handlers/Process_Element_T.cpp:
+ Fixed 64bit warnings
+
+Thu Oct 20 09:07:21 2005 Nanbor Wang <nanbor@exothermic.txcorp.com>
+
+ * DAnCE/NodeApplication/NodeApp_Configurator.{h,cpp}:
+ Actually, destructors can be pure virtual. They just can't be
+ defined in header files.
+
+Thu Oct 20 09:45:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeApplication/NodeApp_Configurator.{h,cpp}:
+ Destructor can't be pure virtual
+
+Wed Oct 19 15:03:56 2005 Nanbor Wang <nanbor@exothermic.txcorp.com>
+
+ These changes are made to add support for RT-capable
+ NodeApplication.
+
+ * ciao/CCM_Core.mpc:
+ * ciao/Container_Impl.h:
+ * ciao/Container_Impl.inl:
+ * ciao/Container_Impl.cpp:
+ * ciao/NodeApplication_Impl.h:
+ * ciao/NodeApplication_Impl.inl:
+ * ciao/NodeApplication_Impl.cpp: Moved NodeApplication and
+ Container interface implementations under DAnCE/NodeApplication/
+ subdir. They are coupled with NodeApplication implementation
+ now.
+
+ * DAnCE/NodeApplication/NodeApplication.mpc: Changed to
+ incorporate the following files/changes.
+
+ * DAnCE/NodeApplication/NodeApp_Configurator.h:
+ * DAnCE/NodeApplication/NodeApp_Configurator.cpp: Added abstract,
+ base NodeApp_Configurator class to define the interface for
+ configuring NodeApplication internal.
+
+ * DAnCE/NodeApplication/Container_Impl.h:
+ * DAnCE/NodeApplication/Container_Impl.inl:
+ * DAnCE/NodeApplication/Container_Impl.cpp: Moved from ciao/
+ subdir.
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.h:
+ * DAnCE/NodeApplication/NodeApplication_Impl.inl:
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp: Changed to
+ depend on a concrete NodeApp_Configurator to perform the
+ configuration.
+
+ * DAnCE/NodeApplication/NodeApplication_Core.h:
+ * DAnCE/NodeApplication/NodeApplication_Core.inl:
+ * DAnCE/NodeApplication/NodeApplication_Core.cpp:
+ * DAnCE/NodeApplication/NodeApplication.cpp: Restructured the
+ NodeApplication implementation so that the ORB event loop can be
+ run on the main thread or on a separate thread, using the FIFO
+ scheduling class.
+
+ A new create_configurator method in NodeApplication_Core will
+ create the "right" concrete configurator based on the command
+ line flags. We will support a RT configuration soon.
+ Currently, there's only a NoOp_Configurator for running
+ NodeApplication without RT support.
+
+ We will add the RT configuration as a dynamic library and will
+ hook it up via ACE_DLL in a few days.
+
+Tue Oct 18 16:50:24 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * NEWS
+
+ Updated release notes.
+
+Mon Oct 17 13:21:59 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * docs/schema/ccd.xsd
+
+ Updated to work with expected format for Repoman/ComponentPackager
+
+Fri Oct 14 17:22:59 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Basic_Deployment_Data.cpp
+ * tools/Config_Handlers/Basic_Deployment_Data.hpp
+ * tools/Config_Handlers/Deployment.cpp
+ * tools/Config_Handlers/Deployment.hpp
+ * tools/Config_Handlers/ccd.cpp
+ * tools/Config_Handlers/ccd.hpp
+ * tools/Config_Handlers/cdd.cpp
+ * tools/Config_Handlers/cdd.hpp
+ * tools/Config_Handlers/cdp.cpp
+ * tools/Config_Handlers/cdp.hpp
+ * tools/Config_Handlers/cid.cpp
+ * tools/Config_Handlers/cid.hpp
+ * tools/Config_Handlers/cpd.cpp
+ * tools/Config_Handlers/cpd.hpp
+ * tools/Config_Handlers/iad.cpp
+ * tools/Config_Handlers/iad.hpp
+ * tools/Config_Handlers/pcd.cpp
+ * tools/Config_Handlers/pcd.hpp
+ * tools/Config_Handlers/toplevel.cpp
+ * tools/Config_Handlers/toplevel.hpp
+
+ Regerated with new version of XSC which implements some heavy
+ optimizations.
+
+Fri Oct 14 14:11:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp:
+ Removed not needed ;
+
+Thu Oct 13 15:42:12 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/RT-CCM/CIAOServerResources.cpp
+ * tools/Config_Handlers/RT-CCM/CIAOServerResources.hpp
+ * tools/Config_Handlers/RT-CCM/TPL_Handler.cpp
+
+ Various compile fixes for Borland.
+
+ * tools/Config_Handlers/XMLSchema/Types.hpp
+
+ Modified to use ACE typedefs for number types.
+
+ * tools/Config_Handlers/XSCRT/Elements.hpp
+
+ Removed unneeded non-const conversion operator which was causing
+ errors in Borland.
+
+Wed Oct 12 14:13:09 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * examples/Hello/Sender/Sender.idl
+ * examples/Hello/Sender/Sender_exec.cpp
+ * examples/Hello/Sender/Sender_exec.h
+ * examples/Hello/descriptors/flattened_deploymentplan_without_ns.cdp
+
+ Example of initializing enumerated attributes.
+
+Wed Oct 12 15:08:31 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/Config_Handlers/RT-CCM/TP_Handler.cpp:
+
+ Changed the types of some static_casts on the rhs of
+ assignments to match the types on the lhs, eliminating
+ warnings from MSVC 7.1.
+
+Wed Oct 12 13:17:58 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/TypeNameEmitter.cpp:
+
+ Removed generation of error message with code that attempts
+ to set an enum attribute value, and replace it with code
+ that extracts the enum value from the Any arguement.
+
+Wed Oct 12 08:38:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/spec_RepositoryManager/RepositoryManager_Impl.h:
+ Fixed fuzz check
+
+Tue Oct 11 16:37:01 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Basic_Deployment_Data.cpp
+ * tools/Config_Handlers/Basic_Deployment_Data.hpp
+ * tools/Config_Handlers/Deployment.cpp
+ * tools/Config_Handlers/Deployment.hpp
+ * tools/Config_Handlers/ccd.cpp
+ * tools/Config_Handlers/ccd.hpp
+ * tools/Config_Handlers/cdd.cpp
+ * tools/Config_Handlers/cdd.hpp
+ * tools/Config_Handlers/cdp.cpp
+ * tools/Config_Handlers/cdp.hpp
+ * tools/Config_Handlers/cid.cpp
+ * tools/Config_Handlers/cid.hpp
+ * tools/Config_Handlers/cpd.cpp
+ * tools/Config_Handlers/cpd.hpp
+ * tools/Config_Handlers/iad.cpp
+ * tools/Config_Handlers/iad.hpp
+ * tools/Config_Handlers/pcd.cpp
+ * tools/Config_Handlers/pcd.hpp
+ * tools/Config_Handlers/toplevel.cpp
+ * tools/Config_Handlers/toplevel.hpp
+ * tools/Config_Handlers/RT-CCM/CIAOServerResources.cpp
+ * tools/Config_Handlers/RT-CCM/CIAOServerResources.hpp
+
+ Fixed a bug which broke the gaurantee that element order in the
+ XSC type would be the same as the element order in the instance
+ document.
+
+ * tools/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp
+ * tools/Config_Handlers/DynAny_Handler/DynEnum_Handler.cpp
+
+ Fixed a runtime error and removed some debugging information.
+
+Mon Oct 10 17:37:20 2005 Stoyan Paunov spaunov@isis.vanderbilt.edu
+
+ * DAnCE/spec_RepositoryManager/ZIP_Wrapper.cpp
+
+ reverted a change we made earlier to accomodate older verisons of ZZIPLIB
+
+
+Mon Oct 10 15:46:57 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/spec_RepositoryManager/RepositoryManager_Impl.cpp
+ * DAnCE/spec_RepositoryManager/ZIP_Wrapper.cpp
+
+ Trivial corrections for portability problems.
+
+ * DAnCE/spec_RepositoryManager/spec_RepositoryManager.mpc
+
+ Updated to properlly use base projects.
+
+Mon Oct 10 20:07:39 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/Config_Handlers/Config_Handlers.mpc:
+ * tools/Config_Handlers/DynAny_Handler.mpc:
+
+ Add export files to projects, and removed redundant
+ base projects.
+
+ * tools/Config_Handlers/RT-CCM/TPL_Handler.cpp:
+
+ Changed some static casts on the rhs of assignments to types
+ corresponding to the lhs, elminating warnings on MSVC 7.1.
+
+Mon Oct 10 15:05:00 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * docs/schema/Basic_Deployment_Data.xsd
+ * docs/schema/cdd.xsd
+
+ Checking in some updated schema for domain information.
+
+Mon Oct 10 13:53:15 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Basic_Deployment_Data.hpp
+ * tools/Config_Handlers/Config_Handlers.mpc
+ * tools/Config_Handlers/Deployment.hpp
+ * tools/Config_Handlers/DynAny_Handler.mpc
+ * tools/Config_Handlers/IDREF_Base.h
+ * tools/Config_Handlers/XSC_XML_Handlers_Export.h
+ * tools/Config_Handlers/ccd.hpp
+ * tools/Config_Handlers/cdd.hpp
+ * tools/Config_Handlers/cdp.hpp
+ * tools/Config_Handlers/cid.hpp
+ * tools/Config_Handlers/cpd.hpp
+ * tools/Config_Handlers/iad.hpp
+ * tools/Config_Handlers/pcd.hpp
+ * tools/Config_Handlers/toplevel.hpp
+ * tools/Config_Handlers/DynAny_Handler/DynAny_Handler.h
+ * tools/Config_Handlers/DynAny_Handler/DynAny_Handler_Export.h
+ * tools/Config_Handlers/DynAny_Handler/DynEnum_Handler.h
+ * tools/Config_Handlers/RT-CCM/CB_Handler.h
+ * tools/Config_Handlers/RT-CCM/CIAOServerResources.hpp
+ * tools/Config_Handlers/RT-CCM/CLA_Handler.h
+ * tools/Config_Handlers/RT-CCM/OC_Handler.h
+ * tools/Config_Handlers/RT-CCM/OR_Handler.h
+ * tools/Config_Handlers/RT-CCM/PM_Handler.h
+ * tools/Config_Handlers/RT-CCM/PS_Handler.h
+ * tools/Config_Handlers/RT-CCM/RT-CCM-Handlers.mpc
+ * tools/Config_Handlers/RT-CCM/RT_CCM_Handlers_Export.h
+ * tools/Config_Handlers/RT-CCM/SRD_Handler.h
+ * tools/Config_Handlers/RT-CCM/TPL_Handler.h
+ * tools/Config_Handlers/RT-CCM/TP_Handler.h
+ * tools/Config_Handlers/RT-CCM/input.csr
+ * tools/Config_Handlers/Utils/CIAO_XML_Utils_Export.h
+ * tools/Config_Handlers/Utils/Utils.mpc
+ * tools/Config_Handlers/Utils/XML_Error_Handler.h
+ * tools/Config_Handlers/Utils/XML_Helper.h
+ * tools/Config_Handlers/Utils/XML_Schema_Resolver.h
+
+ Fixed messy export macro usage. This will clean up builds on
+ Windows.
+
+Sun Oct 9 19:22:44 CDT 2005 Stoyan Paunov spaunov@isis.vanderbilt.edu
+
+ * DAnCE/spec_RepositoryManager/RepositoryManager_Impl.cpp
+ * DAnCE/spec_RepositoryManager/spec_RepositoryManager.mpc
+
+ Fixing a few includes after Will Otte's latest changes.
+
+
+Sun Oct 9 09:51:41 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/DynAny_Handler.mpc
+
+ Moved this file down a level to make MPC stop complaining.
+
+Fri Oct 7 18:22:40 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Any_Handler.cpp
+ * tools/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp
+ * tools/Config_Handlers/DynAny_Handler/DynAny_Handler.h
+ * tools/Config_Handlers/DynAny_Handler/DynEnum_Handler.cpp
+
+ *Hopefully* fix compile problem on Windows.
+
+Fri Oct 7 18:25:11 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/ADD_Handler.cpp
+ * tools/Config_Handlers/DP_Handler.cpp
+ * tools/Config_Handlers/IDD_Handler.cpp
+ * tools/Config_Handlers/MDD_Handler.cpp
+
+ Fix runtime error.
+
+Fri Oct 7 16:18:40 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Config_Handlers.mpc
+ * tools/Config_Handlers/DynAny_Handler/DynEnum_Handler.cpp
+ * tools/Config_Handlers/DynAny_Handler/DynEnum_Handler.h
+
+ Fix for a compile problem.
+
+Fri Oct 7 14:25:09 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/DynAny_Handler/DataType_Handler.cpp
+ * tools/Config_Handlers/DynAny_Handler/DataType_Handler.h
+ * tools/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp
+ * tools/Config_Handlers/DynAny_Handler/DynAny_Handler.h
+ * tools/Config_Handlers/DynAny_Handler/DynAny_Handler.mpc
+ * tools/Config_Handlers/DynAny_Handler/DynEnum_Handler.cpp
+ * tools/Config_Handlers/DynAny_Handler/DynEnum_Handler.h
+ * tools/Config_Handlers/Any_Handler.cpp
+
+ Add support for using Dynamic Any. This will evolve in the coming
+ weeks into more complete support for complex types.
+
+ * tools/Config_Handlers/ADD_Handler.cpp
+ * tools/Config_Handlers/ADD_Handler.h
+ * tools/Config_Handlers/Basic_Deployment_Data.cpp
+ * tools/Config_Handlers/Basic_Deployment_Data.hpp
+ * tools/Config_Handlers/CCD_Handler.cpp
+ * tools/Config_Handlers/CCD_Handler.h
+ * tools/Config_Handlers/CEPE_Handler.cpp
+ * tools/Config_Handlers/CEPE_Handler.h
+ * tools/Config_Handlers/DP_Handler.cpp
+ * tools/Config_Handlers/DP_PCD_Handler.cpp
+ * tools/Config_Handlers/DP_PCD_Handler.h
+ * tools/Config_Handlers/ERE_Handler.cpp
+ * tools/Config_Handlers/ERE_Handler.h
+ * tools/Config_Handlers/ADD_Handler.cpp
+ * tools/Config_Handlers/IDD_Handler.h
+ * tools/Config_Handlers/MDD_Handler.cpp
+ * tools/Config_Handlers/MDD_Handler.h
+ * tools/Config_Handlers/PCD_Handler.cpp
+ * tools/Config_Handlers/PSPE_Handler.cpp
+ * tools/Config_Handlers/PSPE_Handler.h
+
+ Optimization made possible by improvements in XSC.
+
+Fri Oct 7 14:20:36 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/Deployment_Configuration.cpp:
+ *
+ DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+
+ Added more debug statements.
+
+Fri Oct 7 19:14:29 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIAO-INSTALL.html:
+
+ Updated CIDL compiler section with instructions for building
+ the CIDL compiler using MPC.
+
+Fri Oct 7 18:46:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeManager/NodeManager_Impl.{h,inl}:
+ Removed inl file, it is empty
+
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.inl:
+ Removed, empty
+
+Thu Oct 6 16:52:21 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ *
+ DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+
+ Added more debug statements and comments.
+
+Thu Oct 6 16:11:56 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ *
+ DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+
+ Added more debug statements and also comments in the code.
+
+Thu Oct 6 15:32:41 CDT 2005 Stoyan Paunov spaunov@isis.vanderbilt.edu
+
+ * DAnCE/spec_RepositoryManager/PC_Updater.cpp
+ * DAnCE/spec_RepositoryManager/PC_Updater.h
+ * DAnCE/spec_RepositoryManager/PC_Updater_T.cpp
+ * DAnCE/spec_RepositoryManager/PC_Updater_T.h
+
+ Added these files which implement a PackageConfiguration visitor.
+ The visitor helps deal with the internal complexity of the PackageConfiguration
+ and helps preseve my sanity ;)
+
+ * DAnCE/spec_RepositoryManager/RepositoryManager_Impl.cpp
+ * DAnCE/spec_RepositoryManager/RepositoryManager_Impl.h
+ * DAnCE/spec_RepositoryManager/ZIP_Wrapper.cpp
+ * DAnCE/spec_RepositoryManager/ZIP_Wrapper.h
+
+ Some more code. With this the package distribution part of the RM
+ is ready. I still need to clean up a few details. This is coming soon.
+
+
+Thu Oct 6 15:05:30 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+
+ Added debug statements and comments.
+
+Thu Oct 6 14:26:31 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/DAM_Map.cpp:
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp:
+ * DAnCE/Plan_Launcher/DAM_Map.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp:
+ * ciao/Container_Impl.cpp:
+ * ciao/NodeApplication_Impl.cpp:
+ * ciao/Servant_Activator.cpp:
+
+ Fixed the debug statements to look for critical levels
+ no more than 9.
+
+Thu Oct 6 14:00:16 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * ciao/Container_Base.cpp:
+ * ciao/Container_Impl.cpp:
+
+ Added debug messages and comments.
+
+Thu Oct 6 12:30:40 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * ciao/NodeApplication_Impl.cpp:
+
+ Added debug messages and comments.
+
+Thu Oct 6 08:00:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp:
+ * DAnCE/DomainApplicationManager/Deployment_Configuration.cpp:
+ Fixed compile problems
+
+Wed Oct 5 17:42:24 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Any_Handler.cpp
+
+ Part of previous commit.
+
+Wed Oct 5 17:07:07 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * docs/schema/Basic_Deployment_Data.xsd
+ * docs/schema/cdd.xsd
+
+ Moved recursive Domain data into cdd.xsd. This will hopefully
+ lessen the time required to compile.
+
+ * tools/Config_Handlers/CPD_Handler.cpp
+ * tools/Config_Handlers/DataType_Handler.cpp
+
+ Fixed some potential run-time bugs in Borland. Style
+ corrections.
+
+ * tools/Config_Handlers/Basic_Deployment_Data.cpp
+ * tools/Config_Handlers/Basic_Deployment_Data.hpp
+ * tools/Config_Handlers/Deployment.cpp
+ * tools/Config_Handlers/Deployment.hpp
+ * tools/Config_Handlers/ccd.cpp
+ * tools/Config_Handlers/ccd.hpp
+ * tools/Config_Handlers/cdd.cpp
+ * tools/Config_Handlers/cdd.hpp
+ * tools/Config_Handlers/cdp.cpp
+ * tools/Config_Handlers/cdp.hpp
+ * tools/Config_Handlers/cid.cpp
+ * tools/Config_Handlers/cid.hpp
+ * tools/Config_Handlers/iad.cpp
+ * tools/Config_Handlers/iad.hpp
+ * tools/Config_Handlers/pcd.cpp
+ * tools/Config_Handlers/pcd.hpp
+ * tools/Config_Handlers/test.cdp
+ * tools/Config_Handlers/toplevel.cpp
+ * tools/Config_Handlers/toplevel.hpp
+
+ Regerated with new version of XSC. Major changes:
+ * Now only one accessor and one mutator per document element
+ * Changes in schema above.
+
+Wed Oct 5 14:44:31 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/Deployment_Configuration.cpp:
+ *
+ DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp:
+
+ Added some debug statements and some optimization choices.
+
+Tue Oct 4 14:08:24 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * docs/schema/Basic_Deployment_Data.xsd
+ * docs/schema/unused_elements.xsd
+ * tools/Config_Handlers/Basic_Deployment_Data.cpp
+ * tools/Config_Handlers/Basic_Deployment_Data.hpp
+
+ Updated to include domain information (ie, bridge, interconnect).
+
+ * tools/Config_Handlers/RT-CCM/SRD_Handler.h
+
+ Cosmetic changes.
+
+Mon Oct 3 14:27:39 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * CIAO-INSTALL.html
+
+ Updated install documentation to reflect the restructuring.
+
+Mon Oct 3 12:48:26 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+
+ Commented out some debugging information.
+
+Mon Oct 3 15:44:15 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * docs/Purify.html:
+
+ Updated doc file with installation info and more info about
+ Purifying a spawned child process.
+
+Mon Oct 3 10:14:19 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+
+ Corrected a bug in parameter checking.
+
+ * DAnCE/NodeManager/Node_Manager.cpp
+
+ Added documentation for the -d command line options.
+
+ * tools/Config_Handlers/RT-CCM/CIAOServerResources.cpp
+ * tools/Config_Handlers/RT-CCM/CIAOServerResources.hpp
+ * tools/Config_Handlers/RT-CCM/SRD_Handler.cpp
+ * tools/Config_Handlers/RT-CCM/SRD_Handler.h
+
+ New functionality in the Config_Handlers.
+
+Mon Oct 3 10:00:08 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * bin/valgrind_nodedaemon.py
+
+ Script to help launch nodemanager/nodeapplication under Valgrind.
+
+Mon Oct 3 000:31:09 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * docs/Purify.html:
+
+ New file, documenting the use of Purify with CIAO and DAnCE.
+
+Sun Oct 2 22:24:15 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/Config_Handlers/Basic_Deployment_Data.hpp:
+
+ Added include of RT-CCM/CIAOServerResources.hpp.
+
+ * tools/Config_Handlers/DP_Handler.cpp:
+
+ Added export macros to friend function declarations.
+
+Sat Oct 1 15:38:23 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Config_Handlers.mpc
+ * tools/Config_Handlers/test.cpp
+
+ Corrected the config handler test to properly test the handlers.
+
+ * tools/Config_Handlers/PSPE_Handler.cpp
+
+ Fixed a run-time bug that was causing corrupted plans in Borland
+ builds.
+
+Friday Sep 30 15:12:43 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc
+ * DAnCE/spec_RepositoryManager/spec_RepositoryManager.mpc
+ * RACE/Planner_Manager/Component/Planner_Manager.mpc
+ * tests/IDL3/ImpliedIDL/All/all.mpc
+ * tools/Config_Handlers/RT-CCM/CIAOServerResources.cpp
+ * tools/Config_Handlers/RT-CCM/CIAOServerResources.hpp
+
+ Fixes for compile problems in Borland6
+
+Fri Sep 30 15:11:47 2005 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * NEWS
+
+ Updated the NEWS file.
+
+Fri Sep 30 07:53:47 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/RT-CCM/SRD_Handler.cpp
+
+ Should have been part of the previous commit.
+
+Thu Sep 29 18:11:25 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+ * ciao/Container_Impl.cpp
+ * ciao/NodeApplication_Impl.cpp
+ * ciao/Upgradeable_Context_Impl_T.cpp
+
+ Fuzz errors.
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc
+ * tools/Config_Handlers/RT-CCM/Config_Handlers_Export.h
+ * tools/Config_Handlers/RT-CCM/SRD_Handler.h
+ * tools/Config_Handlers/Utils/Config_Handlers_Export.h
+
+ Correction for a emulated exception error.
+
+Thu Sep 29 13:01:23 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * ciao/Version.h
+
+ Corrected the version number.
+
+Thu Sep 29 11:34:55 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * ciao/Swapping_Servant_Home_Impl_T.cpp
+
+ Fixed build problem on non-exception systems.
+
+Thu Sep 29 07:28:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/Utils/XML_Schema_Resolver.cpp:
+ Fixed not used argument warning
+
+Thu Sep 29 06:44:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/Utils/XML_Schema_Resolver.h:
+ Added missing pre.h
+
+Wed Sep 28 16:44:39 2005 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * docs/schema/CIAOServerResources.xsd
+
+ Updated to support RT-CCM.
+
+Wed Sep 28 14:44:39 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/RT-CCM/CIAOServerResources.cpp
+ * tools/Config_Handlers/RT-CCM/CIAOServerResources.hpp
+
+ New version of the XSC including additional features needed for
+ RT-CCM.
+
+Wed Sep 28 08:24:32 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Utils/Utils.mpc
+ * tools/Config_Handlers/Utils/XML_Helper.cpp
+ * tools/Config_Handlers/Utils/XML_Schema_Resolver.cpp
+ * tools/Config_Handlers/Utils/XML_Schema_Resolver.h
+
+ Implemented a schema resolver so that the XML parser till grab the
+ schemata from $CIAO_ROOT/docs/schema.
+
+ * docs/tutorials/Quoter/Simple/descriptors/Deployment.xsd
+ * docs/tutorials/Quoter/Simple/descriptors/Modified_Deployment.xsd
+ * examples/BasicSP/descriptors/Deployment.xsd
+ * examples/Display/descriptors/Deployment.xsd
+ * examples/Display/descriptors/Modified_Deployment.xsd
+ * examples/Hello/descriptors/Deployment.xsd
+ * examples/Hello/descriptors/Modified_Deployment.xsd
+ * examples/Hello/descriptors/XMI.xsd
+ * examples/Hello/descriptors/Deployment.xsd
+ * examples/Hello/descriptors/Modified_Deployment.xsd
+ * examples/Hello/descriptors/XMI.xsd
+
+ Removed obsolete schemata.
+
+ * examples/Display/descriptors/flattened_deploymentplan.cdp
+ * examples/Hello/descriptors/flattened_deploymentplan.cdp
+ * examples/Hello/descriptors/flattened_deploymentplan_without_ns.cdp
+ * docs/tutorials/Quoter/Simple/descriptors/flattened_deploymentplan.cdp
+
+ Migrated these deployment plans to use Deployment.xsd and friends,
+ instead of Modified_Deployment.xsd.
+
+ * NEWS
+
+ Updated the NEWS to include this feature.
+
+Tue Sep 27 13:16:43 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/ExecutionManager.mpc
+ * DAnCE/NodeApplication/NodeApplication.mpc
+ * DAnCE/NodeManager/NodeManager.mpc
+ * DAnCE/Old_Config_Handlers/Config_Handlers.mpc
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc
+ * DAnCE/RTNodeApplication/RTNodeApplication.mpc
+ * DAnCE/spec_RepositoryManager/spec_RepositoryManager.mpc
+ * RACE/Input_Adapters/Interactive_Input_Adapter/Interactive_Input_Adapter.mpc
+ * RACE/Output_Adapters/Base/Output_Adapter.mpc
+ * RACE/Planners/SimpleBinPacker/SimpleBinPacker.mpc
+ * ciao/CCM_Core.mpc
+ * examples/BasicSP/BasicSP.mpc
+
+ Fixed a large number of deficiencies in our build structure.
+ More changes to come later.
+
+Tue Sep 27 11:10:37 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * NEWS
+
+ Updated the news file.
+
+Tue Sep 27 10:51:20 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * bin/generate_component_mpc.pl
+
+ Updated this script to bring it in line with modern CIAO. This
+ includes:
+
+ - Base projects are now the _dnc variants
+ - Export files are now automatically generated.
+
+Tue Sep 27 14:26:44 2005 Boris Kolpackov <boris@kolpackov.net>
+
+ * CCF/CCF/IDL2/LexicalAnalyzer.cpp:
+ * CCF/CCF/IDL2/Parser.cpp:
+ * CCF/CCF/IDL2/Parser.hpp:
+ * CCF/CCF/IDL2/SemanticAction.hpp:
+ * CCF/CCF/IDL2/SemanticGraph.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Const.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Factory.hpp:
+ * CCF/CCF/IDL2/SemanticAction/NumericExpression.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Const.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Const.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Elements.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Factory.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Factory.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/NumericExpression.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/NumericExpression.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Elements.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Elements.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/IntExpression.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/IntExpression.hpp:
+ * CCF/CCF/IDL3/Parser.cpp:
+ * CCF/CCF/CIDL/Parser.cpp:
+
+ Implemented first part of the const expression support. This
+ includes parser rules, semantic graph types and semantic
+ actions. Traversal types are still to be implemented.
+
+Tue Sep 27 06:42:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ Fixed compile problem
+
+ * tools/Config_Handlers/XMLSchema/TypeInfo.tpp:
+ Removed using std::make_pair, this causes a crash of the BCB6
+ compiler. It doesn't seem to cause issues with CBX, but it
+ seems the code wasn't really needed and now BCB6 is also happy
+
+Mon Sep 26 11:06:40 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Basic_Deployment_Data.hpp
+
+ Updates for compile problems in Borland.
+
+Mon Sep 26 11:06:40 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/ImplementationInfo.cpp
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+ * DAnCE/NodeManager/NodeManager_Impl.cpp
+
+ Cleared up some scoreboard errors.
+
+Sat Sep 24 20:44:20 2005 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc
+ * tools/Config_Handlers/Config_Handlers.mpc
+
+ Fixed linking errors.
+
+Sat Sep 24 08:40:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/spec_RepositoryManager/spec_RepositoryManager.mpc:
+ Added Id tag
+
+Sat Sep 24 02:37:20 2005 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * ciao/Deployment.idl
+ * ciao/Deployment_Core.idl
+ * ciao/ServerResources.idl
+
+ Enhanced to support RT-CCM feature.
+
+ * DAnCE/NodeApplicationManager/ImplementationInfo.cpp
+ * DAnCE/NodeApplicationManager/ImplementationInfo.h
+ * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.h
+
+ Refactor the NodeApplicationManager to populate the correct
+ node level deployment plan info, while taking into account
+ of the RT-CCM feature.
+
+ * ciao/NodeApplication_Impl.cpp
+ * ciao/NodeApplication_Impl.h
+
+ Modified to accomodate the change in IDL files.
+
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client.cpp
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_ex.cpp
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_simple.cpp
+
+ Fixed these tests to make them run with the modified IDL
+ files.
+
+ * DAnCE/examples/Hello/descriptors/rt-config-example.csr
+ * DAnCE/examples/Hello/descriptors/rt-config-example.cdp
+
+ An example descriptor files to describe server resource,
+ and associate server resources and policy set defs with
+ the deployment plan.
+
+ NOTE: All above code are tested working fine with the existing
+ examples.
+
+Fri Sep 23 10:05:18 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/tests/NodeApplicationTest/NodeAppTest.mpc
+ * tools/Config_Handlers/Config_Handlers.mpc
+
+ fixes for build problems.
+
+Thu Sep 22 16:21:12 2005 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DAnCE/NodeManager/NodeManager_Impl.cpp
+
+ Added error report message from the tool.
+
+ * ciao/Container_Base.cpp
+
+ Cosmetic change.
+
+Thu Sep 22 14:45:32 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Config_Handlers.mpc
+ * tools/Config_Handlers/STD_CID_Handler.cpp
+ * tools/Config_Handlers/STD_CID_Handler.h
+ * tools/Config_Handlers/STD_CPD_Handler.cpp
+ * tools/Config_Handlers/STD_CPD_Handler.h
+ * tools/Config_Handlers/STD_PCD_Handler.cpp
+ * tools/Config_Handlers/STD_PCD_Handler.h
+ * tools/Config_Handlers/STD_PC_Intf.cpp
+ * tools/Config_Handlers/XML_File_Intf.cpp
+ * tools/Config_Handlers/RT-CCM/SRD_Handler.h
+ * tools/Config_Handlers/RT-CCM/RT-CCM-Handlers.mpc
+
+ Made these files consistent with the new Utils directory.
+
+ * tools/Config_Handlers/Utils/Utils.mpc
+ * tools/Config_Handlers/Utils/XML_Error_Handler.cpp
+ * tools/Config_Handlers/Utils/XML_Error_Handler.h
+ * tools/Config_Handlers/Utils/XML_Helper.cpp
+ * tools/Config_Handlers/Utils/XML_Helper.h
+ * tools/Config_Handlers/Utils/XercesString.cpp
+ * tools/Config_Handlers/Utils/XercesString.h
+
+ Moved common XML utilities to a separate directory.
+
+Thu Sep 22 13:21:12 2005 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * ciao/CCM_Core.mpc
+ * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc
+ * tools/Config_Handlers/RT-CCM/RT-CCM-Handlers.mpc
+
+ Put the ServerResources.idl into Deployment_stub project. Modified
+ other MPC project files to reflect this change.
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+
+ Pass the infoProperty which contains the entire server resource
+ definitions to each individual child deployment plans.
+
+ * DAnCE/NodeManager/NodeManager_Impl.cpp
+ * DAnCE/NodeManager/NodeManager_Impl.h
+
+ NodeManager now validates the correctness of the individual local
+ dpeloyment plan. In particular, it tries to verify that all the
+ component instances within this child deployment plan have the same
+ "server_resource_id" assigned.
+
+ * DAnCE/tests/NodeApplicationTest/NodeAppTest.mpc
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_dynamic.cpp
+
+ Added a NodeApplication test case, where multiple components could
+ be installed one-by-one through a serious of "install" invocations.
+
+ * examples/Hello/descriptors/flattened_deploymentplan_without_ns.cdp
+
+ Fixed a typo.
+
+
+
+Thu Sep 22 12:26:45 CDT 2005 Stoyan spaunov@isis.vanderbilt.edu
+
+ * DAnCE/spec_RepositoryManager/
+ * DAnCE/new_RepositoryManager/
+
+ Added the former, removed the latter.
+
+
+Thu Sep 22 10:50:45 CDT 2005 Stoyan spaunov@isis.vanderbilt.edu
+
+
+ * DAnCE/spec_RepositoryManager/HTTP_Client.cpp
+ * DAnCE/spec_RepositoryManager/HTTP_Client.h
+ * DAnCE/spec_RepositoryManager/HTTP_Handler.cpp
+ * DAnCE/spec_RepositoryManager/HTTP_Handler.h
+ * DAnCE/spec_RepositoryManager/Options.cpp
+ * DAnCE/spec_RepositoryManager/Options.h
+ * DAnCE/spec_RepositoryManager/README.txt
+ * DAnCE/spec_RepositoryManager/RepositoryManager.cpp
+ * DAnCE/spec_RepositoryManager/RepositoryManager.idl
+ * DAnCE/spec_RepositoryManager/RepositoryManager_Impl.cpp
+ * DAnCE/spec_RepositoryManager/RepositoryManager_Impl.h
+ * DAnCE/spec_RepositoryManager/RMadmin.cpp
+ * DAnCE/spec_RepositoryManager/RM_Helper.cpp
+ * DAnCE/spec_RepositoryManager/RM_Helper.h
+ * DAnCE/spec_RepositoryManager/spec_RepositoryManager.mpc
+ * DAnCE/spec_RepositoryManager/spec_RepositoryManager.ncb
+ * DAnCE/spec_RepositoryManager/URL_Parser.cpp
+ * DAnCE/spec_RepositoryManager/URL_Parser.h
+ * DAnCE/spec_RepositoryManager/ZIP_Wrapper.cpp
+ * DAnCE/spec_RepositoryManager/ZIP_Wrapper.h
+
+
+ Checked in these file and cleaned up *some* of the underlying mess due to previous
+ mix-ups. Many of the files are new. Some are newer versions of older files.
+ Previously there were 2 RM directories spec_RepositoryManager and
+ new_RepositoryManager. Someone had removed the spec* verion and checked in the
+ wrong files in the new* version (which used to be a non-spec compilent impl).
+ Apparently on top of that the two directories have been linked somehow! I will
+ check on what the reason for this is later.
+
+
+Thu Sep 22 13:15:28 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/Execution_Manager.cpp:
+
+ Fixed typo.
+
+Wed Sep 21 15:32:38 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DAnCE/ExecutionManager/Execution_Manager.cpp
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp
+ * DAnCE/NodeApplication/NodeApplication.cpp
+ * DAnCE/RTNodeApplication/NodeApplication_Task.cpp
+ * DAnCE/RepositoryManager/Repository_Manager.cpp
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client.cpp
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_ex.cpp
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_simple.cpp
+ * ciao/Container_Base.cpp
+ * ciao/Container_Impl.cpp
+ * ciao/Servant_Activator.cpp
+ * ciao/Servant_Impl_T.cpp
+ * ciao/Swapping_Container.cpp
+ * ciao/Swapping_Servant_Home_Impl_T.cpp
+ * ciao/Upgradeable_Context_Impl_T.cpp
+ * docs/templates/CIAO_Glue_Session_Template.cpp
+ * examples/Hello/Sender/Sender_exec.cpp
+ * examples/Swapping/Receiver/Receiver_exec.cpp
+ * examples/Swapping/Sender/Sender_exec.cpp
+ * examples/Swapping/Sender/Sender_exec_1.cpp
+ * examples/Swapping/Sender/Sender_exec_2.cpp
+
+ Fixed numerous emulated exception errors.
+
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.cpp
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.h
+
+ removed obsolete EM implementation.
+
+Wed Sep 21 13:34:28 2005 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/RT-CCM/test.cpp
+
+ Modified so the output XML file is based on the XSC dom document
+ instead from the input file directly.
+
+Tue Sep 20 21:58:23 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tests/IDL3/ImpliedIDL/All/convert.idl:
+
+ Modified valuetype declartion used as a primary key to
+ conform to the CCM spec section 61.7.2.1 listing
+ constraints on primary key types.
+
+Tue Sep 20 02:25:34 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Config_Handlers.mpc
+
+ Quick fix for a build problem on Windows. A better solution
+ will follow when I check in my CIAO build system revamp.
+
+Tue Sep 20 10:19:46 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/test.cdp
+
+ A test deployment plan file that contains odd constructs.
+ Used for testing.
+
+Tue Sep 20 10:07:43 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/new_RepositoryManager/new_RepositoryManager.mpc
+
+ Added a missing library.
+
+Tue Sep 20 09:50:28 2005 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+
+ Modified to kill all NodeApplication processes when the deployment fails.
+
+Tue Sep 20 09:35:28 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc
+
+ Added a missing library.
+
+Mon Sep 19 16:29:57 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * ADD_Handler.cpp
+ * Common.h
+ * IDD_Handler.cpp
+ * IDD_Handler.h
+ * IDREF_Base.cpp
+ * IDREF_Base.h
+ * IRDD_Handler.cpp
+ * IRDD_Handler.h
+ * MDD_Handler.cpp
+ * PSPE_Handler.cpp
+ * STD_CID_Handler.cpp
+ * XML_Error_Handler.cpp
+
+ Added some improved error handling/reporting. Much more to come.
+
+ * test.cpp
+ * RT-CCM/RT-CCM-Handlers.mpc
+ * RT-CCM/SRD_Handler.cpp
+ * RT-CCM/SRD_Handler.h
+ * Config_Handlers.mpc
+ * DP_Handler.cpp
+
+ Added hooks for parsing ServerResources document into a deployment
+ plan.
+
+ This is activated by adding an InfoProperty with name
+ "CIAOServerResources" with a value of a valid CSR file.
+
+ Also enabled parsing of deployRequirements and infoProperties.
+
+Mon Sep 19 10:55:05 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * RACE/Input_Adapters/Base/Input_Adapter.mpc
+ * RACE/Input_Adapters/Interactive_Input_Adapter/Interactive_Input_Adapter.mpc
+ * RACE/Output_Adapters/Base/Output_Adapter.mpc
+ * RACE/Output_Adapters/Interface/Output_Adapter_Interface.mpc
+ * RACE/Output_Adapters/XML_Output_Adapter/XML_Output_Adapter.mpc
+ * RACE/Plan_Analyzer/Component/Plan_Analyzer.mpc
+ * RACE/Plan_Analyzer/Interface/Plan_Analyzer_Interface.mpc
+ * RACE/Planner_Manager/Component/Planner_Manager.mpc
+ * RACE/Planner_Manager/Interface/Planner_Manager_Interface.mpc
+ * RACE/Planners/Base/Planner.mpc
+ * RACE/Planners/Interface/Planner_Interface.mpc
+ * RACE/Planners/SimpleBinPacker/SimpleBinPacker.mpc
+ * RACE/common/RACE_common.mpc
+ * tools/Config_Handlers/RT-CCM/CLA_Handler.h
+ * tools/Config_Handlers/RT-CCM/OC_Handler.cpp
+ * tools/Config_Handlers/RT-CCM/OR_Handler.cpp
+ * tools/Config_Handlers/RT-CCM/OR_Handler.h
+
+ Misc fuzz fixes.
+
+Fri Sep 16 09:54:44 2005 William Otte <wotte@william-ottes-powerbook-g4-15.local>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+
+ Emulated exception fixes.
+
+Thu Sep 15 07:29:03 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu>
+
+ * TAO/CIAO/examples/Hello/descriptors/NodeManagerMap.dat: Make sure
+ there's a newline at the end of this file. Thanks to Zachi
+ Klopman <zklopman@gmail.com> for reporting this.
+
+Thu Sep 15 11:20:20 2005 CSET William Otte <wotte@dre.vanderbilt.edu>
+
+
+ * ciao/Container_Base.cpp
+
+ Fix for compile error on platforms with emulated exceptions.
+
+Wed Sep 14 13:25:00 CEST 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * RACE/Input_Adapters/Interactive_Input_Adapter/Interactive_Input_Adapter.mpc
+
+ Fix for a library ordering problem.
+
+Wed Sep 14 11:18:42 2005 CEST William Otte <wotte@william-ottes-powerbook-g4-15.local>
+
+ * tools/Config_Handlers/CIAOServerResources.cpp
+ * tools/Config_Handlers/CIAOServerResources.hpp
+
+ Removed these from the repo to avoid confusion.
+
+ * tools/Config_Handlers/RT-CCM/CIAOServerResources.hpp
+
+ Ported patches from:
+ Tue Sep 13 17:18:12 CEST 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ which were made against the wrong file. Thanks to Gan Deng for
+ pointing this out.
+
+Wed Sep 14 13:28:14 2005 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * examples/Hello/descriptors/run_NodeDaemons.pl
+
+ Modified the relevant path due to the recent CIAO directory
+ reorganization.
+
+ * examples/Hello/Sender/Sender.idl
+ * examples/Hello/Sender_exec.cpp
+ * examples/Hello/starter.cpp
+
+ Added test for "readonly" attribute.
+ Fixed a bug of setting attribute through command line options
+ through the "starter" executable. Also, make the default ior
+ file name to be "Sender.ior" to make it consistent with the
+ output generated by DAnCE. Thanks Zacki
+ <zklopman at gmail dot com> for reporting these.
+
+ * examples/Hello/step-by-step.html
+
+ Updated the documentation to run the example.
+
+Tue Sep 13 17:18:12 CEST 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/CIAOServerResources.hpp
+
+ Fixes for compile errors in:
+ . Especially strict C++ compilers
+ . Windows VC71 (hopefully)
+
+Tue Sep 13 17:05:31 2005 CEST William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h
+ * DAnCE/NodeManager/NodeManager_Impl.cpp
+ * DAnCE/NodeManager/NodeManager_Impl.h
+ * DAnCE/NodeManager/Node_Manager.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.h
+ * ciao/Container_Base.cpp
+ * ciao/NodeApplication_Impl.cpp
+
+ Folding in some of the error reporting work that I have been
+ working on for the past couple weeks. Most common deployment
+ errors are now reported through the plan_launcher.
+
+Tue Sep 13 16:55:15 CEST 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/IDD_Handler.cpp
+ * tools/Config_Handlers/MDD_Handler.cpp
+ * tools/Config_Handlers/PSPE_Handler.cpp
+ * tools/Config_Handlers/STD_CID_Handler.cpp
+
+ Fixes for compile errors on both:
+ . 64 bit platforms
+ . GCC4
+
+Tue Sep 13 16:01:35 CEST 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/XMLSchema/Traversal.hpp
+ * tools/Config_Handlers/XMLSchema/TypeInfo.hpp
+ * tools/Config_Handlers/XMLSchema/Types.hpp
+ * tools/Config_Handlers/XMLSchema/Writer.hpp
+ * tools/Config_Handlers/XSCRT/Elements.hpp
+ * tools/Config_Handlers/XSCRT/ExtendedTypeInfo.hpp
+ * tools/Config_Handlers/XSCRT/Parser.hpp
+ * tools/Config_Handlers/XSCRT/Traversal.hpp
+ * tools/Config_Handlers/XSCRT/Writer.hpp
+ * tools/Config_Handlers/XSCRT/XML.hpp
+ * tools/Config_Handlers/XSCRT/XMLSchema.hpp
+
+ Rolled back Stoyan's changes from the previous commit. The proper
+ fix for this problem would be to update the include paths in the
+ affected MPC files, which has the virtue of not breaking
+ builds on platforms with case-sensitive filesystems.
+
+ * DAnCE/new_RepositoryManager/new_RepositoryManager.mpc
+
+ Updated the include path to include the new config handlers directory.
+
+Mon Sep 12 17:34:47 CDT 2005 Stoyan Paunov <spaunov@isis.vanderbilt.edu>
+
+ * tools/Config_Handlers/XMLSchema/Traversal.hpp
+ * tools/Config_Handlers/XMLSchema/TypeInfo.hpp
+ * tools/Config_Handlers/XMLSchema/Types.hpp
+ * tools/Config_Handlers/XMLSchema/Writer.hpp
+ * tools/Config_Handlers/XSCRT/Elements.hpp
+ * tools/Config_Handlers/XSCRT/ExtendedTypeInfo.hpp
+ * tools/Config_Handlers/XSCRT/Parser.hpp
+ * tools/Config_Handlers/XSCRT/Traversal.hpp
+ * tools/Config_Handlers/XSCRT/Writer.hpp
+ * tools/Config_Handlers/XSCRT/XML.hpp
+ * tools/Config_Handlers/XSCRT/XMLSchema.hpp
+
+ Fixed a number of problems related to Will's changes. The XSC_Config_Handler_Tests
+ project was not compiling. I had the same problem in RepositoryManager. Will had
+ changed the directory structure, but did not update any of the include paths.
+ Needless to say there were like 30-40 of those in the XSCRT and XMLSchema directories
+
+Fri Sep 9 12:35:20 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/STD_IAD_Handler.cpp
+ * tools/Config_Handlers/STD_PCD_Handler.cpp
+ * tools/Config_Handlers/STD_PC_Intf.cpp
+
+ Changed to comform with new refactoring.
+
+Fri Sep 9 12:32:14 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * ciao/CCM_Core.mpc
+ * ciao/Container_Base.cpp
+ * ciao/Deployment.idl
+ * ciao/Deployment_Core.idl
+ * ciao/Deployment_Data.idl
+ * ciao/Packaging_Data.idl
+
+ Refactoring to support cidl compilation of deployment structures.
+ This refactoring should solve compilation errors in the config handlers.
+
+Wed Sep 7 16:31:12 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+
+ Removed generation of export macro in the typedef of the
+ template class instantiation that defines a facet servant.
+ Thanks to Ossama Othman <ossama@dre.vanderbilt.edu> for
+ pointing out that typedefs need not be exported.
+
+Tue Sep 6 11:39:15 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * ciao/Deployment_Data.idl
+
+ Commented out IDL that is unsupported by CIDLC.
+
+ * RACE
+
+ Added IDL for RACE.
+
+Tue Sep 6 09:58:12 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * examples/Hello/descriptors/run_test.pl
+
+ Modified the script to fix the absolute path to the naming service
+ with a relative path.
+
+Fri Sep 2 17:38:31 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * performance-tests/Protocols/Controller/Controller.mpc
+ * performance-tests/Protocols/Receiver/Receiver.mpc
+ * performance-tests/Protocols/Sender/Sender.mpc
+ * performance-tests/Protocols/common/Protocols.mpc
+ * tests/CIDL/CodeGen/CodeGen.mpc
+
+ Migrated to modern CIAO base projects.
+
+Fri Sep 2 16:41:08 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * performance-tests/Benchmark/Benchmark.mpc
+ * performance-tests/Benchmark/Multi_Threaded/Multi_Threaded.mpc
+ * performance-tests/Benchmark/RoundTrip/RoundTrip.mpc
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient.mpc
+ * performance-tests/Benchmark/RoundTripServer/RoundTripServer.mpc
+
+ Migrated to modern CIAO projects.
+
+Fri Sep 2 15:10:43 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * docs/tutorial
+
+ Removed the obsolete hello tutorial.
+
+Fri Sep 2 15:04:00 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * tests/tests.mwc
+ * tests/IDL3/Components/ComplexComponent/Attributes/Attributes.mpc
+ * tests/IDL3/Components/ComplexComponent/EventSink/EventSink.mpc
+ * tests/IDL3/Components/ComplexComponent/EventSource/EventSource.mpc
+ * tests/IDL3/Components/ComplexComponent/Facets/Facets.mpc
+ * tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles.mpc
+ * tests/IDL3/Components/SimpleComponent/SimpleComponent.mpc
+ * tests/IDL3/Events/Abstract/Abstract.mpc
+ * tests/IDL3/Events/Regular/Regular.mpc
+ * tests/IDL3/Homes/Attributes/HomeAttributes.mpc
+ * tests/IDL3/Homes/Basic/Basic.mpc
+ * tests/IDL3/Homes/Factory/Factory.mpc
+ * tests/IDL3/Homes/Finder/Finder.mpc
+ * tests/IDL3/Homes/Inheritance/Inheritance.mpc
+ * tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.mpc
+ * tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.mpc
+ * tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.mpc
+ * tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.mpc
+ * tests/IDL3/ImpliedIDL/Events/Events.mpc
+ * tests/IDL3/ImpliedIDL/Homes/Homes.mpc
+ * tests/IDL3/Lookup/lookup_test.mpc
+
+ Updated to use dnc ciao base project.
+
+ * tests/RTCCM
+
+ Removed this test.
+
+Thu Sep 1 10:20:48 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ CIAO Reorganization. Plese see tag before_ciao_reorg
+ to obtain the old version.
+
+Wed Aug 31 15:16:23 2005 William Otte <wotte@dre.vanderbilt.edu>
+ * DAnCE/Config_Handlers/RT-CCM/CB_Handler.cpp
+ * DAnCE/Config_Handlers/RT-CCM/PM_Handler.cpp
+ * DAnCE/Config_Handlers/RT-CCM/TPL_Handler.cpp
+ * DAnCE/Config_Handlers/RT-CCM/TP_Handler.cpp
+
+ Fixes to satisfy a tempramental Borland compiler.
+
+Wed Aug 31 13:28:46 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/ADD_Handler.cpp
+ * DAnCE/Config_Handlers/ADD_Handler.h
+ * DAnCE/Config_Handlers/IDD_Handler.cpp
+ * DAnCE/Config_Handlers/IDD_Handler.h
+ * DAnCE/Config_Handlers/IDREF_Base.cpp
+ * DAnCE/Config_Handlers/IDREF_Base.h
+ * DAnCE/Config_Handlers/MDD_Handler.cpp
+ * DAnCE/Config_Handlers/MDD_Handler.h
+ * DAnCE/Config_Handlers/STD_CID_Handler.cpp
+ * DAnCE/Config_Handlers/STD_CID_Handler.h
+
+ Simple refactoring to make the IDREF interface more generic.
+
+ * DAnCE/Config_Handlers/XML_Helper.cpp
+ * DAnCE/Config_Handlers/XML_Helper.h
+
+ Made empty document creation more generic.
+
+ * DAnCE/Config_Handlers/RT-CCM/CB_Handler.cpp
+ * DAnCE/Config_Handlers/RT-CCM/CB_Handler.h
+ * DAnCE/Config_Handlers/RT-CCM/CIAOServerResources.cpp
+ * DAnCE/Config_Handlers/RT-CCM/CIAOServerResources.hpp
+ * DAnCE/Config_Handlers/RT-CCM/CLA_Handler.cpp
+ * DAnCE/Config_Handlers/RT-CCM/CLA_Handler.h
+ * DAnCE/Config_Handlers/RT-CCM/OC_Handler.cpp
+ * DAnCE/Config_Handlers/RT-CCM/OC_Handler.h
+ * DAnCE/Config_Handlers/RT-CCM/OR_Handler.cpp
+ * DAnCE/Config_Handlers/RT-CCM/OR_Handler.h
+ * DAnCE/Config_Handlers/RT-CCM/PM_Handler.cpp
+ * DAnCE/Config_Handlers/RT-CCM/PM_Handler.h
+ * DAnCE/Config_Handlers/RT-CCM/PS_Handler.cpp
+ * DAnCE/Config_Handlers/RT-CCM/PS_Handler.h
+ * DAnCE/Config_Handlers/RT-CCM/RT-CCM-Handlers.mpc
+ * DAnCE/Config_Handlers/RT-CCM/SRD_Handler.cpp
+ * DAnCE/Config_Handlers/RT-CCM/SRD_Handler.h
+ * DAnCE/Config_Handlers/RT-CCM/TPL_Handler.cpp
+ * DAnCE/Config_Handlers/RT-CCM/TPL_Handler.h
+ * DAnCE/Config_Handlers/RT-CCM/TP_Handler.cpp
+ * DAnCE/Config_Handlers/RT-CCM/TP_Handler.h
+ * DAnCE/Config_Handlers/RT-CCM/input.csr
+ * DAnCE/Config_Handlers/RT-CCM/test.cpp
+
+ The new RT-CCM handlers. These have yet to be integrated into the
+ main config_handler path.
+
+ * DAnCE/ciao/CCM_Core.mpc
+ * DAnCE/ciao/ServerResources.idl
+
+ Updates to the support the RT-CCM Handlers.
+
+ * docs/schema/CIAOServerResources.xsd
+
+ Corrected a few oversights.
+
+Wed Aug 31 09:49:28 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/XMLSchema/TypeInfo.tpp
+
+ Workaround for a buggy Borland compiler.
+
+Tue Aug 30 14:33:08 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/Basic_Deployment_Data.hpp
+
+ Slight handcrafting to remove commas from the end of enumerator lists.
+
+Tue Aug 30 11:59:14 CDT 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/IRDD_Handler.h
+ * DAnCE/Config_Handlers/PCD_Handler.h
+
+ Fixed a class/struct mismatch.
+
+Tue Aug 30 11:51:32 CDT 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/Basic_Deployment_Data.cpp
+ * DAnCE/Config_Handlers/Basic_Deployment_Data.hpp
+ * DAnCE/Config_Handlers/CIAOServerResources.cpp
+ * DAnCE/Config_Handlers/CIAOServerResources.hpp
+ * DAnCE/Config_Handlers/Deployment.cpp
+ * DAnCE/Config_Handlers/Deployment.hpp
+ * DAnCE/Config_Handlers/ccd.cpp
+ * DAnCE/Config_Handlers/ccd.hpp
+ * DAnCE/Config_Handlers/cdd.cpp
+ * DAnCE/Config_Handlers/cdd.hpp
+ * DAnCE/Config_Handlers/cdp.cpp
+ * DAnCE/Config_Handlers/cdp.hpp
+ * DAnCE/Config_Handlers/cid.cpp
+ * DAnCE/Config_Handlers/cid.hpp
+ * DAnCE/Config_Handlers/cpd.cpp
+ * DAnCE/Config_Handlers/cpd.hpp
+ * DAnCE/Config_Handlers/iad.cpp
+ * DAnCE/Config_Handlers/iad.hpp
+ * DAnCE/Config_Handlers/pcd.cpp
+ * DAnCE/Config_Handlers/pcd.hpp
+ * DAnCE/Config_Handlers/toplevel.cpp
+ * DAnCE/Config_Handlers/toplevel.hpp
+
+ Fixes a large number of compiler warnings in Borland.
+
+Thu Aug 25 15:26:25 2005 Nanbor Wang <nanbor@exothermic.txcorp.com>
+
+ * DAnCE/ciao/ServerResources.idl: Added the missing <stacksize>
+ attribute to ORS_ThreadpoolWithLanes struct. Thanks to Will
+ Otte for catching this.
+
+Wed Aug 24 20:41:59 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ExecImplHeaderGenerator.cpp:
+ * CIDLC/ExecImplSourceGenerator.cpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Removed commented-out code.
+
+Tue Aug 23 20:09:59 2005 Ossama Othman <ossama@dre.vanderbilt.edu>
+
+ * DAnCE/Old_Config_Handlers/DT_Handler.h:
+ * DAnCE/RTNodeApplication/RTServer_Impl.h:
+ * DAnCE/ciao/Container_Base.h:
+ * DAnCE/ciao/Context_Impl_Base.h:
+ * DAnCE/ciao/NodeApplication_Impl.h:
+
+ Reordered include directives to make sure all necessary
+ non-dependent names are parsed before the templates that use
+ them. Addresses g++ 3.4.x or better compile-time errors.
+
+Tue Aug 23 19:29:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/DeploymentManager/DeploymentManager.mpc:
+ Add dummy_label to all projects, this don't build, this is
+ the fast way to get the scoreboard green. Already one project
+ had this in the file.
+
+Mon Aug 22 10:59:18 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/DeploymentManager/DeploymentManager.cidl
+ * DAnCE/DeploymentManager/DeploymentManager.idl
+ * DAnCE/DeploymentManager/DeploymentManager.mpc
+ * DAnCE/DeploymentManager/DeploymentManager_Impl.cpp
+ * DAnCE/DeploymentManager/DeploymentManager_Impl.h
+ * DAnCE/DeploymentManager/DeploymentManager_exec_export.h
+ * DAnCE/DeploymentManager/DeploymentManager_stub_export.h
+ * DAnCE/DeploymentManager/DeploymentManager_svnt_export.h
+
+ Preliminary skeleton for the DeploymentManager.
+
+Fri Aug 19 07:56:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Config_Handlers/Any_Handler.cpp:
+ * DAnCE/Config_Handlers/DataType_Handler.cpp:
+ * DAnCE/Old_Config_Handlers/DT_Handler.cpp:
+ * DAnCE/ciao/ComponentsC.h:
+ * ciao/ComponentsC.h:
+ Updated for AnyTypeCode refactoring
+
+Tue Aug 16 15:16:10 2005 Nanbor Wang <nanbor@exothermic.txcorp.com>
+
+ * docs/schema/CIAOServerResources.xsd: Changed to define most of
+ the RT policy details with "element"s instead of "attribute"s
+ since "attribute"s can be optional. Thanks to Will Otte for
+ pointing this out.
+
+Tue Aug 16 09:46:45 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/Config_Handlers.mpc
+
+ Moved some changes in from the branch to correct errors from:
+ Mon Aug 15 12:03:43 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+Mon Aug 15 12:03:43 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/ADD_Handler.cpp
+ * DAnCE/Config_Handlers/ADD_Handler.h
+ * DAnCE/Config_Handlers/CCD_Handler.cpp
+ * DAnCE/Config_Handlers/CCD_Handler.h
+ * DAnCE/Config_Handlers/CRDD_Handler.h
+ * DAnCE/Config_Handlers/DP_Handler.cpp
+ * DAnCE/Config_Handlers/DP_Handler.h
+ * DAnCE/Config_Handlers/DP_PCD_Handler.cpp
+ * DAnCE/Config_Handlers/DP_PCD_Handler.h
+ * DAnCE/Config_Handlers/IDD_Handler.cpp
+ * DAnCE/Config_Handlers/IDD_Handler.h
+ * DAnCE/Config_Handlers/IDREF_Base.cpp
+ * DAnCE/Config_Handlers/ID_Handler.h
+ * DAnCE/Config_Handlers/IRDD_Handler.cpp
+ * DAnCE/Config_Handlers/MDD_Handler.cpp
+ * DAnCE/Config_Handlers/MDD_Handler.h
+ * DAnCE/Config_Handlers/PCD_Handler.cpp
+ * DAnCE/Config_Handlers/PCD_Handler.h
+ * DAnCE/Config_Handlers/PSPE_Handler.cpp
+ * DAnCE/Config_Handlers/Req_Handler.cpp
+ * DAnCE/Config_Handlers/XML_Helper.cpp
+ * DAnCE/Config_Handlers/XML_Helper.h
+ * DAnCE/Config_Handlers/XercesString.cpp
+ * DAnCE/Config_Handlers/XercesString.h
+ * DAnCE/Config_Handlers/test.cpp
+
+ Checked in support for IDL->XSC->XML mapping. Thanks to Lucas
+ Seibert <heynonynony at yahoo dot com> for completing this work.
+
+Mon Aug 15 00:01:01 2005 Boris Kolpackov <boris@kolpackov.net>
+
+ * CIDLC/cidlc.cpp: Made ErrorHandler auto-detach itself
+ from the stream when it is destroyed. This fixes the
+ segmentation fault on Solaris in libstdc++ termination code.
+
+Wed Aug 10 09:39:41 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/Basic_Deployment_Data.cpp
+ * DAnCE/Config_Handlers/Basic_Deployment_Data.hpp
+ * DAnCE/Config_Handlers/CIAOServerResources.cpp
+ * DAnCE/Config_Handlers/CIAOServerResources.hpp
+ * DAnCE/Config_Handlers/Deployment.cpp
+ * DAnCE/Config_Handlers/Deployment.hpp
+ * DAnCE/Config_Handlers/ccd.cpp
+ * DAnCE/Config_Handlers/ccd.hpp
+ * DAnCE/Config_Handlers/cdd.cpp
+ * DAnCE/Config_Handlers/cdd.hpp
+ * DAnCE/Config_Handlers/cdp.cpp
+ * DAnCE/Config_Handlers/cdp.hpp
+ * DAnCE/Config_Handlers/cid.cpp
+ * DAnCE/Config_Handlers/cid.hpp
+ * DAnCE/Config_Handlers/cpd.cpp
+ * DAnCE/Config_Handlers/cpd.hpp
+ * DAnCE/Config_Handlers/iad.cpp
+ * DAnCE/Config_Handlers/iad.hpp
+ * DAnCE/Config_Handlers/pcd.cpp
+ * DAnCE/Config_Handlers/pcd.hpp
+ * DAnCE/Config_Handlers/toplevel.cpp
+ * DAnCE/Config_Handlers/toplevel.hpp
+
+ Regenerated with the latest CVS-head version of XSC. These support
+ a couple improvements that will aid in optimizing the config
+ handlers.
+
+Tue Aug 9 11:55:13 2005 Ming Xiong <mxiong@dre.vanderbilt.edu>
+
+ * docs/imgs/component-basic.png
+ * docs/imgs/CCM.vsd
+
+ Updated CCM diagram to fix a interface naming error.
+
+
+Tue Aug 9 10:02:13 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu>
+
+ * DAnCE/ComponentPackager/README.html: Improved the
+ documentation to point to the right directory for the Quoter
+ example. Thanks to Aldo Texier <aldo.texier@oktal.fr> for
+ reporting this.
+
+Tue Aug 9 13:11:04 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * DAnCE/RepositoryManager/RepositoryManager.mpc:
+
+ Updated dependencies to reflect the recent name change from
+ NodeDaemon_stub to NodeManager_stub.
+
+ * DAnCE/RepositoryManager/Repository_Manager.cpp:
+
+ Updated identifier names to match the change from NodeDaemon
+ to ModeManager.
+
+Mon Aug 08 22:02:43 2005 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * docs/EnvVars.html
+ * docs/index.html
+ * docs/Trace.html
+ * docs/imgs/DAnCE-Dynamic.png
+ * docs/imgs/DAnCE-Dynamic.sxd
+
+ Beefed up the CIAO documentation page. These files are
+ checked in on behalf of Ming. Thanks Friedhelm Wolf
+ <Friedhelm.wolf at gmx.de> for contributing the DAnCE
+ interaction diagram.
+
+Mon Aug 8 18:50:36 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DAnCE/NodeManager/NAM_Map.h
+ * DAnCE/NodeManager/NodeManager.idl
+ * DAnCE/NodeManager/NodeManager.mpc
+ * DAnCE/NodeManager/NodeManager_Impl.cpp
+ * DAnCE/NodeManager/NodeManager_Impl.h
+ * DAnCE/NodeManager/NodeManager_Impl.inl
+ * DAnCE/NodeManager/NodeManager_stub_export.h
+ * DAnCE/NodeManager/Node_Manager.cpp
+ * DAnCE/NodeManager/README
+ * DAnCE/RTNodeApplication/README
+
+ Changed all references to Node_Daemon to NodeManager to avoid
+ confusion, since these phrases are used interchangeably.
+
+ * DAnCE/NodeManager/NodeDaemon.idl
+ * DAnCE/NodeManager/NodeDaemon.mpc
+ * DAnCE/NodeManager/NodeDaemon_Impl.cpp
+ * DAnCE/NodeManager/NodeDaemon_Impl.h
+ * DAnCE/NodeManager/NodeDaemon_Impl.inl
+ * DAnCE/NodeManager/NodeDaemon_stub_export.h
+ * DAnCE/NodeManager/Node_Daemon.cpp
+
+ Removed these files to support the change above.
+
+ * DAnCE/examples/BasicSP/descriptors/basicNodeDaemon.pl
+ * DAnCE/examples/Display/descriptors/basicNodeDaemon.pl
+ * DAnCE/examples/Hello/step-by-step.html
+ * DAnCE/examples/Hello/descriptors/run_NodeDaemons.pl
+ * DAnCE/examples/Hello/descriptors/run_test.pl
+ * DAnCE/examples/Hello/descriptors/run_test_without_ns.pl
+ * DAnCE/tests/scripts/BasicSP/basicNodeDaemon.pl
+ * docs/tutorials/Quoter/Simple/descriptors/runNodeDaemons.pl
+
+ Updated these scripts to call NodeManager instead of NodeDaemon.
+
+Fri Aug 5 11:45:13 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/CIAOServerResources.cpp
+ * DAnCE/Config_Handlers/CIAOServerResources.hpp
+
+ XSC code generated from CIAOServerResources.xsd for RT-CCM
+ properties.
+
+ * docs/schema/CIAOServerResources.xsd
+
+ Fixed some namespace errors.
+
+Fri Aug 05 08:00:08 2005 Simon Massey <sma@prismtech.com>
+
+ * CIAO version 0.4.7 released.
+
+Wed Aug 3 12:34:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc:
+ Corrected order of the libraries to resolve static link
+ errors
+
+Tue Aug 2 08:36:40 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc
+
+ Possiible fix for borlan build problem.
+
+Mon Aug 01 16:01:43 2005 Ming Xiong <mxiong@dre.vanderbilt.edu>
+
+ * ChangeLog
+
+ Fixed several incorrect checkin date
+
+Mon Aug 01 14:55:43 2005 Ming Xiong <mxiong@dre.vanderbilt.edu>
+
+ * DAnCE/new_RepositoryManager/RepositoryManager_Impl.cpp
+
+ Fixed a C4715 warning under MSVC7.1
+
+Mon Aug 1 19:39:30 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc:
+
+ Removed duplicate 'after' and 'libs' items, and added the
+ new export macro definition file (see below) to
+ Header_Files.
+
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.h:
+
+ Added export macro to class declaration and include of export
+ macro definitin file.
+
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl_Export.h:
+
+ New file to define the export macro for the Plan_Launcher_Impl
+ library.
+
+Sun Jul 31 21:56:43 2005 Ming Xiong <mxiong@dre.vanderbilt.edu>
+
+ * DAnCE/new_RepositoryManager/Options.h
+
+ Improved documentation to meet the requirement of Doxygen
+
+Sun Jul 31 21:45:43 2005 Ming Xiong <mxiong@dre.vanderbilt.edu>
+
+ * DAnCE/new_RepositoryManager/RMadmin.cpp
+
+ Fixed C4101 warnings in MSVC
+
+Sun Jul 31 21:26:43 2005 Ming Xiong <mxiong@dre.vanderbilt.edu>
+
+ * DAnCE/new_RepositoryManager/RMadmin.cpp
+
+ Updated RMadmin.cpp to merge latest changes
+
+Fri Jul 29 15:02:43 2005 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DAnCE/examples/Hello/descriptors/flattened_deploymentplan_without_ns.cdp
+ * DAnCE/examples/Hello/descriptors/run_test_without_ns.pl
+
+ Added a flattened deployment plan and test script which
+ doesn't use naming service.
+
+ * DAnCE/examples/Hello/descriptors/flattened_deploymentplan.cdp
+
+ Documented the above another available test in the file.
+
+Fri Jul 29 09:30:43 2005 Nishanth Shanakran <nshankar@dre.vanderbilt.edu>
+
+ * NEWS:
+
+ Added a brief description about Resource Allocation and Control
+ Engine (RACE).
+
+Fri Jul 29 06:56:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/new_RepositoryManager/new_RepositoryManager.mpc:
+ Fixed fuzz error
+
+Thu Jul 28 23:00:11 2005 Ming Xiong <mxiong@dre.vanderbilt.edu>
+
+ * DAnCE/new_RepositoryManager/Options.cpp
+ * DAnCE/new_RepositoryManager/Options.h
+ * DAnCE/new_RepositoryManager/README.txt
+ * DAnCE/new_RepositoryManager/RepositoryManager.cpp
+ * DAnCE/new_RepositoryManager/RepositoryManager.idl
+ * DAnCE/new_RepositoryManager/RepositoryManager_Impl.cpp
+ * DAnCE/new_RepositoryManager/RepositoryManager_Impl.h
+ * DAnCE/new_RepositoryManager/ZIP_Wrapper.cpp
+ * DAnCE/new_RepositoryManager/ZIP_Wrapper.h
+ * DAnCE/new_RepositoryManager/new_RepositoryManager.mpc
+
+ Checked in the changes to new_RepositoryManager
+
+Fri Jul 29 03:52:11 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc
+
+ Made is such that Plan_Launcher_Impl library gets generated
+ and installed.
+
+Wed Jul 28 15:18:14 2005 Ming Xiong <mxiong@dre.vanderbilt.edu>
+
+ * docs\schema\Modified_Deployment.xsd
+
+ Change the XML element order of IAD to conform to spec
+
+Wed Jul 27 19:20:14 2005 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * NEWS
+
+ Added news about naming service integration.
+
+Wed Jul 27 07:40:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Config_Handlers/cid.cpp:
+ * DAnCE/Config_Handlers/cpd.cpp:
+ * DAnCE/Config_Handlers/iad.cpp:
+ Explicitly initialise base class
+
+Wed Jul 27 07:35:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Config_Handlers/STD_IAD_Handler.h:
+ Fixed fuzz error
+
+Tue Jul 26 21:22:45 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * DAnCE/examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.h:
+
+ Added 'CIDL_' prefix to the scoped name of the exec impl class's
+ base class, in the impl class declaration inheritance list. This
+ file was overlooked when making similar changes to other exec
+ impl classes in CIAO tests and examples.
+
+Mon Jul 26 13:54:12 2005 Ming Xiong <mxiong@dre.vanderbilt.edu>
+
+ * docs/schema/cid.xsd
+ * docs/schema/cpd.xsd
+ * docs/schema/iad.xsd
+ * docs/schema/Modified_Deployment.xsd
+
+ Added <xsd:attribute name="href"> for cid/cpd/iad(.xsd) and changed Modified_Deployment.xsd
+ accordingly.We will need href attribute in the repository manager process.
+
+ * DAnCE/Config_Handlers/iad.cpp
+ * DAnCE/Config_Handlers/iad.hpp
+ * DAnCE/Config_Handlers/cid.cpp
+ * DAnCE/Config_Handlers/cid.hpp
+ * DAnCE/Config_Handlers/cpd.cpp
+ * DAnCE/Config_Handlers/cpd.hpp
+
+ Regenerated xsc codes for updated schemas in CIAO/docs/schema/
+
+ * DAnCE/Config_Handlers/STD_CID_Handler.cpp
+ * DAnCE/Config_Handlers/STD_CID_Handler.h
+ * DAnCE/Config_Handlers/STD_CPD_Handler.cpp
+ * DAnCE/Config_Handlers/STD_CPD_Handler.h
+ * DAnCE/Config_Handlers/STD_IAD_Handler.cpp
+ * DAnCE/Config_Handlers/STD_IAD_Handler.h
+ * DAnCE/Config_Handlers/STD_PC_Intf.cpp
+ * DAnCE/Config_Handlers/STD_PC_Intf.h
+ * DAnCE/Config_Handlers/STD_PCD_Handler.cpp
+ * DAnCE/Config_Handlers/STD_PCD_Handler.h
+ * DAnCE/Config_Handlers/Config_Handlers.mpc
+
+ Added new handlers for mapping Config_Handlers::PackageConfiguration to Deployment:PackageConfiguration.
+ Updated Config_Handlers.mpc accordingly
+
+Tue Jul 26 12:53:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/new_RepositoryManager/RMadmin.cpp:
+ Fixed vc71 warnings
+
+Tue Jul 26 10:53:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_ex.cpp:
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_simple.cpp:
+ Added some missing CORBA::string_dup calls, this fixes these
+ tests on Windows
+
+Tue Jul 26 07:32:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeManager/NodeDaemon_Impl.{h,cpp}:
+ Fixed warning and use doxygen comment style
+
+Mon Jul 25 22:14:20 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/SizeTypeCalculator.cpp:
+
+ Fixed visitor to handle types declared inside the scope of
+ an interface, valuetype, or home. Thanks to Friedhelm Wolf
+ <Friedhelm.wolf@gmx.de> for reporting a CIDL compiler
+ problem with a struct declared inside an interface.
+
+Mon Jul 25 18:40:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/tests/NodeApplicationTest/run_test_ex.pl:
+ Corrected NodeApplication path
+
+Mon Jul 25 08:39:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/tests/NodeApplicationTest/run_test.pl:
+ * DAnCE/tests/NodeApplicationTest/run_test_ex.pl:
+ * DAnCE/tests/NodeApplicationTest/run_test_simple.pl:
+ Made these tests independent of setting of CIAO_ROOT
+
+Sun Jul 24 07:45:19 2005 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DAnCE/NodeManager/NodeDaemon_Impl.cpp
+
+ Fixed an exception emulation warning in Debian_Full_Reactor
+ build.
+
+Sun Jul 24 07:40:19 2005 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.cpp
+
+ Enhanced error output information a little bit by
+ adding process ID and thread ID.
+
+ * DAnCE/ciao/Container_Impl.cpp
+
+ Fixed exception emulation warnings in Debian_Full_Reactor
+ build.
+
+Sun Jul 24 01:19:21 2005 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp
+
+ Fixed a bug (memory problem) in the plan_launcher which caused
+ the "tearing down" assembly failure.
+
+ * DAnCE/examples/Hello/descriptors/flattened_deploymentplan.cdp
+ * DAnCE/examples/BasicSP/descriptors/flattened_deploymentplan.cdp
+
+ Added a UUID tag to the flattened deployment plan.
+
+Sat Jul 23 23:11:21 2005 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DAnCE/tests/Minimum/Receiver/Receiver.mpc
+ * DAnCE/tests/Minimum/Sender/Sender.mpc
+
+ Modified shared library names to fix some linking erros
+ on build scoreboard.
+
+ * DAnCE/examples/Hello/descriptors/run_test.pl
+
+ Fixed the script so naming service could be started
+ correctly.
+
+ * DAnCE/examples/Hello/step-by-step.html
+
+ Simple instruction about using naming service.
+
+Sat Jul 23 14:53:22 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/Port_Activator.cpp:
+ * DAnCE/ciao/Port_Activator.h:
+ * DAnCE/ciao/Servant_Activator.cpp:
+ * DAnCE/ciao/Servant_Impl_Base.cpp:
+
+ Added a method in Port_Activator to set the name of
+ port activator. The port activator is used to activate
+ the ports of the component.
+
+ Fixed a incorrect delete call in the update_port_activator
+ function in Servant_Activator.cpp. This will fix the core
+ dump in the CIAO tests.
+
+ Modified the calling sequence to deactivate ports when we
+ deactivate the component.
+
+Sat Jul 23 12:23:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/ciao/Servant_Impl_Base.cpp:
+ Added several missing ACE_TRY_CHECK macros.
+
+Mon Jul 18 22:31:12 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/ciao/Container_Impl.cpp
+
+ Fixed some compilation error about using NamingContextEx.
+
+ * DAnCE/examples/Hello/descriptors/run_test.pl
+
+ Fixed this script so naming service will be started
+ explicitly. Thanks Simon McQueen <sm@prismtech.com>
+ for pointing the error.
+
+Mon Jul 18 22:31:12 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/ciao/Container_Impl.cpp
+ * DAnCE/ciao/Container_Impl.h
+ * DAnCE/ciao/CCM_Core.mpc
+ * DAnCE/ciao/NodeApplication_Impl.cpp
+
+ Added support for registering components with naming service.
+ A system deployer could config such capability through XML tag
+
+ * DAnCE/examples/BasicSP/descriptors/flattened_deploymentplan.cdp
+ * DAnCE/examples/Hello/descriptors/flattened_deploymentplan.cdp
+
+ Added a couple of examples for using naming service by adding
+ some <ConfigProperty> tag to the deployment plan descriptor.
+
+Fri Jul 15 23:50:12 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * NEWS:
+ Updated the NEWS file to include the result of our latest
+ discussion/plan about DAnCE.
+
+Fri Jul 15 10:02:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeManager/NAM_Map.h:
+ Fixed fuzz error
+
+Tue Jul 12 00:03:57 2005 Ming Xiong <mxiong@dre.vanderbilt.edu>
+
+ * docs/tutorials/Quoter/Simple/README.html
+
+ Updated some directory information in this file since the quoter example has been
+ moved to new directory.
+
+Mon Jul 11 11:44:57 2005 Ming Xiong <mxiong@dre.vanderbilt.edu>
+
+ * TAO/CIAO/DAnCE/examples/Quoter/README.html
+ * TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker.cidl
+ * TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker.cpp
+ * TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker.idl
+ * TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker.mpc
+ * TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker_exec.cpp
+ * TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker_exec.h
+ * TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker_exec_export.h
+ * TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker_stub_export.h
+ * TAO/CIAO/DAnCE/examples/Quoter/Broker/Broker_svnt_export.h
+ * TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor.cidl
+ * TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor.cpp
+ * TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor.idl
+ * TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor.mpc
+ * TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor_exec.cpp
+ * TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor_exec.h
+ * TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor_exec_export.h
+ * TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor_stub_export.h
+ * TAO/CIAO/DAnCE/examples/Quoter/Distributor/Distributor_svnt_export.h
+ * TAO/CIAO/DAnCE/examples/Quoter/Stock_Base/Stock_Base.idl
+ * TAO/CIAO/DAnCE/examples/Quoter/Stock_Base/Stock_Base.mpc
+ * TAO/CIAO/DAnCE/examples/Quoter/Stock_Base/Stock_Base_stub_export.h
+ * TAO/CIAO/DAnCE/examples/Quoter/Stock_Base/Stock_Base_svnt_export.h
+ * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Broker.ccd
+ * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Broker.cid
+ * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Broker.cpd
+ * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Broker_Exec.iad
+ * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Broker_Stub.iad
+ * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Broker_Svnt.iad
+ * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Deployment.xsd
+ * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Distributor.ccd
+ * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Distributor.cid
+ * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Distributor.cpd
+ * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Distributor_Exec.iad
+ * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Distributor_Stub.iad
+ * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Distributor_Svnt.iad
+ * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Domain.cdd
+ * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Libraries.iad
+ * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Modified_Deployment.xsd
+ * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Stock.cdp
+ * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Stock.cid
+ * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Stock.cpd
+ * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Stock.dat
+ * TAO/CIAO/DAnCE/examples/Quoter/descriptors/Stock.pcd
+ * TAO/CIAO/DAnCE/examples/Quoter/descriptors/XMI.xsd
+ * TAO/CIAO/DAnCE/examples/Quoter/descriptors/flattened_deploymentplan.cdp
+ * TAO/CIAO/DAnCE/examples/Quoter/descriptors/package.tpd
+ * TAO/CIAO/DAnCE/examples/Quoter/descriptors/runNodeDaemons.pl
+ * TAO/CIAO/DAnCE/examples/Quoter/images/quoter.jpg
+
+ Removed Quoter example in DAnCE/examples/ directory to avoid duplicate. The orignal
+ example could be found in CIAO/docs/tutorials/Quoter/Simple.
+
+Fri Jul 8 17:42:57 2005 Ming Xiong <mxiong@dre.vanderbilt.edu>
+
+ * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.mpc
+ * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.idl
+ * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base_svnt_export.h
+ * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base_stub_export.h
+ * docs/tutorials/Quoter/Simple/Broker/Broker.mpc
+ * docs/tutorials/Quoter/Simple/Broker/Broker.idl
+ * docs/tutorials/Quoter/Simple/Broker/Broker.cidl
+ * docs/tutorials/Quoter/Simple/Broker/Broker.cpp
+ * docs/tutorials/Quoter/Simple/Broker/Broker_exec.h
+ * docs/tutorials/Quoter/Simple/Broker/Broker_exec.cpp
+ * docs/tutorials/Quoter/Simple/Broker/Broker_svnt_export.h
+ * docs/tutorials/Quoter/Simple/Broker/Broker_stub_export.h
+ * docs/tutorials/Quoter/Simple/Broker/Broker_exec_export.h
+ * docs/tutorials/Quoter/Simple/Distributor/Distributor.mpc
+ * docs/tutorials/Quoter/Simple/Distributor/Distributor.idl
+ * docs/tutorials/Quoter/Simple/Distributor/Distributor.cidl
+ * docs/tutorials/Quoter/Simple/Distributor/Distributor.cpp
+ * docs/tutorials/Quoter/Simple/Distributor/Distributor_exec.h
+ * docs/tutorials/Quoter/Simple/Distributor/Distributor_exec.cpp
+ * docs/tutorials/Quoter/Simple/Distributor/Distributor_svnt_export.h
+ * docs/tutorials/Quoter/Simple/Distributor/Distributor_stub_export.h
+ * docs/tutorials/Quoter/Simple/Distributor/Distributor_exec_export.h
+ * docs/tutorials/Quoter/Simple/descriptors/Broker.ccd
+ * docs/tutorials/Quoter/Simple/descriptors/Broker.cid
+ * docs/tutorials/Quoter/Simple/descriptors/Broker.cpd
+ * docs/tutorials/Quoter/Simple/descriptors/Broker_Exec.iad
+ * docs/tutorials/Quoter/Simple/descriptors/Broker_Stub.iad
+ * docs/tutorials/Quoter/Simple/descriptors/Broker_Svnt.iad
+ * docs/tutorials/Quoter/Simple/descriptors/Deployment.xsd
+ * docs/tutorials/Quoter/Simple/descriptors/Distributor.ccd
+ * docs/tutorials/Quoter/Simple/descriptors/Distributor.cid
+ * docs/tutorials/Quoter/Simple/descriptors/Distributor.cpd
+ * docs/tutorials/Quoter/Simple/descriptors/Distributor_Exec.iad
+ * docs/tutorials/Quoter/Simple/descriptors/Distributor_Stub.iad
+ * docs/tutorials/Quoter/Simple/descriptors/Distributor_Svnt.iad
+ * docs/tutorials/Quoter/Simple/descriptors/Domain.cdd
+ * docs/tutorials/Quoter/Simple/descriptors/flattened_deploymentplan.cdp
+ * docs/tutorials/Quoter/Simple/descriptors/Libraries.iad
+ * docs/tutorials/Quoter/Simple/descriptors/Modified_Deployment.xsd
+ * docs/tutorials/Quoter/Simple/descriptors/package.tpd
+ * docs/tutorials/Quoter/Simple/descriptors/runNodeDaemons.pl
+ * docs/tutorials/Quoter/Simple/descriptors/Stock.cdp
+ * docs/tutorials/Quoter/Simple/descriptors/Stock.cid
+ * docs/tutorials/Quoter/Simple/descriptors/Stock.cpd
+ * docs/tutorials/Quoter/Simple/descriptors/Stock.dat
+ * docs/tutorials/Quoter/Simple/descriptors/Stock.pcd
+ * docs/tutorials/Quoter/Simple/descriptors/XMI.xsd
+
+ Created a new directory tutorials to hold multiple tutorial examples, added quoter
+ to this directory as simple quoter example. Will add a multiple receptacle quoter
+ example soon.
+
+
+Fri Jul 8 17:13:57 2005 Ming Xiong <mxiong@dre.vanderbilt.edu>
+
+ * DAnCE/examples/Quoter/descriptors/flattened_deploymentplan.cdp
+
+ Updated the plan so that it includes the base libraries as artifact. This
+ will help ComponentPackager to wrap up everything in the archive.
+
+
+Fri Jul 8 15:49:57 2005 Ming Xiong <mxiong@dre.vanderbilt.edu>
+
+ * DAnCE/ComponentPackager/Base_Packager.h
+ * DAnCE/ComponentPackager/ComponentPackager.mpc
+ * DAnCE/ComponentPackager/CPK_Packager.cpp
+ * DAnCE/ComponentPackager/Package.xsd
+ * DAnCE/ComponentPackager/pdl.cpp
+ * DAnCE/ComponentPackager/pdl.hpp
+ * DAnCE/ComponentPackager/PDL_Handler.cpp
+ * DAnCE/ComponentPackager/PDL_Handler.h
+ * DAnCE/ComponentPackager/README.html
+ * DAnCE/ComponentPackager/Sample.pdl
+
+ Updated ComponentPackager to support XSC, eliminating the coupling with
+ Old_Config_Handlers.Move the schema for .pdl file from Deployment.xsd to
+ Package.xsd so that it's independently helpful by itself.
+
+Fri Jul 8 09:43:57 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.cpp
+
+ Fixed a compile error on Debian Core.
+
+Thu Jul 7 23:38:32 UTC 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * docs/index.html
+
+ Modofied this page a little bit to include our work in DAnCE.
+
+Wed Jul 6 17:21:58 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * DAnCE/NodeManager/NodeDaemon_Impl.cpp:
+
+ Fixed incorrect syntax in ACE_THROW macro.
+
+Tue Jul 5 11:16:44 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeManager/NAM_Map.h
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc
+ * DAnCE/new_RepositoryManager/ZIP_Wrapper.cpp
+
+ Fixed some misc fuzz errors.
+
+Tue Jul 5 16:01:39 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/TypeNameEmitter.cpp:
+
+ Small change to the checkin of
+
+ Mon Jul 4 22:50:17 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ to emit an error message when attempting to set a wstring
+ attribute from a CCM property value, since wstrings are
+ not yet supported for this activity.
+
+Mon Jul 4 22:50:17 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+ * CIDLC/TypeNameEmitter.cpp:
+ * CIDLC/TypeNameEmitter.hpp:
+
+ Created a new code emitter that knows which types CIAO
+ supports as component attribute types (basic types) and
+ which it does not (everything else). In the former case,
+ when DAnCE is assigning attribute values from XML properties -
+ in set_attributes () - it emits the usual code delegating
+ the assignment to the specific attribute mutator method
+ based on a string compare of the given attribute name to
+ the known attribute names of that component. In the latter
+ case, it emits an error message, stating that this particular
+ IDL kind is not supported by CIAO as a component attribute
+ type. Thanks to Sunil Rottoo <srottoo@airsage.com> for
+ pointing out that trying to set the value of an unsupported
+ component attribute type from a DnC property value in XML
+ caused a crash.
+
+Mon Jul 4 09:15:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIDLC/Literals.cpp:
+ * CIDLC/Literals.h:pp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h:
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.h:
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.h:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h:
+ * DAnCE/NodeManager/NodeDaemon_Impl.h:
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.h:
+ * DAnCE/ciao/Container_Impl.h:
+ * DAnCE/ciao/Home_Servant_Impl_T.h:
+ * DAnCE/ciao/NodeApp_CB_Impl.h:
+ * DAnCE/ciao/NodeApplication_Impl.h:
+ * DAnCE/ciao/Servant_Impl_T.h:
+ * DAnCE/ciao/StandardConfigurator_Impl.h:
+ * DAnCE/ciao/Swapping_Servant_Home_Impl_T.h:
+ * DAnCE/new_RepositoryManager/new_RepositoryManager_Impl.h:
+ * ciao/ComponentInstallation_Impl.h:
+ * ciao/ComponentServer_Impl.h:
+ * ciao/Container_Impl.h:
+ * ciao/HomeRegistrar_i.h:
+ * ciao/Home_Servant_Impl_T.h:
+ * ciao/Servant_Impl_T.h:
+ * ciao/ServerActivator_Impl.h:
+ * ciao/StandardConfigurator_Impl.h:
+ * docs/templates/CIAO_Glue_Session_Template.h:
+ * examples/handcrafted/BasicSP_EC2/BMClosedED/BMClosedED_svnt.h:
+ * examples/handcrafted/BasicSP_EC2/BMDevice/BMDevice_svnt.h:
+ * examples/handcrafted/BasicSP_EC2/BMDisplay/BMDisplay_svnt.h:
+ * examples/handcrafted/BasicSP_EC2/EC/EC_svnt.h:
+ * examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService_exec.h:
+ * examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService_svnt.h:
+ * performance-tests/Benchmark/LatencyTest.h:
+ * performance-tests/Benchmark/RoundTripServer/LatencyTest.h:
+ * tools/Assembly_Deployer/Assembly_Impl.h:
+ * tools/Assembly_Deployer/Assembly_Service_Impl.h:
+ * tools/Daemon/Daemon_Impl.h:
+ * tools/Simple_Component_Server/Simple_Server_i.h:
+ All servants are reference counted by default, no need anymore to
+ derive the servant from RefCountServantBase
+
+Sat Jul 2 12:16:49 2005 Cassia Tatibana <cassia@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ * DAnCE/NodeManager/NodeDaemon_Impl.cpp:
+
+ Added CIAO_TRACE messages.
+
+Fri Jul 1 08:42:27 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+ * DAnCE/NodeManager/NodeDaemon_Impl.cpp
+
+ Fixed compile errors with emulated exceptions turned on.
+
+Thu Jun 30 23:34:40 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * DAnCE/tests/Minimum/Receiver/Receiver_exec.cpp:
+ * DAnCE/tests/Minimum/Receiver/Receiver_exec.h:
+ * DAnCE/tests/Minimum/Sender/Sender_exec.cpp:
+ * DAnCE/tests/Minimum/Sender/Sender_exec.h:
+
+ More overlooked changes to exec files corresponding to
+ CIDL compiler code generation changes of
+
+ Wed Jun 22 23:20:04 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+Thu Jun 30 12:36:06 2005 William Otte <wotte@atl.lmco.com>
+
+ * DAnCE/Plan_Launcher/DAM_Map.cpp
+ * DAnCE/Plan_Launcher/DAM_Map.h
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc
+
+ Added DAM_Map to the Plan_Launcher directory, as make wouldn't
+ handle the relative reference properly.
+
+Thu Jun 30 09:29:24 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/new_RepositoryManager/RMadmin.cpp
+ * DAnCE/new_RepositoryManager/RepositoryManager.cpp
+ * DAnCE/new_RepositoryManager/ZIP_Wrapper.cpp
+ * DAnCE/new_RepositoryManager/ZIP_Wrapper.h
+ * DAnCE/new_RepositoryManager/new_RepositoryManager_Impl.cpp
+ * DAnCE/new_RepositoryManager/new_RepositoryManager_Impl.h
+
+ Fixed Doxygen documentation tags, fixed some indenting,
+ removed tabs.
+
+Thu Jun 30 09:59:17 2005 William Otte <wotte@atl.lmco.com>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.h
+
+ Factored out the plan launcher capability into a shared library so
+ applications can use its functionality.
+
+Thu Jun 30 04:33:35 2005 ming xiong <mxiong@dre.vanderbilt.edu>
+
+ * DAnCE/ComponentPackager/Base_Packager.h
+ * DAnCE/ComponentPackager/CPK_Packager.cpp
+ * DAnCE/ComponentPackager/CPK_Packager.h
+ * DAnCE/ComponentPackager/PDL_Handler.cpp
+ * DAnCE/ComponentPackager/PDL_Handler.h
+ * DAnCE/ComponentPackager/Base_Packager.cpp
+
+ Added a release operation for destructor of PDL_Handler;Changed the
+ definition of input parameter for CPK_Packager::createPackager to const
+ to indicate it can not be changed
+
+Thu Jun 30 00:37:35 EDT 2005 Stoyan Paunov <s.paunov@vanderbilt.edu>
+
+ * DAnCE/new_RepositoryManager/RMadmin.cpp
+ * DAnCE/new_RepositoryManager/RepositoryManager.cpp
+ * DAnCE/new_RepositoryManager/ZIP_Wrapper.cpp
+ * DAnCE/new_RepositoryManager/ZIP_Wrapper.h
+ * DAnCE/new_RepositoryManager/new_RepositoryManager_Impl.cpp
+ * DAnCE/new_RepositoryManager/new_RepositoryManager_Impl.h
+
+ removed the "@file" comments which apparently confuse Doxygen.
+
+
+Wed Jun 29 17:00:57 2005 Cassia Tatibana <cassia@dre.vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/DAM_Map.cpp:
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp:
+
+ Added CIAO_TRACE messages.
+
+Wed Jun 29 16:38:42 2005 Ming Xiong <mxiong@dre.vanderbilt.edu>
+
+ * DAnCE/ComponentPackager/Base_Packager.h
+ * DAnCE/ComponentPackager/CPK_Packager.h
+ * DAnCE/ComponentPackager/CPK_Packager.h
+
+ Changed a couplfe of places to meet the Doxygen test and TChar test for
+ bin/fuzz.pl
+
+Wed Jun 29 16:28:52 2005 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/Deployment_Configuration.cpp
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h
+ * DAnCE/NodeManager/NAM_Map.cpp
+ * DAnCE/NodeManager/NAM_Map.h
+ * DAnCE/NodeManager/NodeDaemon.mpc
+ * DAnCE/NodeManager/NodeDaemon_Impl.cpp
+ * DAnCE/NodeManager/NodeDaemon_Impl.h
+ * DAnCE/NodeManager/Node_Daemon.cpp
+ * DAnCE/ciao/Deployment.idl
+
+ Merged dance_multiple_assemblies to main. This merge
+ contains code necessary to be able to deploy multiple assemblies
+ into a single NodeManager.
+
+Wed Jun 29 18:09:11 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.cpp:
+
+ Added check for successful opening of target file, which prevents
+ a crash when the file open is unsuccessful, for example when
+ write permissions are denied in the directory. Thanks to Will
+ Otte <wotte@dre.vanderbilt.edu> for pointing out the problem.
+
+Tue Jun 28 08:55:12 EDT 2005 Ming Xiong <mxiong@dre.vanderbilt.edu>
+
+ * DAnCE/ComponentPackager/Base_Packager.cpp
+ * DAnCE/ComponentPackager/Base_Packager.h
+ * DAnCE/ComponentPackager/CPK_Packager.cpp
+ * DAnCE/ComponentPackager/CPK_Packager.h
+ * DAnCE/ComponentPackager/ComponentPackager.mpc
+ * DAnCE/ComponentPackager/Component_Packager.cpp
+ * DAnCE/ComponentPackager/Modified_Deployment.xsd
+ * DAnCE/ComponentPackager/PDL_Handler.cpp
+ * DAnCE/ComponentPackager/PDL_Handler.h
+ * DAnCE/ComponentPackager/README.html
+ * DAnCE/ComponentPackager/Sample.pdl
+ * DAnCE/ComponentPackager/XercesString.cpp
+ * DAnCE/ComponentPackager/XercesString.h
+
+ Added the files implementing ComponentPackager, for details
+ please read README.html
+
+Tue Jun 28 01:03:12 EDT 2005 Stoyan Paunov <s.paunov@vanderbilt.edu>
+
+ * TAO/CIAO/DAnCE/new_RepositoryManager/RMadmin.cpp
+ * TAO/CIAO/DAnCE/new_RepositoryManager/ZIP_Wrapper.cpp
+ * TAO/CIAO/DAnCE/new_RepositoryManager/new_RepositoryManager_Impl.cpp
+
+ removed the _O_* flags to ACE_OS::open ();
+
+Mon Jun 27 16:25:52 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * DAnCE/examples/Swapping/Sender/Sender_exec.cpp:
+
+ Fixed cut-and-paste error.
+
+Mon Jun 27 07:04:01 2005 Chad Elliott <elliott_c@ociweb.com>
+
+ * DAnCE/new_RepositoryManager/new_RepositoryManager.mpc:
+ * DAnCE/new_RepositoryManager/README.txt:
+
+ Switch to using the existing zlib and zzip base projects.
+
+Sun Jun 26 23:53:23 EDT 2005 Stoyan Paunov <s.paunov@vanderbilt.edu>
+
+ * DAnCE/new_RepositoryManager/Modified_Deployment.xsd
+ * DAnCE/new_RepositoryManager/Options.cpp
+ * DAnCE/new_RepositoryManager/Options.h
+ * DAnCE/new_RepositoryManager/README.txt
+ * DAnCE/new_RepositoryManager/RMadmin.cpp
+ * DAnCE/new_RepositoryManager/RepositoryManager.cpp
+ * DAnCE/new_RepositoryManager/ZIP_Wrapper.cpp
+ * DAnCE/new_RepositoryManager/ZIP_Wrapper.h
+ * DAnCE/new_RepositoryManager/new_RepositoryManager.idl
+ * DAnCE/new_RepositoryManager/new_RepositoryManager.mpc
+ * DAnCE/new_RepositoryManager/new_RepositoryManager_Impl.cpp
+ * DAnCE/new_RepositoryManager/new_RepositoryManager_Impl.h
+ * DAnCE/new_RepositoryManager/packages/inconsistent.cpk
+ * DAnCE/new_RepositoryManager/packages/package.cpk
+
+ Added these files to the head. The files are implementing the repository
+ manager.
+
+ * DAnCE/new_RepositoryManager/Modified_Deployment.xsd
+ needed for the retrievePlan function that retrieves the Deployment plan
+
+ * DAnCE/new_RepositoryManager/Options.cpp
+ * DAnCE/new_RepositoryManager/Options.h
+ options class for the RMadmin.cpp
+
+ * DAnCE/new_RepositoryManager/README.txt
+
+ * DAnCE/new_RepositoryManager/RMadmin.cpp
+ a sample client program. You can use it as an example on how to use the RM
+
+ * DAnCE/new_RepositoryManager/ZIP_Wrapper.cpp
+ * DAnCE/new_RepositoryManager/ZIP_Wrapper.h
+ The ZIP Wrapper class that allows read access to ZIP packages and CCM packages
+ that have the cpk extension.
+
+ * DAnCE/new_RepositoryManager/RepositoryManager.cpp
+ * DAnCE/new_RepositoryManager/new_RepositoryManager.idl
+ * DAnCE/new_RepositoryManager/new_RepositoryManager.mpc
+ * DAnCE/new_RepositoryManager/new_RepositoryManager_Impl.cpp
+ * DAnCE/new_RepositoryManager/new_RepositoryManager_Impl.h
+ The Repository Manager implementation files
+
+ * DAnCE/new_RepositoryManager/packages/inconsistent.cpk
+ * DAnCE/new_RepositoryManager/packages/package.cpk
+ couple of sample packages that I created manually to test the RM.
+
+
+Fri Jun 24 14:36:02 2005 Cassia Tatibana <cassia@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/CIAO_common.h:
+
+ Added definition for CIAO_TRACE.
+
+Fri Jun 24 14:21:31 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * docs/tutorial/Hello/hello_exec.cpp:
+ * docs/tutorial/Hello/hello_exec.h:
+ * examples/Hello/Receiver/Receiver_exec.cpp:
+ * examples/Hello/Receiver/Receiver_exec.h:
+ * examples/Hello/Sender/Sender_exec.cpp:
+ * examples/Hello/Sender/Sender_exec.h:
+ * performance-tests/Protocols/Receiver/Receiver_exec.cpp:
+ * performance-tests/Protocols/Receiver/Receiver_exec.h:
+ * performance-tests/Protocols/Sender/Sender_exec.cpp:
+ * performance-tests/Protocols/Sender/Sender_exec.h:
+ * tests/RTCCM/DiffServ/Receiver/Receiver_exec.cpp:
+ * tests/RTCCM/DiffServ/Receiver/Receiver_exec.h:
+ * tests/RTCCM/DiffServ/Sender/Sender_exec.cpp:
+ * tests/RTCCM/DiffServ/Sender/Sender_exec.h:
+
+ More fixes to hand-written executor code to bring the file up
+ to date with the recent changes in generated code. These were
+ overlooked in
+
+ Wed Jun 22 23:20:04 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+Wed Jun 22 23:20:04 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ExecImplHeaderGenerator.cpp:
+ * CIDLC/ExecImplSourceGenerator.cpp:
+ * CIDLC/ExecutorMappingGenerator.cpp:
+ * CIDLC/Literals.cpp:
+ * CIDLC/Literals.hpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+ * DAnCE/examples/Display/NavDisplay/NavDisplay_exec.h:
+ * DAnCE/examples/Display/RateGen/RateGen_exec.h:
+ * DAnCE/examples/Hello/Receiver/Receiver_exec.cpp:
+ * DAnCE/examples/Hello/Receiver/Receiver_exec.h:
+ * DAnCE/examples/Hello/Sender/Sender_exec.cpp:
+ * DAnCE/examples/Hello/Sender/Sender_exec.h:
+ * DAnCE/examples/Quoter/Broker/Broker_exec.cpp:
+ * DAnCE/examples/Quoter/Broker/Broker_exec.h:
+ * DAnCE/examples/Quoter/Distributor/Distributor_exec.cpp:
+ * DAnCE/examples/Quoter/Distributor/Distributor_exec.h:
+ * DAnCE/examples/Swapping/Receiver/Receiver_exec.cpp:
+ * DAnCE/examples/Swapping/Receiver/Receiver_exec.h:
+ * DAnCE/examples/Swapping/Sender/Sender_exec.cpp:
+ * DAnCE/examples/Swapping/Sender/Sender_exec.h:
+ * DAnCE/examples/Swapping/Sender/Sender_exec_1.cpp:
+ * DAnCE/examples/Swapping/Sender/Sender_exec_1.h:
+ * DAnCE/examples/Swapping/Sender/Sender_exec_2.cpp:
+ * DAnCE/examples/Swapping/Sender/Sender_exec_2.h:
+ * DAnCE/tests/NodeApplicationTest/RoundTrip_exec.cpp:
+ * DAnCE/tests/NodeApplicationTest/RoundTrip_exec.h:
+ * docs/releasenotes/index.html:
+
+ Eliminated generation of the CIAO_GLUE_-prefixed namespace
+ and replaced it with a namespace constructed from the
+ composition local name and a CIDL_ prefix. Whereas the
+ previos namespace was always at global scope, the new one
+ will be generated inside namespaces mapped from IDL module
+ declarations, if the composition is declared inside any.
+ These changes were motivated by an example sent in by
+ Will Otte <wotte@dre.vanderbilt.edu>, where the composition
+ was declared inside several nested modules, and the generated
+ code would not compile. The new namespace encloses
+
+ - the component servant
+ - the home servant
+ - the facet servants, if any
+ - the executor interface in the executor IDL file
+ - optionally generated executor impl classes
+
+ Minor changes were required to existing executor impl
+ files as a result of the changes to generated code.
+
+Wed Jun 22 10:59:00 2005 Gary Maxey <gary.maxey@hp.com>
+
+ * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.cpp
+ Updated visitor for valuebox support.
+
+Mon Jun 20 18:10:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/examples/Display/NavDisplayGUI_exec/DetailView_moc.cpp:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/MapView_moc.cpp:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/NodeItem_moc.cpp:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/RootPanel_moc.cpp:
+ Removed these files, these are generated and shouldn't be in the
+ archive
+
+Mon Jun 20 09:29:00 2005 Gary Maxey <gary.maxey@hp.com>
+
+ * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.cpp
+ * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.h
+ Add visitor for valuebox support.
+
+Sun Jun 19 20:18:50 2005 Ming Xiong <mxiong@tango.dre.vanderbilt.edu>
+
+ * NEWS:
+
+ Updated NEWS on upcoming support for Component Packaging
+
+Thu Jun 16 21:46:10 2005 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DAnCE/examples/Display/descriptors/Modified_Deployment.xsd
+ * DAnCE/examples/Quoter/descriptors/Modified_Deployment.xsd
+ * docs/schema/Modified_Deployment.xsd
+
+ Modified the <InstanceDeploymentDescription> element type
+ to allow having unbounded number of <configProperty> elements.
+ Thanks Will Chai <willchai@126.com> to report this problem.
+
+Wed Jun 15 14:46:00 2005 Gautam Thaker <gthaker@atl.lmco.com>
+
+ * DAnCE/examples/Hello/step-by-step.html:
+
+ Fixed a typo regarding name of script "run_NodeDaemons.pl" and
+ one other sentence fragement.
+
+Mon Jun 13 13:44:41 2005 Emre Turkay <turkaye@dre.vanderbilt.edu>
+
+ * DAnCE/tests/NodeApplicationTest/run_test_simple.pl:
+ * DAnCE/tests/NodeApplicationTest/run_test.pl:
+ * DAnCE/tests/NodeApplicationTest/run_test_ex.pl:
+
+ Fixed a typo.
+
+Thu Jun 4 14:36:00 UTC 2005 Ming Xiong <mxiong@dre.vanderbilt.edu>
+
+ * DAnCE/examples/Quoter/Distributor/Distributor_exec.h
+ * DAnCE/examples/Quoter/Distributor/Distributor_exec.cpp
+
+ Fixed a virtual hiding warning reported on WinXP_BCB6_Pro_Dynamic_Debug
+
+Thu Jun 9 09:31:28 2005 Simon McQueen <sm@prismtech.com>
+
+ * NEWS:
+
+ Updated with late release note submissions.
+
+Wed Jun 08 08:50:35 2005 Simon McQueen <sm@prismtech.com>
+
+ * CIAO version 0.4.6 released.
+
+Wed Jun 8 11:21:50 2005 Simon McQueen <sm@prismtech.com>
+
+ * NEWS:
+
+ Updated with release note entries.
+
+Mon Jun 6 12:33:16 2005 Simon McQueen <sm@prismtech.com>
+
+ * DAnCE/examples/Display/GPS/GPS.mpc:
+
+ Added HUDisplay_DnC_svnt to after tag for project GPS_DnC_svnt
+ to fix build error on BCB 6 dynamic build.
+
+
+Thu Jun 2 22:56:11 UTC 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/examples/Quoter/README.html
+
+ Added a link to the CoSMIC quoter tutorial page hosted by
+ Ming Xiong.
+
+ * NEWS
+
+ Updated NEWS file.
+
+Tue May 31 22:46:06 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ExecutorMappingGenerator.cpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/TypeNameEmitter.cpp:
+
+ Eliminated unused arguments.
+
+Mon May 30 15:22:16 2005 Emre Turkay <turkaye@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/XML_File_Intf.h:
+ * DAnCE/Config_Handlers/DP_Handler.h:
+
+ auto_ptr is changed with ACE_Auto_Ptr, auto_ptr does not have
+ reset in VC6.
+
+Mon May 30 17:59:28 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/TypeNameEmitter.cpp:
+
+ Fixed incorrect code generation in *_svnt.cpp file for
+ attribute assignment of sequence types. Thanks to Sunil Rottoo
+ <srottoo@adacelcanada.com> for reporting the problem.
+
+Mon May 30 12:19:42 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/Port_Activator_T.cpp:
+ * DAnCE/ciao/Servant_Activator.cpp:
+ * DAnCE/ciao/Servant_Impl_Base.cpp:
+
+ Made use of ACE_ENV macros to fix Debian Full Reactor
+ build errors.
+
+Fri May 27 23:35:23 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/Container_Impl.cpp:
+ * DAnCE/ciao/Container_Impl.h:
+ * DAnCE/ciao/Home_Servant_Impl_T.cpp:
+ * DAnCE/ciao/Home_Servant_Impl_T.h:
+
+ Changed the structure of the utility maps that maintain
+ the component references, to use "_var" instead of "_ptr"
+ in order to facilitate effective memory destructions.
+
+Fri May 27 20:26:33 2005 Emre Turkay <turkaye@dre.vanderbilt.edu>
+
+ * CCF/CCF/CCF.sln:
+ * CCF/Example/Example.sln:
+ * CIDLC/CIDLC.sln:
+ * CCF/CCF/CIDL/CIDL.vcproj:
+ * CCF/CCF/CodeGenerationKit/CodeGenerationKit.vcproj:
+ * CCF/CCF/CompilerElements/CompilerElements.vcproj:
+ * CCF/CCF/IDL2/IDL2.vcproj:
+ * CCF/CCF/IDL3/IDL3.vcproj:
+ * CCF/Example/CIDL/LocalExecutorMapping/LocalExecutorMapping.vcproj:
+ * CCF/Example/CodeGenerationKit/Indentation/IDL/IDL.vcproj:
+ * CIDLC/CIDLC.vcproj:
+
+ Deleted MSVC solution and project files, these are generated by the
+ mwc.
+
+Fri May 27 13:41:20 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/Port_Activator.h:
+ * DAnCE/ciao/Port_Activator_T.cpp:
+ * DAnCE/ciao/Port_Activator_T.h:
+ * DAnCE/ciao/Servant_Activator.cpp:
+ * DAnCE/ciao/Servant_Impl_Base.cpp:
+
+ Added support for deactivating facets and event consumers
+ when a component is getting deactivated. This fixes
+ couple of memory leaks in the DAnCE deployment scenarios.
+
+
+Thu May 26 22:55:26 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/Servant_Impl_Base.cpp:
+
+ Added code to deactivate facets when component
+ is getting removed.
+
+Thu May 26 20:41:04 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/Home_Servant_Impl_T.cpp:
+ * DAnCE/ciao/Servant_Impl_Base.cpp:
+ * DAnCE/ciao/Servant_Impl_T.cpp:
+ * DAnCE/ciao/Servant_Impl_T.h:
+
+ Added support for the component servants to inherit
+ from RefCountServantBase, to allow freeing up of
+ servants in a more standard and effective manner.
+
+ Added support functions in Servant_Impl_T class to
+ clean up the component executor memory.
+
+ Added support functions in Home_Servant_Impl_T and
+ Servant_Impl_Base classes to uninstall components
+ by executing operations like ccm_remove () in the
+ right order.
+
+ Finally fixed couple of memory leaks with respect
+ to cleaning up component servants and component
+ executors.
+
+ Thanks to Steve Baker <Steve_D_Baker@Raytheon.com>
+ for reporting the problem.
+
+Thu May 26 21:09:22 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * tools/Simple_Component_Server/Simple_Component_Server.mpc
+
+ Put an empty IDL_Files segment in the
+ "Simple_Component_Server" project so the IDL
+ file is not picked up automatically. Thanks to Will Chai
+ <willchai@126.com> for reporting this.
+
+ * NEWS
+ * DAnCE/NEWS
+
+ Merged these two files and deleted the DAnCE/NEWS file,
+ since these two files serve similar purposes.
+
+Thu May 26 14:46:53 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeManager/NodeDaemon_Impl.cpp
+
+ Fixed a memory leak which would cause NodeManagers to leak
+ when destroyed.
+
+Thu May 26 07:53:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/examples/Quoter/Broker/Broker.cpp:
+ Fixed doxygen file tag
+
+Wed May 25 11:05:05 2005 Ming Xiong <mxiong@dre.vanderbilt.edu>
+
+ * DAnCE/examples/Quoter/Stock_Base/Stock_Base.mpc:
+ * DAnCE/examples/Quoter/Stock_Base/Stock_Base.idl:
+ * DAnCE/examples/Quoter/Stock_Base/Stock_Base_svnt_export.h:
+ * DAnCE/examples/Quoter/Stock_Base/Stock_Base_stub_export.h:
+ * DAnCE/examples/Quoter/Broker/Broker.mpc:
+ * DAnCE/examples/Quoter/Broker/Broker.idl:
+ * DAnCE/examples/Quoter/Broker/Broker.cidl:
+ * DAnCE/examples/Quoter/Broker/Broker.cpp:
+ * DAnCE/examples/Quoter/Broker/Broker_exec.h:
+ * DAnCE/examples/Quoter/Broker/Broker_exec.cpp:
+ * DAnCE/examples/Quoter/Broker/Broker_svnt_export.h:
+ * DAnCE/examples/Quoter/Broker/Broker_stub_export.h:
+ * DAnCE/examples/Quoter/Broker/Broker_exec_export.h:
+ * DAnCE/examples/Quoter/Distributor/Distributor.mpc:
+ * DAnCE/examples/Quoter/Distributor/Distributor.idl:
+ * DAnCE/examples/Quoter/Distributor/Distributor.cidl:
+ * DAnCE/examples/Quoter/Distributor/Distributor.cpp:
+ * DAnCE/examples/Quoter/Distributor/Distributor_exec.h:
+ * DAnCE/examples/Quoter/Distributor/Distributor_exec.cpp:
+ * DAnCE/examples/Quoter/Distributor/Distributor_svnt_export.h:
+ * DAnCE/examples/Quoter/Distributor/Distributor_stub_export.h:
+ * DAnCE/examples/Quoter/Distributor/Distributor_exec_export.h:
+ * DAnCE/examples/Quoter/descriptors/Broker.ccd:
+ * DAnCE/examples/Quoter/descriptors/Broker.cid:
+ * DAnCE/examples/Quoter/descriptors/Broker.cpd:
+ * DAnCE/examples/Quoter/descriptors/Broker_Exec.iad:
+ * DAnCE/examples/Quoter/descriptors/Broker_Stub.iad:
+ * DAnCE/examples/Quoter/descriptors/Broker_Svnt.iad:
+ * DAnCE/examples/Quoter/descriptors/Deployment.xsd:
+ * DAnCE/examples/Quoter/descriptors/Distributor.ccd:
+ * DAnCE/examples/Quoter/descriptors/Distributor.cid:
+ * DAnCE/examples/Quoter/descriptors/Distributor.cpd:
+ * DAnCE/examples/Quoter/descriptors/Distributor_Exec.iad:
+ * DAnCE/examples/Quoter/descriptors/Distributor_Stub.iad:
+ * DAnCE/examples/Quoter/descriptors/Distributor_Svnt.iad:
+ * DAnCE/examples/Quoter/descriptors/Domain.cdd:
+ * DAnCE/examples/Quoter/descriptors/flattened_deploymentplan.cdp:
+ * DAnCE/examples/Quoter/descriptors/Libraries.iad:
+ * DAnCE/examples/Quoter/descriptors/Modified_Deployment.xsd:
+ * DAnCE/examples/Quoter/descriptors/package.tpd:
+ * DAnCE/examples/Quoter/descriptors/runNodeDaemons.pl:
+ * DAnCE/examples/Quoter/descriptors/Stock.cdp:
+ * DAnCE/examples/Quoter/descriptors/Stock.cid:
+ * DAnCE/examples/Quoter/descriptors/Stock.cpd:
+ * DAnCE/examples/Quoter/descriptors/Stock.dat:
+ * DAnCE/examples/Quoter/descriptors/Stock.pcd:
+ * DAnCE/examples/Quoter/descriptors/XMI.xsd:
+
+ Added a Quoter example for DAnCE
+
+Wed May 25 11:13:19 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/Servant_Impl_Base.cpp:
+
+ Added code to call ccm_remove () on the executor
+ before removing the component.
+
+ Thanks to Steven Baker <Steven_D_Baker@raytheon.com> for
+ identifying the problem.
+
+Wed May 25 10:52:39 2005 Cassia Tatibana <cassia@dre.vanderbilt.edu>
+
+ * DAnCE/examples/Display/HUDisplay.idl:
+ * DAnCE/examples/Display/HUDisplay.mpc:
+ * DAnCE/examples/Display/HUDisplay_stub_export.h:
+ * DAnCE/examples/Display/HUDisplay_svnt_export.h:
+ * DAnCE/examples/Display/README.html:
+ * DAnCE/examples/Display/GPS/GPS.cidl:
+ * DAnCE/examples/Display/GPS/GPS.idl:
+ * DAnCE/examples/Display/GPS/GPS.mpc:
+ * DAnCE/examples/Display/GPS/GPSEI.idl:
+ * DAnCE/examples/Display/GPS/GPS_exec.cpp:
+ * DAnCE/examples/Display/GPS/GPS_exec.h:
+ * DAnCE/examples/Display/GPS/GPS_exec_export.h:
+ * DAnCE/examples/Display/GPS/GPS_stub_export.h:
+ * DAnCE/examples/Display/GPS/GPS_svnt_export.h:
+ * DAnCE/examples/Display/GPS/GPS_tracing_exec.cpp:
+ * DAnCE/examples/Display/GPS/GPS_tracing_exec.h:
+ * DAnCE/examples/Display/NavDisplay/NavDisplay.cidl:
+ * DAnCE/examples/Display/NavDisplay/NavDisplay.idl:
+ * DAnCE/examples/Display/NavDisplay/NavDisplay.mpc:
+ * DAnCE/examples/Display/NavDisplay/NavDisplay_exec.cpp:
+ * DAnCE/examples/Display/NavDisplay/NavDisplay_exec.h:
+ * DAnCE/examples/Display/NavDisplay/NavDisplay_exec_export.h:
+ * DAnCE/examples/Display/NavDisplay/NavDisplay_stub_export.h:
+ * DAnCE/examples/Display/NavDisplay/NavDisplay_svnt_export.h:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/AddNavUnitCmd.cpp:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/AddNavUnitCmd.h:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/Command.h:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/DetailView.cpp:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/DetailView.h:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/DetailView_moc.cpp:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/MapView.cpp:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/MapView.h:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/MapView_moc.cpp:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.cpp:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.h:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec_exec_export.h:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec_export.h:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec_stub_export.h:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec_svnt_export.h:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/NavDisplayGUI_stub_export.h:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/NavDisplayGUI_svnt_export.h:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/NavUnit.cpp:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/NavUnit.h:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/NodeItem.cpp:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/NodeItem.h:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/NodeItem_moc.cpp:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/QuitCmd.cpp:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/QuitCmd.h:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/RootPanel.cpp:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/RootPanel.h:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/RootPanel_moc.cpp:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/UpdatePositionCmd.cpp:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/UpdatePositionCmd.h:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/Worker.cpp:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/Worker.h:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/trolltech.gif:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/worldmap1.gif:
+ * DAnCE/examples/Display/NavDisplayGUI_exec/worldmap1.xpm:
+ * DAnCE/examples/Display/RateGen/RateGen.cidl:
+ * DAnCE/examples/Display/RateGen/RateGen.idl:
+ * DAnCE/examples/Display/RateGen/RateGen.mpc:
+ * DAnCE/examples/Display/RateGen/RateGen_exec.cpp:
+ * DAnCE/examples/Display/RateGen/RateGen_exec.h:
+ * DAnCE/examples/Display/RateGen/RateGen_exec_export.h:
+ * DAnCE/examples/Display/RateGen/RateGen_stub_export.h:
+ * DAnCE/examples/Display/RateGen/RateGen_svnt_export.h:
+ * DAnCE/examples/Display/RateGen/controller.cpp:
+ * DAnCE/examples/Display/descriptors/Deployment.xsd:
+ * DAnCE/examples/Display/descriptors/EM.ior:
+ * DAnCE/examples/Display/descriptors/GPS.ior:
+ * DAnCE/examples/Display/descriptors/Modified_Deployment.xsd:
+ * DAnCE/examples/Display/descriptors/NavDisplay.ior:
+ * DAnCE/examples/Display/descriptors/NavDisplayGUI.ior:
+ * DAnCE/examples/Display/descriptors/NodeManagerMap.dat:
+ * DAnCE/examples/Display/descriptors/RateGen.ior:
+ * DAnCE/examples/Display/descriptors/XMI.xsd:
+ * DAnCE/examples/Display/descriptors/basicNodeDaemon.pl:
+ * DAnCE/examples/Display/descriptors/flattened_deploymentplan.cdp:
+
+ Ported the Display example in CIAO to DAnCE.
+
+Tue May 24 22:23:48 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/examples/Hello/step-by-step.html
+
+ Fixed a typo in the command line option. Thanks to Will Chai
+ <willchai@126.com> for reporting this.
+
+Tue May 24 00:23:26 2005 Emre Turkay <turkaye@dre.vanderbilt.edu>
+
+ * CCF/CCF/CIDL/CIDL.mpc:
+ * CCF/CCF/CodeGenerationKit/CodeGenerationKit.mpc:
+ * CCF/CCF/CompilerElements/CompilerElements.mpc:
+ * CCF/CCF/IDL2/IDL2.mpc:
+ * CCF/CCF/IDL3/IDL3.mpc:
+
+ Changed the mpc files to use the cidlc.mpb.
+
+Sun May 22 21:23:48 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/ciao/Swapping_Servant_Home_Impl_T.cpp
+
+ Modified the operation from <_ciao_passivate> to <ciao_passivate>
+ due to my earlier interface changes.
+
+Sun May 22 11:29:36 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/Container_Base.cpp:
+
+ Fixed a memory leak in the container code to
+ delete the ServantActivator pointer.
+
+Sat May 21 16:08:48 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/ciao/Deployment_Core.idl
+
+ Added <ciao_passivate> operation on the NodeApplication interface,
+ which is useful for enforce the correct component deactivation
+ sequence.
+
+ * DAnCE/ciao/Deployment.idl
+
+ Moved the StopError exception definition and put into the
+ Deployment_Core.idl, since <ciao_passviate> operation needs
+ such exception declaration.
+
+ * DAnCE/ciao/CCM_Component.idl
+
+ Added <ciao_passivate> operation to the CCM_Object interface.
+
+ * DAnCE/ciao/NodeApplication_Impl.cpp
+ * DAnCE/ciao/NodeApplication_Impl.h
+
+ Implementation of the above added operation <ciao_passivate>.
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+
+ Modified to call <ciao_passivate> before calling <destroyApplication>.
+
+ * DAnCE/RepositoryManager/Repository_Manager.cpp
+
+ Modified the Repository_Manager/executor to invoke <start>
+ separately from invoking finishLaunch.
+
+ * DAnCE/ciao/Servant_Impl_Base.cpp
+
+ Removed the call of <ciao_passivate> from the
+ Servant_Impl_Base::remove() function since this will be
+ called separately on the whole assembly, i.e. passivate ALL
+ components in the assembly before removing components.
+
+ * DAnCE/ciao/Servant_Impl_T.cpp
+ * DAnCE/ciao/Servant_Impl_T.h
+
+ Changed the operation name from "_ciao_passivate" to
+ "ciao_passivate", in order to make it to be the implementation
+ of the <ciao_passivate> operation added on the CCM_Object
+ interface.
+
+Sat May 21 14:39:48 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/ciao/Deployment_Core.idl
+
+ Added <ciao_preactivate> and <ciao_postactivate>
+ operations on the NodeApplication interface, which is useful
+ for enforce the correct component activation operation
+ sequence.
+
+ * DAnCE/ciao/NodeApplication_Impl.cpp
+ * DAnCE/ciao/NodeApplication_Impl.h
+
+ Implemented the above operations.
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h
+
+ Modified it to call ciao_preactivate and ciao_postactivate
+ on NodeApplications accordingly
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.cpp
+
+ Modified to disable the "start" while "finishLaunch", since
+ it is the application developer's control to invoke start
+ operation in the whole assembly.
+
+ * DAnCE/ciao/Container_Base.cpp
+ * DAnCE/ciao/Container_Impl.cpp
+
+ Put some debug output into the CIAO_DebugLevel control
+
+ * DAnCE/examples/Hello/Sender/Sender_exec.cpp
+
+ Cosmetic changes.
+
+Tue May 17 20:49:48 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tests/IDL3/ImpliedIDL/All/all.mpc:
+ * tests/IDL3/ImpliedIDL/All/convert.idl:
+ * tests/IDL3/ImpliedIDL/All/pass_through.idl:
+ * tests/IDL3/ImpliedIDL/All/include.idl:
+ * tests/IDL3/ImpliedIDL/All/README:
+
+ New files comprising a test for the tao_idl3_to_idl2
+ executable. The test executes tao_idl3_to_idl2 on the
+ listed IDL files, then executes the TAO IDL compiler on
+ the resulting IDL files. The resulting C++ code is compiled,
+ and if there are no errors or warnings in this last step,
+ the test is a success.
+
+Tue May 17 07:51:47 2005 Ossama Othman <ossama@dre.vanderbilt.edu>
+
+ * DAnCE/Old_Config_Handlers/Process_Element.h:
+ * DAnCE/Old_Config_Handlers/Process_Element.cpp:
+
+ Fixed unresolved symbol link error.
+
+Mon May 16 21:29:49 2005 Ossama Othman <ossama@dre.vanderbilt.edu>
+
+ * DAnCE/Old_Config_Handlers/Process_Element.cpp:
+ * DAnCE/ciao/Home_Servant_Impl_T.cpp (remove_component):
+
+ Fixed syntax errors.
+
+Mon May 16 12:06:51 2005 Ossama Othman <ossama@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/XSCRT/Elements.hpp (~IndentityProvider):
+ * DAnCE/Old_Config_Handlers/Process_Element.h (Process_Function):
+ * DAnCE/Old_Config_Handlers/Process_Element.cpp
+ (~Process_Function):
+ * tests/RTCCM/Priority_Test/Controllers/Pulser.h (Pulse_Handler):
+ * tests/RTCCM/Priority_Test/Controllers/Pulser.cpp
+ (~Pulse_Handler):
+
+ Added missing virtual destructor. Fixes g++ 4.0 "class with
+ virtual functions but no virtual destructor" warnings.
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.cpp (mode):
+
+ Fixed "non-local variable uses anonymous type" g++ 4.0 warning.
+
+ * DAnCE/ciao/Home_Servant_Impl_T.cpp (remove_component):
+ * tools/RTComponentServer/RTConfig_Manager.cpp
+ (find_threadpool_by_name):
+ * tools/XML_Helpers/RTConfig_Handlers.cpp (add_threadpoollane):
+ (add_priorityband):
+
+ Fixed "variable may be used uninitialized" warnings.
+
+ * tools/Assembly_Deployer/Assembly_Deployer.cpp
+ (teardown_assembly):
+
+ Fixed format specifier mismatch.
+
+Mon May 16 11:27:30 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIAO-INSTALL.html:
+
+ Added line to table about availability of binaries for MacOS
+ and Solaris.
+
+Sat May 14 06:12:44 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIAO version 0.4.5 released.
+
+Thu May 12 10:20:55 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu>
+
+ * Updated the COPYING file to clarify some ambiguity about
+ proprietary usage of CIAO.
+
+Tue May 10 21:12:47 2005 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * docs/releasenotes/dance.html: Updated this page to clearly
+ point out which OMG D&C specification DAnCE implements.
+ Thanks to Gary Duzan <gduzan@bbn.com> for requesting this.
+
+Tue May 10 07:49:47 2005 Douglas C. Schmidt <schmidt@cs.wustl.edu>
+
+ * DAnCE/examples/Hello/descriptors: Changed the name of
+ ruNodeDaemons.pl to run_NodeDaemons.pl. Thanks to Arno Wilhelm
+ <arno.wilhelm@profile.co.at> for reporting this.
+
+Sun May 8 11:07:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/CIDL/CodeGen/CodeGen.mpc:
+ Removed requires+=cidl
+
+Sat May 7 19:53:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/tests/NodeApplicationTest/NodeAppTest.mpc:
+ Removed requires+=cidl for the NodeAppTest_RoundTrip_svnt project.
+ It should not be there. Thanks for Jaiganesh B
+ <jai@dre.vanderbilt.edu> for finding out that this caused the
+ problems in the gcc4 build
+
+Fri May 6 08:15:43 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * DAnCE/tests/NodeApplicationTest/NodeAppTest.mpc:
+
+ Changed base project lists and added explicit lists (sometimes
+ empty) for header and inline files.
+
+Wed May 4 19:27:01 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.cpp:
+
+ Fixed typo in generated code - changed "provides_" prefix
+ in component facet access operation to the correct
+ "provide_". Thanks to Don Busch <busch_d@ociweb.com> for
+ pointing out the mistake.
+
+Tue May 03 22:42:47 2005 Nanbor Wang <nanbor@gauss.txcorp.com>
+
+ * NEWS: Updated news on upcoming real-time extension on Gan Deng's
+ behalf.
+
+Tue May 3 13:05:44 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Changed the generated string (used for object id) which is passed
+ to the port activator constructor and to generate_reference() to
+ be a concatentation of the component instance name and the port
+ name, to ensure uniqueness in any use case.
+
+Mon May 2 07:19:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/RTComponentServer/RTConfig_Manager.cpp:
+ * tools/Assembly_Deployer/Assembly_Impl.cpp:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ * DAnCE/DomainApplicationManager/Deployment_Configuration.cpp:
+ * DAnCE/ciao/Swapping_Servant_Home_Impl_T.cpp:
+ * DAnCE/ciao/Dynamic_Component_Servant_T.cpp:
+ Fixed gcc 4 warnings
+
+Sat May 1 03:11:17 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * ciao/tools/Simple_Component_Server/Simple_Component_Server.cpp:
+
+ Made a change to fix compile errors.
+
+Sat Apr 30 20:02:10 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * ciao/Container_Impl.cpp:
+
+ Made a change to fix compile errors.
+
+Sat Apr 30 09:58:05 2005 Jaiganesh Balasubramanian <jai@dre.vanderbilt.edu>
+
+ * ciao/Container_Base.cpp:
+ * ciao/Container_Base.h:
+ * ciao/Home_Servant_Impl_T.cpp:
+ * ciao/Home_Servant_Impl_T.h:
+
+ Made changes to the old CIAO infrastructure to support
+ passing and storing of the component instance name from the
+ descriptor XML file and into the component instance.
+
+Thu Apr 28 14:50:05 2005 Jaiganesh Balasubramanian <jai@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/Dynamic_Component_Servant_T.cpp:
+ * DAnCE/ciao/Dynamic_Component_Servant_T.h:
+ * DAnCE/ciao/Swapping_Servant_Home_Impl_T.cpp:
+ * DAnCE/ciao/Swapping_Servant_Home_Impl_T.h:
+
+ Made changes to the CIAO infrastructure that allows the
+ swapping capability to make use of the component instance
+ name when we create object references.
+
+Wed Apr 27 11:15:12 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * DAnCE/ciao/Container_Base.cpp:
+ * DAnCE/ciao/Container_Base.h:
+ * DAnCE/ciao/Container_Impl.cpp:
+ * DAnCE/ciao/Deployment_Core.idl:
+ * DAnCE/ciao/Home_Servant_Impl_T.cpp:
+ * DAnCE/ciao/Home_Servant_Impl_T.h:
+ * DAnCE/ciao/Servant_Impl_Base.cpp:
+ * DAnCE/ciao/Servant_Impl_Base.h:
+
+ Some cosmetic changes and changes by Jaiganesh Balasubramanian
+ <jai@dre.vanderbilt.edu> to support the passing and storing of
+ the component instance name (from the descriptor XML file) in
+ the component instance. Also removed the gen_UUID() static
+ method from class Servant_Impl_Base, since it is no longer
+ used.
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Changes to servant code generation corresponding with the
+ changes above.
+
+Tue Apr 26 18:14:01 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * docs/releasenotes/index.html:
+
+ Updated CIDL compiler documentation, and added item about the
+ existing IDL3-to-IDL2 coverter.
+
+ * tools/IDL3_to_IDL2/README:
+
+ Updated documentation file.
+
+Tue Apr 26 11:34:52 2005 Nanbor Wang <nanbor@tesla.txcorp.com>
+
+ * docs/schema/CIAOServerResources.xsd: Changed some of the XML
+ element and type names to be more consistent with the rest of
+ RTCORBA spec that the following new IDL file follows.
+
+ * DAnCE/ciao/ServerResources.idl: First cut of server
+ configuration information set in IDL.
+
+Mon Apr 25 11:07:28 2005 Jaiganesh Balasubramanian <jai@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/Container_Base.cpp:
+
+ Fixed compiler warnings in the Debian Full_Reactor build.
+
+Sun Apr 24 02:47:22 2005 Jaiganesh Balasubramanian <jai@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/Container_Base.cpp:
+ * DAnCE/ciao/Container_Base.h:
+ * DAnCE/ciao/Swapping_Container.cpp:
+ * DAnCE/ciao/Swapping_Container.h:
+
+ Made changes to fix compile errors.
+
+Sat Apr 23 13:54:10 2005 Jaiganesh Balasubramanian <jai@dre.vanderbilt.edu>
+
+ * DAnCE/example/Swapping/Sender/Sender_exec_1.cpp:
+
+ Made a modification to the example to reflect changes made
+ in the infrastructure code.
+
+Sat Apr 23 13:43:22 2005 Jai Balasubramanian <jai@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/Container_Base.cpp:
+ * DAnCE/ciao/Servant_Impl_Base.cpp:
+ * DAnCE/ciao/UpgradeableContext.idl:
+ * DAnCE/ciao/Upgradeable_Context_Impl_T.cpp:
+ * DAnCE/ciao/Upgradeable_Context_Impl_T.h:
+
+ Made some changes to the CIAO infrastructure to efficiently
+ handle updating the facets when the component is swapped.
+
+Thu Apr 21 18:10:13 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * DAnCE/examples/Hello/Hello_Base/Hello_Base.idl:
+ * DAnCE/examples/HelloHello_Base/Hello_Base.mpc:
+ * DAnCE/examples/HelloReceiver/Receiver.idl:
+ * DAnCE/examples/HelloReceiver/Receiver.mpc:
+ * DAnCE/examples/HelloSender/Sender.idl:
+ * DAnCE/examples/HelloSender/Sender.mpc:
+
+ Made cosmetic changes to all files, and added explicit
+ specification of header and inline files in MPC
+ projects. Also added -Sc command line option to the
+ IDL compiler, to suppress generation of the TIE
+ classes.
+
+Thu Apr 21 17:40:12 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CCF/CCF/CIDL/Traversal/Elements.cpp:
+ * CCF/CCF/IDL3/Traversal/EventType.cpp:
+
+ Removed these files, since they contain nothing but
+ empty namespaces.
+
+ * CCF/CCF/CIDL/CIDL.vcproj:
+ * CCF/CCF/IDL3/IDL3.vcproj:
+
+ Removed the above files from the appropriate projects.
+
+Thu Apr 21 14:31:21 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/ExecutionManager.mpc:
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc:
+
+ Changes to eliminate some warnings in the Debian LInux build.
+
+Thu Apr 21 09:06:58 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * Added UUID generation for the object id when creating
+ event consumers, similar to that already added for facets.
+ This change eliminates the error of repeated connection
+ to the same event consumer instance when multiple
+ instances and connections are intended. Thanks to
+ Steve Baker <steven_d_baker@raytheon.com> for reporting
+ the problem.
+
+Thu Apr 21 09:04:32 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/examples/Hello/descriptors/TestNodeManagerMap.dat
+ * DAnCE/examples/Hello/descriptors/run_test.pl
+
+ Added a NodeManagerMap specific to the test and changed the ports
+ that the node managers invoked by the test listen on to avoid
+ test failures.
+
+Wed Apr 20 16:14:26 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * docs/schema/CIAOServerResources.xsd
+
+ Fixed syntax and semantic errors.
+
+Wed Apr 20 12:43:53 2005 Emre Turkay <turkaye@dre.vanderbilt.edu>
+
+ * DAnCE/examples/Hello/descriptors/run_test.pl:
+
+ Not all the test platforms has CIAO_ROOT environment variable
+ defined. Changed that dependency to ACE_ROOT in the script.
+
+Wed Apr 20 13:11:28 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Added full scoping to a generated method call on
+ Servant_Impl_Base, to eliminate a warning from the
+ Borland compiler.
+
+Wed Apr 20 13:05:23 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/Basic_Deployment_Data.cpp
+ * DAnCE/RepositoryManager/Update_Plan.cpp
+
+ Fixed compile errors in Borland.
+
+Wed Apr 20 08:09:17 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/Servant_Impl_T.cpp
+
+ Fixed a compile error with emulated exceptions.
+
+Wed Apr 20 08:03:23 2005 CDT Will Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/DP_Handler.cpp
+
+ Silenced some compile errors in VC6.
+
+Tue Apr 19 23:41:02 2005 CDT Will Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/XML_File_Intf.cpp
+
+ Silenced some compile errors in VC6.
+
+Tue Apr 19 16:46:00 2005 CDT Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * CIAO-INSTALL.html
+
+ Fixed this page to direct people where to download CIDLC.
+
+Tue Apr 19 17:33:55 2005 Nanbor Wang <nanbor@tesla.txcorp.com>
+
+ * docs/schema/ServerResourceUsage.txt:
+ * docs/schema/CIAOServerResources.xsd: Added the first draft
+ schema for DAnCE RT extension, and a file to document how I
+ foresee the extension can be used.
+
+Tue Apr 19 12:16:00 2005 CDT Will Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/IDREF_Base.h
+
+ Fixed a compile error on VC71.
+
+Mon Apr 18 12:50:51 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Added '.in ()' to some _var type arguments in generated code.
+
+Mon Apr 18 08:38:14 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Changed all instances of 'FALSE' to 'false'.
+
+Sun Apr 17 21:57:52 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Removed unnecessary _narrow() and local variable from generated
+ event push operations.
+
+Sun Apr 17 16:05:57 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/examples/Swapping/Sender/Sender_exec_1.cpp
+ * DAnCE/examples/Swapping/Sender/Sender_exec_2.cpp
+
+ Fixed a compile error on platforms using emulated exceptions.
+
+Sun Apr 17 12:46:51 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * ciao/CCM_Event.idl:
+ * DAnCE/ciao/CCM_Event.idl:
+
+ Added operation ciao_is_substitutable() to EventConsumerBase,
+ so we can check if there is an inheritance relationship
+ when a base class event consumer is passed to the subscribe()
+ operation for a derived eventtype. Thanks to Boris Kolpackov
+ <boris@dre.vanderbilt.edu> for suggesting this approach.
+
+ * CIDLC/Literals.cpp:
+
+ Cosmetic changes.
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Added code generation to take advantage of the new
+ EventConsumerBase operation described above.
+
+Sat Apr 16 20:17:38 2005 Emre Turkay <turkaye@dre.vanderbilt.edu>
+
+ * DAnCE/examples/Hello/descriptors/run_test.pl:
+
+ Fixed some perl errors.
+
+Sat Apr 16 18:31:40 2005 CDT Will Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/ExecutionManager.mpc
+
+ Removed typecodefactory fromt the base projects.
+
+Sat Apr 16 17:24:40 2005 Emre Turkay <turkaye@dre.vanderbilt.edu>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.cpp:
+
+ Added a missing include file.
+
+Sat Apr 16 17:22:42 2005 Emre Turkay <turkaye@dre.vanderbilt.edu>
+
+ * DAnCE/examples/Hello/descriptors/run_test.pl:
+
+ Added code to ensure killing open processes on failure.
+
+Sat Apr 16 16:38:09 2005 Emre Turkay <turkaye@dre.vanderbilt.edu>
+
+ * DAnCE/examples/Hello/descriptors/run_test.pl:
+
+ Added perl script running all the steps for deploying an application.
+
+Sat Apr 16 16:10:10 2005 Emre Turkay <turkaye@dre.vanderbilt.edu>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.cpp:
+
+ Added two command line options to plan_launcher to easily use in
+ scripts. Now the launch and destruction of the application can be
+ done in two steps.
+
+Sat Apr 16 15:00:31 2005 Emre Turkay <turkaye@dre.vanderbilt.edu>
+
+ * DAnCE/examples/Hello/step-by-step.html:
+
+ Fixed typo on the documentation.
+
+Fri Apr 15 12:54:46 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/Req_Handler.h
+
+ Fixed a compile error on builds using -pendantic.
+
+Fri Apr 15 10:46:56 CDT 2005 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/Container_Impl.cpp
+
+ Added a condition to check whether call standard configurator.
+
+ * DAnCE/RepositoryManager/Repository_Manager.cpp
+
+ Modified to make it work by using ORBDebugLevel.
+
+ * DAnCE/examples/Hello/Sender/Sender_exec.cpp
+
+ Fixed a warning message.
+
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_simple.cpp
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_ex.cpp
+
+ This should fix the warning message on Dynamic_Hash_Op_Lookup
+ build.
+
+Thu Apr 14 10:54:56 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/Swapping_Servant_Home_Impl_T.cpp
+
+ Fixed a warning due to ambiguous conversion.
+
+Thu Apr 143 10:21:58 2005 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DAnCE/examples/Hello/Sender/Sender.idl
+ * DAnCE/examples/Hello/Sender/Sender_exec.cpp
+ * DAnCE/examples/Hello/Sender/Sender_exec.h
+ * DAnCE/examples/Hello/Sender/starter.cpp
+ * DAnCE/examples/Hello/descriptors/Hello.cid
+ * DAnCE/examples/Hello/descriptors/Receiver.cid
+ * DAnCE/examples/Hello/descriptors/Sender.cid
+
+ Modified the Hello example to showcase the feature of setting
+ attributes through XML. "string" and "long" type attributes
+ are put into the test.
+
+ * DAnCE/ciao/Container_Impl.cpp
+
+ Cleaned up a little bit.
+
+Thu Apr 14 10:14:44 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc
+
+ Added 'naming' to the list of base projects to fix a compile
+ error
+
+Thu Apr 14 02:02:13 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/Execution_Manager.cpp
+ * DAnCE/ciao/Context_Impl_T.cpp
+ * DAnCE/ciao/Dynamic_Component_Servant_Base.h
+ * DAnCE/ciao/Dynamic_Component_Servant_T.cpp
+ * DAnCE/ciao/Dynamic_Component_Servant_T.h
+ * DAnCE/ciao/Home_Servant_Impl_T.cpp
+ * DAnCE/ciao/Servant_Impl_T.cpp
+ * DAnCE/ciao/Swapping_Servant_Home_Impl_T.cpp
+ * DAnCE/ciao/Upgradeable_Context_Impl_T.cpp
+
+ Fixed a number of mistakes with emulated exceptions.
+
+Wed Apr 13 18:55:58 2005 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/CCM_Component.idl
+ * DAnCE/ciao/Container_Impl.cpp
+ * DAnCE/ciao/Servant_Impl_Base.cpp
+ * DAnCE/ciao/Servant_Impl_Base.h
+
+ Added support for configuring component attributes through
+ XML <configProperty> tags.
+
+ * DAnCE/RepositoryManager/Update_Plan.cpp
+ * DAnCE/RepositoryManager/Update_Plan.h
+
+ Fixed to make sure correct component attributes are
+ populated. Thanks Jai <jai@dre.vanderbilt.edu> for the fix.
+
+Wed Apr 13 15:14:58 2005 Emre Turkay <turkaye@dre.vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/ExecutionManager.mpc:
+ * DAnCE/NodeApplication/NodeApplication.mpc:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc:
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc:
+
+ Deleted typecodefactory base project to the mpc files.
+
+Wed Apr 13 11:39:58 2005 Emre Turkay <turkaye@dre.vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/ExecutionManager.mpc:
+ * DAnCE/NodeApplication/NodeApplication.mpc:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc:
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc:
+
+ Added typecodefactory base project to the mpc files.
+
+Tue Apr 12 17:12:35 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * DAnCE/ciao/Servant_Impl_Base.cpp:
+ * DAnCE/ciao/Servant_Impl_Base.h:
+ * ciao/Servant_Impl_Base.cpp:
+ * ciao/Servant_Impl_Base.h:
+
+ Added a static method to generate a UUID. This method is
+ called by the generated servant class to create unique
+ object ids for port object references. Thanks to Steve
+ Baker <steven_d_baker@raytheon.com> for reporting the
+ problem of connecting to facets on multiple instances
+ of the same component type.
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Changed code generation for provide_*_i() to use the
+ new method described above.
+
+Tus Apr 12 16:04:21 2005 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DAnCE/Old_Config_Handlers/IAD_Handler.cpp
+
+ Modified to ignore the <dependsOn> tag, since this might
+ cause a problem where multiple _svnt or multiple _exec
+ libraries to be specified as implArtifacts of a component
+ type.
+
+Tue Apr 12 14:35:58 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * CIAO-INSTALL.html
+
+ Updated to include Xerces information. Also cleaned up the
+ file a bit and made it XHTML compliant.
+
+Tue Apr 12 11:56:26 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/Dynamic_Component_Activator.cpp
+ * DAnCE/ciao/Servant_Activator.cpp
+ * DAnCE/ciao/Servant_Impl_Base.cpp
+
+ Fixed some more compile errors with emulated exceptions.
+
+Tue Apr 12 11:11:41 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/Servant_Impl_Base.cpp
+
+ Fixed some compile errors with emulated exceptions.
+
+Mon Apr 11 23:54:21 2005 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/ImplementationInfo.cpp
+
+ Fixed a bug where multiple "_svnt" and "_exec" libs for
+ a given MonolithicDeploymentDescription could cause
+ chaos while pupulating ImplementationInfo stuct. This
+ fix now only consides the first "_svnt" and "_exec"
+ libs, and ignore remaining ones. A better solution will
+ be enforcing any MonolithicDeploymentDescription could
+ only have exactly one _svnt and one _exec lib. This
+ will be achieved through the flattened deployment plan.
+
+Mon Apr 11 17:56:22 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc:
+ * DAnCE/ExecutionManager/ExecutionManager.mpc:
+ * DAnCE/NodeApplication/NodeApplication.mpc:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc:
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc:
+
+ Added typecodefactory to the list of project files.
+
+Mon Apr 11 13:43:47 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.cpp
+
+ Corrected the ExecutionManager narrow operation.
+
+Mon Apr 11 08:29:50 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * DAnCE/ciao/Container_Impl.cpp:
+ * DAnCE/ciao/Dynamic_Component_Activator.cpp:
+ * DAnCE/ciao/Dynamic_Component_Activator.h:
+ * DAnCE/ciao/NodeApplication_Impl.cpp:
+ * DAnCE/ciao/NodeApplication_Impl.h:
+ * DAnCE/ciao/Swapping_Container.cpp:
+ * DAnCE/ciao/Swapping_Container.h:
+
+ Fixed various glitches with environment variables, unused variables,
+ and ACE_TRY macros.
+
+Mon Apr 11 07:12:54 CDT 2005 Will Otte <wotte@dre.vanderbit.edu>
+
+ * DAnCE/Config_Handlers/Basic_Deployment_Data.hpp
+
+ Fixed a compile error.
+
+Sun Apr 10 18:44:22 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/Basic_Deployment_Data.cpp
+ * DAnCE/Config_Handlers/Basic_Deployment_Data.hpp
+ * DAnCE/Config_Handlers/ccd.cpp
+ * DAnCE/Config_Handlers/ccd.hpp
+
+ Regenerated the handlers to reflect the changes in the previous
+ commit.
+
+Sat Apr 09 18:35:23 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * docs/schema/Basic_Deployment_Data.xsd
+ * docs/schema/ccd.xsd
+
+ Updated schemas to reflect changes made to Modified_Deployment
+ in conformance to the spec.
+
+Sat Apr 09 17:15:23 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc
+
+ Changed the after clause to point to the XSC_Config_Handlers
+ instad of the old config handlers.
+
+Sat Apr 09 23:59:40 2005 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/Deployment_Configuration.cpp
+
+ Fixed a bug where duplicated CORBALOC specified in the
+ NodeManagerMap could cause undetected exception. This fix
+ will allow such duplication IOR error to be detected explicitly
+ and error message will be printed out. Thanks Steve Baker
+ <Steven_D_Baker@raytheon.com> for report this bug.
+
+Fri Apr 8 14:30:52 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/cdp.cpp
+ * DAnCE/Config_Handlers/cdp.hpp
+
+ Regenerated handlers to reflect schema changes.
+
+ * docs/schema/cdp.xsd
+
+ Updated schema to allow 0 on the realizes element.
+
+Fri Apr 8 13:33:24 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Added backend support for attribute exceptions.
+
+Thu Apr 07 14:49:40 2005 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DAnCE/examples/Hello/descriptors/basicNodeDaemon.pl
+ * DAnCE/examples/Hello/descriptors/runNodeDaemons.pl
+
+ Removed the first file and added the second file since
+ the name of the first file doens't make any sense. These
+ two files are the same.
+
+ * DAnCE/examples/BasicSP/descriptors/flattern_deploymentplan.cdp
+ * DAnCE/examples/BasicSP/descriptors/flattened_deploymentplan.cdp
+
+ Removed the first file and added the second file since
+ the name of the first file contained a typo.
+
+ * DAnCE/examples/Hello/descriptor/Modified_Deployment.xsd
+
+ Changed the <deploymentPlan> tag to allow zero <realizes>
+ tag in the XML.
+
+ * DAnCE/Config_Handlers/DP_Handler.cpp
+ * DAnCE/Config_Handlers/cdp.cpp
+ * DAnCE/Config_Handlers/cdp.hpp
+
+ Modified handlers to accomodate the above change.
+
+ * DAnCE/examples/Hello/descriptors/flattened_deploymentplan.cdp
+
+ Added this file in, which is a flattened deployment plan for
+ for the Hello example. I will come back to remove the <realizes>
+ tag some time later since it is useless.
+
+ * DAnCE/examples/Hello/step-by-step.html
+
+ Bring the documentation page up to date.
+
+Wed Apr 06 11:12:40 2005 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DAnCE/examples/BasicSP/descriptors/flattern_deploymentplan.cdp
+
+ Cleaned this a little bit. Removed most <SupportedType> and
+ <port> tags from the <realizes> tag.
+
+Wed Apr 06 10:30:40 2005 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DAnCE/examples/BasicSP/descriptors/NodeManagerMap.dat
+
+ Modified virtual node names to make them more meaningful.
+
+ * DAnCE/examples/BasicSP/descriptors/DeploymentPlan.cdp
+
+ Added this file, which is a copy of the old HUDisplay.cdp
+ file. This is the old version deployment plan XML metadata.
+
+ * DAnCE/examples/BasicSP/descriptors/BasicSP.cdp
+ * DAnCE/examples/BasicSP/descriptors/HUDisplay.cdp
+
+ Removed these two files since they are redundant. The
+ former one now is "flattern_deploymentplan.cdp",
+ the latter one is "DeploymentPlan.cdp".
+
+ * DAnCE/examples/BasicSP/descriptors/flattern_deploymentplan.cdp
+
+ Fixed this file, which contains a invalid connection, i.e.,
+ connecting a EventPublisher to a SimplexReceptacle. The root
+ of this problem is that "data_read" is a Facet instead of
+ a EventPublisher.
+
+Tue Apr 05 19:29:40 2005 Gan Deng <dengg@dre.vanderbilt.edu>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc
+
+ Fixed project dependency.
+
+ * DAnCE/ciao/Container_Impl.cpp
+
+ Fixed a compilation error caused by specifying a
+ wrong exception name.
+
+ * DAnCE/examples/BasicSP/descriptors/NodeManagerMap.dat
+
+ Fixed a wrong string to specify the vitual node name.
+
+Tue Apr 5 14:37:16 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/Any_Handler.cpp
+
+ Updated Gary's fix to work in Borland 6.
+
+Tue Apr 5 14:13:10 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/Any_Handler.cpp
+
+ Incorporated a fix to the Any handler from Gary Duzan.
+
+Tue Apr 5 11:34:32 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/Basic_Deployment_Data.cpp
+ * DAnCE/Config_Handlers/Basic_Deployment_Data.hpp
+ * DAnCE/Config_Handlers/Deployment.cpp
+ * DAnCE/Config_Handlers/Deployment.hpp
+ * DAnCE/Config_Handlers/ccd.cpp
+ * DAnCE/Config_Handlers/ccd.hpp
+ * DAnCE/Config_Handlers/cdd.cpp
+ * DAnCE/Config_Handlers/cdd.hpp
+ * DAnCE/Config_Handlers/cdp.cpp
+ * DAnCE/Config_Handlers/cdp.hpp
+ * DAnCE/Config_Handlers/cid.cpp
+ * DAnCE/Config_Handlers/cid.hpp
+ * DAnCE/Config_Handlers/cpd.cpp
+ * DAnCE/Config_Handlers/cpd.hpp
+ * DAnCE/Config_Handlers/iad.cpp
+ * DAnCE/Config_Handlers/iad.hpp
+ * DAnCE/Config_Handlers/pcd.cpp
+ * DAnCE/Config_Handlers/pcd.hpp
+ * DAnCE/Config_Handlers/toplevel.cpp
+ * DAnCE/Config_Handlers/toplevel.hpp
+ * DAnCE/Config_Handlers/XMLSchema/Types.hpp
+
+ New version of the generated XSC handlers fixing the following problems:
+ - Use ACE_TCHAR instead of char as the character type
+ - Export macros for the generated classes.
+ - Borland 6 support
+ - Misc VC6 warnings.
+
+Sun Apr 3 23:52:50 CDT 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * examples/BasicSP/descriptors/flattern_deploymentplan.cdp
+
+ Fixed a mistake in the descriptor.
+
+Sun Apr 3 18:08:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Container_Base.h:
+ * ciao/ServerActivator_Impl.h:
+ Added missing include of ace/Hash_Map_Manager_T.h
+
+Sat Apr 02 13:12:40 2005 Nanbor Wang <nanbor@exothermic.txcorp.com>
+
+ * DAnCE/examples/BasicSP/README.html: Brought the documentation a
+ bit more up-to-date.
+
+Sat Apr 2 13:06:02 2005 Nanbor Wang <nanbor@exothermic.txcorp.com>
+
+ * DAnCE/ciao/Container_Base.cpp: Added more debug print out
+ statements in install_home method.
+
+Sat Apr 02 11:45:52 2005 Nanbor Wang <nanbor@exothermic.txcorp.com>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc:
+ * DAnCE/Plan_Launcher/Plan_Launcher.cpp: Merged from xsc_handler_1
+ branch. Added a missing break statement, otherwise, it will not
+ run.
+
+Thu Mar 31 20:31:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/ciao/NodeApplication_Impl.h:
+ * DAnCE/ciao/Container_Base.h:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h:
+ Added missing include of ace/Hash_Map_Manager_T.h
+
+Thu Mar 31 09:45:07 2005 Boris Kolpackov <boris@kolpackov.net>
+
+ * CCF/CCF/IDL2/LexicalAnalyzer.cpp:
+ * CCF/CCF/IDL2/Parser.cpp:
+ * CCF/CCF/IDL2/Parser.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Attribute.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Attribute.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Attribute.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Attribute.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Attribute.hpp:
+ * CCF/CCF/IDL2/Traversal/Attribute.cpp:
+ * CCF/CCF/IDL2/Traversal/Attribute.hpp:
+ * CIDLC/ExecutorMappingGenerator.cpp:
+
+ Added support for raises-specification in attributes.
+
+Wed Mar 30 21:48:14 2005 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * DAnCE/Config_Handlers/Deployment.hpp: Made the function
+ deploymentPlan an export function since it will be accessed
+ externally. The handler test program needed this change to
+ compile on Win32.
+
+ * DAnCE/Config_Handlers/Config_Handlers.mpc: Changed to source in
+ the Xerces library settings from the latest xerces MPC template
+ that Kitty suggested.
+
+ * DAnCE/Config_Handlers/Basic_Deployment_Data.hpp:
+ * DAnCE/Config_Handlers/ccd.hpp:
+ * DAnCE/Config_Handlers/cdd.hpp:
+ * DAnCE/Config_Handlers/cdp.hpp:
+ * DAnCE/Config_Handlers/cid.hpp:
+ * DAnCE/Config_Handlers/cpd.hpp:
+ * DAnCE/Config_Handlers/iad.hpp:
+ * DAnCE/Config_Handlers/pcd.hpp:
+ * DAnCE/Config_Handlers/toplevel.hpp:
+ * DAnCE/Config_Handlers/XMLSchema/Types.hpp:
+ * DAnCE/Config_Handlers/XSCRT/Elements.hpp:
+ * DAnCE/Config_Handlers/XSCRT/Parser.hpp:
+ * DAnCE/Config_Handlers/XSCRT/Traversal.hpp:
+ * DAnCE/Config_Handlers/XSCRT/Writer.hpp:
+ * DAnCE/Config_Handlers/XSCRT/XML.hpp: Changed all local include
+ files to use the right syntax. I.e., they should be in the form
+ of:
+
+ #include "foo/bar.h"
+
+ instead of
+
+ #include <foo/bar.h>
+
+Wed Mar 30 22:03:23 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * docs/schema/xsc-banner.cpp
+ * docs/schema/xsc-banner.h
+
+ These files are the banners that should be included at
+ the top of XSC generated code.
+
+Wed Mar 30 13:23:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/ComponentsC.h:
+ * DAnCE/ciao/ComponentsC.h:
+ Fixed include of Typecode.h to TypeCode.h
+
+Wed Mar 30 13:20:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Config_Handlers/DataType_Handler.cpp:
+ * DAnCE/Old_Config_Handlers/DT_Handler.cpp:
+ Fixed include of Typecode.h to TypeCode.h
+
+Thu Mar 24 17:02:34 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/Basic_Deployment_Data.hpp
+ * DAnCE/Config_Handlers/Deployment.hpp
+ * DAnCE/Config_Handlers/ccd.hpp
+ * DAnCE/Config_Handlers/cdd.hpp
+ * DAnCE/Config_Handlers/cdp.hpp
+ * DAnCE/Config_Handlers/cid.hpp
+ * DAnCE/Config_Handlers/cpd.hpp
+ * DAnCE/Config_Handlers/iad.hpp
+ * DAnCE/Config_Handlers/pcd.hpp
+ * DAnCE/Config_Handlers/toplevel.hpp
+ * DAnCE/Config_Handlers/XSCRT/XML.hpp
+ * DAnCE/Config_Handlers/vc6-4786.h
+
+ Finally beat a big warning problem in VC6.
+
+Thu Mar 24 15:19:21 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/XSCRT/Elements.hpp
+ * DAnCE/Config_Handlers/XSCRT/XML.hpp
+
+ Moved a pragma disable from Elements.hpp to XML.hpp to
+ attempt to silence more warnings in VC6.
+
+Thu Mar 24 14:52:03 2005 Will Otte <wotte@dre.vanderilt.edu>
+
+ * DAnCE/Config_Handlers/Any_Handler.cpp
+
+ Fixed a compile error for 64bit arch that resulted from
+ the earlier VC6 fix.
+
+Thu Mar 24 09:21:59 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/examples/Swapping/Sender/Sender.mpc:
+
+ Added the "after" clause in the MPC file to fix a
+ linker error.
+
+Thu Mar 24 08:46:07 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ExecImplSourceGenerator.cpp:
+ * CIDLC/Literals.cpp:
+ * CIDLC/Literals.hpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+ * CIDLC/TypeNameEmitter.cpp:
+
+ - Added generation of ACE_UNUSED_ARG macros for local variables in
+ the get_registered_consumers() method for upgradeable components,
+ to avoid unused argument warnings if the component has no
+ event consumers.
+
+ - Added predefined string literals for "ACE_UNUSED_ARG",
+ "ACE_CHECK_RETURN", and "ACE_THROW_RETURN".
+
+Wed Mar 23 19:45:32 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CCF/CCF/IDL2/IDL2.vcpoj:
+
+ Added more new files to the project, ValueTypeMember.hpp and
+ ValueTypeMember.tpp in IDL2/Traversal.
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Restored backend code that was commented out until frontend
+ support for traversal of valuetype/eventtype members was added.
+
+Wed Mar 23 13:00:32 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/Any_Handler.cpp
+
+ Fixed compile errors for VC6.
+
+Wed Mar 23 12:39:43 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/examples/Swapping/Sender/Sender.mpc:
+
+ Added a missing library include.
+
+Wed Mar 23 11:19:32 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/examples/Swapping/Sender/Sender.mpc:
+ * DAnCE/examples/Swapping/Sender/Sender_exec_1.cpp:
+ * DAnCE/examples/Swapping/Sender/Sender_exec_1.h:
+ * DAnCE/examples/Swapping/Sender/Sender_exec_1_export.h:
+ * DAnCE/examples/Swapping/Sender/Sender_exec_2.cpp:
+ * DAnCE/examples/Swapping/Sender/Sender_exec_2.h:
+ * DAnCE/examples/Swapping/Sender/Sender_exec_2_export.h:
+
+ Added new export macros to fix compiler problems in Windows
+ builds.
+
+Wed Mar 23 11:41:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Config_Handlers/Basic_Deployment_Data.hpp:
+ Fixed compile errors
+
+Wed Mar 23 11:22:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Config_Handlers/Basic_Deployment_Data.cpp:
+ * DAnCE/Config_Handlers/DP_Handler.cpp:
+ Fixed compile errors with Borland
+
+Tue Mar 22 21:21:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.h:
+ Fixed fuzz error
+
+Tue Mar 22 13:08:32 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.h
+ * DAnCE/ciao/Swapping_Servant_Home_Impl_Base.h
+ * DAnCE/ciao/Swapping_Servant_Home_Impl_T.h
+ * DAnCE/examples/Swapping/Sender/Sender_exec_1.h
+ * DAnCE/examples/Swapping/Sender/Sender_exec_2.h
+
+ Silence some Fuzz errors.
+
+Tue Mar 22 11:45:57 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/ADD_Handler.cpp
+ * DAnCE/Config_Handlers/Any_Handler.cpp
+ * DAnCE/Config_Handlers/CCD_Handler.cpp
+ * DAnCE/Config_Handlers/XSCRT/Elements.hpp
+
+ Changes to accomodate broken compilers (VC6).
+
+Tue Mar 22 10:40:21 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/examples/Swapping/Sender/Sender_exec.cpp:
+
+ Made changes to fix compiler warnings.
+
+Tue Mar 22 10:26:18 2005 Will Otte <wotte@dre.vanderbilt.edu>
+ * DAnCE/Config_Handlers/CCD_Handler.cpp
+
+ Silenced an error in VC6 that occured because it couldn't obey
+ some simple scope rules.
+
+ * DAnCE/Config_Handlers/XSCRT/Elements.hpp
+
+ Silenced a warning in VC6 debug builds relating to debug identifiers being
+ too long.
+
+Tue Mar 22 08:44:03 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/Container_Base.cpp
+
+ Silenced a warning.
+
+Tue Mar 22 08:05:57 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CCF/CCF/IDL2/IDL2.vcproj:
+
+ Added new ValueTypeFactory files to SemanticAction and new
+ ValueTypeMember files to SemanticGraph.
+
+Tue Mar 22 00:13:56 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/Any_Handler.cpp
+
+ Silenced warnings present in GCC >3 builds.
+
+ * DAnCE/Config_Handlers/CCD_Handler.h
+ * DAnCE/Config_Handlers/Config_Handlers.mpc
+ * DAnCE/Config_Handlers/IDD_Handler.cpp
+ * DAnCE/Config_Handlers/Property_Handler.h
+ * DAnCE/Config_Handlers/Req_Handler.h
+ * DAnCE/Config_Handlers/XML_Error_Handler.h
+ * DAnCE/Config_Handlers/XML_File_Intf.h
+
+ Silenced a few warnings present in the Fuzz build.
+
+Mon Mar 21 08:47:44 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CCF/CCF/IDL2/IDL2.vcproj:
+
+ Added the new ValuetypeMember files in SemanticAction to
+ the project.
+
+Mon Mar 21 16:25:07 2005 Boris Kolpackov <boris@kolpackov.net>
+
+ * CCF/CCF/IDL2/SemanticAction/Impl/ValueTypeMember.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/ValueTypeMember.hpp:
+
+ Finished "full support" for valuetype members. It also
+ adds "full support" for eventtype members since it just
+ re-uses valuetype's rules.
+
+
+ * CCF/CCF/IDL2/Parser.cpp:
+ * CCF/CCF/IDL2/Parser.hpp:
+ * CCF/CCF/IDL2/SemanticAction/ValueTypeFactory.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/ValueTypeFactory.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/ValueTypeFactory.hpp:
+ * CCF/CCF/IDL2/SemanticAction.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Factory.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Factory.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Factory.hpp:
+
+ Added support for valuetype factories.
+
+
+ * CCF/CCF/IDL2/SemanticAction/Impl/ValueType.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/ValueType.hpp:
+ * CCF/CCF/IDL2/Traversal/ValueType.tpp:
+
+ Implemented support for valuetype inheritance and
+ support of interfaces.
+
+
+ * CCF/CCF/IDL3/SemanticAction/Impl/EventType.cpp:
+ * CCF/CCF/IDL3/Traversal/EventType.tpp:
+
+ Implemented support for eventtype inheritance and
+ support of interfaces.
+
+
+ * CCF/CCF/IDL2/SemanticAction/Impl/Member.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Component.cpp:
+
+ Minor cleanups.
+
+Sun Mar 20 21:35:04 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/examples/Swapping/Sender/Sender.mpc:
+
+ Made a change to link to the right library.
+
+Sun Mar 20 21:12:55 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/Config_Handlers.mpc
+
+ Disabled the build of the test. There is no need for
+ this to build for the most part - as it is not a great test -
+ and appears to be lighting up the scoreboard for some reason.
+
+Sun Mar 20 14:05:08 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/tests/Config_Handlers/CompImplDesc_Handler_Test.cpp:
+ * DAnCE/tests/Config_Handlers/CompIntrDesc_Handler_Test.cpp:
+ * DAnCE/tests/Config_Handlers/CompPkgDesc_Handler_Test.cpp:
+ * DAnCE/tests/Config_Handlers/Domain_Handler_Test.cpp:
+ * DAnCE/tests/Config_Handlers/Handler_Test.cpp:
+ * DAnCE/tests/Config_Handlers/Handler_Test.h:
+ * DAnCE/tests/Config_Handlers/IAD_Handler_Test.cpp:
+ * DAnCE/tests/Config_Handlers/PC_Handler_Test.cpp:
+ * DAnCE/tests/Config_Handlers/Plan_Handler_Test.cpp:
+
+ Made changed to include the "right" config handlers
+ to fix the compilation errors.
+
+Sun Mar 20 13:57:55 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/XercesString.cpp:
+ * DAnCE/Config_Handlers/XercesString.h:
+
+ Added these new files from the old config handlers
+ directory to the new config handlers directory
+ to fix missing includes.
+
+Sun Mar 20 13:54:17 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/Old_Config_Handlers/Process_Element_T.cpp:
+
+ Changed a #include to fix a compilation error.
+
+Sun Mar 20 17:39:18 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+ * ciao/Servant_Impl_Base.h:
+ * ciao/Servant_Impl_Base.cpp:
+ * ciao/Servant_Impl_T.h:
+ * ciao/Servant_Impl_T.cpp:
+ * ciao/Home_Servant_Impl_T.cpp:
+
+ Made changes to the older version of the ciao
+ infrastructure to reflect changes made in the
+ newer version of ciao, which is DaNCE.
+
+Sun Mar 20 10:09:14 2005 Will Otte <wotte@dre.vanderbilt.edu>
+ * DAnCE/Config_Handlers/Basic_Handler.cpp
+ * DAnCE/Config_Handlers/Basic_Handler.h
+ * DAnCE/Config_Handlers/CAD_Handler.cpp
+ * DAnCE/Config_Handlers/CAD_Handler.h
+ * DAnCE/Config_Handlers/CPK_Handler.cpp
+ * DAnCE/Config_Handlers/CPK_Handler.h
+ * DAnCE/Config_Handlers/CPR_Handler.cpp
+ * DAnCE/Config_Handlers/CPR_Handler.h
+ * DAnCE/Config_Handlers/Cap_Handler.cpp
+ * DAnCE/Config_Handlers/Cap_Handler.h
+ * DAnCE/Config_Handlers/CompImplDesc_Handler.cpp
+ * DAnCE/Config_Handlers/CompImplDesc_Handler.h
+ * DAnCE/Config_Handlers/CompIntrDesc_Handler.cpp
+ * DAnCE/Config_Handlers/CompIntrDesc_Handler.h
+ * DAnCE/Config_Handlers/CompPkgDesc_Handler.cpp
+ * DAnCE/Config_Handlers/CompPkgDesc_Handler.h
+ * DAnCE/Config_Handlers/Config.h
+ * DAnCE/Config_Handlers/Config_Error_Handler.cpp
+ * DAnCE/Config_Handlers/Config_Error_Handler.h
+ * DAnCE/Config_Handlers/Config_Handler_export.h
+ * DAnCE/Config_Handlers/DT_Handler.cpp
+ * DAnCE/Config_Handlers/DT_Handler.h
+ * DAnCE/Config_Handlers/Domain_Handler.cpp
+ * DAnCE/Config_Handlers/Domain_Handler.h
+ * DAnCE/Config_Handlers/IAD_Handler.cpp
+ * DAnCE/Config_Handlers/IAD_Handler.h
+ * DAnCE/Config_Handlers/IR_Handler.cpp
+ * DAnCE/Config_Handlers/IR_Handler.h
+ * DAnCE/Config_Handlers/MID_Handler.cpp
+ * DAnCE/Config_Handlers/MID_Handler.h
+ * DAnCE/Config_Handlers/NIA_Handler.cpp
+ * DAnCE/Config_Handlers/NIA_Handler.h
+ * DAnCE/Config_Handlers/PCI_Handler.cpp
+ * DAnCE/Config_Handlers/PCI_Handler.h
+ * DAnCE/Config_Handlers/PC_Handler.cpp
+ * DAnCE/Config_Handlers/PC_Handler.h
+ * DAnCE/Config_Handlers/Plan_Handler.cpp
+ * DAnCE/Config_Handlers/Plan_Handler.h
+ * DAnCE/Config_Handlers/Process_Element.cpp
+ * DAnCE/Config_Handlers/Process_Element.h
+ * DAnCE/Config_Handlers/Process_Element_T.cpp
+ * DAnCE/Config_Handlers/Process_Element_T.h
+ * DAnCE/Config_Handlers/RS_Handler.cpp
+ * DAnCE/Config_Handlers/RS_Handler.h
+ * DAnCE/Config_Handlers/RUK_Handler.cpp
+ * DAnCE/Config_Handlers/RUK_Handler.h
+ * DAnCE/Config_Handlers/Requirement_Handler.cpp
+ * DAnCE/Config_Handlers/Requirement_Handler.h
+ * DAnCE/Config_Handlers/SPK_Handler.cpp
+ * DAnCE/Config_Handlers/SPK_Handler.h
+ * DAnCE/Config_Handlers/SP_Handler.cpp
+ * DAnCE/Config_Handlers/SP_Handler.h
+ * DAnCE/Config_Handlers/TPD_Handler.cpp
+ * DAnCE/Config_Handlers/TPD_Handler.h
+ * DAnCE/Config_Handlers/Utils.cpp
+ * DAnCE/Config_Handlers/Utils.h
+ * DAnCE/Config_Handlers/XercesString.cpp
+ * DAnCE/Config_Handlers/XercesString.h
+
+ Removed files unused by the new config handlers.
+
+ * DAnCE/Config_Handlers/Config_Handlers.mpc
+
+ Enabled the config handlers build.
+
+Sat Mar 19 18:19:34 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/XMLSchema/Traversal.hpp
+ * DAnCE/Config_Handlers/XMLSchema/Traversal.ipp
+ * DAnCE/Config_Handlers/XMLSchema/Traversal.tpp
+ * DAnCE/Config_Handlers/XMLSchema/TypeInfo.hpp
+ * DAnCE/Config_Handlers/XMLSchema/TypeInfo.ipp
+ * DAnCE/Config_Handlers/XMLSchema/TypeInfo.tpp
+ * DAnCE/Config_Handlers/XMLSchema/Types.hpp
+ * DAnCE/Config_Handlers/XMLSchema/Types.ipp
+ * DAnCE/Config_Handlers/XMLSchema/Types.tpp
+ * DAnCE/Config_Handlers/XMLSchema/Writer.hpp
+ * DAnCE/Config_Handlers/XMLSchema/Writer.ipp
+ * DAnCE/Config_Handlers/XMLSchema/Writer.tpp
+ * DAnCE/Config_Handlers/XSCRT/Elements.hpp
+ * DAnCE/Config_Handlers/XSCRT/Elements.ipp
+ * DAnCE/Config_Handlers/XSCRT/Elements.tpp
+ * DAnCE/Config_Handlers/XSCRT/ExtendedTypeInfo.hpp
+ * DAnCE/Config_Handlers/XSCRT/ExtendedTypeInfo.ipp
+ * DAnCE/Config_Handlers/XSCRT/Parser.hpp
+ * DAnCE/Config_Handlers/XSCRT/Parser.ipp
+ * DAnCE/Config_Handlers/XSCRT/Parser.tpp
+ * DAnCE/Config_Handlers/XSCRT/Traversal.hpp
+ * DAnCE/Config_Handlers/XSCRT/Traversal.ipp
+ * DAnCE/Config_Handlers/XSCRT/Traversal.tpp
+ * DAnCE/Config_Handlers/XSCRT/Writer.hpp
+ * DAnCE/Config_Handlers/XSCRT/Writer.ipp
+ * DAnCE/Config_Handlers/XSCRT/Writer.tpp
+ * DAnCE/Config_Handlers/XSCRT/XML.hpp
+ * DAnCE/Config_Handlers/XSCRT/XML.ipp
+ * DAnCE/Config_Handlers/XSCRT/XML.tpp
+ * DAnCE/Config_Handlers/XSCRT/XMLSchema.ipp
+ * DAnCE/Config_Handlers/XSCRT/XMLSchema.tpp
+
+ Completed the merge of xsc_handler_1 into main.
+
+Sat Mar 19 17:29:50 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp:
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.h:
+
+ Fixed compiler errors.
+
+Sat Mar 19 16:57:41 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/Old_Config_Handlers/Any_Handler.cpp:
+ * DAnCE/Old_Config_Handlers/Any_Handler.h:
+ * DAnCE/Old_Config_Handlers/Basic_Deployment_Data.cpp:
+ * DAnCE/Old_Config_Handlers/Basic_Deployment_Data.hpp:
+ * DAnCE/Old_Config_Handlers/Basic_Handler.cpp:
+ * DAnCE/Old_Config_Handlers/Basic_Handler.h:
+ * DAnCE/Old_Config_Handlers/CAD_Handler.cpp:
+ * DAnCE/Old_Config_Handlers/CAD_Handler.h:
+ * DAnCE/Old_Config_Handlers/CEPE_Handler.cpp:
+ * DAnCE/Old_Config_Handlers/CEPE_Handler.h:
+ * DAnCE/Old_Config_Handlers/CPK_Handler.cpp:
+ * DAnCE/Old_Config_Handlers/CPK_Handler.h:
+ * DAnCE/Old_Config_Handlers/CPR_Handler.cpp:
+ * DAnCE/Old_Config_Handlers/CPR_Handler.h:
+ * DAnCE/Old_Config_Handlers/Cap_Handler.cpp:
+ * DAnCE/Old_Config_Handlers/Cap_Handler.h:
+ * DAnCE/Old_Config_Handlers/CompImplDesc_Handler.cpp:
+ * DAnCE/Old_Config_Handlers/CompImplDesc_Handler.h:
+ * DAnCE/Old_Config_Handlers/CompIntrDesc_Handler.cpp:
+ * DAnCE/Old_Config_Handlers/CompIntrDesc_Handler.h:
+ * DAnCE/Old_Config_Handlers/CompPkgDesc_Handler.cpp:
+ * DAnCE/Old_Config_Handlers/CompPkgDesc_Handler.h:
+ * DAnCE/Old_Config_Handlers/Config.h:
+ * DAnCE/Old_Config_Handlers/Config_Error_Handler.cpp:
+ * DAnCE/Old_Config_Handlers/Config_Error_Handler.h:
+ * DAnCE/Old_Config_Handlers/Config_Handler_export.h:
+ * DAnCE/Old_Config_Handlers/Config_Handlers.mpc:
+ * DAnCE/Old_Config_Handlers/DT_Handler.cpp:
+ * DAnCE/Old_Config_Handlers/DT_Handler.h:
+ * DAnCE/Old_Config_Handlers/Deployment.cpp:
+ * DAnCE/Old_Config_Handlers/Deployment.hpp:
+ * DAnCE/Old_Config_Handlers/DnC_Dump.cpp:
+ * DAnCE/Old_Config_Handlers/DnC_Dump.h:
+ * DAnCE/Old_Config_Handlers/DnC_Dump_T.cpp:
+ * DAnCE/Old_Config_Handlers/DnC_Dump_T.h:
+ * DAnCE/Old_Config_Handlers/Domain_Handler.cpp:
+ * DAnCE/Old_Config_Handlers/Domain_Handler.h:
+ * DAnCE/Old_Config_Handlers/Dump_Obj.cpp:
+ * DAnCE/Old_Config_Handlers/Dump_Obj.h:
+ * DAnCE/Old_Config_Handlers/ERE_Handler.cpp:
+ * DAnCE/Old_Config_Handlers/ERE_Handler.h:
+ * DAnCE/Old_Config_Handlers/IAD_Handler.cpp:
+ * DAnCE/Old_Config_Handlers/IAD_Handler.h:
+ * DAnCE/Old_Config_Handlers/ID_Handler.cpp:
+ * DAnCE/Old_Config_Handlers/ID_Handler.h:
+ * DAnCE/Old_Config_Handlers/IR_Handler.cpp:
+ * DAnCE/Old_Config_Handlers/MID_Handler.cpp:
+ * DAnCE/Old_Config_Handlers/MID_Handler.h:
+ * DAnCE/Old_Config_Handlers/NIA_Handler.cpp:
+ * DAnCE/Old_Config_Handlers/NIA_Handler.h:
+ * DAnCE/Old_Config_Handlers/PCI_Handler.cpp:
+ * DAnCE/Old_Config_Handlers/PCI_Handler.h:
+ * DAnCE/Old_Config_Handlers/PC_Handler.cpp:
+ * DAnCE/Old_Config_Handlers/PC_Handler.h:
+ * DAnCE/Old_Config_Handlers/Plan_Handler.cpp:
+ * DAnCE/Old_Config_Handlers/Plan_Handler.h:
+ * DAnCE/Old_Config_Handlers/Process_Element.cpp:
+ * DAnCE/Old_Config_Handlers/Process_Element.h:
+ * DAnCE/Old_Config_Handlers/Process_Element_T.cpp:
+ * DAnCE/Old_Config_Handlers/Process_Element_T.h:
+ * DAnCE/Old_Config_Handlers/Property_Handler.cpp:
+ * DAnCE/Old_Config_Handlers/Property_Handler.h:
+ * DAnCE/Old_Config_Handlers/RS_Handler.cpp:
+ * DAnCE/Old_Config_Handlers/RS_Handler.h:
+ * DAnCE/Old_Config_Handlers/RUK_Handler.cpp:
+ * DAnCE/Old_Config_Handlers/RUK_Handler.h:
+ * DAnCE/Old_Config_Handlers/Requirement_Handler.cpp:
+ * DAnCE/Old_Config_Handlers/Requirement_Handler.h:
+ * DAnCE/Old_Config_Handlers/SPK_Handler.cpp:
+ * DAnCE/Old_Config_Handlers/SPK_Handler.h:
+ * DAnCE/Old_Config_Handlers/SP_Handler.cpp:
+ * DAnCE/Old_Config_Handlers/SP_Handler.h:
+ * DAnCE/Old_Config_Handlers/TPD_Handler.cpp:
+ * DAnCE/Old_Config_Handlers/TPD_Handler.h:
+ * DAnCE/Old_Config_Handlers/Utils.cpp:
+ * DAnCE/Old_Config_Handlers/Utils.h:
+ * DAnCE/Old_Config_Handlers/XercesString.cpp:
+ * DAnCE/Old_Config_Handlers/XercesString.h:
+ * DAnCE/Old_Config_Handlers/ccd.cpp:
+ * DAnCE/Old_Config_Handlers/ccd.hpp:
+ * DAnCE/Old_Config_Handlers/cdd.cpp:
+ * DAnCE/Old_Config_Handlers/cdd.hpp:
+ * DAnCE/Old_Config_Handlers/cdp.cpp:
+ * DAnCE/Old_Config_Handlers/cdp.hpp:
+ * DAnCE/Old_Config_Handlers/cid.cpp:
+ * DAnCE/Old_Config_Handlers/cid.hpp:
+ * DAnCE/Old_Config_Handlers/cpd.cpp:
+ * DAnCE/Old_Config_Handlers/cpd.hpp:
+ * DAnCE/Old_Config_Handlers/iad.cpp:
+ * DAnCE/Old_Config_Handlers/iad.hpp:
+ * DAnCE/Old_Config_Handlers/pcd.cpp:
+ * DAnCE/Old_Config_Handlers/pcd.hpp:
+ * DAnCE/Old_Config_Handlers/toplevel.cpp:
+ * DAnCE/Old_Config_Handlers/toplevel.hpp:
+
+ Older version of config handlers.
+
+
+Sat Mar 19 16:14:20 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/ccd.cpp:
+ * DAnCE/Config_Handlers/ccd.hpp:
+ * DAnCE/Config_Handlers/cdd.cpp:
+ * DAnCE/Config_Handlers/cdd.hpp:
+ * DAnCE/Config_Handlers/cdp.cpp:
+ * DAnCE/Config_Handlers/cdp.hpp:
+ * DAnCE/Config_Handlers/cid.cpp:
+ * DAnCE/Config_Handlers/cid.hpp:
+ * DAnCE/Config_Handlers/cpd.cpp:
+ * DAnCE/Config_Handlers/cpd.hpp:
+ * DAnCE/Config_Handlers/iad.cpp:
+ * DAnCE/Config_Handlers/iad.hpp:
+ * DAnCE/Config_Handlers/pcd.cpp:
+ * DAnCE/Config_Handlers/pcd.hpp:
+ * DAnCE/Config_Handlers/toplevel.cpp:
+ * DAnCE/Config_Handlers/toplevel.hpp:
+ * DAnCE/Config_Handlers/ERE_Handler.cpp:
+ * DAnCE/Config_Handlers/ERE_Handler.h:
+ * DAnCE/Config_Handlers/IDD_Handler.cpp:
+ * DAnCE/Config_Handlers/IDD_Handler.h:
+ * DAnCE/Config_Handlers/IDREF_Base.cpp:
+ * DAnCE/Config_Handlers/IDREF_Base.h:
+ * DAnCE/Config_Handlers/ID_Handler.cpp:
+ * DAnCE/Config_Handlers/ID_Handler.h:
+ * DAnCE/Config_Handlers/IRDD_Handler.cpp:
+ * DAnCE/Config_Handlers/IRDD_Handler.h:
+ * DAnCE/Config_Handlers/MDD_Handler.cpp:
+ * DAnCE/Config_Handlers/MDD_Handler.h:
+ * DAnCE/Config_Handlers/PCD_Handler.cpp:
+ * DAnCE/Config_Handlers/PCD_Handler.h:
+ * DAnCE/Config_Handlers/PSPE_Handler.cpp:
+ * DAnCE/Config_Handlers/PSPE_Handler.h:
+ * DAnCE/Config_Handlers/Property_Handler.cpp:
+ * DAnCE/Config_Handlers/Property_Handler.h:
+ * DAnCE/Config_Handlers/RDD_Handler.cpp:
+ * DAnCE/Config_Handlers/RDD_Handler.h:
+ * DAnCE/Config_Handlers/Req_Handler.cpp:
+ * DAnCE/Config_Handlers/Req_Handler.h:
+ * DAnCE/Config_Handlers/XML_Error_Handler.cpp:
+ * DAnCE/Config_Handlers/XML_Error_Handler.h:
+ * DAnCE/Config_Handlers/XML_File_Intf.cpp:
+ * DAnCE/Config_Handlers/XML_File_Intf.h:
+ * DAnCE/Config_Handlers/XML_Helper.cpp:
+ * DAnCE/Config_Handlers/XML_Helper.h:
+ * DAnCE/Config_Handlers/XercesString.cpp:
+ * DAnCE/Config_Handlers/XercesString.h:
+ * DAnCE/Config_Handlers/ADD_Handler.cpp:
+ * DAnCE/Config_Handlers/ADD_Handler.h:
+ * DAnCE/Config_Handlers/Any_Handler.cpp:
+ * DAnCE/Config_Handlers/Any_Handler.h:
+ * DAnCE/Config_Handlers/Basic_Deployment_Data.cpp:
+ * DAnCE/Config_Handlers/Basic_Deployment_Data.hpp:
+ * DAnCE/Config_Handlers/CCD_Handler.cpp:
+ * DAnCE/Config_Handlers/CCD_Handler.h:
+ * DAnCE/Config_Handlers/CEPE_Handler.cpp:
+ * DAnCE/Config_Handlers/CEPE_Handler.h:
+ * DAnCE/Config_Handlers/CPD_Handler.cpp:
+ * DAnCE/Config_Handlers/CPD_Handler.h:
+ * DAnCE/Config_Handlers/CRDD_Handler.cpp:
+ * DAnCE/Config_Handlers/CRDD_Handler.h:
+ * DAnCE/Config_Handlers/ComponentPropertyDescription_Handler.cpp:
+ * DAnCE/Config_Handlers/ComponentPropertyDescription_Handler.h:
+ * DAnCE/Config_Handlers/Config_Handlers.mpc:
+ * DAnCE/Config_Handlers/Config_Handlers_Export.h:
+ * DAnCE/Config_Handlers/DP_Handler.cpp:
+ * DAnCE/Config_Handlers/DP_Handler.h:
+ * DAnCE/Config_Handlers/DP_PCD_Handler.cpp:
+ * DAnCE/Config_Handlers/DP_PCD_Handler.h:
+ * DAnCE/Config_Handlers/DataType_Handler.cpp:
+ * DAnCE/Config_Handlers/DataType_Handler.h:
+ * DAnCE/Config_Handlers/Deployment.cpp:
+ * DAnCE/Config_Handlers/Deployment.hpp:
+ * DAnCE/Config_Handlers/DnC_Dump.cpp:
+ * DAnCE/Config_Handlers/DnC_Dump.h:
+ * DAnCE/Config_Handlers/DnC_Dump_T.cpp:
+ * DAnCE/Config_Handlers/DnC_Dump_T.h:
+ * DAnCE/Config_Handlers/Dump_Obj.cpp:
+ * DAnCE/Config_Handlers/Dump_Obj.h:
+
+ Merged branch xsc_handler_1 to main.
+
+Sat Mar 19 15:36:55 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/RDD_Handler.cpp:
+ * DAnCE/Config_Handlers/RDD_Handler.h:
+ * DAnCE/Config_Handlers/Req_Handler.cpp:
+ * DAnCE/Config_Handlers/Req_Handler.h:
+ * DAnCE/Config_Handlers/XML_Error_Handler.cpp:
+ * DAnCE/Config_Handlers/XML_Error_Handler.h:
+ * DAnCE/Config_Handlers/XML_File_Intf.cpp:
+ * DAnCE/Config_Handlers/XML_File_Intf.h:
+ * DAnCE/Config_Handlers/XML_Helper.cpp:
+ * DAnCE/Config_Handlers/XML_Helper.h:
+
+ More XSC config handlers.
+
+Sat Mar 19 15:29:45 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/Any_Handler.h:
+ * DAnCE/Config_Handlers/Basic_Deployment_Data.cpp:
+ * DAnCE/Config_Handlers/CEPE_Handler.cpp:
+ * DAnCE/Config_Handlers/CEPE_Handler.h:
+ * DAnCE/Config_Handlers/Deployment.cpp:
+ * DAnCE/Config_Handlers/DnC_Dump.cpp:
+ * DAnCE/Config_Handlers/DnC_Dump.h:
+ * DAnCE/Config_Handlers/DnC_Dump_T.cpp:
+ * DAnCE/Config_Handlers/DnC_Dump_T.h:
+ * DAnCE/Config_Handlers/Dump_Obj.cpp:
+ * DAnCE/Config_Handlers/Dump_Obj.h:
+ * DAnCE/Config_Handlers/ERE_Handler.cpp:
+ * DAnCE/Config_Handlers/ERE_Handler.h:
+ * DAnCE/Config_Handlers/IDD_Handler.cpp:
+ * DAnCE/Config_Handlers/IDD_Handler.h:
+ * DAnCE/Config_Handlers/IDREF_Base.cpp:
+ * DAnCE/Config_Handlers/IDREF_Base.h:
+ * DAnCE/Config_Handlers/ID_Handler.cpp:
+ * DAnCE/Config_Handlers/ID_Handler.h:
+ * DAnCE/Config_Handlers/IRDD_Handler.cpp:
+ * DAnCE/Config_Handlers/IRDD_Handler.h:
+ * DAnCE/Config_Handlers/MDD_Handler.cpp:
+ * DAnCE/Config_Handlers/MDD_Handler.h:
+ * DAnCE/Config_Handlers/Modified_Deployment.xsd:
+ * DAnCE/Config_Handlers/PCD_Handler.cpp:
+ * DAnCE/Config_Handlers/PCD_Handler.h:
+ * DAnCE/Config_Handlers/PSPE_Handler.cpp:
+ * DAnCE/Config_Handlers/PSPE_Handler.h:
+
+ More XML config handlers.
+
+Sat Mar 19 15:25:17 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/ADD_Handler.cpp:
+ * DAnCE/Config_Handlers/ADD_Handler.h:
+ * DAnCE/Config_Handlers/BasicSP.cdp:
+ * DAnCE/Config_Handlers/CCD_Handler.cpp:
+ * DAnCE/Config_Handlers/CCD_Handler.h:
+ * DAnCE/Config_Handlers/CPD_Handler.cpp:
+ * DAnCE/Config_Handlers/CPD_Handler.h:
+ * DAnCE/Config_Handlers/CRDD_Handler.cpp:
+ * DAnCE/Config_Handlers/CRDD_Handler.h:
+ * DAnCE/Config_Handlers/ComponentPropertyDescription_Handler.cpp:
+ * DAnCE/Config_Handlers/ComponentPropertyDescription_Handler.h:
+ * DAnCE/Config_Handlers/Config_Handlers_Export.h:
+ * DAnCE/Config_Handlers/DP_Handler.cpp:
+ * DAnCE/Config_Handlers/DP_Handler.h:
+ * DAnCE/Config_Handlers/DP_PCD_Handler.cpp:
+ * DAnCE/Config_Handlers/DP_PCD_Handler.h:
+ * DAnCE/Config_Handlers/DataType_Handler.cpp:
+ * DAnCE/Config_Handlers/DataType_Handler.h:
+
+ Added a XSC compiler compliant config handlers.
+
+Sat Mar 19 15:22:54 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/DAM_Map.cpp:
+ * DAnCE/ExecutionManager/DAM_Map.h:
+ * DAnCE/ExecutionManager/ExecutionManager.mpc:
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.h:
+ * DAnCE/ExecutionManager/Execution_Manager.cpp:
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp:
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.h:
+
+ Fixed some more compiler errors.
+
+Sat Mar 19 15:06:37 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/DAM_Map.cpp:
+ * DAnCE/ExecutionManager/DAM_Map.h:
+ * DAnCE/ExecutionManager/ExecutionManager.mpc:
+ * DAnCE/ExecutionManager/Execution_Manager.cpp:
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp:
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.h:
+ * DAnCE/NodeApplication/NodeApplication.cpp:
+ * DAnCE/NodeManager/NodeDaemon_Impl.cpp:
+
+ Made changes to fix compile errors.
+
+Sat Mar 19 15:02:03 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/Deployment_Configuration.h:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc:
+ *
+ DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+
+ Made changes to reflect changes made to the CIAO
+ infrastructure to support NodeApplication instantiate
+ multiple containers.
+
+ Thanks to Gan Deng <dengg@dre.vanderbilt.edu> for making this
+ change.
+
+Sat Mar 19 14:54:15 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/examples/BasicSP/descriptors/BasicSP.cdp:
+ * DAnCE/examples/BasicSP/descriptors/NodeManagerMap.dat:
+ * DAnCE/examples/BasicSP/descriptors/basicNodeDaemon.pl:
+ * DAnCE/examples/BasicSP/descriptors/flattern_deploymentplan.cdp:
+
+ Added a flattened deployment plan for testing the DaNCE
+ infrastructure.
+
+ Thanks to Will Otte <w.otte@vanderbilt.edu> for helping
+ out with this project.
+
+Sat Mar 19 14:23:49 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/examples/Swapping/Hello_Base/Hello_Base.idl:
+ * DAnCE/examples/Swapping/Hello_Base/Hello_Base.mpc:
+ * DAnCE/examples/Swapping/Hello_Base/Hello_Base_stub_export.h:
+ * DAnCE/examples/Swapping/Hello_Base/Hello_Base_svnt_export.h:
+ * DAnCE/examples/Swapping/Receiver/Receiver.mpc:
+ * DAnCE/examples/Swapping/Sender/Sender.mpc:
+
+ Fixed few minor compiler errors.
+
+Sat Mar 19 13:40:30 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/examples/Swapping/Hello_Base/Hello_Base.idl:
+ * DAnCE/examples/Swapping/Hello_Base/Hello_Base.mpc:
+ * DAnCE/examples/Swapping/Hello_Base/Hello_Base_stub_export.h:
+ * DAnCE/examples/Swapping/Hello_Base/Hello_Base_svnt_export.h:
+ * DAnCE/examples/Swapping/Receiver/Receiver.cidl:
+ * DAnCE/examples/Swapping/Receiver/Receiver.idl:
+ * DAnCE/examples/Swapping/Receiver/Receiver.mpc:
+ * DAnCE/examples/Swapping/Receiver/Receiver_exec.cpp:
+ * DAnCE/examples/Swapping/Receiver/Receiver_exec.h:
+ * DAnCE/examples/Swapping/Receiver/Receiver_exec_export.h:
+ * DAnCE/examples/Swapping/Receiver/Receiver_stub_export.h:
+ * DAnCE/examples/Swapping/Receiver/Receiver_svnt_export.h:
+ * DAnCE/examples/Swapping/Sender/Sender.cidl:
+ * DAnCE/examples/Swapping/Sender/Sender.idl:
+ * DAnCE/examples/Swapping/Sender/Sender.mpc:
+ * DAnCE/examples/Swapping/Sender/Sender_exec.cpp:
+ * DAnCE/examples/Swapping/Sender/Sender_exec.h:
+ * DAnCE/examples/Swapping/Sender/Sender_exec_1.cpp:
+ * DAnCE/examples/Swapping/Sender/Sender_exec_1.h:
+ * DAnCE/examples/Swapping/Sender/Sender_exec_2.cpp:
+ * DAnCE/examples/Swapping/Sender/Sender_exec_2.h:
+ * DAnCE/examples/Swapping/Sender/Sender_exec_export.h:
+ * DAnCE/examples/Swapping/Sender/Sender_stub_export.h:
+ * DAnCE/examples/Swapping/Sender/Sender_svnt_export.h:
+ * DAnCE/examples/Swapping/Sender/starter.cpp:
+
+ Added a "HelloWorld" example that can test the dynamic
+ swapping of component implementation capability.
+
+ Thanks to Bala Natarajan <bala@dre.vanderbilt.edu>
+ for helping me with this project.
+
+Sat Mar 19 13:17:37 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client.cpp:
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_ex.cpp:
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_simple.cpp:
+
+ Made changes to reflect changes made to the infrastructure
+ to provide the capability in the NodeApplication
+ to support multiple containers.
+
+Sat Mar 19 13:13:13 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/ImplementationInfo.cpp:
+ * DAnCE/NodeApplicationManager/ImplementationInfo.h:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h:
+
+ Changes to reflect the infrasrtuctural changes related
+ to providing capability in the NodeApplication
+ to support multiple containers.
+
+ Thanks to Gan Deng <dengg@dre.vanderbilt.edu> for
+ architecting and implementing this project.
+
+Sat Mar 19 13:08:18 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/NodeApplication_Impl.inl:
+
+ Made some changes to fix compiler errors.
+
+Sat Mar 19 12:48:44 2005 Jaiganesh B <jai@dre.vanderbilt.edu>
+
+ * DAnCE/ciao/CCM_Core.mpc:
+ * DAnCE/ciao/CIAO_Config.h:
+ * DAnCE/ciao/Container_Base.cpp:
+ * DAnCE/ciao/Container_Base.h:
+ * DAnCE/ciao/Container_Impl.cpp:
+ * DAnCE/ciao/Container_Impl.h:
+ * DAnCE/ciao/Container_Impl.inl:
+ * DAnCE/ciao/Context_Impl_T.cpp:
+ * DAnCE/ciao/Deployment.idl:
+ * DAnCE/ciao/Deployment_Core.idl:
+ * DAnCE/ciao/Dynamic_Component_Activator.cpp:
+ * DAnCE/ciao/Dynamic_Component_Activator.h:
+ * DAnCE/ciao/Dynamic_Component_Servant_Base.cpp:
+ * DAnCE/ciao/Dynamic_Component_Servant_Base.h:
+ * DAnCE/ciao/Dynamic_Component_Servant_T.cpp:
+ * DAnCE/ciao/Dynamic_Component_Servant_T.h:
+ * DAnCE/ciao/Home_Servant_Impl_Base.h:
+ * DAnCE/ciao/Home_Servant_Impl_T.cpp:
+ * DAnCE/ciao/Home_Servant_Impl_T.h:
+ * DAnCE/ciao/NodeApplication_Impl.cpp:
+ * DAnCE/ciao/NodeApplication_Impl.h:
+ * DAnCE/ciao/NodeApplication_Impl.inl:
+ * DAnCE/ciao/Object_Set_T.cpp:
+ * DAnCE/ciao/Object_Set_T.h:
+ * DAnCE/ciao/Object_Set_T.inl:
+ * DAnCE/ciao/Port_Activator_T.cpp:
+ * DAnCE/ciao/Servant_Activator.cpp:
+ * DAnCE/ciao/Servant_Activator.h:
+ * DAnCE/ciao/Servant_Impl_Base.cpp:
+ * DAnCE/ciao/Servant_Impl_Base.h:
+ * DAnCE/ciao/Servant_Impl_T.cpp:
+ * DAnCE/ciao/Servant_Impl_T.h:
+ * DAnCE/ciao/SwapExec.idl:
+ * DAnCE/ciao/Swapping_Container.cpp:
+ * DAnCE/ciao/Swapping_Container.h:
+ * DAnCE/ciao/Swapping_Container.inl:
+ * DAnCE/ciao/Swapping_Servant_Home_Impl_Base.cpp:
+ * DAnCE/ciao/Swapping_Servant_Home_Impl_Base.h:
+ * DAnCE/ciao/Swapping_Servant_Home_Impl_T.cpp:
+ * DAnCE/ciao/Swapping_Servant_Home_Impl_T.h:
+ * DAnCE/ciao/UpgradeableContext.idl:
+ * DAnCE/ciao/Upgradeable_Context_Impl_T.cpp:
+ * DAnCE/ciao/Upgradeable_Context_Impl_T.h:
+
+ Added CIAO infrastructure changes to allow NodeApplications
+ to support multi container instantiation.
+
+ Added CIAO infrastructure changes to allow dynamic
+ swapping of component implementations.
+
+ Thanks to Gan Deng <dengg@dre.vanderbilt.edu> and
+ Bala Natarajan <bala@dre.vanderbilt.edu> for their
+ help in architecting and implementing these changes.
+
+Fri Mar 18 18:34:20 2005 Boris Kolpackov <boris@kolpackov.net>
+
+ * CCF/CCF/IDL2/Parser.cpp:
+ * CCF/CCF/IDL2/Parser.hpp:
+ * CCF/CCF/IDL2/SemanticAction.hpp:
+ * CCF/CCF/IDL2/SemanticGraph.hpp:
+ * CCF/CCF/IDL2/Traversal.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Factory.hpp:
+ * CCF/CCF/IDL2/SemanticAction/ValueTypeMember.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Factory.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Factory.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/ValueTypeMember.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/ValueTypeMember.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/ValueTypeMember.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/ValueTypeMember.hpp:
+ * CCF/CCF/IDL2/Traversal/ValueTypeMember.hpp:
+ * CCF/CCF/IDL2/Traversal/ValueTypeMember.tpp:
+
+ First part of the "full" support for members in valuetypes.
+
+
+Thu Mar 17 10:18:33 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ExecutorMappingGenerator.cpp:
+ * CIDLC/Literals.cpp:
+ * CIDLC/Literals.hpp:
+ * CIDLC/ServantGenerator.cpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+ * CIDLC/TypeNameEmitter.cpp:
+ * CIDLC/TypeNameEmitter.hpp:
+
+ Added command line option 'custom-container' to the CIDL
+ compiler backend, and code generation to execute if the
+ argument to the new option is 'upgradeable'. CIAO
+ infrastructure changes to support dynamic component
+ swapping will be merged from a branch shortly - these
+ CIDL compiler changes will not affect any existing builds
+ or tests since they don't use the new command line option.
+
+Fri Mar 11 10:33:28 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * docs/schema/cdp.xsd
+
+ Corrected an incorrect element in the schema.
+
+Fri Mar 11 12:01:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/ComponentsC.h:
+ * ciao/ComponentsS.h:
+ * DAnCE/ciao/ComponentsC.h:
+ * DAnCE/ciao/ComponentsS.h:
+ * DAnCE/NodeManager/NodeDaemon_Impl.h:
+ * performance-tests/Benchmark/LatencyTest.h:
+ * performance-tests/Benchmark/RoundTripServer/LatencyTest.h:
+ Changed _MSC_VER check
+
+Fri Mar 4 17:13:16 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/Hello/Hello_Base/Hello_Base.idl:
+ * examples/Hello/Hello_Base/Hello_Base.mpc:
+ * examples/Hello/Receiver/Receiver.idl:
+ * examples/Hello/Receiver/Receiver.mpc:
+ * examples/Hello/Sender/Sender.mpc:
+
+ Cosmetic changes to IDL files and changes to MPC files to
+ eliminate unnecessary files in a given project and bring
+ in missing export header files.
+
+Thu Mar 3 10:31:10 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ExecImplGenerator.cpp:
+ * CIDLC/ExecImplHeaderGenerator.cpp:
+
+ - Added support for .cdl file extension similar to
+ support already in the servant generators.
+
+ - Fixed bug in export include generation.
+
+ Thanks to Matt Emerson <mjemerson@isis.vanderbilt.edu>,
+ Ming Xiong <xiongm@isi.vanderbilt.edu>, James Hill
+ <jhill@isis.vanderbilt.edu> and Stoyan Paunov
+ <spaunov@isis.vanderbilt.edu> for reporting these
+ problems.
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ - Replaced remaining instances of generation of 'new' with
+ 'ACE_NEW' and changed code generation to reduce line
+ lengths.
+
+ - Changed code generation of Cookie_var for multiplex
+ receptacles to pass a Cookie* to ACE_NEW, then
+ assign to the _var, instead of passing in _var.out(),
+ which causes the allocation to fail on some platforms.
+ Thanks to Don Busch <busch_d@ociweb.com> for reporting
+ the problem.
+
+Mon Mar 03 09:37:23 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/examples/Hello/descriptors/Hello.cdp
+ * DAnCE/examples/Hello/descriptors/hello.dat
+
+ Remove these two files because the file name is bad.
+
+ * DAnCE/examples/Hello/descriptors/DeploymentPlan.cdp
+ * DAnCE/examples/Hello/descriptors/NodeManagerMap.dat
+
+ Added these two files.
+
+ * DAnCE/examples/Hello/step-by-step.html
+
+ Fixed this page to reflex the above change.
+
+Mon Mar 03 08:59:23 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/examples/Hello/Hello_Base/Hello_Base.mpc
+
+ Fixed the Hello_Base_DnC_svnt project settings which
+ caused comilation errors.
+
+Wed Mar 02 11:42:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Config_Handlers/Config_Handlers.mpc
+ * DAnCE/RepositoryManager/RepositoryManager.mpc
+ * performance-tests/Protocols/Controller/Controller.mpc
+ * performance-tests/Protocols/Receiver/Receiver.mpc
+ * performance-tests/Protocols/Sender/Sender.mpc
+ * tests/RTCCM/DiffServ/Controller/Controller.mpc
+ Use exceptions as base project instead of requires exceptions
+
+Mon Mar 02 18:30:25 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * examples/Hello/step-by-step.html
+ * DAnCE/examples/Hello/step-by-step.html
+
+ Modified these two documentation page to fix some errors.
+
+ * DAnCE/examples/Hello/Hello_Base/Hello_Base.mpc
+
+ Fixed wrong shared library names and project names.
+
+Sat Feb 26 14:38:46 2005 Arvind S. Krishna <arvindk@tango.dre.vanderbilt.edu>
+
+ * examples/handcrafted/BasicSP_EC/BMClosedED/BMClosedED.mpc:
+ * examples/handcrafted/BasicSP_EC/BMDevice/BMDevice.mpc:
+ * examples/handcrafted/BasicSP_EC/BMDisplay/BMDisplay.mpc:
+ * examples/handcrafted/BasicSP_EC/EC/EC.mpc:
+ * examples/handcrafted/BasicSP_EC/BasicSP.mpc:
+ * examples/handcrafted/BasicSP_EC2/BMClosedED/BMClosedED.mpc:
+ * examples/handcrafted/BasicSP_EC2/BMDevice/BMDevice.mpc:
+ * examples/handcrafted/BasicSP_EC2/BMDisplay/BMDisplay.mpc:
+ * examples/handcrafted/BasicSP_EC2/EC/EC.mpc:
+ * examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService.mpc:
+ * examples/handcrafted/BasicSP_EC2/BasicSP.mpc:
+
+ Replaced all occurances of "dummy" with "dummy_label"
+
+ * bin/replace_dummy_with_dummylabel.sh:
+
+ Shell script that can be used to do this. In case people find it
+ useful.
+
+
+Tue Feb 22 09:55:51 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/TypeNameEmitter.cpp:
+
+ Fixed typos in code generation that were omitting a space
+ between the type name and '_ciao_extract_val' for enums,
+ structs and unions when used as component or home attributes.
+ Thanks to Steve Baker <steven_d_baker@raytheon.com> for
+ reporting the bug with enums.
+
+Fri Feb 18 10:11:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/ciao/Servant_Activator.h:
+ * ciao/Servant_Activator.h:
+ Added missing includes because of POA refactoring
+
+Thu Feb 17 14:04:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Component_Base.idl:
+ Fixed typo in include of orb.idl. Thanks to Roland Schimmack
+ <Roland dot Schimmack at gmx dot de> for reporting this
+
+Tue Feb 15 22:43:34 2005 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DAnCE/examples/BasicSP/BMDisplay_exec.h:
+
+ Added missing export file to make things compile on Windows
+ platforms. Thanks to Diana Ukleja <Diana_Ukleja@raytheon.com>
+ for pointing this out.
+
+Mon Feb 14 14:52:32 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/NEWS
+
+ Updated the NEWS file by adding support for parsing
+ hierarchical assembly of component descriptors.
+
+Sun Feb 13 13:25:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * Release:
+ Removed CIAO-INSTALL from the release files. It is already
+ picked up because we include the complete CIAO directory
+
+Fri Feb 11 11:12:21 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/NEWS
+
+ Updated the NEWS file by adding support for setting up
+ attribute in component configuration.
+
+Fri Feb 11 11:10:54 2005 Will Otte <wotte@dre.vanderbilt.edu>
+
+ * docs/schema/Modified_Deployment.xsd:
+
+ Corrected a couple mistakes in the schema.
+
+Thu Feb 10 07:11:04 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIAO version 0.4.4 released.
+
+Tue Feb 08 10:04:21 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/NEWS
+
+ Updated the NEWS file for the coming 0.4.4 release.
+
+Mon Feb 7 09:49:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * Release:
+ Added CIAO-INSTALL to the release files
+
+Fri Feb 4 09:35:00 2005 Emre Turkay <turkaye@dre.vanderbilt.edu>
+
+ * DAnCE/examples/Hello/descriptors/basicNodeDaemon.pl:
+ The perl script to create node daemons created.
+
+ * DAnCE/examples/Hello/step-by-step.html:
+ Step by step tutorial for the DAnCE.
+
+Fri Feb 4 12:11:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/RTComponentServer/RTConfig_Manager.h:
+ Include SString.h instead of SStringfwd.h to fix compile errors with
+ CBuilderX
+
+Thu Feb 3 20:01:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Segment_Timer/Segment_Timer.mpc:
+ Removed TAO_ROOT again, the gnu template has been changed so that
+ when CIAO is detected, also TAO_ROOT is set
+
+Thu Feb 3 12:32:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/ciao/NodeApplication_Impl.h:
+ Added include of ace/SString.h to fix compile errors with CBuilderX
+
+Thu Feb 3 10:11:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Segment_Timer/Segment_Timer.mpc:
+ Added $(TAO_ROOT) so that MPC creates a correct GNU makefile
+
+Wed Feb 2 19:48:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rules.ciao.GNU:
+ Fixed error in this file
+
+Wed Feb 2 09:39:25 2005 Chad Elliott <elliott_c@ociweb.com>
+
+ * CCF/CCF/CIDL/CIDL.mpc:
+ * CCF/CCF/CodeGenerationKit/CodeGenerationKit.mpc:
+ * CCF/CCF/CompilerElements/CompilerElements.mpc:
+ * CCF/CCF/IDL2/IDL2.mpc:
+ * CCF/CCF/IDL3/IDL3.mpc:
+ * CIDLC/CIDLC.mpc:
+
+ Converted includes to incorporate $(CIAO_ROOT). This allows the
+ GNUACEProjectCreator to recognize these projects as CIAO projects.
+
+ * DAnCE/ciao/CCM_Core.mpc:
+ * ciao/CCM_Core.mpc:
+ * tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc:
+ * tools/Segment_Timer/Segment_Timer.mpc:
+
+ Added a bogus include of $(CIAO_ROOT). This allows the
+ GNUACEProjectCreator to recognize these projects as CIAO projects.
+
+Wed Feb 2 14:33:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rules.ciao.GNU:
+ New rules file to set the correct SOVERSION and SONAME values
+
+Wed Feb 2 10:51:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Port_Activator_T.cpp:
+ Added include of OS_NS_string.h to get ACE_OS::strcmp
+
+Tue Feb 1 18:09:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/CCM_Core.mpc:
+ * DAnCE/ciao/CCM_Core.mpc:
+ Removed some ciaoversion based projects I missed during my checkin
+ below
+
+Tue Feb 1 13:41:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/CCM_Core.mpc:
+ * DAnCE/ciao/CCM_Core.mpc:
+ Removed ciaoversion as base project. This will be removed because it
+ results in the fact that each generated GNU makefile will get the
+ version number generated. We want that the GNU make rules get the
+ version number from Version.h
+
+Mon Jan 31 21:00:12 2005 Ossama Othman <ossama@dre.vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp (pre):
+
+ Generate '#include "ace/OS_NS_string.h"' directive. CIAO CIDL
+ servant sources call ACE_OS::strcmp(), the prototype of which is
+ found in that header. Necessitated by inter-header dependency
+ reductions in ACE.
+
+Mon Jan 31 11:59:04 2005 Ossama Othman <ossama@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/Any_Handler.cpp:
+ * DAnCE/Config_Handlers/CPK_Handler.cpp:
+ * DAnCE/Config_Handlers/DT_Handler.cpp:
+ * DAnCE/Config_Handlers/Property_Handler.cpp:
+ * DAnCE/Config_Handlers/RS_Handler.cpp:
+ * DAnCE/Config_Handlers/Requirement_Handler.cpp:
+ * DAnCE/Config_Handlers/SP_Handler.cpp:
+ * DAnCE/ciao/Port_Activator_T.cpp:
+ * DAnCE/examples/BasicSP/BMClosedED/BMClosedED_exec.cpp:
+ * ciao/Container_Impl.cpp:
+ * performance-tests/Protocols/Controller/Controller.cpp:
+ * tools/RTComponentServer/RTConfig_Manager.cpp:
+ * tools/RTComponentServer/RTConfig_Manager.h:
+ * tools/RTComponentServer/RTServer_Impl.cpp:
+
+ Added missing header include directives that are necessary due
+ to inter-header dependency reductions in ACE.
+
+Sun Jan 30 20:30:46 2005 Ossama Othman <ossama@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/Deployment_Configuration.h:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.h:
+ * DAnCE/NodeApplicationManager/ImplementationInfo.cpp:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h:
+ * DAnCE/ciao/Container_Base.cpp:
+ * DAnCE/ciao/NodeApplication_Impl.cpp:
+ * ciao/Container_Base.cpp:
+ * ciao/ServerActivator_Impl.h:
+ * docs/tutorial/Hello/hello_exec.cpp:
+ * examples/OEP/BasicSP/BMClosedED/BMClosedED_exec.cpp:
+ * tests/RTCCM/Priority_Test/Controllers/client.cpp:
+ * tests/RTCCM/Priority_Test/Workers/CB_Worker_exec.cpp:
+ * tools/Assembly_Deployer/Deployment_Configuration.h:
+ * tools/RTComponentServer/RTServer_Impl.cpp:
+
+ Added missing header include directives that are necessary due
+ to inter-header dependency reductions in ACE.
+
+Sun Jan 23 01:49:51 2005 Marek Brudka <mbrudka@aster.pl>
+
+ * examples/OEP/Display/NavDisplayGUI_exec/README (Module):
+ * examples/OEP/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc (Module):
+ Changes related with separation of GUI reactors.
+ The additional information is avalaible in ChangeLog at REACTOR_SEPARATION branch (below).
+
+ Mon Dec 6 00:39:19 2004 Marek Brudka <mbrudka@aster.pl>
+
+ * examples/OEP/Display/NavDisplayGUI_exec/README (Module):
+ Remove reference to ACE_HAS_QT.
+
+ * examples/OEP/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc (Module):
+ Removed deprecated qt_moc base project.
+
+Fri Jan 21 17:27:12 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/tests/NodeApplicationTest/NodeAppTest.mpc
+
+ Fixed dependency relationship by making
+ NodeAppTest_RoundTrip_stub depending on CIAO_DnC_Container.
+
+ * examples/OEP/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.cpp
+
+ Fixed warning on Debian_Full_Reactor build. The warning is
+ caused because of assigning "const char*" to a "char *" type.
+
+ Thanks Johnny Willemsen <jwillemsen@remedy.nl> for pointing
+ these.
+
+Thu Jan 20 18:29:47 2005 Ossama Othman <ossama@dre.vanderbilt.edu>
+
+ * DAnCE/Config_Handlers/Any_Handler.cpp:
+ * DAnCE/Config_Handlers/Utils.cpp:
+ * performance-tests/Protocols/Sender/Sender_exec.cpp:
+ * tools/Daemon/Daemon_Impl.cpp:
+
+ Converted all ACE_{static,dynamic,reinterpret,const}_cast macros
+ calls to their standard C++ counterparts using new
+ bin/ACE-casts-convert script. The ACE cast macros were
+ deprecated back in ACE 5.4.2.
+
+Thu Jan 20 09:54:04 2005 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * examples/OEP/Display/descriptors/NOTE.txt:
+ * examples/OEP/Display/descriptors/NOTE-win.txt:
+
+ Fixed the discrepancy on using Assembly_Deployer. Thanks to
+ Martina Yen <martina_h_yen@raytheon.com> for reporting this.
+
+Wed Jan 19 09:39:14 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/examples/BasicSP/BasicSP.mpc
+ * DAnCE/examples/BasicSP/BMClosedED/BMClosedED.mpc
+ * DAnCE/examples/BasicSP/BMDevice/BMDevice.mpc
+ * DAnCE/examples/BasicSP/BMDisplay/BMDisplay.mpc
+ * DAnCE/examples/BasicSP/EC/EC.mpc
+
+ Changed the shared component library name from
+ <what_ever_component>_DnC_<stub> to <What_ever_component>_<stub>,
+ since it doesn't make sense to let the modelers to put _DnC
+ trailing a component name.
+
+ The same change applied to _svnt and _exec libraries.
+
+ * DAnCE/examples/BasicSP/descriptors/basicNodeDaemon.pl
+
+ Fixed this script since Some earlier cosmetic change make
+ this perl script broken.
+
+ Thanks Steven Baker <Steven_D_Baker@raytheon.com> and
+ Sam Abbe <sam_abbe@raytheon.com> to pointing errors to
+ run this example.
+
+Sat Jan 15 15:16:14 2005 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/examples/BasicSP/README.html
+
+ Updated this README file for instructions on running the BasicSP
+ example by using DAnCE. Thanks Sam Abbe <sam_abbe@raytheon.com>
+ for pointing errors on this document page. This fixes bugid
+ 2031.
+
+Mon Jan 10 09:45:14 2005 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * DAnCE/RTNodeApplication/RTServer_Impl.h:
+ * DAnCE/RTNodeApplication/RTServer_Impl.cpp: Removed init method
+ altogether. VC6 can't handle the syntax and we'll deal with
+ later.
+
+Fri Jan 7 10:02:02 2005 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * DAnCE/RTNodeApplication/RTServer_Impl.cpp (init): Changed to
+ call the virtual function defined by the parent explicitly with
+ this pointer to work around a VC6 bug.
+
+Wed Jan 5 15:20:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/DomainApplicationManager/Deployment_Configuration.inl:
+ * DAnCE/tests/Config_Handlers/Handler_Test.i:
+ Removed inl/i file, updated h,cpp
+
+Wed Jan 5 14:57:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Assembly_Deployer/Deployment_Configuration.{h,cpp,inl}:
+ * tools/XML_Helpers/XML_Utils.{h,cpp,inl}:
+ Removed inl file, updated h,cpp
+
+Wed Jan 5 10:45:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/RTNodeApplication/RTServer_Impl.h:
+ Fixed compile problem in emulated exception builds due to
+ incorrect environment macro
+
+Mon Jan 3 10:01:09 2005 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * DAnCE/RTNodeApplication/README:
+ * DAnCE/RTNodeApplication/NodeApplication_Task.cpp:
+ * DAnCE/RTNodeApplication/NodeApplication_Task.h:
+ * DAnCE/RTNodeApplication/NodeApplication_Task.inl:
+ * DAnCE/RTNodeApplication/RTNodeApplication.cpp:
+ * DAnCE/RTNodeApplication/RTNodeApplication.mpc:
+ * DAnCE/RTNodeApplication/RTServer_Impl.cpp:
+ * DAnCE/RTNodeApplication/RTServer_Impl.h:
+ * DAnCE/RTNodeApplication/RTServer_Impl.inl:
+ * DAnCE/RTNodeApplication/senv.sh: Added a minimal
+ real-time-enabled NodeApplication server.
+
+Mon Jan 3 12:20:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/CCM_Core.mpc:
+ * DAnCE/ciao/CCM_Core.mpc:
+ Added ciaoversion as base project to all projects so that SOVERSION
+ is set to the correct version number in the GNU makefiles
+
+Thu Dec 30 13:24:16 2004 Chris Cleeland <cleeland@ociweb.com>
+
+ * CIAO version 0.4.3 released.
+
+
diff --git a/modules/CIAO/ChangeLogs/ChangeLog-06b b/modules/CIAO/ChangeLogs/ChangeLog-06b
new file mode 100644
index 00000000000..b7797cca18a
--- /dev/null
+++ b/modules/CIAO/ChangeLogs/ChangeLog-06b
@@ -0,0 +1,2752 @@
+Fri Nov 17 16:08:43 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * performace-tests/Protocols/common/Protocols_svnt_export.h:
+
+ Removed this file, renamed as the one added below.
+
+ * performace-tests/Protocols/common/Protocols_skel_export.h:
+
+ New file, renamed from the one removed above.
+
+ * performace-tests/Protocols/Sender/Sender.idl:
+ * performace-tests/Protocols/Sender/Sender.mpc:
+ * performace-tests/Protocols/Receiver/Receiver.mpc:
+ * performace-tests/Protocols/Receiver/Receiver.idl:
+ * performace-tests/Protocols/common/Protocols.mpc:
+ * performace-tests/Protocols/common/Protocols.idl:
+
+ Fixes to incorrect generation by generate_component_mpc.pl,
+ similar to those in
+
+ Wed Nov 15 19:56:46 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ Also removed include of Components.idl from Protocols.idl,
+ since it contains no component or eventtype declarations,
+ and added the include to Sender.idl and Receiver.idl.
+
+Thu Nov 16 14:41:24 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tests/Bug_2130_Regression/interfaces/ENW_svnt_export.h:
+ * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base_svnt_export.h:
+
+ Removed these files, added as renamed below.
+
+ * tests/Bug_2130_Regression/interfaces/ENW_skel_export.h:
+ * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base_skel_export.h:
+
+ New files, renamed from those removed above.
+
+ * tests/Bug_2130_Regression/interfaces/ENW.mpc:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.mpc:
+ * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.mpc:
+ * docs/tutorials/Quoter/Simple/Distributor/Distributor.mpc:
+ * docs/tutorials/Quoter/Simple/Broker/Broker.mpc:
+
+ Fixes to incorrect generation by generate_component_mpc.pl,
+ similar to those in
+
+ Wed Nov 15 19:56:46 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+Wed Nov 15 19:56:46 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/Display/Display_Base/Display_Base_svnt_export.h:
+
+ Removed this file, and added it as named below.
+
+ * examples/Display/Display_Base/Display_Base_skel_export.h:
+
+ New file, renamed from the one removed above.
+
+ * examples/Display/Display_Base/Display_Base.mpc:
+
+ Fixed incorrect export macros that were originally generated
+ by generate_component_mpc.pl. Also removed the -GT IDL
+ compiler command line option, which generated unnecessar
+ tie classes and template files (added by a base MPC project),
+ and made cosmetic changes to line breaks. Finally,
+ renamed project Display_Base_svnt to Display_Base_skel,
+ to eliminate confusion since the projects in this MPC
+ file are object-based, not component-based. The export
+ macros and export include files were also renamed, as
+ described above, consistently with these last changes.
+
+ * examples/GPS/GPS.mpc:
+ * examples/NavDisplay/NavDisplay.mpc:
+ * examples/RateGen/RateGen.mpc:
+
+ Renamed references to the Display_Base_svnt lib to be
+ consistent with the name change above, removed -GT
+ from the command line options passed to the IDL compiler,
+ and added -SS (suppress skeleton file generation) and
+ -St (suppress typecode and Any operator generation) from
+ *_svnt projects, and removed 'idlflags' line from
+ *_exec projects without IDL files.
+
+Wed Nov 15 10:30:00 UTC 2006 Simon Massey <sma@prismtech.com>
+
+ * NEWS:
+
+ Entries submitted by Shanshan Jiang and Johnny Willemsen.
+
+Tue Nov 14 16:27:55 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/Null_Component/Null_Component.mpc:
+
+ Updated lib names in 'libs +=...' lines, overlooked in
+
+ Mon Nov 13 16:54:47 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+Tue Nov 14 09:00:00 UTC 2006 Simon Massey <sma@prismtech.com>
+
+ * NEWS:
+
+ Entry submitted by Boris Kolpackov.
+
+Mon Nov 13 16:54:47 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/Null_Component/Null_Interface_svnt_export.h:
+
+ Removed this file, renamed as below.
+
+ * examples/Null_Component/Null_Interface_skel_export.h:
+
+ Added this file, renamed from removed file above.
+
+ * examples/Null_Component/Null_Interface.mpc:
+
+ Renamed several things corresponding to the renaming
+ change above and replace export macro definition in
+ the skel project with separate stub and skel export
+ macro definitions and corresponding included. Also
+ added typecode/Any suppression command line option
+ -St to IDL compiler execution for both stub and skel
+ projects, and reduced MPC base project dependencies
+ (and thus link dependencies) to a minimum.
+
+ * examples/Null_Component/Null_Component.mpc:
+ * examples/Null_Component/StaticDAnCEApp.mpc:
+
+ Renamed items corresponding to change above.
+
+Fri Nov 10 16:10:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/Hello/Hello_Base/Hello_Base.mpc:
+ * examples/Hello/Receiver/Receiver.mpc:
+ * examples/Hello/Sender/Sender.mpc:
+ Removed deprecated -Sc option from idlflags
+
+Wed Nov 8 20:56:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/Null_Component/*:
+ Added some modelling files I got also from Abdul and removed the .ccd file
+ I committed by accident
+
+Wed Nov 8 14:24:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/StaticConfigurator/StaticDAnCEParser.cpp:
+ Fixed a small memory leaks and other problems. This fixes bugzilla
+ 2692. Thanks to Sowayan Abdullah <abdullah dot sowayan at lmco dot com>
+ for reporting these issues.
+
+ * DAnCE/NodeApplicationManager/ImplementationInfo.cpp:
+ A few small improvements
+
+Sun Nov 5 19:16:57 UTC 2006 Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp:
+ Removed the use of STL iostream.
+ Use ACE DLL decorator, prefix, suffix for DLL file names.
+
+ * DAnCE/RepositoryManager/PC_Updater.cpp:
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp:
+ * DAnCE/RepositoryManager/RMadmin.cpp:
+ Removed the use of STL iostream.
+
+Fri Nov 3 03:03:24 UTC 2006 Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp
+ * DAnCE/RepositoryManager/PC_Updater.cpp
+ Modified these files to differentiate the location field of
+ deploymentplan for different platforms.
+
+Thu Nov 2 22:54:12 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServnatSourceGenerator.cpp:
+
+ Added generation of code to register eventtype factories with
+ the container ORB for components with publish and emit ports
+ (generation of such registration for components with consume
+ ports already existed). This additional registration is necessary
+ if the component sends an event using a CIAO Event Service
+ event channel that is collocated with it.
+
+Thu Nov 2 20:22:46 UTC 2006 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client.cpp (main):
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_simple.cpp (main):
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_dynamic.cpp (main):
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_ex.cpp:
+ * DAnCE/NodeManager/Node_Manager.cpp (main): Replaced exit() with
+ ACE_OS::exit(). Thanks to Abdul Sowayan for reporting this.
+ This fixes bugid #2695.
+
+Mon Oct 30 19:13:03 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tests/IDL3/Events/Any/EventAny.idl:
+ * tests/IDL3/Events/Any/Any.mpc:
+ * tests/IDL3/Events/Any/main.cpp:
+ * tests/IDL3/Events/Any/README:
+ * tests/IDL3/Events/Any/run_test.pl:
+
+ New test, to ensure that IDL eventtypes are
+ inserted/extracted from Anys correctly, and that
+ the resulting Anys are marshaled/demarshaled
+ correctly.
+
+ * tests/IDL3/Events/Regular/Regular.mpc:
+
+ Added backslashes to shorted 'idlflags' line.
+
+Mon Oct 30 13:26:00 UTC 2006 Simon Massey <sma@prismtech.com>
+
+ * DAnCE/TargetManager/CmpClient.cpp
+ BUILDCZAR removing old scoreboard warning.
+
+Thu Oct 26 14:37:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/StaticConfigurator/StaticDAnCEParser.cpp:
+ Use ACE_OS methods, this fixes bugzilla 2691.
+ Thanks to Sowayan Abdullah <abdullah dot sowayan at lmco dot com>
+ for reporting this issue
+
+Wed Oct 25 14:54:03 UTC 2006 Boris Kolpackov <boris@codesynthesis.com>
+
+ * CCF/CCF/IDL2/SemanticAction/Impl/Const.cpp:
+ * CCF/CCF/CIDL/SemanticAction/Composition.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Uses.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Provides.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Component.hpp:
+ * CCF/CCF/IDL3/SemanticAction/EventType.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Home.hpp:
+
+ Minor fixes and cleanups.
+
+ * CCF/CCF/IDL2/Parsing/Recovery.hpp:
+ * CCF/CCF/IDL2/Parser.hpp:
+ * CCF/CCF/IDL2/Parser.cpp:
+ * CCF/CCF/CIDL/Parser.hpp:
+ * CCF/CCF/CIDL/Parser.cpp:
+ * CCF/CCF/IDL3/Parser.hpp:
+ * CCF/CCF/IDL3/Parser.cpp:
+
+ Added syntax errors to every grammar rule.
+
+Wed Oct 25 11:02:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/Null_Component/StaticDAnCEApp.mpc:
+ Enabled this project in all builds
+
+Mon Oct 23 19:35:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ Added missing CORBA::string_dup to fix crash with BCB
+
+Fri Oct 20 06:41:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/StaticConfigurator/StaticDAnCEParser.cpp:
+ Changed the HomeAttributes generation in such a way that it
+ also compiles with BCB6
+
+ * examples/Null_Component/*:
+ New example, a component with just one interface. This can be used
+ to analyze the core footprint and see what we can reduce
+ Thanks to Sowayan Abdullah <abdullah dot sowayan at lmco dot com>
+ for creating this example
+
+Thu Oct 19 23:22:49 UTC 2006 Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+
+ * DAnCE/RepositoryManager/RepositoryManager.mpc
+ Modified this file to make sure RepositoryManager project is built
+ after minizip project.
+
+Thu Oct 19 10:47:12 UTC 2006 xiong,ming <ming.xiong@vanderbilt.edu>
+
+ * DAnCE/TargetManager/CmpClient.cpp
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client.cpp
+ * examples/BasicSP/EC/controller.cpp
+ * examples/Display/RateGen/controller.cpp
+ * tests/Bug_2130_Regression/SEC_CheckPoint/controller.cpp
+ Changed the naked atoi () to ACE_OS::atoi (), again thanks to Abdul
+ for reporiting this.
+
+Wed Oct 18 14:00:04 UTC 2006 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * docs/tutorials/Quoter/Simple/Distributor/Distributor.cpp
+ (parse_args): Changed the naked atoi() to ACE_OS::atoi().
+ Thanks to Abdul for reporting this.
+
+Wed Oct 18 12:05:00 UTC 2006 Simon Massey <sma@prismtech.com>
+
+ * DAnCE/TargetManager/DomainDataManager.cpp
+ Removed warnings about unused local variables (line 186 & 558)
+
+Wed Oct 18 09:50:00 UTC 2006 Simon Massey <sma@prismtech.com>
+
+ * DAnCE/TargetManager/CmpClient.cpp
+ Removed warning about unused local variable (line 154)
+
+Tue Oct 17 21:23:27 UTC 2006 Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+
+ * DAnCE/RepositoryManager/README
+ * DAnCE/RepositoryManager/RepositoryManager.mpc
+ * DAnCE/RepositoryManager/ZIP_Wrapper.cpp
+ * DAnCE/RepositoryManager/ZIP_Wrapper.h
+ Updated these files to use minizip under $ACE_ROOT/contrib/minizip.
+
+Tue Oct 17 13:40:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp:
+ Several small layout changes and use ACE_ERROR for
+ errors
+
+Tue Oct 17 13:30:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeApplication/RTNodeApp_Configurator.{h,cpp}:
+ Moved destructor implementation to cpp file
+
+Tue Oct 17 13:10:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeManager/CIAO_Monitor.h:
+ Doxygen improvements
+
+ * DAnCE/NodeManager/NAM_Map.{h,cpp}:
+ Made is_available a const method
+
+ * DAnCE/NodeManager/Node_Manager.cpp:
+ Use bool
+
+ * DAnCE/NodeManager/Node_Manager_Impl.cpp:
+ Use ACE_ERROR together with LM_ERROR
+
+Tue Oct 17 12:32:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/DomainApplicationManager/Deployment_Configuration.cpp:
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * DAnCE/NodeApplication/RTConfig_Manager.cpp:
+ Use ACE_ERROR together with LM_ERROR
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.inl:
+ Initialise pointers with 0
+
+ * DAnCE/NodeApplication/Configurator_Factory.{h,cpp}:
+ * DAnCE/NodeApplication/Container_Impl.cpp:
+ * DAnCE/NodeApplication/NodeApplication_Core.cpp:
+ Use bool and const improvements, doxygen improvements
+
+Mon Oct 16 19:52:15 UTC 2006 Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.h
+ Updated the re_launch_plan () function for Repoman integration.
+
+ * DAnCE/RepositoryManager/README
+ * DAnCE/RepositoryManager/RepositoryManager.cpp
+ * DAnCE/RepositoryManager/RepositoryManager.mpc
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.h
+ * examples/BasicSP/RepoMan_Usage.html
+ Fixed some warnings on Liunx.
+ Fixed the "Deamon" typos.
+
+Mon Oct 16 15:11:40 UTC 2006 Nilabja R <nilabjar@dre.vanderbilt.edu>
+
+ * DAnCE/TargetManager/TM_Client.mpc:
+ Fixed the linking error in Mac and in FC5 Static
+
+Mon Oct 16 11:20:00 UTC 2006 Simon Massey <sma@prismtech.com>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc
+ BUILD CZAR. Due to the removal of
+ DAnCE/NodeApplication/NodeApp_Configurator.cpp to correct
+ the fuze error below, this "other" project's MPC needed to
+ be updated. (Why is this dependancy here?)
+
+Mon Oct 16 11:20:00 UTC 2006 Simon Massey <sma@prismtech.com>
+
+ * DAnCE/NodeApplication/NodeApp_Configurator.cpp
+ * DAnCE/TargetManager/DomainEvents.idl
+ BUILD CZAR. Removed Fuzz errors after no user action to correct.
+
+Mon Oct 16 08:35:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/ADD_Handler.cpp:
+ * tools/Config_Handlers/DP_Handler.cpp:
+ * tools/Config_Handlers/IDREF_Base.cpp:
+ * tools/Config_Handlers/Package_Handlers/CPD_Handler.cpp:
+ * tools/Config_Handlers/RT-CCM/PS_Handler.cpp:
+ * RACE/Input_Adapters/LocationUpdater/LocationUpdater_exec.cpp
+ * RACE/Input_Adapters/PlanGenerator/PlanGenerator_exec.cpp
+ * DAnCE/RepositoryManager/
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp:
+ Use ACE_ERROR together with LM_ERROR
+
+ * RACE/Controller/Component/Controller.idl:
+ Changed some comments to doxygen style
+
+ * DAnCE/RepositoryManager/PC_Updater_T.cpp:
+ Const change
+
+ * DAnCE/RepositoryManager/RepositoryManager.cpp:
+ Layout changes
+
+ * DAnCE/RepositoryManager/RM_Helper.cpp:
+ Use strcmp to compare two strings and several layout changes
+
+ * DAnCE/RepositoryManager/RM_Helper.h:
+ * DAnCE/RepositoryManager/ZIP_Wrapper.h:
+ Doxygen changes
+
+ * DAnCE/RepositoryManager/RMadmin.cpp:
+ Documentation changes
+
+ * DAnCE/RepositoryManager/URL_Parser.{h,cpp}:
+ Use bool for debug_
+
+ * DAnCE/RepositoryManager/ZIP_Wrapper.cpp:
+ Initialise pointers with 0
+
+Mon Oct 16 08:35:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/StaticConfigurator/StaticDAnCEApp.mpc.tmpl:
+ Simplified this file by using the new ciao_static_dnc_app base
+ project.
+
+Fri Oct 13 17:57:12 2006 John S. Kinnebrew <john.s.kinnebrew@vanderbilt.edu>
+
+ * docs/schema/SANet_Network.xsd
+ * docs/schema/Task_Map.xsd
+
+ Added SA-POP schemas.
+
+Fri Oct 13 17:54:58 UTC 2006 Nilabja Roy <nilabjar@dre.vanderbilt.edu>
+
+ * DAnCE/TargetManager/TargetManager.mpc:
+ Addressed the problems coming up in Mac. Changed the project
+ inheritence of the TM Component.
+
+Fri Oct 13 17:43:29 UTC 2006 Nilabja Roy <nilabjar@dre.vanderbilt.edu>
+
+ * DAnCE/TargetManager/DomainDataManager.cpp:
+ Addressed an error in the last check-in.
+
+Thu Oct 12 17:36:58 UTC 2006 Nilabja Roy <nilabjar@dre.vanderbilt.edu>
+
+ * DAnCE/TargetManager/CmpClient.cpp:
+ * DAnCE/TargetManager/DomainDataManager.h:
+ * DAnCE/TargetManager/DomainDataManager.cpp:
+ * DAnCE/TargetManager/DomainEvents.idl:
+ * DAnCE/TargetManager/TM_Client.mpc:
+ * DAnCE/TargetManager/TargetManager.idl:
+ * DAnCE/TargetManager/TargetManager.mpc:
+ * DAnCE/TargetManager/TargetManagerExt.idl:
+ * DAnCE/TargetManager/TargetManager_exec.h:
+ * DAnCE/TargetManager/TargetManager_exec.cpp:
+ Added the functionality to detect any add/delete to the Domain.
+ Added the feature to relay events to anyone interested for the above.
+
+ * DAnCE/TargetManager/descriptors/run_test_TargetManager.pl:
+ Changed the test script to test the above
+
+Tue Oct 10 19:13:12 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/StaticConfigurator/StaticDAnCEApp.cpp.tmpl:
+ Fixed compile error.
+ Thanks to Sowayan Abdullah <abdullah dot sowayan at lmco dot com>
+ for reporting this.
+
+Tue Oct 10 17:56:51 UTC 2006 Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.h
+ Modify these files to get the artifacts names when using http reference.
+
+Tue Oct 10 14:24:12 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp:
+ Layout improvements, use ACE_ERROR with LM_ERROR
+
+ * DAnCE/ExecutionManager/DAM_Map.cpp:
+ Const improvements
+
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.h:
+ Layout changes
+
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ Use ACE_ERROR with LM_ERROR
+
+ * DAnCE/NodeApplicationManager/ImplementationInfo.h:
+ Documentation improvements
+
+ * DAnCE/NodeApplicationManager/ImplementationInfo.cpp:
+ Const improvements
+
+ * DAnCE/NodeApplicationManager/HTTP_Handler.cpp:
+ Const improvements
+
+Tue Oct 10 09:28:12 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/CCM_Base.idl:
+ Removed a remark about RTF 1.1, method is now according to the spec
+
+ * ciao/CCM_Component.idl:
+ * ciao/CCM_Container.idl:
+ * ciao/CCM_Event.idl:
+ * ciao/Deployment.idl:
+ * ciao/Target_Data.idl
+ Updated some documentation and added some todos about things which
+ are CIAO specific
+
+ * ciao/Server_init.cpp:
+ With LM_ERROR use ACE_ERROR
+
+ * ciao/Dynamic_Component_Activator.{h,cpp}:
+ Removed some invalid comments and a mutex that was not used at all
+
+ * ciao/Context_Impl_Base.h:
+ Documentation update
+
+Thu Oct 05 00:35:37 2006 William R. Otte wotte@dre.vanderbilt.edu
+
+ * CIAO version 0.5.3 released.
+
+Wed Oct 4 08:12:24 UTC 2006 Boris Kolpackov <boris@codesynthesis.com>
+
+ * NEWS:
+
+ Updated with entries for the CIDL compiler work.
+
+Tue Oct 3 15:16:40 UTC 2006 Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+
+ * NEWS:
+
+ Updated the NEWS to add the changes for Repoman and Plan_Generator
+ projects.
+
+Tue Oct 3 12:49:16 UTC 2006 xiong,ming <ming.xiong@vanderbilt.edu>
+
+ * NEWS:
+
+ Updated the NEWS to add the changes for CoSMIC Quoter tutorial
+
+Mon Oct 2 09:28:58 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * docs/index.html:
+ Corrected linked to OMG spec
+
+Mon Oct 2 08:58:58 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ Set the nodemanager in the static nodeapplication manager.
+ Thanks to Sowayan Abdullah <abdullah dot sowayan at lmco dot com>
+ for reporting this.
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h:
+ Doxygen improvement
+
+Thu Sep 28 16:47:58 UTC 2006 Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc:
+ Added the base projects to Plan_Launcher_Impl project to include
+ required libs. Added null head files to the Plan_Launcher project to
+ remove the unnecessary dependency on other libs.
+
+Thu Sep 28 15:57:53 UTC 2006 Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc:
+ Fixed the "undefined reference" error on FC5_Static build.
+
+ * DAnCE/Plan_Generator/Plan_Generator_Impl.cpp:
+ Modified this file to handle the possible RepoMan null reference error.
+
+Tue Sep 26 21:05:48 UTC 2006 Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp:
+ Fixed the "conversion from '_var' to 'CORBA::Object*'" warning.
+
+Tue Sep 26 15:52:12 UTC 2006 Boris Kolpackov <boris@codesynthesis.com>
+
+ * docs/tutorials/Quoter/Simple/Broker/Broker.cidl:
+ * docs/tutorials/Quoter/Simple/Distributor/Distributor.cidl:
+
+ Added missing semicolons.
+
+Mon Sep 25 23:19:15 UTC 2006 Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp:
+ Modified the fetch_reference_naming () to remove its arguments related
+ to Repoman.
+
+ * DAnCE/Plan_Generator/PCVisitor.h:
+ Adjusted the order of the data members of Plan_Generator_i class.
+
+
+Mon Sep 25 19:46:37 UTC 2006 Nishanth Shankaran <nshankar@dre.vanderbilt.edu>
+
+ * DAnCE/Plan_Generator/Plan_Generator.mpc (project): Fixed the MPC
+ file by removing the "requires += RepositoryManager" as this
+ project, as well as other projects that depend on this, will not
+ be built unless RepositoryManager=1 is set.
+
+Mon Sep 25 14:42:03 UTC 2006 Nishanth Shankaran <nshankar@dre.vanderbilt.edu>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc: Fixed the mpc file.
+
+Mon Sep 25 13:06:05 UTC 2006 Boris Kolpackov <boris@codesynthesis.com>
+
+ * CCF/CCF/IDL2/SemanticAction/Operation.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Operation.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Factory.cpp:
+ * CCF/CCF/CIDL/SemanticAction/Composition.cpp:
+ * CCF/CCF/CIDL/SemanticAction/Composition.hpp:
+
+ Move some operator<< operators to the global scope so that they
+ do not hide others.
+
+Sun Sep 24 21:06:07 UTC 2006 Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.h
+ Removed the unnecessary Repoman head file.
+
+Sat Sep 23 04:31:13 UTC 2006 Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.h
+ * DAnCE/RepositoryManager/RMadmin.cpp
+ * ciao/RepositoryManager.idl
+ Added the replace argument in installPackage () and createPackage ()
+ functions and extend the functionalities of these two functions based
+ on the latest D&C spec.
+
+Sat Sep 23 04:07:59 UTC 2006 Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+
+ * DAnCE/Plan_Generator
+ * DAnCE/Plan_Generator/PCVisitor.cpp
+ * DAnCE/Plan_Generator/PCVisitor.h
+ * DAnCE/Plan_Generator/PCVisitorBase.cpp
+ * DAnCE/Plan_Generator/PCVisitorBase.h
+ * DAnCE/Plan_Generator/PCVisitorBase.inl
+ * DAnCE/Plan_Generator/Plan_Generator.mpc
+ * DAnCE/Plan_Generator/Plan_Generator_Impl.cpp
+ * DAnCE/Plan_Generator/Plan_Generator_Impl.h
+ * DAnCE/Plan_Generator/Plan_Generator_Impl_Export.h
+ Added these files which implement the Plan_Generator project. This
+ project is used to retrieve information from Repoman and generate/modify
+ DeploymentPlans based on different demands.
+
+ * DAnCE/Planner
+ * DAnCE/Planner/Node_T.cpp
+ * DAnCE/Planner/Node_T.h
+ * DAnCE/Planner/Node_T.inl
+ * DAnCE/Planner/PCVisitor.cpp
+ * DAnCE/Planner/PCVisitor.h
+ * DAnCE/Planner/PCVisitorBase.cpp
+ * DAnCE/Planner/PCVisitorBase.h
+ * DAnCE/Planner/PCVisitorBase.inl
+ * DAnCE/Planner/Planner.cpp
+ * DAnCE/Planner/Planner.mpc
+ Deleted these files. The planner project has been replaced by the more
+ useful Plan_Generator project.
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.h
+ Modified these files.
+
+ * DAnCE/Plan_Generator/PCVisitor.cpp
+ * DAnCE/Plan_Generator/PCVisitor.h
+ * DAnCE/Plan_Generator/PCVisitorBase.cpp
+ * DAnCE/Plan_Generator/PCVisitorBase.h
+ * DAnCE/Plan_Generator/PCVisitorBase.inl
+ Deleted these files.
+ Removed the Plan_Launcher's dependence on RepoMan. Use Plan_Generator
+ to retrieve information from Repoman and generate/modify DeploymentPlans.
+
+Fri Sep 22 09:27:25 UTC 2006 Boris Kolpackov <boris@codesynthesis.com>
+
+ * CCF/CCF/IDL2/SemanticGraph/Fundamental.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Interface.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Operation.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Fundamental.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Interface.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Operation.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/String.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/ValueTypeMember.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Enum.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/IntExpression.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/String.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/ValueTypeMember.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Elements.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/ValueType.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/IntExpression.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Name.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Elements.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Fundamental.hpp.m4:
+ * CCF/CCF/IDL2/SemanticGraph/ValueType.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Array.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Name.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Union.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Native.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Union.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Attribute.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Exception.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Translation.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/TypeId.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Graph.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Attribute.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Sequence.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Member.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Fundamental.cpp.m4:
+ * CCF/CCF/IDL2/SemanticGraph/Sequence.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Literals.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Graph.tpp:
+ * CCF/CCF/IDL2/SemanticGraph/Literals.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Struct.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Module.hpp:
+
+ * CCF/CCF/CIDL/SemanticGraph/Executor.cpp:
+ * CCF/CCF/CIDL/SemanticGraph/Composition.cpp:
+ * CCF/CCF/CIDL/SemanticGraph/Executor.hpp:
+ * CCF/CCF/CIDL/SemanticGraph/Composition.hpp:
+
+ * CCF/CCF/IDL3/SemanticGraph/Component.cpp:
+ * CCF/CCF/IDL3/SemanticGraph/EventType.cpp:
+ * CCF/CCF/IDL3/SemanticGraph/Component.hpp:
+ * CCF/CCF/IDL3/SemanticGraph/EventType.hpp:
+ * CCF/CCF/IDL3/SemanticGraph/Home.hpp:
+
+
+ Add file name and line information to every semantic
+ graph node. This information is used in diagnostics.
+
+
+ * CCF/CCF/IDL2/SemanticAction/Typedef.hpp:
+ * CCF/CCF/IDL2/SemanticAction/NumericExpression.hpp:
+
+ Adjust semantic actions interface to provide a way to derive
+ line numbers.
+
+
+ * CCF/CCF/IDL2/SemanticAction/Impl/Operation.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Interface.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Enum.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Operation.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/ValueTypeMember.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/ValueType.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Elements.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/NumericExpression.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Native.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/NumericExpression.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Union.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Exception.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/TypeId.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Typedef.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Attribute.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Typedef.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/ValueTypeFactory.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Factory.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Member.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Factory.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Include.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Struct.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Module.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Const.cpp:
+
+ * CCF/CCF/IDL3/SemanticAction/Impl/Publishes.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Component.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Factory.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/EventTypeFactory.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Uses.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/HomeFinder.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/HomeFactory.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Emits.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/EventType.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Include.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Home.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Include.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Provides.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Consumes.cpp:
+
+ * CCF/CCF/CIDL/SemanticAction/Impl/Composition.cpp:
+ * CCF/CCF/CIDL/SemanticAction/Impl/HomeExecutor.cpp:
+
+ Propagate file name and line number from tokens to semantic
+ graph nodes. Use file and line numbers when printing error
+ messages.
+
+
+ * CCF/CCF/IDL2/Token.hpp:
+ * CCF/CCF/IDL2/Parser.hpp:
+ * CCF/CCF/IDL2/Parser.cpp:
+
+ Fix a number of bugs in error handling and recover.
+
+
+ * CIDLC/cidlc.cpp:
+
+ Use file name and line number when creating the translation
+ unit object.
+
+
+Wed Sep 20 04:05:42 UTC 2006 xiong,ming <ming.xiong@vanderbilt.edu>
+
+ * docs\tutorials\CoSMIC\02.html
+
+ Added some useful links to various resources to help readers reduce
+ learning curve.Added a small section that mentions that a Node Map file
+ has to be created in order to get Quoter example working. Again,
+ Thanks to Sowayan Abdullah from LMCO for his help in improving the
+ cosmic documentations.
+
+
+Mon Sep 18 03:26:22 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Utils/XML_Helper.h
+
+ Fixed compile error by removing extra ;.
+
+Fri Sep 15 21:28:47 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * ciao/Deployment_Core.idl
+
+ Removed the unnecessary event type definition for RTEC since
+ they are no longer used.
+
+Sun Sep 10 09:20:18 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Utils/XML_Helper.cpp
+ * tools/Config_Handlers/Utils/XML_Helper.h
+
+ Removed workaround from previous commit, as Ossama Othman has
+ provided the proper fix in the G++ macros.
+
+Fri Sep 8 00:28:27 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Utils/XML_Helper.cpp
+ * tools/Config_Handlers/Utils/XML_Helper.h
+
+ Made the export declaration on the singleton typedef
+ contingent on a Microsoft compiler, as the GCC included
+ with FC5 was not defining the symbol as a result.
+
+Fri Sep 1 03:09:38 UTC 2006 xiong,ming <ming.xiong@vanderbilt.edu>
+
+ * docs\tutorials\CoSMIC\index.html
+ * docs\tutorials\CoSMIC\01.html
+
+ Updated index.html to change the cosmic version.Updated 01.html
+ to reflect recent changes of idl_to_picml. Thanks to Sowayan Abdullah
+ from LMCO for his help in improving the cosmic documentations.
+
+Thu Aug 31 22:45:09 UTC 2006 Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+
+ * DAnCE/RepositoryManager/RepositoryManager.mpc
+ Modified this file to include $(CIAO_ROOT)/tools/Config_Handlers
+ in the RMAdmin project.
+
+Wed Aug 30 17:16:18 UTC 2006 Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+
+ * tools/Config_Handlers/Package_Handlers/Package_Handlers.mpc
+ Added more changes to this file to fix the "reference to
+ ACE_Singleton<CIAO::Config_Handlers::XML_Helper, ACE_Null_Mutex>
+ ::instance()'"warnings with FC5_Static build.
+
+Tue Aug 29 23:08:20 UTC 2006 Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+
+ * tools/Config_Handlers/Package_Handlers/Package_Handlers.mpc
+ Fixed the "reference to `ACE_Singleton<CIAO::Config_Handlers
+ ::XML_Helper, ACE_Null_Mutex>::instance()'"warnings with
+ FC5_Static build.
+
+ * DAnCE/RepositoryManager/RMadmin.cpp
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp
+ Removed unnecessary using of CIAO::Config_Handlers::XML_Helper.
+
+Mon Aug 28 12:53:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Container_Base.cpp:
+ Fixed some compile warnings with gcc 2.96
+
+Thu Aug 24 15:44:08 UTC 2006 Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.cpp
+ Changed some of the command-line options.
+
+ * examples/BasicSP/RepoMan_Usage.html
+ Made some minor changes.
+
+Thu Aug 24 000:41:16 UTC 2006 Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+
+ * DAnCE/Plan_Launcher/PCVisitor.cpp
+ * DAnCE/Plan_Launcher/PCVisitor.h
+ * DAnCE/Plan_Launcher/PCVisitorBase.cpp
+ * DAnCE/Plan_Launcher/PCVisitorBase.h
+ Solved the "'class has virtual functions but non-virtual destructor"
+ warnings.
+
+Wed Aug 23 17:57:15 UTC 2006 Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+
+ * DAnCE/Plan_Launcher/PCVisitorBase.h
+ Solved the "invalid use of undefined type 'struct PCVisitorBase'"
+ warnings.
+
+Wed Aug 23 15:22:36 UTC 2006 Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+
+ * DAnCE/Plan_Launcher/PCVisitor.cpp
+ Solved the "unused parameter" warning.
+
+Wed Aug 23 000:04:06 UTC 2006 Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+
+ * DAnCE/RepositoryManager/README
+ Made some minor changes.
+
+Wed Aug 23 000:00:43 UTC 2006 Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+
+ * examples/BasicSP/descriptors/basicNodeDaemon.pl
+ Use "$ENV{'ACE_ROOT'}/bin" to point to the location of lib file.
+
+Tue Aug 22 23:47:06 UTC 2006 Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.h
+ Modified these files for RepoMan integration.
+
+ * DAnCE/Plan_Launcher/PCVisitor.cpp
+ * DAnCE/Plan_Launcher/PCVisitor.h
+ * DAnCE/Plan_Launcher/PCVisitorBase.cpp
+ * DAnCE/Plan_Launcher/PCVisitorBase.h
+ * DAnCE/Plan_Launcher/PCVisitorBase.inl
+ Added these files for RepoMan integration.
+
+ * examples/BasicSP/RepoMan_Usage.html
+ Added this file, which explains how to run the BasicSP example using
+ the integrated RepoMan.
+
+Mon Aug 21 15:19:25 UTC 2006 Nishanth Shankaran <nshankar@dre.vanderbilt.edu>
+
+ * examples/Hello/descriptors/run_test.pl:
+ * examples/Hello/descriptors/run_test_without_ns.pl: Fixed the
+ environment variable DANCE_ROOT to point to CIAO_ROOT/DAnCE.
+
+Thu Aug 17 16:09:09 UTC 2006 Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+
+ * DAnCE/RepositoryManager/Options.cpp
+ * DAnCE/RepositoryManager/RMadmin.cpp
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.h
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp
+ Reimplemented the findNamesByType () and getAllTypes () operations
+ of Repository Manager, which use the newly generated
+ ACE_Hash_MultiMap_Manager class and its corresponding classes.
+
+Mon Aug 14 15:46:34 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Utils/XML_Helper.h
+
+ Fixed a compile error for pedantic GCC4.
+
+Sun Aug 13 15:18:00 UTC 2006 Boris Kolpackov <boris@codesynthesis.com>
+
+ * CCF/CCF/CodeGenerationKit/Regex.hpp:
+
+ Reimplemented regex wrapper to allow building CIDLC on
+ platforms without wchat_t support (e.g., Cygwin/Mingw).
+
+Fri Aug 11 11:46:17 UTC 2006 Boris Kolpackov <boris@codesynthesis.com>
+
+ * CCF/CCF/IDL2/SemanticGraph/Name.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Name.hpp:
+
+ Added support for IDL (underscore) escaping. Added support
+ for custom name printers.
+
+ * CIDLC/UnescapedNamePrinter.hpp:
+
+ Name printer that prints names unescaped (without the IDL
+ underscore).
+
+ * CIDLC/CxxNamePrinter.cpp:
+ * CIDLC/CxxNamePrinter.hpp:
+
+ Name printer that escapes C++ keywords.
+
+ * CIDLC/CorbaTypeNameEmitters.cpp:
+ * CIDLC/DescriptorGenerator.cpp:
+ * CIDLC/ExecImplHeaderGenerator.cpp:
+ * CIDLC/ExecImplSourceGenerator.cpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/RepositoryIdGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+ * CIDLC/ExecImplGenerator.cpp:
+ * CIDLC/UtilityTypeNameEmitters.cpp:
+ * CIDLC/ServantGenerator.cpp:
+ * CIDLC/CompositionEmitter.cpp:
+
+ Updated to handle IDL and C++ name escaping. This fixes
+ bugzilla bug #2427.
+
+Fri Aug 11 07:30:35 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Utils/XML_Helper.h
+ * DAnCE/RepositoryManager/RMadmin.cpp
+
+ Fixes for a compiler error in the version of GCC shipped with
+ FC5.
+
+Wed Aug 9 18:53:48 UTC 2006 Jaiganesh B <jai.dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/ImplementationInfo.cpp:
+ DAnCE/NodeApplicationManager/Containers_Info_Map.cpp:
+ DAnCE/NodeApplication/RTNodeApp_Configurator.cpp:
+ examples/Hello/descriptors_RTCCM/rt-example.cdp:
+ examples/Hello/descriptors_RTCCM/rt-config-example.csr:
+
+ Fixed the RT-CCM code to conform to the schema changes. Made changes
+ to the descriptors directory to fix the working example for RT-CCM.
+
+ Thanks to Nanbor Wang for helping fix the codebase.
+
+Tue Aug 8 07:53:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIAO-INSTALL.html:
+ Removed vc6 info
+
+Fri Aug 4 21:40:46 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * docs/tutorials/CoSMIC/01.html
+ * docs/tutorials/CoSMIC/02.html
+ * docs/tutorials/CoSMIC/03.html
+ * docs/tutorials/CoSMIC/04.html
+ * docs/tutorials/CoSMIC/style.css
+ * docs/tutorials/CoSMIC/index.html
+
+ Style fixes, grammatical and spelling corrections, clarifications.
+
+Thu Aug 3 20:38:39 UTC 2006 Nanbor Wang <nanbor (at) txcorp (dot) com>
+
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+ * DAnCE/NodeApplicationManager/ImplementationInfo.cpp:
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+
+ Fixed RT-CCM support.
+
+Thu Aug 3 15:33:11 UTC 2006 Boris Kolpackov <boris@kolpackov.net>
+
+ * docs/cidlc.html:
+
+ Regenerated to include the -D and -I options.
+
+Wed Aug 2 18:52:14 UTC 2006 Boris Kolpackov <boris@kolpackov.net>
+
+ * CCF/CCF/CodeGenerationKit/CommandLineDescriptor.hpp:
+
+ Added option types: flag or value.
+
+ * CCF/CCF/CodeGenerationKit/CommandLineParser.cpp:
+ * CCF/CCF/CodeGenerationKit/CommandLineParser.hpp:
+ * CCF/CCF/CodeGenerationKit/CommandLine.hpp:
+
+ Reimplemented to use hand-coded parser instead of Spirit. The
+ new implementation takes into account the option types.
+
+ * CCF/CCF/CodeGenerationKit/CommandLineGrammar.hpp:
+ * CCF/CCF/CodeGenerationKit/CommandLineGrammar.cpp:
+
+ Removed.
+
+ * CIDLC/cidlc.cpp:
+ * CIDLC/ServantGenerator.hpp:
+ * CIDLC/ServantGenerator.cpp:
+ * CIDLC/DescriptorGenerator.hpp:
+ * CIDLC/DescriptorGenerator.cpp:
+ * CIDLC/ExecutorMappingGenerator.hpp:
+ * CIDLC/ExecutorMappingGenerator.cpp:
+ * CIDLC/ExecImplGenerator.cpp:
+ * CIDLC/ExecImplGenerator.hpp:
+
+ Updated with the option types. This fixes bugzilla bug #2426.
+
+
+Fri Jul 28 17:53:57 UTC 2006 Boris Kolpackov <boris@kolpackov.net>
+
+ * CCF/CCF/IDL2/SemanticGraph/Translation.cpp:
+
+ Reimplemented a chunk of code that resulted in what appears to
+ be invalid code generation by the Intel C++ compiler. This
+ fixes bugzilla bug #2387.
+
+Thu Jul 27 18:08:47 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CIAO_TAO.mwc
+ * CIAO_TAO_DAnCE.mwc
+
+ Replaced relative references to ACE/TAO with absolute references
+ using environment variables.
+
+Mon Jul 24 15:45:34 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * Subversion conversion completed at revision 73730
+
+Sun Jul 23 15:44:43 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * Repository frozen for repository conversion
+
+Sat Jul 22 21:34:57 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * ciao/Container_Base.cpp
+
+ Fixed a runtime Segfault bug about destroying POA. The problem
+ is because a Session_Container creates 2 POAs, one of which is called
+ facet_cons_POA which uses the Servant_Activator policy to activate component
+ ports (facets, consumers) on demand, then the Servant_Activator object
+ was deleted when the Session_Container object is out of scope in its
+ destructor. But when the ORB finally shuts itself down, it tries
+ to clean all the resources including the facet_cons_POA, since the
+ Servant_Activator attached to this POA is long gone, a segfault
+ occurs in the cleaning up phase. The right fix is to destroy all the POAs
+ associated with this Session_Container in its destructor together with the
+ Servant_Activator. Thanks Phlip <phlip2005 @ gmail.com> for a
+ bug report.
+
+Thu Jul 20 22:03:31 UTC 2006 Nanbor Wang <nanbor (at) txcorp (dot) com>
+
+ * docs/schema/ServerResourceUsage.txt: Revised the document to
+ change how a policy set should be hooked into a component
+ instance. This needs to be changed to reflect recent changed in
+ DnC schema.
+
+Thu Jul 20 01:10:58 UTC 2006 Vipul Singh <vipuls@dre.vanderbilt.edu>
+
+ * DAnCE/RepositoryManager/PC_Updater.cpp: Removed the variable name
+ from the arguments in function definition in empty functions to
+ fix warnings.
+
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.h: Changed declaration
+ at a few places from const static to static const to fix a few
+ warnings, also removed an unnecessarily defined namespace.
+
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp: Made a few
+ changes to fix the warnings and to keep the code in sync with
+ the changes made to RepositoryManager_Impl.h. Fixed code which
+ passed non POD types to a varargs function(ACE_DEBUG) which
+ resulted in aborts at runtime.
+
+ * DAnCE/RepositoryManager/URL_Parser.cpp: Assigned value to ptr before
+ if condition to fix a few warnings.
+
+Wed Jul 19 08:00:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/Config_Handlers.mpc:
+ Use exceptions as base project
+
+Mon Jul 17 17:49:41 UTC 2006 Ossama Othman <ossama_othman at symantec dot com>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp:
+
+ Use new ACE_CString::size_type type to hold string
+ position/index value, instead of "int". Addresses "comparison
+ between signed and unsigned" warnings.
+
+Sat Jul 15 04:21:13 UTC 2006 Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+
+ * DAnCE/RepositoryManager/README.txt:
+ Remove this file.
+
+ * DAnCE/RepositoryManager/README:
+ Add this file.
+
+Thu Jul 13 18:42:08 UTC 2006 Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+
+ * DAnCE/RepositoryManager/RM_Helper.h:
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp:
+ Fixed a minor error.
+
+Wed Jul 12 14:00:59 UTC 2006 Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+
+ * DAnCE/RepositoryManager/RM_Helper.cpp:
+ Fixed the "comparison between signed and unsigned integer" warning.
+
+Tue Jul 11 23:19:58 UTC 2006 Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+ * DAnCE/RepositoryManager/RM_Helper.h:
+ * DAnCE/RepositoryManager/RM_Helper.cpp:
+ * DAnCE/RepositoryManager/RMadmin.cpp:
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp:
+ Fixed the "conversion from '__int64' to 'size_t', possible loss
+ of data" warnings.
+
+Sun Jul 09 06:01:14 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIAO version 0.5.2 released.
+
+Wed Jul 5 15:31:18 UTC 2006 Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+
+ * NEWS
+ Updated the NEWS file to add the changes of Repoman.
+
+Tue Jul 4 11:39:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Home_Servant_Impl_T.cpp:
+ * ciao/Dynamic_Component_Servant_T.cpp:
+ * ciao/Swapping_Servant_Home_Impl_T.cpp:
+ Fixed compile problems with VxWorks 5.5.1 and GCC 2.96
+
+Tue Jul 4 06:26:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/Package_Handlers/Package_Handlers.mpc:
+ Don't build this project in the ace_for_tao configuration
+
+Mon Jul 3 16:20:54 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * NEWS
+
+ Updated the NEWS file.
+
+Tue Jun 27 13:37:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/RepositoryManager/RM_Helper.cpp:
+ Layout changes
+
+Fri Jun 23 13:45:38 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc:
+
+ Added $(TAO_ROOT) to the 'includes' line of the executable
+ project, due to a change in the way TAO/Version.h is
+ included.
+
+Thu Jun 22 18:47:47 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * ciao/Dynamic_Component_Servant_T.cpp:
+ * ciao/Dynamic_Component_Servant_T.h:
+ * ciao/Swapping_Servant_Home_Impl_T.cpp:
+ * ciao/Swapping_Servant_Home_Impl_T.h:
+
+ Made changes to template code corresponding to those in
+
+ Mon Jun 19 14:52:25 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+Mon Jun 19 14:52:25 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * ciao/Home_Servant_Impl_T.cpp:
+ * ciao/Home_Servant_Impl_T.h:
+ * ciao/Servant_Impl_T.cpp
+ * ciao/Servant_Impl_T.h:
+
+ Reduced the number of template parameters in
+ the component servant and home servant template
+ base classes.
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Changes to generated servant code corresponding
+ the the changes in servant base class code
+ described above.
+
+Thu Jun 15 20:13:02 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/IDL3_to_IDL2/be_helper.cpp:
+
+ Uncommented code that outputs our copyright notice. This
+ change also elinates an unused arg warning for the
+ copyright notice string.
+
+ * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.cpp:
+
+ Added a newline after opening the file for better readability.
+
+Thu Jun 15 18:37:43 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/Config_Handlers/CIAO_Events/CIAO_Events_Handlers.mpc:
+
+ Added ciao_deployment_stub as a base project for
+ CIAO_Events_Handlers, to eliminate 'unresolved symbol'
+ linking errors. Thanks to Ming Xiong <ming.xiong@vanderbilt.edu>
+ for suggesting the fix.
+
+Thu Jun 15 15:10:58 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/IDL3_to_IDL2/be_extern.h:
+ * tools/IDL3_to_IDL2/be_init.cpp:
+ * tools/IDL3_to_IDL2/be_produce.cpp:
+
+ Changes to keep this backend in sync with changes to the
+ TAO_IDL front end - see TAO ChangeLog entry of a few
+ minutes ago.
+
+Thu Jun 8 16:07:05 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * ciao/Servant_Impl_Utils_T.cpp (describe_multiplex_receptacle):
+
+ Fixed an error in instantiation of a
+ Components::ConnectionDescription valuetype - the actual
+ constructor call should have been on the OBV_* subclass.
+
+Thu Jun 8 12:29:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Planner/PCVisitor.cpp:
+ Fixed parameter never used warnings
+
+Wed Jun 7 21:39:00 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/CIAO_Events/CIAO_Events_Handlers.mpc
+
+ Removed unneeded base projects.
+
+Wed Jun 7 21:07:11 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * ciao/Servant_Impl_Utils_T.cpp:
+
+ Fixed CORBA memory management rule violations in
+ Servant_Impl_Base static template methods
+ describe_pub_event_source(), describe_simplex_receptacle() and
+ describe_multiplex_receptacle(). Thanks to Phlip
+ <phlip2005@gmail.com> for reporting a problem in
+ get_all_receptacles() that uncovered the above violations.
+
+Wed Jun 7 16:52:45 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Config_Handlers.mpc
+
+ Fix for linking error in Visual Studio.
+
+Wed Jun 7 06:04:45 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CIDLC/ExecutorMappingGenerator.cpp
+
+ Modified to generate an include of CCM_Container.idl.
+
+ * ciao/Components.idl
+ * ciao/ComponentsC.h
+ * ciao/ComponentsS.h
+
+ Changed Components.idl to include CCM_Component.idl instead of
+ CCM_Container.idl. This removes a dependancy on the container
+ library for stub projects.
+
+ Note this commit may be rolled back later based on discussions
+ on the dance-dev list, I am making it preemptively to resolve
+ scoreboard problems.
+
+Tue Jun 6 20:32:53 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Config_Handlers.mpc
+ * tools/Config_Handlers/Property_Handler.h
+
+ Compile fixes for Borland.
+
+ * tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp
+ * tools/Config_Handlers/XMLSchema/Writer.hpp
+
+ Fixes for Borland ICEs.
+
+Tue Jun 6 13:48:59 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Config_Handlers_Common_Export.h
+
+ Missing file from previous commit.
+
+Mon Jun 5 20:34:51 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/RepositoryManager/RepositoryManager.mpc
+ * DAnCE/TargetManager/TM_Client.mpc
+ * RACE/Controller/Component/Controller.mpc
+ * docs/tutorials/Quoter/Simple/Distributor/Distributor.mpc
+ * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.mpc
+ * examples/BasicSP/BasicSP.mpc
+ * examples/BasicSP/BMClosedED/BMClosedED.mpc
+ * examples/BasicSP/BMDevice/BMDevice.mpc
+ * examples/BasicSP/BMDisplay/BMDisplay.mpc
+ * examples/BasicSP/EC/EC.mpc
+ * examples/Display/Display_Base/Display_Base.mpc
+ * examples/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc
+ * examples/Hello/Hello_Base/Hello_Base.mpc
+ * examples/Hello/Receiver/Receiver.mpc
+ * examples/Hello/Sender/Sender.mpc
+ * examples/Swapping/Hello_Base/Hello_Base.mpc
+ * examples/Swapping/Receiver/Receiver.mpc
+ * examples/Swapping/Sender/Sender.mpc
+ * performance-tests/Protocols/common/Protocols.mpc
+ * tests/Bug_2130_Regression/interfaces/ENW.mpc
+ * tests/CIDL/CodeGen/CodeGen.mpc
+ * tests/IDL3/Components/ComplexComponent/Attributes/Attributes.mpc
+ * tests/IDL3/Components/ComplexComponent/EventSink/EventSink.mpc
+ * tests/IDL3/Components/ComplexComponent/EventSource/EventSource.mpc
+ * tests/IDL3/Components/ComplexComponent/Facets/Facets.mpc
+ * tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles.mpc
+ * tests/IDL3/Components/SimpleComponent/SimpleComponent.mpc
+ * tests/IDL3/Events/Abstract/Abstract.mpc
+ * tests/IDL3/Events/Regular/Regular.mpc
+ * tests/IDL3/Homes/Attributes/HomeAttributes.mpc
+ * tests/IDL3/Homes/Basic/Basic.mpc
+ * tests/IDL3/Homes/Factory/Factory.mpc
+ * tests/IDL3/Homes/Finder/Finder.mpc
+ * tests/IDL3/Homes/Inheritance/Inheritance.mpc
+ * tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.mpc
+ * tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.mpc
+ * tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.mpc
+ * tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.mpc
+ * tests/IDL3/ImpliedIDL/Events/Events.mpc
+ * tests/IDL3/ImpliedIDL/Homes/Homes.mpc
+ * tests/IDL3/Lookup/lookup_test.mpc
+ * tests/Minimum/Minimum_Base/Minimum.mpc
+ * tools/Config_Handlers/Package_Handlers/Package_Handlers.mpc
+
+ Fixes for linking errors/warnings in OS X.
+
+ * tools/Config_Handlers/Any_Handler.h
+ * tools/Config_Handlers/CEPE_Handler.h
+ * tools/Config_Handlers/CPD_Handler.h
+ * tools/Config_Handlers/Config_Handlers.mpc
+ * tools/Config_Handlers/DataType_Handler.h
+ * tools/Config_Handlers/ERE_Handler.h
+ * tools/Config_Handlers/Req_Handler.h
+ * tools/Config_Handlers/SatisfierProperty_Handler.h
+
+ Factored certain elements used by both the deployment
+ and packaging handlers into a seperate library, also
+ fixes for linking errors in OS X.
+
+Fri Jun 2 18:55:41 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/Config_Handlers/Config_Handlers.mpc:
+ * DAnCE/TargetManager/TargetManager.mpc:
+ * DAnCE/TargetManager/TM_Client.mpc:
+
+ Shortened long lines.
+
+Fri Jun 2 12:17:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rules.ciao.GNU:
+ Added setting of TAO_IDL3_TO_IDL2 and TAO_IDL3_TO_IDL2_DEP when
+ they are not set, needed for cross compilation
+
+Thu Jun 1 21:23:51 UTC 2006 <ming.xiong@vanderbilt.edu>
+
+ * examples/Hello/descriptors/run_test.pl
+ Changed the codes so that it will correctly destroy all
+ running processes upon failure.
+
+Thu Jun 1 16:03:26 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * DAnCE/Planner/Planner.cpp:
+
+ Added global qualifier (double colon) to the specialization
+ and typedef of the planner's Node class, to avoid an
+ 'ambiguous symbol' error in VC8, which is presumably confusing
+ it with Deployment::Node.
+
+Thu Jun 1 15:49:47 UTC 2006 jiang,shanshan <shanshan.jiang@vanderbilt.edu>
+
+ * DAnCE/Planner/Node_T.h
+ * DAnCE/Planner/Planner.cpp
+
+ Modified some minor errors.
+
+Thu Jun 1 12:55:07 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/Display/NavDisplay/NavDisplay.mpc:
+
+ Fixed typo.
+
+Wed May 31 18:46:37 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/Display/NavDisplay/NavDisplay.mpc:
+
+ Added 'libs += Display_Base_stub' to the
+ Display_Base_NaviDisplay_stub project so that VC8, with its
+ parallel builds, will know about the dependency that VC7.1
+ seems to get from the 'after' line.
+
+Wed May 31 18:17:11 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * DAnCE/TargetManager/TM_Client.mpc:
+
+ Cosmetic changes.
+
+Wed May 31 17:08:17 UTC 2006 jiang,shanshan <shanshan.jiang@vanderbilt.edu>
+
+ * DAnCE/Planner/Planner.mpc
+ * DAnCE/Planner/Planner.cpp
+
+ Removed the generated file of Repoman (RepositoryManagerDaemonC.*)
+ included in the Planner project and use the RepositoryManagerC.*.
+
+Wed May 31 16:49:12 UTC 2006 jiang,shanshan <shanshan.jiang@vanderbilt.edu>
+
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp
+
+ Made some minor changes.
+
+Tue May 30 10:08:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeManager/MonitorController.cpp:
+ Fixed typo
+
+Tue May 30 06:16:58 UTC 2006 Boris Kolpackov <boris@kolpackov.net>
+
+ * tools/Config_Handlers/XSCRT/Elements.hpp:
+
+ Added a fix for Sun C++ <= 5.7 template instantiation issue.
+
+Tue May 30 00:00:22 UTC 2006 Stoyan Paunov <spaunov@isis.vanderbilt.edu>
+
+ * DAnCE/Planner/Node_T.h:
+ * DAnCE/Planner/Node_T.inl:
+ * DAnCE/Planner/Node_T.cpp:
+ * DAnCE/Planner/PCVisitor.h:
+ * DAnCE/Planner/PCVisitor.cpp:
+ * DAnCE/Planner/PCVisitorBase.h:
+ * DAnCE/Planner/PCVisitorBase.inl:
+ * DAnCE/Planner/PCVisitorBase.cpp:
+ * DAnCE/Planner/Planner.mpc:
+ * DAnCE/Planner/Planner.cpp:
+
+ Checking in the Planner for DAnCE which creates a Deployment
+ Plan on the fly (in-memory).
+
+ * RACE/Input_Adapters/LocationUpdater/Injector.cpp:
+ * RACE/Input_Adapters/LocationUpdater/LocationUpdater.cdp:
+ * RACE/Input_Adapters/LocationUpdater/LocationUpdater.cidl:
+ * RACE/Input_Adapters/LocationUpdater/LocationUpdater.idl:
+ * RACE/Input_Adapters/LocationUpdater/LocationUpdater_deployment.dat:
+ * RACE/Input_Adapters/LocationUpdater/LocationUpdater_exec.h:
+ * RACE/Input_Adapters/LocationUpdater/LocationUpdater_exec.cpp:
+ * RACE/Input_Adapters/LocationUpdater/LocationUpdater_exec_export.h:
+ * RACE/Input_Adapters/LocationUpdater/LocationUpdater_stub_export.h:
+ * RACE/Input_Adapters/LocationUpdater/LocationUpdater_svnt_export.h:
+ * RACE/Input_Adapters/LocationUpdater/Location_Updater.mpc.disable:
+ * RACE/Input_Adapters/LocationUpdater/PCVisitorBase.h:
+ * RACE/Input_Adapters/LocationUpdater/PCVisitorBase.inl:
+ * RACE/Input_Adapters/LocationUpdater/PCVisitorBase.cpp:
+ * RACE/Input_Adapters/LocationUpdater/PlanUpdater.h:
+ * RACE/Input_Adapters/LocationUpdater/PlanUpdater.cpp:
+ * RACE/Input_Adapters/LocationUpdater/README.txt:
+
+ Adding the LocationUpdater which is a RACE input adapter which
+ updates the locations of the implementation artifact to reclect
+ the ones available in the RepositoryManager. Please see the README
+ and the code for more info.
+
+ * RACE/Input_Adapters/PlanGenerator/Injector.cpp:
+ * RACE/Input_Adapters/PlanGenerator/PCVisitorBase.h:
+ * RACE/Input_Adapters/PlanGenerator/PCVisitorBase.inl:
+ * RACE/Input_Adapters/PlanGenerator/PCVisitorBase.cpp:
+ * RACE/Input_Adapters/PlanGenerator/PlanGenerator.h:
+ * RACE/Input_Adapters/PlanGenerator/PlanGenerator.cdp:
+ * RACE/Input_Adapters/PlanGenerator/PlanGenerator.cidl:
+ * RACE/Input_Adapters/PlanGenerator/PlanGenerator.cpp:
+ * RACE/Input_Adapters/PlanGenerator/PlanGenerator.idl:
+ * RACE/Input_Adapters/PlanGenerator/PlanGenerator.mpc.disable:
+ * RACE/Input_Adapters/PlanGenerator/PlanGenerator_deployment.dat:
+ * RACE/Input_Adapters/PlanGenerator/PlanGenerator_exec.h:
+ * RACE/Input_Adapters/PlanGenerator/PlanGenerator_exec.cpp:
+ * RACE/Input_Adapters/PlanGenerator/PlanGenerator_exec_export.h:
+ * RACE/Input_Adapters/PlanGenerator/PlanGenerator_stub_export.h:
+ * RACE/Input_Adapters/PlanGenerator/PlanGenerator_svnt_export.h:
+ * RACE/Input_Adapters/PlanGenerator/README.txt:
+
+ Adding the PlanGenerator which is a RACE input adapter which queries
+ the RepositoryManager for an installation name, retrieves the corresponding
+ PackageConfiguration, and builds the DeploymentPlan on the fly. Please see
+ the README and the code for more info.
+
+Mon May 29 21:58:18 UTC 2006 Stoyan Paunov <spaunov@isis.vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp:
+
+ Got rid of the code that updates the loader path for the
+ libraries downloaded via HTTP. Now this has to be done
+ manually.
+
+ * DAnCE/RepositoryManager/PC_Updater.cpp:
+ * DAnCE/RepositoryManager/README.txt:
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp:
+
+ Changing the way library names are matched to be more general.
+ Some additions to the README
+ A minor change to one of the functions
+
+Mon May 29 19:07:54 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * DAnCE/NodeApplication/Configurator_Factory.cpp:
+ * DAnCE/NodeManager/MonitorController.cpp:
+ * examples/Swapping/Sender/Sender_exec.cpp:
+
+ Changed C-style casts from void* to pointer-to-function
+ to two-step reinterpret_cast<>s, with ptrdiff_t as a
+ temporary intermediate. C++ forbids casting directly
+ between pointer-to-object and pointer-to-function, and
+ some the newer compilers are catching it.
+
+Mon May 29 17:44:01 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/Display/Display_Base/Display_Base.mpc:
+
+ Changed the base project of Display_Base_stub from
+ ciao_client_dnc to ciao_events_base_dnc, in order to pull
+ in a needed dependency on CIAO_DnC_Container. Thanks to
+ Ming Xiong <mxiong@dre.vanderbilt.edu> for supplying the
+ fix.
+
+Mon May 29 15:32:38 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/Display/NavDisplay/NavDisplay.mpc:
+
+ Cosmetic changes (shortened long lines).
+
+ * examples/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc:
+
+ Changed 'after +=' and 'libs +=' lines to reflect recent
+ changes to other examples/Display projects.
+
+Fri May 26 13:57:38 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * DAnCE/RepositoryManager/RMAdmin.cpp(ACE_TMAIN):
+
+ Fixed unused variable warning, cosmetic changes.
+
+Fri May 26 12:59:03 UTC 2006 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * DAnCE/NodeManager/NAM_Map.cpp:
+ Make the equality test explicit to work with the revised octet
+ sequence implementation.
+
+Thu May 25 19:02:52 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * ciao/Container_Base.cpp(ciao_install_home):
+
+ Changed the single-step reinterpret_cast of the component
+ DLL entry points to be a two-step process: first to the
+ integer type 'ptrdiff_t' then to the desired pointer-to-
+ function type. A single cast won't work because casting
+ from pointer-to-object (even void*) to pointer-to-function
+ directly is not allowed in C++.
+
+Thu May 25 11:50:39 UTC 2006 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * ciao/Container_Base.cpp:
+ Replace the use of static_cast in ciao_install_home with
+ reinterpret_cast since void* sources are involved.
+
+Wed May 24 17:35:53 UTC 2006 Nanbor Wang <nanbor@exothermic.txcorp.com>
+
+ * examples/Display/RateGen/RateGen.mpc: Fixed the project
+ dependency for controller.
+
+Tue May 23 22:46:58 UTC 2006 jiang,shanshan <shanshan.jiang@vanderbilt.edu>
+
+ * DAnCE/RepositoryManager/Options.cpp
+ * DAnCE/RepositoryManager/Options.h
+ * DAnCE/RepositoryManager/RMadmin.cpp
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.h
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp
+ * DAnCE/RepositoryManager/RepositoryManager.cpp
+
+ Added the code to save the state of the RepoMan at exit and
+ load the state of it at start.
+
+Tue May 23 14:31:11 UTC 2006 jiang,shanshan <shanshan.jiang@vanderbilt.edu>
+
+ * DAnCE/RepositoryManager/Options.cpp
+ * DAnCE/RepositoryManager/Options.h
+ * DAnCE/RepositoryManager/RMadmin.cpp
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp
+ * DAnCE/RepositoryManager/RepositoryManager.cpp
+
+ Added the naming service & the implementation of createPackage
+ function to RepoMan.
+
+Mon May 22 18:49:14 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * ciao/Container_Base.cpp(ciao_install_home):
+
+ Changed C-style casts of DLL entrypoints to static_cast<>s
+ to the appropriate pointer to function. This change is
+ intended to eliminate warnings from gcc 4.0.
+
+Fri May 19 16:49:32 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp:
+ * DAnCE/NodeApplicationManager/URL_Parser.cpp:
+ * DAnCE/NodeManager/Node_Manager.cpp:
+
+ Minor changes to eliminate scoreboard warnings, and to bring
+ code in line with the ACE style guidelines.
+
+Thu May 18 20:28:00 UTC 2006 Roopa Pundaleeka <roopa@txcorp.com>
+
+ * examples/Display/GPS/GPS_Impl.ccd:
+ * examples/Display/NavDisplay/NavDisplay_Impl.ccd:
+ * examples/Display/RateGen/RateGen_Impl.ccd:
+
+ Removed these generated files from CVS.
+
+Thu May 18 11:28:52 UTC 2006 Phil Mesnier <mesnier_p@ociweb.com>
+
+
+ * examples/Display/Display_Base/GNUmakefile:
+ * examples/Display/Display_Base/GNUmakefile.Display_Base_stub:
+ * examples/Display/Display_Base/GNUmakefile.Display_Base_svnt:
+
+ Removed these files from CVS.
+
+Wed May 17 21:20:46 UTC 2006 Roopa Pundaleeka <roopa@txcorp.com>
+
+ * TAO/CIAO/examples/Display:
+ Ported the Display example to use the new CIAO framework
+
+
+Tue May 16 12:10:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * README:
+ Removed mentioning of vc6
+
+Mon May 15 20:48:52 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp (generate):
+
+ Removed commented-out code.
+
+ * CIDLC/ServantHeaderGenerator.cpp (generate_facets):
+
+ Fixed cut-and-paste error that was causing facet servant
+ class declaration to get skipped when the composition is
+ defined inside one or more IDL modules.
+
+Fri May 12 07:36:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/Utils/Functors.h:
+ Added a workaround for specific for BCB6, should fix the gcc4
+ internal compiler errors
+
+Fri May 12 07:29:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/XSCRT/Elements.hpp:
+ The work around is needed for < gcc 3.3 and also BCB6, so make
+ it a little bit more easier to handle this.
+
+Thu May 11 21:24:45 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/Literals.cpp:
+ * CIDLC/Literals.hpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantHeaderGenerator.hpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.hpp:
+ * CIDLC/UtilityTypeNameEmitters.cpp:
+ * CIDLC/UtilityTypeNameEmitters.hpp:
+
+ Change code generation for facet servant classes to be
+ defined in a special namespace created from a prefix
+ and a flattened version of the name of the scope
+ containing the interface that supports the facet. This
+ change enables facets in the same translation unit
+ using the same interface to use a single source code
+ definition (an internal check in the CIDL compiler
+ guarantees that the facet servant class is generated
+ once per interface per translation unit). The fact
+ that the actual facet servant class type is an instantiation
+ of a template class ensures that the same interface type
+ used as a facet in multiple translation units in a build
+ will not produce multiple-definition link errors,
+ although in this case there will be duplicated code.
+ Thanks to James Hill <j.hill@vanderbilt.edu> for providing
+ the multiple-facet-single-translation-unit use case
+ and to Nanbor Wang <nanbor@txcorp.com> for his comments
+ on the proposed solution.
+
+Wed May 10 14:04:57 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeManager/MonitorCB.cpp
+ * DAnCE/TargetManager/CmpClient.cpp
+ * DAnCE/TargetManager/DomainDataManager.cpp
+
+ Fixes for warnings.
+
+Mon May 8 20:41:43 UTC 2006 Stoyan Paunov <spaunov@isis.vanderbilt.edu>
+
+ * bin/PerlCIAO/perlciao.mpc:
+
+ Fixing a fuzz build error due to a missing Id tag
+
+Mon May 8 15:33:58 UTC 2006 Stoyan Paunov <spaunov@isis.vanderbilt.edu>
+
+ * DAnCE/RepositoryManager/HTTP_Client.h:
+ * DAnCE/RepositoryManager/HTTP_Client.cpp:
+ * DAnCE/RepositoryManager/HTTP_Handler.h:
+ * DAnCE/RepositoryManager/HTTP_Handler.cpp:
+ * DAnCE/RepositoryManager/Options.h:
+ * DAnCE/RepositoryManager/Options.cpp:
+ * DAnCE/RepositoryManager/PC_Updater.h:
+ * DAnCE/RepositoryManager/PC_Updater.cpp:
+ * DAnCE/RepositoryManager/PC_Updater_T.h:
+ * DAnCE/RepositoryManager/PC_Updater_T.cpp:
+ * DAnCE/RepositoryManager/README.txt:
+ * DAnCE/RepositoryManager/RM_Helper.h:
+ * DAnCE/RepositoryManager/RM_Helper.cpp:
+ * DAnCE/RepositoryManager/RMadmin.cpp:
+ * DAnCE/RepositoryManager/RepositoryManager.cpp:
+ * DAnCE/RepositoryManager/RepositoryManagerDaemon.idl:
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.h:
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp:
+ * DAnCE/RepositoryManager/URL_Parser.h:
+ * DAnCE/RepositoryManager/URL_Parser.cpp:
+ * DAnCE/RepositoryManager/ZIP_Wrapper.h:
+ * DAnCE/RepositoryManager/ZIP_Wrapper.cpp:
+
+ Updating the RepositoryManager with the latest changes from the
+ escher repository. Adding my newest changes. Adding some new
+ minor features.
+
+ * bin/PerlCIAO/TestUtils.base:
+ * bin/PerlCIAO/TestUtils.pm:
+ * bin/PerlCIAO/TestUtils_Base.pm:
+ * bin/PerlCIAO/generate_container.pl:
+ * bin/PerlCIAO/perlciao.mpc:
+
+ This is a set of test utilities tailored towards testing CIAO components.
+ It provides a nice and quick interface provising the common functionality
+ necessary to run a CIAO test and perform clean-up on failure. This utils
+ are a wrapper around the $ACE_ROOT/bin/PerlACE/ utilities. I will check in
+ an example of how test utils are used shortly.
+
+ * tools/Config_Handlers/IDD_Handler.cpp:
+
+ Fixing a bug in the PackageConfiguration reverse handler.
+
+
+Fri May 5 15:36:47 2006 Douglas C. Schmidt <schmidt@cse.wustl.edu>
+
+ * docs/cidlc.html Added documentation for the CIDL compiler.
+ Thanks to Boris for contributing this.
+
+ * docs/index.html: Fixed some broken links to the tutorials and added
+ a link to Ming's tutorial example that shows how to use CoSMIC.
+
+Fri May 5 16:58:17 UTC 2006 Nishanth Shankaran <nshankar@dre.vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/Execution_Manager.cpp (CIAO): Fixed the
+ parsing of command line options.
+
+Thu May 4 21:35:01 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/ADD_Handler.cpp
+ * tools/Config_Handlers/DP_Handler.cpp
+
+ Fixed a reverse handler bug.
+
+Thu May 4 08:33:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/RepositoryManager/PC_Updater.cpp:
+ Fixed compilation error
+
+Wed May 3 22:11:32 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * docs/schema/Basic_Deployment_Data.xsd
+ * docs/schema/ccd.xsd
+ * docs/schema/cdd.xsd
+ * docs/schema/cdp.xsd
+ * docs/schema/cid.xsd
+ * docs/schema/cpd.xsd
+ * docs/schema/iad.xsd
+ * docs/schema/pcd.xsd
+ * docs/schema/toplevel.xsd
+
+ Schema propagated from the ARMS repo.
+
+Wed May 3 12:53:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * Config_Handlers/Utils/Functors.h:
+ Made the FUNC argument just return void, this fixes the errors with this
+ template with BCB on my system, hopefully it doesn't break other
+ compilers
+
+Tue May 2 03:04:50 UTC 2006 Nishanth Shankaran <nshankar@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/NodeApplication.cpp: Removed the code
+ snippet that bootstraps the NodeApplication process at a
+ specific OS priority.
+
+Wed Apr 26 21:25:26 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Config_Handlers.mpc
+ * tools/Config_Handlers/Property_Handler.h
+ * tools/Config_Handlers/SatisfierProperty_Handler.h
+ * tools/Config_Handlers/Package_Handlers/CAD_Handler.cpp
+ * tools/Config_Handlers/Package_Handlers/CID_Handler.cpp
+ * tools/Config_Handlers/Package_Handlers/CPD_Handler.cpp
+ * tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.cpp
+ * tools/Config_Handlers/Package_Handlers/IAD_Handler.cpp
+ * tools/Config_Handlers/Package_Handlers/Package_Handlers.mpc
+ * tools/Config_Handlers/Utils/Functors.h
+
+ Introduced a workaround for a ICE in GCC 4.0.22.
+
+Wed Apr 26 13:10:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/DP_Handler.cpp:
+ * tools/Config_Handlers/XML_File_Intf.cpp:
+ * tools/Config_Handlers/Package_Handlers/PC_Intf.cpp:
+ * tools/Config_Handlers/XSCRT/XMLSchema.hpp:
+ * tools/Config_Handlers/XSCRT/Elements.hpp:
+ * tools/Config_Handlers/XSCRT/XML.hpp:
+ Removed workarounds for vc6 again
+
+ * tools/Config_Handlers/Package_Handlers/NIA_Handler.h:
+ Added missing post.h
+
+ * tools/Config_Handlers/Package_Handlers/CPD_Handler.h:
+ * tools/Config_Handlers/Package_Handlers/PC_Intf.h:
+ Fixed incorrect file tags
+
+Wed Apr 26 08:46:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/TargetManager/DomainDataManager.h:
+ Fixed compile problem in gcc4 build
+
+Tue Apr 25 21:27:05 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/TargetManager/TargetManager.mpc
+
+ Linking problems for Borland.
+
+ * tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp
+ * tools/Config_Handlers/Package_Handlers/SID_Handler.cpp
+
+ More compile fixes for Borland.
+Tue Apr 25 20:12:25 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp
+ * DAnCE/NodeApplication/NodeApplication_Impl.h
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.h
+ * ciao/Deployment_Core.idl
+ * tools/Config_Handlers/ADD_Handler.cpp
+ * tools/Config_Handlers/CCD_Handler.cpp
+ * tools/Config_Handlers/CEPE_Handler.cpp
+ * tools/Config_Handlers/CEPE_Handler.h
+ * tools/Config_Handlers/CPD_Handler.cpp
+ * tools/Config_Handlers/CPD_Handler.h
+ * tools/Config_Handlers/DP_Handler.cpp
+ * tools/Config_Handlers/Deployment.hpp
+ * tools/Config_Handlers/ERE_Handler.cpp
+ * tools/Config_Handlers/ERE_Handler.h
+ * tools/Config_Handlers/MDD_Handler.cpp
+ * tools/Config_Handlers/PCD_Handler.cpp
+ * tools/Config_Handlers/PCD_Handler.h
+ * tools/Config_Handlers/Property_Handler.cpp
+ * tools/Config_Handlers/Property_Handler.h
+ * tools/Config_Handlers/Req_Handler.cpp
+ * tools/Config_Handlers/Req_Handler.h
+ * tools/Config_Handlers/SatisfierProperty_Handler.cpp
+ * tools/Config_Handlers/SatisfierProperty_Handler.h
+ * tools/Config_Handlers/cdp.hpp
+ * tools/Config_Handlers/toplevel.hpp
+ * tools/Config_Handlers/Package_Handlers/CAD_Handler.cpp
+ * tools/Config_Handlers/Package_Handlers/CID_Handler.cpp
+ * tools/Config_Handlers/Package_Handlers/CPD_Handler.cpp
+ * tools/Config_Handlers/Package_Handlers/CPD_Handler.h
+ * tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.cpp
+ * tools/Config_Handlers/Package_Handlers/NIA_Handler.h
+ * tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp
+ * tools/Config_Handlers/Package_Handlers/SID_Handler.cpp
+ * tools/Config_Handlers/Package_Handlers/SID_Handler.h
+
+ Compilation fixes for borland, some cosmetic fixes as well.
+
+Tue Apr 25 09:00:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/CPD_Handler.h:
+ ComponentPortDescription is a struct, so also forward declare it
+ as a struct
+
+Mon Apr 24 18:53:22 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp
+
+ Fixed a code generation problem caused by careless merging.
+
+Mon Apr 24 18:40:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/ADD_Handler.cpp:
+ * tools/Config_Handlers/DP_Handler.cpp:
+ * tools/Config_Handlers/ID_Handler.h:
+ Removed incorrect semi colons
+
+Mon Apr 24 06:33:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/IDREF_Base.cpp:
+ Removed not needed semi colon that caused compile errors in some
+ builds
+
+Sun Apr 23 11:22:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/Utils/XML_Helper.h:
+ Fixed compile error
+
+Sat Apr 22 21:13:10 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/CIAO_Events/CIAOEvents.hpp
+ * tools/Config_Handlers/Basic_Deployment_Data.hpp
+ * tools/Config_Handlers/Deployment.hpp
+ * tools/Config_Handlers/ccd.hpp
+ * tools/Config_Handlers/cdd.hpp
+ * tools/Config_Handlers/cdp.hpp
+ * tools/Config_Handlers/cid.hpp
+ * tools/Config_Handlers/cpd.hpp
+ * tools/Config_Handlers/iad.hpp
+ * tools/Config_Handlers/pcd.hpp
+ * tools/Config_Handlers/toplevel.hpp
+ * tools/Config_Handlers/RT-CCM/CIAOServerResources.hpp
+
+ Compile errors.
+
+Fri Apr 21 16:24:46 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * Merge from the ARMS Escher repository.
+
+ Changelog entries to follow:
+
+ Tue Apr 11 09:29:12 UTC 2006 <wotte@blade35.isislab.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp
+ * DAnCE/NodeApplication/NodeApplication_Impl.h
+ * DAnCE/NodeManager/Node_Manager.cpp
+
+ Additional debugging/compile fixes.
+
+ Tue Apr 11 08:30:42 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * ciao/Deployment_Core.idl
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.cpp
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.h
+
+ Modified to passivate (and reactivate later) shared components
+ when tearing down an assembly.
+
+ Sun Apr 9 01:03:19 UTC 2006 <wotte@blade35.isislab.vanderbilt.edu>
+
+ * M APRIL_DEMO.mwc
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DAnCE/ExecutionManager/Execution_Manager.cpp
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+ * DAnCE/NodeManager/MonitorCB.cpp
+ * DAnCE/NodeManager/NodeManager_Impl.cpp
+ * DAnCE/NodeManager/Node_Manager.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp
+
+ Various compile/runtime fixes.
+
+ Fri Apr 7 15:47:34 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+
+ Modified to enforce passivation occured on all components
+ before any connections are removed.
+
+ Fri Apr 7 03:28:03 UTC 2006 Edward R. Mulholland <emulholl@atl.lmco.com>
+
+ * tools/Config_Handlers/Utils/XML_Helper.cpp:
+
+ Replaced "throw;" (which Stroustrup tells us causes an abort)
+ with "throw 0;" (kind of like an unnamed exception, which is
+ clearly what the author of this code intended).
+
+ * ciao/Packaging_Data.idl:
+
+ I've had occasion to use this file with the IFR Service, and
+ I've found that the IFR Service backend chokes on a bunch of
+ stuff here. The stuff that it chokes on has been protected with
+ "#ifndef AVOID_IFR_CRASH" so that you can protect the backend
+ from crashing if you pass -DAVOID_IFR_CRASH to tao_ifr.
+
+ * ciao/Servant_Impl_Base.cpp:
+ * ciao/Servant_Impl_Base.h:
+
+ Implemented the add_receptacle operation.
+
+ Fri Apr 7 02:55:37 UTC 2006 Edward R. Mulholland <emulholl@atl.lmco.com>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp:
+
+ Added ACE_CATCHANY and ACE_CATCHALL blocks in
+ Plan_Launcher_i::launch_plan to avoid crashing in case of CORBA
+ fault.
+
+ Fri Apr 7 02:54:29 UTC 2006 Edward R. Mulholland <emulholl@atl.lmco.com>
+
+ * DAnCE/NodeApplication/Configurator_Factory.cpp:
+
+ Options beginning with "-ORB" are explicitly ignored. This
+ avoids having an "-ORB" option mistakenly parsed as being a
+ "-o <ior_output_file>" option.
+
+ Fri Apr 7 02:51:31 UTC 2006 Edward R. Mulholland <emulholl@atl.lmco.com>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Added code to support "get_all_receptacles" operation.
+
+ Fri Apr 7 02:47:02 UTC 2006 Edward R. Mulholland <emulholl@atl.lmco.com>
+
+ * CCF/CCF/IDL2/SemanticGraph/Enum.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Enum.cpp:
+
+ Made a couple small changes that keep the CIDLC from coughing on
+ enums
+
+ Fri Apr 7 02:37:34 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h
+
+ Fixed a bug in detecting External connection and Internal
+ connections. Earlier when an external component is detected,
+ not *all* connections associated with this components are
+ purged from the to-be-removed connections list. Added another
+ helper method <purge_connections> to accomplish this task.
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+
+ Modified to reuse rebind() instead of bind() to avoid
+ redeployment duplicate instance errors.
+
+ Thu Apr 6 15:02:59 UTC 2006 Nishanth Shankaran <nshankar@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/NodeApplication.cpp:
+
+ Modified the NodeApplications to up at OS priority 20 instead of
+ 50.
+
+ Thu Apr 6 00:35:35 UTC 2006 Nilabja Roy <roy_n@dre.vanderbilt.edu>
+
+ * DAnCE/NodeManager/CIAO_Monitor.cpp:
+ * DAnCE/NodeManager/MonitorCB.cpp:
+ * DAnCE/NodeManager/MonitorController.cpp:
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+
+ * DAnCE/TargetManager/DomainDataManager.cpp:
+ * DAnCE/TargetManager/TargetManager_exec.cpp:
+
+ Fixed the TM component removal problem. Changed/Removed
+ debug messages.
+
+ Wed Apr 5 16:54:20 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Any_Handler.cpp
+ * tools/Config_Handlers/DP_Handler.cpp
+ * tools/Config_Handlers/IDD_Handler.cpp
+ * tools/Config_Handlers/MDD_Handler.cpp
+ * tools/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp
+ * tools/Config_Handlers/DynAny_Handler/DynAny_Handler.h
+
+ Improvements to output more information in the reverse handler.
+
+
+ Thu Mar 30 22:10:53 UTC 2006 William Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/Container_Impl.cpp
+ * DAnCE/NodeApplication/NodeApplication.cpp
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp
+ * ciao/Home_Servant_Impl_T.cpp
+ * ciao/Servant_Activator.cpp
+ * tools/Config_Handlers/DD_Handler.cpp
+ * tools/Config_Handlers/IDREF_Base.cpp
+ * tools/Config_Handlers/Package_Handlers/CPD_Handler.cpp
+ * tools/Config_Handlers/Package_Handlers/SID_Handler.cpp
+
+ Disabled excessive debugging.
+
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp
+ * DAnCE/NodeApplicationManager/ImplementationInfo.cpp
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+ * DAnCE/NodeManager/NodeManager_Impl.cpp
+
+ Disabled RT-CCM support.
+
+ * DAnCE/TargetManager/DomainDataManager.cpp
+
+ Added error messages.
+
+ Wed Mar 29 21:34:07 UTC 2006 Nilabja Roy <roy_n@dre.vanderbilt.edu>
+
+ * DAnCE/NodeManager/CIAO_Monitor.cpp:
+ Fixed a Access Error in the monitor.
+
+ * DAnCE/NodeManager/MonitorCB.cpp:
+ * DAnCE/NodeManager/MonitorController.cpp:
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+ Added to have graceful termination.
+
+ * DAnCE/TargetManager/DomainDataManager.h:
+ * DAnCE/TargetManager/DomainDataManager.cpp:
+ * DAnCE/TargetManager/TargetManager_exec.cpp:
+ Update to turn off monitors at the end.
+
+ Mon Mar 27 22:39:25 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Utils/XML_Helper.cpp
+ * tools/Config_Handlers/Utils/XML_Helper.h
+
+ Mon Mar 27 20:10:09 UTC 2006 Nishanth Shankaran <nshankar@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/Deployment_Configuration.cpp
+ (get_node_manager):
+
+ Modified this method to re-throw the caught exception.
+
+ Sun Mar 26 22:10:16 2006 Nishanth Shankaran <nshankar@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/Deployment_Configuration.cpp:
+
+ Added code to handle exceptions while trying to connect to the
+ node managers in get_node_manager ().
+
+ * DAnCE/TargetManager/DomainDataManager.cpp:
+
+ Added debug messages.
+
+ * RACE/Controller/Component/RACE_common.h:
+
+ Added a new file to define the RACE_DEBUG and RACE_ERROR macros.
+
+ Mon Mar 27 00:22:02 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+
+ Modified to allow ccm_passicate to be called on all components
+ before actually deactivating any components.
+
+ Thu Mar 23 23:18:56 UTC 2006 Nishanth Shankaran <nshankar@dre.vanderbilt.edu>
+
+ * DAnCE/NodeManager/MonitorController.cpp (svc):
+
+ Removed an unwanted debug statement.
+
+ Thu Mar 23 22:54:25 UTC 2006 Nishanth Shankarn <nshankar@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+
+ Removed an unwanted debug statement.
+
+ Thu Mar 23 19:40:54 UTC 2006 Nishanth Shankarn <nshankar@dre.vanderbilt.edu>
+
+ * APRIL_DEMO.mwc:
+ * CIAO.mwc:
+ * CIAODAnCE.mwc:
+ * CIAOTAO.mwc:
+ * CIAO_TAO_DAnCE.mwc:
+
+ Modified the mwc files so that they exclude the RACE/hog_string
+ directory.
+
+ Thu Mar 23 18:04:58 UTC 2006 Nishanth Shankaran <nshankar@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+
+ Fixed a bug in set_priority method.
+
+ Wed Mar 22 19:32:37 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp
+ * DAnCE/NodeManager/NodeManager_Impl.cpp
+
+ Modified to make debug statements debug_level controlled.
+
+ Wed Mar 22 00:51:11 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/NodeManager/NodeManager_Impl.cpp
+
+ Modified to find the corresponding NAM when given a plan_uuid.
+
+ Wed Mar 22 02:12:58 UTC 2006 Nilabja Roy <roy_n@dre.vanderbilt.edu>
+
+ * DAnCE/NodeManager/CIAO_Monitor.cpp:
+ * DAnCE/NodeManager/MonitorCB.cpp:
+ * DAnCE/NodeManager/MonitorController.cpp:
+
+ Removed some of the debug statements
+
+ Tue Mar 21 19:12:57 UTC 2006 Nishanth Shankarn <nshankar@dre.vanderbilt.edu>
+
+ * RACE/hog_string/hog.cdp:
+
+ Fixed the plan id.
+
+ Mon Mar 20 21:07:50 UTC 2006 Stoyan Paunov <spaunov@isis.vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp:
+
+ turning off the HTTP capability for Linux until I figure out why
+ it affects the loading of libraries.
+
+ Mon Mar 20 20:40:37 UTC 2006 Stoyan Paunov <spaunov@isis.vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp:
+
+ Changed loader path delimiter on Unix-like systems from ';' to ':'
+
+
+ Mon Mar 20 17:22:22 UTC 2006 Stoyan Paunov <spaunov@isis.vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/HTTP_Client.h:
+ * DAnCE/NodeApplicationManager/HTTP_Client.cpp:
+ * DAnCE/NodeApplicationManager/HTTP_Handler.h:
+ * DAnCE/NodeApplicationManager/HTTP_Handler.cpp:
+ * DAnCE/NodeApplicationManager/URL_Parser.h:
+ * DAnCE/NodeApplicationManager/URL_Parser.cpp:
+
+ Oops. Forgot to add the actual HTTP code.
+
+ Mon Mar 20 04:27:48 UTC 2006 Stoyan Paunov <spaunov@isis.vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.h:
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc:
+
+ Adding HTTP capability to DAnCE.
+
+ * DAnCE/RepositoryManager/HTTP_Client.h:
+ * DAnCE/RepositoryManager/HTTP_Client.cpp:
+ * DAnCE/RepositoryManager/HTTP_Handler.h:
+ * DAnCE/RepositoryManager/HTTP_Handler.cpp:
+ * DAnCE/RepositoryManager/Options.h:
+ * DAnCE/RepositoryManager/Options.cpp:
+ * DAnCE/RepositoryManager/PC_Updater.h:
+ * DAnCE/RepositoryManager/PC_Updater.cpp:
+ * DAnCE/RepositoryManager/PC_Updater_T.h:
+ * DAnCE/RepositoryManager/PC_Updater_T.cpp:
+ * DAnCE/RepositoryManager/RM_Helper.h:
+ * DAnCE/RepositoryManager/RM_Helper.cpp:
+ * DAnCE/RepositoryManager/RMadmin.cpp:
+ * DAnCE/RepositoryManager/RepositoryManager.mpc:
+ * DAnCE/RepositoryManager/RepositoryManager.cpp:
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.h:
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp:
+ * DAnCE/RepositoryManager/URL_Parser.h:
+ * DAnCE/RepositoryManager/URL_Parser.cpp:
+ * DAnCE/RepositoryManager/ZIP_Wrapper.h:
+ * DAnCE/RepositoryManager/ZIP_Wrapper.cpp:
+
+ Porting the RepositoryManager to the newest XML config handlers.
+ Also migrating the code from the DOC repository to ensure the gap
+ between the code in this repository and that in cvs.doc.wustl.edu
+ repo is closed.
+
+
+ NOTE: I still have some testing left, but before that I need to
+ compile the CoSMIC version from this repository and regenerate
+ a bunch of descriptors because all the example descriptors are
+ broken.
+
+ Sat Mar 18 22:33:10 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/Interfaces/NodeManager.idl
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h
+ * DAnCE/NodeManager/NodeManager_Impl.cpp
+ * DAnCE/NodeManager/NodeManager_Impl.h
+ * ciao/Deployment.idl
+
+ Put the struct Sched_Params definition outside of the NAM
+ interface.
+ Cleaned up the code a bit.
+
+ Sun Mar 19 16:52:54 UTC 2006 Nilabja Roy <roy_n@dre.vanderbilt.edu>
+
+ * DAnCE/TargetManager/CmpClient.cpp:
+ * DAnCE/TargetManager/DomainDataManager.h:
+ * DAnCE/TargetManager/DomainDataManager.cpp:
+ * DAnCE/TargetManager/TargetManager_exec.cpp:
+ Updated to implement the commitResource and releaseResource
+ function
+
+ Sat Mar 18 19:01:18 UTC 2006 Nishanth Shankaran <nshankar@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/NodeApplication.cpp:
+
+ Enhanced the NodeApplication to run in realtime priority mode.
+
+ Fri Mar 17 06:36:18 UTC 2006 Nilabja Roy <roy_n@dre.vanderbilt.edu>
+
+ * DAnCE/Interfaces/NodeManager.idl:
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+
+ * DAnCE/NodeManager/MonitorCB.cpp:
+ * DAnCE/NodeManager/MonitorController.h:
+ * DAnCE/NodeManager/MonitorController.cpp:
+ * DAnCE/NodeManager/NodeManager_Impl.h:
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+ * ciao/Deployment.idl:
+
+ Implemented the set_priority method on the NodeManager
+ and NodeApplicationManager interface. Removed some of the debug
+ messages
+
+ Thu Mar 16 03:54:39 UTC 2006 Nilabja Roy <nilabjar@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/DD_Handler.cpp:
+ Updated the handler to handle optional parameters
+
+ Tue Mar 14 07:01:28 UTC 2006 Nilabja R <nilabjar@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h:
+
+ * DAnCE/NodeManager/CIAO_Monitor.cpp:
+ * DAnCE/NodeManager/NodeManager_Impl.h:
+ Updated to make it portable in windows
+
+ * DAnCE/TargetManager/descriptors/flattened_deploymentplan.cdp:
+ Fixed the entry point.
+
+ Mon Mar 13 23:04:32 UTC 2006 <wotte@mako.isislab.vanderbilt.edu>
+
+ * tools/Config_Handlers/CPD_Handler.h
+ * tools/Config_Handlers/DataType_Handler.h
+ * tools/Config_Handlers/ID_Handler.h
+ * tools/Config_Handlers/Property_Handler.h
+ * tools/Config_Handlers/Req_Handler.h
+ * tools/Config_Handlers/SatisfierProperty_Handler.h
+ * tools/Config_Handlers/Package_Handlers/CPD_Handler.h
+ * tools/Config_Handlers/Package_Handlers/NIA_Handler.h
+ * tools/Config_Handlers/Package_Handlers/Package_Handlers.mpc
+ * tools/Config_Handlers/Package_Handlers/SID_Handler.h
+ * tools/Config_Handlers/Utils/XercesString.h
+
+ Fixed linking/warnings on Windows.
+
+ Mon Mar 13 18:27:27 UTC 2006 Nilabja R <nilabjar@dre.vanderbilt.edu>
+
+ * DAnCE/TargetManager/TargetManager.mpc:
+ Changed the projects to depend on NodeManager_Stub. This will fix the
+ linking errors in Windows.
+
+ Mon Mar 13 17:36:28 UTC 2006 Krishnakumar B <kitty@dre.vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp (namespace): Updated the
+ generated code to set the component id on the component context
+ class to allow retrieving the id at run-time from an executor
+ implementation.
+
+ Mon Mar 13 17:28:44 UTC 2006 <wotte@mako.isislab.vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/Execution_Manager.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp
+
+ Fixes for nameservice discovery of EM.
+
+ * docs/schema/toplevel.xsd
+
+ Minor correction to schema.
+
+ Fri Mar 10 17:03:26 UTC 2006 <wotte@mako.isislab.vanderbilt.edu>
+
+ * tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp
+
+ Fixed minor bug in URI interface.
+
+ Thu Mar 9 22:26:17 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * ciao/Context_Impl_Base.cpp:
+ * ciao/Context_Impl_Base.h:
+
+ Added CORBA::String_var member to store the component instance
+ id, also added a pair of set/get methods called _ciao_instance_id.
+
+ Wed Mar 8 19:07:31 UTC 2006 <wotte@mako.isislab.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp
+
+ Add error message for connection failure.
+
+ * DAnCE/StaticConfigurator/StaticDAnCEParser.mpc
+
+ Disabled this project.
+
+ * DAnCE/TargetManager/TargetManager_exec.cpp
+ * DAnCE/TargetManager/TargetManager_exec.h
+
+ Fix entry point problems.
+
+ Wed Mar 8 19:29:20 UTC 2006 Nilabja R <nilabjar@dre.vanderbilt.edu>
+
+ * DAnCE/TargetManager/DomainDataManager.h:
+ * DAnCE/TargetManager/DomainDataManager.cpp:
+ * DAnCE/TargetManager/TargetManagerExt.idl:
+ * DAnCE/TargetManager/TargetManager_exec.h:
+ * DAnCE/TargetManager/TargetManager_exec.cpp:
+ Added the structure in the TMExt interface to maintain the
+ mapping between hostname to NM refs.
+
+ Wed Mar 8 14:40:41 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools//Config_Handlers/Deployment.cpp
+ * tools//Config_Handlers/Deployment.hpp
+ * tools//Config_Handlers/GNUmakefile
+ * tools//Config_Handlers/cdd.cpp
+ * tools//Config_Handlers/cdd.hpp
+ * tools//Config_Handlers/pcd.cpp
+ * tools//Config_Handlers/pcd.hpp
+ * tools//Config_Handlers/toplevel.cpp
+ * tools//Config_Handlers/toplevel.hpp
+ * tools//Config_Handlers/Package_Handlers/PCD_Handler.cpp
+ * tools//Config_Handlers/Package_Handlers/PCD_Handler.h
+
+ New generated code.
+
+ Wed Mar 8 03:11:02 UTC 2006 Nilabja R <nilabjar@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ Implement the Signal Handler for the process NodeManager. And
+ set the option avoid_zombies=0
+
+
+ * DAnCE/NodeManager/MonitorController.h:
+ * DAnCE/NodeManager/MonitorController.cpp:
+
+ * DAnCE/TargetManager/DomainDataManager.h:
+ * DAnCE/TargetManager/TargetManager_exec.cpp:
+ Implement ComponentID to Process Id mapping
+
+ Tue Mar 7 23:26:41 UTC 2006 Nilabja Roy <nilabjar@localhost.localdomain>
+
+ * DAnCE/TargetManager/DomainDataManager.cpp
+ * DAnCE/TargetManager/TargetManagerExt.idl
+ * DAnCE/TargetManager/TargetManager.mpc:
+ Changed to depend on the NodeManager_Stub, so that
+ CIAO::NodeManager can be used.
+
+ Tue Mar 7 03:14:50 UTC 2006 Nilabja R <nilabjar@dre.vanderbilt.edu>
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ Changed to add the Comp_id to Proc_id mapping
+
+ * DAnCE/NodeManager/CIAO_Monitor.h:
+ * DAnCE/NodeManager/CIAO_Monitor.cpp:
+ Changed to add the percentage cpu same as vmstat
+
+ * DAnCE/NodeManager/MonitorController.h:
+ * DAnCE/NodeManager/MonitorController.cpp:
+ Changed to add the Comp_id to Proc_id mapping
+
+ * DAnCE/NodeManager/NodeManager_Impl.h:
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+ Changed to add the Comp_id to Proc_id mapping
+
+ * DAnCE/TargetManager/DomainDataManager.h:
+ * DAnCE/TargetManager/DomainDataManager.cpp:
+ Changed to add interface to RACE
+
+ * DAnCE/TargetManager/TargetManagerExt.idl:
+ * DAnCE/TargetManager/TargetManager_exec.h:
+ * DAnCE/TargetManager/TargetManager_exec.cpp:
+ Changed to add interface to RACE
+
+ * DAnCE/TargetManager/descriptors/Domain.cdd:
+ Updated to the latest xsd
+
+
+ * docs/schema/cdd.xsd:
+ Changed the Domain definations
+
+ Mon Mar 6 19:46:54 UTC 2006 Nishanth Shankaran <nshankar@dre.vanderbilt.edu>
+
+ * DAnCE/Interfaces/NodeManager.idl
+ * DAnCE/NodeManager/NodeManager_Impl.h
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+
+ Added the set_priority method to modify the priority of
+ NodeApplication process.
+
+ Wed Mar 1 20:56:16 UTC 2006 Nishanth Shankaran <nshankar@dre.vanderbilt.edu>
+
+ * DAnCE/TargetManager/TargetManager_exec.h
+ * DAnCE/TargetManager/TargetManager_exec.cpp
+ * DAnCE/TargetManager/TargetManagerExt.idl:
+
+ Added method to TargetManagerExt interface to obtain references to
+ the NodeManagers.
+
+
+ Fri Feb 24 22:55:51 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Basic_Deployment_Data.cpp
+ * tools/Config_Handlers/Basic_Deployment_Data.hpp
+ * tools/Config_Handlers/CEPE_Handler.cpp
+ * tools/Config_Handlers/CEPE_Handler.h
+ * tools/Config_Handlers/CPD_Handler.cpp
+ * tools/Config_Handlers/CPD_Handler.h
+ * tools/Config_Handlers/CRDD_Handler.cpp
+ * tools/Config_Handlers/ComponentPropertyDescription_Handler.cpp
+ * tools/Config_Handlers/Config_Handlers.mpc
+ * tools/Config_Handlers/DP_Handler.cpp
+ * tools/Config_Handlers/DP_Handler.h
+ * tools/Config_Handlers/DataType_Handler.cpp
+ * tools/Config_Handlers/DataType_Handler.h
+ * tools/Config_Handlers/DnC_Dump.cpp
+ * tools/Config_Handlers/ERE_Handler.h
+ * tools/Config_Handlers/IDD_Handler.cpp
+ * tools/Config_Handlers/IDREF_Base.cpp
+ * tools/Config_Handlers/IDREF_Base.h
+ * tools/Config_Handlers/ID_Handler.cpp
+ * tools/Config_Handlers/ID_Handler.h
+ * tools/Config_Handlers/IRDD_Handler.cpp
+ * tools/Config_Handlers/IRDD_Handler.h
+ * tools/Config_Handlers/MDD_Handler.cpp
+ * tools/Config_Handlers/PCD_Handler.cpp
+ * tools/Config_Handlers/Property_Handler.h
+ * tools/Config_Handlers/RDD_Handler.cpp
+ * tools/Config_Handlers/Req_Handler.cpp
+ * tools/Config_Handlers/Req_Handler.h
+ * tools/Config_Handlers/STD_PCD_Handler.h
+ * tools/Config_Handlers/ccd.cpp
+ * tools/Config_Handlers/ccd.hpp
+ * tools/Config_Handlers/cid.cpp
+ * tools/Config_Handlers/cid.hpp
+ * tools/Config_Handlers/cpd.cpp
+ * tools/Config_Handlers/cpd.hpp
+ * tools/Config_Handlers/iad.cpp
+ * tools/Config_Handlers/iad.hpp
+ * tools/Config_Handlers/pcd.cpp
+ * tools/Config_Handlers/pcd.hpp
+ * tools/Config_Handlers/test.cdp
+ * tools/Config_Handlers/Package_Handlers/CAD_Handler.cpp
+ * tools/Config_Handlers/Package_Handlers/CAD_Handler.h
+ * tools/Config_Handlers/Package_Handlers/CID_Handler.cpp
+ * tools/Config_Handlers/Package_Handlers/CID_Handler.h
+ * tools/Config_Handlers/Package_Handlers/CPD_Handler.cpp
+ * tools/Config_Handlers/Package_Handlers/CPD_Handler.h
+ * tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.cpp
+ * tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.h
+ * tools/Config_Handlers/Package_Handlers/IAD_Handler.cpp
+ * tools/Config_Handlers/Package_Handlers/IAD_Handler.h
+ * tools/Config_Handlers/Package_Handlers/NIA_Handler.h
+ * tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp
+ * tools/Config_Handlers/Package_Handlers/PCD_Handler.h
+ * tools/Config_Handlers/Package_Handlers/PC_Intf.cpp
+ * tools/Config_Handlers/Package_Handlers/PC_Intf.h
+ * tools/Config_Handlers/Package_Handlers/Package_Handlers.mpc
+ * tools/Config_Handlers/Package_Handlers/Packaging_Handlers_Export.h
+ * tools/Config_Handlers/Package_Handlers/SID_Handler.cpp
+ * tools/Config_Handlers/Package_Handlers/SID_Handler.h
+ * tools/Config_Handlers/Package_Handlers/test.cpp
+ * tools/Config_Handlers/Package_Handlers/descriptors/package.tpd
+ * tools/Config_Handlers/Utils/Exceptions.h
+ * tools/Config_Handlers/Utils/Functors.h
+ * tools/Config_Handlers/Utils/XML_Error_Handler.cpp
+ * tools/Config_Handlers/Utils/XML_Helper.h
+ * tools/Config_Handlers/XMLSchema/Writer.hpp
+
+ Package handlers and changes necessary to support them.
+
+Fri Apr 21 08:13:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+ Removed usage of ACE_NESTED_CLASS
+
+ * DAnCE/RepositoryManager/PC_Updater.cpp:
+ Fixed compile errors
+
+Thu Apr 20 13:14:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/DnC_Dump.cpp:
+ * DAnCE/RepositoryManager/RMadmin.cpp:
+ Fixed compile error
+
+Thu Apr 20 09:14:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/RT-CCM/CLA_Handler.cpp:
+ Fixed compile error
+
+Wed Apr 19 19:03:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ Fixed usage of sequences. The sequences now return
+ a pointer on the subscript operators, not _var which was not according
+ to the spec.
+
+Wed Apr 19 14:39:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/XMLSchema/Types.hpp:
+ Removed vc6 workaround
+
+Wed Apr 19 13:43:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * docs/schema/xsc-banner.h:
+ * tools/Config_Handlers/RT-CCM/CIAOServerResources.hpp:
+ * tools/Config_Handlers/CIAO_Events/CIAOEvents.hpp:
+ Removed include of vc6-4786.h
+
+Wed Apr 19 13:39:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/STD_PC_Intf.cpp:
+ * tools/Config_Handlers/XSCRT/XMLSchema.hpp:
+ * tools/Config_Handlers/XSCRT/Elements.hpp:
+ * tools/Config_Handlers/XSCRT/XML.hpp:
+ * tools/Config_Handlers/DP_Handler.cpp:
+ * tools/Config_Handlers/DP_Handler.cpp:
+ Removed vc6 workarounds
+
+Wed Apr 19 11:23:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/DnC_Dump.{h,cpp}:
+ Updated for string manager change in TAO
+
+ * ciao/Servant_Impl_Base.cpp:
+ Updated for sequence change
+
+Wed Apr 19 07:48:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/Basic_Deployment_Data.hpp
+ * tools/Config_Handlers/Deployment.hpp
+ * tools/Config_Handlers/ccd.hpp
+ * tools/Config_Handlers/cdd.hpp
+ * tools/Config_Handlers/cdp.hpp
+ * tools/Config_Handlers/cid.hpp
+ * tools/Config_Handlers/cpd.hpp
+ * tools/Config_Handlers/iad.hpp
+ * tools/Config_Handlers/pcd.hpp
+ * tools/Config_Handlers/toplevel.hpp
+ Removed vc6 workarounds
+
+ * tools/Config_Handlers/vc6-4786.h
+ Removed
+
+Tue Apr 18 20:55:05 2006 Wallace Zhang <zhangw@ociweb.com>
+
+ * CIAO version 0.5.1 released.
+
+Local Variables:
+mode: change-log
+add-log-time-format: (lambda () (progn (setq tz (getenv "TZ")) (set-time-zone-rule "UTC") (setq time (format-time-string "%a %b %e %H:%M:%S %Z %Y" (current-time))) (set-time-zone-rule tz) time))
+indent-tabs-mode: nil
+End:
diff --git a/modules/CIAO/ChangeLogs/ChangeLog-07a b/modules/CIAO/ChangeLogs/ChangeLog-07a
new file mode 100644
index 00000000000..613da3f1e4c
--- /dev/null
+++ b/modules/CIAO/ChangeLogs/ChangeLog-07a
@@ -0,0 +1,1122 @@
+Mon Jan 22 23:14:56 2007 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CIAO version 0.5.5 released.
+
+Thu Jan 18 17:49:00 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * docs/index.html:
+
+ Fixed broken links to doxygen.
+
+Wed Jan 10 21:35:25 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * NEWS:
+
+ Updated with my changes since 0.5.4.
+
+Tue Jan 8 20:01:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * RACE/common/RACE_common.idl:
+ Use the CORBA::StringSeq to reduce footprint
+
+Tue Jan 8 19:43:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/CCM_CCMException.idl:
+ * ciao/CCM_Context.idl:
+ Added some commented out IDL that is part of the QoS4CCM spec
+
+Sun Jan 7 18:44:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeApplicationManager/URL_Parser.cpp:
+ No need to set members to 0 in destructor
+
+ * DAnCE/RepositoryManager/URL_Parser.cpp:
+ Fixed conversion warning and memory leak
+
+Sun Jan 7 12:14:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/CCM_ClientContainerInterceptor.idl:
+ * ciao/CCM_ClientContainerInterceptorRegistration.idl:
+ * ciao/CCM_ContainerClientRequestInfo.idl:
+ * ciao/CCM_ContainerInterceptor.idl:
+ * ciao/CCM_ContainerRequestInfo.idl:
+ * ciao/CCM_ContainerServantRequestInfo.idl:
+ * ciao/CCM_ContainerServerRequestInfo.idl:
+ * ciao/CCM_ContainerStubRequestInfo.idl:
+ * ciao/CCM_ExtensionComponent.idl:
+ * ciao/CCM_ExtensionContext.idl:
+ * ciao/CCM_InvalidRegistration.idl:
+ * ciao/CCM_QoS.idl:
+ * ciao/CCM_ServantContainerInterceptor.idl:
+ * ciao/CCM_ServantContainerInterceptorRegistration.idl:
+ * ciao/CCM_ServerContainerInterceptor.idl:
+ * ciao/CCM_ServerContainerInterceptorRegistration.idl:
+ * ciao/CCM_StubContainerInterceptor.idl:
+ * ciao/CCM_StubContainerInterceptorRegistration.idl:
+ Added interfaces from QoS for CCM spec (OMG 06-04-15). We
+ don't have an implementation yet, just the interfaces at
+ this moment
+
+Fri Jan 5 12:14:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/RepositoryManager/RepositoryManager.cpp:
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp:
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.h:
+ Fixed conversion warnings
+
+ * DAnCE/RepositoryManager/PC_Updater.cpp:
+ * DAnCE/RepositoryManager/RMadmin.cpp:
+ * DAnCE/RepositoryManager/URL_Parser.cpp:
+ Improved layout and documentation
+
+Wed Jan 3 19:32:05 UTC 2007 Chad Elliott <elliott_c@ociweb.com>
+
+ * CIAO_TAO_DAnCE.mwc:
+
+ Added $(ACE_ROOT)/contrib/minizip since the RepositoryManager can
+ use minizip if the zlib feature is enabled.
+
+Wed Jan 3 07:01:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/RepositoryManager/RepositoryManager.cpp:
+ Fixed conversion warnings
+
+ * DAnCE/RepositoryManager/URL_Parser.cpp:
+ Initialise pointer with 0
+
+Wed Jan 3 16:18:36 UTC 2007 Chad Elliott <elliott_c@ociweb.com>
+
+ * tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc:
+
+ Use the install base project instead of the deprecated core base
+ project.
+
+Thu Dec 28 12:22:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.h:
+ Doxygen improvements
+
+Mon Dec 25 16:19:42 UTC 2006 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * Merry Christmas everyone!!!
+
+Wed Dec 20 06:37:27 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * MPC/config/ciao_rtevent_dnc.mpb:
+ * MPC/config/ciao_events_dnc.mpb:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc:
+ * ciao/CCM_Core.mpc:
+
+ Fixed linking errors on OS X.
+
+Wed Dec 13 08:35:48 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * tools/Config_Handlers/CIAO_Events/CIAOEvents.cpp:
+
+ Fixed warnings on NoInterceptors_Core build related to
+ type conversion.
+
+Wed Dec 13 07:57:02 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * ciaosvcs/Events/CIAO_RTEC/SimpleAddressServer.cpp:
+
+ Fixed a fuzz error.
+
+Wed Dec 13 07:29:10 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * tools/Config_Handlers/CIAO_Events/CIAOEvents.hpp:
+
+ Fixed Debian_GCC_4.0 compilation error by removing
+ unnecessary common for enum definition.
+
+Wed Dec 13 07:19:13 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * ciaosvcs/Events/CIAO_RTEC/SimpleAddressServer.h:
+
+ Fixed a compilation error in Win2003_VC71_Versioned_Namespace
+ build by removing the unnecessary declaration.
+
+Wed Dec 13 06:45:57 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/Swapping/Sender/Sender_exec.h:
+ Fixed include because of file name changes
+
+Tue Dec 12 20:55:02 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * ciaosvcs/Events/CIAO_Events_Base/CIAO_EventServiceBase.cpp:
+ * ciaosvcs/Events/CIAO_Events_Base/CIAO_EventServiceBase.h:
+
+ Modified the ciao_push_event() in this base class to fix
+ BCC warnings.
+
+Tue Dec 12 20:21:03 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * ciaosvcs/Events/CIAO_RTEC/SimpleAddressServer.h:
+ * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.cpp:
+
+ Fixed the fuzz errors.
+
+Tue Dec 12 20:15:57 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/CCM_Component.idl:
+ * ciao/CCM_Core.mpc:
+ * ciao/CCM_EventBase.idl:
+ * ciao/CCM_EventConsumerBase.idl:
+ * ciao/CCM_HomeConfiguration.idl:
+ * ciao/CCM_HomeConfigurator.idl:
+ * ciao/CCM_Object.idl:
+ * ciao/CCM_PrimaryKeyBase.idl:
+ * ciao/CCM_SessionComponent.idl:
+ * ciao/CCM_StateIdFactory.idl:
+ * ciao/Servant_Impl_Base.h:
+ * ciaosvcs/Events/CIAO_Events_Base/CIAO_Events.idl:
+ * DAnCE/TargetManager/DomainEvents.idl:
+ Added remarks about compliance and another set of splitting
+ idl files in smaller ones
+
+ * ciao/CCM_Event.idl:
+ * ciao/CCM_Events.idl:
+ Renamed Event to Events
+
+ * ciao/CCM_HomeConfigurator.idl:
+ * ciao/CCM_HomeConfiguration.idl:
+ Renamed Configurator to Configuration
+
+Tue Dec 12 14:48:57 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/CCM_Base.idl:
+ * ciao/CCM_CCM2Context.idl:
+ * ciao/CCM_ComponentId.idl:
+ * ciao/CCM_Configurator.idl:
+ * ciao/CCM_Container.idl:
+ * ciao/CCM_Container_Ex.idl:
+ * ciao/CCM_Core.mpc:
+ * ciao/CCM_Entity2Context.idl:
+ * ciao/CCM_Event.idl:
+ * ciao/CCM_ExecutorLocator.idl:
+ * ciao/CCM_HomeConfigurator.idl:
+ * ciao/CCM_SessionComponent.idl:
+ * ciao/CCM_SessionContext.idl:
+ * ciao/CCM_StandardConfigurator.idl:
+ * ciao/CCM_StateIdFactory.idl:
+ * ciao/Deployment_NodeApplication.idl:
+ Moved more interfaces to their own file
+
+ * DAnCE/DomainApplicationManager/Deployment_Configuration.h:
+ Removed virtual keywords, not needed
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ Const changes and improved some messages
+
+ * DAnCE/Plan_Generator/PCVisitor.h:
+ * DAnCE/Plan_Generator/PCVisitorBase.h:
+ Doxygen changes
+
+ * tools/Config_Handlers/DynAny_Handler.mpc:
+ layout changes
+
+Tue Dec 12 10:08:57 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * MPC/config/taoidl3toidl2defaults.mpb:
+ Moved from TAO to here
+
+Mon Dec 11 20:55:39 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * ciao/CCM_Event.idl:
+
+ Modified the "ciao_push_event" operation to pass in "source_id",
+ which is used to identify the sources of the publisher ports to
+ support event filtering mechanism.
+
+ * ciao/Deployment_Events.idl:
+
+ Added new IDL definitions to support RTEC federation, such as
+ AddrServer, UDPSender, UPDReceiver, etc.
+
+ * ciao/Deployment_NodeApplication.idl:
+
+ Modified the "install_es" operation to install one service object
+ per invocation, instead of a sequence of objects.
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * DAnCE/NodeApplication/NodeApplication_Impl.h:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h:
+
+ Modified to accomodate the changes made above by adding only
+ one ciao event service object reference to the map.
+
+ * ciaosvcs/Events/CIAO_Events_Base/CIAO_Events.idl:
+
+ Removed the inheritance relationship between Consumer_Config and
+ Supplier_Config object. The reason why it was there is because
+ of a tightly coupled design long time ago.
+
+ * ciaosvcs/Events/CIAO_Events_Base/CIAO_EventServiceBase.cpp:
+ * ciaosvcs/Events/CIAO_Events_Base/CIAO_EventServiceBase.h:
+
+ Added a virtual function "ciao_push_event" and provides a
+ default implementation, which is essentially a no_op impl.
+
+ * ciaosvcs/Events/CIAO_EventService_Factory_impl.cpp:
+ * ciaosvcs/Events/CIAO_EventService_Factory_impl.h:
+
+ Modified the factory method "create" by passing in the
+ string identifier for the service object.
+
+ * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.idl:
+
+ Added new operations to create gateways object to support
+ event channel federations.
+
+ * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.cpp:
+ * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.h:
+ * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.mpc:
+ * ciaosvcs/Events/CIAO_RTEC/SimpleAddressServer.cpp:
+ * ciaosvcs/Events/CIAO_RTEC/SimpleAddressServer.h:
+
+ Added the implementation and MPC files to support event
+ channel federations in CIAO_Event_Service.
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Automatically generate the implementation code of
+ ciao_push_event for component in the servant code.
+
+ * DAnCE/NodeApplication/NodeApplication.cpp:
+
+ Explicitly add the init_svcs() operation to the
+ NA component server implementation. We should figure
+ out a way to see whether we can avoid doing this at
+ this level.
+
+ * DAnCE/NodeManager/Node_Manager.cpp:
+
+ Enhanced NM to pass in service configuration file explicitly.
+ Also fixed a bug about controlling ORBDebugLevel.
+
+ * docs/schema/CIAOEvents.xsd:
+
+ Enhanced the CIAOEvents schema to support event channel
+ federation configuration.
+
+ * tools/Config_Handlers/CIAO_Events/CIAOEvents.cpp:
+ * tools/Config_Handlers/CIAO_Events/CIAOEvents.hpp:
+ * tools/Config_Handlers/CIAO_Events/CIAOEvents_Handler.cpp:
+
+ Config handlers enhancement to support the above
+ schema changes.
+
+ * DAnCE/tests/NodeApplicationTest/run_test.pl:
+ * DAnCE/tests/NodeApplicationTest/run_test_ex.pl:
+ * DAnCE/tests/NodeApplicationTest/run_test_simple.pl:
+
+ Modified to use environment variables instead of relative paths.
+
+ * examples/Hello/Sender/Sender_exec.cpp:
+ * examples/Hello/Receiver/Receiver_exec.cpp:
+
+ Modified to explicitly print out the contents of the received msgs.
+
+ * examples/Hello/descriptors_events/ciao-events-example-collocated.ced:
+ * examples/Hello/descriptors_events/ciao-events-example-with-federation.ced:
+ * examples/Hello/descriptors_events/ciao-events-example-with-filters.ced:
+ * examples/Hello/descriptors_events/ciao-events-example.ced:
+ * examples/Hello/descriptors_events/ciao-events-federation-mcast.ced:
+ * examples/Hello/descriptors_events/ciao-events-federation-udp-collocated.ced:
+ * examples/Hello/descriptors_events/ciao-events-federation-udp-two-hosts.ced:
+ * examples/Hello/descriptors_events/ciao-events-federation-udp.ced:
+ * examples/Hello/descriptors_events/flattened_deploymentplan_events.cdp:
+ * examples/Hello/descriptors_events/flattened_deploymentplan_events_collocated.cdp:
+ * examples/Hello/descriptors_events/flattened_deploymentplan_federation.cdp:
+ * examples/Hello/descriptors_events/flattened_deploymentplan_federation_mcast.cdp:
+ * examples/Hello/descriptors_events/flattened_deploymentplan_federation_udp.cdp:
+ * examples/Hello/descriptors_events/flattened_deploymentplan_federation_udp_collocated.cdp:
+ * examples/Hello/descriptors_events/flattened_deploymentplan_federation_udp_two_hosts.cdp:
+ * examples/Hello/descriptors_events/flattened_deploymentplan_with_filters.cdp:
+ * examples/Hello/descriptors_events/NodeManagerMap.dat:
+ * examples/Hello/descriptors_events/NodeManagerMapTwoHosts.dat:
+ * examples/Hello/descriptors_events/rtec.conf:
+ * examples/Hello/descriptors_events/run_NodeDaemons.pl:
+ * examples/Hello/descriptors_events/run_NodeDaemons_svc_conf.pl:
+ * examples/Hello/descriptors_events/run_NodeDaemons_with_ip.pl:
+
+ Added a bunch of test cases for CIAO Event Service.
+
+Fri Dec 8 22:59:14 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/tools.mwc:
+
+ Added IDL3_to_IDL2 directory to the list.
+
+Fri Dec 8 000:09:04 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * bin/generate_component_mpc.pl:
+
+ Another typo found by Abdullah Sowayan <abdullah.sowayan@lmco.com>.
+
+Thu Dec 7 20:22:57 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * bin/generate_component_mpc.pl:
+
+ Fixed bug that omits necessary space between items in 'after'
+ line, if it contains more than one item. Thanks to Abdullah
+ Sowayan <abdullah.sowayan@lmco.com> for reporting the bug.
+
+Thu Dec 7 19:15:04 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * bin/generate_component_mpc.pl:
+
+ Fixed typo, had 'ciao_server_dnc', should have been
+ 'ciao_servant_dnc'. Thanks to Abdullah Sowayan
+ <abdullah.sowayan@lmco.com> for reporting the mistake.
+
+Thu Dec 7 19:04:38 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/Config_Handlers/DynAny_Handler.mpc:
+
+ Removed taolib and anytypecode base projects, since they are
+ already pulled in by typecodefactory.
+
+Thu Dec 7 13:47:57 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/DomainApplicationManager/Deployment_Configuration (init):
+ Use ACE_Read_Buffer to read the file and parse it contents. This way
+ we are independent of a fixed buffer length, especially on systems
+ with multiple network cards and IPv6 enabled the IORs can get huge.
+
+Thu Dec 7 11:48:57 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/CCM_Core.mpc:
+ * MPC/config/ciao_server_dnc.mpb:
+ Don't build DnC server with minimum corba and CORBA/e, this was
+ disabled in the past implicitly because we used security as
+ MPC base project but because that has been removed we now
+ have to explicitly disable this project
+
+Thu Dec 7 11:34:57 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Plan_Generator/Plan_Generator_Impl.cpp:
+ Added some todo's, check whether the narrow on the NamingContext
+ did succeed, use CORBA::ULong for the sequence index
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.cpp:
+ Use a CORBA::String_var to store the uuid string
+
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp:
+ Added some todo's, check whether the narrow on the NamingContext
+ did succeed, layout changes, fixed bugzilla bug 2729, thanks to Abdul
+ for reporting that.
+
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.h:
+ Doxygen improvements
+
+Wed Dec 6 11:26:57 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/CIAO_ServerResources.idl:
+ * ciao/Deployment_NodeApplicationManager.idl:
+ * DAnCE/NodeApplication/NodeApplication_Impl.h:
+ * DAnCE/NodeManager/MonitorCB.h:
+ * DAnCE/NodeManager/MonitorController.h:
+ * DAnCE/TargetManager/DomainDataManager.h:
+ * tools/Config_Handlers/DD_Handler.h:
+ Doxygen documentation updates
+
+ * MPC/config/ciao_container_dnc.mpb:
+ * ciao/CCM_Core.mpc:
+ Added avoids_corba_e_compact as base project
+
+Tue Dec 5 11:45:57 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/CCM_Core.mpc:
+ * MPC/config/ciao_container_dnc.mpb:
+ Don't build Dnc_Container with corba/e compact has been enabled
+
+ * tools/Config_Handlers/RT-CCM/RT-CCM-Handlers.mpc:
+ Simplified this MPC file
+
+Mon Dec 4 12:14:57 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * MPC/config/*:
+ All CIAO base projects are moved from
+ ACE_wrappers/bin/MakeProjectCreator/config to this directory
+
+Mon Dec 4 12:35:57 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/TargetManager/TM_Client.mpc:
+ Simplified this file using more base projects
+
+Mon Dec 4 12:29:57 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/TargetManager/DomainDataManager.h:
+ Documentation changes
+
+ * DAnCE/TargetManager/TargetManager.mpc:
+ Simplified this file using more base projects
+
+Mon Dec 4 12:24:57 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * MPC
+ * MPC/config
+ New directory for the base projects specifically for CIAO
+
+Mon Dec 4 12:16:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/StaticConfigurator/StaticDAnCEParser.cpp:
+ Use include from CIAO_ROOT and removed using namespace
+
+ * DAnCE/StaticConfigurator/StaticDAnCEParser.mpc:
+ Simplified this file
+
+Mon Dec 4 11:41:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/ExecutionManager/ExecutionManager.mpc:
+ Simplified by using the base projects
+
+Mon Dec 4 11:37:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ Converted the NodeApplication into a library and build
+ an exe using this library. Will prevent duplicate compilation
+ of part of the code. Fixes bugzilla bug 2739.
+
+ * DAnCE/NodeApplication/CIAO_NodeApplication_export.h:
+ New export file:
+
+ * DAnCE/NodeApplication/Configurator_Factory.h:
+ * DAnCE/NodeApplication/Container_Impl.h:
+ * DAnCE/NodeApplication/NodeApplication_Core.h:
+ * DAnCE/NodeApplication/NodeApplication_Impl.h:
+ Added export macro to export the class from the new NodeApplication
+ library.
+
+ * DAnCE/NodeApplication/NodeApplication.mpc:
+ Added new library project and use this in the executable.
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc:
+ Use the new NodeApplication library and the new base projects
+ I added for CIAO
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.{h,cpp,inl}:
+ Moved destructor from inline to cpp method and small code improvements
+
+ * DAnCE/NodeManager/NodeManager.mpc:
+ * DAnCE/StaticConfigurator/StaticDAnCEParser.mpc:
+ Simplified by using the new base projects
+
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+ Small improvements
+
+Mon Dec 4 07:35:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIAO-INSTALL.html:
+ Updated build instructions
+
+ * ciao/Dynamic_Component_Activator.cpp:
+ Removed not needed return statements in a void method
+
+ * ciao/Dynamic_Component_Activator.h:
+ Changed guard in file to match filename
+
+ * ciao/Home_Servant_Impl_T.cpp:
+ Layout changes
+
+ * ciao/Port_Activator.{h,cpp}:
+ The name methods did really change oid, so renamed name
+ to oid and added a new name method to return the name
+ member
+
+ * ciao/Servant_Activator.cpp:
+ Const changes and updated for Port Activator changes
+
+ * ciao/Servant_Impl_Base.cpp:
+ Small code improvements
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ Const changes
+
+ * DAnCE/NodeApplication/Container_Impl.cpp:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp:
+ Throw NO_MEMORY when allocation fails
+
+ * DAnCE/NodeApplication/RTConfig_Manager.cpp:
+ Throw BAD_PARAM when an incorrect method parameter has been passed
+
+ * DAnCE/NodeManager/BaseMonitor.h:
+ * DAnCE/NodeManager/CIAO_Monitor.h:
+ * DAnCE/NodeManager/NodeManager_Impl.h:
+ Doxygen changes
+
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+ Fixed a comment
+
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.h:
+ Use true/false for bool
+
+ * DAnCE/TargetManager/DomainDataManager.cpp:
+ Layout changes
+
+ * DAnCE/TargetManager/TargetManager_exec.cpp:
+ Removed not needed includes, made messages dependent
+ on the debug level, added missing duplicate
+
+ * DAnCE/TargetManager/TargetManager_exec.h:
+ Don't use std:: for auto_ptr
+
+ * DAnCE/TargetManager/TargetManagerExt.idl:
+ Removed commented out include
+
+ * DAnCE/TargetManager/TargetManagerImpl.idl:
+ Removed empty lines
+
+ * DAnCE/tests/NodeApplicationTest/run_test.pl:
+ * DAnCE/tests/NodeApplicationTest/run_test_ex.pl:
+ * DAnCE/tests/NodeApplicationTest/run_test_simple.pl:
+ * DAnCE/tests/scripts/BasicSP/basicNodeDaemon.pl:
+ * docs/tutorials/Quoter/Simple/descriptors/runNodeDaemons.pl:
+ * examples/Display/descriptors/basicNodeDaemon.pl:
+ * examples/Display/descriptors/run_NodeDaemons.pl:
+ * examples/Hello/descriptors/run_NodeDaemons.pl:
+ Use $ACE_ROOT/bin with use lib. This fixes bugzilla bug 2737,
+ thanks for Abdul for reporting this.
+
+ * docs/tutorials/Quoter/Simple/01.html:
+ Update from Abdul
+
+Fri Dec 1 16:27:34 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * bin/generate_component_mpc.pl:
+
+ Fixed generation of export files. Thanks to Abdullah
+ Sowayan <abdullah.sowayan@lmco.com> for reporting
+ the problem.
+
+Fri Dec 1 13:39:12 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * docs/tutorials/CoSMIC/index.html:
+ * docs/tutorials/Quoter/Simple/index.html:
+ Updated download location of ACE/TAO/CIAO
+
+Fri Dec 1 11:26:12 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/ExecutionManager/Execution_Manager.cpp:
+ Fixed invalid check whether we have a nil POA or not
+
+Fri Dec 1 11:17:12 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/TargetManager/Deployment_Configuration.{h,cpp}:
+ Removed these files, not used in the mpc file
+
+ * DAnCE/DomainApplicationManager/Deployment_Configuration.{h,cpp}:
+ Close the file handle, part of the fix for bugzilla bug 2733
+
+ * DAnCE/TargetManager/DomainDataManager.{h,cpp}:
+ Const changes, sequences have a CORBA::ULong as length, not int.
+ Added some todo's and use a little bit more ACE
+
+ * DAnCE/TargetManager/TargetManager.cidl:
+ Removed empty line
+
+ * DAnCE/TargetManager/TargetManager_exec.cpp:
+ Fixed memory management and the way we check for a nil
+ reference
+
+Fri Dec 1 09:01:12 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/generate_component_mpc.pl:
+ Layout improvements, thanks to Abdul for making this
+ update.
+
+Thu Nov 30 12:45:12 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/ExecutionManager/Execution_Manager.cpp:
+ Removed not needed ACE_TRY_CHECK
+
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp:
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.h:
+ Const improvement
+
+ * DAnCE/RepositoryManager/RepositoryManager.cpp:
+ Initialise pointer with 0, removed code after return
+ added added a todo
+
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.h:
+ Doxygen improvement
+
+ * DAnCE/RepositoryManager/ZIP_Wrapper.cpp:
+ Lot of layout changes to make the code a little bit more
+ readable, more has to be done to this file
+
+ * DAnCE/RepositoryManager/ZIP_Wrapper.h:
+ Doyxgen improvements and removed not needed include
+
+ * DAnCE/TargetManager/CmpClient.cpp:
+ Use true/false for a bool
+
+ * DAnCE/TargetManager/Deployment_Configuration.cpp:
+ Use bool and use 0 instead of NULL
+
+ * DAnCE/TargetManager/DomainDataManager.h:
+ Doxygen changes
+
+ * DAnCE/TargetManager/DomainEvents.idl:
+ Removed not needed include
+
+ * DAnCE/TargetManager/TargetManager_exec.cpp:
+ Layout changes
+
+ * DAnCE/TargetManager/TM_Client.mpc:
+ Removed not needed includes
+
+Wed Nov 29 21:26:53 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * docs/generate_component_mpc.html:
+
+ New file, documentation for the Perl script
+ generate_component_mpc.pl, in CIAO_ROOT/bin.
+
+ * bin/generate_component_mpc.pl:
+
+ Changes mainly to correct problems with MPC files
+ generated for non-component builds, i.e., from some IDL
+ file used in common by multiple component builds, such
+ as the definition of a port interface. Also made changes
+ and added a new command line option to help minimize the
+ amount of code generated from IDL and minimize the
+ dependencies of the generated makefile or project.
+
+Wed Nov 29 15:43:12 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeManager/CIAO_Monitor.cpp:
+ Don't use plain new, fixes bugzilla bug 2732. Thanks to Abdul
+ for reporting this
+
+Wed Nov 29 12:48:12 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/*.idl:
+ Added ciao/ as prefix to the include path. This way it is clear
+ where we are including a file from.
+
+Tue Nov 28 21:38:12 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/RTNodeApplication:
+ Zapped, not used anymore
+
+Tue Nov 28 19:33:12 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Deployment_DomainApplicationManager.idl:
+ Added comments about more details which are not compliant according
+ to the spec
+
+ * DAnCE/DomainApplicationManager/Deployment_Configuration.cpp:
+ Use native bool instead of int
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h:
+ Reordered includes and improved doxygen documentation
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ Const changes, use ACE_ERROR for error messages
+
+ * DAnCE/NodeManager/CIAO_Monitor.cpp:
+ Const changes, use more ACE and little cleanup
+
+ * DAnCE/NodeManager/CIAO_Monitor.h:
+ Doxygen improvement
+
+ * DAnCE/NodeManager/MonitorCB.cpp:
+ Code layout changes
+
+ * DAnCE/NodeManager/MonitorCB.h:
+ Doxygen changes and added some todo's
+
+ * DAnCE/NodeManager/MonitorController.cpp:
+ Use bool and small improvements
+
+ * DAnCE/NodeManager/Node_Manager.cpp:
+ Use the correct value for the lenght of the buffer passed
+ to hostname
+
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+ Small improvements and added some todo's
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.cpp:
+ Cleanup
+
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp:
+ Made some debug lines dependent on a debug level
+
+Tue Nov 28 16:11:32 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Package_Handlers/Package_Handlers.mpc
+ * DAnCE/NodeManager/Monitor.mpc
+
+ Fixes for link errors in OS X.
+
+Tue Nov 28 11:45:12 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIDLC/ExecutorMappingGenerator.cpp:
+ Updated because of idl file rename
+
+Tue Nov 28 10:42:12 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/*:
+ * *:
+ Renamed a lot of idl files, if the file contains interfaces/types
+ from the DAnCE spec, added Deployment_ as prefix, if they are
+ containing CIAO specific interfaces, added CIAO_. This way we can
+ more easily see if we have spec compliant IDL or not.
+
+Tue Nov 28 09:50:12 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/CCM_Home.idl:
+ * ciao/CCM_Object.idl:
+ Moved CCMHome again to its own file
+
+ * ciao/Security.idl:
+ CIAO uses an interface of the security service but we don't
+ do a thing with it, so just define a local interface within
+ CIAO and use that for the moment, saves 250Kb of footprint
+
+ * ciao/CCM_Context.idl:
+ Use the local security interface
+
+ * ciao/ExectionManager.idl:
+ Added todo
+
+ * ciao/CCM_Core.idl:
+ Added new file
+
+Mon Nov 27 18:34:12 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/NodeApplicationManager.idl:
+ * ciao/Deployment_ApplicationManager.idl:
+ Moved ApplicationManager interface to its own file
+
+ * ciao/CCM_Core.mpc:
+ Added new file
+
+ * ciao/DomainApplicationManager.idl:
+ * ciao/TargetManager.idl:
+ Updated includes
+
+ * ciao/Target_Data.idl:
+ Moved ResourceNotAvailable also to the new
+ Deyloyment_ApplicationManger file
+
+ * DAnCE/NodeManager/CIAO_Monitor.h:
+ Removed include of memory, not portable and not used.
+ Fixes bugzilla bug 2730. Thanks to Abdul for reporting
+ this.
+
+Mon Nov 27 15:41:12 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Deployment_Core.idl:
+ * ciao/Deployment_Container.idl:
+ * ciao/Deployment_NodeApplication.idl:
+ Moved types from Core to the other files and added remarks
+ to all CIAO specific types
+
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.h:
+ * DAnCE/NodeApplicationManager/ImplementationInfo.h:
+ Updated includes because of the move above
+
+Mon Nov 27 14:55:12 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/CCM_Core.mpc:
+ Added new Deployment_DeploymentPlan
+
+ * ciao/Deployment_Data.idl
+ * ciao/Deployment_DeploymentPlan.idl:
+ Moved types related to DeploymentPlan to their own file
+
+ * ciao/Deployment_Data.idl
+ Removed RequirementSatisfier, it is superfluous.
+
+ * ciao/Deployment.idl:
+ No need to include Deployment_Data
+
+ * ciao/Target_Data.idl:
+ Removed not needed include
+
+ * ciao/Deployment_Connection.idl:
+ * ciao/TargetManager.idl:
+ * RACE/Output_Adapters/Interface/PlanEgress.idl:
+ * RACE/Plan_Analyzer/Interface/PlanIngress.idl:
+ * RACE/Planner_Manager/Interface/Planner_Manager_I.idl:
+ * RACE/Planners/Interface/Planner_I.idl:
+ Updated include because of move above
+
+ * tools/Config_Handlers/DnC_Dump.{h,cpp}:
+ Removed RequirementSatisfier
+
+Mon Nov 27 14:11:12 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Deployment.idl:
+ Removed LastConfiguration, it is not used and has been zapped
+ from the DAnCE spec
+
+Mon Nov 27 14:04:12 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Deployment_Core.idl:
+ * ciao/Deployment_NodeApplication.idl:
+ Moved ESInstallationInfo to NodeApplication file
+
+ * ciao/Deployment.idl:
+ LastConfiguration doesn't seem used, added a comment to that
+ exception.
+
+ * ciao/NodeApplicationManager.idl:
+ Doxygen improvement
+
+Mon Nov 27 13:23:12 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/NodeApplicationManager.idl:
+ Doxygen improvement
+
+ * ciao/Deployment_Core.idl:
+ Removed InvalidLocation exception, not used and not in the DAnCE
+ spec
+
+Mon Nov 27 13:10:12 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Deployment_Core.idl
+ * ciao/Deployment_Container.idl
+ * ciao/Deployment_NodeApplication.idl
+ Moved some interfaces from Core to their own files
+
+ * ciao/CCM_Core.mpc:
+ Updated because of split above and added some more flags to
+ reduce the amount of generated files
+
+ * ciao/DomainApplicationManager.idl:
+ * ciao/NodeApplication_CallBack.idl
+ Updated include
+
+ * DAnCE/NodeApplication/Container_Impl.h:
+ * DAnCENodeApplication/NodeApplication_Impl.h:
+ * DAnCEtests/NodeApplicationTest/NodeApp_test_client.cpp:
+ * DAnCEtests/NodeApplicationTest/NodeApp_test_client_dynamic.cpp:
+ * DAnCEtests/NodeApplicationTest/NodeApp_test_client_ex.cpp:
+ * DAnCEtests/NodeApplicationTest/NodeApp_test_client_simple.cpp:
+ Updated includes because of refactoring above
+
+Mon Nov 27 09:40:12 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp
+ Instead of the http files in this library, use the HTTP
+ classes from the TAO lib
+
+ * DAnCE/RepositoryManager/HTTP_Client.cpp
+ * DAnCE/RepositoryManager/HTTP_Client.h
+ * DAnCE/RepositoryManager/HTTP_Handler.cpp
+ * DAnCE/RepositoryManager/HTTP_Handler.h
+ Removed, not needed anymore, these files did move to the TAO
+ lib to support http:// ior and we are reusing them now in
+ CIAO
+
+ * DAnCE/RepositoryManager/RepositoryManager.mpc
+ Removed the files above
+
+Mon Nov 27 09:36:12 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp:
+ Instead of the http files in this library, use the HTTP
+ classes from the TAO lib
+
+ * DAnCE/NodeApplicationManager/URL_Parser.h:
+ Doxygen improvements
+
+ * DAnCE/NodeApplicationManager/HTTP_Client.cpp:
+ * DAnCE/NodeApplicationManager/HTTP_Client.h:
+ * DAnCE/NodeApplicationManager/HTTP_Handler.cpp:
+ * DAnCE/NodeApplicationManager/HTTP_Handler.h:
+ Removed, not needed anymore, these files did move to the TAO
+ lib to support http:// ior and we are reusing them now in
+ CIAO
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc:
+ Removed the files above
+
+Mon Nov 27 09:33:12 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+ Removed include of errno.h. It is not portable, but it seems
+ it isn't needed at all. Thanks to Abdul for reporting this,
+ this fixes bugzilla bug 2726.
+
+Mon Nov 27 08:59:12 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * docs/tutorials/Quoter:
+ Extended this tutorial with more documentations. Thanks to
+ Abdul for delivering these files. This fixes bugzilla 2717
+
+Fri Nov 24 13:59:12 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/StaticConfigurator/StaticDAnCEParser.cpp:
+ Added check whether we got a valid NodeImplementationInfo back
+ and not a nill pointer. Fixes bugzilla bug 2692 finally.
+ Thanks to Abdul for pointing out the need for this check
+
+Fri Nov 24 09:41:12 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * performance-tests/Benchmark/Multi_Threaded/Multi_Threaded.mpc:
+ Don't build this project in ace_for_tao configuration
+
+Thu Nov 23 12:34:12 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/CCM_Home.idl:
+ * ciao/CCM_Object.idl:
+ Moved CCMHome again to its own file now the idl compiler has
+ been fixed to handle this correctly
+
+Wed Nov 22 20:39:12 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Dynamic_Component_Servant_Base.h:
+ Removed the character c from the first line which drove the
+ compilers really crazy
+
+Wed Nov 22 19:31:12 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/CCM_Home.idl:
+ * ciao/CCM_Object.idl:
+ Moved CCMHome to CCMObject, when these are in seperate files
+ the generated code for components is not correct. We want to have
+ these interfaces in seperate files but we can sort out this
+ later.
+
+Wed Nov 22 14:45:12 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Dynamic_Component_Servant_Base.h:
+ Fixed pragme once warning
+
+Wed Nov 22 11:05:12 2006 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/CCM_Base.idl
+ * ciao/CCM_CCM2Context.idl
+ * ciao/CCM_CCMException.idl
+ * ciao/CCM_Component.idl
+ * ciao/CCM_Configurator.idl
+ * ciao/CCM_Container.idl
+ * ciao/CCM_Container_Ex.idl
+ * ciao/CCM_Context.idl
+ * ciao/CCM_Cookie.idl
+ * ciao/CCM_Core.mpc
+ * ciao/CCM_EnterpriseComponent.idl
+ * ciao/CCM_EntityComponent.idl
+ * ciao/CCM_EntityContext.idl
+ * ciao/CCM_Enumeration.idl
+ * ciao/CCM_Event.idl
+ * ciao/CCM_Home.idl
+ * ciao/CCM_HomeConfigurator.idl
+ * ciao/CCM_HomeExecutorBase.idl
+ * ciao/CCM_HomeFinder.idl
+ * ciao/CCM_HomeRegistration.idl
+ * ciao/CCM_KeylessCCMHome.idl
+ * ciao/CCM_Navigation.idl
+ * ciao/CCM_Object.idl
+ * ciao/CCM_ProxyHomeRegistration.idl
+ * ciao/CCM_Receptacle.idl
+ * ciao/CCM_Session2Context.idl
+ * ciao/CCM_SessionSynchronization.idl
+ * ciao/CCM_StandardConfigurator.idl
+ * ciao/Client_init.cpp
+ * ciao/Components.idl
+ * ciao/Cookies.h
+ * ciao/CosPersistentState.idl
+ * ciao/Deployment.idl
+ * ciao/Deployment_Application.idl
+ * ciao/Deployment_Base.idl
+ * ciao/Deployment_Connection.idl
+ * ciao/Deployment_Core.idl
+ * ciao/Deployment_Data.idl
+ * ciao/Deployment_TargetData.idl
+ * ciao/DomainApplicationManager.idl
+ * ciao/Home_Servant_Impl_Base.h
+ * ciao/NodeApplicationManager.idl
+ * ciao/NodeManager.idl
+ * ciao/Servant_Impl_Base.h
+ * ciao/Servant_Impl_T.cpp
+ * ciao/Server_init.cpp
+ * ciao/StandardConfigurator_Impl.h
+ * ciao/SwapExec.idl
+ * ciao/Swapping_Servant_Home_Impl_Base.h
+ * ciao/Target_Data.idl
+ * ciao/TargetManager.idl
+ * ciao/UpgradeableContext.idl
+ Splitted the huge idl files into smaller parts. The CCM files are almost done,
+ the Deployment files do need some more iterations to get smaller files that
+ contain an interface with the types they need. This way the linker can optimize
+ objects out during a static compilation
+
+ * ciao/CIAO_Value.idl:
+ * ciao/Container_Base.pidl:
+ Removed, not used at all
+
+ * ciao/ComponentsC.h:
+ * ciao/ComponentsS.h:
+ Removed, will be generated by tao_idl
+
+ * DAnCE/Interfaces/NodeManagerDaemon.idl
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.h
+ * DAnCE/NodeManager/MonitorController.h
+ * DAnCE/TargetManager/CmpClient.cpp
+ * DAnCE/TargetManager/DomainDataManager.h
+ * DAnCE/TargetManager/DomainEvents.idl
+ * DAnCE/TargetManager/TargetManager.cidl
+ * DAnCE/TargetManager/TargetManager.mpc
+ * tools/Config_Handlers/DD_Handler.cpp
+ * tools/Config_Handlers/DnC_Dump.h
+ * examples/Hello/Sender/starter.cpp
+ Updated because of rename above
+
+ * DAnCE/TargetManager/TargetManager.idl:
+ Renamed to TargetManagerImpl.idl, this is the interface
+ it contains.
+
+ * DAnCE/NodeApplication/Container_Impl.cpp
+ * DAnCE/NodeApplication/Container_Impl.h
+ Removed get_homes(), it is not in the base idl
+
+ * examples/Display/Display_Base/Display_Base.mpc
+ * examples/Display/GPS/GPS.mpc
+ * examples/Display/NavDisplay/NavDisplay.mpc
+ * examples/Display/RateGen/RateGen.mpc
+ * RACE/common/RACE_common.mpc
+ * RACE/Input_Adapters/Base/Input_Adapter.mpc
+ * RACE/Input_Adapters/Interactive_Input_Adapter/Interactive_Input_Adapter.mpc
+ * RACE/Output_Adapters/Base/Output_Adapter.mpc
+ * RACE/Output_Adapters/Interface/Output_Adapter_Interface.mpc
+ * RACE/Plan_Analyzer/Component/Plan_Analyzer.mpc
+ * RACE/Plan_Analyzer/Interface/Plan_Analyzer_Interface.mpc
+ * RACE/Planner_Manager/Component/Planner_Manager.mpc
+ * RACE/Planner_Manager/Interface/Planner_Manager_Interface.mpc
+ * RACE/Planners/Base/Planner.mpc
+ * RACE/Planners/Interface/Planner_Interface.mpc
+ * RACE/Planners/SimpleBinPacker/SimpleBinPacker.mpc
+ * tests/IDL3/ImpliedIDL/All/all.mpc
+ * tests/IDL3/Lookup/lookup_test.mpc
+ * tests/Minimum/Minimum_Base/Minimum.mpc
+ * tests/Minimum/Receiver/Receiver.mpc
+ * tests/Minimum/Sender/Sender.mpc
+ Simplified these mpc files, the -GT option is not added by
+ orbsvcslib anymore and -Sc is deprecated
+
+ * tests/IDL3/Events/Any/main.cpp:
+ * tests/IDL3/Events/Any/README:
+ * tests/IDL3/Events/Any/run_test.pl:
+ Updated this test to reproduce a problem with valuetype
+ insertion into an any. This test will now fail until
+ Jeff Parsons commits some idl compiler changes
+
+Mon Nov 20 08:16:34 2006 Simon McQueen <sm@prismtech.com>
+
+ * CIAO version 0.5.4 released.
+
+Local Variables:
+mode: change-log
+add-log-time-format: (lambda () (progn (setq tz (getenv "TZ")) (set-time-zone-rule "UTC") (setq time (format-time-string "%a %b %e %H:%M:%S %Z %Y" (current-time))) (set-time-zone-rule tz) time))
+indent-tabs-mode: nil
+End:
+
diff --git a/modules/CIAO/ChangeLogs/ChangeLog-07b b/modules/CIAO/ChangeLogs/ChangeLog-07b
new file mode 100644
index 00000000000..5ffc3af510a
--- /dev/null
+++ b/modules/CIAO/ChangeLogs/ChangeLog-07b
@@ -0,0 +1,2845 @@
+Fri Jul 27 06:50:14 CDT 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIAO version 0.5.10 released.
+
+Tue Jul 24 20:38:50 UTC 2007 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * COPYING: Updated this file to reflect 2007.
+
+Tue Jul 24 16:24:58 UTC 2007 Krishnakumar B <kitty@nospam.invalid.domain>
+
+ * examples/Hello/descriptors/DeploymentPlan.cdp:
+ * examples/Hello/descriptors/DeploymentPlan_without_ns.cdp:
+
+ Initialized the attributes of the Sender. The test spits out an
+ error message if the Sender's enum attribute could not be
+ initialized. It is currently not possible to initialize enum
+ attributes in PICML. So I have modified these plans by hand for
+ now.
+
+Tue Jul 24 10:09:20 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/IDL3_to_IDL2/basic_visitor.cpp(can_skip_module):
+
+ Fixed a bug in the logic, where a local or abstract interface,
+ or abstract eventtype, would trigger an immediate return of
+ 'false'. This no longer happens.
+
+ * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.cpp:
+
+ Fixed a typo where a line was commented out inadvertently.
+
+Mon Jul 23 16:53:45 UTC 2007 Krishnakumar B <kitty@nospam.invalid.domain>
+
+ * examples/Hello/descriptors/DeploymentPlan.cdp: Updated
+ deployment plan generated from the corresponding PICML model.
+
+ * examples/Hello/descriptors/DeploymentPlan_without_ns.cdp: New
+ deployment plan which doesn't use the Naming Service.
+
+ * examples/Hello/descriptors/run_test.pl:
+ * examples/Hello/descriptors/run_test_without_ns.pl:
+
+ Updated the nightly build script to use the new deployment plans.
+
+Mon Jul 23 09:07:14 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Cookies.cpp:
+ Removed const in cast, not needed and fixes Intel C++
+ warning
+
+Fri Jul 20 12:11:43 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/IDL3_to_IDL2/basic_visitor.cpp:
+ * tools/IDL3_to_IDL2/basic_visitor.h:
+ * tools/IDL3_to_IDL2/be_global.cpp:
+ * tools/IDL3_to_IDL2/be_produce.cpp:
+ * tools/IDL3_to_IDL2/be_global.h:
+ * tools/IDL3_to_IDL2/be_sunsoft.h:
+ * tools/IDL3_to_IDL2/be_helper.cpp:
+ * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.cpp:
+ * tools/IDL3_to_IDL2/be_helper.h:
+
+ Refactored code and other changes to make this backend more
+ friendly to others that extend it. No changes to generated
+ code or to the behavior of the backend.
+
+Thu Jul 19 07:50:21 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/IDL3_to_IDL2/be_global.{h,cpp}:
+ No need to specify "bool const" for a return value, this also
+ triggers a warning with the Intel C++ Compiler
+
+Thu Jul 19 00:50:28 UTC 2007 Krishnakumar B <kitty@nospam.invalid.domain>
+
+ * examples/Hello/Hello_Base/Hello_Base.mpc:
+ * examples/Hello/Receiver/Receiver.mpc:
+ * examples/Hello/Sender/Sender.mpc:
+
+ Updated to remove traces of _DnC_ from the projects.
+
+ * examples/Hello/descriptors/DeploymentPlan.cdp: Generated the
+ plan using the new PICML model of Hello.
+
+ * examples/Hello/descriptors_RTCCM/rt-config-example.cdp:
+ * examples/Hello/descriptors_RTCCM/rt-example.cdp:
+ * examples/Hello/descriptors_ReDaC/deploymentplan.cdp:
+ * examples/Hello/descriptors_ReDaC/deploymentplan_add.cdp:
+ * examples/Hello/descriptors_ReDaC/deploymentplan_remove.cdp:
+ * examples/Hello/descriptors_events/flattened_deploymentplan_events.cdp:
+ * examples/Hello/descriptors_events/flattened_deploymentplan_events_collocated.cdp:
+ * examples/Hello/descriptors_events/flattened_deploymentplan_federation.cdp:
+ * examples/Hello/descriptors_events/flattened_deploymentplan_federation_mcast.cdp:
+ * examples/Hello/descriptors_events/flattened_deploymentplan_federation_udp.cdp:
+ * examples/Hello/descriptors_events/flattened_deploymentplan_federation_udp_collocated.cdp:
+ * examples/Hello/descriptors_events/flattened_deploymentplan_federation_udp_two_hosts.cdp:
+ * examples/Hello/descriptors_events/flattened_deploymentplan_with_filters.cdp:
+ * examples/Hello/descriptors_naming/deploymentplan_naming.cdp:
+ * examples/Hello/descriptors_shared_components/deploymentplan.cdp:
+ * examples/Hello/descriptors_shared_components/deploymentplan_shared_components.cdp:
+
+ Removed traces of _DnC_ from these files.
+
+ * examples/Hello/descriptors/flattened_deploymentplan.cdp:
+ * examples/Hello/descriptors/flattened_deploymentplan_without_ns.cdp:
+
+ Removed these files as they were redundant.
+
+Sun Jul 15 13:06:12 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * CCF/Example/IDL2/CxxMapping/GeneratorImpl.hpp:
+
+ Fixed Fuzz warnings regarding exception specification.
+
+Fri Jul 13 11:04:13 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/IDL3_to_IDL2/basic_visitor.cpp:
+ * tools/IDL3_to_IDL2/basic_visitor.h:
+
+ New files containing a base class visitor that factors
+ out code common to idl3_to_idl2_visitor and others which
+ may be created later or link this library.
+
+ * tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc:
+
+ Updated MPC file with new additions above.
+
+ * tools/IDL3_to_IDL2/checking_visitor.h:
+ * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.cpp:
+ * tools/IDL3_to_IDL2/identifier_helper.h:
+ * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.h:
+
+ - Factored code out of idl3_to_idl2_visitor into basic_visitor
+ described above.
+
+ - Added export macros to classes so another tool can instantiate
+ and inherit from them.
+
+Wed Jul 11 04:33:45 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher_Benchmark_Impl.cpp:
+
+ Fix fuzz warning regarding exception specification.
+
+Tue Jul 10 13:21:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Session_Container.cpp:
+ Fixed debug statements, thanks to Friedhelm Wolf
+ <friedhelm dot wolf at googlemail dot com> for pointing this out
+
+Tue Jul 10 03:53:18 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * CCF/CCF/CodeGenerationKit/IndentationBuffer.hpp:
+
+ Fixed fuzz warnings. Zap the usage of exception specification.
+
+Mon Jul 9 11:23:12 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/IDL3_to_IDL2/checking_visitor.cpp:
+
+ Added missing newline to the end of the file.
+
+Mon Jul 9 07:26:20 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc:
+
+ Updated project to include new source and header files.
+
+Mon Jul 9 02:11:22 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * CCF/CCF/CodeGenerationKit/IndentationCxx.hpp:
+ * CCF/CCF/CodeGenerationKit/IndentationIDL.hpp:
+ * CCF/CCF/CodeGenerationKit/IndentationImplanter.hpp:
+ * CCF/CCF/CodeGenerationKit/IndentationXML.hpp:
+ * CCF/CCF/CompilerElements/Context.hpp:
+ * CCF/CCF/CompilerElements/Preprocessor.cpp:
+ * CCF/CCF/CompilerElements/PreprocessorToken.cpp:
+ * CCF/CCF/CompilerElements/PreprocessorToken.hpp:
+ * CCF/CCF/IDL2/LexicalAnalyzer.hpp:
+ * CCF/CCF/IDL2/LexicalAnalyzer.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Elements.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Elements.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Elements.tpp:
+ * CCF/CCF/IDL2/SemanticGraph/Name.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Name.hpp:
+ * CCF/Example/ComponentDeploymentDescriptor/SyntaxTree.hpp:
+ * CCF/Example/ComponentDeploymentDescriptor/Traversal.hpp:
+ * DAnCE/Utils/Plan_Handler.h:
+ * DAnCE/Utils/Plan_Handler.cpp:
+ * ciaosvcs/Events/CIAO_RTEC/SimpleAddressServer.h:
+ * ciaosvcs/Events/CIAO_RTEC/SimpleAddressServer.cpp:
+ * performance-tests/Protocols/Receiver/Receiver_exec.h:
+ * performance-tests/Protocols/Receiver/Receiver_exec.cpp:
+ * performance-tests/Protocols/Sender/Sender_exec.h:
+ * performance-tests/Protocols/Sender/Sender_exec.cpp:
+ * tools/Config_Handlers/CIAO_Events/CIAOEvents_Handler.h:
+ * tools/Config_Handlers/CIAO_Events/CIAOEvents_Handler.cpp:
+ * tools/Config_Handlers/DD_Handler.h:
+ * tools/Config_Handlers/DD_Handler.cpp:
+ * tools/Config_Handlers/DP_Handler.h:
+ * tools/Config_Handlers/DP_Handler.cpp:
+ * tools/Config_Handlers/ESD_Handler.h:
+ * tools/Config_Handlers/ESD_Handler.cpp:
+ * tools/Config_Handlers/IDD_Handler.h:
+ * tools/Config_Handlers/IDD_Handler.cpp:
+ * tools/Config_Handlers/IDREF_Base.h:
+ * tools/Config_Handlers/IDREF_Base.cpp:
+ * tools/Config_Handlers/IRDD_Handler.h:
+ * tools/Config_Handlers/IRDD_Handler.cpp:
+ * tools/Config_Handlers/RT-CCM/OR_Handler.h:
+ * tools/Config_Handlers/RT-CCM/OR_Handler.cpp:
+ * tools/Config_Handlers/RT-CCM/SRD_Handler.h:
+ * tools/Config_Handlers/RT-CCM/SRD_Handler.cpp:
+
+ Fixed fuzz warnings. Zap the usage of exception specification.
+
+Fri Jul 6 12:09:31 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/IDL3_to_IDL2/checking_visitor.cpp:
+ * tools/IDL3_to_IDL2/checking_visitor.h:
+ * tools/IDL3_to_IDL2/identifier_helper.cpp:
+ * tools/IDL3_to_IDL2/identifier_helper.h:
+
+ New files, added to help implement the new features
+ described below.
+
+ * tools/IDL3_to_IDL2/be_global.cpp:
+ * tools/IDL3_to_IDL2/be_produce.cpp:
+ * tools/IDL3_to_IDL2/be_init.cpp:
+ * tools/IDL3_to_IDL2/be_global.h:
+ * tools/IDL3_to_IDL2/be_helper.cpp:
+ * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.cpp:
+ * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.h:
+
+ Changes to existing files which, along with the new files
+ listed above, add the following improvements to the CIAO
+ IDL3_to_IDL2 compiler:
+
+ - more robust handling of escaped identifiers
+ - more robust handling of identifiers prefixed with _cxx_
+ due to clashes with C++ keywords
+ - a new command line option to exclude included IDL files
+ from default processing, generating a corresponding
+ include with the name of the IDL file unchanged
+ - an optional alternative to regenerating an IDL file with
+ no IDL3 declarations, which is to simply generate an
+ include of the original IDL file
+
+ Thanks for all these improvements to Hakim Souami
+ <hakim.souami@thalesatm.com> and his team.
+
+Fri Jun 29 19:23:14 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * performance-tests/Benchmark/RoundTrip/client.cpp:
+ * performance-tests/Protocols/Receiver/Receiver_exec.cpp:
+ * performance-tests/Protocols/Sender/Sender_exec.cpp:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Benchmark_Impl.cpp:
+ Added include of Throughput_Stats.h
+
+Thu Jun 28 03:41:14 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * examples/Display/NavDisplayGUI_exec/AddNavUnitCmd.h:
+ * examples/Display/NavDisplayGUI_exec/Command.h:
+ * examples/Display/NavDisplayGUI_exec/DetailView.cpp:
+ * examples/Display/NavDisplayGUI_exec/QuitCmd.h:
+ * examples/Display/NavDisplayGUI_exec/RootPanel.cpp:
+ * examples/Display/NavDisplayGUI_exec/UpdatePositionCmd.h:
+ * examples/Display/NavDisplayGUI_exec/Worker.cpp:
+ * performance-tests/Protocols/Sender/Sender_exec.cpp:
+ * tools/Config_Handlers/Utils/XercesString.cpp:
+
+ Fixed fuzz warnings. Replace NULL with 0 to adhere to ACE/TAO/CIAO
+ coding guidlines.
+
+Thu Jun 28 03:27:08 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * DAnCE/ExecutionManager/Execution_Manager.cpp:
+ * DAnCE/NodeApplication/NodeApplication.cpp:
+ * DAnCE/NodeManager/Node_Manager.cpp:
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client.cpp:
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_dynamic.cpp:
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_ex.cpp:
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_simple.cpp:
+ * examples/BasicSP/EC/client.cpp:
+ * examples/BasicSP/EC/controller.cpp:
+ * examples/Display/RateGen/controller.cpp:
+ * examples/Hello/Sender/starter.cpp:
+ * examples/Swapping/Sender/starter.cpp:
+ * performance-tests/Benchmark/Multi_Threaded/client.cpp:
+ * performance-tests/Benchmark/RoundTrip/client.cpp:
+ * performance-tests/Benchmark/RoundTripClient/client.cpp:
+ * performance-tests/Benchmark/RoundTripServer/server.cpp:
+ * performance-tests/Benchmark/server.cpp:
+ * performance-tests/Protocols/Controller/Controller.cpp:
+ * tests/IDL3/Events/Any/main.cpp:
+
+ Fixed fuzz warnings.
+ Use "int ACE_TMAIN (int argc, ACE_TCHAR *argv[])"
+ instead of "int main (int argc, char *argv[])" to conform to ACE's
+ coding guidelines.
+
+Wed Jun 27 03:44:44 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * CCF/CCF/IDL2/LexicalAnalyzer.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/ValueTypeMember.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Elements.cpp:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ * DAnCE/NodeManager/MonitorController.cpp:
+ * DAnCE/RepositoryManager/ZIP_Wrapper.cpp:
+ * DAnCE/TargetManager/CmpClient.cpp:
+ * DAnCE/Utils/Plan_Handler.cpp:
+ * docs/tutorials/Quoter/Simple/Broker/Broker_exec.cpp:
+ * docs/tutorials/Quoter/Simple/Distributor/Distributor_exec.cpp:
+ * examples/BasicSP/EC/controller.cpp:
+ * examples/Display/NavDisplayGUI_exec/DetailView.cpp:
+ * examples/Display/NavDisplayGUI_exec/NodeItem.cpp:
+ * tools/Config_Handlers/cdd.cpp:
+ * tools/IDL3_to_IDL2/be_helper.cpp:
+ * tools/IDL3_to_IDL2/be_sunsoft.cpp:
+
+ Fixed ACE_OS fuzz warnings. Use ACE_OS calls instead of raw OS function
+ where possible. If fuzz detected a false-positive, then disable
+ the ACE_OS fuzz check for that section of the code.
+
+Wed Jun 27 01:55:29 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * CIDLC/AttributeHeaderEmitters.cpp:
+ * CIDLC/ExecImplHeaderGenerator.cpp:
+ * CIDLC/ExecImplSourceGenerator.cpp:
+ * CIDLC/OperationHeaderEmitters.cpp:
+
+ Enhance the layout of CIDLC generated code. This fixes bugilla 2949.
+
+Mon Jun 25 11:34:36 CDT 2007 Ciju John <johnc@ociweb.com>
+
+ * CIAO version 0.5.9 released.
+
+Mon Jun 25 16:16:17 UTC 2007 Ciju John <johnc at ociweb dot com>
+
+ * NEWS:
+ NEWS summary contributions from Gan Deng.
+
+Fri Jun 22 14:58:53 UTC 2007 Ciju John <johnc at ociweb dot com>
+
+ * ChangeLog:
+ * PROBLEM-REPORT-FORM:
+ * VERSION:
+ * ciao/Version.h:
+ Revert to x.5.8 status.
+
+Wed Jun 6 20:00:19 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * examples/Null_Component/plan.h
+
+ Fixed Sun C++ on Salaris 10 linkage warning regarding
+ extern "C" and extern "C++" mismatch.
+
+Wed Jun 6 16:52:46 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.cpp
+
+ Fixed a type conversion warning on the
+ WinXP_VC71_NET_Dynamic_Debug build.
+
+Wed Jun 6 02:04:42 UTC 2007 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * ciaosvcs/Events/CIAO_RTEC/SimpleAddressServer.cpp:
+
+ Update the name of the test enum value to match the idl.
+
+Tue May 29 21:02:08 UTC 2007 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * ciaosvcs/Events/CIAO_RTEC/SimpleAddressServer.h:
+ * ciaosvcs/Events/CIAO_RTEC/SimpleAddressServer.cpp:
+
+ Added code to support the new IPv4/IPv6 capable address server.
+
+Sun May 27 16:20:10 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * ciao/Object_Set_T.cpp:
+
+ Enhanced exception safety of this class. Look at BUG ID 2725 for
+ details.
+
+Thu May 24 14:52:18 UTC 2007 <dengg@blade23.isislab.vanderbilt.edu>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher_Benchmark_Impl.cpp
+
+ Reverted a change which was accidentally checked in.
+
+Wed May 23 20:01:49 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/Deployment/NodeApp_CB_Impl.cpp:
+ * DAnCE/Deployment/NodeApp_CB_Impl.h:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h:
+
+ Removed ACE_HAS_THREADS guards.
+
+Wed May 23 18:36:35 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * MPC/config/ciao_deployment_stub.mpb:
+
+ Added "requires += threads" to disable single threaded build.
+
+ * DAnCE/NodeManager/Node_Manager.cpp
+ * DAnCE/NodeManager/NodeManager_Impl.cpp
+ * DAnCE/NodeManager/NodeManager_Impl.h
+
+ Removed ACE_HAS_THREADS guards.
+
+Wed May 23 02:21:30 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/Deployment/NodeApp_CB_Impl.h:
+
+ Added back #if defined (ACE_HAS_THREADS) macro to
+ fix error in single_threaded build.
+
+Mon May 21 15:46:23 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/Task_StartLaunch.h:
+
+ Included ACE configuration header file to fix the warnigns
+ on the VxWorks5.5.1_x86_GCC2.96_Exceptions build.
+
+Sat May 19 15:59:08 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/Deployment/NodeApp_CB_Impl.cpp:
+ * DAnCE/Deployment/NodeApp_CB_Impl.h:
+
+ Moved #include "ace/config-all.h" from .h file to
+ the .cpp file since otherwise the #if defined (ACE_HAS_THREADS)
+ cannot be evaluated properly.
+
+Fri May 18 13:46:13 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/Deployment/NodeApp_CB_Impl.cpp:
+
+ Added #if defined (ACE_HAS_THREADS) to prevent build error
+ of single_threaded build.
+
+Thu May 17 19:53:02 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/Task_StartLaunch.cpp:
+ * DAnCE/DomainApplicationManager/Task_StartLaunch.h:
+
+ Added this new class which serves as an active object when
+ performing startLaunch.
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_ActiveObject_Impl.cpp:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_ActiveObject_Impl.h:
+
+ This implementation of DomainApplicationManager is a subclass
+ of standard implementation of DomainaApplicationManager but
+ uses an active object based approach to handle deployment,
+ which essentially spawns a number of threads wich each
+ correponds to one node.
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc:
+
+ Added the above new classes into the project file
+
+ * DAnCE/ExecutionManager/Execution_Manager.cpp:
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp:
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.h:
+
+ Modified to allow a new command line option "-b", which
+ will make the DomainApplicationManager to take an active
+ object based approach to handle deployment
+
+Thu May 17 19:02:09 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/Deployment/NodeApp_CB_Impl.h:
+
+ Added #if defined (ACE_HAS_THREADS) to prevent build error
+ of single_threaded build.
+
+Wed May 16 17:51:57 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+
+ Fixed unused variable warnings on GCC Linux build.
+
+Wed May 16 14:35:58 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/Deployment/NodeApp_CB_Impl.cpp:
+ * DAnCE/Deployment/NodeApp_CB_Impl.h:
+
+ Implemented a NA component server callback wait strategy in
+ NAM, which uses conditional variable to signal the NA call
+ back so it can work with multi-threaded configuration, such
+ as thread-per-connection mode. The original implementation
+ uses the main thread to run the ORB event loop, which will
+ not work for multi-threaded environment.
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.inl:
+
+ Implemented the single_threaded_wait_for_callback() and
+ multi_threaded_wait_for_callback() methods which uses
+ perform_work() and conditional variable technique
+ respectively.
+
+ * DAnCE/NodeManager/Node_Manager.cpp:
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+ * DAnCE/NodeManager/NodeManager_Impl.h:
+
+ Modified the Node_Manager command line option so the
+ user can control whether to use single threaded or
+ multi-threaded mode with command line option.
+
+ * examples/Hello/descriptors/flattened_deploymentplan.cdp:
+ * examples/Hello/descriptors/flattened_deploymentplan_without_ns.cdp:
+
+ Modified the <realizes> tag so the interface of the assembly
+ corresponds to some concrete ports of the components. Thanks
+ Santos <sanntosn AT lycos.com> for reporting this issue.
+
+Wed May 2 14:09:37 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/BasicSP/BasicSP_exec.h:
+ Fixed warning in VxWorks build
+
+Mon Apr 30 08:59:37 CDT 2007 Chad Elliott <elliott_c@ociweb.com>
+
+ * CIAO version 0.5.8 released.
+
+Mon Apr 30 13:21:23 UTC 2007 Chad Elliott <elliott_c@ociweb.com>
+
+ * NEWS:
+
+ Added user visible changes for 0.5.8 based on ChangeLog entries.
+
+Thu Apr 26 15:01:17 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+
+ Fixed warning on GCC with constructor initialization list
+ sequence.
+
+Wed Apr 25 20:22:44 UTC 2007 <dengg@blade22.isislab.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+
+ Fixed warning on GCC with constructor initialization list
+ sequence.
+
+ * DAnCE/Utils/Plan_Handler.cpp
+ * DAnCE/Utils/Plan_Handler.h
+
+ Added a utility method to add more instances into a plan.
+
+Wed Apr 25 19:27:28 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_AMH_Impl.cpp
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_AMH_Impl.h
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_AMH_Impl.inl
+
+ An AMH-based implementation of DomainApplicationManager. This
+ class duplicates *most* of code with the non-AMH based
+ DomainApplicationManager implementation, eventually we should
+ either remove one version completely or find a way to minimize
+ the duplicate code. The public interfaces of these two classes are
+ quite different.
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_AMI_Impl.cpp
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_AMI_Impl.h
+
+ Modified to use AMH-based DomainApplicationManager in
+ conjunction with the AMI.
+
+ * DAnCE/DomainApplicationManager/Reply_Handler_i.cpp
+ * DAnCE/DomainApplicationManager/Reply_Handler_i.h
+
+ The AMI callback reply handler should work with the
+ AMH-based DomainApplicationManager instead of the non-AMH based
+ version.
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+
+ Modified to make the construction process of the
+ DomainApplicationManager to be more self-contained and atomic.
+
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp
+
+ Modified the instantation of the DomainApplicationManager
+ servant so we can mix between the AMH/AMI based
+ DomainApplicationManager servant and the synchronous based
+ DomainApplicationManager servant based on the command input.
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc
+
+ Added the AMH-based DAM servant into the project.
+
+Tue Apr 24 17:44:22 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp
+
+ Modified the debug output information to make it
+ better describe the program behavior.
+
+ * examples/Hello/descriptors/run_NodeDaemons.pl
+
+ Increased the spawn latency delay so it can handle
+ deployment with a large number of components, i.e.,
+ more than one thousand.
+
+ * examples/Hello/descriptors/svc_em.conf
+
+ Service configuration file for ExecutionManager.
+
+Tue Apr 24 14:58:58 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_AMI_Impl.cpp:
+
+ Added a newline to the end of the file.
+
+Mon Apr 23 23:02:25 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/Deployment/DAnCE_Core.mpc
+
+ Modified the IDL flag by passing -GH to generate AMH code
+ for Deployment_DomainApplicationManager.idl.
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_AMI_Impl.cpp
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_AMI_Impl.h
+
+ Added functionality to use AMH to handle StartLaunch request
+ processing.
+
+ * DAnCE/DomainApplicationManager/Reply_Handler_i.cpp
+
+ Modified to notify the DAM servant object once all the
+ AMI callbacks are received.
+
+Sat Apr 21 21:26:30 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_AMI_Impl.cpp:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_AMI_Impl.h:
+
+ Used raw pointer to cache the servant since no copy constructor
+ is defined for the Value_Ptr in ACE.
+
+ * DAnCE/DomainApplicationManager/Reply_Handler_i.cpp
+ * DAnCE/DomainApplicationManager/Reply_Handler_i.h
+
+ Get rid of the unnecessary copy constructor.
+
+ * DAnCE/NodeApplication/Container_Impl.cpp:
+ * DAnCE/NodeApplication/Container_Impl.h
+ * DAnCE/NodeApplication/Container_Impl.inl:
+
+ Modified to use Auto_Ptr to cache the container pointer.
+ Return a duplicate pointer instead of returning a pointer
+ within the object.
+
+Fri Apr 20 19:08:43 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp
+
+ Modified to make the debug message more informative.
+
+Thu Apr 19 23:15:10 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_AMI_Impl.cpp
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_AMI_Impl.h
+
+ Added a centrallized map to track the status of the AMI callback
+ return status.
+
+ * DAnCE/DomainApplicationManager/Reply_Handler_i.cpp
+ * DAnCE/DomainApplicationManager/Reply_Handler_i.h
+
+ Added a DomainApplicationManager_AMI_Impl object as a member
+ variable for callback purpose, i.e., notifiying this object
+ as soon as a AMI call returns.
+
+ * DAnCE/ExecutionManager/Execution_Manager.cpp
+
+ Added usage info printout about using AMI.
+
+Thu Apr 19 18:29:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/tests/NodeApplicationTest/run_test.pl:
+ * DAnCE/tests/NodeApplicationTest/run_test_ex.pl:
+ * DAnCE/tests/NodeApplicationTest/run_test_simple.pl:
+ * examples/BasicSP/descriptors/run_test.pl:
+ * examples/Hello/descriptors/run_test.pl:
+ * performance-tests/Benchmark/Multi_Threaded/run_test.pl:
+ * performance-tests/Benchmark/RoundTrip/run_test.pl:
+ * performance-tests/Benchmark/RoundTripClient/run_test.pl:
+ * performance-tests/Benchmark/RoundTripClient/run_test_ior_cad.pl:
+ Use $PerlACE::wait_interval_for_process_creation
+
+Sun Apr 15 19:20:32 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+ Fixed bug 2892, thanks to Abdul Sowayan for reporting this.
+
+Wed Apr 11 11:48:32 UTC 2007 Chad Elliott <elliott_c@ociweb.com>
+
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp:
+
+ Removed the stray '\' I accidentally added yesterday.
+
+Tue Apr 10 17:23:16 UTC 2007 Krishnakumar B <kitty@nospam.invalid.domain>
+
+ * examples/BasicSP/BasicSP.mwc: Added SVN Id tag to remove Fuzz
+ warning. Thanks to Chad for pointing out the error.
+
+ * examples/BasicSP/EC/EC_exec.cpp: Removed use of
+ ACE_PRINT_EXCEPTION since it is deprecated.
+
+Tue Apr 10 15:37:24 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/ExecutionManager.mpc
+
+ Modified to inherit from the "strategies" base project.
+
+ * DAnCE/Utils/Plan_Handler.cpp
+
+ Removed ACE exception macros.
+
+Tue Apr 10 14:13:19 UTC 2007 Chad Elliott <elliott_c@ociweb.com>
+
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp:
+
+ Removed parenthesis around throw argument.
+
+Mon Apr 9 23:29:15 UTC 2007 Krishnakumar B <kitty@nospam.invalid.domain>
+
+ * examples/BasicSP/BMClosedED/BMClosedED.mpc:
+ * examples/BasicSP/BMDevice/BMDevice.mpc:
+ * examples/BasicSP/BMDisplay/BMDisplay.mpc:
+ * examples/BasicSP/BasicSP.mpc:
+ * examples/BasicSP/EC/EC.mpc:
+
+ Updated MPC files to cleanup the generated skeleton files.
+ Thanks to Chad for this solution.
+
+Mon Apr 9 14:15:13 UTC 2007 Chad Elliott <elliott_c@ociweb.com>
+
+ * examples/BasicSP/BMClosedED/BMClosedED.mpc:
+
+ Added BasicSP_exec to the after keyword setting.
+
+Sat Apr 7 22:09:57 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/Reply_Handler_i.cpp
+
+ Changed ACE_Thread_Mutex to ACE_SYNCH_MUTEX to fix
+ Singled Threaded build error.
+
+Fri Apr 6 03:42:04 UTC 2007 Krishnakumar B <kitty@nospam.invalid.domain>
+
+ * examples/BasicSP/descriptors/run_test.pl: Updated the second
+ invocation of plan_launcher to pass in the previously generated
+ execution manager's IOR. The test fails on Linux without this
+ flag. Somehow it works on Windows without this flag; probably
+ due to some issue with case-sensitivity.
+
+Fri Apr 6 01:15:00 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * MPC/config/dance_utils.mpb
+
+ Added the base project for the DAnCE utility library.
+
+Fri Apr 6 03:35:21 UTC 2007 Krishnakumar B <kitty@nospam.invalid.domain>
+
+ * examples/BasicSP/BMClosedED/BMClosedED.mpc:
+ * examples/BasicSP/BMDevice/BMDevice.mpc:
+
+ Added missing dependencies on BasicSP_svnt so that the test runs
+ fine on Linux.
+
+Thu Apr 5 21:32:57 UTC 2007 Krishnakumar B <kitty@nospam.invalid.domain>
+
+ * examples/BasicSP/BMClosedED/BMClosedED.mpc:
+ * examples/BasicSP/BMDevice/BMDevice.mpc:
+ * examples/BasicSP/BMDisplay/BMDisplay.mpc:
+ * examples/BasicSP/BasicSP.mpc:
+ * examples/BasicSP/EC/EC.mpc:
+
+ Fixed errors in Linux builds due to a duplicate dependency rule
+ added to the MPC files between a .cidl file and a E.idl file.
+
+Thu Apr 5 21:03:50 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/Utils/DAnCE_Utils.mpc
+ * DAnCE/Utils/DAnCE_Utils_Export.h
+ * DAnCE/Utils/Plan_Handler.cpp
+ * DAnCE/Utils/Plan_Handler.h
+
+ Added the utility library to manipulate the deployment
+ plan, such as adding/removing instances, adding/removing
+ connections, and pretty print.
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc
+ * DAnCE/Plan_Launcher/Plan_Launcher_Benchmark_Impl.cpp
+
+ Modified to use the above utility class so we can
+ programatically scale up the deployment.
+
+Thu Apr 5 16:51:24 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/Reply_Handler_i.h
+
+ Changed ACE_Thread_Mutex to ACE_SYNCH_MUTEX to avoid errors
+ in Single_Threaded build.
+
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp
+
+ Added exception catching blocks to re_launch_plan operation.
+
+Thu Apr 5 01:07:34 UTC 2007 Krishnakumar B <kitty@nospam.invalid.domain>
+
+ * examples/BasicSP/BMClosedED/BMClosedEDEI.idl:
+ * examples/BasicSP/BMDevice/BMDeviceEI.idl:
+ * examples/BasicSP/BMDisplay/BMDisplayEI.idl:
+ * examples/BasicSP/EC/ECEI.idl:
+
+ Removed these files.
+
+Wed Apr 4 21:55:58 UTC 2007 Krishnakumar B <kitty@nospam.invalid.domain>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.cpp:
+ * DAnCE/ExecutionManager/Execution_Manager.cpp:
+
+ Improved the option handling of the Execution_Manager and
+ plan_launcher. This includes printing meaningful usage
+ messages, and exiting with an error message when an error occurs
+ instead of silent termination etc. etc.
+
+ * examples/BasicSP/BMClosedED/BMClosedED.cidl:
+ * examples/BasicSP/BMClosedED/BMClosedED.idl:
+ * examples/BasicSP/BMClosedED/BMClosedED.mpc:
+ * examples/BasicSP/BMClosedED/BMClosedED_exec.h:
+ * examples/BasicSP/BMClosedED/BMClosedED_exec.cpp:
+ * examples/BasicSP/BMDevice/BMDevice.cidl:
+ * examples/BasicSP/BMDevice/BMDevice.idl:
+ * examples/BasicSP/BMDevice/BMDevice.mpc:
+ * examples/BasicSP/BMDevice/BMDevice_exec.h:
+ * examples/BasicSP/BMDevice/BMDevice_exec.cpp:
+ * examples/BasicSP/BMDisplay/BMDisplay.cidl:
+ * examples/BasicSP/BMDisplay/BMDisplay.idl:
+ * examples/BasicSP/BMDisplay/BMDisplay.mpc:
+ * examples/BasicSP/BMDisplay/BMDisplay_exec.h:
+ * examples/BasicSP/BMDisplay/BMDisplay_exec.cpp:
+ * examples/BasicSP/BasicSP.idl:
+ * examples/BasicSP/BasicSP.mpc:
+ * examples/BasicSP/BasicSP.mwc:
+ * examples/BasicSP/BasicSP_exec.h:
+ * examples/BasicSP/BasicSP_exec.cpp:
+ * examples/BasicSP/BasicSP_exec_export.h:
+ * examples/BasicSP/EC/EC.cidl:
+ * examples/BasicSP/EC/EC.idl:
+ * examples/BasicSP/EC/EC.mpc:
+ * examples/BasicSP/EC/EC_exec.h:
+ * examples/BasicSP/EC/EC_exec.cpp:
+ * examples/BasicSP/EC/client.cpp:
+ * examples/BasicSP/EC/controller.cpp:
+ * examples/BasicSP/descriptors/BasicSP.cdp:
+ * examples/BasicSP/descriptors/BasicSP.dat:
+ * examples/BasicSP/descriptors/run_test.pl:
+
+ Updated the example to use the latest and greatest CIAO features
+ include --lem-force-all which gives an example of how to share
+ the implementation of a facet among multiple components. While
+ at it, make sure that the run_test.pl actually deploys and runs
+ the application. Now the example can be turned on for nightly
+ builds.
+
+ * examples/BasicSP/descriptors/Airframe.ccd:
+ * examples/BasicSP/descriptors/Airframe.cid:
+ * examples/BasicSP/descriptors/Airframe.cpd:
+ * examples/BasicSP/descriptors/Airframe_Exec.iad:
+ * examples/BasicSP/descriptors/Airframe_Stub.iad:
+ * examples/BasicSP/descriptors/Airframe_Svnt.iad:
+ * examples/BasicSP/descriptors/DeploymentPlan.cdp:
+ * examples/BasicSP/descriptors/Domain.cdd:
+ * examples/BasicSP/descriptors/GPS.ccd:
+ * examples/BasicSP/descriptors/GPS.cid:
+ * examples/BasicSP/descriptors/GPS.cpd:
+ * examples/BasicSP/descriptors/GPS_Exec.iad:
+ * examples/BasicSP/descriptors/GPS_Stub.iad:
+ * examples/BasicSP/descriptors/GPS_Svnt.iad:
+ * examples/BasicSP/descriptors/HUDisplay.cid:
+ * examples/BasicSP/descriptors/HUDisplay.cpd:
+ * examples/BasicSP/descriptors/HUDisplay.pcd:
+ * examples/BasicSP/descriptors/Libraries.iad:
+ * examples/BasicSP/descriptors/NavDisplay.ccd:
+ * examples/BasicSP/descriptors/NavDisplay.cid:
+ * examples/BasicSP/descriptors/NavDisplay.cpd:
+ * examples/BasicSP/descriptors/NavDisplay_Exec.iad:
+ * examples/BasicSP/descriptors/NavDisplay_Stub.iad:
+ * examples/BasicSP/descriptors/NavDisplay_Svnt.iad:
+ * examples/BasicSP/descriptors/NodeManagerMap.dat:
+ * examples/BasicSP/descriptors/Timer.ccd:
+ * examples/BasicSP/descriptors/Timer.cid:
+ * examples/BasicSP/descriptors/Timer.cpd:
+ * examples/BasicSP/descriptors/Timer_Exec.iad:
+ * examples/BasicSP/descriptors/Timer_Stub.iad:
+ * examples/BasicSP/descriptors/Timer_Svnt.iad:
+ * examples/BasicSP/descriptors/XMI.xsd:
+ * examples/BasicSP/descriptors/basicNodeDaemon.pl:
+ * examples/BasicSP/descriptors/basicsp.dat:
+ * examples/BasicSP/descriptors/flattened_deploymentplan.cdp:
+ * examples/BasicSP/descriptors/package.tpd:
+
+ Removed these files.
+
+Wed Apr 4 22:04:11 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc
+
+ Fixed static build errors.
+
+Wed Apr 4 19:28:09 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/Reply_Handler_i.h
+
+ Added header file for ACE_Thread_Mutex.
+
+Wed Apr 4 15:55:23 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/Reply_Handler_i.cpp
+ * DAnCE/DomainApplicationManager/Reply_Handler_i.h
+
+ Removed unused arguments.
+
+Tue Apr 3 19:30:05 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/Deployment/DAnCE_Core.mpc
+ * MPC/config/ciao_deployment_stub.mpb
+
+ Added "messaging.mpb" as base project for ciao_deployment_stub.
+
+ * DAnCE/ExecutionManager/Execution_Manager.cpp
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.h
+
+ Modified to allow passing command line option to
+ indicate whether to use AMI or not.
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_AMI_Impl.cpp
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_AMI_Impl.h
+ * DAnCE/DomainApplicationManager/Reply_Handler_i.cpp
+ * DAnCE/DomainApplicationManager/Reply_Handler_i.h
+
+ Added implementation of using AMI for "startLaunch"
+ operation.
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc
+ * DAnCE/Interfaces/Interfaces.mpc
+ * DAnCE/NodeManager/Monitor.mpc
+
+ Modified to accomodate the above changes.
+
+Tue Apr 3 18:59:38 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIAO_TAO_DAnCE.mwc:
+ * CIAO_TAO.mwc:
+
+ In the list of directories eplaced ACE_ROOT/ace/ACEXML with
+ 3 subdirectories, leaving out the tests and examples
+ subdirectories, which aren't needed. These included ACEXML
+ subdirectories are now the same as in TAO_ACE.mwc.
+
+ * tests/CIDL/CodeGen/CodeGen.mpc:
+
+ Cosmetic changes, shortened line lengths.
+
+Tue Apr 3 15:19:01 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher_Benchmark_Impl.cpp
+
+ Removed deprecated ACE exception macros.
+
+Mon Apr 2 16:38:24 UTC 2007 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.h
+ * DAnCE/Plan_Launcher/Plan_Launcher_Benchmark_Impl.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher_Benchmark_Impl.h
+
+ Address virtual destructor warnings.
+
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.h
+
+ Address exception warnings.
+
+Fri Mar 30 23:10:24 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher_Benchmark_Impl.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Benchmark_Impl.h:
+
+ Removed the declaration and definition of the virtual
+ destructor since a virtual destructor has been defined
+ in the base class.
+
+Fri Mar 30 18:23:43 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Benchmark_Impl.cpp
+
+ Silenced the "unused variables" warnings.
+
+Fri Mar 30 18:09:55 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/ExecutionManager.mpc
+
+ Added "rtcorba" as base project dependency.
+
+Fri Mar 30 18:05:06 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher_Benchmark_Impl.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Benchmark_Impl.h:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.h:
+
+ Added virtual destructors into the class.
+
+Fri Mar 30 14:15:58 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/Execution_Manager.cpp:
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp:
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Benchmark_Impl.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Benchmark_Impl.cpp:
+
+ Removed emulated exceptions since they are no
+ longer supported. Also removed the exception
+ specification in the c++ mapping of IDL operation
+ since they are obsolete.
+
+Thu Mar 29 15:22:08 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/Execution_Manager.cpp:
+
+ Created a child POA which is configured with
+ Client_Propagated Priority Model.
+
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp:
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.h:
+ * DAnCE/ExecutionManager/ExecutionManager.mpc:
+
+ Added a get_current_thread_priority() to get the
+ priority of the current thread. Also added
+ debug_level control so the thread priority could
+ be printed out.
+
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.h:
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc:
+
+ Added two new methods.
+ The is_client_propagated_model() checks whether
+ the ExecutionManager exposes the CLIENT_PROPAGATED
+ priority model. The set_current_priority() method
+ will set the client thread priority if the priority
+ model is CLIENT_PROPAGATED on the EM side.
+
+ * DAnCE/Plan_Launcher/Plan_Launcher_Benchmark_Impl.h:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Benchmark_Impl.cpp:
+
+ Added two derived classes which collect benchmarking
+ results of DAnCE.
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.cpp:
+
+ Added a command line argument "-z" to allow priority
+ to be specified on Plan_Launcher, and then propagated
+ to the Execution Manager.
+
+
+Wed Mar 28 11:16:43 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * DAnCE/NodeApplication/NodeApp_Configurator.h:
+
+ Partially reverted changes made in Fri Mar 23 03:13:40 UTC 2007.
+ VS 7.1 didn't like it. Forward declaration to Config_Manager was
+ removed and its header file was included again.
+
+Sun Mar 25 23:26:11 UTC 2007 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CCF/CCF/IDL2/Parsing/Recovery.hpp
+ * CCF/CCF/CodeGenerationKit/IndentationBuffer.hpp
+
+ An attempt to deal with copious warnings from the CIDLC
+ build.
+
+Sun Mar 25 23:07:17 UTC 2007 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CIDLC/OperationHeaderEmitters.cpp
+ * CIDLC/OperationHeaderEmitters.hpp
+
+ Reverted part of previous commit which caused malformed output
+ in components with supported interfaces with raises clauses.
+
+Fri Mar 23 21:26:31 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * ciao/Cookies.h:
+ * ciao/Servant_Impl_Base.h:
+ * ciao/Servant_Impl_Utils_T.cpp:
+ * ciao/Cookies.cpp:
+ * CIDLC/OperationHeaderEmitters.cpp:
+ * CIDLC/OperationHeaderEmitters.hpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ - changed key type of ACE_Array_Map added in
+
+ Tue Mar 6 20:21:45 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ to ptrdiff_t from CORBA::ULong, so it will be
+ portable to 64-bit systems.
+
+ - fixed formatting errors in generated code
+ for facet servant operations, and removed
+ unused methods from the emitter class.
+
+Fri Mar 23 12:46:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Session_Container.cpp:
+ * ciao/StandardConfigurator_Impl.cpp:
+ * ciao/Swapping_Container.cpp:
+ * examples/Null_Component/Null_Component_exec.h:
+ * tools/Config_Handlers/ERE_Handler.h:
+ Layout changes
+
+Fri Mar 23 06:56:38 UTC 2007 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+
+ Removed emulated exception macros.
+
+Fri Mar 23 06:45:51 UTC 2007 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/RepositoryManager/ZIP_Wrapper.h
+
+ Addressed initialization warning.
+
+Fri Mar 23 03:13:40 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * DAnCE/NodeApplication/Config_Manager.h:
+ * DAnCE/NodeApplication/Config_Manager.cpp:
+ * DAnCE/NodeApplication/Config_Manager_export.h:
+
+ Removed uncessary include files. Also, implementation of virtual
+ destructor should not be in header or inline file, it was moved
+ to a newly created cpp file and an export header was created.
+ This Fixes bugzilla 2858.
+
+ * DAnCE/NodeApplication/NodeApp_Configurator.h:
+ * DAnCE/NodeApplication/NodeApp_Configurator.cpp:
+
+ Don't include a header file if a forward declaration suffices. The
+ include of Config_Manager.h was moved from the header to the cpp file.
+
+ * DAnCE/NodeApplication/NodeApplication.mpc:
+
+ Added a new Config_Manager project. Also simplified this file to
+ utilize mpb base projects.
+
+ * MPC/config/ciao_config_manager.mpb:
+
+ New base project for Config_Manager.
+
+ * MPC/config/ciao_nodeapp_configurator.mpb:
+
+ This project now inherits from ciao_config_manager base project.
+
+Fri Mar 23 02:50:00 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * DAnCE/NodeApplication/Configurator_Factory.h:
+ * DAnCE/NodeApplication/Configurator_Factory.inl:
+ * DAnCE/NodeApplication/Configurator_Factory.cpp:
+
+ Fixed bugzilla 2860. All inlined implementations were
+ moved to .inl file to follow ACE/TAO/CIAO conventions.
+
+ Uncessary include files were removed.
+
+ ACE_DLL was commented out since it is not used anymore.
+
+Thu Mar 22 19:09:35 UTC 2007 Gan Deng <gan.deng@vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+
+ Reverted a change made from:
+
+ Sun Apr 9 01:03:19 UTC 2006
+ <wotte@blade35.isislab.vanderbilt.edu>
+
+ The old change accidentally checked in some wrong code,
+ which broke the ReDaC functionality when removing components.
+
+Wed Mar 21 12:12:26 CDT 2007 Chad Elliott <elliott_c@ociweb.com>
+
+ * CIAO version 0.5.7 released.
+
+Wed Mar 21 14:54:24 UTC 2007 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * NEWS
+
+ Latest NEWS items.
+
+Tue Mar 13 20:13:09 UTC 2007 Steve Huston <shuston@riverace.com>
+
+ * MPC/config/cidlc.mpb: Added C4996 (deprecated CRT function) to the
+ list of suppressed warnings. The warnings emanate from the
+ ACE_wrappers/contrib/utility area, in case anyone wants to
+ investigate the desireability of making a change.
+
+Mon Mar 11 07:12:19 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+ Added missing .in() to the generation
+
+Sat Mar 10 22:49:01 UTC 2007 Steve Huston <shuston@riverace.com>
+
+ * MPC/config/ciao_vc8warnings.mpb: New base containing features that
+ turn VC8 warnings on/off. Some of these may benefit from some looking
+ at; if you want to see them, regenerate projects with the feature
+ turned off.
+
+ * MPC/config/ciao_client_dnc.mpb: Inherit from ciao_vc8warnings to
+ shut off the gazillions of VC8 warnings.
+
+Sat Mar 10 01:11:40 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * docs/tutorials/Quoter/Simple/01.html:
+ * docs/tutorials/Quoter/Simple/02.html:
+ * docs/tutorials/Quoter/Simple/03.html:
+ * docs/tutorials/Quoter/Simple/04.html:
+ * docs/tutorials/Quoter/Simple/index.html:
+
+ Added $Id to each file to fix fuzz errors.
+
+Fri Mar 9 21:11:20 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Changes to code generation specific to upgradeable components
+ corresponding to changes in
+
+ Tue Mar 6 20:21:45 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+Fri Mar 9 15:53:02 UTC 2007 Steve Huston <shuston@riverace.com>
+
+ * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.cpp: Adjusted 3rd arg to
+ ACE_CString for matching change in ACE from yesterday.
+
+Fri Mar 9 14:09:19 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeApplication/RTConfig_Manager.{cpp,inl}:
+ Fixed ownership problems with the policy list, fixes bugzilla 2743.
+ Also moved destructor to cpp file
+
+Thu Mar 8 01:27:19 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * docs/tutorials/Quoter/Simple/01.html:
+ * docs/tutorials/Quoter/Simple/02.html:
+ * docs/tutorials/Quoter/Simple/03.html:
+ * docs/tutorials/Quoter/Simple/04.html:
+ * docs/tutorials/Quoter/Simple/index.html:
+
+ Added link to CIDLC compiler options.
+ Added link to generate_component_mpc.pl options.
+ Made it easier to navigate between tutorial pages.
+
+Wed Mar 7 11:42:26 PST 2007 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * NEWS:
+
+ Updated to include some important changes in this release and
+ plans for next release.
+
+
+Wed Mar 7 02:20:26 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * docs/tutorials/CoSMIC:
+ * docs/tutorials/CoSMIC/01.html:
+ * docs/tutorials/CoSMIC/02.html:
+ * docs/tutorials/CoSMIC/03.html:
+ * docs/tutorials/CoSMIC/04.html:
+ * docs/tutorials/CoSMIC/Icons:
+ * docs/tutorials/CoSMIC/Icons/AddConnMode.gif:
+ * docs/tutorials/CoSMIC/Icons/SetMode.gif:
+ * docs/tutorials/CoSMIC/Images:
+ * docs/tutorials/CoSMIC/Images/fig1.jpg:
+ * docs/tutorials/CoSMIC/Images/fig10.jpg:
+ * docs/tutorials/CoSMIC/Images/fig11.jpg:
+ * docs/tutorials/CoSMIC/Images/fig12.jpg:
+ * docs/tutorials/CoSMIC/Images/fig2.jpg:
+ * docs/tutorials/CoSMIC/Images/fig3.jpg:
+ * docs/tutorials/CoSMIC/Images/fig4.jpg:
+ * docs/tutorials/CoSMIC/Images/fig5.jpg:
+ * docs/tutorials/CoSMIC/Images/fig6.jpg:
+ * docs/tutorials/CoSMIC/Images/fig7.jpg:
+ * docs/tutorials/CoSMIC/Images/fig8.jpg:
+ * docs/tutorials/CoSMIC/Images/fig9.jpg:
+ * docs/tutorials/CoSMIC/Model:
+ * docs/tutorials/CoSMIC/Model/Quoter.xme:
+ * docs/tutorials/CoSMIC/index.html:
+ * docs/tutorials/CoSMIC/style.css:
+
+ Removed these files. This tutorial has been subsumed by the
+ tutorial in docs/tutorials/Quoter.
+
+Tue Mar 6 23:43:58 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Added code generation for attaching diffserv policies to
+ receptacle interfaces at connection time.
+
+Tue Mar 6 20:21:45 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * ciao/Cookies.h:
+ * ciao/Servant_Impl_Base.h:
+ * ciao/Servant_Impl_Utils_T.cpp:
+ * ciao/Server_init.cpp:
+ * ciao/Cookies.inl:
+ * ciao/Servant_Impl_Base.cpp:
+ * ciao/Cookies.cpp:
+ * ciao/Dynamic_Component_Servant_Base.h:
+ * CIDLC/ExecImplHeaderGenerator.cpp:
+ * CIDLC/AttributeSourceEmitters_T.hpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+ * CIDLC/ExecImplGenerator.cpp:
+ * CIDLC/Upcase.hpp:
+ * CIDLC/ServantGenerator.cpp:
+
+ - changed the container used to hold object reference for
+ multiplex receptacle and event source ports from
+ ACE_Active_Object_Map to ACE_Array_Map
+
+ - removed class CIAO::Map_Key_Cookie (since it encodes an
+ ACE_Active_Object_Map_Key, which is tightly coupled with
+ ACE_Active_Object_Map) and replaced it with class
+ Cookie_Impl, which encodes a CORBA::ULong
+
+ - formatting and cosmetic changes to CIDLC-generated code
+
+Tue Mar 6 13:21:24 UTC 2007 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * COPYING: Updated this file to clarify that the CIAO license need
+ not be shipped with binary-only releases. Thanks to Michael
+ Kircher <michael dot kircher at siemens dot com> and Werner
+ Burger <werner dot burger at siemens dot com> for motivating
+ this.
+
+Sun Mar 4 21:49:19 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * docs/tutorials/Quoter/Simple/Icons:
+ * docs/tutorials/Quoter/Simple/Model:
+
+ Added GME model of the Quoter tutorial.
+
+Thu Mar 1 23:05:27 UTC 2007 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * docs/tutorials/Quoter/Simple/images/step6.jpg:
+ * docs/tutorials/Quoter/Simple/images/step1.jpg:
+ * docs/tutorials/Quoter/Simple/images/step2.jpg:
+ * docs/tutorials/Quoter/Simple/images/step3.jpg:
+ * docs/tutorials/Quoter/Simple/images/steps.jpg:
+
+ Lowercased file names, removed spaces.
+
+ * docs/tutorials/Quoter/Simple/03.html:
+ * docs/tutorials/Quoter/Simple/04.html:
+ * docs/tutorials/Quoter/Simple/index.html:
+
+ Changes to reflect above change.
+Thu Mar 1 22:20:28 UTC 2007 Jaiganesh B <jai.dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/Container_Impl.cpp:
+
+ A minor change to add a "_" to the receptacle name,
+ that is used as a key in a Hash Map storing the
+ receptacle policies and the receptacle name.
+
+Thu Mar 1 07:17:00 UTC 2007 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/ccd.hpp:
+ * tools/Config_Handlers/cid.cpp:
+ * tools/Config_Handlers/pcd.cpp:
+ * tools/Config_Handlers/toplevel.cpp:
+ * tools/Config_Handlers/cdd.hpp:
+ * tools/Config_Handlers/Basic_Deployment_Data.cpp:
+ * tools/Config_Handlers/cpd.hpp:
+ * tools/Config_Handlers/cdp.hpp:
+ * tools/Config_Handlers/CIAO_Events/CIAOEvents.cpp:
+ * tools/Config_Handlers/CIAO_Events/CIAOEvents.hpp:
+ * tools/Config_Handlers/ccd.cpp:
+ * tools/Config_Handlers/iad.hpp:
+ * tools/Config_Handlers/cid.hpp:
+ * tools/Config_Handlers/pcd.hpp:
+ * tools/Config_Handlers/Deployment.cpp:
+ * tools/Config_Handlers/cdd.cpp:
+ * tools/Config_Handlers/toplevel.hpp:
+ * tools/Config_Handlers/RT-CCM/CIAOServerResources.hpp:
+ * tools/Config_Handlers/RT-CCM/CIAOServerResources.cpp:
+ * tools/Config_Handlers/cdp.cpp:
+ * tools/Config_Handlers/cpd.cpp:
+ * tools/Config_Handlers/Basic_Deployment_Data.hpp:
+ * tools/Config_Handlers/iad.cpp:
+
+ Regenrated with the latest version of XSC to pick up
+ bugfixes, esp for addressing warnings in Borland.
+
+ * tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp:
+ * tools/Config_Handlers/RT-CCM/TP_Handler.cpp:
+ * tools/Config_Handlers/IRDD_Handler.h:
+ * tools/Config_Handlers/IRDD_Handler.cpp:
+ * tools/Config_Handlers/IDD_Handler.cpp:
+
+ Borland compile errors resolved.
+
+ * tools/Config_Handlers/Property_Handler.h:
+
+ Layout changes.
+
+Thu Mar 1 03:54:50 UTC 2007 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/CIAO_Events/CIAO_Events_Handlers.mpc:
+ * tools/Config_Handlers/RT-CCM/RT-CCM-Handlers.mpc:
+
+ Changed base project from ciao_xml_utils to ciao_config_handlers_base
+ to pull in specific block that turns off visibility.
+
+Wed Feb 28 22:19:37 UTC 2007 Jaiganesh B <jai.dre.vanderbilt.edu>
+
+ * ciao/Container_Base.cpp:
+ * ciao/Container_Base.h:
+
+ Added a method to get the receptacle policy associated
+ with a receptacle.
+
+Wed Feb 28 22:04:52 UTC 2007 Jaiganesh B <jai.dre.vanderbilt.edu>
+
+ * ciao/Container_Base.cpp:
+ * ciao/Container_Base.h:
+
+ Added a new private variable of type ACE_Hash_Map to hold
+ the receptacle policy list.
+
+ Added a set operation for setting the value of the receptacle policy
+ map.
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+
+ When the Container_Impl class is created, pass on the
+ NA's configurator. The configurator will be used by the
+ Container_Impl class to identify the policies that needs to
+ be set on the components and their ports. Finally, the
+ Container_Impl class lets the container know about these policies.
+
+ * DAnCE/NodeApplication/Container_Impl.h:
+ * DAnCE/NodeApplication/Container_Impl.inl:
+ * DAnCE/NodeApplication/Container_Impl.cpp:
+
+ Modified the constructor to receive the NA configurator as
+ an input argument.
+
+ Added capabilities to collect the policies associated with the
+ receptacles of the components.
+
+Wed Feb 28 14:30:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIAO_TAO.mwc:
+ Removed RACE
+
+Wed Feb 28 09:33:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * MPC/config/ciao_nodeapp_configurator.mpb:
+ New base project
+
+ * MPC/config/ciao_nodeapplication.mpb:
+ Updated because of new project
+
+ * MPC/config/ciao_race_component.mpb:
+ * MPC/config/ciao_race_default.mpb:
+ * MPC/config/ciao_race_monitor.mpb:
+ Removed, RACE is removed for the moment
+
+ * DAnCE/NodeApplication/NodeApplication.mpc:
+ Use the new base project
+
+ * NodeApplicationManager/NodeApplicationManager_Impl.h:
+ Layout changes
+
+ * NodeApplicationManager/NodeApplicationManager_Impl.inl:
+ No need to use ACE_UNUSED_ARG
+
+Wed Feb 28 07:00:15 UTC 2007 Jaiganesh B <jai.dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ * DAnCE/NodeApplication/NodeApplication.mpc:
+
+ Added missing includes to the .cpp file, and added
+ missing file for compilation in the .mpc file.
+
+Tue Feb 27 21:35:17 UTC 2007 Jaiganesh B <jai.dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/NodeApp_Configurator.h:
+
+ Changed the current structure of the NodeApplication library
+ by introducing the NodeApp_Configurator, that will now be
+ used to manage both RT and non-RT policies using the respective
+ config managers.
+
+ * DAnCE/NodeApplication/Configurator_Factory.cpp:
+
+ Previously, when RT support was required, the Configurator
+ Factory would create the RT config manager.
+
+ Instead, now the NodeApp_Configurator is created, which will
+ then subsequently create the RT or non-RT config managers
+ depending on whether RT support is required or not.
+
+ By default a non-RT config manager is created, which will be used
+ to create the non-RT policies.
+
+ * DAnCE/NodeApplication/NodeApplication_Core.cpp:
+
+ Made modifications to create the RT and non-RT config managers.
+
+ * DAnCE/NodeApplication/RTConfig_Manager.cpp:
+ * DAnCE/NodeApplication/RTConfig_Manager.h:
+
+ Made modifications to conform to the base config manager class.
+
+ * DAnCE/NodeApplication/NodeApplication.mpc:
+
+ Made modifications to compile the newly added files.
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h:
+
+ Changed the private variable type for the NA Configurator used.
+
+Tue Feb 27 20:11:28 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Fixed cut and paste error in code generation of type-specific
+ disconnect_*() method for multiplex uses ports.
+
+Tue Feb 27 17:44:08 UTC 2007 Jaiganesh B <jai.dre.vanderbilt.edu>
+
+ * examples/Hello/descriptors/run_test_without_ns.pl:
+
+ Updated the script in finding the location of the Execution
+ Manager executable.
+
+Tue Feb 27 05:26:53 UTC 2007 Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.h
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp
+
+ Modified the remove_extracted_package () function.
+ Added the functionality to save the package information when
+ install or delete a package.
+
+Tue Feb 27 03:29:42 UTC 2007 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/DynAny_Handler.mpc
+
+ Inherit from config_handlers_base to disable symbol visibility.
+
+Tue Feb 27 03:10:14 UTC 2007 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/CIAO_Events/CIAO_Events_Handlers.mpc
+ * tools/Config_Handlers/Config_Handlers.mpc
+ * tools/Config_Handlers/RT-CCM/RT-CCM-Handlers.mpc
+
+ Changed double quotes to <%quote%> to correctly generate in
+ Visual Studio projects. Thanks to Kitty for suggesting the
+ fix.
+
+Tue Feb 27 03:00:25 UTC 2007 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * docs/tutorials/Quoter/Simple/descriptors/runNodeDaemons.pl
+ * tests/Bug_2130_Regression/descriptors/run_test.pl
+ * DAnCE/TargetManager/descriptors/run_test_TargetManager.pl
+ * DAnCE/tests/scripts/BasicSP/basicNodeDaemon.pl
+ * DAnCE/tests/NodeApplicationTest/run_test_simple.pl
+ * DAnCE/tests/NodeApplicationTest/run_test_ex.pl
+ * DAnCE/tests/NodeApplicationTest/run_test.pl
+ * examples/Hello/descriptors/run_NodeDaemons.pl
+ * examples/Hello/descriptors/run_test_without_ns.pl
+ * examples/Hello/descriptors/run_test.pl
+ * examples/Hello/descriptors_events/run_NodeDaemons.pl
+ * examples/Hello/descriptors_events/run_NodeDaemons_svc_conf.pl
+ * examples/Hello/descriptors_events/run_NodeDaemons_with_ip.pl
+ * examples/Hello/descriptors_RTCCM/rt_run_test.pl
+ * examples/BasicSP/descriptors/run_test.pl
+ * examples/BasicSP/descriptors/basicNodeDaemon.pl
+ * examples/Display/descriptors/run_test_without_ns.pl
+ * examples/Display/descriptors/basicNodeDaemon.pl
+ * examples/Display/descriptors/run_NodeDaemons.pl
+
+ Updated to reflect movement of binaries to CIAO_ROOT/bin.
+
+Mon Feb 26 17:21:55 UTC 2007 Adam Mitz <mitza@ociweb.com>
+
+ * examples/Hello/descriptors_RTCCM/rt_run_test.pl:
+
+ Locate the CIAO directory using $PerlACE::CIAO_ROOT instead of
+ assuming that it is nested within TAO. This change supports the
+ peer-style directory layout.
+
+Sat Feb 24 21:32:05 UTC 2007 Jaiganesh B <jai.dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/RTConfig_Manager.cpp:
+ * DAnCE/NodeApplication/NodeApplication.mpc:
+ * DAnCE/NodeApplication/RTConfig_Manager.h:
+ * DAnCE/NodeApplication/NodeApp_Configurator.h:
+ * DAnCE/NodeApplication/NodeApplication_Core.cpp:
+ * DAnCE/NodeApplication/Configurator_Factory.cpp:
+
+ Reverted some inadvertent check-ins.
+
+Sat Feb 24 20:53:14 UTC 2007 Jaiganesh B <jai.dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/NodeApp_Configurator.h:
+ * DAnCE/NodeApplication/NodeApp_Configurator.cpp:
+
+ Changed the current structure of the NodeApplication library
+ by introducing the NodeApp_Configurator, that will now be
+ used to manage both RT and non-RT policies using the respective
+ config managers.
+
+ * DAnCE/NodeApplication/Configurator_Factory.cpp:
+
+ Previously, when RT support was required, the Configurator
+ Factory would create the RT config manager.
+
+ Instead, now the NodeApp_Configurator is created, which will
+ then subsequently create the RT or non-RT config managers
+ depending on whether RT support is required or not.
+
+ By default a non-RT config manager is created, which will be used
+ to create the non-RT policies.
+
+ * DAnCE/NodeApplication/NodeApplication_Core.cpp:
+
+ Made modifications to create the RT and non-RT config managers.
+
+ * DAnCE/NodeApplication/RTConfig_Manager.cpp:
+ * DAnCE/NodeApplication/RTConfig_Manager.h:
+
+ Made modifications to conform to the base config manager class.
+
+ * DAnCE/NodeApplication/NodeApplication.mpc:
+
+ Made modifications to compile the newly added files.
+
+Sat Feb 24 19:52:49 UTC 2007 Jaiganesh B <jai.dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/Config_Manager.h:
+
+ A new base class for the RT and non-RT NodeApplication
+ config managers, that are used by the NodeApplication
+ configurators.
+
+ * DAnCE/NodeApplication/NAConfig_Manager.cpp:
+ * DAnCE/NodeApplication/NAConfig_Manager.h:
+ * DAnCE/NodeApplication/NAConfig_Manager.inl:
+ * DAnCE/NodeApplication/NA_Configurator_Export.h:
+
+ A non-RT NodeApplication config manager that is being used to
+ create the DiffServ policies. In general, this config manager
+ can be used to create all the TAO-specific policies that are
+ created using ORB, rather than RT-ORB.
+
+ * DAnCE/NodeApplication/NodeApplication.mpc:
+
+ Updated the MPC file to compile the new non-RT NodeApplication
+ config manager library.
+
+Fri Feb 23 04:08:04 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * CIDLC/ServantGenerator.cpp:
+
+ cidlc --help prints the following:
+
+ [--svnt-export-macro macro]
+ Replace default servant DLL export macro with provided ,acro.
+
+ Fixed the misspelling of macro in the cidlc help message.
+
+
+Thu Feb 22 22:59:01 UTC 2007 Jaiganesh B <jai.dre.vanderbilt.edu>
+
+ * docs/schema/ServerResourceUsage.txt:
+
+ Updated the text document with the new usage guidelines.
+
+Thu Feb 22 22:53:52 UTC 2007 Nilabja R <nilabjar@dre.vanderbilt.edu>
+
+ * DAnCE/TargetManager/CmpClient.cpp:
+
+ Changed in order to remove a warning in the build
+
+Thu Feb 22 22:22:13 UTC 2007 Jaiganesh B <jai.dre.vanderbilt.edu>
+
+ * examples/Hello/descriptors_RTCCM/rt-example.cdp:
+
+ Updated the RT-CCM example deployment plan to conform
+ to the latest changes in specifying the POA policies
+ within the deployment plan.
+
+ The POA policies now need to be specified with a tag name
+ as CIAO:InstancePolicy.
+
+Thu Feb 22 22:19:14 UTC 2007 Jaiganesh B <jai.dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp:
+
+ Modifications to read in DiffServ policy specifications
+ within the deployment plan.
+
+Thu Feb 22 22:18:24 UTC 2007 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CCF/CCF/CompilerElements/TokenStream.hpp
+ * CCF/CCF/IDL2/SemanticAction/Exception.hpp
+ * CCF/CCF/IDL2/SemanticAction/TypeId.hpp
+ * CCF/CCF/IDL2/SemanticAction/Operation.hpp
+ * CCF/CCF/IDL2/SemanticAction/Interface.hpp
+ * CCF/CCF/IDL2/SemanticAction/Typedef.hpp
+ * CCF/CCF/IDL2/SemanticAction/Attribute.hpp
+ * CCF/CCF/IDL2/SemanticAction/Enum.hpp
+ * CCF/CCF/IDL2/SemanticAction/ValueTypeFactory.hpp
+ * CCF/CCF/IDL2/SemanticAction/ValueTypeMember.hpp
+ * CCF/CCF/IDL2/SemanticAction/Member.hpp
+ * CCF/CCF/IDL2/SemanticAction/Elements.hpp
+ * CCF/CCF/IDL2/SemanticAction/ValueType.hpp
+ * CCF/CCF/IDL2/SemanticAction/NumericExpression.hpp
+ * CCF/CCF/IDL2/SemanticAction/Include.hpp
+ * CCF/CCF/IDL2/SemanticAction/Struct.hpp
+ * CCF/CCF/IDL2/SemanticAction/Module.hpp
+ * CCF/CCF/IDL2/SemanticAction/Native.hpp
+ * CCF/CCF/IDL2/SemanticAction/Const.hpp
+ * CCF/CCF/IDL2/SemanticAction/Union.hpp
+ * CCF/CCF/CIDL/SemanticAction/HomeExecutor.hpp
+ * CCF/CCF/IDL3/SemanticAction/EventTypeFactory.hpp
+ * CCF/CCF/IDL3/SemanticAction/Provides.hpp
+ * CCF/CCF/IDL3/SemanticAction/Consumes.hpp
+ * CCF/CCF/IDL3/SemanticAction/Publishes.hpp
+ * CCF/CCF/IDL3/SemanticAction/Uses.hpp
+ * CCF/CCF/IDL3/SemanticAction/HomeFactory.hpp
+ * CCF/CCF/IDL3/SemanticAction/HomeFinder.hpp
+ * CCF/CCF/IDL3/SemanticAction/Emits.hpp
+
+ Addressed warnings relating to classes w/ virtual methods having
+ non virtual destructors.
+
+Thu Feb 22 21:36:35 UTC 2007 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp
+
+ Fix for compile warning.
+
+ * tools/Config_Handlers/Basic_Deployment_Data.cpp
+ * tools/Config_Handlers/RT-CCM/CIAOServerResources.hpp
+ * tools/Config_Handlers/RT-CCM/CIAOServerResources.cpp
+ * tools/Config_Handlers/Basic_Deployment_Data.hpp
+
+ Regenerated with newer version of XSC than Jai had, re-applying
+ fixes from
+ Wed Feb 21 20:30:34 UTC 2007 William R. Otte <wotte@dre.vanderbilt.edu>
+
+Thu Feb 22 17:07:08 UTC 2007 Jaiganesh B <jai.dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/RT-CCM/CNPM_Handler.cpp:
+
+ Removed a unused input argument from cnw_priority_pd () method.
+
+Thu Feb 22 02:30:29 UTC 2007 Jaiganesh B <jai.dre.vanderbilt.edu>
+
+ * DAnCE/Deployment/CIAO_ServerResources.idl:
+
+ Modified the IDL to conform to the changes made in the
+ schema.
+
+Thu Feb 22 02:27:00 UTC 2007 Jaiganesh B <jai.dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/RT-CCM/CNPM_Handler.h:
+ * tools/Config_Handlers/RT-CCM/CNPM_Handler.cpp:
+ * tools/Config_Handlers/RT-CCM/NPM_Handler.h:
+ * tools/Config_Handlers/RT-CCM/NPM_Handler.cpp:
+
+ New config handlers for handling the DiffServ policy
+ additions in the CIAOServerResources schema.
+
+ * tools/Config_Handlers/RT-CCM/PS_Handler.cpp:
+
+ PolicySet within the CIAOServerResources schema will now
+ have DiffServ policy specify sub-elements. So the PolicySet
+ handler is modified to call the specific handlers checked-in
+ above.
+
+ * tools/Config_Handlers/RT-CCM/RT-CCM-Handlers.mpc:
+
+ Included the new files in the MPC.
+
+Thu Feb 22 01:26:05 UTC 2007 Jaiganesh B <jai.dre.vanderbilt.edu>
+
+ * docs/schema/CIAOServerResources.xsd:
+
+ Added elements for representing the DiffServ policy.
+
+ * tools/Config_Handlers/RT-CCM/CIAOServerResources.hpp:
+ * tools/Config_Handlers/RT-CCM/CIAOServerResources.cpp:
+
+ Associated config handlers change.
+
+Wed Feb 21 22:01:45 UTC 2007 Jaiganesh B <jai.dre.vanderbilt.edu>
+
+ * docs/schema/Basic_Deployment_Data.xsd:
+
+ Updated the InstanceDeploymentDescription element's
+ deployedResource sub-element to be a sequence.
+
+ * tools/Config_Handlers/Basic_Deployment_Data.cpp:
+ * tools/Config_Handlers/IRDD_Handler.h:
+ * tools/Config_Handlers/Basic_Deployment_Data.hpp:
+ * tools/Config_Handlers/IDD_Handler.cpp:
+
+ Associated config handler changes.
+
+Wed Feb 21 20:30:34 UTC 2007 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DynAny_Handler/DynAny_Handler.cpp
+ * CIAO_Events/CIAOEvents.hpp
+ * RT-CCM/CIAOServerResources.hpp
+ * Basic_Deployment_Data.hpp
+
+ Compile fixes for Borland and pedantic G++ compilers.
+
+Wed Feb 21 19:16:14 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/TargetManager/TargetManager.mpc:
+ Fixed error in this file
+
+Wed Feb 21 19:12:14 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Deployment/Deployment_Target_Data.idl:
+ Removed, this file was reintroduced with the move by accident
+
+ * DAnCE/TargetManager/TargetManagerImpl.idl:
+ Use full paths
+
+Wed Feb 21 15:49:14 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/TargetManager/TargetManager.mpc:
+ Added missing files
+
+Wed Feb 21 08:30:14 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Swapping_Container.cpp:
+ * DAnCE/TargetManager/TargetManager_exec.cpp:
+ Layout change
+
+ * tools/Config_Handlers/Utils/XercesString.{h,cpp}:
+ Use std::swap instead of ACE_Swap
+
+Tue Feb 20 17:56:25 UTC 2007 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * COPYING: Clarified how the COPYING file need to be included with
+ any code released. Thanks to Scott Mark <sjm at pobox dot com>
+ for helping clarify this.
+
+Tue Feb 20 17:59:51 UTC 2007 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Deployment/Deployment_TargetManager.idl
+ * DAnCE/Deployment/DAnCE_Core.mpc
+ * DAnCE/TargetManager/DomainDataManager.h
+ * DAnCE/TargetManager/TargetManager.mpc
+ * DAnCE/TargetManager/CmpClient.cpp
+ * DAnCE/TargetManager/ResourceCommitmentManager.h
+ * DAnCE/TargetManager/TargetManagerImpl.idl
+ * DAnCE/NodeApplication/Container_Impl.h
+ * ciao/Context_Impl_Base.h
+ * ciao/Swapping_Container.cpp
+
+ Cleared up compile errors from
+ Tue Feb 20 16:17:46 UTC 2007 William R. Otte <wotte@dre.vanderbilt.edu>
+
+Tue Feb 20 17:48:14 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Context_Impl_Base.h:
+ * DAnCE/Deployment/NodeApp_CB_Impl.{h,cpp}:
+ Removed ACE_THROW_SPEC
+
+Tue Feb 20 17:10:14 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Extension_Context.{h,cpp}:
+ Moved to ciao/extension
+
+Tue Feb 20 16:17:46 UTC 2007 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * Merged ciao_core_2 to head.
+
+ Tue Feb 20 16:03:02 UTC 2007 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * RACE/Plan_Analyzer/Interface/PlanIngress.idl
+ * RACE/Planners/Interface/Planner_I.idl
+ * RACE/Controller/Component/Controller.idl
+ * RACE/Output_Adapters/Interface/PlanEgress.idl
+ * RACE/Planner_Manager/Interface/Planner_Manager_I.idl
+
+ Further updates to support migration of Deployment IDL to
+ DAnCE/Deployment.
+
+ Mon Feb 19 21:27:11 UTC 2007 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * MPC/config/ciao_events_base_dnc.mpb
+ * MPC/config/ciaoexe.mpb
+ * MPC/config/ciao_client_dnc.mpb
+ * MPC/config/ciao_container_dnc.mpb
+ * MPC/config/ciao_servant_dnc.mpb
+ * MPC/config/ciao_component_dnc.mpb
+ * MPC/config/ciao_events_dnc.mpb
+ * MPC/config/ciao_server_dnc.mpb
+
+ Removed the _DnC_ from a bunch of projects, as since we no longer have
+ DnC and non DnC versions of CIAO, its reall superfluous.
+
+ * DAnCE/Deployment
+ * DAnCE/Deployment/Deployment_NodeApplication.idl
+ * DAnCE/Deployment/Deployment_Data.idl
+ * DAnCE/Deployment/Deployment_svnt_export.h
+ * DAnCE/Deployment/Deployment_Base.idl
+ * DAnCE/Deployment/Deployment_RepositoryManager.idl
+ * DAnCE/Deployment/Deployment_Packaging_Data.idl
+ * DAnCE/Deployment/Deployment_Target_Data.idl
+ * DAnCE/Deployment/CIAO_NodeApplication_CallBack.idl
+ * DAnCE/Deployment/Deployment_TargetData.idl
+ * DAnCE/Deployment/Deployment.idl
+ * DAnCE/Deployment/Deployment_NodeManager.idl
+ * DAnCE/Deployment/Deployment_TargetManager.idl
+ * DAnCE/Deployment/Deployment_Container.idl
+ * DAnCE/Deployment/NodeApp_CB_Impl.cpp
+ * DAnCE/Deployment/Deployment_DomainApplicationManager.idl
+ * DAnCE/Deployment/Deployment_Core.idl
+ * DAnCE/Deployment/NodeApp_CB_Impl.h
+ * DAnCE/Deployment/Deployment_DeploymentPlan.idl
+ * DAnCE/Deployment/Deployment_DomainApplication.idl
+ * DAnCE/Deployment/CIAO_ServerResources.idl
+ * DAnCE/Deployment/Deployment_stub_export.h
+ * DAnCE/Deployment/Deployment_ExecutionManager.idl
+ * DAnCE/Deployment/Deployment_ApplicationManager.idl
+ * DAnCE/Deployment/Deployment_Connection.idl
+ * DAnCE/Deployment/Deployment_Application.idl
+ * DAnCE/Deployment/Deployment_NodeApplicationManager.idl
+ * DAnCE/Deployment/Deployment_Events.idl
+ * DAnCE/Deployment/Deployment_common.h
+
+ Moved these IDLs from CIAO_ROOT/ciao in an effort to isolate the
+ DnC IDL from the CIAO IDL and control directory size explosion of
+ CIAO_ROOT/ciao.
+
+ * tools/Config_Handlers/DnC_Dump.h
+ * tools/Config_Handlers/DP_Handler.cpp
+ * tools/Config_Handlers/MDD_Handler.cpp
+ * tools/Config_Handlers/CPD_Handler.cpp
+ * tools/Config_Handlers/Property_Handler.cpp
+ * tools/Config_Handlers/ID_Handler.cpp
+ * tools/Config_Handlers/DnC_Dump.cpp
+ * tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.h
+ * tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp
+ * tools/Config_Handlers/Package_Handlers/CPD_Handler.cpp
+ * tools/Config_Handlers/Package_Handlers/NIA_Handler.h
+ * tools/Config_Handlers/Package_Handlers/SID_Handler.cpp
+ * tools/Config_Handlers/Package_Handlers/test.cpp
+ * tools/Config_Handlers/Package_Handlers/CAD_Handler.cpp
+ * tools/Config_Handlers/Package_Handlers/CAD_Handler.h
+ * tools/Config_Handlers/Package_Handlers/CID_Handler.cpp
+ * tools/Config_Handlers/PCD_Handler.cpp
+ * tools/Config_Handlers/CRDD_Handler.cpp
+ * tools/Config_Handlers/DataType_Handler.h
+ * tools/Config_Handlers/STD_CPD_Handler.cpp
+ * tools/Config_Handlers/CIAO_Events/test.cpp
+ * tools/Config_Handlers/CIAO_Events/CIAOEvents_Handler.h
+ * tools/Config_Handlers/CIAO_Events/CIAOEvents_Handler.cpp
+ * tools/Config_Handlers/Req_Handler.cpp
+ * tools/Config_Handlers/DP_PCD_Handler.cpp
+ * tools/Config_Handlers/RDD_Handler.cpp
+ * tools/Config_Handlers/STD_CID_Handler.cpp
+ * tools/Config_Handlers/ERE_Handler.cpp
+ * tools/Config_Handlers/XML_File_Intf.cpp
+ * tools/Config_Handlers/test.cpp
+ * tools/Config_Handlers/CCD_Handler.cpp
+ * tools/Config_Handlers/SatisfierProperty_Handler.cpp
+ * tools/Config_Handlers/RT-CCM/CLA_Handler.h
+ * tools/Config_Handlers/RT-CCM/TPL_Handler.h
+ * tools/Config_Handlers/RT-CCM/OC_Handler.h
+ * tools/Config_Handlers/RT-CCM/PM_Handler.h
+ * tools/Config_Handlers/RT-CCM/OR_Handler.h
+ * tools/Config_Handlers/RT-CCM/PS_Handler.h
+ * tools/Config_Handlers/RT-CCM/TP_Handler.h
+ * tools/Config_Handlers/RT-CCM/CB_Handler.h
+ * tools/Config_Handlers/RT-CCM/SRD_Handler.h
+ * tools/Config_Handlers/PSPE_Handler.cpp
+ * tools/Config_Handlers/Dump_Obj.h
+ * tools/Config_Handlers/ESD_Handler.cpp
+ * tools/Config_Handlers/ComponentPropertyDescription_Handler.cpp
+ * tools/Config_Handlers/CEPE_Handler.cpp
+ * tools/Config_Handlers/STD_CID_Handler.h
+ * tools/Config_Handlers/IRDD_Handler.cpp
+ * tools/Config_Handlers/DD_Handler.cpp
+ * tools/Config_Handlers/ADD_Handler.cpp
+ * tools/Config_Handlers/IDD_Handler.cpp
+ * ciaosvcs/Events/CIAO_Events_Base/CIAO_Events_Base.mpc
+ * ciaosvcs/Events/CIAO_Events.mpc
+ * DAnCE/NodeManager/MonitorController.h
+ * DAnCE/NodeManager/MonitorCB.h
+ * DAnCE/NodeManager/BaseMonitor.h
+ * DAnCE/Plan_Generator/PCVisitorBase.h
+ * DAnCE/Plan_Generator/Plan_Generator_Impl.h
+ * DAnCE/TargetManager/CmpClient.cpp
+ * DAnCE/TargetManager/DomainEvents.idl
+ * DAnCE/TargetManager/TargetManagerImpl.idl
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_ex.cpp
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client.cpp
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_dynamic.cpp
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_simple.cpp
+ * DAnCE/Interfaces/ExecutionManagerDaemon.idl
+ * DAnCE/Interfaces/NodeManagerDaemon.idl
+ * DAnCE/NodeApplicationManager/ImplementationInfo.cpp
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.h
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+ * DAnCE/NodeApplicationManager/ImplementationInfo.h
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DAnCE/DomainApplicationManager/Deployment_Configuration.h
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h
+ * DAnCE/NodeApplication/NodeApplication_Impl.h
+ * DAnCE/NodeApplication/Container_Impl.h
+ * DAnCE/NodeApplication/RTConfig_Manager.h
+ * DAnCE/NodeApplication/NodeApp_Configurator.h
+ * DAnCE/NodeApplication/RTNodeApp_Configurator.cpp
+ * DAnCE/NodeApplication/NodeApplication_Core.cpp
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp
+ * DAnCE/RepositoryManager/RM_Helper.h
+ * DAnCE/RepositoryManager/RepositoryManagerDaemon.idl
+ * DAnCE/RepositoryManager/PC_Updater.cpp
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp
+ * DAnCE/RepositoryManager/PC_Updater.h
+ * DAnCE/ExecutionManager/DAM_Map.h
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.h
+ * DAnCE/ExecutionManager/ExecutionManager.mpc
+ * ciao/Swapping_Container.h
+ * ciao/Dynamic_Component_Activator.h
+ * ciao/CCM_Core.mpc
+ * ciao/Container_Base.h
+
+ For the most part, modifications to support movement of DnC interfaces
+ to DAnCE/Deployment. One or two files were further modified to support
+ removal of DnC from project names.
+
+ Mon Feb 19 19:40:19 UTC 2007 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * MPC/config/ciaoexe.mpb
+ * DAnCE/NodeManager/NodeManager.mpc
+ * DAnCE/NodeApplication/NodeApplication.mpc
+ * DAnCE/RepositoryManager/RepositoryManager.mpc
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc
+
+ Modified to install exes to CIAO_ROOT/bin.
+
+ Mon Feb 19 19:33:32 UTC 2007 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeManager/MonitorCB.cpp
+ * DAnCE/TargetManager/DomainDataManager.cpp
+
+ Corrected to reflect changes in IDL.
+
+ * CCF/CCF/CodeGenerationKit/CommandLine.cpp
+
+ Added get_all_values to support revrieval of all values for a given
+ option passed on the command line.
+
+ Mon Feb 19 19:32:34 UTC 2007 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ciao/Container_Base.cpp
+
+ Cosmetic format changes.
+
+ * ciao/CCM_Context.idl
+
+ re-added removed comment.
+
+ Mon Feb 19 19:25:06 UTC 2007 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ccd.hpp
+ * cid.cpp
+ * pcd.cpp
+ * Deployment.hpp
+ * toplevel.cpp
+ * cdd.hpp
+ * Basic_Deployment_Data.cpp
+ * cdp.hpp
+ * cpd.hpp
+ * CIAO_Events/CIAOEvents.cpp
+ * CIAO_Events/CIAOEvents.hpp
+ * ccd.cpp
+ * iad.hpp
+ * cid.hpp
+ * pcd.hpp
+ * Deployment.cpp
+ * cdd.cpp
+ * toplevel.hpp
+ * RT-CCM/CIAOServerResources.hpp
+ * RT-CCM/CIAOServerResources.cpp
+ * cdp.cpp
+ * cpd.cpp
+ * Basic_Deployment_Data.hpp
+ * iad.cpp
+
+ * docs/schema/cid.xsd
+ * docs/schema/cpd.xsd
+
+ Changed include ordering.
+
+ * docs/schema/Basic_Deployment_Data.xsd
+
+ Added elements to support sequence, struct, and valuetypes
+ in the schema.
+
+ Mon Feb 19 19:20:35 UTC 2007 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * Package_Handlers/PCD_Handler.cpp
+
+ Changed to reflect slight change in schema.
+
+ * CIAO_Events/CIAO_Events_Handlers.mpc
+ * Config_Handlers.mpc
+ * RT-CCM/RT-CCM-Handlers.mpc
+
+ Updated to include XSC generation.
+
+ Mon Feb 19 15:30:04 UTC 2007 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * MPC/config/xscdefaults.mpb
+ * tools/Config_Handlers/Config_Handlers.mpc
+
+ Added a custom type to MPC to handle XSC generation.
+
+ Wed Feb 7 21:16:36 UTC 2007 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ciao/Deployment_Data.idl
+ * ciao/Deployment_ApplicationManager.idl
+ * ciao/CCM_CCMException.idl
+ * ciao/Deployment_Application.idl
+ * ciao/Context_Impl_Base.h
+ * ciao/Deployment.idl
+ * ciao/Context_Impl_Base.cpp
+ * ciao/Deployment_NodeApplication.idl
+ * ciao/Deployment_TargetData.idl
+ * ciao/CCM_Events.idl
+ * ciao/Deployment_ExecutionManager.idl
+ * ciao/Deployment_NodeApplicationManager.idl
+ * ciao/CCM_Context.idl
+ * ciao/Deployment_Base.idl
+ * ciao/Deployment_Packaging_Data.idl
+ * ciao/Deployment_DomainApplicationManager.idl
+ * ciao/Deployment_Connection.idl
+ * ciao/Deployment_TargetManager.idl
+ * ciao/Deployment_DeploymentPlan.idl
+ * ciao/Deployment_NodeManager.idl
+
+ Updated with changes to comply with the 06-02-01 version of the
+ DnC spec. Many of these changes would break the entire toolchain,
+ so they are commented out for the time being. grep for
+
+ @@changed @@add @@delete
+
+ to find changes.
+
+ * ciao/CCM_Core.mpc
+ *ciao/Deployment_DomainApplication.idl
+
+ Added DomainApplication interface, completely missing from our IDL.
+
+Tue Feb 20 14:15:14 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIDLC/OperationHeaderEmitters.cpp:
+ * CIDLC/OperationHeaderEmitters.hpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+ Override raises to get no throw spec at all
+
+Tue Feb 20 03:56:37 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * DAnCE/StaticConfigurator/StaticDAnCEApp.mpc.tmpl:
+
+ Added missing dependency on iortable base project.
+
+Mon Feb 19 20:22:14 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/extension/*:
+ Moved all idl files for QoS4CCM to the new extension directory
+
+ * caio/Session_Container.h:
+ Layout change
+
+Sat Feb 17 03:45:30 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * DAnCE/StaticConfigurator/StaticDAnCEApp.cpp.tmpl:
+
+ Updated template file to match the recent enhancements to StaticDAnCEApp.cpp
+ found in examples/Null_Component/StaticDAnCEApp.cpp
+
+Fri Feb 15 19:41:14 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIDLC/AttributeHeaderEmitters.cpp:
+ * CIDLC/AttributeSourceEmitters_T.hpp:
+ * CIDLC/ExecImplHeaderGenerator.cpp:
+ * CIDLC/ExecImplSourceGenerator.cpp:
+ * CIDLC/Literals.cpp:
+ * CIDLC/Literals.hpp:
+ * CIDLC/OperationHeaderEmitters.cpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+ Removed generation of ACE_THROW_SPEC, maybe some raise methods can be
+ removed internally but that is for the next cleanup round
+
+ * examples/Null_Component/Null_Component_exec.h:
+ Layout change
+
+ * examples/Null_Component/StaticDAnCEApp.cpp:
+ Updated include
+
+Fri Feb 15 09:34:14 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/CCM_Core.mpc:
+ Removed the extension context files for the moment, this needs
+ much more idl files
+
+Thu Feb 14 16:06:14 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Deployment_Target_Data.idl:
+ * ciao/Deployment_PlanError.idl:
+ Renamed Target_Data to PlanError
+
+ * ciao/CCM_Core.mpc:
+ * ciao/Deployment.idl:
+ * ciao/Deployment_TargetManager.idl:
+ * DAnCE/TargetManager/TargetManagerImpl.idl:
+ Updated because of rename above
+
+Thu Feb 14 16:00:14 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/CCM_CCMException.idl:
+ Enabled the QoS4CCM enums
+
+ * ciao/CCM_Core.mpc:
+ Added ExtensionContext.cpp
+
+ * ciao/ExtensionContext.{h,cpp}:
+ New file, just throw no implement in all the new methods, just
+ creating first the empty classes and infrastructure
+
+Thu Feb 14 13:05:14 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Context_Impl_Base.h:
+ * ciao/Dynamic_Component_Activator.cpp:
+ * ciao/Dynamic_Component_Activator.h:
+ * ciao/Dynamic_Component_Servant_T.h:
+ * ciao/Home_Servant_Impl_Base.cpp
+ * ciao/Home_Servant_Impl_Base.h:
+ * ciao/ome_Servant_Impl_T.cpp:
+ * ciao/Home_Servant_Impl_T.h:
+ * ciao/Object_Set_T.h:
+ * ciao/Port_Activator_T.cpp
+ * ciao/Port_Activator_T.h:
+ * ciao/Servant_Impl_Utils_T.cpp:
+ * ciao/StandardConfigurator_Impl.cpp:
+ * ciao/StandardConfigurator_Impl.h:
+ * ciao/Swapping_Container.cpp:
+ * ciao/Swapping_Servant_Home_Impl_T.h:
+ * ciao/Upgradeable_Context_Impl_T.h:
+ Layout changes
+
+ * ciao/Cookies.cpp:
+ * ciao/Cookies.inl:
+ Don't inline virtual destructors
+
+Thu Feb 14 12:51:14 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Context_Impl_Base.cpp:
+ Just let resolve_service_reference throw not implemented,
+ need some more work
+
+Thu Feb 14 12:22:14 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Container_Base.cpp:
+ * ciao/Container_Base.h:
+ * ciao/Session_Container.cpp:
+ * ciao/Session_Container.h:
+ * ciao/Session_Container.inl:
+ Moved Session_Container to its own file
+
+ * ciao/Container_Base.inl:
+ Removed, not needed anymore
+
+ * ciao/CCM_Context.idl:
+ Added resolve_service_reference
+
+ * ciao/CCM_Core.mpc:
+ Added new Session_Container
+
+ * ciao/Context_Impl_Base.cpp:
+ * ciao/Context_Impl_Base.h:
+ Layout changes and implemented resolve_service_reference
+
+ * ciao/Context_Impl_T.cpp:
+ * ciao/Context_Impl_T.h:
+ * ciao/Port_Activator.h:
+ * ciao/Port_Activator_T.h:
+ * ciao/Servant_Impl_Base.cpp:
+ * DAnCE/ExecutionManager/Execution_Manager.cpp:
+ * DAnCE/DomainApplicationManager/Deployment_Configuration.cpp:
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp:
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.h:
+ * DAnCE/NodeApplication/Container_Impl.cpp:
+ * DAnCE/NodeApplication/Container_Impl.h:
+ * DAnCE/TargetManager/CmpClient.cpp:
+ * DAnCE/NodeApplication/NodeApplication_Impl.h:
+ * DAnCE/TargetManager/TargetManager_exec.h:
+ Layout changes
+
+ * ciao/Dynamic_Component_Activator.cpp:
+ * ciao/Dynamic_Component_Activator.h:
+ * ciao/Swapping_Container.cpp:
+ * ciao/Swapping_Container.h:
+ * ciao/Swapping_Servant_Home_Impl_T.cpp:
+ Renamed add_servant_map to add_servant_to_map and delete_servant_map
+ to delete_servant_from_map
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+ Include Session_Container.h instead of Container_Base.h
+
+ * DAnCE/ExecutionManager/DAM_Map.cpp:
+ No need to use intermediate variables
+
+Tue Feb 13 20:49:13 UTC 2007 Nilabja R <nilabjar@dre.vanderbilt.edu>
+
+ * DAnCE/TargetManager/CmpClient.cpp:
+ * DAnCE/TargetManager/DomainDataManager.cpp:
+ Changed in order to address couple of warnings in the TargetManager.
+
+Mon Feb 12 16:02:14 UTC 2007 Nilabja R <nilabjar@dre.vanderbilt.edu>
+
+ * RACE:
+
+ * RACE/Controller:
+
+ * RACE/Controller/Component:
+
+ * RACE/Controller/Component/Controller.cidl:
+ * RACE/Controller/Component/Controller.idl:
+ * RACE/Controller/Component/Controller.mpc:
+ * RACE/Controller/Component/Controller_exec.h:
+ * RACE/Controller/Component/Controller_exec.cpp:
+ * RACE/Controller/Component/Controller_exec_export.h:
+ * RACE/Controller/Component/Controller_stub_export.h:
+ * RACE/Controller/Component/Controller_svnt_export.h:
+
+ * RACE/Input_Adapters:
+
+ * RACE/Input_Adapters/Base:
+
+ * RACE/Input_Adapters/Base/Input_Adapter.idl:
+ * RACE/Input_Adapters/Base/Input_Adapter.mpc:
+ * RACE/Input_Adapters/Base/Input_Adapter_stub_export.h:
+ * RACE/Input_Adapters/Base/Input_Adapter_svnt_export.h:
+
+ * RACE/Input_Adapters/Interactive_Input_Adapter:
+
+ * RACE/Input_Adapters/Interactive_Input_Adapter/Interactive_Input_Adapter.cidl:
+ * RACE/Input_Adapters/Interactive_Input_Adapter/Interactive_Input_Adapter.idl:
+ * RACE/Input_Adapters/Interactive_Input_Adapter/Interactive_Input_Adapter.mpc:
+ * RACE/Input_Adapters/Interactive_Input_Adapter/Interactive_Input_Adapter_exec.h:
+ * RACE/Input_Adapters/Interactive_Input_Adapter/Interactive_Input_Adapter_exec.cpp:
+ * RACE/Input_Adapters/Interactive_Input_Adapter/Interactive_Input_Adapter_exec_export.h:
+ * RACE/Input_Adapters/Interactive_Input_Adapter/Interactive_Input_Adapter_stub_export.h:
+ * RACE/Input_Adapters/Interactive_Input_Adapter/Interactive_Input_Adapter_svnt_export.h:
+
+ * RACE/Input_Adapters/LocationUpdater:
+
+ * RACE/Input_Adapters/LocationUpdater/Injector.cpp:
+ * RACE/Input_Adapters/LocationUpdater/LocationUpdater.cdp:
+ * RACE/Input_Adapters/LocationUpdater/LocationUpdater.cidl:
+ * RACE/Input_Adapters/LocationUpdater/LocationUpdater.idl:
+ * RACE/Input_Adapters/LocationUpdater/LocationUpdater_deployment.dat:
+ * RACE/Input_Adapters/LocationUpdater/LocationUpdater_exec.h:
+ * RACE/Input_Adapters/LocationUpdater/LocationUpdater_exec.cpp:
+ * RACE/Input_Adapters/LocationUpdater/LocationUpdater_exec_export.h:
+ * RACE/Input_Adapters/LocationUpdater/LocationUpdater_stub_export.h:
+ * RACE/Input_Adapters/LocationUpdater/LocationUpdater_svnt_export.h:
+ * RACE/Input_Adapters/LocationUpdater/Location_Updater.mpc.disable:
+ * RACE/Input_Adapters/LocationUpdater/PCVisitorBase.h:
+ * RACE/Input_Adapters/LocationUpdater/PCVisitorBase.inl:
+ * RACE/Input_Adapters/LocationUpdater/PCVisitorBase.cpp:
+ * RACE/Input_Adapters/LocationUpdater/PlanUpdater.h:
+ * RACE/Input_Adapters/LocationUpdater/PlanUpdater.cpp:
+ * RACE/Input_Adapters/LocationUpdater/README.txt:
+
+ * RACE/Input_Adapters/PlanGenerator:
+
+ * RACE/Input_Adapters/PlanGenerator/Injector.cpp:
+ * RACE/Input_Adapters/PlanGenerator/PCVisitorBase.h:
+ * RACE/Input_Adapters/PlanGenerator/PCVisitorBase.inl:
+ * RACE/Input_Adapters/PlanGenerator/PCVisitorBase.cpp:
+ * RACE/Input_Adapters/PlanGenerator/PlanGenerator.cidl:
+ * RACE/Input_Adapters/PlanGenerator/PlanGenerator.h:
+ * RACE/Input_Adapters/PlanGenerator/PlanGenerator.cdp:
+ * RACE/Input_Adapters/PlanGenerator/PlanGenerator.cpp:
+ * RACE/Input_Adapters/PlanGenerator/PlanGenerator.idl:
+ * RACE/Input_Adapters/PlanGenerator/PlanGenerator.mpc.disable:
+ * RACE/Input_Adapters/PlanGenerator/PlanGenerator_deployment.dat:
+ * RACE/Input_Adapters/PlanGenerator/PlanGenerator_exec.h:
+ * RACE/Input_Adapters/PlanGenerator/PlanGenerator_exec.cpp:
+ * RACE/Input_Adapters/PlanGenerator/PlanGenerator_exec_export.h:
+ * RACE/Input_Adapters/PlanGenerator/PlanGenerator_stub_export.h:
+ * RACE/Input_Adapters/PlanGenerator/PlanGenerator_svnt_export.h:
+ * RACE/Input_Adapters/PlanGenerator/README.txt:
+
+ * RACE/Output_Adapters:
+
+ * RACE/Output_Adapters/Base:
+
+ * RACE/Output_Adapters/Base/Output_Adapter.idl:
+ * RACE/Output_Adapters/Base/Output_Adapter.mpc:
+ * RACE/Output_Adapters/Base/Output_Adapter_stub_export.h:
+ * RACE/Output_Adapters/Base/Output_Adapter_svnt_export.h:
+
+ * RACE/Output_Adapters/Component:
+
+ * RACE/Output_Adapters/Component/Output_Manager.idl:
+
+ * RACE/Output_Adapters/Interface:
+
+ * RACE/Output_Adapters/Interface/Output_Adapter_Interface.mpc:
+ * RACE/Output_Adapters/Interface/Output_Adapter_Interface_stub_export.h:
+ * RACE/Output_Adapters/Interface/Output_Adapter_Interface_svnt_export.h:
+ * RACE/Output_Adapters/Interface/PlanEgress.idl:
+
+ * RACE/Output_Adapters/XML_Output_Adapter:
+
+ * RACE/Output_Adapters/XML_Output_Adapter/XML_Output_Adapter.cidl:
+ * RACE/Output_Adapters/XML_Output_Adapter/XML_Output_Adapter.idl:
+ * RACE/Output_Adapters/XML_Output_Adapter/XML_Output_Adapter.mpc:
+ * RACE/Output_Adapters/XML_Output_Adapter/XML_Output_Adapter_exec.h:
+ * RACE/Output_Adapters/XML_Output_Adapter/XML_Output_Adapter_exec.cpp:
+ * RACE/Output_Adapters/XML_Output_Adapter/XML_Output_Adapter_exec_export.h:
+ * RACE/Output_Adapters/XML_Output_Adapter/XML_Output_Adapter_stub_export.h:
+ * RACE/Output_Adapters/XML_Output_Adapter/XML_Output_Adapter_svnt_export.h:
+
+ * RACE/Plan_Analyzer:
+
+ * RACE/Plan_Analyzer/Component:
+
+ * RACE/Plan_Analyzer/Component/Plan_Analyzer.cidl:
+ * RACE/Plan_Analyzer/Component/Plan_Analyzer.idl:
+ * RACE/Plan_Analyzer/Component/Plan_Analyzer.mpc:
+ * RACE/Plan_Analyzer/Component/Plan_Analyzer_exec.h:
+ * RACE/Plan_Analyzer/Component/Plan_Analyzer_exec.cpp:
+ * RACE/Plan_Analyzer/Component/Plan_Analyzer_exec_export.h:
+ * RACE/Plan_Analyzer/Component/Plan_Analyzer_stub_export.h:
+ * RACE/Plan_Analyzer/Component/Plan_Analyzer_svnt_export.h:
+
+ * RACE/Plan_Analyzer/Interface:
+
+ * RACE/Plan_Analyzer/Interface/PlanIngress.idl:
+ * RACE/Plan_Analyzer/Interface/Plan_Analyzer_Interface.mpc:
+ * RACE/Plan_Analyzer/Interface/Plan_Analyzer_Interface_stub_export.h:
+ * RACE/Plan_Analyzer/Interface/Plan_Analyzer_Interface_svnt_export.h:
+
+ * RACE/Planner_Manager:
+
+ * RACE/Planner_Manager/Component:
+
+ * RACE/Planner_Manager/Component/Planner_Manager.cidl:
+ * RACE/Planner_Manager/Component/Planner_Manager.idl:
+ * RACE/Planner_Manager/Component/Planner_Manager.mpc:
+ * RACE/Planner_Manager/Component/Planner_Manager_exec.h:
+ * RACE/Planner_Manager/Component/Planner_Manager_exec.cpp:
+ * RACE/Planner_Manager/Component/Planner_Manager_exec_export.h:
+ * RACE/Planner_Manager/Component/Planner_Manager_stub_export.h:
+ * RACE/Planner_Manager/Component/Planner_Manager_svnt_export.h:
+
+ * RACE/Planner_Manager/Interface:
+
+ * RACE/Planner_Manager/Interface/Planner_Manager_I.idl:
+ * RACE/Planner_Manager/Interface/Planner_Manager_Interface.mpc:
+ * RACE/Planner_Manager/Interface/Planner_Manager_Interface_stub_export.h:
+ * RACE/Planner_Manager/Interface/Planner_Manager_Interface_svnt_export.h:
+
+ * RACE/Planners:
+
+ * RACE/Planners/Base:
+
+ * RACE/Planners/Base/Planner.idl:
+ * RACE/Planners/Base/Planner.mpc:
+ * RACE/Planners/Base/Planner_stub_export.h:
+ * RACE/Planners/Base/Planner_svnt_export.h:
+
+ * RACE/Planners/Interface:
+
+ * RACE/Planners/Interface/Planner_I.idl:
+ * RACE/Planners/Interface/Planner_Interface.mpc:
+ * RACE/Planners/Interface/Planner_Interface_stub_export.h:
+ * RACE/Planners/Interface/Planner_Interface_svnt_export.h:
+
+ * RACE/Planners/SimpleBinPacker:
+
+ * RACE/Planners/SimpleBinPacker/SimpleBinPacker.cidl:
+ * RACE/Planners/SimpleBinPacker/SimpleBinPacker.idl:
+ * RACE/Planners/SimpleBinPacker/SimpleBinPacker.mpc:
+ * RACE/Planners/SimpleBinPacker/SimpleBinPacker_exec.h:
+ * RACE/Planners/SimpleBinPacker/SimpleBinPacker_exec.cpp:
+ * RACE/Planners/SimpleBinPacker/SimpleBinPacker_exec_export.h:
+ * RACE/Planners/SimpleBinPacker/SimpleBinPacker_stub_export.h:
+ * RACE/Planners/SimpleBinPacker/SimpleBinPacker_svnt_export.h:
+
+ * RACE/common:
+
+ * RACE/common/RACE_common.idl:
+ * RACE/common/RACE_common.mpc:
+ * RACE/common/RACE_common_stub_export.h:
+ * RACE/common/RACE_common_svnt_export.h:
+
+ * RACE/descriptors:
+
+ * RACE/descriptors/Deployment.xsd:
+ * RACE/descriptors/Modified_Deployment.xsd:
+ * RACE/descriptors/XMI.xsd:
+ * RACE/descriptors/deployment.dat:
+ * RACE/descriptors/flattened_deploymentplan.cdp:
+
+ Removed these files. Removed the RACE implementation from the HEAD,
+ since this is obsolete. This module is now in the process of
+ re-structuring and will be checked in by Nishanth Shankaran.
+
+Mon Feb 12 12:53:14 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/*.{h,cpp,inl}:
+ Removed ACE_THROW_SPEC, layout changes, reduced includes
+
+Sat Feb 10 20:16:57 UTC 2007 Nilabja R <nilabjar@dre.vanderbilt.edu>
+
+ * DAnCE/TargetManager/ResourceCommitmentManager.h:
+ * DAnCE/TargetManager/ResourceCommitmentManager.cpp:
+
+ * ciao/Deployment_ResourceCommitmentManager.idl:
+ Added missing Id tag
+
+Fri Feb 9 20:11:15 UTC 2007 Nilabja R <nilabjar@dre.vanderbilt.edu>
+
+ * ChangeLog:
+
+ * DAnCE/NodeManager/MonitorCB.cpp:
+
+ * DAnCE/TargetManager/CmpClient.cpp:
+ * DAnCE/TargetManager/DomainDataManager.h:
+ * DAnCE/TargetManager/DomainDataManager.cpp:
+ * DAnCE/TargetManager/ResourceCommitmentManager.h:
+ * DAnCE/TargetManager/ResourceCommitmentManager.cpp:
+ * DAnCE/TargetManager/TargetManager.mpc:
+ * DAnCE/TargetManager/TargetManagerExt.idl:
+ * DAnCE/TargetManager/TargetManagerImpl.idl:
+ * DAnCE/TargetManager/TargetManager_exec.h:
+ * DAnCE/TargetManager/TargetManager_exec.cpp:
+
+ * DAnCE/TargetManager/descriptors/run_test_TargetManager.pl:
+
+ * ciao/CCM_Core.mpc:
+ * ciao/Deployment_ResourceCommitmentManager.idl:
+ * ciao/Deployment_TargetManager.idl:
+
+ Merged in changes from the branch TargetManager_Ext to introduce new
+ feature complying to the spec
+
+ Fri Feb 2 21:00:48 UTC 2007 Nilabja R <nilabjar@dre.vanderbilt.edu>
+
+ * DAnCE/TargetManager/CmpClient.cpp:
+ * DAnCE/TargetManager/DomainDataManager.h:
+ * DAnCE/TargetManager/DomainDataManager.cpp:
+ * DAnCE/TargetManager/TargetManager.mpc:
+ * DAnCE/TargetManager/TargetManagerImpl.idl:
+ * DAnCE/TargetManager/TargetManager_exec.h:
+ * DAnCE/TargetManager/TargetManager_exec.cpp:
+
+ Cleaning TM code to separate CIAO-specific functionality.
+
+ Tue Jan 16 21:18:57 UTC 2007 Nilabja R <nilabjar@dre.vanderbilt.edu>
+
+ * DAnCE/TargetManager/CmpClient.cpp:
+ * DAnCE/TargetManager/DomainDataManager.h:
+ * DAnCE/TargetManager/DomainDataManager.cpp:
+ * DAnCE/TargetManager/TargetManagerExt.idl:
+ * DAnCE/TargetManager/TargetManagerImpl.idl:
+ * DAnCE/TargetManager/TargetManager_exec.h:
+ * DAnCE/TargetManager/TargetManager_exec.cpp:
+
+ Added some comments to decrease doxygen warnings;Changed
+ ACE_DEBUG in many places to ACE_ERROR;Removed a lot of unwanted
+ debug messages
+
+ Fri Jan 12 22:04:14 UTC 2007 Nilabja R <nilabjar@dre.vanderbilt.edu>
+
+ * DAnCE/TargetManager/CmpClient.cpp:
+ * DAnCE/TargetManager/DomainDataManager.h:
+ * DAnCE/TargetManager/DomainDataManager.cpp:
+ * DAnCE/TargetManager/TargetManager_exec.cpp:
+
+ * DAnCE/TargetManager/descriptors/run_test_TargetManager.pl:
+
+ * ciao/Deployment_TargetManager.idl:
+ Changed to address Johnny's comments
+
+ Thu Dec 28 22:59:45 UTC 2006 Nilabja R <nilabjar@dre.vanderbilt.edu>
+
+ * DAnCE/TargetManager/CmpClient.cpp:
+ * DAnCE/TargetManager/DomainDataManager.h:
+ * DAnCE/TargetManager/DomainDataManager.cpp:
+ * DAnCE/TargetManager/TargetManager_exec.h:
+ * DAnCE/TargetManager/TargetManager_exec.cpp:
+
+ * ciao/Deployment_ResourceCommitmentManager.idl:
+ * ciao/Deployment_TargetManager.idl:
+ Modified defination to ResourceCommitmentManager
+
+ Wed Dec 27 19:59:32 UTC 2006 Nilabja R <nilabjar@dre.vanderbilt.edu>
+
+ * DAnCE/TargetManager/CmpClient.cpp:
+ * DAnCE/TargetManager/DomainDataManager.h:
+ * DAnCE/TargetManager/DomainDataManager.cpp:
+ * DAnCE/TargetManager/TargetManager.mpc:
+ * DAnCE/TargetManager/TargetManager_exec.h:
+ * DAnCE/TargetManager/TargetManager_exec.cpp:
+
+ * ciao/CCM_Core.mpc:
+ * ciao/Deployment_ResourceCommitmentManager.idl:
+ * ciao/Deployment_TargetManager.idl:
+ Changes made to accomodate the ResourceCommitmentManager
+
+ Tue Dec 5 17:44:49 UTC 2006 Nilabja R <nilabjar@dre.vanderbilt.edu>
+
+ * ciao/Deployment_TargetManager.idl:
+ Deleted some extraneous comments
+
+ Tue Dec 5 06:29:22 UTC 2006 Nilabja R <nilabjar@dre.vanderbilt.edu>
+
+ * DAnCE/TargetManager/CmpClient.cpp:
+
+ * ciao/CCM_Core.mpc:
+ * ciao/Deployment_ResourceCommitmentManager.idl:
+ * ciao/Deployment_TargetManager.idl:
+ Added in order to introduce ResourceCommitmenManager
+ to TargetManager
+
+Thu Feb 8 18:35:51 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIDLC/Literals.cpp:
+ * CIDLC/Literals.hpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+ Don't generate ACE_THROW_RETURN but just throw
+
+Wed Feb 7 23:48:51 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * DAnCE/RepositoryManager/RepositoryManager.cpp:
+
+ Removed an 'ex' identifier in a catch block that is
+ no longer referenced.
+
+Wed Feb 7 23:22:08 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * ciao/Context_Impl_T.h:
+ * ciao/Upgradeable_Context_Impl_T.h:
+ * ciao/Context_Impl_T.cpp:
+ * ciao/Upgradeable_Context_Impl_T.cpp:
+
+ - Replaced a class template parameter in both
+ Context_Impl and Upgradeable_Context_Impl with
+ a trait in the class body. This change was
+ evidently overlooked when similar changes were
+ made to Servant_Impl and Home_Servant_Impl
+ pursuant to dropping support for Visual Studio 6.
+
+ - In Upgradeable_Context_Impl, removed class members
+ already present in the base class Context_Impl.
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ - Made changes to the generated context class corresponding
+ to the changes above.
+
+ - Added code generation to check for a nil event
+ consumer before a push call is made on it by
+ an emits port. The event consumer would be nil
+ if a connection had not yet been made. Thanks
+ to James Hill <hillj@isis.vanderbilt.edu> for
+ reporting the problem.
+
+Fri Feb 2 15:09:14 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Container_Base.cpp:
+ * ciao/Context_Impl_Base.cpp:
+ * ciao/Context_Impl_T.cpp:
+ * ciao/Home_Servant_Impl_Base.cpp:
+ * ciao/Home_Servant_Impl_T.cpp:
+ * ciao/Port_Activator_T.cpp:
+ * ciao/Servant_Activator.cpp:
+ * ciao/Servant_Impl_Base.cpp:
+ * ciao/Servant_Impl_T.cpp:
+ * ciao/Swapping_Servant_Home_Impl_Base.cpp:
+ * ciao/Swapping_Servant_Home_Impl_T.cpp:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ * DAnCE/NodeApplication/Container_Impl.cpp:
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * DAnCE/NodeApplication/RTConfig_Manager.cpp:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp:
+ * docs/templates/CIAO_Glue_Session_Template.cpp:
+ * docs/templates/CIAO_Glue_Session_Template.inl:
+ * docs/tutorials/Quoter/Simple/Distributor/Distributor_exec.cpp:
+ Replaced ACE_THROW_RETURN with throw
+
+Fri Feb 2 13:28:14 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client.cpp:
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_dynamic.cpp:
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_ex.cpp:
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_simple.cpp:
+ * examples/BasicSP/EC/client.cpp:
+ * performance-tests/Benchmark/RoundTripServer/server.cpp:
+ * performance-tests/Benchmark/server.cpp:
+ * performance-tests/Protocols/Controller/Controller.cpp:
+ * RACE/Input_Adapters/LocationUpdater/Injector.cpp:
+ * RACE/Input_Adapters/PlanGenerator/Injector.cpp:
+ * tests/IDL3/Events/Any/main.cpp:
+ * tools/Config_Handlers/Package_Handlers/test.cpp:
+ * tools/Config_Handlers/RT-CCM/test.cpp:
+ * tools/Config_Handlers/test.cpp:
+ No need anymore to pass an empty string as orbname
+
+Fri Feb 2 11:48:34 UTC 2007 Simon McQueen <sm@prismtech.com>
+
+ * tests/IDL3/Components/SimpleComponent/SimpleComponent.idl:
+
+ Add regression testing for bug #2790.
+
+Wed Jan 31 15:44:14 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Plan_Generator/PCVisitor.cpp:
+ * DAnCE/Plan_Generator/Plan_Generator_Impl.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp:
+ * DAnCE/tests/NodeApplicationTest/RoundTrip_exec.h:
+ * RACE/Controller/Component/Controller_exec.cpp:
+ * RACE/Controller/Component/Controller_exec.h:
+
+Wed Jan 31 15:03:14 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/ExecutionManager/DAM_Map.{h,cpp}:
+ * DAnCE/ExecutionManager/Execution_Manager.cpp
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.{h,cpp}:
+ Const changes, layout improvements
+
+Tue Jan 30 20:49:50 UTC 2007 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Package_Handlers/CPD_Handler.cpp
+ * tools/Config_Handlers/Package_Handlers/CAD_Handler.cpp:
+
+ Compile fixes for FC6.
+
+Tue Jan 30 20:43:14 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/DomainApplicationManager/Deployment_Configuration.cpp:
+ Changed the check for the bind, with -1 return an error, with
+ 1 report a debug message of the reuse, else a normal debug.
+ Thanks to Sandro Andrade <sandro dot andrade at gmail dot com>
+ for reporting that ReDAC was broken.
+
+Tue Jan 30 11:27:14 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Server_init.{h,cpp}:
+ Change argument of BindObjectPath to a _ptr. Fixes bugzilla
+ 2779. Thanks to Abdullah Sowayan <abdullah.sowayan@lmco.com>
+ for reporting this.
+
+Mon Jan 29 19:23:14 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Swapping_Servant_Home_Impl_Base.{h,cpp}:
+ * ciao/Upgradeable_Context_Impl_T.cpp:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ Layout changes
+
+ * DAnCE/DomainApplicationManager/Deployment_Configuration.cpp:
+ Fixed parsing of node manager file
+
+ * examples/BasicSP/descriptors/run_test.pl:
+ New script to run this example automatically
+
+ * exampls/BasicSP/README.html:
+ Fixed incorrect path and mpc generation command
+
+Sun Jan 28 19:59:14 2007 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CIAO version 0.5.6 released.
+
+Thu Jan 25 18:18:58 UTC 2007 Chad Elliott <elliott_c@ociweb.com>
+
+ * *.{h,cpp,inl}:
+
+ Removed the majority of the ACE exception macros. The
+ ACE_THROW_RETURN's were left in to avoid warnings from aCC.
+
+Wed Jan 24 13:00:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * *.{h,cpp,inl}:
+ Removed part of the environment macros
+
+Mon Jan 22 23:14:56 2007 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CIAO version 0.5.5 released.
+
+
+Local Variables:
+mode: change-log
+add-log-time-format: (lambda () (progn (setq tz (getenv "TZ")) (set-time-zone-rule "UTC") (setq time (format-time-string "%a %b %e %H:%M:%S %Z %Y" (current-time))) (set-time-zone-rule tz) time))
+indent-tabs-mode: nil
+End:
diff --git a/modules/CIAO/ChangeLogs/ChangeLog-09a b/modules/CIAO/ChangeLogs/ChangeLog-09a
new file mode 100644
index 00000000000..2ac01dcc17a
--- /dev/null
+++ b/modules/CIAO/ChangeLogs/ChangeLog-09a
@@ -0,0 +1,15360 @@
+Mon Oct 12 14:03:48 CDT 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIAO version 0.7.4 released.
+
+Mon Oct 12 18:44:56 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * NEWS:
+
+ Further describe -Glem changes.
+
+Fri Oct 9 09:24:08 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp:
+ * connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp:
+ Don't print expected exceptions; otherwise the scoreboard will be
+ confused.
+
+ * connectors/ami4ccm/examples/Hello/descriptors/run_test.pl:
+ Wait 90 sec instead of 60 sec to compleet this example.
+
+Fri Oct 9 06:47:29 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Quoter/descriptors/USER_QOS_PROFILES.xml:
+ QoS profile file for this example
+
+Thu Oct 8 13:02:29 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/ami4ccm/docs/AMI4CCM-spec.odt:
+ Described the use of IDL3+.
+
+Thu Oct 8 12:32:38 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/ami4ccm/docs/AMI4CCM-spec.odt:
+ Update example to meet the spec.
+
+Thu Oct 8 11:06:29 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/ami4ccm/docs/AMI4CCM-spec.odt:
+ Extended the component section.
+
+Thu Oct 8 08:31:25 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/ami4ccm/docs/AMI4CCM-spec.odt:
+ Some minor updates.
+
+Wed Oct 7 15:15:20 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * NEWS:
+
+ Update.
+
+Wed Oct 7 14:41:09 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/IDL_Test/Inherited_Component/IhC_Bar.idl
+ Added missing include
+
+Wed Oct 7 14:09:09 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/ami4ccm/examples/Hello/AMI/AMI_MyFoo_i.cpp:
+ * connectors/ami4ccm/examples/Hello/AMI/AMI_exec.h:
+ * connectors/ami4ccm/examples/Hello/AMI/AMI_exec.cpp:
+ Got rid of ior file between CORBA server and client.
+
+Wed Oct 7 13:33:44 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.cpp
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.h
+ Refactored the connector into a template
+
+Wed Oct 7 13:33:47 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/ami4ccm/examples/Hello/AMI/AMI.idl:
+ * connectors/ami4ccm/examples/Hello/AMI/AMI_MyFoo_i.h:
+ * connectors/ami4ccm/examples/Hello/AMI/AMI_MyFoo_i.cpp:
+ * connectors/ami4ccm/examples/Hello/AMI/AMI_exec.h:
+ * connectors/ami4ccm/examples/Hello/AMI/AMI_exec.cpp:
+ * connectors/ami4ccm/examples/Hello/Hello_Base/Hello_Base.idl:
+ * connectors/ami4ccm/examples/Hello/Sender/Hello_Sender.idl:
+ * connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.h:
+ * connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp:
+ * connectors/ami4ccm/examples/Hello/descriptors/Plan.cdp:
+ Renamed module interface of Hello_Base and AMI.
+
+Wed Oct 7 13:15:22 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/ami4ccm/examples/Hello/AMI/AMI.idl:
+ * connectors/ami4ccm/examples/Hello/AMI/AMI_MyFoo_i.h:
+ * connectors/ami4ccm/examples/Hello/AMI/AMI_MyFoo_i.cpp:
+ * connectors/ami4ccm/examples/Hello/AMI/AMI_exec.h:
+ * connectors/ami4ccm/examples/Hello/AMI/AMI_exec.cpp:
+ * connectors/ami4ccm/examples/Hello/Hello_Base/Hello.idl:
+ * connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver.idl:
+ * connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver_exec.h:
+ * connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp:
+ * connectors/ami4ccm/examples/Hello/Sender/Hello_Sender.idl:
+ * connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.h:
+ * connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp:
+ Changed name of module CCM_AMI into Hello.
+
+Wed Oct 7 12:42:58 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/ami4ccm/examples/Hello/AMI/AMI.idl:
+ * connectors/ami4ccm/examples/Hello/AMI/AMI.mpc:
+ * connectors/ami4ccm/examples/Hello/AMI/AMI_exec.h:
+ * connectors/ami4ccm/examples/Hello/AMI/AMI_exec.cpp:
+ * connectors/ami4ccm/examples/Hello/Hello_Base/Hello.idl:
+ * connectors/ami4ccm/examples/Hello/Hello_Base/Hello_Base.idl:
+ * connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver.idl:
+ * connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver_exec.h:
+ * connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp:
+ * connectors/ami4ccm/examples/Hello/Sender/Hello_Sender.idl:
+ * connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.h:
+ * connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp:
+ * connectors/ami4ccm/examples/Hello/descriptors/Plan.cdp:
+ Removed interface MyInterface in order to focus on the MyFoo.
+
+ * connectors/ami4ccm/examples/Hello/AMI/AMI_MyInterface_i.h:
+ * connectors/ami4ccm/examples/Hello/AMI/AMI_MyInterface_i.cpp:
+ Removed these files.
+
+Tue Oct 6 21:52:02 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/Null_Component/Null_Component.mpc:
+
+ Fixed build order bug.
+
+Tue Oct 6 12:30:44 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/IDL_Test/PIDL_Include/PIDLInclude.mpc:
+ Enabled these projects
+
+Tue Oct 6 12:29:30 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/idl/dds4ccm_Base.idl3:
+ * connectors/dds4ccm/idl/dds4ccm_ConnectorStatusListener.idl3:
+ * connectors/dds4ccm/idl/dds4ccm_ListenerControl.idl3:
+ * connectors/dds4ccm/idl/dds4ccm_PortStatusListener.idl3:
+ * connectors/dds4ccm/idl/dds4ccm_Writer.idl3p:
+ * connectors/dds4ccm/impl/ndds/DataReaderListener_T.cpp:
+ Resolved fuzz errors.
+
+Tue Oct 6 11:26:51 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Quoter/Broker/Broker_exec.cpp:
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.cpp:
+ * connectors/dds4ccm/idl/dds4ccm_Connector_Base.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Connector_Event.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Connector_State.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Getter.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_MultiListener.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_MultiUpdater.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_MultiWriter.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_Get.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_MultiListen.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_MultiUpdate.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_MultiWrite.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_RawListen.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_Read.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_StateListen.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_Update.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_Write.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_RawListener.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Reader.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_StateListener.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Updater.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Writer.idl3p:
+ Resolved some more fuzz errors.
+
+Tue Oct 6 10:53:44 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.cpp
+ * connectors/dds4ccm/impl/ndds/DataReaderListener_T.cpp
+ * connectors/dds4ccm/impl/ndds/DataReaderListener_T.h
+ Moved listener into a template
+
+Tue Oct 6 10:16:16 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/ami4ccm/examples/Hello/Hello_Base/Hello_Base.mpc:
+ AMI_Hello_lem_gen shouldn't be derived from ami. This would
+ result in unnecessary sendc methods in the Receiver.
+
+ * connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver.mpc:
+ None of the projects shouldn't be derived from AMI.
+
+ * connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver_exec.h:
+ Cleanup unnecessary sendc methods.
+
+Tue Oct 6 09:34:44 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Quoter/Base/Quoter_Base.idl
+ * connectors/dds4ccm/examples/Quoter/Base/Quoter_Base.mpc
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.idl3
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.cpp
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.h
+ * connectors/dds4ccm/impl/ndds/Writer.tpp
+ Added a Stock_Info_Seq as corba sequence for the reader
+
+Tue Oct 6 09:30:27 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.idl3p:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.idl3p:
+ * connectors/dds4ccm/examples/Quoter/Broker/Broker.idl3p:
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.idl3p:
+ * connectors/dds4ccm/examples/Quoter/Distributor/Distributor.idl3p:
+ * connectors/dds4ccm/id3p_test/Multiple_Reader_Ports/test.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Connector_Base.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Connector_Event.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Connector_State.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Getter.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_MultiListener.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_MultiUpdater.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_MultiWriter.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_Get.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_MultiListen.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_MultiUpdate.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_MultiWrite.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_RawListen.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_Read.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_StateListen.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_Update.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_Write.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_RawListener.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Reader.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_StateListener.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Updater.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Writer.idl3p:
+ Resolve fuzz errors.
+
+Tue Oct 6 09:03:55 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/ami4ccm/examples/Hello/descriptors/run_test.pl:
+ Converted to the new test framework
+
+Tue Oct 6 08:37:44 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/Reader_T.{h,cpp}:
+ First version of the reader as template
+
+Tue Oct 6 07:48:47 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * bin/ciao_tests.lst:
+ Enabled some tests for ce/labview/fuzz
+
+ * connectors/dds4ccm/examples/Quoter/Broker/Broker.idl3:
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.idl3:
+ * connectors/dds4ccm/examples/Quoter/Distributor/Distributor.idl3:
+ * connectors/dds4ccm/idl/dds4ccm_Base.idl3:
+ * connectors/dds4ccm/idl/dds4ccm_ConnectorStatusListener.idl3:
+ * connectors/dds4ccm/idl/dds4ccm_ListenerControl.idl3:
+ * connectors/dds4ccm/idl/dds4ccm_PortStatusListener.idl3:
+ Resolved some fuzz errors.
+
+ * tests/CIAO_ComponentServer/SimpleComponent/run_test.pl:
+ Converted to the new test framework
+
+Tue Oct 6 07:40:44 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/descriptors/1_to_5.cdp
+ * connectors/dds4ccm/examples/Hello/descriptors/5_Receivers.cdp
+ * connectors/dds4ccm/examples/Hello/descriptors/5_Senders.cdp
+ * connectors/dds4ccm/examples/Hello/descriptors/5_to_1.cdp
+ * connectors/dds4ccm/examples/Hello/descriptors/DeploymentPlan.cdp
+ * connectors/dds4ccm/examples/Hello/descriptors/ReceiverOnly.cdp
+ * connectors/dds4ccm/examples/Hello/descriptors/SenderOnly.cdp
+ * connectors/dds4ccm/examples/Quoter/Broker/Broker_exec.cpp
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.cpp
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.h
+ * connectors/dds4ccm/examples/Quoter/descriptors/Plan.cdp
+ * connectors/dds4ccm/impl/ndds/ListenerControl.cpp
+ * connectors/dds4ccm/impl/ndds/ListenerControl.h
+ * connectors/dds4ccm/impl/ndds/ndds_impl.mpc
+ Implemented more functionality
+
+Tue Oct 6 07:06:28 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * bin/ciao_tests.lst:
+ Enabled some tests for ce/labview/fuzz
+
+ * tests/CIAO_ComponentServer/Activator/run_test.pl:
+ * tests/CIAO_ComponentServer/Basic/run_test.pl:
+ Converted to the new test framework
+
+ * examples/DevGuideExamples/Messenger/Messenger.mpc:
+ Resolved compiler errors.
+
+Mon Oct 5 19:35:41 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Quoter/Distributor/controller.cpp:
+ Removed this file because it was empty and was generating
+ fuzz errors.
+
+Mon Oct 5 19:28:44 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.cpp:
+ Corrected type registration
+
+Mon Oct 5 19:14:44 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.cpp:
+ Register the type with rti dds
+
+ * connectors/dds4ccm/impl/ndds/DomainParticipant.cpp:
+ Layout change
+
+Mon Oct 5 18:47:44 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.mpc:
+ Updated build order and use -Glem
+
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_ConnectorE.idl:
+ Removed from the repository
+
+Mon Oct 5 18:36:44 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/descriptors/1_to_5.cdp
+ * connectors/dds4ccm/examples/Hello/descriptors/5_Receivers.cdp
+ * connectors/dds4ccm/examples/Hello/descriptors/5_Senders.cdp
+ * connectors/dds4ccm/examples/Hello/descriptors/5_to_1.cdp
+ * connectors/dds4ccm/examples/Hello/descriptors/DeploymentPlan.cdp
+ * connectors/dds4ccm/examples/Hello/descriptors/ReceiverOnly.cdp
+ * connectors/dds4ccm/examples/Hello/descriptors/SenderOnly.cdp
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector_exec.h
+ * connectors/dds4ccm/examples/Quoter/Base/Quoter_Base.mpc
+ * connectors/dds4ccm/examples/Quoter/Broker/Broker.idl3
+ * connectors/dds4ccm/examples/Quoter/Broker/Broker.mpc
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.idl3
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.mpc
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_ConnectorE.idl
+ * connectors/dds4ccm/examples/Quoter/descriptors/Plan.cdp
+ * connectors/dds4ccm/examples/Quoter/Distributor/Distributor.idl3
+ * connectors/dds4ccm/examples/Quoter/Distributor/Distributor.mpc
+ * connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.cpp
+ * connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.h
+ * connectors/dds4ccm/idl/dds4ccm.mpc
+ * connectors/dds4ccm/impl/ndds/Writer.h
+ Enabled the quoter example.
+
+ * connectors/dds4ccm/impl/ndds/Builtin_Writer.h
+ * connectors/dds4ccm/impl/ndds/Builtin_Writer.tpp
+ New template for builtin types, will rework in the future, but by using
+ this one we don't have to rewrite the hello world example at this
+ moment
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_ConnectorE.idl
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_ConnectorE.idl
+ Removed, are generate now as part of the regular build
+
+Mon Oct 5 16:36:33 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tests/IDL3/ImpliedIDL/All/all.mpc:
+
+ Fixed dependency problems, and added include.idl to
+ IDL_Files block, since its include is now passed
+ through unchanged automatically, even though include_IDL2.idl
+ is still generated.
+
+Mon Oct 5 13:24:28 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Quoter/Base/Quoter_Base.idl:
+ * connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.h:
+ * connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.cpp:
+ * connectors/dds4ccm/examples/Quoter/Distributor/controller.cpp:
+ Resolved fuzz errors.
+
+Mon Oct 5 11:40:44 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm
+ * connectors/dds4ccm/docs
+ * connectors/dds4ccm/examples/Hello/Base
+ * connectors/dds4ccm/examples/Hello/Base/Hello_Base.idl
+ * connectors/dds4ccm/examples/Hello/Base/Hello_Base.mpc
+ * connectors/dds4ccm/examples/Hello/descriptors/1_to_5.cdp
+ * connectors/dds4ccm/examples/Hello/descriptors/5_Receivers.cdp
+ * connectors/dds4ccm/examples/Hello/descriptors/5_Senders.cdp
+ * connectors/dds4ccm/examples/Hello/descriptors/5_to_1.cdp
+ * connectors/dds4ccm/examples/Hello/descriptors/DeploymentPlan.cdp
+ * connectors/dds4ccm/examples/Hello/descriptors/ReceiverOnly.cdp
+ * connectors/dds4ccm/examples/Hello/descriptors/SenderOnly.cdp
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector_exec.cpp
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector_exec.h
+ * connectors/dds4ccm/examples/Quoter
+ * connectors/dds4ccm/examples/Quoter/Base
+ * connectors/dds4ccm/examples/Quoter/Base/Quoter_Base.idl
+ * connectors/dds4ccm/examples/Quoter/Base/Quoter_Base.mpc
+ * connectors/dds4ccm/examples/Quoter/Broker
+ * connectors/dds4ccm/examples/Quoter/Broker/Broker.idl3
+ * connectors/dds4ccm/examples/Quoter/Broker/Broker.idl3p
+ * connectors/dds4ccm/examples/Quoter/Broker/Broker.mpc
+ * connectors/dds4ccm/examples/Quoter/Broker/Broker_exec.cpp
+ * connectors/dds4ccm/examples/Quoter/Broker/Broker_exec.h
+ * connectors/dds4ccm/examples/Quoter/Connector
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.idl3
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.idl3p
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.mpc
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.cpp
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.h
+ * connectors/dds4ccm/examples/Quoter/Connector/Quoter_ConnectorE.idl
+ * connectors/dds4ccm/examples/Quoter/descriptors
+ * connectors/dds4ccm/examples/Quoter/descriptors/run_test.pl
+ * connectors/dds4ccm/examples/Quoter/Distributor
+ * connectors/dds4ccm/examples/Quoter/Distributor/controller.cpp
+ * connectors/dds4ccm/examples/Quoter/Distributor/Distributor.idl3
+ * connectors/dds4ccm/examples/Quoter/Distributor/Distributor.idl3p
+ * connectors/dds4ccm/examples/Quoter/Distributor/Distributor.mpc
+ * connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.cpp
+ * connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.h
+ * connectors/dds4ccm/idl/dds4ccm.mpc
+ * connectors/dds4ccm/idl/dds4ccm_Port_RawListen.idl3p
+ * connectors/dds4ccm/impl/ndds/NDDS_Traits.h
+ * connectors/dds4ccm/impl/ndds/Writer.h
+ * connectors/dds4ccm/impl/ndds/Writer.tpp
+ Integrated the second proto from the ddsports branch. This is disabled
+ in the mpc files right now, but the branch wasn't usable because of all
+ lem changes in tao_idl. By merging this to head now we have a stable
+ base to tweak this proto
+
+Mon Oct 5 09:50:44 UTC 2009 Marijke Hengstmengel <mhengstmengel@remedy.nl>
+
+ * docs/tutorials/Quoter/Simple/descriptors/NodeMap.dat:
+ Changed svn properties. Added svn eol-property.
+
+Sun Oct 4 17:36:44 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/IDL3_to_IDL2/checking_visitor.h:
+ * tools/IDL3_to_IDL2/checking_visitor.cpp:
+
+ Fixed FC_8 build errors/warnings.
+
+Fri Oct 2 18:32:21 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/IDL3_to_IDL2/checking_visitor.h:
+ * tools/IDL3_to_IDL2/be_global.cpp:
+ * tools/IDL3_to_IDL2/be_produce.cpp:
+ * tools/IDL3_to_IDL2/be_global.h:
+ * tools/IDL3_to_IDL2/checking_visitor.cpp:
+
+ Replaced the -x <filename> option, which manually
+ excluded an IDL file include from getting its processed
+ name decorated with '_IDL2', with a mechanims that
+ detects automatically which included IDL files have
+ no IDL3 constructs, and skips mangling their processed
+ included name accordingly.
+
+ * tests/IDL3/ImpliedIDL/All/all.mpc:
+ * tests/IDL3/ImpliedIDL/All/pass_through.idl:
+
+ Minor changes to this test of idl3_to_idl2.
+
+ * tools/IDL3_to_IDL2/README:
+ * docs/releasenotes/index.html:
+
+ Updated documentation.
+
+Fri Oct 2 18:30:12 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.mpc:
+ * examples/DevGuideExamples/Messenger/Messenger.mpc:
+
+ Fixed some dependency problems.
+
+Fri Oct 2 14:01:59 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/ami4ccm/docs/AMI4CCM-spec.odt:
+ Update working document.
+
+Fri Oct 2 09:08:34 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/ami4ccm/examples/Hello/AMI/AMI.mpc
+ * connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver.mpc
+ * connectors/ami4ccm/examples/Hello/Sender/Hello_Sender.mpc
+ Fix build orders and missing libraries
+
+Fri Oct 2 08:36:22 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Base.idl:
+ * performance-tests/Protocols/common/Protocols.idl:
+ * tests/IDL_Test/Included_Component/IC_Foo.idl:
+ Resolved some fuzz errors/warnings.
+
+Fri Oct 2 08:22:34 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/ami4ccm/examples/Hello/Hello_Base/Hello_Base.mpc
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.mpc
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector.mpc
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Base.mpc
+ * examples/Hello/Sender/Sender.mpc
+ Fix build orders and missing libraries
+
+Fri Oct 2 07:06:34 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/tests/CIAO/Components/SimpleNilFacetProvider.mpc:
+ Fixed build order
+
+Fri Oct 2 02:05:34 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * performance-tests/Benchmark/Benchmark.mpc:
+ * performance-tests/Benchmark/BenchmarkE.idl:
+ * performance-tests/Benchmark/Benchmark_skel_export.h:
+ * performance-tests/Benchmark/Benchmark_stub_export.h:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip.idl:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip.mpc:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient.idl:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient.mpc:
+ * performance-tests/Protocols/Receiver/Receiver.idl:
+ * performance-tests/Protocols/Receiver/Receiver.mpc:
+ * performance-tests/Protocols/common/Protocols.idl:
+ * performance-tests/Protocols/common/Protocols.mpc:
+ * tests/CIDL/CodeGen/Basic.mpc:
+ * tests/CIDL/CodeGen/CodeGen.idl:
+ * tests/CIDL/CodeGen/CodeGen.mpc:
+ * tests/IDL_Test/Included_Component/IC_Bar.idl:
+ * tests/IDL_Test/Included_Component/IC_Foo.idl:
+ * tests/IDL_Test/Reused_Facet_Interface/Basic.mpc:
+ * tests/IDL_Test/Reused_Facet_Interface/CodeGen.idl:
+ * tests/IDL_Test/Reused_Facet_Interface/Reused_Facet_Interface.mpc:
+
+ Additional -Glem changes.
+
+Thu Oct 1 20:15:35 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.idl:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.mpc:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Base.idl:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Base.mpc:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector.idl:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector.mpc:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_ConnectorE.idl:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Base.mpc:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector.idl:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector.mpc:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_ConnectorE.idl:
+ * connectors/dds4ccm/idl/dds4ccm.mpc:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor.idl:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor.mpc:
+ * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.mpc:
+ * examples/BasicSP/BMClosedED/BMClosedED.idl:
+ * examples/BasicSP/BMClosedED/BMClosedED.mpc:
+ * examples/BasicSP/BMDevice/BMDevice.idl:
+ * examples/BasicSP/BMDevice/BMDevice.mpc:
+ * examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.mpc:
+ * examples/DevGuideExamples/Messenger/Messenger.idl:
+ * examples/DevGuideExamples/Messenger/Messenger.mpc:
+ * examples/Display/Display_Base/Display_Base.mpc:
+ * examples/Display/GPS/GPS.idl:
+ * examples/Display/GPS/GPS.mpc:
+ * examples/Hello/Hello_Base/Hello_Base.mpc:
+ * examples/Hello/Sender/Sender.idl:
+ * examples/Hello/Sender/Sender.mpc:
+ * examples/Null_Component/Null_Component.idl:
+ * examples/Null_Component/Null_Component.mpc:
+ * examples/Null_Component/Null_Interface.mpc:
+
+ -Glem changes.
+
+Thu Oct 1 20:14:03 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * examples/Swapping:
+
+ Removed, this functionality isn't in CIAO anymore.
+
+Thu Oct 1 19:17:02 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * DAnCE/tests/CIAO/Components/SimpleCommon.mpc:
+
+ Fixed export macro/include in *_lem_gen project.
+
+Thu Oct 1 18:48:45 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/ami4ccm/examples/Hello/AMI/AMI.idl:
+ * connectors/ami4ccm/examples/Hello/AMI/AMI_MyFoo_i.h:
+ * connectors/ami4ccm/examples/Hello/AMI/AMI_MyFoo_i.cpp:
+ * connectors/ami4ccm/examples/Hello/AMI/AMI_MyInterface_i.h:
+ * connectors/ami4ccm/examples/Hello/AMI/AMI_MyInterface_i.cpp:
+ * connectors/ami4ccm/examples/Hello/AMI/AMI_exec.h:
+ * connectors/ami4ccm/examples/Hello/AMI/AMI_exec.cpp:
+ * connectors/ami4ccm/examples/Hello/Hello_Base/Hello.idl:
+ * connectors/ami4ccm/examples/Hello/Hello_Base/Hello_Base.idl:
+ * connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver_exec.h:
+ * connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp:
+ * connectors/ami4ccm/examples/Hello/Sender/Hello_Sender.idl:
+ * connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.h:
+ * connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp:
+ Fixed some compiler and fuzz errors. Also added attribute handling.
+
+ * connectors/ami4ccm/examples/Hello/descriptors/run_test.pl:
+ Changed time out to 40 sec.
+
+Thu Oct 1 14:52:07 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * connectors/ami4ccm/examples/Hello/AMI/AMI.idl:
+ * connectors/ami4ccm/examples/Hello/AMI/AMI.mpc:
+ * connectors/ami4ccm/examples/Hello/Hello_Base/Hello.idl:
+ * connectors/ami4ccm/examples/Hello/Hello_Base/Hello_Base.idl:
+ * connectors/ami4ccm/examples/Hello/Hello_Base/Hello_Base.mpc:
+ * connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver.idl:
+ * connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver.mpc:
+ * connectors/ami4ccm/examples/Hello/Sender/Hello_Sender.idl:
+ * connectors/ami4ccm/examples/Hello/Sender/Hello_Sender.mpc:
+
+ New -Glem behavior.
+
+Thu Oct 1 14:32:08 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/tests/CIAO/Components/SimpleCommon.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleNilFacetProvider.idl:
+ * DAnCE/tests/CIAO/Components/SimpleNilFacetProvider.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleProvider.idl:
+ * DAnCE/tests/CIAO/Components/SimpleProvider.mpc:
+
+ New -Glem behavior.
+
+Thu Oct 1 11:38:42 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/CIDL/CodeGen/CodeGen.mpc
+ * tests/IDL_Test/Reused_Facet_Interface/Reused_Facet_Interface.mpc
+ Fixed lem generation using -Glfa
+
+Thu Oct 1 11:28:42 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/ami4ccm/examples/Hello/AMI/AMI.mpc:
+ * connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver.mpc:
+ * connectors/ami4ccm/examples/Hello/Sender/Hello_Sender.mpc:
+ Fixed lem generation using -Glfa
+
+Thu Oct 1 10:14:42 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/tests/CIAO/Components/SimpleCommon.mpc
+ * DAnCE/tests/CIAO/Components/SimpleNilFacetProvider.mpc
+ * DAnCE/tests/CIAO/Components/SimpleProvider.mpc
+ Fixed to use the new -Glfa and -Glem behaviour
+
+Tue Sep 29 14:37:17 UTC 2009 Vladimir Zykov <vz@prismtech.com>
+
+ * tools/IDL3_to_XMI/IDL3_to_XMI_visitor.h:
+ * tools/IDL3_to_XMI/IDL3_to_XMI_visitor.cpp:
+ * tests/IDL3_to_XMI/XMI_For_Module_Reopen/run_test.pl:
+
+ Provided a correct fix for XMI generation for module reopening.
+ Fixed similar code for interface/valuetype/eventtype/struct/
+ exception/union forward declarations. Extended a test for module
+ reopening.
+
+Tue Sep 29 11:57:42 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/tests/CIAO/Components/SimpleCommon.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleNilFacetProvider.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleProvider.mpc:
+ Build order fixes
+
+Tue Sep 29 11:49:42 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/tests/CIAO/Components/SimpleCommon.mpc:
+ * examples/BasicSP/BMDevice/BMDevice.mpc:
+ * examples/Display/Display_Base/Display_Base.mpc:
+ * examples/Hello/Hello_Base/Hello_Base.mpc:
+ * examples/Null_Component/Null_Interface.mpc:
+ * examples/Swapping/Hello_Base/Hello_Base.mpc:
+ * performance-tests/Protocols/common/Protocols.mpc:
+ * tests/CIDL/CodeGen/Basic.mpc:
+ Removed duplicated base projects
+
+Tue Sep 29 11:36:42 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * docs/Connectors.graffle:
+ * docs/OMG-CCM-Tutorial.ppt:
+ Added new sheets for IDL3+, Connector, DDS4CCM, and AMI4CCM
+
+Mon Sep 28 18:21:42 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/IDL3_to_IDL2/basic_visitor.cpp:
+
+ Cosmetic changes.
+
+ * DAnCE/tests/CIAO/Components/SimpleProvider.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleNilFacetProvider.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleCommon.mpc:
+ * connectors/ami4ccm/examples/Hello/AMI/AMI.mpc:
+ * examples/Hello/Sender/Sender.mpc:
+ * examples/Hello/Receiver/Receiver.mpc:
+ * examples/Hello/Hello_Base/Hello_Base.mpc:
+ * examples/BasicSP/BMClosedED/BMClosedED.mpc:
+ * examples/BasicSP/BasicSP.mpc:
+ * examples/BasicSP/BMDisplay/BMDisplay.mpc:
+ * examples/BasicSP/EC/EC.mpc:
+ * examples/BasicSP/BMDevice/BMDevice.mpc:
+ * examples/DevGuideExamples/Messenger/Messenger.mpc:
+
+ Config changes.
+
+Mon Sep 28 11:25:43 UTC 2009 Vladimir Zykov <vz@prismtech.com>
+
+ * tools/IDL3_to_XMI/Literals.cpp:
+
+ Added missing comma between CORBAany and CORBAnative literals.
+
+ * tests/IDL3_to_XMI/XMI_For_Native/test.idl:
+ * tests/IDL3_to_XMI/XMI_For_Native/run_test.pl:
+ * bin/ciao_tests.lst:
+
+ Added a test that checks for CORBAnative in XMI file.
+
+Mon Sep 28 06:19:36 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ Integrated idl3_plus branch
+
+ Thu Sep 24 17:35:36 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * DAnCE/tests/RedirectionServiceTest/RedirectionServiceTest.mpc:
+
+ Added separate IDL processing project.
+
+ * DAnCE/RepositoryManager/RepositoryManager.mpc:
+
+ Updated base project on IDL processing project, and
+ cosmetic changes.
+
+ * DAnCE/RepositoryManager/repository_manager_admin.cpp:
+
+ Commented out or removed unused args.
+
+ Wed Sep 23 21:50:44 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/IDL3_to_XMI/IR_Simulator_visitor.cpp:
+
+ Removed unused arg.
+
+ * performance-tests/Protocols/Sender/Sender.mpc:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient.mpc:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip.mpc:
+ * examples/Hello/Hello_Base/Hello_Base.mpc:
+ * examples/Display/Display_Base/Display_Base.mpc:
+ * examples/Display/GPS/GPS.mpc:
+ * examples/Swapping/Sender/Sender.mpc:
+ * examples/Swapping/Hello_Base/Hello_Base.mpc:
+ * examples/Null_Component/Null_Interface.mpc:
+
+ Fixed missing export header file generation and missing
+ dependency of *E.idl processing on *.idl processing.
+
+ Wed Sep 23 21:23:19 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tests/CIDL/CodeGen/Basic.mpc:
+
+ Added generation of export header files.
+
+ * tests/CIDL/CodeGen/CodeGen_exec_export.h:
+ * tests/CIDL/CodeGen/Basic_stub_export.h:
+ * tests/CIDL/CodeGen/CodeGen_svnt_export.h:
+ * tests/CIDL/CodeGen/Basic_skel_export.h:
+ * tests/CIDL/CodeGen/CodeGen_stub_export.h:
+
+ Removed these files, now generated.
+
+ Wed Sep 23 19:37:29 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/IDL3_to_XMI/IDL3_TO_XMI.mpc:
+
+ Removed unnecessary base project.
+
+ * tools/IDL3_to_XMI/IDL3_to_XMI_visitor.h:
+ * tools/IDL3_to_XMI/IR_Simulator_visitor.cpp:
+ * tools/IDL3_to_XMI/IDL3_to_XMI_visitor.cpp:
+ * tools/IDL3_to_XMI/IR_Simulator_visitor.h:
+
+ Updated visitors to reflect IDL3+ changes.
+
+ Tue Sep 22 22:17:57 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * DAnCE/tests/CIAO/Components/SimpleNull_exec_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter_svnt_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleProvider_stub_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser_stub_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleUser_svnt_export.h:
+ * DAnCE/tests/CIAO/Components/ProcessColocation_svnt_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleProvider_exec_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer_svnt_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleAttribute_svnt_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleCommon_stub_export.h:
+ * DAnCE/tests/CIAO/Components/SimplePublisher_stub_export.h:
+ * DAnCE/tests/CIAO/Components/SimplePublisher_exec_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter_stub_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleUser_stub_export.h:
+ * DAnCE/tests/CIAO/Components/ProcessColocation_stub_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter_exec_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleUser_exec_export.h:
+ * DAnCE/tests/CIAO/Components/ProcessColocation_exec_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleNull_svnt_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer_stub_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer_exec_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleAttribute_stub_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleProvider_svnt_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser_svnt_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleAttribute_exec_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleCommon_svnt_export.h:
+ * DAnCE/tests/CIAO/Components/SimplePublisher_svnt_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleNull_stub_export.h:
+
+ Removed these files, now generated.
+
+ * DAnCE/tests/CIAO/Components/SimpleCommon.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleProvider.mpc:
+
+ MPC project changes.
+
+ Tue Sep 22 21:45:42 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker_exec_export.h:
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker_svnt_export.h:
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker_stub_export.h:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor_svnt_export.h:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor_stub_export.h:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor_exec_export.h:
+ * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base_stub_export.h:
+ * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base_skel_export.h:
+
+ Removed these files, now generated.
+
+ * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.mpc:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor.mpc:
+
+ Config updates.
+
+ Tue Sep 22 21:22:48 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * performance-tests/Protocols/Sender/Sender_svnt_export.h:
+ * performance-tests/Protocols/Sender/Sender_stub_export.h:
+ * performance-tests/Protocols/Sender/Sender_exec_export.h:
+ * performance-tests/Protocols/Receiver/Receiver_exec_export.h:
+ * performance-tests/Protocols/Receiver/Receiver_svnt_export.h:
+ * performance-tests/Protocols/Receiver/Receiver_stub_export.h:
+ * performance-tests/Protocols/common/Protocols_stub_export.h:
+ * performance-tests/Protocols/common/Protocols_skel_export.h:
+
+ Removed these files, now generated.
+
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient.mpc:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip.mpc:
+ * performance-tests/Protocols/Receiver/Receiver.mpc:
+ * performance-tests/Protocols/common/Protocols.mpc:
+
+ Addition of -Glfa IDL compiler option where necessary.
+
+ Tue Sep 22 21:00:03 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/Hello/Hello_Base/Hello_Base_stub_export.h:
+ * examples/Hello/Hello_Base/Hello_Base_skel_export.h:
+ * examples/BasicSP/BasicSP_exec_export.h:
+ * examples/BasicSP/BMDisplay/BMDisplay_exec_export.h:
+ * examples/BasicSP/BMDisplay/BMDisplay_svnt_export.h:
+ * examples/BasicSP/BMDisplay/BMDisplay_stub_export.h:
+ * examples/BasicSP/EC/EC_exec_export.h:
+ * examples/BasicSP/EC/EC_svnt_export.h:
+ * examples/BasicSP/EC/EC_stub_export.h:
+ * examples/BasicSP/BMClosedED/BMClosedED_svnt_export.h:
+ * examples/BasicSP/BMClosedED/BMClosedED_stub_export.h:
+ * examples/BasicSP/BMClosedED/BMClosedED_exec_export.h:
+ * examples/BasicSP/BasicSP_exec.cpp:
+ * examples/BasicSP/BMDevice/BMDevice_svnt_export.h:
+ * examples/BasicSP/BMDevice/BMDevice_stub_export.h:
+ * examples/BasicSP/BMDevice/BMDevice_exec_export.h:
+ * examples/BasicSP/BasicSP_exec.h:
+ * examples/Display/Display_Base/Display_Base_stub_export.h:
+ * examples/Display/Display_Base/Display_Base_skel_export.h:
+ * examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec_export.h:
+ * examples/Display/RateGen/RateGen_exec_export.h:
+ * examples/Display/RateGen/RateGen_svnt_export.h:
+ * examples/Display/RateGen/RateGen_stub_export.h:
+ * examples/Display/GPS/GPS_exec_export.h:
+ * examples/Display/GPS/GPS_svnt_export.h:
+ * examples/Display/GPS/GPS_stub_export.h:
+ * examples/Display/NavDisplay/NavDisplay_exec_export.h:
+ * examples/Display/NavDisplay/NavDisplay_svnt_export.h:
+ * examples/Display/NavDisplay/NavDisplay_stub_export.h:
+ * examples/Swapping/Sender/Sender_svnt_export.h:
+ * examples/Swapping/Sender/Sender_stub_export.h:
+ * examples/Swapping/Sender/Sender_exec_1_export.h:
+ * examples/Swapping/Sender/Sender_exec_export.h:
+ * examples/Swapping/Sender/Sender_exec_2_export.h:
+ * examples/Swapping/Receiver/Receiver_exec_export.h:
+ * examples/Swapping/Receiver/Receiver_svnt_export.h:
+ * examples/Swapping/Receiver/Receiver_stub_export.h:
+ * examples/Swapping/Hello_Base/Hello_Base_stub_export.h:
+ * examples/Swapping/Hello_Base/Hello_Base_skel_export.h:
+ * examples/Null_Component/Null_Component_stub_export.h:
+ * examples/Null_Component/Null_Component_exec_export.h:
+ * examples/Null_Component/Null_Component_svnt_export.h:
+ * examples/Null_Component/Null_Interface_skel_export.h:
+ * examples/Null_Component/Null_Interface_stub_export.h:
+
+ Removed these export header files since they're now
+ generated. Also removed BasicSP_exec.*, and moved the
+ code to BMClosedED_exec.* and BMDevice_exec.*.
+
+ * examples/BasicSP/BMClosedED/BMClosedED.mpc:
+ * examples/BasicSP/BMClosedED/BMClosedED_exec.cpp:
+ * examples/BasicSP/BMClosedED/BMClosedED_exec.h:
+ * examples/BasicSP/BMDevice/BMDevice_exec.cpp:
+ * examples/BasicSP/BMDevice/BMDevice_exec.h:
+ * examples/BasicSP/BMDevice/BMDevice.mpc:
+ * examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.mpc:
+
+ MPC changes, and code moved from BasicSP_exec.*.
+
+ Mon Sep 21 22:01:50 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/DevGuideExamples/Messenger/Administrator_Client.cpp:
+ * examples/DevGuideExamples/Messenger/Receiver.mpc:
+ * examples/DevGuideExamples/Messenger/Receiver_exec_export.h:
+ * examples/DevGuideExamples/Messenger/Receiver_svnt_export.h:
+
+ Fixed config bugs.
+
+ * examples/DevGuideExamples/Messenger/Messenger_exec_export.h:
+ * examples/DevGuideExamples/Messenger/Receiver_stub_export.h:
+ * examples/DevGuideExamples/Messenger/Messenger_svnt_export.h:
+ * examples/DevGuideExamples/Messenger/Receiver_exec_export.h:
+ * examples/DevGuideExamples/Messenger/Administrator_stub_export.h:
+ * examples/DevGuideExamples/Messenger/Receiver_svnt_export.h:
+ * examples/DevGuideExamples/Messenger/Administrator_exec_export.h:
+ * examples/DevGuideExamples/Messenger/Administrator_svnt_export.h:
+ * examples/DevGuideExamples/Messenger/Messenger_stub_export.h:
+
+ Removed these files from the repository, since they are now generated.
+
+ Mon Sep 21 21:58:49 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/IDL3_to_IDL2/basic_visitor.cpp:
+ * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.cpp:
+
+ Fixed bug in implied IDL generation for ports.
+
+ Mon Sep 21 19:42:01 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * DAnCE/Deployment/Deployment_DeploymentPlan.idl:
+
+ Fixed name clash with 'port' identifier.
+
+ * tests/IDL3/Components/ComplexComponent/EventSink/EventSink.idl:
+ * tests/IDL3/Components/ComplexComponent/EventSource/EventSource.idl:
+ * tests/IDL3/Components/ComplexComponent/Facets/Facets.idl:
+ * tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles.idl:
+
+ Fixed name clashes.
+
+ * tools/IDL3_to_IDL2/basic_visitor.cpp:
+
+ Fixed bug in processing of valuetypes.
+
+ * DAnCE/TargetManager/TargetManager.mpc:
+ * DAnCE/TargetManager/TargetManager_exec_export.h:
+ * DAnCE/TargetManager/TargetManager_stub_export.h:
+ * DAnCE/TargetManager/TargetManager_svnt_export.h:
+ * examples/BasicSP/BMClosedED/BMClosedED.mpc:
+ * examples/BasicSP/BMClosedED/BMClosedED_exec.h:
+ * examples/BasicSP/BMClosedED/BMClosedED_exec_export.h:
+ * examples/BasicSP/BMClosedED/BMClosedED_stub_export.h:
+ * examples/BasicSP/BMClosedED/BMClosedED_svnt_export.h:
+ * examples/BasicSP/BMDevice/BMDevice.mpc:
+ * examples/BasicSP/BMDevice/BMDevice_exec.h:
+ * examples/BasicSP/BMDevice/BMDevice_exec_export.h:
+ * examples/BasicSP/BMDevice/BMDevice_stub_export.h:
+ * examples/BasicSP/BMDevice/BMDevice_svnt_export.h:
+ * examples/BasicSP/BMDisplay/BMDisplay.mpc:
+ * examples/BasicSP/BMDisplay/BMDisplay_exec_export.h:
+ * examples/BasicSP/BMDisplay/BMDisplay_stub_export.h:
+ * examples/BasicSP/BMDisplay/BMDisplay_svnt_export.h:
+ * examples/BasicSP/BasicSP.mpc:
+ * examples/BasicSP/BasicSP_exec_export.h:
+ * examples/BasicSP/BasicSP_stub_export.h:
+ * examples/BasicSP/BasicSP_svnt_export.h:
+ * examples/BasicSP/EC/EC.mpc:
+ * examples/BasicSP/EC/EC_exec_export.h:
+ * examples/BasicSP/EC/EC_stub_export.h:
+ * examples/BasicSP/EC/EC_svnt_export.h:
+ * examples/DevGuideExamples/Messenger/Administrator_Client.cpp:
+ * examples/DevGuideExamples/Messenger/Administrator_exec_export.h:
+ * examples/DevGuideExamples/Messenger/Administrator_stub_export.h:
+ * examples/DevGuideExamples/Messenger/Administrator_svnt_export.h:
+ * examples/DevGuideExamples/Messenger/Messenger.mpc:
+ * examples/DevGuideExamples/Messenger/Messenger_exec_export.h:
+ * examples/DevGuideExamples/Messenger/Messenger_stub_export.h:
+ * examples/DevGuideExamples/Messenger/Messenger_svnt_export.h:
+ * examples/DevGuideExamples/Messenger/Receiver_stub_export.h:
+ * examples/DevGuideExamples/Messenger/Receiver_svnt_export.h:
+ * examples/Display/Display_Base/Display_Base.mpc:
+ * examples/Display/GPS/GPS.mpc:
+ * examples/Display/GPS/GPS_exec_export.h:
+ * examples/Display/GPS/GPS_stub_export.h:
+ * examples/Display/GPS/GPS_svnt_export.h:
+ * examples/Display/NavDisplay/NavDisplay.mpc:
+ * examples/Display/NavDisplay/NavDisplay_exec_export.h:
+ * examples/Display/NavDisplay/NavDisplay_stub_export.h:
+ * examples/Display/NavDisplay/NavDisplay_svnt_export.h:
+ * examples/Display/RateGen/RateGen.mpc:
+ * examples/Display/RateGen/RateGen_exec_export.h:
+ * examples/Display/RateGen/RateGen_stub_export.h:
+ * examples/Display/RateGen/RateGen_svnt_export.h:
+ * examples/Hello/Receiver/Receiver.mpc:
+ * examples/Hello/Sender/Sender.mpc:
+ * examples/Null_Component/Null_Component.mpc:
+ * examples/Null_Component/Null_Component_exec_export.h:
+ * examples/Null_Component/Null_Component_stub_export.h:
+ * examples/Null_Component/Null_Component_svnt_export.h:
+ * examples/Swapping/Receiver/Receiver_exec_export.h:
+ * examples/Swapping/Receiver/Receiver_stub_export.h:
+ * examples/Swapping/Receiver/Receiver_svnt_export.h:
+ * examples/Swapping/Sender/Sender.mpc:
+ * examples/Swapping/Sender/Sender_exec_export.h:
+ * examples/Swapping/Sender/Sender_stub_export.h:
+ * examples/Swapping/Sender/Sender_svnt_export.h:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.mpc:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec_export.h:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_stub_export.h:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_svnt_export.h:
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec_export.h:
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_stub_export.h:
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_svnt_export.h:
+ * tests/CIDL/CodeGen/CodeGen.mpc:
+ * tests/CIDL/CodeGen/CodeGen_exec_export.h:
+ * tests/CIDL/CodeGen/CodeGen_stub_export.h:
+ * tests/CIDL/CodeGen/CodeGen_svnt_export.h:
+ * tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles.mpc:
+ * tests/IDL3/Components/SimpleComponent/SimpleComponent.mpc:
+ * tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.idl:
+ * tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.idl:
+ * tests/IDL_Test/Reused_Facet_Interface/CodeGen.mpc:
+ * tests/Minimum/Receiver/Receiver.mpc:
+ * tests/Minimum/Receiver/Receiver_exec_export.h:
+ * tests/Minimum/Receiver/Receiver_stub_export.h:
+ * tests/Minimum/Receiver/Receiver_svnt_export.h:
+ * tests/Minimum/Sender/Sender.mpc:
+ * tests/Minimum/Sender/Sender_exec_export.h:
+ * tests/Minimum/Sender/Sender_stub_export.h:
+ * tests/Minimum/Sender/Sender_svnt_export.h:
+
+ Added configuration changes corresponding to IDL3+ changes
+ to IDL compiler.
+
+ Wed Sep 2 16:06:59 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.cpp:
+ * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.h:
+
+ Replaced commented-out gen_* methods with
+ corresponding visit_* methods for component ports.
+
+ Wed Aug 26 18:29:14 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/IDL3_to_IDL2/checking_visitor.h:
+ * tools/IDL3_to_IDL2/basic_visitor.h:
+ * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.cpp:
+ * tools/IDL3_to_IDL2/checking_visitor.cpp:
+ * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.h:
+
+ Updated visitors to include the new visit methods,
+ and commented out the existing methods that use
+ port descriptions, which have been eliminated.
+
+ Fri Jul 17 19:07:47 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/IDL3_to_IDL2/basic_visitor.h:
+ * tools/IDL3_to_IDL2/basic_visitor.cpp:
+ * tools/IDL3_to_IDL2/checking_visitor.h:
+ * tools/IDL3_to_IDL2/checking_visitor.cpp:
+
+ Added new visit_* methods corresponding to new nodes
+ added in the IDL compiler front end.
+
+ Wed Jul 8 22:44:15 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/IDL3_to_IDL2/checking_visitor.h:
+ * tools/IDL3_to_IDL2/basic_visitor.cpp:
+ * tools/IDL3_to_IDL2/basic_visitor.h:
+ * tools/IDL3_to_IDL2/checking_visitor.cpp:
+
+ Added new visit_template_interface() and
+ visit_porttype() methods to keep these classes up to
+ date with the IDL compiler frontend. The methods are
+ empty for now, but the IDL3_to_IDL2 visitor classes are
+ kept concrete and instantiable.
+
+Wed Sep 23 11:57:59 UTC 2009 Vladimir Zykov <vz@prismtech.com>
+
+ * tests/IDL3_to_XMI/XMI_For_Module_Reopen/test.idl:
+ * tests/IDL3_to_XMI/XMI_For_Module_Reopen/run_test.pl:
+ * bin/ciao_tests.lst:
+
+ Added a test for XMI generation in case of module reopening.
+ Scheduled the test for run.
+
+Wed Sep 23 10:50:59 UTC 2009 Vladimir Zykov <vz@prismtech.com>
+
+ * tools/IDL3_to_XMI/IDL3_to_XMI_visitor.cpp:
+
+ Fixed XMI generation in case of module reopening.
+
+Tue Sep 22 07:16:55 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/simple_em_launcher.cpp:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/simple_nm_launcher.cpp:
+ Replaced ACE_xxx macros with DANCE_xxx macros.
+
+ * connectors/ami4ccm/docs/AMI4CCM-spec.odt:
+ Every sendc method should have it's own reply handler.
+
+ * connectors/ami4ccm/examples/Hello/AMI/AMI_MyFoo_i.cpp:
+ * connectors/ami4ccm/examples/Hello/AMI/AMI_MyInterface_i.cpp:
+ * connectors/ami4ccm/examples/Hello/AMI/AMI_exec.h:
+ * connectors/ami4ccm/examples/Hello/AMI/AMI_exec.cpp:
+ * connectors/ami4ccm/examples/Hello/Hello_Base/Hello.idl:
+ * connectors/ami4ccm/examples/Hello/Hello_Base/Hello_Base.idl:
+ * connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp:
+ * connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.h:
+ * connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp:
+ Every sendc method has it's own reply handler.
+ Also the implementation of the exception handling has changed.
+ Now an exception holder is used.
+
+Mon Sep 14 09:19:39 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp:
+ Updated some messages to not get false positives on the scoreboard
+
+Fri Sep 11 02:39:39 CDT 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIAO version 0.7.3 released.
+
+Thu Sep 10 07:05:10 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp:
+ Updated some messages to not get false positives on the scoreboard
+
+Tue Sep 8 10:38:10 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/ciao_tests.lst:
+ Added ami4ccm example
+
+Tue Sep 8 10:17:10 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/ami4ccm/Hello
+ Moved example to the new Hello subdirectory
+
+Tue Sep 8 10:08:10 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/simple_em_launcher.cpp:
+ Fixed compile error
+
+Tue Sep 8 08:38:10 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ Integrated AMI4CCM branch which shows a prototype how AMI would
+ look like at the CCM level
+
+ Mon Sep 7 09:41:10 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/simple_em_launcher.cpp:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/simple_nm_launcher.cpp:
+ Resolved merge conflicts to head.
+
+ Mon Sep 7 08:28:12 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/AMI_CCM/docs:
+ * connectors/AMI_CCM/docs/AMI4CCM-explanation.odt:
+ * connectors/AMI_CCM/docs/AMI4CCM-spec.odt:
+ Created a subdirectory called 'docs'. Moved the
+ existing documents to this directory.
+
+ * connectors/AMI_CCM/examples:
+ * connectors/AMI_CCM/examples/AMI:
+ * connectors/AMI_CCM/examples/Hello_Base:
+ * connectors/AMI_CCM/examples/Receiver:
+ * connectors/AMI_CCM/examples/Sender:
+ * connectors/AMI_CCM/examples/Sender/Hello_Sender.idl:
+ * connectors/AMI_CCM/examples/descriptors:
+ * connectors/AMI_CCM/AMI:
+ * connectors/AMI_CCM/AMI/AMI.idl:
+ * connectors/AMI_CCM/AMI/AMI.mpc:
+ * connectors/AMI_CCM/AMI/AMI_MyFoo_i.h:
+ * connectors/AMI_CCM/AMI/AMI_MyFoo_i.cpp:
+ * connectors/AMI_CCM/AMI/AMI_MyInterface_i.h:
+ * connectors/AMI_CCM/AMI/AMI_MyInterface_i.cpp:
+ * connectors/AMI_CCM/AMI/AMI_exec.h:
+ * connectors/AMI_CCM/AMI/AMI_exec.cpp:
+ * connectors/AMI_CCM/AMI4CCM-explanation.odt:
+ * connectors/AMI_CCM/AMI4CCM-spec.odt:
+ * connectors/AMI_CCM/Hello_Base:
+ * connectors/AMI_CCM/Hello_Base/Hello.idl:
+ * connectors/AMI_CCM/Hello_Base/Hello_Base.idl:
+ * connectors/AMI_CCM/Hello_Base/Hello_Base.mpc:
+ * connectors/AMI_CCM/Receiver:
+ * connectors/AMI_CCM/Receiver/Hello_Receiver.idl:
+ * connectors/AMI_CCM/Receiver/Hello_Receiver.mpc:
+ * connectors/AMI_CCM/Receiver/Hello_Receiver_exec.h:
+ * connectors/AMI_CCM/Receiver/Hello_Receiver_exec.cpp:
+ * connectors/AMI_CCM/Sender:
+ * connectors/AMI_CCM/Sender/Hello_Sender.idl:
+ * connectors/AMI_CCM/Sender/Hello_Sender.mpc:
+ * connectors/AMI_CCM/Sender/Hello_Sender_exec.h:
+ * connectors/AMI_CCM/Sender/Hello_Sender_exec.cpp:
+ * connectors/AMI_CCM/descriptors:
+ * connectors/AMI_CCM/descriptors/Plan.cdp:
+ * connectors/AMI_CCM/descriptors/run_test.pl:
+ Created a subdirectory called 'examples'. Moved
+ all files to this directory.
+
+ Fri Sep 4 11:00:39 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * ciao/ComponentServer/CIAO_Container_Impl.cpp:
+ Improved logging.
+
+ Thu Sep 3 14:10:17 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+ Improved logging.
+
+ Thu Sep 3 13:17:52 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/AMI_CCM/AMI/AMI_exec.cpp:
+ * connectors/AMI_CCM/Hello_Base/Hello_Base.mpc:
+ * connectors/AMI_CCM/Receiver/Hello_Receiver_exec.cpp:
+ Resolved compiler errors on Windows.
+
+ Thu Sep 3 12:05:43 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * ciao/ComponentServer/CIAO_ComponentInstallation_Impl.cpp:
+ rebind (in stead of bind) is always called.
+ This results in an unnecessary warning.
+
+ * ciao/Containers/Servant_Activator.cpp:
+ tmp was initialized but never used.
+
+ Thu Sep 3 10:20:48 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/AMI_CCM/Receiver/Hello_Receiver_exec.cpp:
+ Resolved compiler error on windows.
+
+ Thu Sep 3 08:19:18 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * DAnCE/DomainApplicationManager/Node_Locator.cpp:
+ Log message inserted.
+
+ * DAnCE/RepositoryManager/URL_Parser.cpp:
+ Resolved compiler error on Windows.
+
+ Thu Sep 3 07:48:59 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * DAnCE/DomainApplication/Domain_Application_Impl.cpp:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.cpp:
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+ * DAnCE/Plan_Generator/PCVisitor.cpp:
+ * DAnCE/Plan_Generator/Plan_Generator_Impl.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp:
+ * DAnCE/RepositoryManager/PC_Updater.cpp:
+ * DAnCE/RepositoryManager/RM_Helper.cpp:
+ * DAnCE/RepositoryManager/RepositoryManager.cpp:
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp:
+ * DAnCE/RepositoryManager/URL_Parser.h:
+ * DAnCE/RepositoryManager/URL_Parser.cpp:
+ * DAnCE/RepositoryManager/ZIP_Wrapper.h:
+ * DAnCE/RepositoryManager/ZIP_Wrapper.cpp:
+ * DAnCE/RepositoryManager/repository_manager_admin_exec.cpp:
+ * DAnCE/StaticConfigurator/StaticDAnCEParser.cpp:
+ * DAnCE/TargetManager/CmpClient.cpp:
+ * DAnCE/TargetManager/DomainDataManager.cpp:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/simple_em_launcher.cpp:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/simple_nm_launcher.cpp:
+ Replaced all ACE_ERROR-s, ACE_ERROR_RETURN-s and ACE_DEBUG-s with th
+ DANCE variant.
+
+ Wed Sep 2 12:09:58 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/AMI_CCM/AMI/AMI_MyFoo_i.cpp:
+ * connectors/AMI_CCM/AMI/AMI_exec.h:
+ * connectors/AMI_CCM/AMI/AMI_exec.cpp:
+ * connectors/AMI_CCM/Hello_Base/Hello_Base.idl:
+ * connectors/AMI_CCM/Sender/Hello_Sender_exec.cpp:
+ Changed to meet the spec.
+
+ Wed Sep 2 07:33:20 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/AMI_CCM/AMI4CCM-explanation.odt:
+ * connectors/AMI_CCM/AMI4CCM-spec.odt:
+ When the rh in the sendc is nil, AMI treats
+ this as an oneway request.
+ When a rh per request is used, the 'global' rh
+ code should not be generated.
+
+ Mon Aug 31 11:09:40 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/AMI_CCM/AMI4CCM-explanation.odt:
+ * connectors/AMI_CCM/AMI4CCM-spec.odt:
+ Added.
+
+ * connectors/AMI_CCM/Sender/Hello_Sender_exec.cpp:
+ Resolved bug regarding the MyInterface interface.
+
+ Mon Aug 31 10:39:25 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/AMI_CCM/Sender/Hello_Sender_exec.h:
+ * connectors/AMI_CCM/Sender/Hello_Sender_exec.cpp:
+ Resolved some compiler errors/warnings.
+
+ Fri Aug 28 07:29:13 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/AMI_CCM/AMI/AMI_MyFoo_i.h:
+ * connectors/AMI_CCM/AMI/AMI_MyFoo_i.cpp:
+ * connectors/AMI_CCM/AMI/AMI_MyInterface_i.cpp:
+ * connectors/AMI_CCM/AMI/AMI_exec.h:
+ * connectors/AMI_CCM/AMI/AMI_exec.cpp:
+ * connectors/AMI_CCM/Hello_Base/Hello.idl:
+ * connectors/AMI_CCM/Hello_Base/Hello_Base.idl:
+ * connectors/AMI_CCM/Receiver/Hello_Receiver_exec.h:
+ * connectors/AMI_CCM/Receiver/Hello_Receiver_exec.cpp:
+ * connectors/AMI_CCM/Sender/Hello_Sender_exec.h:
+ * connectors/AMI_CCM/Sender/Hello_Sender_exec.cpp:
+ Extende the MyFoo interface with a new method. Just
+ to gain more inside info.
+
+ Thu Aug 27 16:47:53 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/AMI_CCM/AMI/AMI.mpc:
+ * connectors/AMI_CCM/AMI/AMI_MyFoo_i.h:
+ * connectors/AMI_CCM/AMI/AMI_MyFoo_i.cpp:
+ * connectors/AMI_CCM/AMI/AMI_MyInterface_i.h:
+ * connectors/AMI_CCM/AMI/AMI_MyInterface_i.cpp:
+ * connectors/AMI_CCM/AMI/AMI_exec.h:
+ * connectors/AMI_CCM/AMI/AMI_exec.cpp:
+ * connectors/AMI_CCM/Hello_Base/Hello_Base.idl:
+ * connectors/AMI_CCM/Sender/Hello_Sender_exec.h:
+ * connectors/AMI_CCM/Sender/Hello_Sender_exec.cpp:
+ * connectors/AMI_CCM/descriptors/run_test.pl:
+ Refactored code. Also expanded this
+ example with another interface.
+
+ * connectors/AMI_CCM/AMI/AMI_internal_i.h:
+ * connectors/AMI_CCM/AMI/AMI_internal_i.cpp:
+ * connectors/AMI_CCM/AMI/AMI_perform_work.h:
+ * connectors/AMI_CCM/AMI/AMI_perform_work.cpp:
+ * connectors/AMI_CCM/AMI/AMI_server.h:
+ * connectors/AMI_CCM/AMI/AMI_server.cpp:
+
+ Removed these files.
+
+ Wed Aug 26 18:42:49 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/AMI_CCM/AMI/AMI.idl:
+ * connectors/AMI_CCM/AMI/AMI_exec.h:
+ * connectors/AMI_CCM/AMI/AMI_exec.cpp:
+ * connectors/AMI_CCM/Hello_Base/Hello.idl:
+ * connectors/AMI_CCM/Hello_Base/Hello_Base.idl:
+ * connectors/AMI_CCM/Receiver/Hello_Receiver.idl:
+ * connectors/AMI_CCM/Receiver/Hello_Receiver_exec.h:
+ * connectors/AMI_CCM/Receiver/Hello_Receiver_exec.cpp:
+ * connectors/AMI_CCM/Sender/Hello_Sender.idl:
+ * connectors/AMI_CCM/Sender/Hello_Sender_exec.h:
+ * connectors/AMI_CCM/Sender/Hello_Sender_exec.cpp:
+ * connectors/AMI_CCM/descriptors/Plan.cdp:
+ Set up (empty) framework in order to test one reply handler
+ per request.
+
+ Wed Aug 26 13:04:12 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/AMI_CCM/AMI/AMI_exec.h:
+ * connectors/AMI_CCM/AMI/AMI_exec.cpp:
+ * connectors/AMI_CCM/Hello_Base/Hello_Base.idl:
+ * connectors/AMI_CCM/Sender/Hello_Sender_exec.h:
+ * connectors/AMI_CCM/Sender/Hello_Sender_exec.cpp:
+ Removed cookie from IDL interfaces.
+
+ Wed Aug 26 08:59:26 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/AMI_CCM/AMI/AMI.idl:
+ * connectors/AMI_CCM/AMI/AMI_exec.h:
+ * connectors/AMI_CCM/AMI/AMI_exec.cpp:
+ * connectors/AMI_CCM/AMI/AMI_internal_i.h:
+ * connectors/AMI_CCM/AMI/AMI_internal_i.cpp:
+ * connectors/AMI_CCM/AMI/AMI_perform_work.cpp:
+ * connectors/AMI_CCM/AMI/AMI_server.h:
+ * connectors/AMI_CCM/AMI/AMI_server.cpp:
+ * connectors/AMI_CCM/Hello_Base/Hello.idl:
+ * connectors/AMI_CCM/Hello_Base/Hello_Base.idl:
+ * connectors/AMI_CCM/Hello_Base/Hello_Base.mpc:
+ * connectors/AMI_CCM/Receiver/Hello_Receiver.idl:
+ * connectors/AMI_CCM/Receiver/Hello_Receiver_exec.h:
+ * connectors/AMI_CCM/Receiver/Hello_Receiver_exec.cpp:
+ * connectors/AMI_CCM/Sender/Hello_Sender.idl:
+ * connectors/AMI_CCM/Sender/Hello_Sender_exec.h:
+ * connectors/AMI_CCM/Sender/Hello_Sender_exec.cpp:
+ Added Hello.idl to seperate AMI interfaces from
+ "normal" interfaces. Besides this changed naming
+ convention to make a distinction between AMI interfaces
+ and "normal" interfaces.
+
+ Tue Aug 25 13:30:29 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/AMI_CCM/AMI/AMI_exec.h:
+ * connectors/AMI_CCM/AMI/AMI_exec.cpp:
+ * connectors/AMI_CCM/AMI/AMI_server.h:
+ * connectors/AMI_CCM/AMI/AMI_server.cpp:
+ Removed unnecessary class variables.
+
+ Tue Aug 25 13:03:23 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/AMI_CCM/AMI/AMI_exec.h:
+ * connectors/AMI_CCM/AMI/AMI_exec.cpp:
+ * connectors/AMI_CCM/AMI/AMI_server.cpp:
+ AMI collacation set to 0 since AMI CORBA client and
+ AMI CORBA server are running in the same process.
+
+ * connectors/AMI_CCM/Sender/Hello_Sender_exec.cpp:
+ Improved logging.
+
+ * connectors/AMI_CCM/descriptors/run_test.pl:
+ Automatically remove AMI CORBA ior file.
+
+ Tue Aug 25 09:35:49 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/AMI_CCM/AMI/AMI.idl:
+ * connectors/AMI_CCM/AMI/AMI_exec.cpp:
+ * connectors/AMI_CCM/AMI/AMI_internal_i.cpp:
+ * connectors/AMI_CCM/Hello_Base/Hello_Base.idl:
+ * connectors/AMI_CCM/Receiver/Hello_Receiver_exec.cpp:
+ * connectors/AMI_CCM/Sender/Hello_Sender_exec.h:
+ * connectors/AMI_CCM/Sender/Hello_Sender_exec.cpp:
+ Refactored exception handling a bit. An exception struct
+ is now passed to the exception callback.
+ Also shortened the time stamps.
+
+ * connectors/AMI_CCM/descriptors/run_test.pl:
+ Shortened the sleep time.
+
+ Tue Aug 25 07:19:55 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/AMI_CCM/AMI/AMI.mpc:
+ * connectors/AMI_CCM/AMI/AMI_perform_work.cpp:
+ * connectors/AMI_CCM/Hello_Base/Hello_Base.mpc:
+ * connectors/AMI_CCM/Receiver/Hello_Receiver.mpc:
+ * connectors/AMI_CCM/Receiver/Hello_Receiver_exec.cpp:
+ * connectors/AMI_CCM/Sender/Hello_Sender.mpc:
+ * connectors/AMI_CCM/Sender/Hello_Sender_exec.cpp:
+ Resolved compiler errors on windows.
+ Resolved linker errors related to previous login.
+
+ Tue Aug 25 05:44:12 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/AMI_CCM/AMI/AMI.mpc:
+ * connectors/AMI_CCM/AMI/AMI_exec.h:
+ * connectors/AMI_CCM/AMI/AMI_exec.cpp:
+ * connectors/AMI_CCM/AMI/AMI_internal_i.h:
+ * connectors/AMI_CCM/AMI/AMI_internal_i.cpp:
+ * connectors/AMI_CCM/AMI/AMI_perform_work.h:
+ * connectors/AMI_CCM/AMI/AMI_server.h:
+ * connectors/AMI_CCM/AMI/AMI_server.cpp:
+ Removed internal IDL and use Hello base foo interface
+
+ * connectors/AMI_CCM/Hello_Base/Hello_Base.mpc:
+ foo interface uses AMI.
+
+ Mon Aug 24 13:31:57 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/AMI_CCM/AMI/AMI_exec.h:
+ * connectors/AMI_CCM/AMI/AMI_exec.cpp:
+ * connectors/AMI_CCM/AMI/AMI_internal_i.h:
+ * connectors/AMI_CCM/AMI/AMI_internal_i.cpp:
+ * connectors/AMI_CCM/AMI/AMI_server.h:
+ * connectors/AMI_CCM/AMI/AMI_server.cpp:
+ * connectors/AMI_CCM/Hello_Base/Hello_Base.idl:
+ * connectors/AMI_CCM/Receiver/Hello_Receiver_exec.h:
+ * connectors/AMI_CCM/Receiver/Hello_Receiver_exec.cpp:
+ * connectors/AMI_CCM/Sender/Hello_Sender.idl:
+ * connectors/AMI_CCM/Sender/Hello_Sender_exec.h:
+ * connectors/AMI_CCM/Sender/Hello_Sender_exec.cpp:
+ * connectors/AMI_CCM/descriptors/Plan.cdp:
+ Implemented synchronous calls from Sender to Receiver. Renamed some
+ interfaces to match the CORBA specs regarding AMI.
+
+ Mon Aug 24 12:21:50 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/AMI_CCM/AMI/AMI.mpc:
+ * connectors/AMI_CCM/AMI/AMI_exec.cpp:
+ Removed file since this wasn't needed.
+
+ Mon Aug 24 11:34:05 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/AMI_CCM/AMI/AMI_exec.cpp:
+ * connectors/AMI_CCM/AMI/AMI_internal_i.cpp:
+ * connectors/AMI_CCM/Hello_Base/Hello_Base.idl:
+ * connectors/AMI_CCM/Receiver/Hello_Receiver_exec.cpp:
+ * connectors/AMI_CCM/Sender/Hello_Sender_exec.cpp:
+ Implemented exception handling.
+
+ Mon Aug 24 09:25:00 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/AMI_CCM/AMI/AMI_exec.h:
+ * connectors/AMI_CCM/AMI/AMI_exec.cpp:
+ * connectors/AMI_CCM/AMI/AMI_internal_i.cpp:
+ * connectors/AMI_CCM/AMI/AMI_perform_work.cpp:
+ CORBA callback in seperate thread. Refactored to
+ one reply handler per request.
+
+ * connectors/AMI_CCM/Sender/Hello_Sender_exec.cpp:
+ Optimized logging. Removed sleep between calls.
+ Wait 5 sec. (in stead of 10) before start.
+
+ * connectors/AMI_CCM/descriptors/run_test.pl:
+ Minor changes.
+
+ Mon Aug 24 07:34:08 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/AMI_CCM/AMI/AMI_exec.h:
+ * connectors/AMI_CCM/AMI/AMI_exec.cpp:
+ Implemented a define to switch between implementations.
+ Resolved some compiler warnings.
+
+ Mon Aug 24 07:10:16 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors/AMI_CCM/AMI/AMI.mpc:
+ * connectors/AMI_CCM/AMI/AMI_exec.h:
+ * connectors/AMI_CCM/AMI/AMI_exec.cpp:
+ * connectors/AMI_CCM/AMI/AMI_internal_i.h:
+ * connectors/AMI_CCM/AMI/AMI_internal_i.cpp:
+ * connectors/AMI_CCM/AMI/AMI_perform_work.h:
+ * connectors/AMI_CCM/AMI/AMI_perform_work.cpp:
+ * connectors/AMI_CCM/AMI/AMI_server.h:
+ * connectors/AMI_CCM/AMI/AMI_server.cpp:
+ First step to use CORBA AMI in the AMI component.
+
+ * connectors/AMI_CCM/Sender/Hello_Sender_exec.h:
+ * connectors/AMI_CCM/Sender/Hello_Sender_exec.cpp:
+ Minor changes.
+
+ Thu Aug 20 09:56:11 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * connectors:
+ * connectors/AMI_CCM:
+ * connectors/AMI_CCM/AMI:
+ * connectors/AMI_CCM/AMI/AMI.idl:
+ * connectors/AMI_CCM/AMI/AMI.mpc:
+ * connectors/AMI_CCM/AMI/AMI_exec.h:
+ * connectors/AMI_CCM/AMI/AMI_exec.cpp:
+ * connectors/AMI_CCM/Hello_Base:
+ * connectors/AMI_CCM/Hello_Base/Hello_Base.idl:
+ * connectors/AMI_CCM/Hello_Base/Hello_Base.mpc:
+ * connectors/AMI_CCM/Receiver:
+ * connectors/AMI_CCM/Receiver/Hello_Receiver.idl:
+ * connectors/AMI_CCM/Receiver/Hello_Receiver.mpc:
+ * connectors/AMI_CCM/Receiver/Hello_Receiver_exec.h:
+ * connectors/AMI_CCM/Receiver/Hello_Receiver_exec.cpp:
+ * connectors/AMI_CCM/Sender:
+ * connectors/AMI_CCM/Sender/Hello_Sender.idl:
+ * connectors/AMI_CCM/Sender/Hello_Sender.mpc:
+ * connectors/AMI_CCM/Sender/Hello_Sender_exec.h:
+ * connectors/AMI_CCM/Sender/Hello_Sender_exec.cpp:
+ * connectors/AMI_CCM/descriptors:
+ * connectors/AMI_CCM/descriptors/Plan.cdp:
+ * connectors/AMI_CCM/descriptors/run_test.pl:
+ Moved this example from tests to this location. Just to
+ be consistent with dds4ccm.
+
+ * tests/AMI_CCM:
+ * tests/AMI_CCM/AMI:
+ * tests/AMI_CCM/AMI/AMI.idl:
+ * tests/AMI_CCM/AMI/AMI.mpc:
+ * tests/AMI_CCM/AMI/AMI_exec.h:
+ * tests/AMI_CCM/AMI/AMI_exec.cpp:
+ * tests/AMI_CCM/Hello_Base:
+ * tests/AMI_CCM/Hello_Base/Hello_Base.idl:
+ * tests/AMI_CCM/Hello_Base/Hello_Base.mpc:
+ * tests/AMI_CCM/Receiver:
+ * tests/AMI_CCM/Receiver/Hello_Receiver.idl:
+ * tests/AMI_CCM/Receiver/Hello_Receiver.mpc:
+ * tests/AMI_CCM/Receiver/Hello_Receiver_exec.h:
+ * tests/AMI_CCM/Receiver/Hello_Receiver_exec.cpp:
+ * tests/AMI_CCM/Sender:
+ * tests/AMI_CCM/Sender/Hello_Sender.idl:
+ * tests/AMI_CCM/Sender/Hello_Sender.mpc:
+ * tests/AMI_CCM/Sender/Hello_Sender_exec.h:
+ * tests/AMI_CCM/Sender/Hello_Sender_exec.cpp:
+ * tests/AMI_CCM/descriptors:
+ * tests/AMI_CCM/descriptors/Plan.cdp:
+ * tests/AMI_CCM/descriptors/run_test.pl:
+ Removed these files.
+
+ Thu Aug 20 09:24:04 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * tests/AMI_CCM/AMI/AMI_exec.cpp:
+ * tests/AMI_CCM/Receiver/Hello_Receiver_exec.cpp:
+ * tests/AMI_CCM/Sender/Hello_Sender_exec.cpp:
+ Improved log messages.
+
+ * tests/AMI_CCM/descriptors/run_test.pl:
+ Changed to meet the latest version.
+
+ Thu Aug 20 08:54:46 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * tests/AMI_CCM/AMI/AMI_exec.h:
+ * tests/AMI_CCM/AMI/AMI_exec.cpp:
+ * tests/AMI_CCM/Hello_Base/Hello_Base.idl:
+ * tests/AMI_CCM/Receiver/Hello_Receiver_exec.cpp:
+ * tests/AMI_CCM/Sender/Hello_Sender_exec.h:
+ * tests/AMI_CCM/Sender/Hello_Sender_exec.cpp:
+ The basic version of AMI seems to work. The AMI component
+ determines a cookie and spawns a thread per request.
+ The thread handles the request and calls the callback
+ function of the sender.
+
+ Wed Aug 19 09:07:17 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * tests/AMI_CCM/AMI/AMI_exec.h:
+ * tests/AMI_CCM/AMI/AMI_exec.cpp:
+ * tests/AMI_CCM/Receiver/Hello_Receiver_exec.cpp:
+ * tests/AMI_CCM/Sender/Hello_Sender_exec.h:
+ * tests/AMI_CCM/Sender/Hello_Sender_exec.cpp:
+ The Sender component is now able to pass a string through the
+ AMI component to the Receiver component.
+
+ Wed Aug 19 07:58:49 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * tests/AMI_CCM/AMI:
+ * tests/AMI_CCM/AMI/AMI.idl:
+ * tests/AMI_CCM/AMI/AMI.mpc:
+ * tests/AMI_CCM/AMI/AMI_exec.h:
+ * tests/AMI_CCM/AMI/AMI_exec.cpp:
+ * tests/AMI_CCM/Hello_Base/Hello_Base.idl:
+ * tests/AMI_CCM/Receiver/Hello_Receiver.idl:
+ * tests/AMI_CCM/Receiver/Hello_Receiver.mpc:
+ * tests/AMI_CCM/Receiver/Hello_Receiver_exec.h:
+ * tests/AMI_CCM/Receiver/Hello_Receiver_exec.cpp:
+ * tests/AMI_CCM/Sender/Hello_Sender.idl:
+ * tests/AMI_CCM/Sender/Hello_Sender.mpc:
+ * tests/AMI_CCM/Sender/Hello_Sender_exec.h:
+ * tests/AMI_CCM/Sender/Hello_Sender_exec.cpp:
+ * tests/AMI_CCM/descriptors/Plan.cdp:
+ Changed to deploy the third component (AMI). None of the
+ executors are implemented yet. Deploymentplan and IDL files
+ are prepared to deploy the AMI component.
+
+ Tue Aug 18 09:59:07 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * tests/AMI_CCM/Hello_Base/Hello_Base.idl:
+ * tests/AMI_CCM/Receiver/Hello_Receiver.idl:
+ * tests/AMI_CCM/Receiver/Hello_Receiver_exec.h:
+ * tests/AMI_CCM/Receiver/Hello_Receiver_exec.cpp:
+ * tests/AMI_CCM/Sender/Hello_Sender.idl:
+ * tests/AMI_CCM/Sender/Hello_Sender_exec.h:
+ * tests/AMI_CCM/Sender/Hello_Sender_exec.cpp:
+ * tests/AMI_CCM/descriptors/Plan.cdp:
+ * tests/AMI_CCM/descriptors/run_test.pl:
+ Baseline for AMI implementation. Sender and Receiver
+ components are deployable and runable.
+
+ Fri Jul 24 11:54:48 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * tests/AMI_CCM/Hello_Base/Hello_Base.mpc:
+ * tests/AMI_CCM/Receiver/Hello_Receiver.mpc:
+ * tests/AMI_CCM/Receiver/Hello_Receiver_exec.h:
+ * tests/AMI_CCM/Receiver/Hello_Receiver_exec.cpp:
+ * tests/AMI_CCM/Sender/Hello_Sender.mpc:
+ * tests/AMI_CCM/Sender/Hello_Sender_exec.h:
+ * tests/AMI_CCM/Sender/Hello_Sender_exec.cpp:
+ Rerun example.
+
+ * tests/AMI_CCM/descriptors/Plan.cdp:
+ Added connectors. Now both components
+ can be deployed.
+
+ Fri Jul 24 07:34:04 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * tests/AMI_CCM/Receiver/Hello_Receiver_exec.h:
+ * tests/AMI_CCM/Receiver/Hello_Receiver_exec.cpp:
+ * tests/AMI_CCM/Sender/Hello_Sender_exec.h:
+ * tests/AMI_CCM/Sender/Hello_Sender_exec.cpp:
+ * tests/AMI_CCM/descriptors/Plan.cdp:
+ Changed naming convention regarding entry points
+
+ Thu Jul 23 18:53:34 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * tests/AMI_CCM/descriptors/Plan.cdp:
+ * tests/AMI_CCM/descriptors/run_test.pl:
+ Few minor changes regarding names of IOR and
+ dll's.
+
+ Thu Jul 23 15:31:09 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * tests/AMI_CCM/Hello_Base/Hello_Base.mpc:
+ * tests/AMI_CCM/Receiver/Hello_Receiver.mpc:
+ * tests/AMI_CCM/Sender/Hello_Sender.mpc:
+ Added library paths.
+
+ * tests/AMI_CCM/descriptors/Plan.cdp:
+ Renaming.
+
+ Thu Jul 23 14:20:55 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * tests/AMI_CCM:
+ * tests/AMI_CCM/Hello_Base:
+ * tests/AMI_CCM/Hello_Base/Hello_Base.idl:
+ * tests/AMI_CCM/Hello_Base/Hello_Base.mpc:
+ * tests/AMI_CCM/Receiver:
+ * tests/AMI_CCM/Receiver/Hello_Receiver.idl:
+ * tests/AMI_CCM/Receiver/Hello_Receiver.mpc:
+ * tests/AMI_CCM/Receiver/Hello_Receiver_exec.h:
+ * tests/AMI_CCM/Receiver/Hello_Receiver_exec.cpp:
+ * tests/AMI_CCM/Sender:
+ * tests/AMI_CCM/Sender/Hello_Sender.idl:
+ * tests/AMI_CCM/Sender/Hello_Sender.mpc:
+ * tests/AMI_CCM/Sender/Hello_Sender_exec.h:
+ * tests/AMI_CCM/Sender/Hello_Sender_exec.cpp:
+ * tests/AMI_CCM/descriptors:
+ * tests/AMI_CCM/descriptors/Plan.cdp:
+ * tests/AMI_CCM/descriptors/run_test.pl:
+ Added as a starter for ami4ccm
+
+Fri Aug 14 13:27:29 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * MPC/config/ciao_vcwarnings.mpb:
+ Use prop:microsoft
+
+Fri Aug 14 10:12:29 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/XSCRT/Elements.hpp:
+ Disabled some code for CB2009
+
+Fri Aug 14 09:28:29 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Servants/Servant_Impl_Base.cpp:
+ Use global scope explicitly
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.cpp:
+ Use <<= for DDS_Time
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.h:
+ Removed commented out include
+
+Fri Aug 14 02:25:41 UTC 2009 William R. Otte <Wotte@dre.vanderbilt.edu>
+
+ * MPC/config/ciao_cs_client.mpb:
+
+ Static linking fix.
+
+Thu Aug 13 18:07:29 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.cpp:
+ Some more code in read_one_history
+
+Thu Aug 13 12:58:29 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.cpp:
+ Start with read_one_history implementation
+
+Thu Aug 13 11:51:29 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.cpp:
+ Added some commented out test code to test the reader code.
+ This uncovered an issue with the spec, what should the reader
+ do when there is no data
+
+Thu Aug 13 10:31:29 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/XSCRT/Elements.hpp:
+ Fized fuzz/borland errors
+
+Thu Aug 13 08:57:29 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+ Fixed compile error
+
+Thu Aug 13 07:56:29 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/XSCRT/Elements.hpp:
+ Removed code for vc6
+
+Thu Aug 13 01:23:29 UTC 2009 William R. Otte <Wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+
+ Unicode compile errors.
+
+Wed Aug 12 18:26:09 UTC 2009 William R. Otte <Wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/NodeApplication.mpc:
+ * MPC/config/ciao_cs_client.mpb:
+
+ try to fix link problems introduced by
+ Tue Aug 11 11:51:29 UTC 2009 ChangeLog <William R. Otte>
+
+Wed Aug 12 18:00:56 UTC 2009 William R. Otte <Wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/XMLSchema/Traversal.hpp:
+ * tools/Config_Handlers/XMLSchema/Types.hpp:
+
+ Integrated more cleanly the changes from XSC XSCRT/XMLSchema.
+
+Wed Aug 12 13:30:50 UTC 2009 William R. Otte <Wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/XMLSchema/Traversal.hpp:
+ * tools/Config_Handlers/XMLSchema/Traversal.ipp:
+ * tools/Config_Handlers/XMLSchema/Traversal.tpp:
+ * tools/Config_Handlers/XMLSchema/TypeInfo.ipp:
+ * tools/Config_Handlers/XMLSchema/TypeInfo.tpp:
+ * tools/Config_Handlers/XMLSchema/Types.hpp:
+ * tools/Config_Handlers/XMLSchema/Types.ipp:
+ * tools/Config_Handlers/XMLSchema/Types.tpp:
+ * tools/Config_Handlers/XMLSchema/Writer.hpp:
+ * tools/Config_Handlers/XSCRT/ExtendedTypeInfo.hpp:
+ * tools/Config_Handlers/XSCRT/ExtendedTypeInfo.ipp:
+ * tools/Config_Handlers/XSCRT/Parser.hpp:
+ * tools/Config_Handlers/XSCRT/Traversal.hpp:
+ * tools/Config_Handlers/XSCRT/Traversal.tpp:
+ * tools/Config_Handlers/XSCRT/Writer.hpp:
+ * tools/Config_Handlers/XSCRT/XML.hpp:
+
+ Rolled back the XSC update, it didn't include a number of fixes
+ necessary for Borland and Xerces2/3.
+
+Wed Aug 12 10:21:10 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * docs/OMG-CCM-Tutorial.ppt:
+ Small updates regarding to CORBA usage and the official OMG
+ spec document numbers
+
+Wed Aug 12 07:27:10 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * MPC/config/dds4ccm_base.mpb:
+ Added after of DDS4CCM_lem_gen
+
+Wed Aug 12 07:06:10 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Logger/File_Logger_Backend.cpp:
+ Unicode compile error fix
+
+Tue Aug 11 17:48:10 UTC 2009 William R. Otte <Wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Basic_Deployment_Data.cpp:
+ * tools/Config_Handlers/XMI.cpp:
+
+ Fix warnings.
+
+ * tools/Config_Handlers/XMLSchema/Traversal.hpp:
+ * tools/Config_Handlers/XMLSchema/Traversal.ipp:
+ * tools/Config_Handlers/XMLSchema/Traversal.tpp:
+ * tools/Config_Handlers/XMLSchema/TypeInfo.ipp:
+ * tools/Config_Handlers/XMLSchema/TypeInfo.tpp:
+ * tools/Config_Handlers/XMLSchema/Types.hpp:
+ * tools/Config_Handlers/XMLSchema/Types.ipp:
+ * tools/Config_Handlers/XMLSchema/Types.tpp:
+ * tools/Config_Handlers/XMLSchema/Writer.hpp:
+ * tools/Config_Handlers/XMLSchema/id_map.hpp:
+ * tools/Config_Handlers/XSCRT/ExtendedTypeInfo.hpp:
+ * tools/Config_Handlers/XSCRT/ExtendedTypeInfo.ipp:
+ * tools/Config_Handlers/XSCRT/Parser.hpp:
+ * tools/Config_Handlers/XSCRT/Traversal.hpp:
+ * tools/Config_Handlers/XSCRT/Traversal.tpp:
+ * tools/Config_Handlers/XSCRT/Writer.hpp:
+ * tools/Config_Handlers/XSCRT/XML.hpp:
+
+ Pull in new version of XMLSchema and XSCRT.
+
+Tue Aug 11 11:51:29 UTC 2009 ChangeLog <William R. Otte>
+
+ * DAnCE/MPC/config/dance_deployment_svnt.mpb:
+ * DAnCE/MPC/config/dance_plan_launcher_base.mpb:
+ * DAnCE/NodeManager/NodeManager.mpc:
+ * MPC/config/ccm_componentserver_svnt.mpb:
+ * MPC/config/ciao_cs_client.mpb:
+
+ Link fixes for an ARM cross compile.
+
+Tue Aug 11 08:55:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/XML_File_Intf.cpp:
+ Improved error debug statements
+
+Mon Aug 10 17:46:12 UTC 2009 William R. Otte <Wotte@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ * DAnCE/DomainApplicationManager/Node_Locator.cpp:
+ * DAnCE/ExecutionManager/ExecutionManager_Module.h:
+ * DAnCE/ExecutionManager/ExecutionManager_Module.cpp:
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * DAnCE/NodeManager/Node_Manager_Module.h:
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.h:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp:
+ * DAnCE/RepositoryManager/repository_manager_admin.cpp:
+ * DAnCE/TargetManager/Target_Manager_Module.h:
+ * DAnCE/TargetManager/Target_Manager_Module.cpp:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/simple_em_launcher.cpp:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/simple_nm_launcher.cpp:
+ * DAnCE/tests/DeploymentPlanDump/test.cpp:
+ * DAnCE/tests/DeploymentPlanTestReferences/test.cpp:
+ * DAnCE/tests/DeploymentTest1/test.cpp:
+ * ciao/Containers/Session/Session_Container.cpp:
+ * ciao/Logger/File_Logger_Backend.cpp:
+ * tests/CIAO_ComponentServer/Activator/client.cpp:
+ * tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.cpp:
+ * tools/Config_Handlers/ADD_Handler.cpp:
+ * tools/Config_Handlers/Any_Handler.cpp:
+ * tools/Config_Handlers/Basic_Deployment_Data.hpp:
+ * tools/Config_Handlers/Basic_Deployment_Data.cpp:
+ * tools/Config_Handlers/CCD_Handler.cpp:
+ * tools/Config_Handlers/CEPE_Handler.cpp:
+ * tools/Config_Handlers/CPD_Handler.cpp:
+ * tools/Config_Handlers/CRDD_Handler.cpp:
+ * tools/Config_Handlers/Common.h:
+ * tools/Config_Handlers/ComponentPropertyDescription_Handler.cpp:
+ * tools/Config_Handlers/DD_Handler.cpp:
+ * tools/Config_Handlers/DP_Handler.cpp:
+ * tools/Config_Handlers/Deployment.cpp:
+ * tools/Config_Handlers/Deployment.hpp:
+ * tools/Config_Handlers/DynAny_Handler/DynAlias_Handler.cpp:
+ * tools/Config_Handlers/DynAny_Handler/DynAny_Handler.h:
+ * tools/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp:
+ * tools/Config_Handlers/DynAny_Handler/DynEnum_Handler.cpp:
+ * tools/Config_Handlers/DynAny_Handler/DynSequence_Handler.cpp:
+ * tools/Config_Handlers/DynAny_Handler/DynStruct_Handler.cpp:
+ * tools/Config_Handlers/ERE_Handler.cpp:
+ * tools/Config_Handlers/IDD_Handler.cpp:
+ * tools/Config_Handlers/IDREF_Base.h:
+ * tools/Config_Handlers/IDREF_Base.cpp:
+ * tools/Config_Handlers/ID_Handler.cpp:
+ * tools/Config_Handlers/IRDD_Handler.cpp:
+ * tools/Config_Handlers/MDD_Handler.cpp:
+ * tools/Config_Handlers/PCD_Handler.cpp:
+ * tools/Config_Handlers/PSPE_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/CAD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/CID_Handler.h:
+ * tools/Config_Handlers/Package_Handlers/CID_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/CPD_Handler.h:
+ * tools/Config_Handlers/Package_Handlers/CPD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.h:
+ * tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/IAD_Handler.h:
+ * tools/Config_Handlers/Package_Handlers/IAD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/NIA_Handler.h:
+ * tools/Config_Handlers/Package_Handlers/PCD_Handler.h:
+ * tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/SID_Handler.cpp:
+ * tools/Config_Handlers/Property_Handler.cpp:
+ * tools/Config_Handlers/RDD_Handler.cpp:
+ * tools/Config_Handlers/Req_Handler.cpp:
+ * tools/Config_Handlers/SatisfierProperty_Handler.cpp:
+ * tools/Config_Handlers/Utils/Exceptions.h:
+ * tools/Config_Handlers/Utils/Functors.h:
+ * tools/Config_Handlers/XMI.cpp:
+ * tools/Config_Handlers/XMI.hpp:
+ * tools/Config_Handlers/XMLSchema/id_map.hpp:
+ * tools/Config_Handlers/XML_File_Intf.h:
+ * tools/Config_Handlers/XML_File_Intf.cpp:
+ * tools/Config_Handlers/XSCRT/Elements.hpp:
+ * tools/Config_Handlers/ccd.cpp:
+ * tools/Config_Handlers/ccd.hpp:
+ * tools/Config_Handlers/cdd.hpp:
+ * tools/Config_Handlers/cdd.cpp:
+ * tools/Config_Handlers/cdp.cpp:
+ * tools/Config_Handlers/cdp.hpp:
+ * tools/Config_Handlers/cid.hpp:
+ * tools/Config_Handlers/cid.cpp:
+ * tools/Config_Handlers/cpd.hpp:
+ * tools/Config_Handlers/cpd.cpp:
+ * tools/Config_Handlers/iad.cpp:
+ * tools/Config_Handlers/iad.hpp:
+ * tools/Config_Handlers/pcd.hpp:
+ * tools/Config_Handlers/pcd.cpp:
+ * tools/Config_Handlers/toplevel.cpp:
+ * tools/Config_Handlers/toplevel.hpp:
+ * tools/IDL3_to_XMI/IDL3_to_XMI_visitor.cpp:
+ * tools/XML/XML_Helper.tpp:
+ * tools/XML/XercesString.h:
+ * tools/XML/XercesString.cpp:
+
+ Unicode compile fixes.
+
+Mon Aug 10 14:23:39 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * dds4ccm/examples/Hello/descriptors/run_1_to_5.pl
+ * dds4ccm/examples/Hello/descriptors/run_5_to_1.pl
+ * dds4ccm/examples/Hello/descriptors/run_5_to_5.pl
+ * dds4ccm/examples/Hello/descriptors/run_test.pl
+ Added missing \n
+
+Mon Aug 10 14:12:39 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/ComponentServer/CIAO_Container_Impl.cpp:
+ Fixed layout of debug message
+
+Mon Aug 10 12:59:21 UTC 2009 William R. Otte <Wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Logger/File_Logger_Backend.h:
+ * DAnCE/Logger/Logger_Service.cpp:
+
+ Unicoe fixes.
+
+Mon Aug 10 10:53:39 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/tests/CIAO/Components/SimpleNilFacetProvider.idl
+ * DAnCE/tests/CIAO/Components/SimpleNilFacetProvider.mpc
+ * DAnCE/tests/CIAO/Components/SimpleNilFacetProvider_exec.cpp
+ * DAnCE/tests/CIAO/Components/SimpleNilFacetProvider_exec.h
+ * DAnCE/tests/CIAO/Components/SimpleNilFacetUser.idl
+ * DAnCE/tests/CIAO/Components/SimpleNilFacetUser.mpc
+ * DAnCE/tests/CIAO/Components/SimpleNilFacetUser_exec.cpp
+ * DAnCE/tests/CIAO/Components/SimpleNilFacetUser_exec.h
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NilFacet.cdp
+ Added a new test for the case where the component that
+ provides return a nil object reference. The caller should
+ then get an INV_OBJREF exception, not a crash.
+
+ The CCM spec says in 6.4.2:
+ In general, a component instance shall be prepared to return object
+ references for facets throughout the instance's life
+ cycle. A component implementation may, as part of its advertised
+ behavior, return a nil object reference as the result of
+ a provide_<name> operation
+
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.cpp
+ Catch as const
+
+ * DAnCE/tests/DeploymentPlanDump/test.cpp:
+ Layout change
+
+ * DAnCE/tests/DeploymentPlanTestReferences/test.cpp:
+ Type, unicode changes
+
+ * DAnCE/tests/NameServiceTest/clt_main.cpp:
+ Unicode fix
+
+ * DAnCE/tests/NodeManager-NodeApplicationManager/test.cpp:
+ Layout change
+
+Mon Aug 10 09:00:39 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/tests/CIAO/Components/ProcessColocation_exec.cpp:
+ Unicode fixes
+
+Mon Aug 10 08:53:39 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/idl/dds_rtf2_dcps.idl
+ * connectors/dds4ccm/impl/ndds/RawListener.h
+ Fixed fuzz errors
+
+Mon Aug 10 07:44:39 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.cpp
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.h
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.idl
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Base.idl
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector.idl
+ * connectors/dds4ccm/idl/dds4ccm.mpc
+ * connectors/dds4ccm/impl/ndds/Duration_t.h
+ * connectors/dds4ccm/impl/ndds/ndds_impl.mpc
+ * connectors/dds4ccm/impl/ndds/RawListener.cpp
+ * connectors/dds4ccm/impl/ndds/Reader.cpp
+ * connectors/dds4ccm/impl/ndds/Reader.h
+ * connectors/dds4ccm/impl/ndds/SampleLostStatus.h
+ * connectors/dds4ccm/impl/ndds/SubscriptionMatchedStatus.h
+ * connectors/dds4ccm/impl/ndds/Time_t.h
+ * connectors/dds4ccm/impl/ndds/Utils.h
+ Fixed fuzz errors
+
+Sun Aug 9 20:20:39 UTC 2009 William R. Otte <Wotte@dre.vanderbilt.edu>
+
+ * .:
+ * CIAO-INSTALL.html:
+ * CIAO.mwc:
+ * CIAO_DAnCE.mwc:
+ * CIAO_TAO.mwc:
+ * CIAO_TAO_DAnCE.mwc:
+ * COPYING:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ * DAnCE/RepositoryManager:
+ * DAnCE/tests/CIAO/Components/ProcessColocation.idl:
+ * DAnCE/tests/CIAO/Components/ProcessColocation.mpc:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/SimpleProcessColocation.cdp:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/TwoComponentsOneHome.cdp:
+ * MPC:
+ * MPC/config/ciao_dds4ccm_ndds_impl.mpb:
+ * MPC/config/ciao_example_output.mpb:
+ * NEWS:
+ * bin:
+ * bin/ciao_tests.lst:
+ * ccm/ComponentServer/CCM_ComponentServer.idl:
+ * ccm/ComponentServer/CCM_ComponentServer.mpc:
+ * ccm/ComponentServer/CCM_ComponentServer_Base.idl:
+ * ccm/ComponentServer/CCM_ComponentServer_Client.idl:
+ * ciao:
+ * ciao/ComponentServer/CIAO_ComponentInstallation_Impl.cpp:
+ * ciao/ComponentServer/CIAO_ComponentServer.cpp:
+ * ciao/ComponentServer/CIAO_Container_Impl.cpp:
+ * ciao/Containers/Servant_Activator.h:
+ * ciao/Containers/Servant_Activator.cpp:
+ * ciao/Containers/Session/Session_Container.cpp:
+ * ciao/Servants/Home_Servant_Impl_T.h:
+ * ciao/Servants/Home_Servant_Impl_T.cpp:
+ * ciao/Servants/Servant_Impl_Base.cpp:
+ * connectors:
+ * connectors/dds4ccm:
+ * connectors/dds4ccm/examples:
+ * connectors/dds4ccm/examples/Hello:
+ * connectors/dds4ccm/examples/Hello/DDS_Receiver:
+ * connectors/dds4ccm/examples/Hello/DDS_Receiver/DDS_Receiver.mpc:
+ * connectors/dds4ccm/examples/Hello/DDS_Receiver/Hello_Receiver.cpp:
+ * connectors/dds4ccm/examples/Hello/DDS_Sender:
+ * connectors/dds4ccm/examples/Hello/DDS_Sender/DDS_Sender.mpc:
+ * connectors/dds4ccm/examples/Hello/DDS_Sender/Hello_Sender.cpp:
+ * connectors/dds4ccm/examples/Hello/Receiver:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.idl:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.idl3p:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.mpc:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Base.idl:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Base.mpc:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector.idl:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector.mpc:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_ConnectorE.idl:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.h:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.cpp:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.h:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp:
+ * connectors/dds4ccm/examples/Hello/Sender:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.idl:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.idl3p:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.mpc:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Base.idl:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Base.mpc:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector.idl:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector.mpc:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_ConnectorE.idl:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector_exec.h:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector_exec.cpp:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.h:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp:
+ * connectors/dds4ccm/examples/Hello/descriptors:
+ * connectors/dds4ccm/examples/Hello/descriptors/1_to_5.cdp:
+ * connectors/dds4ccm/examples/Hello/descriptors/5_Receivers.cdp:
+ * connectors/dds4ccm/examples/Hello/descriptors/5_Senders.cdp:
+ * connectors/dds4ccm/examples/Hello/descriptors/5_to_1.cdp:
+ * connectors/dds4ccm/examples/Hello/descriptors/DeploymentPlan.cdp:
+ * connectors/dds4ccm/examples/Hello/descriptors/ReceiverOnly.cdp:
+ * connectors/dds4ccm/examples/Hello/descriptors/SenderOnly.cdp:
+ * connectors/dds4ccm/examples/Hello/descriptors/run_1_to_5.pl:
+ * connectors/dds4ccm/examples/Hello/descriptors/run_5_to_1.pl:
+ * connectors/dds4ccm/examples/Hello/descriptors/run_5_to_5.pl:
+ * connectors/dds4ccm/examples/Hello/descriptors/run_receiver.pl:
+ * connectors/dds4ccm/examples/Hello/descriptors/run_sender.pl:
+ * connectors/dds4ccm/examples/Hello/descriptors/run_test.pl:
+ * connectors/dds4ccm/id3p_test:
+ * connectors/dds4ccm/id3p_test/Multiple_Reader_Ports:
+ * connectors/dds4ccm/id3p_test/Multiple_Reader_Ports/test.idl3p:
+ * connectors/dds4ccm/idl:
+ * connectors/dds4ccm/idl/dds4ccm.mpc:
+ * connectors/dds4ccm/idl/dds4ccm_Base.idl3:
+ * connectors/dds4ccm/idl/dds4ccm_ConnectorStatusListener.idl3:
+ * connectors/dds4ccm/idl/dds4ccm_Connector_Base.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Connector_Event.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Connector_State.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Getter.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_ListenerControl.idl3:
+ * connectors/dds4ccm/idl/dds4ccm_MultiListener.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_MultiUpdater.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_MultiWriter.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_PortStatusListener.idl3:
+ * connectors/dds4ccm/idl/dds4ccm_Port_Get.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_MultiListen.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_MultiUpdate.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_MultiWrite.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_RawListen.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_Read.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_StateListen.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_Update.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_Write.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_RawListener.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Reader.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_StateListener.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Updater.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Writer.idl3p:
+ * connectors/dds4ccm/idl/dds_rtf2_dcps.idl:
+ * connectors/dds4ccm/impl:
+ * connectors/dds4ccm/impl/ndds:
+ * connectors/dds4ccm/impl/ndds/DataReader.h:
+ * connectors/dds4ccm/impl/ndds/DataReader.cpp:
+ * connectors/dds4ccm/impl/ndds/DataReaderListener.h:
+ * connectors/dds4ccm/impl/ndds/DataReaderListener.cpp:
+ * connectors/dds4ccm/impl/ndds/DataWriter.h:
+ * connectors/dds4ccm/impl/ndds/DataWriter.cpp:
+ * connectors/dds4ccm/impl/ndds/DataWriterListener.h:
+ * connectors/dds4ccm/impl/ndds/DataWriterListener.cpp:
+ * connectors/dds4ccm/impl/ndds/DomainParticipant.h:
+ * connectors/dds4ccm/impl/ndds/DomainParticipant.cpp:
+ * connectors/dds4ccm/impl/ndds/DomainParticipantFactory.h:
+ * connectors/dds4ccm/impl/ndds/DomainParticipantFactory.cpp:
+ * connectors/dds4ccm/impl/ndds/Duration_t.h:
+ * connectors/dds4ccm/impl/ndds/InconsistentTopicStatus.h:
+ * connectors/dds4ccm/impl/ndds/InstanceHandleSeq.h:
+ * connectors/dds4ccm/impl/ndds/InstanceHandle_t.h:
+ * connectors/dds4ccm/impl/ndds/ListenerControl.h:
+ * connectors/dds4ccm/impl/ndds/ListenerControl.cpp:
+ * connectors/dds4ccm/impl/ndds/LivelinessChangedStatus.h:
+ * connectors/dds4ccm/impl/ndds/LivelinessLostStatus.h:
+ * connectors/dds4ccm/impl/ndds/NDDS_Traits.h:
+ * connectors/dds4ccm/impl/ndds/OfferedDeadlineMissedStatus.h:
+ * connectors/dds4ccm/impl/ndds/OfferedIncompatibleQosStatus.h:
+ * connectors/dds4ccm/impl/ndds/PortStatusListener.h:
+ * connectors/dds4ccm/impl/ndds/PortStatusListener.cpp:
+ * connectors/dds4ccm/impl/ndds/PublicationMatchedStatus.h:
+ * connectors/dds4ccm/impl/ndds/Publisher.h:
+ * connectors/dds4ccm/impl/ndds/Publisher.cpp:
+ * connectors/dds4ccm/impl/ndds/PublisherListener.h:
+ * connectors/dds4ccm/impl/ndds/PublisherListener.cpp:
+ * connectors/dds4ccm/impl/ndds/QosPolicyCountSeq.h:
+ * connectors/dds4ccm/impl/ndds/QueryCondition.h:
+ * connectors/dds4ccm/impl/ndds/QueryCondition.cpp:
+ * connectors/dds4ccm/impl/ndds/RawListener.h:
+ * connectors/dds4ccm/impl/ndds/RawListener.cpp:
+ * connectors/dds4ccm/impl/ndds/ReadCondition.h:
+ * connectors/dds4ccm/impl/ndds/ReadCondition.cpp:
+ * connectors/dds4ccm/impl/ndds/Reader.h:
+ * connectors/dds4ccm/impl/ndds/Reader.cpp:
+ * connectors/dds4ccm/impl/ndds/RequestedDeadlineMissedStatus.h:
+ * connectors/dds4ccm/impl/ndds/RequestedIncompatibleQosStatus.h:
+ * connectors/dds4ccm/impl/ndds/SampleLostStatus.h:
+ * connectors/dds4ccm/impl/ndds/SampleRejectedStatus.h:
+ * connectors/dds4ccm/impl/ndds/StatusCondition.h:
+ * connectors/dds4ccm/impl/ndds/StatusCondition.cpp:
+ * connectors/dds4ccm/impl/ndds/Subscriber.h:
+ * connectors/dds4ccm/impl/ndds/Subscriber.cpp:
+ * connectors/dds4ccm/impl/ndds/SubscriberListener.h:
+ * connectors/dds4ccm/impl/ndds/SubscriberListener.cpp:
+ * connectors/dds4ccm/impl/ndds/SubscriptionMatchedStatus.h:
+ * connectors/dds4ccm/impl/ndds/Time_t.h:
+ * connectors/dds4ccm/impl/ndds/Topic.h:
+ * connectors/dds4ccm/impl/ndds/Topic.cpp:
+ * connectors/dds4ccm/impl/ndds/TopicDescription.h:
+ * connectors/dds4ccm/impl/ndds/TopicDescription.cpp:
+ * connectors/dds4ccm/impl/ndds/Utils.h:
+ * connectors/dds4ccm/impl/ndds/Utils.cpp:
+ * connectors/dds4ccm/impl/ndds/Writer.h:
+ * connectors/dds4ccm/impl/ndds/Writer.tpp:
+ * connectors/dds4ccm/impl/ndds/dds4ccm_ndds_impl_export.h:
+ * connectors/dds4ccm/impl/ndds/ndds_impl.mpc:
+ * docs:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor_exec.cpp:
+ * etc/ciao.doxygen:
+ * etc/ciao_DAnCE.doxygen:
+ * etc/ciao_config_handlers.doxygen:
+ * examples:
+ * examples/DevGuideExamples:
+ * examples/Hello/descriptors/Aliased_Map.dat:
+ * examples/Hello/descriptors/run_test_alias.pl:
+ * examples/Null_Component/descriptors/run_test.pl:
+ * performance-tests:
+ * rules.ciao.GNU:
+ * tests:
+ * tests/IDL_Test/Reused_Facet_Interface/Reused_Facet_Interface.mpc:
+ * tools:
+ * tools/Config_Handlers/XMLSchema/id_map.hpp:
+ * DAnCE/MPC/config/dance_plan_launcher_base.mpb:
+ * MPC/config/example_output.mpb:
+
+ Merged in branch dds_ports. Changelog entries:
+
+ Fri Aug 7 19:46:43 UTC 2009 William R. Otte <Wotte@dre.vanderbilt.edu>
+
+ * bin/ciao_tests.lst:
+
+ Added dds4ccm tests.
+
+ * connectors/dds4ccm/examples/Hello/DDS_Sender/Hello_Sender.cpp:
+
+ Added 2 second delay after initialization and before sending.
+
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector_exec.cpp:
+
+ Configure dds during configuration_complete, to ensure delayed initialization
+ doesn't mees up our receiver counts.
+
+ * connectors/dds4ccm/examples/Hello/descriptors/5_Receivers.cdp:
+ * connectors/dds4ccm/examples/Hello/descriptors/5_to_1.cdp:
+
+ initialize expected_samples attribute to correctly account for the
+ expected number of senders.
+
+ Fri Aug 7 19:15:30 UTC 2009 William R. Otte <Wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/XMLSchema/id_map.hpp:
+
+ Compile fixes for sun studio 12.
+
+ Fri Aug 7 14:21:34 UTC 2009 William R. Otte <Wotte@dre.vanderbilt.edu>
+
+ * connectors/dds4ccm/examples/Hello/descriptors/5_Receivers.cdp:
+ * connectors/dds4ccm/examples/Hello/descriptors/5_Senders.cdp:
+ * connectors/dds4ccm/examples/Hello/descriptors/run_5_to_5.pl:
+
+ 5_to_5 behavior. This deploys the senders/receivers as part of
+ separate plans. It seems that the delayed servant activation may be
+ causing problems with discovery, leaving the receivers recieving less
+ than 50 messages each.
+
+ Fri Aug 7 14:00:45 UTC 2009 William R. Otte <Wotte@dre.vanderbilt.edu>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.idl:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.h:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp:
+
+ Added name attribute to identify receivers.
+
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp:
+
+ Increased wait time before starting sending task to allow
+ more time for discovery.
+
+ * connectors/dds4ccm/examples/Hello/descriptors/1_to_5.cdp:
+ * connectors/dds4ccm/examples/Hello/descriptors/run_1_to_5.pl:
+
+ Test for 1 to 5 communication.
+
+ * connectors/dds4ccm/examples/Hello/descriptors/run_5_to_1.pl:
+ * connectors/dds4ccm/examples/Hello/descriptors/run_receiver.pl:
+ * connectors/dds4ccm/examples/Hello/descriptors/run_sender.pl:
+ * connectors/dds4ccm/examples/Hello/descriptors/run_test.pl:
+
+ Increased timeouts.
+
+ Fri Aug 7 13:50:19 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp:
+ Use ACE_NEW_NORETURN in the get entry point method so that we only
+ have one exit point
+
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector_exec.cpp:
+ Comment out the multiwriter code, just for testing
+
+ Fri Aug 7 13:21:19 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.cpp:
+ Use the safer set_session_context as now generated by TAO_IDL
+
+ Fri Aug 7 12:57:19 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/ComponentServer/CIAO_Container_Impl.cpp:
+ Fixed typo in debug statements
+
+ * ciao/Containers/Session/Session_Container.cpp:
+ Improved debug statements
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.cpp:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.h:
+ Use CCM_DDS::DataReader directly, saves an indirection step
+
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector_exec.cpp:
+ Added some comments
+
+ * connectors/dds4ccm/impl/ndds/DataWriter.h:
+ Get the DDSDataWriter from the global scope
+
+ Fri Aug 7 11:44:30 UTC 2009 William R. Otte <Wotte@dre.vanderbilt.edu>
+
+ * ciao/Containers/Servant_Activator.h:
+ * ciao/Containers/Servant_Activator.cpp:
+ * ciao/Servants/Servant_Impl_Base.cpp:
+
+ Re-implemented the servant activator to address a crash at
+ teardown.
+
+ Fri Aug 7 11:11:19 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Servants/Servant_Impl_Base.cpp:
+ Some more defensive programming and pluged a memory leak
+
+ Thu Aug 6 15:32:19 UTC 2009 William R. Otte <Wotte@dre.vanderbilt.edu>
+
+ * ciao/Servants/Home_Servant_Impl_T.h:
+ * ciao/Servants/Home_Servant_Impl_T.cpp:
+
+ Second part of fix for
+ Thu Aug 6 01:46:32 UTC 2009 William R. Otte <Wotte@dre.vanderbilt.edu>,
+ now bug 3725. Homes how keep an increasing serial counter of the home
+ instances they create, and append this number to the instance ID passed
+ to the component servant when it is instantiated.
+
+ Thu Aug 6 13:46:11 UTC 2009 William R. Otte <Wotte@dre.vanderbilt.edu>
+
+ * ciao/Containers/Servant_Activator.cpp:
+ * ciao/Servants/Home_Servant_Impl_T.h:
+ * ciao/Servants/Home_Servant_Impl_T.cpp:
+
+ Various logging improvements, as well as a *partial* fix for
+ Thu Aug 6 01:46:32 UTC 2009 William R. Otte <Wotte@dre.vanderbilt.edu>,
+ allowing multiple homes of the *same type* to deploy/manage a single component
+ each. Part of the problem was memory corruption in the home/component instance
+ name, which has been resolved by using ACE_CString instead of naked char *s to
+ store these.
+
+ Homes which host multiple components are still broken, as the facet ObjectID,
+ while no longer garbage, is the same for all instances managed by that home.
+
+ * ciao/Containers/Session/Session_Container.cpp:
+
+ Newline on log message.
+
+ Thu Aug 6 13:39:16 UTC 2009 William R. Otte <Wotte@dre.vanderbilt.edu>
+
+ * connectors/dds4ccm/examples/Hello/descriptors/5_to_1.cdp:
+
+ Updated to use separate homes for each sender/connector to workaround
+ the bug checked in with:
+
+ Thu Aug 6 01:46:32 UTC 2009 William R. Otte <Wotte@dre.vanderbilt.edu>
+
+ Thu Aug 6 11:29:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/ComponentServer/CIAO_Container_Impl.cpp
+ * ciao/Containers/Session/Session_Container.cpp
+ * ciao/Servants/Servant_Impl_Base.cpp
+ More defensive programming against nil object references
+
+ Thu Aug 6 08:43:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Containers/Servant_Activator.cpp
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.cpp
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.h
+ Fixed compile warnings
+
+ Thu Aug 6 01:46:32 UTC 2009 William R. Otte <Wotte@dre.vanderbilt.edu>
+
+ * DAnCE/tests/CIAO/NodeManager-Deployments/TwoComponentsOneHome.cdp:
+
+ Added test plan that exhibits a problem when the same home is used
+ to deploy two components that provide facets. The problem is that
+ the servant activator/port activator only really tracks a SINGLE
+ facet instance PER HOME. This would produce runtime side effects
+ for components with stateful facet executors, but especially causes
+ a problem during teardown, when the container attempts to
+ repeatedly deactivate the single facet servant.
+
+ Wed Aug 5 18:58:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp
+ Improved debug messages
+
+ Wed Aug 5 18:05:29 UTC 2009 William R. Otte <Wotte@dre.vanderbilt.edu>
+
+ * connectors/dds4ccm/examples/Hello/descriptors/5_to_1.cdp:
+ * connectors/dds4ccm/examples/Hello/descriptors/run_5_to_1.pl:
+
+ Plan modifications/test script for many to one communication.
+ This appears to expose another bug in CIAO, investigating.
+
+ Wed Aug 5 17:44:03 UTC 2009 William R. Otte <Wotte@dre.vanderbilt.edu>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp:
+
+ Log message tweak.
+
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.h:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp:
+
+ Spawn a thread to do sending, necessary to multiple sender tests,
+ as ccm_activate would block until completion.
+
+ * connectors/dds4ccm/examples/Hello/descriptors/run_sender.pl:
+ * connectors/dds4ccm/examples/Hello/descriptors/run_test.pl:
+
+ Added a sleep between deployment/teardown to accomodate
+ new sender behavior.
+
+ * connectors/dds4ccm/examples/Hello/descriptors/5_to_1.cdp:
+
+ Plan that deploys 5 to 1 communication.
+
+ Wed Aug 5 14:39:36 UTC 2009 William R. Otte <Wotte@dre.vanderbilt.edu>
+
+ * ciao/ComponentServer/CIAO_ComponentInstallation_Impl.cpp:
+
+ Changed severity of logging for replacement of already present
+ artifact info.
+
+ Wed Aug 5 14:38:22 UTC 2009 William R. Otte <Wotte@dre.vanderbilt.edu>
+
+ * ciao/Containers/Servant_Activator.cpp:
+
+ Fixed bug whereby the port activator for a servant would never be found.
+
+ Wed Aug 5 14:25:09 UTC 2009 William R. Otte <Wotte@dre.vanderbilt.edu>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.idl:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.h:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp:
+
+ Added some configuration attributes to provide a hint to the receiver as to
+ how many samples it should be receiving.
+
+ Wed Aug 5 14:00:06 UTC 2009 William R. Otte <Wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ * ciao/ComponentServer/CIAO_Container_Impl.cpp:
+ * ciao/Containers/Session/Session_Container.cpp:
+
+ Fixed a couple bugs whereby homed and unhomed components didn't
+ have their end of lifecycle events (passivate/remove) invoked
+ during teardown.
+
+ Wed Aug 5 08:18:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/descriptors/run_receiver.pl:
+ Use "" instead of ''
+
+ Wed Aug 5 08:13:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.cpp:
+ Implemented more methods
+
+ * connectors/dds4ccm/idl/dds4ccm_Base.idl3:
+ Use DDS sequences
+
+ * connectors/dds4ccm/impl/ndds/InstanceHandleSeq.h:
+ Use a template for the conversion, we need to factor out conversion of all
+ sequences
+
+ Tue Aug 4 16:00:02 UTC 2009 William R. Otte <Wotte@dre.vanderbilt.edu>
+
+ * connectors/dds4ccm/examples/Hello/descriptors/ReceiverOnly.cdp:
+ * connectors/dds4ccm/examples/Hello/descriptors/run_receiver.pl:
+
+ Added plan/test script to deploy only a receiver component and
+ send messages using the RTI DDS sender.
+
+ Tue Aug 4 15:04:21 UTC 2009 William R. Otte <Wotte@dre.vanderbilt.edu>
+
+ * connectors/dds4ccm/examples/Hello/DDS_Receiver/Hello_Receiver.cpp:
+
+ Add command line parameter to automatically shut down after a given
+ number of samples.
+
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.idl:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.h:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp:
+
+ Added configuration attributes for number of samples and message.
+
+ * connectors/dds4ccm/examples/Hello/descriptors/SenderOnly.cdp:
+ * connectors/dds4ccm/examples/Hello/descriptors/run_sender.pl:
+
+ Added plan/test script to deploy only a Sender component and receive
+ messages using the raw DDS_Receiver.
+
+ * connectors/dds4ccm/impl/ndds/SampleRejectedStatus.h:
+ * connectors/dds4ccm/impl/ndds/Writer.h:
+
+ Compile fixes.
+
+ Tue Aug 4 12:27:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.cpp
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.h
+ Started with the QueryFilter support
+
+ Tue Aug 4 12:05:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.cpp:
+ Implement a few more methods
+
+ Mon Aug 3 14:00:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector_exec.cpp
+ * connectors/dds4ccm/impl/ndds/Writer.h
+ * connectors/dds4ccm/impl/ndds/Writer.tpp
+ Added write with a set for the MultiWriter
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.cpp
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.h
+ Start with the reader implementation
+
+ Mon Aug 3 12:46:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.cpp:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.h:
+ Moved HelloListener to the cpp file. Added an enabled flag to
+ be able to stop publishing data, default is now true,
+ should be modified to false later
+
+ Fri Jul 31 14:27:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/DataReader.cpp
+ * connectors/dds4ccm/impl/ndds/DomainParticipant.cpp
+ * connectors/dds4ccm/impl/ndds/QueryCondition.cpp
+ More glue code
+
+ Fri Jul 31 13:46:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/DataReader.cpp
+ * connectors/dds4ccm/impl/ndds/DataWriter.cpp
+ * connectors/dds4ccm/impl/ndds/DomainParticipant.cpp
+ * connectors/dds4ccm/impl/ndds/InstanceHandle_t.h
+ * connectors/dds4ccm/impl/ndds/InstanceHandleSeq.h
+ Added InstanceHandleSeq support. Note that we have added a new
+ trait to the CORBA sequences, knowing _size_type.
+
+ Fri Jul 31 12:43:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/DataReader.cpp
+ * connectors/dds4ccm/impl/ndds/DataWriter.cpp
+ * connectors/dds4ccm/impl/ndds/DomainParticipant.cpp
+ * connectors/dds4ccm/impl/ndds/Publisher.cpp
+ * connectors/dds4ccm/impl/ndds/PublisherListener.cpp
+ * connectors/dds4ccm/impl/ndds/PublisherListener.h
+ * connectors/dds4ccm/impl/ndds/Subscriber.cpp
+ * connectors/dds4ccm/impl/ndds/Topic.cpp
+ More methods and more states
+
+ Fri Jul 31 12:12:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/DomainParticipantFactory.cpp
+ * connectors/dds4ccm/impl/ndds/DomainParticipantFactory.h
+ * connectors/dds4ccm/impl/ndds/Subscriber.cpp
+ * connectors/dds4ccm/impl/ndds/SubscriberListener.cpp
+ * connectors/dds4ccm/impl/ndds/SubscriberListener.h
+ * connectors/dds4ccm/impl/ndds/Writer.tpp
+ Fixed some small bugs, the example compiles again
+
+ Fri Jul 31 11:41:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/DataWriterListener.cpp
+ * connectors/dds4ccm/impl/ndds/LivelinessLostStatus.h
+ * connectors/dds4ccm/impl/ndds/OfferedDeadlineMissedStatus.h
+ * connectors/dds4ccm/impl/ndds/OfferedIncompatibleQosStatus.h
+ * connectors/dds4ccm/impl/ndds/PublicationMatchedStatus.h
+ DataWriterListener is now implemented
+
+ Fri Jul 31 11:26:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/DataReaderListener.cpp
+ * connectors/dds4ccm/impl/ndds/QosPolicyCountSeq.h
+ * connectors/dds4ccm/impl/ndds/RequestedIncompatibleQosStatus.h
+ DataReaderListener is now fully implemented
+
+ Fri Jul 31 11:13:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/DataReaderListener.cpp
+ * connectors/dds4ccm/impl/ndds/LivelinessChangedStatus.h
+ * connectors/dds4ccm/impl/ndds/RequestedDeadlineMissedStatus.h
+ Added some more status conversions
+
+ Fri Jul 31 11:05:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/DataReader.cpp
+ * connectors/dds4ccm/impl/ndds/DataReader.h
+ * connectors/dds4ccm/impl/ndds/DataReaderListener.cpp
+ * connectors/dds4ccm/impl/ndds/DataReaderListener.h
+ * connectors/dds4ccm/impl/ndds/DataWriter.cpp
+ * connectors/dds4ccm/impl/ndds/DataWriter.h
+ * connectors/dds4ccm/impl/ndds/DataWriterListener.cpp
+ * connectors/dds4ccm/impl/ndds/DataWriterListener.h
+ * connectors/dds4ccm/impl/ndds/DomainParticipant.cpp
+ * connectors/dds4ccm/impl/ndds/DomainParticipant.h
+ * connectors/dds4ccm/impl/ndds/DomainParticipantFactory.cpp
+ * connectors/dds4ccm/impl/ndds/DomainParticipantFactory.h
+ * connectors/dds4ccm/impl/ndds/Publisher.cpp
+ * connectors/dds4ccm/impl/ndds/Publisher.h
+ * connectors/dds4ccm/impl/ndds/PublisherListener.cpp
+ * connectors/dds4ccm/impl/ndds/PublisherListener.h
+ * connectors/dds4ccm/impl/ndds/QueryCondition.cpp
+ * connectors/dds4ccm/impl/ndds/QueryCondition.h
+ * connectors/dds4ccm/impl/ndds/ReadCondition.cpp
+ * connectors/dds4ccm/impl/ndds/ReadCondition.h
+ * connectors/dds4ccm/impl/ndds/StatusCondition.cpp
+ * connectors/dds4ccm/impl/ndds/StatusCondition.h
+ * connectors/dds4ccm/impl/ndds/Subscriber.cpp
+ * connectors/dds4ccm/impl/ndds/Subscriber.h
+ * connectors/dds4ccm/impl/ndds/SubscriberListener.cpp
+ * connectors/dds4ccm/impl/ndds/SubscriberListener.h
+ * connectors/dds4ccm/impl/ndds/Topic.cpp
+ * connectors/dds4ccm/impl/ndds/Topic.h
+ * connectors/dds4ccm/impl/ndds/TopicDescription.cpp
+ * connectors/dds4ccm/impl/ndds/TopicDescription.h
+ * connectors/dds4ccm/impl/ndds/Writer.h
+ Renamed the member to impl_, that way we can more easily copy
+ code from one wrapper to another
+
+ Fri Jul 31 10:49:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/DataReaderListener.h
+ * connectors/dds4ccm/impl/ndds/DomainParticipant.h
+ * connectors/dds4ccm/impl/ndds/DomainParticipantFactory.h
+ * connectors/dds4ccm/impl/ndds/PortStatusListener.h
+ * connectors/dds4ccm/impl/ndds/Publisher.h
+ * connectors/dds4ccm/impl/ndds/PublisherListener.h
+ * connectors/dds4ccm/impl/ndds/QueryCondition.h
+ * connectors/dds4ccm/impl/ndds/ReadCondition.h
+ * connectors/dds4ccm/impl/ndds/StatusCondition.h
+ * connectors/dds4ccm/impl/ndds/Subscriber.h
+ * connectors/dds4ccm/impl/ndds/SubscriberListener.h
+ * connectors/dds4ccm/impl/ndds/Topic.h
+ * connectors/dds4ccm/impl/ndds/TopicDescription.h
+ Use localobject
+
+ Fri Jul 31 08:57:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/DataReader.h
+ * connectors/dds4ccm/impl/ndds/DataReaderListener.h
+ * connectors/dds4ccm/impl/ndds/DataWriter.h
+ * connectors/dds4ccm/impl/ndds/DataWriterListener.h
+ * connectors/dds4ccm/impl/ndds/DomainParticipant.h
+ * connectors/dds4ccm/impl/ndds/DomainParticipantFactory.h
+ * connectors/dds4ccm/impl/ndds/Duration_t.h
+ * connectors/dds4ccm/impl/ndds/InstanceHandle_t.h
+ * connectors/dds4ccm/impl/ndds/ndds_impl.mpc
+ * connectors/dds4ccm/impl/ndds/PortStatusListener.h
+ * connectors/dds4ccm/impl/ndds/Publisher.h
+ * connectors/dds4ccm/impl/ndds/PublisherListener.h
+ * connectors/dds4ccm/impl/ndds/QueryCondition.h
+ * connectors/dds4ccm/impl/ndds/ReadCondition.h
+ * connectors/dds4ccm/impl/ndds/SampleLostStatus.h
+ * connectors/dds4ccm/impl/ndds/SampleRejectedStatus.h
+ * connectors/dds4ccm/impl/ndds/StatusCondition.h
+ * connectors/dds4ccm/impl/ndds/Subscriber.h
+ * connectors/dds4ccm/impl/ndds/SubscriberListener.h
+ * connectors/dds4ccm/impl/ndds/SubscriptionMatchedStatus.h
+ * connectors/dds4ccm/impl/ndds/Time_t.h
+ * connectors/dds4ccm/impl/ndds/Topic.h
+ * connectors/dds4ccm/impl/ndds/TopicDescription.h
+ * connectors/dds4ccm/impl/ndds/Writer.h
+ Added defines to prevent redefinitions, added same file
+ header
+
+ Fri Jul 31 08:28:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/DomainParticipant.cpp
+ * connectors/dds4ccm/impl/ndds/Publisher.cpp
+ * connectors/dds4ccm/impl/ndds/Subscriber.cpp
+ * connectors/dds4ccm/impl/ndds/Time_t.h
+ * connectors/dds4ccm/impl/ndds/Topic.cpp
+ * connectors/dds4ccm/impl/ndds/TopicDescription.cpp
+ More methods implemented
+
+ Thu Jul 30 13:54:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/DataReaderListener.cpp
+ * connectors/dds4ccm/impl/ndds/DataWriter.cpp
+ * connectors/dds4ccm/impl/ndds/DataWriterListener.cpp
+ * connectors/dds4ccm/impl/ndds/DataWriterListener.h
+ Implement more listen methods
+
+ Thu Jul 30 11:47:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/DataReader.cpp
+ * connectors/dds4ccm/impl/ndds/DataWriter.cpp
+ Implemented some more methods
+
+ Thu Jul 30 11:34:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/DataReader.cpp
+ * connectors/dds4ccm/impl/ndds/ndds_impl.mpc
+ * connectors/dds4ccm/impl/ndds/QueryCondition.cpp
+ * connectors/dds4ccm/impl/ndds/QueryCondition.h
+ Added QueryCondition
+
+ Thu Jul 30 11:18:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/DataReader.cpp
+ * connectors/dds4ccm/impl/ndds/DataWriter.cpp
+ * connectors/dds4ccm/impl/ndds/DomainParticipant.cpp
+ * connectors/dds4ccm/impl/ndds/InstanceHandle_t.h
+ * connectors/dds4ccm/impl/ndds/Publisher.cpp
+ * connectors/dds4ccm/impl/ndds/Subscriber.cpp
+ * connectors/dds4ccm/impl/ndds/Topic.cpp
+ Implemented all get_instance_handle methods
+
+ Thu Jul 30 11:05:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.cpp
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.h
+ * connectors/dds4ccm/idl/dds_rtf2_dcps.idl
+ * connectors/dds4ccm/impl/ndds/DataReader.cpp
+ * connectors/dds4ccm/impl/ndds/DataReader.h
+ * connectors/dds4ccm/impl/ndds/DataWriter.cpp
+ * connectors/dds4ccm/impl/ndds/DataWriter.h
+ * connectors/dds4ccm/impl/ndds/DomainParticipant.cpp
+ * connectors/dds4ccm/impl/ndds/DomainParticipant.h
+ Changed InstanceHandle_t to a struct that contains in the case of
+ RTI DDS an octet[16] and an unsigned long. The DDS spec gives
+ long as example but it can be vendor dependent. The problem with long
+ is that it is passed by value, a struct is const&. In case a different
+ vendor has to be used, change the NativeInstanceHandle_t struct
+ to contain a long, than all interfaces stay const&
+
+ Thu Jul 30 09:15:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/DataReader.cpp
+ * connectors/dds4ccm/impl/ndds/DataReaderListener.cpp
+ * connectors/dds4ccm/impl/ndds/SampleRejectedStatus.h
+ * connectors/dds4ccm/impl/ndds/SubscriberListener.cpp
+ Added SampleRejectedStatus
+
+ Thu Jul 30 09:03:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/DataReader.cpp
+ * connectors/dds4ccm/impl/ndds/DataReaderListener.cpp
+ * connectors/dds4ccm/impl/ndds/SubscriberListener.cpp
+ * connectors/dds4ccm/impl/ndds/SubscriptionMatchedStatus.h
+ Added SubscriptionMatchedStatus conversion
+
+ Thu Jul 30 08:16:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/DataReader.cpp
+ * connectors/dds4ccm/impl/ndds/DataWriter.cpp
+ * connectors/dds4ccm/impl/ndds/Duration_t.h
+ * connectors/dds4ccm/impl/ndds/Publisher.cpp
+ Added DDS_Duration_t conversion
+
+ Wed Jul 29 18:49:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/DataReader.cpp
+ * connectors/dds4ccm/impl/ndds/DataReaderListener.cpp
+ * connectors/dds4ccm/impl/ndds/Publisher.cpp
+ * connectors/dds4ccm/impl/ndds/SampleLostStatus.h
+ * connectors/dds4ccm/impl/ndds/Topic.cpp
+ Added SampleLostStatus
+
+ Wed Jul 29 18:16:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/DataReader.cpp
+ * connectors/dds4ccm/impl/ndds/ndds_impl.mpc
+ * connectors/dds4ccm/impl/ndds/Subscriber.cpp
+ * connectors/dds4ccm/impl/ndds/SubscriberListener.cpp
+ * connectors/dds4ccm/impl/ndds/Topic.cpp
+ * connectors/dds4ccm/impl/ndds/TopicDescription.cpp
+ * connectors/dds4ccm/impl/ndds/TopicDescription.h
+ Added TopicDescription
+
+ Wed Jul 29 13:36:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.cpp:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.h:
+ Port status listener implemented here, not to add that to the ndds
+ wrapper
+
+ Wed Jul 29 12:58:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.h
+ * connectors/dds4ccm/impl/ndds/DataReaderListener.cpp
+ * connectors/dds4ccm/impl/ndds/DataReaderListener.h
+ * connectors/dds4ccm/impl/ndds/DomainParticipant.h
+ * connectors/dds4ccm/impl/ndds/Subscriber.cpp
+ * connectors/dds4ccm/impl/ndds/Topic.cpp
+ The RTI_DDSDataReaderListener is now derived from the RTI base
+ class and is then passed to DDS. DDS then invokes back on this
+ RTI listener, this then delegates to the CORBA defined IDL
+ interface
+
+ Tue Jul 28 19:16:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/idl/dds_rtf2_dcps.idl:
+ corrected a few types, need to regenerate the E file
+
+ * connectors/dds4ccm/impl/ndds/DataWriter.cpp
+ * connectors/dds4ccm/impl/ndds/DataWriterListener.cpp
+ * connectors/dds4ccm/impl/ndds/DataWriterListener.h
+ * connectors/dds4ccm/impl/ndds/DomainParticipant.cpp
+ * connectors/dds4ccm/impl/ndds/DomainParticipantFactory.cpp
+ * connectors/dds4ccm/impl/ndds/Topic.cpp
+ Implemented another set of methods
+
+ Tue Jul 28 17:06:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/ndds_impl.mpc
+ * connectors/dds4ccm/impl/ndds/Publisher.cpp
+ * connectors/dds4ccm/impl/ndds/PublisherListener.cpp
+ * connectors/dds4ccm/impl/ndds/PublisherListener.h
+ added publisherlistener
+
+ Tue Jul 28 15:30:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/DataReaderListener.cpp
+ * connectors/dds4ccm/impl/ndds/Publisher.cpp
+ Again some more methods
+
+ Tue Jul 28 15:21:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/DomainParticipant.cpp
+ * connectors/dds4ccm/impl/ndds/Publisher.cpp
+ Implement some more methods, just the basic ones that don't need
+ any conversion/wrapping
+
+ Tue Jul 28 15:09:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/DDS_Receiver/Hello_Receiver.cpp
+ * connectors/dds4ccm/examples/Hello/DDS_Sender/Hello_Sender.cpp
+ Use ndds_namespace_cpp.h so that we get everything in the DDS namespace
+
+ Tue Jul 28 15:00:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.cpp
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector_exec.cpp
+ * connectors/dds4ccm/impl/ndds/DataReader.cpp
+ * connectors/dds4ccm/impl/ndds/DataWriter.cpp
+ * connectors/dds4ccm/impl/ndds/DataWriterListener.cpp
+ * connectors/dds4ccm/impl/ndds/DataWriterListener.h
+ * connectors/dds4ccm/impl/ndds/DomainParticipant.cpp
+ * connectors/dds4ccm/impl/ndds/DomainParticipant.h
+ * connectors/dds4ccm/impl/ndds/DomainParticipantFactory.cpp
+ * connectors/dds4ccm/impl/ndds/DomainParticipantFactory.h
+ * connectors/dds4ccm/impl/ndds/ndds_impl.mpc
+ * connectors/dds4ccm/impl/ndds/Participant.cpp
+ * connectors/dds4ccm/impl/ndds/Participant.h
+ * connectors/dds4ccm/impl/ndds/ParticipantFactory.cpp
+ * connectors/dds4ccm/impl/ndds/ParticipantFactory.h
+ * connectors/dds4ccm/impl/ndds/Subscriber.cpp
+ * connectors/dds4ccm/impl/ndds/Topic.h
+ Added DataWriterListener and added Domain prefix to the participant
+ files
+
+ Tue Jul 28 14:46:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/DataReader.cpp:
+ * connectors/dds4ccm/impl/ndds/ndds_impl.mpc:
+ * connectors/dds4ccm/impl/ndds/ReadCondition.cpp:
+ * connectors/dds4ccm/impl/ndds/ReadCondition.h:
+ * connectors/dds4ccm/impl/ndds/StatusCondition.h:
+ Added ReadCondition
+
+ Tue Jul 28 14:19:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.cpp
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.h
+ * connectors/dds4ccm/impl/ndds/DataReaderListener.cpp
+ * connectors/dds4ccm/impl/ndds/DataReaderListener.h
+ * connectors/dds4ccm/impl/ndds/Subscriber.cpp
+ Use the NDDS wrapper for the listener, that part is now working
+ again.
+
+ Tue Jul 28 13:25:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/DataReaderListener.cpp
+ * connectors/dds4ccm/impl/ndds/DataReaderListener.h
+ * connectors/dds4ccm/impl/ndds/ndds_impl.mpc
+ * connectors/dds4ccm/impl/ndds/Publisher.cpp
+ * connectors/dds4ccm/impl/ndds/Subscriber.cpp
+ Added DDS::DataReaderListener
+
+ Tue Jul 28 13:10:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/ndds_impl.mpc
+ * connectors/dds4ccm/impl/ndds/Participant.cpp
+ * connectors/dds4ccm/impl/ndds/StatusCondition.cpp
+ * connectors/dds4ccm/impl/ndds/StatusCondition.h
+ Added DDS:StatusCondition
+
+ Tue Jul 28 12:26:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/impl/ndds/ndds_impl.mpc
+ * connectors/dds4ccm/impl/ndds/Participant.cpp
+ * connectors/dds4ccm/impl/ndds/Subscriber.cpp
+ * connectors/dds4ccm/impl/ndds/SubscriberListener.cpp
+ * connectors/dds4ccm/impl/ndds/SubscriberListener.h
+ Added part of subscriber listener
+
+ Tue Jul 28 12:01:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.cpp:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.h:
+ Implement a few more methods. We need to convert each time between the RTI DDS
+ types and the CORBA types. This gets very ugly in the executor itself. This
+ all should be done in the impl/ndds directory which I now need to extend
+
+ * connectors/dds4ccm/impl/ndds/DataReader.cpp
+ * connectors/dds4ccm/impl/ndds/DataReader.h
+ * connectors/dds4ccm/impl/ndds/DataWriter.h
+ * connectors/dds4ccm/impl/ndds/ndds_impl.mpc
+ * connectors/dds4ccm/impl/ndds/NDDS_Traits.h
+ * connectors/dds4ccm/impl/ndds/Participant.cpp
+ * connectors/dds4ccm/impl/ndds/Subscriber.cpp
+ * connectors/dds4ccm/impl/ndds/Subscriber.h
+ Added some more wrapper interfaces with just a few methods implemented
+
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor_exec.cpp:
+ Prefix increment
+
+ Tue Jul 28 08:08:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.cpp:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.h:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector_exec.cpp:
+ The CCM receiver listener component now gets called.
+
+ Mon Jul 27 10:42:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/DDS_Receiver/Hello_Receiver.cpp:
+ * connectors/dds4ccm/examples/Hello/DDS_Sender/Hello_Sender.cpp:
+ Fixed incorrect comparison
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector.idl:
+ Fixed issue related to lem generation
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector.mpc:
+ Added missing library
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.cpp:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.h:
+ Create an subscribe a listener to see if we get some data from DDS
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp:
+ Implemented on_data_available
+
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector_exec.cpp:
+ Catch exceptions as const
+
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector_exec.h:
+ configure_dds is a private method
+
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp:
+ Added an ACE_DEBUG to show we send a message
+
+ * connectors/dds4ccm/id3p_test
+ * connectors/dds4ccm/id3p_test/Multiple_Reader_Ports
+ * connectors/dds4ccm/id3p_test/Multiple_Reader_Ports/test.idl3p
+ * connectors/dds4ccm/impl/ndds/Participant.cpp
+ First start with IDL3+ tests for dds4ccm
+
+ Mon Jul 27 06:58:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/DDS_Receiver
+ * connectors/dds4ccm/examples/Hello/DDS_Receiver/DDS_Receiver.mpc
+ * connectors/dds4ccm/examples/Hello/DDS_Receiver/Hello_Receiver.cpp
+ * connectors/dds4ccm/examples/Hello/DDS_Sender
+ * connectors/dds4ccm/examples/Hello/DDS_Sender/DDS_Sender.mpc
+ * connectors/dds4ccm/examples/Hello/DDS_Sender/Hello_Sender.cpp
+ Receiver and sender to send plain strings as addition to the CCM based
+ sender/receiver. These programs use RTI DDS
+
+ Fri Jul 24 19:20:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.mpc
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector.mpc
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector.mpc
+ More base project fixes
+
+ * connectors/dds4ccm/impl/ndds/Utils.cpp:
+ Simplified the conversion of return codes to string
+
+ Fri Jul 24 18:34:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.mpc
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector.mpc
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.cpp
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.mpc
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector.mpc
+ * connectors/dds4ccm/idl/dds4ccm.mpc
+ * connectors/dds4ccm/idl/dds_rtf2_dcpsE.idl
+ * connectors/dds4ccm/impl/ndds/ndds_impl.mpc
+ * connectors/dds4ccm/impl/ndds/Utils.h
+ * MPC/config/ciao_dds4ccm_ndds_impl.mpb
+ Various compile fixes for windows. Added base projects, afters, etc
+
+ Fri Jul 24 12:55:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.mpc:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.mpc:
+ Fixed link problems
+
+ * connectors/dds4ccm/idl/dds_rtf2_dcpsE.idl:
+ Include StringSeq.pidl directly
+
+ Fri Jul 24 12:37:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/idl/dds_rtf2_dcpsE.idl:
+ Add this file for the moment to the repository
+
+ Fri Jul 24 12:32:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.mpc
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Base.mpc
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector.mpc
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.mpc
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Base.mpc
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector.mpc
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector_exec.cpp
+ Various changes to get the code to compile on windows
+
+ Fri Jul 24 10:49:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.mpc
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Base.mpc
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector.mpc
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.mpc
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Base.mpc
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector.mpc
+ * MPC/config/ciao_example_output.mpb
+ * MPC/config/example_output.mpb
+ Renamed example_output to ciao_example_output
+
+ * connectors/dds4ccm/idl/dds_rtf2_dcps.idl:
+ Added include of StringSeq.pidl
+
+ Fri Jul 24 09:18:35 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIAO_TAO.mwc:
+ Added connectors directory
+
+ Fri Jul 10 17:13:35 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector.mpc:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Base.idl:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Base.mpc:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector.idl:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector.mpc:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_ConnectorE.idl:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector_exec.h:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector_exec.cpp:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp:
+ * connectors/dds4ccm/examples/Hello/descriptors/DeploymentPlan.cdp:
+ * connectors/dds4ccm/idl/dds4ccm.mpc:
+ * connectors/dds4ccm/idl/dds_rtf2_dcps.idl:
+
+ Various compile fixes, link fixes, along with initial implementation of the
+ sender connector and the sender component. When deployed, the sender connector
+ will register with DDS, and the sender component will use dds4ccm defined interfaces
+ to send a series of messages. Currently, this can be tested by using the ndds
+ Hello_simple example.
+
+ It should be noted that Hello_Sender_ConnectorE.idl IS checked in because it
+ is hand-modified to remove the CCM_DataWriter interface until such a time
+ as the support for lem force all can be worked out.
+
+ * connectors/dds4ccm/impl/ndds/DataWriter.h:
+ * connectors/dds4ccm/impl/ndds/DataWriter.cpp:
+ * connectors/dds4ccm/impl/ndds/ListenerControl.h:
+ * connectors/dds4ccm/impl/ndds/ListenerControl.cpp:
+ * connectors/dds4ccm/impl/ndds/NDDS_Traits.h:
+ * connectors/dds4ccm/impl/ndds/Participant.h:
+ * connectors/dds4ccm/impl/ndds/Participant.cpp:
+ * connectors/dds4ccm/impl/ndds/ParticipantFactory.h:
+ * connectors/dds4ccm/impl/ndds/ParticipantFactory.cpp:
+ * connectors/dds4ccm/impl/ndds/Publisher.h:
+ * connectors/dds4ccm/impl/ndds/Publisher.cpp:
+ * connectors/dds4ccm/impl/ndds/Topic.h:
+ * connectors/dds4ccm/impl/ndds/Topic.cpp:
+ * connectors/dds4ccm/impl/ndds/Utils.h:
+ * connectors/dds4ccm/impl/ndds/Utils.cpp:
+ * connectors/dds4ccm/impl/ndds/Writer.h:
+ * connectors/dds4ccm/impl/ndds/Writer.tpp:
+ * connectors/dds4ccm/impl/ndds/dds4ccm_ndds_impl_export.h:
+ * connectors/dds4ccm/impl/ndds/ndds_impl.mpc:
+
+ Initial implementation of the DataWriter, and a minimum of the IDL-defined
+ DDS DCPS interfaces as a wrapper facade for RTI DDS as needed to implement
+ basic writing functionality.
+
+ * connectors/dds4ccm/impl/ndds/ListnerControl.h:
+ * connectors/dds4ccm/impl/ndds/ListnerControl.cpp:
+ * connectors/dds4ccm/impl/ndds/Writer.cpp:
+
+ Removed these files.
+
+ Wed Jul 8 17:30:09 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/idl/dds4ccm.mpc:
+ Added anytypecode to resolve link problems with msvc
+
+ * connectors/dds4ccm/idl/dds_rtf2_dcps.idl:
+ Added include of tao sequence file to resolve link problems with mwvc
+
+ Wed Jul 8 15:12:09 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.idl
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.mpc
+ Layout
+
+ Wed Jul 8 12:12:59 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.mpc:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector.mpc:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Base.mpc:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.mpc:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Base.mpc:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector.mpc:
+
+ Change project names to not clash.
+
+ Tue Jul 7 19:14:09 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * connectors/dds4ccm/examples/Hello/descriptors/DeploymentPlan.cdp:
+ * connectors/dds4ccm/examples/Hello/descriptors/run_test.pl:
+
+ Components now deploy.
+
+ Tue Jul 7 18:17:19 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.idl:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector.idl:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.h:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.cpp:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.h:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp:
+
+ Added homes.
+
+ Tue Jul 7 18:05:15 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.idl:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.mpc:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Base.idl:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Base.mpc:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector.idl:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector.mpc:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.mpc:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Base.mpc:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector.mpc:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector_exec.h:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector_exec.cpp:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.h:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp:
+
+ Compile/linking problems now taken care of.
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.idl3:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Base.idl3:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector.idl3:
+
+ Removed these files.
+
+ Tue Jul 7 00:49:09 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Base.idl3:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Base.mpc:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector.mpc:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.mpc:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Base.idl:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Base.mpc:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector.mpc:
+
+ Added missing files.
+
+ * connectors/dds4ccm/idl/dds4ccm.mpc:
+
+ corrected spelling error.
+
+ * connectors/dds4ccm/examples/Hello/Sender/Sender_exec_export.h:
+ * connectors/dds4ccm/examples/Hello/Sender/Sender_stub_export.h:
+ * connectors/dds4ccm/examples/Hello/Sender/Sender_svnt_export.h:
+
+ Removed these files.
+
+ Tue Jul 7 00:14:45 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * connectors/dds4ccm/idl/dds4ccm_Connector_Base.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Connector_Event.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Connector_State.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Getter.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_MultiListener.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_MultiUpdater.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_MultiWriter.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_Get.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_MultiListen.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_MultiUpdate.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_MultiWrite.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_RawListen.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_Read.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_StateListen.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_Update.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_Write.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_RawListener.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Reader.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_StateListener.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Updater.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Writer.idl3p:
+
+ fixed malformed include guards.
+
+ Tue Jul 7 00:07:13 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.idl3:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.idl3p:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.mpc:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector.idl3:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector.mpc:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.h:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_Connector_exec.cpp:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.h:
+ * connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.idl:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.mpc:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector.idl:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector.mpc:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector_exec.h:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector_exec.cpp:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.h:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp:
+ * connectors/dds4ccm/examples/Hello/Sender/Sender_exec_export.h:
+ * connectors/dds4ccm/examples/Hello/Sender/Sender_stub_export.h:
+ * connectors/dds4ccm/examples/Hello/Sender/Sender_svnt_export.h:
+
+ Example now compiles, but there is no business logic yet.
+ There are still missing symbols that I need to ferret out.
+
+ * connectors/dds4ccm/idl/dds4ccm.mpc:
+ * connectors/dds4ccm/idl/dds4ccm_Base.idl3:
+ * connectors/dds4ccm/idl/dds4ccm_ConnectorStatusListener.idl3:
+ * connectors/dds4ccm/idl/dds4ccm_ListenerControl.idl3:
+ * connectors/dds4ccm/idl/dds4ccm_PortStatusListener.idl3:
+ * connectors/dds4ccm/idl/dds_rtf2_dcps.idl:
+
+ Malformed include guards, and small updates to go with standard.
+
+ * connectors/dds4ccm/examples/Hello/Hello_Base:
+ * connectors/dds4ccm/examples/Hello/Hello_Base.idl3:
+ * connectors/dds4ccm/examples/Hello/Hello_Base.idl3p:
+ * connectors/dds4ccm/examples/Hello/Hello_Base/Hello_Base.idl:
+ * connectors/dds4ccm/examples/Hello/Hello_Base/Hello_Base.mpc:
+ * connectors/dds4ccm/examples/Hello/Hello_Base/Hello_Base_skel_export.h:
+ * connectors/dds4ccm/examples/Hello/Hello_Base/Hello_Base_stub_export.h:
+ * connectors/dds4ccm/examples/Hello/Hello_Receiver.idl3:
+ * connectors/dds4ccm/examples/Hello/Hello_Receiver.idl3p:
+ * connectors/dds4ccm/examples/Hello/Receiver/Receiver.idl:
+ * connectors/dds4ccm/examples/Hello/Receiver/Receiver.mpc:
+ * connectors/dds4ccm/examples/Hello/Receiver/Receiver_exec.h:
+ * connectors/dds4ccm/examples/Hello/Receiver/Receiver_exec.cpp:
+ * connectors/dds4ccm/idl/dds4ccm_ListnerControl.idl3:
+
+ Removed these files.
+
+ Thu Jul 2 01:47:53 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Receiver.mpc
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.mpc
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector.mpc
+
+ Tue Jun 30 19:11:28 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * connectors/dds4ccm/idl/dds4ccm.mpc:
+ * connectors/dds4ccm/idl/dds4ccm_ConnectorStatusListener.idl3:
+
+ Added last remanining non-idl3p dds4ccm item into the mpc file.
+
+ * connectors/dds4ccm/idl/dds4ccm_ConnectorStatusListener.idl3p:
+
+ Removed this file.
+
+ Tue Jun 30 17:49:49 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * connectors/dds4ccm/impl:
+ * connectors/dds4ccm/impl/ndds:
+ * connectors/dds4ccm/impl/ndds/ListnerControl.h:
+ * connectors/dds4ccm/impl/ndds/ListnerControl.cpp:
+ * connectors/dds4ccm/impl/ndds/PortStatusListener.h:
+ * connectors/dds4ccm/impl/ndds/PortStatusListener.cpp:
+ * connectors/dds4ccm/impl/ndds/RawListener.h:
+ * connectors/dds4ccm/impl/ndds/RawListener.cpp:
+ * connectors/dds4ccm/impl/ndds/Reader.h:
+ * connectors/dds4ccm/impl/ndds/Reader.cpp:
+ * connectors/dds4ccm/impl/ndds/Writer.h:
+ * connectors/dds4ccm/impl/ndds/Writer.cpp:
+
+ implementation stubs.
+
+ Tue Jun 30 17:39:21 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * connectors/dds4ccm/idl/dds4ccm.mpc:
+ * connectors/dds4ccm/idl/dds4ccm_ListnerControl.idl3:
+ * connectors/dds4ccm/idl/dds4ccm_PortStatusListener.idl3:
+
+ Generate/compile idl necessary for hello example.
+
+ * connectors/dds4ccm/idl/dds4ccm_ListnerControl.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_PortStatusListener.idl3p:
+
+ Removed these files.
+
+ Mon Jun 22 09:22:17 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Hello_Base/Hello_Base.mpc
+ * connectors/dds4ccm/examples/Hello/Receiver/Receiver.mpc
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.mpc
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector.mpc
+
+ Updated base projects
+
+ Fri Jun 19 18:15:10 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/idl/dds4ccm_Connector_Event.idl3p:
+ Corrected this connector based on OMG issue 13953
+
+ Thu Jun 18 13:37:02 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.mpc
+
+ Compile fixes
+
+ Thu Jun 18 13:34:02 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Receiver_exec.h
+
+ Compile fixes
+
+ Thu Jun 18 13:17:02 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Receiver/Receiver_exec.h
+
+ Compile fixes
+
+ Thu Jun 18 13:00:05 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.mpc
+ Compile fixes
+
+ Thu Jun 18 09:32:05 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Hello_Base/Hello_Base.idl
+ * connectors/dds4ccm/examples/Hello/Hello_Base/Hello_Base.mpc
+ * connectors/dds4ccm/examples/Hello/Hello_Base/Hello_Base_skel_export.h
+ * connectors/dds4ccm/examples/Hello/Hello_Base/Hello_Base_stub_export.h
+ * connectors/dds4ccm/examples/Hello/Receiver/Receiver.idl
+ * connectors/dds4ccm/examples/Hello/Receiver/Receiver.mpc
+ * connectors/dds4ccm/examples/Hello/Receiver/Receiver_exec.cpp
+ * connectors/dds4ccm/examples/Hello/Receiver/Receiver_exec.h
+ * connectors/dds4ccm/examples/Hello/Receiver/Receiver_exec_export.h
+ * connectors/dds4ccm/examples/Hello/Receiver/Receiver_stub_export.h
+ * connectors/dds4ccm/examples/Hello/Receiver/Receiver_svnt_export.h
+ Put these under version control. Copy of regular hello world
+
+ Wed Jun 17 18:07:10 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.cidl:
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector.cidl:
+
+ Removed these files.
+
+ Wed Jun 17 10:07:19 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.mpc
+ * connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_Connector.mpc
+
+ Zap ciaocidldefaults from the MPC files. Everything has to be rebuild to
+ sort out the compile/link issues, but at least now cidlc is not used anymore
+
+ Wed Jun 10 18:31:15 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * connectors/dds4ccm/examples/Hello/descriptors:
+ * connectors/dds4ccm/examples/Hello/descriptors/DeploymentPlan.cdp:
+
+ First pass at deployment plan.
+
+ Fri Jun 5 20:10:11 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * connectors/dds4ccm/examples/Hello/Hello_Base.idl3:
+ * connectors/dds4ccm/examples/Hello/Hello_Receiver.idl3:
+ * connectors/dds4ccm/examples/Hello/Hello_Sender.idl3:
+
+ Finished the by-hand translation to idl3.
+
+ Tue Jun 2 03:43:30 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * connectors:
+ * connectors/dds4ccm:
+ * connectors/dds4ccm/example:
+ * connectors/dds4ccm/example/Hello:
+ * connectors/dds4ccm/example/Hello/Hello_Base.idl3:
+ * connectors/dds4ccm/example/Hello/Hello_Base.idl3p:
+ * connectors/dds4ccm/example/Hello/Hello_Receiver.idl3:
+ * connectors/dds4ccm/example/Hello/Hello_Receiver.idl3p:
+ * connectors/dds4ccm/example/Hello/Hello_Sender.idl3:
+ * connectors/dds4ccm/example/Hello/Hello_Sender.idl3p:
+
+ Outline of a driving use case for phase 1. Note that the
+ idl3p files are the IDL3+ for the components/connector, and the
+ idl3 files are my best guess at the implied IDL3 mapping.
+
+ * connectors/dds4ccm/idl:
+ * connectors/dds4ccm/idl/dds4ccm_Base.idl3:
+ * connectors/dds4ccm/idl/dds4ccm_ConnectorStatusListener.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Connector_Base.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Connector_Event.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Connector_State.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Getter.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_ListnerControl.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_MultiListener.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_MultiUpdater.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_MultiWriter.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_PortStatusListener.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_Get.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_MultiListen.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_MultiUpdate.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_MultiWrite.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_RawListen.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_Read.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_StateListen.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_Update.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Port_Write.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_RawListener.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Reader.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_StateListener.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Updater.idl3p:
+ * connectors/dds4ccm/idl/dds4ccm_Writer.idl3p:
+
+ DDS4CCM IDL.
+
+
+Mon Aug 3 22:54:37 UTC 2009 Abdullah Sowayan <sowayan@gmail.com>
+
+ * docs/tutorials/Quoter/Simple/descriptors/runNodeDaemons.pl:
+
+ Set DANCE_ROOT environment variable.
+
+Wed Jul 29 11:40:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ Another hpux fix
+
+Mon Jul 27 12:09:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/XSCRT/Elements.hpp:
+ Fixed compile error by invalid character at the top of the file
+
+Sun Jul 26 07:51:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/XSCRT/Elements.hpp:
+ Updated for Sun Studio 12
+
+Sat Jul 25 13:05:03 UTC 2009 William R. Otte <Wotte@dre.vanderbilt.edu>
+
+ * tests/IDL_Test/Inherited_Component/IhC_Foo.mpc:
+
+ Add -Gex.
+
+Fri Jul 24 11:26:23 UTC 2009 William R. Otte <Wotte@dre.vanderbilt.edu>
+
+ * tests/IDL_Test/Inherited_Component/IhC_Bar.mpc:
+
+ Disabled this test until its fixed.
+
+Fri Jul 24 10:59:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/IDL_Test/PIDL_Include/PIDLInclude.idl:
+ * tests/IDL_Test/PIDL_Include/PIDLInclude.mpc:
+ New test to reproduce a problem when including pidl files
+
+Thu Jul 23 16:26:17 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tests/IDL_Test/Inherited_Component:
+ * tests/IDL_Test/Inherited_Component/IhC_Bar.idl:
+ * tests/IDL_Test/Inherited_Component/IhC_Bar.mpc:
+ * tests/IDL_Test/Inherited_Component/IhC_Foo.idl:
+ * tests/IDL_Test/Inherited_Component/IhC_Foo.mpc:
+
+ Test which demonstrates an inability to generate code properly
+ for inherited components.
+
+Thu Jul 23 17:48:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * NEWS:
+ Updated for next release
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * DAnCE/NodeApplication/NodeApplication_Impl.h:
+ Compile fixes for HPUX
+
+Thu Jul 23 02:11:02 CDT 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIAO version 0.7.2 released.
+
+Wed Jul 22 08:06:47 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/ciao_tests.lst:
+ NodeManager-Deployments is known to fail
+
+Tue Jul 21 17:38:47 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/Dump_Obj.cpp:
+ * tools/Config_Handlers/Dump_Obj.h:
+ Moved include to header file to fix compile errors with CB2009
+
+Tue Jul 21 13:48:47 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/XSCRT/Elements.hpp:
+ Backported some CB2009 fixes
+
+Tue Jul 21 10:51:47 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ Fixed compile error on HPUX
+
+Tue Jul 21 02:23:41 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/tests/RedirectionServiceTest/RedirectionServiceTest.mpc:
+
+ Avoids minimum corba.
+
+Tue Jul 21 01:43:50 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tests/IDL3/ImpliedIDL/All/all.mpc:
+
+ Disabled this on MFC systems due to the fact that it produces
+ errors in newer VS compilers due to the mixing in of c# language
+ elements.
+
+Mon Jul 20 11:16:47 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ Fixed compile error on HPUX
+
+Mon Jul 20 11:13:53 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+ Reverted an unicode change.
+
+Mon Jul 20 10:55:13 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ * DAnCE/DomainApplicationManager/Node_Locator.h:
+ * DAnCE/DomainApplicationManager/Node_Locator.cpp:
+ * DAnCE/ExecutionManager/ExecutionManager_Module.h:
+ * DAnCE/ExecutionManager/ExecutionManager_Module.cpp:
+ * DAnCE/NodeApplication/Name_Utilities.h:
+ * DAnCE/NodeApplication/Name_Utilities.cpp:
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+ * DAnCE/Starter/Starter.h:
+ * DAnCE/Starter/Starter.cpp:
+ * ciao/Containers/Session/Session_Container.cpp:
+ * ciao/Logger/File_Logger_Backend.cpp:
+ Reverted some unicode changes.
+
+Mon Jul 20 10:50:47 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient.mpc
+ * performance-tests/Protocols/Receiver/Receiver.mpc
+ * performance-tests/Protocols/Sender/Sender.mpc
+ Also disabled svnt projects with ace_for_tao
+
+Mon Jul 20 10:32:47 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/XSCRT/Elements.hpp:
+ Removed old msvc checks
+
+Mon Jul 20 07:02:47 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/ComponentServer/Configurators/Server_Configurator.cpp:
+ * ciao/ComponentServer/Configurators/Server_Configurator.h:
+ Use bool for rt_support_ and added a default value to the constructor
+ to resolve problems with older gcc versions
+
+Sun Jul 19 18:25:47 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Logger/Logger_Service.cpp:
+ * DAnCE/Logger/Logger_Service.h:
+ Unicode fixes
+
+Sun Jul 19 17:22:08 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tests/IDL_Test/Keywords/Keywords.mpc:
+
+ avoids mfc, as building with mfc enabled causes 'interface'
+ to become a language keyword, where it otherwise would not be.
+
+Sun Jul 19 09:50:47 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Servants/Port_Activator_T.cpp:
+ Layout change
+
+ * ciao/Servants/Servants.mpc:
+ Port_Activator_T is a template file, not a source file
+
+Sun Jul 19 09:46:47 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/DomainApplication/Domain_Application_Impl.cpp:
+ Layout changes
+
+ * DAnCE/DomainApplication/Domain_Application_Impl.h:
+ Made startLaunch public
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ Layout, const, datatype changes
+
+ * DAnCE/MPC/config/dance_repositorymanagerbase.mpb:
+ Added after JAWS
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ Layout changes
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ Layout, datatype, const changes
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h:
+ Layout changes
+
+ * DAnCE/Plan_Generator/Plan_Generator_Impl.cpp:
+ Corrected messages
+
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Module.cpp:
+ Unicode fix
+
+ * DAnCE/RepositoryManager/RepositoryManager.mpc:
+ JAWS is added by the base project
+
+ * examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.h:
+ Corrected base class
+
+Sat Jul 18 22:33:47 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Starter/Starter.mpc:
+
+ Temporarily disable this project, there's no way it works properly
+ at run-time, even if it compiles. We will take another look at this
+ after 0.7.2.
+
+Sat Jul 18 17:41:10 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/XML/XML_Schema_Resolver.cpp:
+
+ Rolling back changes from
+ Fri Jul 17 11:50:08 UTC 2009 Marcel Smit <msmit@remedy.nl>
+ Fri Jul 17 10:26:28 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ as they broke all tests involving XMl.
+
+Sat Jul 18 17:19:49 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * performance-tests/Benchmark/RoundTrip/RoundTrip.mpc:
+
+ avoids_ace_for_tao.
+
+Sat Jul 18 15:56:16 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/NodeApplication.mpc:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc:
+ * DAnCE/NodeManager/NodeManager.mpc:
+ * ciao/ComponentServer/CIAO_ComponentServer.mpc:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient.mpc:
+ * performance-tests/Protocols/Receiver/Receiver.mpc:
+ * performance-tests/Protocols/Sender/Sender.mpc:
+
+ avoids_ace_for_tao.
+
+Sat Jul 18 09:34:30 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp:
+ Corrected a coding error during last commit.
+
+Sat Jul 18 09:20:47 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp:
+ * DAnCE/Starter/Starter.h:
+ * DAnCE/Starter/Starter.cpp:
+ * tests/CIAO_ComponentServer/Activator/client.cpp:
+ Fixed UNICODE compiler errors.
+
+Sat Jul 18 05:12:00 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Logger/Logger_Service.cpp:
+
+ stab at some unicode problems on Windows.
+
+Sat Jul 18 05:01:32 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/ExecutionManager.mpc:
+ * DAnCE/MPC/config/dance_tm_daemon.mpb:
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc:
+ * DAnCE/TargetManager/TargetManager.mpc:
+
+ Static linking fixes.
+
+Sat Jul 18 00:50:20 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Deployment/CIAO_Interfaces.mpc:
+
+ linker fixes.
+
+ * examples/Hello/Receiver/Receiver.mpc:
+
+ this mpc specified more than was generated, causing it to be
+ re-run.
+
+Fri Jul 17 21:18:11 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.mpc:
+
+ Disabled this. there's lots wrong with it.
+
+Fri Jul 17 18:06:48 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplication/DomainApplication.mpc:
+ * DAnCE/ExecutionManager/ExecutionManager.mpc:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc:
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc:
+ * DAnCE/TargetManager/TargetManager.mpc:
+ * tests/IDL_Test/Lem_Specific_Export/Lem_Export.mpc:
+ * tests/Minimum/Receiver/Receiver.mpc:
+
+ Linking fixes for Windows.
+
+ * tools/Config_Handlers/Basic_Deployment_Data.hpp:
+ * tools/Config_Handlers/Basic_Deployment_Data.cpp:
+ * tools/Config_Handlers/Deployment.hpp:
+ * tools/Config_Handlers/Deployment.cpp:
+ * tools/Config_Handlers/XMI.hpp:
+ * tools/Config_Handlers/XMI.cpp:
+ * tools/Config_Handlers/XMLSchema/id_map.hpp:
+ * tools/Config_Handlers/XSCRT/Elements.hpp:
+ * tools/Config_Handlers/ccd.cpp:
+ * tools/Config_Handlers/ccd.hpp:
+ * tools/Config_Handlers/cdd.hpp:
+ * tools/Config_Handlers/cdd.cpp:
+ * tools/Config_Handlers/cdp.cpp:
+ * tools/Config_Handlers/cdp.hpp:
+ * tools/Config_Handlers/cid.cpp:
+ * tools/Config_Handlers/cid.hpp:
+ * tools/Config_Handlers/cpd.hpp:
+ * tools/Config_Handlers/cpd.cpp:
+ * tools/Config_Handlers/iad.cpp:
+ * tools/Config_Handlers/iad.hpp:
+ * tools/Config_Handlers/pcd.hpp:
+ * tools/Config_Handlers/pcd.cpp:
+ * tools/Config_Handlers/toplevel.cpp:
+ * tools/Config_Handlers/toplevel.hpp:
+
+ Updated generated code to 1) update to latest version of XSC,
+ 2) resolve unicode errors in the generator.
+
+Fri Jul 17 14:41:29 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * DAnCE/ExecutionManager/ExecutionManager_Module.cpp:
+ * DAnCE/NodeApplication/Name_Utilities.h:
+ * DAnCE/NodeApplication/Name_Utilities.cpp:
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.h:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp:
+ Resolved some unicode compiler errors.
+
+Fri Jul 17 13:35:03 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * ciao/Logger/File_Logger_Backend.h:
+ Resolved UNICODE compiler errors.
+
+Fri Jul 17 12:48:09 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * tools/Config_Handlers/ccd.cpp:
+ * tools/Config_Handlers/cdd.cpp:
+ * tools/Config_Handlers/cpd.cpp:
+ Resolved UNICODE compiler errors.
+
+Fri Jul 17 12:09:55 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * tools/Config_Handlers/XMI.cpp:
+ Resolved UNICODE compiler errors.
+
+Fri Jul 17 11:50:08 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * ciao/Containers/Session/Session_Container.cpp:
+ * tools/XML/XML_Schema_Resolver.cpp:
+ Resolved UNICODE compiler errors.
+
+Fri Jul 17 10:26:28 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * tools/XML/XML_Schema_Resolver.cpp:
+ Resolved UNICODE compiler errors.
+
+Fri Jul 17 07:06:08 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ * DAnCE/DomainApplicationManager/Node_Locator.h:
+ * DAnCE/DomainApplicationManager/Node_Locator.cpp:
+ * DAnCE/ExecutionManager/ExecutionManager_Module.h:
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.h:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp:
+ * ciao/Logger/File_Logger_Backend.cpp:
+ * tests/CIAO_ComponentServer/Activator/client.cpp:
+ Resolved UNICODE compiler errors.
+
+ * docs/tutorials/Quoter/Simple/02.html:
+ Removed reference toe CIDL.
+
+Wed Jul 15 15:51:36 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Basic_Deployment_Data.cpp:
+ * tools/Config_Handlers/XMI.cpp:
+ * tools/Config_Handlers/XSCRT/XML.hpp:
+
+ Compile warning fixes.
+
+Wed Jul 15 14:20:19 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/Hello/Sender/starter.cpp:
+ Fixed wchar problem
+
+Wed Jul 15 13:17:19 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Deployment/DAnCE_Core.mpc:
+ Fixed build orders
+
+Tue Jul 14 20:34:19 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * MPC/config/viao_vcwarnings.mpb:
+ Added vc10
+
+Tue Jul 14 20:31:19 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * MPC/config/dance_plan_launcher_base.mpc:
+ * DAnCE/MPC/config/dance_plan_launcher_base.mpb:
+ Moved to DAnCE and corrected extension
+
+Tue Jul 14 20:14:19 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Deployment/DAnCE_Core.mpc
+ * DAnCE/MPC/config/dance_domainapplicationmanager_skel.mpb
+ * DAnCE/MPC/config/dance_domainapplicationmanager_stub.mpb
+ * DAnCE/MPC/config/dance_nodeapplicationmanager_skel.mpb
+ * DAnCE/MPC/config/dance_nodeapplicationmanager_stub.mpb
+ Shortened some project names to fix fuzz errors
+
+Tue Jul 14 17:56:19 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * ciao/Logger/File_Logger_Backend.cpp:
+
+ * examples/DevGuideExamples/Messenger/Messenger_exec_i.cpp:
+
+Tue Jul 14 14:24:08 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * DAnCE/Deployment/CIAO_ExecutionManagerDaemon.idl:
+ * DAnCE/Deployment/CIAO_NodeManagerDaemon.idl:
+ * DAnCE/MPC/config/dance_targetmanager.mpb:
+ * DAnCE/RepositoryManager/repository_manager_admin.h:
+ * DAnCE/RepositoryManager/repository_manager_admin_exec.cpp:
+ * DAnCE/TargetManager/TargetManager.idl:
+ * MPC/config/ciao_connector_base.mpb:
+ * MPC/config/connectoridldefaults.mpb:
+ * MPC/config/dds4ccm_base.mpb:
+ * MPC/config/dds4ccm_skel.mpb:
+ * MPC/config/example_output.mpb:
+ * tests/IDL_Test/Keywords/Keyword_Clash.idl:
+ * tools/Config_Handlers/PL_Handler.h:
+ * tools/Config_Handlers/PL_Handler.cpp:
+ Resolved Fuzz errors.
+
+Tue Jul 14 11:11:57 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * .:
+ * CIAO-INSTALL.html:
+ * CIAO.mwc:
+ * CIAO_DAnCE.mwc:
+ * CIAO_TAO.mwc:
+ * CIAO_TAO_DAnCE.mwc:
+ * COPYING:
+ * DAnCE/Deployment/CIAO_ExecutionManagerDaemon.idl:
+ * DAnCE/Deployment/CIAO_Interfaces.mpc:
+ * DAnCE/Deployment/CIAO_NodeManagerDaemon.idl:
+ * DAnCE/Deployment/DAnCE_Core.mpc:
+ * DAnCE/Deployment/Deployment.idl:
+ * DAnCE/Deployment/Deployment_Application.idl:
+ * DAnCE/Deployment/Deployment_ApplicationManager.idl:
+ * DAnCE/Deployment/Deployment_Connection.idl:
+ * DAnCE/Deployment/Deployment_Data.idl:
+ * DAnCE/Deployment/Deployment_DeploymentPlan.idl:
+ * DAnCE/Deployment/Deployment_DomainApplication.idl:
+ * DAnCE/Deployment/Deployment_DomainApplicationManager.idl:
+ * DAnCE/Deployment/Deployment_ExecutionManager.idl:
+ * DAnCE/Deployment/Deployment_NodeApplication.idl:
+ * DAnCE/Deployment/Deployment_NodeApplicationManager.idl:
+ * DAnCE/Deployment/Deployment_NodeManager.idl:
+ * DAnCE/Deployment/Deployment_Packaging_Data.idl:
+ * DAnCE/Deployment/Deployment_PlanError.idl:
+ * DAnCE/Deployment/Deployment_StartError.idl:
+ * DAnCE/Deployment/Deployment_StopError.idl:
+ * DAnCE/Deployment/Deployment_TargetManager.idl:
+ * DAnCE/Deployment/Module_Main.h:
+ * DAnCE/DomainApplication/DomainApplication.mpc:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ * DAnCE/DomainApplicationManager/Node_Locator.cpp:
+ * DAnCE/ExecutionManager/ExecutionManager.mpc:
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.h:
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.cpp:
+ * DAnCE/ExecutionManager/ExecutionManager_Module.cpp:
+ * DAnCE/Logger/File_Logger_Backend.cpp:
+ * DAnCE/Logger/Logger.mpc:
+ * DAnCE/Logger/Logger_Service.cpp:
+ * DAnCE/MPC:
+ * DAnCE/MPC/config:
+ * DAnCE/MPC/config/ciao_executionmanager_skel.mpb:
+ * DAnCE/MPC/config/ciao_executionmanager_stub.mpb:
+ * DAnCE/MPC/config/ciao_nodeapplication.mpb:
+ * DAnCE/MPC/config/ciao_nodeapplicationmanager.mpb:
+ * DAnCE/MPC/config/ciao_nodemanager_skel.mpb:
+ * DAnCE/MPC/config/ciao_nodemanager_stub.mpb:
+ * DAnCE/MPC/config/ciao_plan_generator.mpb:
+ * DAnCE/MPC/config/ciao_targetmanager_stub.mpb:
+ * DAnCE/MPC/config/ciao_targetmanager_svnt.mpb:
+ * DAnCE/MPC/config/dance.mpb:
+ * DAnCE/MPC/config/dance_cdmw_idl.mpb:
+ * DAnCE/MPC/config/dance_component_server.mpb:
+ * DAnCE/MPC/config/dance_component_server_svnt.mpb:
+ * DAnCE/MPC/config/dance_deployment_stub.mpb:
+ * DAnCE/MPC/config/dance_deployment_svnt.mpb:
+ * DAnCE/MPC/config/dance_domainapplication.mpb:
+ * DAnCE/MPC/config/dance_domainapplication_skel.mpb:
+ * DAnCE/MPC/config/dance_domainapplication_stub.mpb:
+ * DAnCE/MPC/config/dance_domainapplicationmanager.mpb:
+ * DAnCE/MPC/config/dance_domainapplicationmanager_skel.mpb:
+ * DAnCE/MPC/config/dance_domainapplicationmanager_stub.mpb:
+ * DAnCE/MPC/config/dance_exe.mpb:
+ * DAnCE/MPC/config/dance_executionmanager_skel.mpb:
+ * DAnCE/MPC/config/dance_executionmanager_stub.mpb:
+ * DAnCE/MPC/config/dance_extension_stub.mpb:
+ * DAnCE/MPC/config/dance_lib.mpb:
+ * DAnCE/MPC/config/dance_logger.mpb:
+ * DAnCE/MPC/config/dance_mocks.mpb:
+ * DAnCE/MPC/config/dance_nodeapplication.mpb:
+ * DAnCE/MPC/config/dance_nodeapplication_skel.mpb:
+ * DAnCE/MPC/config/dance_nodeapplication_stub.mpb:
+ * DAnCE/MPC/config/dance_nodeapplicationmanager.mpb:
+ * DAnCE/MPC/config/dance_nodeapplicationmanager_skel.mpb:
+ * DAnCE/MPC/config/dance_nodeapplicationmanager_stub.mpb:
+ * DAnCE/MPC/config/dance_nodemanager.mpb:
+ * DAnCE/MPC/config/dance_nodemanager_skel.mpb:
+ * DAnCE/MPC/config/dance_nodemanager_stub.mpb:
+ * DAnCE/MPC/config/dance_nodemanager_svnt.mpb:
+ * DAnCE/MPC/config/dance_plan_generator.mpb:
+ * DAnCE/MPC/config/dance_redirectionservice.mpb:
+ * DAnCE/MPC/config/dance_repositorymanager.mpb:
+ * DAnCE/MPC/config/dance_repositorymanager_skel.mpb:
+ * DAnCE/MPC/config/dance_repositorymanager_stub.mpb:
+ * DAnCE/MPC/config/dance_repositorymanagerbase.mpb:
+ * DAnCE/MPC/config/dance_targetmanager.mpb:
+ * DAnCE/MPC/config/dance_targetmanager_skel.mpb:
+ * DAnCE/MPC/config/dance_targetmanager_stub.mpb:
+ * DAnCE/MPC/config/dance_utils.mpb:
+ * DAnCE/NodeApplication/ComponentAttributesSetter.h:
+ * DAnCE/NodeApplication/ComponentAttributesSetter.cpp:
+ * DAnCE/NodeApplication/NodeApplication.mpc:
+ * DAnCE/NodeApplication/NodeApplication_Impl.h:
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ * DAnCE/NodeManager/NodeManager.mpc:
+ * DAnCE/NodeManager/NodeManager_Impl.h:
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+ * DAnCE/NodeManager/Node_Manager_Module.h:
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+ * DAnCE/Plan_Generator/PCVisitorBase.h:
+ * DAnCE/Plan_Generator/Plan_Generator.mpc:
+ * DAnCE/Plan_Launcher/Plan_Launcher.h:
+ * DAnCE/Plan_Launcher/Plan_Launcher.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.h:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Module.h:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Module.cpp:
+ * DAnCE/Plan_Launcher/launcher.cpp:
+ * DAnCE/RepositoryManager:
+ * DAnCE/RepositoryManager/PC_Updater.h:
+ * DAnCE/RepositoryManager/RepositoryManager.mpc:
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp:
+ * DAnCE/RepositoryManager/Repository_Manager_Admin_Export.h:
+ * DAnCE/RepositoryManager/Repository_Manager_Module.cpp:
+ * DAnCE/RepositoryManager/repository_manager_admin.h:
+ * DAnCE/RepositoryManager/repository_manager_admin.cpp:
+ * DAnCE/RepositoryManager/repository_manager_admin_exec.cpp:
+ * DAnCE/TargetManager/CmpClient.cpp:
+ * DAnCE/TargetManager/DAnCE_TargetManagerDaemon.idl:
+ * DAnCE/TargetManager/DomainDataManager.h:
+ * DAnCE/TargetManager/DomainDataManager.cpp:
+ * DAnCE/TargetManager/ResourceCommitmentManager.h:
+ * DAnCE/TargetManager/ResourceCommitmentManager.cpp:
+ * DAnCE/TargetManager/TM_Client.mpc:
+ * DAnCE/TargetManager/TargetManager.idl:
+ * DAnCE/TargetManager/TargetManager.mpc:
+ * DAnCE/TargetManager/TargetManager_Impl.h:
+ * DAnCE/TargetManager/TargetManager_Impl.cpp:
+ * DAnCE/TargetManager/TargetManager_Impl_export.h:
+ * DAnCE/TargetManager/TargetManager_exec.h:
+ * DAnCE/TargetManager/TargetManager_exec.cpp:
+ * DAnCE/TargetManager/Target_Manager_Exec.cpp:
+ * DAnCE/TargetManager/Target_Manager_Module.h:
+ * DAnCE/TargetManager/Target_Manager_Module.cpp:
+ * DAnCE/TargetManager/Target_Manager_Module_export.h:
+ * DAnCE/Utils/Plan_Handler.h:
+ * DAnCE/tests/CIAO/Components/ProcessColocation.idl:
+ * DAnCE/tests/CIAO/Components/ProcessColocation.mpc:
+ * DAnCE/tests/CIAO/Components/ProcessColocation_exec.h:
+ * DAnCE/tests/CIAO/Components/ProcessColocation_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleAttribute.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleAttribute_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleAttribute_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleCommon.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleNull.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleNull_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleNull_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleProvider.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleProvider_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleProvider_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimplePublisher.mpc:
+ * DAnCE/tests/CIAO/Components/SimplePublisher_exec.h:
+ * DAnCE/tests/CIAO/Components/SimplePublisher_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleUser.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleUser_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleUser_exec.cpp:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/em_launcher.mpc:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/simple_em_launcher.cpp:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/SimpleProcessColocation.cdp:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/nm_launcher.mpc:
+ * DAnCE/tests/DeploymentTest1/DeploymentTest1.mpc:
+ * DAnCE/tests/NodeApplicationManager-NodeApplication/NAM_NA.mpc:
+ * DAnCE/tests/NodeManager-NodeApplicationManager/NodeManager-NodeApplicationManager.mpc:
+ * DAnCE/tests/ObjectLocatorTest/ObjectLocatorTest.mpc:
+ * DAnCE/tests/ObjectLocatorTest/srv_main.cpp:
+ * DAnCE/tests/RedirectionServiceTest/RedirectionServiceTest.mpc:
+ * DAnCE/tests/RedirectionServiceTest/clt_main.cpp:
+ * MPC:
+ * MPC/config/ciao_connector_base.mpb:
+ * MPC/config/ciao_servant.mpb:
+ * MPC/config/ciao_server.mpb:
+ * MPC/config/ciaoidldefaults.mpb:
+ * MPC/config/componentidldefaults.mpb:
+ * MPC/config/connectoridldefaults.mpb:
+ * MPC/config/dds4ccm_base.mpb:
+ * MPC/config/dds4ccm_skel.mpb:
+ * MPC/config/example_output.mpb:
+ * NEWS:
+ * bin:
+ * bin/ciao_tests.lst:
+ * bin/generate_component_mpc.pl:
+ * bin/update_package.py:
+ * ccm/CCM.mpc:
+ * ccm/CCM_Configurator.idl:
+ * ccm/CCM_Cookie.idl:
+ * ccm/CCM_Enumeration.idl:
+ * ccm/CCM_EventBase.idl:
+ * ccm/CCM_EventConsumerBase.idl:
+ * ccm/CCM_Events.idl:
+ * ccm/CCM_Exceptions.idl:
+ * ccm/CCM_Home.idl:
+ * ccm/CCM_HomeConfiguration.idl:
+ * ccm/CCM_HomeFinder.idl:
+ * ccm/CCM_Homes.idl:
+ * ccm/CCM_KeylessCCMHome.idl:
+ * ccm/CCM_Navigation.idl:
+ * ccm/CCM_Object.idl:
+ * ccm/CCM_Receptacle.idl:
+ * ccm/CCM_StandardConfigurator.idl:
+ * ccm/ComponentServer/CCM_ComponentServer.idl:
+ * ccm/ComponentServer/CCM_ComponentServer.mpc:
+ * ccm/ComponentServer/CCM_ComponentServer_Base.idl:
+ * ccm/ComponentServer/CCM_ComponentServer_Client.idl:
+ * ciao:
+ * ciao/ComponentServer/CIAO_ComponentServer.idl:
+ * ciao/ComponentServer/CIAO_ComponentServer.mpc:
+ * ciao/ComponentServer/CIAO_ComponentServer_Impl.cpp:
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp:
+ * ciao/Containers/Session/Session_Container.cpp:
+ * ciao/Servants/Servant_Impl_Utils_T.cpp:
+ * docs:
+ * docs/OMG-CCM-Tutorial.ppt:
+ * docs/TODO.html:
+ * docs/generate_component_mpc.html:
+ * docs/index.html:
+ * docs/schema/06-04-02.xsd:
+ * docs/schema/Basic_Deployment_Data.xsd:
+ * docs/schema/cdp.xsd:
+ * docs/schema/cid.xsd:
+ * docs/schema/cpd.xsd:
+ * docs/schema/toplevel.xsd:
+ * docs/schema/unused_06-04-02.xsd:
+ * docs/tutorials/Quoter/Simple/01.html:
+ * docs/tutorials/Quoter/Simple/02.html:
+ * docs/tutorials/Quoter/Simple/03.html:
+ * docs/tutorials/Quoter/Simple/04.html:
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker.mpc:
+ * docs/tutorials/Quoter/Simple/Broker/StockBrokerDriver.cpp:
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker_exec.h:
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker_exec.cpp:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor.mpc:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributorDriver.cpp:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor_exec.h:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor_exec.cpp:
+ * docs/tutorials/Quoter/Simple/Model/Quoter.xme:
+ * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.mpc:
+ * docs/tutorials/Quoter/Simple/descriptors/Domain.cdd:
+ * docs/tutorials/Quoter/Simple/descriptors/NodeMap.dat:
+ * docs/tutorials/Quoter/Simple/descriptors/Plan.cdp:
+ * docs/tutorials/Quoter/Simple/images/fig10.jpg:
+ * docs/tutorials/Quoter/Simple/images/fig11.jpg:
+ * docs/tutorials/Quoter/Simple/images/fig12.jpg:
+ * docs/tutorials/Quoter/Simple/images/fig2.jpg:
+ * docs/tutorials/Quoter/Simple/images/fig3.jpg:
+ * docs/tutorials/Quoter/Simple/images/fig4.jpg:
+ * docs/tutorials/Quoter/Simple/images/fig5.jpg:
+ * docs/tutorials/Quoter/Simple/images/fig5a.jpg:
+ * docs/tutorials/Quoter/Simple/images/fig6.jpg:
+ * docs/tutorials/Quoter/Simple/images/fig7.jpg:
+ * docs/tutorials/Quoter/Simple/images/fig8.jpg:
+ * docs/tutorials/Quoter/Simple/images/fig9.jpg:
+ * docs/value_factory_registration.html:
+ * etc/ciao.doxygen:
+ * etc/ciao_DAnCE.doxygen:
+ * etc/ciao_config_handlers.doxygen:
+ * examples:
+ * examples/BasicSP/BMClosedED/BMClosedED.mpc:
+ * examples/BasicSP/BMClosedED/BMClosedED_exec.h:
+ * examples/BasicSP/BMDevice/BMDevice.idl:
+ * examples/BasicSP/BMDevice/BMDevice.mpc:
+ * examples/BasicSP/BMDevice/BMDevice_exec.h:
+ * examples/BasicSP/BMDisplay/BMDisplay.idl:
+ * examples/BasicSP/BMDisplay/BMDisplay.mpc:
+ * examples/BasicSP/BMDisplay/BMDisplay_exec.h:
+ * examples/BasicSP/BasicSP.mpc:
+ * examples/BasicSP/BasicSP_exec.h:
+ * examples/BasicSP/EC/EC.idl:
+ * examples/BasicSP/EC/EC.mpc:
+ * examples/BasicSP/EC/EC_exec.h:
+ * examples/DevGuideExamples:
+ * examples/DevGuideExamples/Messenger/Administrator.mpc:
+ * examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.mpc:
+ * examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.mpc:
+ * examples/DevGuideExamples/Messenger/Administrator_exec_i.h:
+ * examples/DevGuideExamples/Messenger/Administrator_exec_i.cpp:
+ * examples/DevGuideExamples/Messenger/History_exec_i.h:
+ * examples/DevGuideExamples/Messenger/History_exec_i.cpp:
+ * examples/DevGuideExamples/Messenger/Messenger.mpc:
+ * examples/DevGuideExamples/Messenger/Messenger_exec_i.h:
+ * examples/DevGuideExamples/Messenger/Messenger_exec_i.cpp:
+ * examples/DevGuideExamples/Messenger/Publication_exec_i.h:
+ * examples/DevGuideExamples/Messenger/Publication_exec_i.cpp:
+ * examples/DevGuideExamples/Messenger/Receiver.mpc:
+ * examples/DevGuideExamples/Messenger/Receiver_exec_i.h:
+ * examples/DevGuideExamples/Messenger/Receiver_exec_i.cpp:
+ * examples/DevGuideExamples/Messenger/Runnable_exec_i.h:
+ * examples/DevGuideExamples/Messenger/Runnable_exec_i.cpp:
+ * examples/Display/Display_Base/Display_Base.mpc:
+ * examples/Display/GPS/GPS.mpc:
+ * examples/Display/GPS/GPS_exec.h:
+ * examples/Display/NavDisplay/NavDisplay.mpc:
+ * examples/Display/NavDisplay/NavDisplay_exec.h:
+ * examples/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc:
+ * examples/Display/RateGen/RateGen.mpc:
+ * examples/Display/RateGen/RateGen_exec.h:
+ * examples/Hello/Hello_Base/Hello_Base.mpc:
+ * examples/Hello/Receiver/Receiver.mpc:
+ * examples/Hello/Receiver/Receiver_exec.h:
+ * examples/Hello/Receiver/Receiver_exec.cpp:
+ * examples/Hello/Sender/Sender.idl:
+ * examples/Hello/Sender/Sender.mpc:
+ * examples/Hello/Sender/Sender_exec.h:
+ * examples/Hello/Sender/Sender_exec.cpp:
+ * examples/Hello/descriptors/Aliased_Map.dat:
+ * examples/Hello/descriptors/DeploymentPlan_without_ns.cdp:
+ * examples/Hello/descriptors/run_NodeDaemons.pl:
+ * examples/Hello/descriptors/run_test.pl:
+ * examples/Hello/descriptors/run_test_alias.pl:
+ * examples/Hello/descriptors/run_test_without_ns.pl:
+ * examples/Hello/step-by-step.html:
+ * examples/Null_Component/Null_Component.mpc:
+ * examples/Null_Component/Null_Component_exec.h:
+ * examples/Null_Component/Null_Component_exec.cpp:
+ * examples/Null_Component/Null_Interface.mpc:
+ * examples/Null_Component/descriptors/run_test.pl:
+ * examples/Swapping/Hello_Base/Hello_Base.mpc:
+ * examples/Swapping/Receiver/Receiver.mpc:
+ * examples/Swapping/Sender/Sender.mpc:
+ * performance-tests:
+ * performance-tests/Benchmark/Benchmark.mpc:
+ * performance-tests/Benchmark/Multi_Threaded/Multi_Threaded.mpc:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip.mpc:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient.mpc:
+ * performance-tests/Benchmark/RoundTripServer/RoundTripServer.mpc:
+ * performance-tests/Protocols/Controller/Controller.mpc:
+ * performance-tests/Protocols/Receiver/Receiver.mpc:
+ * performance-tests/Protocols/Receiver/Receiver_exec.h:
+ * performance-tests/Protocols/Receiver/Receiver_exec.cpp:
+ * performance-tests/Protocols/Sender/Sender.mpc:
+ * performance-tests/Protocols/Sender/Sender_exec.h:
+ * performance-tests/Protocols/Sender/Sender_exec.cpp:
+ * performance-tests/Protocols/common/Protocols.mpc:
+ * rules.ciao.GNU:
+ * tests:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.mpc:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.cpp:
+ * tests/Bug_2130_Regression/interfaces/ENW.mpc:
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.mpc:
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec.h:
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec.cpp:
+ * tests/CIDL/CodeGen/Basic.idl:
+ * tests/CIDL/CodeGen/Basic.mpc:
+ * tests/CIDL/CodeGen/CodeGen.mpc:
+ * tests/IDL_Test:
+ * tests/IDL_Test/Cornucopia:
+ * tests/IDL_Test/Cornucopia/Cornucopia.idl:
+ * tests/IDL_Test/Cornucopia/Cornucopia.mpc:
+ * tests/IDL_Test/Cornucopia/README:
+ * tests/IDL_Test/Included_Component:
+ * tests/IDL_Test/Included_Component/IC_Bar.idl:
+ * tests/IDL_Test/Included_Component/IC_Bar.mpc:
+ * tests/IDL_Test/Included_Component/IC_Foo.idl:
+ * tests/IDL_Test/Included_Component/IC_Foo.mpc:
+ * tests/IDL_Test/Keywords:
+ * tests/IDL_Test/Keywords/Keyword_Clash.idl:
+ * tests/IDL_Test/Keywords/Keywords.mpc:
+ * tests/IDL_Test/Lem_Specific_Export:
+ * tests/IDL_Test/Lem_Specific_Export/Lem_Export.idl:
+ * tests/IDL_Test/Lem_Specific_Export/Lem_Export.mpc:
+ * tests/IDL_Test/Lem_Specific_Export/Lem_Export_exec.h:
+ * tests/IDL_Test/Lem_Specific_Export/Lem_Export_exec.cpp:
+ * tests/IDL_Test/Reused_Facet_Interface:
+ * tests/IDL_Test/Reused_Facet_Interface/Basic.idl:
+ * tests/IDL_Test/Reused_Facet_Interface/Basic.mpc:
+ * tests/IDL_Test/Reused_Facet_Interface/CodeGen.idl:
+ * tests/IDL_Test/Reused_Facet_Interface/README:
+ * tests/IDL_Test/Reused_Facet_Interface/Reused_Facet_Interface.mpc:
+ * tests/Minimum/Minimum_Base/Minimum_Base.mpc:
+ * tests/Minimum/Receiver/Receiver.mpc:
+ * tests/Minimum/Receiver/Receiver_exec.h:
+ * tests/Minimum/Receiver/Receiver_exec.cpp:
+ * tests/Minimum/Sender/Sender.mpc:
+ * tests/Minimum/Sender/Sender_exec.h:
+ * tests/Minimum/Sender/Sender_exec.cpp:
+ * tools:
+ * tools/Config_Handlers/Basic_Deployment_Data.cpp:
+ * tools/Config_Handlers/Basic_Deployment_Data.hpp:
+ * tools/Config_Handlers/CPD_Handler.cpp:
+ * tools/Config_Handlers/Config_Handlers.mpc:
+ * tools/Config_Handlers/DP_Handler.cpp:
+ * tools/Config_Handlers/DataType_Handler.cpp:
+ * tools/Config_Handlers/Deployment.cpp:
+ * tools/Config_Handlers/DnC_Dump.h:
+ * tools/Config_Handlers/Dump_Obj.h:
+ * tools/Config_Handlers/Dump_Obj.cpp:
+ * tools/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp:
+ * tools/Config_Handlers/DynAny_Handler/DynSequence_Handler.cpp:
+ * tools/Config_Handlers/PL_Handler.h:
+ * tools/Config_Handlers/PL_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/CAD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.h:
+ * tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/Package_Handlers.mpc:
+ * tools/Config_Handlers/Req_Handler.cpp:
+ * tools/Config_Handlers/XMI.cpp:
+ * tools/Config_Handlers/XML_File_Intf.cpp:
+ * tools/Config_Handlers/ccd.cpp:
+ * tools/Config_Handlers/cdd.cpp:
+ * tools/Config_Handlers/cdp.cpp:
+ * tools/Config_Handlers/cdp.hpp:
+ * tools/Config_Handlers/cid.hpp:
+ * tools/Config_Handlers/cid.cpp:
+ * tools/Config_Handlers/cpd.hpp:
+ * tools/Config_Handlers/cpd.cpp:
+ * tools/Config_Handlers/iad.cpp:
+ * tools/Config_Handlers/pcd.cpp:
+ * tools/Config_Handlers/toplevel.hpp:
+ * tools/Config_Handlers/toplevel.cpp:
+ * tools/XML/XML_Helper.tpp:
+ * CCF:
+ * CCF/Bootstrap.rules:
+ * CCF/CCF:
+ * CCF/CCF/CIDL:
+ * CCF/CCF/CIDL/CIDL.mpc:
+ * CCF/CCF/CIDL/LexicalAnalyzer.cpp:
+ * CCF/CCF/CIDL/LexicalAnalyzer.hpp:
+ * CCF/CCF/CIDL/Parser.cpp:
+ * CCF/CCF/CIDL/Parser.hpp:
+ * CCF/CCF/CIDL/SemanticAction:
+ * CCF/CCF/CIDL/SemanticAction.hpp:
+ * CCF/CCF/CIDL/SemanticAction/Composition.hpp:
+ * CCF/CCF/CIDL/SemanticAction/Composition.cpp:
+ * CCF/CCF/CIDL/SemanticAction/Elements.hpp:
+ * CCF/CCF/CIDL/SemanticAction/Factory.hpp:
+ * CCF/CCF/CIDL/SemanticAction/HomeExecutor.hpp:
+ * CCF/CCF/CIDL/SemanticAction/Impl:
+ * CCF/CCF/CIDL/SemanticAction/Impl/Composition.hpp:
+ * CCF/CCF/CIDL/SemanticAction/Impl/Composition.cpp:
+ * CCF/CCF/CIDL/SemanticAction/Impl/Elements.hpp:
+ * CCF/CCF/CIDL/SemanticAction/Impl/Factory.cpp:
+ * CCF/CCF/CIDL/SemanticAction/Impl/Factory.hpp:
+ * CCF/CCF/CIDL/SemanticAction/Impl/HomeExecutor.hpp:
+ * CCF/CCF/CIDL/SemanticAction/Impl/HomeExecutor.cpp:
+ * CCF/CCF/CIDL/SemanticGraph:
+ * CCF/CCF/CIDL/SemanticGraph.hpp:
+ * CCF/CCF/CIDL/SemanticGraph/Composition.hpp:
+ * CCF/CCF/CIDL/SemanticGraph/Composition.cpp:
+ * CCF/CCF/CIDL/SemanticGraph/Elements.hpp:
+ * CCF/CCF/CIDL/SemanticGraph/Elements.cpp:
+ * CCF/CCF/CIDL/SemanticGraph/Executor.hpp:
+ * CCF/CCF/CIDL/SemanticGraph/Executor.cpp:
+ * CCF/CCF/CIDL/Token.hpp:
+ * CCF/CCF/CIDL/Traversal:
+ * CCF/CCF/CIDL/Traversal.hpp:
+ * CCF/CCF/CIDL/Traversal/Composition.hpp:
+ * CCF/CCF/CIDL/Traversal/Composition.tpp:
+ * CCF/CCF/CIDL/Traversal/Elements.hpp:
+ * CCF/CCF/CIDL/Traversal/Executor.hpp:
+ * CCF/CCF/CIDL/Traversal/Executor.cpp:
+ * CCF/CCF/CodeGenerationKit:
+ * CCF/CCF/CodeGenerationKit/CodeGenerationKit.mpc:
+ * CCF/CCF/CodeGenerationKit/CommandLine.hpp:
+ * CCF/CCF/CodeGenerationKit/CommandLine.cpp:
+ * CCF/CCF/CodeGenerationKit/CommandLineDescriptor.hpp:
+ * CCF/CCF/CodeGenerationKit/CommandLineParser.hpp:
+ * CCF/CCF/CodeGenerationKit/CommandLineParser.cpp:
+ * CCF/CCF/CodeGenerationKit/IndentationBuffer.hpp:
+ * CCF/CCF/CodeGenerationKit/IndentationCxx.hpp:
+ * CCF/CCF/CodeGenerationKit/IndentationIDL.hpp:
+ * CCF/CCF/CodeGenerationKit/IndentationImplanter.hpp:
+ * CCF/CCF/CodeGenerationKit/IndentationJava.hpp:
+ * CCF/CCF/CodeGenerationKit/IndentationXML.hpp:
+ * CCF/CCF/CodeGenerationKit/Regex.hpp:
+ * CCF/CCF/CompilerElements:
+ * CCF/CCF/CompilerElements/CompilerElements.mpc:
+ * CCF/CCF/CompilerElements/Context.hpp:
+ * CCF/CCF/CompilerElements/Diagnostic.hpp:
+ * CCF/CCF/CompilerElements/ExH.hpp:
+ * CCF/CCF/CompilerElements/FileSystem.hpp:
+ * CCF/CCF/CompilerElements/Introspection.hpp:
+ * CCF/CCF/CompilerElements/Introspection.cpp:
+ * CCF/CCF/CompilerElements/Preprocessor.cpp:
+ * CCF/CCF/CompilerElements/Preprocessor.hpp:
+ * CCF/CCF/CompilerElements/PreprocessorToken.hpp:
+ * CCF/CCF/CompilerElements/PreprocessorToken.cpp:
+ * CCF/CCF/CompilerElements/ReferenceCounting.hpp:
+ * CCF/CCF/CompilerElements/TokenStream.hpp:
+ * CCF/CCF/IDL2:
+ * CCF/CCF/IDL2/IDL2.mpc:
+ * CCF/CCF/IDL2/LexicalAnalyzer.cpp:
+ * CCF/CCF/IDL2/LexicalAnalyzer.hpp:
+ * CCF/CCF/IDL2/Parser.cpp:
+ * CCF/CCF/IDL2/Parser.hpp:
+ * CCF/CCF/IDL2/Parsing:
+ * CCF/CCF/IDL2/Parsing/Action.hpp:
+ * CCF/CCF/IDL2/Parsing/Elements.hpp:
+ * CCF/CCF/IDL2/Parsing/Recovery.hpp:
+ * CCF/CCF/IDL2/SemanticAction:
+ * CCF/CCF/IDL2/SemanticAction.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Attribute.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Const.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Elements.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Enum.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Exception.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Factory.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Attribute.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Attribute.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Const.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Const.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Elements.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Elements.tpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Elements.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Enum.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Enum.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Exception.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Exception.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Factory.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Factory.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Include.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Include.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Interface.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Interface.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Member.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Member.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Module.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Module.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Native.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Native.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/NumericExpression.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/NumericExpression.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Operation.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Operation.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Struct.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Struct.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/TypeId.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/TypeId.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Typedef.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Typedef.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Union.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Union.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/ValueType.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/ValueType.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/ValueTypeFactory.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/ValueTypeFactory.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/ValueTypeMember.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/ValueTypeMember.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Include.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Interface.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Member.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Module.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Native.hpp:
+ * CCF/CCF/IDL2/SemanticAction/NumericExpression.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Operation.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Operation.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Struct.hpp:
+ * CCF/CCF/IDL2/SemanticAction/TypeId.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Typedef.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Union.hpp:
+ * CCF/CCF/IDL2/SemanticAction/ValueType.hpp:
+ * CCF/CCF/IDL2/SemanticAction/ValueTypeFactory.hpp:
+ * CCF/CCF/IDL2/SemanticAction/ValueTypeMember.hpp:
+ * CCF/CCF/IDL2/SemanticGraph:
+ * CCF/CCF/IDL2/SemanticGraph.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Array.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Array.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Attribute.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Attribute.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Elements.tpp:
+ * CCF/CCF/IDL2/SemanticGraph/Elements.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Elements.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Enum.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Enum.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Exception.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Exception.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Fundamental.cpp.m4:
+ * CCF/CCF/IDL2/SemanticGraph/Fundamental.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Fundamental.hpp.m4:
+ * CCF/CCF/IDL2/SemanticGraph/Fundamental.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Fundamental.m4:
+ * CCF/CCF/IDL2/SemanticGraph/Graph.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Graph.tpp:
+ * CCF/CCF/IDL2/SemanticGraph/IntExpression.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/IntExpression.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Interface.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Interface.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Literals.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Literals.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Member.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Member.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Module.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Module.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Name.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Name.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Native.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Native.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Operation.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Operation.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Sequence.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Sequence.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/String.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/String.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Struct.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Struct.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Translation.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Translation.ipp:
+ * CCF/CCF/IDL2/SemanticGraph/Translation.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/TypeId.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/TypeId.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Union.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Union.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/ValueType.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/ValueType.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/ValueTypeMember.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/ValueTypeMember.cpp:
+ * CCF/CCF/IDL2/Token.cpp:
+ * CCF/CCF/IDL2/Token.hpp:
+ * CCF/CCF/IDL2/Traversal:
+ * CCF/CCF/IDL2/Traversal.hpp:
+ * CCF/CCF/IDL2/Traversal/Array.hpp:
+ * CCF/CCF/IDL2/Traversal/Array.cpp:
+ * CCF/CCF/IDL2/Traversal/Attribute.hpp:
+ * CCF/CCF/IDL2/Traversal/Attribute.cpp:
+ * CCF/CCF/IDL2/Traversal/Elements.hpp:
+ * CCF/CCF/IDL2/Traversal/Elements.tpp:
+ * CCF/CCF/IDL2/Traversal/Elements.cpp:
+ * CCF/CCF/IDL2/Traversal/Enum.hpp:
+ * CCF/CCF/IDL2/Traversal/Enum.cpp:
+ * CCF/CCF/IDL2/Traversal/Exception.cpp:
+ * CCF/CCF/IDL2/Traversal/Exception.hpp:
+ * CCF/CCF/IDL2/Traversal/Fundamental.hpp:
+ * CCF/CCF/IDL2/Traversal/Fundamental.cpp:
+ * CCF/CCF/IDL2/Traversal/IntExpression.hpp:
+ * CCF/CCF/IDL2/Traversal/Interface.hpp:
+ * CCF/CCF/IDL2/Traversal/Interface.tpp:
+ * CCF/CCF/IDL2/Traversal/Interface.cpp:
+ * CCF/CCF/IDL2/Traversal/Member.cpp:
+ * CCF/CCF/IDL2/Traversal/Member.hpp:
+ * CCF/CCF/IDL2/Traversal/Module.cpp:
+ * CCF/CCF/IDL2/Traversal/Module.hpp:
+ * CCF/CCF/IDL2/Traversal/Native.cpp:
+ * CCF/CCF/IDL2/Traversal/Native.hpp:
+ * CCF/CCF/IDL2/Traversal/Operation.hpp:
+ * CCF/CCF/IDL2/Traversal/Operation.tpp:
+ * CCF/CCF/IDL2/Traversal/Operation.cpp:
+ * CCF/CCF/IDL2/Traversal/Sequence.hpp:
+ * CCF/CCF/IDL2/Traversal/Sequence.cpp:
+ * CCF/CCF/IDL2/Traversal/String.cpp:
+ * CCF/CCF/IDL2/Traversal/String.hpp:
+ * CCF/CCF/IDL2/Traversal/Struct.cpp:
+ * CCF/CCF/IDL2/Traversal/Struct.hpp:
+ * CCF/CCF/IDL2/Traversal/Translation.hpp:
+ * CCF/CCF/IDL2/Traversal/Translation.cpp:
+ * CCF/CCF/IDL2/Traversal/TypeId.hpp:
+ * CCF/CCF/IDL2/Traversal/TypeId.cpp:
+ * CCF/CCF/IDL2/Traversal/Union.hpp:
+ * CCF/CCF/IDL2/Traversal/Union.cpp:
+ * CCF/CCF/IDL2/Traversal/ValueType.hpp:
+ * CCF/CCF/IDL2/Traversal/ValueType.cpp:
+ * CCF/CCF/IDL2/Traversal/ValueType.tpp:
+ * CCF/CCF/IDL2/Traversal/ValueTypeMember.hpp:
+ * CCF/CCF/IDL2/Traversal/ValueTypeMember.tpp:
+ * CCF/CCF/IDL3:
+ * CCF/CCF/IDL3/IDL3.mpc:
+ * CCF/CCF/IDL3/LexicalAnalyzer.hpp:
+ * CCF/CCF/IDL3/LexicalAnalyzer.cpp:
+ * CCF/CCF/IDL3/Parser.cpp:
+ * CCF/CCF/IDL3/Parser.hpp:
+ * CCF/CCF/IDL3/SemanticAction:
+ * CCF/CCF/IDL3/SemanticAction.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Component.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Consumes.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Elements.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Emits.hpp:
+ * CCF/CCF/IDL3/SemanticAction/EventType.hpp:
+ * CCF/CCF/IDL3/SemanticAction/EventTypeFactory.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Factory.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Home.hpp:
+ * CCF/CCF/IDL3/SemanticAction/HomeFactory.hpp:
+ * CCF/CCF/IDL3/SemanticAction/HomeFinder.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Component.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Component.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Consumes.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Consumes.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Elements.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Emits.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Emits.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/EventType.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/EventType.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/EventTypeFactory.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/EventTypeFactory.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Factory.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Factory.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Home.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Home.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/HomeFactory.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/HomeFactory.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/HomeFinder.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/HomeFinder.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Include.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Include.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Provides.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Provides.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Publishes.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Publishes.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Uses.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Uses.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Provides.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Publishes.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Uses.hpp:
+ * CCF/CCF/IDL3/SemanticGraph:
+ * CCF/CCF/IDL3/SemanticGraph.hpp:
+ * CCF/CCF/IDL3/SemanticGraph/Component.hpp:
+ * CCF/CCF/IDL3/SemanticGraph/Component.cpp:
+ * CCF/CCF/IDL3/SemanticGraph/Elements.hpp:
+ * CCF/CCF/IDL3/SemanticGraph/Elements.cpp:
+ * CCF/CCF/IDL3/SemanticGraph/EventType.hpp:
+ * CCF/CCF/IDL3/SemanticGraph/EventType.cpp:
+ * CCF/CCF/IDL3/SemanticGraph/Home.cpp:
+ * CCF/CCF/IDL3/SemanticGraph/Home.hpp:
+ * CCF/CCF/IDL3/Token.hpp:
+ * CCF/CCF/IDL3/Traversal:
+ * CCF/CCF/IDL3/Traversal.hpp:
+ * CCF/CCF/IDL3/Traversal/Component.hpp:
+ * CCF/CCF/IDL3/Traversal/Component.tpp:
+ * CCF/CCF/IDL3/Traversal/Component.cpp:
+ * CCF/CCF/IDL3/Traversal/Elements.hpp:
+ * CCF/CCF/IDL3/Traversal/EventType.hpp:
+ * CCF/CCF/IDL3/Traversal/EventType.tpp:
+ * CCF/CCF/IDL3/Traversal/Home.hpp:
+ * CCF/CCF/IDL3/Traversal/Home.cpp:
+ * CCF/Config.rules:
+ * CCF/Documentation:
+ * CCF/Documentation/Build.html:
+ * CCF/Documentation/DesignNotes:
+ * CCF/Documentation/TODO:
+ * CCF/Example:
+ * CCF/Example/CIDL:
+ * CCF/Example/CIDL/LocalExecutorMapping:
+ * CCF/Example/CIDL/LocalExecutorMapping/ExecutorMappingGenerator.hpp:
+ * CCF/Example/CIDL/LocalExecutorMapping/ExecutorMappingGenerator.cpp:
+ * CCF/Example/CIDL/LocalExecutorMapping/cidlc.cpp:
+ * CCF/Example/CIDL/LocalExecutorMapping/test-0.idl:
+ * CCF/Example/CIDL/LocalExecutorMapping/test-0_exec.idl.orig:
+ * CCF/Example/CIDL/LocalExecutorMapping/test-1.idl:
+ * CCF/Example/CIDL/LocalExecutorMapping/test-1_exec.idl.orig:
+ * CCF/Example/CIDL/LocalExecutorMapping/test-2.cidl:
+ * CCF/Example/CIDL/LocalExecutorMapping/test-2.idl:
+ * CCF/Example/CIDL/LocalExecutorMapping/test-2_exec.idl.orig:
+ * CCF/Example/CodeGenerationKit:
+ * CCF/Example/CodeGenerationKit/Indentation:
+ * CCF/Example/CodeGenerationKit/Indentation/IDL:
+ * CCF/Example/CodeGenerationKit/Indentation/IDL/indent_idl.cpp:
+ * CCF/Example/CodeGenerationKit/Indentation/XML:
+ * CCF/Example/CodeGenerationKit/Indentation/XML/indent_xml.cpp:
+ * CCF/Example/ComponentDeploymentDescriptor:
+ * CCF/Example/ComponentDeploymentDescriptor/SyntaxTree.hpp:
+ * CCF/Example/ComponentDeploymentDescriptor/SyntaxTree.cpp:
+ * CCF/Example/ComponentDeploymentDescriptor/Traversal.hpp:
+ * CCF/Example/ComponentDeploymentDescriptor/Traversal.cpp:
+ * CCF/Example/ComponentDeploymentDescriptor/cdd.cpp:
+ * CCF/Example/IDL2:
+ * CCF/Example/IDL2/CxxMapping:
+ * CCF/Example/IDL2/CxxMapping/Generator.cpp:
+ * CCF/Example/IDL2/CxxMapping/Generator.hpp:
+ * CCF/Example/IDL2/CxxMapping/GeneratorImpl.hpp:
+ * CCF/Example/IDL2/CxxMapping/driver.cpp:
+ * CCF/Example/IDL2/CxxMapping/test.idl:
+ * CCF/Test:
+ * CCF/Test/CIDL:
+ * CCF/Test/CIDL/Compiler:
+ * CCF/Test/CIDL/Compiler/Generator.cpp:
+ * CCF/Test/CIDL/Compiler/Generator.hpp:
+ * CCF/Test/CIDL/Compiler/GeneratorImpl.hpp:
+ * CCF/Test/CIDL/Compiler/driver.cpp:
+ * CCF/Test/CIDL/Compiler/result.cidl.orig:
+ * CCF/Test/CIDL/Compiler/test.cidl:
+ * CCF/Test/CompilerElements:
+ * CCF/Test/CompilerElements/CPP:
+ * CCF/Test/CompilerElements/CPP/driver.cpp:
+ * CCF/Test/IDL2:
+ * CCF/Test/IDL2/Compiler:
+ * CCF/Test/IDL2/Compiler/driver.cpp:
+ * CCF/Test/IDL2/Compiler/result.idl.orig:
+ * CCF/Test/IDL2/Compiler/test.idl:
+ * CCF/Test/IDL2/LexicalAnalyzer:
+ * CCF/Test/IDL2/LexicalAnalyzer/Coverage.idl:
+ * CCF/Test/IDL2/Parser:
+ * CCF/Test/IDL2/Parser/Recovery:
+ * CCF/Test/IDL2/Parser/Recovery/interface.idl:
+ * CCF/Test/IDL2/Parser/Recovery/module.idl:
+ * CCF/Test/IDL2/SemanticGraph:
+ * CCF/Test/IDL2/SemanticGraph/HandBuilt:
+ * CCF/Test/IDL2/SemanticGraph/HandBuilt/Builder.cpp:
+ * CCF/Test/IDL2/SemanticGraph/HandBuilt/Builder.hpp:
+ * CCF/Test/IDL2/SemanticGraph/HandBuilt/hand_built.cpp:
+ * CCF/Test/IDL2/Traversal:
+ * CCF/Test/IDL2/Traversal/Recreate:
+ * CCF/Test/IDL2/Traversal/Recreate/Generator.cpp:
+ * CCF/Test/IDL2/Traversal/Recreate/Generator.hpp:
+ * CCF/Test/IDL2/Traversal/Recreate/GeneratorImpl.hpp:
+ * CCF/Test/IDL2/Traversal/Recreate/recreate.cpp:
+ * CCF/Test/IDL3:
+ * CCF/Test/IDL3/Compiler:
+ * CCF/Test/IDL3/Compiler/Generator.hpp:
+ * CCF/Test/IDL3/Compiler/Generator.cpp:
+ * CCF/Test/IDL3/Compiler/GeneratorImpl.hpp:
+ * CCF/Test/IDL3/Compiler/driver.cpp:
+ * CCF/Test/IDL3/Compiler/result.idl.orig:
+ * CCF/Test/IDL3/Compiler/test.idl:
+ * CCF/Version:
+ * CIDLC:
+ * CIDLC/AttributeHeaderEmitters.hpp:
+ * CIDLC/AttributeHeaderEmitters.cpp:
+ * CIDLC/AttributeSourceEmitters_T.hpp:
+ * CIDLC/CIDLC.mpc:
+ * CIDLC/CIDLC.mwc:
+ * CIDLC/Collectors.hpp:
+ * CIDLC/CompositionEmitter.cpp:
+ * CIDLC/CompositionEmitter.hpp:
+ * CIDLC/CorbaTypeNameEmitters.cpp:
+ * CIDLC/CorbaTypeNameEmitters.hpp:
+ * CIDLC/CxxNamePrinter.hpp:
+ * CIDLC/CxxNamePrinter.cpp:
+ * CIDLC/DescriptorGenerator.cpp:
+ * CIDLC/DescriptorGenerator.hpp:
+ * CIDLC/EmitterBase.cpp:
+ * CIDLC/EmitterBase.hpp:
+ * CIDLC/EmitterContext.hpp:
+ * CIDLC/EmitterContext.cpp:
+ * CIDLC/ExecImplGenerator.hpp:
+ * CIDLC/ExecImplGenerator.cpp:
+ * CIDLC/ExecImplHeaderGenerator.hpp:
+ * CIDLC/ExecImplHeaderGenerator.cpp:
+ * CIDLC/ExecImplSourceGenerator.cpp:
+ * CIDLC/ExecImplSourceGenerator.hpp:
+ * CIDLC/ExecutorMappingGenerator.hpp:
+ * CIDLC/ExecutorMappingGenerator.cpp:
+ * CIDLC/InterfaceEmitter.cpp:
+ * CIDLC/InterfaceEmitter.hpp:
+ * CIDLC/Literals.hpp:
+ * CIDLC/Literals.cpp:
+ * CIDLC/ModuleEmitter.hpp:
+ * CIDLC/ModuleEmitter.cpp:
+ * CIDLC/OperationHeaderEmitters.cpp:
+ * CIDLC/OperationHeaderEmitters.hpp:
+ * CIDLC/ParameterEmitter_T.hpp:
+ * CIDLC/README.html:
+ * CIDLC/RepositoryIdGenerator.hpp:
+ * CIDLC/RepositoryIdGenerator.cpp:
+ * CIDLC/ServantGenerator.cpp:
+ * CIDLC/ServantGenerator.hpp:
+ * CIDLC/ServantHeaderGenerator.hpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.hpp:
+ * CIDLC/SizeTypeCalculator.hpp:
+ * CIDLC/SizeTypeCalculator.cpp:
+ * CIDLC/UnescapedNamePrinter.hpp:
+ * CIDLC/Upcase.hpp:
+ * CIDLC/UtilityTypeNameEmitters.cpp:
+ * CIDLC/UtilityTypeNameEmitters.hpp:
+ * CIDLC/Version:
+ * CIDLC/cidlc.cpp:
+ * DAnCE/Deployment/Deployment_Core.idl:
+ * DAnCE/Interfaces:
+ * DAnCE/Interfaces/ExecutionManagerDaemon.idl:
+ * DAnCE/Interfaces/ExecutionManager_stub_export.h:
+ * DAnCE/Interfaces/Interfaces.mpc:
+ * DAnCE/Interfaces/NodeManagerDaemon.idl:
+ * DAnCE/Interfaces/NodeManager_stub_export.h:
+ * DAnCE/Interfaces/NodeManager_svnt_export.h:
+ * DAnCE/Interfaces/README:
+ * DAnCE/RepositoryManager/Options.h:
+ * DAnCE/RepositoryManager/Options.cpp:
+ * DAnCE/RepositoryManager/RMadmin.cpp:
+ * DAnCE/TargetManager/TargetManager.cidl:
+ * DAnCE/TargetManager/TargetManagerImpl.idl:
+ * DAnCE/TargetManager/TargetManager_exec_export.h:
+ * DAnCE/TargetManager/TargetManager_stub_export.h:
+ * DAnCE/TargetManager/TargetManager_svnt_export.h:
+ * DAnCE/TargetManager/descriptors:
+ * DAnCE/TargetManager/descriptors/Domain.cdd:
+ * DAnCE/TargetManager/descriptors/NodeDetails.dat:
+ * DAnCE/TargetManager/descriptors/NodeManagerMap.dat:
+ * DAnCE/TargetManager/descriptors/flattened_deploymentplan.cdp:
+ * DAnCE/TargetManager/descriptors/run_test_TargetManager.pl:
+ * DAnCE/tests/CIAO/Components/SimpleAttribute.cidl:
+ * DAnCE/tests/CIAO/Components/SimpleAttribute_exec_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleAttribute_stub_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleAttribute_svnt_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleCommon_stub_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleCommon_svnt_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer.cidl:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer_exec_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer_stub_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer_svnt_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter.cidl:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter_exec_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter_stub_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter_svnt_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser.cidl:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser_stub_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser_svnt_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleNull.cidl:
+ * DAnCE/tests/CIAO/Components/SimpleNull_exec_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleNull_stub_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleNull_svnt_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleProvider.cidl:
+ * DAnCE/tests/CIAO/Components/SimpleProvider_exec_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleProvider_stub_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleProvider_svnt_export.h:
+ * DAnCE/tests/CIAO/Components/SimplePublisher.cidl:
+ * DAnCE/tests/CIAO/Components/SimplePublisher_exec_export.h:
+ * DAnCE/tests/CIAO/Components/SimplePublisher_stub_export.h:
+ * DAnCE/tests/CIAO/Components/SimplePublisher_svnt_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleUser.cidl:
+ * DAnCE/tests/CIAO/Components/SimpleUser_exec_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleUser_stub_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleUser_svnt_export.h:
+ * MPC/config/ciao_executionmanager_stub.mpb:
+ * MPC/config/ciao_nodeapplication.mpb:
+ * MPC/config/ciao_nodeapplicationmanager.mpb:
+ * MPC/config/ciao_nodemanager_stub.mpb:
+ * MPC/config/ciao_nodemanager_svnt.mpb:
+ * MPC/config/ciao_plan_generator.mpb:
+ * MPC/config/ciao_targetmanager_stub.mpb:
+ * MPC/config/ciao_targetmanager_svnt.mpb:
+ * MPC/config/ciaocidldefaults.mpb:
+ * MPC/config/cidlc.mpb:
+ * MPC/config/dance.mpb:
+ * MPC/config/dance_cdmw_idl.mpb:
+ * MPC/config/dance_component_server.mpb:
+ * MPC/config/dance_component_server_svnt.mpb:
+ * MPC/config/dance_deployment_stub.mpb:
+ * MPC/config/dance_deployment_svnt.mpb:
+ * MPC/config/dance_domain_application.mpb:
+ * MPC/config/dance_domain_application_manager.mpb:
+ * MPC/config/dance_exe.mpb:
+ * MPC/config/dance_executionmanager_stub.mpb:
+ * MPC/config/dance_extension_stub.mpb:
+ * MPC/config/dance_lib.mpb:
+ * MPC/config/dance_logger.mpb:
+ * MPC/config/dance_mocks.mpb:
+ * MPC/config/dance_node_application.mpb:
+ * MPC/config/dance_node_application_manager.mpb:
+ * MPC/config/dance_node_manager.mpb:
+ * MPC/config/dance_nodemanager_stub.mpb:
+ * MPC/config/dance_nodemanager_svnt.mpb:
+ * MPC/config/dance_plan_generator.mpc:
+ * MPC/config/dance_redirection_service.mpb:
+ * MPC/config/dance_repository_manager.mpb:
+ * MPC/config/dance_repository_manager_base.mpb:
+ * MPC/config/dance_utils.mpb:
+ * bin/msvc_cidlc.pl:
+ * bin/replace_dummy_with_dummylabel.sh:
+ * docs/cidlc.html:
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker.cidl:
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker_exec_export.h:
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker_stub_export.h:
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker_svnt_export.h:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor.cidl:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor_exec_export.h:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor_stub_export.h:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor_svnt_export.h:
+ * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base_skel_export.h:
+ * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base_stub_export.h:
+ * examples/BasicSP/BMClosedED/BMClosedED.cidl:
+ * examples/BasicSP/BMClosedED/BMClosedED_exec_export.h:
+ * examples/BasicSP/BMClosedED/BMClosedED_stub_export.h:
+ * examples/BasicSP/BMClosedED/BMClosedED_svnt_export.h:
+ * examples/BasicSP/BMDevice/BMDevice.cidl:
+ * examples/BasicSP/BMDevice/BMDevice_exec_export.h:
+ * examples/BasicSP/BMDevice/BMDevice_stub_export.h:
+ * examples/BasicSP/BMDevice/BMDevice_svnt_export.h:
+ * examples/BasicSP/BMDisplay/BMDisplay.cidl:
+ * examples/BasicSP/BMDisplay/BMDisplay_exec_export.h:
+ * examples/BasicSP/BMDisplay/BMDisplay_stub_export.h:
+ * examples/BasicSP/BMDisplay/BMDisplay_svnt_export.h:
+ * examples/BasicSP/BasicSP_exec_export.h:
+ * examples/BasicSP/BasicSP_stub_export.h:
+ * examples/BasicSP/BasicSP_svnt_export.h:
+ * examples/BasicSP/EC/EC.cidl:
+ * examples/BasicSP/EC/EC_exec_export.h:
+ * examples/BasicSP/EC/EC_stub_export.h:
+ * examples/BasicSP/EC/EC_svnt_export.h:
+ * examples/DevGuideExamples/Messenger/Administrator.cidl:
+ * examples/DevGuideExamples/Messenger/Administrator_exec_export.h:
+ * examples/DevGuideExamples/Messenger/Administrator_stub_export.h:
+ * examples/DevGuideExamples/Messenger/Administrator_svnt_export.h:
+ * examples/DevGuideExamples/Messenger/Messenger.cidl:
+ * examples/DevGuideExamples/Messenger/Messenger_exec_export.h:
+ * examples/DevGuideExamples/Messenger/Messenger_stub_export.h:
+ * examples/DevGuideExamples/Messenger/Messenger_svnt_export.h:
+ * examples/DevGuideExamples/Messenger/Receiver.cidl:
+ * examples/DevGuideExamples/Messenger/Receiver_exec_export.h:
+ * examples/DevGuideExamples/Messenger/Receiver_stub_export.h:
+ * examples/DevGuideExamples/Messenger/Receiver_svnt_export.h:
+ * examples/Display/Display_Base/Display_Base_skel_export.h:
+ * examples/Display/Display_Base/Display_Base_stub_export.h:
+ * examples/Display/GPS/GPS.cidl:
+ * examples/Display/GPS/GPS_exec_export.h:
+ * examples/Display/GPS/GPS_stub_export.h:
+ * examples/Display/GPS/GPS_svnt_export.h:
+ * examples/Display/NavDisplay/NavDisplay.cidl:
+ * examples/Display/NavDisplay/NavDisplay_exec_export.h:
+ * examples/Display/NavDisplay/NavDisplay_stub_export.h:
+ * examples/Display/NavDisplay/NavDisplay_svnt_export.h:
+ * examples/Display/RateGen/RateGen.cidl:
+ * examples/Display/RateGen/RateGen_exec_export.h:
+ * examples/Display/RateGen/RateGen_stub_export.h:
+ * examples/Display/RateGen/RateGen_svnt_export.h:
+ * examples/Hello/Receiver/Receiver.cidl:
+ * examples/Hello/Receiver/Receiver_exec_export.h:
+ * examples/Hello/Receiver/Receiver_stub_export.h:
+ * examples/Hello/Receiver/Receiver_svnt_export.h:
+ * examples/Hello/Sender/Sender.cidl:
+ * examples/Hello/Sender/Sender_exec_export.h:
+ * examples/Hello/Sender/Sender_stub_export.h:
+ * examples/Hello/Sender/Sender_svnt_export.h:
+ * examples/Null_Component/Null_Component.cidl:
+ * examples/Null_Component/Null_Component_exec_export.h:
+ * examples/Null_Component/Null_Component_stub_export.h:
+ * examples/Null_Component/Null_Component_svnt_export.h:
+ * examples/Null_Component/Null_Interface_skel_export.h:
+ * examples/Null_Component/Null_Interface_stub_export.h:
+ * examples/Swapping/Receiver/Receiver.cidl:
+ * examples/Swapping/Receiver/Receiver_exec_export.h:
+ * examples/Swapping/Receiver/Receiver_stub_export.h:
+ * examples/Swapping/Receiver/Receiver_svnt_export.h:
+ * examples/Swapping/Sender/Sender.cidl:
+ * examples/Swapping/Sender/Sender_exec_export.h:
+ * examples/Swapping/Sender/Sender_stub_export.h:
+ * examples/Swapping/Sender/Sender_svnt_export.h:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip.cidl:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip_exec_export.h:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip_stub_export.h:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip_svnt_export.h:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient.cidl:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec_export.h:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient_stub_export.h:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient_svnt_export.h:
+ * performance-tests/Protocols/Receiver/Receiver.cidl:
+ * performance-tests/Protocols/Receiver/Receiver_exec_export.h:
+ * performance-tests/Protocols/Receiver/Receiver_stub_export.h:
+ * performance-tests/Protocols/Receiver/Receiver_svnt_export.h:
+ * performance-tests/Protocols/Sender/Sender.cidl:
+ * performance-tests/Protocols/Sender/Sender_exec_export.h:
+ * performance-tests/Protocols/Sender/Sender_stub_export.h:
+ * performance-tests/Protocols/Sender/Sender_svnt_export.h:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.cidl:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec_export.h:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_stub_export.h:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_svnt_export.h:
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.cidl:
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec_export.h:
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_stub_export.h:
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_svnt_export.h:
+ * tests/CIDL/CodeGen/CodeGen.cidl:
+ * tests/CIDL/CodeGen/CodeGen_exec_export.h:
+ * tests/CIDL/CodeGen/CodeGen_stub_export.h:
+ * tests/CIDL/CodeGen/CodeGen_svnt_export.h:
+ * tests/Minimum/Receiver/Receiver.cidl:
+ * tests/Minimum/Receiver/Receiver_exec_export.h:
+ * tests/Minimum/Receiver/Receiver_stub_export.h:
+ * tests/Minimum/Receiver/Receiver_svnt_export.h:
+ * tests/Minimum/Sender/Sender.cidl:
+ * tests/Minimum/Sender/Sender_exec_export.h:
+ * tests/Minimum/Sender/Sender_stub_export.h:
+ * tests/Minimum/Sender/Sender_svnt_export.h:
+
+ Merged in dds_ports branch, full changelogs pasted below.
+
+ Fri Jul 10 18:02:14 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * DAnCE/ExecutionManager/ExecutionManager_Module.cpp:
+ * DAnCE/Logger/File_Logger_Backend.cpp:
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp:
+ * DAnCE/Plan_Launcher/launcher.cpp:
+ * DAnCE/RepositoryManager/Repository_Manager_Module.cpp:
+ * DAnCE/TargetManager/Target_Manager_Module.cpp:
+ * DAnCE/tests/RedirectionServiceTest/clt_main.cpp:
+ Got rid of ace/OS.h. Made these includes more specific.
+
+ * DAnCE/Logger/Logger_Service.cpp:
+ Used the default way of parsing command line arguments.
+
+ Fri Jul 10 17:23:09 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/MPC/config/dance_targetmanager.mpb:
+ Updated base
+
+ Fri Jul 10 07:17:09 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/DataType_Handler.cpp
+ * tools/Config_Handlers/Dump_Obj.cpp
+ * tools/Config_Handlers/Package_Handlers/CAD_Handler.cpp
+ * tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.h
+ * tools/Config_Handlers/Req_Handler.cpp
+ Fixed includes because of refactoring of the deployment idl
+
+ Thu Jul 9 18:04:09 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Deployment/DAnCE_Core.mpc
+ * DAnCE/ExecutionManager/ExecutionManager.mpc
+ * DAnCE/MPC/config/dance_repository_manager.mpb
+ * DAnCE/MPC/config/dance_repository_manager_base.mpb
+ * DAnCE/MPC/config/dance_repositorymanager.mpb
+ * DAnCE/MPC/config/dance_repositorymanager_skel.mpb
+ * DAnCE/MPC/config/dance_repositorymanager_stub.mpb
+ * DAnCE/MPC/config/dance_repositorymanagerbase.mpb
+ * DAnCE/MPC/config/dance_target_manager.mpb
+ * DAnCE/MPC/config/dance_targetmanager.mpb
+ * DAnCE/MPC/config/dance_targetmanager_skel.mpb
+ * DAnCE/MPC/config/dance_targetmanager_stub.mpb
+ * DAnCE/NodeApplication/ComponentAttributesSetter.cpp
+ * DAnCE/NodeApplication/ComponentAttributesSetter.h
+ * DAnCE/RepositoryManager/RepositoryManager.mpc
+ * DAnCE/TargetManager/DAnCE_TargetManagerDaemon.idl
+ * DAnCE/TargetManager/TargetManager.mpc
+ * DAnCE/TargetManager/TargetManagerDaemon.idl
+ Splitted target and repository manager in seperate projects
+
+ Thu Jul 9 13:23:09 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Deployment/CIAO_ExecutionManager_stub_export.h
+ * DAnCE/Deployment/CIAO_ExecutionManagerDaemon.idl
+ * DAnCE/Deployment/CIAO_Interfaces.mpc
+ * DAnCE/Deployment/CIAO_NodeManager_skel_export.h
+ * DAnCE/Deployment/CIAO_NodeManager_stub_export.h
+ * DAnCE/Deployment/CIAO_NodeManagerDaemon.idl
+ * DAnCE/Deployment/DAnCE_Core.mpc
+ * DAnCE/Deployment/Deployment_DomainApplication_skel_export.h
+ * DAnCE/Deployment/Deployment_DomainApplication_stub_export.h
+ * DAnCE/Deployment/Deployment_DomainApplicationManager.idl
+ * DAnCE/Deployment/Deployment_ExecutionManager_skel_export.h
+ * DAnCE/Deployment/Deployment_ExecutionManager_stub_export.h
+ * DAnCE/Deployment/Deployment_NodeApplicationManager_skel_export.h
+ * DAnCE/Deployment/Deployment_NodeApplicationManager_stub_export.h
+ * DAnCE/Deployment/Deployment_NodeManager_skel_export.h
+ * DAnCE/Deployment/Deployment_NodeManager_stub_export.h
+ * DAnCE/DomainApplication/DomainApplication.mpc
+ * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc
+ * DAnCE/ExecutionManager/ExecutionManager.mpc
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.h
+ * DAnCE/Interfaces/ExecutionManager_stub_export.h
+ * DAnCE/Interfaces/ExecutionManagerDaemon.idl
+ * DAnCE/Interfaces/Interfaces.mpc
+ * DAnCE/Interfaces/NodeManager_stub_export.h
+ * DAnCE/Interfaces/NodeManager_svnt_export.h
+ * DAnCE/Interfaces/NodeManagerDaemon.idl
+ * DAnCE/Interfaces/README
+ * DAnCE/Logger/Logger.mpc
+ * DAnCE/MPC
+ * DAnCE/MPC/config
+ * DAnCE/NodeApplication/NodeApplication.mpc
+ * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc
+ * DAnCE/NodeManager/NodeManager.mpc
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.h
+ * DAnCE/TargetManager/TargetManager.mpc
+ * MPC/config/ciao_executionmanager_skel.mpb
+ * MPC/config/ciao_executionmanager_stub.mpb
+ * MPC/config/ciao_nodemanager_skel.mpb
+ * MPC/config/ciao_nodemanager_stub.mpb
+ * MPC/config/ciao_nodemanager_svnt.mpb
+ * MPC/config/dance_domain_application.mpb
+ * MPC/config/dance_domain_application_manager.mpb
+ * MPC/config/dance_domainapplication.mpb
+ * MPC/config/dance_domainapplicationmanager.mpb
+ * MPC/config/dance_domainapplicationmanager_skel.mpb
+ * MPC/config/dance_domainapplicationmanager_stub.mpb
+ * MPC/config/dance_executionmanager_stub.mpb
+ * MPC/config/dance_extension_stub.mpb
+ * MPC/config/dance_node_application.mpb
+ * MPC/config/dance_node_application_manager.mpb
+ * MPC/config/dance_node_manager.mpb
+ * MPC/config/dance_nodeapplication.mpb
+ * MPC/config/dance_nodeapplication_skel.mpb
+ * MPC/config/dance_nodeapplication_stub.mpb
+ * MPC/config/dance_nodeapplicationmanager.mpb
+ * MPC/config/dance_nodeapplicationmanager_skel.mpb
+ * MPC/config/dance_nodeapplicationmanager_stub.mpb
+ * MPC/config/dance_nodemanager.mpb
+ * MPC/config/dance_nodemanager_skel.mpb
+ * MPC/config/dance_nodemanager_stub.mpb
+ * MPC/config/dance_nodemanager_svnt.mpb
+ Major splitting up in seperate libraries
+
+ Thu Jul 9 13:00:47 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * docs/tutorials/Quoter/Simple/03.html:
+ * docs/tutorials/Quoter/Simple/04.html:
+ Changed to meet the latest version of Dance.
+
+ * docs/tutorials/Quoter/Simple/Broker/StockBrokerDriver.cpp:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributorDriver.cpp:
+ Changed help text to meet the actual value of the IOR files.
+
+ * docs/tutorials/Quoter/Simple/descriptors/Domain.cdd:
+ * docs/tutorials/Quoter/Simple/descriptors/Plan.cdp:
+ Changed to meet the latest version of dance
+
+ Thu Jul 9 11:02:09 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Deployment/DAnCE_Core.mpc
+ * DAnCE/Deployment/Deployment.idl
+ * DAnCE/Deployment/Deployment_Application.idl
+ * DAnCE/Deployment/Deployment_ApplicationManager.idl
+ * DAnCE/Deployment/Deployment_Connection.idl
+ * DAnCE/Deployment/Deployment_Core.idl
+ * DAnCE/Deployment/Deployment_Data.idl
+ * DAnCE/Deployment/Deployment_DomainApplication.idl
+ * DAnCE/Deployment/Deployment_DomainApplicationManager.idl
+ * DAnCE/Deployment/Deployment_ExecutionManager.idl
+ * DAnCE/Deployment/Deployment_NodeApplication.idl
+ * DAnCE/Deployment/Deployment_NodeApplicationManager.idl
+ * DAnCE/Deployment/Deployment_NodeManager.idl
+ * DAnCE/Deployment/Deployment_PlanError.idl
+ * DAnCE/Deployment/Deployment_StartError.idl
+ * DAnCE/Deployment/Deployment_StopError.idl
+ * DAnCE/Deployment/Deployment_TargetManager.idl
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp
+ * DAnCE/Plan_Generator/PCVisitorBase.h
+ * DAnCE/Utils/Plan_Handler.h
+ * tools/Config_Handlers/DnC_Dump.h
+ First step in refactoring all DAnCE IDL in seperate files
+ and create more seperate dlls
+
+ Wed Jul 8 18:51:09 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * docs/tutorials/Quoter/Simple/03.html:
+ Updated picl_to_idl command line parameters
+
+ Wed Jul 8 15:12:09 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ccm/CCM.mpc
+ * ccm/CCM_Configurator.idl
+ * ccm/CCM_Cookie.idl
+ * ccm/CCM_Enumeration.idl
+ * ccm/CCM_EventBase.idl
+ * ccm/CCM_EventConsumerBase.idl
+ * ccm/CCM_Events.idl
+ * ccm/CCM_Exceptions.idl
+ * ccm/CCM_Home.idl
+ * ccm/CCM_HomeConfiguration.idl
+ * ccm/CCM_HomeFinder.idl
+ * ccm/CCM_Homes.idl
+ * ccm/CCM_KeylessCCMHome.idl
+ * ccm/CCM_Navigation.idl
+ * ccm/CCM_Object.idl
+ * ccm/CCM_Receptacle.idl
+ * ccm/CCM_StandardConfigurator.idl
+ * ccm/ComponentServer/CCM_ComponentServer.idl
+ * ciao/ComponentServer/CIAO_ComponentServer.idl
+ Moved CCM_Homes to their own file and added to each header whether
+ they are compliant or not and which section of the OMG spec 06-04-01
+ they are defined in
+
+ Wed Jul 8 14:08:09 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * bin/generate_component_mpc.pl:
+ _lem_stub must not be created when -n is used as a command
+ line parameter.
+ Besides this, there were some dependency error.
+ Also added -o option. This option allows the user to specify
+ a library output dir. This dir is set to all projects.
+
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker.mpc:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor.mpc:
+ * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.mpc:
+ Updated using the latest version of generate_component_mpc.pl.
+
+ Wed Jul 8 11:48:45 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * MPC/config/dds4ccm_skel.mpb:
+ * MPC/config/example_output.mpb:
+
+ Missing base projects.
+
+ Tue Jul 7 18:32:03 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp:
+
+ Properly init the UUID generator.
+
+ Tue Jul 7 18:05:15 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * bin/generate_component_mpc.pl:
+
+ Further updates.
+
+ Tue Jul 7 17:31:48 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * bin/generate_component_mpc.pl:
+
+ Updated to create a separate E.idl lib.
+
+ * tests/IDL_Test/Lem_Specific_Export/Lem_Export_exec.h:
+ * tests/IDL_Test/Lem_Specific_Export/Lem_Export_exec.cpp:
+
+ Added exec implementation.
+
+ Tue Jul 7 16:31:47 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tests/IDL_Test/Included_Component/IC_Foo.mpc:
+ * tests/IDL_Test/Included_Component/IC_Bar.mpc:
+
+ Added 'after' lines for *_svnt projects, and add executor
+ projects.
+
+ Tue Jul 7 15:43:57 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tests/IDL_Test/Lem_Specific_Export:
+ * tests/IDL_Test/Lem_Specific_Export/Lem_Export.idl:
+ * tests/IDL_Test/Lem_Specific_Export/Lem_Export.mpc:
+
+ Test which apparently shows the export file not being
+ generated for a LEM project.
+
+ Tue Jul 7 00:10:41 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * MPC/config/ciao_connector_base.mpb:
+ * MPC/config/connectoridldefaults.mpb:
+ * MPC/config/dds4ccm_base.mpb:
+
+ Adding new base projects.
+
+ Mon Jul 6 19:47:03 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+
+ * tests/IDL_Test/Included_Component:
+ * tests/IDL_Test/Included_Component/IC_Bar.idl:
+ * tests/IDL_Test/Included_Component/IC_Bar.mpc:
+ * tests/IDL_Test/Included_Component/IC_Foo.idl:
+ * tests/IDL_Test/Included_Component/IC_Foo.mpc:
+
+ New test. Codegen for IC_Bar attempts to generate
+ IC_Foo elements.
+
+ * tests/IDL_Test/Forward_Declared_Ports:
+ * tests/IDL_Test/Forward_Declared_Ports/FDP_Bar.idl:
+ * tests/IDL_Test/Forward_Declared_Ports/FDP_Bar.mpc:
+ * tests/IDL_Test/Forward_Declared_Ports/FDP_Bar_exec.h:
+ * tests/IDL_Test/Forward_Declared_Ports/FDP_Bar_exec.cpp:
+ * tests/IDL_Test/Forward_Declared_Ports/FDP_Foo.idl:
+ * tests/IDL_Test/Forward_Declared_Ports/FDP_Foo.mpc:
+
+ Removed these files, was determined this test case was
+ invalid.
+
+ Mon Jul 6 13:47:09 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * DAnCE/Deployment/Module_Main.h:
+ No error message when ORB couldn't start. This should
+ be clear when reading the previous (error) messages.
+
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.h:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Module.cpp:
+ * DAnCE/RepositoryManager/Repository_Manager_Module.cpp:
+ * DAnCE/RepositoryManager/repository_manager_admin_exec.cpp:
+ Displaying help message without any other
+ (error) messages.
+
+ * DAnCE/TargetManager/Target_Manager_Module.cpp:
+ Displaying help message without any other
+ (error) messages. Also checked parsed command line
+ options.
+
+ Fri Jul 3 01:13:13 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/tests/RedirectionServiceTest/RedirectionServiceTest.mpc:
+ * tools/Config_Handlers/Basic_Deployment_Data.cpp:
+ * tools/Config_Handlers/XMI.cpp:
+
+ Error/warning fixes.
+
+ Thu Jul 2 01:47:53 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/generate_component_mpc.pl
+ * DAnCE/tests/CIAO/Components/ProcessColocation.mpc
+ * DAnCE/tests/CIAO/Components/SimpleAttribute.mpc
+ * DAnCE/tests/CIAO/Components/SimpleConsumer.mpc
+ * DAnCE/tests/CIAO/Components/SimpleEmitter.mpc
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser.mpc
+ * DAnCE/tests/CIAO/Components/SimpleNull.mpc
+ * DAnCE/tests/CIAO/Components/SimpleProvider.mpc
+ * DAnCE/tests/CIAO/Components/SimplePublisher.mpc
+ * DAnCE/tests/CIAO/Components/SimpleUser.mpc
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker.mpc
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor.mpc
+ * examples/Display/GPS/GPS.mpc
+ * examples/Hello/Receiver/Receiver.mpc
+ * examples/Hello/Sender/Sender.mpc
+ * examples/Null_Component/Null_Component.mpc
+ * examples/Swapping/Receiver/Receiver.mpc
+ * examples/Swapping/Sender/Sender.mpc
+ * performance-tests/Benchmark/RoundTrip/RoundTrip.mpc
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient.mpc
+ * performance-tests/Protocols/Sender/Sender.mpc
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.mpc
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.mpc
+ * tests/CIDL/CodeGen/CodeGen.mpc
+ * tests/IDL_Test/Cornucopia/Cornucopia.mpc
+ * tests/IDL_Test/Keywords/Keywords.mpc
+ * tests/IDL_Test/Reused_Facet_Interface/Reused_Facet_Interface.mpc
+ * tests/Minimum/Receiver/Receiver.mpc
+ * tests/Minimum/Sender/Sender.mpc
+ Changed project names *_idle_gen to *_lem_gen.
+
+ Wed Jul 1 22:18:53 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * performance-tests/Protocols/Receiver/Receiver.mpc:
+ * tests/Minimum/Minimum_Base/Minimum_Base.mpc:
+ * examples/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc:
+ * examples/Display/RateGen/RateGen.mpc:
+ * examples/Display/NavDisplay/NavDisplay.mpc:
+
+ Changed project names *_idle_gen to *_lem_gen.
+
+ Wed Jul 1 21:36:05 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/Display/GPS/GPS.mpc:
+ * examples/Swapping/Sender/Sender.mpc:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip.mpc:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient.mpc:
+ * performance-tests/Protocols/Sender/Sender.mpc:
+ * tests/Minimum/Receiver/Receiver.mpc:
+
+ Fixed missing afters
+
+ Wed Jul 1 17:08:05 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * DAnCE/RepositoryManager/RepositoryManager.mpc:
+ Resolved compiler issues on Windows
+
+ * docs/generate_component_mpc.html:
+ Removed CIDL stuff.
+
+ Wed Jul 1 16:27:07 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * TAO_IDL/be/be_visitor_component.cpp:
+ * TAO_IDL/be/be_visitor_component/component_svs.cpp:
+
+ Conditionalized generation of value factory registration
+ with a check to see if the eventtype in question has a
+ concrete factory. Registration macro should be generated
+ only if this check returns true.
+
+ Wed Jul 1 16:10:49 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * NEWS:
+ * docs/value_factory_registration.html:
+
+ Updated to reflect removal of CIDL compiler.
+
+ * MPC/config/ciao_server.mpb:
+
+ Removed repeated occurrence ciao_client base project.
+
+ Wed Jul 1 13:34:09 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ No DLINFO in trace messages.
+
+ * bin/generate_component_mpc.pl:
+ No CIDL_Files in mpc files anymore. Prevents mpc from
+ generating project files/make files.
+
+ * docs/tutorials/Quoter/Simple/01.html:
+ * docs/tutorials/Quoter/Simple/04.html:
+ Mentioned the tutorials library path in MPC-file's.
+
+ * docs/tutorials/Quoter/Simple/02.html:
+ Changed $CIAO_ROOT into %CIAO_ROOT%. This was intended in this
+ tutorial.
+
+ Tue Jun 30 21:32:28 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * docs/tutorials/Quoter/Simple/04.html:
+ Fixed typo
+
+ Tue Jun 30 17:19:44 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/DevGuideExamples/Messenger/Receiver.mpc:
+ * examples/DevGuideExamples/Messenger/Administrator.mpc:
+ * examples/DevGuideExamples/Messenger/Messenger.mpc:
+
+ Changed project names for consistency.
+
+ Tue Jun 30 15:56:11 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * bin/update_package.py:
+
+ Old script that updates implementations in a package, can be
+ used as a basis for a better packaging script.
+
+ Tue Jun 30 15:22:44 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/BasicSP/BMClosedED/BMClosedED.mpc:
+ * examples/BasicSP/BasicSP.mpc:
+ * examples/BasicSP/BMDisplay/BMDisplay.mpc:
+ * examples/BasicSP/EC/EC.mpc:
+ * examples/BasicSP/BMDevice/BMDevice.mpc:
+
+ Changes to project names for consistency and to
+ dependencies for completeness.
+
+ Mon Jun 29 23:11:25 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/BasicSP/BMClosedED/BMClosedED.mpc:
+ * examples/BasicSP/BMClosedED/BMClosedED_exec.h:
+ * examples/BasicSP/BasicSP.mpc:
+ * examples/BasicSP/BMDisplay/BMDisplay.idl:
+ * examples/BasicSP/EC/EC.idl:
+ * examples/BasicSP/BMDevice/BMDevice.idl:
+ * examples/BasicSP/BMDevice/BMDevice_exec.h:
+ * examples/BasicSP/BMDevice/BMDevice.mpc:
+
+ Modified example to use the newly added TAO IDL
+ compiler feature of generating facet servant code
+ for each interface, rather than navigating to each
+ interface from a component's list of provides ports.
+ This option is necessary in this example, since
+ two components use the same interface as a facet,
+ and now the generated facet servant code can be
+ shared.
+
+ Mon Jun 29 19:43:45 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * docs/OMG-CCM-Tutorial.ppt:
+
+ OMG tutorial slides.
+
+ Mon Jun 29 18:49:06 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * docs/tutorials/Quoter/Simple/Model/Quoter.xme:
+ Updated to meet the work listed in the HTML files.
+
+ Mon Jun 29 00:31:31 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * docs/tutorials/Quoter/Simple/01.html:
+ * docs/tutorials/Quoter/Simple/02.html:
+
+ Updates to remove lateral references to export files and CIDLC.
+
+ Fri Jun 26 22:47:14 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * docs/tutorials/Quoter/Simple/01.html:
+ Updated link to MPC chapter, it is available in the MPC directory
+
+ * docs/tutorials/Quoter/Simple/03.html:
+ Updated CIAO chapter
+
+ Fri Jun 26 14:15:14 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * DAnCE/TargetManager/TargetManager.mpc:
+ Added Dance_logger library to Dance_TargetManager_exec project.
+
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker_exec_export.h:
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker_stub_export.h:
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker_svnt_export.h:
+ Removed these files since they are create by the IDL compiler
+
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor_exec_export.h:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor_stub_export.h:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor_svnt_export.h:
+ Removed these files since they are create by the IDL compiler
+
+ * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base_skel_export.h:
+ * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base_stub_export.h:
+ Removed these files since they are create by the IDL compiler
+
+ Fri Jun 26 08:26:00 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * docs/tutorials/Quoter/Simple/images/fig7.jpg:
+ * docs/tutorials/Quoter/Simple/03.html:
+ Added modelling of IOR files.
+
+ Fri Jun 26 07:13:00 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ Resolved a minor copy paste error.
+
+ * DAnCE/TargetManager/TargetManager.mpc:
+ * DAnCE/TargetManager/Target_Manager_Module.cpp:
+ Resolved some linker errors on windows.
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp:
+ In trace message one shouldn't use the CLINFO or DLINFO define.
+
+ * docs/tutorials/Quoter/Simple/03.html:
+ Described how to connect a component factory to a component.
+
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker_exec.h:
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker_exec.cpp:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor_exec.h:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor_exec.cpp:
+ In the current tutorial we're deploying unhomed components. To do that,
+ the appropriate functions should be added.
+
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker_exec_export.h:
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker_stub_export.h:
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker_svnt_export.h:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor_exec_export.h:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor_stub_export.h:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor_svnt_export.h:
+ Used the latest version of the IDL compiler
+
+
+ Thu Jun 25 15:11:59 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tests/IDL_Test/Reused_Facet_Interface/CodeGen.mpc:
+ * tests/IDL_Test/Reused_Facet_Interface/Reused_Facet_Interface.mpc:
+
+ Renamed first file as second file, to avoid problems on some
+ platforms when .mpc files have the same name.
+
+ * tests/CIDL/CodeGen/CodeGen.mpc:
+
+ Fixed IDL flags in Reused_Facet_Interface_idl_gen project.
+
+ Wed Jun 24 15:51:23 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/TargetManager/descriptors:
+
+ Removed this file.
+
+ Wed Jun 24 15:50:36 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/TargetManager/DomainDataManager.h:
+ * DAnCE/TargetManager/TargetManager.mpc:
+ * DAnCE/TargetManager/TargetManager_Impl.h:
+ * DAnCE/TargetManager/TargetManager_Impl_export.h:
+
+ Stab at fixing linking problems.
+
+ Wed Jun 24 13:56:48 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * docs/tutorials/Quoter/Simple/03.html:
+ * docs/tutorials/Quoter/Simple/images/fig4.jpg:
+ * docs/tutorials/Quoter/Simple/images/fig5a.jpg:
+ Updated to meet the latest version of the DAnCE spec.
+
+ Wed Jun 24 07:31:43 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * DAnCE/TargetManager/TargetManager.mpc:
+ Resolved typo (RepositoryManager_IDL=>TargetManager_IDL).
+
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker.mpc:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor.mpc:
+ * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.mpc:
+ Added lib path (like Hello example).
+
+ * docs/tutorials/Quoter/Simple/descriptors/Plan.cdp:
+ Should match the current DAnCE spec.
+
+ Tue Jun 23 18:11:56 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Deployment/Deployment_TargetManager.idl:
+
+ bring in line with spec.
+
+ * DAnCE/TargetManager/DomainDataManager.h:
+ * DAnCE/TargetManager/DomainDataManager.cpp:
+ * DAnCE/TargetManager/ResourceCommitmentManager.h:
+ * DAnCE/TargetManager/ResourceCommitmentManager.cpp:
+ * DAnCE/TargetManager/TM_Client.mpc:
+ * DAnCE/TargetManager/TargetManager.mpc:
+ * DAnCE/TargetManager/TargetManagerDaemon.idl:
+ * DAnCE/TargetManager/TargetManager_Impl.h:
+ * DAnCE/TargetManager/TargetManager_Impl.cpp:
+ * DAnCE/TargetManager/Target_Manager_Exec.cpp:
+ * DAnCE/TargetManager/Target_Manager_Module.h:
+ * DAnCE/TargetManager/Target_Manager_Module.cpp:
+ * DAnCE/TargetManager/Target_Manager_Module_export.h:
+ * MPC/config/dance_target_manager.mpb:
+
+ Initial pass at porting the TargetManager. Work is by no means
+ complete or workable. TargetManager will no longer be deployed as a component.
+
+ * DAnCE/TargetManager/descriptors/Domain.cdd:
+ * DAnCE/TargetManager/descriptors/NodeDetails.dat:
+ * DAnCE/TargetManager/descriptors/NodeManagerMap.dat:
+ * DAnCE/TargetManager/descriptors/flattened_deploymentplan.cdp:
+ * DAnCE/TargetManager/descriptors/run_test_TargetManager.pl:
+
+ Removed these files.
+
+ Mon Jun 22 09:22:17 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/generate_component_mpc.pl:
+ Update for the fact that avoids_ace_for_tao and anytypecode moved to the
+ base projects
+
+ * bin/msvc_cidlc.pl:
+ * bin/replace_dummy_with_dummylabel.sh
+ * docs/cidlc.html
+ Deleted, not needed
+
+ * CIAO-INSTALL.html:
+ * docs/index.html
+ * docs/TODO.html
+ Partly updated for CIDLC removal
+
+ * ciao/ComponentServer/CIAO_ComponentServer.mpc
+ * DAnCE/TargetManager/TargetManager.mpc
+ * DAnCE/TargetManager/TM_Client.mpc
+ * DAnCE/tests/CIAO/Components/ProcessColocation.mpc
+ * DAnCE/tests/CIAO/Components/SimpleAttribute.mpc
+ * DAnCE/tests/CIAO/Components/SimpleCommon.mpc
+ * DAnCE/tests/CIAO/Components/SimpleConsumer.mpc
+ * DAnCE/tests/CIAO/Components/SimpleEmitter.mpc
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser.mpc
+ * DAnCE/tests/CIAO/Components/SimpleNull.mpc
+ * DAnCE/tests/CIAO/Components/SimpleProvider.mpc
+ * DAnCE/tests/CIAO/Components/SimplePublisher.mpc
+ * DAnCE/tests/CIAO/Components/SimpleUser.mpc
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker.mpc
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor.mpc
+ * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.mpc
+ * examples/BasicSP/BasicSP.mpc
+ * examples/BasicSP/BMClosedED/BMClosedED.mpc
+ * examples/BasicSP/BMDevice/BMDevice.mpc
+ * examples/BasicSP/BMDisplay/BMDisplay.mpc
+ * examples/BasicSP/EC/EC.mpc
+ * examples/DevGuideExamples/Messenger/Administrator.mpc
+ * examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.mpc
+ * examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.mpc
+ * examples/DevGuideExamples/Messenger/Messenger.mpc
+ * examples/DevGuideExamples/Messenger/Receiver.mpc
+ * examples/Display/Display_Base/Display_Base.mpc
+ * examples/Display/GPS/GPS.mpc
+ * examples/Display/NavDisplay/NavDisplay.mpc
+ * examples/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc
+ * examples/Display/RateGen/RateGen.mpc
+ * examples/Hello/Hello_Base/Hello_Base.mpc
+ * examples/Hello/Receiver/Receiver.mpc
+ * examples/Hello/Sender/Sender.mpc
+ * examples/Null_Component/Null_Component.mpc
+ * examples/Null_Component/Null_Interface.mpc
+ * examples/Swapping/Hello_Base/Hello_Base.mpc
+ * examples/Swapping/Receiver/Receiver.mpc
+ * examples/Swapping/Sender/Sender.mpc
+ * MPC/config/componentidldefaults.mpb
+ * performance-tests/Benchmark/Benchmark.mpc
+ * performance-tests/Benchmark/Multi_Threaded/Multi_Threaded.mpc
+ * performance-tests/Benchmark/RoundTrip/RoundTrip.mpc
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient.mpc
+ * performance-tests/Benchmark/RoundTripServer/RoundTripServer.mpc
+ * performance-tests/Protocols/common/Protocols.mpc
+ * performance-tests/Protocols/Controller/Controller.mpc
+ * performance-tests/Protocols/Receiver/Receiver.mpc
+ * performance-tests/Protocols/Sender/Sender.mpc
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.mpc
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.mpc
+ * tests/CIDL/CodeGen/Basic.mpc
+ * tests/CIDL/CodeGen/CodeGen.mpc
+ * tests/IDL_Test/Cornucopia/Cornucopia.mpc
+ * tests/IDL_Test/Keywords/Keywords.mpc
+ * tests/IDL_Test/Reused_Facet_Interface/Basic.mpc
+ * tests/IDL_Test/Reused_Facet_Interface/CodeGen.mpc
+ * tests/Minimum/Minimum_Base/Minimum_Base.mpc
+ * tests/Minimum/Receiver/Receiver.mpc
+ * tests/Minimum/Sender/Sender.mpc
+ * tools/Config_Handlers/Package_Handlers/Package_Handlers.mpc
+ Updated base projects
+
+ * examples/Hello/Receiver/Receiver_exec_export.h
+ * examples/Hello/Receiver/Receiver_stub_export.h
+ * examples/Hello/Receiver/Receiver_svnt_export.h
+ * examples/Hello/Sender/Sender_exec_export.h
+ * examples/Hello/Sender/Sender_stub_export.h
+ * examples/Hello/Sender/Sender_svnt_export.h
+ Removed
+
+ Fri Jun 19 19:40:21 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tests/IDL_Test/Cornucopia/Cornucopia.mpc:
+ * tests/IDL_Test/Keywords/Keywords.mpc:
+ * tests/IDL_Test/Reused_Facet_Interface/Basic.mpc:
+ * tests/IDL_Test/Reused_Facet_Interface/CodeGen.mpc:
+
+ Added IDL compiler options to generate all export
+ header files.
+
+ * tests/IDL_Test/Reused_Facet_Interface/Basic_stub_export.h:
+ * tests/IDL_Test/Reused_Facet_Interface/CodeGen_svnt_export.h:
+ * tests/IDL_Test/Reused_Facet_Interface/Basic_skel_export.h:
+ * tests/IDL_Test/Reused_Facet_Interface/CodeGen_stub_export.h:
+ * tests/IDL_Test/Reused_Facet_Interface/CodeGen_exec_export.h:
+ * tests/IDL_Test/Cornucopia/Cornucopia_svnt_export.h:
+ * tests/IDL_Test/Cornucopia/Cornucopia_stub_export.h:
+ * tests/IDL_Test/Cornucopia/Cornucopia_skel_export.h:
+ * tests/IDL_Test/Cornucopia/Cornucopia_exec_export.h:
+ * tests/IDL_Test/Keywords/Keyword_Clash_stub_export.h:
+ * tests/IDL_Test/Keywords/Keyword_Clash_exec_export.h:
+ * tests/IDL_Test/Keywords/Keyword_Clash_svnt_export.h:
+
+ Removed export header files, they're now generated.
+
+ Fri Jun 19 18:03:10 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * performance-tests/Protocols/Receiver/Receiver_exec.cpp
+ * performance-tests/Protocols/Receiver/Receiver_exec.h
+ * performance-tests/Protocols/Sender/Sender_exec.cpp
+ * performance-tests/Protocols/Sender/Sender_exec.h
+ Fixed compile errors
+
+ Fri Jun 19 17:58:03 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp:
+ * DAnCE/RepositoryManager/repository_manager_admin_exec.cpp:
+
+ Basic RM functionality appears to be restored. HTTP not yet tested.
+
+ * tools/XML/XML_Helper.tpp:
+
+ Removed Xerces init logging.
+
+ Fri Jun 19 12:19:38 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * docs/schema/Basic_Deployment_Data.xsd:
+ * docs/schema/cdp.xsd:
+ * docs/schema/cid.xsd:
+ * tools/Config_Handlers/Basic_Deployment_Data.cpp:
+ * tools/Config_Handlers/Basic_Deployment_Data.hpp:
+ * tools/Config_Handlers/Deployment.cpp:
+ * tools/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp:
+ * tools/Config_Handlers/DynAny_Handler/DynSequence_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp:
+ * tools/Config_Handlers/XMI.cpp:
+ * tools/Config_Handlers/ccd.cpp:
+ * tools/Config_Handlers/cdd.cpp:
+ * tools/Config_Handlers/cdp.cpp:
+ * tools/Config_Handlers/cdp.hpp:
+ * tools/Config_Handlers/cid.hpp:
+ * tools/Config_Handlers/cid.cpp:
+ * tools/Config_Handlers/cpd.cpp:
+ * tools/Config_Handlers/iad.cpp:
+ * tools/Config_Handlers/pcd.cpp:
+ * tools/Config_Handlers/toplevel.hpp:
+ * tools/Config_Handlers/toplevel.cpp:
+
+ Fixed the wchar issue in bugzilla 3691.
+
+ Fri Jun 19 07:47:10 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * MPC/config/componentidldefaults.mpb:
+ Added -Glem
+
+ Thu Jun 18 18:52:10 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tests/IDL_Test/Reused_Facet_Interface/CodeGen.mpc:
+
+ Fixed dependency mistakes.
+
+ * tests/IDL_Test/Keywords/*.*:
+
+ New test, covering all CIAO-related code generation when
+ the IDL file contains C++ keywords and escaped IDL
+ keywords.
+
+ Thu Jun 18 18:48:02 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * performance-tests/Protocols/Sender/Sender_exec.h
+ * tests/CIDL/CodeGen/CodeGen.mpc
+ * tests/IDL_Test/Reused_Facet_Interface/CodeGen.mpc
+ Compile fixes
+
+ Thu Jun 18 16:51:02 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIAO_TAO.mwc:
+ Added performance-tests directory, removed CCF
+
+ Thu Jun 18 14:35:02 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * MPC/config/cidlc.mpb:
+ Deleted
+
+ * MPC/config/dance_plan_generator.mpb
+ * MPC/config/dance_plan_generator.mpc
+ Renamed mpc to mpb
+
+ Thu Jun 18 14:25:45 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * docs/schema/Basic_Deployment_Data.xsd:
+ * docs/schema/cdp.xsd:
+ * docs/schema/cid.xsd:
+ * docs/schema/toplevel.xsd:
+
+ Changes from 06-04-02. Shouldn't break existing plans.
+
+ * docs/schema/unused_06-04-02.xsd:
+
+ Unused elements from 06-04-02.
+
+ Thu Jun 18 14:24:10 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CCF:
+ * CIDLC:
+
+ Removed these files.
+
+ Thu Jun 18 13:54:43 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * docs/tutorials/Quoter/Simple/Model/Quoter.xme:
+ Used to latest version of COSMIC to create this Quoter.xme
+
+ Thu Jun 18 13:37:02 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/BasicSP/BasicSP.mpc
+ * performance-tests/Protocols/Receiver/Receiver.mpc
+ * performance-tests/Protocols/Sender/Sender_exec.h
+ Compile fixes
+
+ Thu Jun 18 13:34:02 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/BasicSP/EC/EC_exec.h
+ * examples/Display/GPS/GPS_exec.h
+ * examples/Display/NavDisplay/NavDisplay_exec.h
+ * examples/Display/RateGen/RateGen_exec.h
+ * performance-tests/Protocols/Sender/Sender_exec.h
+ Compile fixes
+
+ Thu Jun 18 13:17:02 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/BasicSP/BMClosedED/BMClosedED.mpc
+ * examples/BasicSP/BMDisplay/BMDisplay_exec.h
+ * examples/Display/GPS/GPS_exec.h
+ * examples/Display/NavDisplay/NavDisplay_exec.h
+ * examples/Display/RateGen/RateGen_exec.h
+ * performance-tests/Protocols/Receiver/Receiver.mpc
+ Compile fixes
+
+ Thu Jun 18 13:04:02 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * docs/tutorials/Quoter/Simple/04.html:
+ Updated to meet the latest versions
+ of GME/COSMIC/CIAO/DANCE
+
+ * docs/tutorials/Quoter/Simple/descriptors/NodeMap.dat:
+ NodeManager should be specific: i.e. Broker.NodeManager.
+
+ Thu Jun 18 13:02:07 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+
+ * docs/tutorials/Quoter/Simple/04.html:
+
+ * docs/tutorials/Quoter/Simple/descriptors/NodeMap.dat:
+
+ Thu Jun 18 13:00:05 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/BasicSP/BasicSP.mpc
+ * examples/BasicSP/EC/EC_exec.h
+ * examples/Display/GPS/GPS_exec.h
+ * examples/Display/NavDisplay/NavDisplay_exec.h
+ * examples/Display/RateGen/RateGen_exec.h
+ * examples/Swapping/Receiver/Receiver.mpc
+ Compile fixes
+
+ Thu Jun 18 10:24:43 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * docs/tutorials/Quoter/Simple/03.html:
+ * docs/tutorials/Quoter/Simple/descriptors/Plan.cdp:
+ * docs/tutorials/Quoter/Simple/images/fig10.jpg:
+ * docs/tutorials/Quoter/Simple/images/fig11.jpg:
+ * docs/tutorials/Quoter/Simple/images/fig12.jpg:
+ Updated to meet the latest versions
+ of GME/COSMIC/CIAO/DANCE
+
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker.mpc:
+ Stock_Base_StockBroker_idle_gen project should be build
+ after Stock_Base_StockBroker_idl_gen project.
+
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor.mpc:
+ Stock_Base_StockDistributor_idle_gen project should be build
+ after Stock_Base_StockDistributor_idl_gen project.
+
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker_exec.h:
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker_exec.cpp:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor_exec.h:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor_exec.cpp:
+ Naming convention of namespace is different now since CIDL
+ compiler is removed.
+
+ Thu Jun 18 06:48:05 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * docs/tutorials/Quoter/Simple/03.html:
+
+ Updated to meet the current status of CIAO/DAnCE.
+
+ * docs/tutorials/Quoter/Simple/images/fig2.jpg:
+ * docs/tutorials/Quoter/Simple/images/fig3.jpg:
+ * docs/tutorials/Quoter/Simple/images/fig5.jpg:
+ * docs/tutorials/Quoter/Simple/images/fig6.jpg:
+ * docs/tutorials/Quoter/Simple/images/fig7.jpg:
+ * docs/tutorials/Quoter/Simple/images/fig8.jpg:
+ * docs/tutorials/Quoter/Simple/images/fig9.jpg:
+
+ Updated to meet the current status of GME/COSMIC
+
+ Thu Jun 18 02:52:44 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * docs/schema/06-04-02.xsd
+
+ Schema from the standard. Note that this is non-normative, and the
+ fact that we deviate from it is fine.
+
+ Wed Jun 17 19:37:54 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Logger/Logger_Service.cpp:
+
+ Removed the short options from the logger.
+
+ Wed Jun 17 18:07:10 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker.cidl:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor.cidl:
+ * examples/BasicSP/BMClosedED/BMClosedED.cidl:
+ * examples/BasicSP/BMDevice/BMDevice.cidl:
+ * examples/BasicSP/BMDisplay/BMDisplay.cidl:
+ * examples/BasicSP/EC/EC.cidl:
+ * examples/DevGuideExamples/Messenger/Administrator.cidl:
+ * examples/DevGuideExamples/Messenger/Messenger.cidl:
+ * examples/DevGuideExamples/Messenger/Receiver.cidl:
+ * examples/Display/GPS/GPS.cidl:
+ * examples/Display/NavDisplay/NavDisplay.cidl:
+ * examples/Display/RateGen/RateGen.cidl:
+ * examples/Null_Component/Null_Component.cidl:
+ * examples/Swapping/Receiver/Receiver.cidl:
+ * examples/Swapping/Sender/Sender.cidl:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip.cidl:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient.cidl:
+ * performance-tests/Protocols/Receiver/Receiver.cidl:
+ * performance-tests/Protocols/Sender/Sender.cidl:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.cidl:
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.cidl:
+ * tests/CIDL/CodeGen/CodeGen.cidl:
+ * tests/Minimum/Receiver/Receiver.cidl:
+ * tests/Minimum/Sender/Sender.cidl:
+
+ Removed these files.
+
+ Wed Jun 17 18:04:28 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.cpp:
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec.h:
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec.cpp:
+ * tests/Minimum/Receiver/Receiver_exec.h:
+ * tests/Minimum/Receiver/Receiver_exec.cpp:
+ * tests/Minimum/Sender/Sender_exec.h:
+ * tests/Minimum/Sender/Sender_exec.cpp:
+
+ Compile fixes.
+
+ Wed Jun 17 10:07:19 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/tests/CIAO/Components/ProcessColocation.mpc
+ * DAnCE/tests/CIAO/Components/SimpleAttribute.mpc
+ * DAnCE/tests/CIAO/Components/SimpleConsumer.mpc
+ * DAnCE/tests/CIAO/Components/SimpleEmitter.mpc
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser.mpc
+ * DAnCE/tests/CIAO/Components/SimpleNull.mpc
+ * DAnCE/tests/CIAO/Components/SimpleProvider.mpc
+ * DAnCE/tests/CIAO/Components/SimplePublisher.mpc
+ * DAnCE/tests/CIAO/Components/SimpleUser.mpc
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker.mpc
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor.mpc
+ * examples/BasicSP/BasicSP.mpc
+ * examples/BasicSP/BMClosedED/BMClosedED.mpc
+ * examples/BasicSP/BMDevice/BMDevice.mpc
+ * examples/BasicSP/BMDisplay/BMDisplay.mpc
+ * examples/BasicSP/EC/EC.mpc
+ * examples/DevGuideExamples/Messenger/Administrator.mpc
+ * examples/Display/GPS/GPS.mpc
+ * examples/Display/NavDisplay/NavDisplay.mpc
+ * examples/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc
+ * examples/Display/RateGen/RateGen.mpc
+ * examples/Hello/Sender/Sender.mpc
+ * examples/Null_Component/Null_Component.mpc
+ * examples/Swapping/Receiver/Receiver.mpc
+ * examples/Swapping/Sender/Sender.mpc
+ * MPC/config/ciao_servant.mpb
+ * MPC/config/ciaocidldefaults.mpb
+ * performance-tests/Benchmark/RoundTrip/RoundTrip.mpc
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient.mpc
+ * performance-tests/Protocols/Receiver/Receiver.mpc
+ * performance-tests/Protocols/Sender/Sender.mpc
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.mpc
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.mpc
+ * tests/CIDL/CodeGen/Basic.idl
+ * tests/CIDL/CodeGen/CodeGen.mpc
+ * tests/IDL_Test/Cornucopia/Cornucopia.mpc
+ * tests/IDL_Test/Reused_Facet_Interface/CodeGen.mpc
+ * tests/Minimum/Receiver/Receiver.mpc
+ * tests/Minimum/Sender/Sender.mpc
+ * tools/Config_Handlers/XML_File_Intf.cpp
+ Zap ciaocidldefaults from the MPC files. Everything has to be rebuild to
+ sort out the compile/link issues, but at least now cidlc is not used anymore
+
+ Wed Jun 17 08:43:19 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * CIAO_TAO.mwc:
+ * CIAO_TAO_DanCE.mwc:
+ Removed CIDL
+
+ * DAnCE/RepositoryManager/RepositoryManager.mpc:
+ Repositorymanager uses ciaodefaults instead of ciaobasedefaults
+
+ * DAnCE/TargetManager/CmpClient.cpp:
+ * DAnCE/TargetManager/DomainDataManager.h:
+ * DAnCE/TargetManager/TargetManager.idl:
+ * DAnCE/TargetManager/TargetManager.mpc:
+ * DAnCE/TargetManager/TargetManager_exec.h:
+ * DAnCE/TargetManager/TargetManager_exec.cpp:
+ Changed because the CIDL compiler was removed.
+ Changed TargetManagerImpl into TargetManager.
+
+ * docs/tutorials/Quoter/Simple/03.html:
+ Minor changes.
+
+ * DAnCE/TargetManager/TargetManager.cidl:
+ * DAnCE/TargetManager/TargetManagerImpl.idl:
+ Removed these files because the cidl compiler is not in use
+ anymore.
+
+ Wed Jun 17 02:15:33 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/RepositoryManager/RepositoryManager.mpc:
+ * DAnCE/RepositoryManager/repository_manager_admin.cpp:
+ * DAnCE/RepositoryManager/repository_manager_admin_exec.cpp:
+
+ Fleshed out the implementation of dance_rm_admin.
+
+ Tue Jun 16 20:37:23 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tests/IDL_Test/Reused_Facet_Interface/*.*:
+
+ New test, with a variety of IDL3 constructs but mostly
+ focused on an interface that is used in two separate
+ facets. The test will ensure that the facet servant
+ class and the facet executor IDL interface are
+ generated only once.
+
+ Tue Jun 16 20:28:43 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/tests/CIAO/NodeManager-Deployments/SimpleProcessColocation.cdp:
+
+ added planlocality elements.
+
+ * ciao/Containers/Session/Session_Container.cpp:
+
+ Add newline to a log message.
+
+ * tools/Config_Handlers/DP_Handler.cpp:
+
+ Fix problem with parsing plan locality.
+
+ Tue Jun 16 19:20:32 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CIAO_TAO.mwc:
+ * CIAO_TAO_DAnCE.mwc:
+ * DAnCE/RepositoryManager:
+ * DAnCE/RepositoryManager/RepositoryManager.mpc:
+ * DAnCE/RepositoryManager/Repository_Manager_Admin_Export.h:
+ * DAnCE/RepositoryManager/Repository_Manager_Module.cpp:
+ * DAnCE/RepositoryManager/repository_manager_admin.h:
+ * DAnCE/RepositoryManager/repository_manager_admin.cpp:
+ * DAnCE/RepositoryManager/repository_manager_admin_exec.cpp:
+
+ Merge in from my RepositoryManager sprint branch.
+
+ * DAnCE/RepositoryManager/Options.h:
+ * DAnCE/RepositoryManager/Options.cpp:
+ * DAnCE/RepositoryManager/RMadmin.cpp:
+
+ Removed these files.
+
+ Tue Jun 16 19:11:49 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+
+ Fix for a segmentation fault with unhomed components.
+
+ * DAnCE/tests/CIAO/Components/ProcessColocation_exec.h:
+ * DAnCE/tests/CIAO/Components/ProcessColocation_exec.cpp:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/SimpleProcessColocation.cdp:
+
+ Simple test to determine if PlanLocality constraints work or not. Note
+ that as this support has yet to be implemented, this test is currently designed
+ to fail.
+
+ Tue Jun 16 18:46:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/DevGuideExamples/Messenger/Administrator.mpc
+ * examples/DevGuideExamples/Messenger/Administrator_exec_i.cpp
+ * examples/DevGuideExamples/Messenger/Administrator_exec_i.h
+ * examples/DevGuideExamples/Messenger/History_exec_i.cpp
+ * examples/DevGuideExamples/Messenger/History_exec_i.h
+ * examples/DevGuideExamples/Messenger/Messenger.mpc
+ * examples/DevGuideExamples/Messenger/Messenger_exec_i.cpp
+ * examples/DevGuideExamples/Messenger/Messenger_exec_i.h
+ * examples/DevGuideExamples/Messenger/Publication_exec_i.cpp
+ * examples/DevGuideExamples/Messenger/Publication_exec_i.h
+ * examples/DevGuideExamples/Messenger/Receiver.mpc
+ * examples/DevGuideExamples/Messenger/Receiver_exec_i.cpp
+ * examples/DevGuideExamples/Messenger/Receiver_exec_i.h
+ * examples/DevGuideExamples/Messenger/Runnable_exec_i.cpp
+ * examples/DevGuideExamples/Messenger/Runnable_exec_i.h
+ * examples/Hello/Receiver/Receiver.mpc
+ Zap usage of cidlc
+
+ Tue Jun 16 18:30:46 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tests/IDL_Test/Cornucopia/*.*:
+
+ New subdirectory (IDL_Test) for tests of the IDL
+ compiler's recently added code generation of CIAO
+ servants, executor IDL and executor implementation
+ stencil classes. Also new test (Cornupcopia), which
+ includes IDL3 constructs, scoping relationships,
+ and build configurations not covered in other CIAO
+ tests or examples.
+
+ Tue Jun 16 18:19:31 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/PL_Handler.cpp:
+
+ Addedmissing file.
+
+ Tue Jun 16 17:59:43 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ciao/Containers/Session/Session_Container.cpp:
+
+ Removed misc debug statements.
+
+ Tue Jun 16 17:49:18 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * MPC/config/ciaoidldefaults.mpb:
+ * MPC/config/componentidldefaults.mpb:
+
+ Massaged the base projects a bit more.
+
+ * DAnCE/tests/CIAO/Components/ProcessColocation.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleAttribute.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleNull.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleProvider.mpc:
+ * DAnCE/tests/CIAO/Components/SimplePublisher.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleUser.mpc:
+ * examples/Hello/Receiver/Receiver.mpc:
+ * examples/Hello/Sender/Sender.mpc:
+ * bin/generate_component_mpc.pl:
+
+ Updated to reflect the base project changes.
+
+ Tue Jun 16 14:28:55 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * MPC/config/ciaoidldefaults.mpb:
+
+ Added -Gsv. Thanks to MArcel for pointing out the omission.
+
+ Tue Jun 16 13:34:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/Null_Component/Null_Component.mpc
+ * examples/Null_Component/Null_Component_exec.cpp
+ * examples/Null_Component/Null_Component_exec.h
+ Zapp cidlc
+
+ Tue Jun 16 13:26:22 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/PL_Handler.h:
+
+ Missing from a prior commit.
+
+ Tue Jun 16 12:55:09 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/tests/CIAO/Components/SimpleAttribute_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleAttribute_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleNull_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleNull_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleProvider_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleProvider_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimplePublisher_exec.h:
+ * DAnCE/tests/CIAO/Components/SimplePublisher_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleUser_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleUser_exec.cpp:
+
+ Reverting a mistaken commit.
+
+ * DAnCE/tests/CIAO/Components/SimpleAttribute.cidl:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer.cidl:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter.cidl:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser.cidl:
+ * DAnCE/tests/CIAO/Components/SimpleNull.cidl:
+ * DAnCE/tests/CIAO/Components/SimpleProvider.cidl:
+ * DAnCE/tests/CIAO/Components/SimplePublisher.cidl:
+ * DAnCE/tests/CIAO/Components/SimpleUser.cidl:
+ * examples/Hello/Sender/Sender.cidl
+ * examples/Hello/Receiver/Receiver.cidl
+
+ Removed these files, no longer needed.
+
+ Tue Jun 16 12:50:52 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/tests/CIAO/Components/ProcessColocation.idl:
+ * DAnCE/tests/CIAO/Components/ProcessColocation.mpc:
+ * DAnCE/tests/CIAO/Components/ProcessColocation_exec_export.h:
+ * DAnCE/tests/CIAO/Components/ProcessColocation_stub_export.h:
+ * DAnCE/tests/CIAO/Components/ProcessColocation_svnt_export.h:
+
+ New component to test process colocation capabilities of CIAO/DAnCE.
+
+ * DAnCE/tests/CIAO/Components/SimpleAttribute_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleAttribute_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleNull_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleNull_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleProvider_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleProvider_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimplePublisher_exec.h:
+ * DAnCE/tests/CIAO/Components/SimplePublisher_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleUser_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleUser_exec.cpp:
+
+ Re-added business logic accidentally removed.
+
+ Tue Jun 16 12:45:52 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * MPC/config/ciaoidldefaults.mpb:
+ * examples/Hello/Receiver/Receiver.mpc:
+ * examples/Hello/Sender/Sender.mpc:
+
+ MPC base project for new tao_idl based container generation.
+
+ * tools/Config_Handlers/Basic_Deployment_Data.cpp:
+ * tools/Config_Handlers/Basic_Deployment_Data.hpp:
+ * tools/Config_Handlers/Config_Handlers.mpc:
+ * tools/Config_Handlers/DP_Handler.cpp:
+ * tools/Config_Handlers/XMI.cpp:
+ * tools/Config_Handlers/cid.cpp:
+ * tools/Config_Handlers/cid.hpp:
+ * tools/Config_Handlers/cpd.hpp:
+ * tools/Config_Handlers/cpd.cpp:
+
+ Updated XSC code for updated schema.
+
+ Tue Jun 16 09:18:07 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/Hello/Receiver/Receiver.mpc
+ * examples/Hello/Receiver/Receiver_exec.cpp
+ * examples/Hello/Receiver/Receiver_exec.h
+ * examples/Hello/Sender/Sender.mpc
+ * examples/Hello/Sender/Sender_exec.cpp
+ * examples/Hello/Sender/Sender_exec.h
+ Ported to IDL compiler
+
+ * examples/Hello/descriptors/run_test.pl
+ Reduced timeouts
+
+ Mon Jun 15 19:20:07 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/tests/CIAO/Components/SimpleAttribute.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleNull.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleProvider.mpc:
+ * DAnCE/tests/CIAO/Components/SimplePublisher.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleUser.mpc:
+
+ Removed -Gex. Thanks to Jeff both for the initial porting work
+ and for pointing out the lingering -Gex.
+
+ Mon Jun 15 14:52:10 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/tests/CIAO/Components/SimpleAttribute_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleAttribute_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleNull_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleNull_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleProvider_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleProvider_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimplePublisher_exec.h:
+ * DAnCE/tests/CIAO/Components/SimplePublisher_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleUser_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleUser_exec.cpp:
+
+ Checked in ported exec code from a misapplied patch.
+
+ Mon Jun 15 14:41:02 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * docs/schema/Basic_Deployment_Data.xsd:
+
+ Correction to schema.
+
+ Mon Jun 15 14:37:09 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * examples/Hello/descriptors/run_test_without_ns.pl:
+
+ Removed --instance-nc command line options.
+
+ Mon Jun 15 14:05:45 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/tests/CIAO/Components/SimpleAttribute.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleAttribute_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleAttribute_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleNull.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleNull_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleNull_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleProvider.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleProvider_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleProvider_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimplePublisher.mpc:
+ * DAnCE/tests/CIAO/Components/SimplePublisher_exec.h:
+ * DAnCE/tests/CIAO/Components/SimplePublisher_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleUser.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleUser_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleUser_exec.cpp:
+
+ Ported to use IDL compiler instead of CIDL compiler.
+
+ * examples/Hello/descriptors/DeploymentPlan_without_ns.cdp:
+ * examples/Hello/descriptors/run_test_without_ns.pl:
+
+ Ported to new DAnCE.
+
+ * bin/ciao_tests.lst
+
+ Added run_test_without_ns.
+
+ Sat Jun 13 01:35:43 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ciao/ComponentServer/CIAO_ComponentServer_Impl.cpp:
+
+ Fixed a memory management error. Thanks to Jeff for pointing it out.
+
+ Wed Jun 10 17:53:10 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Deployment/Deployment_DeploymentPlan.idl:
+ * DAnCE/Deployment/Deployment_Packaging_Data.idl:
+ * docs/schema/Basic_Deployment_Data.xsd:
+ * docs/schema/cid.xsd:
+ * docs/schema/cpd.xsd:
+
+ Updated to match new structures defined by the DDS4CCM spec.
+ New generated XSC code/config handler implementation is forthcoming.
+
+ Wed Jun 10 14:01:33 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * DAnCE/ExecutionManager/ExecutionManager_Module.cpp:
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp:
+ * DAnCE/RepositoryManager/Repository_Manager_Module.cpp:
+ Normalized "usage" texts.
+
+ * DAnCE/TargetManager/DomainDataManager.h:
+ * DAnCE/TargetManager/DomainDataManager.cpp:
+ * DAnCE/TargetManager/ResourceCommitmentManager.cpp:
+ * DAnCE/TargetManager/TargetManager_exec.h:
+ * DAnCE/TargetManager/TargetManager_exec.cpp:
+ DomainDataManager is now an ACE_Singleton class.
+ Removed function like create-, get- and destroy
+ data manager.
+
+ * examples/Hello/step-by-step.html:
+ Used "DANCE_ROOT" in stead of CIAO_ROOT/DAnCE" and
+ changed the domain-nc value.
+
+ Mon Jun 8 15:27:56 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * examples/Hello/descriptors_naming/deploymentplan_naming.cdp:
+ Changed to meet the current XML schema's.
+
+ * examples/Hello/step-by-step.html:
+ Changes regarding the use of the naming server.
+
+ Mon Jun 8 09:58:27 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * DAnCE/Logger/File_Logger_Backend.cpp:
+ Fixed Bugzilla #3692 - Incorrect behaviour of DANCE_LOG_FILE
+ variable when used globally.
+ Open DAnCE logfile with a+ in stead off w.
+
+ Mon Jun 8 09:43:49 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * DAnCE/Logger/File_Logger_Backend.cpp:
+ Added new line after log messages.
+
+ * examples/Hello/step-by-step.html:
+ Made changes regarding the use of the naming server.
+
+ Mon Jun 8 09:12:13 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * examples/Hello/Receiver/Receiver.cidl:
+ Changed #ifndef SENDER_CIDL to #ifndef RECEIVER_CIDL.
+
+ * examples/Hello/Sender/Sender.idl:
+ Changed CIAO_SENDER_IDL into SENDER_IDL (same format as
+ RECEIVER.IDL).
+
+ * examples/Hello/descriptors/run_NodeDaemons.pl:
+ Making use of DANCE_ROOT environment variable. Using the
+ same command line parameters as in run_test.pl.
+
+ * examples/Hello/step-by-step.html:
+ Adapted to the current status.
+
+ Fri Jun 5 19:48:15 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Logger/Logger_Service.cpp:
+
+ Now swallows any command line arguments it finds.
+
+ Tue Jun 2 03:43:30 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * DAnCE/Deployment/Module_Main.h
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher_Module.cpp
+
+ Added \n to debug statements.
+
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.cpp
+
+ In a DANCE_DEBUG statement, an %C was declared without an input variable.
+ This results in an exception.
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher.h
+
+ Changed code outlining.
+
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp
+
+ When logging the command line parameters in a logfile, every line is prefixed
+ with a timestamp, hostid, ...... This results in a log line which is hard to read.
+ The command line parameters are now logged using several lines.
+
+ * examples/Hello/descriptors/run_test.pl
+
+ Added logging regarding processes and commandline parameters
+
+
+Tue Jul 14 02:45:22 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * NEWS:
+ updated new release.
+
+Mon Jul 13 12:32:13 CDT 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * CIAO version 0.7.1 released.
+
+Tue Jun 23 15:08:50 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * NEWS:
+ Added space for 0.7 -> 0.7.1 changes.
+
+Mon Jun 22 09:33:40 CDT 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * CIAO version 0.7 released.
+
+Thu Jun 18 23:03:06 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * tools/Config_Handlers/IRDD_Handler.h:
+ * tools/XML/XML_Schema_Resolver.cpp:
+
+ There is a curious order-of-inclusion problem on macosx-leopoard
+ builds whereby including a non-ACE header before something that
+ includes ace/config.h causes a compiler error in
+ OS_NS_stdlib.inl. It seems that on that platform, the signature
+ of ::unsetenv() varies. I think this should be looked into in
+ greater depth after releasing x.7.0.
+
+Tue Jun 16 00:55:21 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * MPC/config/dance_plan_generator.mpc:
+ * MPC/config/dance_plan_launcher_base.mpc:
+
+ Linking fixes for RACE.
+
+Mon Jun 15 02:22:01 UTC 2009 William R. Otte <wotte@william-r-ottes-macbook-pro-2.local>
+
+ * CIAO-INSTALL.html:
+ * NEWS:
+ Minor updates.
+
+Sun Jun 14 06:58:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/XSCRT/Elements.hpp:
+ Updated for CB2009 Update 3
+
+Thu Jun 11 19:32:56 UTC 2009 Steven Stallion <stallions@ociweb.com>
+
+ * PROBLEM-REPORT-FORM:
+
+ Added additional PRF question about build method (commit performed
+ on behalf of Chris Cleeland).
+
+Mon Jun 8 09:45:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp
+ * ciao/Logger/File_Logger_Backend.cpp
+ * ciao/Server_init.cpp
+ * ciao/Server_init.h
+ * DAnCE/Deployment/Module_Main.h
+ * DAnCE/DomainApplication/Domain_Application_Impl.cpp
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DAnCE/DomainApplicationManager/Node_Locator.cpp
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.cpp
+ * DAnCE/ExecutionManager/ExecutionManager_Module.cpp
+ * DAnCE/ExecutionManager/ExecutionManager_Module.h
+ * DAnCE/Logger/Log_Macros.h
+ * DAnCE/Logger/Logger_Service.cpp
+ * DAnCE/NodeApplication/ComponentAttributesSetter.cpp
+ * DAnCE/NodeApplication/Name_Utilities.cpp
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+ * DAnCE/NodeManager/Node_Manager_Module.cpp
+ * DAnCE/NodeManager/Node_Manager_Module.h
+ * DAnCE/NodeManager/NodeManager_Impl.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.h
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher_Module.cpp
+ * DAnCE/RedirectionService/NameServiceRedirection.cpp
+ * DAnCE/RedirectionService/RedirectionService.cpp
+ * DAnCE/RepositoryManager/Repository_Manager_Module.cpp
+ * DAnCE/RepositoryManager/Repository_Manager_Module.h
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.h
+ * DAnCE/RepositoryManager/RMadmin.cpp
+ * DAnCE/RepositoryManager/URL_Parser.cpp
+ * DAnCE/RepositoryManager/URL_Parser.h
+ * DAnCE/RepositoryManager/ZIP_Wrapper.cpp
+ * DAnCE/Starter/Starter.cpp
+ * DAnCE/TargetManager/CmpClient.cpp
+ * DAnCE/TargetManager/DomainDataManager.cpp
+ Unicode changes
+
+Sun Jun 7 17:58:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Server_init.cpp
+ * DAnCE/NodeApplication/Name_Utilities.cpp
+ Added include of Tokenizer_T.h
+
+Fri Jun 5 18:17:06 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/ComponentServer/CIAO_ComponentServer.cpp
+ * ciao/ComponentServer/CIAO_ComponentServer.h
+ * ciao/Logger/File_Logger_Backend.cpp
+ * ciao/Server_init.cpp
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * tools/XML/XML_Schema_Resolver.h
+ Unicode fixes
+
+Thu Jun 4 19:12:06 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/ExecutionManager/ExecutionManager_Module.cpp
+ * DAnCE/NodeManager/Node_Manager_Module.cpp
+ * DAnCE/Plan_Generator/Plan_Generator_Impl.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp
+ * tests/CIAO_ComponentServer/SimpleComponent/client.cpp
+ Unicode fixes
+
+Thu Jun 4 14:06:06 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * NEWS:
+
+ News updates for next release.
+
+Mon Jun 1 20:29:12 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CIDLC/cidlc.cpp:
+ * MPC/config/ciaocidldefaults.mpb:
+
+ Added two options: --suppress-lem and --suppress-svnt, which will
+ suppress generation of the local executor mapping and servant code,
+ respectively.
+
+Fri May 29 00:48:01 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Some tweaks to the generated _svnt files to properly compile with
+ the changes introduced in the previous commit .
+
+Thu May 28 19:07:27 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ExecutorMappingGenerator.cpp:
+
+ More tweaks to the application of the command line option
+ added in
+
+ Thu May 28 14:01:45 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+Thu May 28 18:52:27 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ExecutorMappingGenerator.cpp:
+
+ Applied check for the command line option added in
+
+ Thu May 28 14:01:45 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ in several places needed for correct generation of
+ the executor IDL file.
+
+Thu May 28 14:01:45 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Fixed cut/paste error in comment.
+
+ * CIDLC/ExecutorMappingGenerator.cpp:
+ * CIDLC/ExecImplHeaderGenerator.cpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+
+ Added command line option to generate an IDL module that
+ encloses the entire executor IDL file, and
+ corresponding 'using namespace' declarations in the
+ servant and executor impl header files. This change is
+ a temporary fix for build errors occurring when facet
+ executor IDL generation is duplicated across IDL files
+ for components which have an inheritance relationship
+ but are located in separate translation units. Thanks
+ to Will Otte <wotte@dre.vanderbilt.edu> for reporting
+ the problem and suggesting the fix.
+
+Wed May 27 23:58:23 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Plan_Generator/Plan_Generator.mpc:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.h:
+ * MPC/config/ciao_plan_generator.mpb:
+
+ Updates for RACE.
+
+Fri May 22 12:58:33 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Basic_Deployment_Data.cpp:
+ * tools/Config_Handlers/XMI.cpp:
+
+ Warning fixes.
+
+Thu May 21 01:13:28 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * tools/Config_Handlers/ERE_Handler.h:
+
+ fix fuzz.
+
+Wed May 20 01:41:39 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/TargetManager/TargetManager.mpc:
+ * DAnCE/TargetManager/TargetManagerExt.idl:
+ * tools/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp:
+ * tools/Config_Handlers/ERE_Handler.h:
+ * tools/Config_Handlers/Utils/Functors.h:
+ * tools/Config_Handlers/XMLSchema/Types.hpp:
+ * tools/Config_Handlers/XSCRT/Elements.hpp:
+ * tools/IDL3_to_XMI/IDL3_to_XMI_visitor.cpp:
+ * tools/IDL3_to_XMI/Literals.h:
+ * tools/XML/XML_Schema_Resolver.tpp:
+ * tools/XML/XercesString.h:
+
+ Updates for borland.
+
+Thu May 14 19:12:56 UTC 2009 Abdullah Sowayan <sowayan@gmail.com>
+
+ * MPC/config/cidlc.mpb:
+
+ Replaced: specific(nmake, vc71, vc8, vc9, vc10)
+ With: specific(prop:microsoft)
+
+Tue May 12 19:04:31 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp:
+
+ Compile fix.
+
+Fri May 8 16:30:19 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/ADD_Handler.cpp:
+ * tools/Config_Handlers/Basic_Deployment_Data.hpp:
+ * tools/Config_Handlers/Basic_Deployment_Data.cpp:
+ * tools/Config_Handlers/CCD_Handler.cpp:
+ * tools/Config_Handlers/CEPE_Handler.cpp:
+ * tools/Config_Handlers/CPD_Handler.cpp:
+ * tools/Config_Handlers/CRDD_Handler.cpp:
+ * tools/Config_Handlers/DD_Handler.cpp:
+ * tools/Config_Handlers/DP_Handler.cpp:
+ * tools/Config_Handlers/Deployment.hpp:
+ * tools/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp:
+ * tools/Config_Handlers/DynAny_Handler/DynEnum_Handler.cpp:
+ * tools/Config_Handlers/DynAny_Handler/DynSequence_Handler.cpp:
+ * tools/Config_Handlers/DynAny_Handler/DynStruct_Handler.cpp:
+ * tools/Config_Handlers/ERE_Handler.cpp:
+ * tools/Config_Handlers/IDD_Handler.cpp:
+ * tools/Config_Handlers/IRDD_Handler.cpp:
+ * tools/Config_Handlers/MDD_Handler.cpp:
+ * tools/Config_Handlers/PCD_Handler.cpp:
+ * tools/Config_Handlers/PSPE_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/CAD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/CID_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/CPD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/IAD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/SID_Handler.cpp:
+ * tools/Config_Handlers/RDD_Handler.cpp:
+ * tools/Config_Handlers/Req_Handler.cpp:
+ * tools/Config_Handlers/Utils/Functors.h:
+ * tools/Config_Handlers/XMI.hpp:
+ * tools/Config_Handlers/XMLSchema/Types.hpp:
+ * tools/Config_Handlers/XSCRT/Elements.hpp:
+ * tools/Config_Handlers/ccd.cpp:
+ * tools/Config_Handlers/ccd.hpp:
+ * tools/Config_Handlers/cdd.cpp:
+ * tools/Config_Handlers/cdd.hpp:
+ * tools/Config_Handlers/cdp.cpp:
+ * tools/Config_Handlers/cdp.hpp:
+ * tools/Config_Handlers/cid.hpp:
+ * tools/Config_Handlers/cid.cpp:
+ * tools/Config_Handlers/cpd.cpp:
+ * tools/Config_Handlers/cpd.hpp:
+ * tools/Config_Handlers/iad.cpp:
+ * tools/Config_Handlers/iad.hpp:
+ * tools/Config_Handlers/pcd.hpp:
+ * tools/Config_Handlers/pcd.cpp:
+ * tools/Config_Handlers/toplevel.hpp:
+ * tools/Config_Handlers/toplevel.cpp:
+
+ New version of XSC generated code, and necessary porting in the handlers
+ as a potential fix for BCB2009 compilation issues.
+
+Mon May 4 15:52:14 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp:
+
+ Fuzz fix.
+
+Wed Apr 29 02:27:23 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * MPC/config/xscdefaults.mpb:
+ * docs/schema/Basic_Deployment_Data.xsd:
+ * docs/schema/cid.xsd:
+ * docs/schema/pcd.xsd:
+ * docs/schema/toplevel.xsd:
+ * tools/Config_Handlers/ADD_Handler.cpp:
+ * tools/Config_Handlers/Basic_Deployment_Data.hpp:
+ * tools/Config_Handlers/Basic_Deployment_Data.cpp:
+ * tools/Config_Handlers/DD_Handler.cpp:
+ * tools/Config_Handlers/Deployment.cpp:
+ * tools/Config_Handlers/Deployment.hpp:
+ * tools/Config_Handlers/IDD_Handler.cpp:
+ * tools/Config_Handlers/MDD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/CID_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/CPD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/IAD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp:
+ * tools/Config_Handlers/XMI.cpp:
+ * tools/Config_Handlers/XMI.hpp:
+ * tools/Config_Handlers/XML_File_Intf.cpp:
+ * tools/Config_Handlers/ccd.cpp:
+ * tools/Config_Handlers/ccd.hpp:
+ * tools/Config_Handlers/cdd.cpp:
+ * tools/Config_Handlers/cdd.hpp:
+ * tools/Config_Handlers/cdp.hpp:
+ * tools/Config_Handlers/cdp.cpp:
+ * tools/Config_Handlers/cid.hpp:
+ * tools/Config_Handlers/cid.cpp:
+ * tools/Config_Handlers/cpd.cpp:
+ * tools/Config_Handlers/cpd.hpp:
+ * tools/Config_Handlers/iad.cpp:
+ * tools/Config_Handlers/iad.hpp:
+ * tools/Config_Handlers/pcd.hpp:
+ * tools/Config_Handlers/pcd.cpp:
+ * tools/Config_Handlers/toplevel.hpp:
+ * tools/Config_Handlers/toplevel.cpp:
+
+ Updates to work with SVN Head version of XSC.
+
+Fri Apr 24 09:18:44 UTC 2009 Vladimir Zykov <vz@prismtech.com>
+
+ * tests/IDL3_to_XMI/IDL2XMI_Test/run_test.pl:
+
+ Extended a bit error reporting so that errors are not
+ missed in the final log.
+
+Thu Apr 23 11:07:37 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/TargetManager/CmpClient.cpp
+ * docs/tutorials/Quoter/Simple/Broker/StockBrokerDriver.cpp
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributorDriver.cpp
+ Removed not needed unicode to ascii conversions
+
+Thu Apr 23 08:06:25 UTC 2009 Vladimir Zykov <vz@prismtech.com>
+
+ * bin/ciao_tests.lst:
+ * tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.cpp:
+ * tests/IDL3_to_XMI/IDL2XMI_Test/IDL2XMI_Test.mpc:
+ * tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.h:
+ * tests/IDL3_to_XMI/IDL2XMI_Test/xmlvalidator.cpp:
+ * tests/IDL3_to_XMI/IDL2XMI_Test/run_test.pl:
+
+ Added and enabled a test for bug#3616. It's marked as
+ unfixed since currently there is a problem with XML
+ generation for anonymous types.
+
+ * tools/IDL3_to_XMI/IDL3_to_XMI_visitor.cpp:
+
+ Fixed a compilation error for bug#3607.
+
+Wed Apr 22 14:56:08 UTC 2009 Vladimir Zykov <vz@prismtech.com>
+
+ * tests/IDL3_to_XMI/XMI_For_Array/test.idl:
+ * tests/IDL3_to_XMI/XMI_For_Array/XMI.dtd:
+ * tests/IDL3_to_XMI/XMI_For_Array/run_test.pl:
+ * tests/IDL3_to_XMI/XMI.dtd:
+ * tests/IDL3_to_XMI/XMI_For_Included_File/XMI.dtd:
+ * tests/IDL3_to_XMI/XMI_For_Included_File/run_test.pl:
+ * tests/IDL3_to_XMI/XMI_For_Sequence/test.idl:
+ * tests/IDL3_to_XMI/XMI_For_Sequence/XMI.dtd:
+ * tests/IDL3_to_XMI/XMI_For_Sequence/run_test.pl:
+ * tests/IDL3_to_XMI/Bug_3607_Regression/test.idl:
+ * tests/IDL3_to_XMI/Bug_3607_Regression/XMI.dtd:
+ * tests/IDL3_to_XMI/Bug_3607_Regression/run_test.pl:
+
+ Extended and updated the tests. Now they share XMI.dtd which
+ is the same for all of them.
+
+Wed Apr 22 14:34:02 UTC 2009 Vladimir Zykov <vz@prismtech.com>
+
+ * tools/IDL3_to_XMI/IDL3_to_XMI_visitor.h:
+ * tools/IDL3_to_XMI/be_global.cpp:
+ * tools/IDL3_to_XMI/Literals.cpp:
+ * tools/IDL3_to_XMI/Literals.h:
+ * tools/IDL3_to_XMI/IDL3_to_XMI_visitor.cpp:
+
+ Fixed bug#3607. This also fixes a number of other things. In
+ particular XML generation for module reopening and forward
+ declared types. Proper xmi.id generation in a number of places.
+ XML generation for native types. Proper generation of associations
+ for arrays and sequences. Fixed several typos and beautified the
+ code.
+
+Tue Apr 21 06:50:32 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * docs/fm/*:
+ Added FrameMaker 8 files for the CIAO pdf file. When making changes
+ make sure track changes is enabled.
+
+ This documentation is based on original work contributed by
+ Object Computing, Inc. (OCI), St. Louis, MO, USA,
+ http://www.ociweb.com.
+
+Thu Apr 16 16:13:22 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * NEWS:
+
+ Added new section anticipating version 0.7.
+
+Tue Apr 14 10:06:19 CDT 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * CIAO version 0.6.9 released.
+
+Tue Apr 14 13:57:16 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * NEWS:
+
+ Reworded entries to be consistent with release note.
+
+Mon Apr 13 15:03:24 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * DAnCE/tests/ObjectLocatorTest/ObjectLocatorTest.mpc:
+
+ Scoreboard clean-up to avoid minimum corba builds for this test.
+
+Sun Apr 12 18:55:13 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * examples/BasicSP/BMClosedED/BMClosedED.mpc:
+ * examples/BasicSP/BMDevice/BMDevice.mpc:
+ * examples/BasicSP/BMDisplay/BMDisplay.mpc:
+ * examples/BasicSP/BasicSP.mpc:
+ * examples/BasicSP/EC/EC.mpc:
+
+ Scoreboard clean-up ACE_FOR_TAO does not build CIDLC which is
+ required for these examples.
+
+Sun Apr 12 01:58:41 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * MPC/config/dance_repository_manager.mpb:
+
+ Linking error on static builds.
+
+Fri Apr 10 17:36:19 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * DAnCE/ExecutionManager/ExecutionManager.mpc:
+
+ Add dependency on IORTable so that the ExecutionMangaer_Module
+ builds on clean environments.
+
+Fri Apr 10 03:10:46 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/ExecutionManager.mpc:
+ * DAnCE/TargetManager/TM_Client.mpc:
+ * DAnCE/TargetManager/TargetManager.mpc:
+ * examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.mpc:
+ * examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.mpc:
+ * performance-tests/Benchmark/Benchmark.mpc:
+ * performance-tests/Benchmark/RoundTripServer/RoundTripServer.mpc:
+ * tools/Config_Handlers/Package_Handlers/Package_Handlers.mpc:
+
+ ace_for_tao fixes.
+
+Thu Apr 9 20:54:33 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * MPC/config/ciao_client.mpb:
+
+ static linking error.
+
+Thu Apr 9 20:44:31 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/ExecutionManager.mpc:
+ * DAnCE/RedirectionService/RedirectionService.mpc:
+
+ avoids minimum corba.
+
+Thu Apr 9 14:57:50 UTC 2009 Abdullah Sowayan <sowayan@gmail.com>
+
+ * docs/CIAO.pdf:
+
+ Updated the CIAO chapter of the Dev Guide.
+
+Thu Apr 9 13:20:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/tests/ObjectLocatorTest/srv_main.cpp
+ * DAnCE/tests/RedirectionServiceTest/srv_main.cpp
+ * examples/Hello/Sender/starter.cpp
+ * performance-tests/Protocols/Controller/Controller.cpp
+ Unicode changes
+
+Wed Apr 8 23:11:22 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * examples/Hello/descriptors/DeploymentPlan.cdp:
+
+ Removed some unicode characters that may be causing problems
+ on some platforms.
+
+Wed Apr 8 18:14:30 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ciao/Containers/Servant_Activator.cpp:
+
+ I'm not sure the absent port activator is an error, changing it to
+ a warning. I'll investigate later.
+
+Wed Apr 8 05:09:48 UTC 2009 James H. Hill <hillj@isis.vanderbilt.edu>
+
+ * docs/Porting_Hints.txt:
+
+ Reformatted the document so that the text wraps around the
+ 80th column.
+
+Tue Apr 7 14:40:41 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+
+ Fuzz error.
+
+Tue Apr 7 14:37:18 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/tests/CIAO/NodeManager-Deployments/simple_nm_launcher.cpp:
+
+ Compile error.
+
+Mon Apr 6 18:18:58 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/Name_Utilities.cpp:
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+
+ Stab at a fix for a memory corruption during deployment.
+
+Mon Apr 6 13:26:08 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ciao/ComponentServer/CIAO_ComponentServer_Impl.cpp:
+
+ Fixed compile error.
+
+Sun Apr 5 20:34:22 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/tests/CIAO/NodeManager-Deployments/nm_launcher.mpc:
+
+ Changed parent from ciao_logger to dance_logger.
+
+ * ciao/ComponentServer/CIAO_ComponentServer_Impl.cpp:
+
+ Properly check if _var is nil.
+
+Sat Apr 4 15:30:13 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * ciao/ComponentServer/CIAO_ComponentServer_Impl.cpp:
+ Fix fuzz errors.
+
+Sat Apr 4 03:39:28 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ciao/ComponentServer/CIAO_ComponentServer_Impl.cpp:
+ * ciao/ComponentServer/CIAO_Container_Impl.cpp:
+
+ Fixed a couple memory management issues.
+
+Mon Mar 23 12:51:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Logger/File_Logger_Backend.h
+ * ciao/Logger/Logger_Service.cpp
+ * ciao/Logger/Logger_Service.h
+ * DAnCE/ExecutionManager/ExecutionManager_Module.cpp
+ * DAnCE/tests/ObjectLocatorTest/srv_main.cpp
+ * DAnCE/tests/RedirectionServiceTest/srv_main.cpp
+ * tests/CIAO_ComponentServer/Basic/client.cpp
+ * tests/CIAO_ComponentServer/SimpleComponent/client.cpp
+ Fixed unicode compile problems
+
+Fri Mar 20 19:00:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/DomainApplicationManager/Node_Locator.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp
+ * DAnCE/tests/NameServiceTest/srv_main.cpp
+ * performance-tests/Benchmark/RoundTrip/client.cpp
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec.cpp
+ * performance-tests/Protocols/Controller/Controller.cpp
+ * performance-tests/Protocols/Receiver/Receiver_exec.cpp
+ * performance-tests/Protocols/Sender/Sender_exec.cpp
+ * tests/Bug_2130_Regression/SEC_CheckPoint/controller.cpp
+ * tests/CIAO_ComponentServer/Basic/client.cpp
+ * tools/Config_Handlers/Basic_Deployment_Data.hpp
+ Fixed unicode compile problems
+
+Fri Mar 20 15:54:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/RedirectionService/CCMObjectLocator.h:
+ Added missing export macro to resolve link problems
+ with CB2009
+
+ * DAnCE/tests/ObjectLocatorTest/DummyImpl.cpp:
+ * DAnCE/tests/ObjectLocatorTest/DummyImpl.h:
+ Layout changes
+
+Mon Mar 16 20:11:22 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/RedirectionService/CCMObjectLocator.h:
+ Made destructor virtual
+
+ * DAnCE/tests/ObjectLocatorTest/ObjectLocatorTest.mpc:
+ * DAnCE/tests/RedirectionServiceTest/DummyImpl.h:
+ Layout changes
+
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.mpc:
+ Added naming
+
+Sun Mar 15 19:28:54 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * MPC/config/ciao_executor.mpb:
+ Added ciao_container_base as base project, the generated svnt.h
+ files includes the EC.h file which includes the Container_BaseC.h
+ file.
+
+Fri Mar 13 08:00:54 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Starter/Starter.mpc:
+ Don't build with minimum corba
+
+Wed Mar 11 18:54:54 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * MPC/config/ciaoidldefaults.mpb:
+ Added build_files as base project, that way also the mpc/mwc
+ files are added to the generated solution. This way we see
+ in the ms ide also for custom cidl projects the mpc files.
+ Thanks to Adam Mitz for suggesting this solution
+
+Wed Mar 11 12:40:08 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/XSCRT/Elements.hpp:
+ Updated workaround for cb2009
+
+Tue Mar 10 13:03:08 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/Display/NavDisplayGUI_exec/RootPanel.cpp:
+ Fixed compile warning
+
+Tue Mar 10 11:39:08 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Servants/Servant_Impl_Base.h:
+ * ciao/Servants/Servant_Impl_Utils_T.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+ Moved static methods to CIAO::Servant namespace to fix
+ linker problems with the CB2009 compiler.
+
+Tue Mar 10 11:01:08 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/TargetManager/TargetManager.mpc:
+ Added missing base project
+
+Mon Mar 9 13:39:08 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * etc/*:
+ Added all CIAO doxygen files
+
+Mon Mar 8 12:50:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Containers/CIAO_Servant_Activator.mpc:
+ * MPC/config/ciao_servant_activator.mpb:
+ Disabled with minimum corba
+
+Mon Mar 8 12:42:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/generate_component_mpc.pl
+ * ciao/ComponentServer/CIAO_ComponentServer.mpc
+ * DAnCE/TargetManager/TargetManager.mpc
+ * DAnCE/tests/CIAO/Components/SimpleAttribute.mpc
+ * DAnCE/tests/CIAO/Components/SimpleCommon.mpc
+ * DAnCE/tests/CIAO/Components/SimpleConsumer.mpc
+ * DAnCE/tests/CIAO/Components/SimpleEmitter.mpc
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser.mpc
+ * DAnCE/tests/CIAO/Components/SimpleNull.mpc
+ * DAnCE/tests/CIAO/Components/SimpleProvider.mpc
+ * DAnCE/tests/CIAO/Components/SimplePublisher.mpc
+ * DAnCE/tests/CIAO/Components/SimpleUser.mpc
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker.mpc
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor.mpc
+ * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.mpc
+ * examples/DevGuideExamples/Messenger/Administrator.mpc
+ * examples/DevGuideExamples/Messenger/Messenger.mpc
+ * examples/DevGuideExamples/Messenger/Receiver.mpc
+ * examples/Display/Display_Base/Display_Base.mpc
+ * examples/Display/GPS/GPS.mpc
+ * examples/Display/NavDisplay/NavDisplay.mpc
+ * examples/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc
+ * examples/Display/RateGen/RateGen.mpc
+ * examples/Hello/Hello_Base/Hello_Base.mpc
+ * examples/Hello/Receiver/Receiver.mpc
+ * examples/Hello/Sender/Sender.mpc
+ * examples/Null_Component/Null_Component.mpc
+ * examples/Null_Component/Null_Interface.mpc
+ * examples/Swapping/Hello_Base/Hello_Base.mpc
+ * examples/Swapping/Receiver/Receiver.mpc
+ * examples/Swapping/Sender/Sender.mpc
+ * MPC/config/ciao_cs_client.mpb
+ * performance-tests/Benchmark/Benchmark.mpc
+ * performance-tests/Benchmark/Multi_Threaded/Multi_Threaded.mpc
+ * performance-tests/Benchmark/RoundTrip/RoundTrip.mpc
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient.mpc
+ * performance-tests/Protocols/common/Protocols.mpc
+ * performance-tests/Protocols/Controller/Controller.mpc
+ * performance-tests/Protocols/Receiver/Receiver.mpc
+ * performance-tests/Protocols/Sender/Sender.mpc
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.mpc
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.mpc
+ * tests/CIDL/CodeGen/Basic.mpc
+ * tests/CIDL/CodeGen/CodeGen.mpc
+ * tests/Minimum/Minimum_Base/Minimum_Base.mpc
+ * tests/Minimum/Receiver/Receiver.mpc
+ * tests/Minimum/Sender/Sender.mpc
+ * tools/Config_Handlers/Package_Handlers/Package_Handlers.mpc
+ Use avoids_ace_for_tao as base project
+
+Mon Mar 8 10:38:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/IDL3_to_IDL2/be_sunsoft.cpp:
+ * tools/IDL3_to_XMI/be_sunsoft.cpp:
+ Use the ACE format specifiers, migrated this from the tao_idl
+ compiler be_sunsoft.cpp to these files
+
+Mon Mar 8 09:44:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/IDL3_to_XMI/Bug_3607_Regression/*:
+ new test for 3607
+
+ * bin/ciao_tests.lst:
+ Added new test and enabled other idl3_to_xmi tests for fuzz
+
+Mon Mar 8 09:12:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/generate_component_mpc.pl:
+ Generate a seperate project for compiling the E.idl file, makes
+ it easier for parallel builds and incredibuild
+
+ * examples/Hello/Receiver/Receiver.mpc:
+ Updated to use a seperate project for the E.idl file
+
+ * MPC/config/cidlc.mpb:
+ Added support for vc10
+
+ * tools/Config_Handlers/XSCRT/Traversal.hpp:
+ Removed commented out code
+
+Mon Mar 8 08:31:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/ComponentServer/CIAO_ComponentServer.mpc:
+ * MPC/config/ciao_cs_client.mpb:
+ ciao_cs_client_svnt needs threads
+
+Mon Mar 8 08:29:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc:
+ * tools/IDL3_to_XMI/IDL3_TO_XMI.mpc:
+ Put the executables in CIAO_ROOT/bin, not ACE_ROOT/bin
+
+ * MPC/config/taoidl3toidl2defaults.mpb:
+ * tests/IDL3_to_XMI/XMI_For_Array/run_test.pl:
+ * tests/IDL3_to_XMI/XMI_For_Included_File/run_test.pl:
+ * tests/IDL3_to_XMI/XMI_For_Sequence/run_test.pl:
+ updated because these executables are now put in CIAO_ROOT/bin
+
+Mon Mar 8 08:19:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/DevGuideExamples/Messenger/Messenger.mpc:
+ Removed not needed line
+
+ * examples/DevGuideExamples/Messenger/Messenger_exec_i.h:
+ Updated include
+
+Sat Mar 7 15:40:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Logger/Logger_Service.cpp
+ * DAnCE/Starter/Starter.cpp
+ * DAnCE/Starter/Starter.h
+ * DAnCE/tests/NameServiceTest/srv_main.cpp
+ * examples/BasicSP/EC/controller.cpp
+ Unicode fixes
+
+Fri Mar 6 20:17:32 UTC 2009 Abdullah Sowayan <sowayan@gmail.com>
+
+ * docs/CIAO.pdf:
+
+ This work is based on the TAO 1.4a TAO Developers Guide chapter
+ on CIAO published by OCI, with some modification to bring the material
+ up to date. This is a continuing, the goal is to improve this
+ document with time to serve as the authoritative reference/documentation
+ for CIAO users.
+
+ Thanks to OCI for making this chapter publicly available and allowing
+ us to modify it.
+
+
+Fri Mar 6 18:54:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/ComponentServer/CIAO_ComponentServer.mpc:
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.mpc:
+ Use ciao_logger as base project
+
+ * examples/DevGuideExamples/Messenger/Messenger.mpc:
+ Layout changes
+
+Fri Mar 6 14:26:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/TargetManager/DomainDataManager.cpp:
+ Resolve compile warnings
+
+ * MPC/config/ciao_nodemanager_stub.mpb:
+ Use base project
+
+Fri Mar 6 12:01:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/TargetManager/DomainDataManager.cpp
+ * DAnCE/TargetManager/ResourceCommitmentManager.cpp
+ layout changes
+
+ * examples/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc
+ Moved moc files to their own project to resolve build problems
+ build incredibuild
+
+Fri Mar 6 08:27:15 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * docs/tutorials/Quoter/Simple/01.html:
+ * docs/tutorials/Quoter/Simple/02.html:
+ * docs/tutorials/Quoter/Simple/03.html:
+ * docs/tutorials/Quoter/Simple/04.html:
+ * examples/Display/README.html:
+ Addapted to the new naming convention of
+ the dance executables.
+
+Thu Mar 5 18:22:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Deployment/DAnCE_Core.mpc:
+ Removed commented out line
+
+ * DAnCE/TargetManager/CmpClient.cpp:
+ Datatype fix
+
+ * DAnCE/TargetManager/TargetManager.mpc:
+ * DAnCE/TargetManager/TM_Client.mpc:
+ Updated to new CIAO
+
+ * DAnCE/TargetManager/TargetManager_exec.cpp:
+ * DAnCE/TargetManager/TargetManager_exec.h:
+ Made compiling again, no testing has been done yet
+
+ * DAnCE/TargetManager/TargetManagerExt.idl:
+ Doxygen change
+
+ * tools/Config_Handlers/Config_Handlers.mpc:
+ No need to set dynamic flags
+
+Tue Mar 3 07:56:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/DevGuideExamples/Messenger/History_exec_i.cpp
+ * examples/DevGuideExamples/Messenger/History_exec_i.h
+ * examples/DevGuideExamples/Messenger/Messenger_exec_i.cpp
+ * examples/DevGuideExamples/Messenger/Publication_exec_i.cpp
+ * examples/DevGuideExamples/Messenger/Publication_exec_i.h
+ * examples/DevGuideExamples/Messenger/Runnable_exec_i.cpp
+ * examples/DevGuideExamples/Messenger/Runnable_exec_i.h
+ Fixed fuzz error
+
+ * examples/DevGuideExamples/Messenger/StaticDAnCE/run_test.pl
+ * examples/DevGuideExamples/Messenger/descriptors/run_test.pl
+ Fixed typo
+
+Mon Mar 2 09:48:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/RepositoryManager/RepositoryManager.mpc:
+ * MPC/config/dance_repository_manager.mpb:
+ RepositoryManager requires zlib
+
+ * CIDLC/ExecImplHeaderGenerator.cpp:
+ * CIDLC/ExecImplSourceGenerator.cpp:
+ Generate void as empty argument name to generate code that
+ follows the ACE coding conventions
+
+ * tools/Config_Handlers/DnC_Dump.h:
+ Layout change
+
+Mon Mar 2 10:05:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/DevGuideExamples/Messenger/Administrator_exec_i.cpp
+ * examples/DevGuideExamples/Messenger/descriptors/run_test.pl
+ * examples/DevGuideExamples/Messenger/History_exec_i.cpp
+ * examples/DevGuideExamples/Messenger/History_exec_i.h
+ * examples/DevGuideExamples/Messenger/Messenger_exec_i.cpp
+ * examples/DevGuideExamples/Messenger/Messenger_exec_i.h
+ * examples/DevGuideExamples/Messenger/Publication_exec_i.cpp
+ * examples/DevGuideExamples/Messenger/Publication_exec_i.h
+ * examples/DevGuideExamples/Messenger/Receiver_exec_i.cpp
+ * examples/DevGuideExamples/Messenger/Receiver_exec_i.h
+ * examples/DevGuideExamples/Messenger/Runnable_exec_i.cpp
+ * examples/DevGuideExamples/Messenger/Runnable_exec_i.h
+ Minor improvements and simplification of this code
+
+Fri Feb 27 12:51:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp:
+ Fixed compile error
+
+Thu Feb 26 20:42:57 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * DAnCE/Logger/Logger_Service.cpp:
+
+ Fix for TCHAR ambiguity.
+
+Tue Feb 24 16:00:32 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * examples/Hello/descriptors/NodeManagerMap.dat:
+
+ Added some random newlines to make sure the EM doesn't crash
+ while parsing the NM file.
+
+Tue Feb 24 15:57:43 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * ciao/ComponentServer/CIAO_CS_Client.idl:
+ * ciao/ComponentServer/CIAO_ComponentInstallation_Impl.h:
+ * ciao/ComponentServer/CIAO_ComponentInstallation_Impl.cpp:
+ * ciao/ComponentServer/CIAO_ComponentServer.mpc:
+ * ciao/ComponentServer/CIAO_ComponentServer.cpp:
+ * ciao/ComponentServer/CIAO_ComponentServer_Impl.h:
+ * ciao/ComponentServer/CIAO_ComponentServer_Impl.cpp:
+ * ciao/ComponentServer/CIAO_Container_Impl.h:
+ * ciao/ComponentServer/CIAO_Container_Impl.cpp:
+ * ciao/ComponentServer/CIAO_Properties.idl:
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.h:
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp:
+ * tests/CIAO_ComponentServer/Activator/client.cpp:
+ * tests/CIAO_ComponentServer/SimpleComponent/client.cpp:
+
+ Added the ComponentInstallation and implementation to the CIAO
+ componentserver framework.
+
+Tue Feb 24 12:32:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Logger/Logger_Service.cpp:
+ * DAnCE/Starter/Starter.cpp:
+ Unicode fixes
+
+Tue Feb 24 10:47:54 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * CIAO_DAnCE.mwc:
+ * DAnCE/RepositoryManager/RepositoryManager.mpc:
+ Resolved linker errors.
+
+Mon Feb 23 16:06:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/Display/NavDisplayGUI_exec/Command.h
+ * examples/Display/NavDisplayGUI_exec/DetailView.cpp
+ * examples/Display/NavDisplayGUI_exec/DetailView.h
+ * examples/Display/NavDisplayGUI_exec/MapView.cpp
+ * examples/Display/NavDisplayGUI_exec/MapView.h
+ * examples/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc
+ * examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.cpp
+ * examples/Display/NavDisplayGUI_exec/NodeItem.cpp
+ * examples/Display/NavDisplayGUI_exec/NodeItem.h
+ * examples/Display/NavDisplayGUI_exec/RootPanel.cpp
+ * examples/Display/NavDisplayGUI_exec/RootPanel.h
+ * examples/Display/NavDisplayGUI_exec/UpdatePositionCmd.cpp
+ * examples/Display/NavDisplayGUI_exec/Worker.cpp
+ Converting this project to Qt4, compiles now
+
+ * ciao/Servants/Swapping/Dynamic_Component_Servant_T.cpp:
+ Removed commented out code
+
+Mon Feb 23 16:03:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * config/qt4_qt3support.mpb:
+ Added base project for qt4_qt3support
+
+Mon Feb 23 15:02:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/Display/Display_Base/Display_Base.mpc
+ * examples/Display/GPS/GPS.mpc
+ * examples/Display/lib
+ * examples/Display/NavDisplay/NavDisplay.mpc
+ * examples/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc
+ * examples/Display/RateGen/RateGen.mpc
+ Put all libs in a new lib directory
+
+Mon Feb 23 14:42:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Bug_2130_Regression/descriptors/run_test.pl:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.mpc:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.cpp:
+ Made this test compile again
+
+Mon Feb 23 13:58:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/TargetManager/TargetManager_exec.cpp
+ * DAnCE/TargetManager/TargetManager_exec.h
+ Removed ciao_preactivate/ciao_postactivate
+
+Mon Feb 23 13:25:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/RepositoryManager/RepositoryManager.mpc:
+ Use seperate idl project and removed dummy label, it compiles, testing
+ has still to be done
+
+Mon Feb 23 11:30:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Servants/Home_Servant_Impl_T.cpp:
+ Const change
+
+ * DAnCE/TargetManager/CmpClient.cpp:
+ Fixed compile error
+
+ * DAnCE/TargetManager/DomainDataManager.cpp:
+ Fixed some errors and commented out some code blocks that
+ have to be reworked
+
+ * DAnCE/TargetManager/DomainDataManager.h:
+ Updated to the new ciao, partly disabled
+
+ * DAnCE/TargetManager/DomainEvents.idl:
+ Updated include
+
+ * DAnCE/TargetManager/ResourceCommitmentManager.cpp:
+ Const change
+
+ * DAnCE/TargetManager/TargetManager_exec.cpp:
+ * DAnCE/TargetManager/TargetManager_exec.h:
+ Fixed compile errors
+
+ * DAnCE/TargetManager/TargetManagerExt.idl:
+ Fixed type
+
+ * DAnCE/TargetManager/TargetManagerImpl.idl:
+ Fixed include
+
+ * DAnCE/tests/DeploymentPlanTestReferences/DeploymentPlanTestReferences.mpc:
+ * DAnCE/tests/DeploymentTest1/DeploymentTest1.mpc
+ Don't use ciao_output for a test
+
+ * MPC/config/dance_domain_application_manager.mpb:
+ Add naming as base
+
+Mon Feb 23 09:52:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/BasicSP/BasicSP.mpc
+ * examples/BasicSP/BMClosedED/BMClosedED.mpc
+ * examples/BasicSP/BMDevice/BMDevice.mpc
+ * examples/BasicSP/BMDisplay/BMDisplay.mpc
+ * examples/BasicSP/descriptors/run_test.pl
+ * examples/BasicSP/EC/EC.mpc
+ * examples/BasicSP/lib:
+ Put all libs in the new lib directory
+
+Mon Feb 23 09:29:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test.pl:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/run_test.pl:
+ Updated because of the fact that libs are not put in ACE_ROOT/lib
+ anymore
+
+Mon Feb 23 09:22:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/Null_Component/descriptors/run_test.pl:
+ Added libpath
+
+Mon Feb 23 08:19:15 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.mpc
+ Fixed build order
+
+Sun Feb 22 16:34:18 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher_Module.cpp
+ Resolved a few typos.
+
+ * examples/Hello/descriptors/run_NodeDaemons.pl
+ * examples/Hello/step-by-step.html
+ Adapted to match with the current status.
+
+Sun Feb 22 07:27:18 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/ComponentServer/CIAO_ComponentServer.cpp
+ * ciao/ComponentServer/Configurators/Basic_Config_Manager.cpp
+ * ciao/Containers/Container_Base.cpp
+ * ciao/Containers/Servant_Activator.cpp
+ * ciao/Containers/Servant_Activator.h
+ * ciao/Containers/Session/Session_Container.cpp
+ * ciao/Contexts/Context_Impl_T.cpp
+ * ciao/Server_init.cpp
+ * DAnCE/DomainApplication/Domain_Application_Impl.cpp
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp
+ * DAnCE/RepositoryManager/Options.cpp
+ * DAnCE/RepositoryManager/RMadmin.cpp
+ * DAnCE/RepositoryManager/ZIP_Wrapper.cpp
+ * DAnCE/StaticConfigurator/StaticDAnCEParser.cpp
+ * DAnCE/TargetManager/CmpClient.cpp
+ * DAnCE/TargetManager/DomainDataManager.cpp
+ * docs/tutorials/Quoter/Simple/Broker/StockBrokerDriver.cpp
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributorDriver.cpp
+ * examples/BasicSP/BMClosedED/BMClosedED_exec.cpp
+ * examples/BasicSP/BMDevice/BMDevice_exec.cpp
+ * examples/BasicSP/BMDisplay/BMDisplay_exec.cpp
+ * examples/BasicSP/EC/client.cpp
+ * examples/BasicSP/EC/controller.cpp
+ * examples/Display/RateGen/controller.cpp
+ * examples/Hello/Sender/Sender_exec.cpp
+ * examples/Hello/Sender/starter.cpp
+ * examples/Swapping/Receiver/Receiver_exec.cpp
+ * examples/Swapping/Sender/Sender_exec.cpp
+ * examples/Swapping/Sender/Sender_exec_1.cpp
+ * examples/Swapping/Sender/Sender_exec_2.cpp
+ * examples/Swapping/Sender/starter.cpp
+ * performance-tests/Benchmark/Multi_Threaded/client.cpp
+ * performance-tests/Benchmark/Multi_Threaded/Client_Task.cpp
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec.cpp
+ * performance-tests/Benchmark/RoundTripServer/LatencyTest.cpp
+ * tests/Bug_2130_Regression/SEC_CheckPoint/controller.cpp
+ * tools/Config_Handlers/DnC_Dump.cpp
+ * tools/Config_Handlers/DnC_Dump_T.cpp
+ * tools/Config_Handlers/IDD_Handler.cpp
+ * tools/Config_Handlers/MDD_Handler.cpp
+ * tools/IDL3_to_XMI/be_helper.cpp
+ Updated debug statements
+
+Sun Feb 22 07:15:18 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/Hello/descriptors/run_test.pl
+ * examples/Hello/descriptors/run_test_without_ns.pl
+ * examples/Hello/descriptors_RTCCM/rt_run_test.pl
+ * examples/Hello/Hello_Base/Hello_Base.mpc
+ * examples/Hello/lib
+ * examples/Hello/Receiver/Receiver.mpc
+ * examples/Hello/Sender/Sender.mpc
+ Put all libs in a project specific lib directory and then add
+ this directory to the libpath in the perl scripts.
+
+Sat Feb 21 20:06:18 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp
+ * examples/Display/GPS/GPS_exec.cpp
+ * examples/Hello/Sender/Sender_exec.cpp
+ * examples/Swapping/Sender/Sender_exec.cpp
+ * tests/CIAO_ComponentServer/SimpleComponent/client.cpp
+ Updated debug statements
+
+ * examples/Hello/descriptors/DeploymentPlan.cdp
+ Reverted accident checkin
+
+Sat Feb 21 19:53:18 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/ComponentServer/CIAO_Container_Impl.cpp:
+ * ciao/Containers/Session/Session_Container.cpp:
+ Small improvements to debug statements and nil usage
+
+ * DAnCE/TargetManager/descriptors/run_test_TargetManager.pl
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test.pl
+ * DAnCE/tests/CIAO/NodeManager-Deployments/run_test.pl
+ * DAnCE/tests/scripts/BasicSP/basicNodeDaemon.pl
+ * docs/tutorials/Quoter/Simple/descriptors/runNodeDaemons.pl
+ * examples/BasicSP/descriptors/run_test.pl
+ * examples/Display/descriptors/basicNodeDaemon.pl
+ * examples/Display/descriptors/run_NodeDaemons.pl
+ * examples/Display/descriptors/run_test_without_ns.pl
+ * examples/Hello/descriptors/DeploymentPlan.cdp
+ * examples/Hello/descriptors/run_NodeDaemons.pl
+ * examples/Hello/descriptors/run_test.pl
+ * examples/Hello/descriptors/run_test_without_ns.pl
+ * examples/Hello/descriptors_RTCCM/rt_run_test.pl
+ * examples/Null_Component/descriptors/run_test.pl
+ * tests/Bug_2130_Regression/descriptors/run_test.pl
+ Use DANCE_ROOT and dance_node_manager
+
+Fri Feb 20 14:49:18 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ccm/CCM.mpc
+ * ccm/ComponentServer/CCM_ComponentServer.mpc
+ * ciao/ComponentServer/CIAO_ComponentServer.mpc
+ * ciao/Contexts/Context.mpc
+ * ciao/Servants/Servants.mpc
+ * DAnCE/Deployment/DAnCE_Core.mpc
+ * DAnCE/DomainApplication/DomainApplication.mpc
+ * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc
+ * DAnCE/ExecutionManager/ExecutionManager.mpc
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc
+ * DAnCE/RedirectionService/RedirectionService.mpc
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser.mpc
+ * DAnCE/tests/DeploymentPlanTestReferences/DeploymentPlanTestReferences.mpc
+ * DAnCE/tests/DeploymentTest1/DeploymentTest1.mpc
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker.mpc
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor.mpc
+ * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.mpc
+ * examples/BasicSP/BMClosedED/BMClosedED.mpc
+ * examples/BasicSP/BMDevice/BMDevice.mpc
+ * examples/BasicSP/BMDisplay/BMDisplay.mpc
+ * examples/BasicSP/EC/EC.mpc
+ * examples/Hello/Hello_Base/Hello_Base.mpc
+ * examples/Hello/Receiver/Receiver.mpc
+ * examples/Hello/Sender/Sender.mpc
+ * examples/Swapping/Receiver/Receiver.mpc
+ * examples/Swapping/Sender/Sender.mpc
+ * MPC/config/ccm_stub.mpb
+ * MPC/config/ciao_client.mpb
+ * MPC/config/ciao_output.mpb
+ * performance-tests/Benchmark/Multi_Threaded/Multi_Threaded.mpc
+ * performance-tests/Protocols/common/Protocols.mpc
+ * performance-tests/Protocols/Controller/Controller.mpc
+ * performance-tests/Protocols/Receiver/Receiver.mpc
+ * performance-tests/Protocols/Sender/Sender.mpc
+ * tests/Minimum/Receiver/Receiver.mpc
+ * tests/Minimum/Sender/Sender.mpc
+ * tools/Config_Handlers/Package_Handlers/Package_Handlers.mpc
+ * tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc
+ * tools/IDL3_to_XMI/IDL3_TO_XMI.mpc
+ Added a ciao_output which is used by the core CIAO/DAnCE libraries and
+ then only these are installed under ACE_ROOT/lib, all examples/tests
+ just put their libs in the current directory. That fixes the clash
+ of creating the same dll's for different tests that are all placed
+ in ACE_ROOT/lib
+
+Fri Feb 20 12:36:18 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * examples/BasicSP/BasicSP.mpc:
+ * examples/BasicSP/BMClosedED/BMClosedED.mpc:
+ * examples/BasicSP/BMDevice/BMDevice.mpc:
+ * examples/BasicSP/BMDisplay/BMDisplay.mpc:
+ * examples/BasicSP/EC/EC.mpc:
+ Removed 'cidlflags -= --' and 'cidlflags += .... --'.
+ See also Bugzilla #3520
+
+ * examples/Hello/step-by-step.html:
+ Changed CVS in SVN.
+ Hello example is located in $CIAO_ROOT/examples.
+
+Fri Feb 20 11:11:18 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.mpc:
+ Fixed this MPC file
+
+Fri Feb 20 09:53:18 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * MPC/config/taoidl3toidl2defaults.mpb:
+ Updated to get CIAO_ROOT
+
+Thu Feb 19 22:54:14 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * ciao/ComponentServer/CIAO_ComponentInstallation_Impl.h:
+
+ Fuzz fix.
+
+Thu Feb 19 19:21:46 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ciao/ComponentServer/CIAO_ComponentInstallation_Impl.h:
+ * ciao/ComponentServer/CIAO_ComponentInstallation_Impl.cpp:
+ * DAnCE/NodeApplication/ComponentInstallation_Impl.h:
+ * DAnCE/NodeApplication/ComponentInstallation_Impl.cpp:
+
+ Moved these files to CIAO.
+
+Thu Feb 19 15:18:18 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * MPC/config/ccm_stub.mpb
+ * MPC/config/taoidl3toidl2defaults.mpb:
+ Updated to get CIAO_ROOT/ccm
+
+Thu Feb 19 13:13:18 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * MPC/config/ciaoidldefaults.mpb:
+ New base project for ciao projects that use idl. This adds CIAO_ROOT
+ and CIAO_ROOT/ccm to the idl compiler inclues
+
+ * MPC/config/ciaolib_with_idl.mpb:
+ New ciao base project
+
+ * bin/generate_component_mpc.pl
+ * ccm/CCM.mpc
+ * ccm/ComponentServer/CCM_ComponentServer.mpc
+ * ciao/CIAO.mpc
+ * ciao/ComponentServer/CIAO_ComponentServer.mpc
+ * ciao/Containers/CIAO_Servant_Activator.mpc
+ * ciao/Servants/Servants.mpc
+ * DAnCE/Deployment/DAnCE_Core.mpc
+ * DAnCE/Interfaces/Interfaces.mpc
+ * DAnCE/tests/CIAO/Components/SimpleAttribute.mpc
+ * DAnCE/tests/CIAO/Components/SimpleCommon.mpc
+ * DAnCE/tests/CIAO/Components/SimpleConsumer.mpc
+ * DAnCE/tests/CIAO/Components/SimpleEmitter.mpc
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser.mpc
+ * DAnCE/tests/CIAO/Components/SimpleNull.mpc
+ * DAnCE/tests/CIAO/Components/SimpleProvider.mpc
+ * DAnCE/tests/CIAO/Components/SimplePublisher.mpc
+ * DAnCE/tests/CIAO/Components/SimpleUser.mpc
+ * DAnCE/tests/NameServiceTest/NameServiceTest.mpc
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker.mpc
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor.mpc
+ * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.mpc
+ * examples/BasicSP/BasicSP.mpc
+ * examples/BasicSP/BMClosedED/BMClosedED.mpc
+ * examples/BasicSP/BMDevice/BMDevice.mpc
+ * examples/BasicSP/BMDisplay/BMDisplay.mpc
+ * examples/BasicSP/EC/EC.mpc
+ * examples/DevGuideExamples/Messenger/Administrator.mpc
+ * examples/DevGuideExamples/Messenger/Messenger.mpc
+ * examples/DevGuideExamples/Messenger/Receiver.mpc
+ * examples/Display/Display_Base/Display_Base.mpc
+ * examples/Display/GPS/GPS.mpc
+ * examples/Display/NavDisplay/NavDisplay.mpc
+ * examples/Display/RateGen/RateGen.mpc
+ * examples/Hello/Hello_Base/Hello_Base.mpc
+ * examples/Hello/Receiver/Receiver.mpc
+ * examples/Hello/Sender/Sender.mpc
+ * examples/Null_Component/Null_Component.mpc
+ * examples/Null_Component/Null_Interface.mpc
+ * examples/Null_Component/StaticDAnCEApp.mpc
+ * examples/Swapping/Hello_Base/Hello_Base.mpc
+ * examples/Swapping/Receiver/Receiver.mpc
+ * examples/Swapping/Sender/Sender.mpc
+ * performance-tests/Benchmark/Benchmark.mpc
+ * performance-tests/Benchmark/RoundTrip/RoundTrip.mpc
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient.mpc
+ * performance-tests/Protocols/common/Protocols.mpc
+ * performance-tests/Protocols/Receiver/Receiver.mpc
+ * performance-tests/Protocols/Sender/Sender.mpc
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.mpc
+ * tests/CIDL/CodeGen/Basic.mpc
+ * tests/CIDL/CodeGen/CodeGen.mpc
+ * tests/Minimum/Minimum_Base/Minimum_Base.mpc
+ * tests/Minimum/Receiver/Receiver.mpc
+ * tests/Minimum/Sender/Sender.mpc
+ * tools/Config_Handlers/DynAny_Handler/test.mpc
+ Use the new base projects
+
+Thu Feb 19 12:25:18 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/DataType_Handler.cpp:
+ Fixed GCC warning
+
+Thu Feb 19 09:27:18 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * ciao/ComponentServer/CIAO_ComponentServer.mpc:
+ Resolved linking error.
+
+Wed Feb 18 20:52:18 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/RepositoryManager/RepositoryManager.mpc:
+ use the new minizip base project
+
+Wed Feb 18 20:45:18 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Containers/CIAO_Servant_Activator.mpc
+ Set correct -I option
+
+Wed Feb 18 20:26:18 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ccm/ComponentServer/CCM_ComponentServer.mpc
+ Set correct -I option
+
+Wed Feb 18 20:21:18 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/ComponentServer/CIAO_ComponentServer.mpc:
+ Set correct -I option
+
+Wed Feb 18 20:01:18 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ccm/CCM.mpc:
+ Set correct -I option
+
+Wed Feb 18 12:31:18 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * CIAO-INSTALL.html:
+ To build CIAO using Xerces one has to set xerces3=1 or
+ xerces2=1 in default.features.
+
+Wed Feb 18 08:51:18 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * DAnCE/RepositoryManager/Repository_Manager_Module.cpp:
+ * MPC/config/dance_repository_manager.mpb:
+ * MPC/config/dance_repository_manager_base.mpb:
+ Resolved minor fuzz errors.
+
+Wed Feb 18 00:52:18 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Deployment/Deployment_RepositoryManager.idl:
+ * DAnCE/RepositoryManager/DAnCE_RepositoryManager_Module_Export.h:
+ * DAnCE/RepositoryManager/RMadmin.cpp:
+ * DAnCE/RepositoryManager/RepositoryManager.mpc:
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.h:
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp:
+ * DAnCE/RepositoryManager/Repository_Manager_Exec.cpp:
+ * DAnCE/RepositoryManager/Repository_Manager_Module.h:
+ * DAnCE/RepositoryManager/Repository_Manager_Module.cpp:
+ * DAnCE/RepositoryManager/ZIP_Wrapper.h:
+ * DAnCE/RepositoryManager/ZIP_Wrapper.cpp:
+ * MPC/config/dance_repository_manager.mpb:
+ * MPC/config/dance_repository_manager_base.mpb:
+
+ Initial porting work. Still untested, so it will remain
+ disabled for the time being using dummy_label.
+
+Mon Feb 16 12:53:37 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * CIAO-INSTALL.html:
+ Updated because "Boost System" and "Boost Regex" were also
+ needed to compile CIAO with Visual Studio.
+
+Mon Feb 16 09:55:37 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIAO_DAnCE.mwc:
+ Updated because of the refactoring
+
+Fri Feb 13 19:58:37 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Plan_Generator/Plan_Generator.mpc:
+ * MPC/config/dance_plan_generator.mpc:
+
+ Re-enabled the plan generator.
+
+Fri Feb 13 18:20:14 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * bin/ciao_tests.lst:
+
+ Fixed tests.
+
+Fri Feb 13 13:58:38 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * MPC/config/ciao_client.mpb:
+
+ linking error.
+
+Fri Feb 13 13:21:48 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.h:
+
+ Compilation fix.
+
+Fri Feb 13 13:14:27 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Deployment.mwc:
+
+ Removed this file.
+
+Fri Feb 13 01:37:22 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ciao/Version.h:
+
+ Version string was incorrect.
+
+Fri Feb 13 01:30:34 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * MPC/config/ciao_componentserver_stub.mpb:
+ * MPC/config/ciao_session_container.mpb:
+
+ Additional compile fixes.
+
+Fri Feb 13 01:00:01 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/ExecutionManager.mpc:
+ * DAnCE/NodeManager/NodeManager.mpc:
+ * MPC/config/ciao_componentserver_stub.mpb:
+ * MPC/config/dance_node_application.mpb:
+ * MPC/config/dance_node_application_manager.mpb:
+ * MPC/config/dance_node_manager.mpb:
+ * tools/Config_Handlers/Package_Handlers/CAD_Handler.cpp:
+
+ Additional compile fixes.
+
+Thu Feb 12 22:47:28 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Starter/Starter.cpp:
+ * tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.cpp:
+
+ Compile fixes.
+
+Thu Feb 12 19:05:41 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.h:
+
+ Compile fix.
+
+Thu Feb 12 18:37:35 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplication/Domain_Application_Impl.h:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h:
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.h:
+ * DAnCE/NodeApplication/NodeApplication_Impl.h:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h:
+ * DAnCE/NodeManager/NodeManager_Impl.h:
+ * DAnCE/RedirectionService/RedirectionService.h:
+ * DAnCE/tests/RedirectionServiceTest/clt_main.cpp:
+
+ Compile fixes.
+
+Thu Feb 12 18:33:59 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/RedirectionService/NameServiceRedirection.h:
+
+ Compile fixes.
+
+Thu Feb 12 18:31:40 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Logger/Logger_Service.h:
+ * DAnCE/Logger/Logger_Service.cpp:
+ * ciao/Logger/Logger_Service.h:
+ * ciao/Logger/Logger_Service.cpp:
+
+ Compile fixes.
+
+Thu Feb 12 17:48:35 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * examples/DevGuideExamples/Messenger/Receiver.mpc:
+ * tests/Minimum/Receiver/Receiver.mpc:
+
+ Linking fixes.
+
+Thu Feb 12 16:52:56 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Package_Handlers/CAD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/Package_Handlers.mpc:
+
+ Compile fixes.
+
+Thu Feb 12 16:18:49 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Logger/DAnCELoggerFactory.h:
+ * DAnCE/Logger/Logger_Service.h:
+ * DAnCE/tests/ObjectLocatorTest/ObjectLocatorTest.mpc:
+
+ Compile/link fixes.
+
+ * MPC/config/ciao_config_manager.mpb:
+
+ Removed svn:executable property.
+
+ * MPC/config/ciaocidldefaults.mpb:
+
+ Ported in pre-merge fixes.
+
+ * DAnCE/Starter/DAnCELoggerFactory.h:
+
+ Removed this file.
+
+Thu Feb 12 15:52:16 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/RedirectionService/RedirectionService.mpc:
+
+ Linking error.
+
+Thu Feb 12 15:15:11 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/tests/RedirectionServiceTest/RedirectionServiceTest.mpc:
+ * MPC/config/ciao_logger.mpb:
+ * MPC/config/dance_logger.mpb:
+
+ Ordering/linking/build issues.
+
+Thu Feb 12 13:34:33 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser.mpc:
+ * DAnCE/tests/NodeApplicationManager-NodeApplication/NAM_NA.mpc:
+ * DAnCE/tests/RedirectionServiceTest/RedirectionServiceTest.mpc:
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.mpc:
+
+ Fuzz fixes.
+
+ * examples/Display/Display_Base/Display_Base.mpc:
+ * examples/Display/GPS/GPS.mpc:
+ * examples/Display/NavDisplay/NavDisplay.mpc:
+ * examples/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc:
+ * examples/Display/RateGen/RateGen.mpc:
+
+ Disabled this example until it can be ported.
+
+ * DAnCE/tests/NodeApplicationManager-NodeApplication/NodeApplicationManager-NodeApplication.mpc:
+
+ Removed this file.
+
+Thu Feb 12 10:36:44 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp:
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.h:
+ Fixed fuzz errors
+
+Wed Feb 11 20:56:24 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * MPC/config/ciao_client_dnc.mpb:
+ * MPC/config/ciao_domainapplicationmanager_dnc.mpb:
+ * MPC/config/ciao_events_base_dnc.mpb:
+ * MPC/config/ciao_events_dnc.mpb:
+ * MPC/config/ciao_rtevent_dnc.mpb:
+ * MPC/config/ciao_servant_dnc.mpb:
+ * MPC/config/ciao_static_dnc_app.mpb:
+
+ _dnc_ projects are obsolete.
+
+ * tools/Config_Handlers/CIAO_Events:
+ * tools/Config_Handlers/CIAO_Events/CIAOEvents.hpp:
+ * tools/Config_Handlers/CIAO_Events/CIAOEvents.cpp:
+ * tools/Config_Handlers/CIAO_Events/CIAOEvents_Handler.h:
+ * tools/Config_Handlers/CIAO_Events/CIAOEvents_Handler.cpp:
+ * tools/Config_Handlers/CIAO_Events/CIAO_Events_Handlers.mpc:
+ * tools/Config_Handlers/CIAO_Events/CIAO_Events_Handlers_Export.h:
+ * tools/Config_Handlers/CIAO_Events/test.cpp:
+
+ These handlers are obsolete, and have been removed along with
+ ciaosvcs. This infrastructure will hopefully be replaced soon
+ with the connector framework.
+
+Wed Feb 11 20:01:10 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * docs/Porting_Hints.txt:
+ * NEWS:
+
+ Porting hints for the new DAnCE.
+
+Wed Feb 11 19:33:59 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ChangeLog:
+ * DAnCE/DomainApplication/Domain_Application_Impl.h:
+ * DAnCE/Logger/File_Logger_Backend.h:
+ * DAnCE/Logger/File_Logger_Backend.cpp:
+ * DAnCE/Logger/Log_Macros.h:
+ * DAnCE/Logger/Logger_Service.h:
+ * DAnCE/Logger/Logger_Service.cpp:
+ * DAnCE/NodeApplication/Name_Utilities.h:
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+ * DAnCE/RedirectionService/RedirectionService.h:
+ * DAnCE/Starter/DAnCELoggerFactory.h:
+ * DAnCE/Starter/Starter.h:
+ * DAnCE/Starter/Starter.mpc:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/em_launcher.mpc:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/simple_em_launcher.cpp:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/nm_launcher.mpc:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/simple_nm_launcher.cpp:
+ * DAnCE/tests/DeploymentPlanDump/DeploymentPlanDump.mpc:
+ * DAnCE/tests/DeploymentPlanDump/test.cpp:
+ * DAnCE/tests/DeploymentPlanTestReferences/DeploymentPlanTestReferences.mpc:
+ * DAnCE/tests/DeploymentPlanTestReferences/test.cpp:
+ * DAnCE/tests/DeploymentTest1/DeploymentTest1.mpc:
+ * DAnCE/tests/DeploymentTest1/test.cpp:
+ * DAnCE/tests/MocksTest/MockObjectHome.h:
+ * DAnCE/tests/MocksTest/MockObjectHome.cpp:
+ * DAnCE/tests/MocksTest/MocksTest.cpp:
+ * DAnCE/tests/NameServiceTest/DummyImpl.h:
+ * DAnCE/tests/NameServiceTest/DummyImpl.cpp:
+ * DAnCE/tests/NameServiceTest/RegistrationPath.h:
+ * DAnCE/tests/NameServiceTest/clt_main.cpp:
+ * DAnCE/tests/NameServiceTest/srv_main.cpp:
+ * DAnCE/tests/NodeApplicationManager-NodeApplication/NodeApplicationManager-NodeApplication.mpc:
+ * DAnCE/tests/NodeApplicationManager-NodeApplication/test.cpp:
+ * DAnCE/tests/NodeManager-NodeApplicationManager/NodeManager-NodeApplicationManager.mpc:
+ * DAnCE/tests/NodeManager-NodeApplicationManager/test.cpp:
+ * DAnCE/tests/ObjectLocatorTest/DummyImpl.h:
+ * DAnCE/tests/ObjectLocatorTest/DummyImpl.cpp:
+ * DAnCE/tests/ObjectLocatorTest/ObjectLocatorTest.mpc:
+ * DAnCE/tests/ObjectLocatorTest/RegistrationPath.h:
+ * DAnCE/tests/ObjectLocatorTest/clt_main.cpp:
+ * DAnCE/tests/ObjectLocatorTest/srv_main.cpp:
+ * DAnCE/tests/RedirectionServiceTest/DummyImpl.h:
+ * DAnCE/tests/RedirectionServiceTest/DummyImpl.cpp:
+ * DAnCE/tests/RedirectionServiceTest/RedirectionServiceTest.mpc:
+ * DAnCE/tests/RedirectionServiceTest/RegistrationPath.h:
+ * DAnCE/tests/RedirectionServiceTest/clt_main.cpp:
+ * DAnCE/tests/RedirectionServiceTest/srv_main.cpp:
+ * MPC/config/ciao_logger.mpb:
+ * MPC/config/dance_logger.mpb:
+ * ciao/CIAO.mpc:
+ * ciao/ComponentServer/CIAO_ComponentServer.h:
+ * ciao/ComponentServer/CIAO_ComponentServer.cpp:
+ * ciao/ComponentServer/CIAO_ComponentServer.mpc:
+ * ciao/ComponentServer/CIAO_ComponentServer_Impl.h:
+ * ciao/ComponentServer/CIAO_ComponentServer_Impl.cpp:
+ * ciao/ComponentServer/CIAO_Container_Impl.h:
+ * ciao/ComponentServer/CIAO_Container_Impl.cpp:
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.h:
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp:
+ * ciao/ComponentServer/Configurator_Factory.h:
+ * ciao/ComponentServer/Configurator_Factory.cpp:
+ * ciao/ComponentServer/Configurators/Config_Manager.cpp:
+ * ciao/ComponentServer/Configurators/Configurators.mpc:
+ * ciao/ComponentServer/Configurators/NoOp/NoOp_Configurator.mpc:
+ * ciao/Containers/Session/Session_Container.cpp:
+ * ciao/Logger/CIAOLoggerFactory.h:
+ * ciao/Logger/File_Logger_Backend.h:
+ * ciao/Logger/File_Logger_Backend.cpp:
+ * ciao/Logger/Log_Macros.h:
+ * ciao/Logger/Logger_Service.h:
+ * ciao/Logger/Logger_Service.cpp:
+ * ciao/Servants/Servants.mpc:
+ * examples/BasicSP/BMDevice/BMDevice_exec.cpp:
+ * examples/DevGuideExamples/Messenger/Administrator_exec_i.cpp:
+ * examples/DevGuideExamples/Messenger/Messenger_exec_i.cpp:
+ * examples/DevGuideExamples/Messenger/Receiver_exec_i.cpp:
+ * tests/CIAO_ComponentServer/Activator/Activator.mpc:
+ * tests/CIAO_ComponentServer/Basic/Basic.mpc:
+ * tools/XML/XML_Schema_Resolver.cpp:
+
+ Fuzz errors.
+
+Wed Feb 11 19:21:09 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * NEWS:
+
+ Updated news file.
+
+Wed Feb 11 19:05:10 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/XML/XML_Helper.tpp:
+
+ Ported writing code to xerces 3.
+
+Wed Feb 11 16:19:40 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CIAO_TAO.mwc:
+
+ Added ccm to this workspace.
+
+Wed Feb 11 16:01:21 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CIAO_TAO.mwc:
+ * CIAO_TAO_DAnCE.mwc:
+
+ Removed ciaosvcs.
+
+Wed Feb 11 15:57:38 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * MPC/config/ciaocidldefaults.mpb:
+
+ Fixed build order.
+
+ * MPC/config/cidlc.mpb:
+
+ Removed boost_system from the base projects.
+
+ * tools/Config_Handlers/DynAny_Handler/DataType_Handler.cpp:
+ * tools/XML/XML_Helper.tpp:
+
+ Warning fixes.
+
+Wed Feb 11 14:46:15 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CCF:
+ * CCF/CCF/IDL2/Parser.hpp:
+ * CCF/Documentation/Build.html:
+ * CIAO-INSTALL.html:
+ * CIAO.mwc:
+ * CIAO_DAnCE.mwc:
+ * CIAO_TAO.mwc:
+ * CIAO_TAO_DAnCE.mwc:
+ * CIDLC:
+ * CIDLC/ExecImplHeaderGenerator.cpp:
+ * CIDLC/ExecImplSourceGenerator.cpp:
+ * CIDLC/ExecutorMappingGenerator.cpp:
+ * CIDLC/Literals.cpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+ * COPYING:
+ * ChangeLog:
+ * DAnCE/Deployment:
+ * DAnCE/Deployment.mwc:
+ * DAnCE/Deployment/DAnCE_Core.mpc:
+ * DAnCE/Deployment/DAnCE_Loader.h:
+ * DAnCE/Deployment/DAnCE_Properties.idl:
+ * DAnCE/Deployment/Deployment.idl:
+ * DAnCE/Deployment/Deployment_Application.idl:
+ * DAnCE/Deployment/Deployment_ApplicationManager.idl:
+ * DAnCE/Deployment/Deployment_Base.idl:
+ * DAnCE/Deployment/Deployment_Connection.idl:
+ * DAnCE/Deployment/Deployment_Core.idl:
+ * DAnCE/Deployment/Deployment_Data.idl:
+ * DAnCE/Deployment/Deployment_DeploymentPlan.idl:
+ * DAnCE/Deployment/Deployment_DomainApplication.idl:
+ * DAnCE/Deployment/Deployment_DomainApplicationManager.idl:
+ * DAnCE/Deployment/Deployment_ExecutionManager.idl:
+ * DAnCE/Deployment/Deployment_NodeApplication.idl:
+ * DAnCE/Deployment/Deployment_NodeApplicationManager.idl:
+ * DAnCE/Deployment/Deployment_NodeManager.idl:
+ * DAnCE/Deployment/Deployment_Packaging_Data.idl:
+ * DAnCE/Deployment/Deployment_PlanError.idl:
+ * DAnCE/Deployment/Deployment_RepositoryManager.idl:
+ * DAnCE/Deployment/Deployment_ResourceCommitmentManager.idl:
+ * DAnCE/Deployment/Deployment_TargetData.idl:
+ * DAnCE/Deployment/Deployment_TargetManager.idl:
+ * DAnCE/Deployment/Deployment_common.h:
+ * DAnCE/Deployment/Deployment_stub_export.h:
+ * DAnCE/Deployment/Deployment_svnt_export.h:
+ * DAnCE/Deployment/Module_Main.h:
+ * DAnCE/DomainApplication:
+ * DAnCE/DomainApplication/DomainApplication.mpc:
+ * DAnCE/DomainApplication/Domain_Application_Export.h:
+ * DAnCE/DomainApplication/Domain_Application_Impl.h:
+ * DAnCE/DomainApplication/Domain_Application_Impl.cpp:
+ * DAnCE/DomainApplicationManager:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Export.h:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ * DAnCE/DomainApplicationManager/Node_Locator.h:
+ * DAnCE/DomainApplicationManager/Node_Locator.cpp:
+ * DAnCE/ExecutionManager:
+ * DAnCE/ExecutionManager/DAnCE_ExecutionManager_Module_Export.h:
+ * DAnCE/ExecutionManager/ExecutionManager.mpc:
+ * DAnCE/ExecutionManager/ExecutionManager_Export.h:
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.h:
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.cpp:
+ * DAnCE/ExecutionManager/ExecutionManager_Module.h:
+ * DAnCE/ExecutionManager/ExecutionManager_Module.cpp:
+ * DAnCE/ExecutionManager/Execution_Manager_Exec.cpp:
+ * DAnCE/Interfaces:
+ * DAnCE/Interfaces/ExecutionManagerDaemon.idl:
+ * DAnCE/Interfaces/ExecutionManager_stub_export.h:
+ * DAnCE/Interfaces/Interfaces.mpc:
+ * DAnCE/Interfaces/NodeManagerDaemon.idl:
+ * DAnCE/Interfaces/NodeManager_stub_export.h:
+ * DAnCE/Interfaces/NodeManager_svnt_export.h:
+ * DAnCE/Interfaces/README:
+ * DAnCE/Logger:
+ * DAnCE/Logger/DAnCE_Logger_Export.h:
+ * DAnCE/Logger/File_Logger_Backend.h:
+ * DAnCE/Logger/File_Logger_Backend.cpp:
+ * DAnCE/Logger/Log_Macros.h:
+ * DAnCE/Logger/Logger.mpc:
+ * DAnCE/Logger/Logger_Service.h:
+ * DAnCE/Logger/Logger_Service.cpp:
+ * DAnCE/NodeApplication:
+ * DAnCE/NodeApplication/ComponentAttributesSetter.h:
+ * DAnCE/NodeApplication/ComponentAttributesSetter.cpp:
+ * DAnCE/NodeApplication/ComponentInstallation_Impl.h:
+ * DAnCE/NodeApplication/ComponentInstallation_Impl.cpp:
+ * DAnCE/NodeApplication/Name_Utilities.h:
+ * DAnCE/NodeApplication/Name_Utilities.cpp:
+ * DAnCE/NodeApplication/NodeApplication.mpc:
+ * DAnCE/NodeApplication/NodeApplication_Export.h:
+ * DAnCE/NodeApplication/NodeApplication_Impl.h:
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * DAnCE/NodeApplication/ServerActivator_Impl.h:
+ * DAnCE/NodeApplication/ServerActivator_Impl.cpp:
+ * DAnCE/NodeApplicationManager:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Export.h:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ * DAnCE/NodeManager:
+ * DAnCE/NodeManager/DAnCE_NodeManager_Module_Export.h:
+ * DAnCE/NodeManager/NodeManager.mpc:
+ * DAnCE/NodeManager/NodeManager_Export.h:
+ * DAnCE/NodeManager/NodeManager_Impl.h:
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+ * DAnCE/NodeManager/Node_Manager_Exec.cpp:
+ * DAnCE/NodeManager/Node_Manager_Module.h:
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+ * DAnCE/NodeManager/README:
+ * DAnCE/Plan_Generator/Plan_Generator.mpc:
+ * DAnCE/Plan_Launcher:
+ * DAnCE/Plan_Launcher/Plan_Launcher.h:
+ * DAnCE/Plan_Launcher/Plan_Launcher.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.h:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl_Export.h:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Module.h:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Module.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Module_Export.h:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Exec.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.h:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl_Export.h:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Module.h:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Module.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Module_Export.h:
+ * DAnCE/Plan_Launcher/launcher.cpp:
+ * DAnCE/RedirectionService:
+ * DAnCE/RedirectionService/CCMObjectLocator.h:
+ * DAnCE/RedirectionService/CCMObjectLocator.cpp:
+ * DAnCE/RedirectionService/NameServiceRedirection.h:
+ * DAnCE/RedirectionService/NameServiceRedirection.cpp:
+ * DAnCE/RedirectionService/RedirectionService.h:
+ * DAnCE/RedirectionService/RedirectionService.cpp:
+ * DAnCE/RedirectionService/RedirectionService.mpc:
+ * DAnCE/RedirectionService/RedirectionService_Export.h:
+ * DAnCE/RepositoryManager/RepositoryManager.mpc:
+ * DAnCE/Starter:
+ * DAnCE/Starter/DAnCELoggerFactory.h:
+ * DAnCE/Starter/Starter.h:
+ * DAnCE/Starter/Starter.cpp:
+ * DAnCE/Starter/Starter.mpc:
+ * DAnCE/StaticConfigurator/StaticDAnCEParser.mpc:
+ * DAnCE/TargetManager/TM_Client.mpc:
+ * DAnCE/TargetManager/TargetManager.mpc:
+ * DAnCE/Utils:
+ * DAnCE/Utils/DAnCE_Utils.mpc:
+ * DAnCE/Utils/DAnCE_Utils_Export.h:
+ * DAnCE/Utils/Plan_Handler.h:
+ * DAnCE/Utils/Plan_Handler.cpp:
+ * DAnCE/bin:
+ * DAnCE/bin/.empty:
+ * DAnCE/bin/PythonDAnCE:
+ * DAnCE/bin/PythonDAnCE/__init__.py:
+ * DAnCE/bin/PythonDAnCE/generator:
+ * DAnCE/bin/PythonDAnCE/generator/__init__.py:
+ * DAnCE/bin/PythonDAnCE/generator/_path.py:
+ * DAnCE/bin/PythonDAnCE/generator/artifact.py:
+ * DAnCE/bin/PythonDAnCE/generator/comp_impl.py:
+ * DAnCE/bin/PythonDAnCE/generator/comp_inst.py:
+ * DAnCE/bin/PythonDAnCE/generator/footer.py:
+ * DAnCE/bin/PythonDAnCE/generator/header.py:
+ * DAnCE/bin/PythonDAnCE/generator/home_impl.py:
+ * DAnCE/bin/PythonDAnCE/generator/home_inst.py:
+ * DAnCE/bin/PythonDAnCE/generator/homed_comp_impl.py:
+ * DAnCE/bin/PythonDAnCE/generator/homed_comp_inst.py:
+ * DAnCE/bin/PythonDAnCE/generator/templet.py:
+ * DAnCE/bin/generate_plan.py:
+ * DAnCE/lib:
+ * DAnCE/lib/.empty:
+ * DAnCE/tests:
+ * DAnCE/tests/CIAO:
+ * DAnCE/tests/CIAO/Components:
+ * DAnCE/tests/CIAO/Components/SimpleAttribute.cidl:
+ * DAnCE/tests/CIAO/Components/SimpleAttribute.idl:
+ * DAnCE/tests/CIAO/Components/SimpleAttribute.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleAttribute_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleAttribute_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleAttribute_exec_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleAttribute_stub_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleAttribute_svnt_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleCommon.idl:
+ * DAnCE/tests/CIAO/Components/SimpleCommon.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleCommon_stub_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleCommon_svnt_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer.cidl:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer.idl:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer_exec_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer_stub_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer_svnt_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter.cidl:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter.idl:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter_exec_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter_stub_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter_svnt_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser.cidl:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser.idl:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser_stub_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser_svnt_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleNull.cidl:
+ * DAnCE/tests/CIAO/Components/SimpleNull.idl:
+ * DAnCE/tests/CIAO/Components/SimpleNull.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleNull_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleNull_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleNull_exec_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleNull_stub_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleNull_svnt_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleProvider.cidl:
+ * DAnCE/tests/CIAO/Components/SimpleProvider.idl:
+ * DAnCE/tests/CIAO/Components/SimpleProvider.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleProvider_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleProvider_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleProvider_exec_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleProvider_stub_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleProvider_svnt_export.h:
+ * DAnCE/tests/CIAO/Components/SimplePublisher.cidl:
+ * DAnCE/tests/CIAO/Components/SimplePublisher.idl:
+ * DAnCE/tests/CIAO/Components/SimplePublisher.mpc:
+ * DAnCE/tests/CIAO/Components/SimplePublisher_exec.h:
+ * DAnCE/tests/CIAO/Components/SimplePublisher_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimplePublisher_exec_export.h:
+ * DAnCE/tests/CIAO/Components/SimplePublisher_stub_export.h:
+ * DAnCE/tests/CIAO/Components/SimplePublisher_svnt_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleUser.cidl:
+ * DAnCE/tests/CIAO/Components/SimpleUser.idl:
+ * DAnCE/tests/CIAO/Components/SimpleUser.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleUser_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleUser_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleUser_exec_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleUser_stub_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleUser_svnt_export.h:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/EmitsConnectionExplicitHome.cdp:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/EmitsConnectionExplicitHome_NS.cdp:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome.cdp:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS.cdp:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/PublishConnectionExplicitHome.cdp:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/PublishConnectionExplicitHome_NS.cdp:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleComponentExplicitHome.cdp:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome.cdp:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS.cdp:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/em_launcher.mpc:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test.pl:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/simple_em_launcher.cpp:
+ * DAnCE/tests/CIAO/NodeManager-Deployments:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/EmitsConnectionExplicitHome.cdp:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/MultiplexConnectionExplicitHome.cdp:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/PublishConnectionExplicitHome.cdp:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/SimpleAttributeExplicitHome.cdp:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/SimpleComponentExplicitHome.cdp:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/SimpleComponentUnhomed.cdp:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/SimpleHome.cdp:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/SimplexConnectionExplicitHome.cdp:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/nm_launcher.mpc:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/run_test.pl:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/simple_nm_launcher.cpp:
+ * DAnCE/tests/DeploymentPlanDump:
+ * DAnCE/tests/DeploymentPlanDump/CcmDance2-host1.cdp:
+ * DAnCE/tests/DeploymentPlanDump/CcmDance2-host2.cdp:
+ * DAnCE/tests/DeploymentPlanDump/CcmDance2.cdp:
+ * DAnCE/tests/DeploymentPlanDump/CcmDance4-host1.cdp:
+ * DAnCE/tests/DeploymentPlanDump/CcmDance4-host2.cdp:
+ * DAnCE/tests/DeploymentPlanDump/DeploymentPlanDump.mpc:
+ * DAnCE/tests/DeploymentPlanDump/NewCcmDance1.cdp:
+ * DAnCE/tests/DeploymentPlanDump/test.cpp:
+ * DAnCE/tests/DeploymentPlanTestReferences:
+ * DAnCE/tests/DeploymentPlanTestReferences/DeploymentPlanTestReferences.mpc:
+ * DAnCE/tests/DeploymentPlanTestReferences/test.cpp:
+ * DAnCE/tests/DeploymentTest1:
+ * DAnCE/tests/DeploymentTest1/DeploymentTest1.mpc:
+ * DAnCE/tests/DeploymentTest1/test.cpp:
+ * DAnCE/tests/MocksTest:
+ * DAnCE/tests/MocksTest/MockObjectHome.h:
+ * DAnCE/tests/MocksTest/MockObjectHome.cpp:
+ * DAnCE/tests/MocksTest/MockTest.cdp:
+ * DAnCE/tests/MocksTest/MockTest.mpc:
+ * DAnCE/tests/MocksTest/MocksTest.cpp:
+ * DAnCE/tests/MocksTest/MocksTest_Export.h:
+ * DAnCE/tests/MocksTest/plCommand.In:
+ * DAnCE/tests/MocksTest/run_test.pl:
+ * DAnCE/tests/NameServiceTest:
+ * DAnCE/tests/NameServiceTest/Dummy.idl:
+ * DAnCE/tests/NameServiceTest/DummyImpl.h:
+ * DAnCE/tests/NameServiceTest/DummyImpl.cpp:
+ * DAnCE/tests/NameServiceTest/NameServiceTest.mpc:
+ * DAnCE/tests/NameServiceTest/RegistrationPath.h:
+ * DAnCE/tests/NameServiceTest/clt_main.cpp:
+ * DAnCE/tests/NameServiceTest/run_test.pl:
+ * DAnCE/tests/NameServiceTest/srv_main.cpp:
+ * DAnCE/tests/NodeApplicationManager-NodeApplication:
+ * DAnCE/tests/NodeApplicationManager-NodeApplication/NodeApplicationManager-NodeApplication.mpc:
+ * DAnCE/tests/NodeApplicationManager-NodeApplication/test.cpp:
+ * DAnCE/tests/NodeManager-NodeApplicationManager:
+ * DAnCE/tests/NodeManager-NodeApplicationManager/NodeManager-NodeApplicationManager.mpc:
+ * DAnCE/tests/NodeManager-NodeApplicationManager/test.cpp:
+ * DAnCE/tests/ObjectLocatorTest:
+ * DAnCE/tests/ObjectLocatorTest/Dummy.idl:
+ * DAnCE/tests/ObjectLocatorTest/DummyImpl.h:
+ * DAnCE/tests/ObjectLocatorTest/DummyImpl.cpp:
+ * DAnCE/tests/ObjectLocatorTest/ObjectLocatorTest.mpc:
+ * DAnCE/tests/ObjectLocatorTest/RegistrationPath.h:
+ * DAnCE/tests/ObjectLocatorTest/clt_main.cpp:
+ * DAnCE/tests/ObjectLocatorTest/srv_main.cpp:
+ * DAnCE/tests/RedirectionServiceTest:
+ * DAnCE/tests/RedirectionServiceTest/Dummy.idl:
+ * DAnCE/tests/RedirectionServiceTest/DummyImpl.h:
+ * DAnCE/tests/RedirectionServiceTest/DummyImpl.cpp:
+ * DAnCE/tests/RedirectionServiceTest/RedirectionServiceTest.mpc:
+ * DAnCE/tests/RedirectionServiceTest/RegistrationPath.h:
+ * DAnCE/tests/RedirectionServiceTest/clt_main.cpp:
+ * DAnCE/tests/RedirectionServiceTest/srv_main.cpp:
+ * DAnCE/tests/scripts:
+ * DAnCE/tests/scripts/BasicSP:
+ * DAnCE/tests/scripts/BasicSP/basicNodeDaemon.pl:
+ * DAnCE/tests/scripts/BasicSP/basicsp.dat:
+ * MPC:
+ * MPC/config/ccm.mpb:
+ * MPC/config/ccm_componentserver_stub.mpb:
+ * MPC/config/ccm_componentserver_svnt.mpb:
+ * MPC/config/ccm_configvalue.mpb:
+ * MPC/config/ccm_cookie.mpb:
+ * MPC/config/ccm_executor.mpb:
+ * MPC/config/ccm_stub.mpb:
+ * MPC/config/ccm_svnt.mpb:
+ * MPC/config/ciao.mpb:
+ * MPC/config/ciao_client.mpb:
+ * MPC/config/ciao_client_dnc.mpb:
+ * MPC/config/ciao_componentserver_configurator.mpb:
+ * MPC/config/ciao_componentserver_stub.mpb:
+ * MPC/config/ciao_componentserver_svnt.mpb:
+ * MPC/config/ciao_config_handlers.mpb:
+ * MPC/config/ciao_config_handlers_base.mpb:
+ * MPC/config/ciao_config_manager.mpb:
+ * MPC/config/ciao_container_base.mpb:
+ * MPC/config/ciao_context_impl.mpb:
+ * MPC/config/ciao_cs_client.mpb:
+ * MPC/config/ciao_domainapplicationmanager_dnc.mpb:
+ * MPC/config/ciao_events_base_dnc.mpb:
+ * MPC/config/ciao_events_dnc.mpb:
+ * MPC/config/ciao_exe.mpb:
+ * MPC/config/ciao_executionmanager_stub.mpb:
+ * MPC/config/ciao_executor.mpb:
+ * MPC/config/ciao_lib.mpb:
+ * MPC/config/ciao_logger.mpb:
+ * MPC/config/ciao_nodeapplication.mpb:
+ * MPC/config/ciao_nodemanager_stub.mpb:
+ * MPC/config/ciao_noop_configurator.mpb:
+ * MPC/config/ciao_port_activator_stub.mpb:
+ * MPC/config/ciao_servant.mpb:
+ * MPC/config/ciao_servant_activator.mpb:
+ * MPC/config/ciao_servant_dnc.mpb:
+ * MPC/config/ciao_server.mpb:
+ * MPC/config/ciao_session_container.mpb:
+ * MPC/config/ciao_targetmanager_stub.mpb:
+ * MPC/config/ciao_targetmanager_svnt.mpb:
+ * MPC/config/ciao_vcwarnings.mpb:
+ * MPC/config/ciaocidldefaults.mpb:
+ * MPC/config/cidlc.mpb:
+ * MPC/config/dance.mpb:
+ * MPC/config/dance_cdmw_idl.mpb:
+ * MPC/config/dance_component_server.mpb:
+ * MPC/config/dance_component_server_svnt.mpb:
+ * MPC/config/dance_deployment_stub.mpb:
+ * MPC/config/dance_deployment_svnt.mpb:
+ * MPC/config/dance_domain_application.mpb:
+ * MPC/config/dance_domain_application_manager.mpb:
+ * MPC/config/dance_exe.mpb:
+ * MPC/config/dance_executionmanager_stub.mpb:
+ * MPC/config/dance_extension_stub.mpb:
+ * MPC/config/dance_lib.mpb:
+ * MPC/config/dance_logger.mpb:
+ * MPC/config/dance_mocks.mpb:
+ * MPC/config/dance_node_application.mpb:
+ * MPC/config/dance_node_application_manager.mpb:
+ * MPC/config/dance_node_manager.mpb:
+ * MPC/config/dance_nodemanager_stub.mpb:
+ * MPC/config/dance_nodemanager_svnt.mpb:
+ * MPC/config/dance_redirection_service.mpb:
+ * MPC/config/dance_utils.mpb:
+ * NEWS:
+ * bin:
+ * bin/ciao_tests.lst:
+ * bin/generate_component_mpc.pl:
+ * ccm:
+ * ciao:
+ * ciao/CIAO.mpc:
+ * ciao/CIAO_FailureReasons.idl:
+ * ciao/CIAO_common.h:
+ * ciao/Client_init.h:
+ * ciao/Client_init.cpp:
+ * ciao/ComponentServer:
+ * ciao/ComponentServer/CIAO_CS_Client.idl:
+ * ciao/ComponentServer/CIAO_CS_Client_svnt_export.h:
+ * ciao/ComponentServer/CIAO_ComponentServer.h:
+ * ciao/ComponentServer/CIAO_ComponentServer.cpp:
+ * ciao/ComponentServer/CIAO_ComponentServer.idl:
+ * ciao/ComponentServer/CIAO_ComponentServer.mpc:
+ * ciao/ComponentServer/CIAO_ComponentServer_Impl.h:
+ * ciao/ComponentServer/CIAO_ComponentServer_Impl.cpp:
+ * ciao/ComponentServer/CIAO_ComponentServer_stub_export.h:
+ * ciao/ComponentServer/CIAO_ComponentServer_svnt_export.h:
+ * ciao/ComponentServer/CIAO_Container_Impl.h:
+ * ciao/ComponentServer/CIAO_Container_Impl.cpp:
+ * ciao/ComponentServer/CIAO_Properties.idl:
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.h:
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp:
+ * ciao/ComponentServer/CIAO_ServerResources.idl:
+ * ciao/ComponentServer/Configurator_Factory.h:
+ * ciao/ComponentServer/Configurator_Factory.cpp:
+ * ciao/ComponentServer/Configurators:
+ * ciao/ComponentServer/Configurators/Basic_Config_Manager.h:
+ * ciao/ComponentServer/Configurators/Basic_Config_Manager.inl:
+ * ciao/ComponentServer/Configurators/Basic_Config_Manager.cpp:
+ * ciao/ComponentServer/Configurators/Basic_Config_Manager_export.h:
+ * ciao/ComponentServer/Configurators/Basic_Configurator_export.h:
+ * ciao/ComponentServer/Configurators/ComponentServer_Configurator_export.h:
+ * ciao/ComponentServer/Configurators/Config_Manager.h:
+ * ciao/ComponentServer/Configurators/Config_Manager.cpp:
+ * ciao/ComponentServer/Configurators/Configurators.mpc:
+ * ciao/ComponentServer/Configurators/NA_Configurator_Export.h:
+ * ciao/ComponentServer/Configurators/NoOp:
+ * ciao/ComponentServer/Configurators/NoOp/NoOp_Configurator.h:
+ * ciao/ComponentServer/Configurators/NoOp/NoOp_Configurator.cpp:
+ * ciao/ComponentServer/Configurators/NoOp/NoOp_Configurator.mpc:
+ * ciao/ComponentServer/Configurators/NoOp/NoOp_Configurator_export.h:
+ * ciao/ComponentServer/Configurators/RT:
+ * ciao/ComponentServer/Configurators/RT/RTConfig_Manager.h:
+ * ciao/ComponentServer/Configurators/RT/RTConfig_Manager.inl:
+ * ciao/ComponentServer/Configurators/RT/RTConfig_Manager.cpp:
+ * ciao/ComponentServer/Configurators/RT/RTNA_Configurator_Export.h:
+ * ciao/ComponentServer/Configurators/RTNodeApp_Configurator.h:
+ * ciao/ComponentServer/Configurators/RTNodeApp_Configurator.cpp:
+ * ciao/ComponentServer/Configurators/Server_Configurator.h:
+ * ciao/ComponentServer/Configurators/Server_Configurator.cpp:
+ * ciao/Containers:
+ * ciao/Containers/CIAO_Servant_Activator.idl:
+ * ciao/Containers/CIAO_Servant_Activator.mpc:
+ * ciao/Containers/CIAO_Servant_Activator_export.h:
+ * ciao/Containers/Container_Base.h:
+ * ciao/Containers/Container_Base.idl:
+ * ciao/Containers/Container_Base.inl:
+ * ciao/Containers/Container_Base.cpp:
+ * ciao/Containers/Container_Base_export.h:
+ * ciao/Containers/Containers.mpc:
+ * ciao/Containers/Servant_Activator.h:
+ * ciao/Containers/Servant_Activator.cpp:
+ * ciao/Containers/Session:
+ * ciao/Containers/Session/Session_Container.h:
+ * ciao/Containers/Session/Session_Container.idl:
+ * ciao/Containers/Session/Session_Container.inl:
+ * ciao/Containers/Session/Session_Container.cpp:
+ * ciao/Containers/Session/Session_Container.mpc:
+ * ciao/Containers/Session/Session_Container_export.h:
+ * ciao/Containers/Swapping:
+ * ciao/Containers/Swapping/Dynamic_Component_Activator.h:
+ * ciao/Containers/Swapping/Dynamic_Component_Activator.inl:
+ * ciao/Containers/Swapping/Dynamic_Component_Activator.cpp:
+ * ciao/Containers/Swapping/Swapping_Container.h:
+ * ciao/Containers/Swapping/Swapping_Container.inl:
+ * ciao/Containers/Swapping/Swapping_Container.cpp:
+ * ciao/Containers/Swapping/Swapping_Container.mpc:
+ * ciao/Containers/Swapping/Swapping_Container_export.h:
+ * ciao/Contexts:
+ * ciao/Contexts/Context.mpc:
+ * ciao/Contexts/Context_Impl_Base.h:
+ * ciao/Contexts/Context_Impl_Base.inl:
+ * ciao/Contexts/Context_Impl_Base.cpp:
+ * ciao/Contexts/Context_Impl_T.h:
+ * ciao/Contexts/Context_Impl_T.cpp:
+ * ciao/Contexts/Context_Impl_export.h:
+ * ciao/Contexts/Swapping:
+ * ciao/Contexts/Swapping/CIAO_UpgradeableContext.idl:
+ * ciao/Contexts/Swapping/Upgradeable_Context_Impl_T.h:
+ * ciao/Contexts/Swapping/Upgradeable_Context_Impl_T.cpp:
+ * ciao/Logger:
+ * ciao/Logger/CIAOLoggerFactory.h:
+ * ciao/Logger/CIAO_Logger_Export.h:
+ * ciao/Logger/File_Logger_Backend.h:
+ * ciao/Logger/File_Logger_Backend.cpp:
+ * ciao/Logger/Log_Macros.h:
+ * ciao/Logger/Logger.mpc:
+ * ciao/Logger/Logger_Service.h:
+ * ciao/Logger/Logger_Service.cpp:
+ * ciao/Servants:
+ * ciao/Servants/CIAO_Port_Activator.idl:
+ * ciao/Servants/CIAO_Port_Activator_export.h:
+ * ciao/Servants/CIAO_Servant_Impl_export.h:
+ * ciao/Servants/Home_Servant_Impl_Base.h:
+ * ciao/Servants/Home_Servant_Impl_Base.cpp:
+ * ciao/Servants/Home_Servant_Impl_T.h:
+ * ciao/Servants/Home_Servant_Impl_T.cpp:
+ * ciao/Servants/Port_Activator.h:
+ * ciao/Servants/Port_Activator.inl:
+ * ciao/Servants/Port_Activator.cpp:
+ * ciao/Servants/Port_Activator_T.h:
+ * ciao/Servants/Port_Activator_T.cpp:
+ * ciao/Servants/Servant_Impl_Base.h:
+ * ciao/Servants/Servant_Impl_Base.cpp:
+ * ciao/Servants/Servant_Impl_T.h:
+ * ciao/Servants/Servant_Impl_T.cpp:
+ * ciao/Servants/Servant_Impl_Utils_T.cpp:
+ * ciao/Servants/Servants.mpc:
+ * ciao/Servants/StandardConfigurator_Impl.h:
+ * ciao/Servants/StandardConfigurator_Impl.cpp:
+ * ciao/Servants/Swapping:
+ * ciao/Servants/Swapping/CIAO_SwapExec.idl:
+ * ciao/Servants/Swapping/CIAO_Swapping_Servant_export.h:
+ * ciao/Servants/Swapping/Dynamic_Component_Servant_Base.h:
+ * ciao/Servants/Swapping/Dynamic_Component_Servant_Base.cpp:
+ * ciao/Servants/Swapping/Dynamic_Component_Servant_T.h:
+ * ciao/Servants/Swapping/Dynamic_Component_Servant_T.cpp:
+ * ciao/Servants/Swapping/Swapping_Servant_Home_Impl_Base.h:
+ * ciao/Servants/Swapping/Swapping_Servant_Home_Impl_Base.cpp:
+ * ciao/Servants/Swapping/Swapping_Servant_Home_Impl_T.h:
+ * ciao/Servants/Swapping/Swapping_Servant_Home_Impl_T.cpp:
+ * ciao/Servants/Swapping/Swapping_Servants.mpc:
+ * ciao/Server_init.h:
+ * ciao/Server_init.cpp:
+ * ciao/Valuetype_Factories:
+ * ciao/Valuetype_Factories/ConfigValue.h:
+ * ciao/Valuetype_Factories/ConfigValue.cpp:
+ * ciao/Valuetype_Factories/ConfigValue_Export.h:
+ * ciao/Valuetype_Factories/Cookie_Export.h:
+ * ciao/Valuetype_Factories/Cookies.h:
+ * ciao/Valuetype_Factories/Cookies.inl:
+ * ciao/Valuetype_Factories/Cookies.cpp:
+ * ciao/Valuetype_Factories/Factories.mpc:
+ * ciao/Version.h:
+ * docs:
+ * docs/CIAO_Style_Guide.txt:
+ * docs/TODO.html:
+ * docs/schema:
+ * docs/schema/Basic_Deployment_Data.xsd:
+ * docs/schema/CIAOEvents.xsd:
+ * docs/schema/CIAOServerResources.xsd:
+ * docs/schema/Deployment.xsd:
+ * docs/schema/Modified_Deployment.xsd:
+ * docs/schema/README.html:
+ * docs/schema/SANet_Network.xsd:
+ * docs/schema/ServerResourceUsage.txt:
+ * docs/schema/Spec_Defined_Deployment.xsd:
+ * docs/schema/Spec_Defined_XMI.xsd:
+ * docs/schema/Task_Map.xsd:
+ * docs/schema/XMI.xsd:
+ * docs/schema/ccd.xsd:
+ * docs/schema/cdd.xsd:
+ * docs/schema/cdp.xsd:
+ * docs/schema/ciaopolicy.xsd:
+ * docs/schema/cid.xsd:
+ * docs/schema/cpd.xsd:
+ * docs/schema/iad.xsd:
+ * docs/schema/pcd.xsd:
+ * docs/schema/toplevel.xsd:
+ * docs/schema/unused_elements.xsd:
+ * docs/schema/xsc-banner.h:
+ * docs/schema/xsc-banner.cpp:
+ * docs/tutorials/Quoter/Simple/01.html:
+ * docs/tutorials/Quoter/Simple/02.html:
+ * docs/tutorials/Quoter/Simple/03.html:
+ * docs/tutorials/Quoter/Simple/04.html:
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker.mpc:
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker_exec.h:
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker_exec.cpp:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor.mpc:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor_exec.h:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor_exec.cpp:
+ * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.mpc:
+ * examples:
+ * examples/BasicSP/BMClosedED/BMClosedED.mpc:
+ * examples/BasicSP/BMClosedED/BMClosedED_exec.h:
+ * examples/BasicSP/BMClosedED/BMClosedED_exec.cpp:
+ * examples/BasicSP/BMDevice/BMDevice.mpc:
+ * examples/BasicSP/BMDevice/BMDevice_exec.h:
+ * examples/BasicSP/BMDevice/BMDevice_exec.cpp:
+ * examples/BasicSP/BMDisplay/BMDisplay.mpc:
+ * examples/BasicSP/BMDisplay/BMDisplay_exec.h:
+ * examples/BasicSP/BMDisplay/BMDisplay_exec.cpp:
+ * examples/BasicSP/BasicSP.mpc:
+ * examples/BasicSP/EC/EC.mpc:
+ * examples/BasicSP/EC/EC_exec.h:
+ * examples/BasicSP/EC/EC_exec.cpp:
+ * examples/BasicSP/EC/controller.cpp:
+ * examples/BasicSP/descriptors/BasicSP.dat:
+ * examples/BasicSP/descriptors/BasicSP_Homed.cdp:
+ * examples/BasicSP/descriptors/BasicSP_Unhomed.cdp:
+ * examples/BasicSP/descriptors/run_test.pl:
+ * examples/DevGuideExamples:
+ * examples/DevGuideExamples/CIAO.mwc:
+ * examples/DevGuideExamples/Messenger:
+ * examples/DevGuideExamples/Messenger/Administrator.cidl:
+ * examples/DevGuideExamples/Messenger/Administrator.idl:
+ * examples/DevGuideExamples/Messenger/Administrator.mpc:
+ * examples/DevGuideExamples/Messenger/Administrator_Client.cpp:
+ * examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.cpp:
+ * examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.mpc:
+ * examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.cpp:
+ * examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.mpc:
+ * examples/DevGuideExamples/Messenger/Administrator_exec_export.h:
+ * examples/DevGuideExamples/Messenger/Administrator_exec_i.h:
+ * examples/DevGuideExamples/Messenger/Administrator_exec_i.cpp:
+ * examples/DevGuideExamples/Messenger/Administrator_stub_export.h:
+ * examples/DevGuideExamples/Messenger/Administrator_svnt_export.h:
+ * examples/DevGuideExamples/Messenger/History.idl:
+ * examples/DevGuideExamples/Messenger/History_exec_i.h:
+ * examples/DevGuideExamples/Messenger/History_exec_i.cpp:
+ * examples/DevGuideExamples/Messenger/Message.idl:
+ * examples/DevGuideExamples/Messenger/Messenger.cidl:
+ * examples/DevGuideExamples/Messenger/Messenger.idl:
+ * examples/DevGuideExamples/Messenger/Messenger.mpc:
+ * examples/DevGuideExamples/Messenger/Messenger_exec_export.h:
+ * examples/DevGuideExamples/Messenger/Messenger_exec_i.h:
+ * examples/DevGuideExamples/Messenger/Messenger_exec_i.cpp:
+ * examples/DevGuideExamples/Messenger/Messenger_stub_export.h:
+ * examples/DevGuideExamples/Messenger/Messenger_svnt_export.h:
+ * examples/DevGuideExamples/Messenger/Publication.idl:
+ * examples/DevGuideExamples/Messenger/Publication_exec_i.h:
+ * examples/DevGuideExamples/Messenger/Publication_exec_i.cpp:
+ * examples/DevGuideExamples/Messenger/Receiver.cidl:
+ * examples/DevGuideExamples/Messenger/Receiver.idl:
+ * examples/DevGuideExamples/Messenger/Receiver.mpc:
+ * examples/DevGuideExamples/Messenger/Receiver_exec_export.h:
+ * examples/DevGuideExamples/Messenger/Receiver_exec_i.h:
+ * examples/DevGuideExamples/Messenger/Receiver_exec_i.cpp:
+ * examples/DevGuideExamples/Messenger/Receiver_stub_export.h:
+ * examples/DevGuideExamples/Messenger/Receiver_svnt_export.h:
+ * examples/DevGuideExamples/Messenger/Runnable.idl:
+ * examples/DevGuideExamples/Messenger/Runnable_exec_i.h:
+ * examples/DevGuideExamples/Messenger/Runnable_exec_i.cpp:
+ * examples/DevGuideExamples/Messenger/StaticDAnCE:
+ * examples/DevGuideExamples/Messenger/StaticDAnCE/Messenger_StaticDAnCE.mpc:
+ * examples/DevGuideExamples/Messenger/StaticDAnCE/README.txt:
+ * examples/DevGuideExamples/Messenger/StaticDAnCE/StaticDAnCEApp.cpp:
+ * examples/DevGuideExamples/Messenger/StaticDAnCE/plan.h:
+ * examples/DevGuideExamples/Messenger/StaticDAnCE/run_test.pl:
+ * examples/DevGuideExamples/Messenger/descriptors:
+ * examples/DevGuideExamples/Messenger/descriptors/Administrator.ccd:
+ * examples/DevGuideExamples/Messenger/descriptors/Administrator.cid:
+ * examples/DevGuideExamples/Messenger/descriptors/Administrator.cpd:
+ * examples/DevGuideExamples/Messenger/descriptors/Administrator_Exec.iad:
+ * examples/DevGuideExamples/Messenger/descriptors/Administrator_Stub.iad:
+ * examples/DevGuideExamples/Messenger/descriptors/Administrator_Svnt.iad:
+ * examples/DevGuideExamples/Messenger/descriptors/Application-flattened.cdp:
+ * examples/DevGuideExamples/Messenger/descriptors/Application.cdp:
+ * examples/DevGuideExamples/Messenger/descriptors/Application.pcd:
+ * examples/DevGuideExamples/Messenger/descriptors/ApplicationNodeMap.dat:
+ * examples/DevGuideExamples/Messenger/descriptors/Deployment.xsd:
+ * examples/DevGuideExamples/Messenger/descriptors/Domain.cdd:
+ * examples/DevGuideExamples/Messenger/descriptors/Libraries.iad:
+ * examples/DevGuideExamples/Messenger/descriptors/Messenger.ccd:
+ * examples/DevGuideExamples/Messenger/descriptors/Messenger.cid:
+ * examples/DevGuideExamples/Messenger/descriptors/Messenger.cpd:
+ * examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.ccd:
+ * examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.cid:
+ * examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.cpd:
+ * examples/DevGuideExamples/Messenger/descriptors/Messenger_Exec.iad:
+ * examples/DevGuideExamples/Messenger/descriptors/Messenger_Stub.iad:
+ * examples/DevGuideExamples/Messenger/descriptors/Messenger_Svnt.iad:
+ * examples/DevGuideExamples/Messenger/descriptors/README_15a:
+ * examples/DevGuideExamples/Messenger/descriptors/Receiver.ccd:
+ * examples/DevGuideExamples/Messenger/descriptors/Receiver.cid:
+ * examples/DevGuideExamples/Messenger/descriptors/Receiver.cpd:
+ * examples/DevGuideExamples/Messenger/descriptors/Receiver_Exec.iad:
+ * examples/DevGuideExamples/Messenger/descriptors/Receiver_Stub.iad:
+ * examples/DevGuideExamples/Messenger/descriptors/Receiver_Svnt.iad:
+ * examples/DevGuideExamples/Messenger/descriptors/XMI.xsd:
+ * examples/DevGuideExamples/Messenger/descriptors/admin.dat:
+ * examples/DevGuideExamples/Messenger/descriptors/package.tpd:
+ * examples/DevGuideExamples/Messenger/descriptors/run_test.pl:
+ * examples/DevGuideExamples/readme.txt:
+ * examples/Display/Display_Base/Display_Base.mpc:
+ * examples/Display/GPS/GPS.mpc:
+ * examples/Display/GPS/GPS_exec.h:
+ * examples/Display/GPS/GPS_exec.cpp:
+ * examples/Display/GPS/GPS_tracing_exec.h:
+ * examples/Display/GPS/GPS_tracing_exec.cpp:
+ * examples/Display/NavDisplay/NavDisplay.mpc:
+ * examples/Display/NavDisplay/NavDisplay_exec.h:
+ * examples/Display/NavDisplay/NavDisplay_exec.cpp:
+ * examples/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc:
+ * examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.h:
+ * examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.cpp:
+ * examples/Display/RateGen/RateGen.mpc:
+ * examples/Display/RateGen/RateGen_exec.h:
+ * examples/Display/RateGen/RateGen_exec.cpp:
+ * examples/Display/RateGen/controller.cpp:
+ * examples/Hello/Hello_Base/Hello_Base.mpc:
+ * examples/Hello/Receiver/Receiver.mpc:
+ * examples/Hello/Receiver/Receiver_exec.h:
+ * examples/Hello/Receiver/Receiver_exec.cpp:
+ * examples/Hello/Sender/Sender.mpc:
+ * examples/Hello/Sender/Sender_exec.h:
+ * examples/Hello/Sender/Sender_exec.cpp:
+ * examples/Hello/Sender/starter.cpp:
+ * examples/Hello/descriptors/DeploymentPlan.cdp:
+ * examples/Hello/descriptors/NodeManagerMap.dat:
+ * examples/Hello/descriptors/run_test.pl:
+ * examples/Null_Component/Null_Component.mpc:
+ * examples/Null_Component/Null_Component_exec.h:
+ * examples/Null_Component/Null_Component_exec.cpp:
+ * examples/Null_Component/Null_Interface.mpc:
+ * examples/Null_Component/StaticDAnCEApp.mpc:
+ * examples/Null_Component/descriptors/NodeMap.dat:
+ * examples/Null_Component/descriptors/Null_Homed.cdp:
+ * examples/Null_Component/descriptors/Null_Unhomed.cdp:
+ * examples/Null_Component/descriptors/run_test.pl:
+ * examples/Swapping/Hello_Base/Hello_Base.mpc:
+ * examples/Swapping/Receiver/Receiver.mpc:
+ * examples/Swapping/Receiver/Receiver_exec.h:
+ * examples/Swapping/Receiver/Receiver_exec.cpp:
+ * examples/Swapping/Sender/Sender.mpc:
+ * examples/Swapping/Sender/Sender_exec.h:
+ * examples/Swapping/Sender/Sender_exec.cpp:
+ * examples/Swapping/Sender/Sender_exec_1.h:
+ * examples/Swapping/Sender/Sender_exec_1.cpp:
+ * examples/Swapping/Sender/Sender_exec_2.h:
+ * examples/Swapping/Sender/Sender_exec_2.cpp:
+ * performance-tests:
+ * performance-tests/Benchmark/Benchmark.mpc:
+ * performance-tests/Benchmark/Multi_Threaded/Multi_Threaded.mpc:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip.mpc:
+ * performance-tests/Benchmark/RoundTrip/RoundTripEI.idl:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip_exec.h:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip_exec.cpp:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient.mpc:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClientEI.idl:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec.h:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec.cpp:
+ * performance-tests/Benchmark/RoundTripServer/LatencyTest.cpp:
+ * performance-tests/Benchmark/RoundTripServer/RoundTripServer.mpc:
+ * performance-tests/Protocols/Controller/Controller.mpc:
+ * performance-tests/Protocols/Receiver/Receiver.mpc:
+ * performance-tests/Protocols/Receiver/Receiver_exec.h:
+ * performance-tests/Protocols/Receiver/Receiver_exec.cpp:
+ * performance-tests/Protocols/Sender/Sender.mpc:
+ * performance-tests/Protocols/Sender/Sender_exec.h:
+ * performance-tests/Protocols/Sender/Sender_exec.cpp:
+ * performance-tests/Protocols/common/Protocols.mpc:
+ * rules.ciao.GNU:
+ * tests:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.mpc:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.h:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.cpp:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/controller.cpp:
+ * tests/Bug_2130_Regression/interfaces/ENW.mpc:
+ * tests/CIAO_ComponentServer:
+ * tests/CIAO_ComponentServer/Activator:
+ * tests/CIAO_ComponentServer/Activator/Activator.mpc:
+ * tests/CIAO_ComponentServer/Activator/client.cpp:
+ * tests/CIAO_ComponentServer/Activator/run_test.pl:
+ * tests/CIAO_ComponentServer/Basic:
+ * tests/CIAO_ComponentServer/Basic/Basic.mpc:
+ * tests/CIAO_ComponentServer/Basic/client.cpp:
+ * tests/CIAO_ComponentServer/Basic/run_test.pl:
+ * tests/CIAO_ComponentServer/SimpleComponent:
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.cidl:
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.idl:
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.mpc:
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec.h:
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec.cpp:
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec_export.h:
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_stub_export.h:
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_svnt_export.h:
+ * tests/CIAO_ComponentServer/SimpleComponent/client.cpp:
+ * tests/CIAO_ComponentServer/SimpleComponent/run_test.pl:
+ * tests/CIDL/CodeGen/Basic.mpc:
+ * tests/CIDL/CodeGen/CodeGen.mpc:
+ * tests/IDL3/Components/ComplexComponent/Attributes/Attributes.mpc:
+ * tests/IDL3/Components/ComplexComponent/EventSink/EventSink.mpc:
+ * tests/IDL3/Components/ComplexComponent/EventSource/EventSource.mpc:
+ * tests/IDL3/Components/ComplexComponent/Facets/Facets.mpc:
+ * tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles.mpc:
+ * tests/IDL3/Components/SimpleComponent/SimpleComponent.mpc:
+ * tests/IDL3/Events/Abstract/Abstract.mpc:
+ * tests/IDL3/Events/Any/Any.mpc:
+ * tests/IDL3/Events/Regular/Regular.mpc:
+ * tests/IDL3/Homes/Attributes/HomeAttributes.mpc:
+ * tests/IDL3/Homes/Basic/Basic.mpc:
+ * tests/IDL3/Homes/Factory/Factory.mpc:
+ * tests/IDL3/Homes/Finder/Finder.mpc:
+ * tests/IDL3/Homes/Inheritance/Inheritance.mpc:
+ * tests/IDL3/ImpliedIDL/All/all.mpc:
+ * tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.mpc:
+ * tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.mpc:
+ * tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.mpc:
+ * tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.mpc:
+ * tests/IDL3/ImpliedIDL/Events/Events.mpc:
+ * tests/IDL3/ImpliedIDL/Homes/Homes.mpc:
+ * tests/IDL3/Lookup/lookup_test.mpc:
+ * tests/Minimum/Minimum_Base/Minimum_Base.mpc:
+ * tests/Minimum/Receiver/Receiver.mpc:
+ * tests/Minimum/Receiver/Receiver_exec.h:
+ * tests/Minimum/Receiver/Receiver_exec.cpp:
+ * tests/Minimum/Sender/Sender.mpc:
+ * tests/Minimum/Sender/Sender_exec.h:
+ * tests/Minimum/Sender/Sender_exec.cpp:
+ * tools:
+ * tools/Config_Handlers:
+ * tools/Config_Handlers/ADD_Handler.h:
+ * tools/Config_Handlers/ADD_Handler.cpp:
+ * tools/Config_Handlers/Any_Handler.h:
+ * tools/Config_Handlers/Any_Handler.cpp:
+ * tools/Config_Handlers/Basic_Deployment_Data.cpp:
+ * tools/Config_Handlers/Basic_Deployment_Data.hpp:
+ * tools/Config_Handlers/CCD_Handler.h:
+ * tools/Config_Handlers/CCD_Handler.cpp:
+ * tools/Config_Handlers/CEPE_Handler.h:
+ * tools/Config_Handlers/CEPE_Handler.cpp:
+ * tools/Config_Handlers/CIAO_Events:
+ * tools/Config_Handlers/CIAO_Events/CIAOEvents.cpp:
+ * tools/Config_Handlers/CIAO_Events/CIAOEvents.hpp:
+ * tools/Config_Handlers/CIAO_Events/CIAOEvents_Handler.h:
+ * tools/Config_Handlers/CIAO_Events/CIAOEvents_Handler.cpp:
+ * tools/Config_Handlers/CIAO_Events/CIAO_Events_Handlers.mpc:
+ * tools/Config_Handlers/CIAO_Events/CIAO_Events_Handlers_Export.h:
+ * tools/Config_Handlers/CIAO_Events/test.cpp:
+ * tools/Config_Handlers/CPD_Handler.h:
+ * tools/Config_Handlers/CPD_Handler.cpp:
+ * tools/Config_Handlers/CRDD_Handler.h:
+ * tools/Config_Handlers/CRDD_Handler.cpp:
+ * tools/Config_Handlers/Common.h:
+ * tools/Config_Handlers/ComponentPropertyDescription_Handler.h:
+ * tools/Config_Handlers/ComponentPropertyDescription_Handler.cpp:
+ * tools/Config_Handlers/Config_Handlers.mpc:
+ * tools/Config_Handlers/Config_Handlers_Common_Export.h:
+ * tools/Config_Handlers/Config_Handlers_Export.h:
+ * tools/Config_Handlers/DD_Handler.h:
+ * tools/Config_Handlers/DD_Handler.cpp:
+ * tools/Config_Handlers/DP_Handler.h:
+ * tools/Config_Handlers/DP_Handler.cpp:
+ * tools/Config_Handlers/DP_PCD_Handler.h:
+ * tools/Config_Handlers/DP_PCD_Handler.cpp:
+ * tools/Config_Handlers/DataType_Handler.h:
+ * tools/Config_Handlers/DataType_Handler.cpp:
+ * tools/Config_Handlers/Deployment.cpp:
+ * tools/Config_Handlers/Deployment.hpp:
+ * tools/Config_Handlers/DnC_Dump.h:
+ * tools/Config_Handlers/DnC_Dump.cpp:
+ * tools/Config_Handlers/DnC_Dump_T.h:
+ * tools/Config_Handlers/DnC_Dump_T.cpp:
+ * tools/Config_Handlers/Dump_Obj.h:
+ * tools/Config_Handlers/Dump_Obj.cpp:
+ * tools/Config_Handlers/DynAny_Handler:
+ * tools/Config_Handlers/DynAny_Handler.mpc:
+ * tools/Config_Handlers/DynAny_Handler/DataType_Handler.h:
+ * tools/Config_Handlers/DynAny_Handler/DataType_Handler.cpp:
+ * tools/Config_Handlers/DynAny_Handler/DynAlias_Handler.h:
+ * tools/Config_Handlers/DynAny_Handler/DynAlias_Handler.cpp:
+ * tools/Config_Handlers/DynAny_Handler/DynAny_Handler.h:
+ * tools/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp:
+ * tools/Config_Handlers/DynAny_Handler/DynAny_Handler_Export.h:
+ * tools/Config_Handlers/DynAny_Handler/DynEnum_Handler.h:
+ * tools/Config_Handlers/DynAny_Handler/DynEnum_Handler.cpp:
+ * tools/Config_Handlers/DynAny_Handler/DynSequence_Handler.h:
+ * tools/Config_Handlers/DynAny_Handler/DynSequence_Handler.cpp:
+ * tools/Config_Handlers/DynAny_Handler/DynStruct_Handler.h:
+ * tools/Config_Handlers/DynAny_Handler/DynStruct_Handler.cpp:
+ * tools/Config_Handlers/DynAny_Handler/dynany_test.idl:
+ * tools/Config_Handlers/DynAny_Handler/test.cpp:
+ * tools/Config_Handlers/DynAny_Handler/test.mpc:
+ * tools/Config_Handlers/ERE_Handler.h:
+ * tools/Config_Handlers/ERE_Handler.cpp:
+ * tools/Config_Handlers/ESD_Handler.h:
+ * tools/Config_Handlers/ESD_Handler.cpp:
+ * tools/Config_Handlers/IDD_Handler.h:
+ * tools/Config_Handlers/IDD_Handler.cpp:
+ * tools/Config_Handlers/IDREF_Base.h:
+ * tools/Config_Handlers/IDREF_Base.cpp:
+ * tools/Config_Handlers/ID_Handler.h:
+ * tools/Config_Handlers/ID_Handler.cpp:
+ * tools/Config_Handlers/IRDD_Handler.h:
+ * tools/Config_Handlers/IRDD_Handler.cpp:
+ * tools/Config_Handlers/MDD_Handler.h:
+ * tools/Config_Handlers/MDD_Handler.cpp:
+ * tools/Config_Handlers/PCD_Handler.h:
+ * tools/Config_Handlers/PCD_Handler.cpp:
+ * tools/Config_Handlers/PSPE_Handler.h:
+ * tools/Config_Handlers/PSPE_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers:
+ * tools/Config_Handlers/Package_Handlers/CAD_Handler.h:
+ * tools/Config_Handlers/Package_Handlers/CAD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/CID_Handler.h:
+ * tools/Config_Handlers/Package_Handlers/CID_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/CPD_Handler.h:
+ * tools/Config_Handlers/Package_Handlers/CPD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.h:
+ * tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/IAD_Handler.h:
+ * tools/Config_Handlers/Package_Handlers/IAD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/NIA_Handler.h:
+ * tools/Config_Handlers/Package_Handlers/PCD_Handler.h:
+ * tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/PC_Intf.h:
+ * tools/Config_Handlers/Package_Handlers/PC_Intf.cpp:
+ * tools/Config_Handlers/Package_Handlers/Package_Handlers.mpc:
+ * tools/Config_Handlers/Package_Handlers/Packaging_Handlers_Export.h:
+ * tools/Config_Handlers/Package_Handlers/SID_Handler.h:
+ * tools/Config_Handlers/Package_Handlers/SID_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/test.cpp:
+ * tools/Config_Handlers/Property_Handler.h:
+ * tools/Config_Handlers/Property_Handler.cpp:
+ * tools/Config_Handlers/RDD_Handler.h:
+ * tools/Config_Handlers/RDD_Handler.cpp:
+ * tools/Config_Handlers/RT-CCM:
+ * tools/Config_Handlers/RT-CCM/CB_Handler.h:
+ * tools/Config_Handlers/RT-CCM/CB_Handler.cpp:
+ * tools/Config_Handlers/RT-CCM/CIAOServerResources.cpp:
+ * tools/Config_Handlers/RT-CCM/CIAOServerResources.hpp:
+ * tools/Config_Handlers/RT-CCM/CLA_Handler.h:
+ * tools/Config_Handlers/RT-CCM/CLA_Handler.cpp:
+ * tools/Config_Handlers/RT-CCM/CNPM_Handler.h:
+ * tools/Config_Handlers/RT-CCM/CNPM_Handler.cpp:
+ * tools/Config_Handlers/RT-CCM/NPM_Handler.h:
+ * tools/Config_Handlers/RT-CCM/NPM_Handler.cpp:
+ * tools/Config_Handlers/RT-CCM/OC_Handler.h:
+ * tools/Config_Handlers/RT-CCM/OC_Handler.cpp:
+ * tools/Config_Handlers/RT-CCM/OR_Handler.h:
+ * tools/Config_Handlers/RT-CCM/OR_Handler.cpp:
+ * tools/Config_Handlers/RT-CCM/PM_Handler.h:
+ * tools/Config_Handlers/RT-CCM/PM_Handler.cpp:
+ * tools/Config_Handlers/RT-CCM/PS_Handler.h:
+ * tools/Config_Handlers/RT-CCM/PS_Handler.cpp:
+ * tools/Config_Handlers/RT-CCM/RT-CCM-Handlers.mpc:
+ * tools/Config_Handlers/RT-CCM/RT_CCM_Handlers_Export.h:
+ * tools/Config_Handlers/RT-CCM/SRD_Handler.h:
+ * tools/Config_Handlers/RT-CCM/SRD_Handler.cpp:
+ * tools/Config_Handlers/RT-CCM/TPL_Handler.h:
+ * tools/Config_Handlers/RT-CCM/TPL_Handler.cpp:
+ * tools/Config_Handlers/RT-CCM/TP_Handler.h:
+ * tools/Config_Handlers/RT-CCM/TP_Handler.cpp:
+ * tools/Config_Handlers/RT-CCM/input.csr:
+ * tools/Config_Handlers/RT-CCM/test.cpp:
+ * tools/Config_Handlers/Req_Handler.h:
+ * tools/Config_Handlers/Req_Handler.cpp:
+ * tools/Config_Handlers/STD_CID_Handler.h:
+ * tools/Config_Handlers/STD_CID_Handler.cpp:
+ * tools/Config_Handlers/STD_CPD_Handler.h:
+ * tools/Config_Handlers/STD_CPD_Handler.cpp:
+ * tools/Config_Handlers/STD_IAD_Handler.h:
+ * tools/Config_Handlers/STD_IAD_Handler.cpp:
+ * tools/Config_Handlers/STD_PCD_Handler.h:
+ * tools/Config_Handlers/STD_PCD_Handler.cpp:
+ * tools/Config_Handlers/STD_PC_Intf.h:
+ * tools/Config_Handlers/STD_PC_Intf.cpp:
+ * tools/Config_Handlers/SatisfierProperty_Handler.h:
+ * tools/Config_Handlers/SatisfierProperty_Handler.cpp:
+ * tools/Config_Handlers/Utils:
+ * tools/Config_Handlers/Utils/Exceptions.h:
+ * tools/Config_Handlers/Utils/Functors.h:
+ * tools/Config_Handlers/XMI.hpp:
+ * tools/Config_Handlers/XMI.cpp:
+ * tools/Config_Handlers/XMLSchema:
+ * tools/Config_Handlers/XMLSchema/Traversal.hpp:
+ * tools/Config_Handlers/XMLSchema/Traversal.ipp:
+ * tools/Config_Handlers/XMLSchema/Traversal.tpp:
+ * tools/Config_Handlers/XMLSchema/TypeInfo.hpp:
+ * tools/Config_Handlers/XMLSchema/TypeInfo.ipp:
+ * tools/Config_Handlers/XMLSchema/TypeInfo.tpp:
+ * tools/Config_Handlers/XMLSchema/Types.hpp:
+ * tools/Config_Handlers/XMLSchema/Types.ipp:
+ * tools/Config_Handlers/XMLSchema/Types.tpp:
+ * tools/Config_Handlers/XMLSchema/Writer.hpp:
+ * tools/Config_Handlers/XMLSchema/Writer.ipp:
+ * tools/Config_Handlers/XMLSchema/Writer.tpp:
+ * tools/Config_Handlers/XML_File_Intf.h:
+ * tools/Config_Handlers/XML_File_Intf.cpp:
+ * tools/Config_Handlers/XML_Typedefs.h:
+ * tools/Config_Handlers/XML_Typedefs.cpp:
+ * tools/Config_Handlers/XSCRT:
+ * tools/Config_Handlers/XSCRT/Elements.hpp:
+ * tools/Config_Handlers/XSCRT/Elements.ipp:
+ * tools/Config_Handlers/XSCRT/Elements.tpp:
+ * tools/Config_Handlers/XSCRT/ExtendedTypeInfo.hpp:
+ * tools/Config_Handlers/XSCRT/ExtendedTypeInfo.ipp:
+ * tools/Config_Handlers/XSCRT/Parser.hpp:
+ * tools/Config_Handlers/XSCRT/Parser.ipp:
+ * tools/Config_Handlers/XSCRT/Parser.tpp:
+ * tools/Config_Handlers/XSCRT/Traversal.hpp:
+ * tools/Config_Handlers/XSCRT/Traversal.ipp:
+ * tools/Config_Handlers/XSCRT/Traversal.tpp:
+ * tools/Config_Handlers/XSCRT/Writer.hpp:
+ * tools/Config_Handlers/XSCRT/Writer.ipp:
+ * tools/Config_Handlers/XSCRT/Writer.tpp:
+ * tools/Config_Handlers/XSCRT/XML.hpp:
+ * tools/Config_Handlers/XSCRT/XML.ipp:
+ * tools/Config_Handlers/XSCRT/XML.tpp:
+ * tools/Config_Handlers/XSCRT/XMLSchema.hpp:
+ * tools/Config_Handlers/XSC_XML_Handlers_Export.h:
+ * tools/Config_Handlers/ccd.cpp:
+ * tools/Config_Handlers/ccd.hpp:
+ * tools/Config_Handlers/cdd.cpp:
+ * tools/Config_Handlers/cdd.hpp:
+ * tools/Config_Handlers/cdp.hpp:
+ * tools/Config_Handlers/cdp.cpp:
+ * tools/Config_Handlers/cid.cpp:
+ * tools/Config_Handlers/cid.hpp:
+ * tools/Config_Handlers/cpd.hpp:
+ * tools/Config_Handlers/cpd.cpp:
+ * tools/Config_Handlers/iad.cpp:
+ * tools/Config_Handlers/iad.hpp:
+ * tools/Config_Handlers/pcd.hpp:
+ * tools/Config_Handlers/pcd.cpp:
+ * tools/Config_Handlers/test.cdp:
+ * tools/Config_Handlers/test.cpp:
+ * tools/Config_Handlers/toplevel.cpp:
+ * tools/Config_Handlers/toplevel.hpp:
+ * tools/IDL3_to_XMI/IDL3_to_XMI_visitor.h:
+ * tools/IDL3_to_XMI/IDL3_to_XMI_visitor.cpp:
+ * tools/IDL3_to_XMI/IR_Simulator_visitor.h:
+ * tools/XML:
+ * tools/XML/CIAO_XML_Utils_Export.h:
+ * tools/XML/XML.mpc:
+ * tools/XML/XML_Error_Handler.h:
+ * tools/XML/XML_Error_Handler.cpp:
+ * tools/XML/XML_Helper.h:
+ * tools/XML/XML_Helper.tpp:
+ * tools/XML/XML_Schema_Resolver.h:
+ * tools/XML/XML_Schema_Resolver.tpp:
+ * tools/XML/XML_Schema_Resolver.cpp:
+ * tools/XML/XercesString.h:
+ * tools/XML/XercesString.cpp:
+ * tools/tools.mwc:
+
+ Merged in from prism_import branch.
+
+ * DAnCE/Deployment/CIAO_NodeApplication_CallBack.idl:
+ * DAnCE/Deployment/CIAO_ServerResources.idl:
+ * DAnCE/Deployment/Deployment_Container.idl:
+ * DAnCE/Deployment/Deployment_Events.idl:
+ * DAnCE/Deployment/NodeApp_CB_Impl.h:
+ * DAnCE/Deployment/NodeApp_CB_Impl.cpp:
+ * DAnCE/DomainApplicationManager/Deployment_Configuration.h:
+ * DAnCE/DomainApplicationManager/Deployment_Configuration.cpp:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_AMH_Impl.h:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_AMH_Impl.inl:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_AMH_Impl.cpp:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_AMI_Impl.h:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_AMI_Impl.cpp:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_ActiveObject_Impl.h:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_ActiveObject_Impl.cpp:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.inl:
+ * DAnCE/DomainApplicationManager/Reply_Handler_i.h:
+ * DAnCE/DomainApplicationManager/Reply_Handler_i.cpp:
+ * DAnCE/DomainApplicationManager/Task_StartLaunch.h:
+ * DAnCE/DomainApplicationManager/Task_StartLaunch.cpp:
+ * DAnCE/ExecutionManager/DAM_Map.h:
+ * DAnCE/ExecutionManager/DAM_Map.cpp:
+ * DAnCE/ExecutionManager/Execution_Manager.cpp:
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.h:
+ * DAnCE/ExecutionManager/Execution_Manager_Impl.cpp:
+ * DAnCE/NodeApplication/CIAO_NodeApplication_export.h:
+ * DAnCE/NodeApplication/Config_Manager.h:
+ * DAnCE/NodeApplication/Config_Manager.cpp:
+ * DAnCE/NodeApplication/Config_Manager_export.h:
+ * DAnCE/NodeApplication/Configurator_Factory.h:
+ * DAnCE/NodeApplication/Configurator_Factory.inl:
+ * DAnCE/NodeApplication/Configurator_Factory.cpp:
+ * DAnCE/NodeApplication/Container_Impl.h:
+ * DAnCE/NodeApplication/Container_Impl.inl:
+ * DAnCE/NodeApplication/Container_Impl.cpp:
+ * DAnCE/NodeApplication/NAConfig_Manager.h:
+ * DAnCE/NodeApplication/NAConfig_Manager.inl:
+ * DAnCE/NodeApplication/NAConfig_Manager.cpp:
+ * DAnCE/NodeApplication/NA_Configurator_Export.h:
+ * DAnCE/NodeApplication/NoOp_Configurator.h:
+ * DAnCE/NodeApplication/NoOp_Configurator.cpp:
+ * DAnCE/NodeApplication/NoOp_Configurator_export.h:
+ * DAnCE/NodeApplication/NodeApp_Configurator.h:
+ * DAnCE/NodeApplication/NodeApp_Configurator.cpp:
+ * DAnCE/NodeApplication/NodeApp_Configurator_Export.h:
+ * DAnCE/NodeApplication/NodeApplication.cpp:
+ * DAnCE/NodeApplication/NodeApplication_Core.h:
+ * DAnCE/NodeApplication/NodeApplication_Core.inl:
+ * DAnCE/NodeApplication/NodeApplication_Core.cpp:
+ * DAnCE/NodeApplication/NodeApplication_Impl.inl:
+ * DAnCE/NodeApplication/RTConfig_Manager.h:
+ * DAnCE/NodeApplication/RTConfig_Manager.inl:
+ * DAnCE/NodeApplication/RTConfig_Manager.cpp:
+ * DAnCE/NodeApplication/RTNA_Configurator_Export.h:
+ * DAnCE/NodeApplication/RTNodeApp_Configurator.h:
+ * DAnCE/NodeApplication/RTNodeApp_Configurator.cpp:
+ * DAnCE/NodeApplicationManager/CIAO_NAM_Export.h:
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.h:
+ * DAnCE/NodeApplicationManager/Containers_Info_Map.cpp:
+ * DAnCE/NodeApplicationManager/ImplementationInfo.h:
+ * DAnCE/NodeApplicationManager/ImplementationInfo.cpp:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.inl:
+ * DAnCE/NodeApplicationManager/URL_Parser.h:
+ * DAnCE/NodeApplicationManager/URL_Parser.cpp:
+ * DAnCE/NodeManager/BaseMonitor.h:
+ * DAnCE/NodeManager/CIAO_Monitor.h:
+ * DAnCE/NodeManager/CIAO_Monitor.cpp:
+ * DAnCE/NodeManager/Monitor.mpc:
+ * DAnCE/NodeManager/MonitorCB.h:
+ * DAnCE/NodeManager/MonitorCB.cpp:
+ * DAnCE/NodeManager/MonitorController.h:
+ * DAnCE/NodeManager/MonitorController.cpp:
+ * DAnCE/NodeManager/NAM_Map.h:
+ * DAnCE/NodeManager/NAM_Map.cpp:
+ * DAnCE/NodeManager/Node_Manager.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Benchmark_Impl.h:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Benchmark_Impl.cpp:
+ * DAnCE/tests/NodeApplicationTest:
+ * DAnCE/tests/NodeApplicationTest/NodeAppTest.mpc:
+ * DAnCE/tests/NodeApplicationTest/NodeAppTest_RoundTrip.cidl:
+ * DAnCE/tests/NodeApplicationTest/NodeAppTest_RoundTrip.idl:
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client.cpp:
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_dynamic.cpp:
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_ex.cpp:
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_simple.cpp:
+ * DAnCE/tests/NodeApplicationTest/README:
+ * DAnCE/tests/NodeApplicationTest/RoundTrip_exec.h:
+ * DAnCE/tests/NodeApplicationTest/RoundTrip_exec.cpp:
+ * DAnCE/tests/NodeApplicationTest/RoundTrip_exec_export.h:
+ * DAnCE/tests/NodeApplicationTest/RoundTrip_stub_export.h:
+ * DAnCE/tests/NodeApplicationTest/RoundTrip_svnt_export.h:
+ * DAnCE/tests/NodeApplicationTest/run_test.pl:
+ * DAnCE/tests/NodeApplicationTest/run_test_ex.pl:
+ * DAnCE/tests/NodeApplicationTest/run_test_simple.pl:
+ * DevGuideExamples:
+ * DevGuideExamples/CIAO.mwc:
+ * DevGuideExamples/Messenger:
+ * DevGuideExamples/Messenger/Administrator.cidl:
+ * DevGuideExamples/Messenger/Administrator.idl:
+ * DevGuideExamples/Messenger/Administrator.mpc:
+ * DevGuideExamples/Messenger/Administrator_Client.cpp:
+ * DevGuideExamples/Messenger/Administrator_Client_IDL2.cpp:
+ * DevGuideExamples/Messenger/Administrator_Client_IDL2.mpc:
+ * DevGuideExamples/Messenger/Administrator_Client_IDL3.cpp:
+ * DevGuideExamples/Messenger/Administrator_Client_IDL3.mpc:
+ * DevGuideExamples/Messenger/Administrator_exec_export.h:
+ * DevGuideExamples/Messenger/Administrator_exec_i.h:
+ * DevGuideExamples/Messenger/Administrator_exec_i.cpp:
+ * DevGuideExamples/Messenger/Administrator_stub_export.h:
+ * DevGuideExamples/Messenger/Administrator_svnt_export.h:
+ * DevGuideExamples/Messenger/History.idl:
+ * DevGuideExamples/Messenger/History_exec_i.h:
+ * DevGuideExamples/Messenger/History_exec_i.cpp:
+ * DevGuideExamples/Messenger/Message.idl:
+ * DevGuideExamples/Messenger/Messenger.cidl:
+ * DevGuideExamples/Messenger/Messenger.idl:
+ * DevGuideExamples/Messenger/Messenger.mpc:
+ * DevGuideExamples/Messenger/Messenger_exec_export.h:
+ * DevGuideExamples/Messenger/Messenger_exec_i.h:
+ * DevGuideExamples/Messenger/Messenger_exec_i.cpp:
+ * DevGuideExamples/Messenger/Messenger_stub_export.h:
+ * DevGuideExamples/Messenger/Messenger_svnt_export.h:
+ * DevGuideExamples/Messenger/Publication.idl:
+ * DevGuideExamples/Messenger/Publication_exec_i.h:
+ * DevGuideExamples/Messenger/Publication_exec_i.cpp:
+ * DevGuideExamples/Messenger/Receiver.cidl:
+ * DevGuideExamples/Messenger/Receiver.idl:
+ * DevGuideExamples/Messenger/Receiver.mpc:
+ * DevGuideExamples/Messenger/Receiver_exec_export.h:
+ * DevGuideExamples/Messenger/Receiver_exec_i.h:
+ * DevGuideExamples/Messenger/Receiver_exec_i.cpp:
+ * DevGuideExamples/Messenger/Receiver_stub_export.h:
+ * DevGuideExamples/Messenger/Receiver_svnt_export.h:
+ * DevGuideExamples/Messenger/Runnable.idl:
+ * DevGuideExamples/Messenger/Runnable_exec_i.h:
+ * DevGuideExamples/Messenger/Runnable_exec_i.cpp:
+ * DevGuideExamples/Messenger/StaticDAnCE:
+ * DevGuideExamples/Messenger/StaticDAnCE/Messenger_StaticDAnCE.mpc:
+ * DevGuideExamples/Messenger/StaticDAnCE/README.txt:
+ * DevGuideExamples/Messenger/StaticDAnCE/StaticDAnCEApp.cpp:
+ * DevGuideExamples/Messenger/StaticDAnCE/plan.h:
+ * DevGuideExamples/Messenger/StaticDAnCE/run_test.pl:
+ * DevGuideExamples/Messenger/descriptors:
+ * DevGuideExamples/Messenger/descriptors/Administrator.ccd:
+ * DevGuideExamples/Messenger/descriptors/Administrator.cid:
+ * DevGuideExamples/Messenger/descriptors/Administrator.cpd:
+ * DevGuideExamples/Messenger/descriptors/Administrator_Exec.iad:
+ * DevGuideExamples/Messenger/descriptors/Administrator_Stub.iad:
+ * DevGuideExamples/Messenger/descriptors/Administrator_Svnt.iad:
+ * DevGuideExamples/Messenger/descriptors/Application-flattened.cdp:
+ * DevGuideExamples/Messenger/descriptors/Application.cdp:
+ * DevGuideExamples/Messenger/descriptors/Application.pcd:
+ * DevGuideExamples/Messenger/descriptors/ApplicationNodeMap.dat:
+ * DevGuideExamples/Messenger/descriptors/Deployment.xsd:
+ * DevGuideExamples/Messenger/descriptors/Domain.cdd:
+ * DevGuideExamples/Messenger/descriptors/Libraries.iad:
+ * DevGuideExamples/Messenger/descriptors/Messenger.ccd:
+ * DevGuideExamples/Messenger/descriptors/Messenger.cid:
+ * DevGuideExamples/Messenger/descriptors/Messenger.cpd:
+ * DevGuideExamples/Messenger/descriptors/MessengerAssembly.ccd:
+ * DevGuideExamples/Messenger/descriptors/MessengerAssembly.cid:
+ * DevGuideExamples/Messenger/descriptors/MessengerAssembly.cpd:
+ * DevGuideExamples/Messenger/descriptors/Messenger_Exec.iad:
+ * DevGuideExamples/Messenger/descriptors/Messenger_Stub.iad:
+ * DevGuideExamples/Messenger/descriptors/Messenger_Svnt.iad:
+ * DevGuideExamples/Messenger/descriptors/README_15a:
+ * DevGuideExamples/Messenger/descriptors/Receiver.ccd:
+ * DevGuideExamples/Messenger/descriptors/Receiver.cid:
+ * DevGuideExamples/Messenger/descriptors/Receiver.cpd:
+ * DevGuideExamples/Messenger/descriptors/Receiver_Exec.iad:
+ * DevGuideExamples/Messenger/descriptors/Receiver_Stub.iad:
+ * DevGuideExamples/Messenger/descriptors/Receiver_Svnt.iad:
+ * DevGuideExamples/Messenger/descriptors/XMI.xsd:
+ * DevGuideExamples/Messenger/descriptors/admin.dat:
+ * DevGuideExamples/Messenger/descriptors/package.tpd:
+ * DevGuideExamples/Messenger/descriptors/run_test.pl:
+ * DevGuideExamples/readme.txt:
+ * MPC/config/ciao_component_dnc.mpb:
+ * MPC/config/ciao_container_dnc.mpb:
+ * MPC/config/ciao_deployment_stub.mpb:
+ * MPC/config/ciao_deployment_svnt.mpb:
+ * MPC/config/ciao_server_dnc.mpb:
+ * ciao/CCM_Base.idl:
+ * ciao/CCM_CCM2Context.idl:
+ * ciao/CCM_CCMException.idl:
+ * ciao/CCM_Component.idl:
+ * ciao/CCM_ComponentId.idl:
+ * ciao/CCM_Configurator.idl:
+ * ciao/CCM_Container.idl:
+ * ciao/CCM_Container_Ex.idl:
+ * ciao/CCM_Context.idl:
+ * ciao/CCM_Cookie.idl:
+ * ciao/CCM_Core.mpc:
+ * ciao/CCM_EnterpriseComponent.idl:
+ * ciao/CCM_Entity2Context.idl:
+ * ciao/CCM_EntityComponent.idl:
+ * ciao/CCM_EntityContext.idl:
+ * ciao/CCM_Enumeration.idl:
+ * ciao/CCM_EventBase.idl:
+ * ciao/CCM_EventConsumerBase.idl:
+ * ciao/CCM_Events.idl:
+ * ciao/CCM_ExecutorLocator.idl:
+ * ciao/CCM_Home.idl:
+ * ciao/CCM_HomeConfiguration.idl:
+ * ciao/CCM_HomeExecutorBase.idl:
+ * ciao/CCM_HomeFinder.idl:
+ * ciao/CCM_HomeRegistration.idl:
+ * ciao/CCM_KeylessCCMHome.idl:
+ * ciao/CCM_Navigation.idl:
+ * ciao/CCM_Object.idl:
+ * ciao/CCM_PrimaryKeyBase.idl:
+ * ciao/CCM_ProxyHomeRegistration.idl:
+ * ciao/CCM_Receptacle.idl:
+ * ciao/CCM_Session2Context.idl:
+ * ciao/CCM_SessionComponent.idl:
+ * ciao/CCM_SessionContext.idl:
+ * ciao/CCM_SessionSynchronization.idl:
+ * ciao/CCM_StandardConfigurator.idl:
+ * ciao/CCM_StateIdFactory.idl:
+ * ciao/CCM_Transaction.idl:
+ * ciao/CIAO_SwapExec.idl:
+ * ciao/CIAO_UpgradeableContext.idl:
+ * ciao/Components.idl:
+ * ciao/Container_Base.h:
+ * ciao/Container_Base.inl:
+ * ciao/Container_Base.cpp:
+ * ciao/Context_Impl_Base.h:
+ * ciao/Context_Impl_Base.inl:
+ * ciao/Context_Impl_Base.cpp:
+ * ciao/Context_Impl_T.h:
+ * ciao/Context_Impl_T.cpp:
+ * ciao/Cookies.h:
+ * ciao/Cookies.inl:
+ * ciao/Cookies.cpp:
+ * ciao/CosPersistentState.idl:
+ * ciao/Dynamic_Component_Activator.h:
+ * ciao/Dynamic_Component_Activator.inl:
+ * ciao/Dynamic_Component_Activator.cpp:
+ * ciao/Dynamic_Component_Servant_Base.h:
+ * ciao/Dynamic_Component_Servant_Base.cpp:
+ * ciao/Dynamic_Component_Servant_T.h:
+ * ciao/Dynamic_Component_Servant_T.cpp:
+ * ciao/Home_Servant_Impl_Base.h:
+ * ciao/Home_Servant_Impl_Base.cpp:
+ * ciao/Home_Servant_Impl_T.h:
+ * ciao/Home_Servant_Impl_T.cpp:
+ * ciao/Object_Set_T.h:
+ * ciao/Object_Set_T.inl:
+ * ciao/Object_Set_T.cpp:
+ * ciao/Port_Activator.h:
+ * ciao/Port_Activator.inl:
+ * ciao/Port_Activator.cpp:
+ * ciao/Port_Activator_T.h:
+ * ciao/Port_Activator_T.cpp:
+ * ciao/Security.idl:
+ * ciao/Servant_Activator.h:
+ * ciao/Servant_Activator.cpp:
+ * ciao/Servant_Impl_Base.h:
+ * ciao/Servant_Impl_Base.cpp:
+ * ciao/Servant_Impl_T.h:
+ * ciao/Servant_Impl_T.cpp:
+ * ciao/Servant_Impl_Utils_T.cpp:
+ * ciao/Session_Container.h:
+ * ciao/Session_Container.inl:
+ * ciao/Session_Container.cpp:
+ * ciao/StandardConfigurator_Impl.h:
+ * ciao/StandardConfigurator_Impl.cpp:
+ * ciao/Swapping_Container.h:
+ * ciao/Swapping_Container.inl:
+ * ciao/Swapping_Container.cpp:
+ * ciao/Swapping_Servant_Home_Impl_Base.h:
+ * ciao/Swapping_Servant_Home_Impl_Base.cpp:
+ * ciao/Swapping_Servant_Home_Impl_T.h:
+ * ciao/Swapping_Servant_Home_Impl_T.cpp:
+ * ciao/Upgradeable_Context_Impl_T.h:
+ * ciao/Upgradeable_Context_Impl_T.cpp:
+ * ciao/extension:
+ * ciao/extension/CCM_ClientContainerInterceptor.idl:
+ * ciao/extension/CCM_ClientContainerInterceptorRegistration.idl:
+ * ciao/extension/CCM_ContainerClientRequestInfo.idl:
+ * ciao/extension/CCM_ContainerInterceptor.idl:
+ * ciao/extension/CCM_ContainerRequestInfo.idl:
+ * ciao/extension/CCM_ContainerServantRequestInfo.idl:
+ * ciao/extension/CCM_ContainerServerRequestInfo.idl:
+ * ciao/extension/CCM_ContainerStubRequestInfo.idl:
+ * ciao/extension/CCM_ExtensionComponent.idl:
+ * ciao/extension/CCM_ExtensionContext.idl:
+ * ciao/extension/CCM_InvalidRegistration.idl:
+ * ciao/extension/CCM_QoS.idl:
+ * ciao/extension/CCM_ServantContainerInterceptor.idl:
+ * ciao/extension/CCM_ServantContainerInterceptorRegistration.idl:
+ * ciao/extension/CCM_ServerContainerInterceptor.idl:
+ * ciao/extension/CCM_ServerContainerInterceptorRegistration.idl:
+ * ciao/extension/CCM_StubContainerInterceptor.idl:
+ * ciao/extension/CCM_StubContainerInterceptorRegistration.idl:
+ * ciao/extension/ExtensionContext.h:
+ * ciao/extension/ExtensionContext.cpp:
+ * ciaosvcs:
+ * ciaosvcs/Events:
+ * ciaosvcs/Events/CIAO_EventService_Factory_impl.h:
+ * ciaosvcs/Events/CIAO_EventService_Factory_impl.cpp:
+ * ciaosvcs/Events/CIAO_Events.mpc:
+ * ciaosvcs/Events/CIAO_Events_Base:
+ * ciaosvcs/Events/CIAO_Events_Base/CIAO_EventServiceBase.h:
+ * ciaosvcs/Events/CIAO_Events_Base/CIAO_EventServiceBase.cpp:
+ * ciaosvcs/Events/CIAO_Events_Base/CIAO_Events.idl:
+ * ciaosvcs/Events/CIAO_Events_Base/CIAO_Events_Base.mpc:
+ * ciaosvcs/Events/CIAO_Events_Base/CIAO_Events_Export.h:
+ * ciaosvcs/Events/CIAO_Events_Export.h:
+ * ciaosvcs/Events/CIAO_RTEC:
+ * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEVENT_Export.h:
+ * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.h:
+ * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.cpp:
+ * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.idl:
+ * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.mpc:
+ * ciaosvcs/Events/CIAO_RTEC/SimpleAddressServer.h:
+ * ciaosvcs/Events/CIAO_RTEC/SimpleAddressServer.cpp:
+ * docs/schema/CIAOEvents.txt:
+ * examples/BasicSP/descriptors/BasicSP.cdp:
+ * examples/Hello/ReDaC-Usage.html:
+ * examples/Hello/descriptors/Hello.cid:
+ * examples/Hello/descriptors/Hello.cpd:
+ * examples/Hello/descriptors/Libraries.iad:
+ * examples/Hello/descriptors/Receiver.ccd:
+ * examples/Hello/descriptors/Receiver.cid:
+ * examples/Hello/descriptors/Receiver.cpd:
+ * examples/Hello/descriptors/Receiver_Exec.iad:
+ * examples/Hello/descriptors/Receiver_Stub.iad:
+ * examples/Hello/descriptors/Receiver_Svnt.iad:
+ * examples/Hello/descriptors/Sender.ccd:
+ * examples/Hello/descriptors/Sender.cid:
+ * examples/Hello/descriptors/Sender.cpd:
+ * examples/Hello/descriptors/Sender_Exec.iad:
+ * examples/Hello/descriptors/Sender_Stub.iad:
+ * examples/Hello/descriptors/Sender_Svnt.iad:
+ * examples/Hello/descriptors_ReDaC:
+
+ * examples/Hello/descriptors_ReDaC/deploymentplan.cdp:
+ * examples/Hello/descriptors_ReDaC/deploymentplan_add.cdp:
+ * examples/Hello/descriptors_ReDaC/deploymentplan_remove.cdp:
+ * examples/Hello/descriptors_events:
+ * examples/Hello/descriptors_events/NodeManagerMap.dat:
+ * examples/Hello/descriptors_events/NodeManagerMapTwoHosts.dat:
+ * examples/Hello/descriptors_events/NodeManagerMap_collocated.dat:
+ * examples/Hello/descriptors_events/README:
+ * examples/Hello/descriptors_events/RunEventTest.pm:
+ * examples/Hello/descriptors_events/ciao-events-example-collocated.ced:
+ * examples/Hello/descriptors_events/ciao-events-example-with-federation.ced:
+ * examples/Hello/descriptors_events/ciao-events-example-with-filters.ced:
+ * examples/Hello/descriptors_events/ciao-events-example.ced:
+ * examples/Hello/descriptors_events/ciao-events-federation-mcast.ced:
+ * examples/Hello/descriptors_events/ciao-events-federation-udp-collocated.ced:
+ * examples/Hello/descriptors_events/ciao-events-federation-udp-two-hosts.ced:
+ * examples/Hello/descriptors_events/ciao-events-federation-udp.ced:
+ * examples/Hello/descriptors_events/deploymentplan_events.cdp:
+ * examples/Hello/descriptors_events/deploymentplan_events_collocated.cdp:
+ * examples/Hello/descriptors_events/deploymentplan_federation.cdp:
+ * examples/Hello/descriptors_events/deploymentplan_federation_mcast.cdp:
+ * examples/Hello/descriptors_events/deploymentplan_federation_udp.cdp:
+ * examples/Hello/descriptors_events/deploymentplan_federation_udp_collocated.cdp:
+ * examples/Hello/descriptors_events/deploymentplan_federation_udp_two_hosts.cdp:
+ * examples/Hello/descriptors_events/deploymentplan_multiple_senders.cdp:
+ * examples/Hello/descriptors_events/deploymentplan_with_filters.cdp:
+ * examples/Hello/descriptors_events/rtec.conf:
+ * examples/Hello/descriptors_events/run_NodeDaemons.pl:
+ * examples/Hello/descriptors_events/run_NodeDaemons_svc_conf.pl:
+ * examples/Hello/descriptors_events/run_NodeDaemons_with_ip.pl:
+ * examples/Hello/descriptors_events/run_test.pl:
+ * examples/Hello/descriptors_events/run_test_collocated.pl:
+ * examples/Hello/descriptors_events/run_test_federated.pl:
+ * examples/Hello/descriptors_events/run_test_filtered.pl:
+ * examples/Hello/descriptors_events/run_test_multicast.pl:
+ * examples/Hello/descriptors_events/run_test_multiple_senders.pl:
+ * examples/Hello/descriptors_events/run_test_simple.pl:
+ * examples/Hello/descriptors_events/run_test_udp.pl:
+ * examples/Hello/descriptors_events/run_test_udp_collocated.pl:
+ * examples/Hello/descriptors_shared_components:
+ * examples/Hello/descriptors_shared_components/deploymentplan.cdp:
+ * examples/Hello/descriptors_shared_components/deploymentplan_shared_components.cdp:
+ * examples/Null_Component/descriptors/Deployment.xsd:
+ * examples/Null_Component/descriptors/Domain.cdd:
+ * examples/Null_Component/descriptors/Null_Assembly.cid:
+ * examples/Null_Component/descriptors/Null_Assembly_Package.cpd:
+ * examples/Null_Component/descriptors/Null_Component.ccd:
+ * examples/Null_Component/descriptors/Null_ComponentMonolithicImpl.cid:
+ * examples/Null_Component/descriptors/Null_Component_Package.cpd:
+ * examples/Null_Component/descriptors/Null_Component_exec.iad:
+ * examples/Null_Component/descriptors/Null_Component_stub.iad:
+ * examples/Null_Component/descriptors/Null_Component_svnt.iad:
+ * examples/Null_Component/descriptors/PackageConfiguration.pcd:
+ * examples/Null_Component/descriptors/Plan.cdp:
+ * examples/Null_Component/descriptors/TopLevelPackage.tpd:
+ * examples/Null_Component/descriptors/XMI.xsd:
+ * tools/Config_Handlers/Utils/CIAO_XML_Utils_Export.h:
+ * tools/Config_Handlers/Utils/Utils.mpc:
+ * tools/Config_Handlers/Utils/XML_Error_Handler.h:
+ * tools/Config_Handlers/Utils/XML_Error_Handler.cpp:
+ * tools/Config_Handlers/Utils/XML_Helper.h:
+ * tools/Config_Handlers/Utils/XML_Helper.tpp:
+ * tools/Config_Handlers/Utils/XML_Helper.cpp:
+ * tools/Config_Handlers/Utils/XML_Schema_Resolver.h:
+ * tools/Config_Handlers/Utils/XML_Schema_Resolver.cpp:
+ * tools/Config_Handlers/Utils/XercesString.h:
+ * tools/Config_Handlers/Utils/XercesString.cpp:
+
+ Removed these files.
+
+Wed Feb 11 13:35:59 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * Merged in from prism_import branch
+
+ Wed Feb 11 02:15:21 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CIAO-INSTALL.html:
+ * CIAO.mwc:
+ * CIAO_DAnCE.mwc:
+ * CIAO_TAO.mwc:
+ * CIAO_TAO_DAnCE.mwc:
+ * COPYING:
+ * ChangeLogs:
+ * NEWS:
+ * PROBLEM-REPORT-FORM:
+ * README:
+ * Release:
+ * VERSION:
+ * bin:
+ * bin/ciao_tests.lst:
+ * ciaosvcs:
+ * examples:
+ * examples/BasicSP/EC/client.cpp:
+ * examples/BasicSP/EC/controller.cpp:
+ * examples/DevGuideExamples:
+ * examples/Display/GPS/GPS_exec.cpp:
+ * examples/Display/NavDisplay/NavDisplay_exec.cpp:
+ * examples/Display/RateGen/controller.cpp:
+ * examples/Hello/Sender/starter.cpp:
+ * examples/Null_Component/StaticDAnCEApp.cpp:
+ * examples/Null_Component/descriptors/run_test.pl:
+ * examples/Swapping/Sender/starter.cpp:
+ * performance-tests:
+ * performance-tests/Benchmark/Multi_Threaded/client.cpp:
+ * performance-tests/Benchmark/RoundTrip/RoundTripEI.idl:
+ * performance-tests/Benchmark/RoundTrip/client.cpp:
+ * performance-tests/Benchmark/RoundTripClient/client.cpp:
+ * performance-tests/Protocols/Controller/Controller.cpp:
+ * performance-tests/Protocols/Receiver/Receiver_exec.cpp:
+ * performance-tests/Protocols/Sender/Sender_exec.cpp:
+ * performance-tests/mico/mico-thrput-st/client.cc:
+ * rules.ciao.GNU:
+
+ Merged in changes from HEAD.
+
+ Wed Feb 11 01:36:39 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Logger/Logger.mpc:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/em_launcher.mpc:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/nm_launcher.mpc:
+ * MPC/config/dance_logger.mpb:
+ * examples/DevGuideExamples/Messenger/Administrator_exec_i.cpp:
+ * examples/Hello/Sender/Sender_exec.h:
+ * tests/CIAO_ComponentServer/Activator/client.cpp:
+ * tests/CIAO_ComponentServer/Basic/client.cpp:
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.mpc:
+ * tests/CIAO_ComponentServer/SimpleComponent/client.cpp:
+ * tests/Minimum/Receiver/Receiver.mpc:
+
+ Windows fixes.
+
+ Wed Feb 11 00:18:44 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CCF:
+ * CCF/CCF/CodeGenerationKit/IndentationCxx.hpp:
+ * CCF/CCF/CodeGenerationKit/IndentationJava.hpp:
+ * CIDLC:
+ * CIDLC/AttributeHeaderEmitters.cpp:
+ * CIDLC/DescriptorGenerator.cpp:
+ * CIDLC/Literals.cpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/SizeTypeCalculator.cpp:
+ * CIDLC/cidlc.cpp:
+ * docs:
+ * docs/tutorials/Quoter/Simple/Broker/StockBrokerDriver.cpp:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributorDriver.cpp:
+ * tools/IDL3_to_IDL2:
+
+ Merged changes in from trunk
+
+ Tue Feb 10 23:31:09 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/TargetManager/TargetManager.mpc:
+
+ Disabled this for now.
+
+ Tue Feb 10 19:13:45 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+ * ciao/Containers/Session/Session_Container.cpp:
+
+ Loffinf changes.
+
+ * DAnCE/tests/DeploymentPlanDump/test.cpp:
+ * DAnCE/tests/NodeApplicationManager-NodeApplication/test.cpp:
+
+ compile fixes to the last commit.
+
+ * VERSION:
+ * ciao/Version.h:
+
+ Updated version number to current.
+
+ * examples/DevGuideExamples:
+ * examples/DevGuideExamples/Messenger/Administrator.mpc:
+ * examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.mpc:
+ * examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.mpc:
+ * examples/DevGuideExamples/Messenger/Administrator_exec_i.h:
+ * examples/DevGuideExamples/Messenger/Administrator_exec_i.cpp:
+ * examples/DevGuideExamples/Messenger/Messenger.mpc:
+ * examples/DevGuideExamples/Messenger/Messenger_exec_i.h:
+ * examples/DevGuideExamples/Messenger/Messenger_exec_i.cpp:
+ * examples/DevGuideExamples/Messenger/Receiver.mpc:
+ * examples/DevGuideExamples/Messenger/Receiver_exec_i.h:
+ * examples/DevGuideExamples/Messenger/Receiver_exec_i.cpp:
+ * examples/DevGuideExamples/Messenger/StaticDAnCE/Messenger_StaticDAnCE.mpc:
+ * examples/DevGuideExamples/Messenger/descriptors/ApplicationNodeMap.dat:
+ * examples/DevGuideExamples/Messenger/descriptors/run_test.pl:
+
+ Partially ported this example.
+
+ Tue Feb 10 18:18:41 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Deployment/Deployment.idl:
+ * DAnCE/Deployment/Deployment_Application.idl:
+ * DAnCE/Deployment/Deployment_ApplicationManager.idl:
+ * DAnCE/Deployment/Deployment_Base.idl:
+ * DAnCE/Deployment/Deployment_Connection.idl:
+ * DAnCE/Deployment/Deployment_Core.idl:
+ * DAnCE/Deployment/Deployment_Data.idl:
+ * DAnCE/Deployment/Deployment_DeploymentPlan.idl:
+ * DAnCE/Deployment/Deployment_DomainApplication.idl:
+ * DAnCE/Deployment/Deployment_DomainApplicationManager.idl:
+ * DAnCE/Deployment/Deployment_ExecutionManager.idl:
+ * DAnCE/Deployment/Deployment_NodeApplication.idl:
+ * DAnCE/Deployment/Deployment_NodeApplicationManager.idl:
+ * DAnCE/Deployment/Deployment_NodeManager.idl:
+ * DAnCE/Deployment/Deployment_Packaging_Data.idl:
+ * DAnCE/Deployment/Deployment_RepositoryManager.idl:
+ * DAnCE/Deployment/Deployment_ResourceCommitmentManager.idl:
+ * DAnCE/Deployment/Deployment_TargetData.idl:
+ * DAnCE/Deployment/Deployment_TargetManager.idl:
+ * DAnCE/Deployment/Deployment_common.h:
+ * DAnCE/DomainApplication/Domain_Application_Impl.h:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ * DAnCE/ExecutionManager/ExecutionManager_Module.h:
+ * DAnCE/NodeApplication/ComponentInstallation_Impl.h:
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher.h:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.h:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Module.h:
+ * DAnCE/RedirectionService/CCMObjectLocator.cpp:
+ * DAnCE/RepositoryManager/RMadmin.cpp:
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp:
+ * DAnCE/StaticConfigurator/StaticDAnCEParser.cpp:
+ * DAnCE/Utils/Plan_Handler.h:
+ * DAnCE/Utils/Plan_Handler.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleUser_exec.cpp:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/simple_em_launcher.cpp:
+ * DAnCE/tests/DeploymentPlanDump/test.cpp:
+ * DAnCE/tests/DeploymentPlanTestReferences/test.cpp:
+ * DAnCE/tests/DeploymentTest1/test.cpp:
+ * DAnCE/tests/MocksTest/MocksTest.cpp:
+ * DAnCE/tests/NameServiceTest/srv_main.cpp:
+ * DAnCE/tests/NodeApplicationManager-NodeApplication/test.cpp:
+ * DAnCE/tests/NodeManager-NodeApplicationManager/test.cpp:
+ * DAnCE/tests/ObjectLocatorTest/Dummy.idl:
+ * DAnCE/tests/ObjectLocatorTest/clt_main.cpp:
+ * DAnCE/tests/ObjectLocatorTest/srv_main.cpp:
+ * DAnCE/tests/RedirectionServiceTest/Dummy.idl:
+ * DAnCE/tests/RedirectionServiceTest/clt_main.cpp:
+ * DAnCE/tests/RedirectionServiceTest/srv_main.cpp:
+ * ccm/ComponentServer/CCM_ComponentServer.idl:
+ * ccm/ComponentServer/CCM_ComponentServer_Base.idl:
+ * ccm/ComponentServer/CCM_ComponentServer_Client.idl:
+ * ciao/CIAO_FailureReasons.idl:
+ * ciao/Client_init.h:
+ * ciao/Client_init.cpp:
+ * ciao/ComponentServer/CIAO_CS_Client.idl:
+ * ciao/ComponentServer/CIAO_ComponentServer.idl:
+ * ciao/ComponentServer/CIAO_ComponentServer_Impl.h:
+ * ciao/ComponentServer/CIAO_ComponentServer_Impl.cpp:
+ * ciao/ComponentServer/CIAO_Container_Impl.h:
+ * ciao/ComponentServer/CIAO_Container_Impl.cpp:
+ * ciao/ComponentServer/CIAO_Properties.idl:
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.h:
+ * ciao/ComponentServer/Configurators/Basic_Config_Manager.h:
+ * ciao/ComponentServer/Configurators/Basic_Config_Manager.cpp:
+ * ciao/ComponentServer/Configurators/RT/RTConfig_Manager.h:
+ * ciao/ComponentServer/Configurators/Server_Configurator.h:
+ * ciao/Containers/CIAO_Servant_Activator.idl:
+ * ciao/Containers/Container_Base.idl:
+ * ciao/Containers/Servant_Activator.h:
+ * ciao/Containers/Servant_Activator.cpp:
+ * ciao/Containers/Session/Session_Container.h:
+ * ciao/Containers/Session/Session_Container.idl:
+ * ciao/Containers/Session/Session_Container.cpp:
+ * ciao/Contexts/Context.mpc:
+ * ciao/Servants/CIAO_Port_Activator.idl:
+ * ciao/Servants/Home_Servant_Impl_Base.h:
+ * ciao/Servants/Home_Servant_Impl_T.cpp:
+ * ciao/Servants/Port_Activator.h:
+ * ciao/Servants/Servant_Impl_Base.cpp:
+ * ciao/Servants/Servant_Impl_Utils_T.cpp:
+ * ciao/Server_init.cpp:
+ * ciao/Valuetype_Factories/Factories.mpc:
+ * docs/tutorials/Quoter/Simple/Broker/StockBrokerDriver.cpp:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributorDriver.cpp:
+ * examples/BasicSP/BMClosedED/BMClosedED_exec.cpp:
+ * examples/BasicSP/BMDisplay/BMDisplay_exec.cpp:
+ * examples/BasicSP/EC/EC_exec.cpp:
+ * examples/BasicSP/EC/client.cpp:
+ * examples/BasicSP/EC/controller.cpp:
+ * examples/Display/GPS/GPS_exec.cpp:
+ * examples/Display/NavDisplay/NavDisplay_exec.cpp:
+ * examples/Null_Component/StaticDAnCEApp.cpp:
+ * examples/Swapping/Sender/starter.cpp:
+ * ofccm/Cdmw/CDMW_Deployment.idl:
+ * ofccm/NodeApplication/ComponentInstallation_Impl.h:
+ * performance-tests/Benchmark/Multi_Threaded/client.cpp:
+ * performance-tests/Benchmark/RoundTrip/RoundTripEI.idl:
+ * performance-tests/Benchmark/RoundTrip/client.cpp:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClientEI.idl:
+ * performance-tests/Benchmark/RoundTripClient/client.cpp:
+ * performance-tests/Protocols/Receiver/Receiver_exec.cpp:
+ * performance-tests/Protocols/Sender/Sender_exec.cpp:
+ * performance-tests/mico/mico-thrput-st/client.cc:
+ * performance-tests/mico/mico-thrput-st/server.cc:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/controller.cpp:
+ * tests/CIAO_ComponentServer/Activator/client.cpp:
+ * tests/CIAO_ComponentServer/SimpleComponent/client.cpp:
+ * tools/Config_Handlers/Any_Handler.h:
+ * tools/Config_Handlers/Any_Handler.cpp:
+ * tools/Config_Handlers/CIAO_Events/CIAOEvents_Handler.h:
+ * tools/Config_Handlers/CIAO_Events/CIAOEvents_Handler.cpp:
+ * tools/Config_Handlers/CIAO_Events/test.cpp:
+ * tools/Config_Handlers/DD_Handler.h:
+ * tools/Config_Handlers/DD_Handler.cpp:
+ * tools/Config_Handlers/DP_Handler.h:
+ * tools/Config_Handlers/DP_Handler.cpp:
+ * tools/Config_Handlers/DynAny_Handler/dynany_test.idl:
+ * tools/Config_Handlers/DynAny_Handler/test.cpp:
+ * tools/Config_Handlers/DynAny_Handler/test.mpc:
+ * tools/Config_Handlers/ESD_Handler.h:
+ * tools/Config_Handlers/ESD_Handler.cpp:
+ * tools/Config_Handlers/IDD_Handler.h:
+ * tools/Config_Handlers/IDD_Handler.cpp:
+ * tools/Config_Handlers/IDREF_Base.h:
+ * tools/Config_Handlers/IDREF_Base.cpp:
+ * tools/Config_Handlers/Package_Handlers/test.cpp:
+ * tools/Config_Handlers/RT-CCM/OR_Handler.h:
+ * tools/Config_Handlers/RT-CCM/OR_Handler.cpp:
+ * tools/Config_Handlers/RT-CCM/SRD_Handler.h:
+ * tools/Config_Handlers/RT-CCM/SRD_Handler.cpp:
+ * tools/Config_Handlers/RT-CCM/test.cpp:
+ * tools/Config_Handlers/XML_Typedefs.h:
+ * tools/Config_Handlers/test.cpp:
+ * tools/IDL3_to_IDL2/cdmw_idl.cpp:
+ * tools/XML/XercesString.cpp:
+
+ Fuzz.
+
+ Fri Feb 6 22:06:51 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * bin/ciao_tests.lst:
+
+ Added in tests that have been ported.
+
+ Fri Feb 6 20:28:09 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/bin/PythonDAnCE/generator/comp_impl.py:
+
+ Fixes that should have been in previous commit.
+
+ * examples/Null_Component/Null_Component_exec.h:
+ * examples/Null_Component/Null_Component_exec.cpp:
+ * examples/Null_Component/descriptors/NodeMap.dat:
+ * examples/Null_Component/descriptors/Null_Homed.cdp:
+ * examples/Null_Component/descriptors/Null_Unhomed.cdp:
+ * examples/Null_Component/descriptors/run_test.pl:
+
+ Ported this example to new CIAO/DAnCE.
+
+ * examples/Null_Component/descriptors/Deployment.xsd:
+ * examples/Null_Component/descriptors/Domain.cdd:
+ * examples/Null_Component/descriptors/Null_Assembly.cid:
+ * examples/Null_Component/descriptors/Null_Assembly_Package.cpd:
+ * examples/Null_Component/descriptors/Null_Component.ccd:
+ * examples/Null_Component/descriptors/Null_ComponentMonolithicImpl.cid:
+ * examples/Null_Component/descriptors/Null_Component_Package.cpd:
+ * examples/Null_Component/descriptors/Null_Component_exec.iad:
+ * examples/Null_Component/descriptors/Null_Component_stub.iad:
+ * examples/Null_Component/descriptors/Null_Component_svnt.iad:
+ * examples/Null_Component/descriptors/PackageConfiguration.pcd:
+ * examples/Null_Component/descriptors/Plan.cdp:
+ * examples/Null_Component/descriptors/TopLevelPackage.tpd:
+ * examples/Null_Component/descriptors/XMI.xsd:
+
+ Removed these files.
+
+ Fri Feb 6 19:51:02 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/bin/PythonDAnCE/generator/comp_impl.py:
+ * DAnCE/bin/PythonDAnCE/generator/home_impl.py:
+ * DAnCE/bin/generate_plan.py:
+
+ Fixes to better handle namespaces components may be declared in.
+
+ * examples/BasicSP/descriptors/run_test.pl:
+
+ Will run plan specified on commad line.
+
+ * examples/BasicSP/descriptors/BasicSP_Homed.cdp:
+
+ Same as the _Unhomed plan, except all components are explicitly homed.
+
+ Fri Feb 6 19:36:03 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * examples/BasicSP/BMClosedED/BMClosedED_exec.cpp:
+ * examples/BasicSP/BMDevice/BMDevice_exec.cpp:
+ * examples/BasicSP/BMDisplay/BMDisplay_exec.cpp:
+ * examples/BasicSP/EC/EC_exec.cpp:
+
+ Raised the priority of logging messages so they would appear
+ without CIAO_LOG_LEVEL being set.
+
+ * examples/BasicSP/EC/controller.cpp:
+ * examples/BasicSP/descriptors/BasicSP_Unhomed.cdp:
+ * examples/BasicSP/descriptors/run_test.pl:
+
+ Fixes necessary to make this test work.
+
+ Fri Feb 6 19:22:40 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+
+ Better exception handling.
+
+ Fri Feb 6 18:26:39 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+
+ Better exception handling.
+
+ * DAnCE/bin/PythonDAnCE/generator/artifact.py:
+ * DAnCE/bin/PythonDAnCE/generator/comp_impl.py:
+ * DAnCE/bin/PythonDAnCE/generator/header.py:
+ * DAnCE/bin/generate_plan.py:
+
+ Bugfixes for plangenerator.
+
+ * examples/BasicSP/BMClosedED/BMClosedED_exec.h:
+ * examples/BasicSP/BMClosedED/BMClosedED_exec.cpp:
+ * examples/BasicSP/BMDevice/BMDevice_exec.h:
+ * examples/BasicSP/BMDevice/BMDevice_exec.cpp:
+ * examples/BasicSP/BMDisplay/BMDisplay_exec.h:
+ * examples/BasicSP/BMDisplay/BMDisplay_exec.cpp:
+ * examples/BasicSP/EC/EC_exec.h:
+ * examples/BasicSP/EC/EC_exec.cpp:
+
+ Added component servant and executor factory operations.
+
+ * examples/BasicSP/descriptors/BasicSP.dat:
+ * examples/BasicSP/descriptors/BasicSP_Unhomed.cdp:
+ * examples/BasicSP/descriptors/run_test.pl:
+
+ Ported to new version of DAnCE. test script still needs to invoke correct controller.
+
+ * examples/BasicSP/descriptors/BasicSP.cdp:
+
+ Removed obsolete plan.
+
+ Fri Feb 6 13:44:54 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/bin/PythonDAnCE:
+ * DAnCE/bin/PythonDAnCE/__init__.py:
+ * DAnCE/bin/PythonDAnCE/generator:
+ * DAnCE/bin/PythonDAnCE/generator/__init__.py:
+ * DAnCE/bin/PythonDAnCE/generator/_path.py:
+ * DAnCE/bin/PythonDAnCE/generator/artifact.py:
+ * DAnCE/bin/PythonDAnCE/generator/comp_impl.py:
+ * DAnCE/bin/PythonDAnCE/generator/comp_inst.py:
+ * DAnCE/bin/PythonDAnCE/generator/footer.py:
+ * DAnCE/bin/PythonDAnCE/generator/header.py:
+ * DAnCE/bin/PythonDAnCE/generator/home_impl.py:
+ * DAnCE/bin/PythonDAnCE/generator/home_inst.py:
+ * DAnCE/bin/PythonDAnCE/generator/homed_comp_impl.py:
+ * DAnCE/bin/PythonDAnCE/generator/homed_comp_inst.py:
+ * DAnCE/bin/PythonDAnCE/generator/templet.py:
+ * DAnCE/bin/generate_plan.py:
+
+ First cut implementation of a very simple cdp generator.
+
+ Thu Feb 5 19:36:49 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ofccm/DAnCE_Scripts:
+ * ofccm/DAnCE_Scripts/em-log.conf:
+ * ofccm/DAnCE_Scripts/em.conf:
+ * ofccm/DAnCE_Scripts/integ_deployment.sh:
+ * ofccm/DAnCE_Scripts/integ_deployment.xsl:
+ * ofccm/DAnCE_Scripts/logger.conf:
+ * ofccm/DAnCE_Scripts/pl-log.conf:
+ * ofccm/DAnCE_Scripts/pl.conf:
+ * ofccm/DAnCE_Scripts/plb-log.conf:
+ * ofccm/DAnCE_Scripts/plb.conf:
+ * ofccm/DAnCE_Scripts/start_ExecutionManager.sh:
+ * ofccm/DAnCE_Scripts/start_PlanLauncher.sh:
+ * ofccm/DAnCE_Scripts/start_PlanLauncherBase.sh:
+ * ofccm/DAnCE_Scripts/start_demo_1.sh:
+
+ * DAnCE/bin/em-log.conf:
+ * DAnCE/bin/em.conf:
+ * DAnCE/bin/integ_deployment.sh:
+ * DAnCE/bin/integ_deployment.xsl:
+ * DAnCE/bin/logger.conf:
+ * DAnCE/bin/pl-log.conf:
+ * DAnCE/bin/pl.conf:
+ * DAnCE/bin/plb-log.conf:
+ * DAnCE/bin/plb.conf:
+ * DAnCE/bin/start_ExecutionManager.sh:
+ * DAnCE/bin/start_PlanLauncher.sh:
+ * DAnCE/bin/start_PlanLauncherBase.sh:
+ * DAnCE/bin/start_demo_1.sh:
+
+ Moved OFCCM specific scripts over to the ofccm directory.
+
+ Thu Feb 5 19:07:02 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tests/IDL3_to_XMI:
+ * tools/IDL3_to_XMI:
+ * tools/IDL3_to_XMI/IDL3_to_XMI_visitor.h:
+ * tools/IDL3_to_XMI/IDL3_to_XMI_visitor.cpp:
+ * tools/IDL3_to_XMI/IR_Simulator_visitor.h:
+
+ Ported this tool, and associated tests in from head.
+
+ Thu Feb 5 18:37:55 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * bin/ciao_tests.lst:
+
+ Ported this file in from trunk.
+
+ * DAnCE/tests/NodeApplicationTest:
+ * DAnCE/tests/NodeApplicationTest/NodeAppTest.mpc:
+ * DAnCE/tests/NodeApplicationTest/NodeAppTest_RoundTrip.cidl:
+ * DAnCE/tests/NodeApplicationTest/NodeAppTest_RoundTrip.idl:
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client.cpp:
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_dynamic.cpp:
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_ex.cpp:
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_simple.cpp:
+ * DAnCE/tests/NodeApplicationTest/README:
+ * DAnCE/tests/NodeApplicationTest/RoundTrip_exec.h:
+ * DAnCE/tests/NodeApplicationTest/RoundTrip_exec.cpp:
+ * DAnCE/tests/NodeApplicationTest/RoundTrip_exec_export.h:
+ * DAnCE/tests/NodeApplicationTest/RoundTrip_stub_export.h:
+ * DAnCE/tests/NodeApplicationTest/RoundTrip_svnt_export.h:
+ * DAnCE/tests/NodeApplicationTest/run_test.pl:
+ * DAnCE/tests/NodeApplicationTest/run_test_ex.pl:
+ * DAnCE/tests/NodeApplicationTest/run_test_simple.pl:
+
+ Removed obsolete test.
+
+ Thu Feb 5 18:30:34 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CIDLC/ExecImplHeaderGenerator.cpp:
+ * CIDLC/ExecImplSourceGenerator.cpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Added component factory functions, similar to those already generated for
+ Homes.
+
+ * DAnCE/tests/CIAO/Components/SimpleNull_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleNull_exec.cpp:
+
+ Added in generated factory functions from above.
+
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test.pl:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/run_test.pl:
+
+ Added ability to run a single plan by passing it as a command line
+ arguments.
+
+ * DAnCE/tests/CIAO/NodeManager-Deployments/SimpleComponentUnhomed.cdp:
+
+ Test for unhomed components.
+
+ * ciao/Containers/Session/Session_Container.h:
+ * ciao/Containers/Session/Session_Container.cpp:
+
+ Fixes for unhomed components.
+
+ Thu Feb 5 16:03:59 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * ciao/ComponentServer/CIAO_Container_Impl.cpp:
+
+ First cut implementation of unhomed component deployment. Untested as yet.
+
+ Thu Feb 5 14:40:18 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/EmitsConnectionExplicitHome_NS.cdp:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS.cdp:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/PublishConnectionExplicitHome_NS.cdp:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS.cdp:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test.pl:
+ * tools/Config_Handlers/ERE_Handler.cpp:
+
+ Fixes to enable external reference connections for non-provider connections.
+
+ Thu Feb 5 00:39:48 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/tests/CIAO/Components/SimpleConsumer_exec.cpp:
+
+ Fixed a segmentation fault.
+
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/EmitsConnectionExplicitHome.cdp:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome.cdp:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/PublishConnectionExplicitHome.cdp:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleComponentExplicitHome.cdp:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome.cdp:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test.pl:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/simple_em_launcher.cpp:
+
+ Tests similar to those in NodeManager-Deployments, except across two nodes.
+
+ Wed Feb 4 22:08:09 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/tests/CIAO/Components/SimpleConsumer_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleProvider_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleUser_exec.cpp:
+
+ Removed CLINFO from the logging messages.
+
+ * DAnCE/tests/CIAO/NodeManager-Deployments/run_test.pl:
+
+ Test script to execute all deployments in this directory
+
+ * tools/XML/XML_Helper.tpp:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/simple_nm_launcher.cpp:
+
+ Reduced logging.
+
+ Wed Feb 4 21:18:18 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ciao/Containers/Container_Base.cpp:
+
+ Demoted the logging priority of failure to find a receptacle policy.
+
+ * examples/Hello/descriptors/run_test.pl:
+
+ removed some extraneous logging.
+
+ Wed Feb 4 19:07:27 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+ * examples/Hello/descriptors/run_test.pl:
+
+ fixing nameservice support.
+
+ Wed Feb 4 01:26:49 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CIAO_TAO.mwc:
+ * CIAO_TAO_DAnCE.mwc:
+
+ Added TAO_ROOT/utils.
+
+ * DAnCE/ExecutionManager/ExecutionManager_Module.cpp:
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+
+ Logging changes.
+
+ * DAnCE/NodeApplication/ComponentAttributesSetter.cpp:
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+
+ Compile fixes.
+
+ * DAnCE/NodeApplication/Name_Utilities.cpp:
+
+ Fixed segmentation faults.
+
+ * DAnCE/tests/MocksTest/MockTest.mpc:
+
+ Disabled.
+
+ * examples/Hello/descriptors/run_test.pl:
+
+ Fixes to use correct binaries and arguments. This test now runs.
+
+ Tue Feb 3 14:24:17 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/ExecutionManager_Module.cpp:
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp:
+ * examples/Hello/descriptors/run_test.pl:
+
+ Migrating changes to a new workspace.
+
+ Mon Jan 12 17:41:29 UTC 2009 Abdullah Sowayan <sowayan@gmail.com>
+
+ * DAnCE/NodeApplication/ComponentAttributesSetter.cpp:
+
+ Use var types to encapsulates memory management instead
+ of using ptr types. This closes bugzilla 3538.
+
+ Thu Dec 11 5:05:57 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ccm/CCM_KeylessCCMHome.idl:
+ Updated include
+
+ * ccm/ComponentServer/CCM_ComponentServer.idl:
+ * ccm/ComponentServer/CCM_ComponentServer_Client.idl:
+ * ciao/Containers/Session/Session_Container.h:
+ Layout changes
+
+ * ciao/Containers/Session/Session_Container.cpp:
+ const/initialise pointer with 0
+
+ Fri Nov 28 16:05:57 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/tests/CIAO/NodeManager-Deployments/simple_nm_launcher.cpp:
+ Added missing include
+
+ Wed Nov 26 16:17:57 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeApplication/NodeApplication.mpc:
+ Layout changes
+
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+ Layout changes to the help message
+
+ * examples/Hello/Receiver/Receiver_exec.cpp:
+ * examples/Hello/Sender/starter.cpp:
+ Unicode changes
+
+ Wed Nov 26 15:04:57 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/ComponentServer/Configurators/NoOp/NoOp_Configurator.mpc:
+ Added dynamic flags
+
+ * ciao/Contexts/Swapping/CIAO_UpgradeableContext.idl:
+ Updated include
+
+ * CIDLC/ExecutorMappingGenerator.cpp:
+ Update the include being generated
+
+ * DAnCE/tests/NameServiceTest/clt_main.cpp:
+ * DAnCE/tests/NameServiceTest/Dummy.idl:
+ * DAnCE/tests/NameServiceTest/NameServiceTest.mpc:
+ * DAnCE/tests/NameServiceTest/run_test.pl:
+ Cleanup and wchar
+
+ * DAnCE/tests/RedirectionServiceTest/srv_main.cpp:
+ Fixed warning
+
+ * examples/Swapping/Receiver/Receiver.mpc:
+ Disabled some projects
+
+ * ofccm/NodeApplication/NodeApplication_Impl.h:
+ Updated include
+
+ * tests/CIAO_ComponentServer/Basic/client.cpp:
+ Unicode changes
+
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.mpc:
+ Updated
+
+ Wed Nov 26 14:22:57 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/TargetManager/TargetManager.mpc:
+ Disabled a few projects
+
+ * DAnCE/tests/MocksTest/MocksTest.cpp:
+ Unicode change
+
+ * DAnCE/tests/NameServiceTest/srv_main.cpp:
+ * DAnCE/tests/ObjectLocatorTest/srv_main.cpp:
+ * DAnCE/tests/RedirectionServiceTest/srv_main.cpp:
+ Fixed compile errors with msvc
+
+ * examples/BasicSP/BasicSP.mpc:
+ Refactored this file a little bit. With msvc I do see that cidl
+ is each time executed even when nothing changes. This has to be fixed
+
+ * MPC/config/dance_cdmw_idl.mpb:
+ Fixed after
+
+ * ofccm/Cdmw/CDMW_Deployment.idl:
+ * ofccm/Cdmw/CDMW_IDL_Ext.idl:
+ Updated includes
+
+ * ofccm/Cdmw/CDMW_IDL.mpc:
+ Use seperate idl project
+
+ * ofccm/NodeApplication/ServerActivator_Impl.h:
+ Updated include
+
+ Tue Nov 25 15:55:57 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ccm/ComponentServer/CCM_ComponentServer.idl:
+ * ccm/ComponentServer/CCM_ComponentServer.mpc:
+ * ccm/ComponentServer/CCM_ComponentServer_Base.idl:
+ * ccm/ComponentServer/CCM_ComponentServer_Client.idl:
+ * ccm/ComponentServer/ComponentServer.idl:
+ * ccm/ComponentServer/ComponentServer.mpc:
+ * ccm/ComponentServer/ComponentServer_Base.idl:
+ * ccm/ComponentServer/ComponentServer_Client.idl:
+ Renamed with CCM prefix
+
+ * ccm/CCM_Enumeration.idl:
+ * ccm/CCM_Object.idl:
+ Moved sequence<CCMObject> CCMObjectSeq to CCM_Object
+
+ * ciao/ComponentServer/CIAO_ComponentServer.idl:
+ Use CCMObjectSeq
+
+ * ciao/ComponentServer/CIAO_Container_Impl.cpp:
+ * ciao/ComponentServer/CIAO_Container_Impl.h:
+ Use CCMObjectSeq
+
+ * ciao/ComponentServer/CIAO_CS_Client.idl:
+ * ciao/Containers/Session/Session_Container.cpp:
+ * DAnCE/NodeApplication/NodeApplication_Impl.h:
+ * ofccm/Cdmw/CDMW_IDL.idl
+ Updated include
+
+ * examples/Swapping/Sender/Sender.mpc:
+ Disabled these projects
+
+ * ciao/ComponentServer/CIAO_ComponentServer.mpc:
+ Explicitly list export header files
+
+ Tue Nov 25 14:30:57 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ccm/ComponentServer/ComponentServer.mpc:
+ Only compile the IDL files as part of one project
+
+ * ciao/Servants/Servants.mpc:
+ Move template files to seperate group
+
+ * DAnCE/NodeApplication/Name_Utilities.cpp:
+ Fixed warning
+
+ * ofccm/NodeApplication/NodeApplication_Impl.cpp:
+ Initialise pointers with 0
+
+ Tue Nov 25 08:30:57 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Servants/Swapping/CIAO_SwapExec.idl:
+ * ciao/Servants/Swapping/Dynamic_Component_Servant_Base.cpp
+ * ciao/Servants/Swapping/Dynamic_Component_Servant_Base.h
+ * ciao/Servants/Swapping/Swapping_Servant_Home_Impl_Base.h
+ * examples/Swapping/Receiver/Receiver_exec.h
+ * examples/Swapping/Sender/Sender_exec_1.h
+ * examples/Swapping/Sender/Sender_exec_2.h
+ * ofccm/NodeApplication/ComponentInstallation_Impl.h
+ * ofccm/NodeApplication/NodeApplication_Impl.cpp
+ * ofccm/NodeApplication/NodeApplication_Impl.h
+ * ofccm/NodeApplication/ServerActivator_Impl.cpp
+ * ofccm/NodeApplication/ServerActivator_Impl.h
+ Updated includes
+
+ * ciao/Servants/Swapping/Swapping_Servants.mpc
+ * ciao/Servants/Swapping/CIAO_Swapping_Servant_export.h
+ New files
+
+ Mon Nov 24 20:08:57 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Servants/Home_Servant_Impl_T.cpp:
+ Fixed compile error
+
+ * ciao/Servants/Port_Activator_T.cpp:
+ * ciao/Servants/Port_Activator_T.h:
+ Fixed signature deactivate
+
+ * DAnCE/NodeApplication/ComponentAttributesSetter.cpp:
+ Datatype/const changs
+
+ * DAnCE/NodeApplication/Name_Utilities.cpp:
+ * DAnCE/NodeApplication/Name_Utilities.h:
+ Unicode changes
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ Layout changes
+
+ * DAnCE/RedirectionService/CCMObjectLocator.cpp:
+ Datatype changes
+
+ * DAnCE/tests/ObjectLocatorTest/srv_main.cpp:
+ Fixed compile error
+
+ * examples/Swapping/Sender/Sender_exec.h:
+ Fixed include
+
+ Mon Nov 24 19:48:57 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ccm/ComponentServer/ComponentServer.mpc
+ Layout change
+
+ * ciao/Containers/Session/Session_Container.cpp:
+ Catch exceptions as const
+
+ * ciao/Contexts/Context_Impl_Base.h:
+ Updated include
+
+ * ciao/Servants/Home_Servant_Impl_Base.h:
+ Include Container_BaseC.h, the forward declaration
+ gives problems with msvc8
+
+ * ciao/Servants/Port_Activator.h:
+ Corrected signature so that we match the base class
+
+ * ciao/Servants/Servant_Impl_T.h:
+ Removed not needed forward declaration
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ Unicode changes
+
+ * DAnCE/NodeApplication/ServerActivator_Impl.cpp:
+ Const change
+
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+ Unicode and layout changes
+
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+ Layout changes and initialise pointer with 0
+
+ * examples/Hello/Sender/Sender_exec.cpp:
+ Unicode change
+
+ * ofccm/Cdmw/CDMW_Deployment.idl:
+ * ofccm/Cdmw/CDMW_IDL_Ext.idl:
+ Updated includes
+
+ Mon Nov 24 16:06:57 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/Name_Utilities.h:
+ * DAnCE/NodeApplication/Name_Utilities.cpp:
+
+ Files missing from last commit.
+
+ Sun Nov 23 23:59:50 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Deployment/DAnCE_Properties.idl:
+
+ Rearranged, organized
+
+ * DAnCE/DomainApplicationManager/Node_Locator.h:
+ * DAnCE/DomainApplicationManager/Node_Locator.cpp:
+ * DAnCE/ExecutionManager/ExecutionManager_Module.h:
+ * DAnCE/ExecutionManager/ExecutionManager_Module.cpp:
+ * DAnCE/NodeApplication/NodeApplication.mpc:
+ * DAnCE/NodeApplication/NodeApplication_Impl.h:
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * DAnCE/NodeManager/Node_Manager_Module.h:
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Module.cpp:
+
+ Improved NameService support.
+
+ * examples/Hello/Sender/Sender_exec.cpp:
+ * examples/Hello/descriptors/DeploymentPlan.cdp:
+ * examples/Hello/descriptors/run_test.pl:
+
+ Updates to work with new DAnCE.
+
+ * tools/Config_Handlers/XSCRT/Elements.hpp:
+ * tools/XML/XML_Helper.h:
+
+ Compile fixes.
+
+ * examples/Hello/ReDaC-Usage.html:
+ * examples/Hello/descriptors/Hello.cid:
+ * examples/Hello/descriptors/Hello.cpd:
+ * examples/Hello/descriptors/Libraries.iad:
+ * examples/Hello/descriptors/Receiver.ccd:
+ * examples/Hello/descriptors/Receiver.cid:
+ * examples/Hello/descriptors/Receiver.cpd:
+ * examples/Hello/descriptors/Receiver_Exec.iad:
+ * examples/Hello/descriptors/Receiver_Stub.iad:
+ * examples/Hello/descriptors/Receiver_Svnt.iad:
+ * examples/Hello/descriptors/Sender.ccd:
+ * examples/Hello/descriptors/Sender.cid:
+ * examples/Hello/descriptors/Sender.cpd:
+ * examples/Hello/descriptors/Sender_Exec.iad:
+ * examples/Hello/descriptors/Sender_Stub.iad:
+ * examples/Hello/descriptors/Sender_Svnt.iad:
+ * examples/Hello/descriptors_ReDaC:
+ * examples/Hello/descriptors_events:
+ * examples/Hello/descriptors_shared_components:
+
+ Removed these files.
+
+ Fri Nov 21 16:58:00 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/Node_Locator.cpp:
+ * DAnCE/ExecutionManager/ExecutionManager_Module.h:
+ * DAnCE/ExecutionManager/ExecutionManager_Module.cpp:
+ * DAnCE/NodeManager/Node_Manager_Module.h:
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Module.cpp:
+
+ Better support for the naming service.
+
+ * examples/Hello/descriptors/DeploymentPlan.cdp:
+ * examples/Hello/descriptors/run_test.pl:
+
+ ported to new DAnCE.
+
+ * examples/Hello/descriptors/Hello.cid:
+ * examples/Hello/descriptors/Hello.cpd:
+ * examples/Hello/descriptors/Libraries.iad:
+ * examples/Hello/descriptors/Receiver.ccd:
+ * examples/Hello/descriptors/Receiver.cid:
+ * examples/Hello/descriptors/Receiver.cpd:
+ * examples/Hello/descriptors/Receiver_Exec.iad:
+ * examples/Hello/descriptors/Receiver_Stub.iad:
+ * examples/Hello/descriptors/Receiver_Svnt.iad:
+ * examples/Hello/descriptors/Sender.ccd:
+ * examples/Hello/descriptors/Sender.cid:
+ * examples/Hello/descriptors/Sender.cpd:
+ * examples/Hello/descriptors/Sender_Exec.iad:
+ * examples/Hello/descriptors/Sender_Stub.iad:
+ * examples/Hello/descriptors/Sender_Svnt.iad:
+
+ Removed superfluous files.
+
+ * examples/Hello/descriptors_ReDaC:
+ * examples/Hello/descriptors_events:
+ * examples/Hello/descriptors_shared_components:
+ * examples/Hello/ReDaC-Usage.html:
+
+ Removed these files, as these features are no longer supported.
+
+ Tue Nov 18 15:40:23 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIDLC/Literals.cpp:
+ Generate CIAO version info in the header of the generated file
+
+ Tue Nov 18 15:22:23 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Utils/DAnCE_Utils.mpc:
+ * DAnCE/Utils/Plan_Handler.cpp:
+ Fixed compilation
+
+ Tue Nov 18 15:15:23 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Servants/Servant_Impl_Base.h:
+ * DAnCE/Deployment/Deployment_TargetManager.idl:
+ * DAnCE/TargetManager/DomainDataManager.h:
+ Layout changes
+
+ * DAnCE/TargetManager/CmpClient.cpp:
+ wchar changes
+
+ * DAnCE/TargetManager/DomainEvents.idl:
+ Updated includes
+
+ * DAnCE/TargetManager/TargetManager.mpc:
+ * DAnCE/TargetManager/TargetManagerImpl.idl
+ Updated for all refactoring
+
+ * MPC/config/ciao_nodemanager_stub.mpb:
+ * MPC/config/ciao_targetmanager_stub.mpb:
+ * MPC/config/ciao_targetmanager_svnt.mpb:
+ * MPC/config/dance_nodemanager_stub.mpb:
+ * MPC/config/dance_nodemanager_svnt.mpb:
+ Updated these with unique lib names and correct aftes
+
+ Tue Nov 18 14:55:23 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Interfaces/Interfaces.mpc:
+ Added custom idl projects and added DAnCE_NodeManager_svnt
+
+ Tue Nov 18 14:16:23 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Contexts/Context.mpc:
+ Added missing dynamicflags
+
+ * ciao/Servants/Servant_Impl_Utils_T.cpp:
+ Layout change
+
+ * MPC/config/ciao_context_impl.mpb:
+ New base project
+
+ * MPC/config/ciao_servant.mpb:
+ Use ciao_context_impl
+
+ Mon Nov 17 16:08:23 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CCF/CCF/IDL2/Parser.hpp:
+ Undef interface when it is defined
+
+ * DAnCE/DomainApplication/Domain_Application_Impl.cpp
+ * DAnCE/DomainApplication/Domain_Application_Impl.h
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h
+ * DAnCE/DomainApplicationManager/Node_Locator.cpp
+ * DAnCE/DomainApplicationManager/Node_Locator.h
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.cpp
+ * DAnCE/ExecutionManager/ExecutionManager_Module.h
+ * DAnCE/NodeApplication/ServerActivator_Impl.cpp
+ * DAnCE/NodeApplication/ServerActivator_Impl.h
+ * DAnCE/NodeManager/Node_Manager_Exec.cpp
+ * DAnCE/NodeManager/Node_Manager_Module.cpp
+ * DAnCE/NodeManager/Node_Manager_Module.h
+ Various cleanup/layout changes
+
+ Mon Nov 17 15:03:23 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/ComponentServer/CIAO_ComponentServer.cpp
+ * ciao/ComponentServer/CIAO_ComponentServer.h
+ * ciao/ComponentServer/CIAO_ComponentServer_Impl.cpp
+ * ciao/ComponentServer/CIAO_Container_Impl.h
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.h
+ * ciao/ComponentServer/CIAO_ServerResources.idl
+ * ciao/Containers/Container_Base.cpp
+ * ciao/Containers/Container_Base.h
+ * ciao/Containers/Servant_Activator.cpp
+ * ciao/Containers/Servant_Activator.h
+ * ciao/Containers/Session/Session_Container.cpp
+ * ciao/Containers/Session/Session_Container.h
+ Layout changes
+
+ * ciao/ComponentServer/Configurator_Factory.cpp
+ * ciao/ComponentServer/Configurator_Factory.h
+ No need to have a member variable
+
+ Mon Nov 17 14:34:23 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Client_init.cpp
+ * ciao/ComponentServer/CIAO_ComponentServer.cpp
+ * ciao/ComponentServer/CIAO_ComponentServer_Impl.cpp
+ * ciao/ComponentServer/CIAO_Container_Impl.cpp
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp
+ * ciao/ComponentServer/Configurators/Basic_Config_Manager.cpp
+ * ciao/ComponentServer/Configurators/RT/RTConfig_Manager.cpp
+ * ciao/ComponentServer/Configurators/RTNodeApp_Configurator.cpp
+ * ciao/Containers/Container_Base.cpp
+ * ciao/Containers/Servant_Activator.cpp
+ * ciao/Containers/Session/Session_Container.cpp
+ * ciao/Servants/Servant_Impl_Base.cpp
+ * ciao/Server_init.cpp
+ * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.cpp
+ * CIDLC/ServantSourceGenerator.cpp
+ * DAnCE/DomainApplication/Domain_Application_Impl.cpp
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DAnCE/DomainApplicationManager/Node_Locator.cpp
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.cpp
+ * DAnCE/NodeApplication/ComponentAttributesSetter.cpp
+ Layout, %s->%C changes
+
+ Mon Nov 17 14:17:23 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Deployment/DAnCE_Core.mpc:
+ Removed -Gos, this has to be enabled in the default.features
+ file through gen_ostream=1
+
+ Sun Nov 16 22:12:23 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Deployment/DAnCE_Properties.idl:
+
+ Added naming service and component IOR properties.
+
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+ * DAnCE/RedirectionService/NameServiceRedirection.cpp:
+
+ Logging/layout changes.
+
+ Fri Nov 14 22:18:16 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Deployment/DAnCE_Core.mpc:
+ * DAnCE/NodeManager/NodeManager.mpc:
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+
+ Support for dumping deployment plan at deployment time based on presence
+ of the gen_ostream MPC feature.
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+
+ Logging improvements.
+
+ * DAnCE/NodeApplication/NodeApplication.mpc:
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * examples/Hello/descriptors/DeploymentPlan.cdp:
+ * examples/Hello/descriptors/NodeManagerMap.dat:
+
+ Porting of the basic Hello example to the new CIAO/DAnCE.
+
+ Fri Nov 14 18:51:35 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/ExecutionManager.mpc:
+ * DAnCE/Starter/Starter.cpp:
+ * DAnCE/tests/DeploymentTest1/test.cpp:
+ * DAnCE/tests/NameServiceTest/srv_main.cpp:
+ * DAnCE/tests/NodeApplicationManager-NodeApplication/test.cpp:
+ * DAnCE/tests/NodeManager-NodeApplicationManager/test.cpp:
+ * DAnCE/tests/ObjectLocatorTest/ObjectLocatorTest.mpc:
+ * DAnCE/tests/ObjectLocatorTest/srv_main.cpp:
+ * DAnCE/tests/RedirectionServiceTest/srv_main.cpp:
+ * MPC/config/ciao_componentserver_svnt.mpb:
+ * ciao/ComponentServer/CIAO_Container_Impl.cpp:
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.h:
+ * ciao/Containers/Swapping/Swapping_Container.cpp:
+
+ Warning fixes on Linux.
+
+ Thu Nov 13 22:58:42 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ * DAnCE/DomainApplicationManager/Node_Locator.h:
+ * DAnCE/DomainApplicationManager/Node_Locator.cpp:
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.h:
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.cpp:
+ * DAnCE/ExecutionManager/ExecutionManager_Module.h:
+ * DAnCE/ExecutionManager/ExecutionManager_Module.cpp:
+
+ Refactored support for finding IORs of NodeManagers
+ to support Node Maps and NameService.
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Exec.cpp:
+ * DAnCE/Deployment/Module_Main.h:
+
+ dance_plan_launcher executable.
+
+ Wed Nov 12 21:26:14 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplication/Domain_Application_Impl.cpp:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+
+ Log message fixes.
+
+ Wed Nov 12 21:22:43 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Deployment/Module_Main.h:
+
+ Fix to prevent a segmentation fault.
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ * DAnCE/ExecutionManager/ExecutionManager.mpc:
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.h:
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.cpp:
+ * DAnCE/ExecutionManager/ExecutionManager_Module.h:
+ * DAnCE/ExecutionManager/ExecutionManager_Module.cpp:
+ * DAnCE/ExecutionManager/Execution_Manager_Exec.cpp:
+
+ Fixes to enable running EM as a standalone executable and enable
+ EM driven deployments.
+
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+
+ Minor log message fix.
+
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/SimpleComponentExplicitHome.cdp:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/em_launcher.mpc:
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/simple_em_launcher.cpp:
+
+ Text excercising EM controlled deployment of a single component to single node.
+
+ Wed Nov 12 19:53:23 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments:
+
+ Destination for EM included tests.
+
+ * DAnCE/tests/CIAO/NodeManager-Deployments/MultiplexConnectionExplicitHome.cdp:
+
+ Test verifying multiplex facet connections.
+
+ * DAnCE/tests/CIAO/NodeManager-Deployments/Components:
+ * DAnCE/tests/CIAO/Components:
+
+ Moved components directory up one level.
+
+ Wed Nov 12 19:35:47 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/ComponentAttributesSetter.cpp:
+
+ Improved exception handling.
+
+ Wed Nov 12 19:30:30 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/ComponentAttributesSetter.h:
+ * DAnCE/NodeApplication/ComponentAttributesSetter.cpp:
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+
+ Changes necessary to support attribiute initialization.
+
+ * DAnCE/tests/CIAO/NodeManager-Deployments/Components/SimpleAttribute.cidl:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/Components/SimpleAttribute.idl:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/Components/SimpleAttribute.mpc:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/Components/SimpleAttribute_exec.h:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/Components/SimpleAttribute_exec.cpp:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/Components/SimpleAttribute_exec_export.h:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/Components/SimpleAttribute_stub_export.h:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/Components/SimpleAttribute_svnt_export.h:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/SimpleAttributeExplicitHome.cdp:
+
+ Test that excercises the setting of attributes on homes and components
+ during deployment.
+
+ Wed Nov 12 18:06:10 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Deployment/DAnCE_Properties.idl:
+
+ Added naming service integration properties.
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.h:
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/Components/SimpleUser_exec.cpp:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/SimplexConnectionExplicitHome.cdp:
+
+ Changes necessary to get simplex facet/receptacle connections working.
+
+ * DAnCE/tests/CIAO/NodeManager-Deployments/simple_nm_launcher.cpp:
+
+ Removed some extra output.
+
+ Wed Nov 12 17:14:28 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/Components/SimpleProvider_exec.cpp:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/Components/SimpleUser_exec.cpp:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/SimplexConnectionExplicitHome.cdp:
+ Changes for facet/receptacle connections, not finished yet -
+ moving to different machine.
+
+ Fri Nov 7 18:46:09 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/tests/CIAO/NodeManager-Deployments/Components/SimpleConsumer_exec.cpp:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/Components/SimpleEmitter_exec.cpp:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/EmitsConnectionExplicitHome.cdp:
+
+ Fiexes for enabling connection of a standard emits/sub connection.
+
+ Fri Nov 7 18:28:14 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/Components/SimplePublisher_exec.cpp:
+
+ Fixes for enabling connection of a standard pub/sub connection.
+
+ Fri Nov 7 15:10:58 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CCF/CCF/CIDL/CIDL.mpc:
+ * CCF/CCF/CIDL/SemanticAction/Impl/Composition.cpp:
+ * CCF/CCF/CIDL/SemanticAction/Impl/HomeExecutor.cpp:
+ * CCF/CCF/IDL2/IDL2.mpc:
+ * CCF/CCF/IDL2/LexicalAnalyzer.hpp:
+ * CCF/CCF/IDL2/LexicalAnalyzer.cpp:
+ * CCF/CCF/IDL2/Parser.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Elements.cpp:
+ * CCF/CCF/IDL2/Traversal/Array.cpp:
+ * CCF/CCF/IDL3/IDL3.mpc:
+ * CIDLC/CIDLC.mwc:
+
+ Reverted to revision 80830, as changes proposed in bug #3849
+ caused a segmentation fault in Linux.
+
+ Fri Nov 7 14:57:53 UTC 2008 William R. Otte <wotte@william-r-ottes-macbook-pro.local>
+
+ * DAnCE/tests/CIAO/NodeManager-Deployments/PublishConnectionExplicitHome.cdp:
+ Test plan that will excercise a publish/subscribe connection.
+
+ Thu Nov 6 20:55:19 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CCF/CCF/CIDL/CIDL.mpc:
+
+ Added reference to '.' in Source_Files accidentally (?) removed
+ by Tue Nov 4 10:10:28 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>.
+
+ Thu Nov 6 20:25:28 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CCF/CCF/IDL2/IDL2.mpc
+ * CCF/CCF/IDL3/IDL3.mpc
+ Set /P flag for the archiver with bmake
+
+ Thu Nov 6 19:25:22 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/XSCRT/XML.hpp:
+ * tools/XML/XML_Schema_Resolver.cpp:
+
+ Added support for xerces versions < 3.0.
+
+ Thu Nov 6 18:47:56 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Logger/Log_Macros.h:
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp:
+ * ciao/Containers/Session/Session_Container.cpp:
+ * ciao/Servants/Servant_Impl_Base.cpp:
+
+ Warning fixes for Linux.
+
+ Thu Nov 6 16:35:22 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.mpc:
+
+ Disabled this build.
+
+ * tests/CIAO_ComponentServer/SimpleComponent/run_test.pl:
+
+ Minor fixes.
+
+ * tools/Config_Handlers/IRDD_Handler.h:
+ * tools/Config_Handlers/IRDD_Handler.cpp:
+ * tools/Config_Handlers/XML_Typedefs.h:
+ * tools/Config_Handlers/XML_Typedefs.cpp:
+ * tools/XML/XML_Helper.tpp:
+
+ Compilation fixes.
+
+ Thu Nov 6 15:28:10 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/tests/CIAO/NodeManager-Deployments/Components/SimpleConsumer.idl:
+ * DAnCE/tests/NameServiceTest/NameServiceTest.mpc:
+ * DAnCE/tests/RedirectionServiceTest/RedirectionServiceTest.mpc:
+ * ciao/Containers/Swapping/Dynamic_Component_Activator.h:
+
+ Compilation fixes.
+
+ * tests/CIAO_ComponentServer/SimpleComponent/run_test.pl:
+
+ Added a run_test script.
+
+ Wed Nov 5 20:08:28 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CCF/CCF/IDL2/LexicalAnalyzer.cpp:
+ * CCF/CCF/IDL2/LexicalAnalyzer.hpp:
+ * CCF/CCF/IDL2/Parser.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Elements.cpp:
+ Various changes for CB2009 support
+
+ Tue Nov 4 10:10:28 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CCF/CCF/CIDL/SemanticAction/Impl/Composition.cpp:
+ * CCF/CCF/CIDL/SemanticAction/Impl/HomeExecutor.cpp:
+ Fixed ambiguity problems with CodeGear C++ Builder 2009
+
+ * CCF/CCF/CIDL/CIDL.mpc
+ Set /P flag for the archiver with bmake
+
+ Mon Nov 3 19:56:29 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeManager/NodeManager.mpc:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/Components/SimpleConsumer.idl:
+ * ciao/Containers/Session/Session_Container.mpc:
+ * tests/CIAO_ComponentServer/SimpleComponent/client.cpp:
+ * tools/XML/XML_Error_Handler.cpp:
+ * tools/XML/XML_Helper.tpp:
+
+ Compile/link fixes on linux.
+
+ Mon Nov 3 18:32:28 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc
+ * DAnCE/NodeManager/Node_Manager_Module.cpp
+ * DAnCE/NodeManager/NodeManager.mpc
+ * DAnCE/Starter/Starter.h
+ * MPC/config/cidlc.mpb
+ * MPC/config/dance_node_manager.mpb
+ * tools/XML/XML.mpc
+ Fixed various compile/link problems
+
+ Mon Nov 3 17:13:28 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeApplication/NodeApplication.mpc:
+ Added missing base project
+
+ Thu Oct 23 09:25:28 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Containers/Container_Base.h
+ * ciao/Containers/Servant_Activator.h
+ * ciao/Containers/Session/Session_Container.h
+ * ciao/Containers/Swapping/Dynamic_Component_Activator.h
+ * ciao/Contexts/Context_Impl_T.h
+ * CIDLC/ExecImplHeaderGenerator.cpp
+ * DAnCE/TargetManager/TargetManager_exec.h
+ * DAnCE/tests/CIAO/NodeManager-Deployments/Components/SimpleConsumer_exec.h
+ * DAnCE/tests/CIAO/NodeManager-Deployments/Components/SimpleEmitter_exec.h
+ * DAnCE/tests/CIAO/NodeManager-Deployments/Components/SimpleMultipleUser_exec.h
+ * DAnCE/tests/CIAO/NodeManager-Deployments/Components/SimpleNull_exec.h
+ * DAnCE/tests/CIAO/NodeManager-Deployments/Components/SimpleProvider_exec.h
+ * DAnCE/tests/CIAO/NodeManager-Deployments/Components/SimplePublisher_exec.h
+ * DAnCE/tests/CIAO/NodeManager-Deployments/Components/SimpleUser_exec.h
+ * DAnCE/tests/NodeApplicationTest/RoundTrip_exec.h
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker_exec.h
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor_exec.h
+ * examples/BasicSP/BasicSP_exec.h
+ * examples/BasicSP/BMClosedED/BMClosedED_exec.h
+ * examples/BasicSP/BMDevice/BMDevice_exec.h
+ * examples/BasicSP/BMDisplay/BMDisplay_exec.h
+ * examples/BasicSP/EC/EC_exec.h
+ * examples/Display/GPS/GPS_exec.h
+ * examples/Display/GPS/GPS_tracing_exec.h
+ * examples/Display/NavDisplay/NavDisplay_exec.h
+ * examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.h
+ * examples/Display/RateGen/RateGen_exec.h
+ * examples/Hello/Receiver/Receiver_exec.h
+ * examples/Hello/Sender/Sender_exec.h
+ * examples/Null_Component/Null_Component_exec.h
+ * examples/Swapping/Receiver/Receiver_exec.h
+ * examples/Swapping/Sender/Sender_exec.h
+ * examples/Swapping/Sender/Sender_exec_1.h
+ * examples/Swapping/Sender/Sender_exec_2.h
+ * performance-tests/Benchmark/RoundTrip/RoundTrip_exec.h
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec.h
+ * performance-tests/Protocols/Receiver/Receiver_exec.h
+ * performance-tests/Protocols/Sender/Sender_exec.h
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.h
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec.h
+ * tests/Minimum/Receiver/Receiver_exec.h
+ * tests/Minimum/Sender/Sender_exec.h
+ Use ::CORBA::LocalObject
+
+ Wed Oct 22 13:07:28 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ciao/Servants/Home_Servant_Impl_T.cpp:
+
+ Removed debug change that caused segfault.
+
+ Wed Oct 22 12:48:37 UTC 2008 William R. Otte <wotte@william-r-ottes-macbook-pro.local>
+
+ * DAnCE/Starter/Starter.cpp:
+ * DAnCE/Starter/Starter.mpc:
+ * tests/CIAO_ComponentServer/Activator/client.cpp:
+ * tests/CIAO_ComponentServer/SimpleComponent/client.cpp:
+
+ Compilation fixes.
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.h:
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/SimpleComponentExplicitHome.cdp:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/simple_nm_launcher.cpp:
+ * ciao/ComponentServer/CIAO_ComponentServer.idl:
+ * ciao/ComponentServer/CIAO_Container_Impl.h:
+ * ciao/ComponentServer/CIAO_Container_Impl.cpp:
+ * ciao/Containers/Container_Base.idl:
+ * ciao/Containers/Containers.mpc:
+ * ciao/Containers/Session/Session_Container.h:
+ * ciao/Containers/Session/Session_Container.cpp:
+ * ciao/Servants/Home_Servant_Impl_Base.cpp:
+ * ciao/Servants/Servant_Impl_Base.h:
+ * ciao/Servants/Servant_Impl_Base.cpp:
+ * ciao/Servants/Servant_Impl_T.h:
+ * ciao/Servants/Servant_Impl_T.cpp:
+
+ Fixes to have the container properly manage the lifecycle of
+ components during the teardown phase, so that the
+ SimpleComponentExplicitHome plan properly teardown.
+
+ * ciao/Logger/Log_Macros.h:
+
+ Removed non-interpreted flags from CIAO_TRACE macros.
+
+ Tue Oct 21 19:23:20 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/DomainApplication/Domain_Application_Impl.h:
+ Added missing post.h
+
+ Tue Oct 21 18:51:20 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ccm/CCM.mpc:
+ Make sure CIAO_ROOT is added to the include dirs
+
+ Fri Oct 10 01:02:20 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Deployment/DAnCE_Core.mpc:
+ * DAnCE/Deployment/DAnCE_Properties.idl:
+
+ Codify DAnCE configuration property names in IDL.
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.h:
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+
+ Implemented passivation, removal, and destruction logic.
+
+ * DAnCE/NodeManager/Node_Manager_Module.h:
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+
+ Added new command line options.
+
+ * DAnCE/tests/CIAO/NodeManager-Deployments/Components/SimpleNull.cidl:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/Components/SimpleNull.idl:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/Components/SimpleNull.mpc:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/Components/SimpleNull_exec.h:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/Components/SimpleNull_exec.cpp:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/Components/SimpleNull_exec_export.h:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/Components/SimpleNull_stub_export.h:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/Components/SimpleNull_svnt_export.h:
+
+ Component with no ports to test lifecycle operations.
+
+ * DAnCE/tests/CIAO/NodeManager-Deployments/SimpleComponentExplicitHome.cdp:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/SimpleHome.cdp:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/simple_nm_launcher.cpp:
+
+ Fixes for test passing.
+
+ * ccm/CCM_Object.idl:
+
+ Removed CIAO-specific interfaces.
+
+ * ciao/ComponentServer/CIAO_ComponentServer_Impl.cpp:
+ * ciao/ComponentServer/CIAO_Container_Impl.h:
+ * ciao/ComponentServer/CIAO_Container_Impl.cpp:
+ * ciao/ComponentServer/CIAO_Properties.idl:
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.h:
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp:
+ * ciao/Containers/Session/Session_Container.cpp:
+ * ciao/Servants/Home_Servant_Impl_Base.cpp:
+
+ Fixes for proper component/servant lifecycle management.
+
+ Tue Oct 7 19:20:38 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/tests/CIAO/NodeManager-Deployments/Components:
+ * DAnCE/tests/CIAO/Components:
+
+ Moved Components subdirectory to the NodeManager-Deployments
+ directory.
+
+ Tue Oct 7 19:16:06 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/tests/CIAO/Components:
+ * DAnCE/tests/CIAO/Components/SimpleCommon.idl:
+ * DAnCE/tests/CIAO/Components/SimpleCommon.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleCommon_stub_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleCommon_svnt_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer.cidl:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer.idl:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer_exec_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer_stub_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleConsumer_svnt_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter.cidl:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter.idl:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter_exec_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter_stub_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleEmitter_svnt_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser.cidl:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser.idl:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser_stub_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleMultipleUser_svnt_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleProvider.cidl:
+ * DAnCE/tests/CIAO/Components/SimpleProvider.idl:
+ * DAnCE/tests/CIAO/Components/SimpleProvider.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleProvider_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleProvider_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleProvider_exec_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleProvider_stub_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleProvider_svnt_export.h:
+ * DAnCE/tests/CIAO/Components/SimplePublisher.cidl:
+ * DAnCE/tests/CIAO/Components/SimplePublisher.idl:
+ * DAnCE/tests/CIAO/Components/SimplePublisher.mpc:
+ * DAnCE/tests/CIAO/Components/SimplePublisher_exec.h:
+ * DAnCE/tests/CIAO/Components/SimplePublisher_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimplePublisher_exec_export.h:
+ * DAnCE/tests/CIAO/Components/SimplePublisher_stub_export.h:
+ * DAnCE/tests/CIAO/Components/SimplePublisher_svnt_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleUser.cidl:
+ * DAnCE/tests/CIAO/Components/SimpleUser.idl:
+ * DAnCE/tests/CIAO/Components/SimpleUser.mpc:
+ * DAnCE/tests/CIAO/Components/SimpleUser_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleUser_exec.cpp:
+ * DAnCE/tests/CIAO/Components/SimpleUser_exec_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleUser_stub_export.h:
+ * DAnCE/tests/CIAO/Components/SimpleUser_svnt_export.h:
+
+ Several components that individually test a single port type.
+
+ Tue Oct 7 14:50:57 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Logger/Log_Macros.h:
+ * DAnCE/Logger/Logger_Service.cpp:
+
+ Missing from previous commit.
+
+ * DAnCE/tests/CIAO:
+ * tests/DAnCE:
+ * tests/DAnCE/NodeManager-Deployments:
+ * tests/DAnCE/NodeManager-Deployments/SimpleHome.cdp:
+ * tests/DAnCE/NodeManager-Deployments/nm_launcher.mpc:
+ * tests/DAnCE/NodeManager-Deployments/simple_nm_launcher.cpp:
+
+ Moved test under DAnCE tree.
+
+ Tue Oct 7 14:37:30 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Logger/Log_Macros.h:
+ * DAnCE/Logger/Logger_Service.cpp:
+
+ Bugfixes.
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.h:
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+ * DAnCE/NodeManager/Node_Manager_Module.h:
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+ * ciao/ComponentServer/CIAO_Container_Impl.cpp:
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp:
+
+ Fixes necessary to pass NodeManager-Deployments/SimpleHome.cdp.
+
+ * DAnCE/RedirectionService/RedirectionService.cpp:
+
+ Improved logging.
+
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec.cpp:
+ * tests/DAnCE/NodeManager-Deployments:
+ * tests/DAnCE/NodeManager-Deployments/SimpleHome.cdp:
+ * tests/DAnCE/NodeManager-Deployments/nm_launcher.mpc:
+ * tests/DAnCE/NodeManager-Deployments/simple_nm_launcher.cpp:
+
+ Simple test to excercise installation of a single home.
+
+ Mon Oct 6 15:12:49 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ciao/ComponentServer/CIAO_ComponentServer.mpc:
+ * ciao/ComponentServer/CIAO_Properties.idl:
+ * ciao/ComponentServer/CIAO_Container_Impl.cpp:
+
+ Codified some component server configvalue names in IDL.
+
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.h:
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp:
+
+ Fixed a couple bugs w.r.t respecting default vs. custom server timeouts.
+
+ Wed Oct 1 20:42:34 UTC 2008 William R. Otte <wotte@70-11-197-37.area7.spcsdns.net>
+
+ * ciao/Logger/Logger_Service.cpp:
+
+ Enabling tracing inadvertantly disabled logging.
+
+ Wed Oct 1 20:27:33 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/XML_File_Intf.cpp:
+ * tools/XML/XML_Helper.h:
+ * tools/XML/XML_Helper.tpp:
+
+ Fixed some incompatibilities with Xerces 3.0, and improved logging in the
+ XML_File_Intf.
+
+ Wed Oct 1 02:08:47 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Deployment/Deployment_common.h:
+ * DAnCE/NodeApplication/NodeApplication_Impl.h:
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ * DAnCE/NodeManager/NodeManager_Impl.h:
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+
+ Changes necessary for NodeApplicationManager-NodeApplication test to pass.
+
+ Tue Sep 30 14:52:09 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeManager/Node_Manager_Module.h:
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+
+ Changes necessary to pass NodeManager-NodeApplicationManager test.
+
+ Tue Sep 30 14:32:34 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Deployment/DAnCE_Loader.h:
+ * DAnCE/Deployment/Module_Main.h:
+ * DAnCE/Logger/Log_Macros.h:
+ * DAnCE/Logger/Logger_Service.h:
+ * DAnCE/Logger/Logger_Service.cpp:
+ * DAnCE/NodeManager/NodeManager.mpc:
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+ * DAnCE/NodeManager/Node_Manager_Exec.cpp:
+ * DAnCE/NodeManager/Node_Manager_Module.h:
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+ * DAnCE/Starter/Starter.h:
+ * DAnCE/Starter/Starter.cpp:
+
+ Fixed logging infrastructure, enableed NodeManager binary and ensured
+ its ability to start up.
+
+ * ciao/Logger/Log_Macros.h:
+
+ Fixed tracing facility.
+
+ Mon Sep 29 17:26:48 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Deployment/Deployment_Connection.idl:
+ * DAnCE/Deployment/Deployment_common.h:
+ * DAnCE/NodeManager/NodeManager.mpc:
+ * DAnCE/NodeManager/NodeManager_Impl.h:
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+ * DAnCE/RedirectionService/NameServiceRedirection.h:
+ * DAnCE/RedirectionService/RedirectionService.h:
+ * DAnCE/tests/DeploymentPlanDump/test.cpp:
+ * DAnCE/tests/DeploymentPlanTestReferences/test.cpp:
+ * DAnCE/tests/DeploymentTest1/test.cpp:
+ * DAnCE/tests/MocksTest/MocksTest.cpp:
+ * DAnCE/tests/NameServiceTest/clt_main.cpp:
+ * DAnCE/tests/NameServiceTest/srv_main.cpp:
+ * DAnCE/tests/NodeApplicationManager-NodeApplication/test.cpp:
+ * DAnCE/tests/NodeManager-NodeApplicationManager/test.cpp:
+ * DAnCE/tests/ObjectLocatorTest/clt_main.cpp:
+ * DAnCE/tests/ObjectLocatorTest/srv_main.cpp:
+ * DAnCE/tests/RedirectionServiceTest/RegistrationPath.h:
+ * DAnCE/tests/RedirectionServiceTest/clt_main.cpp:
+ * DAnCE/tests/RedirectionServiceTest/srv_main.cpp:
+ * MPC/config/ccm_svnt.mpb:
+ * MPC/config/ciao_executor.mpb:
+ * MPC/config/ciao_servant.mpb:
+ * MPC/config/dance_exe.mpb:
+ * ciao/Client_init.h:
+ * ciao/ComponentServer/CIAO_ComponentServer.h:
+ * ciao/ComponentServer/CIAO_ComponentServer.cpp:
+ * ciao/ComponentServer/CIAO_ComponentServer_Impl.h:
+ * ciao/ComponentServer/CIAO_ComponentServer_Impl.cpp:
+ * ciao/ComponentServer/CIAO_Container_Impl.h:
+ * ciao/ComponentServer/CIAO_Container_Impl.cpp:
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.h:
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp:
+ * ciao/ComponentServer/Configurator_Factory.cpp:
+ * ciao/ComponentServer/Configurators/Basic_Config_Manager.h:
+ * ciao/ComponentServer/Configurators/Config_Manager.h:
+ * ciao/ComponentServer/Configurators/RTConfig_Manager.h:
+ * ciao/ComponentServer/Configurators/Server_Configurator.h:
+ * ciao/ComponentServer/Configurators/Server_Configurator.cpp:
+ * ciao/Containers/CIAO_Servant_Activator.idl:
+ * ciao/Containers/Container_Base.h:
+ * ciao/Containers/Servant_Activator.h:
+ * ciao/Containers/Servant_Activator.cpp:
+ * ciao/Containers/Session/Session_Container.h:
+ * ciao/Containers/Session/Session_Container.cpp:
+ * ciao/Logger/Logger_Service.cpp:
+ * ciao/Servants/CIAO_Port_Activator.idl:
+ * ciao/Servants/Home_Servant_Impl_T.h:
+ * ciao/Servants/Home_Servant_Impl_T.cpp:
+ * ciao/Servants/Port_Activator.h:
+ * ciao/Servants/Servant_Impl_Base.h:
+ * ciao/Servants/Servant_Impl_Base.cpp:
+ * ciao/Server_init.h:
+ * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.idl:
+ * ciaosvcs/Events/CIAO_RTEC/SimpleAddressServer.cpp:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor_exec.cpp:
+ * examples/Display/NavDisplay/NavDisplay_exec.h:
+ * examples/Hello/Hello_Base/Hello_Base.mpc:
+ * ofccm/Cdmw/CDMW_IDL.mpc:
+ * ofccm/NodeApplication/ComponentAttributesSetter.cpp:
+ * ofccm/NodeApplication/NodeApplication.mpc:
+ * ofccm/NodeApplication/ServerActivator_Impl.h:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip_exec.cpp:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec.cpp:
+ * performance-tests/Benchmark/RoundTripServer/LatencyTest.cpp:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.mpc:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.h:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.cpp:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/controller.cpp:
+ * tests/CIAO_ComponentServer/Activator/client.cpp:
+ * tests/CIAO_ComponentServer/Basic/client.cpp:
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.mpc:
+ * tests/CIAO_ComponentServer/SimpleComponent/client.cpp:
+ * tests/Minimum/Sender/Sender.mpc:
+ * tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc:
+
+ Compile fixes, converted from <> includes to "" includes where appropriate.
+
+ Tue Jun 3 14:01:08 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Deployment/Deployment_Connection.idl:
+ * DAnCE/Deployment/Deployment_common.h:
+ * DAnCE/NodeApplication/ComponentAttributesSetter.cpp:
+ * DAnCE/NodeApplication/ServerActivator_Impl.h:
+ * DAnCE/NodeManager/NodeManager_Impl.h:
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+ * DAnCE/RedirectionService/NameServiceRedirection.h:
+ * DAnCE/RedirectionService/RedirectionService.h:
+ * DAnCE/tests/MocksTest/MocksTest.cpp:
+ * DAnCE/tests/RedirectionServiceTest/RegistrationPath.h:
+ * ciao/Client_init.h:
+ * ciao/ComponentServer/CIAO_ComponentServer.h:
+ * ciao/ComponentServer/CIAO_ComponentServer.cpp:
+ * ciao/ComponentServer/CIAO_ComponentServer_Impl.h:
+ * ciao/ComponentServer/CIAO_ComponentServer_Impl.cpp:
+ * ciao/ComponentServer/CIAO_Container_Impl.h:
+ * ciao/ComponentServer/CIAO_Container_Impl.cpp:
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.h:
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp:
+ * ciao/ComponentServer/Configurator_Factory.cpp:
+ * ciao/ComponentServer/Configurators/Basic_Config_Manager.h:
+ * ciao/ComponentServer/Configurators/Config_Manager.h:
+ * ciao/ComponentServer/Configurators/RTConfig_Manager.h:
+ * ciao/ComponentServer/Configurators/Server_Configurator.h:
+ * ciao/ComponentServer/Configurators/Server_Configurator.cpp:
+ * ciao/Containers/CIAO_Servant_Activator.idl:
+ * ciao/Containers/Container_Base.h:
+ * ciao/Containers/Servant_Activator.h:
+ * ciao/Containers/Servant_Activator.cpp:
+ * ciao/Containers/Session/Session_Container.h:
+ * ciao/Containers/Session/Session_Container.cpp:
+ * ciao/Logger/Logger_Service.cpp:
+ * ciao/Servants/CIAO_Port_Activator.idl:
+ * ciao/Servants/Home_Servant_Impl_T.h:
+ * ciao/Servants/Home_Servant_Impl_T.cpp:
+ * ciao/Servants/Port_Activator.h:
+ * ciao/Servants/Servant_Impl_Base.h:
+ * ciao/Servants/Servant_Impl_Base.cpp:
+ * ciao/Server_init.h:
+ * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.idl:
+ * ciaosvcs/Events/CIAO_RTEC/SimpleAddressServer.cpp:
+ * ofccm/NodeApplication/ComponentAttributesSetter.cpp:
+ * ofccm/NodeApplication/ServerActivator_Impl.h:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/controller.cpp:
+ * tests/CIAO_ComponentServer/Activator/client.cpp:
+ * tests/CIAO_ComponentServer/Basic/client.cpp:
+ * tests/CIAO_ComponentServer/SimpleComponent/client.cpp:
+ * tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc:
+
+ Fixed includes.
+
+ Sun May 25 22:53:30 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.h:
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+
+ Stripped much of the functionality to prepare for CIAO-specific implementation.
+
+ * DAnCE/Deployment/Deployment_common.h:
+ * DAnCE/NodeApplication/NodeApplication.mpc:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ * DAnCE/NodeManager/NodeManager_Impl.h:
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+ * DAnCE/RedirectionService/CCMObjectLocator.h:
+ * MPC/config/ciao_servant.mpb:
+ * MPC/config/cidlc.mpb:
+ * MPC/config/dance_component_server_svnt.mpb:
+ * MPC/config/dance_node_application.mpb:
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.mpc:
+ * tests/IDL3/Components/SimpleComponent/SimpleComponent.mpc:
+
+ compile/link errors.
+
+ Tue May 20 18:43:42 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CIDLC/ExecImplSourceGenerator.cpp:
+
+ Fixed spelling error.
+
+ * DAnCE/Deployment/Deployment_common.h:
+
+ Added PROPERTY_MAP typedef, a hash map translating names to property values.
+
+ * MPC/config/ciao_servant.mpb:
+ * MPC/config/cidlc.mpb:
+ * MPC/config/dance_component_server_svnt.mpb:
+ * MPC/config/dance_node_application.mpb:
+ * ciao/CIAO.mpc:
+ * ciao/Client_init.cpp:
+ * ciao/Contexts/Context.mpc:
+ * ciaosvcs/Events/CIAO_Events.mpc:
+ * ciaosvcs/Events/CIAO_Events_Base/CIAO_Events_Base.mpc:
+ * ofccm/NodeApplication/NodeApplication.mpc:
+ * tests/CIAO_ComponentServer/Activator/Activator.mpc:
+
+ Compile/link fixes.
+
+ * ciao/ComponentServer/CIAO_ComponentServer.h:
+ * ciao/ComponentServer/CIAO_ComponentServer.cpp:
+ * ciao/ComponentServer/CIAO_ComponentServer.mpc:
+ * ciao/ComponentServer/CIAO_Container_Impl.cpp:
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.h:
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp:
+ * ciao/Containers/Session/Session_Container.cpp:
+ * ciao/Logger/Logger_Service.h:
+ * ciao/Logger/Logger_Service.cpp:
+
+ Compile fixes/bugfixes for bugs exposed by SimpleComponent unit test.
+
+ * tests/CIAO_ComponentServer/Basic/run_test.pl:
+
+ slight bugfix.
+
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.cidl:
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.idl:
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.mpc:
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec.h:
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec.cpp:
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec_export.h:
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_stub_export.h:
+ * tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_svnt_export.h:
+ * tests/CIAO_ComponentServer/SimpleComponent/client.cpp:
+
+ Simple unit test which manually deploys a simple component into the
+ CIAO_ComponentServer.
+
+ * tools/Config_Handlers/XSCRT/XML.hpp:
+ * tools/XML/XML_Error_Handler.h:
+ * tools/XML/XML_Error_Handler.cpp:
+ * tools/XML/XML_Helper.tpp:
+ * tools/XML/XML_Schema_Resolver.h:
+ * tools/XML/XML_Schema_Resolver.tpp:
+ * tools/XML/XML_Schema_Resolver.cpp:
+
+ Updates for Xerces 2.0
+
+ Thu Apr 10 23:44:01 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * MPC/config/ciao_cs_client.mpb:
+ * ciao/ComponentServer/CIAO_ComponentServer.mpc:
+ * ciao/ComponentServer/CIAO_ComponentServer.cpp:
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.h:
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp:
+
+ Bugfixes necessary to make the ServerActivator test work.
+
+ * tests/CIAO_ComponentServer/Activator:
+ * tests/CIAO_ComponentServer/Activator/Activator.mpc:
+ * tests/CIAO_ComponentServer/Activator/client.cpp:
+ * tests/CIAO_ComponentServer/Activator/run_test.pl:
+
+ A simple exceercise of the CIAO ServerActivator, that
+ spawns component servers then uses them to create
+ containers.
+
+ Wed Apr 9 20:08:07 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * MPC/config/ciao_exe.mpb:
+
+ Make sure CIAO executables are installed to CIAO_ROOT/bin
+
+ * ciao/ComponentServer/CIAO_ComponentServer.h:
+ * ciao/ComponentServer/CIAO_ComponentServer.cpp:
+ * ciao/ComponentServer/CIAO_ComponentServer_Impl.h:
+ * ciao/ComponentServer/CIAO_ComponentServer_Impl.cpp:
+ * ciao/ComponentServer/CIAO_Container_Impl.cpp:
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.h:
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp:
+ * ciao/ComponentServer/Configurators/Configurators.mpc:
+ * ciao/Containers/Session/Session_Container.cpp:
+ * ciao/Logger/Log_Macros.h:
+ * ciao/Servants/Port_Activator.cpp:
+
+ Fixes to make the Basic component server test work.
+
+ * tests/CIAO_ComponentServer:
+ * tests/CIAO_ComponentServer/Basic:
+ * tests/CIAO_ComponentServer/Basic/Basic.mpc:
+ * tests/CIAO_ComponentServer/Basic/client.cpp:
+ * tests/CIAO_ComponentServer/Basic/run_test.pl:
+
+ Simple test that excercises creating and removing containers.
+
+ Thu Apr 3 21:14:56 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ciao/ComponentServer/CIAO_ComponentServer.cpp:
+ * ciao/ComponentServer/CIAO_ComponentServer.mpc:
+ * ciao/ComponentServer/CIAO_ComponentServer_Impl.cpp:
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp:
+ * ciao/ComponentServer/Configurators/Basic_Config_Manager.cpp:
+ * ciao/ComponentServer/Configurators/Configurators.mpc:
+ * ciao/ComponentServer/Configurators/Server_Configurator.h:
+ * ciao/ComponentServer/Configurators/Server_Configurator.cpp:
+
+ Fixes necessary to allow the componentserver executable to start up
+ in standalone mode (i.e., without a managing ServerActivator).
+
+ Also, the name of the executable has changed to entirely lower-case.
+
+ * ofccm/NodeApplication/NodeApplication.mpc:
+
+ Renamed a project to avoid a duplicate name.
+
+ Wed Apr 2 21:23:12 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ccm/CCM.mpc:
+ * ccm/CCM_Exceptions.idl:
+ * ccm/CCM_Home.idl:
+
+ Moved some exceptions to a new file, CCM_Exceptions.idl.
+
+ * ciao/CIAO.mpc:
+ * ciao/CIAO_FailureReasons.idl:
+
+ Created IDL representing CIAO failure reasons for inclusion in exceptions
+ thrown from CIAO.
+
+ * MPC/config/ciao_server.mpb:
+ * ciao/Client_init.h:
+ * ciao/Client_init.cpp:
+ * ciao/Server_init.h:
+ * ciao/Server_init.cpp:
+
+ Moved a bunch of stuff from Server_init to Client_init, in particular,
+ the server init funciton is now implemented in terms of the
+ client's. Also moved the configvalue map functions over.
+
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.h:
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp:
+
+ Fully implemented ServerActivator implementation that spawns new
+ processes. This class is for the most part implemented using
+ the template method pattern, with a little effort it could be
+ extended to support other spawning models.
+
+ * ciao/ComponentServer/CIAO_CS_Client.idl:
+ * ciao/ComponentServer/CIAO_CS_Client_svnt_export.h:
+ * ciao/ComponentServer/CIAO_ComponentServer.h:
+ * ciao/ComponentServer/CIAO_ComponentServer.idl:
+ * ciao/ComponentServer/CIAO_ComponentServer.cpp:
+ * ciao/ComponentServer/CIAO_ComponentServer.mpc:
+ * ciao/ComponentServer/CIAO_ComponentServer_Impl.h:
+ * ciao/ComponentServer/CIAO_Container_Impl.h:
+ * ciao/ComponentServer/CIAO_Container_Impl.cpp:
+
+ Moved the CIAO-specific derivations of the component
+ server-related interfaces to CIAO::Deployment module.
+
+ Thu Mar 27 19:26:18 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ofccm/Cdmw:
+ * DAnCE/Cdmw:
+
+ Moved to ofccm specific directory.
+
+ Thu Mar 27 19:09:00 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplication/Domain_Application_Impl.cpp:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+
+ Compile fixes, runtime functionality not expected.
+
+ Thu Mar 27 18:30:16 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+
+ Logging/format changes, don't expect this to compile, mostly
+ a bookmark before I start the real work.
+
+ Thu Mar 27 18:13:07 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplication/Domain_Application_Impl.h:
+ * DAnCE/DomainApplication/Domain_Application_Impl.cpp:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.cpp:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+
+ Logging/format changes, don't expect this to compile, mostly
+ a bookmark before I start the real work.
+
+ Thu Mar 27 15:09:33 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/NodeApplication_Impl.h:
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+
+ Formatting and logging changes. I don't expect this to compile,
+ just bookmarking for future reference.
+
+ * MPC/config/ciao_session_container.mpb:
+ * ciao/ComponentServer/CIAO_ComponentServer.mpc:
+ * ciao/ComponentServer/Configurators/Basic_Config_Manager.h:
+ * ciao/Servants/Servants.mpc:
+ * ciao/Server_init.h:
+
+ Linux compile error fixes.
+
+ Mon Mar 24 16:18:46 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Logger/Log_Macros.h:
+ * ciao/Containers/Session/Session_Container.idl:
+ * ciao/Logger/Log_Macros.h:
+
+ Files missing from previous commit.
+
+ Thu Mar 20 13:04:53 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Deployment/Deployment_RepositoryManager.idl:
+ * DAnCE/bin/integ_deployment.xsl:
+
+ Added missing newlines at end of file.
+
+ * DAnCE/Logger/Logger_Service.cpp:
+
+ Added DANCE_ logging macros to match ACE_, so we can later have
+ DAnCE use a log handler that is separate from ACE.
+
+ * DAnCE/Logger/File_Logger_Backend.cpp:
+ * DAnCE/DomainApplication/Domain_Application_Impl.cpp:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.cpp:
+ * DAnCE/ExecutionManager/ExecutionManager_Module.cpp:
+ * DAnCE/NodeApplication/ComponentAttributesSetter.cpp:
+ * DAnCE/NodeApplication/ComponentInstallation_Impl.cpp:
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * DAnCE/NodeApplication/ServerActivator_Impl.cpp:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+ * DAnCE/Plan_Generator/Plan_Generator_Impl.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Module.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Module.cpp:
+ * DAnCE/RedirectionService/CCMObjectLocator.cpp:
+ * DAnCE/RedirectionService/NameServiceRedirection.cpp:
+ * DAnCE/RedirectionService/RedirectionService.cpp:
+ * DAnCE/RepositoryManager/PC_Updater.cpp:
+ * DAnCE/RepositoryManager/RM_Helper.cpp:
+ * DAnCE/RepositoryManager/RMadmin.cpp:
+ * DAnCE/RepositoryManager/RepositoryManager.cpp:
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp:
+ * DAnCE/RepositoryManager/URL_Parser.cpp:
+ * DAnCE/RepositoryManager/ZIP_Wrapper.cpp:
+ * DAnCE/Starter/Starter.cpp:
+ * DAnCE/StaticConfigurator/StaticDAnCEApp.cpp.tmpl:
+ * DAnCE/StaticConfigurator/StaticDAnCEParser.cpp:
+ * DAnCE/TargetManager/CmpClient.cpp:
+ * DAnCE/TargetManager/DomainDataManager.cpp:
+ * DAnCE/Utils/Plan_Handler.cpp:
+ * DAnCE/tests/DeploymentPlanDump/test.cpp:
+ * DAnCE/tests/DeploymentPlanTestReferences/test.cpp:
+ * DAnCE/tests/DeploymentTest1/test.cpp:
+ * DAnCE/tests/MocksTest/plCommand.In:
+ * DAnCE/tests/MocksTest/run_test.pl:
+ * DAnCE/tests/NameServiceTest/clt_main.cpp:
+ * DAnCE/tests/NameServiceTest/srv_main.cpp:
+ * DAnCE/tests/NodeApplicationManager-NodeApplication/test.cpp:
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client.cpp:
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_dynamic.cpp:
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_ex.cpp:
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_simple.cpp:
+ * DAnCE/tests/NodeApplicationTest/RoundTrip_exec.cpp:
+ * DAnCE/tests/NodeManager-NodeApplicationManager/test.cpp:
+ * DAnCE/tests/ObjectLocatorTest/clt_main.cpp:
+ * DAnCE/tests/ObjectLocatorTest/srv_main.cpp:
+ * DAnCE/tests/RedirectionServiceTest/clt_main.cpp:
+ * DAnCE/tests/RedirectionServiceTest/srv_main.cpp:
+
+ Use DANCE_ debug and error macros for diagnostics.
+
+ * ciao/Logger/Logger_Service.cpp:
+
+ Created CIAO_ debug/error macros, so the ciao logger can be replaced
+ later to not use the default ACE logger.
+
+ * ciao/Logger/File_Logger_Backend.cpp:
+ * ciao/CIAO_common.h:
+ * ciao/ComponentServer/CIAO_ComponentServer.cpp:
+ * ciao/ComponentServer/CIAO_ComponentServer.idl:
+ * ciao/ComponentServer/CIAO_ComponentServer_Impl.cpp:
+ * ciao/ComponentServer/CIAO_Container_Impl.cpp:
+ * ciao/ComponentServer/Configurators/Basic_Config_Manager.cpp:
+ * ciao/ComponentServer/Configurators/RTConfig_Manager.cpp:
+ * ciao/ComponentServer/Configurators/RTNodeApp_Configurator.cpp:
+ * ciao/ComponentServer/Configurators/Server_Configurator.cpp:
+ * ciao/Containers/CIAO_Servant_Activator.idl:
+ * ciao/Containers/Container_Base.cpp:
+ * ciao/Containers/Servant_Activator.cpp:
+ * ciao/Containers/Session/Session_Container.cpp:
+ * ciao/Containers/Swapping/Dynamic_Component_Activator.inl:
+ * ciao/Containers/Swapping/Swapping_Container.cpp:
+ * ciao/Servants/CIAO_Port_Activator.idl:
+ * ciao/Servants/Home_Servant_Impl_T.cpp:
+ * ciao/Servants/Servant_Impl_Base.cpp:
+ * ciao/Server_init.cpp:
+
+ Use CIAO_ error/debug macros instead of ACE.
+
+ Thu Mar 20 10:53:58 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/NodeApplication/NodeApplication.mpc:
+ * ciao/ComponentServer/CIAO_ComponentServer.mpc:
+ * ciao/Contexts/Context.mpc:
+ * ciao/Servants/Home_Servant_Impl_T.cpp:
+ * ciao/Servants/Servants.mpc:
+
+ Linking/compile errors that didn't crop up until a realclean.
+
+ Tue Mar 18 23:08:36 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ofccm:
+ * ofccm/NodeApplication:
+
+ Copy of the OFCCM compatible NodeApplication logic.
+
+ Tue Mar 18 22:29:19 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CIDLC/ExecImplHeaderGenerator.cpp:
+ * CIDLC/ExecImplSourceGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+ * ciao/Servants/Home_Servant_Impl_T.cpp:
+ * ciao/Servants/Port_Activator.h:
+ * ciao/Servants/Port_Activator.inl:
+ * ciao/Servants/Port_Activator.cpp:
+ * ciao/Servants/Port_Activator_T.cpp:
+ * ciao/Servants/Servant_Impl_Base.cpp:
+ * ciao/Servants/Servant_Impl_T.h:
+ * ciao/Servants/Servant_Impl_T.cpp:
+ * ciao/Containers/Session/Session_Container.cpp:
+ * ciao/ComponentServer/CIAO_ComponentServer.mpc:
+ * ciao/Containers/Containers.mpc:
+
+ Removed ciao_{post,pre}activate, and addressed some fallout from the
+ container refactoring.
+
+ * ccm/CCM_SessionComponent.idl:
+
+ Added configuration_complete to this local interface. The CCM spec does not
+ have this operation defined, only having it on the executor locator, which is not
+ a required way to implement executors (and, I believe, excluded by LWCCM!).
+
+
+ * DAnCE/TargetManager/TargetManager_exec.h:
+ * DAnCE/TargetManager/TargetManager_exec.cpp:
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_ex.cpp:
+ * DAnCE/tests/NodeApplicationTest/RoundTrip_exec.h:
+ * DAnCE/tests/NodeApplicationTest/RoundTrip_exec.cpp:
+ * ccm/CCM_Object.idl:
+ * docs/TODO.html:
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker_exec.h:
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker_exec.cpp:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor_exec.h:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor_exec.cpp:
+ * examples/BasicSP/BMClosedED/BMClosedED_exec.h:
+ * examples/BasicSP/BMClosedED/BMClosedED_exec.cpp:
+ * examples/BasicSP/BMDevice/BMDevice_exec.h:
+ * examples/BasicSP/BMDevice/BMDevice_exec.cpp:
+ * examples/BasicSP/BMDisplay/BMDisplay_exec.h:
+ * examples/BasicSP/BMDisplay/BMDisplay_exec.cpp:
+ * examples/BasicSP/EC/EC_exec.h:
+ * examples/BasicSP/EC/EC_exec.cpp:
+ * examples/Display/GPS/GPS_exec.h:
+ * examples/Display/GPS/GPS_exec.cpp:
+ * examples/Display/GPS/GPS_tracing_exec.h:
+ * examples/Display/GPS/GPS_tracing_exec.cpp:
+ * examples/Display/NavDisplay/NavDisplay_exec.h:
+ * examples/Display/NavDisplay/NavDisplay_exec.cpp:
+ * examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.h:
+ * examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.cpp:
+ * examples/Display/RateGen/RateGen_exec.h:
+ * examples/Display/RateGen/RateGen_exec.cpp:
+ * examples/Hello/Receiver/Receiver_exec.h:
+ * examples/Hello/Receiver/Receiver_exec.cpp:
+ * examples/Hello/Sender/Sender_exec.h:
+ * examples/Hello/Sender/Sender_exec.cpp:
+ * examples/Null_Component/Null_Component_exec.h:
+ * examples/Null_Component/Null_Component_exec.cpp:
+ * examples/Null_Component/StaticDAnCEApp.mpc:
+ * examples/Swapping/Receiver/Receiver.mpc:
+ * examples/Swapping/Receiver/Receiver_exec.h:
+ * examples/Swapping/Receiver/Receiver_exec.cpp:
+ * examples/Swapping/Sender/Sender.mpc:
+ * examples/Swapping/Sender/Sender_exec.h:
+ * examples/Swapping/Sender/Sender_exec.cpp:
+ * examples/Swapping/Sender/Sender_exec_1.h:
+ * examples/Swapping/Sender/Sender_exec_1.cpp:
+ * examples/Swapping/Sender/Sender_exec_2.h:
+ * examples/Swapping/Sender/Sender_exec_2.cpp:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip_exec.h:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip_exec.cpp:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec.h:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec.cpp:
+ * performance-tests/Protocols/Receiver/Receiver_exec.h:
+ * performance-tests/Protocols/Receiver/Receiver_exec.cpp:
+ * performance-tests/Protocols/Sender/Sender_exec.h:
+ * performance-tests/Protocols/Sender/Sender_exec.cpp:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.h:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.cpp:
+ * tests/Minimum/Receiver/Receiver_exec.h:
+ * tests/Minimum/Receiver/Receiver_exec.cpp:
+ * tests/Minimum/Sender/Sender_exec.h:
+ * tests/Minimum/Sender/Sender_exec.cpp:
+
+ Fallout from removing ciao_{pre,post}activate and replacing it with
+ standards based configuration_complete.
+
+ Mon Mar 17 03:49:06 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * MPC/config/ciao_servant_activator.mpb:
+ * ciao/ComponentServer/CIAO_Container_Impl.h:
+ * ciao/ComponentServer/CIAO_Container_Impl.cpp:
+ * ciao/Containers/Container_Base.h:
+ * ciao/Containers/Container_Base.idl:
+ * ciao/Containers/Container_Base.inl:
+ * ciao/Containers/Session/Session_Container.h:
+ * ciao/Containers/Session/Session_Container.inl:
+ * ciao/Containers/Session/Session_Container.cpp:
+
+ Compile error fallout from previous commits.
+
+ * docs/CIAO_Style_Guide.txt:
+
+ Added guidance for allocation and guards.
+
+ Tue Mar 11 06:34:45 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ciao/Containers/CIAO_Servant_Activator.idl:
+ * ciao/Containers/CIAO_Servant_Activator_export.h:
+ * ciao/Containers/Container_Base.h:
+ * ciao/Containers/Container_Base.idl:
+ * ciao/Containers/Container_Base.inl:
+ * ciao/Containers/Container_Base.cpp:
+ * ciao/Containers/Containers.mpc:
+ * ciao/Containers/Servant_Activator.h:
+ * ciao/Containers/Servant_Activator.cpp:
+ * ciao/Containers/Session/Session_Container.h:
+ * ciao/Containers/Session/Session_Container.inl:
+ * ciao/Containers/Session/Session_Container.cpp:
+ * ciao/Contexts/Context_Impl_Base.h:
+ * ciao/Contexts/Context_Impl_Base.inl:
+ * ciao/Contexts/Context_Impl_Base.cpp:
+ * ciao/Contexts/Context_Impl_T.h:
+ * ciao/Contexts/Context_Impl_T.cpp:
+ * ciao/Servants/CIAO_Port_Activator.idl:
+ * ciao/Servants/CIAO_Port_Activator_export.h:
+ * ciao/Servants/Home_Servant_Impl_Base.h:
+ * ciao/Servants/Home_Servant_Impl_Base.cpp:
+ * ciao/Servants/Home_Servant_Impl_T.h:
+ * ciao/Servants/Home_Servant_Impl_T.cpp:
+ * ciao/Servants/Port_Activator.h:
+ * ciao/Servants/Port_Activator.inl:
+ * ciao/Servants/Port_Activator.cpp:
+ * ciao/Servants/Port_Activator_T.h:
+ * ciao/Servants/Port_Activator_T.cpp:
+ * ciao/Servants/Servant_Impl_Base.h:
+ * ciao/Servants/Servant_Impl_Base.cpp:
+ * ciao/Servants/Servant_Impl_T.h:
+ * ciao/Servants/Servant_Impl_T.cpp:
+ * ciao/Servants/Servants.mpc:
+
+ Refactored the container interface in substantial ways. First, the containers should
+ now be implemented as locality constrained objects based on the Container_Base.idl
+ interface. This interface now contains _all_ methods that are used by servants during
+ deployment and teardown, as well as interfaces intended to be used by the external container
+ interface to initiate copmonent and home installations.
+
+ The goal here is to remove any need to have component servants dependent on specific container
+ implementation at all.
+
+ Note that there is still quite some implementation required here - new methods and changes to
+ old ones. Everything at least compiles, which is a start.
+
+ Changes to existing clients of the internal container interface should be plug-n-pray,
+ modulo changing pointer to vars.
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Codegen changes for above. Servants for Hello and BasicSP compile.
+
+ * MPC/config/ciao_port_activator_stub.mpb:
+ * MPC/config/ciao_servant_activator.mpb:
+
+ Base projects for above.
+
+ * ciao/Servants/Servant_Activator.h:
+ * ciao/Servants/Servant_Activator.cpp:
+
+ Moved to container directory.
+
+ Mon Mar 10 17:41:46 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * MPC/config/ccm.mpb:
+ * MPC/config/ccm_executor.mpb:
+ * MPC/config/ciao_client_dnc.mpb:
+ * MPC/config/ciao_executor.mpb:
+ * MPC/config/ciao_servant.mpb:
+ * MPC/config/dance_component_server_svnt.mpb:
+
+ MPC files which should have been in previous commit.
+
+ Mon Mar 10 15:45:57 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CIAO_TAO_DAnCE.mwc:
+
+ * DAnCE/Cdmw/CDMW_Deployment.idl:
+ * DAnCE/Cdmw/CDMW_IDL.idl:
+ * DAnCE/Cdmw/CDMW_IDL.mpc:
+ * DAnCE/Cdmw/CDMW_IDL_Ext.idl:
+ * DAnCE/ExecutionManager/ExecutionManager_Module.cpp:
+ * DAnCE/Logger/Logger.mpc:
+ * DAnCE/NodeApplication/ComponentAttributesSetter.h:
+ * DAnCE/NodeApplication/ComponentInstallation_Impl.h:
+ * DAnCE/NodeApplication/NodeApplication_Impl.h:
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp:
+ * MPC/config/ccm_componentserver_stub.mpb:
+ * MPC/config/ccm_componentserver_svnt.mpb:
+ * ccm/ComponentServer/ComponentServer.mpc:
+ * ciaosvcs/Events/CIAO_Events_Base/CIAO_Events.idl:
+ * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.cpp:
+ * tools/XML/XML.mpc:
+
+ Changes to fix compilation from previous refactoring
+
+ * ciao/ComponentServer/CIAO_ComponentServer.mpc:
+ * ciao/ComponentServer/CIAO_Container_Impl.cpp:
+ * ciao/Containers/Containers.mpc:
+
+ Addidional container implementation.
+
+ * ciao/Server_init.h:
+ * ciao/Server_init.cpp:
+
+ ditched the CaMelCaSe in the name utility class.
+
+ Mon Mar 10 00:57:38 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Deployment/DAnCE_Core.mpc:
+ * DAnCE/Plan_Generator/Plan_Generator.mpc:
+ * DAnCE/RepositoryManager/RepositoryManager.mpc:
+ * DAnCE/StaticConfigurator/StaticDAnCEParser.mpc:
+ * DAnCE/TargetManager/TM_Client.mpc:
+ * DAnCE/TargetManager/TargetManager.mpc:
+ * DAnCE/tests/NodeApplicationManager-NodeApplication/NodeApplicationManager-NodeApplication.mpc:
+ * DAnCE/tests/NodeApplicationTest/NodeAppTest.mpc:
+ * DAnCE/tests/NodeManager-NodeApplicationManager/NodeManager-NodeApplicationManager.mpc:
+ * MPC/config/dance_mocks.mpb:
+ * MPC/config/dance_node_application.mpb:
+ * bin/generate_component_mpc.pl:
+ * ccm/ComponentServer/ComponentServer.mpc:
+ * ciao/CIAO.mpc:
+ * ciao/ComponentServer/CIAO_ComponentServer.mpc:
+ * ciao/Containers/Containers.mpc:
+ * ciao/Contexts/Context.mpc:
+ * ciao/Servants/Servants.mpc:
+ * ciao/Valuetype_Factories/Factories.mpc:
+ * ciaosvcs/Events/CIAO_Events_Base/CIAO_Events_Base.mpc:
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker.mpc:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor.mpc:
+ * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.mpc:
+ * examples/BasicSP/BMClosedED/BMClosedED.mpc:
+ * examples/BasicSP/BMDevice/BMDevice.mpc:
+ * examples/BasicSP/BMDisplay/BMDisplay.mpc:
+ * examples/BasicSP/BasicSP.mpc:
+ * examples/BasicSP/EC/EC.mpc:
+ * examples/Display/Display_Base/Display_Base.mpc:
+ * examples/Display/GPS/GPS.mpc:
+ * examples/Display/NavDisplay/NavDisplay.mpc:
+ * examples/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc:
+ * examples/Display/RateGen/RateGen.mpc:
+ * examples/Hello/Hello_Base/Hello_Base.mpc:
+ * examples/Hello/Receiver/Receiver.mpc:
+ * examples/Hello/Sender/Sender.mpc:
+ * examples/Null_Component/Null_Component.mpc:
+ * examples/Null_Component/Null_Interface.mpc:
+ * examples/Null_Component/StaticDAnCEApp.mpc:
+ * examples/Swapping/Hello_Base/Hello_Base.mpc:
+ * examples/Swapping/Receiver/Receiver.mpc:
+ * examples/Swapping/Sender/Sender.mpc:
+ * performance-tests/Benchmark/Benchmark.mpc:
+ * performance-tests/Benchmark/Multi_Threaded/Multi_Threaded.mpc:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip.mpc:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient.mpc:
+ * performance-tests/Benchmark/RoundTripServer/RoundTripServer.mpc:
+ * performance-tests/Protocols/Controller/Controller.mpc:
+ * performance-tests/Protocols/Receiver/Receiver.mpc:
+ * performance-tests/Protocols/Sender/Sender.mpc:
+ * performance-tests/Protocols/common/Protocols.mpc:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.mpc:
+ * tests/Bug_2130_Regression/interfaces/ENW.mpc:
+ * tests/CIDL/CodeGen/Basic.mpc:
+ * tests/CIDL/CodeGen/CodeGen.mpc:
+ * tests/IDL3/Components/ComplexComponent/Attributes/Attributes.mpc:
+ * tests/IDL3/Components/ComplexComponent/EventSink/EventSink.mpc:
+ * tests/IDL3/Components/ComplexComponent/EventSource/EventSource.mpc:
+ * tests/IDL3/Components/ComplexComponent/Facets/Facets.mpc:
+ * tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles.mpc:
+ * tests/IDL3/Components/SimpleComponent/SimpleComponent.mpc:
+ * tests/IDL3/Events/Abstract/Abstract.mpc:
+ * tests/IDL3/Events/Any/Any.mpc:
+ * tests/IDL3/Events/Regular/Regular.mpc:
+ * tests/IDL3/Homes/Attributes/HomeAttributes.mpc:
+ * tests/IDL3/Homes/Basic/Basic.mpc:
+ * tests/IDL3/Homes/Factory/Factory.mpc:
+ * tests/IDL3/Homes/Finder/Finder.mpc:
+ * tests/IDL3/Homes/Inheritance/Inheritance.mpc:
+ * tests/IDL3/ImpliedIDL/All/all.mpc:
+ * tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.mpc:
+ * tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.mpc:
+ * tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.mpc:
+ * tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.mpc:
+ * tests/IDL3/ImpliedIDL/Events/Events.mpc:
+ * tests/IDL3/ImpliedIDL/Homes/Homes.mpc:
+ * tests/IDL3/Lookup/lookup_test.mpc:
+ * tests/Minimum/Minimum_Base/Minimum_Base.mpc:
+ * tests/Minimum/Receiver/Receiver.mpc:
+ * tests/Minimum/Sender/Sender.mpc:
+ * tools/Config_Handlers/CIAO_Events/CIAO_Events_Handlers.mpc:
+ * tools/Config_Handlers/Config_Handlers.mpc:
+ * tools/Config_Handlers/DynAny_Handler.mpc:
+ * tools/Config_Handlers/Package_Handlers/Package_Handlers.mpc:
+ * tools/Config_Handlers/RT-CCM/RT-CCM-Handlers.mpc:
+ * tools/XML/XML.mpc:
+
+ Adjusting for the deep-sixing of ciao_server_dnc, ciao_component_dnc,
+ and ciao_client_dnc. This probably breaks a bunch of stuff.
+
+ Mon Mar 10 00:37:35 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CIDLC/ExecutorMappingGenerator.cpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Updates for ccm refactoring.
+
+ * MPC/config/ccm_stub.mpb:
+ * MPC/config/ciao_events_base_dnc.mpb:
+ * MPC/config/ciao_events_dnc.mpb:
+ * MPC/config/dance_deployment_stub.mpb:
+
+ MPC generation errors.
+
+ Sun Mar 9 22:28:28 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * MPC/config/ciao_client.mpb:
+ * MPC/config/ciao_componentserver_stub.mpb:
+ * MPC/config/ciao_componentserver_svnt.mpb:
+ * MPC/config/ciao_config_manager.mpb:
+ * MPC/config/ciao_container_base.mpb:
+ * MPC/config/ciao_server.mpb:
+ * MPC/config/ciao_session_container.mpb:
+
+ MPC build fixes.
+
+ * ciao/CIAO.mpc:
+ * ciao/Client_init.cpp:
+ * ciao/ComponentServer/CIAO_CS_Client.idl:
+ * ciao/ComponentServer/CIAO_ComponentServer.cpp:
+ * ciao/ComponentServer/CIAO_ComponentServer.idl:
+ * ciao/ComponentServer/CIAO_ComponentServer.mpc:
+ * ciao/ComponentServer/CIAO_ComponentServer_Impl.h:
+ * ciao/ComponentServer/CIAO_ComponentServer_Impl.cpp:
+ * ciao/ComponentServer/CIAO_Container_Impl.h:
+ * ciao/ComponentServer/CIAO_Container_Impl.cpp:
+ * ciao/ComponentServer/CIAO_ServerResources.idl:
+ * ciao/ComponentServer/Configurators/Basic_Config_Manager.h:
+ * ciao/ComponentServer/Configurators/Basic_Config_Manager.inl:
+ * ciao/ComponentServer/Configurators/Basic_Config_Manager.cpp:
+ * ciao/ComponentServer/Configurators/Config_Manager.h:
+ * ciao/ComponentServer/Configurators/Configurators.mpc:
+ * ciao/ComponentServer/Configurators/NoOp_Configurator.h:
+ * ciao/ComponentServer/Configurators/RTConfig_Manager.h:
+ * ciao/ComponentServer/Configurators/Server_Configurator.h:
+ * ciao/ComponentServer/Configurators/Server_Configurator.cpp:
+ * ciao/Valuetype_Factories/Factories.mpc:
+
+ Compile fixes for previous refactoring.
+
+ * ciao/Containers/Container_Base.h:
+ * ciao/Containers/Container_Base.cpp:
+ * ciao/Containers/Containers.mpc:
+ * ciao/Containers/Session/Session_Container.h:
+ * ciao/Containers/Session/Session_Container.cpp:
+
+ Updated forward declarations to handle new component server.
+
+ * ciao/Server_init.h:
+ * ciao/Server_init.cpp:
+
+ Merged functions from CIAO_Utils.
+
+ * MPC/config/ciao_client_dnc.mpb:
+ * MPC/config/ciao_container_dnc.mpb:
+ * MPC/config/ciao_server_dnc.mpb:
+ * MPC/config/ciaodll.mpb:
+ * ciao/CCM_Core.mpc:
+ * ciao/CIAO_Core.mpc:
+ * ciao/CIAO_ServerResources.idl:
+ * ciao/CIAO_Utils.h:
+ * ciao/CIAO_Utils.cpp:
+ * ciao/CIAO_Utils_export.h:
+ * ciao/ComponentServer/Configurators/NAConfig_Manager.h:
+ * ciao/ComponentServer/Configurators/NAConfig_Manager.inl:
+ * ciao/ComponentServer/Configurators/NAConfig_Manager.cpp:
+
+ Removed these files.
+
+ Sun Mar 9 21:12:29 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ciao/Containers/Container_Base.h:
+ * ciao/Containers/Container_Base.cpp:
+ * ciao/Containers/Container_Base_export.h:
+ * ciao/Containers/Containers.mpc:
+ * ciao/Containers/Session/Session_Container.h:
+ * ciao/Containers/Session/Session_Container.cpp:
+ * ciao/Containers/Session/Session_Container_export.h:
+ * ciao/Contexts/Context.mpc:
+ * ciao/Contexts/Context_Impl_Base.h:
+ * ciao/Contexts/Context_Impl_Base.cpp:
+ * ciao/Contexts/Context_Impl_export.h:
+ * MPC/config/ciao_session_container.mpb
+ * MPC/config/ciao_container_base.mpb
+
+ MPC file, changes to logging, new, and guard macros
+ to comply with new CIAO style guidelines.
+
+ * ciao/Servants/Servants.mpc:
+ * MPC/config/ciao_servant_activator.mpb
+
+ Split activator out to its own lib.
+
+ Sun Mar 9 20:38:52 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ccm/ComponentServer:
+ * ccm/ComponentServer/ComponentServer.idl:
+ * ccm/ComponentServer/ComponentServer.mpc:
+ * ccm/ComponentServer/ComponentServer_Base.idl:
+ * ccm/ComponentServer/ComponentServer_Client.idl:
+ * MPC/config/ccm_componentserver_stub.mpb:
+ * MPC/config/ccm_componentserver_svnt.mpb:
+
+ Moved ComponentServer IDLS from DAnCE to CCM.
+
+ * ciao/CIAO_common.h:
+
+ Removed ciao_debug_level, the full range of debug message levels
+ should be used instead.
+
+ * ciao/ComponentServer/CIAO_ComponentServer.mpc:
+
+ Updated to reflect ComponentServer move above.
+
+ * ciao/Servants/CIAO_Servant_Impl_export.h:
+ * ciao/Servants/Home_Servant_Impl_Base.h:
+ * ciao/Servants/Home_Servant_Impl_T.h:
+ * ciao/Servants/Home_Servant_Impl_T.cpp:
+ * ciao/Servants/Port_Activator.h:
+ * ciao/Servants/Port_Activator_T.h:
+ * ciao/Servants/Servant_Activator.h:
+ * ciao/Servants/Servant_Activator.cpp:
+ * ciao/Servants/Servant_Impl_Base.h:
+ * ciao/Servants/Servant_Impl_Base.cpp:
+ * ciao/Servants/Servant_Impl_T.cpp:
+ * ciao/Servants/Servant_Impl_Utils_T.cpp:
+ * ciao/Servants/Servants.mpc:
+ * ciao/Servants/StandardConfigurator_Impl.h:
+
+ MPC file, changes to logging, and updated
+ to use _THROW_EX versions of new and guard macros.
+
+ * docs/CIAO_Style_Guide.txt:
+
+ Some additional style requirements for CIAO.
+
+ * DAnCE/ComponentServer:
+ * DAnCE/ComponentServer/ComponentServer.idl:
+ * DAnCE/ComponentServer/ComponentServer.mpc:
+ * DAnCE/ComponentServer/ComponentServer_Base.idl:
+ * DAnCE/ComponentServer/ComponentServer_Client.idl:
+ * DAnCE/ComponentServer/DAnCE_ComponentServer_stub_export.h:
+ * DAnCE/ComponentServer/DAnCE_ComponentServer_svnt_export.h:
+ * MPC/config/dance_component_server_stub.mpb:
+ * MPC/config/dance_component_server_svnt.mpb:
+
+ Removed these files.
+
+ Sun Mar 9 17:04:55 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * MPC/config/ccm_stub.mpb:
+
+ Updated to comply with previous commit.
+
+ Sun Mar 9 16:59:05 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ciao/ComponentServer:
+ * DAnCE/CIAO_ComponentServer:
+
+ Moved CIAO component server to ciao source tree, where it should be.
+
+ * ciao/ccm
+ * ccm
+
+ Moved CCM idl directory to root, to better indicate its non-dependency
+ on CIAO, the CCM implementation.
+
+ Sun Mar 9 16:56:42 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/CIAO_ComponentServer/CIAO_Container_Impl.h:
+ * DAnCE/CIAO_ComponentServer/CIAO_Container_Impl.cpp:
+
+ Additional fleshing of the Container implementation, note this is
+ not expected to compile, simply being committed to complete the
+ directory structure refactoring.
+
+ Sun Mar 9 16:47:24 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * MPC/config/ccm_configvalue.mpb:
+ * MPC/config/ccm_cookie.mpb:
+ * MPC/config/ccm_stub.mpb:
+ * MPC/config/ccm_svnt.mpb:
+
+ New base projects for the refactord CCM idls and valuetypes.
+
+ * ciao/CIAO_Utils.h:
+ * ciao/CIAO_Utils.cpp:
+ * ciao/CIAO_Utils_export.h:
+
+ Utility functions useful just about everywhere.
+
+ * ciao/Logger:
+
+ Renamed from CIAO_Logger
+
+ * ciao/CCM_Core.mpc:
+ * ciao/CIAO_Core.mpc:
+ * ciao/Containers:
+ * ciao/Containers/Container_Base.h:
+ * ciao/Containers/Container_Base.inl:
+ * ciao/Containers/Container_Base.cpp:
+ * ciao/Containers/Session:
+ * ciao/Containers/Session/Session_Container.h:
+ * ciao/Containers/Session/Session_Container.inl:
+ * ciao/Containers/Session/Session_Container.cpp:
+ * ciao/Containers/Swapping:
+ * ciao/Containers/Swapping/Dynamic_Component_Activator.h:
+ * ciao/Containers/Swapping/Dynamic_Component_Activator.inl:
+ * ciao/Containers/Swapping/Dynamic_Component_Activator.cpp:
+ * ciao/Containers/Swapping/Swapping_Container.h:
+ * ciao/Containers/Swapping/Swapping_Container.inl:
+ * ciao/Containers/Swapping/Swapping_Container.cpp:
+ * ciao/Contexts:
+ * ciao/Contexts/Context_Impl_Base.h:
+ * ciao/Contexts/Context_Impl_Base.inl:
+ * ciao/Contexts/Context_Impl_Base.cpp:
+ * ciao/Contexts/Context_Impl_T.h:
+ * ciao/Contexts/Context_Impl_T.cpp:
+ * ciao/Contexts/Swapping:
+ * ciao/Contexts/Swapping/CIAO_UpgradeableContext.idl:
+ * ciao/Contexts/Swapping/Upgradeable_Context_Impl_T.h:
+ * ciao/Contexts/Swapping/Upgradeable_Context_Impl_T.cpp:
+ * ciao/Servants:
+ * ciao/Servants/Home_Servant_Impl_Base.h:
+ * ciao/Servants/Home_Servant_Impl_Base.cpp:
+ * ciao/Servants/Home_Servant_Impl_T.h:
+ * ciao/Servants/Home_Servant_Impl_T.cpp:
+ * ciao/Servants/Port_Activator.h:
+ * ciao/Servants/Port_Activator.inl:
+ * ciao/Servants/Port_Activator.cpp:
+ * ciao/Servants/Port_Activator_T.h:
+ * ciao/Servants/Port_Activator_T.cpp:
+ * ciao/Servants/Servant_Activator.h:
+ * ciao/Servants/Servant_Activator.cpp:
+ * ciao/Servants/Servant_Impl_Base.h:
+ * ciao/Servants/Servant_Impl_Base.cpp:
+ * ciao/Servants/Servant_Impl_T.h:
+ * ciao/Servants/Servant_Impl_T.cpp:
+ * ciao/Servants/Servant_Impl_Utils_T.cpp:
+ * ciao/Servants/StandardConfigurator_Impl.h:
+ * ciao/Servants/StandardConfigurator_Impl.cpp:
+ * ciao/Servants/Swapping:
+ * ciao/Servants/Swapping/CIAO_SwapExec.idl:
+ * ciao/Servants/Swapping/Dynamic_Component_Servant_Base.h:
+ * ciao/Servants/Swapping/Dynamic_Component_Servant_Base.cpp:
+ * ciao/Servants/Swapping/Dynamic_Component_Servant_T.h:
+ * ciao/Servants/Swapping/Dynamic_Component_Servant_T.cpp:
+ * ciao/Servants/Swapping/Swapping_Servant_Home_Impl_Base.h:
+ * ciao/Servants/Swapping/Swapping_Servant_Home_Impl_Base.cpp:
+ * ciao/Servants/Swapping/Swapping_Servant_Home_Impl_T.h:
+ * ciao/Servants/Swapping/Swapping_Servant_Home_Impl_T.cpp:
+ * ciao/Valuetype_Factories:
+ * ciao/Valuetype_Factories/ConfigValue.h:
+ * ciao/Valuetype_Factories/ConfigValue.cpp:
+ * ciao/Valuetype_Factories/ConfigValue_Export.h:
+ * ciao/Valuetype_Factories/Cookie_Export.h:
+ * ciao/Valuetype_Factories/Cookies.h:
+ * ciao/Valuetype_Factories/Cookies.inl:
+ * ciao/Valuetype_Factories/Cookies.cpp:
+ * ciao/Valuetype_Factories/Factories.mpc:
+
+ Refactoring of the directory structure bloodbath. MPC files will come in
+ next commit.
+
+ * ciao/ccm/CCM.mpc:
+ * ciao/ccm/CCM_Base.idl:
+ * ciao/ccm/CCM_CCM2Context.idl:
+ * ciao/ccm/CCM_CCMException.idl:
+ * ciao/ccm/CCM_Component.idl:
+ * ciao/ccm/CCM_ComponentId.idl:
+ * ciao/ccm/CCM_Configurator.idl:
+ * ciao/ccm/CCM_Container.idl:
+ * ciao/ccm/CCM_Container_Ex.idl:
+ * ciao/ccm/CCM_Context.idl:
+ * ciao/ccm/CCM_Cookie.idl:
+ * ciao/ccm/CCM_EnterpriseComponent.idl:
+ * ciao/ccm/CCM_Entity2Context.idl:
+ * ciao/ccm/CCM_EntityComponent.idl:
+ * ciao/ccm/CCM_EntityContext.idl:
+ * ciao/ccm/CCM_Enumeration.idl:
+ * ciao/ccm/CCM_EventBase.idl:
+ * ciao/ccm/CCM_EventConsumerBase.idl:
+ * ciao/ccm/CCM_Events.idl:
+ * ciao/ccm/CCM_ExecutorLocator.idl:
+ * ciao/ccm/CCM_Home.idl:
+ * ciao/ccm/CCM_HomeConfiguration.idl:
+ * ciao/ccm/CCM_HomeExecutorBase.idl:
+ * ciao/ccm/CCM_HomeFinder.idl:
+ * ciao/ccm/CCM_HomeRegistration.idl:
+ * ciao/ccm/CCM_KeylessCCMHome.idl:
+ * ciao/ccm/CCM_Navigation.idl:
+ * ciao/ccm/CCM_Object.idl:
+ * ciao/ccm/CCM_PrimaryKeyBase.idl:
+ * ciao/ccm/CCM_ProxyHomeRegistration.idl:
+ * ciao/ccm/CCM_Receptacle.idl:
+ * ciao/ccm/CCM_Session2Context.idl:
+ * ciao/ccm/CCM_SessionComponent.idl:
+ * ciao/ccm/CCM_SessionContext.idl:
+ * ciao/ccm/CCM_SessionSynchronization.idl:
+ * ciao/ccm/CCM_StandardConfigurator.idl:
+ * ciao/ccm/CCM_StateIdFactory.idl:
+ * ciao/ccm/CCM_Stub_Export.h:
+ * ciao/ccm/CCM_Svnt_Export.h:
+ * ciao/ccm/CCM_Transaction.idl:
+ * ciao/ccm/Components.idl:
+ * ciao/ccm/CosPersistentState.idl:
+ * ciao/ccm/Security.idl:
+ * ciao/ccm/extension:
+
+ All spec defined IDLs were moved to ccm subdirectory.
+
+ * ciao/CCM_Base.idl:
+ * ciao/CCM_CCM2Context.idl:
+ * ciao/CCM_CCMException.idl:
+ * ciao/CCM_Component.idl:
+ * ciao/CCM_ComponentId.idl:
+ * ciao/CCM_Configurator.idl:
+ * ciao/CCM_Container.idl:
+ * ciao/CCM_Container_Ex.idl:
+ * ciao/CCM_Context.idl:
+ * ciao/CCM_Cookie.idl:
+ * ciao/CCM_EnterpriseComponent.idl:
+ * ciao/CCM_Entity2Context.idl:
+ * ciao/CCM_EntityComponent.idl:
+ * ciao/CCM_EntityContext.idl:
+ * ciao/CCM_Enumeration.idl:
+ * ciao/CCM_EventBase.idl:
+ * ciao/CCM_EventConsumerBase.idl:
+ * ciao/CCM_Events.idl:
+ * ciao/CCM_ExecutorLocator.idl:
+ * ciao/CCM_Home.idl:
+ * ciao/CCM_HomeConfiguration.idl:
+ * ciao/CCM_HomeExecutorBase.idl:
+ * ciao/CCM_HomeFinder.idl:
+ * ciao/CCM_HomeRegistration.idl:
+ * ciao/CCM_KeylessCCMHome.idl:
+ * ciao/CCM_Navigation.idl:
+ * ciao/CCM_Object.idl:
+ * ciao/CCM_PrimaryKeyBase.idl:
+ * ciao/CCM_ProxyHomeRegistration.idl:
+ * ciao/CCM_Receptacle.idl:
+ * ciao/CCM_Session2Context.idl:
+ * ciao/CCM_SessionComponent.idl:
+ * ciao/CCM_SessionContext.idl:
+ * ciao/CCM_SessionSynchronization.idl:
+ * ciao/CCM_StandardConfigurator.idl:
+ * ciao/CCM_StateIdFactory.idl:
+ * ciao/CCM_Transaction.idl:
+ * ciao/CIAO_Logger:
+ * ciao/CIAO_Logger/CIAOLoggerFactory.h:
+ * ciao/CIAO_Logger/CIAO_Logger_Export.h:
+ * ciao/CIAO_Logger/File_Logger_Backend.h:
+ * ciao/CIAO_Logger/File_Logger_Backend.cpp:
+ * ciao/CIAO_Logger/Logger.mpc:
+ * ciao/CIAO_Logger/Logger_Service.h:
+ * ciao/CIAO_Logger/Logger_Service.cpp:
+ * ciao/CIAO_SwapExec.idl:
+ * ciao/CIAO_UpgradeableContext.idl:
+ * ciao/Components.idl:
+ * ciao/ConfigValue.h:
+ * ciao/ConfigValue.cpp:
+ * ciao/Container_Base.h:
+ * ciao/Container_Base.inl:
+ * ciao/Container_Base.cpp:
+ * ciao/Context_Impl_Base.h:
+ * ciao/Context_Impl_Base.inl:
+ * ciao/Context_Impl_Base.cpp:
+ * ciao/Context_Impl_T.h:
+ * ciao/Context_Impl_T.cpp:
+ * ciao/Cookies.h:
+ * ciao/Cookies.inl:
+ * ciao/Cookies.cpp:
+ * ciao/CosPersistentState.idl:
+ * ciao/Dynamic_Component_Activator.h:
+ * ciao/Dynamic_Component_Activator.inl:
+ * ciao/Dynamic_Component_Activator.cpp:
+ * ciao/Dynamic_Component_Servant_Base.h:
+ * ciao/Dynamic_Component_Servant_Base.cpp:
+ * ciao/Dynamic_Component_Servant_T.h:
+ * ciao/Dynamic_Component_Servant_T.cpp:
+ * ciao/Home_Servant_Impl_Base.h:
+ * ciao/Home_Servant_Impl_Base.cpp:
+ * ciao/Home_Servant_Impl_T.h:
+ * ciao/Home_Servant_Impl_T.cpp:
+ * ciao/Object_Set_T.h:
+ * ciao/Object_Set_T.inl:
+ * ciao/Object_Set_T.cpp:
+ * ciao/Port_Activator.h:
+ * ciao/Port_Activator.inl:
+ * ciao/Port_Activator.cpp:
+ * ciao/Port_Activator_T.h:
+ * ciao/Port_Activator_T.cpp:
+ * ciao/Security.idl:
+ * ciao/Servant_Activator.h:
+ * ciao/Servant_Activator.cpp:
+ * ciao/Servant_Impl_Base.h:
+ * ciao/Servant_Impl_Base.cpp:
+ * ciao/Servant_Impl_T.h:
+ * ciao/Servant_Impl_T.cpp:
+ * ciao/Servant_Impl_Utils_T.cpp:
+ * ciao/Session_Container.h:
+ * ciao/Session_Container.inl:
+ * ciao/Session_Container.cpp:
+ * ciao/StandardConfigurator_Impl.h:
+ * ciao/StandardConfigurator_Impl.cpp:
+ * ciao/Swapping_Container.h:
+ * ciao/Swapping_Container.inl:
+ * ciao/Swapping_Container.cpp:
+ * ciao/Swapping_Servant_Home_Impl_Base.h:
+ * ciao/Swapping_Servant_Home_Impl_Base.cpp:
+ * ciao/Swapping_Servant_Home_Impl_T.h:
+ * ciao/Swapping_Servant_Home_Impl_T.cpp:
+ * ciao/Upgradeable_Context_Impl_T.h:
+ * ciao/Upgradeable_Context_Impl_T.cpp:
+ * ciao/extension:
+ * ciao/extension/CCM_ClientContainerInterceptor.idl:
+ * ciao/extension/CCM_ClientContainerInterceptorRegistration.idl:
+ * ciao/extension/CCM_ContainerClientRequestInfo.idl:
+ * ciao/extension/CCM_ContainerInterceptor.idl:
+ * ciao/extension/CCM_ContainerRequestInfo.idl:
+ * ciao/extension/CCM_ContainerServantRequestInfo.idl:
+ * ciao/extension/CCM_ContainerServerRequestInfo.idl:
+ * ciao/extension/CCM_ContainerStubRequestInfo.idl:
+ * ciao/extension/CCM_ExtensionComponent.idl:
+ * ciao/extension/CCM_ExtensionContext.idl:
+ * ciao/extension/CCM_InvalidRegistration.idl:
+ * ciao/extension/CCM_QoS.idl:
+ * ciao/extension/CCM_ServantContainerInterceptor.idl:
+ * ciao/extension/CCM_ServantContainerInterceptorRegistration.idl:
+ * ciao/extension/CCM_ServerContainerInterceptor.idl:
+ * ciao/extension/CCM_ServerContainerInterceptorRegistration.idl:
+ * ciao/extension/CCM_StubContainerInterceptor.idl:
+ * ciao/extension/CCM_StubContainerInterceptorRegistration.idl:
+ * ciao/extension/ExtensionContext.h:
+ * ciao/extension/ExtensionContext.cpp:
+
+ Removed these files.
+
+ Sun Mar 9 05:25:41 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/CIAO_ComponentServer/CIAO_ComponentServer.cpp:
+ * DAnCE/CIAO_ComponentServer/CIAO_ComponentServer.mpc:
+ * DAnCE/CIAO_ComponentServer/CIAO_ComponentServer_Impl.cpp:
+ * DAnCE/CIAO_ComponentServer/Configurator_Factory.cpp:
+
+ Updates for moves below.
+
+ * DAnCE/CIAO_ComponentServer/Configurators:
+ * DAnCE/CIAO_ComponentServer/Configurators/Basic_Config_Manager_export.h:
+ * DAnCE/CIAO_ComponentServer/Configurators/Basic_Configurator_export.h:
+ * DAnCE/CIAO_ComponentServer/Configurators/ComponentServer_Configurator_export.h:
+ * DAnCE/CIAO_ComponentServer/Configurators/Config_Manager.h:
+ * DAnCE/CIAO_ComponentServer/Configurators/Config_Manager.cpp:
+ * DAnCE/CIAO_ComponentServer/Configurators/Configurators.mpc:
+ * DAnCE/CIAO_ComponentServer/Configurators/NAConfig_Manager.h:
+ * DAnCE/CIAO_ComponentServer/Configurators/NAConfig_Manager.inl:
+ * DAnCE/CIAO_ComponentServer/Configurators/NAConfig_Manager.cpp:
+ * DAnCE/CIAO_ComponentServer/Configurators/NoOp_Configurator.h:
+ * DAnCE/CIAO_ComponentServer/Configurators/NoOp_Configurator.cpp:
+ * DAnCE/CIAO_ComponentServer/Configurators/NoOp_Configurator_export.h:
+ * DAnCE/CIAO_ComponentServer/Configurators/RTConfig_Manager.h:
+ * DAnCE/CIAO_ComponentServer/Configurators/RTConfig_Manager.inl:
+ * DAnCE/CIAO_ComponentServer/Configurators/RTConfig_Manager.cpp:
+ * DAnCE/CIAO_ComponentServer/Configurators/RTNA_Configurator_Export.h:
+ * DAnCE/CIAO_ComponentServer/Configurators/RTNodeApp_Configurator.h:
+ * DAnCE/CIAO_ComponentServer/Configurators/RTNodeApp_Configurator.cpp:
+ * DAnCE/CIAO_ComponentServer/Configurators/Server_Configurator.h:
+ * DAnCE/CIAO_ComponentServer/Configurators/Server_Configurator.cpp:
+
+ Moved all configurator related logic to subdirectory; imported
+ config managers from trunk.
+
+ * MPC/config/ciao_componentserver_svnt.mpb:
+ * MPC/config/ciao_config_manager.mpb:
+ * MPC/config/ciao_servant_dnc.mpb:
+ * MPC/config/ciao_server_dnc.mpb:
+ * MPC/config/dance_deployment_stub.mpb:
+ * MPC/config/dance_deployment_svnt.mpb:
+
+ Removed dependencies on events, as it won't work anyway until it is
+ re-implemented.
+
+ * ciao/CIAO_ServerResources.idl:
+
+ Renamed DAnCE namespace to Deployment to be consistent.
+
+ * DAnCE/CIAO_ComponentServer/ComponentServer_Configurator_export.h:
+ * DAnCE/CIAO_ComponentServer/Config_Manager.h:
+ * DAnCE/CIAO_ComponentServer/Server_Configurator.h:
+ * DAnCE/CIAO_ComponentServer/Server_Configurator.cpp:
+
+ Removed these files.
+
+ Sat Mar 8 19:45:47 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/CIAO_ComponentServer/CIAO_ComponentServer.h:
+ * DAnCE/CIAO_ComponentServer/CIAO_ComponentServer.cpp:
+ * DAnCE/CIAO_ComponentServer/CIAO_ComponentServer.mpc:
+ * DAnCE/CIAO_ComponentServer/CIAO_ComponentServer_Impl.h:
+ * DAnCE/CIAO_ComponentServer/CIAO_ComponentServer_Impl.cpp:
+ * DAnCE/CIAO_ComponentServer/CIAO_Container_Impl.h:
+ * DAnCE/CIAO_ComponentServer/CIAO_Container_Impl.cpp:
+ * DAnCE/CIAO_ComponentServer/ComponentServer_Configurator_export.h:
+ * DAnCE/CIAO_ComponentServer/Config_Manager.h:
+ * DAnCE/CIAO_ComponentServer/Configurator_Factory.h:
+ * DAnCE/CIAO_ComponentServer/Configurator_Factory.cpp:
+ * DAnCE/CIAO_ComponentServer/Server_Configurator.h:
+ * DAnCE/CIAO_ComponentServer/Server_Configurator.cpp:
+
+ Fleshed out the container implementation a bit, pulled in some elements for
+ RTCORBA configuration from the trunk NodeApplication.
+
+ * ciao/CCM_Core.mpc:
+ * ciao/CIAO_ServerResources.idl:
+
+ Server resources IDL pulled in from trunk.
+
+ Fri Mar 7 03:39:10 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CIAO_TAO_DAnCE.mwc:
+
+ Added DII libraries for attribute setter.
+
+ * DAnCE/CIAO_ComponentServer/CIAO_ComponentServer.idl:
+ * DAnCE/CIAO_ComponentServer/CIAO_ComponentServer.mpc:
+ * DAnCE/CIAO_ComponentServer/CIAO_ComponentServer_Impl.h:
+ * DAnCE/Cdmw/CDMW_IDL.idl:
+ * DAnCE/ComponentServer/ComponentServer.idl:
+ * DAnCE/ComponentServer/ComponentServer_Client.idl:
+ * DAnCE/DomainApplication/DomainApplication.mpc:
+ * DAnCE/DomainApplication/Domain_Application_Impl.cpp:
+ * DAnCE/ExecutionManager/ExecutionManager.mpc:
+ * DAnCE/Logger/File_Logger_Backend.h:
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * DAnCE/NodeApplication/ServerActivator_Impl.cpp:
+ * DAnCE/NodeManager/NodeManager.mpc:
+ * DAnCE/NodeManager/Node_Manager_Module.h:
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+ * DAnCE/Starter/Starter.cpp:
+ * ciao/CIAO_Logger/File_Logger_Backend.h:
+ * ciao/CIAO_Logger/File_Logger_Backend.cpp:
+ * tools/Config_Handlers/XML_Typedefs.h:
+
+ VC8 compiler error/warnings.
+
+ Thu Mar 6 18:24:12 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * MPC/config/dance_component_server_svnt.mpb:
+
+ Adding this long missing base project.
+
+ Thu Mar 6 17:45:05 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/CIAO_ComponentServer/CIAO_CS_Client.idl:
+ * DAnCE/CIAO_ComponentServer/CIAO_ComponentServer.h:
+ * DAnCE/CIAO_ComponentServer/CIAO_ComponentServer.cpp:
+ * DAnCE/CIAO_ComponentServer/CIAO_ComponentServer.idl:
+ * DAnCE/CIAO_ComponentServer/CIAO_ComponentServer_Impl.h:
+ * DAnCE/CIAO_ComponentServer/CIAO_ComponentServer_Impl.cpp:
+ * DAnCE/CIAO_ComponentServer/CIAO_Container_Impl.cpp:
+ * DAnCE/CIAO_ComponentServer/CIAO_ServerActivator_Impl.h:
+ * DAnCE/CIAO_ComponentServer/CIAO_ServerActivator_Impl.cpp:
+
+ Component Server implementation, no-op implementations
+ for all servants.
+
+ * DAnCE/ComponentServer/ComponentServer_Client.idl:
+
+ Added newline at end of file.
+
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp:
+
+ Warning fix.
+
+ * MPC/config/ciao.mpb:
+ * MPC/config/ciao_exe.mpb:
+ * MPC/config/ciao_lib.mpb:
+
+ Added ciao base projects to mirror dance base projects of similar name.
+ They are currently identical, but will be changed when the directory
+ restructuring proposal comes to consensus.
+
+ * ciao/CIAO_Logger:
+ * ciao/CIAO_Logger/CIAOLoggerFactory.h:
+ * ciao/CIAO_Logger/CIAO_Logger_Export.h:
+ * ciao/CIAO_Logger/File_Logger_Backend.h:
+ * ciao/CIAO_Logger/File_Logger_Backend.cpp:
+ * ciao/CIAO_Logger/Logger.mpc:
+ * ciao/CIAO_Logger/Logger_Service.h:
+ * ciao/CIAO_Logger/Logger_Service.cpp:
+
+ CIAO logger based on logger implemented for DAnCE.
+
+ * ciao/CIAO_common.h:
+
+ Added CLINFO define, which provides the default decorators
+ for all CIAO logging messages.
+
+ Thu Mar 6 05:52:09 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/CIAO_ComponentServer/CIAO_CS_Client.idl:
+ * DAnCE/CIAO_ComponentServer/CIAO_ComponentServer.cpp:
+ * DAnCE/CIAO_ComponentServer/CIAO_ComponentServer.idl:
+ * DAnCE/CIAO_ComponentServer/CIAO_ComponentServer.mpc:
+ * DAnCE/CIAO_ComponentServer/CIAO_ComponentServer_Impl.h:
+ * DAnCE/CIAO_ComponentServer/CIAO_ComponentServer_Impl.cpp:
+ * DAnCE/CIAO_ComponentServer/CIAO_ComponentServer_stub_export.h:
+ * DAnCE/CIAO_ComponentServer/CIAO_ComponentServer_svnt_export.h:
+ * DAnCE/CIAO_ComponentServer/CIAO_Container_Impl.h:
+ * DAnCE/CIAO_ComponentServer/CIAO_Container_Impl.cpp:
+ * DAnCE/CIAO_ComponentServer/CIAO_ServerActivator_Impl.h:
+ * DAnCE/CIAO_ComponentServer/CIAO_ServerActivator_Impl.cpp:
+ * MPC/config/ciao_componentserver_stub.mpb
+
+ Implementation skeletons for the CIAO component server.
+
+ * DAnCE/ComponentServer/ComponentServer.idl:
+ * DAnCE/ComponentServer/ComponentServer.mpc:
+ * DAnCE/ComponentServer/ComponentServer_Base.idl:
+ * DAnCE/ComponentServer/ComponentServer_Client.idl:
+
+ Refactored for some preliminary footprint optimizations.
+
+ Wed Mar 5 16:48:16 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/IDL3_to_IDL2/CdmwBE.cpp:
+ * tools/IDL3_to_IDL2/CdmwBEExtern.hpp:
+ * tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc:
+ * tools/IDL3_to_IDL2/be_extern.h:
+ * tools/IDL3_to_IDL2/be_init.cpp:
+
+ Fixed to comply with new interfaces exptected by the IDL
+ compiler. Thanks to Jeff Parsons for the fixes.
+
+ Wed Mar 5 16:09:13 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * ChangeLog:
+
+ Cleared out non-branch changelog entries.
+
+ Wed Mar 5 16:06:07 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/ExecutionManager/ExecutionManager_Module.cpp:
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp:
+ * DAnCE/RedirectionService/CCMObjectLocator.cpp:
+ * DAnCE/Starter/Starter.cpp:
+ * tools/Config_Handlers/Basic_Deployment_Data.cpp:
+ * tools/Config_Handlers/XMI.cpp:
+
+ Warning fixes.
+
+ Tue Mar 4 22:29:37 UTC 2008 William R. Otte <wotte@dre.vanderbilt.eduC>
+
+ * DAnCE/Cdmw/CDMW_Deployment.idl:
+ * DAnCE/Cdmw/CDMW_IDL.idl:
+ * DAnCE/Cdmw/CDMW_IDL.mpc:
+ * DAnCE/Cdmw/CDMW_IDL_Ext.idl:
+ * DAnCE/ComponentServer:
+ * DAnCE/ComponentServer/ComponentServer.idl:
+ * DAnCE/ComponentServer/ComponentServer.mpc:
+ * DAnCE/ComponentServer/DAnCE_ComponentServer_stub_export.h:
+ * DAnCE/ComponentServer/DAnCE_ComponentServer_svnt_export.h:
+ * DAnCE/NodeApplication/NodeApplication.mpc:
+ * DAnCE/NodeApplication/NodeApplication_Impl.h:
+ * DAnCE/NodeApplication/ServerActivator_Impl.h:
+ * MPC/config/dance_component_server.mpb:
+ * MPC/config/dance_component_server_stub.mpb:
+ * ciao/Session_Container.cpp:
+
+ Refactored generic component server interface into its
+ own directory and IDL files.
+
+ * DAnCE/Logger/File_Logger_Backend.h:
+ * DAnCE/Logger/File_Logger_Backend.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp:
+ * tools/Config_Handlers/ADD_Handler.cpp:
+ * tools/Config_Handlers/Config_Handlers.mpc:
+ * tools/Config_Handlers/DnC_Dump.h:
+ * tools/Config_Handlers/DnC_Dump.cpp:
+ * tools/Config_Handlers/IDD_Handler.cpp:
+ * tools/Config_Handlers/MDD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/SID_Handler.cpp:
+
+ Changes necessary to cope with changes in ACE/TAO.
+
+ * MPC/config/dance_deployment_stub.mpb:
+ * MPC/config/dance_deployment_svnt.mpb:
+
+ Pulled over from OFDAnCE.
+
+ * ciao/CCM_Core.mpc:
+ * ciao/CCM_Home.idl:
+ * ciao/ConfigValue.h:
+ * ciao/ConfigValue.cpp:
+
+ Add an IDL type and config value factory from OFDAnCE.
+
+
+ * tools/IDL3_to_IDL2/CdmwBE.cpp:
+ * tools/IDL3_to_IDL2/CdmwBEExtern.hpp:
+ * tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc:
+
+ Some changes here I can't figure out, need Jeff to look.
+ Disabled until then.
+
+ * tools/XML:
+ * tools/XML/CIAO_XML_Utils_Export.h:
+ * tools/XML/XML.mpc:
+ * tools/XML/XML_Error_Handler.h:
+ * tools/XML/XML_Error_Handler.cpp:
+ * tools/XML/XML_Helper.h:
+ * tools/XML/XML_Helper.tpp:
+ * tools/XML/XML_Schema_Resolver.h:
+ * tools/XML/XML_Schema_Resolver.cpp:
+ * tools/XML/XML_Schema_Resolver.tpp:
+ * tools/XML/XercesString.h:
+ * tools/XML/XercesString.cpp:
+ * MPC/config/ciao_config_handlers.mpb:
+ * MPC/config/ciao_config_handlers_base.mpb:
+
+ Pulled XML utils over from OFDAnCE, missed in initial import.
+
+ Tue Mar 4 05:39:19 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * MPC/config/ciao_config_manager.mpb:
+ * MPC/config/ciao_domainapplicationmanager_dnc.mpb:
+ * MPC/config/ciao_executionmanager_stub.mpb:
+ * MPC/config/ciao_nodeapplication.mpb:
+ * MPC/config/ciao_nodemanager_stub.mpb:
+ * MPC/config/ciao_noop_configurator.mpb:
+ * MPC/config/ciao_servant_dnc.mpb:
+ * MPC/config/ciao_server_dnc.mpb:
+ * MPC/config/ciaodll.mpb:
+ * MPC/config/dance_cdmw_idl.mpb:
+ * MPC/config/dance_deployment_stub.mpb:
+ * MPC/config/dance_deployment_svnt.mpb:
+ * MPC/config/dance_domain_application.mpb:
+ * MPC/config/dance_domain_application_manager.mpb:
+ * MPC/config/dance_exe.mpb:
+ * MPC/config/dance_executionmanager_stub.mpb:
+ * MPC/config/dance_extension_stub.mpb:
+ * MPC/config/dance_lib.mpb:
+ * MPC/config/dance_logger.mpb:
+ * MPC/config/dance_mocks.mpb:
+ * MPC/config/dance_node_application.mpb:
+ * MPC/config/dance_node_application_manager.mpb:
+ * MPC/config/dance_node_manager.mpb:
+ * MPC/config/dance_nodemanager_stub.mpb:
+ * MPC/config/dance_redirection_service.mpb:
+ * MPC/config/dance_utils.mpb:
+
+ Pulled necessary mpb files from OFDAnCE to allow generation of
+ makefiles.
+
+ * ciao/CCM_Core.mpc:
+
+ ciao_deployment_*.mpb changes to dance_deployment_*.mpb.
+
+ Tue Mar 4 05:19:46 UTC 2008 William Otte <wotte@william-ottes-macbook-pro.local>
+
+ * MPC/config:
+ recovered from trunk.
+
+ Tue Mar 4 05:10:21 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplication/Domain_Application_Impl.h:
+ * DAnCE/DomainApplication/Domain_Application_Impl.cpp:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h:
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp:
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.h:
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.cpp:
+ * DAnCE/ExecutionManager/ExecutionManager_Module.h:
+ * DAnCE/ExecutionManager/ExecutionManager_Module.cpp:
+ * DAnCE/NodeApplication/ComponentInstallation_Impl.h:
+ * DAnCE/NodeApplication/ComponentInstallation_Impl.cpp:
+ * DAnCE/NodeApplication/NodeApplication_Impl.h:
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * DAnCE/NodeApplication/ServerActivator_Impl.h:
+ * DAnCE/NodeApplication/ServerActivator_Impl.cpp:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp:
+ * DAnCE/NodeManager/NodeManager_Impl.h:
+ * DAnCE/NodeManager/NodeManager_Impl.cpp:
+ * DAnCE/NodeManager/Node_Manager_Module.h:
+ * DAnCE/NodeManager/Node_Manager_Module.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.h:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Module.h:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Module.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.h:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Module.h:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Module.cpp:
+ * DAnCE/RedirectionService/CCMObjectLocator.h:
+ * DAnCE/RedirectionService/CCMObjectLocator.cpp:
+ * DAnCE/tests/MocksTest/MockObjectHome.h:
+ * DAnCE/tests/MocksTest/MockObjectHome.cpp:
+ * DAnCE/tests/NameServiceTest/DummyImpl.h:
+ * DAnCE/tests/NameServiceTest/DummyImpl.cpp:
+ * DAnCE/tests/ObjectLocatorTest/DummyImpl.h:
+ * DAnCE/tests/ObjectLocatorTest/DummyImpl.cpp:
+ * DAnCE/tests/RedirectionServiceTest/DummyImpl.h:
+ * DAnCE/tests/RedirectionServiceTest/DummyImpl.cpp:
+
+ Removed emulated exception macros using rm_exception_macros.pl
+
+ Tue Mar 4 03:48:11 UTC 2008 William Otte <wotte@william-ottes-macbook-pro.local>
+
+ * DAnCE:
+ * tools:
+ * docs/schema:
+
+ Imports from OFDAnCE.
+
+ Tue Mar 4 03:24:45 UTC 2008 William Otte <wotte@william-ottes-macbook-pro.local>
+
+ * DAnCE:
+ * tools:
+ * docs/schema:
+ * MPC/config:
+
+ Remove to make way for versions from OFDAnCE.
+
+Wed Feb 11 07:21:28 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/XSCRT/Elements.hpp:
+ Removed old code
+
+Tue Feb 10 05:39:28 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * NEWS:
+ revision bump.
+
+Mon Feb 09 12:01:28 CST 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * CIAO version 0.6.8 released.
+
+Fri Jan 30 11:59:52 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DevGuideExamples/Messenger/Administrator_Client_IDL3.mpc:
+ Added missing after
+
+Wed Jan 28 20:22:52 UTC 2009 Adam Mitz <mitza@ociweb.com>
+
+ * bin/ciao_tests.lst:
+
+ This file moved here from $ACE_ROOT/bin, see bug 2748 and the
+ ACE ChangeLog entry for Wed Jan 28 20:22:45 UTC 2009.
+
+Mon Jan 12 19:14:46 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/Config_Handlers.mpc:
+ Don't add template files to the source files
+
+Fri Jan 9 22:18:07 UTC 2009 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * tests/Minimum/Receiver/Receiver.mpc:
+ * tests/Minimum/Sender/Sender.mpc:
+
+ Append "Minimum_" to the name of the generated libraries. The generated
+ libraries had the same name as those in $CIAO_ROOT/DevGuideExamples/Messenger
+ which cause some regression tests to fail.
+
+Wed Jan 7 15:11:48 UTC 2009 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * DevGuideExamples/Messenger/Administrator.mpc:
+ * DevGuideExamples/Messenger/Receiver.mpc:
+
+ Fixed build order dependency.
+
+Tue Jan 6 20:45:19 UTC 2009 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * DevGuideExamples/Messenger/Administrator_exec_export.h:
+ * DevGuideExamples/Messenger/Administrator_stub_export.h:
+ * DevGuideExamples/Messenger/Administrator_svnt_export.h:
+ * DevGuideExamples/Messenger/Messenger_exec_export.h:
+ * DevGuideExamples/Messenger/Messenger_stub_export.h:
+ * DevGuideExamples/Messenger/Messenger_svnt_export.h:
+ * DevGuideExamples/Messenger/Receiver_exec_export.h:
+ * DevGuideExamples/Messenger/Receiver_stub_export.h:
+ * DevGuideExamples/Messenger/Receiver_svnt_export.h:
+
+ Regenerate export files.
+
+ * DevGuideExamples/Messenger/Administrator.cidl:
+ * DevGuideExamples/Messenger/Administrator.idl:
+ * DevGuideExamples/Messenger/Messenger.cidl:
+ * DevGuideExamples/Messenger/Messenger.idl:
+ * DevGuideExamples/Messenger/Receiver.cidl:
+ * DevGuideExamples/Messenger/Receiver.idl:
+
+ use #include "" instead of #include <>
+
+ * DevGuideExamples/Messenger/Administrator.mpc:
+ * DevGuideExamples/Messenger/Messenger.mpc:
+ * DevGuideExamples/Messenger/Receiver.mpc:
+
+ Updated the files to remove the executor dependency on the servant.
+
+ * DevGuideExamples/Messenger/Administrator_Client_IDL2.mpc:
+ * DevGuideExamples/Messenger/Administrator_Client_IDL3.mpc:
+ * DevGuideExamples/Messenger/StaticDAnCE/Messenger_StaticDAnCE.mpc:
+
+ Removed "requires += cidl" from the files above. We should be able
+ to build the example without needing to build the CIDLC compiler.
+
+ * DevGuideExamples/Messenger/Administrator_exec_i.h:
+ * DevGuideExamples/Messenger/Administrator_exec_i.cpp:
+ * DevGuideExamples/Messenger/History.idl:
+ * DevGuideExamples/Messenger/History_exec_i.h:
+ * DevGuideExamples/Messenger/Messenger_exec_i.h:
+ * DevGuideExamples/Messenger/Messenger_exec_i.cpp:
+ * DevGuideExamples/Messenger/Publication_exec_i.h:
+ * DevGuideExamples/Messenger/Receiver_exec_i.h:
+ * DevGuideExamples/Messenger/Receiver_exec_i.cpp:
+ * DevGuideExamples/Messenger/Runnable_exec_i.h:
+
+ Updated the files above. The executor now does not depend
+ on the servant.
+
+ * DevGuideExamples/Messenger/descriptors/run_test.pl:
+
+ Use the executables in $CIAO_ROOT/bin.
+
+Fri Dec 26 12:22:14 UTC 2008 Vladimir Zykov <vz@prismtech.com>
+
+ * tools/Config_Handlers/Package_Handlers/CPD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/test.cpp:
+ * tools/Config_Handlers/Package_Handlers/IAD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/CID_Handler.cpp:
+
+ Reverted my previous change (Thu Dec 25 15:38:41 UTC 2008).
+ It was wrong to fix the linker errors that way.
+
+ * tools/Config_Handlers/Utils/XML_Helper.cpp:
+ * tools/Config_Handlers/Utils/XML_Helper.tpp:
+ * tools/Config_Handlers/Utils/XML_Helper.h:
+ * tools/Config_Handlers/Utils/Utils.mpc:
+
+ Provided a proper fix for the linker problem on Windows.
+
+Thu Dec 25 15:38:41 UTC 2008 Vladimir Zykov <vz@prismtech.com>
+
+ * tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/CPD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/test.cpp:
+ * tools/Config_Handlers/Package_Handlers/IAD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/CID_Handler.cpp:
+
+ Fixed linker errors on Windows.
+
+ * tools/Config_Handlers/Utils/XML_Helper.cpp:
+
+ Fixed a compile warning about unused variable.
+
+Wed Dec 24 16:09:22 UTC 2008 Vladimir Zykov <vz@prismtech.com>
+
+ * tools/IDL3_to_XMI/Literals.cpp:
+ * tools/IDL3_to_XMI/Literals.h:
+ * tools/IDL3_to_XMI/IDL3_to_XMI_visitor.cpp:
+
+ Fixed more name clashes with macros, now on Windows.
+
+Wed Dec 24 11:00:29 UTC 2008 Vladimir Zykov <vladimir.zykov@prismtech.com>
+
+ * tools/Config_Handlers/Utils/XML_Helper.h:
+ * tools/Config_Handlers/Utils/XML_Schema_Resolver.h:
+
+ Fixed compile errors on Windows.
+
+ * tools/IDL3_to_XMI/IDL3_TO_XMI.mpc:
+
+ Fixed link errors on static builds.
+
+ * tools/IDL3_to_XMI/Literals.cpp:
+ * tools/IDL3_to_XMI/Literals.h:
+
+ Fixed a clash with macro on SunOS compilers.
+
+ * tools/IDL3_to_XMI/IDL3_to_XMI_visitor.cpp:
+
+ Fixed compile warnings.
+
+Tue Dec 23 15:11:07 UTC 2008 Vladimir Zykov <vzykov@prismtech.com>
+
+ * tools/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp:
+ * tools/Config_Handlers/DynAny_Handler/DynEnum_Handler.cpp:
+ * tools/Config_Handlers/Any_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/test.cpp:
+ * tools/Config_Handlers/test.cpp:
+ * tools/Config_Handlers/RT-CCM/test.cpp:
+
+ Fixed memory leaks in the tests and made few more TCHAR
+ related changes.
+
+ * tools/Config_Handlers/Utils/XercesString.cpp:
+ * tools/Config_Handlers/Utils/XercesString.h:
+
+ XStr now can be constructed from ACE_TCHAR.
+
+ * tools/Config_Handlers/Utils/XML_Helper.cpp:
+ * tools/Config_Handlers/Utils/XML_Helper.h:
+ * tools/Config_Handlers/Utils/XML_Schema_Resolver.cpp:
+ * tools/Config_Handlers/Utils/XML_Schema_Resolver.h:
+ * tools/Config_Handlers/Utils/XML_Error_Handler.h:
+ * tools/Config_Handlers/Utils/Utils.mpc:
+
+ Refactored the code so that XML_Helper now is a bit more
+ flexible in setting xml error handler and xml schema
+ resolver.
+
+ * tools/tools.mwc:
+ * tools/IDL3_to_XMI/IDL3_to_XMI_visitor.h:
+ * tools/IDL3_to_XMI/be_global.cpp:
+ * tools/IDL3_to_XMI/be_produce.cpp:
+ * tools/IDL3_to_XMI/IDL3_TO_XMI.mpc:
+ * tools/IDL3_to_XMI/be_sunsoft.cpp:
+ * tools/IDL3_to_XMI/be_init.cpp:
+ * tools/IDL3_to_XMI/CIAO_IDL3_TO_XMI_Export.h:
+ * tools/IDL3_to_XMI/be_global.h:
+ * tools/IDL3_to_XMI/be_sunsoft.h:
+ * tools/IDL3_to_XMI/Literals.cpp:
+ * tools/IDL3_to_XMI/be_extern.h:
+ * tools/IDL3_to_XMI/identifier_helper.cpp:
+ * tools/IDL3_to_XMI/Literals.h:
+ * tools/IDL3_to_XMI/be_helper.cpp:
+ * tools/IDL3_to_XMI/identifier_helper.h:
+ * tools/IDL3_to_XMI/IR_Simulator_visitor.cpp:
+ * tools/IDL3_to_XMI/IDL3_to_XMI_visitor.cpp:
+ * tools/IDL3_to_XMI/be_helper.h:
+ * tools/IDL3_to_XMI/IR_Simulator_visitor.h:
+
+ Made public an idl3_to_xmi utility for mapping IDL3 to
+ XML Metadata Interchange (XMI) format.
+
+ * tests/IDL3_to_XMI/XMI_For_Array/test.idl:
+ * tests/IDL3_to_XMI/XMI_For_Array/XMI.dtd:
+ * tests/IDL3_to_XMI/XMI_For_Array/run_test.pl:
+ * tests/IDL3_to_XMI/XMI_For_Included_File/File1.idl:
+ * tests/IDL3_to_XMI/XMI_For_Included_File/XMI.dtd:
+ * tests/IDL3_to_XMI/XMI_For_Included_File/File2.idl:
+ * tests/IDL3_to_XMI/XMI_For_Included_File/run_test.pl:
+ * tests/IDL3_to_XMI/XMI_For_Sequence/test.idl:
+ * tests/IDL3_to_XMI/XMI_For_Sequence/XMI.dtd:
+ * tests/IDL3_to_XMI/XMI_For_Sequence/run_test.pl:
+
+ Added 3 tests for the idl3_to_xmi itility.
+
+Thu Dec 18 19:42:06 UTC 2008 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/AttributeHeaderEmitters.cpp:
+
+ Fixed formatting error in code generation for readonly
+ attributes.
+
+Thu Dec 18 19:01:19 UTC 2008 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIAO_TAO_DAnCE.mwc:
+
+ Replaced lines 'CCF' and 'CIDLC' with 'CIDLC/CIDLC.mwc'
+ so the big build can pick up the special options needed
+ to build CIDLC.
+
+Thu Dec 18 17:48:00 UTC 2008 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIAO_TAO_DAnCE.mwc:
+
+ Removed the line '$ACE_ROOT/contrib/minizip/minizip.mpc'
+ since it conflicts with the line '$ACE_ROOT/contrib'.
+
+Mon Dec 15 09:36:58 UTC 2008 Olli Savia <ops@iki.fi>
+
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp:
+ Updated to use ACE::isdotdir().
+
+Fri Nov 28 11:36:00 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/NodeApplication/NodeApplication.cpp:
+ Unicode changes
+
+ * DAnCE/RepositoryManager/RepositoryManager.cpp:
+ Corrected string test
+
+ * DevGuideExamples/Messenger/Administrator_exec_i.h:
+ layout change
+
+ * MPC/config/ciao_vcwarnings.mpb:
+ Added vc10
+
+ * tools/IDL3_to_IDL2/basic_visitor.cpp:
+ * tools/IDL3_to_IDL2/be_sunsoft.cpp:
+ Use ascii format specifiers
+
+Thu Nov 27 04:09:39 CST 2008 Simon Massey <sma@prismtech.com>
+
+ * CIAO version 0.6.7 released.
+
+Tue Nov 25 15:55:00 UTC 2008 Simon Massey <sma at prismtech dot com>
+
+ * DevGuideExamples/Messenger/Receiver.mpc
+ Windows DLL import/export issue with CIDL generated bits.
+
+Mon Nov 17 15:58:12 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CCF/CCF/IDL2/Parser.hpp:
+ When interface is a define, undef it. Fixes bugzilla 3512
+
+Fri Nov 14 23:11:35 UTC 2008 Adam Mitz <mitza@ociweb.com>
+
+ * rules.ciao.GNU:
+
+ Translate \ to / in $(CIAO_ROOT).
+
+Fri Nov 14 13:53:49 UTC 2008 Vladimir Zykov <vzykov@prismtech.com>
+
+ * tools/Config_Handlers/cid.cpp:
+ * tools/Config_Handlers/DP_Handler.cpp:
+ * tools/Config_Handlers/MDD_Handler.cpp:
+ * tools/Config_Handlers/CPD_Handler.cpp:
+ * tools/Config_Handlers/pcd.cpp:
+ * tools/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp:
+ * tools/Config_Handlers/DynAny_Handler/DynEnum_Handler.cpp:
+ * tools/Config_Handlers/Property_Handler.cpp:
+ * tools/Config_Handlers/ID_Handler.cpp:
+ * tools/Config_Handlers/toplevel.cpp:
+ * tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/CPD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/NIA_Handler.h:
+ * tools/Config_Handlers/Package_Handlers/SID_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/CAD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/IAD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/CID_Handler.cpp:
+ * tools/Config_Handlers/PCD_Handler.cpp:
+ * tools/Config_Handlers/CRDD_Handler.cpp:
+ * tools/Config_Handlers/Basic_Deployment_Data.cpp:
+ * tools/Config_Handlers/CIAO_Events/CIAOEvents.cpp:
+ * tools/Config_Handlers/CIAO_Events/CIAOEvents_Handler.cpp:
+ * tools/Config_Handlers/Req_Handler.cpp:
+ * tools/Config_Handlers/ccd.cpp:
+ * tools/Config_Handlers/RDD_Handler.cpp:
+ * tools/Config_Handlers/ERE_Handler.cpp:
+ * tools/Config_Handlers/Utils/XML_Helper.cpp:
+ * tools/Config_Handlers/Utils/XML_Schema_Resolver.cpp:
+ * tools/Config_Handlers/Utils/Functors.h:
+ * tools/Config_Handlers/XML_File_Intf.cpp:
+ * tools/Config_Handlers/Deployment.cpp:
+ * tools/Config_Handlers/CCD_Handler.cpp:
+ * tools/Config_Handlers/cdd.cpp:
+ * tools/Config_Handlers/SatisfierProperty_Handler.cpp:
+ * tools/Config_Handlers/RT-CCM/PS_Handler.cpp:
+ * tools/Config_Handlers/RT-CCM/TP_Handler.cpp:
+ * tools/Config_Handlers/RT-CCM/CB_Handler.cpp:
+ * tools/Config_Handlers/RT-CCM/SRD_Handler.cpp:
+ * tools/Config_Handlers/RT-CCM/CLA_Handler.cpp:
+ * tools/Config_Handlers/RT-CCM/TPL_Handler.cpp:
+ * tools/Config_Handlers/RT-CCM/CIAOServerResources.cpp:
+ * tools/Config_Handlers/PSPE_Handler.cpp:
+ * tools/Config_Handlers/cdp.cpp:
+ * tools/Config_Handlers/cpd.cpp:
+ * tools/Config_Handlers/ComponentPropertyDescription_Handler.cpp:
+ * tools/Config_Handlers/CEPE_Handler.cpp:
+ * tools/Config_Handlers/IRDD_Handler.cpp:
+ * tools/Config_Handlers/DD_Handler.cpp:
+ * tools/Config_Handlers/ADD_Handler.cpp:
+ * tools/Config_Handlers/IDD_Handler.cpp:
+ * tools/Config_Handlers/iad.cpp:
+ * tools/IDL3_to_IDL2/basic_visitor.cpp:
+ * tools/IDL3_to_IDL2/be_sunsoft.cpp:
+ * tools/IDL3_to_IDL2/be_init.cpp:
+ * tools/IDL3_to_IDL2/be_extern.h:
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_ex.cpp:
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client.cpp:
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_dynamic.cpp:
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_simple.cpp:
+ * ciao/Client_init.cpp:
+
+ Made wchar related changes.
+
+Tue Nov 11 16:07:06 UTC 2008 James H. Hill <hillj@isis.vanderbilt.edu>
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+
+ Apparently, some compilers didn't like my updates below. The
+ problem was caused by not adding a space between the '<' and
+ '::' for a template class.
+
+Mon Nov 10 23:03:45 UTC 2008 James H. Hill <hillj@isis.vanderbilt.edu>
+
+ * MPC/config/ciaocidldefaults.mpb:
+
+ Fixed file formating.
+
+Mon Nov 10 23:00:09 UTC 2008 James H. Hill <hillj@isis.vanderbilt.edu>
+
+ * MPC/config/ciaocidldefaults.mpb:
+
+ Updated the CIDL custom define to append the '_Impl.ccd'
+ extension on the *documentation_outputext* attribute if
+ --gen-desc-file flag is specified on the command-line for
+ the CIDL compiler.
+
+Mon Nov 10 22:37:23 UTC 2008 James H. Hill <hillj@isis.vanderbilt.edu>
+
+ * CIDLC/cidlc.cpp:
+ * CIDLC/DescriptorGenerator.cpp:
+
+ Added a new command-line options --gen-desc-file for specifying the
+ filename of the component descriptor (.ccd) file.
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+
+ Updated the servant header generator to produce type definitions
+ that map to traits in its context implementation subclass.
+
+ * ciao/Context_Impl_T.h:
+ * ciao/Upgradeable_Context_Impl_T.h:
+
+ Added type definitions for the different parameter types of the
+ template class. This will increase support for using such classes
+ in generative programming applications.
+
+Mon Nov 3 12:37:00 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DevGuidExamplesMessenger/StaticDAnCE/Messenger_StaticDAnCE.mpc:
+ For the moment disable this project until there is some more
+ time to sort out the link problems
+
+Thu Oct 30 12:56:00 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/TargetManager/CmpClient.cpp:
+ Use %C to log ascii strings instead of using %s with
+ ACE_TEXT_CHAR_TO_TCHAR
+
+Thu Oct 30 10:30:00 UTC 2008 Simon Massey <sma at prismtech dot com>
+
+ * NEWS
+ Updated.
+
+Wed Oct 29 14:25:00 UTC 2008 Simon Massey <sma at prismtech dot com>
+
+ * DevGuideExamples/Messenger/StaticDAnCE/Messenger_StaticDAnCE.mpc
+ change libpath to libpaths
+
+ * DevGuideExamples/ChangeLog:
+ Incorperated into this file.
+
+Wed Oct 29 13:25:00 UTC 2008 Simon Massey <sma at prismtech dot com>
+
+ * NEWS
+ Updated.
+
+Tue Oct 28 11:04:00 UTC 2008 Simon Massey <sma at prismtech dot com>
+
+ * DevGuideExamples/Messenger/StaticDAnCE/Messenger_StaticDAnCE.mpc
+ Add libpath += ..
+
+Sun Oct 26 20:00:00 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DevGuideExamples/Messenger/StaticDAnCE/plan.h
+ Added missing include
+
+Thu Oct 23 11:49:00 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DevGuideExamples/Messenger/Administrator_exec_i.h
+ * DevGuideExamples/Messenger/History_exec_i.h
+ * DevGuideExamples/Messenger/Messenger_exec_i.h
+ * DevGuideExamples/Messenger/Publication_exec_i.h
+ * DevGuideExamples/Messenger/Receiver_exec_i.h
+ * DevGuideExamples/Messenger/Runnable_exec_i.h
+ Don't use deprecated TAO_Local_RefCounted_Object
+
+Wed Oct 22 16:24:21 UTC 2008 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * Messenger/Administrator_exec_i.h:
+ * Messenger/History_exec_i.h:
+ * Messenger/Messenger_exec_i.h:
+ * Messenger/Messenger_exec_i.cpp:
+ * Messenger/Publication_exec_i.h:
+ * Messenger/Runnable_exec_i.h:
+
+ Fixed fuzz errors. When including files from ACE/TAO/CIAO, use "" instead of <>.
+
+ Example: #include <ace/OS.h> was changed to "ace/OS.h"
+
+Wed Oct 22 14:50:02 UTC 2008 Simon Massey <sma at prismtech dot com>
+
+ * CIAO.mwc:
+
+ Fixed fuzz errors by adding "// $Id $" to the top of each file.
+
+Wed Oct 22 14:15:02 UTC 2008 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * Messenger/Administrator.cidl:
+ * Messenger/Administrator.idl:
+ * Messenger/Administrator.mpc:
+ * Messenger/Administrator_Client.cpp:
+ * Messenger/Administrator_Client_IDL2.cpp:
+ * Messenger/Administrator_Client_IDL2.mpc:
+ * Messenger/Administrator_Client_IDL3.cpp:
+ * Messenger/Administrator_Client_IDL3.mpc:
+ * Messenger/History.idl:
+ * Messenger/Message.idl:
+ * Messenger/Messenger.cidl:
+ * Messenger/Messenger.idl:
+ * Messenger/Messenger.mpc:
+ * Messenger/Publication.idl:
+ * Messenger/Receiver.cidl:
+ * Messenger/Receiver.idl:
+ * Messenger/Receiver.mpc:
+ * Messenger/Runnable.idl:
+ * Messenger/StaticDAnCE/README.txt:
+ * Messenger/StaticDAnCE/plan.h:
+ * Messenger/StaticDAnCE/run_test.pl:
+ * Messenger/descriptors/run_test.pl:
+
+ Fixed fuzz errors by adding "// $Id $" to the top of each file.
+
+Wed Oct 22 14:06:39 UTC 2008 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * readme.txt:
+
+ Added a readme file.
+
+Wed Oct 22 13:11:00 UTC 2008 Simon Massey <sma at prismtech dot com>
+
+ * Messenger/Messenger.idl:
+ * Messenger/StaticDAnCE/plan.h:
+
+ Fixed tabs found fuzz errors.
+
+ * Messenger/Administrator_Client.cpp:
+ * Messenger/StaticDAnCE/StaticDAnCEApp.cpp:
+
+ Lack of ACE_TMAIN and specified ORB_init default parameters.
+
+Wed Oct 22 08:52:00 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DevGuideExamples/*:
+ Added examples of OCI TAO Developers Guide
+
+Tue Sep 16 12:46:00 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/XSCRT/Elements.hpp:
+ Added missing include, thanks to Mark Hebbel
+ <Mark dot Hebbel at baslerweb dot com> for reporting this
+
+Tue Sep 16 12:15:00 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/ExecutionManager/Execution_Manager.cpp
+ * DAnCE/NodeManager/Node_Manager.cpp
+ * DAnCE/RepositoryManager/RepositoryManager.cpp
+ * DAnCE/TargetManager/CmpClient.cpp
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client.cpp
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_dynamic.cpp
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_ex.cpp
+ * DAnCE/tests/NodeApplicationTest/NodeApp_test_client_simple.cpp
+ * docs/tutorials/Quoter/Simple/Broker/StockBrokerDriver.cpp
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributorDriver.cpp
+ * examples/BasicSP/EC/controller.cpp
+ * examples/Display/RateGen/controller.cpp
+ * examples/Hello/Sender/starter.cpp
+ * examples/Swapping/Sender/starter.cpp
+ * performance-tests/Benchmark/RoundTrip/client.cpp
+ * performance-tests/Protocols/Controller/Controller.cpp
+ * tests/Bug_2130_Regression/SEC_CheckPoint/controller.cpp
+ * tools/Config_Handlers/CIAO_Events/test.cpp
+ * tools/Config_Handlers/Package_Handlers/test.cpp
+ * tools/Config_Handlers/RT-CCM/test.cpp
+ * tools/Config_Handlers/test.cpp
+ ACE_TCHAR changes
+
+Mon Sep 15 16:34:00 UTC 2008 Simon Massey <sma at prismtech dot com>
+
+ * NEWS:
+ Updated for x.6.6
+
+Mon Sep 15 11:08:04 UTC 2008 Simon Massey <sma@prismtech.com>
+
+ * CIAO version 0.6.6 released.
+
+Tue Aug 5 15:13:53 UTC 2008 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * performance-tests/Benchmark/RoundTrip/client.cpp:
+
+ Replace a char type local variable with an int. On some
+ platforms, chars are unsigned - in such cases, checks for
+ < 0 or > 0 cause warnings because theya re always true or
+ always false.
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc:
+
+ Added dance_utils.mpb as a base project to get the Dance_Utils
+ lib in the link list. The plan launcher executable doesn't
+ need it directly, but some versions of gcc are problematic,
+ giving warnings if such indirect linkings aren't in the
+ makefile explicitly.
+
+Thu Jul 31 17:17:06 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/XSCRT/Elements.hpp:
+
+ Stab at fixing a problem on Rawhide.
+
+Fri Jul 25 21:37:24 UTC 2008 James H. Hill <hillj@isis.vanderbilt.edu>
+
+ * CIDLC/Literals.cpp:
+
+ Bug fix related to ChangeLog entry
+
+ Tue Jul 22 07:50:38 UTC 2008 James H. Hill <hillj@isis.vanderbilt.edu>
+
+ This was resolved by converting C++ style comments that
+ preceded a close bracket '}' to a C style comment so that it
+ would force a newline to be generated, instead of thinking
+ the bracket was part of the comment (since there is no way to
+ really tell in this case).
+
+Fri Jul 25 16:05:00 UTC 2008 Simon Massey <sma at prismtech dot com>
+
+ * NEWS:
+
+ Tidied this up a little.
+
+Tue Jul 22 07:50:38 UTC 2008 James H. Hill <hillj@isis.vanderbilt.edu>
+
+ * CCF/CCF/CodeGenerationKit/IndentationCxx.hpp:
+
+ Bug fix where using a curly brace, i.e., '{' or '}', inside a
+ string or comment caused the code generator to treat it as a
+ regular curly brace. This meant the code generator inserted a
+ newline when it was not supposed to.
+
+Fri Jul 04 10:43:00 UTC 2008 Simon Massey <sma at prismtech dot com>
+
+ * tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc:
+
+ Remove extrainious character from Will's commit below.
+
+Thu Jul 3 19:21:37 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc:
+
+ Added a strict ordering dependency with TAO_IDL_EXE, as some builds
+ appear to have a race between these two, causing some errors.
+
+Wed Jul 2 12:45:53 UTC 2008 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * Updated the COPYING file to make it consistent with what's on the website.
+
+Mon Jun 30 15:41:05 UTC 2008 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/SizeTypeCalculator.cpp:
+
+ Added missing support for bounded sequences.
+
+Wed Jun 25 11:53:00 UTC 2008 Simon Massey <sma at prismtech dot com>
+
+ * DAnCE/TargetManager/CmpClient.cpp:
+
+ Remove redundant "" 3rd parameter (orbID) from ORB_init() calls.
+
+Tue Jun 24 12:23:00 UTC 2008 Simon Massey <sma at prismtech dot com>
+
+ * tools/Config_Handlers/test.cpp:
+ * tools/Config_Handlers/RT-CCM/test.cpp:
+ * tools/Config_Handlers/Package_Handlers/test.cpp:
+ * tools/Config_Handlers/CIAO_Events/test.cpp:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/controller.cpp:
+ * DAnCE/TargetManager/CmpClient.cpp:
+ * docs/tutorials/Quoter/Simple/Broker/StockBrokerDriver.cpp:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributorDriver.cpp:
+ * performance-tests/mico/mico-thrput-st/server.cc:
+ * performance-tests/mico/mico-thrput-st/client.cc:
+
+ Fix fuzz errors incorrect ACE_TMAIN/main use.
+
+Mon Jun 23 13:55:00 UTC 2008 Simon Massey <sma at prismtech dot com>
+
+ * tools/IDL3_TO_IDL2/IDL3_TO_IDL2.mpc:
+
+ Backed out change, this is not the reason.
+
+Fri Jun 20 08:50:00 UTC 2008 Simon Massey <sma at prismtech dot com>
+
+ * tools/IDL3_TO_IDL2/IDL3_TO_IDL2.mpc:
+
+ Added missing source dependancy.
+
+Thu Jun 19 14:11:00 UTC 2008 Simon Massey <sma at prismtech dot com>
+
+ * DAnCE/NodeApplication/NodeApplication_Core.cpp:
+ * DAnCE/NodeManager/Node_Manager.cpp:
+ * DAnCE/Plan_Launcher/Plan_Launcher.cpp:
+ * DAnCE/RepositoryManager/RMadmin.cpp:
+ * DAnCE/StaticConfigurator/StaticDAnCEParser.cpp:
+ * docs/tutorials/Quoter/Simple/Broker/StockBrokerDriver.cpp:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributorDriver.cpp:
+ * examples/BasicSP/EC/client.cpp:
+ * examples/BasicSP/EC/controller.cpp:
+ * examples/Display/RateGen/controller.cpp:
+ * examples/Hello/Sender/starter.cpp:
+ * examples/Null_Component/StaticDAnCEApp.cpp:
+ * examples/Swapping/Sender/starter.cpp:
+ * performance-tests/Benchmark/Multi_Threaded/client.cpp:
+ * performance-tests/Benchmark/RoundTrip/client.cpp:
+ * performance-tests/Benchmark/RoundTripClient/client.cpp:
+ * performance-tests/Protocols/Receiver/Receiver_exec.cpp:
+ * performance-tests/Protocols/Sender/Sender_exec.cpp:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/controller.cpp:
+
+ Remove redundant "" 3rd parameter (orbID) from ORB_init() calls.
+
+Mon Jun 16 19:04:42 UTC 2008 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * tools/Config_Handlers/Utils/Functors.h:
+
+ Untabify.
+
+Mon Jun 16 18:37:32 UTC 2008 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * examples/Display/GPS/GPS_exec.cpp:
+ * examples/Display/NavDisplay/NavDisplay_exec.cpp:
+
+ Untabify.
+
+Mon Jun 16 12:45:00 UTC 2008 Simon Massey <sma at prismtech dot com>
+
+ * CIAO/performance-tests/Benchmark/RoundTripClient/RoundTripClientEI.idl:
+ * CIAO/performance-tests/Benchmark/RoundTrip/RoundTripEI.idl:
+
+ Un-tabify.
+
+Sat May 31 23:31:20 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc:
+
+ Modified to take advantage of MCPP preprocessing.
+
+Mon May 19 02:53:21 CDT 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIAO version 0.6.5 released.
+
+Sun May 11 14:57:47 UTC 2008 James H. Hill <hillj@isis.vanderbilt.edu>
+
+ * CCF/CCF/CodeGenerationKit/IndentationJava.hpp:
+
+ Simple indentation implanter for Java source files.
+
+Wed May 7 06:53:02 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Deployment/Deployment_common.h:
+
+ Qualified equality operator with const to fix error with
+ Unbounded_Set.
+
+Thu May 1 00:48:38 UTC 2008 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * CIAO_TAO.mwc:
+
+ The location of ETCL moved from $ACE_ROOT to $ACE_ROOT/ace.
+
+Wed Apr 30 22:16:13 UTC 2008 James H. Hill <hillj@isis.vanderbilt.edu>
+
+ * CIAO_TAO_DAnCE.mwc:
+
+ The location of ETCL moved from $ACE_ROOT to $ACE_ROOT/ace.
+
+Mon Apr 28 14:27:32 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Context_Impl_T.h
+ * ciao/Dynamic_Component_Activator.h
+ * ciao/Servant_Activator.h
+ * CIDLC/ExecImplHeaderGenerator.cpp
+ * DAnCE/TargetManager/TargetManager_exec.h
+ * DAnCE/tests/NodeApplicationTest/RoundTrip_exec.h
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker_exec.h
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor_exec.h
+ * examples/BasicSP/BasicSP_exec.h
+ * examples/BasicSP/BMClosedED/BMClosedED_exec.h
+ * examples/BasicSP/BMDevice/BMDevice_exec.h
+ * examples/BasicSP/BMDisplay/BMDisplay_exec.h
+ * examples/BasicSP/EC/EC_exec.h
+ * examples/Display/GPS/GPS_exec.h
+ * examples/Display/GPS/GPS_tracing_exec.h
+ * examples/Display/NavDisplay/NavDisplay_exec.h
+ * examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.h
+ * examples/Display/RateGen/RateGen_exec.h
+ * examples/Hello/Receiver/Receiver_exec.h
+ * examples/Hello/Sender/Sender_exec.h
+ * examples/Null_Component/Null_Component_exec.h
+ * examples/Swapping/Receiver/Receiver_exec.h
+ * examples/Swapping/Sender/Sender_exec.h
+ * examples/Swapping/Sender/Sender_exec_1.h
+ * examples/Swapping/Sender/Sender_exec_2.h
+ * performance-tests/Benchmark/RoundTrip/RoundTrip_exec.h
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec.h
+ * performance-tests/Protocols/Receiver/Receiver_exec.h
+ * performance-tests/Protocols/Sender/Sender_exec.h
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.h
+ * tests/Minimum/Receiver/Receiver_exec.h
+ * tests/Minimum/Sender/Sender_exec.h
+ Don't use TAO_Local_RefCounted_Object but ::CORBA::LocalObject now
+ LocalObject is also refcounted. Users can still sue TAO_Local_RefCounted_Object,
+ it just does nothing, actions have been takin in LocalObject.h
+ to prevent the usage of TAO_Local_RefCounted_Object in the
+ TAO distribution itself
+
+ * CIAO_TAO.mwc
+ * CIAO_TAO_DAnCE.mwc
+ Added ETCL and monitoring
+
+Wed Apr 23 01:53:32 CDT 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIAO version 0.6.4 released.
+
+Thu Mar 27 18:51:13 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CIAO_TAO.mwc:
+ * CIAO_TAO_DAnCE.mwc:
+
+ Added minizip in ACE/contrib for RM.
+
+Thu Mar 27 14:12:41 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * MPC/config/ciaocidldefaults.mpb:
+
+ Projects that use CILC should build after CIDLC.
+
+Wed Mar 26 15:27:44 UTC 2008 Adam Mitz <mitza@ociweb.com>
+
+ * tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc:
+
+ Removed invalid and unneeded VPATH setting with the verbatim section.
+
+Mon Mar 24 02:25:23 UTC 2008 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * COPYING: Updated the license a bit based on feedback from Tom
+ Callaway <tcallawa at redhat dot com>. These changes will
+ enable ACE+TAO to be shipped with Fedora.
+
+Sun Mar 23 01:55:11 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CIAO_TAO.mwc:
+ * CIAO_TAO_DAnCE.mwc:
+
+ Add CIDLC to these workspaces.
+
+Wed Feb 27 16:07:39 UTC 2008 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * CCF/Example/CIDL/LocalExecutorMapping/cidlc.cpp:
+ * CCF/Example/CodeGenerationKit/Indentation/IDL/indent_idl.cpp:
+ * CCF/Example/CodeGenerationKit/Indentation/XML/indent_xml.cpp:
+ * CCF/Example/ComponentDeploymentDescriptor/cdd.cpp:
+ * CCF/Example/IDL2/CxxMapping/driver.cpp:
+ * CCF/Test/CIDL/Compiler/driver.cpp:
+ * CCF/Test/CompilerElements/CPP/driver.cpp:
+ * CCF/Test/IDL2/Compiler/driver.cpp:
+ * CCF/Test/IDL2/SemanticGraph/HandBuilt/hand_built.cpp:
+ * CCF/Test/IDL2/Traversal/Recreate/recreate.cpp:
+ * CCF/Test/IDL3/Compiler/driver.cpp:
+ * CIDLC/cidlc.cpp:
+
+ Disable check_for_improper_main_declaration fuzz check on these
+ files. The files have no dependency on ACE, thus they shouldn't
+ use ACE_TMAIN.
+
+Thu Feb 21 02:34:37 CST 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIAO version 0.6.3 released.
+
+Tue Feb 12 19:29:09 UTC 2008 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc:
+ Fixed bug in thos MPC file
+
+Tue Feb 12 14:27:09 UTC 2008 Simon McQueen <sm@prismtech.com>
+
+ * DAnCE/DomainApplicationManager/DomainApplicationManager.mpc:
+ * DAnCE/Interfaces/Interfaces.mpc:
+ * DAnCE/NodeApplication/NodeApplication.mpc:
+ * DAnCE/NodeApplicationManager/NodeApplicationManager.mpc:
+ * DAnCE/NodeManager/Monitor.mpc:
+ * DAnCE/NodeManager/NodeManager.mpc:
+ * DAnCE/Plan_Generator/Plan_Generator.mpc:
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc:
+ * DAnCE/TargetManager/TargetManager.mpc:
+ * DAnCE/Utils/DAnCE_Utils.mpc:
+ * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.mpc:
+ * tools/Config_Handlers/Config_Handlers.mpc:
+
+ Add specific base projects to direct libraries into $ACE_ROOT/lib.
+
+ * MPC/config/ciao_client_dnc.mpb:
+ * MPC/config/ciao_component_dnc.mpb:
+
+ Cop out and add tao_output into the dependency of these two projects.
+ These two are on the inheritance hierarchy of all CIAO test; example;
+ or tutorial libraries it seems so this should direct them all back
+ into $ACE_ROOT/lib where they were before.
+
+Tue Feb 12 10:18:14 UTC 2008 Simon McQueen <sm@prismtech.com>
+
+ * DAnCE/Deployment/DAnCE_Core.mpc:
+ * ciao/CCM_Core.mpc:
+ * ciaosvcs/Events/CIAO_Events.mpc:
+ * ciaosvcs/Events/CIAO_Events_Base/CIAO_Events_Base.mpc:
+ * tools/Config_Handlers/CIAO_Events/CIAO_Events_Handlers.mpc:
+ * tools/Config_Handlers/Config_Handlers.mpc:
+ * tools/Config_Handlers/Package_Handlers/Package_Handlers.mpc:
+ * tools/Config_Handlers/RT-CCM/RT-CCM-Handlers.mpc:
+ * tools/Config_Handlers/Utils/Utils.mpc:
+
+ Add specific tao_output base project dependencies to direct libraries
+ into $ACE_ROOT/lib. See bug #3192.
+
+Wed Jan 30 23:20:05 UTC 2008 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/IDL3_to_IDL2/be_produce.cpp:
+
+ Changed use of exception FE_Bailout to Bailout, reflecting
+ the corresponding name change of the front end exception class.
+
+Fri Jan 11 18:02:07 UTC 2008 William R. Otte <wotte@dre.Vanderbilt.Edu>
+
+ * MPC/config/cidlc.mpb:
+ Make sure CIDLC bits don't build on cross-compile targets.
+
+Wed Jan 9 17:55:33 UTC 2008 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CIAO_TAO_DAnCE.mwc:
+ Fix for MPC warning.
+
+Mon Dec 17 08:17:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.cpp:
+ Fixed compile error
+
+Sat Dec 15 15:02:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/PerlCIAO/perlciao.mpc
+ Use custom_only=1 for this MPC file
+
+Fri Dec 14 02:48:57 CST 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIAO version 0.6.2 released.
+
+Tue Dec 11 13:49:18 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * NEWS:
+
+ Updated file with my checkins since the last beta.
+
+Fri Dec 7 06:27:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/PerlCIAO/perlciao.mpc:
+ With vc9 set ConfigurationType to 10 to disable the creation
+ of the manifest file which fails because these projects don't
+ have source code
+
+Thu Dec 6 17:56:35 UTC 2007 Will Otte <otte_w@dre.Vanderbilt.Edu>
+
+ * CCF/CCF/CIDL/SemanticAction/Composition.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Operation.cpp:
+ * CIDLC/CxxNamePrinter.cpp:
+
+ Fixed warnings manifesting on Debian Etch.
+
+Mon Dec 3 17:42:25 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.h:
+
+ Replaced ACE_Thread_Mutex with TAO_SYNCH_MUTEX to comply with CIAO
+ coding standards and to silence fuzz warnings.
+
+Mon Dec 3 17:10:04 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+
+ * docs/templates:
+ * docs/templates/CIAO_Glue_Session_Template.h:
+ * docs/templates/CIAO_Glue_Session_Template.inl:
+ * docs/templates/CIAO_Glue_Session_Template.cpp:
+ * docs/templates/Executor.idl:
+ * docs/templates/cidl_template.cidl:
+
+ Removed these files. They are outdated and we don't need them anymore
+ since we now have a fully functinoal CIDLC compiler.
+
+Mon Dec 3 16:30:11 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * docs/templates/CIAO_Glue_Session_Template.h:
+
+ Parts of CIAO use TAO_SYNCH_MUTEX while other parts use ACE_SYNCH_MUTEX.
+ All occurrences of ACE_SYNCH_MUTEX were replaced with TAO_SYNCH_MUTEX for
+ consistency.
+
+Mon Dec 3 16:07:59 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * docs/tutorials/Quoter/Simple/03.html:
+
+ Fixed image links that were borken due to directory name case sensitivity,
+ this caused the images not to display in non-windows operating systems.
+ Thanks to Ashley Sterritt (sterrita at cs dot tc dot ie) for pointing
+ out the problem.
+
+Fri Nov 30 22:11:41 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h:
+
+ Replaced ACE_Thread_Mutex with TAO_SYNCH_MUTEX to allow this code
+ to work in single-threaded builds.
+
+Fri Nov 30 19:06:05 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * DAnCE/Deployment/NodeApp_CB_Impl.h:
+ * DAnCE/Deployment/NodeApp_CB_Impl.cpp:
+ * DAnCE/DomainApplicationManager/Reply_Handler_i.h:
+ * DAnCE/DomainApplicationManager/Reply_Handler_i.cpp:
+ * DAnCE/NodeManager/MonitorController.h:
+ * DAnCE/NodeManager/MonitorController.cpp:
+ * ciao/Dynamic_Component_Activator.h:
+ * ciao/Dynamic_Component_Servant_T.h:
+ * ciao/Home_Servant_Impl_T.h:
+ * ciao/Servant_Activator.h:
+ * ciao/Session_Container.h:
+ * ciao/Session_Container.cpp:
+ * ciao/Swapping_Container.h:
+ * ciao/Swapping_Container.cpp:
+ * ciao/Swapping_Servant_Home_Impl_T.h:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.h:
+
+ Parts of CIAO use TAO_SYNCH_MUTEX while other parts use ACE_SYNCH_MUTEX.
+ All occurrences of ACE_SYNCH_MUTEX were replaced with TAO_SYNCH_MUTEX for
+ consistency.
+
+Mon Nov 26 16:57:33 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * ciao/Servant_Activator.h:
+
+ The incarnate and etherealize (inherited from PortableServer::ServantActivator)
+ were implicitly virtual, made those methods explicitly virtual by using the virtual
+ key word. This is a cosmetic change to comply with ACE/TAO/CIAO coding standards.
+
+ * ciao/Servant_Activator.cpp:
+
+ Minor cosmetic changes.
+
+Fri Nov 23 19:29:54 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Servant_Impl_Base.cpp:
+ Layout change
+
+ * MPC/config/ciao_client_dnc.mpb:
+ * MPC/config/ciao_vc8warnings.mpb:
+ * MPC/config/ciao_vcwarnings.mpb:
+ Renamed vc8warnings to vcwarnings, this file is also for vc9 from now
+
+Thu Nov 22 15:41:13 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * ciao/Dynamic_Component_Activator.inl:
+
+ New file. Inlined short methods to comply with ACE/TAO/CIAO
+ coding standards.
+
+ * ciao/Dynamic_Component_Activator.h:
+ * ciao/Dynamic_Component_Activator.cpp:
+
+ Minor changes necessary for the new inline file mentioned above.
+
+ * ciao/Dynamic_Component_Activator.h:
+
+ The incarnate and etherealize (inherited from PortableServer::ServantActivator)
+ were implicitly virtual, made those methods explicitly virtual by using the virtual
+ key word. This is a cosmetic change to comply with ACE/TAO/CIAO coding standards.
+
+Wed Nov 21 17:41:14 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * ciao/Context_Impl_Base.inl:
+
+ New file. Inlined short methods to comply with ACE/TAO/CIAO
+ coding standards.
+
+ * ciao/Context_Impl_Base.h:
+ * ciao/Context_Impl_Base.cpp:
+
+ Minor changes necessary for the new inline file mentioned above.
+
+ * ciao/Context_Impl_Base.cpp:
+ * ciao/Dynamic_Component_Servant_Base.cpp:
+
+ Added a comment on why we have unecessary default constructor.
+ The default constructor is here to keep MSVC happy and should
+ not be used at all. The default constructor should be removed
+ in the future. Until then, ACE_ASSERT is used in the default
+ constructor to detect a runtime call to the default constructor.
+
+Wed Nov 21 16:36:28 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * ciao/Container_Base.inl:
+
+ New file. Inlined short methods to comply with ACE/TAO/CIAO
+ coding standards.
+
+ * ciao/Container_Base.h:
+ * ciao/Container_Base.cpp:
+
+ Minor changes necessary for the new inline file mentioned above.
+
+Tue Nov 20 15:43:25 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * ciao/Port_Activator.inl:
+
+ New file. Inlined short methods to comply with ACE/TAO/CIAO
+ coding standards.
+
+ * ciao/Port_Activator.h:
+ * ciao/Port_Activator.cpp:
+
+ Minor changes necessary for the new inline file mentioned above.
+
+Mon Nov 12 19:10:36 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc:
+
+ Fixed incorrect path to generated executor stub in
+ source file list.
+
+Mon Nov 12 18:54:48 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient.mpc:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip.mpc:
+ * examples/Hello/Sender/Sender.mpc:
+ * examples/Display/RateGen/RateGen.mpc:
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker.mpc:
+ * docs/tutorials/Quoter/Simple/Broker/StockDistributor.mpc:
+
+ Added line 'avoids += ace_tao_tao' in driver/client projects.
+
+ * examples/Display/NavDisplay/NavDisplay_exec.cpp:
+ * examples/Display/NavDisplay/NavDisplay_exec.h:
+
+ Cosmetic changes (line lengths, ACE style guidelines).
+
+Fri Nov 9 15:06:04 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * MPC/config.ciaocidldefaults.mpb:
+
+ Added a line to ensure that the XML descriptor generated by the
+ CIDL compiler gets cleaned up similarly to the other generated
+ files upon a 'make clean' operation. Thanks to Adam Mitz
+ <mitza at ociweb dot com> for supplying the fix.
+
+Tue Nov 6 20:31:09 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * docs/tutorials/Quoter/Simple/04.html:
+
+ All DAnCE executables are placed in $CIAO_ROOT/bin when built. Updated
+ the tutorial to reflect the fact that the executables are in $CIAO_ROOT/bin
+
+Fri Nov 2 16:41:48 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * docs/tutorials/Quoter/Simple/descriptors/Plan.cdp:
+
+ Reverted what seems to be an accidental commit made at:
+ Mon Oct 29 16:40:08 UTC 2007 Friedhelm Wolf <fwolf@dre.vanderbilt.edu>
+
+ The changes causes the tutorial to not work (plan launcher fails).
+
+Mon Oct 29 19:10:34 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/Display/NavDisPlayGUI/NavDisplayGUI.mpc:
+
+ Modified exec project to reflect recent dependency changes,
+ and added svnt project that links to the GUI version of the
+ exec lib.
+
+ * examples/Display/NavDisPlayGUI/NavDisplayGUI_exec.cpp:
+ * examples/Display/NavDisPlayGUI/NavDisplayGUI_exec.h:
+
+ Cosmetic changes.
+
+ * examples/Display/NavDisPlayGUI/NavDisplayGUI_exec_stub_export.h:
+ * examples/Display/NavDisPlayGUI/NavDisplayGUI_exec_exec_export.h:
+ * examples/Display/NavDisPlayGUI/NavDisplayGUI_svnt_export.h:
+ * examples/Display/NavDisPlayGUI/NavDisplayGUI_exec_svnt_export.h:
+ * examples/Display/NavDisPlayGUI/NavDisplayGUI_stub_export.h:
+
+ Removed these unused files.
+
+Mon Oct 29 17:45:24 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * examples/Hello/descriptors_ReDaC/deploymentplan.cdp:
+ * examples/Hello/descriptors_ReDaC/deploymentplan_add.cdp:
+ * examples/Hello/descriptors_ReDaC/deploymentplan_remove.cdp:
+ * examples/Hello/descriptors_naming/deploymentplan_naming.cdp:
+ * examples/Hello/descriptors_shared_components/deploymentplan.cdp:
+
+ Corrected some entries, according to recent changes in library
+ names of the Hello example, so that the tests succeed.
+
+Mon Oct 29 16:40:08 UTC 2007 Friedhelm Wolf <fwolf@dre.vanderbilt.edu>
+
+ * examples/Hello/descriptors_events:
+
+ Renamed deployment descriptor files and corrected some entries,
+ according to recent changes in library names of the Hello example,
+ so that the tests succeed.
+
+Mon Oct 29 01:37:04 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * examples/Hello/descriptors_RTCCM/rt-config-example.cdp:
+ * examples/Hello/descriptors_RTCCM/rt-example.cdp:
+ * examples/Hello/descriptors_ReDaC/deploymentplan.cdp:
+ * examples/Hello/descriptors_ReDaC/deploymentplan_add.cdp:
+ * examples/Hello/descriptors_ReDaC/deploymentplan_remove.cdp:
+ * examples/Hello/descriptors_events/flattened_deploymentplan_events.cdp:
+ * examples/Hello/descriptors_events/flattened_deploymentplan_events_collocated.cdp:
+ * examples/Hello/descriptors_events/flattened_deploymentplan_federation.cdp:
+ * examples/Hello/descriptors_events/flattened_deploymentplan_federation_mcast.cdp:
+ * examples/Hello/descriptors_events/flattened_deploymentplan_federation_udp.cdp:
+ * examples/Hello/descriptors_events/flattened_deploymentplan_federation_udp_collocated.cdp:
+ * examples/Hello/descriptors_events/flattened_deploymentplan_federation_udp_two_hosts.cdp:
+ * examples/Hello/descriptors_events/flattened_deploymentplan_multiple_senders.cdp:
+ * examples/Hello/descriptors_events/flattened_deploymentplan_with_filters.cdp:
+ * examples/Hello/descriptors_naming/deploymentplan_naming.cdp:
+ * examples/Hello/descriptors_shared_components/deploymentplan.cdp:
+ * examples/Hello/descriptors_shared_components/deploymentplan_shared_components.cdp:
+
+ Recent changes to MPC files changed library names. As such,
+ the example was failing. Correct the library names in the files above.
+
+Sun Oct 28 19:11:39 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * examples/Hello/descriptors/DeploymentPlan.cdp:
+ * examples/Hello/descriptors/DeploymentPlan_without_ns.cdp:
+ * examples/Hello/descriptors/Receiver_Exec.iad:
+ * examples/Hello/descriptors/Receiver_Stub.iad:
+ * examples/Hello/descriptors/Receiver_Svnt.iad:
+ * examples/Hello/descriptors/Sender_Exec.iad:
+ * examples/Hello/descriptors/Sender_Stub.iad:
+ * examples/Hello/descriptors/Sender_Svnt.iad:
+
+ Recent changes to MPC files changed library names. As such,
+ the example was failing. Correct the library names in the files above.
+
+Fri Oct 26 13:15:24 UTC 2007 Friedhelm Wolf <fwolf@dre.vanderbilt.edu>
+
+ * DAnCE/DomainApplicationManager/Deployment_Configuration.cpp:
+
+ Removed some code, that accidentially was commited
+
+Fri Oct 26 01:01:37 UTC 2007 Friedhelm Wolf <fwolf@dre.vanderbilt.edu>
+
+ * examples/Hello/descriptors_events:
+
+ Changed test scripts to perl and make them autobuild conform
+
+Thu Oct 25 21:28:13 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/Hello/Receiver/Receiver.mpc:
+ * examples/Hello/Sender/Sender.mpc:
+
+ Fixed mismatches of lib names.
+
+Thu Oct 25 15:44:50 UTC 2007 Friedhelm Wolf <fwolf@dre.vanderbilt.edu>
+
+ * examples/Hello/descriptors_events:
+
+ Added scripts and README files for documentation purposes
+
+Wed Oct 24 16:17:41 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * examples/Hello/Receiver/Receiver_exec.h:
+ * examples/Hello/Receiver/Receiver_exec.cpp:
+ * examples/Hello/Sender/Sender_exec.h:
+ * examples/Hello/Sender/Sender_exec.cpp:
+
+ Made the implementation of these files look like what is currently
+ generated by the CIDLC compiler. It seems that the files in question
+ were completley handwritten. The changes affects the signitures of
+ the entry point functions, and the implementation of the entry point
+ functions and factories.
+
+ * examples/Hello/descriptors/DeploymentPlan.cdp:
+ * examples/Hello/descriptors/DeploymentPlan_without_ns.cdp:
+ * examples/Hello/descriptors/Receiver_Exec.iad:
+ * examples/Hello/descriptors/Sender_Exec.iad:
+ * examples/Hello/descriptors_RTCCM/rt-config-example.cdp:
+ * examples/Hello/descriptors_RTCCM/rt-example.cdp:
+ * examples/Hello/descriptors_ReDaC/deploymentplan.cdp:
+ * examples/Hello/descriptors_ReDaC/deploymentplan_add.cdp:
+ * examples/Hello/descriptors_ReDaC/deploymentplan_remove.cdp:
+ * examples/Hello/descriptors_events/flattened_deploymentplan_events.cdp:
+ * examples/Hello/descriptors_events/flattened_deploymentplan_events_collocated.cdp:
+ * examples/Hello/descriptors_events/flattened_deploymentplan_federation.cdp:
+ * examples/Hello/descriptors_events/flattened_deploymentplan_federation_mcast.cdp:
+ * examples/Hello/descriptors_events/flattened_deploymentplan_federation_udp.cdp:
+ * examples/Hello/descriptors_events/flattened_deploymentplan_federation_udp_collocated.cdp:
+ * examples/Hello/descriptors_events/flattened_deploymentplan_federation_udp_two_hosts.cdp:
+ * examples/Hello/descriptors_events/flattened_deploymentplan_with_filters.cdp:
+ * examples/Hello/descriptors_naming/deploymentplan_naming.cdp:
+ * examples/Hello/descriptors_shared_components/deploymentplan.cdp:
+ * examples/Hello/descriptors_shared_components/deploymentplan_shared_components.cdp:
+
+ Modified the entry point functions' signitures as per the comment above.
+
+Tue Oct 23 20:25:53 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * examples/Hello/Hello_Base/Hello_Base.mpc:
+ * examples/Hello/Hello_Base/Hello_Base_skel_export.h:
+
+ Minor cosmetic changes.
+
+ * examples/Hello/Sender/Sender.mpc:
+
+ Change 'after' lines to match recent changes to project names.
+
+Tue Oct 23 14:50:48 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * performance-tests/Benchmark/RoundTrip/RoundTrip.mpc:
+
+ Fixed typo in IDL filename.
+
+Tue Oct 23 14:37:05 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * tests/CIDL/CodeGen/Basic.mpc:
+ * tests/CIDL/CodeGen/Basic_skel_export.h:
+ * tests/CIDL/CodeGen/Basic_stub_export.h:
+ * tests/CIDL/CodeGen/CodeGen.mpc:
+ * tests/CIDL/CodeGen/CodeGen_exec_export.h:
+ * tests/CIDL/CodeGen/CodeGen_stub_export.h:
+ * tests/CIDL/CodeGen/CodeGen_svnt_export.h:
+
+ - Modified MPC files to reverse
+ the exec->svnt dependency. Also moved generated
+ <IDL file>EC.{h, inl, cpp} files from svnt buidl to
+ exec build.
+
+ - Added file names to MPC projects so that all build files
+ are displayed in IDEs.
+
+ - For non-component builds, changed _svnt suffix to _skel
+ for project names, library names, and export header file
+ names.
+
+ - Separated IDL and CIDL/executor IDL processing into
+ separate projects.
+
+ * tests/CIDL/CodeGen/Basic_svnt_export.h:
+
+ Removed this file.
+
+Tue Oct 23 14:27:18 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * tests/Minimum/Receiver/Receiver_exec.h:
+ * tests/Minimum/Sender/Sender_exec.h:
+
+ Removed dependency on including Servant header files.
+
+ * tests/Minimum/Sender/Sender_exec.cpp:
+ * tests/Minimum/Receiver/Receiver_exec.cpp:
+
+ The generate context is a var type now (it used to be a pointer).
+ Do not compare it directly with 0, use CORBA::is_nil instead.
+
+ Effectively, we just renegerated the executor files with a newer
+ cidlc compiler.
+
+Mon Oct 22 18:54:03 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * performance-tests/Protocols/Sender/Custom_Network_Priority_Mapping.cpp:
+ * performance-tests/Protocols/Sender/Custom_Network_Priority_Mapping.h:
+
+ New files, factored out of existing files.
+
+ * performance-tests/Benchmark/Benchmark_skel_export.h:
+ * tests/Minimum/Minimum_Base/Minimum_Base.mpc:
+ * tests/Minimum/Minimum_Base/Minimum_Base_skel_export.h:
+ * examples/Hello/Hello_Base/Hello_Base_skel_export.h:
+ * examples/Swapping/Hello_Base/Hello_Base_skel_export.h:
+
+ New files, renamed from corresponding files removed, as
+ listed below.
+
+ * performance-tests/Benchmark/Benchmark_svnt_export.h:
+ * tests/Minimum/Minimum_Base/Minimum_Base_svnt_export.h:
+ * tests/Minimum/Minimum_Base/Minimum.mpc:
+ * examples/Hello/Hello_Base/Hello_Base_svnt_export.h:
+ * examples/Swapping/Hello_Base/Hello_Base_svnt_export.h:
+
+ Removed files, renamed as described above.
+
+ * performance-tests/Protocols/Sender/Sender_exec.cpp:
+ * performance-tests/Protocols/Sender/Sender.mpc:
+ * performance-tests/Protocols/Controller/Controller.mpc:
+ * performance-tests/Protocols/Receiver/Receiver.mpc:
+ * performance-tests/Protocols/common/Protocols.mpc:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient.mpc:
+ * performance-tests/Benchmark/RoundTrip/client.cpp:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip.mpc:
+ * performance-tests/Benchmark/server.cpp:
+ * performance-tests/Benchmark/Multi_Threaded/client.cpp:
+ * performance-tests/Benchmark/Multi_Threaded/Multi_Threaded.mpc:
+ * performance-tests/Benchmark/README
+ * performance-tests/Benchmark/Benchmark.mpc:
+ * performance-tests/Benchmark/RoundTripServer/server.cpp:
+ * performance-tests/Benchmark/RoundTripServer/RoundTripServer.mpc:
+ * tests/Minimum/Sender/Sender_exec.cpp:
+ * tests/Minimum/Sender/Sender_exec.h:
+ * tests/Minimum/Sender/Sender.mpc:
+ * tests/Minimum/Receiver/Receiver.mpc:
+ * tests/Minimum/Receiver/Receiver_exec.cpp:
+ * tests/Minimum/Receiver/Receiver_exec.h:
+ * examples/Hello/Sender/Sender.mpc:
+ * examples/Hello/Receiver/Receiver.mpc:
+ * examples/Hello/Hello_Base/Hello_Base.mpc:
+ * examples/Display/Display_Base/Display_Base.mpc:
+ * examples/Display/RateGen/RateGen.mpc:
+ * examples/Display/GPS/GPS.mpc:
+ * examples/Display/NavDisplay/NavDisplay.mpc:
+ * examples/Swapping/Sender/Sender.mpc:
+ * examples/Swapping/Receiver/Receiver.mpc:
+ * examples/Swapping/Hello_Base/Hello_Base.mpc:
+
+ - Modified *_exec.{h, cpp} files and MPC files to reverse
+ the exec->svnt dependency. Also moved generated
+ <IDL file>EC.{h, inl, cpp} files from svnt build to
+ exec build.
+
+ - Added file names to MPC projects so that all build files
+ are displayed in IDEs.
+
+ - For non-component builds, changed _svnt suffix to _skel
+ for project names, library names, and export header file
+ names.
+
+ - Separated IDL and CIDL/executor IDL processing into
+ separate projects.
+
+Fri Oct 19 18:19:12 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * DAnCE/StaticConfigurator/StaticDAnCEApp.cpp.tmpl:
+
+ Updated this template implementation to reflect enhancement done by:
+ Fri Oct 19 15:22:36 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+Fri Oct 19 18:04:13 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * docs/tutorials/Quoter/Simple/images/fig10.jpg:
+ * docs/tutorials/Quoter/Simple/images/fig11.jpg:
+ * docs/tutorials/Quoter/Simple/images/fig12.jpg:
+ * docs/tutorials/Quoter/Simple/images/fig2.jpg:
+ * docs/tutorials/Quoter/Simple/images/fig3.jpg:
+ * docs/tutorials/Quoter/Simple/images/fig4.jpg:
+ * docs/tutorials/Quoter/Simple/images/fig5.jpg:
+ * docs/tutorials/Quoter/Simple/images/fig6.jpg:
+ * docs/tutorials/Quoter/Simple/images/fig7.jpg:
+ * docs/tutorials/Quoter/Simple/images/fig8.jpg:
+ * docs/tutorials/Quoter/Simple/images/fig9.jpg:
+
+ Update the images to reflect what the user would see
+ in CoSMIC 0.6
+
+ * docs/tutorials/Quoter/Simple/03.html:
+
+ Slight modification to make the images appear pretty.
+
+Fri Oct 19 17:56:34 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * ciao/IFR_Base.idl:
+
+ Removed this file - see below.
+
+ * ciao/CCM_Home.idl:
+ * ciao/CCM_Core.mpc:
+ * MPC/config/ciao_client_dnc.mpb:
+ * MPC/config/ciao_events_dnc.mpb:
+ * DAnCE/StaticConfigurator/StaticDAnCEParser.mpc:
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc:
+
+ Reverted all changes that attempted to replace dependency
+ on IFR_Client library with a dummy interface. The fact
+ that one or more config handlers must depend on IFR_Client
+ makes linking clashes between the dummy and real interfaces
+ unavoidable.
+
+Fri Oct 19 15:35:13 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/Null_Component/StaticDAnCEApp.mpc:
+ * examples/Null_Component/Null_Component.mpc:
+
+ Change 'after' lines to match recent changes to project names.
+
+Fri Oct 19 15:22:36 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/Null_Component/plan.h:
+ * examples/Null_Component/StaticDAnCEApp.cpp:
+
+ Reordered and reduced #includes, cosmetic changes.
+
+ * examples/Null_Component/StaticDAnCEApp.mpc:
+
+ Changed dependency to reflect recent changes in Null_Component.mpc,
+ added Header_File and Inline_File blocks to eliminate the
+ appearance of unwanted files in IDEs.
+
+Thu Oct 18 21:17:45 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * examples/Null_Component/Null_Component.mpc:
+ * examples/Null_Component/StaticDAnCEApp.mpc:
+
+ Fixed fuzz warnings. Apparently, project and file names that are
+ longer than 38 charachters are not portable on all operating
+ systems. Thanks to Johnny Willemsen for explaining why fuzz
+ complains about long project and file names.
+
+Thu Oct 18 20:58:54 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * docs/tutorials/Quoter/Simple/01.html:
+ * docs/tutorials/Quoter/Simple/02.html:
+ * docs/tutorials/Quoter/Simple/03.html:
+ * docs/tutorials/Quoter/Simple/04.html:
+ * docs/tutorials/Quoter/Simple/index.html:
+
+ Updated the tutorial.
+
+ * docs/tutorials/Quoter/Simple/descriptors/NodeMap.dat:
+
+ Changed the name of this file to NodeMap.dat from Stock.dat
+ Naming everything Stock is confusing.
+
+ * docs/tutorials/Quoter/Simple/descriptors/Stock.dat:
+
+ Removed this file.
+
+Thu Oct 18 20:19:39 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * DAnCE/StaticConfigurator/StaticDAnCEParser.mpc:
+ * DAnCE/Plan_Launcher/Plan_Launcher.mpc:
+
+ Removed unneeded lib TAO_IFR_Client from list, to avoid clash with
+ dummy IRObject interface added for CIAO_Client, CIAO_Container,
+ and CIAO_Server in
+
+ Wed Oct 17 15:24:13 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.mpc:
+ * ciaosvcs/Events/CIAO_Events_Base/CIAO_Events_Base.mpc:
+ * ciaosvcs/Events/CIAO_Events.mpc:
+
+ Reverted changed inadvertently checked in with
+
+ Wed Oct 17 15:24:13 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+Thu Oct 18 19:29:01 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * docs/tutorials/Quoter/Simple/Broker/StockBrokerDriver.cpp:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributorDriver.cpp:
+
+ Fixed fuzz errors.
+
+Thu Oct 18 18:21:18 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * docs/tutorials/Quoter/Simple/Model/Quoter.xme:
+
+ The entry points for the Servant and Executor were messed up. New
+ releases of CoSMIC generate the proper entry point signitures.
+ This change fixes the entry point signitures.
+
+ * docs/tutorials/Quoter/Simple/descriptors/Broker.cpd:
+ * docs/tutorials/Quoter/Simple/descriptors/Default.pcd:
+ * docs/tutorials/Quoter/Simple/descriptors/Distributor.cpd:
+ * docs/tutorials/Quoter/Simple/descriptors/Domain.cdd:
+ * docs/tutorials/Quoter/Simple/descriptors/Plan.cdp:
+ * docs/tutorials/Quoter/Simple/descriptors/StockBroker.ccd:
+ * docs/tutorials/Quoter/Simple/descriptors/StockBrokerMonolithicImpl.cid:
+ * docs/tutorials/Quoter/Simple/descriptors/StockBroker_exec.iad:
+ * docs/tutorials/Quoter/Simple/descriptors/StockBroker_stub.iad:
+ * docs/tutorials/Quoter/Simple/descriptors/StockBroker_svnt.iad:
+ * docs/tutorials/Quoter/Simple/descriptors/StockDistributor.ccd:
+ * docs/tutorials/Quoter/Simple/descriptors/StockDistributorMonolithicImpl.cid:
+ * docs/tutorials/Quoter/Simple/descriptors/StockDistributor_exec.iad:
+ * docs/tutorials/Quoter/Simple/descriptors/StockDistributor_stub.iad:
+ * docs/tutorials/Quoter/Simple/descriptors/StockDistributor_svnt.iad:
+ * docs/tutorials/Quoter/Simple/descriptors/StockQuoter.cid:
+ * docs/tutorials/Quoter/Simple/descriptors/StockQuoter.cpd:
+ * docs/tutorials/Quoter/Simple/descriptors/TopLevelPackage.tpd:
+
+ Regenerated descriptors. Older descriptors were hand written,
+ we want users to use CoSMIC for this sort of stuff, especially
+ in the tutorial.
+
+ * docs/tutorials/Quoter/Simple/descriptors/runNodeDaemons.pl:
+
+ Increased spawn dealy for NodeApplication in order to have
+ this tutorial work on slower systems.
+
+ * docs/tutorials/Quoter/Simple/descriptors/Broker.ccd:
+ * docs/tutorials/Quoter/Simple/descriptors/Broker.cid:
+ * docs/tutorials/Quoter/Simple/descriptors/Broker_Exec.iad:
+ * docs/tutorials/Quoter/Simple/descriptors/Broker_Stub.iad:
+ * docs/tutorials/Quoter/Simple/descriptors/Broker_Svnt.iad:
+ * docs/tutorials/Quoter/Simple/descriptors/Distributor.ccd:
+ * docs/tutorials/Quoter/Simple/descriptors/Distributor.cid:
+ * docs/tutorials/Quoter/Simple/descriptors/Distributor_Exec.iad:
+ * docs/tutorials/Quoter/Simple/descriptors/Distributor_Stub.iad:
+ * docs/tutorials/Quoter/Simple/descriptors/Distributor_Svnt.iad:
+ * docs/tutorials/Quoter/Simple/descriptors/Libraries.iad:
+ * docs/tutorials/Quoter/Simple/descriptors/Stock.cdp:
+ * docs/tutorials/Quoter/Simple/descriptors/Stock.cid:
+ * docs/tutorials/Quoter/Simple/descriptors/Stock.cpd:
+ * docs/tutorials/Quoter/Simple/descriptors/Stock.pcd:
+ * docs/tutorials/Quoter/Simple/descriptors/flattened_deploymentplan.cdp:
+ * docs/tutorials/Quoter/Simple/descriptors/package.tpd:
+
+ Removed these files.
+
+Thu Oct 18 18:13:35 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker.cidl:
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker.idl:
+
+ Use include guards, as is done with other IDL files in the distribution.
+
+ Renamed the IDL files to exactly match the name of the component. The
+ name of the component and the IDL file must match, if they don't, one
+ has to do more work in CoSMIC to resolve conflicts.
+
+ * docs/tutorials/Quoter/Simple/Broker/StockBrokerDriver.cpp:
+
+ Renamed from Broker.cpp.
+
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker.mpc:
+
+ Rengerate the MPC files with the new generate_component_mpc.pl
+
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker_exec.h:
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker_exec.cpp:
+
+ Renamed for the reason mentioned above. Also, regenerated the autogenerated
+ code parts to leverage recent changes to CIDLC generated code. The executors
+ now have no dependency on the servants.
+
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker_exec_export.h:
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker_stub_export.h:
+ * docs/tutorials/Quoter/Simple/Broker/StockBroker_svnt_export.h:
+
+ Regenerated.
+
+ * docs/tutorials/Quoter/Simple/Broker/Broker.cidl:
+ * docs/tutorials/Quoter/Simple/Broker/Broker.cpp:
+ * docs/tutorials/Quoter/Simple/Broker/Broker.idl:
+ * docs/tutorials/Quoter/Simple/Broker/Broker.mpc:
+ * docs/tutorials/Quoter/Simple/Broker/Broker_exec.h:
+ * docs/tutorials/Quoter/Simple/Broker/Broker_exec.cpp:
+ * docs/tutorials/Quoter/Simple/Broker/Broker_exec_export.h:
+ * docs/tutorials/Quoter/Simple/Broker/Broker_stub_export.h:
+ * docs/tutorials/Quoter/Simple/Broker/Broker_svnt_export.h:
+
+ Removed these files per the changes above.
+
+Thu Oct 18 17:45:41 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor.cidl:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor.idl:
+
+ Use include guards, as is done with other IDL files in the distribution.
+
+ Renamed the IDL files to exactly match the name of the component. The
+ name of the component and the IDL file must match, if they don't, one
+ has to do more work in CoSMIC to resolve conflicts.
+
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributorDriver.cpp:
+
+ Renamed from Distributor.cpp.
+
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor.mpc:
+
+ Rengerate the MPC files with the new generate_component_mpc.pl
+
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor_exec.h:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor_exec.cpp:
+
+ Renamed for the reason mentioned above. Also, regenerated the autogenerated
+ code parts to leverage recent changes to CIDLC generated code. The executors
+ now have no dependency on the servants.
+
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor_exec_export.h:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor_stub_export.h:
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributor_svnt_export.h:
+
+ Regenerated.
+
+ * docs/tutorials/Quoter/Simple/Distributor/Distributor.cidl:
+ * docs/tutorials/Quoter/Simple/Distributor/Distributor.idl:
+ * docs/tutorials/Quoter/Simple/Distributor/Distributor.mpc:
+ * docs/tutorials/Quoter/Simple/Distributor/Distributor.cpp:
+ * docs/tutorials/Quoter/Simple/Distributor/Distributor_exec.h:
+ * docs/tutorials/Quoter/Simple/Distributor/Distributor_exec.cpp:
+ * docs/tutorials/Quoter/Simple/Distributor/Distributor_exec_export.h:
+ * docs/tutorials/Quoter/Simple/Distributor/Distributor_stub_export.h:
+ * docs/tutorials/Quoter/Simple/Distributor/Distributor_svnt_export.h:
+
+ Removed these files per the changes above.
+
+Thu Oct 18 17:42:58 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.idl:
+
+ Use include guards, as is done with other IDL files in
+ the distribution.
+
+ * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.mpc:
+
+ Rengerate the MPC files with the new generate_component_mpc.pl
+
+Wed Oct 17 20:20:34 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tests/IDL3/Events/Any/main.cpp:
+
+ Added #include of Any.h.
+
+Wed Oct 17 18:47:50 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * ciao/Swapping_Servant_Home_Impl_T.h:
+ * ciao/Upgradeable_Context_Impl_T.cpp:
+
+ Restored included files needed at instantiation time.
+
+ * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.cpp(create_rt_event_channel):
+
+ Commented out unused arg.
+
+Wed Oct 17 17:18:04 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * DAnCE/TargetManager/descriptors/NodeDetails.dat:
+ * DAnCE/TargetManager/descriptors/NodeManagerMap.dat:
+ * DAnCE/tests/scripts/BasicSP/basicsp.dat:
+ * docs/tutorials/Quoter/Simple/descriptors/Stock.dat:
+ * examples/BasicSP/descriptors/BasicSP.dat:
+ * examples/Display/descriptors/NodeManagerMap.dat:
+ * examples/Hello/descriptors/NodeManagerMap.dat:
+ * examples/Hello/descriptors_RTCCM/NodeManagerMap.dat:
+ * examples/Hello/descriptors_events/NodeManagerMap.dat:
+ * examples/Hello/descriptors_events/NodeManagerMapTwoHosts.dat:
+ * performance-tests/Benchmark/descriptors/test-multi-process.dat:
+ * performance-tests/Benchmark/descriptors/test.dat:
+ * performance-tests/Protocols/descriptors/test.dat:
+ * tests/Bug_2130_Regression/descriptors/TestNodeManagerMap.dat:
+
+ Removed blank lines. Blank lines now cause the deployment to fail.
+
+Wed Oct 17 15:28:42 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * MPC/config/ciao_client_dnc.mpb:
+ * MPC/config/ciao_events_dnc.mpb:
+
+ Removed ifr_client from base project list.
+
+Wed Oct 17 15:24:13 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIAO_TAO_DAnCE.mwc:
+
+ Removed unnecessary directories, removing 24 unused builds.
+
+ * ciao/IFR_Base.idl:
+
+ New file, containing a dummy IRObject interface, to be used
+ as the return type for an unimplemented operation in CCM_Home.
+
+ * ciao/CCM_Home.idl:
+
+ Changed include of IFR_Base.idl from the one in
+ TAO_ROOT/tao/IFR_Client to the new file above.
+
+ * ciao/CCM_Core.mpc:
+
+ Removed dependency on IFR_Client lib from all projects.
+
+ * ciao/Server_init.h:
+ * ciao/Client_init.cpp:
+ * ciao/Cookies.h:
+ * ciao/Servant_Impl_Base.h:
+ * ciao/StandardConfigurator_Impl.cpp:
+ * ciao/Swapping_Servant_Home_Impl_T.h:
+ * ciao/Swapping_Servant_Home_Impl_Base.cpp:
+ * ciao/Dynamic_Component_Activator.cpp:
+ * ciao/Server_init.cpp:
+ * ciao/Servant_Impl_Base.cpp:
+ * ciao/Servant_Activator.cpp:
+ * ciao/Swapping_Container.h:
+ * ciao/StandardConfigurator_Impl.h:
+ * ciao/Dynamic_Component_Activator.h:
+ * ciao/Dynamic_Component_Servant_Base.cpp:
+ * ciao/Servant_Activator.h:
+ * ciao/Context_Impl_Base.h:
+ * ciao/Container_Base.cpp:
+ * ciao/Session_Container.h:
+ * ciao/Cookies.cpp:
+ * ciao/Port_Activator.h:
+ * ciao/Client_init.h:
+ * ciao/Dynamic_Component_Servant_Base.h:
+ * ciao/Home_Servant_Impl_Base.h:
+ * ciao/Container_Base.h:
+ * ciao/Swapping_Servant_Home_Impl_Base.h:
+ * ciao/Session_Container.cpp:
+ * ciao/Upgradeable_Context_Impl_T.h:
+ * ciao/CIAO_common.h:
+ * ciao/Swapping_Container.cpp:
+ * ciaosvcs/Events/CIAO_EventService_Factory_impl.cpp:
+ * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.cpp:
+ * ciaosvcs/Events/CIAO_RTEC/SimpleAddressServer.cpp:
+ * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.h:
+ * ciaosvcs/Events/CIAO_RTEC/SimpleAddressServer.h:
+ * ciaosvcs/Events/CIAO_Events_Base/CIAO_Events_Base.mpc:
+ * ciaosvcs/Events/CIAO_Events_Base/CIAO_EventServiceBase.cpp:
+ * ciaosvcs/Events/CIAO_Events_Base/CIAO_EventServiceBase.h:
+ * ciaosvcs/Events/CIAO_EventService_Factory_impl.h:
+
+ Removed unnecessary #includes, and general cleanup of
+ formatting and #includes to follow ACE style guidelines.
+
+ * ciaosvcs/Events/CIAO_RTEC/CIAO_RTEvent.mpc:
+ * ciaosvcs/Events/CIAO_Events.mpc:
+
+ Added export header files to projects, so they will be seen
+ by developers using IDEs.
+
+Wed Oct 17 14:02:41 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * examples/Null_Component/plan.h:
+
+ Fixed fuzz warning.
+
+Tue Oct 16 20:49:21 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * examples/Null_Component/Null_Component.cidl:
+ * examples/Null_Component/Null_Component.idl:
+
+ Slight name fixes to make CIDLC and CoSMIC happy. For details,
+ check bugzilla 3086.
+
+ * examples/Null_Component/Null_Component_exec.h:
+ * examples/Null_Component/Null_Component_exec.cpp:
+
+ Renegerated the empty executor files.
+
+ * examples/Null_Component/Null_Interface.mpc:
+ * examples/Null_Component/Null_Component.mpc:
+
+ Regenerate with the newer generate_component_mpc.pl.
+
+ * examples/Null_Component/Null_Interface_skel_export.h:
+
+ Autogenerated.
+
+ * examples/Null_Component/model/Null_Component.xme:
+
+ Updated the model to take advantage of recent fixes to CoSMIC. For details,
+ check the CoSMIC ChangLog entry:
+
+ Thu Oct 4 11:27:17 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/Null_Component/descriptors/NodeMap.dat:
+
+ Removed blank lines. Blank lines now cause the deployment to fail.
+
+ * examples/Null_Component/descriptors/Domain.cdd:
+ * examples/Null_Component/descriptors/Null_Assembly.cid:
+ * examples/Null_Component/descriptors/Null_Assembly_Package.cpd:
+ * examples/Null_Component/descriptors/Null_Component.ccd:
+ * examples/Null_Component/descriptors/Null_ComponentMonolithicImpl.cid:
+ * examples/Null_Component/descriptors/Null_Component_Package.cpd:
+ * examples/Null_Component/descriptors/Null_Component_exec.iad:
+ * examples/Null_Component/descriptors/Null_Component_stub.iad:
+ * examples/Null_Component/descriptors/Null_Component_svnt.iad:
+ * examples/Null_Component/descriptors/PackageConfiguration.pcd:
+ * examples/Null_Component/descriptors/Plan.cdp:
+ * examples/Null_Component/descriptors/TopLevelPackage.tpd:
+
+ Updated descriptors to reflect changes made to CoSMIC model.
+
+ * examples/Null_Component/plan.h:
+
+ Update plan to reflect changes made to CoSMIC model.
+
+ * examples/Null_Component/descriptors/package.tpd:
+ * examples/Null_Component/model/Null_Component.mga:
+
+ Removed these files.
+
+Tue Oct 2 20:34:15 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * bin/generate_component_mpc.pl:
+
+ Enhanced user displayed message.
+
+Tue Oct 2 19:52:30 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * docs/generate_component_mpc.html:
+
+ Changed documentation to match changes made in:
+ Fri Sep 28 19:37:39 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+Fri Sep 28 19:58:52 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/UtilityTypeNameEmitters.hpp:
+
+ For some unknown reason, a class declaration was missing from
+ this file in updating on other machines, checking it in
+ explicitly to make sure.
+
+Fri Sep 28 19:37:39 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/CorbaTypeNameEmitters.cpp:
+
+ Fixed incorrect code generation for a null return of an enum type.
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Changed generated include of Cookies.h to ciao/Cookies.h.
+
+ * CIDLC/ExecImplHeaderGenerator.cpp:
+ * CIDLC/ExecImplSourceGenerator.cpp:
+
+ Changed generated context member type from Foo_Context* to
+ CCM_Foo_Context_var. Also replaced include of Foo_svnt.h with
+ FooEC.h. These changes reverse the existing dependency of
+ the executor DLL on the servant DLL, which makes more sense
+ since the servant delegates to the executor, which should
+ not be coupled with any specific CCM implementation.
+
+ * bin/generate_component_mpc.pl:
+
+ Changed the script to generate default MPC files to reflect the
+ dependency changes above. Also split the IDL and CIDL processing
+ into separate projects.
+
+Fri Sep 21 22:11:16 UTC 2007 Friedhelm Wolf <fwolf@dre.vanderbilt.edu>
+
+ * docs/schema/CIAOEvents.txt:
+
+ Added information about naming conventions for filter declaration.
+
+Mon Sep 3 14:49:07 UTC 2007 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/IDD_Handler.cpp (CIAO):
+ * tools/Config_Handlers/IDD_Handler.cpp (CIAO):
+ * tools/Config_Handlers/ADD_Handler.cpp (CIAO):
+ * tools/Config_Handlers/MDD_Handler.cpp (CIAO): Changed
+ generateUUID() to generate_UUID() to match new ACE-ification of
+ the UUID class.
+
+Wed Sep 19 04:10:15 CDT 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIAO version 0.6.1 released.
+
+Tue Sep 18 15:13:37 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * DAnCE/NodeApplication/NodeApp_Configurator.cpp:
+
+ StaticDAnCE applications stopped working since the introduction
+ of this file. This change fixes the problem. For details look
+ into Bugzilla 3073. Thanks to William R. Otte for providing
+ the patch.
+
+Fri Sep 14 15:19:17 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * DAnCE/ExecutionManager/Execution_Manager.cpp:
+
+ Fixed a couple of spelling errors to user diplayed messages.
+
+Fri Sep 14 14:42:06 UTC 2007 Friedhelm Wolf <fwolf@dre.vanderbilt.edu>
+
+ * docs/schema/CIAOEvents.txt:
+ Added information about supported federation types.
+
+Wed Sep 12 22:18:03 UTC 2007 Friedhelm Wolf <fwolf@dre.vanderbilt.edu>
+
+ * docs/schema/CIAOEvents.txt:
+ Added documentation about how to integrat TAO Real-Time Event Service
+ into an CIAO based deployment.
+
+Tue Sep 4 14:25:24 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec.cpp:
+ * performance-tests/Benchmark/RoundTripClient/client.cpp:
+ Untabify.
+
+Mon Sep 03 02:50:30 CDT 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIAO version 0.6 released.
+
+Mon Aug 27 23:04:36 UTC 2007 Nilabja R <nilabjar@dre.vanderbilt.edu>
+
+ * ciao/Servant_Impl_Base.h:
+ Deleted the Private Constructor in the class Servant_Impl_Base.
+ This strangely solves the problem on Bug 3060.
+
+Mon Aug 27 13:21:14 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * tools/Config_Handlers/ADD_Handler.cpp:
+ * tools/Config_Handlers/Any_Handler.h:
+ * tools/Config_Handlers/CCD_Handler.cpp:
+ * tools/Config_Handlers/CEPE_Handler.h:
+ * tools/Config_Handlers/CPD_Handler.h:
+ * tools/Config_Handlers/DP_PCD_Handler.h:
+ * tools/Config_Handlers/DP_PCD_Handler.cpp:
+ * tools/Config_Handlers/ERE_Handler.h:
+ * tools/Config_Handlers/IDD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/CAD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/CID_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/CPD_Handler.h:
+ * tools/Config_Handlers/Package_Handlers/CPD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/IAD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/SID_Handler.h:
+ * tools/Config_Handlers/Property_Handler.h:
+ * tools/Config_Handlers/RT-CCM/TPL_Handler.h:
+ * tools/Config_Handlers/Req_Handler.h:
+ * tools/Config_Handlers/Req_Handler.cpp:
+ * tools/Config_Handlers/STD_CID_Handler.cpp:
+ * tools/Config_Handlers/SatisfierProperty_Handler.h:
+ * tools/Config_Handlers/Utils/XML_Helper.h:
+ * tools/Config_Handlers/XSCRT/Traversal.hpp:
+ Untabify.
+
+Fri Aug 24 14:23:06 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * examples/BasicSP/EC/controller.cpp:
+ * examples/Display/NavDisplayGUI_exec/DetailView.cpp:
+ * examples/Display/NavDisplayGUI_exec/MapView.cpp:
+ * examples/Hello/Receiver/Receiver_exec.h:
+ * examples/Hello/Sender/starter.cpp:
+ * examples/Null_Component/plan.h:
+ * examples/Swapping/Receiver/Receiver_exec.h:
+ * examples/Swapping/Sender/starter.cpp:
+ Untabify.
+
+Thu Aug 23 22:21:16 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * DAnCE/Deployment/CIAO_NodeApplication_CallBack.idl:
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp:
+ * DAnCE/RepositoryManager/ZIP_Wrapper.cpp:
+ Untabify.
+
+Tue Aug 21 14:43:24 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com>
+
+ * DAnCE/Interfaces/ExecutionManager_stub_export.h:
+ * DAnCE/Interfaces/NodeManager_stub_export.h:
+ * DAnCE/Interfaces/NodeManager_svnt_export.h:
+ * DAnCE/NodeApplication/CIAO_NodeApplication_export.h:
+ * DAnCE/NodeApplication/NA_Configurator_Export.h:
+ * DAnCE/NodeApplication/NoOp_Configurator_export.h:
+ * DAnCE/NodeApplication/NodeApp_Configurator_Export.h:
+ * DAnCE/NodeApplication/RTNA_Configurator_Export.h:
+ * DAnCE/NodeApplicationManager/CIAO_NAM_Export.h:
+ * DAnCE/TargetManager/TargetManager_exec_export.h:
+ * DAnCE/TargetManager/TargetManager_stub_export.h:
+ * DAnCE/TargetManager/TargetManager_svnt_export.h:
+ * DAnCE/tests/NodeApplicationTest/RoundTrip_exec_export.h:
+ * DAnCE/tests/NodeApplicationTest/RoundTrip_stub_export.h:
+ * DAnCE/tests/NodeApplicationTest/RoundTrip_svnt_export.h:
+ * ciao/CIAO_Client_Export.h:
+ * ciao/CIAO_Container_Export.h:
+ * ciao/CIAO_Server_Export.h:
+ * ciaosvcs/Events/CIAO_Events_Base/CIAO_Events_Export.h:
+ * ciaosvcs/Events/CIAO_Events_Export.h:
+ * docs/tutorials/Quoter/Simple/Broker/Broker_exec_export.h:
+ * docs/tutorials/Quoter/Simple/Broker/Broker_stub_export.h:
+ * docs/tutorials/Quoter/Simple/Broker/Broker_svnt_export.h:
+ * docs/tutorials/Quoter/Simple/Distributor/Distributor_exec_export.h:
+ * docs/tutorials/Quoter/Simple/Distributor/Distributor_stub_export.h:
+ * docs/tutorials/Quoter/Simple/Distributor/Distributor_svnt_export.h:
+ * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base_skel_export.h:
+ * docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base_stub_export.h:
+ * examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec_exec_export.h:
+ * examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec_export.h:
+ * examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec_stub_export.h:
+ * examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec_svnt_export.h:
+ * examples/Display/NavDisplayGUI_exec/NavDisplayGUI_stub_export.h:
+ * examples/Display/NavDisplayGUI_exec/NavDisplayGUI_svnt_export.h:
+ * examples/Display/RateGen/RateGen_exec_export.h:
+ * examples/Hello/Hello_Base/Hello_Base_stub_export.h:
+ * examples/Hello/Hello_Base/Hello_Base_svnt_export.h:
+ * examples/Hello/Receiver/Receiver_exec_export.h:
+ * examples/Hello/Receiver/Receiver_stub_export.h:
+ * examples/Hello/Receiver/Receiver_svnt_export.h:
+ * examples/Hello/Sender/Sender_exec_export.h:
+ * examples/Hello/Sender/Sender_stub_export.h:
+ * examples/Hello/Sender/Sender_svnt_export.h:
+ * examples/Swapping/Hello_Base/Hello_Base_stub_export.h:
+ * examples/Swapping/Hello_Base/Hello_Base_svnt_export.h:
+ * examples/Swapping/Receiver/Receiver_exec_export.h:
+ * examples/Swapping/Receiver/Receiver_stub_export.h:
+ * examples/Swapping/Receiver/Receiver_svnt_export.h:
+ * examples/Swapping/Sender/Sender_exec_1_export.h:
+ * examples/Swapping/Sender/Sender_exec_2_export.h:
+ * examples/Swapping/Sender/Sender_exec_export.h:
+ * examples/Swapping/Sender/Sender_stub_export.h:
+ * examples/Swapping/Sender/Sender_svnt_export.h:
+ * performance-tests/Benchmark/Benchmark_stub_export.h:
+ * performance-tests/Benchmark/Benchmark_svnt_export.h:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip_exec_export.h:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip_stub_export.h:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip_svnt_export.h:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec_export.h:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient_stub_export.h:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient_svnt_export.h:
+ * performance-tests/Protocols/Receiver/Receiver_exec_export.h:
+ * performance-tests/Protocols/Receiver/Receiver_stub_export.h:
+ * performance-tests/Protocols/Receiver/Receiver_svnt_export.h:
+ * performance-tests/Protocols/Sender/Sender_exec_export.h:
+ * performance-tests/Protocols/Sender/Sender_stub_export.h:
+ * performance-tests/Protocols/Sender/Sender_svnt_export.h:
+ * performance-tests/Protocols/common/Protocols_skel_export.h:
+ * performance-tests/Protocols/common/Protocols_stub_export.h:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec_export.h:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_stub_export.h:
+ * tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_svnt_export.h:
+ * tests/Bug_2130_Regression/interfaces/ENW_skel_export.h:
+ * tests/Bug_2130_Regression/interfaces/ENW_stub_export.h:
+ * tests/IDL3/Components/ComplexComponent/Attributes/Attributes_stub_export.h:
+ * tests/IDL3/Components/ComplexComponent/Attributes/Attributes_svnt_export.h:
+ * tests/IDL3/Components/ComplexComponent/EventSink/EventSink_stub_export.h:
+ * tests/IDL3/Components/ComplexComponent/EventSink/EventSink_svnt_export.h:
+ * tests/IDL3/Components/ComplexComponent/EventSource/EventSource_stub_export.h:
+ * tests/IDL3/Components/ComplexComponent/EventSource/EventSource_svnt_export.h:
+ * tests/IDL3/Components/ComplexComponent/Facets/Facets_stub_export.h:
+ * tests/IDL3/Components/ComplexComponent/Facets/Facets_svnt_export.h:
+ * tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles_stub_export.h:
+ * tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles_svnt_export.h:
+ * tests/IDL3/Components/SimpleComponent/SimpleComponent_exec_export.h:
+ * tests/IDL3/Components/SimpleComponent/SimpleComponent_stub_export.h:
+ * tests/IDL3/Components/SimpleComponent/SimpleComponent_svnt_export.h:
+ * tests/IDL3/Events/Abstract/Abstract_stub_export.h:
+ * tests/IDL3/Events/Abstract/Abstract_svnt_export.h:
+ * tests/IDL3/Events/Regular/Regular_stub_export.h:
+ * tests/IDL3/Events/Regular/Regular_svnt_export.h:
+ * tests/IDL3/Homes/Attributes/HomeAttributes_stub_export.h:
+ * tests/IDL3/Homes/Attributes/HomeAttributes_svnt_export.h:
+ * tests/IDL3/Homes/Basic/Basic_stub_export.h:
+ * tests/IDL3/Homes/Basic/Basic_svnt_export.h:
+ * tests/IDL3/Homes/Factory/Factory_stub_export.h:
+ * tests/IDL3/Homes/Factory/Factory_svnt_export.h:
+ * tests/IDL3/Homes/Finder/Finder_stub_export.h:
+ * tests/IDL3/Homes/Finder/Finder_svnt_export.h:
+ * tests/IDL3/Homes/Inheritance/Inheritance_stub_export.h:
+ * tests/IDL3/Homes/Inheritance/Inheritance_svnt_export.h:
+ * tests/IDL3/ImpliedIDL/Components/Basic/ICBasic_stub_export.h:
+ * tests/IDL3/ImpliedIDL/Components/Basic/ICBasic_svnt_export.h:
+ * tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink_stub_export.h:
+ * tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink_svnt_export.h:
+ * tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource_stub_export.h:
+ * tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource_svnt_export.h:
+ * tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles_stub_export.h:
+ * tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles_svnt_export.h:
+ * tests/IDL3/ImpliedIDL/Events/Events_stub_export.h:
+ * tests/IDL3/ImpliedIDL/Events/Events_svnt_export.h:
+ * tests/IDL3/ImpliedIDL/Homes/Homes_stub_export.h:
+ * tests/IDL3/ImpliedIDL/Homes/Homes_svnt_export.h:
+ * tests/Minimum/Minimum_Base/Minimum_Base_stub_export.h:
+ * tests/Minimum/Minimum_Base/Minimum_Base_svnt_export.h:
+ * tests/Minimum/Receiver/Receiver_exec_export.h:
+ * tests/Minimum/Receiver/Receiver_stub_export.h:
+ * tests/Minimum/Receiver/Receiver_svnt_export.h:
+ * tests/Minimum/Sender/Sender_exec_export.h:
+ * tests/Minimum/Sender/Sender_stub_export.h:
+ * tests/Minimum/Sender/Sender_svnt_export.h:
+ * tools/Config_Handlers/CIAO_Events/CIAO_Events_Handlers_Export.h:
+ * tools/Config_Handlers/DynAny_Handler/DynAny_Handler_Export.h:
+ * tools/Config_Handlers/RT-CCM/RT_CCM_Handlers_Export.h:
+ * tools/Config_Handlers/Utils/CIAO_XML_Utils_Export.h:
+ * tools/Config_Handlers/XSC_XML_Handlers_Export.h:
+ * tools/IDL3_to_IDL2/TAO_IDL3_TO_IDL2_BE_Export.h:
+
+ Regenerated export files to address compile-time problems
+ for static MSVC71 builds.
+
+Mon Aug 20 12:38:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * docs/tutorials/Quoter/Simple/03.html:
+ Corrected invalid hyperlink
+
+Wed Aug 8 13:41:12 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * performance-tests/Protocols/Sender/Sender_exec.cpp:
+ Added needed include due to refactoring
+
+Wed Aug 8 07:03:33 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/IDL3_to_IDL2/identifier_helper.cpp (original_local_name):
+
+ To the code that removes a prepended '_cxx_' from an indentifier,
+ added a check to make sure it was added automatically to avoid
+ a C++ keyword clash, and not by the user.
+
+Tue Aug 7 08:57:46 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tests/IDL3/ImpliedIDL/All/include.idl:
+ * tests/IDL3/ImpliedIDL/All/raw_include.idl:
+ * tests/IDL3/ImpliedIDL/All/pass_through.idl:
+
+ Added #ifndef guards.
+
+Mon Aug 6 13:00:10 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/IDL3_to_IDL2/identifier_helper.cpp (orig_sn):
+
+ Fixed a problem with Borland BCB6 Pro not finding an implicit
+ conversion from ACE_CString to char*.
+
+Fri Aug 3 07:40:11 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/IDL3_to_IDL2/README:
+ * tests/IDL3/ImpliedIDL/All/README:
+
+ Updated documentation in these directories.
+
+Fri Aug 3 07:01:35 UTC 2007 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/IDL3_to_IDL2/basic_visitor.cpp:
+ * tools/IDL3_to_IDL2/basic_visitor.h:
+ * tools/IDL3_to_IDL2/be_sunsoft.cpp:
+ * tools/IDL3_to_IDL2/be_sunsoft.h:
+ * tools/IDL3_to_IDL2/identifier_helper.cpp:
+ * tools/IDL3_to_IDL2/be_helper.cpp:
+ * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.cpp:
+ * tools/IDL3_to_IDL2/identifier_helper.h:
+ * tools/IDL3_to_IDL2/be_helper.h:
+
+ - Changes incorporating enhancements by folks at Thales ATM to
+ better handle the mapping of escaped identifiers (masking
+ IDL keywords) and identifiers that are C++ keywords from
+ IDL3 to IDL2. Thanks to Hakim Souami
+ <hakim dot souami at thalesatm dot com> for leading this
+ effort.
+
+ - Further changes to build on those above by adding keyword
+ handling support for scoped names and component port names.
+
+ - Addition of the capability, also from Thales ATM, to
+ optionally generate #includes of IDL files without the
+ addition of the default '_IDL2' suffix. This feature is
+ necessary when included IDL files aren't available for
+ conversion or when 'system' IDL files are included and
+ contain only IDL declarations with no 'implied IDL'
+ mapping. It is also handy for users who may have similar
+ IDL files included and don't wish to run the conversion
+ on them needlessly. While Thales ATM's version of this
+ feature uses a list of 'excluded' filenames in a text
+ file, the feature in this version uses a command line
+ option '-x <filename>' for each file to be excluded.
+
+ * tests/IDL3/ImpliedIDL/All/raw_include.idl:
+ * tests/IDL3/ImpliedIDL/All/keyword_clash.idl:
+
+ New files that expand the test coverage to include the new
+ festures described above.
+
+ * tests/IDL3/ImpliedIDL/All/all.mpc:
+ * tests/IDL3/ImpliedIDL/All/pass_through.idl:
+
+ Changes to existing test files to make use of the new files
+ listed above.
+
+Thu Aug 2 03:37:40 UTC 2007 Krishnakumar B <kitty@nospam.invalid.domain>
+
+ * examples/BasicSP/BMDisplay/BMDisplay.mpc:
+
+ Added a dependency from BMDisplay_exec to BasicSP_exec. Fixes
+ problems due to build order. Thanks to Johnny and Gan for
+ reporting the problem.
+
+Fri Jul 27 06:50:14 CDT 2007 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CIAO version 0.5.10 released.
+
+Local Variables:
+mode: change-log
+add-log-time-format: (lambda () (progn (setq tz (getenv "TZ")) (set-time-zone-rule "UTC") (setq time (format-time-string "%a %b %e %H:%M:%S %Z %Y" (current-time))) (set-time-zone-rule tz) time))
+indent-tabs-mode: nil
+End:
diff --git a/modules/CIAO/ChangeLogs/ChangeLog-pre_release b/modules/CIAO/ChangeLogs/ChangeLog-pre_release
new file mode 100644
index 00000000000..5f7b2769f7c
--- /dev/null
+++ b/modules/CIAO/ChangeLogs/ChangeLog-pre_release
@@ -0,0 +1,6202 @@
+Fri Apr 02 13:41:09 2004 Balachandran <bala@dre.vanderbilt.edu>
+
+ * CIAO version 0.4.1 released.
+
+Fri Apr 2 13:05:56 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * NEWS:
+
+ Updated with the latest developments just prior to BFO.
+
+Wed Mar 31 23:03:59 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+
+ Added code emitter to generate includes of *S.h corresponding to
+ IDL files included in the CIDL file. Thanks to Gary Duzan
+ <gduzan@bbn.com> for pointing out the problem.
+
+Wed Mar 31 17:59:12 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * tools/static_configurator/Static_Configurator.mpc:
+
+ Fixed fuzz warnings.
+
+Mon Mar 29 11:00:00 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/CIDLC.vcproj:
+
+ Excluded the file RepositoryIdGenerator.cpp from the Release build,
+ as it has already been excluded from the Debug build. Thanks to
+ Marek Brudka <mbrudka@elka.pw.edu.pl> for reporting the problem.
+
+Sun Mar 28 23:51:17 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * TAO/CIAO/tools/RTComponentServer/Makefile.RTComponentServer:
+
+ Updated dependencies.
+
+ * TAO/CIAO/tools/RTComponentServer/RTConfig_Manager.h:
+
+ Removed inclusion of Functor.h.
+
+Mon Mar 29 05:46:58 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * TAO/CIAO/tools/RTComponentServer/Makefile.RTComponentServer:
+
+ Updated dependencies.
+
+ * TAO/CIAO/tools/RTComponentServer/RTConfig_Manager.h:
+
+
+
+Tue Mar 23 14:34:06 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+
+ Modified code generated by FacetEmitter class to generate
+ the _Servant class for a facet in the scope where the IDL
+ interface the facet employs is defined, as mandated by the
+ CCM spec.
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Change generation of the declaration of a local variable
+ which is a _var of the executor class for a facet to match the
+ scope of the declaration of the executor class itself, which
+ must be, as mentioned above, in the same scope as the declaration
+ of the IDL interface used by the facet.
+
+ Thanks to Jessica Pistole <Jessica.Pistole@jhuapl.edu> for
+ sending the example IDL/CIDL files that demostrated the
+ problem.
+
+Tue Mar 16 11:22:44 2004 Venkita Subramonian <venkita@cs.wustl.edu>
+
+ * docs/static_ciao_contents.html:
+ * docs/static_config_example.html:
+ * docs/index.html:
+
+ Fixed webpage for unnecessary whitespace characters. Fixed links
+ to images. Thanks to Tao Lu for pointing out.
+
+Tue Mar 16 10:34:41 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+
+ Added instantiation of generators for regular and readonly
+ attributes in interfaces supported by components. The
+ corresponding code generation in the servant source file
+ was already there.
+
+Tue Mar 16 10:36:21 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * CIAO-INSTALL.html:
+
+ Added the support for CIDL with MPC on Linux.
+
+Tue Mar 16 10:52:21 2004 Venkita Subramonian <venkita@harry.cs.wustl.edu>
+
+ * docs/static_config_example.html:
+ * docs/static_ciao_contents.html:
+ * docs/static_ciao_toc.html:
+
+ Made some modifications to include an example run.
+
+ * docs/index.html:
+
+ Added link from the CIAO main page to the static config
+ documentation.
+
+Sun Mar 14 00:23:02 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * CCF/CCF/CIDL/CIDL.mpc:
+ * CCF/CCF/IDL2/IDL2.mpc:
+ * CCF/CCF/IDL3/IDL3.mpc:
+ * CCF/CCF/CIDL/CodeGenerationKit.mpc:
+ * CCF/CCF/CIDL/CompilerElements.mpc:
+
+ Removed the * to disable the duplicated words in the
+ project/makefile.
+
+Sun Mar 14 00:16:46 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * CIDLC/CIDLC.mpc:
+
+ Removed the * to disable the duplicated words in the
+ project/makefile.
+
+Mon Mar 15 10:14:16 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CIDLC/cidlc.cpp:
+
+ Temporary fix for the wrong return code in CIDL compiler.
+ Thanks to Gary Duzan <gduzan@bbn.com> for reporting this.
+
+Fri Mar 12 11:03:38 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/TypeNameEmitter.cpp:
+ * CIDLC/TypeNameEmitter.hpp:
+
+ Added missing operations to generate enum type names. Thanks to
+ Jessica Pistole <Jessica.Pistole@jhuapl.edu> for reporting
+ the missing type names in generated servant glue code.
+
+Thu Mar 11 16:30:45 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/CCF/IDL2/LexicalAnalyzer.cpp:
+ * CCF/CCF/IDL2/Parser.cpp:
+ * CCF/CCF/IDL2/Parser.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Typedef.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Typedef.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Typedef.hpp:
+
+ Added support for bounded string and wstring.
+
+ * CCF/Documentation/TODO:
+
+ Reflected new achievement.
+
+ * CIDLC/cidlc.cpp:
+
+ Cosmetic changes.
+
+2004-03-11 Venkita Subramonian <venkita@harry.cs.wustl.edu>
+
+ * ciao/Container_Base.cpp: Removed an ACE_DEBUG statement which
+ got in by mistake.
+
+Wed Mar 10 14:59:19 2004 Venkita Subramonian <venkita@cs.wustl.edu>
+
+ * docs/static_ciao_toc.html:
+ * docs/static_ciao_contents.html:
+ * docs/static_ciao_index.html: Updated documentation. Renamed
+ static_ciao.html to static_ciao_contents.html.
+
+Wed Mar 10 12:36:01 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Added code generator instantiations to handle multiple nested
+ modules.
+
+ * CIDLC/cidlc.cpp:
+
+ Fixed typo in usage message.
+
+Tue Mar 9 23:18:22 2004 Venkita Subramonian <venkita@cs.wustl.edu>
+
+ * tools/static_configurator/Static_Assembly_Parser.cpp:
+
+ Made a minor fix to eliminate unnecessary command line option
+ processing.
+
+ * tools/static_configurator/README: Added this file.
+
+Tue Mar 9 22:48:10 2004 Venkita Subramonian <venkita@cs.wustl.edu>
+
+ * docs/static_ciao.html:
+ * docs/imgs/ciao-static1.jpg:
+ * docs/imgs/ciao-static2.jpg:
+ * docs/imgs/ciao-dynamic1.jpg:
+ * docs/imgs/ciao-dynamic2.jpg:
+ * docs/imgs/ciao-static-vs-dynamic.jpg: Added documentation for
+ CIAO static configuration.
+
+Mon Mar 8 14:57:39 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CIDLC/ExecutorMappingGenerator.cpp:
+
+ Added inclusion of the source file when compiling with
+ --lem-force-all option.
+
+Mon Mar 8 13:54:16 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * NEWS:
+
+ Added a NEWS file which tracks user visible changes between
+ every beta. Thanks to Olli Savia and Gary Duzan for motivating
+ this.
+
+Wed Mar 3 14:30:53 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Added code generation for operations corresponding to
+ attributes in facets and supported interfaces. Thanks to
+ Praveen K Sharma <psharma@bbn.com> for reporting the bug.
+ This closes [BUGID:1756].
+
+Tue Mar 2 19:50:50 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * DnC/Node/NodeApplicationManager_Impl.h:
+
+ Added @@Tao comments.
+
+Tue Mar 2 15:08:39 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Fixed code generation in the body of an operation. This
+ body just delegates to the executor, so we have to
+ generate the argument list again (just the names, not
+ the types), but we don't have to generate the raises
+ list again. The front end Traversal raises() method
+ was getting executed, no code generated, but it was
+ picking up the overridden comma() method used for the
+ arg list. So we had to override raises() itself to
+ do nothing. Thanks to Boris for his help with this.
+
+Tue Mar 2 01:34:18 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/Node:
+ * DnC/Node/NodeApplication_Impl.h:
+ * DnC/Node/NodeApplication_Impl.h:
+
+ Added the prototype definition files of
+ NodeApplication and NodeApplicationManager.
+
+Sun Feb 29 20:57:40 2004 Venkita Subramonian <venkita@cs.wustl.edu>
+
+ * tools/static_configurator/Static_Configurator.h:
+ * tools/static_configurator/Static_Configurator.cpp:
+ * tools/static_configurator/Static_Assembly_Parser.cpp: Fixed
+ compile errors in builds with native exceptions disabled.
+
+ * tools/static_configurator/Static_Assembly_Visitors.cpp: Fixed
+ compile errors in gcc 3.3.2. Thanks to Bala for pointing out.
+
+Sat Feb 28 15:42:22 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * tools/static_configurator/Static_Assembly_Visitors.cpp:
+
+ Fixed a couple of small errors. But this file still doeasn't
+ compile with gcc 3.3.2. Sending Venkita note.
+
+Fri Feb 27 11:35:41 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Fixed code generation errors reported by Edward Mulholland
+ <emulholl@atl.lmco.com>.
+
+Thu Feb 26 14:21:48 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CIAOTAO.mwc:
+
+ An mwc file for CIAO with its dependencies on ACE+TAO. Folks can
+ now run $ACE_ROOT/bin/mwc.pl CIAOTAO.mwc in $CIAO_ROOT and
+ invoke "make" from $CIAO_ROOT. Thanks to Brian Mendel and Ed
+ Mulholland for motivating this.
+
+Tue Feb 24 18:00:44 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/Deployment.idl: Removed
+ * DnC/DnC_Deployment.idl
+ * DnC/DnC_Element.idl
+ * DnC/DnC_Resource.idl
+
+ Deployment.idl is splited into 3 parts now.
+
+Mon Feb 23 15:04:26 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Added generation of a top-level namespaces with the name
+ derived from composition. Plus all the necessary modifications
+ in generated code to adopt this scheme.
+
+Mon Feb 23 13:54:19 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * CIDLC/CIDLC.vcproj:
+
+ Added ".\Literals.cpp" into the project.
+
+Mon Feb 23 13:34:20 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * CIDLC/CIDLC.vcproj:
+
+ Reversed the change.
+
+Thu Feb 19 11:07:35 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * docs/index.html:
+
+ Added the parts listing area. Added a few relative links.
+
+Wed Feb 18 13:05:35 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/CCF/IDL2/SemanticGraph/Name.cpp:
+
+ Added missing header inclusion.
+
+Wed Feb 18 10:43:54 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * docs/index.html:
+
+ Added the tutorial section in this file.
+
+Wed Feb 18 10:11:42 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * CCF/CCF/CIDL/CIDL.mpc:
+ * CCF/CCF/CodeGenerationKit/CodeGenerationKit.mpc:
+ * CCF/CCF/CompilerElements/CompilerElements.mpc:
+ * CCF/CCF/IDL2/IDL2.mpc:
+ * CCF/CCF/IDL3/IDL3.mpc:
+
+ Changed these MPC files to specify the output lib path.
+
+Wed Feb 18 14:05:13 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CCF/CCF/CCF.mwc:
+ Removed this file, it has an error and is not needed.
+
+Tue Feb 17 01:18:16 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * examples/Hello/Receiver/Receiver_exec.cpp:
+ * examples/OEP/BasicSP/BMClosedED/BMClosedED_exec.cpp:
+ * examples/OEP/BasicSP/BMDevice/BMDevice_exec.cpp:
+ * examples/OEP/BasicSP/BMDisplay/BMDisplay_exec.cpp:
+ * examples/OEP/Display/NavDisplay/NavDisplay_exec.cpp:
+ * examples/OEP/Display/RateGen/RateGen_exec.cpp:
+ * examples/OEP/Display/RateGen/client.cpp:
+ * examples/OEP/Display/RateGen/controller.cpp:
+
+ Fixed the code for exception safety when exceptions are
+ disabled. I don't claim that I have caught everything, but
+ should have most of the problems. Another pass is required to fix
+ the remaining problems.
+
+Mon Feb 16 20:01:19 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CIDLC/CIDLC.mwc:
+
+ Added the mpc files from CCF in there. This will make it easier
+ for the users. Users just need to go to $CIAO_ROOT/CIDLC and
+ type mwc.pl CIDLC.mwc and then a make. They need not go to go
+ and build CCF specifically. But this has a hitch that Tao needs
+ to fix. The CCF libraries should be installed in $CIAO_ROOT/lib
+ for this to work fine. Tao has accepted to fix this.
+
+ * CIDLC/Literals.cpp:
+ * CIDLC/Literals.hpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Bunch of wrong environment macro usage. This should fix the
+ problems that Brian Mendel reported. Thanks to Brian for
+ reporting this.
+
+ These fixes wouldn't have taken so long. The CIDLC linking takes
+ a really really long time!
+
+ * examples/Hello/Receiver/Receiver_exec.cpp:
+ * examples/Hello/Sender/Sender_exec.cpp:
+ * examples/Hello/Sender/starter.cpp:
+ * examples/OEP/BasicSP/EC/EC_exec.cpp:
+ * examples/OEP/BasicSP/EC/client.cpp:
+ * examples/OEP/BasicSP/EC/controller.cpp:
+
+ Fixes to the executor code to get it compiling on platforms with
+ exceptions disabled.
+
+Mon Feb 16 16:32:11 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * CCF/CCF/CCF.mwc:
+ Fixed typo in this file, this fixes the problems out VC71 build has
+
+Fri Feb 13 11:51:17 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CIDLC/ExecutorMappingGenerator.cpp:
+
+ Added generation of file caption to local executor mapping.
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Fixed bug in name generation when decalartions are in file
+ scope.
+
+ * CIDLC/DescriptorGenerator.cpp:
+
+ Fixed inconsistent tags.
+
+ * CIDLC/Literals.cpp:
+ * CIDLC/Literals.hpp:
+
+ Split literals into header and source.
+
+ * CIDLC/CIDLC.mpc:
+ * CIDLC/CIDLC.vcproj:
+ * CIDLC/Makefile:
+ * CIDLC/Makefile.alt:
+
+ Added Literals.cpp
+
+Thu Feb 12 17:40:33 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * CIDLC/CIDLC.mwc:
+ * CIDLC/CIDLC.mpc:
+
+ Updated these two files.
+ Note: Only linux with boost/utility installed as package/rpm is
+ tested.
+
+Thu Feb 12 11:00:39 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * CIAO-INSTALL.html
+ * CCF/CCF/CIDL/CIDL.mpc
+ * CCF/CCF/CodeGenerationKit/CodeGenerationKit.mpc
+ * CCF/CCF/CompilerElements/CompilerElements.mpc
+ * CCF/CCF/IDL2/IDL2.mpc
+ * CCF/CCF/IDL3/IDL3.mpc
+
+ Updated these files to set the static linkage.
+
+Thu Feb 12 10:31:23 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * CCF/CCF/CCF.mwc:
+
+ Added this workspace file.
+
+Wed Feb 11 19:17:54 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * CIAO-INSTALL.html:
+
+ Added this file for CIAO install/build instructions.
+
+Wed Feb 11 12:05:59 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/Documentation/Build.html:
+
+ Updated URLs to the Boost website. Fixed incorrect build
+ instruction for Windows.
+
+Wed Feb 11 11:36:08 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * examples/Hello/descriptors/run_test_debug.pl:
+
+ A new script that uses -ORBdebuglevel while running the
+ component server.
+
+ * examples/Hello/step-by-step.html:
+
+ Added a pointer to the above script.
+
+ Thanks to Gary Duzan <gduzan@bbn.com> and Praveen Sharma
+ <psharma@bbn.com> for motivating this.
+
+Tue Feb 10 18:15:59 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/Documentation/Build.html:
+
+ Fixed bugs and updated links.
+
+Tue Feb 10 16:44:33 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * CIDLC/CIDLC.vcproj:
+
+ Changed the include path.
+
+Tue Feb 10 16:28:53 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * cidlc/CIDLC.vcproj:
+
+ Added '..' to include paths, to pick up inclusion of
+ ciao/Version.h.
+
+ * cidlc/ServantHeaderGenerator.cpp:
+ * cidlc/ServantSourceGenerator.cpp:
+
+ Fixed errors in generated environment variables. Thanks to
+ Edward Mulholland <emulholl@atl.lmco.com> for reporting the
+ problems.
+
+Tue Feb 10 14:54:48 2004 Venkita Subramonian <venkita@cs.wustl.edu>
+
+ * ciao/Container_Impl.h:
+ * ciao/Container_Base.h: Changes to fix compile errors by adding
+ default arguments for static configuration related paramters in
+ the constructor.
+
+
+Tue Feb 10 11:35:47 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * DnC/Deployment.idl:
+
+ Added this file for the new DnC spec.
+
+Tue Feb 10 10:41:48 2004 Venkita Subramonian <venkita@cs.wustl.edu>
+
+ * tools/static_configurator/Static_Assembly_Visitors.{cpp,h}:
+ * tools/static_configurator/Static_Assembly_Parser.cpp:
+ * tools/static_configurator/Static_Assembly.h: Offline static
+ configuration parser to parse XML files into an intermediate C++
+ header file which will be included by the online configuration
+ engine.
+
+ * tools/static_configurator/Static_Configurator.mpc:
+ * tools/static_configurator/Static_Configurator.{h,cpp}: Online
+ configuration engine that reads the intermediate table created
+ by the offline parser. This is responsible for creating
+ component servers, homes, containers, components and
+ establishing connections between components.
+
+ * ciao/Container_Base.{h,cpp}: Modifications for static
+ configuration. While installing a home, instead of loading the
+ entry point symbol from a DLL, the entry point function pointer
+ is obtained from a hashmap which is passed to the
+ container. This hashmap contains the name of the entry point and
+ the entry point function pointer.
+
+ * ciao/Container_Impl.{h,cpp,inl}:
+ * ciao/ComponentServer_Impl.{h,cpp,inl}: Changed constructor
+ signatures to add a flag for static configuration and a hashmap
+ containing the static entry function pointers. These are
+ defaulted to 0.
+
+Fri Feb 6 15:54:26 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/Hello/Hello_Base/Hello_Base.idl:
+ * examples/OEP/BasicSP/BasicSP.idl:
+ * examples/OEP/Display/HUDisplay.idl:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip.idl:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient.idl:
+
+ Removed the 'ciao/' path prefix from inclusions of
+ Components.idl.
+
+Fri Feb 6 14:49:48 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * CIDLC/CIDLC.mpc:
+ * CCF/CCF/CIDL/CIDL.mpc
+ * CCF/CCF/IDL2/IDL2.mpc
+ * CCF/CCF/CodeGenerationKit/CodeGenerationKit.mpc
+ * CCF/CCF/CompilerElements/CompilerElements.mpc
+ * CCF/CCF/IDL3/IDL3.mpc
+
+ Added reqires cidl in these mpc files. By default
+ cidl is not turned on, so MPC won't generate makefiles.
+
+Thu Feb 5 12:58:14 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/Documentation/Build.html:
+ * CIDLC/README.html:
+
+ Updated all URLs to point to the 'central location'.
+
+Wed Feb 4 14:58:05 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * ./CIDLC/CIDLC.mpc:
+ * ./CCF/CCF/CIDL/CIDL.mpc
+ * ./CCF/CCF/IDL2/IDL2.mpc
+ * ./CCF/CCF/CodeGenerationKit/CodeGenerationKit.mpc
+ * ./CCF/CCF/CompilerElements/CompilerElements.mpc
+ * ./CCF/CCF/IDL3/IDL3.mpc
+
+ Added these mpc files to build CIDLC compiler.
+ The libpath of Boost and Utility is not fixed yet.
+ Need to test all the mpc files on both Linux/Windows.
+
+Wed Feb 4 13:58:36 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * ciao/CCM_Base.idl:
+ * ciao/CCM_Container.idl:
+ * ciao/CCM_Core.mpc:
+ * ciao/CCM_Deployment.idl:
+ * examples/Hello/Hello_Base/Hello_Base.idl:
+ * examples/OEP/BasicSP/BasicSP.idl:
+ * examples/OEP/BasicSP/BMClosedED/BMClosedED_exec.cpp:
+ * examples/OEP/BasicSP/BMDevice/BMDevice_exec.cpp:
+ * examples/OEP/BasicSP/BMDisplay/BMDisplay_exec.cpp:
+ * examples/OEP/Display/HUDisplay.idl:
+ * examples/OEP/Display/NavDisplay/NavDisplay_exec.cpp:
+ * performance-tests/Benchmark/Benchmark.mpc:
+ * performance-tests/Benchmark/server.cpp:
+ * performance-tests/Benchmark/Multi_Threaded/Multi_Threaded.mpc:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip.idl:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip_exec.cpp:
+ * performance-tests/Benchmark/RoundTrip/client.cpp:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient.idl:
+ * performance-tests/Benchmark/RoundTripServer/server.cpp:
+ * tests/temp/assembly/client.cpp:
+ * tests/temp/assembly/control.idl:
+ * tests/temp/assembly/control.mpc:
+ * tests/temp/assembly/server.cpp:
+ * tools/Assembly_Deployer/Assembly_Deployer.cpp:
+ * tools/Assembly_Deployer/Assembly_Impl.cpp:
+ * tools/Assembly_Deployer/Assembly_Impl.h:
+ * tools/Assembly_Deployer/Assembly_Manager.cpp:
+ * tools/Assembly_Deployer/Assembly_Service.idl:
+ * tools/Assembly_Deployer/Assembly_Visitors.h:
+ * tools/Assembly_Deployer/Deployment_Configuration.h:
+ * tools/ComponentServer/ComponentServer.cpp:
+ * tools/ComponentServer/ComponentServer_test_client.cpp:
+ * tools/Daemon/CIAO_Daemon.cpp:
+ * tools/Daemon/Daemon_Commands.cpp:
+ * tools/Daemon/CIAO_Daemon.cpp:
+ * tools/Daemon/Daemon_Commands.cpp:
+ * tools/ServerActivator/ServerActivator.cpp:
+ * tools/ServerActivator/ServerActivator_test_client.cpp:
+ * tools/XML_Helpers/XMLHelpers.mpc:
+ * tools/XML_Helpers/XML_Utils.h:
+
+ - Removed all include paths except TAO_ROOT and CIAO_ROOT
+ for C++ and IDL compilers, from MPC files.
+
+ - Modified includes in source and header files as necessary,
+ per the above changes.
+
+ - Added missing ACE_ROOT/ace includes.
+
+ - Made other modifications as necessary to MPC files to
+ eliminate build errors.
+
+Mon Feb 2 20:07:41 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * tools/XML_Helpers/Makefile.XML_Helpers:
+
+ Removed RTConfiguration_Stub.cpp and included
+ RTConfigurationC.cpp for compilation.
+
+Mon Feb 2 20:00:07 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * tools/XML_Helpers/RTConfiguration.idl:
+
+ Include RTCORBA_include.pidl instead of RTCORBA.pidl.
+
+ * tools/XML_Helpers/RTConfiguration_Stubs.cpp:
+
+ Removed the hacks in this file since they are no longer
+ necessary.
+
+ * tools/XML_Helpers/XMLHelpers.mpc:
+
+ Changed the order of inheritance to get the libraries in the
+ right order.
+
+ All these should fix a problem reported by Diego Sevilla Ruiz
+ and as always thanks to him for reporting it.
+
+Sat Jan 31 18:26:24 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * tools/XML_Helpers/RTConfiguration.idl:
+
+ Appended "tao" to the path for RTCORBA.pidl.
+
+Thu Jan 29 14:03:42 2004 Chad Elliott <elliott_c@ociweb.com>
+
+ * examples/OEP/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc:
+ * tools/XML_Helpers/XMLHelpers.mpc:
+
+ Updated these mpc files to work with IDL_Files as a custom build
+ type instead of a built-in build type.
+
+Thu Jan 29 12:30:52 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * step-by-step.html:
+ * Receiver/Receiver.mpc:
+ * Receiver/Receiver_exec.cpp:
+ * Receiver/Receiver_exec.h:
+ * Sender/Sender.mpc:
+ * Sender/Sender_exec.cpp:
+ * Sender/Sender_exec.h:
+ * descriptors/default.cad:
+ * descriptors/multi-receivers-default.cad:
+ * descriptors/run_test_multirecv.pl:
+
+ Following changes have been added to resolve the EI.idl problem.
+ 1. All *EI.idl are removed.
+ 2. All provided facets are implemented by the way of
+ "composition".
+ 3. Added one more deployment scenario which has 2 instances of
+ the Receiver.
+
+Thu Jan 29 11:00:50 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CIDLC/ExecutorMappingGenerator.cpp:
+
+ Reverted some more changes since they caused the C++ generated
+ code to break.
+
+Thu Jan 29 10:03:42 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/Documentation/Build.html:
+
+ Debian package libboost-dev apparently does not include regex.
+ Instead regex is provided as a separate libboost-regex-dev.
+ Added libboost-regex-dev as a required package to build CCF.
+ Thanks to Hans-Peter Bock <Hans-Peter.Bock@isw.uni-stuttgart.de>
+ for reporting this.
+
+Wed Jan 28 17:49:06 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CIDLC/ExecutorMappingGenerator.cpp:
+
+ Reverted back to SessionContext since it would be very hard
+ to fix C++ code to conform to this change. Will have to
+ do it later as part of C++ code refactoring.
+
+Wed Jan 28 13:21:00 2004 Chad Elliott <elliott_c@ociweb.com>
+
+ * examples/OEP/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc:
+
+ Use the new qt and qt_moc base projects. The qt-min* base
+ projects have been removed and the functionality moved into qt and
+ qt_moc. The original qt and qt_moc base projects were dispersed
+ and became different base projects.
+
+Wed Jan 28 13:02:28 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/Example/CIDL/LocalExecutorMapping/ExecutorMappingGenerator.cpp:
+ * CIDLC/ExecutorMappingGenerator.cpp:
+
+ Implemented generation of additional interfaces that allow
+ separation between executor interfaces and composition type.
+
+Tue Jan 27 12:05:13 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * examples/Hello/Sender/Sender_exec.cpp:
+ * examples/Hello/Sender/Sender_exec.h:
+
+ New EI-less implementation.
+
+ * CIDLC/CIDLC.sln:
+ * CIDLC/CIDLC.vcproj:
+
+ Updated projects to compile with boost out-of-the-box.
+
+Tue Jan 27 11:33:39 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * examples/Hello/Sender/Sender_exec.h:
+ * examples/Hello/Sender/Sender_exec.cpp:
+ * examples/Hello/Sender/Sender.idl:
+ * examples/Hello/Sender/starter.cpp:
+
+ Updated these files.
+
+Tue Jan 27 10:15:59 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * examples/Hello/step-by-step.html:
+
+ Some format and trivial fix.
+
+Mon Jan 26 20:33:31 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * examples/Hello/step-by-step.html:
+
+ Updated this file with new font.
+
+Fri Jan 23 10:36:27 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/CCF/CCF.sln:
+ * CCF/CCF/CIDL/CIDL.vcproj:
+ * CCF/CCF/CodeGenerationKit/CodeGenerationKit.vcproj:
+ * CCF/CCF/CompilerElements/CompilerElements.vcproj:
+ * CCF/CCF/IDL2/IDL2.vcproj:
+ * CCF/CCF/IDL3/IDL3.vcproj:
+
+ Updated projects to compile with boost out-of-the-box.
+
+ * CCF/Documentation/Build.html:
+
+ Added step-by-step instructions for building CCF on
+ Windows. Thanks to Tao Lu for helping me with this.
+
+Thu Jan 22 23:38:32 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * examples/OEP/Display/descriptors/DualDisplay.cad:
+
+ Changed the name of the file.
+
+Wed Jan 21 11:16:31 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/CCF/IDL2/Parsing/Recovery.hpp:
+ * CCF/CCF/IDL2/Traversal/ValueType.tpp:
+ * CCF/CCF/IDL3/Traversal/EventType.tpp:
+ * CIDLC/ExecutorMappingGenerator.cpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Cosmetic changes.
+
+Wed Jan 21 10:17:22 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/Makefile:
+ * CCF/CCF/Makefile:
+ * CCF/CCF/CIDL/Makefile:
+ * CCF/CCF/CIDL/Makefile.alt:
+ * CCF/CCF/CIDL/Makefile.archive:
+ * CCF/CCF/CIDL/Makefile.archive.alt:
+ * CCF/CCF/CIDL/SemanticAction/Makefile:
+ * CCF/CCF/CIDL/SemanticAction/Makefile.alt:
+ * CCF/CCF/CIDL/SemanticAction/Makefile.object:
+ * CCF/CCF/CIDL/SemanticAction/Makefile.object.alt:
+ * CCF/CCF/CIDL/SemanticAction/Impl/Makefile:
+ * CCF/CCF/CIDL/SemanticGraph/Makefile:
+ * CCF/CCF/CIDL/Traversal/Makefile:
+ * CCF/CCF/CodeGenerationKit/Makefile:
+ * CCF/CCF/CompilerElements/Makefile:
+ * CCF/CCF/IDL2/Makefile:
+ * CCF/CCF/IDL2/Makefile.alt:
+ * CCF/CCF/IDL2/Makefile.archive:
+ * CCF/CCF/IDL2/Makefile.archive.alt:
+ * CCF/CCF/IDL2/SemanticAction/Makefile:
+ * CCF/CCF/IDL2/SemanticAction/Makefile.alt:
+ * CCF/CCF/IDL2/SemanticAction/Makefile.object:
+ * CCF/CCF/IDL2/SemanticAction/Makefile.object.alt:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Makefile:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Makefile.alt:
+ * CCF/CCF/IDL2/SemanticGraph/Makefile:
+ * CCF/CCF/IDL2/Traversal/Makefile:
+ * CCF/CCF/IDL2/Traversal/Makefile.alt:
+ * CCF/CCF/IDL3/Makefile:
+ * CCF/CCF/IDL3/Makefile.alt:
+ * CCF/CCF/IDL3/Makefile.archive:
+ * CCF/CCF/IDL3/Makefile.archive.alt:
+ * CCF/CCF/IDL3/SemanticAction/Makefile:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Makefile:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Makefile.alt:
+ * CCF/CCF/IDL3/SemanticGraph/Makefile:
+ * CCF/CCF/IDL3/Traversal/Makefile:
+ * CIDLC/Makefile:
+
+ Added ACE-style makefiles.
+
+ * CCF/CCF/CIDL/Parser.hpp:
+ * CCF/CCF/CodeGenerationKit/CommandLineGrammar.hpp:
+ * CCF/CCF/IDL2/Parser.hpp:
+ * CCF/CCF/IDL2/Token.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Elements.tpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Factory.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Elements.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Exception.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Interface.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Operation.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Translation.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Include.cpp:
+ * CCF/CCF/IDL3/SemanticGraph/Component.hpp:
+ * CCF/CCF/IDL3/SemanticGraph/Home.hpp:
+
+ Cosmetic changes.
+
+ * CCF/Documentation/Build.html:
+
+ Fixed a typo.
+
+Mon Jan 19 10:08:15 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CIDLC/Makefile.alt:
+ * CIDLC/cidlc.cpp:
+
+ Added --version command line option to CIDL compiler. Thanks
+ to Craig Rodrigues for the suggestion.
+
+Thu Jan 15 20:17:17 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/Documentation/Build.html:
+
+ Fixed some typos. Thanks to Craig Rodrigues for reporting
+ them.
+
+Thu Jan 15 17:53:38 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/Documentation/Build.html:
+
+ Updated build instructions for Debian GNU/Linux and RedHat
+ OS family.
+
+Thu Jan 15 14:39:35 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/Config.rules:
+
+ Fixed incorrect initialization of UTILITY_BUILD_RULES when
+ UTILITY_ROOT is set. Thanks to Gary Duzan <gduzan@bbn.com>
+ for reporting this.
+
+Thu Jan 15 14:30:44 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * README:
+
+ Updated the file with information about CIDLC. Thanks to Gary
+ Duzan <gduzan@bbn.com> for motivating this.
+
+Wed Jan 14 18:50:00 2004 Balachandran <bala@dre.vanderbilt.edu>
+
+ * CIAO version 0.4 released.
+
+Wed Jan 14 15:22:13 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CIDLC/README
+ * CIDLC/README.html:
+
+ HTML'ised README into a new file README.html and removed the
+ ascii equivalent of it.
+
+Wed Jan 14 11:30:58 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * docs/releasenotes/index.html:
+ * docs/index.html:
+
+ Updated releasenotes.
+
+Wed Jan 14 10:59:10 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * docs/releasenotes:
+
+ New directory.
+
+ * docs/releasenotes/index.html:
+
+ The actual document is placed here to be consistent with TAO.
+
+ * docs/releasenotes.html:
+
+ Removed the file since it has been moved into a new directory.
+
+Tue Jan 13 20:54:31 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * ChangeLog:
+
+ Lots of entries had gotten removed. Fixed them.
+
+Tue Jan 13 11:24:55 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/Config.rules:
+
+ Added 'default-if-not-set' value for UTILITY_BUILD_RULES to
+ look into well-known location where RedHat and Debian packages
+ are installed.
+
+Sat Jan 10 11:58:05 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CIAO.mwc:
+
+ Fixed a typo in the previous checkin.
+
+Sat Jan 10 11:08:42 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * CIAO.mwc:
+
+ We removed all the mpc files for CIDLC. Needed to remove that
+ from the workspace file too.
+
+Fri Jan 9 16:01:55 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/cidlc.cpp:
+
+ Changed the error return value from -1 to 1. For some reason,
+ Visual Studio does not detect the -1 return value and thinks
+ everything is fine.
+
+Fri Jan 9 15:45:33 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/Documentation/Build.html:
+
+ Added some clarifications suggested by Tao Lu.
+
+Fri Jan 9 14:46:41 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CCF/CCF/CIDL/CIDL.vcproj:
+ * CCF/CCF/CodeGenerationKit/CodeGenerationKit.vcproj:
+ * CCF/CCF/IDL2/IDL2.vcproj:
+
+ Added new files for union support and updated other project
+ settings.
+
+ * CIDLC/ServantSourceGenerator.cpp:
+ * CIDLC/izeTypeCalculator.cpp:
+ * CIDLC/TypeNameEmitter.cpp:
+ * CIDLC/TypeNameEmitter.hpp:
+
+ Added support for unions to the back end, and fixed a bug in
+ generating the servant name when the component is declared at
+ file scope.
+
+Fri Jan 9 12:25:37 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/CCF/IDL2/SemanticAction/Impl/Union.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Union.hpp:
+
+ Fixed a bug with union member handling in semantic
+ actions.
+
+Fri Jan 9 12:20:32 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/Config.rules:
+ * CCF/Makefile.alt:
+ * CCF/CCF/Makefile.alt:
+ * CCF/CCF/CIDL/Makefile.alt:
+ * CCF/CCF/CIDL/Makefile.archive:
+ * CCF/CCF/CIDL/SemanticAction/Makefile.alt:
+ * CCF/CCF/CIDL/SemanticAction/Makefile.object:
+ * CCF/CCF/CIDL/SemanticAction/Impl/Makefile.alt:
+ * CCF/CCF/CIDL/SemanticGraph/Makefile.alt:
+ * CCF/CCF/CIDL/Traversal/Makefile.alt:
+ * CCF/CCF/CodeGenerationKit/Makefile.alt:
+ * CCF/CCF/CompilerElements/Makefile.alt:
+ * CCF/CCF/IDL2/Makefile.alt:
+ * CCF/CCF/IDL2/Makefile.archive:
+ * CCF/CCF/IDL2/SemanticAction/Makefile.alt:
+ * CCF/CCF/IDL2/SemanticAction/Makefile.object:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Makefile.alt:
+ * CCF/CCF/IDL2/SemanticGraph/Makefile.alt:
+ * CCF/CCF/IDL2/Traversal/Makefile.alt:
+ * CCF/CCF/IDL3/Makefile.alt:
+ * CCF/CCF/IDL3/Makefile.archive:
+ * CCF/CCF/IDL3/SemanticAction/Makefile.alt:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Makefile.alt:
+ * CCF/CCF/IDL3/SemanticGraph/Makefile.alt:
+ * CCF/CCF/IDL3/Traversal/Makefile.alt:
+ * CCF/Documentation/Build.html:
+ * CCF/Example/Makefile.alt:
+ * CCF/Example/CIDL/Makefile.alt:
+ * CCF/Example/CIDL/LocalExecutorMapping/Makefile.alt:
+ * CCF/Example/CodeGenerationKit/Makefile.alt:
+ * CCF/Example/CodeGenerationKit/Indentation/Makefile.alt:
+ * CCF/Example/CodeGenerationKit/Indentation/IDL/Makefile.alt:
+ * CCF/Example/CodeGenerationKit/Indentation/XML/Makefile.alt:
+ * CCF/Example/ComponentDeploymentDescriptor/Makefile.alt:
+ * CCF/Example/IDL2/Makefile.alt:
+ * CCF/Example/IDL2/CxxMapping/Makefile.alt:
+ * CCF/Test/Makefile.alt:
+ * CCF/Test/CIDL/Makefile.alt:
+ * CCF/Test/CIDL/Compiler/Makefile.alt:
+ * CCF/Test/CompilerElements/Makefile.alt:
+ * CCF/Test/CompilerElements/CPP/Makefile.alt:
+ * CCF/Test/IDL2/Makefile.alt:
+ * CCF/Test/IDL2/Compiler/Makefile.alt:
+ * CCF/Test/IDL2/SemanticGraph/Makefile.alt:
+ * CCF/Test/IDL2/SemanticGraph/HandBuilt/Makefile.alt:
+ * CCF/Test/IDL2/Traversal/Makefile.alt:
+ * CCF/Test/IDL2/Traversal/Recreate/Makefile.alt:
+ * CCF/Test/IDL3/Makefile.alt:
+ * CCF/Test/IDL3/Compiler/Makefile.alt:
+ * CIDLC/Makefile.alt:
+
+ Added 'flexibility' variables to Config.rules and
+ updated makefiles to reflect this change.
+
+Thu Jan 8 15:33:31 2004 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * CCF/CCF/CCF.mwc
+ * CCF/CCF/CIDL/CIDL.mpc
+ * CCF/CCF/CodeGenerationKit/CodeGenerationKit.mpc
+ * CCF/CCF/CompilerElements/CompilerElements.mpc
+ * CCF/CCF/IDL2/IDL2.mpc
+ * CCF/CCF/IDL3/IDL3.mpc
+ * CCF/CCF.mwc
+ * CCF/Example/CIDL/CIDL.mwc
+ * CCF/Example/CIDL/LocalExecutorMapping/LocalExecutorMapping.mpc
+ * CCF/Example/Example.mwc
+ * CCF/Example/CodeGenerationKit/Indentation/IDL/IDL.mpc
+ * CCF/Example/CodeGenerationKit/Indentation/XML/XML.mpc
+ * CCF/Example/CodeGenerationKit/Indentation/Indentation.mwc
+ * CCF/Example/CodeGenerationKit/CodeGenerationKit.mwc
+ * CIDLC/cidlc.mpc
+
+ Removed all these MPC files since CIDL is not working with MPC yet.
+
+Thu Jan 8 15:10:24 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/CCF/IDL2/LexicalAnalyzer.cpp:
+ * CCF/CCF/IDL2/Makefile.archive:
+ * CCF/CCF/IDL2/Parser.cpp:
+ * CCF/CCF/IDL2/Parser.hpp:
+ * CCF/CCF/IDL2/SemanticAction.hpp:
+ * CCF/CCF/IDL2/SemanticGraph.hpp:
+ * CCF/CCF/IDL2/Traversal.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Factory.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Union.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Factory.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Factory.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Makefile.alt:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Union.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Union.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Makefile.alt:
+ * CCF/CCF/IDL2/SemanticGraph/Union.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Union.hpp:
+ * CCF/CCF/IDL2/Traversal/Struct.hpp:
+ * CCF/CCF/IDL2/Traversal/Union.cpp:
+ * CCF/CCF/IDL2/Traversal/Union.hpp:
+
+ Added support for union.
+
+Thu Jan 8 14:47:22 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+
+ Changed default suffix for generating #include of C++ header
+ file generated from executor mapping IDL file, similar to the
+ change in
+
+ Thu Jan 8 12:00:16 2004 Jeff Parsons <j.parsons@vanderbilt.edu>.
+
+Thu Jan 8 13:49:10 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/OEP/BasicSP/BMClosedED/BMClosedED.mpc:
+ * examples/OEP/BasicSP/BMDevice/BMDevice.mpc:
+ * examples/OEP/BasicSP/BMDisplay/BMDisplay.mpc:
+ * examples/OEP/BasicSP/EC/EC.mpc:
+ * examples/OEP/Display/GPS/GPS.mpc:
+ * examples/OEP/Display/NavDisplay/NavDisplay.mpc:
+ * examples/OEP/Display/RateGen/RateGen.mpc:
+
+ Reverted the changes in
+
+ Wed Jan 7 11:20:13 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ since these command line options (include paths) are now part of
+ the default command line.
+
+Thu Jan 8 12:00:16 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CCF/Example/CIDL/LocalExecutorMapping/ExecutorMappingGenerator.cpp:
+ * CIDLC/ExecutorMappingGenerator.cpp:
+
+ Changed default suffix for the generated executor mapping IDL file
+ from '_exec.idl' to 'E.idl'.
+
+ * ciao/CCM_Core.mpc:
+
+ Added header files that are unmatched by a corresponding .cpp file.
+
+Wed Jan 7 11:20:13 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/OEP/BasicSP/BMClosedED/BMClosedED.mpc:
+ * examples/OEP/BasicSP/BMDevice/BMDevice.mpc:
+ * examples/OEP/BasicSP/BMDisplay/BMDisplay.mpc:
+ * examples/OEP/BasicSP/EC/EC.mpc:
+ * examples/OEP/Display/GPS/GPS.mpc:
+ * examples/OEP/Display/NavDisplay/NavDisplay.mpc:
+ * examples/OEP/Display/RateGen/RateGen.mpc:
+
+ Added include path command line options for the CIDL compiler.
+
+Wed Jan 7 09:56:39 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/Documentation/Build.html:
+
+ Fixed a typo.
+
+Tue Jan 6 18:25:24 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/CCF/IDL2/SemanticGraph/Elements.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Elements.hpp:
+
+ Fixed bug in Scope::add_edge_right (Extends&).
+
+Tue Jan 6 17:26:33 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/CCF/IDL2/SemanticAction/Impl/Interface.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Elements.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Elements.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Component.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Home.cpp:
+
+ Added support for lookup in inherited/supported
+ scopes.
+
+Tue Jan 6 11:35:27 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantHeaderGenerator.hpp:
+ * CIDLC/ServantSourceGenerator.hpp:
+
+ Added virtual destructors to classes ServantHeaderEmitter and
+ ServantSourceEmitter to eliminate warnings on g++ 3.3.
+
+Tue Jan 6 11:23:29 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/OEP/BasicSP/EC/client.cpp:
+ * examples/OEP/BasicSP/EC/controller.cpp:
+
+ Replaced occurrences of cerr with ACE_ERROR_RETURN.
+
+ * examples/OEP/Display/GPS/GPS_exec.cpp:
+ * examples/OEP/Display/GPS/GPS_tracing_exec.cpp:
+
+ Added #include of ace/OS_NS_time.h.
+
+Tue Jan 6 10:16:51 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * tools/Assembly_Deployer/Assembly_Manager.cpp:
+
+ Fixed a warning using _var.
+
+Mon Jan 5 21:38:53 2004 Boris Kolpackov <boris@kolpackov.net>
+
+ * CCF/Example/CIDL/LocalExecutorMapping/ExecutorMappingGenerator.cpp:
+ * CIDLC/ExecutorMappingGenerator.cpp:
+
+ Fixed uninitialized variable bug that resulted in generation
+ of unused modules.
+
+ * CCF/Example/CIDL/LocalExecutorMapping/test-0.idl:
+
+ Added unused module to the test case.
+
+ * CIDLC/cidlc.cpp:
+
+ Cosmetic chnages.
+
+Mon Jan 5 20:31:18 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/RepositoryIdGenerator.cpp:
+ * CIDLC/RepositoryIdGenerator.hpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Fixed typos in servant code generation.
+
+Mon Jan 5 19:34:44 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/Documentation/Build.html:
+
+ Updated Utility library url.
+
+Mon Jan 5 19:16:40 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CIDLC/Makefile.alt:
+
+ Added updated generators to the build.
+
+Mon Jan 5 18:48:54 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/Test/IDL2/Traversal/Recreate/Makefile.alt:
+
+ Fixed a typo.
+
+Mon Jan 5 18:27:12 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/Config.rules:
+
+ Added default values to the paths.
+
+Mon Jan 5 15:47:04 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CIDLC/README:
+
+ Updated build instructions.
+
+Mon Jan 5 14:32:17 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/Documentation/Build.html:
+
+ Updated build instructions.
+
+Mon Jan 5 01:44:13 2004 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CCF/CCF/CompilerElements/CompilerElements.vcproj:
+ * CCF/CCF/IDL2/IDL2.vcproj:
+ * CCF/CCF/IDL3/IDL3.vcproj:
+
+ Added files recently checked in to projects.
+
+ * CIDLC/CIDLC.vcproj:
+ * CIDLC/Collectors.hpp:
+ * CIDLC/DescriptorGenerator.cpp:
+ * CIDLC/DescriptorGenerator.hpp:
+ * CIDLC/ServantGenerator.cpp:
+ * CIDLC/ServantGenerator.hpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantHeaderGenerator.hpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.hpp:
+ * CIDLC/SizeTypeCalculator.cpp:
+ * CIDLC/SizeTypeCalculator.hpp:
+ * CIDLC/TypeNameEmitter.cpp:
+ * CIDLC/TypeNameEmitter.hpp:
+ * CIDLC/cidlc.cpp:
+
+ Overhauled the entire backend to integrate with the new
+ frontend traversal framework, and with recently supported
+ features.
+
+Sun Jan 4 17:48:50 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * tools/Assembly_Deployer/Assembly_Impl.cpp:
+ * tools/RTComponentServer/RTConfig_Manager.cpp:
+
+ Fixed warnings with g++ builds.
+
+Sat Jan 3 16:34:35 2004 Boris Kolpackov <boris@kolpackov.net>
+
+ * CCF/CCF/IDL2/Traversal/Operation.hpp:
+ * CCF/CCF/IDL2/Traversal/Operation.tpp:
+ * CCF/CCF/IDL3/Traversal/Home.cpp:
+ * CCF/CCF/IDL3/Traversal/Home.hpp:
+
+ Added receives_none() member function.
+
+Fri Jan 2 16:09:32 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * ciao/Container_Base.cpp:
+
+ Fixed a compile error in single threaded configuration.
+
+ * tools/Assembly_Deployer/Assembly_Impl.cpp:
+ * tools/Assembly_Deployer/Assembly_Manager.cpp:
+ * tools/ComponentServer/ComponentServer.cpp:
+ * tools/XML_Helpers/RTConfig_Handlers.cpp:
+
+ Fixed more warnings with g++, mostly from the wrong usage of
+ _var's.
+
+Fri Jan 2 15:36:07 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/Example/CIDL/LocalExecutorMapping/ExecutorMappingGenerator.cpp:
+ * CCF/Example/CIDL/LocalExecutorMapping/ExecutorMappingGenerator.hpp:
+ * CIDLC/ExecutorMappingGenerator.cpp:
+ * CIDLC/ExecutorMappingGenerator.hpp:
+
+ Changed pass-by-value to pass-by-const-ref for fs::path argument.
+
+Fri Jan 2 14:41:35 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/CCF/IDL2/LexicalAnalyzer.cpp:
+
+ Fixed small recognition bug.
+
+ * CCF/CCF/IDL2/Traversal/Attribute.cpp:
+ * CCF/CCF/IDL2/Traversal/Attribute.hpp:
+
+ Added traversal or readonly attribute.
+
+ * CCF/Example/CIDL/LocalExecutorMapping/cidlc.cpp:
+ * CCF/Example/CIDL/LocalExecutorMapping/ExecutorMappingGenerator.cpp:
+
+ Added support for readonly attribute.
+
+ * CCF/Example/CIDL/LocalExecutorMapping/test-0_exec.idl.orig:
+ * CCF/Example/CIDL/LocalExecutorMapping/test-1.idl:
+ * CCF/Example/CIDL/LocalExecutorMapping/test-1_exec.idl.orig:
+ * CCF/Example/CIDL/LocalExecutorMapping/test-2.idl:
+ * CCF/Example/CIDL/LocalExecutorMapping/test-2_exec.idl.orig:
+
+ Updated tests and results.
+
+ * CIDLC/ExecutorMappingGenerator.cpp:
+
+ Added support for readonly attribute.
+
+Fri Jan 2 13:44:06 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/CCF/CompilerElements/Preprocessor.cpp:
+
+ Removed debug print.
+
+ * CCF/Documentation/TODO:
+
+ Updated.
+
+Fri Jan 2 12:59:05 2004 Chad Elliott <elliott_c@ociweb.com>
+
+ * performance-tests/Benchmark/Benchmark.mpc:
+
+ Prefixed the project name with the '*' operator to avoid project
+ name conflicts.
+
+Thu Jan 1 20:27:30 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * ciao/Makefile:
+
+ Updated dependancies since we have now have the Makefiles in the
+ repo.
+
+Thu Jan 1 19:58:26 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * tools/XML_Helpers/Cascadable_DocHandler.cpp:
+
+ Fixed typo.
+
+Thu Jan 1 20:12:03 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * tools/XML_Helpers/XML_Utils.cpp:
+
+ Fixed a unused variable warning.
+
+Thu Jan 1 20:05:59 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * tools/Assembly_Deployer/Assembly_Impl.cpp:
+ * tools/Assembly_Deployer/Assembly_Manager.cpp:
+ * tools/ComponentServer/ComponentServer.cpp:
+ * tools/Daemon/CIAO_Daemon.cpp:
+ * tools/Daemon/Daemon_Impl.cpp:
+ * tools/Daemon/controller_i.cpp:
+ * tools/RTComponentServer/ComponentServer_Task.cpp:
+ * tools/RTComponentServer/RTConfig_Manager.cpp:
+ * tools/RTComponentServer/RTServer_Impl.cpp:
+ * tools/ServerActivator/ServerActivator.cpp:
+ * tools/Simple_Component_Server/Simple_Component_Server.cpp:
+ * tools/Simple_Component_Server/Simple_Server_i.cpp:
+ * tools/Simple_Component_Server/sample_client.cpp:
+ * tools/XML_Helpers/Assembly_Handlers.cpp:
+ * tools/XML_Helpers/Assembly_Spec.cpp:
+ * tools/XML_Helpers/Assembly_Spec.h:
+ * tools/XML_Helpers/Cascadable_DocHandler.cpp:
+
+ More fixes to remove compile errors when exceptions are set
+ to 0.
+
+Thu Jan 1 19:32:23 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * ciao/ComponentServer_Impl.cpp:
+
+ Fixed typo in the last checkin.
+
+Thu Jan 1 19:28:58 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * ciao/ComponentInstallation_Impl.cpp:
+ * ciao/ComponentServer_Impl.cpp:
+ * ciao/Container_Base.cpp:
+ * ciao/Container_Base.inl:
+ * ciao/Container_Impl.cpp:
+ * ciao/Container_Impl.inl:
+ * ciao/Cookies.cpp:
+ * ciao/ServerActivator_Impl.cpp:
+
+ Bunch of fixes to remove compile errors when exceptions are set
+ to 0.
+
+Thu Jan 1 18:46:02 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * tools/XML_Helpers/Cascadable_DocHandler.i:
+
+ Fixed compile errors when exceptions are turned off.
+
+Thu Jan 1 18:41:06 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * Makefile:
+
+ Do not compile CIAO with static_libs_only=1.
+
+Thu Jan 1 13:53:53 2004 Boris Kolpackov <boris@kolpackov.net>
+
+ * CCF/CCF/IDL2/SemanticGraph/Elements.hpp (class Nameable)
+
+ Added support for iteration over Names edges.
+
+
+Thu Jan 1 17:23:44 UTC 2004 Don Hinton <dhinton@dresystems.com>
+
+ * Makefile:
+ Moved coreclean target to bottom of file so that the all target
+ will come first. Added ALT_DIRS variable that contains CIDLC,
+ examples, and tests directories that should not be built by
+ default. Set the DIRS variable = CORE_DIRS by default and add
+ ALT_DIRS only if BOOST_ROOT and UTILITY_ROOT have been set.
+ This will need to be adjusted a bit, since the ALT_DIRS don't
+ have regular Makefiles right now, but it's a start and will
+ allow all the *nix builds to start building the CORE_DIRS in the
+ regular autobuilds.
+
+ * ciao/Makefile:
+ * ciao/Makefile.CIAO_Client:
+ * ciao/Makefile.CIAO_Container:
+ * ciao/Makefile.CIAO_Server:
+ * tools/Makefile:
+ * tools/Assembly_Deployer/Makefile:
+ * tools/Assembly_Deployer/Makefile.Assembly_Deployer:
+ * tools/Assembly_Deployer/Makefile.Assembly_Manager:
+ * tools/ComponentServer/Makefile:
+ * tools/ComponentServer/Makefile.ComponentServer:
+ * tools/ComponentServer/Makefile.ComponentServer_test_client:
+ * tools/Daemon/Makefile:
+ * tools/Daemon/Makefile.CIAO_Daemon:
+ * tools/Daemon/Makefile.DaemonController:
+ * tools/RTComponentServer/Makefile:
+ * tools/RTComponentServer/Makefile.RTComponentServer:
+ * tools/ServerActivator/Makefile:
+ * tools/ServerActivator/Makefile.ServerActivator:
+ * tools/ServerActivator/Makefile.ServerActivator_test_client:
+ * tools/Simple_Component_Server/Makefile:
+ * tools/Simple_Component_Server/Makefile.Simple_Component_Server:
+ * tools/Simple_Component_Server/Makefile.Simple_Component_Server_test_client:
+ * tools/Simple_Component_Server/Makefile.Simple_Server_Stub:
+ * tools/XML_Helpers/Makefile:
+ * tools/XML_Helpers/Makefile.Helper_Test:
+ * tools/XML_Helpers/Makefile.XML_Helpers:
+ Added new Makefiles generated by MPC and lightly modified to
+ remove unneeded variables and targets (mainly realclean, and idl
+ related ones that are OBE due to recent fixes to the underlying
+ make system.).
+
+Wed Dec 31 18:13:21 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/CCF/CompilerElements/Preprocessor.cpp:
+ * CCF/CCF/IDL2/LexicalAnalyzer.hpp:
+ * CCF/CCF/IDL2/Parser.cpp:
+ * CCF/CCF/IDL2/Parser.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Attribute.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Elements.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Enum.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Exception.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Factory.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Include.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Interface.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Member.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Module.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Native.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Operation.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Struct.hpp:
+ * CCF/CCF/IDL2/SemanticAction/TypeId.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Typedef.hpp:
+ * CCF/CCF/IDL2/SemanticAction/ValueType.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Attribute.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Attribute.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Elements.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Elements.tpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Enum.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Enum.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Exception.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Exception.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Factory.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Factory.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Include.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Include.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Interface.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Interface.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Member.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Member.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Module.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Module.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Native.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Native.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Operation.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Operation.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Struct.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Struct.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/TypeId.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/TypeId.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Typedef.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Typedef.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/ValueType.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/ValueType.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Elements.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Elements.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Exception.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Exception.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Fundamental.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Fundamental.cpp.m4:
+ * CCF/CCF/IDL2/SemanticGraph/Interface.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Interface.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Member.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Module.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Name.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Name.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Native.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Native.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Operation.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Operation.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Sequence.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Struct.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Translation.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Translation.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/TypeId.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/ValueType.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/ValueType.hpp:
+ * CCF/CCF/IDL2/Traversal/Elements.hpp:
+ * CCF/CCF/IDL2/Traversal/Interface.tpp:
+ * CCF/CCF/IDL2/Traversal/ValueType.cpp:
+ * CCF/CCF/IDL2/Traversal/ValueType.hpp:
+ * CCF/CCF/IDL2/Traversal/ValueType.tpp:
+ * CCF/CCF/IDL3/Parser.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Component.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Consumes.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Emits.hpp:
+ * CCF/CCF/IDL3/SemanticAction/EventType.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Factory.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Home.hpp:
+ * CCF/CCF/IDL3/SemanticAction/HomeFactory.hpp:
+ * CCF/CCF/IDL3/SemanticAction/HomeFinder.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Provides.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Publishes.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Uses.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Component.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Component.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Consumes.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Consumes.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Elements.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Emits.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Emits.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/EventType.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/EventType.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Factory.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Factory.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Home.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Home.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/HomeFactory.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/HomeFactory.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/HomeFinder.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/HomeFinder.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Include.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Include.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Provides.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Provides.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Publishes.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Publishes.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Uses.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Uses.hpp:
+ * CCF/CCF/IDL3/SemanticGraph/Component.hpp:
+ * CCF/CCF/IDL3/SemanticGraph/Elements.cpp:
+ * CCF/CCF/IDL3/SemanticGraph/EventType.cpp:
+ * CCF/CCF/IDL3/SemanticGraph/Home.hpp:
+ * CCF/CCF/IDL3/Traversal/EventType.tpp:
+ * CCF/CCF/CIDL/SemanticAction/Composition.hpp:
+ * CCF/CCF/CIDL/SemanticAction/Factory.hpp:
+ * CCF/CCF/CIDL/SemanticAction/HomeExecutor.hpp:
+ * CCF/CCF/CIDL/SemanticAction/Impl/Composition.cpp:
+ * CCF/CCF/CIDL/SemanticAction/Impl/Composition.hpp:
+ * CCF/CCF/CIDL/SemanticAction/Impl/Elements.hpp:
+ * CCF/CCF/CIDL/SemanticAction/Impl/Factory.cpp:
+ * CCF/CCF/CIDL/SemanticAction/Impl/Factory.hpp:
+ * CCF/CCF/CIDL/SemanticAction/Impl/HomeExecutor.cpp:
+ * CCF/CCF/CIDL/SemanticAction/Impl/HomeExecutor.hpp:
+ * CCF/CCF/CIDL/SemanticGraph/Elements.cpp:
+ * CCF/CCF/CIDL/SemanticGraph/Executor.cpp:
+ * CCF/Documentation/TODO:
+
+ Minor cosmetic changes and cleanups.
+
+
+Wed Dec 31 12:27:16 2003 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * docs/tutorial/Hello/hello.mpc:
+ Updated this file to avoid duplicated project names in
+ MPC generated solution file for VC.
+
+Wed Dec 31 10:16:17 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CIAO/ciao/Component_Base.idl:
+
+ Replaced inclusion of IFR_Client/Interface.pidl with orb.idl
+ since it has all that's needed.
+
+Tue Dec 30 17:47:49 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * ciao/CCM_Base.idl:
+
+ Temporarily commented import declaration even though it is
+ conditionally commented out. Current CIDLC's preprocessor
+ does not handle conditional compilation.
+
+Tue Dec 30 17:03:27 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/CCF/CompilerElements/Diagnostic.hpp:
+ * CCF/CCF/CompilerElements/TokenStream.hpp:
+
+ Cosmetic changes.
+
+
+ * CCF/CCF/CompilerElements/Makefile.alt:
+ * CCF/CCF/CompilerElements/Preprocessor.cpp:
+ * CCF/CCF/CompilerElements/Preprocessor.hpp:
+ * CCF/CCF/CompilerElements/PreprocessorToken.cpp:
+ * CCF/CCF/CompilerElements/PreprocessorToken.hpp:
+
+ New (though not very capable) preprocessor for the time being.
+
+
+ * CCF/CCF/IDL2/SemanticAction/Native.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Native.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Native.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Native.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Native.hpp:
+ * CCF/CCF/IDL2/Traversal/Native.cpp:
+ * CCF/CCF/IDL2/Traversal/Native.hpp:
+
+ Added support for IDL2 native feature.
+
+ * CCF/CCF/IDL2/SemanticAction/ValueType.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/ValueType.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/ValueType.hpp:
+
+ Extended support for IDL2 valuetype feature.
+
+
+ * CCF/CCF/IDL2/LexicalAnalyzer.cpp:
+ * CCF/CCF/IDL2/LexicalAnalyzer.hpp:
+ * CCF/CCF/IDL2/Makefile.archive:
+ * CCF/CCF/IDL2/Parser.cpp:
+ * CCF/CCF/IDL2/Parser.hpp:
+ * CCF/CCF/IDL2/SemanticAction.hpp:
+ * CCF/CCF/IDL2/SemanticGraph.hpp:
+ * CCF/CCF/IDL2/Traversal.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Attribute.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Factory.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Include.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Interface.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Member.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Attribute.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Attribute.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Elements.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Factory.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Factory.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Include.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Include.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Interface.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Makefile.alt:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Member.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Member.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Operation.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Struct.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Typedef.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Attribute.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Makefile.alt:
+ * CCF/CCF/IDL2/SemanticGraph/Operation.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Operation.hpp:
+ * CCF/CCF/IDL2/Traversal/Fundamental.hpp:
+ * CCF/CCF/IDL2/Traversal/Makefile.alt:
+
+ Cosmetic changes.
+
+
+ * CCF/CCF/IDL3/SemanticAction/EventType.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/EventType.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/EventType.hpp:
+
+ Added support for IDL3 eventtype feature.
+
+ * CCF/CCF/IDL3/SemanticAction/HomeFinder.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/HomeFinder.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/HomeFinder.hpp:
+
+ Added support for IDL3 home finder feature.
+
+ * CCF/CCF/IDL3/LexicalAnalyzer.cpp:
+ * CCF/CCF/IDL3/LexicalAnalyzer.hpp:
+ * CCF/CCF/IDL3/Parser.cpp:
+ * CCF/CCF/IDL3/Parser.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Factory.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Factory.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Include.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Include.hpp:
+
+ Cosmetic changes.
+
+
+ * CCF/CCF/CIDL/LexicalAnalyzer.cpp:
+ * CCF/CCF/CIDL/LexicalAnalyzer.hpp:
+ * CCF/CCF/CIDL/SemanticAction/Impl/Factory.cpp:
+ * CCF/CCF/CIDL/SemanticGraph/Composition.cpp:
+ * CCF/CCF/CIDL/SemanticGraph/Composition.hpp:
+
+ Cosmetic changes.
+
+
+ * CCF/Example/CIDL/LocalExecutorMapping/ExecutorMappingGenerator.cpp:
+ * CCF/Example/CIDL/LocalExecutorMapping/Makefile.alt:
+ * CCF/Example/CIDL/LocalExecutorMapping/cidlc.cpp:
+ * CCF/Example/CIDL/LocalExecutorMapping/test-2.idl:
+ * CCF/Example/CIDL/LocalExecutorMapping/test-2_exec.idl.orig:
+ * CCF/Example/IDL2/CxxMapping/Makefile.alt:
+ * CCF/Example/IDL2/CxxMapping/driver.cpp:
+ * CCF/Test/Makefile.alt:
+ * CCF/Test/CIDL/Compiler/GeneratorImpl.hpp:
+ * CCF/Test/CIDL/Compiler/Makefile.alt:
+ * CCF/Test/CIDL/Compiler/driver.cpp:
+ * CCF/Test/CompilerElements/Makefile.alt:
+ * CCF/Test/CompilerElements/CPP/Makefile.alt:
+ * CCF/Test/CompilerElements/CPP/driver.cpp:
+ * CCF/Test/IDL2/Compiler/Makefile.alt:
+ * CCF/Test/IDL2/Compiler/driver.cpp:
+ * CCF/Test/IDL2/Traversal/Recreate/GeneratorImpl.hpp:
+ * CCF/Test/IDL3/Compiler/Makefile.alt:
+ * CCF/Test/IDL3/Compiler/driver.cpp:
+ * CIDLC/ExecutorMappingGenerator.cpp:
+ * CIDLC/cidlc.cpp:
+
+ Updated to reflect changes above.
+
+
+ * CCF/Documentation/TODO:
+
+ Reflected new achievements.
+
+
+Tue Dec 30 13:53:20 2003 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * examples/Philosophers/Philosophers.idl:
+ * examples/Philosophers/README:
+ Moved this unfinished example from examples/handcrafted here.
+
+Tue Dec 30 13:39:00 2003 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * ChangeLog:
+ Updated my ChangeLog entries to the correct format.
+ Thanks for the help from Bala and Boris.
+
+Tue Dec 30 11:42:08 2003 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * examples/handcrafted/examples.mwc:
+ Removed this file since MPC works recursively now.
+
+Tue Dec 30 11:28:43 2003 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * exmaples/handcrafted/BasicSP:
+ Removed this directory. This example has been moved to
+ examples/OEP/BasicSP and been modified to use the CIDL compiler.
+
+Tue Dec 30 11:26:24 2003 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * examples/handcrafted/Philosophers:
+ Removed this directory.
+
+Tue Dec 30 11:20:39 2003 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * examples/handcrafted/Hello:
+ Removed this directory. This example has been moved to
+ docs/tutorial/Hello and been modified to use the CIDL compiler.
+
+Tue Dec 30 10:56:03 2003 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * examples/handcrafted/Display:
+ Removed this directory. This example has been moved to
+ examples/OEP/Display and been modified to use the CIDL compiler.
+
+Tue Dec 23 16:26:19 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/CCF/IDL2/LexicalAnalyzer.cpp:
+ * CCF/CCF/IDL2/Parser.cpp:
+ * CCF/CCF/IDL2/Parser.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Operation.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Elements.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Operation.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Operation.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Interface.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Operation.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Operation.hpp:
+ * CCF/CCF/IDL2/Traversal/Operation.cpp:
+ * CCF/CCF/IDL2/Traversal/Operation.hpp:
+ * CCF/CCF/IDL2/Traversal/Operation.tpp:
+ * CCF/Test/IDL2/SemanticGraph/HandBuilt/Builder.cpp:
+
+ Added support for oneway operations.
+
+ * CCF/CCF/IDL3/LexicalAnalyzer.cpp:
+ * CCF/CCF/IDL3/Makefile.archive:
+ * CCF/CCF/IDL3/Parser.cpp:
+ * CCF/CCF/IDL3/Parser.hpp:
+ * CCF/CCF/IDL3/SemanticAction.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Factory.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Factory.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Factory.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Makefile.alt:
+ * CCF/CCF/IDL3/SemanticGraph/Home.cpp:
+ * CCF/CCF/IDL3/SemanticGraph/Home.hpp:
+
+ Added support for home finders.
+
+ * CCF/Example/CIDL/LocalExecutorMapping/ExecutorMappingGenerator.cpp:
+
+ Added support for feature mentioned above.
+
+ * CCF/Example/CIDL/LocalExecutorMapping/test-2.idl:
+ * CCF/Example/CIDL/LocalExecutorMapping/test-2_exec.idl.orig:
+
+ Added coverage for features mentioned above.
+
+ * CCF/Documentation/TODO:
+
+ Reflected new achievements.
+
+Tue Dec 23 12:03:27 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CIDLC/CIDLC.vcproj:
+
+ Updated VC7.1 projects. Also temporarily excluded from the
+ build generators that are still to be ported.
+
+ * CCF/Example/CIDL/LocalExecutorMapping/ExecutorMappingGenerator.cpp:
+ * CIDLC/ExecutorMappingGenerator.cpp:
+
+ Changed 'interface' to 'interface_' since VC7.1 naively believes
+ that interface is an alias for struct.
+
+Tue Dec 23 11:34:56 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/CCF/CIDL/CIDL.vcproj:
+ * CCF/CCF/IDL2/IDL2.vcproj:
+ * CCF/CCF/IDL3/IDL3.vcproj:
+ * CCF/CCF/CodeGenerationKit/CodeGenerationKit.vcproj:
+ * CCF/CCF/CompilerElements/CompilerElements.vcproj:
+
+ Updated VC7.1 projects.
+
+
+ * CCF/CCF/IDL2/LexicalAnalyzer.cpp:
+ * CCF/CCF/IDL2/Parser.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Attribute.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Interface.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Member.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Operation.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Typedef.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Elements.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Graph.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Graph.tpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Component.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Consumes.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Emits.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Home.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/HomeFactory.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Provides.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Publishes.cpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Uses.cpp:
+ * CCF/CCF/CIDL/SemanticAction/Impl/HomeExecutor.cpp:
+
+ Got rid of some warnings.
+
+Tue Dec 23 10:03:38 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/CCF/IDL2/LexicalAnalyzer.cpp:
+ * CCF/CCF/IDL2/Makefile.archive:
+ * CCF/CCF/IDL2/Parser.cpp:
+ * CCF/CCF/IDL2/Parser.hpp:
+ * CCF/CCF/IDL2/SemanticAction.hpp:
+ * CCF/CCF/IDL2/SemanticGraph.hpp:
+ * CCF/CCF/IDL2/Traversal.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Enum.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Factory.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Enum.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Enum.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Factory.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Factory.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Enum.cpp:
+ * CCF/CCF/IDL2/SemanticGraph/Enum.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Makefile.alt:
+ * CCF/CCF/IDL2/Traversal/Enum.cpp:
+ * CCF/CCF/IDL2/Traversal/Enum.hpp:
+
+ Added support for IDL enum type.
+
+ * CCF/CCF/IDL2/SemanticGraph/Member.hpp:
+ * CCF/CCF/IDL2/SemanticGraph/Struct.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Exception.hpp:
+ * CCF/CCF/IDL2/Traversal/Attribute.hpp:
+
+ Cosmetic changes.
+
+Mon Dec 22 16:50:18 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CIDLC/ExecutorMappingGenerator.cpp:
+ * CIDLC/ExecutorMappingGenerator.hpp:
+
+ New version of local executor mapping generator.
+
+ * CIDLC/cidlc.cpp:
+
+ New version of CIDL compiler driver with temporarily disabled
+ generators that require porting.
+
+ * CIDLC/Makefile.alt:
+
+ Temporarily disabled generators that require porting.
+
+Mon Dec 22 16:26:21 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF:
+
+ Added new version of CCF.
+
+Mon Dec 22 15:35:19 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF:
+
+ Removed (through cvs, not physically) previous version in
+ preparation for commitment of the new version.
+
+Thu Dec 18 09:57:50 2003 Balachandran <bala@dre.vanderbilt.edu>
+
+ * CIAO version 0.3.6 released.
+
+2003-12-17 Tao Lu <lu@tango.dre.vanderbilt.edu>
+
+ * examples/Hello/step-by-step.html:
+
+ Added this html file for explaination of the step by step tutorial.
+
+Tue Dec 16 18:25:01 2003 Tao Lu <lu@tango.dre.vanderbilt.edu>
+
+ * docs/tutorial/Hello/README:
+ * docs/tutorial/Hello/config:
+ * docs/tutorial/Hello/CIAO_Installation_Data.ini:
+ * docs/tutorial/Hello/hello.idl:
+ * docs/tutorial/Hello/hello.cidl:
+ * docs/tutorial/Hello/hello.mpc:
+ * docs/tutorial/Hello/hello.csd:
+ * docs/tutorial/Hello/hello.ssd:
+ * docs/tutorial/Hello/hello_exec.cpp:
+ * docs/tutorial/Hello/hello_exec.h:
+ * docs/tutorial/Hello/hello_stub_export.h:
+ * docs/tutorial/Hello/hello_svnt_export.h:
+ * docs/tutorial/Hello/hello_exec_export.h:
+ * docs/tutorial/Hello/client.cpp:
+ * docs/tutorial/Hello/simple_client.cpp:
+ * docs/tutorial/Hello/run_test.pl:
+ * docs/tutorial/Hello/run_simple_test.pl:
+
+ Changed Nanbor's handcrafted helloworld example to use the CIDL compiler.
+ Stardard CIAO naming is used (_svnt, _exec etc.).
+
+Tue Dec 16 14:14:59 2003 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * docs/tutorial/hello/index.html:
+
+ Removed this file. We will use Nanbor's Hello example in the tutorial.
+ The step-by-step example will use another name and be kept in CIAO/examples.
+
+Mon Dec 8 16:14:59 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * docs/todo.html:
+ * docs/RT-Extension.html:
+
+ Updated files.
+
+2003-12-08 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * examples/Hello/Receiver/Receiver_svnt.h:
+ * examples/Hello/Sender/Sender_svnt.h:
+
+ Removed two generated files.
+
+Sun Dec 7 20:38:55 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * examples/Hello/Sender/starter.cpp:
+ * examples/Hello/Hello_Base/Hello_Base.idl:
+
+ Fixed fuzz errors.
+
+Sun Dec 7 20:32:41 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * examples/Hello/Receiver/Receiver_svnt.h:
+ * examples/Hello/Sender/Sender_svnt.h:
+ * examples/Hello/descriptors/run_test_default.pl:
+
+ Fixed fuzz errors.
+
+Wed Dec 3 10:55:41 2003 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient.idl:
+ Changed comment to indicate that the interface uses a reference and
+ not porvides it. Thanks to Gautam Thaker for pointing this out.
+
+Wed Dec 3 12:25:20 2003 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * performance-tests/Benchmark/NOTE.txt:
+ * performance-tests/Benchmark/descriptors/NOTE.txt:
+ Moved file to the right directory and updated name of the .cad file
+ to the right one. Thanks to Gautam Thaker for pointing this out.
+
+
+Tue Dec 2 18:40:59 2003 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * examples/Hello/Receiver/Receiver_exec.cpp:
+ * examples/Hello/descriptors/run_test_default.pl:
+ * examples/Hello/descriptors/run_test_remote.pl:
+ Added two auto run perl scripts and fixed the bug in the
+ Receiver_exec which caused the OBV run time error when
+ the Sender and the Receiver are not collocated.
+
+Tue Dec 2 18:32:23 2003 Tao Lu <lu@tango.dre.vanderbilt.edu>
+
+ * examples/Hello/Receiver/Receiver_exec.cpp:
+ * examples/Hello/descriptors/run_test_default.pl:
+ * examples/Hello/descriptors/run_test_remote.pl:
+ Added two auto run perl scripts and fixed the bug in the
+ Receiver_exec which caused the OBV run time error when
+ the Sender and the Receiver are not collocated.
+
+Mon Dec 1 17:49:43 2003 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * examples/Hello/descriptors/remote.cad:
+ * examples/Hello/descriptors/remote.dat:
+ Added these 2 files for the example to run on remote setting.
+
+Mon Dec 1 02:35:18 2003 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * examples/Hello/Sender/Sender.mpc:
+ Added the empty IDL_Files part in the starter project to get rid
+ of the linking error(MPC generates makefile which links in
+ unnecessary linkage reqirements). Also deleted all the Makefiles
+ in the example. The user should run mwc.pl to regenerate the
+ Makefile before building the project.
+
+Sun Nov 30 20:51:06 2003 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * examples/Hello/Sender/Makefile.Hello_Starter:
+ Added this makefile which will make the starter program.
+
+Sun Nov 30 11:47:29 2003 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * examples/Hello:
+ Moved the starter.cpp into the Sender project to so the
+ dependency will be set correctly.
+
+Sat Nov 29 15:57:54 UTC 2003 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/handcrafted/BasicSP/*.mpc:
+ * examples/handcrafted/Display/*.mpc:
+ Removed all MPC files for this directory and sub directories
+ because these examples are going to be removed and at this moment
+ these MPC files cause problems with the MPC generation because
+ of duplicate names.
+
+Fri Nov 28 14:09:56 2003 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * examples/Hello/README:
+ * examples/Hello/Makefile:
+ * examples/Hello/Hello_Base/Hello_Base_stub_export.h:
+ * examples/Hello/Hello_Base/Makefile.Hello_Base_stub:
+ * examples/Hello/Hello_Base/Hello_Base.idl:
+ * examples/Hello/Hello_Base/Hello_Base_svnt_export.h:
+ * examples/Hello/Hello_Base/Makefile.Hello_Base_svnt:
+ * examples/Hello/Hello_Base/Hello_Base.mpc:
+ * examples/Hello/Hello_Base/Makefile:
+ * examples/Hello/Sender/Sender.cidl:
+ * examples/Hello/Sender/Sender_exec.h:
+ * examples/Hello/Sender/Makefile:
+ * examples/Hello/Sender/Sender.idl:
+ * examples/Hello/Sender/Sender_exec_export.h:
+ * examples/Hello/Sender/Makefile.Hello_Base_Sender_exec:
+ * examples/Hello/Sender/Sender.mpc:
+ * examples/Hello/Sender/Sender_stub_export.h:
+ * examples/Hello/Sender/Makefile.Hello_Base_Sender_stub
+ * examples/Hello/Sender/SenderEI.idl:
+ * examples/Hello/Sender/Sender_svnt.h:
+ * examples/Hello/Sender/Makefile.Hello_Base_Sender_svnt:
+ * examples/Hello/Sender/Sender_exec.cpp:
+ * examples/Hello/Sender/Sender_svnt_export.h:
+ * examples/Hello/Receiver/ReceiverEI.idl:
+ * examples/Hello/Receiver/Makefile:
+ * examples/Hello/Receiver/Receiver_Impl.ccd:
+ * examples/Hello/Receiver/Makefile.Hello_Base_Receiver_exec:
+ * examples/Hello/Receiver/Receiver_exec.cpp:
+ * examples/Hello/Receiver/Makefile.Hello_Base_Receiver_stub:
+ * examples/Hello/Receiver/Receiver_exec.h:
+ * examples/Hello/Receiver/Makefile.Hello_Base_Receiver_svnt:
+ * examples/Hello/Receiver/Receiver_exec_export.h:
+ * examples/Hello/Receiver/Receiver.cidl:
+ * examples/Hello/Receiver/Receiver_stub_export.h:
+ * examples/Hello/Receiver/Receiver.idl:
+ * examples/Hello/Receiver/Receiver_svnt.h:
+ * examples/Hello/Receiver/Receiver.mpc:
+ * examples/Hello/Receiver/Receiver_svnt_export.h:
+ * examples/Hello/starter/Makefile:
+ * examples/Hello/starter/Makefile.Hello_Starter:
+ * examples/Hello/starter/starter.cpp:
+ * examples/Hello/starter/starter.mpc:
+ * examples/Hello/descriptors/CIAO_Installation_Data.ini:
+ * examples/Hello/descriptors/Receiver.ssd:
+ * examples/Hello/descriptors/default.cad:
+ * examples/Hello/descriptors/test.dat:
+ * examples/Hello/descriptors/Sender.csd:
+ * examples/Hello/descriptors/Receiver.csd:
+ * examples/Hello/descriptors/Sender.ssd:
+
+ Added the files for Hello example.
+
+Fri Nov 28 13:58:58 2003 Tao Lu <lu@dre.vanderbilt.edu>
+
+ * examples/Hello:
+
+ Added the Hello example to CIAO. Thanks nanbor for the
+ handcrafted examples from which I learned to program do CIAO
+ programming. This example is meant to be used a step-by-step
+ tutorial for CIAO.
+
+Wed Nov 26 22:16:34 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+
+ Changed generated exception list of disconnect_* operation for
+ an emits declaration to match the correct exception list
+ generated in ServantSourceGenerator.cpp.
+
+Tue Nov 25 19:46:07 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantHeaderGenerator.hpp:
+
+ Corrected a comment.
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Fixed servant code generation to output only for components
+ and homes that are used in a CIDL composition. Thanks to
+ Gary Duzan <gduzan@bbn.com> for reporting the problem. Also
+ added support for attributes declared in a home.
+
+Tue Nov 25 15:39:51 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/CCF/CompilerElements/FileSystem.hpp:
+
+ Made normalize() function use 'native' path type when
+ constructing the path.
+
+Tue Nov 25 15:06:02 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CIDLC/cidlc.cpp:
+
+ Some code to support #include handling.
+
+Tue Nov 25 14:47:18 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/CCF/CodeGenerationKit/CommandLine.hpp:
+
+ Added capability to iterate over options.
+
+ * CCF/CCF/CompilerElements/FileSystem.hpp:
+
+ Added normalize() function to normalize absolute paths.
+
+ * CCF/CCF/IDL2/Parser.cpp:
+ * CCF/CCF/IDL2/Parser.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Factory.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Include.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Factory.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Include.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Factory.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Include.hpp:
+ * CCF/Example/CIDL/LocalExecutorMapping/cidlc.cpp:
+
+ Added #include handling.
+
+ * CCF/Test/IDL2/Parser/Include/root.idl:
+ * CCF/Test/IDL2/Parser/Include/bar/bar.idl:
+ * CCF/Test/IDL2/Parser/Include/bar/baz.idl:
+ * CCF/Test/IDL2/Parser/Include/foo/foo.idl:
+
+ Simple test for #include.
+
+Tue Nov 25 09:34:10 2003 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * performance-tests/Benchmark/RoundTrip/run_test.pl
+ Changed the script to take the right svc.conf file
+
+Mon Nov 24 19:24:42 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * examples/OEP/BasicSP/BMClosedED/BMClosedED_exec.cpp:
+ * examples/OEP/BasicSP/BMDevice/BMDevice_exec.cpp:
+ * examples/handcrafted/BasicSP/BMClosedED/BMClosedED_exec.cpp:
+ * examples/handcrafted/BasicSP/BMDevice/BMDevice_exec.cpp:
+
+ Cosmetic fixes.
+
+Mon Nov 24 16:37:12 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * ciao/ComponentsC.h:
+
+ Removed unneeded inclusion of ComponentsC.i
+
+Mon Nov 24 14:48:09 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * ciao/ComponentsS.h:
+
+ Removed unneeded inclusion of ComponentsS_T.h.
+
+Mon Nov 24 14:41:22 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * tools/Assembly_Deployer/Assembly_Manager.cpp:
+ * tools/Assembly_Deployer/Assembly_Visitors.cpp:
+ * tools/Assembly_Deployer/Deployment_Configuration.cpp:
+ * tools/Daemon/DaemonController.cpp:
+ * tools/Daemon/controller_i.cpp:
+ * tools/ServerActivator/ServerActivator.cpp:
+ * tools/ServerActivator/ServerActivator_test_client.cpp:
+ * tools/Simple_Component_Server/Simple_Component_Server.cpp:
+
+ Added missing ACE file includes.
+
+Mon Nov 24 14:21:58 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * ciao/Container_Base.cpp:
+ * ciao/ServerActivator_Impl.cpp:
+ * ciao/Server_init.cpp:
+
+ Added missing ACE includes.
+
+Mon Nov 24 13:39:43 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/Collectors.hpp:
+
+ Cosmetic changes.
+
+ * CIDLC/Literals.hpp:
+
+ Added /* */ in a string literal around an arg name which
+ is never used in generated methods where it appears in the
+ argument list.
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Commented out some unused arg names, and removed some extra
+ newlines. In the connect() operation generated for a
+ component, added ACE_UNUSED_ARG() for an argument which is
+ unused if the component has no receptacles declared.
+
+ * CCF/CCF/IDL2/SyntaxTree/TranslationCtor.cpp:
+
+ New file with a dummy class and constructor, added as a workaround
+ for errors related to the protected default constructor of the
+ real TranslationRegion class, simlar to what has already been
+ added for the Elements, Interface and Valuetype classes in
+ IDL2::SyntaxTree.
+
+ * CCF/CCF/IDL2/SyntaxTree/IDL2.mpc:
+
+ Updated with recently added files.
+
+Thu Nov 20 20:05:34 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * ciao/ComponentsS.h:
+ * ciao/ComponentsS_T.h:
+
+ Removed wrong includes.
+
+Thu Nov 20 17:50:55 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * tools/RTComponentServer/RTComponentServer.mpc:
+
+ Inherit the project form ACEXML since we need that.
+
+Thu Nov 6 07:55:20 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * Makefile:
+
+ Added coreclean target for doing realclean on a core set of
+ directories in the nightly build.
+
+Wed Nov 5 14:07:06 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/CCF/CodeGenerationKit/CommandLineGrammar.hpp:
+ * CCF/CCF/CodeGenerationKit/CommandLineParser.cpp:
+
+ Got rid of some warnings.
+
+ * CCF/CCF/IDL2/Parser.hpp:
+ * CCF/CCF/IDL2/Parsing/Recovery.hpp:
+ * CCF/CCF/IDL2/SyntaxTree/Elements.hpp:
+
+ Added a work-around to subvert constness of descriptor
+ member in spirit::parser_error. Joel de Guzman acknowledged
+ that this is an architectural error but unfortunately it
+ doesn't seem he is going to fix it any time soon (even though
+ patch is available).
+
+Tue Nov 4 21:21:06 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * ciao/ComponentsC.h:
+ * ciao/ComponentsS.h;
+
+ Regenerated these files. Not sure why this is maintained in the
+ repo.
+
+ * examples/handcrafted/Hello/hello_executors.h:
+
+ #include "tao/LocalObject.h"
+
+Tue Nov 04 19:35:10 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * COPYING: Added ACE/TAO/CIAO Copyright disclaimer. Thanks to
+ Roland Schimmack <SC@ProCom.de> for motivating the change.
+
+Tue Nov 4 17:11:06 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * tools/Daemon/CIAO_Daemon.cpp: Fixed warnings from g++.
+
+Tue Nov 4 16:51:22 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * tools/Daemon/controller_i.cpp:
+
+ #included "ace/OS_NS_strings.h"
+
+ * tools/RTComponentServer/RTConfig_Manager.h:
+ * tools/ServerActivator/ServerActivator.cpp:
+ * tools/XML_Helpers/Assembly_Handlers.cpp:
+ * tools/XML_Helpers/RTConfig_Handlers.cpp:
+ * tools/XML_Helpers/Softpkg_Handlers.cpp:
+ * tools/XML_Helpers/XML_Utils.cpp:
+
+ #included "ace/OS_String.h" to get the above files compiling
+ with g++. We still get a link error that Don is looking at.
+
+Tue Nov 4 16:34:45 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * ciao/Active_Objref_Map.h:
+ * ciao/Client_init.h:
+ * ciao/Object_Set_T.h:
+ * ciao/Server_init.h:
+
+ Added new includes that are needed to get them compiling.
+
+Wed Oct 29 16:39:48 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Removed extra generated close brace.
+
+Wed Oct 29 15:56:33 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CCF/CCF/IDL2/Traversal/Interface.hpp:
+ * CCF/CCF/IDL2/Traversal/Struct.hpp:
+
+ Cosmetic changes.
+
+ * CIDLC/CIDLC.vcproj:
+
+ Added SizeTypeCalculator.{h,cpp} to project.
+
+ * CIDLC/Literals.hpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Fixed bugs in code generation - missing 'Consumer' appended
+ to eventtype name, and event typename used for concatenation
+ of operation name instead of event identifier name.
+
+ * CIDLC/SizeTypeCalculator.cpp:
+
+ Added support for wstrings, sequences and interfaces.
+
+ * CIDLC/TypeNameEmitter.cpp:
+ * CIDLC/TypeNameEmitter.hpp:
+
+ Added support for typedefs, structs, sequences and interfaces.
+
+ * CIDLC/cidlc.cpp:
+
+ Added instantiation and launch of SizeTypeCalculator.
+
+Wed Oct 29 15:19:07 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/CCF/IDL2/SyntaxTree/BuiltIn.hpp:
+ * CCF/CCF/IDL2/SyntaxTree/BuiltIn.hpp.m4:
+ * CCF/CCF/IDL2/SyntaxTree/Elements.hpp:
+ * CCF/CCF/IDL2/SyntaxTree/Interface.hpp:
+ * CCF/CCF/IDL2/SyntaxTree/Sequence.hpp:
+ * CCF/CCF/IDL2/SyntaxTree/Struct.hpp:
+ * CCF/CCF/IDL2/SyntaxTree/Typedef.cpp:
+ * CCF/CCF/IDL2/SyntaxTree/Typedef.hpp:
+ * CCF/CCF/IDL3/SyntaxTree/Component.hpp:
+ * CCF/CCF/IDL3/SyntaxTree/EventType.hpp:
+ * CCF/CCF/IDL3/SyntaxTree/Home.hpp: added support for sharing
+ context by typedef temporary and principal syntax tree node.
+
+Wed Oct 29 13:36:47 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/CCF/IDL2/Traversal/Elements.cpp:
+ * CCF/CCF/IDL2/Traversal/Elements.hpp:
+ * CCF/CCF/IDL2/Traversal/Typedef.hpp: fixed bug in typedef
+ traversal scheme.
+
+Fri Oct 24 19:16:21 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/CCF/IDL2/Traversal/Elements.hpp:
+ * CCF/CCF/IDL2/Traversal/Typedef.hpp: Fixed inheritance ambiguity.
+
+ * CIDLC/Makefile.alt:
+ * CIDLC/ServantSourceGenerator.cpp:
+ * CIDLC/TypeNameEmitter.cpp:
+ * CIDLC/TypeNameEmitter.hpp: Added some functions for
+ typedef testing.
+
+ * CIDLC/SizeTypeCalculator.cpp:
+ * CIDLC/SizeTypeCalculator.hpp: Added initial implementation
+ of fixed/variable type size calculation.
+
+Fri Oct 24 18:17:21 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CCF/CCF/IDL2/IDL2.vcproj:
+
+ Added new front end files to the project.
+
+ * CCF/CCF/IDL2/SemanticAction.hpp:
+ * CCF/CCF/IDL2/Traversal.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Member.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/TypeId.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Typedef.hpp:
+ * CCF/CCF/IDL2/SyntaxTree/ElementsCtor.cpp:
+ * CCF/CCF/IDL2/SyntaxTree/InterfaceCtor.cpp:
+ * CCF/CCF/IDL2/SyntaxTree/Struct.cpp:
+ * CCF/CCF/IDL2/SyntaxTree/Typedef.hpp:
+ * CCF/CCF/IDL2/SyntaxTree/ValueTypeCtor.cpp:
+
+ Fixed various minor errors, such as removal of unused argument
+ identifiers, and addition of 'using std".
+
+ * CIDLC/TypeNameEmitter.cpp:
+ * CIDLC/TypeNameEmitter.hpp:
+
+ Added case for sequences, and typedefs of string and wstring.
+
+Fri Oct 24 17:14:51 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/CCF/IDL2/Traversal/Typedef.hpp: New implementation of
+ typedef traverser.
+
+Fri Oct 24 11:31:34 2003 Venkita Subramonian <venkita@cs.wustl.edu>
+
+ * CIAO version 0.3.5 released.
+
+Thu Oct 16 16:45:35 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/CCF/IDL2/LexicalAnalyzer.cpp:
+ * CCF/CCF/IDL2/Makefile.archive:
+ * CCF/CCF/IDL2/Parser.cpp:
+ * CCF/CCF/IDL2/Parser.hpp:
+ * CCF/CCF/IDL2/SemanticAction.hpp:
+ * CCF/CCF/IDL2/SyntaxTree.hpp:
+ * CCF/CCF/IDL2/Traversal.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Factory.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Member.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Struct.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Factory.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Interface.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Member.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Member.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Struct.cpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Struct.hpp:
+ * CCF/CCF/IDL2/SyntaxTree/Makefile.alt:
+ * CCF/CCF/IDL2/SyntaxTree/Member.cpp:
+ * CCF/CCF/IDL2/SyntaxTree/Member.hpp:
+ * CCF/CCF/IDL2/SyntaxTree/Operation.hpp:
+ * CCF/CCF/IDL2/SyntaxTree/Struct.cpp:
+ * CCF/CCF/IDL2/SyntaxTree/Struct.hpp:
+ * CCF/CCF/IDL2/Traversal/Makefile.alt:
+ * CCF/CCF/IDL2/Traversal/Member.cpp:
+ * CCF/CCF/IDL2/Traversal/Member.hpp:
+ * CCF/CCF/IDL2/Traversal/Struct.cpp:
+ * CCF/CCF/IDL2/Traversal/Struct.hpp:
+ * CCF/CCF/IDL2/Traversal/Typedef.hpp:
+ * CCF/CCF/IDL3/SyntaxTree/Operation.hpp:
+ * CCF/Example/CIDL/LocalExecutorMapping/ExecutorMappingGenerator.cpp:
+ Added support for struct.
+
+ * CCF/Example/CIDL/LocalExecutorMapping/test-2.idl:
+ * CCF/Example/CIDL/LocalExecutorMapping/test-2_exec.idl.orig:
+ Added a few structs for testing.
+
+ * CCF/Documentation/TODO: Marked some items as done or
+ partially done.
+
+Thu Oct 16 12:55:06 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/CCF/IDL2/SyntaxTree/ElementsCtor.cpp:
+ * CCF/CCF/IDL2/SyntaxTree/InterfaceCtor.cpp:
+ * CCF/CCF/IDL2/SyntaxTree/ValueTypeCtor.cpp: Added fake ctor
+ definition for some compilers (like MSVC) that insist they
+ should be defined (even though never used).
+
+Thu Oct 16 12:07:01 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/CCF/IDL2/SemanticAction/Impl/Interface.hpp:
+ * CCF/CCF/IDL2/SyntaxTree/BuiltIn.cpp:
+ * CCF/CCF/IDL2/SyntaxTree/BuiltIn.cpp.m4:
+ * CCF/CCF/IDL2/SyntaxTree/BuiltIn.hpp:
+ * CCF/CCF/IDL2/SyntaxTree/BuiltIn.hpp.m4:
+ * CCF/CCF/IDL2/SyntaxTree/BuiltIn.m4:
+ * CCF/CCF/IDL2/SyntaxTree/Elements.cpp:
+ * CCF/CCF/IDL2/SyntaxTree/Elements.hpp:
+ * CCF/CCF/IDL2/SyntaxTree/Interface.cpp:
+ * CCF/CCF/IDL2/SyntaxTree/Interface.hpp:
+ * CCF/CCF/IDL2/SyntaxTree/Sequence.hpp:
+ * CCF/CCF/IDL2/SyntaxTree/Typedef.cpp:
+ * CCF/CCF/IDL2/SyntaxTree/Typedef.hpp:
+ * CCF/CCF/IDL2/SyntaxTree/ValueType.cpp:
+ * CCF/CCF/IDL2/SyntaxTree/ValueType.hpp:
+ * CCF/CCF/IDL2/Traversal/BuiltIn.hpp:
+ * CCF/CCF/IDL2/Traversal/BuiltIn.hpp.m4:
+ * CCF/CCF/IDL2/Traversal/Elements.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Component.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Home.hpp:
+ * CCF/CCF/IDL3/SyntaxTree/Component.cpp:
+ * CCF/CCF/IDL3/SyntaxTree/Component.hpp:
+ * CCF/CCF/IDL3/SyntaxTree/EventType.hpp:
+ * CCF/CCF/IDL3/SyntaxTree/Home.hpp:
+ * CCF/CCF/CIDL/SemanticAction/Impl/HomeExecutor.hpp: Added the
+ SyntaxTree::ForwardDeclarableTypeDecl base class and moved
+ there {virtual bool defined () const;}. Added
+ {virtual bool complete () const;} to TypeDecl to reflect type
+ completeness. Also changed some type names for consistency.
+
+ * CCF/Example/CIDL/LocalExecutorMapping/ExecutorMappingGenerator.cpp:
+ * CCF/Example/CIDL/LocalExecutorMapping/cidlc.cpp: Minor changes to
+ reflect above.
+
+ * CIDLC/ExecutorMappingGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+ * CIDLC/TypeNameEmitter.cpp:
+ * CIDLC/TypeNameEmitter.hpp:
+ * CIDLC/cidlc.cpp: Minor changes to reflect above.
+
+Wed Oct 15 15:43:13 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/CCF/IDL2/LexicalAnalyzer.cpp:
+ * CCF/CCF/IDL2/Makefile.archive:
+ * CCF/CCF/IDL2/Parser.cpp:
+ * CCF/CCF/IDL2/Parser.hpp:
+ * CCF/CCF/IDL2/SyntaxTree.hpp:
+ * CCF/CCF/IDL2/Traversal.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Typedef.hpp:
+ * CCF/CCF/IDL2/SemanticAction/Impl/Typedef.hpp:
+ * CCF/CCF/IDL2/SyntaxTree/Makefile.alt:
+ * CCF/CCF/IDL2/SyntaxTree/Sequence.cpp:
+ * CCF/CCF/IDL2/SyntaxTree/Sequence.hpp:
+ * CCF/CCF/IDL2/Traversal/Makefile.alt:
+ * CCF/CCF/IDL2/Traversal/Sequence.cpp:
+ * CCF/CCF/IDL2/Traversal/Sequence.hpp: Added support for
+ unbounded sequence.
+
+ * CCF/Example/CIDL/LocalExecutorMapping/test-2.idl:
+ * CCF/Example/CIDL/LocalExecutorMapping/test-2_exec.idl.orig:
+ Added a few sequences for testing.
+
+Wed Oct 15 13:59:33 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/CCF/IDL2/SyntaxTree/BuiltIn.hpp:
+ * CCF/CCF/IDL2/SyntaxTree/BuiltIn.hpp.m4:
+ * CCF/CCF/IDL2/SyntaxTree/Elements.hpp:
+ * CCF/CCF/IDL2/SyntaxTree/Interface.hpp:
+ * CCF/CCF/IDL2/SyntaxTree/Typedef.cpp:
+ * CCF/CCF/IDL2/SyntaxTree/Typedef.hpp:
+ * CCF/CCF/IDL2/SyntaxTree/ValueType.hpp:
+ * CCF/CCF/IDL2/Traversal/Elements.cpp:
+ * CCF/CCF/CIDL/SemanticAction/Impl/HomeExecutor.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Component.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Home.hpp:
+ * CCF/CCF/IDL3/SemanticAction/Impl/Include.hpp:
+ * CCF/CCF/IDL3/SyntaxTree/Component.hpp:
+ * CCF/CCF/IDL3/SyntaxTree/EventType.hpp:
+ * CCF/CCF/IDL3/SyntaxTree/Home.hpp:
+ * CCF/CCF/IDL3/Traversal/Operation.cpp: Second part of
+ typedef-related infrastructure.
+
+ * CCF/Example/CIDL/LocalExecutorMapping/test-0.idl:
+ * CCF/Example/CIDL/LocalExecutorMapping/test-0_exec.idl.orig:
+ * CCF/Example/CIDL/LocalExecutorMapping/test-1.idl: Added a few
+ typedef's for testing.
+
+ * CCF/Example/CIDL/LocalExecutorMapping/ExecutorMappingGenerator.cpp:
+ * CCF/Example/CIDL/LocalExecutorMapping/Makefile.alt:
+ * CCF/Example/CIDL/LocalExecutorMapping/cidlc.cpp: Some minor
+ clean-up's.
+
+ * CCF/Documentation/TODO: Added a few more items.
+
+Tue Oct 14 22:44:43 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * examples/handcrafted/Hello/simple_client.cpp:
+ * examples/handcrafted/Hello/client.cpp: Added the missing streams
+ header file.
+
+Tue Oct 14 17:18:43 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CIDLC/Makefile.alt: Added alternative (to mpc) means of
+ building CIDL compiler.
+
+Tue Oct 14 16:57:54 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CIDLC/ExecutorMappingGenerator.cpp:
+ * CIDLC/RepositoryIdGenerator.cpp: Some minor clean-up's.
+
+Tue Oct 14 16:41:41 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/IDL2/LexicalAnalyzer.cpp:
+ * CCF/IDL2/Makefile.archive:
+ * CCF/IDL2/Parser.cpp:
+ * CCF/IDL2/Parser.hpp:
+ * CCF/IDL2/SemanticAction.hpp:
+ * CCF/IDL2/SyntaxTree.hpp:
+ * CCF/IDL2/Traversal.hpp:
+ * CCF/IDL2/SemanticAction/Factory.hpp:
+ * CCF/IDL2/SemanticAction/Typedef.hpp:
+ * CCF/IDL2/SemanticAction/Impl/Factory.hpp:
+ * CCF/IDL2/SemanticAction/Impl/Interface.hpp:
+ * CCF/IDL2/SemanticAction/Impl/Typedef.cpp:
+ * CCF/IDL2/SemanticAction/Impl/Typedef.hpp:
+ * CCF/IDL2/SyntaxTree/BuiltIn.hpp:
+ * CCF/IDL2/SyntaxTree/BuiltIn.hpp.m4:
+ * CCF/IDL2/SyntaxTree/Elements.cpp:
+ * CCF/IDL2/SyntaxTree/Elements.hpp:
+ * CCF/IDL2/SyntaxTree/Elements.tpp:
+ * CCF/IDL2/SyntaxTree/Interface.hpp:
+ * CCF/IDL2/SyntaxTree/Makefile.alt:
+ * CCF/IDL2/SyntaxTree/Module.hpp:
+ * CCF/IDL2/SyntaxTree/Operation.hpp:
+ * CCF/IDL2/SyntaxTree/Translation.cpp:
+ * CCF/IDL2/SyntaxTree/Translation.hpp:
+ * CCF/IDL2/SyntaxTree/TypeId.cpp:
+ * CCF/IDL2/SyntaxTree/Typedef.cpp:
+ * CCF/IDL2/SyntaxTree/Typedef.hpp:
+ * CCF/IDL2/SyntaxTree/ValueType.hpp:
+ * CCF/IDL2/Traversal/BuiltIn.hpp:
+ * CCF/IDL2/Traversal/BuiltIn.hpp.m4:
+ * CCF/IDL2/Traversal/Elements.cpp:
+ * CCF/IDL2/Traversal/Elements.hpp:
+ * CCF/IDL2/Traversal/Interface.hpp:
+ * CCF/IDL2/Traversal/Module.hpp:
+ * CCF/IDL2/Traversal/Operation.hpp:
+ * CCF/IDL2/Traversal/Translation.hpp:
+ * CCF/IDL2/Traversal/TypeId.hpp:
+ * CCF/IDL2/Traversal/Typedef.cpp:
+ * CCF/IDL2/Traversal/Typedef.hpp:
+ * CCF/IDL3/SyntaxTree/Component.hpp:
+ * CCF/IDL3/SyntaxTree/EventType.hpp:
+ * CCF/IDL3/SyntaxTree/Home.hpp:
+ * CCF/IDL3/SyntaxTree/Operation.hpp:
+ * CCF/IDL3/Traversal/Component.hpp:
+ * CCF/IDL3/Traversal/EventType.hpp:
+ * CCF/IDL3/Traversal/Home.hpp:
+ * CCF/IDL3/Traversal/Operation.hpp:
+ * CCF/CIDL/SyntaxTree/Composition.hpp:
+ * CCF/CIDL/SyntaxTree/HomeExecutor.hpp:
+ * CCF/CIDL/Traversal/Composition.hpp:
+ * CCF/CIDL/Traversal/HomeExecutor.hpp: First part of
+ typedef-related infrastructure.
+
+ * CCF/CodeGenerationKit/IndentationIDL.hpp:
+ * CCF/CompilerElements/Preprocessor.hpp:
+ * Example/CIDL/LocalExecutorMapping/ExecutorMappingGenerator.cpp:
+ * Example/CIDL/LocalExecutorMapping/cidlc.cpp:
+ * Example/CIDL/LocalExecutorMapping/test-0.idl: Some minor
+ clean-up's.
+
+ * Documentation/TODO: Added a few more items.
+
+Tue Oct 14 00:54:10 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * performance-tests/Benchmark/RoundTrip/svc.conf:
+ Changed to load Advanced_Resource_Factory dynamically.
+
+ * performance-tests/Benchmark/RoundTripServer/RoundTripServer.mpc:
+ * performance-tests/Benchmark/RoundTripServer/LatencyTest.h:
+ * performance-tests/Benchmark/RoundTripServer/server.cpp:
+ Changed to implement the Benchmark::Latency_Test interface
+ instead of the Latency_Test interface. Otherwise, we won't be
+ able to connect the interface to a receptacle expecting another
+ interface type.
+
+Tue Oct 14 00:54:10 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec.cpp:
+ Fixed a minor compilation problem.
+
+ * performance-tests/Benchmark/descriptors/Test-ior.cad:
+ * performance-tests/Benchmark/RoundTripClient/run_test_ior_cad.pl:
+ * performance-tests/Benchmark/RoundTripServer/server.cpp:
+
+ Changed to output IOR to a fixed file named "rtserver.ior" and
+ refer to the object as file://rtserver.ior in the cad file
+
+Mon Oct 13 23:41:10 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * examples/handcrafted/Display/RateGen/controller.cpp:
+ * examples/handcrafted/Display/RateGen/client.cpp: Added inclusion
+ of "ace/streams.h" to make them compile.
+
+Mon Oct 13 22:31:10 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService_exec.cpp:
+ Fixed a fuzz warning.
+
+Mon Oct 13 16:49:00 2003 Venkita Subramonian <venkita@cs.wustl.edu>
+
+ * tools/RTComponentServer/RTConfig_Manager.h:
+ * tools/RTComponentServer/ComponentServer_Task.h:
+ Added /**/ to fix Fuzz errors.
+
+Sun Oct 12 20:44:41 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/Collectors.hpp:
+ * CIDLC/DescriptorGenerator.cpp:
+ * CIDLC/DescriptorGenerator.hpp:
+ * CIDLC/ExecutorMappingGenerator.cpp:
+ * CIDLC/ExecutorMappingGenerator.hpp:
+ * CIDLC/Literals.hpp:
+ * CIDLC/ServantGenerator.cpp:
+ * CIDLC/ServantGenerator.hpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantHeaderGenerator.hpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.hpp:
+ Changed top of files to match the title/author/cvs id format for
+ all other CCF and CIDLC files.
+
+ * CIDLC/TypeNameEmitter.cpp:
+ * CIDLC/TypeNameEmitter.hpp:
+
+ New files, adding support for all basic IDL types, and factoring
+ out the typename emitter classes for operation return types and
+ parameters into a separate translation unit, to eliminate the
+ duplication in ServantHeaderGenerator.cpp and
+ ServantSourceGenerator.cpp.
+
+ * CIDLC/cidlc.mpc:
+ * CIDLC/CIDLC.vcproj:
+
+ Updated with the new files above.
+
+Sun Oct 12 18:36:16 2003 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * performance-tests/Benchmark/Benchmark.mpc:
+ * performance-tests/Benchmark/Benchmark.idl:
+ * performance-tests/Benchmark/server.cpp:
+ * performance-tests/Benchmark/svc.conf:
+ * performance-tests/Benchmark/LatencyTest.h:
+ * performance-tests/Benchmark/LatencyTest.cpp:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient.idl:
+ * performance-tests/Benchmark/RoundTripClient/client.cpp:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip.idl:
+ Added test scenario in which a CORBA component interacts with
+ a CORBA server.
+
+Sat Oct 11 00:18:13 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * bin/generate_component_mpc.pl: My previous change didn't
+ completely fix the script. It was using the obsolet dependency
+ MPC keyword "depends" instead of "after", and the dependencies
+ was partially broken.
+
+Fri Oct 10 18:39:18 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/CIDLC.vcproj:
+ * CIDLC/DescriptorGenerator.cpp:
+ * CIDLC/Literals.hpp:
+ * CIDLC/RepositoryIdGenerator.cpp:
+ * CIDLC/RepositoryIdGenerator.hpp:
+ * CIDLC/cidlc.cpp:
+
+ Added backend support for typeid and typeprefix, used in
+ computing the repository id string.
+
+Fri Oct 10 15:54:00 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/CCF/IDL2/LexicalAnalyzer.hpp:
+ * CCF/CCF/IDL2/LexicalAnalyzer.cpp:
+ * CCF/CCF/IDL2/SyntaxTree/BuildIn.m4:
+ * CCF/CCF/IDL2/SyntaxTree/BuildIn.hpp:
+ * CCF/CCF/IDL2/SyntaxTree/BuildIn.hpp.m4:
+ * CCF/CCF/IDL2/SyntaxTree/BuildIn.cpp:
+ * CCF/CCF/IDL2/SyntaxTree/BuildIn.cpp.m4:
+ * CCF/CCF/IDL2/Traversal/BuildIn.hpp:
+ * CCF/CCF/IDL2/Traversal/BuildIn.hpp.m4:
+ * CCF/Example/CIDL/LocalExecutorMapping/cidlc.cpp:
+ * CCF/Example/CIDL/LocalExecutorMapping/test-2.idl:
+ * CCF/Example/CIDL/LocalExecutorMapping/test-1_exec.idl.orig:
+ * CCF/Example/CIDL/LocalExecutorMapping/test-2_exec.idl.orig:
+ * CIDLC/cidlc.cpp: Added support for all built-in types (spec
+ calls them 'base types') in CCF and in CIDL compiler driver.
+
+ * CCF/Documentation/TODO: marked corresponding item as done.
+
+Thu Oct 09 00:50:24 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * bin/generate_component_mpc.pl: Minor enhancement to the previous
+ change. This script now allows an optional project name prefix
+ to be define via the [-u] flag. If this flag is not used, the
+ dependent component's name will be used as project name prefix.
+ Since there are possibly many component depending on the same
+ component, using the depending componant name may not help much.
+ If neither -u and -p flag are used, no project name prefix will
+ be added (the redundant leading underscore from the previous
+ change has been removed.)
+
+Fri Oct 6 10:00:12 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/Documentation/TODO: merged items from my off-line TODO.
+
+Fri Oct 03 22:45:43 2003 Chris Cleeland <cleeland@ociweb.com>
+
+ * CIAO version 0.3.4 released.
+
+Fri Oct 03 11:07:20 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * docs/releasenotes.html: Updated the release notes with more
+ recent news.
+
+Fri Oct 3 08:14:26 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * examples/handcrafted/BasicSP_EC/EC/EC.mpc: Fixed a problem with
+ the MPC file. Thanks to Johnny Willemsen for poitning this out.
+
+Thu Oct 2 15:02:10 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/CCF/IDL2/Traversal/TypeId.hpp:
+ * CCF/CCF/IDL2/Traversal/TypeId.cpp:
+ * CCF/CCF/IDL2/Traversal.hpp:
+ * CCF/CCF/IDL2/SyntaxTree.hpp:
+ * CCF/CCF/IDL2/SemanticAction.hpp: Added missing pieces for
+ typeid/typeprefix support.
+
+Wed Oct 1 14:26:09 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/CCF/CompilerElements/Context.hpp: added count () member
+ function.
+
+ * CIDLC/RepositoryIdGenerator.hpp:
+ * CIDLC/RepositoryIdGenerator.cpp: implemented first phase of
+ repository id generation.
+
+Tue Sep 30 09:52:13 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * performance-tests/mico/mico-thrput-st/client.cc:
+ * performance-tests/mico/mico-thrput-st/server.cc:
+
+ Fixed fuzz errors.
+
+
+Fri Sep 26 12:13:44 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * performance-tests/Benchmark/RoundTripClient/run_test_ior_cad.pl:
+ Changed to deploy Test-IOR.cad instead of
+ Test-Name-Service.cad.
+
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient_stub_export.h:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient_svnt_export.h:
+ Fixed some extra line-breaks that were causing compilation errors.
+
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec.cpp:
+ Fixed a compilation error.
+
+ * performance-tests/Benchmark/RoundTripServer/RoundTripServer.mpc:
+ Removed a redundant comma.
+
+ * tools/ComponentServer/ComponentServer.cpp:
+ Fixed execution error in "debug mode."
+
+Wed Sep 24 20:59:09 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * examples/handcrafted/BasicSP_EC2/EC/EC.mpc: Fixed problems that
+ missed my last checkiin "Sun Sep 21 17:07:45 2003 Balachandran
+ Natarajan <bala@dre.vanderbilt.edu>".
+
+Sun Sep 21 17:15:24 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * bin/generate_component_mpc.pl: Appended the value provided to
+ the -p option to the project names.
+
+Sun Sep 21 17:07:45 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * examples/handcrafted/BasicSP_EC/BasicSP.mpc:
+ * examples/handcrafted/BasicSP_EC/BMClosedED/BMClosedED.mpc:
+ * examples/handcrafted/BasicSP_EC/BMDevice/BMDevice.mpc:
+ * examples/handcrafted/BasicSP_EC/BMDisplay/BMDisplay.mpc:
+ * examples/handcrafted/BasicSP_EC/EC/EC.mpc
+ * examples/handcrafted/BasicSP_EC2/BasicSP.mpc:
+ * examples/handcrafted/BasicSP_EC2/BMClosedED/BMClosedED.mpc:
+ * examples/handcrafted/BasicSP_EC2/BMDevice/BMDevice.mpc:
+ * examples/handcrafted/BasicSP_EC2/BMDisplay/BMDisplay.mpc:
+ Changed the project file names so that they don't clash with the
+ project names in examples/handcrafted/BasicSP. This shold get
+ rid of warning in VC7 builds hosted by remedy.
+
+Fri Sep 19 14:27:57 2003 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * performance-tests/Benchmark/RoundTripServer/RoundTripServer.mpc:
+ Fixed to adhere to latest mpc changes. This also ensured proper
+ make files to be generated.
+
+Fri Sep 19 13:31:50 2003 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * performance-tests/Benchmark/descriptors/Test-IOR.cad:
+ cad file to test CORBA server with Component client
+ * performance-tests/Benchmark/RoundTripClient/run_test_ior.pl:
+ Perl script to run the benchmark
+ * performance-tests/Benchmark/RounTrip_server:
+ * performance-tests/Benchmark/RoundTripServer/LatencyTest.cpp:
+ * performance-tests/Benchmark/RoundTripServer/LatencyTest.h:
+ * performance-tests/Benchmark/RoundTripServer.mpc:
+ * performance-tests/Benchmark/RoundTripServer/server.cpp:
+ * performance-tests/Benchmark/RoundTripServer/Test.idl:
+ A server to communicate with CIAO client, implementing the same
+ interface needed.
+
+Tue Sep 16 14:04:06 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/Example/ComponentDeploymentDescriptor: Added small example
+ that shows how syntax tree traversal mechanism can be used in
+ different code generation tasks.
+
+Thu Aug 28 12:30:10 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/CFF/IDL2/SyntaxTree/Elements.*: Made SyntaxTree::Node
+ capable of holding arbitrary context information (see
+ SyntaxTree::Node::context ()). Plus some minor architectural
+ changes.
+
+ * CCF/CFF/IDL2/SyntaxTree/TypeId.*
+ * CCF/CFF/IDL2/SemanticAction/TypeId.*
+ * CCF/CFF/IDL2/SemanticAction/Impl/TypeId.*
+ * CCF/CFF/IDL2/LexicalAnalyzer.*
+ * CCF/CFF/IDL2/Parser.*: Added support for typeid and typeprefix.
+
+Tue Aug 26 16:59:49 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * tools/RTComponentServer/RTConfig_Manager.cpp:
+ * tools/RTComponentServer/RTConfig_Manager.inl:
+ * tools/RTComponentServer/RTServer_Impl.cpp:
+ * tools/RTComponentServer/RTServer_Impl.h:
+ * tools/XML_Helpers/RTConfig_Handlers.cpp: Fixed compilation
+ problem on Linux.
+
+Tue Aug 26 10:14:03 2003 Diego Sevilla <dsevilla@ditec.um.es>
+
+ * CIDLC/ServantSourceGenerator.cpp: Correctly generate get and set
+ operations for attributes in the servant code. An error in how
+ I built the traverse was preventing that.
+
+Tue Aug 26 09:27:17 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Changed the constructor of SetAttributeEmitter to take
+ INArgTypeNameEmitter as a delegate instead of
+ ReturnTypeNameEmitter, which was previously the case, causing
+ the code generation to emit the return type char* instead
+ of the correct IN argument type const char*. Thanks to
+ Roland Schimmack <SC@ProCom.de> for reporting the bug.
+
+Mon Aug 25 09:47:19 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * examples/OEP/Display/NavDisplayGUI_exec/RootPanel.h: Fixed a
+ compilation error by adding inclusion of "ace/Null_Mutex.h" and
+ define QT_GENUINE_STR.
+
+Mon Aug 25 07:42:14 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * tools/RTComponentServer/ComponentServer_Task.cpp:
+ * tools/RTComponentServer/ComponentServer_Task.h:
+ * tools/RTComponentServer/RTConfig_Manager.h: Fixed merge errors
+ by adding inclusion of "tao/ORB.h", "ace/Null_Mutex.h" and
+ such.
+
+Sun Aug 24 22:03:55 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ Merged the RTCIAO-0 branch into main trunk.
+
+ Sun Aug 24 21:45:33 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * tools/Assembly_Deployer/Assembly_Deployer.mpc:
+ * tools/Daemon/Daemon.mpc: Both CIAO_Daemon and Assembly_Manager
+ depend on RTCORBA library now because they both required to
+ handle RTCORBA related types.
+
+ * tools/Assembly_Deployer/Assembly_Visitors.cpp:
+ * tools/Assembly_Deployer/Assembly_Visitors.h: Decoupled the
+ container creation functionality from the creation of
+ ComponentServer into a separate method. This allows us to
+ better manage the type of container and the associating policy
+ sets.
+
+ * tools/Assembly_Deployer/Deployment_Configuration.cpp:
+ * tools/Assembly_Deployer/Deployment_Configuration.h: Changed the
+ get_activator[_ior] functions to return default activator where
+ there's no valid activator id available instead of throwing an
+ exception.
+
+ * tools/ComponentServer/ComponentServer.cpp: Invoke the init
+ method of ComponentServer servant. This function is now
+ supported.
+
+ * tools/RTComponentServer/ComponentServer_Task.cpp:
+ * tools/RTComponentServer/ComponentServer_Task.h:
+ * tools/RTComponentServer/RTComponentServer.cpp:
+ * tools/RTComponentServer/RTComponentServer.mpc:
+ * tools/RTComponentServer/RTConfig_Manager.cpp:
+ * tools/RTComponentServer/RTConfig_Manager.h:
+ * tools/RTComponentServer/RTServer_Impl.cpp:
+ * tools/RTComponentServer/RTServer_Impl.h:
+ * tools/RTComponentServer/RTServer_Impl.inl: Added/Changed to
+ properly support the real-time ComponentServer implementation.
+
+ * tools/ServerActivator/ServerActivator.cpp: Fixed a fuzz error.
+
+ * tools/XML_Helpers/Assembly_Spec.inl: Changed to return 0 if
+ rtcad_filename and rtpolicyset_ref is not specified in the
+ original XML file.
+
+ Thu Aug 14 16:27:52 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * tools/XML_Helpers/RTCAD-example.rtd:
+ * tools/XML_Helpers/RTCAD-example.cad: Added new file to show some
+ example cad and rtd files.
+
+ * tools/XML_Helpers/main.cpp:
+ * tools/XML_Helpers/XML_Utils.cpp: Extended to invoke the RTCAD
+ handler.
+
+ * tools/XML_Helpers/RTConfig_Handlers.h:
+ * tools/XML_Helpers/RTConfig_Handlers.cpp: Fixed run-time errors.
+
+ Wed Aug 13 01:48:46 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * tools/RTComponentServer/RTComponentServer.mpc: Added dependency
+ to XML_Helpers library.
+
+ * tools/XML_Helpers/XML_Utils.h: Added parse_rtcad_extension
+ static method. This is yet to be implemented.
+
+ * tools/XML_Helpers/RTConfig_Handlers.h:
+ * tools/XML_Helpers/RTConfig_Handlers.inl:
+ * tools/XML_Helpers/RTConfig_Handlers.cpp: Added new files for
+ parsing RTConfig extention.
+
+ * tools/RTComponentServer/RTConfig_Manager.h:
+ * tools/RTComponentServer/RTConfig_Manager.cpp:
+ * tools/XML_Helpers/RTConfiguration.idl: Renamed
+ RTORB_Resources_Info to RTORB_Resource_Info.
+
+ * tools/XML_Helpers/XMLHelper.mpc: Added rtcorba as a base
+ project. We now depend on RTCORBA.
+
+ Sun Aug 10 13:50:15 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * tools/RTComponentServer/RTConfiguration.idl:
+ * tools/RTComponentServer/RTConfigurationClient.cpp:
+ * tools/RTComponentServer/RTComponentServer.mpc: Removed
+ RTConfiguration.idl and the stub wrapper
+ RTConfigurationClient.cpp. They have been moved to XML_Helpers
+ library.
+
+ * tools/RTComponentServer/RTConfig_Manager.h:
+ * tools/RTComponentServer/RTConfig_Manager.cpp: Changed to include
+ RTConfigurationC.h from XML_Helpers subdir and make sure
+ RTCORBA.h is included before RTConfigurationC.h.
+
+ * tools/XML_Helpers/XMLHelpers.mpc:
+ * tools/XML_Helpers/RTConfiguration.idl:
+ * tools/XML_Helpers/RTConfiguration_Stubs.cpp: Added
+ RTConfiguration info and its wrapper cpp file. This wrapper cpp
+ file is used to ensure that RTCORBA.h is included before
+ RTConfigurationC.h.
+
+ * tools/XML_Helpers/Assembly_Handlers.cpp:
+ * tools/XML_Helpers/Assembly_Handlers.h:
+ * tools/XML_Helpers/Assembly_Handlers.inl:
+ * tools/XML_Helpers/Assembly_Spec.h:
+ * tools/XML_Helpers/Assembly_Spec.inl: Extended to parse and store
+ <extension> information in <processcollocation> and
+ <homeplacement>.
+
+ Wed Aug 06 17:02:02 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * tools/RTComponentServer/RTConfig_Manager.h:
+ * tools/RTComponentServer/RTConfig_Manager.cpp: Added support for
+ keeping PriorityBands information.
+
+ Sun Aug 3 23:12:20 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * tools/RTComponentServer/RTConfig_Manager.cpp: Fixed mismatched
+ throw specifications. Added inclusion of "ace/SString.h" as ACE
+ now only includes "ace/SStringfwd.h".
+
+ Sun Aug 03 00:45:59 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * tools/RTComponentServer/RTConfig_Manager.cpp: Fixed some
+ accidental pastings of code.
+
+ Fri Aug 01 13:50:34 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * tools/RTComponentServer/RTComponentServer.mpc:
+ * tools/RTComponentServer/RTConfig_Manager.cpp:
+ * tools/RTComponentServer/RTConfig_Manager.h:
+ * tools/RTComponentServer/RTConfig_Manager.inl:
+ * tools/RTComponentServer/RTConfiguration.idl: Added code for
+ managing named collection of RTCORBA related policies.
+
+ Sun Jul 06 21:37:22 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * tools/RTComponentServer/ComponentServer_Task.cpp (svc): Changed
+ to take advantage of CIAO::Activator_Callback interface change
+ for getting back our own ConfigValues. We will need to use
+ these configuration values in the future.
+
+ Sun Jul 06 11:50:48 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * tools/RTComponentServer/ComponentServer_Task.cpp:
+ * tools/RTComponentServer/ComponentServer_Task.h:
+ * tools/RTComponentServer/ComponentServer_Task.inl:
+ * tools/RTComponentServer/README:
+ * tools/RTComponentServer/RTComponentServer.cpp:
+ * tools/RTComponentServer/RTComponentServer.mpc: Added the
+ skeleton of RTComponentServer.
+
+ Sun Jul 06 11:33:55 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * Added: this temporary ChangeLog file for changes within the
+ RTComponentServer.
+
+
+Sun Aug 24 21:38:24 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * ciao/Container_Base.cpp:
+ * ciao/Container_Base.h: Added an extra argument of type
+ CORBA::PolicyList to the init method which we can use to pass
+ extra RTCORBA policies into the RT Container.
+
+ * ciao/Container_Impl.cpp:
+ * ciao/Container_Impl.h: Fixed memory management of cached
+ ConfigValue valuetype.
+
+ * ciao/ServerActivator_Impl.h:
+ * ciao/ServerActivator_Impl.cpp: Extended the server activator to
+ specify RTCAD filename when instantiating a RTComponentServer.
+
+ * examples/OEP/Display/descriptors/HUDisplay-rtcad.cad:
+ * examples/OEP/Display/descriptors/NOTE-win.txt:
+ * examples/OEP/Display/descriptors/RTsvc.conf:
+ * examples/OEP/Display/descriptors/test.rtd:
+ * examples/OEP/Display/descriptors/svcmap.dat: Added an RTCCM
+ example.
+
+Wed Aug 20 17:44:29 2003 Diego Sevilla <dsevilla@ditec.um.es>
+
+ * CIDLC/DescriptorGenerator.cpp: Small fix to make it compile
+ under linux also.
+
+Wed Aug 20 17:36:02 2003 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * performance-tests/mico:
+ Directory where mico specific tests will be added
+
+ * performance-tests/mico/mico-thrput-st:
+ Single threaded throughput tests for the MICO ORB
+
+ * performance-tests/mico/mico-thrput-st/server.cc:
+ * performance-tests/mico/mico-thrput-st/client.cc:
+ * performance-tests/mico/mico-thrput-st/RoundTrip_impl.cc:
+ * performance-tests/mico/mico-thrput-st/RoundTrip_impl.h:
+ * performance-tests/mico/mico-thrput-st/Makefile:
+ * performance-tests/mico/mico-thrput-st/mico-env:
+ * performance-tests/mico/mico-thrput-st/RoundTrip.idl:
+ Single threaded througput test for MICO ORB. This experiment
+ uses the same interface as the one used in TAO for generating
+ daily performance stats. Further, the test also uses ACE for
+ generating results.
+
+Wed Aug 20 17:19:52 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/cidlc.mpc:
+
+ Added new and missing files.
+
+Wed Aug 20 17:09:18 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CCF/CCF/CodeGenerationKit/CodeGenerationKit.vcproj:
+
+ Added missing header files to the project.
+
+ * CCF/CCF/CodeGenerationKit/Regex.hpp:
+
+ Boris Kolpackov's <boris@dre.vanderbilt.edu> change
+ to allow a choice of delimiters when passing a
+ regular expression string to the perl_s() method.
+
+ * CIDLC/ExecutorMappingGenerator.cpp:
+ * CIDLC/ServantGenerator.cpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Minor cosmetic changes.
+
+ * CIDLC/DescriptorGenerator.cpp:
+ * CIDLC/DescriptorGenerator.hpp:
+
+ New files, containing code for an XML generator, the
+ CORBA Component Descriptor .ccd file.
+
+ * CIDLC/CIDLC.vcproj:
+ * CIDLC/cidlc.cpp:
+
+ Updated these files to recognize the new generator.
+ Also changed the output directory of the executable
+ to be CIAO_ROOT/bin.
+
+Wed Aug 20 14:48:15 2003 Diego Sevilla <dsevilla@ditec.um.es>
+
+ * CCF/Example/CodeGenerationKit/Indentation/XML/Makefile.alt:
+ * CCF/Example/CodeGenerationKit/Indentation/XML/XML.mpc:
+ * CCF/Example/CodeGenerationKit/Indentation/XML/indent_xml.cpp:
+ Added example of usage for the XML indenter.
+
+ * CCF/CCF/CodeGenerationKit/IndentationXML.hpp: Added XML
+ indenter.
+
+Tue Aug 19 16:06:01 2003 Diego Sevilla <dsevilla@ditec.um.es>
+
+ * CIDLC/cidlc.mpc: Some cleaning of the MPC file: Removed unneeded
+ Instrocpection and added the CompilerElements library.
+
+Mon Aug 18 14:08:05 2003 Arvind S. Krishna <arvindk@equus.dre.vanderbilt.edu>
+
+ * performance-tests/Benchmark/descriptors/test-multi-process.dat:
+ This file contains host port locations for running components
+ in multiple hosts/processes. Will be used as an example
+ scenario for benchmarking experiments
+
+Mon Aug 18 12:11:55 2003 Arvind S. Krishna <arvindk@equus.dre.vanderbilt.edu>
+
+ * performance-tests/Benchmar/Multi_Threaded/NOTE.txt:
+ Updated information on pre-conditions necessary to run the
+ experiment
+
+Mon Aug 18 12:01:37 2003 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * performance-tests/Benchmar/Multi_Threaded/Multi_Threaded.mpc:
+ * performance-tests/Benchmar/Multi_Threaded/client.cpp:
+ * performance-tests/Benchmar/Multi_Threaded/Client_Task.h:
+ * performance-tests/Benchmar/Multi_Threaded/Client_Task.cpp:
+ * performance-tests/Benchmar/Multi_Threaded/run_test.pl:
+ * performance-tests/Benchmar/Multi_Threaded/svc.conf:
+ * performance-tests/Benchmar/Multi_Threaded/NOTE.txt:
+ * performance-tests/Benchmar/Multi_Threaded/README:
+ Test that measures round-trip latency behavior using a
+ multi-threaded client.
+
+ * performance-tests/Benchmark/descriptors/Multi_Threaded.cad:
+ * performance-tests/Benchmark/descriptors/CIAO_Installation_Data.ini:
+ Appropriate CAD file to configure the above experiment
+
+Sun Aug 17 22:43:55 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * ciao/Container_Base.cpp:
+ * ciao/Container_Base.h:
+ * ciao/Container_Impl.cpp: Changed the signature of
+ CIAO::Container to pass in a CORBA::PolicyList. We will need
+ this to initialize RT_Session_Container and the future
+ unclassified container.
+
+ * docs/ConfigValues.html:
+ * docs/XML/ciao_rt_cad_ext.dtd:
+ * docs/XML/componentassembly.dtd: Updated documentation on
+ extension element usage, RTCAD extension usage and recognizable
+ ConfigValues names.
+
+ * examples/OEP/Display/RateGen/client.cpp:
+ * examples/OEP/Display/RateGen/controller.cpp:
+ * examples/OEP/Display/NavDisplayGUI_exec/RootPanel.h:
+ * examples/OEP/Display/NavDisplayGUI_exec/RootPanel.h:
+ * examples/OEP/Display/NavDisplayGUI_exec/UpdatePositionCmd.cpp:
+ Reordered order of inclusion to make sure ACE headers are seen
+ by the compiler first.
+
+Sun Aug 17 09:53:57 2003 Diego Sevilla <dsevilla@ditec.um.es>
+
+ * CCF/CCF/CCF.mwc: Fixed a bug in the name of a file that was
+ preventing the build in VC71.
+
+Fri Aug 15 16:26:03 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIAO/CCF/CCF/CIDL/CIDL.vcproj:
+ * CIAO/CCF/CCF/CodeGenerationKit/CodeGenerationKit.vcproj:
+ * CIAO/CCF/CCF/CompilerElements/CompilerElements.vcproj:
+ * CIAO/CCF/CCF/IDL2/IDL2.vcproj:
+ * CIAO/CCF/CCF/IDL3/IDL3.vcproj:
+ * CIAO/CIDLC/CIDLC.vcproj:
+
+ Turned off detection of 64-bit portability issues in these
+ projects. There are places in the Boost library where they
+ play fast and loose with conversions in this area, which
+ leads to many warnings.
+
+Fri Aug 15 15:18:37 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF:
+ * CIDLC:
+
+ Added VC7.1 Solutions and Projects.
+
+Wed Aug 13 17:37:30 2003 George Edwards <g.edwards@vanderbilt.edu>
+
+ * examples/handcrafted/BasicSP_EC/BasicSP.mpc:
+ * examples/handcrafted/BasicSP_EC/BMClosedED/BMClosedED.mpc:
+ * examples/handcrafted/BasicSP_EC/BMDevice/BMDevice.mpc:
+ * examples/handcrafted/BasicSP_EC/BMDisplay/BMDisplay.mpc:
+ * examples/handcrafted/BasicSP_EC/EC/EC.mpc:
+
+ Updated library linkage and library paths.
+
+ * examples/handcrafted/BasicSP_EC/BMClosedED/BMClosedEDE.idl:
+ * examples/handcrafted/BasicSP_EC/BMClosedED/BMClosedED_svnt.h:
+ * examples/handcrafted/BasicSP_EC/BMClosedED/BMClosedED_svnt.cpp:
+ * examples/handcrafted/BasicSP_EC/BMDevice/BMDeviceE.idl:
+ * examples/handcrafted/BasicSP_EC/BMDevice/BMDevice_svnt.h:
+ * examples/handcrafted/BasicSP_EC/BMDevice/BMDevice_svnt.cpp:
+ * examples/handcrafted/BasicSP_EC/EC/ECE.idl:
+ * examples/handcrafted/BasicSP_EC/EC/EC_svnt.h:
+ * examples/handcrafted/BasicSP_EC/EC/EC_svnt.cpp:
+ * examples/handcrafted/BasicSP_EC/EC/EC_exec.h:
+ * examples/handcrafted/BasicSP_EC/EC/controller.cpp:
+ * examples/handcrafted/BasicSP_EC/EC/client.cpp:
+
+ Added new Cookie implementation.
+ Use new method _ciao_the_ORB () to get container's ORB reference in
+ subscribe () and unsubscribe () methods.
+
+Wed Aug 13 16:23:02 2003 George Edwards <g.edwards@vanderbilt.edu>
+
+ * examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService_exec.h:
+ * examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService_exec.cpp:
+
+ Fixed memory management and added comments.
+
+Wed Aug 13 13:25:14 2003 Diego Sevilla <dsevilla@ditec.um.es>
+
+ * CIDLC/cidlc.mpc: Reordered static library list to suit
+ dependencies.
+
+Wed Aug 13 12:20:12 2003 George Edwards <g.edwards@vanderbilt.edu>
+
+ * tools/XML_Helpers/Cascadable_DocHandler.cpp:
+
+ Added #include ace/Log_Msg.h to fix compilation error.
+
+Wed Aug 13 10:49:14 2003 George Edwards <g.edwards@vanderbilt.edu>
+
+ * ciao/Container_Base.h:
+ * ciao/Container_Base.cpp:
+ * ciao/Container_Base.inl:
+
+ Added _ciao_the_ORB () method to CIAO::Container to access the
+ container's underlying ORB.
+ Changed the_POA () method to _ciao_the_POA ().
+
+Wed Aug 13 10:42:12 2003 George Edwards <g.edwards@vanderbilt.edu>
+
+ * examples/handcrafted/BasicSP_EC/BMClosedED/BMClosedED_svnt.h:
+ * examples/handcrafted/BasicSP_EC/BMDevice/BMDevice_svnt.h:
+ * examples/handcrafted/BasicSP_EC/BMDisplay/BMDisplay_svnt.h:
+ * examples/handcrafted/BasicSP_EC/EC/EC_svnt.h:
+ * examples/handcrafted/BasicSP_EC2/BMClosedED/BMClosedED_svnt.h:
+ * examples/handcrafted/BasicSP_EC2/BMDevice/BMDevice_svnt.h:
+ * examples/handcrafted/BasicSP_EC2/BMDisplay/BMDisplay_svnt.h:
+ * examples/handcrafted/BasicSP_EC2/EC/EC_svnt.h:
+ * examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService_svnt.h:
+
+ Added /**/ to pre.h and post.h includes.
+
+Tue Aug 12 21:56:42 2003 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * tools/XML_Helper/Assembly_Spec.h:
+ Fixed compilation error from a missing
+ #include "ace/Null_Mutex.h".
+
+2003-08-12 Diego Sevilla <dsevilla@ditec.um.es>
+
+ * CIAO.mwc: Removed CCF MPC files as they still don't work the way
+ I expected it to.
+
+2003-08-11 Diego Sevilla <dsevilla@ditec.um.es>
+
+ * CIDLC/ServantGenerator.cpp: Removed commented code.
+
+2003-08-07 Diego Sevilla <dsevilla@ditec.um.es>
+
+ * CCF/Example/CodeGenerationKit/Indentation/IDL/IDL.mpc:
+ * CCF/Example/CodeGenerationKit/Indentation/Indentation.mwc:
+ * CCF/Example/CodeGenerationKit/CodeGenerationKit.mwc:
+ * CCF/Example/CIDL/LocalExecutorMapping/LocalExecutorMapping.mpc:
+ * CCF/Example/CIDL/CIDL.mwc:
+ * CCF/Example/Example.mwc:
+ * CCF/CCF/CompilerElements/CompilerElements.mpc:
+ * CCF/CCF/CodeGenerationKit/CodeGenerationKit.mpc:
+ * CCF/CCF/IDL3/IDL3.mpc:
+ * CCF/CCF/IDL2/IDL2.mpc:
+ * CCF/CCF/CIDL/CIDL.mpc:
+ * CCF/CCF/CCF.mwc:
+ * CCF/CCF.mwc:
+ CCF Makefiles to MPC.
+
+ * CIDLC/cidlc.mpc: Adapted to the new structure of the CIDL
+ compiler.
+
+ * CIDLC/README: Updated the information regarding the new
+ libraries and how to build the CIDL compiler now.
+
+ * CIDLC/parser_examples/*.*: Removed old parser examples code.
+
+Tue Aug 12 20:18:23 2003 George Edwards <g.edwards@vanderbilt.edu>
+
+ * examples/handcrafted/BasicSP_EC2/BMClosedED/BMClosedED.idl:
+ * examples/handcrafted/BasicSP_EC2/BMClosedED/BMClosedED_svnt.h:
+ * examples/handcrafted/BasicSP_EC2/BMClosedED/BMClosedED_svnt.cpp:
+ * examples/handcrafted/BasicSP_EC2/BMDevice/BMDevice.idl:
+ * examples/handcrafted/BasicSP_EC2/BMDevice/BMDevice_svnt.h:
+ * examples/handcrafted/BasicSP_EC2/BMDevice/BMDevice_svnt.cpp:
+ * examples/handcrafted/BasicSP_EC2/EC/EC.idl:
+ * examples/handcrafted/BasicSP_EC2/EC/EC_svnt.h:
+ * examples/handcrafted/BasicSP_EC2/EC/EC_svnt.cpp:
+ * examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService.idl:
+ * examples/handcrafted/BasicSP_EC2/RTEventService/RTEventServiceEI.idl:
+ * examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService_exec.cpp:
+ * examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService_exec.h:
+ * examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService_svnt.cpp:
+ * examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService_svnt.h:
+ * examples/handcrafted/BasicSP_EC2/BasicSP.idl:
+
+ Updated handcrafted event channel example; components now provide and use the
+ RtecEventChannelAdmin::EventChannel interface.
+
+2003-08-11 Arvind S. Krishna <arvindk@equus.dre.vanderbilt.edu>
+
+ * performance-tests/Benchmark/RoundTrip/client.cpp:
+ * performance-tests/Benchmark/RoundTrip/svc.conf:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip.mpc:
+ * performance-tests/Benchmark/RoundTrip/run_test.pl:
+ The client was not using the proper svc conf file to run in
+ "single-threaded" mode. Added proper svc.conf file and support
+ code in the client. The .mpc file was modified to add client's
+ dependency with TAO_Strategies library.
+
+Thu Aug 07 16:46:42 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * examples/OEP/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc:
+ Changed to use base project qt-min_moc as we don't need to use
+ ACE_QtReactor.
+
+Wed Aug 06 17:00:05 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * docs/XML/ciao_rt_cad_ext.dtd: Added DTD for RT extension to cad
+ file.
+
+2003-08-06 Arvind S. Krishna <arvindk@equus.dre.vanderbilt.edu>
+
+ * performance-tests/Benchmark/RoundTrip/RoundTrip_exec.cpp:
+ * performance-tests/Benchmark/RoundTrip/run_test.pl:
+ Fixed problems relating to parsing arguments when the number of
+ iterations is specified from the command line.
+
+Tue Aug 05 17:25:45 2003 George Edwards <g.edwards@vanderbilt.edu>
+
+ * examples/handcrafted/BasicSP_EC2/BMClosedED/BMClosedED.mpc:
+ * examples/handcrafted/BasicSP_EC2/BMDevice/BMDevice.mpc:
+ * examples/handcrafted/BasicSP_EC2/EC/EC.mpc:
+ * examples/handcrafted/BasicSP_EC2/BMDisplay/BMDisplay.mpc:
+ * examples/handcrafted/BasicSP_EC2/RTEventService/RTEventService.mpc:
+ * examples/handcrafted/BasicSP_EC2/BasicSP.mpc:
+
+ Added library include paths and additional library to MPC
+ files.
+
+ Removed file:
+ * examples/handcrafted/BasicSP_EC2/EC/config:
+
+ Removed unnecessary file.
+
+ * examples/handcrafted/BasicSP_EC2/EC/controller.cpp:
+ * examples/handcrafted/BasicSP_EC2/EC/client.cpp:
+
+ Included ace/Streams.h.
+
+Tue Aug 05 13:23:12 2003 George Edwards <g.edwards@vanderbilt.edu>
+
+ Added files:
+ * examples/handcrafted/BasicSP_EC2/*.*:
+ * examples/handcrafted/BasicSP_EC2/BMClosedED/*.*:
+ * examples/handcrafted/BasicSP_EC2/BMDevice/*.*:
+ * examples/handcrafted/BasicSP_EC2/EC/*.*:
+ * examples/handcrafted/BasicSP_EC2/descriptors/*.*:
+ * examples/handcrafted/BasicSP_EC2/BMDisplay/*.*:
+ * examples/handcrafted/BasicSP_EC2/RTEventService/*.*:
+
+ Added new event channel example. The event service is
+ integrated as a separate component.
+
+2003-08-04 Arvind S. Krishna <arvindk@equus.dre.vanderbilt.edu>
+
+ * performance-tests/Benchmark/RountTripClient/run_test.pl:
+ * performance-tests/Benchmark/RountTripClient/RoundTripClient_exec.cpp:
+ * performance-tests/Benchmark/RountTrip/RoundTrip_exec.cpp:
+ Fixed errors in the perl file for running the example. Corrected
+ the way in which throughput is measured within the client
+ component. Also added code to enable tests to be run in the
+ super user mode.
+
+2003-08-04 Diego Sevilla <dsevilla@ditec.um.es>
+
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec.cpp:
+ * performance-tests/Benchmark/RoundTripClient/client.cpp:
+ * performance-tests/Benchmark/RoundTripClient/run_test.pl:
+ * performance-tests/Benchmark/descriptors/RoundTripClient.cad:
+ * performance-tests/Benchmark/descriptors/RoundTripClient.csd:
+ * performance-tests/Benchmark/descriptors/RoundTripClient.ssd:
+ Made the test to run. Fixed some problems with UUID. Made the
+ client to correctly expect a component instance instead of a
+ home.
+
+Mon Jul 7 23:35:14 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * tools/RTComponentServer/ComponentServer_Task.inl:
+ * tools/Simple_Component_Server/Simple_Component_Server.cpp: Fixed
+ compilation errors/warnings on Linux.
+
+Fri Aug 01 23:34:38 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * tools/Simple_Component_Server/sample_client.cpp:
+ * tools/Assembly_Deployer/Assembly_Deployer.cpp: Fixed compilation
+ errors. We need to include "ace/streams.h" explicitly if we
+ want to use iostream stuff.
+
+2003-08-01 Diego Sevilla <dsevilla@ditec.um.es>
+
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec.cpp:
+ Small bug fix.
+
+ * performance-tests/Benchmark/Benchmark.idl: Added missing
+ Controller interface.
+
+2003-07-31 Diego Sevilla <dsevilla@ditec.um.es>
+
+ * performance-tests/Benchmark/Benchmark.idl:
+ * performance-tests/Benchmark/Benchmark.mpc:
+ * performance-tests/Benchmark/BenchmarkE.idl:
+ * performance-tests/Benchmark/Benchmark_stub_export.h:
+ * performance-tests/Benchmark/Benchmark_svnt_export.h:
+ * performance-tests/Benchmark/NOTE.txt:
+ * performance-tests/Benchmark/README:
+ * performance-tests/Benchmark/RoundTrip/README:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip.cidl:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip.idl:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip.mpc:
+ * performance-tests/Benchmark/RoundTrip/RoundTripEI.idl:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip_exec.cpp:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip_exec.h:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip_exec_export.h:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip_stub_export.h:
+ * performance-tests/Benchmark/RoundTrip/RoundTrip_svnt_export.h:
+ * performance-tests/Benchmark/RoundTrip/client.cpp:
+ * performance-tests/Benchmark/RoundTrip/run_test.pl:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient.cidl:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient.idl:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient.mpc:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClientEI.idl:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec.cpp:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec.h:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec_export.h:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient_stub_export.h:
+ * performance-tests/Benchmark/RoundTripClient/RoundTripClient_svnt_export.h:
+ * performance-tests/Benchmark/RoundTripClient/client.cpp:
+ * performance-tests/Benchmark/RoundTripClient/run_test.pl:
+ * performance-tests/Benchmark/descriptors/Benchmark.cad:
+ * performance-tests/Benchmark/descriptors/CIAO_Installation_Data.ini:
+ * performance-tests/Benchmark/descriptors/RoundTrip.csd:
+ * performance-tests/Benchmark/descriptors/RoundTrip.ssd:
+ * performance-tests/Benchmark/descriptors/RoundTripClient.cad:
+ * performance-tests/Benchmark/descriptors/RoundTripClient.csd:
+ * performance-tests/Benchmark/descriptors/RoundTripClient.ssd:
+ * performance-tests/Benchmark/descriptors/test.dat:
+ Added files for the performance tests Arvind and I are
+ developing.
+
+ * CIDLC/ServantHeaderGenerator.cpp: Removed usage of Traversal
+ namespace to avoid name clashing.
+
+ * CIDLC/ExecutorMappingGenerator.cpp:
+ * CCF/Example/CIDL/LocalExecutorMapping/ExecutorMappingGenerator.cpp:
+ Generate SessionContext by now instead of CCMContext for local
+ interfaces.
+
+Thu Jul 31 16:50:29 2003 George Edwards <g.edwards@vanderbilt.edu>
+
+ * examples/handcrafted/BasicSP_EC/EC/EC_svnt.h:
+ * examples/handcrafted/BasicSP_EC/EC/EC_svnt.cpp:
+ * examples/handcrafted/BasicSP_EC/BMDevice/BMDevice_svnt.h:
+ * examples/handcrafted/BasicSP_EC/BMDevice/BMDevice_svnt.cpp:
+ * examples/handcrafted/BasicSP_EC/BMClosedED/BMClosedED_svnt.h:
+ * examples/handcrafted/BasicSP_EC/BMClosedED/BMClosedED_svnt.cpp:
+
+ Made modifications requested. Added @@ Bala comments to
+ indicate changes.
+
+2003-07-31 Diego Sevilla <dsevilla@ditec.um.es>
+
+ * examples/OEP/BasicSP/EC/EC_exec.{cpp,h}: Changed the exception
+ specification for the new_EC method (explicit home operations
+ don't throw CCMException.)
+
+ * examples/OEP/Display/RateGen/RateGen_exec.{cpp,h}: Ditto.
+
+ * CIDLC/*: Adapted the CIDL compiler to work with the new CCF
+ library. Basically the same code is generated with small bugs
+ fixed.
+
+Wed Jul 30 07:26:29 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * examples/handcrafted/BasicSP_EC/EC/EC_svnt.h:
+ * examples/handcrafted/BasicSP_EC/EC/EC_svnt.cpp: Added @@ George
+ comments for George. This is a code review. Same comments apply
+ to other components.
+
+Tue Jul 29 15:36:20 2003 Boris Kolpackov <boris@dre.vanderbilt.edu>
+
+ * CCF/*.*: Replaced old version with a new one.
+
+Thu Jul 24 16:22:27 2003 George Edwards <g.edwards@vanderbilt.edu>
+
+ Added new files:
+ * examples/handcrafted/BasicSP_EC/*.*:
+ * examples/handcrafted/BasicSP_EC/BMClosedED/*.*:
+ * examples/handcrafted/BasicSP_EC/BMDevice/*.*:
+ * examples/handcrafted/BasicSP_EC/BMDisplay/*.*:
+ * examples/handcrafted/BasicSP_EC/descriptors/*.*:
+ * examples/handcrafted/BasicSP_EC/EC/*.*:
+
+ Modified BasicSP example to use TAO's RT event channel for
+ event propagation. This involved modifications to each
+ component's servant header and source files, which are normally
+ generated by the CIDL compiler.
+
+Sun Jul 13 20:14:42 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * README: Updated information on MPC tools. ACE/TAO are in
+ transition to use MPC based solution exclusively (like what CIAO
+ is doing already.) There are currently some mismatch between
+ MPC genearted Makefile/project files and the stock ones. Be
+ caution.
+
+ Once we switch to all MPC based approach, this will no longer be
+ a problem.
+
+Wed Jul 09 21:06:12 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * tools/ServerActivator/ServerActivator.cpp: Fixed compilation due
+ to earlier change in the signature of ServerActivator_Impl::init
+ method.
+
+Tue Jul 08 10:52:56 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * tools/Daemon/CIAO_Daemon.cpp:
+ * tools/Daemon/README: Reverted the previous documentation change,
+ instead, register the daemon interface as "CIAODaemon" in the
+ internal IOR table. This provides a more consistent naming
+ scheme throughout. Thanks to Roland Schimmack <SC@ProCom.de>
+ for motivating this change.
+
+Tue Jul 08 07:11:23 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * tools/Daemon/README: Fixed discrepancy in document. The
+ IOR-Table entry for daemon interface should be "CIAO-Daemon"
+ instead of "CIAODaemon". Thanks to Roland Schimmack
+ <SC@ProCom.de> for reporting this.
+
+Sun Jul 06 21:40:39 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ There are two major changes in this entry.
+
+ 1. A scheme for associating component server with a logical
+ configuration and to map the logical name to a real svc.conf
+ file. Each local CIAO_Daemon can determine what default
+ svc.conf file to use, if none specified, and how logical
+ names map to actual svc.conf files.
+
+ 2. Added mechanism to pass the ConfigValues from
+ Components::Deployment::ServerActivator::create_component_server
+ to a Components::Deployment::ComponentServer instance which it
+ can later use for futher configure the ComponentServer.
+
+ * ciao/Server_init.cpp:
+ * ciao/Server_init.h: Added a new Utility namespace for commonly
+ used server side functions. Currently only a write_IOR
+ method is available.
+
+ * ciao/CIAO_Servers.idl: Updated
+ CIAO::Activator_Callback::register_component_server method to
+ pass back ComponentServer's ConfigValues.
+
+ * docs/ConfigValues.html: Docuement the new ConfigValue name
+ ("CIAO-svcconf-id") that CIAO recognize.
+
+ * ciao/ServerActivator_Impl.cpp:
+ * ciao/ServerActivator_Impl.h:
+ * ciao/ServerActivator_Impl.inl: Changed to support:
+
+ Activator_Callback change.
+
+ Mechanisms to maintain an (id, svc.conf) mapping, and keeping a
+ default svc.conf file.
+
+ * ciao/ComponentServer_Impl.h:
+ * ciao/ComponentServer_Impl.inl: Changed to update the
+ ConfigValues when calling back to the ServerActivator.
+
+ * examples/OEP/Display/descriptors/svcmap.dat: Added an example
+ svcconf-id to svc.conf filename mapping file.
+
+ * tools/Assembly_Deployer/Assembly_Visitors.cpp: Extend the the
+ syntax of <destination> tag. It can now contain an optional '|'
+ delimited svc.conf id to provide the CIAO Daemon the logical
+ svc.conf file should use.
+
+ * tools/Assembly_Deployer/Deployment_Configuration.cpp: Enhanced
+ to provide a more comprehensive error message.
+
+ * tools/Daemon/CIAO_Daemon.cpp:
+ * tools/Daemon/README: Extended CIAODaemon's command line options
+ to pass in the default svc.conf filename and the (id, svc.conf)
+ mapping data file.
+
+ * tools/ComponentServer/ComponentServer.cpp: Changed to update
+ this component server's ConfigValues after calling back to the
+ ServerActivator. Removed the old write_IOR function and changed
+ to use the global function in CIAO::Utility namespace.
+
+ * tools/Simple_Component_Server/Simple_Component_Server.cpp: Some
+ minor memory leaks were identified in this file, but I didn't
+ have time to fix them yet. So added comments to identify them.
+
+Sun Jul 06 19:41:06 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * examples/OEP/Display/NavDisplayGUI_exec/README: Documented how
+ one can generate a project that work for this component.
+
+Thu Jul 03 16:04:35 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * ciao/CCM_Core.mpc: Fixed compilation errors by
+
+ . Including $(TAO_ROOT)/orbsvcs/orbsvcs to IDL and C++ include
+ paths. It's necessary to do this because security idl files
+ includes other stuff in that subdir.
+
+ . Adding dependency to ifr_client to CIAO_Container library.
+
+Wed Jul 02 14:57:00 2003 Justin Michel <michel_j@ociweb.com>
+
+ * CIAO.mwc
+ * CIDLC/cidlc.mpc
+ * CIDLC/parser_examples/examples.mwc
+ * examples/OEP/examples.mwc
+ * examples/handcrafted/examples.mwc
+ * examples/handcrafted/BasicSP/EC/EC.mpc
+ * examples/handcrafted/Hello/hello.mpc
+ * tests/tests.mwc
+ * tools/tools.mwc
+
+ Added workspaces and updated projects files to use
+ the latest MPC features.
+
+Wed Jun 25 11:00:00 2003 Justin Michel <michel_j@ociweb.com>
+
+ * ciao/CCM_Core.mpc:
+ * examples/OEP/BasicSP/BasicSP.mpc:
+ * examples/OEP/BasicSP/BMClosedED/BMClosedED.mpc:
+ * examples/OEP/BasicSP/BMDevice/BMDevice.mpc:
+ * examples/OEP/BasicSP/BMDisplay/BMDisplay.mpc:
+ * examples/OEP/BasicSP/EC/EC.mpc:
+ * examples/OEP/Display/HUDisplay.mpc:
+ * examples/OEP/Display/GPS/GPS.mpc:
+ * examples/OEP/Display/NavDisplay/NavDisplay.mpc:
+ * examples/OEP/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc:
+ * examples/OEP/Display/RateGen/RateGen.mpc:
+ * examples/handcrafted/BasicSP/BasicSP.mpc:
+ * examples/handcrafted/BasicSP/BMClosedED/BMClosedED.mpc:
+ * examples/handcrafted/BasicSP/BMDevice/BMDevice.mpc:
+ * examples/handcrafted/BasicSP/BMDisplay/BMDisplay.mpc:
+ * examples/handcrafted/BasicSP/EC/EC.mpc:
+ * examples/handcrafted/Display/HUDisplay.mpc:
+ * examples/handcrafted/Display/GPS/GPS.mpc:
+ * examples/handcrafted/Display/NavDisplay/NavDisplay.mpc:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc:
+ * examples/handcrafted/Display/RateGen/RateGen.mpc:
+ * examples/handcrafted/Hello/hello.mpc:
+ * tools/Assembly_Deployer/Assembly_Deployer.mpc:
+ * tools/ComponentServer/ComponentServer.mpc:
+ * tools/Daemon/Daemon.mpc:
+ * tools/ServerActivator/ServerActivator.mpc:
+ * tools/Simple_Component_Server/Simple_Component_Server.mpc:
+ * tools/XML_Helpers/XMLHelpers.mpc:
+
+ Added and updated mpc files to use the latest
+ features and make use of base projects.
+
+
+Tue Jun 24 15:42:46 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * bin/generate_component_mpc.pl: Updated mpc file generator to
+ take advantage of the new CIDL rules.
+
+ * examples/OEP/BasicSP/BMClosedED/BMClosedED.mpc:
+ * examples/OEP/BasicSP/BMDevice/BMDevice.mpc:
+ * examples/OEP/BasicSP/BMDisplay/BMDisplay.mpc:
+ * examples/OEP/BasicSP/EC/EC.mpc:
+ * examples/OEP/Display/GPS/GPS.mpc:
+ * examples/OEP/Display/NavDisplay/NavDisplay.mpc:
+ * examples/OEP/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc:
+ * examples/OEP/Display/RateGen/RateGen.mpc:
+ * examples/handcrafted/BasicSP/BasicSP.mpc:
+ * examples/handcrafted/BasicSP/BMClosedED/BMClosedED.mpc:
+ * examples/handcrafted/BasicSP/BMDevice/BMDevice.mpc:
+ * examples/handcrafted/BasicSP/BMDisplay/BMDisplay.mpc:
+ * examples/handcrafted/Display/HUDisplay.mpc:
+ * examples/handcrafted/Display/GPS/GPS.mpc:
+ * examples/handcrafted/Display/NavDisplay/NavDisplay.mpc:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc:
+ * examples/handcrafted/Display/RateGen/RateGen.mpc:
+ * examples/handcrafted/Hello/hello.mpc: Updated mpc files to take
+ advantage of the new CIDL build rules, and to use the new
+ ciao_servant mpc template for building servant DLLs and
+ ciao_component mpc template for building component executor
+ DLLs..
+
+Sun Jun 22 15:23:00 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * examples/OEP/BasicSP/EC/EC.mpc:
+ * examples/OEP/Display/RateGen/RateGen.mpc: Renamed projects named
+ "controller" to resolve project name conflicts.
+
+Sun Jun 22 09:03:57 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * ciao/diffs/*: Removed obsolete diff files.
+
+Sat Jun 21 10:30:24 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * examples/OEP/BasicSP/BasicSP.mpc:
+ * examples/OEP/BasicSP/BMClosedED/BMClosedED.mpc:
+ * examples/OEP/BasicSP/BMDevice/BMDevice.mpc:
+ * examples/OEP/BasicSP/BMDisplay/BMDisplay.mpc:
+ * examples/OEP/BasicSP/EC/EC.mpc: Added new MPC files.
+
+ * examples/OEP/BasicSP/BasicSP.dsw:
+ * examples/OEP/BasicSP/BasicSP_stub.dsp:
+ * examples/OEP/BasicSP/BasicSP_svnt.dsp:
+ * examples/OEP/BasicSP/BMClosedED/BMClosedED_exec.dsp:
+ * examples/OEP/BasicSP/BMClosedED/BMClosedED_stub.dsp:
+ * examples/OEP/BasicSP/BMClosedED/BMClosedED_svnt.dsp:
+ * examples/OEP/BasicSP/BMDevice/BMDevice_exec.dsp:
+ * examples/OEP/BasicSP/BMDevice/BMDevice_stub.dsp:
+ * examples/OEP/BasicSP/BMDevice/BMDevice_svnt.dsp:
+ * examples/OEP/BasicSP/BMDisplay/BMDisplay_exec.dsp:
+ * examples/OEP/BasicSP/BMDisplay/BMDisplay_stub.dsp:
+ * examples/OEP/BasicSP/BMDisplay/BMDisplay_svnt.dsp:
+ * examples/OEP/BasicSP/EC/EC_client.dsp:
+ * examples/OEP/BasicSP/EC/EC_exec.dsp:
+ * examples/OEP/BasicSP/EC/EC_stub.dsp:
+ * examples/OEP/BasicSP/EC/EC_svnt.dsp:
+ * examples/OEP/BasicSP/EC/controller.dsp: Removed these
+ handcrafted projects/workspaces now that we genertae them via MPC.
+
+Sat Jun 21 09:50:37 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * examples/OEP/Display/HUDisplay.mpc:
+ * examples/OEP/Display/GPS/GPS.mpc:
+ * examples/OEP/Display/NavDisplay/NavDisplay.mpc:
+ * examples/OEP/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc:
+ * examples/OEP/Display/RateGen/RateGen.mpc: Added new MPC files
+ that can handle CIDL and Qt files.
+
+ * examples/OEP/Display/Display.dsw:
+ * examples/OEP/Display/HUDisplay_stub.dsp:
+ * examples/OEP/Display/HUDisplay_svnt.dsp:
+ * examples/OEP/Display/GPS/GPS_exec.dsp:
+ * examples/OEP/Display/GPS/GPS_stub.dsp:
+ * examples/OEP/Display/GPS/GPS_svnt.dsp:
+ * examples/OEP/Display/GPS/GPS_tracing_exec.dsp:
+ * examples/OEP/Display/NavDisplay/NavDisplay_exec.dsp:
+ * examples/OEP/Display/NavDisplay/NavDisplay_stub.dsp:
+ * examples/OEP/Display/NavDisplay/NavDisplay_svnt.dsp:
+ * examples/OEP/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.dsp:
+ * examples/OEP/Display/RateGen/RateGen_client.dsp:
+ * examples/OEP/Display/RateGen/RateGen_exec.dsp:
+ * examples/OEP/Display/RateGen/RateGen_stub.dsp:
+ * examples/OEP/Display/RateGen/RateGen_svnt.dsp:
+ * examples/OEP/Display/RateGen/controller.dsp: Removed handcrafted
+ projects/workspaces now that we can generate them with MPC
+ files.
+
+Fri Jun 20 21:06:23 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * examples/OEP/Display/HUDisplay_stub.dsp:
+ * examples/OEP/Display/HUDisplay_svnt.dsp: Fixed incorrect usages
+ of environment variables in project files.
+
+Fri Jun 20 11:41:50 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * ciao/ServerActivator_Impl.cpp (create_component_server):
+ Added more code to generate debug info when things go wrong.
+ Thanks to Emre Turkay <emre.turkay@vanderbilt.edu> for
+ motivating this.
+
+Fri Jun 20 10:21:10 2003 Chad Elliott <elliott_c@ociweb.com>
+
+ * examples/handcrafted/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc:
+
+ Added inheritance from qt_moc and removed the custom definition
+ for MOC_Files.
+
+Thu Jun 19 07:54:42 2003 Chad Elliott <elliott_c@ociweb.com>
+
+ * examples/handcrafted/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc:
+
+ Added 'specific' scopes to take into account the different qt
+ library names on different platforms.
+
+Tue Jun 17 11:02:19 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * examples/handcrafted/Hello/README: Updated the obsolete
+ instructions to test run this component. Thanks to Jesse
+ Greenwald <jesse@cis.ksu.edu> for reporting this.
+
+Mon Jun 16 11:16:52 2003 Chris Cleeland <cleeland@ociweb.com>
+
+ * CIAO version 0.3.3 released.
+
+Sun Jun 08 10:42:15 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * examples/OEP/BasicSP/BMDevice/BMDevice_exec.cpp:
+ * examples/OEP/BasicSP/BMClosedED/BMClosedED_exec.cpp: Added code
+ to registered the ValueFactory with the ORB so we can deploy
+ this component independent of others in this example. Enhanced
+ the debug output a bit.
+
+ * docs/releasenote.html: Added info on CIDL compiler.
+
+ * exampels/OEP/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.dsp:
+ Really checked in the following change.
+
+ Mon Jun 02 23:36:29 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+Tue Jun 03 07:55:01 2003 Simon McQueen <sm@prismtechnologies.com>
+
+ * CIAO version 0.3.2 released.
+
+Tue Jun 3 01:26:04 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/OEP/BasicSP/BasicSP.dsw:
+ * examples/OEP/BasicSP/BasicSP_stub.dsp:
+ * examples/OEP/BasicSP/BasicSP_svnt.dsp:
+ * examples/OEP/BasicSP/BMClosedED/BMClosedED_stub.dsp:
+ * examples/OEP/BasicSP/BMDisplay/BMDisplay_stub.dsp:
+ * examples/OEP/BasicSP/EC/EC_stub.dsp:
+ * examples/OEP/Display/HUDisplay_stub.dsp:
+ * examples/OEP/Display/HUDisplay_svnt.dsp:
+
+ Updated settings in these files.
+
+ * examples/OEP/BasicSP/NOTE.txt:
+
+ Fixed typos.
+
+ * examples/OEP/BasicSP/descriptors/daemon.ior:
+
+ Removed this file from the repository - it's just a temporary.
+
+Mon Jun 02 23:36:29 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * exampels/OEP/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.dsp:
+ Regenerated and hand modified the project file.
+
+Mon Jun 2 22:45:05 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * ciao/ComponentsC.h:
+ * ciao/ComponentsS.h:
+
+ Contains the *C.h and *S.h corresponding to the include in Components.idl.
+
+Mon Jun 02 12:47:50 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * README: Revised the root readme file.
+
+Mon Jun 2 12:42:10 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CCF/External/Utility/Documentation/Build.html:
+
+ New file containing build information for the CIDL compiler.
+
+ * CIDLC/README:
+
+ Updated file to point to the new file above and other
+ documentation files in that same directory.
+
+Mon Jun 2 02:00:04 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/OEP/BasicSP/BasicSP.dsw:
+ * examples/OEP/BasicSP/BasicSP_stub.dsp:
+ * examples/OEP/BasicSP/BasicSP_svnt.dsp:
+ * examples/OEP/BasicSP/BMClosedED/BMClosedED_exec.dsp:
+ * examples/OEP/BasicSP/BMClosedED/BMClosedED_stub.dsp:
+ * examples/OEP/BasicSP/BMClosedED/BMClosedED_svnt.dsp:
+ * examples/OEP/BasicSP/BMDevice/BMDevice_exec.dsp:
+ * examples/OEP/BasicSP/BMDevice/BMDevice_stub.dsp:
+ * examples/OEP/BasicSP/BMDevice/BMDevice_svnt.dsp:
+ * examples/OEP/BasicSP/BMDisplay/BMDisplay_exec.dsp:
+ * examples/OEP/BasicSP/BMDisplay/BMDisplay_stub.dsp:
+ * examples/OEP/BasicSP/BMDisplay/BMDisplay_svnt.dsp:
+ * examples/OEP/BasicSP/EC/EC_client.dsp:
+ * examples/OEP/BasicSP/EC/EC_exec.dsp:
+ * examples/OEP/BasicSP/EC/EC_stub.dsp:
+ * examples/OEP/BasicSP/EC/EC_svnt.dsp:
+ * examples/OEP/BasicSP/EC/controller.dsp:
+ * examples/OEP/Display/Display.dsw:
+ * examples/OEP/Display/HUDisplay_stub.dsp:
+ * examples/OEP/Display/HUDisplay_svnt.dsp:
+ * examples/OEP/Display/GPS/GPS_exec.dsp:
+ * examples/OEP/Display/GPS/GPS_stub.dsp:
+ * examples/OEP/Display/GPS/GPS_svnt.dsp:
+ * examples/OEP/Display/GPS/GPS_tracing_exec.dsp:
+ * examples/OEP/Display/NavDisplay/NavDisplay_exec.dsp:
+ * examples/OEP/Display/NavDisplay/NavDisplay_stub.dsp:
+ * examples/OEP/Display/NavDisplay/NavDisplay_svnt.dsp:
+ * examples/OEP/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.dsp:
+ * examples/OEP/Display/NavDisplayGUI_exec/README
+ * examples/OEP/Display/RateGen/RateGen_client.dsp:
+ * examples/OEP/Display/RateGen/RateGen_exec.dsp:
+ * examples/OEP/Display/RateGen/RateGen_stub.dsp:
+ * examples/OEP/Display/RateGen/RateGen_svnt.dsp:
+ * examples/OEP/Display/RateGen/controller.dsp:
+
+ Fixed project and workspace settings for the generated
+ version of the HUDisplay and BasicSP examples.
+
+Sun Jun 1 23:00:53 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * Makefile: Added the path to the RELEASE_FILES
+
+Sun Jun 1 19:07:49 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/README:
+ * examples/OEP?BasicSP/README:
+ * examples/OEP/Display/README:
+
+ Updated these files with info about the URL for downloading
+ CIDL compiler binaries.
+
+Sun Jun 1 14:30:53 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * docs/releasenotes.html:
+ * docs/todo.html:
+
+ Added items related to the CIDL compiler.
+
+Sat May 31 10:54:11 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * Makefile: We dont have any special files like INSTALL that needs
+ specila attention during the release.
+
+Fri May 30 19:33:36 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CCF/DesignNotes:
+ * CCF/Makefile:
+ * CCF/Version:
+ * CCF/CCF/CCF.sln:
+ * CCF/CCF/Makefile:
+ * CCF/CCF/CIDL/CIDL.cpp:
+ * CCF/CCF/CIDL/CIDL.vcproj:
+ * CCF/CCF/CIDL/CIDL_LexicalAnalyzer.hpp:
+ * CCF/CCF/CIDL/CIDL_Parser.hpp:
+ * CCF/CCF/CIDL/CIDL_SemanticAction.hpp:
+ * CCF/CCF/CIDL/CIDL_SemanticActionImpl.hpp:
+ * CCF/CCF/CIDL/CIDL_SyntaxTree.cpp:
+ * CCF/CCF/CIDL/CIDL_SyntaxTree.hpp:
+ * CCF/CCF/CIDL/CIDL_SyntaxTreeFwd.hpp:
+ * CCF/CCF/CIDL/CIDL_Traversal.cpp:
+ * CCF/CCF/CIDL/CIDL_Traversal.hpp:
+ * CCF/CCF/CIDL/MSVC_Pragmas.hpp:
+ * CCF/CCF/CIDL/Makefile:
+ * CCF/CCF/CodeGenerationKit/CodeGenerationKit.cpp:
+ * CCF/CCF/CodeGenerationKit/CodeGenerationKit.vcproj:
+ * CCF/CCF/CodeGenerationKit/CommandLine.cpp:
+ * CCF/CCF/CodeGenerationKit/CommandLine.hpp:
+ * CCF/CCF/CodeGenerationKit/CommandLineDescriptor.hpp:
+ * CCF/CCF/CodeGenerationKit/CommandLineGrammar.cpp:
+ * CCF/CCF/CodeGenerationKit/CommandLineGrammar.hpp:
+ * CCF/CCF/CodeGenerationKit/CommandLineParser.cpp:
+ * CCF/CCF/CodeGenerationKit/CommandLineParser.hpp:
+ * CCF/CCF/CodeGenerationKit/IDLStream.hpp:
+ * CCF/CCF/CodeGenerationKit/MSVC_Pragmas.hpp:
+ * CCF/CCF/CodeGenerationKit/Makefile:
+ * CCF/CCF/CodeGenerationKit/Regex.hpp:
+ * CCF/CCF/CompilerElements/DiagnosticStream.cpp:
+ * CCF/CCF/CompilerElements/DiagnosticStream.hpp:
+ * CCF/CCF/CompilerElements/ExH.hpp:
+ * CCF/CCF/CompilerElements/FileSystem.hpp:
+ * CCF/CCF/CompilerElements/MSVC_Pragmas.hpp:
+ * CCF/CCF/CompilerElements/Parser.hpp:
+ * CCF/CCF/CompilerElements/Preprocessor.hpp:
+ * CCF/CCF/CompilerElements/ReferenceCounting.hpp:
+ * CCF/CCF/CompilerElements/SemanticAction.hpp:
+ * CCF/CCF/CompilerElements/Token.hpp:
+ * CCF/CCF/CompilerElements/TokenStream.hpp:
+ * CCF/CCF/CompilerElements/Traversal.hpp:
+ * CCF/CCF/IDL2/IDL2.cpp:
+ * CCF/CCF/IDL2/IDL2.vcproj:
+ * CCF/CCF/IDL2/IDL2_LexicalAnalyzer.cpp:
+ * CCF/CCF/IDL2/IDL2_LexicalAnalyzer.hpp:
+ * CCF/CCF/IDL2/IDL2_Parser.hpp:
+ * CCF/CCF/IDL2/IDL2_SemanticAction.hpp:
+ * CCF/CCF/IDL2/IDL2_SemanticActionImpl.hpp:
+ * CCF/CCF/IDL2/IDL2_SyntaxTree.cpp:
+ * CCF/CCF/IDL2/IDL2_SyntaxTree.hpp:
+ * CCF/CCF/IDL2/IDL2_SyntaxTree.tpp:
+ * CCF/CCF/IDL2/IDL2_SyntaxTreeFwd.hpp:
+ * CCF/CCF/IDL2/IDL2_SyntaxTree_BuiltIn.cpp:
+ * CCF/CCF/IDL2/IDL2_SyntaxTree_BuiltIn.hpp:
+ * CCF/CCF/IDL2/IDL2_SyntaxTree_Value.hpp:
+ * CCF/CCF/IDL2/IDL2_Traversal.cpp:
+ * CCF/CCF/IDL2/IDL2_Traversal.hpp:
+ * CCF/CCF/IDL2/MSVC_Pragmas.hpp:
+ * CCF/CCF/IDL2/Makefile:
+ * CCF/CCF/IDL3/IDL3.cpp:
+ * CCF/CCF/IDL3/IDL3.vcproj:
+ * CCF/CCF/IDL3/IDL3_LexicalAnalyzer.hpp:
+ * CCF/CCF/IDL3/IDL3_Parser.hpp:
+ * CCF/CCF/IDL3/IDL3_SemanticAction.hpp:
+ * CCF/CCF/IDL3/IDL3_SemanticActionImpl.hpp:
+ * CCF/CCF/IDL3/IDL3_SyntaxTree.cpp:
+ * CCF/CCF/IDL3/IDL3_SyntaxTree.hpp:
+ * CCF/CCF/IDL3/IDL3_SyntaxTreeFwd.hpp:
+ * CCF/CCF/IDL3/IDL3_SyntaxTree_EventType.cpp:
+ * CCF/CCF/IDL3/IDL3_SyntaxTree_EventType.hpp:
+ * CCF/CCF/IDL3/IDL3_Traversal.cpp:
+ * CCF/CCF/IDL3/IDL3_Traversal.hpp:
+ * CCF/CCF/IDL3/MSVC_Pragmas.hpp:
+ * CCF/CCF/IDL3/Makefile:
+ * CCF/External/Utility/Makefile:
+ * CCF/External/Utility/Version:
+ * CCF/External/Utility/Config/Archive.gcc.post.rules:
+ * CCF/External/Utility/Config/Archive.gcc.pre.rules:
+ * CCF/External/Utility/Config/Archive.post.rules:
+ * CCF/External/Utility/Config/Archive.pre.rules:
+ * CCF/External/Utility/Config/Documentation.post.rules:
+ * CCF/External/Utility/Config/Documentation.pre.rules:
+ * CCF/External/Utility/Config/Executable.gcc.post.rules:
+ * CCF/External/Utility/Config/Executable.gcc.pre.rules:
+ * CCF/External/Utility/Config/Executable.generic.post.rules:
+ * CCF/External/Utility/Config/Executable.generic.pre.rules:
+ * CCF/External/Utility/Config/Executable.post.rules:
+ * CCF/External/Utility/Config/Executable.pre.rules:
+ * CCF/External/Utility/Config/Recursion.post.rules:
+ * CCF/External/Utility/Config/Recursion.pre.rules:
+ * CCF/External/Utility/Config/Shared.gcc.post.rules:
+ * CCF/External/Utility/Config/Shared.gcc.pre.rules:
+ * CCF/External/Utility/Config/Shared.generic.post.rules:
+ * CCF/External/Utility/Config/Shared.generic.pre.rules:
+ * CCF/External/Utility/Config/Shared.post.rules:
+ * CCF/External/Utility/Config/Shared.pre.rules:
+ * CCF/External/Utility/Config/Thoughts:
+ * CCF/External/Utility/Documentation/Makefile:
+ * CCF/External/Utility/Documentation/News.html:
+ * CCF/External/Utility/Documentation/index.html:
+ * CCF/External/Utility/Documentation/ExH/Makefile:
+ * CCF/External/Utility/Documentation/ExH/Makefile.documentation:
+ * CCF/External/Utility/Documentation/ExH/News.html:
+ * CCF/External/Utility/Documentation/ExH/index.html:
+ * CCF/External/Utility/Documentation/ExH/Example/Makefile:
+ * CCF/External/Utility/Documentation/ExH/Logic/Makefile:
+ * CCF/External/Utility/Documentation/ExH/System/Makefile:
+ * CCF/External/Utility/Documentation/ReferenceCounting/Makefile:
+ * CCF/External/Utility/Documentation/ReferenceCounting/News.html:
+ * CCF/External/Utility/Documentation/ReferenceCounting/index.html:
+ * CCF/External/Utility/Documentation/Style/CXX.css:
+ * CCF/External/Utility/Documentation/Style/CXX_Blue.css:
+ * CCF/External/Utility/Documentation/Synch/Makefile:
+ * CCF/External/Utility/Documentation/Synch/News.html:
+ * CCF/External/Utility/Documentation/Synch/index.html:
+ * CCF/External/Utility/Documentation/Synch/Policy/Makefile:
+ * CCF/External/Utility/Utility/ExH/Compound.hpp:
+ * CCF/External/Utility/Utility/ExH/Compound.tpp:
+ * CCF/External/Utility/Utility/ExH/Converter.hpp:
+ * CCF/External/Utility/Utility/ExH/Converter.tpp:
+ * CCF/External/Utility/Utility/ExH/ExH.hpp:
+ * CCF/External/Utility/Utility/ExH/StringConverter.hpp:
+ * CCF/External/Utility/Utility/ExH/StringConverter.ipp:
+ * CCF/External/Utility/Utility/ExH/StringStreamConverter.hpp:
+ * CCF/External/Utility/Utility/ExH/StringStreamConverter.ipp:
+ * CCF/External/Utility/Utility/ExH/Logic/DescriptiveException.hpp:
+ * CCF/External/Utility/Utility/ExH/Logic/DescriptiveException.ipp:
+ * CCF/External/Utility/Utility/ExH/Logic/Exception.hpp:
+ * CCF/External/Utility/Utility/ExH/Logic/Exception.ipp:
+ * CCF/External/Utility/Utility/ExH/System/DescriptiveException.hpp:
+ * CCF/External/Utility/Utility/ExH/System/DescriptiveException.ipp:
+ * CCF/External/Utility/Utility/ExH/System/Exception.hpp:
+ * CCF/External/Utility/Utility/ReferenceCounting/DefaultImpl.hpp:
+ * CCF/External/Utility/Utility/ReferenceCounting/DefaultImpl.ipp:
+ * CCF/External/Utility/Utility/ReferenceCounting/ExternalLockImpl.hpp:
+ * CCF/External/Utility/Utility/ReferenceCounting/ExternalLockImpl.ipp:
+ * CCF/External/Utility/Utility/ReferenceCounting/Interface.hpp:
+ * CCF/External/Utility/Utility/ReferenceCounting/Interface.ipp:
+ * CCF/External/Utility/Utility/ReferenceCounting/Interface.tpp:
+ * CCF/External/Utility/Utility/ReferenceCounting/ReferenceCounting.hpp:
+ * CCF/External/Utility/Utility/ReferenceCounting/SmartPtr.hpp:
+ * CCF/External/Utility/Utility/ReferenceCounting/SmartPtr.tpp:
+ * CCF/External/Utility/Utility/ReferenceCounting/StrictPtr.hpp:
+ * CCF/External/Utility/Utility/ReferenceCounting/StrictPtr.tpp:
+ * CCF/External/Utility/Utility/Synch/Policy/Null.hpp:
+ * CCF/External/Utility/Utility/Synch/Policy/Null.ipp:
+ * CIDLC/CIDLC.sln:
+ * CIDLC/CIDLC.vcproj:
+ * CIDLC/ExecutorMapp:ingGenerator.cpp:
+ * CIDLC/ExecutorMapp:ingGenerator.hpp:
+ * CIDLC/Literals.hpp:
+ * CIDLC/Makefile:
+ * CIDLC/ServantGenerator.cpp:
+ * CIDLC/ServantGenerator.hpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantHeaderGenerator.hpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.hpp:
+ * CIDLC/Version:
+ * CIDLC/cidlc.cpp:
+
+ Source code, documentation and build files for the
+ CIDL compiler.
+
+Fri May 30 18:18:25 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/*:
+
+ Removed all files in this directory from the repository except
+ DesignNotes, which will reappear in a new directory along with
+ other CIDL compiler checkins. The parser examples that were
+ in this directory are no longer useful or up to date. Soon
+ parts of the CIDL compiler will be checked into this directory.
+
+ * README:
+
+ New file.
+
+Fri May 30 17:41:05 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/OEP/BasicSP/BMClosedED/BMClosedED_svnt.dsp:
+ * examples/OEP/BasicSP/BMDevice/BMDevice_svnt.dsp:
+ * examples/OEP/BasicSP/BMDisplay/BMDisplay_svnt.dsp:
+ * examples/OEP/BasicSP/EC/EC_svnt.dsp:
+ * examples/OEP/Display/GPS/GPS_svnt.dsp:
+ * examples/OEP/Display/NavDisplay/NavDisplay_svnt.dsp:
+ * examples/OEP/Display/RateGen/RateGen_svnt.dsp:
+
+ Changed the location of the CIDL compiler executable to
+ CIAO_ROOT/bin for the MSVC projects.
+
+ * examples/OEP/Display/NavDisplay/NavDisplay_svnt.cpp:
+ * examples/OEP/Display/NavDisplay/NavDisplay_svnt.h:
+
+ Removed these file from the repository - they are generated
+ and shouldn't have been checked in.
+
+Fri May 30 15:25:29 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/OEP/Display/Configuration-0.png:
+ * examples/OEP/Display/Display.dsw:
+ * examples/OEP/Display/HUDisplay.idl:
+ * examples/OEP/Display/HUDisplay.mpc:
+ * examples/OEP/Display/HUDisplay_stub.dsp:
+ * examples/OEP/Display/HUDisplay_stub_export.h:
+ * examples/OEP/Display/HUDisplay_svnt.dsp:
+ * examples/OEP/Display/HUDisplay_svnt_export.h:
+ * examples/OEP/Display/NOTE:
+ * examples/OEP/Display/README:
+ * examples/OEP/Display/cleanup_mpcfiles.cmd:
+ * examples/OEP/Display/GPS/GPS.cidl:
+ * examples/OEP/Display/GPS/GPS.idl:
+ * examples/OEP/Display/GPS/GPSEI.idl:
+ * examples/OEP/Display/GPS/GPS_exec.cpp:
+ * examples/OEP/Display/GPS/GPS_exec.dsp:
+ * examples/OEP/Display/GPS/GPS_exec.h:
+ * examples/OEP/Display/GPS/GPS_exec_export.h:
+ * examples/OEP/Display/GPS/GPS_stub.dsp:
+ * examples/OEP/Display/GPS/GPS_stub_export.h:
+ * examples/OEP/Display/GPS/GPS_svnt.dsp:
+ * examples/OEP/Display/GPS/GPS_svnt_export.h:
+ * examples/OEP/Display/GPS/GPS_tracing_exec.cpp:
+ * examples/OEP/Display/GPS/GPS_tracing_exec.dsp:
+ * examples/OEP/Display/GPS/GPS_tracing_exec.h:
+ * examples/OEP/Display/GPS/config:
+ * examples/OEP/Display/NavDisplay/NavDisplay.cidl:
+ * examples/OEP/Display/NavDisplay/NavDisplay.idl:
+ * examples/OEP/Display/NavDisplay/NavDisplayEI.idl:
+ * examples/OEP/Display/NavDisplay/NavDisplay_exec.cpp:
+ * examples/OEP/Display/NavDisplay/NavDisplay_exec.dsp:
+ * examples/OEP/Display/NavDisplay/NavDisplay_exec.h:
+ * examples/OEP/Display/NavDisplay/NavDisplay_exec_export.h:
+ * examples/OEP/Display/NavDisplay/NavDisplay_stub.dsp:
+ * examples/OEP/Display/NavDisplay/NavDisplay_stub_export.h:
+ * examples/OEP/Display/NavDisplay/NavDisplay_svnt.cpp:
+ * examples/OEP/Display/NavDisplay/NavDisplay_svnt.dsp:
+ * examples/OEP/Display/NavDisplay/NavDisplay_svnt.h:
+ * examples/OEP/Display/NavDisplay/NavDisplay_svnt_export.h:
+ * examples/OEP/Display/NavDisplay/config:
+ * examples/OEP/Display/NavDisplay/run_test.pl:
+ * examples/OEP/Display/NavDisplayGUI_exec/AddNavUnitCmd.cpp:
+ * examples/OEP/Display/NavDisplayGUI_exec/AddNavUnitCmd.h:
+ * examples/OEP/Display/NavDisplayGUI_exec/Command.h:
+ * examples/OEP/Display/NavDisplayGUI_exec/DetailView.cpp:
+ * examples/OEP/Display/NavDisplayGUI_exec/DetailView.h:
+ * examples/OEP/Display/NavDisplayGUI_exec/MapView.cpp:
+ * examples/OEP/Display/NavDisplayGUI_exec/MapView.h:
+ * examples/OEP/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.cpp:
+ * examples/OEP/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.dsp:
+ * examples/OEP/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.h:
+ * examples/OEP/Display/NavDisplayGUI_exec/NavUnit.cpp:
+ * examples/OEP/Display/NavDisplayGUI_exec/NavUnit.h:
+ * examples/OEP/Display/NavDisplayGUI_exec/NodeItem.cpp:
+ * examples/OEP/Display/NavDisplayGUI_exec/NodeItem.h:
+ * examples/OEP/Display/NavDisplayGUI_exec/QuitCmd.cpp:
+ * examples/OEP/Display/NavDisplayGUI_exec/QuitCmd.h:
+ * examples/OEP/Display/NavDisplayGUI_exec/README:
+ * examples/OEP/Display/NavDisplayGUI_exec/RootPanel.cpp:
+ * examples/OEP/Display/NavDisplayGUI_exec/RootPanel.h:
+ * examples/OEP/Display/NavDisplayGUI_exec/UpdatePositionCmd.cpp:
+ * examples/OEP/Display/NavDisplayGUI_exec/UpdatePositionCmd.h:
+ * examples/OEP/Display/NavDisplayGUI_exec/Worker.cpp:
+ * examples/OEP/Display/NavDisplayGUI_exec/Worker.h:
+ * examples/OEP/Display/NavDisplayGUI_exec/trolltech.gif:
+ * examples/OEP/Display/NavDisplayGUI_exec/worldmap1.gif:
+ * examples/OEP/Display/NavDisplayGUI_exec/worldmap1.xpm:
+ * examples/OEP/Display/RateGen/RateGen.cidl:
+ * examples/OEP/Display/RateGen/RateGen.idl:
+ * examples/OEP/Display/RateGen/RateGenEI.idl:
+ * examples/OEP/Display/RateGen/RateGen_client.dsp:
+ * examples/OEP/Display/RateGen/RateGen_exec.cpp:
+ * examples/OEP/Display/RateGen/RateGen_exec.dsp:
+ * examples/OEP/Display/RateGen/RateGen_exec.h:
+ * examples/OEP/Display/RateGen/RateGen_exec_export.h:
+ * examples/OEP/Display/RateGen/RateGen_stub.dsp:
+ * examples/OEP/Display/RateGen/RateGen_stub_export.h:
+ * examples/OEP/Display/RateGen/RateGen_svnt.dsp:
+ * examples/OEP/Display/RateGen/RateGen_svnt_export.h:
+ * examples/OEP/Display/RateGen/client.cpp:
+ * examples/OEP/Display/RateGen/config:
+ * examples/OEP/Display/RateGen/controller.cpp:
+ * examples/OEP/Display/RateGen/controller.dsp:
+ * examples/OEP/Display/RateGen/run_test.pl:
+ * examples/OEP/Display/descriptors/CIAO_Installation_Data.ini:
+ * examples/OEP/Display/descriptors/DuelDisplay.cad:
+ * examples/OEP/Display/descriptors/GPS.csd:
+ * examples/OEP/Display/descriptors/GPS.ssd:
+ * examples/OEP/Display/descriptors/GPS_tracing.csd:
+ * examples/OEP/Display/descriptors/HUDisplay.cad:
+ * examples/OEP/Display/descriptors/HUDisplayGUI.cad:
+ * examples/OEP/Display/descriptors/NOTE.txt:
+ * examples/OEP/Display/descriptors/NavDisplay.csd:
+ * examples/OEP/Display/descriptors/NavDisplay.ssd:
+ * examples/OEP/Display/descriptors/NavDisplayGUI.csd:
+ * examples/OEP/Display/descriptors/RateGen.csd:
+ * examples/OEP/Display/descriptors/RateGen.ssd:
+ * examples/OEP/Display/descriptors/RemoteDisplay.cad:
+ * examples/OEP/Display/descriptors/RemoteDisplayGUI.cad:
+ * examples/OEP/Display/descriptors/test.dat:
+
+ New example, same as the one in examples/handcrafted/Display,
+ but using CIDL compiler generated code.
+
+Fri May 30 14:27:55 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * PROBLEM-REPORT-FORM (Subject): Fixed a typo.
+
+Fri May 30 14:15:45 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * VERSION:
+ * PROBLEM-REPORT-FORM (Subject): Files needed for the release.
+
+Fri May 30 14:11:11 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * ciao/Version.h: Changed the version info to be 0.3.1 instead of
+ 0.1.1. We want it to go the way ACE+TAO go.
+
+Fri May 30 13:57:26 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * Makefile: A new top level Makefile which will have the needed
+ information for the release.
+
+Fri May 30 12:29:37 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * examples/OEP/BasicSP/BasicSP.dsw:
+ * examples/OEP/BasicSP/BasicSP.idl:
+ * examples/OEP/BasicSP/BasicSP.mpc:
+ * examples/OEP/
+ files.
+
+ * examples/handcrafted/Display/HUDisplay_svnt.cpp:
+ * examples/handcrafted/Display/HUDisplay_svnt.inl:
+ * examples/handcrafted/Display/GPS/GPSE.idl:
+ * examples/handcrafted/Display/GPS/GPS_exec.cpp:
+ * examples/handcrafted/Display/GPS/GPS_exec.h:
+ * examples/handcrafted/Display/GPS/GPS_svnt.cpp:
+ * examples/handcrafted/Display/GPS/GPS_tracing_exec.cpp:
+ * examples/handcrafted/Display/GPS/GPS_tracing_exec.h:
+ * examples/handcrafted/Display/NavDisplay/NavDisplay_exec.cpp:
+ * examples/handcrafted/Display/NavDisplay/NavDisplay_exec.h:
+ * examples/handcrafted/Display/NavDisplay/NavDisplay_svnt.cpp:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.cpp:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.h:
+ * examples/handcrafted/Display/RateGen/RateGenE.idl:
+ * examples/handcrafted/Display/RateGen/RateGen_exec.cpp:
+ * examples/handcrafted/Display/RateGen/RateGen_exec.h:
+ * examples/handcrafted/Display/RateGen/RateGen_svnt.cpp:
+ * examples/handcrafted/Display/RateGen/client.cpp:
+ * examples/handcrafted/Display/RateGen/controller.cpp:
+ * examples/handcrafted/Hello/client.cpp:
+ * examples/handcrafted/Hello/helloE.idl:
+ * examples/handcrafted/Hello/hello_servants.cpp:
+ * tools/Assembly_Deployer/Assembly_Impl.cpp:
+ * tools/Assembly_Deployer/Assembly_Manager.cpp:
+ * tools/Assembly_Deployer/Assembly_Visitors.h:
+ * tools/Assembly_Deployer/Assembly_Visitors.inl:
+ * tools/ComponentServer/ComponentServer.cpp:
+ * tools/ComponentServer/ComponentServer_test_client.cpp:
+ * tools/Daemon/controller_i.cpp:
+ * tools/Daemon/controller_i.h:
+ * tools/ServerActivator/ServerActivator_test_client.cpp:
+ * tools/XML_Helpers/Assembly_Handlers.cpp:
+ * tools/XML_Helpers/Assembly_Spec.cpp:
+ * tools/XML_Helpers/Assembly_Spec.inl:
+ * tools/XML_Helpers/Cascadable_DocHandler.cpp:
+ * tools/XML_Helpers/Softpkg_Handlers.cpp: Fixed compilation errors
+ and warnings. They include
+
+ Using a _var in places where a _ptr is expected.
+
+ Incorrect Capitalization of file names.
+
+ Unused variables warnings.
+
+ Exception throw specification mis-matches.
+
+ * docs/templates/CIAO_Glue_Session_Template.cpp: Propagated
+ previous fixes into the tempate code.
+
+ * ciao/Container_Base.cpp: Removed a redundant ACE_INLINE decl.
+
+Tue Apr 15 17:07:52 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * tools/XML_Helpers/Assembly_Spec.h:
+ * tools/XML_Helpers/Softpkg_Handlers.h:
+ * tools/XML_Helpers/XMLHelpers.mpc:
+ * tools/XML_Helpers/XML_Utils.h:
+ * tools/XML_Helpers/XML_Helpers_Export.h: Refactored these files
+ to make them into a library.
+
+ * tools/XML_Helpers/XML_Helpers.dsw:
+ * tools/XML_Helpers/Helper_Test.dsp:
+ * tools/Daemon/CIAO_Daemon.dsp:
+ * tools/Daemon/Daemon.dsw:
+ * tools/Daemon/DaemonController.dsp: Removed these project files
+ and depend solely on MPC generated files.
+
+ * tools/Assembly_Deployer/Assembly_Deployer.mpc:
+ * tools/Daemon/Daemon.mpc: Updated MPC files to link with the new
+ XML_Helpers library.
+
+Tue Apr 15 11:07:36 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * ciao/Daemon.idl:
+ * ciao/Daemon_Impl.h:
+ * ciao/Daemon_Impl.inl:
+ * ciao/Daemon_Impl.cpp:
+ * tools/Daemon/Daemon.idl:
+ * tools/Daemon/Daemon_Impl.h:
+ * tools/Daemon/Daemon_Impl.inl:
+ * tools/Daemon/Daemon_Impl.cpp:
+ * ciao/CCM_Core.mpc:
+ * ciao/CIAO_Server.dsp:
+ * tools/Daemon/CIAO_Daemon.dsp:
+ * tools/Daemon/Daemon.mpc:
+ * tools/Daemon/DaemonController.dsp: Moved Daemon idl file and
+ implementations out of CIAO_Server library into Daemon
+ implemenation.
+
+ Removed HomeRegistrar related files from the projects of the
+ CIAO_Server library. They need to be moved a a proper place in
+ the near future.
+
+ * docs/todo.html: Document other refactoring needed in the
+ CCM_Core libraries.
+
+Mon Apr 14 17:06:37 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * examples/handcrafted/Display/HUDisplay_svnt.cpp:
+ * examples/handcrafted/Display/HUDisplay_svnt.h:
+ * examples/handcrafted/Display/GPS/GPS_exec.cpp:
+ * examples/handcrafted/Display/GPS/GPS_exec.h:
+ * examples/handcrafted/Display/GPS/GPS_svnt.cpp:
+ * examples/handcrafted/Display/GPS/GPS_svnt.h:
+ * examples/handcrafted/Display/GPS/GPS_tracing_exec.cpp:
+ * examples/handcrafted/Display/GPS/GPS_tracing_exec.h:
+ * examples/handcrafted/Display/NavDisplay/NavDisplay_exec.cpp:
+ * examples/handcrafted/Display/RateGen/RateGen_exec.cpp:
+ * examples/handcrafted/Display/RateGen/RateGen_exec.h:
+ * examples/handcrafted/Display/RateGen/client.cpp:
+ * examples/handcrafted/Display/RateGen/controller.cpp:
+ * examples/handcrafted/Display/RateGen/run_test.pl:
+ * examples/handcrafted/Display/descriptors/NOTE.txt: Updated
+ docuemntation. Changed to inherit Pulse_Handler from
+ ACE_Task_Base. Reworked controller.cpp so that it won't look
+ like the process that actually generates the events.
+
+Mon Apr 14 14:57:51 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * examples/handcrafted/Display/RateGen/controller.cpp: Changed to
+ perform only one action in each exection of this program. I.e.,
+ it either switch on or off the RateGen component and exit
+ immediately. This is to avoid the mis-conception that the
+ controller actually generates the Rate.
+
+Sat Apr 12 12:36:08 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * CIDLC/parser_examples/cidl/cidl.vcproj:
+ * CIDLC/parser_examples/idl2/idl2.vcproj:
+ * CIDLC/parser_examples/idl3/idl3.vcproj: Changed the extra
+ include paths from:
+
+ ..,../spirit-1.3.0,../spirit-1.3.0/miniboost
+
+ to:
+
+ ..,$(SPIRIT_DIR),$(SPIRIT_DIR)/miniboost
+
+ to be consistent with the MPC files and to decouple Spirit from
+ CIAO's directory strucutre.
+
+Sat Apr 12 10:48:13 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * docs/templates/CIAO_Glue_Session_Template.cpp:
+ * docs/templates/CIAO_Glue_Session_Template.inl: Incorporated
+ changes for fixing gcc compilation warnings.
+
+ * tools/Assembly_Deployer/Assembly_Manager.cpp:
+ * tools/ComponentServer/ComponentServer.cpp:
+ * tools/ComponentServer/ComponentServer_test_client.cpp:
+ * tools/Daemon/CIAO_Daemon.cpp:
+ * tools/Simple_Component_Server/Simple_Component_Server.cpp: Added
+ misiing newlines in usage messages.
+
+Sat Apr 12 01:25:35 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * CIDLC/parser_examples/README:
+ * CIDLC/parser_examples/cidl/cidl.mpc:
+ * CIDLC/parser_examples/idl2/idl2.mpc:
+ * CIDLC/parser_examples/idl3/idl3.mpc: Added new MPC files to take
+ advantage of MPC/MWC tool. Updated the README to provide some
+ minimal instructions.
+
+Tue Apr 8 23:10:43 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/parser_examples/README:
+ * CIDLC/parser_examples/parser_examples.sln:
+ * CIDLC/parser_examples/cidl/cidl.cpp:
+ * CIDLC/parser_examples/cidl/cidl.vcproj:
+ * CIDLC/parser_examples/cidl/cidl_grammar.cpp:
+ * CIDLC/parser_examples/cidl/cidl_grammar.h:
+ * CIDLC/parser_examples/cidl/hello.cidl:
+ * CIDLC/parser_examples/idl2/idl2.cpp:
+ * CIDLC/parser_examples/idl2/idl2.vcproj:
+ * CIDLC/parser_examples/idl2/idl2_grammar.cpp:
+ * CIDLC/parser_examples/idl2/idl2_grammar.h:
+ * CIDLC/parser_examples/idl2/test_idl2.idl:
+ * CIDLC/parser_examples/idl3/idl3.cpp:
+ * CIDLC/parser_examples/idl3/idl3.vcproj:
+ * CIDLC/parser_examples/idl3/idl3_grammar.cpp:
+ * CIDLC/parser_examples/idl3/idl3_grammar.h:
+ * CIDLC/parser_examples/idl3/test_idl3.idl:
+
+ Added parser examples (IDL2, IDL3, and CIDL) using the Spirit
+ parser.
+
+Tue Apr 08 19:42:16 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * examples/handcrafted/Display/GPS/GPS_tracing_exec.h: Fixed
+ a class name mismatch.
+
+Mon Apr 07 21:20:37 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * ciao/ServerActivator_Impl.cpp: Fixed a couple of compilation
+ warnings with gcc.
+
+ * ciao/CIAO_Client.dsp:
+ * ciao/CIAO_Container.dsp:
+ * ciao/CIAO_Server.dsp: Turned on RTTI to sync up with the new Any
+ implementation.
+
+ * ciao/CIAO_common.h:
+ * ciao/Cookies.cpp: Fixed the use of old CORBA_* types. They are
+ no longer available in the newer version of ACE/TAO.
+
+Sun Apr 06 20:36:39 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * examples/handcrafted/Display/CIAO_Installation_Data.ini:
+ * examples/handcrafted/Display/HUDisplay.cad:
+ * examples/handcrafted/Display/GPS/GPS.csd:
+ * examples/handcrafted/Display/GPS/GPS.ssd:
+ * examples/handcrafted/Display/NavDisplay/NavDisplay.csd:
+ * examples/handcrafted/Display/NavDisplay/NavDisplay.ssd:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/NavDisplayGUI.csd:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/NavDisplayGUI.ssd:
+ * examples/handcrafted/Display/RateGen/RateGen.csd:
+ * examples/handcrafted/Display/RateGen/RateGen.ssd: Removed these
+ files as they have already been moved to the
+ examples/handcrafted/Display/descriptors/ subdirectory.
+
+ * examples/handcrafted/Display/NOTE: Updated obsolete notes.
+
+ Thanks to Andrey Nechypurenko
+ <Andrey.Nechypurenko@mchp.siemens.de> for the following
+ changes. He reported, motivated or sent patches for them.
+
+ * examples/handcrafted/Display/descriptors/NOTE.txt: Fixed several
+ typos.
+
+ * examples/handcrafted/Display/descriptors/DuelDisplay.cad:
+ * examples/handcrafted/Display/descriptors/GPS_tracing.csd:
+ * examples/handcrafted/Display/descriptors/HUDisplayGUI.cad:
+ * examples/handcrafted/Display/descriptors/RemoteDisplayGUI.cad:
+ Updated these assembly descriptors to use the new GPS component
+ that emulate a trace (instead of the random coordinates).
+
+ * examples/handcrafted/Display/NavDisplay/client.cpp:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/run_test.pl:
+ Removed these testing artifacts because NavDisplay component
+ requires other component to function properly.
+
+ * tools/XML_Helpers/Assembly_Spec.inl: Fixed VC7.1 compilation
+ error.
+
+ * examples/handcrafted/Display/GPS/GPS.mpc:
+ * examples/handcrafted/Display/GPS/GPS_tracing_exec.cpp:
+ * examples/handcrafted/Display/GPS/GPS_tracing_exec.h: Added a
+ new implementation for the GPS component. This implementation
+ simulates coordinates of a trace instead of some random
+ positions.
+
+ * examples/handcrafted/Display/NavDisplay/NavDisplay.mpc:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/DetailView.cpp:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/MapView.cpp:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.cpp:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.h:
+ Please find in attachment slightly modified version of
+ NavDisplayGUI. I have modified it slightly mainly in order to
+ let the GUI component to find background and animation images
+ either based on ACE_ROOT or using ../NavDisplayGUI_exec/.
+
+ * examples/handcrafted/Display/NavDisplayGUI_exec/README: Removed
+ the mentioning of run_test.pl. It's no longer valid.
+
+Sat Apr 05 20:08:27 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * ciao/CCM_Deployment.idl:
+ * ciao/Component_Base.idl:
+ The operation Components::Deployment::Assembly::build can throw
+ CreateFailure exception. It was missing in the IDL files.
+
+ * ciao/Server_init.cpp:
+ Register OBV factory for CIAO::Cookie also.
+
+ * docs/templates/CIAO_Glue_Session_Template.cpp:
+ Made sure we duplicate the object reference before adding them
+ to subscriber/connection active maps.
+
+ * examples/handcrafted/Display/HUDisplay.idl:
+ * examples/handcrafted/Display/HUDisplay.mpc:
+ * examples/handcrafted/Display/HUDisplay_svnt.h:
+ * examples/handcrafted/Display/HUDisplay_svnt.inl:
+ * examples/handcrafted/Display/GPS/GPS_exec.cpp:
+ * examples/handcrafted/Display/GPS/GPS_exec.h:
+ * examples/handcrafted/Display/GPS/GPS_svnt.cpp:
+ * examples/handcrafted/Display/NavDisplay/NavDisplay_exec.cpp:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.cpp:
+ * examples/handcrafted/Display/RateGen/RateGen.mpc:
+ * examples/handcrafted/Display/RateGen/RateGen_svnt.cpp:
+ Updated the example to support 2-dimentional position interface.
+ Also fixed the reference counting problem in the servant glue
+ code.
+
+
+ * examples/handcrafted/Display/RateGen/controller.cpp:
+ Added a new
+
+ * examples/handcrafted/Display/descriptors/HUDisplay.cad:
+ * examples/handcrafted/Display/descriptors/HUDisplayGUI.cad:
+ * examples/handcrafted/Display/descriptors/RemoteDisplay.cad:
+ * examples/handcrafted/Display/descriptors/RemoteDisplayGUI.cad:
+ Added variety of different composition example. See NOTE.txt
+ under the same directory for more information.
+
+ * examples/handcrafted/Display/descriptors/test.dat:
+ Added a "Remote" entry so showcase how to deploy a system across
+ several machines.
+
+ * tools/Assembly_Deployer/Assembly_Deployer.cpp:
+ * tools/Assembly_Deployer/Assembly_Deployer.mpc:
+ * tools/Assembly_Deployer/Assembly_Impl.cpp:
+ * tools/Assembly_Deployer/Assembly_Impl.h:
+ * tools/Assembly_Deployer/Assembly_Manager.cpp:
+ * tools/Assembly_Deployer/Assembly_Visitors.h:
+ Added support for establishing connections according to
+ Assembly_Spec.
+
+ * tools/Assembly_Deployer/Assembly_Service.idl:
+ * tools/Assembly_Deployer/Assembly_Service_Impl.cpp:
+ * tools/Assembly_Deployer/Assembly_Service_Impl.h:
+ Added a simple interface in an attempt to solve the unreliable
+ shutdown problem.
+
+ * tools/XML_Helpers/Assembly_Handlers.cpp:
+ * tools/XML_Helpers/Assembly_Handlers.h:
+ * tools/XML_Helpers/Assembly_Handlers.inl:
+ * tools/XML_Helpers/Assembly_Spec.cpp:
+ * tools/XML_Helpers/Assembly_Spec.h:
+ Fixed "connectevent" parsing. I had the "source" and
+ "destination" interface reversed.
+
+Fri Apr 04 22:40:11 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * examples/handcrafted/Display/descriptors/*: Moved all XML
+ descriptors and deployment configuration into this newly created
+ subdirectory to simply procedures to test this example.
+
+ * examples/handcrafted/Display/NavDisplay/NavDisplay_exec.cpp:
+ Changed to thow a BAD_INV_ORDER exception is the receptacle is
+ not connected instead of a MSVC structural exception.
+
+ * tools/Daemon/Daemon.mpc:
+ * tools/Daemon/DaemonController.dsp:
+ * tools/XML_Helpers/Assembly_Handlers.cpp:
+ * tools/XML_Helpers/Assembly_Spec.cpp:
+ * tools/XML_Helpers/Assembly_Spec.h:
+ * tools/XML_Helpers/Assembly_Spec.inl:
+ * tools/Assembly_Deployer/Assembly_Deployer.cpp:
+ * tools/Assembly_Deployer/Assembly_Deployer.mpc:
+ * tools/Assembly_Deployer/Assembly_Impl.cpp:
+ * tools/Assembly_Deployer/Assembly_Impl.h:
+ * tools/Assembly_Deployer/Assembly_Impl.inl:
+ * tools/Assembly_Deployer/Assembly_Manager.cpp:
+ * tools/Assembly_Deployer/Assembly_Visitors.h:
+ * tools/Assembly_Deployer/Assembly_Visitors.inl:
+ * tools/Assembly_Deployer/Deployment_Configuration.cpp:
+ * tools/Assembly_Deployer/Deployment_Configuration.h:
+ * tools/Assembly_Deployer/Deployment_Configuration.inl: Added more
+ support for component installation when building an Assembly.
+
+Thu Apr 03 15:08:20 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * ciao/Assembly_Impl.*:
+ * tools/Assembly_Deployer/Assembly_Impl.*: Moved the Assembly
+ implementaiton files to the tools/Assembly_Deployer/ directory.
+
+ * ciao/CCM_Core.mpc:
+ * ciao/CIAO_Server.dsp: Removed Assembly_Impl.*.
+
+Thu Apr 03 13:11:49 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * tools/XML_Helpers/Assembly_Spec.h:
+ * tools/XML_Helpers/Assembly_Handlers.h:
+ * tools/XML_Helpers/Assembly_Handlers.cpp: Added support for parsing
+ component and home registering info. Otherwise, it'd be hard to
+ use a composed application.
+
+Wed Apr 02 17:08:00 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * tools/XML_Helpers/Assembly_Handlers.cpp:
+ * tools/XML_Helpers/Assembly_Handlers.h:
+ * tools/XML_Helpers/Assembly_Handlers.inl:
+ * tools/XML_Helpers/Assembly_Spec.cpp:
+ * tools/XML_Helpers/Assembly_Spec.h:
+ * tools/XML_Helpers/Assembly_Spec.inl:
+ * tools/XML_Helpers/Helper_Test.dsp: Added implementations for
+ handling componentassembly XML documents and building the
+ assembly specification information. These handlers currently
+ process only "crucial" information needed to get a system up and
+ running, i.e., they do not yet extract all types of information
+ in a componentassembly document.
+
+ Also important is that all XML handlers in CIAO assume all XML
+ documents they process are valid and well-formed. ACEXML
+ currently does not validate XML document yet. Therefore, you
+ need to validate the XML documents using other XML parser (such
+ as msxml) shall CIAO's assembly parsing behave strangely as the
+ handlers assume a validator has already taken up most of the
+ checking responsibility.
+
+ * tools/XML_Helpers/Softpkg_Handlers.cpp:
+ * tools/XML_Helpers/Softpkg_Handlers.h:
+ * tools/XML_Helpers/Softpkg_Handlers.inl:
+ * tools/XML_Helpers/XML_Utils.cpp:
+ * tools/XML_Helpers/XML_Utils.h: Added a new
+ parse_componentassembly utility function and moved some of the
+ helper functions out of Softpkg_Handlers.
+
+ * tools/XML_Helpers/main.cpp:
+
+ * bin/generate_component_mpc.pl: Added dependent library to the
+ list of libraries client program links to.
+
+ * docs/XML/componentassembly.dtd: Fixed a typo in DTD definition.
+
+ * examples/handcrafted/Display/HUDisplay.cad: Added a
+
+ * examples/handcrafted/Display/NavDisplay/NavDisplay.mpc:
+ * examples/handcrafted/Display/NavDisplay/client.cpp:
+ * examples/handcrafted/Display/NavDisplay/run_test.pl: Added a
+ client program to test the component.
+
+ * examples/handcrafted/Display/NavDisplayGUI_exec/AddNavUnitCmd.cpp:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/AddNavUnitCmd.h:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/Command.h:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/DetailView.cpp:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/DetailView.h:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/MapView.cpp:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/MapView.h:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/NavDisplayEIC.cpp:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/NavDisplayGUI.csd:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/NavDisplayGUI.ssd:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.cpp:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.h:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/NavUnit.cpp:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/NavUnit.h:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/NodeItem.cpp:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/NodeItem.h:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/QuitCmd.cpp:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/QuitCmd.h:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/README:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/RootPanel.cpp:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/RootPanel.h:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/UpdatePositionCmd.cpp:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/UpdatePositionCmd.h:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/Worker.cpp:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/Worker.h:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/moc_DetailView.cpp:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/moc_MapView.cpp:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/moc_NodeItem.cpp:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/moc_RootPanel.cpp:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/run_test.pl:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/trolltech.gif:
+ * examples/handcrafted/Display/NavDisplayGUI_exec/worldmap1.gif:
+ Added a Qt GUI based component to showcase how we can
+ reconfigure a system using different component easily. Thanks
+ to Andrey Nechypurenko <andreynech@mchp.siemens.com> for
+ contributing the implementation.
+
+ * examples/handcrafted/Display/CIAO_Installation_Data.ini: Added
+ deployment information for the new GUI NavDisplay component
+ implementation.
+
+ * examples/handcrafted/Hello/client.dsp:
+ * examples/handcrafted/Hello/hello_executors.dsp:
+ * examples/handcrafted/Hello/hello_servants.dsp:
+ * examples/handcrafted/Hello/hello_stub.dsp: Hmm, I probably
+ checked in the MPC/MWC generated project accidentally. :)
+
+Mon Mar 24 16:17:21 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * examples/handcrafted/Display/GPS/GPS_svnt.cpp:
+ * examples/handcrafted/Display/NavDisplay/NavDisplay_svnt.cpp:
+ Added implementation for servant factory methods. Thanks to
+ Andrey Nechypurenko <andreynech@yahoo.com> for reporting this.
+
+Fri Mar 21 15:51:57 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * docs/new_components.html: Revised naming convention for
+ user-defined component executor impl IDL.
+
+ * bin/generate_component_mpc.pl: Added an option for adding
+ user-defined component executor impl IDL automatically,
+ according the the naming convention. Fixed the dependencies to
+ "dependent" libraries.
+
+ * examples/handcrafted/Display/RateGen/RateGen.csd:
+ * examples/handcrafted/Display/RateGen/RateGen.ssd: Simplified the
+ XML descriptors.
+
+ * examples/handcrafted/Display/RateGen/RateGen.mpc:
+ * examples/handcrafted/Display/RateGen/RateGenEI.idl:
+ * examples/handcrafted/Display/RateGen/RateGen_exec.h: Fixed
+ dependencies and naming convention.
+
+ * examples/handcrafted/Display/GPS/GPS.csd:
+ * examples/handcrafted/Display/GPS/GPS.mpc:
+ * examples/handcrafted/Display/GPS/GPS.ssd:
+ * examples/handcrafted/Display/GPS/GPSEI.idl:
+ * examples/handcrafted/Display/GPS/GPS_exec.cpp:
+ * examples/handcrafted/Display/GPS/GPS_exec.h:
+
+ * examples/handcrafted/Display/NavDisplay/NavDisplay.csd:
+ * examples/handcrafted/Display/NavDisplay/NavDisplay.mpc:
+ * examples/handcrafted/Display/NavDisplay/NavDisplay.ssd:
+ * examples/handcrafted/Display/NavDisplay/NavDisplayEI.idl:
+ * examples/handcrafted/Display/NavDisplay/NavDisplay_exec.cpp:
+ * examples/handcrafted/Display/NavDisplay/NavDisplay_exec.h:
+
+ * examples/handcrafted/Display/CIAO_Installation_Data.ini: Added
+ component implementaions for GPS and NavDisplay.
+
+Thu Mar 20 21:50:07 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * ciao/ComponentInstallation_Impl.cpp: Added a more comprehensive
+ error printout.
+
+ * docs/index.html: Fixed a broken link.
+
+ * docs/templates/CIAO_Glue_Session_Template.cpp:
+ * docs/templates/CIAO_Glue_Session_Template.h: Added the servant
+ factory entry point function that I missed.
+
+ * examples/handcrafted/Display/RateGen/RateGen_svnt.cpp:
+ * examples/handcrafted/Display/RateGen/RateGen_svnt.h: Fixed up
+ the servant DLL entry point.
+
+ * examples/handcrafted/Display/RateGen/RateGen.mpc:
+ * examples/handcrafted/Display/RateGen/RateGen_comp.idl:
+ * examples/handcrafted/Display/RateGen/RateGen_exec.cpp:
+ * examples/handcrafted/Display/RateGen/RateGen_exec.h: Added the
+ actual implementation for component executor.
+
+ * examples/handcrafted/Display/CIAO_Installation_Data.ini: Added
+ this deployment datafile. This file will contain information
+ describing all the components used in this example.
+
+ * examples/handcrafted/Display/RateGen/RateGen.csd:
+ * examples/handcrafted/Display/RateGen/RateGen.ssd: Added XML
+ component descriptors.
+
+ * examples/handcrafted/Display/RateGen/client.cpp: Added a test
+ client program.
+
+ * examples/handcrafted/Display/RateGen/run_test.pl: Added a test
+ script to test out this single component.
+
+ * tools/ComponentServer/ComponentServer_test_client.cpp: Changed
+ the client program to debug RateGen component. We need to make
+ this test client more robust so we can use it to debug different
+ component implementations more easily.
+
+Tue Mar 18 16:36:07 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * bin/generate_component_mpc.pl:
+ * examples/handcrafted/Display/HUDisplay.mpc:
+ * examples/handcrafted/Display/GPS/GPS.mpc:
+ * examples/handcrafted/Display/NavDisplay/NavDisplay.mpc:
+ * examples/handcrafted/Display/RateGen/RateGen.mpc: Updated the
+ script and regenerated mpc file to record the original options
+ used to generate the MPC files.
+
+ * examples/handcrafted/Display/NOTE: Added more info on how to
+ generate Makefiles/Projects for this example.
+
+ * examples/handcrafted/Display/RateGen/RateGen.idl: Fixed a typo.
+
+ * examples/handcrafted/Display/RateGen/RateGen_Impl.idl:
+ * examples/handcrafted/Display/RateGen/RateGen_exec.cpp:
+ * examples/handcrafted/Display/RateGen/RateGen_exec.h: Added the
+ actual component and home implementations. This particular
+ component implementation shows how to suppoort SessionComponent
+ interface in a component implementation (you will need to do
+ that for any non-trivial component implementations that require
+ to access component-specific context.)
+
+Tue Mar 18 12:03:29 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * examples/handcrafted/Hello/hello_servants.cpp:
+ * examples/handcrafted/Hello/hello_servants.h: Renamed various
+ "_ciao_deactivate*" operations to "ciao_passivate*" to be more
+ consistent with the CC* opertions.
+
+ * docs/templates/CIAO_Glue_Session_Template.cpp:
+ * docs/templates/CIAO_Glue_Session_Template.h:
+ * docs/templates/CIAO_Glue_Session_Template.inl:
+ * examples/handcrafted/Display/GPS/GPS_svnt.cpp:
+ * examples/handcrafted/Display/GPS/GPS_svnt.h:
+ * examples/handcrafted/Display/GPS/GPS_svnt.inl:
+ * examples/handcrafted/Display/NavDisplay/NavDisplay_svnt.cpp:
+ * examples/handcrafted/Display/NavDisplay/NavDisplay_svnt.h:
+ * examples/handcrafted/Display/NavDisplay/NavDisplay_svnt.inl:
+ * examples/handcrafted/Display/RateGen/RateGen_svnt.cpp:
+ * examples/handcrafted/Display/RateGen/RateGen_svnt.h:
+ * examples/handcrafted/Display/RateGen/RateGen_svnt.inl:
+ Propagated the SessionComponent opertion support to CIDL
+ templates and the multiple component example "generated" files.
+
+Mon Mar 17 23:10:47 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * ciao/Container_Base.cpp:
+ * ciao/Container_Base.h:
+ * examples/handcrafted/Hello/hello_servants.cpp:
+ * examples/handcrafted/Hello/hello_servants.h: Added support for
+ SessionComponent specific operations,
+ ccm_{activate,passivate,remove}. These changes still need to be
+ propagated to the CIDL templates.
+
+ We also need to review how Deployment::Container and CCMHome
+ manage the lifecyles of homes, components, and facet servants.
+
+Sun Mar 16 21:57:10 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * docs/templates/CIAO_Glue_Session_Template.h:
+ * docs/templates/CIAO_Glue_Session_Template.inl:
+ * examples/handcrafted/Display/GPS/GPS_svnt.h:
+ * examples/handcrafted/Display/GPS/GPS_svnt.inl:
+ * examples/handcrafted/Display/NavDisplay/NavDisplay_svnt.h:
+ * examples/handcrafted/Display/NavDisplay/NavDisplay_svnt.inl:
+ * examples/handcrafted/Display/RateGen/RateGen_svnt.cpp:
+ * examples/handcrafted/Display/RateGen/RateGen_svnt.h:
+ * examples/handcrafted/Display/RateGen/RateGen_svnt.inl: Added
+ code to support SessionComponent::set_session_context operation
+ and make sure the Context objects also inherit from
+ TAO_Local_RefCounted_Object.
+
+ * examples/handcrafted/Hello/helloE.idl:
+ * examples/handcrafted/Hello/hello_executors.h:
+ * examples/handcrafted/Hello/hello_servants.cpp:
+ * examples/handcrafted/Hello/hello_servants.h: Changed to implement
+ component specific context as a SessionContext, plus the
+ aforementioned changes.
+
+Sun Mar 16 11:43:20 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * docs/ConfigValues.html:
+ * docs/index.html: Updated the main document entry page. It is
+ grossly outdated.
+
+ * tools/ComponentServer/ComponentServer.mpc:
+ * tools/Daemon/Daemon.mpc:
+ * tools/ServerActivator/ServerActivator.mpc:
+ * tools/XML_Helpers/XMLHelpers.mpc: Added more mpc files.
+
+Sat Mar 15 11:43:34 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * ciao/Makefile:
+ * ciao/Makefile.client:
+ * ciao/Makefile.container:
+ * ciao/Makefile.server: Removed Makefiles. I depend on MPC files
+ exclusively at the moment.
+
+ * ciao/Assembly_Impl.cpp:
+ * ciao/Assembly_Impl.h:
+ * ciao/CCM_Core.mpc:
+ * ciao/Container_Base.cpp:
+ * ciao/Container_Base.h:
+ * ciao/Container_Impl.h:
+ * ciao/Daemon_Impl.h:
+ * ciao/Object_Set_T.cpp:
+ * ciao/ServerActivator_Impl.h: Fixed Linux build errors. Some
+ warnings are not fixed due to incomplete implementations and I
+ want to make sure they got addressed in some future point.
+
+Fri Mar 14 23:19:52 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * ciao/CCM_Core.mpc: Updated the core MPC file to reflect recent
+ added files.
+
+Fri Mar 14 16:08:22 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * docs/todo.html: Recorded a compilation error in the generated
+ code that I commented out for later "study."
+
+ * examples/handcrafted/Display/NavDisplay/NavDisplay.idl: Fixed a
+ typo.
+
+ * examples/handcrafted/Display/NavDisplay/NavDisplayE.idl:
+ * examples/handcrafted/Display/NavDisplay/NavDisplay_svnt.cpp:
+ * examples/handcrafted/Display/NavDisplay/NavDisplay_svnt.h:
+ * examples/handcrafted/Display/NavDisplay/NavDisplay_svnt.inl:
+ Added new "generated" code.
+
+ * docs/templates/CIAO_Glue_Session_Template.cpp:
+ * docs/templates/CIAO_Glue_Session_Template.h:
+ * docs/templates/CIAO_Glue_Session_Template.inl:
+ * docs/templates/Executor.idl: Updated templates based on the code
+ they generated.
+
+Thu Mar 13 20:11:49 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * examples/handcrafted/Display/NavDisplay/NavDisplay.idl:
+ * examples/handcrafted/Display/GPS/GPS.idl:
+ * examples/handcrafted/Display/Configuration-0.png: Updated the
+ port names so they make more sense in the context. Thanks to
+ Dave Sharp and Wendy Rolls for the suggestions.
+
+ * examples/handcrafted/Display/RateGen/RateGen_svnt.h: Added the
+ missing factory entry point for the servant home.
+
+ * examples/handcrafted/Display/GPS/GPSE.idl:
+ * examples/handcrafted/Display/GPS/GPS_svnt.cpp:
+ * examples/handcrafted/Display/GPS/GPS_svnt.h:
+ * examples/handcrafted/Display/GPS/GPS_svnt.inl: Added new
+ "generated" code.
+
+ * docs/templates/CIAO_Glue_Session_Template.cpp:
+ * docs/templates/CIAO_Glue_Session_Template.h:
+ * docs/templates/CIAO_Glue_Session_Template.inl:
+ * docs/templates/Executor.idl: Updated templates based on the code
+ they generated (manually. Did I mention how much fun it was to
+ generate code manually?)
+
+Wed Mar 12 23:29:27 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * bin/generate_component_mpc.pl: Fixed an incomplete library
+ expansion and added a flag to specify library path
+ dependencies.
+
+ * docs/releasenotes.html: Updated the status of single component
+ deployment capability. I forgot to do that when it was done.
+
+ * examples/handcrafted/Display/NOTE: Added directions on how to
+ generate various mpc files.
+
+ * examples/handcrafted/Display/GPS/GPS.mpc:
+ * examples/handcrafted/Display/NavDisplay/NavDisplay.mpc:
+ * examples/handcrafted/Display/RateGen/RateGen.mpc: Regenerated
+ MPC files to fix incomplete dependent library names and to add
+ library path dependencies.
+
+ * examples/handcrafted/Display/HUDisplay.idl:
+ * examples/handcrafted/Display/RateGen/RateGen.idl:
+ * examples/handcrafted/Display/HUDisplayE.idl:
+ * examples/handcrafted/Display/RateGen/RateGenE.idl: Moved the
+ opmode interface definition from RateGen.idl back to
+ HUDisplay.idl. This interface is a supported interface of
+ RateGen but it should be viewed as a shared interface.
+
+ * examples/handcrafted/Display/RateGen/RateGen_svnt.cpp:
+ * examples/handcrafted/Display/RateGen/RateGen_svnt.h:
+ * examples/handcrafted/Display/RateGen/RateGen_svnt.inl: Added
+ more handcrafted servant glue code for RateGen component.
+
+ * docs/templates/CIAO_Glue_Session_Template.cpp:
+ * docs/templates/CIAO_Glue_Session_Template.h:
+ * docs/templates/CIAO_Glue_Session_Template.inl:
+ * docs/templates/Executor.idl: Updated and fixed CIDL template
+ code based on results from using these templates manually.
+
+Wed Mar 12 00:03:56 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * examples/handcrafted/Display/HUDisplay_svnt.h:
+ * examples/handcrafted/Display/HUDisplay_svnt.cpp: Added forgotten
+ _get_component implementation.
+
+Tue Mar 11 22:47:06 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * examples/handcrafted/Display/HUDisplayE.idl: Removed redundant
+ operations that have already been defined in the facet interface.
+
+ * examples/handcrafted/Display/HUDisplay_svnt.cpp:
+ * examples/handcrafted/Display/HUDisplay_svnt.h:
+ * examples/handcrafted/Display/HUDisplay_svnt.inl: Added hand
+ generated code based on the glue code template in
+
+ docs/templates/
+
+ * docs/templates/CIAO_Glue_Session_Template.cpp:
+ * docs/templates/CIAO_Glue_Session_Template.h:
+ * docs/templates/CIAO_Glue_Session_Template.inl: Updated template
+ code based on results from hand generated code.
+
+Tue Mar 11 15:18:52 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * bin/generate_component_mpc.pl: Added this new to auto-generate
+ the mpc files for a single component implementation. The mpc
+ file generated by the script should work for most simple
+ component implementation, without modification and can serve as
+ a template for more complicated ones. This script also
+ generates hints that can be fed back to a shell to create the
+ necessary export definition files.
+
+ * docs/todo.html: Added improvement items that can be done for
+ generate_component_mpc.pl.
+
+ * bin/gen_export_files.cmd: Removed. The new
+ generate_component_mpc script provides more accurate hints on
+ how to create export files.
+
+
+ Renamed and reorganized all files in the following
+ multi-component example according to the guideline I set in
+ docs/new_component.html.
+
+ * examples/handcrafted/Display/Display.mpc:
+ * examples/handcrafted/Display/HUD_skel_export.h:
+ * examples/handcrafted/Display/HUD_stub_export.h:
+ * examples/handcrafted/Display/GPS/GPS_skel_export.h:
+ * examples/handcrafted/Display/NavDisplay/NavDisplay_skel_export.h:
+ * examples/handcrafted/Display/RateGen/RateGen_skel_export.h:
+ Removed.
+
+ * examples/handcrafted/Display/HUDisplay.mpc:
+ * examples/handcrafted/Display/HUDisplay_stub_export.h:
+ * examples/handcrafted/Display/HUDisplay_svnt_export.h:
+ * examples/handcrafted/Display/GPS/GPS_exec_export.h:
+ * examples/handcrafted/Display/GPS/GPS_svnt_export.h:
+ * examples/handcrafted/Display/NavDisplay/NavDisplay_exec_export.h:
+ * examples/handcrafted/Display/NavDisplay/NavDisplay_svnt_export.h:
+ * examples/handcrafted/Display/RateGen/RateGen_exec_export.h:
+ * examples/handcrafted/Display/RateGen/RateGen_svnt_export.h:
+ Modified.
+
+ * examples/handcrafted/Display/HUDisplay.idl:
+ * examples/handcrafted/Display/HUDisplayE.idl:
+ * examples/handcrafted/Display/GPS/GPS.mpc:
+ * examples/handcrafted/Display/GPS/GPS_stub_export.h:
+ * examples/handcrafted/Display/NavDisplay/NavDisplay.mpc:
+ * examples/handcrafted/Display/NavDisplay/NavDisplay_stub_export.h:
+ * examples/handcrafted/Display/RateGen/RateGen.idl:
+ * examples/handcrafted/Display/RateGen/RateGen.mpc:
+ * examples/handcrafted/Display/RateGen/RateGen_stub_export.h:
+ Added.
+
+Tue Mar 11 11:41:39 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * bin/generate_component_mpc.pl: Added a MPC file generater perl
+ script for creating new MPC definitions for single component
+ implementations.
+
+Sun Mar 09 14:38:59 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * docs/new_components.html: Added this new document to describe
+ files involved in creating a new components.
+
+ * docs/com-impl.html: Added a link to the new component
+ implementation. document
+
+ * docs/imgs/File-Gen-Existing.png:
+ * docs/imgs/File-Gen-Future.png:
+ * docs/imgs/File_Generation_Flow.vsd: Updated the tools/files
+ collaboration diagram to reflect the latest plan.
+
+ * examples/handcrafted/Hello/hello.mpc: Updated the MPC file to
+ make sure it works properly. We need to figure out a way to
+ auto-generate a template of this file.
+
+Thu Mar 06 20:29:42 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ The following changes integrate the XML parsing of softpkg
+ descriptors with the daemon management framework so we can now
+ instantiate and test a single component implementation using
+ its softpkg descriptor.
+
+ * ciao/ComponentServer_Impl.cpp:
+ * ciao/ComponentServer_Impl.h:
+ * ciao/ComponentServer_Impl.inl: Added a cached
+ ComponentInstallation reference so we can pass it to the
+ containers this ComponentServer creates.
+
+ * ciao/Container_Impl.cpp:
+ * ciao/Container_Impl.h: Added an extra argument in init for
+ taking in the ComponentInstallation reference. Also modified
+ the install_home related mechanisms to use ComponentInstallation
+ interface to acquire the actual implementation "locations".
+
+ * tools/ServerActivator/ServerActivator_test_client.cpp:
+ * tools/ComponentServer/ComponentServer_test_client.cpp: Changed
+ to use UUID.
+
+ * tools/XML_Helpers/Cascadable_DocHandler.h: Removed a redundant
+ export decl.
+
+ * tools/Daemon/DaemonController.dsp: Added files from the
+ XML_Helpers directories for the added XML handling capability.
+
+ * tools/Daemon/CIAO_Daemon.cpp:
+ * tools/Daemon/Softpkg_Commands.cpp:
+ * tools/Daemon/Softpkg_Commands.h: Added new commands to start and
+ terminate ComponentServer for running one component home.
+
+ * examples/handcrafted/Hello/CIAO_Installation_Data.ini:
+ * examples/handcrafted/Hello/client.cpp:
+ * examples/handcrafted/Hello/hello.ssd:
+ * examples/handcrafted/Hello/run_test.pl: Changed and set up the
+ test to start up a ComponentServer via Daemon.
+
+Wed Mar 05 21:43:44 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ Moved all Daemon controller related classes into CIAO::Daemon_i
+ namespace.
+
+ * tools/Daemon/Softpkg_Commands.cpp:
+ * tools/Daemon/Softpkg_Commands.h:
+ * tools/Daemon/Softpkg_Commands.inl: Added two new "start_home"
+ and "end_home" command for starting up and shutting down a
+ ComponentServer for a single component home. Still need
+ implementation.
+
+ * tools/Daemon/DaemonController.cpp:
+ * tools/Daemon/DaemonController.dsp:
+
+ * tools/Daemon/controller_i.cpp:
+ * tools/Daemon/controller_i.h:
+ * tools/Daemon/controller_i.inl:
+ * tools/Daemon/Daemon_Commands.cpp:
+ * tools/Daemon/Daemon_Commands.h:
+ * tools/Daemon/Daemon_Commands.inl: Moved most of the Daemon
+ controlling commands into this file.
+
+Tue Mar 04 20:40:21 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * examples/handcrafted/Display/RateGen/RateGenE.idl: Fixed a typo.
+ Thanks to Jeff Gray <gray@cis.uab.edu> for pointing it out.
+
+Thu Feb 27 22:15:48 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * ciao/ComponentServer_Impl.h: Fixed a cut-n-paste error in a comment.
+
+ * ciao/ServerActivator_Impl.cpp:
+ * ciao/ServerActivator_Impl.h: Changed to cache an IOR to
+ the ComponentInstallation interface and pass the IOR with
+ -ORBInitRef option to the ComponentServer. We will need it when
+ installing a component home in the container.
+
+ * examples/handcrafted/Hello/hello_servants.cpp:
+ * examples/handcrafted/Hello/hello_servants.h: Removed inheriting
+ the component specific context from the SessionContext local
+ interface. This component example should be run as Service
+ component, not Session component.
+
+ * tools/ServerActivator/README:
+ * tools/Daemon/CIAO_Daemon.cpp:
+ * tools/ServerActivator/ServerActivator.cpp: Changed to propagate
+ the ComponentInstallation somehow.
+
+ * tools/ServerActivator/ServerActivator_test_client.cpp: Removed a
+ redundant $Id$ tag.
+
+Sat Feb 22 23:45:52 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * docs/releasenotes.html:
+ * docs/todo.html: Updated information regarding different
+ component deployment schemes.
+
+ * examples/handcrafted/Hello/hello.csd:
+ * examples/handcrafted/Hello/hello.ssd: Fixed syntax errors.
+
+ * tools/XML_Helpers/Softpkg_Handlers.cpp:
+ * tools/XML_Helpers/Softpkg_Handlers.h:
+ * tools/XML_Helpers/Softpkg_Handlers.inl:
+ * tools/XML_Helpers/XML_Utils.cpp:
+ * tools/XML_Helpers/XML_Utils.h:
+ * tools/XML_Helpers/XML_Utils.inl: Added these new file to extract
+ necessary information to install the component specified in a
+ .csd (component softpkg descriptor) file. The
+ Softpkg_Handlers.* contain the XML Handler(s) for parsing the
+ csd document and XML_Utils.* contain the file Assembly tools can
+ use to extract the needed info. Notice that the XML handler
+ currently don't do a lot of validation.
+
+ * tools/XML_Helpers/Cascadable_DocHandler.cpp:
+ * tools/XML_Helpers/Cascadable_DocHandler.h:
+ * tools/XML_Helpers/Cascadable_DocHandler.i: Added error handling
+ functions and allows it to accept a Locator from the parser to
+ show error location.
+
+ * tools/XML_Helpers/Svcconf.dsp:
+ * tools/XML_Helpers/Svcconf.dsw: Renamed these files to the
+ following:
+
+ * tools/XML_Helpers/XMLHelpers.dsp:
+ * tools/XML_Helpers/Helper_Test.dsw:
+ * tools/XML_Helpers/main.cpp: Added new files into the project
+ file and changed the project and workspace name.
+
+
+Thu Feb 20 22:15:08 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ Manually generated the following XML descriptors. These are the
+ minimum to install a component. Currently, I just get the UUID
+ using win32's UUIDGEN or GUIDGEN.
+
+ * examples/handcrafted/Hello/hello.csd: Component softpkg descriptor.
+
+ * examples/handcrafted/Hello/hello.ssd: CIAO's servant softpkg
+ descriptor.
+
+ * examples/handcrafted/Hello/hello.ccd: CORBA component descriptor.
+
+Wed Feb 19 13:30:19 2003 Boris Kolpackov <boris@isis-server.isis.vanderbilt.edu>
+
+ * CIDLC/DesignNotes: Reorganized stuff a bit again and added some
+ comments on Jeff's comments.
+
+Mon Feb 17 17:47:55 2003 Boris Kolpackov <boris@isis-server.isis.vanderbilt.edu>
+
+ * CIDLC/DesignNotes: Reorganized stuff a bit and added some new
+ ideas/notes.
+
+Sun Feb 16 21:30:42 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * docs/releasenotes.html: Updated release info with the following.
+
+ * ciao/ComponentInstallation_Impl.cpp:
+ * ciao/ComponentInstallation_Impl.h: Fixed a problem of empty
+ persistent backing store file. I need to store the
+ configuration data under a subsection (as oppose to the root
+ section.)
+
+ * ciao/CIAO_Server.dsp:
+ * ciao/Daemon.idl:
+ * ciao/Daemon_Impl.cpp:
+ * ciao/Daemon_Impl.h:
+ * ciao/Daemon_Impl.inl: Added a generic server process control
+ interface that provides operations to query available service
+ interfaces and to shutdown the server process.
+
+ * tools/Daemon/CIAO_Daemon.cpp:
+ * tools/Daemon/CIAO_Daemon.dsp:
+ * tools/Daemon/CIAO_Installation_Data.ini:
+ * tools/Daemon/Daemon.dsw:
+ * tools/Daemon/README:
+ * tools/Daemon/DaemonController.cpp:
+ * tools/Daemon/DaemonController.dsp:
+ * tools/Daemon/controller_i.cpp:
+ * tools/Daemon/controller_i.h:
+ * tools/Daemon/controller_i.inl: Added new per-host CIAO_Daemon
+ implementaion which offer both ComponentInstallation interface
+ which manages the local component implementation cache, and
+ ServerActivator interface which the Assembly framework interacts
+ with to spawn new ComponentServer processes. See the README
+ file in this directory and releasenotes.html for more details.
+
+ There's also a DaemonController tool which provides a command
+ line interface to control the daemon process and to interact
+ with ComponentInstallation and ServerActivation interfaces.
+
+Sat Feb 15 22:54:11 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * ciao/CIAO_Server.dsp:
+ * ciao/ComponentInstallation_Impl.cpp:
+ * ciao/ComponentInstallation_Impl.h:
+ * ciao/ComponentInstallation_Impl.inl: Filled in the
+ implementation for ComponentInstallation interface. We
+ currently only provide a naive implemntation for this
+ interface. It currently manages the pathnames to various
+ component implementations so a Container can fetch a
+ implementation from its UUID.
+
+ * examples/handcrafted/Hello/hello_servants.dsp: Added CIAO_server
+ to the list of link libraries. I need to move the base
+ container implementation from the CIAO_Server library to
+ CIAO_Container library.
+
+Fri Feb 14 23:15:39 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * docs/todo.html: Added info on why the Assembly tools should
+ be responsible of the act of home registration.
+
+ * ciao/Container_Impl.cpp:
+ * ciao/ServerActivator_Impl.cpp:
+ * ciao/ComponentServer_Impl.cpp: Changed the use of ACE_NEW_RETURN
+ to ACE_NEW_THROW_EX.
+
+ * ciao/ComponentServer_Impl.h: Cosmetic changes.
+
+ * examples/handcrafted/Hello/hello_servants.cpp:
+ * examples/handcrafted/Hello/hello_servants.h: Fixed <unsubscribe>
+ signature based on RTF 1.1.
+
+ * tools/ComponentServer/ComponentServer.cpp: Added comments
+ explaining why we are not init'ing the component server right
+ now.
+
+ * tools/ServerActivator/README:
+ * examples/handcrafted/Hello/client.cpp:
+ * tools/ServerActivator/ServerActivator_test_client.cpp: Forced in
+ hack to test out installing the HelloWorldHome using the new
+ ServerActivator -> ComponentServer -> Container interfaces.
+
+ * tools/Simple_Component_Server/Simple_Component_Server.cpp: Fix
+
+Fri Feb 14 17:10:50 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * docs/ConfigValues.html: Updated more supported ConfigValues types.
+
+ * docs/releasenotes.html:
+ * docs/todo.html:
+
+ * ciao/Client_init.cpp:
+ * ciao/Server_init.cpp:
+ * ciao/Client_init.h:
+ * ciao/Server_init.h: Removed "ciao/" from the include paths. We
+ now always include ciao core files as they are specified in the
+ include path directly.
+
+ * ciao/CIAO_Server.dsp:
+ * ciao/CIAO_Servers.idl:
+ * ciao/ComponentServer_Impl.cpp:
+ * ciao/ComponentServer_Impl.h:
+ * ciao/ComponentServer_Impl.inl:
+ * ciao/Container_Base.cpp:
+ * ciao/Container_Base.h:
+ * ciao/Container_Impl.cpp:
+ * ciao/Container_Impl.h:
+ * ciao/Container_Impl.inl:
+ * ciao/Object_Set_T.cpp:
+ * ciao/Object_Set_T.h:
+ * ciao/Object_Set_T.inl:
+ * ciao/ServerActivator_Impl.cpp:
+ * ciao/ServerActivator_Impl.h:
+ * ciao/ServerActivator_Impl.inl: Filled in more implementations.
+
+ * tools/ServerActivator/README:
+ * tools/ServerActivator/ServerActivator.cpp:
+ * tools/ServerActivator/ServerActivator.dsp:
+ * tools/ServerActivator/ServerActivator.dsw:
+ * tools/ServerActivator/ServerActivator_test_client.cpp:
+ * tools/ServerActivator/ServerActivator_test_client.dsp: Added a
+ ServerActivator implementation.
+
+ * tools/ComponentServer/ComponentServer.cpp:
+ * tools/ComponentServer/ComponentServer.dsp:
+ * tools/ComponentServer/ComponentServer.dsw:
+ * tools/ComponentServer/ComponentServer_test_client.cpp:
+ * tools/ComponentServer/ComponentServer_test_client.dsp:
+ * tools/ComponentServer/README: Added a more comprehensive
+ ComponentServer implementation.
+
+Sun Feb 09 20:39:05 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * docs/todo.html: Added more todo items as we go along. :)
+
+ * ciao/Component_Base.idl:
+ * ciao/CCM_Deployment.idl: Changed the create method in
+ ::Components::Deployment::AssemblyFactory to create_assembly per
+ CCM RTF 1.1.
+
+ * ciao/Assembly_Impl.cpp:
+ * ciao/Assembly_Impl.h:
+ * ciao/Assembly_Impl.inl: CCM RTF 1.1 changes. Also added other
+ test code in the file and explained how to create an Assembly
+ object.
+
+ * ciao/CIAO_Core.mpc:
+ * ciao/CIAO_Client.dsp:
+ * ciao/CIAO_Server.dsp:
+ * ciao/CIAO_Value.idl: Added a CIAO internal cookie valuetype so
+ we can downcast the incoming ::Components::Cookie back to CIAO's
+ internal implementation type CIAO::Cookie easily. The original
+ "brute force cast" didn't work and CIAO::Cookie also provides a
+ way to fish out the internal octetseq we need internally.
+
+ * ciao/Cookies.cpp:
+ * ciao/Cookies.h:
+ * ciao/Cookies.inl: Changed to inherit the internal cookie
+ implementation from OBV_CIAO::Cookie instead of
+ OBV_Components::Cookie. Also changed the extract method to be
+ static.
+
+ * ciao/Client_init.cpp: Added a new valuefactory to create
+ ::Components::Cookie valuetype when receiving CIAO::Cookie from
+ the server. This should really be handled by supporting
+ truncatable valuetype in TAO.
+
+ * docs/templates/CIAO_Glue_Session_Template.inl: Applied some of
+ the bug fixes from using Active Map and Cookie. These template
+ files need to be reviewed further.
+
+ * tests/temp/README:
+ * tests/temp/assembly/README:
+ * tests/temp/assembly/assembly.dsw:
+ * tests/temp/assembly/client.cpp:
+ * tests/temp/assembly/client.dsp:
+ * tests/temp/assembly/control.idl:
+ * tests/temp/assembly/control.mpc:
+ * tests/temp/assembly/run_test.pl:
+ * tests/temp/assembly/server.cpp:
+ * tests/temp/assembly/server.dsp: Added this test to make sure the
+ demonstrate how to use AssemblyFactory and Assembly interface,
+ and the Assembly's are being managed properly. More
+ importantly, I used this test to make sure the internal
+ implementation for Cookie and Active_Object_Map are working
+ correctly.
+
+ * tools/XML_Helpers/Svcconf.dsp:
+ * tools/XML_Helpers/Svcconf.dsw:
+ * tools/XML_Helpers/Svcconf_Handler.cpp:
+ * tools/XML_Helpers/Svcconf_Handler.h:
+ * tools/XML_Helpers/Svcconf_Handler.i:
+ * tools/XML_Helpers/main.cpp:
+ * tools/XML_Helpers/svc.conf.xml: Added an example to demonstrate
+ how to write a subclass of Cascadable_DocHandler and how to use
+ the Skip_DocHandler. Just so I won't forget how to use them.
+
+Sat Feb 08 20:45:20 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * ciao/*: WiP intermediate checkins.
+
+ * ciao/Object_Set_T.h:
+ * ciao/Object_Set_T.cpp (object_in_set): Added a new method to
+ check if an object is already in the set or not.
+
+Fri Feb 07 23:35:35 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * ciao/Object_Set_T.h:
+ * ciao/Object_Set_T.i:
+ * ciao/Object_Set_T.cpp: Added a naive implementation of an object
+ reference set. It is naive because it simply keeps object
+ references in an objref_var array without checking for
+ duplication. More importantly, it takes O(n) to to look for an
+ object reference and return it. What we really need is a
+ thread-safe hash_set<> like class here. Since this is mostly
+ used only during setup/assemble time for a CIAO application,
+ i.e., not on critical path, this class serves as a place holder
+ for later, more efficient implementation.
+
+ This new class is needed to support ServerActivator,
+ ComponentServer, and Container interface in
+ Components::Deployment module.
+
+ * docs/ConfigVAlues.html: Added this new document page to record
+ what configuration values can be used to initialize
+ ComponentServer's and Container's.
+
+ * docs/todo.html: Documented more future todo tasks and ideas.
+
+Tue Feb 04 23:10:56 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * docs/todo.html: Added a new item descirbing things that need to
+ be done for component/home configuration using CCM's XML
+ property files.
+
+ * tools/XML_Helpers/Handler-Interaction.png:
+ * tools/XML_Helpers/Handler-Interaction.vsd:
+ * tools/XML_Helpers/README: Files that document how to use
+ Cascadable_DocHandler and interactions among handlers of
+ different layers.
+
+ * tools/XML_Helpers/Cascadable_DocHandler.cpp:
+ * tools/XML_Helpers/Cascadable_DocHandler.h:
+ * tools/XML_Helpers/Cascadable_DocHandler.i: A
+ ACEXML_DefaultHandler subclass which can be easily cascaded
+ together to handle hierarchical XML document structure. There
+ is also a Skip_DocHandler class which subclasses from
+ Cascadable_DocHandler and can be used to skip over some certain
+ XML tags completely. These helper classes should probably be
+ collected under ACEXML in the future.
+
+Sun Feb 02 21:05:39 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * ciao/Cookies.cpp (insert): Fixed a warning.
+
+ * ciao/CCM_Base.idl: Changed to include <orb.idl> instead of <corba.pidl>.
+
+ * ciao/CCM_Event.idl: Fixed a typo I put in last.
+
+Sun Feb 02 15:23:26 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * docs/XML/componentassembly.dtd:
+ * docs/XML/corbacomponent.dtd:
+ * docs/XML/properties.dtd:
+ * docs/XML/softpkg.dtd: Updated these files with the ones from my
+ web page. They are now in-sync with the latest RTF.
+
+Wed Jan 29 13:27:01 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/DesignNotes:
+
+ Added a list of items from the IDL compiler that need redesign and
+ can perhaps be done incrementally in the CIDL compiler, and
+ eventually integrated back into the IDL compiler.
+
+Wed Jan 22 16:05:18 2003 Boris S Kolpackov <boris@isis-server.isis.vanderbilt.edu>
+
+ * CIDLC/DesignNotes: added some more ideas.
+
+Wed Jan 22 13:54:12 2003 Boris S Kolpackov <boris@isis-server.isis.vanderbilt.edu>
+
+ * CIDLC/DesignNotes: added this file to capture and document CIDL
+ complier design ideas/decisions.
+
+Tue Jan 21 16:20:44 2003 Boris S Kolpackov <boris@isis-server.isis.vanderbilt.edu>
+
+ * tools/CIDLC:
+ * CIDLC: moved CIDLC directory one level up.
+
+Mon Jan 13 15:23:09 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * docs/templates/Executor.idl: Added meta-code for user-defined
+ oeprations, factory operations, and finder operations.
+
+ * docs/templates/CIAO_Glue_Session_Template.cpp:
+ * docs/templates/CIAO_Glue_Session_Template.h:
+ * docs/templates/CIAO_Glue_Session_Template.inl: Filled in the
+ rest of the CIDL generated Servant Glue code templates.
+
+Mon Jan 13 11:18:37 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * ciao/Component_Base.idl:
+ * ciao/CCM_Base.idl: Based on Components 1.1 RTF
+ Events::unsubscribe operations now return the unsubscribed
+ consumber object reference instead of void.
+
+ * docs/templates/CIAO_Glue_Session_Template.cpp:
+ * docs/templates/CIAO_Glue_Session_Template.h:
+ * docs/templates/CIAO_Glue_Session_Template.inl: Filled in most of
+ the operations for component servant. Only opeations left
+ unimplemented include Events::get_*_publishers which I will
+ implement in the *_Context class later.
+
+ There are several other oeprations that throw NO_IMPLEMENT
+ exception or are no-op currently. Missing them probably is okay
+ for now. Next up, Home Servant template.
+
+Mon Jan 13 00:27:03 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * docs/templates/CIAO_Glue_Session_Template.cpp:
+ * docs/templates/CIAO_Glue_Session_Template.h:
+ * docs/templates/CIAO_Glue_Session_Template.inl: Filled in a great
+ more generated code. This is almost done, finally.
+
+ * docs/templates/CIAO_Glue_Session_Template.cpp:
+ * docs/templates/CIAO_Glue_Session_Template.h:
+ * docs/templates/CIAO_Glue_Session_Template.inl:
+ * docs/templates/Executor.idl: Changed to lead template comments
+ with '##' instead of # to diffentiate them from preprocessor
+ directives that we should generate.
+
+ * ciao/HomeRegistrar_i.inl:
+ * ciao/HomeRegistrar_i.cpp: Fixed incorrect uses of exception macros.
+
+ * ciao/Cookies.h:
+ * ciao/Cookies.cpp: Added a new insert method which "encode" an
+ Active_Objref_Map key into the Cookie.
+
+ * ciao/Container_Base.inl:
+ * ciao/Container_Base.cpp:
+ * ciao/Container_Base.h: Added a new get_objref method which
+ basically allow us to get the component reference using POA's
+ servant_to_reference operation. Added a new inline file and
+ fixed some incorrect uses of exception macros.
+
+ * ciao/Component_Base.idl:
+ * ciao/CCM_Base.idl: Based on Components 1.1 RTF
+ Receptacles::disconnect operations now return the disconnected
+ object reference instead of void.
+
+Fri Jan 10 12:03:00 2003 Boris S Kolpackov <boris@isis-server.isis.vanderbilt.edu>
+
+ * tools/CCIDL:
+ * tools/CIDLC:
+ * tools/CIDLC/README: Renamed CCIDL to CIDLC. Added some
+ explanations about naming convention choosen for CIDL compiler.
+
+Thu Jan 09 00:57:37 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * docs/templates/cidl_template.cidl: Added an example CIDL file.
+
+ * docs/templates/CIAO_Glue_Session_Template.h:
+ * docs/templates/CIAO_Glue_Session_Template.inl:
+ * docs/templates/CIAO_Glue_Session_Template.cpp: Added more
+ implementation code.
+
+Wed Jan 08 16:48:28 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * docs/templates/CIAO_Glue_Session_Template.h: Added the complete
+ list of operations that needs to be supported. Next up, the
+ implementation templates.
+
+ * ciao/Active_Objref_Map.cpp:
+ * ciao/Active_Objref_Map.h: Defined a typedef called
+ CIAO::Active_Objref_Map for managing CORBA::Object_var's using
+ the ACE_Active_Map_Manager and instantiate the template.
+
+ * ciao/Cookies.cpp:
+ * ciao/Cookies.h: Added insertion/extraction of
+ ACE_Active_Map_Manager_Key operations.
+
+Tue Jan 07 23:28:28 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * ciao/CIAO_common.h: Added a new file to collect common CIAO
+ macros.
+
+ * ciao/CIAO_Component_i.cpp:
+ * ciao/CIAO_Component_i.h: Removed.
+ * ciao/Client_init.cpp:
+ * ciao/Client_init.h: The old CIAO_client_init in
+ CIAO_Component_i is now called Client_init under CIAO namespace.
+ This function initlializes the value factories for client side ORB.
+
+ * ciao/Server_init.cpp:
+ * ciao/Server_init.h: Added new function Server_init under CIAO
+ namespace to initialize server side value factories for server
+ side ORB.
+
+ * ciao/Cookies.cpp:
+ * ciao/Cookies.h:
+ * ciao/Cookies.inl: Added server-side implementation of
+ Components::Cookie called CIAO::Map_Key_Cookie. This
+ implementation is only used within the containers (i.e., server
+ side). Client doesn't need to know how to interpret a Cookie.
+
+ * ciao/Container_Base.h:
+ * ciao/HomeRegistrar_i.h: Fixed various ACE-guideline conformity
+ problems.
+
+ * ciao/CCM_Core.mpc:
+ * ciao/CIAO_Client.dsp:
+ * ciao/CIAO_Container.dsp:
+ * ciao/CIAO_Server.dsp:
+ * ciao/Makefile.client:
+ * ciao/Makefile.container:
+ * ciao/Makefile.server: Updated various makefiles/projects.
+
+Tue Jan 07 07:48:02 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * ciao/Container_Base.cpp (install_servant): Changed to decrease
+ the refcount of servant by one to make sure servants get
+ "released" properly.
+
+Fri Jan 03 11:27:12 2003 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * docs/templates/Executor.idl: This pseudo-meta IDL template file
+ summarizes the standard executor mapping and serves as a
+ template for CCIDL compiler.
+
+Sun Dec 22 23:12:49 2002 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * examples/handcrafted/Display/RateGen/RateGen.idl:
+ * examples/handcrafted/Display/GPS/GPS.idl:
+ * examples/handcrafted/Display/NavDisplay/NavDisplay.idl:
+ * examples/handcrafted/Display/HUDisplay.idl:
+ * examples/handcrafted/Display/Display.mpc: Added more files for
+ this multi-component example.
+
+ The followings should go to the ChangeLog under $(ACE_ROOT)
+
+ * bin/MakeProjectCreator/configs/ciao_client.mpc:
+ * bin/MakeProjectCreator/configs/ciao_component.mpc:
+ * bin/MakeProjectCreator/configs/ciao_server.mpc: Added libpaths
+ defintions.
+
+Sat Dec 21 15:09:55 2002 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * tools/Simple_Component_Server/Simple_Component_Server.dsp:
+ * examples/handcrafted/Hello/run_test.pl: Changed to generate
+ Simple_Component_Server executable in the project directory.
+
+ * examples/handcrafted/Hello/hello.mpc:
+ * ciao/CCM_Core.mpc:
+ * tools/Simple_Component_Server/Simple_Component_Server.mpc:
+ Created MPC specifications.
+
+ The followings should go to the ChangeLog under $(ACE_ROOT)
+
+ * bin/MakeProjectCreator/configs/ciao_client.mpc:
+ * bin/MakeProjectCreator/configs/ciao_component.mpc:
+ * bin/MakeProjectCreator/configs/ciao_server.mpc: Created MPC
+ templates for CIAO client, component implmentation, and server
+ tools.
+
+Fri Dec 20 23:09:53 2002 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * ciao/Makefile.server: Added HomeRegistrar.idl and
+ HomeRegistrar_i to the makefile.
+
+ * tools/Simple_Component_Server/Makefile: Added a new makefile.
+
+Fri Dec 20 20:32:53 2002 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * ciao/CCM_Component.idl:
+ * ciao/CCM_Container.idl:
+ * ciao/Container_Base.cpp:
+ * ciao/Makefile.client:
+ * ciao/Makefile.container:
+ * ciao/Makefile.server: Fixed compilation erros and Makefiles on
+ Linux.
+
+Thu Dec 19 20:44:39 2002 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * examples/handcrafted/Display/README:
+ * examples/handcrafted/Display/Configuration-0.png: Added new
+ files explaining the purpose of the the new example and what it
+ will do.
+
+Wed Dec 18 20:37:06 2002 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * examples/handcrafted/Hello/run_test.pl: Added a script to
+ automate running this stuff.
+
+ * examples/handcrafted/Hello/README: Replaced the reference to
+ CIAO_single_com_server to Simple_Component_Server.
+
+Tue Dec 17 23:30:59 2002 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * tools/CIAO_single_com_server/*:
+ * tools/Simple_Component_Server/*: Changed the name of the simple
+ server from CIAO_single_com_server to Simple_Component_Server.
+ The original name didn't make too much sense at all.
+
+Tue Dec 17 22:49:32 2002 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * ciao/CIAO_Server.dsp:
+ * ciao/HomeRegistrar.idl:
+ * ciao/HomeRegistrar_i.{h,inl,cpp}: Added a NameService based
+ HomeFinder extension. This interface defines the registration
+ operation, which is not defined in the CCM specification. This
+ is part of the CIAO_Server library.
+
+ * tools/CIAO_single_com_server/CIAO_single_com_server.cpp: Changed
+ to register installed components with the HomeRegistrar instead
+ of dumping the IOR into a file. The only thing that gets dumped
+ into a file now is the IOR for the HomeFinder interface which
+ HomeRegistrar inherits.
+
+ * examples/handecrafted/Hello/README: Added information on the
+ procedures one should follow to run this test.
+
+ * examples/handcrafted/Hello/config: Updated the component server
+ config file to include the repo ids and canonical name for the
+ home.
+
+ * examples/handcrafted/Hello/client.dsp:
+ * examples/handcrafted/Hello/client.cpp: Changed to use acquire
+ the home object reference thru the HomeFinder interface, instead
+ of passing it in explicitly.
+
+ * examples/handcrafted/Hello/hello.dsw:
+ * examples/handcrafted/Hello/server.cpp:
+ * examples/handcrafted/Hello/server.dsp: Removed server from the
+ workspace. As we now have a true component server, we no longer
+ need a server process for this example.
+
+
+Mon Dec 16 10:56:46 2002 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * tools/CIAO_single_com_server/CIAO_single_com_server.cpp: Fixed
+ command line argument parsing problem. We now process the
+ command line argument for ORB correctly.
+
+Sun Dec 15 23:54:16 2002 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * tools/CIAO_single_com_server/*: Added a new prototype component
+ server. We can now run session components on a generic server
+ using a proprietary config file for component installation.
+
+ * ciao/Container_Base.{h,cpp}: Fixed incorrect usage of ACE_DLL
+ where executor and servant Dlls got unloaded prematurely.
+
+Wed Dec 11 14:39:08 2002 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ A lot have changed since last ChangeLog entry. Most of the
+ changes are intermediate so I didn't even try to record them.
+
+ * ciao/CCMCore.dsw:
+ * ciao/CIAO_Container.dsp:
+ * ciao/CIAO_Server.dsp: Moved Container_Base.* from CIAO_Container
+ library to CIAO_Server library. These classes in Container_Base
+ are really run-time container management interfaces than
+ container interfaces themselves.
+
+ * ciao/Container_Base.cpp:
+ * ciao/Container_Base.h: Added _ciao_install_home which enable
+ installing a component home from relevant DLL named and entry
+ points. We are not managing the lifecycle of DLL objects in the
+ implementation yet (we just never unlink DLL. :) This will have
+ to be changed in the future.
+
+ * examples/handcrafted/Hello/hello_servants.cpp:
+ * examples/handcrafted/Hello/hello_servants.h: Added an entry
+ point "create_HelloWorld_Servant" so we can use the glue code
+ with the new "generic server."
+
+ * examples/handcrafted/Hello/server.cpp:
+ * examples/handcrafted/Hello/server.dsp: Reworked the server
+ implementation so that it is no longer tied to a specific
+ component implementation. I.e., we can use the same server to
+ host any *one* component now.
+
+ * examples/handcrafted/Hello/client.dsp: Added a missing link
+ directory.
+
+Tue Nov 05 23:42:04 2002 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * CCMCore.dsp:
+ * CIAO_BaseC.cpp:
+ * CIAO_BaseC.h:
+ * CIAO_BaseC.i:
+ * CIAO_ComponentC.cpp:
+ * CIAO_ComponentC.h:
+ * CIAO_ComponentC.i:
+ * CIAO_ContainerC.cpp:
+ * CIAO_ContainerC.h:
+ * CIAO_ContainerC.i:
+ * CIAO_Container_ExC.cpp:
+ * CIAO_Container_ExC.h:
+ * CIAO_Container_ExC.i:
+ * CIAO_DeploymentC.cpp:
+ * CIAO_DeploymentC.h:
+ * CIAO_DeploymentC.i:
+ * CIAO_EventC.cpp:
+ * CIAO_EventC.h:
+ * CIAO_EventC.i:
+ * CIAO_TransactionC.cpp:
+ * CIAO_TransactionC.h:
+ * CIAO_TransactionC.i:
+ * Component_BaseC.cpp:
+ * Component_BaseC.h:
+ * Component_BaseC.i:
+ * Component_BaseS.cpp:
+ * Component_BaseS.h:
+ * Component_BaseS.i:
+ * Component_BaseS_T.cpp:
+ * Component_BaseS_T.h:
+ * Component_BaseS_T.i:
+ * CosPersistentStateC.cpp:
+ * CosPersistentStateC.h:
+ * CosPersistentStateC.i:
+ * CosPersistentStateS.cpp:
+ * CosPersistentStateS.h:
+ * CosPersistentStateS.i:
+ * CosPersistentStateS_T.cpp:
+ * CosPersistentStateS_T.h:
+ * CosPersistentStateS_T.i: Removed generated files.
+
+ * CCMCore.dsw:
+ * CIAO_CLIENT_Export.h:
+ * CIAO_Client.dsp:
+ * CIAO_Component.pidl:
+ * CIAO_Container.dsp:
+ * CIAO_Container_Export.h:
+ * CIAO_SERVER_Export.h:
+ * CIAO_Server.dsp:
+ * README: Split up the CCM Core library into 3 libraries for clients,
+ component implementations, and component servers.
+
+Thu Sep 26 15:20:13 2002 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * ciao/CCMCore.dsp:
+ * ciao/CIAO_Base.pidl:
+ * ciao/CIAO_BaseC.cpp:
+ * ciao/CIAO_BaseC.h:
+ * ciao/CIAO_BaseC.i:
+ * ciao/CIAO_Component.pidl:
+ * ciao/CIAO_ComponentC.cpp:
+ * ciao/CIAO_ComponentC.h:
+ * ciao/CIAO_ComponentC.i:
+ * ciao/CIAO_Container.pidl:
+ * ciao/CIAO_ContainerC.cpp:
+ * ciao/CIAO_ContainerC.h:
+ * ciao/CIAO_ContainerC.i:
+ * ciao/CIAO_Container_Ex.pidl:
+ * ciao/CIAO_Container_ExC.cpp:
+ * ciao/CIAO_Container_ExC.h:
+ * ciao/CIAO_Container_ExC.i:
+ * ciao/CIAO_Deployment.pidl:
+ * ciao/CIAO_DeploymentC.cpp:
+ * ciao/CIAO_DeploymentC.h:
+ * ciao/CIAO_DeploymentC.i:
+ * ciao/CIAO_Event.pidl:
+ * ciao/CIAO_EventC.cpp:
+ * ciao/CIAO_EventC.h:
+ * ciao/CIAO_EventC.i:
+ * ciao/CIAO_Transaction.pidl:
+ * ciao/CIAO_TransactionC.cpp:
+ * ciao/CIAO_TransactionC.h:
+ * ciao/CIAO_TransactionC.i: Changed to split the component idl
+ file into severl smaller idl files.
+
+ * ciao/Makefile: An empty place holder for now.
+
+ * ciao/Version.h:
+ * ciao/ciao.rc: Added version information files.
+
+Thu Jul 18 22:14:59 2002 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * examples/handcrafted/Philosophers/Philosophers.idl (Example):
+
+Mon Jun 17 17:35:31 2002 Nanbor Wang <nanbor@cs.wustl.edu>
+
+ * docs/index.html:
+ * docs/imgs/CCM.vsd:
+ * docs/imgs/basic-container.png:
+ * docs/imgs/component-basic.png:
+ * docs/imgs/deployment.png:
+ * docs/imgs/extended-container.png:
+ * docs/imgs/home-config.png: Added CIAO documentation.
diff --git a/modules/CIAO/DAnCE/Deployment/CIAO_ExecutionManagerDaemon.idl b/modules/CIAO/DAnCE/Deployment/CIAO_ExecutionManagerDaemon.idl
new file mode 100644
index 00000000000..7f4708baa37
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/CIAO_ExecutionManagerDaemon.idl
@@ -0,0 +1,25 @@
+// $Id$
+
+/**
+ * @file CIAO_ExecutionManagerDaemon.idl
+ *
+ * @brief Simple interface to control the ExecutionManager. This
+ * interface currently provides an additional method called shutdown
+ * to terminate the process cleanly.
+ */
+
+#include "DAnCE/Deployment/Deployment_ExecutionManager.idl"
+
+module DAnCE
+{
+ /**
+ * @brief CIAO Execution Manager Program
+ *
+ * This feature addition is added using inheritance mechanism currently
+ */
+ interface ExecutionManagerDaemon : Deployment::ExecutionManager
+ {
+ // Shutdown the daemon process.
+ oneway void shutdown ();
+ };
+};
diff --git a/modules/CIAO/DAnCE/Deployment/CIAO_Interfaces.mpc b/modules/CIAO/DAnCE/Deployment/CIAO_Interfaces.mpc
new file mode 100644
index 00000000000..9a5da6c324d
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/CIAO_Interfaces.mpc
@@ -0,0 +1,85 @@
+// -*- MPC -*-
+// $Id$
+
+project (CIAO_ExecutionManager_idl): ciaoidldefaults, anytypecode {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=CIAO_EXECUTIONMANAGER_STUB_Export \
+ -Wb,stub_export_include=CIAO_ExecutionManager_stub_export.h \
+ -Wb,skel_export_macro=CIAO_EXECUTIONMANAGER_SKEL_Export \
+ -Wb,skel_export_include=CIAO_ExecutionManager_skel_export.h \
+ -Gxhst -Gxhsk
+
+ IDL_Files {
+ CIAO_ExecutionManagerDaemon.idl
+ }
+}
+
+project (CIAO_ExecutionManager_stub): dance_lib, messaging, dance_executionmanager_stub {
+ sharedname = CIAO_ExecutionManager_stub
+ after += CIAO_ExecutionManager_idl
+ dynamicflags = CIAO_EXECUTIONMANAGER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ CIAO_ExecutionManagerDaemonC.cpp
+ }
+}
+
+project (CIAO_ExecutionManager_skel): dance_lib, messaging, ciao_executionmanager_stub, dance_executionmanager_skel {
+ sharedname = CIAO_ExecutionManager_skel
+ after += CIAO_ExecutionManager_stub
+ dynamicflags = CIAO_EXECUTIONMANAGER_SKEL_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ CIAO_ExecutionManagerDaemonS.cpp
+ }
+}
+
+project (CIAO_NodeManager_idl): ciaoidldefaults, anytypecode {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=CIAO_NODEMANAGER_STUB_Export \
+ -Wb,stub_export_include=CIAO_NodeManager_stub_export.h \
+ -Wb,skel_export_macro=CIAO_NODEMANAGER_SKEL_Export \
+ -Wb,skel_export_include=CIAO_NodeManager_skel_export.h \
+ -Gxhst -Gxhsk
+
+ IDL_Files {
+ CIAO_NodeManagerDaemon.idl
+ }
+}
+
+project (CIAO_NodeManager_stub): dance_lib, messaging, dance_nodemanager_stub {
+ after += CIAO_NodeManager_idl
+ sharedname = CIAO_NodeManager_stub
+
+ dynamicflags = CIAO_NODEMANAGER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ CIAO_NodeManagerDaemonC.cpp
+ }
+}
+
+project (CIAO_NodeManager_skel): dance_lib, messaging, dance_nodemanager_skel, ciao_nodemanager_stub {
+ after += CIAO_NodeManager_idl
+ sharedname = CIAO_NodeManager_skel
+
+ dynamicflags = CIAO_NODEMANAGER_SKEL_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ CIAO_NodeManagerDaemonS.cpp
+ }
+}
+
+
+
diff --git a/modules/CIAO/DAnCE/Deployment/CIAO_NodeManagerDaemon.idl b/modules/CIAO/DAnCE/Deployment/CIAO_NodeManagerDaemon.idl
new file mode 100644
index 00000000000..20b208697b3
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/CIAO_NodeManagerDaemon.idl
@@ -0,0 +1,34 @@
+// $Id$
+
+/**
+ * @file CIAO_NodeManagerDaemon.idl
+ *
+ * @brief Controling interface for managing and controling CIAO daemon.
+ */
+
+#include "DAnCE/Deployment/Deployment_NodeManager.idl"
+
+module DAnCE
+{
+ /**
+ * @brief CIAO daemon process control program.
+ *
+ * @@The Inheritage might cause binary code bloating but
+ * it's an easy way of combining features. In the future we could
+ * move this definition into Deployment.idl.
+ */
+ interface NodeManagerDaemon : Deployment::NodeManager
+ {
+ // Canonical name of this daemon
+ readonly attribute string name;
+
+ // Shutdown the daemon process.
+ oneway void shutdown ();
+
+ /// RACE specific extension.
+ /// Modify the priority of a node application process.
+// long set_priority (in string plan_id,
+// in string cid,
+// in ::Deployment::Sched_Params nm_params);
+ };
+};
diff --git a/modules/CIAO/DAnCE/Deployment/DAnCE_Core.mpc b/modules/CIAO/DAnCE/Deployment/DAnCE_Core.mpc
new file mode 100644
index 00000000000..d905c176b52
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/DAnCE_Core.mpc
@@ -0,0 +1,454 @@
+// -*- MPC -*-
+// $Id$
+
+project(Deployment_IDL) : ciaolib_with_idl, ciao_output, valuetype, gen_ostream {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=Deployment_stub_Export \
+ -Wb,stub_export_include=Deployment_stub_export.h \
+ -Wb,skel_export_macro=Deployment_svnt_Export \
+ -Wb,skel_export_include=Deployment_svnt_export.h
+
+ IDL_Files {
+ idlflags += -SS -Sci
+ Deployment_Packaging_Data.idl
+ Deployment_PlanError.idl
+ DAnCE_Properties.idl
+ }
+
+ IDL_Files {
+ idlflags += -SS
+ Deployment_Base.idl
+ Deployment_Connection.idl
+ Deployment_Data.idl
+ Deployment_DeploymentPlan.idl
+ Deployment_TargetData.idl
+ }
+
+ IDL_Files {
+ idlflags += -GC
+ Deployment_ApplicationManager.idl
+ }
+
+ IDL_Files {
+ Deployment_ResourceCommitmentManager.idl
+ Deployment_StopError.idl
+ Deployment_StartError.idl
+ Deployment_Application.idl
+ Deployment.idl
+ }
+}
+
+project(Deployment_TargetManager_IDL) : ciaolib_with_idl, ciao_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
+
+ IDL_Files {
+ Deployment_TargetManager.idl
+ }
+}
+
+project(Deployment_RepositoryManager_IDL) : ciaolib_with_idl, ciao_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, ciao_output, valuetype, gen_ostream {
+ 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, ciao_output, valuetype, gen_ostream {
+ 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, ciao_output, valuetype, gen_ostream {
+ 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, ciao_output, valuetype, gen_ostream {
+ 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, ciao_output, valuetype, gen_ostream {
+ 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, ciao_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, ciao_output, valuetype, ifr_client, messaging, dance_lib, dance_logger, gen_ostream {
+ 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_ApplicationManagerC.cpp
+ Deployment_ResourceCommitmentManagerC.cpp
+ DAnCE_PropertiesC.cpp
+ }
+}
+
+project(Deployment_DAM_stub) : ciao_output, dance_deployment_stub {
+ 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) : ciao_output, dance_deployment_svnt, dance_domainapplicationmanager_stub {
+ 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) : ciao_output, dance_deployment_stub, dance_domainapplicationmanager_stub {
+ 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) : ciao_output, dance_deployment_svnt, dance_executionmanager_stub {
+ 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) : ciao_output, dance_deployment_stub {
+ 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) : ciao_output, dance_deployment_svnt, dance_domainapplication_stub {
+ 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) : ciao_output, dance_deployment_stub {
+ 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) : ciao_output, dance_deployment_svnt, dance_nodeapplicationmanager_stub {
+ 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) : ciao_output, dance_deployment_stub, dance_nodeapplicationmanager_stub, dance_targetmanager_stub {
+ 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) : ciao_output, dance_deployment_svnt, dance_nodemanager_stub, dance_nodeapplicationmanager_skel {
+ 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) : ciao_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) : ciao_output, dance_deployment_svnt, 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) : ciao_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) : ciao_output, dance_deployment_svnt, 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) : ciao_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) : ciao_output, dance_deployment_svnt, 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_svnt) : dance_deployment_stub, ciao_output, ciaolib_with_idl, portableserver, valuetype, ifr_client, naming, dance_lib, dance_logger, messaging, gen_ostream {
+ sharedname = DAnCE_Deployment_svnt
+ dynamicflags = DEPLOYMENT_SVNT_BUILD_DLL
+ after += Deployment_IDL
+
+ // This is necessary for MPC to pull in rules.ciao.GNU
+ includes += $(CIAO_ROOT)
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Deployment_StopErrorS.cpp
+ Deployment_StartErrorS.cpp
+ Deployment_ApplicationS.cpp
+ DeploymentS.cpp
+ Deployment_ApplicationManagerS.cpp
+ Deployment_ResourceCommitmentManagerS.cpp
+ }
+
+}
diff --git a/modules/CIAO/DAnCE/Deployment/DAnCE_Loader.h b/modules/CIAO/DAnCE/Deployment/DAnCE_Loader.h
new file mode 100644
index 00000000000..cf40a32c288
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/DAnCE_Loader.h
@@ -0,0 +1,26 @@
+// $Id$
+
+/**
+ * @file DAnCE_Loader.h
+ * Abstract class for DAnCE object loaders.
+ */
+
+#ifndef DANCE_LOADDER_H_
+#define DANCE_LOADDER_H_
+
+namespace DAnCE
+{
+ class DAnCE_Object_Loader : public TAO_Object_Loader
+ {
+ public:
+ /// Deliver a usage statement about the object.
+ virtual const char * usage (void) = 0;
+
+ /// Parse args passed to it; is not destructive
+ virtual bool parse_args (int argc, ACE_TCHAR *argv []) = 0;
+ };
+
+
+}
+
+#endif
diff --git a/modules/CIAO/DAnCE/Deployment/DAnCE_Properties.idl b/modules/CIAO/DAnCE/Deployment/DAnCE_Properties.idl
new file mode 100644
index 00000000000..a93fcdc40af
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/DAnCE_Properties.idl
@@ -0,0 +1,43 @@
+/**
+ * $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";
+
+ // 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/Deployment/Deployment.idl b/modules/CIAO/DAnCE/Deployment/Deployment.idl
new file mode 100644
index 00000000000..949903e0af4
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/Deployment.idl
@@ -0,0 +1,34 @@
+// $Id$
+
+#ifndef DEPLOYMENT_IDL
+#define DEPLOYMENT_IDL
+
+module Deployment {
+ exception InvalidProperty {
+ string name;
+ string reason;
+ };
+
+ exception InvalidNodeExecParameter {
+ string name;
+ string reason;
+ };
+
+ exception InvalidComponentExecParameter {
+ string name;
+ string reason;
+ };
+
+ exception NoSuchName {
+ };
+
+ exception LastConfiguration {
+ };
+
+ exception InvalidReference {
+ };
+ //@! in DOCGroup added 1 additional exception and one structure
+};
+
+#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..8367689d7e8
--- /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..215eb31f603
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/Deployment_ApplicationManager.idl
@@ -0,0 +1,35 @@
+// $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;
+ };
+
+ 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..c0db10ecb14
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/Deployment_Base.idl
@@ -0,0 +1,42 @@
+//$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..14aac0c6f77
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/Deployment_DeploymentPlan.idl
@@ -0,0 +1,211 @@
+// $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,
+ _MirrorPort
+ };
+
+ struct ComponentPortDescription {
+ string name;
+ string specificType;
+ ::CORBA::StringSeq supportedType;
+ boolean provider;
+ boolean exclusiveProvider;
+ boolean exclusiveUser;
+ boolean optional;
+ CCMComponentPortKind kind;
+ ::CORBA::StringSeq templateParam;
+ };
+
+ 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;
+
+ //@! in DOCGroup provider, portName and supportesType are removed
+ 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;
+
+ enum PlanLocalityKind {
+ PlanSameProcess,
+ PlanDifferentProcess,
+ PlanNoConstraint
+ };
+
+ struct PlanLocality {
+ PlanLocalityKind constraint;
+ ::CORBA::ULongSeq constrainedInstanceRef;
+ };
+ //@! in DOCGroup not implemented
+ typedef sequence < PlanLocality > PlanLocalities;
+ //@! in DOCGroup localityConstraint is commented
+ 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..b87bba8db31
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/Deployment_NodeManager.idl
@@ -0,0 +1,34 @@
+// $Id$
+#ifndef NODEMANAGER_IDL
+#define 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 /* 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..88b3ff7c291
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/Deployment_Packaging_Data.idl
@@ -0,0 +1,199 @@
+// $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;
+ };
+
+ 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;
+ };
+
+ 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;
+ 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..5000b487590
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/Deployment_RepositoryManager.idl
@@ -0,0 +1,47 @@
+// $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;
+ };
+
+ 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..346c2626950
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/Deployment_ResourceCommitmentManager.idl
@@ -0,0 +1,36 @@
+// $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..f0ec9732afd
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/Deployment_TargetData.idl
@@ -0,0 +1,69 @@
+//$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/Deployment/Deployment_common.h b/modules/CIAO/DAnCE/Deployment/Deployment_common.h
new file mode 100644
index 00000000000..dfd44797069
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/Deployment_common.h
@@ -0,0 +1,63 @@
+// $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"
+#include "Deployment/Deployment_ConnectionC.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;
+
+ /// A struct which captures the compnent binding information, which
+ /// is useful for inter-assembly connection setup
+ typedef struct _component_binding
+ {
+ _component_binding ()
+ {
+ providedReference_ = 0;
+ }
+
+ ACE_CString name_;
+ ACE_CString plan_uuid_;
+ ACE_CString node_;
+
+ Deployment::Connections_var providedReference_;
+
+ bool operator==(const struct _component_binding & comp)
+ {
+ if (this->name_ == comp.name_ &&
+ this->plan_uuid_ == comp.plan_uuid_ &&
+ this->node_ == comp.node_)
+ return true;
+ else
+ return false;
+ }
+ } Component_Binding_Info;
+}
+
+#include /**/ "ace/post.h"
+#endif /* DANCE_COMMON_H */
diff --git a/modules/CIAO/DAnCE/Deployment/Deployment_stub_export.h b/modules/CIAO/DAnCE/Deployment/Deployment_stub_export.h
new file mode 100644
index 00000000000..12985a68b5b
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/Deployment_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl -s Deployment_stub
+// ------------------------------
+#ifndef DEPLOYMENT_STUB_EXPORT_H
+#define DEPLOYMENT_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (DEPLOYMENT_STUB_HAS_DLL)
+# define DEPLOYMENT_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && DEPLOYMENT_STUB_HAS_DLL */
+
+#if !defined (DEPLOYMENT_STUB_HAS_DLL)
+# define DEPLOYMENT_STUB_HAS_DLL 1
+#endif /* ! DEPLOYMENT_STUB_HAS_DLL */
+
+#if defined (DEPLOYMENT_STUB_HAS_DLL) && (DEPLOYMENT_STUB_HAS_DLL == 1)
+# if defined (DEPLOYMENT_STUB_BUILD_DLL)
+# define Deployment_stub_Export ACE_Proper_Export_Flag
+# define DEPLOYMENT_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define DEPLOYMENT_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* DEPLOYMENT_STUB_BUILD_DLL */
+# define Deployment_stub_Export ACE_Proper_Import_Flag
+# define DEPLOYMENT_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define DEPLOYMENT_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* DEPLOYMENT_STUB_BUILD_DLL */
+#else /* DEPLOYMENT_STUB_HAS_DLL == 1 */
+# define Deployment_stub_Export
+# define DEPLOYMENT_STUB_SINGLETON_DECLARATION(T)
+# define DEPLOYMENT_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* DEPLOYMENT_STUB_HAS_DLL == 1 */
+
+// Set DEPLOYMENT_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (DEPLOYMENT_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define DEPLOYMENT_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define DEPLOYMENT_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !DEPLOYMENT_STUB_NTRACE */
+
+#if (DEPLOYMENT_STUB_NTRACE == 1)
+# define DEPLOYMENT_STUB_TRACE(X)
+#else /* (DEPLOYMENT_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define DEPLOYMENT_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (DEPLOYMENT_STUB_NTRACE == 1) */
+
+#endif /* DEPLOYMENT_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/DAnCE/Deployment/Deployment_svnt_export.h b/modules/CIAO/DAnCE/Deployment/Deployment_svnt_export.h
new file mode 100644
index 00000000000..e403dbf0c41
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/Deployment_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl -s Deployment_svnt
+// ------------------------------
+#ifndef DEPLOYMENT_SVNT_EXPORT_H
+#define DEPLOYMENT_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (DEPLOYMENT_SVNT_HAS_DLL)
+# define DEPLOYMENT_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && DEPLOYMENT_SVNT_HAS_DLL */
+
+#if !defined (DEPLOYMENT_SVNT_HAS_DLL)
+# define DEPLOYMENT_SVNT_HAS_DLL 1
+#endif /* ! DEPLOYMENT_SVNT_HAS_DLL */
+
+#if defined (DEPLOYMENT_SVNT_HAS_DLL) && (DEPLOYMENT_SVNT_HAS_DLL == 1)
+# if defined (DEPLOYMENT_SVNT_BUILD_DLL)
+# define Deployment_svnt_Export ACE_Proper_Export_Flag
+# define DEPLOYMENT_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define DEPLOYMENT_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* DEPLOYMENT_SVNT_BUILD_DLL */
+# define Deployment_svnt_Export ACE_Proper_Import_Flag
+# define DEPLOYMENT_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define DEPLOYMENT_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* DEPLOYMENT_SVNT_BUILD_DLL */
+#else /* DEPLOYMENT_SVNT_HAS_DLL == 1 */
+# define Deployment_svnt_Export
+# define DEPLOYMENT_SVNT_SINGLETON_DECLARATION(T)
+# define DEPLOYMENT_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* DEPLOYMENT_SVNT_HAS_DLL == 1 */
+
+// Set DEPLOYMENT_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (DEPLOYMENT_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define DEPLOYMENT_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define DEPLOYMENT_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !DEPLOYMENT_SVNT_NTRACE */
+
+#if (DEPLOYMENT_SVNT_NTRACE == 1)
+# define DEPLOYMENT_SVNT_TRACE(X)
+#else /* (DEPLOYMENT_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define DEPLOYMENT_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (DEPLOYMENT_SVNT_NTRACE == 1) */
+
+#endif /* DEPLOYMENT_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/DAnCE/Deployment/Module_Main.h b/modules/CIAO/DAnCE/Deployment/Module_Main.h
new file mode 100644
index 00000000000..fb823684aeb
--- /dev/null
+++ b/modules/CIAO/DAnCE/Deployment/Module_Main.h
@@ -0,0 +1,92 @@
+// $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/Auto_Ptr.h"
+#include "ace/Dynamic_Service.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
+
+using namespace DAnCE;
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR **argv)
+{
+ DANCE_DISABLE_TRACE ();
+
+ auto_ptr<Logger_Service> logger;
+
+ try
+ {
+ Logger_Service
+ * dlf = ACE_Dynamic_Service<Logger_Service>::instance ("DAnCE_Logger_Backend_Factory");
+
+ if (!dlf)
+ {
+ dlf = new Logger_Service;
+ logger.reset (dlf);
+ }
+
+ dlf->init (argc, argv);
+
+ DANCE_DEBUG ((LM_TRACE, DLINFO
+ ACE_TEXT("Module_main.h - initializing ORB\n")));
+
+ CORBA::ORB_var orb = CORBA::ORB_init(argc, argv);
+
+ ACE_Log_Msg_Backend * backend = dlf->get_logger_backend(orb);
+
+ if (backend != 0)
+ {
+ backend->open(0);
+ ACE_Log_Msg::msg_backend (backend);
+ ACE_Log_Msg * ace = ACE_Log_Msg::instance();
+ ace->clr_flags(ace->flags());
+ ace->set_flags(ACE_Log_Msg::CUSTOM);
+ }
+
+ DANCE_DEBUG ((LM_TRACE, DLINFO
+ ACE_TEXT("Module_Main.h - initializing module instance")));
+
+ 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 ();
+
+ DANCE_DEBUG ((LM_TRACE, DLINFO
+ ACE_TEXT("Module_Main.h - ORB event loop finished, exiting.\n")));
+
+ orb->destroy ();
+#endif
+ }
+ catch (...)
+ {
+ return -1;
+ }
+
+ return 0;
+}
+
+#endif
diff --git a/modules/CIAO/DAnCE/DomainApplication/DomainApplication.mpc b/modules/CIAO/DAnCE/DomainApplication/DomainApplication.mpc
new file mode 100644
index 00000000000..902d494ccba
--- /dev/null
+++ b/modules/CIAO/DAnCE/DomainApplication/DomainApplication.mpc
@@ -0,0 +1,14 @@
+// -*- MPC -*-
+// $Id$
+
+
+project: dance_lib, ciao_output, dance_domainapplication_skel, \
+ dance_nodeapplication_stub, dance_nodeapplicationmanager_stub, 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..da3c31654a1
--- /dev/null
+++ b/modules/CIAO/DAnCE/DomainApplication/Domain_Application_Impl.cpp
@@ -0,0 +1,121 @@
+// $Id$
+
+#include "Domain_Application_Impl.h"
+
+#include "ace/streams.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace DAnCE
+{
+
+ DomainApplication_Impl::DomainApplication_Impl (
+ TNam2Nm & nams,
+ const Deployment::Properties & configProperty,
+ Deployment::Connections& conn)
+ : nams_ (nams)
+ {
+ DANCE_TRACE("DomainApplication_Impl::DomainApplication_Impl");
+ this->startLaunch (configProperty);
+ conn = this->connections_;
+ }
+
+ DomainApplication_Impl::~DomainApplication_Impl()
+ {
+ DANCE_TRACE ("DomainApplication_Impl::~DomainApplication_Impl()");
+
+ try
+ {
+ for (TApp2Mgr::iterator iter = this->node_applications_.begin();
+ iter != this->node_applications_.end();
+ ++iter)
+ {
+ (*iter).int_id_->destroyApplication ( (*iter).ext_id_.in());
+ }
+ this->node_applications_.unbind_all();
+ }
+ catch (CORBA::Exception &e)
+ {
+ DANCE_ERROR((LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplication_Impl::~DomainApplication_Impl - ")
+ ACE_TEXT("caught a CORBA exception %C(%C) \"%C\"\n"),
+ e._name(), e._rep_id(), e._info().c_str()));
+ }
+ catch(...)
+ {
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT("DomainApplication_Impl::~DomainApplication_Impl - ")
+ ACE_TEXT("caught an unknown exception.\n")));
+ }
+ }
+
+ void
+ DomainApplication_Impl::finishLaunch (const Deployment::Connections & connections,
+ CORBA::Boolean start)
+ {
+ DANCE_TRACE ("DomainApplication_Impl::finishLaunch");
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("DomainApplication_impl::finishLaunch - ")
+ ACE_TEXT("connections length is %d\n"), connections.length()));
+ for (TApp2Mgr::iterator iter = this->node_applications_.begin();
+ iter != this->node_applications_.end();
+ ++iter)
+ {
+ (*iter).ext_id_->finishLaunch (connections, start);
+ }
+ }
+
+ void
+ DomainApplication_Impl::start ()
+ {
+ DANCE_TRACE ("DomainApplication_Impl::start");
+ for (TApp2Mgr::iterator iter = this->node_applications_.begin();
+ iter != this->node_applications_.end();
+ ++iter)
+ {
+ (*iter).ext_id_->start ();
+ }
+ }
+
+ void
+ DomainApplication_Impl::startLaunch (
+ const Deployment::Properties & configProperty)
+ {
+ DANCE_TRACE ("DomainApplication_Impl::startLaunch");
+
+ for (TNam2Nm::iterator iter = this->nams_.begin();
+ iter != this->nams_.end();
+ ++iter)
+ {
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DomainApplication_Impl::startLaunch - ")
+ ACE_TEXT("Invoking startLaunch on an application\n")));
+ ::Deployment::Connections_var conn;
+ Deployment::Application_ptr na = (*iter).ext_id_->startLaunch (configProperty, conn.out());
+ //Deployment::NodeApplication_ptr na = Deployment::NodeApplication::_narrow (a);
+ if (CORBA::is_nil (na))
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplication_Impl::startLaunch -")
+ ACE_TEXT("Received nil object reference from startLaunch on node managers.\n")));
+ throw Deployment::StartError();
+ }
+ DANCE_DEBUG ((LM_TRACE, DLINFO
+ ACE_TEXT("DomainApplication_Impl::startLaunch - ")
+ ACE_TEXT("Application startLaunch succeeded, received %u connections\n"),
+ conn->length ()));
+
+ this->node_applications_.bind (na, (*iter).ext_id_);
+
+ size_t before = this->connections_.length();
+ this->connections_.length (before + conn->length());
+ for (size_t i = 0; i < conn->length(); ++i)
+ {
+ this->connections_[before+i] = (*conn) [i];
+ }
+ }
+
+ DANCE_DEBUG ((LM_DEBUG, DLINFO
+ ACE_TEXT("DomainApplication_Impl::startLaunch - ")
+ ACE_TEXT("Received %u connections from applications\n"),
+ this->connections_.length ()));
+ }
+
+} // 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..4d6a848e8f8
--- /dev/null
+++ b/modules/CIAO/DAnCE/DomainApplication/Domain_Application_Impl.h
@@ -0,0 +1,81 @@
+// $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 "ace/Map_Manager.h"
+#include "Deployment/Deployment_NodeApplicationC.h"
+#include "Deployment/Deployment_NodeApplicationManagerC.h"
+#include "Deployment/Deployment_NodeManagerC.h"
+
+namespace DAnCE
+ {
+
+ /**
+ * @class DomainApplication_Impl
+ *
+ * @brief This class implements the DomainApplication interface.
+ *
+ **/
+ class Domain_Application_Export DomainApplication_Impl
+ : public virtual POA_Deployment::DomainApplication
+ {
+ public:
+ typedef ACE_Map_Manager < Deployment::NodeApplicationManager_var,
+ Deployment::NodeManager_var,
+ ACE_Null_Mutex > TNam2Nm;
+ typedef ACE_Map_Manager < Deployment::Application_var,
+ Deployment::NodeApplicationManager_var,
+ ACE_Null_Mutex > TApp2Mgr;
+
+ DomainApplication_Impl (TNam2Nm& nams,
+ const Deployment::Properties & configProperty,
+ Deployment::Connections& conn);
+ ~DomainApplication_Impl();
+
+ void startLaunch (const Deployment::Properties & configProperty);
+
+ /**
+ * 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 (const Deployment::Connections & connections,
+ CORBA::Boolean start);
+ /**
+ * Starts the application. Raises the StartError exception if
+ * starting the application fails.
+ */
+ virtual void start ();
+
+ private:
+ TApp2Mgr node_applications_;
+ Deployment::Connections connections_;
+ TNam2Nm & nams_;
+ Deployment::Application_var na_;
+ };
+} // 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..bcff8138ea0
--- /dev/null
+++ b/modules/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager.mpc
@@ -0,0 +1,19 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance_lib, ciao_output, dance_domainapplicationmanager_skel, dance_domainapplication, dance_nodemanager_stub, naming {
+ 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..89ac4586b29
--- /dev/null
+++ b/modules/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
@@ -0,0 +1,520 @@
+// $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");
+
+ this->preparePlan();
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("DomainApplicationManager_Impl::DomainApplicationManager_Impl - ")
+ ACE_TEXT("Successfully prepared plan : %C\n"), this->plan_.UUID.in()));
+}
+
+DomainApplicationManager_Impl::~DomainApplicationManager_Impl()
+{
+ DANCE_TRACE( "DomainApplicationManager_Impl::~DomainApplicationManager_Impl()");
+
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("DomainApplicationManager_Impl::~DomainApplicationManager_Impl - ")
+ ACE_TEXT("Destroying %u applications\n"), this->running_app_.size()));
+ 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((LM_TRACE, DLINFO ACE_TEXT("DomainApplicationManager_impl::~DomainApplicationManager_impl - ")
+ ACE_TEXT("deactivating DomainApplication object...\n")));
+ this->poa_->deactivate_object (id);
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("DomainApplicationManager_impl::~DomainApplicationManager_impl - ")
+ ACE_TEXT("deleting DomainApplication.\n")));
+ this->running_app_.pop_back();
+ delete p;
+ }
+
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("DomainApplicationManager_Impl::~DomainApplicationManager_Impl - ")
+ ACE_TEXT("Destroying %u managers\n"), this->sub_app_mgr_.current_size()));
+ for (DomainApplication_Impl::TNam2Nm::iterator iter = this->sub_app_mgr_.begin();
+ iter != this->sub_app_mgr_.end();
+ ++iter)
+ {
+ (*iter).int_id_->destroyManager ( (*iter).ext_id_.in());
+ }
+ this->sub_app_mgr_.unbind_all();
+}
+
+Deployment::Application_ptr
+DomainApplicationManager_Impl::startLaunch (const Deployment::Properties & configProperty,
+ Deployment::Connections_out providedReference)
+{
+ DANCE_TRACE( "DomainApplicationManager_impl::startLaunch");
+
+ ::Deployment::Connections_var connections;
+ ACE_NEW_THROW_EX (connections,
+ Deployment::Connections (),
+ CORBA::NO_MEMORY ());
+ DomainApplication_Impl* app = 0;
+ ACE_NEW_THROW_EX (app,
+ DomainApplication_Impl (this->sub_app_mgr_,
+ configProperty,
+ connections.inout()),
+ CORBA::NO_MEMORY());
+
+ providedReference = connections._retn();
+
+ PortableServer::ObjectId_var id = this->poa_->activate_object (app);
+ this->running_app_.push_back(app);
+
+ DANCE_DEBUG ((LM_TRACE, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::startLaunch - ")
+ ACE_TEXT("Successfully created DomainApplication\n")));
+ DANCE_DEBUG ((LM_TRACE, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::startLaunch - ")
+ ACE_TEXT("Created %u provided references\n"),
+ providedReference->length ()));
+
+ CORBA::Object_var ref = this->poa_->id_to_reference (id);
+ return Deployment::DomainApplication::_narrow (ref.in ());
+}
+
+void
+DomainApplicationManager_Impl::destroyApplication (Deployment::Application_ptr application)
+{
+ DANCE_TRACE ( "DomainApplicationManager_Impl::destroyApplication");
+
+ try
+ {
+ for (size_t 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()))
+ {
+ PortableServer::ObjectId_var id = this->poa_->reference_to_id (application);
+ DANCE_DEBUG((LM_TRACE, DLINFO
+ ACE_TEXT("DomainApplicationManager_impl::destroyApplication - ")
+ ACE_TEXT("deactivating application object\n")));
+ this->poa_->deactivate_object (id);
+ DANCE_DEBUG((LM_TRACE, DLINFO
+ ACE_TEXT("DomainApplicationManager_impl::destroyApplication - ")
+ ACE_TEXT("deleting application object\n")));
+ delete p;
+ for (size_t j = i + 1; j < this->running_app_.size(); ++j)
+ {
+ this->running_app_[j-1] = this->running_app_[j];
+ }
+ this->running_app_.pop_back();
+ return;
+ }
+ }
+ }
+ catch (const Deployment::StopError &e)
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplicationManager_impl::destroyApplication - ")
+ ACE_TEXT("Propagating a received StopError exception\n")));
+ throw e;
+ }
+ catch (...)
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplicationManager_impl::destroyApplication - ")
+ ACE_TEXT("Caught unknown exception.")));
+ throw Deployment::StopError();
+ }
+
+ DANCE_ERROR ((LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplicationManager_impl::destroyApplication - ")
+ ACE_TEXT("Provided application reference unknown\n")));
+ throw Deployment::StopError();
+}
+
+::Deployment::Applications *
+DomainApplicationManager_Impl::getApplications ()
+{
+ DANCE_TRACE ( "DomainApplicationManager_Impl::getApplications ()");
+
+ Deployment::Applications* running_app = 0;
+ ACE_NEW_THROW_EX (running_app,
+ Deployment::Applications(),
+ CORBA::NO_MEMORY());
+ running_app->length (this->running_app_.size());
+ CORBA::ULong index = 0;
+ for (size_t 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((LM_DEBUG, DLINFO ACE_TEXT("DomainApplicationManager_impl::getApplications - ")
+ ACE_TEXT("Returning %u running applications\n"),
+ running_app->length ()));
+ return running_app;
+}
+
+::Deployment::DeploymentPlan *
+DomainApplicationManager_Impl::getPlan ()
+{
+ DANCE_TRACE ("DomainApplicationManager_Impl::getPlan ()");
+
+ Deployment::DeploymentPlan* plan = 0;
+
+ ACE_NEW_THROW_EX (plan,
+ Deployment::DeploymentPlan (this->plan_),
+ CORBA::NO_MEMORY());
+
+ return plan;
+}
+
+// This methhod is commented because it required rework for processing connections
+// sequence together with correspondent DeploymentPlan
+void
+DomainApplicationManager_Impl::
+dump_connections (const ::Deployment::Connections & /*connections*/) const
+{
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("DomainApplicationManager_impl::dump_connections - started\n")));
+
+ // CIAO_TRACE("CIAO::DomainApplicationManager_Impl::dump_connections");
+ // const CORBA::ULong conn_len = connections.length ();
+ // for (CORBA::ULong i = 0; i < conn_len; ++i)
+ // {
+ // DANCE_DEBUG((LM_DEBUG, "[%M] instanceName: %C\n", connections[i].instanceName.in ()));
+ //
+ // DANCE_DEBUG((LM_DEBUG, "[%M] portName: %C\n", connections[i].portName.in ()));
+ //
+ // DANCE_DEBUG((LM_DEBUG, "[%M] portkind: "));
+ //
+ // switch (connections[i].kind)
+ // {
+ // case Deployment::Facet:
+ //
+ // DANCE_DEBUG((LM_DEBUG, "[%M] Facet\n"));
+ // break;
+ //
+ // case Deployment::SimplexReceptacle:
+ //
+ // DANCE_DEBUG((LM_DEBUG, "[%M] SimplexReceptacle\n"));
+ // break;
+ //
+ // case Deployment::MultiplexReceptacle:
+ //
+ // DANCE_DEBUG((LM_DEBUG, "[%M] MultiplexReceptacle\n"));
+ // break;
+ //
+ // case Deployment::EventEmitter:
+ //
+ // DANCE_DEBUG((LM_DEBUG, "[%M] EventEmitter\n"));
+ // break;
+ //
+ // case Deployment::EventPublisher:
+ //
+ // DANCE_DEBUG((LM_DEBUG, "[%M] EventPublisher\n"));
+ // break;
+ //
+ // case Deployment::EventConsumer:
+ //
+ // DANCE_DEBUG((LM_DEBUG, "[%M] EventConsumer\n"));
+ // break;
+ //
+ // default:
+ // DANCE_DEBUG((LM_DEBUG, "[%M] Unknown port kind.\n"));
+ // }
+ //
+ // DANCE_DEBUG((LM_DEBUG, "[%M] endpointInstanceName: %C\n",
+ // connections[i].endpointInstanceName.in ()));
+ //
+ // DANCE_DEBUG((LM_DEBUG, "[%M] endpointPortName: %C\n",
+ // connections[i].endpointPortName.in ()));
+ // DANCE_DEBUG((LM_DEBUG, "[%M] ---------------------\n"));
+ // }
+
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("DomainApplicationManager_impl::dump_connections - finished\n")));
+}
+
+void
+DomainApplicationManager_Impl::split_plan (const Deployment::DeploymentPlan & plan,
+ TNodePlans & sub_plans)
+{
+ DANCE_TRACE ( "DomainApplicationManager_Impl::split_plan");
+
+ DANCE_DEBUG ((LM_TRACE, ACE_TEXT("DomainApplicationManager_Impl::split_plan - ")
+ ACE_TEXT("Creating sub-plans\n")));
+ // Create empty sub-plans
+ for (CORBA::ULong i = 0; i < plan.instance.length(); ++i)
+ {
+ ACE_TString node = ACE_TEXT_CHAR_TO_TCHAR (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;
+
+ sub_plans.bind (node, tmp_plan);
+
+ DANCE_DEBUG ((LM_TRACE, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::split_plan - ")
+ ACE_TEXT("Created sub-plan for node %C with UUID %C\n"),
+ node.c_str (), child_uuid.c_str ()));
+ }
+
+ DANCE_DEBUG ((LM_DEBUG, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::split_plan - ")
+ ACE_TEXT("First phase produced %u child plans, proceeding to second\n")));
+
+ // (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 ((LM_TRACE, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::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 (ACE_TString (ACE_TEXT_CHAR_TO_TCHAR (my_instance.node.in())), child_plan))
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::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.
+ const ::Deployment::MonolithicDeploymentDescription & 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.
+ const CORBA::ULong 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 ((LM_TRACE, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::split_plan - ")
+ ACE_TEXT("Processing connections.\n")));
+ // Copy connections
+ for (CORBA::ULong j = 0; j < plan.connection.length(); ++j)
+ {
+ DANCE_DEBUG ((LM_TRACE, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::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 ((LM_TRACE, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::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 (plan.connection[j].name == child_plan.connection[m].name)
+ {
+ connection_copied = &child_plan.connection[m];
+ break;
+ }
+ }
+
+ if (0 == connection_copied)
+ {
+ // Copy the connection
+ CORBA::ULong 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 index_ep = connection_copied->internalEndpoint.length();
+ 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;
+ }
+ }
+ }
+ sub_plans.rebind (ACE_TString (ACE_TEXT_CHAR_TO_TCHAR (my_instance.node.in())), child_plan);
+ }
+
+ //Debug
+ DANCE_DEBUG ((LM_DEBUG, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::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 ((LM_DEBUG, DLINFO ACE_TEXT("DomainApplicationManager_Impl::split_plan - ")
+ ACE_TEXT("Child plans connection count : %u\n"), cnt));
+}
+
+void
+DomainApplicationManager_Impl::preparePlan()
+{
+ DANCE_TRACE ("DomainApplicationManager_Impl::preparePlan()");
+
+ try
+ {
+ // Map of sub plans for each node
+ TNodePlans sub_plans;
+ // Splitting deployment plan on sub plans for each node
+ DomainApplicationManager_Impl::split_plan (this->plan_, sub_plans);
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("DomainApplicationManager_Impl::preparePlan - Plan successfully split\n")));
+ // Executing preparePlan on each NodeManager described in DeploymentPlan
+ for (TNodePlans::iterator iter_plans = sub_plans.begin();
+ iter_plans != sub_plans.end();
+ ++iter_plans)
+ {
+ // 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 ((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 ( ACE_TEXT_ALWAYS_CHAR ((*iter_plans).ext_id_.c_str()),
+ "NodeManager not found");
+ }
+
+ // Calling preparePlan for node, specified in current sub plan
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("DomainApplicationManager_Impl::preparePlan - ")
+ ACE_TEXT("Calling preparePlan on node %C\n"),
+ (*iter_plans).ext_id_.c_str()));
+
+ Deployment::NodeApplicationManager_ptr nam
+ = nm->preparePlan ( (*iter_plans).int_id_,
+ Deployment::ResourceCommitmentManager::_nil());
+
+ if (CORBA::is_nil (nam))
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::preparePlan - ")
+ ACE_TEXT("PreparePlan failed for node %C, returning a nill ")
+ ACE_TEXT("NodeApplicationManager pointer.\n"),
+ (*iter_plans).ext_id_.c_str()));
+ throw ::Deployment::StartError();
+ }
+ // We save NAM reference ptr in TNodes vector were it places to var variable
+ this->sub_app_mgr_.bind (nam, nm);
+
+ DANCE_DEBUG ((LM_INFO, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::preparePlan - ")
+ ACE_TEXT("Sucessfully prepared node %C for deployment\n"),
+ (*iter_plans).ext_id_.c_str()));
+ }
+ }
+ catch (Deployment::StartError &e)
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::preparePlan - ")
+ ACE_TEXT("Propagating StartError exception caught here\n")));
+ throw e;
+ }
+ catch (CORBA::Exception &ex)
+ {
+ DANCE_ERROR ((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 ((LM_ERROR, DLINFO
+ ACE_TEXT("DomainApplicationManager_Impl::preparePlan - ")
+ ACE_TEXT("Caught unknown exception. Propagating StartError\n")));
+ throw ::Deployment::StartError ();
+ }
+}
+
+
+
+
diff --git a/modules/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h b/modules/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h
new file mode 100644
index 00000000000..80f9c15577e
--- /dev/null
+++ b/modules/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.h
@@ -0,0 +1,72 @@
+// -*- 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 "DomainApplicationManager_Export.h"
+#include "Node_Locator.h"
+#include "Deployment/Deployment_NodeManagerC.h"
+#include "DomainApplication/Domain_Application_Impl.h"
+#include "Deployment/Deployment_DomainApplicationManagerS.h"
+
+namespace DAnCE
+ {
+ class DomainApplicationManager_Export DomainApplicationManager_Impl
+ : public virtual POA_Deployment::DomainApplicationManager
+ {
+ private:
+ typedef ACE_Map_Manager<ACE_TString, Deployment::DeploymentPlan, ACE_Null_Mutex> TNodePlans;
+
+ public:
+ DomainApplicationManager_Impl (CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa,
+ const Deployment::DeploymentPlan& plan,
+ Node_Locator &nodes);
+
+ virtual ~DomainApplicationManager_Impl();
+
+ virtual Deployment::Application_ptr
+ startLaunch (const Deployment::Properties & configProperty,
+ Deployment::Connections_out providedReference);
+
+ virtual void destroyApplication (Deployment::Application_ptr);
+
+ virtual ::Deployment::Applications * getApplications (void);
+
+ virtual ::Deployment::DeploymentPlan * getPlan (void);
+
+ void dump_connections (const ::Deployment::Connections & connections) const;
+
+ private:
+ CORBA::ORB_var orb_;
+ PortableServer::POA_var poa_;
+ const Deployment::DeploymentPlan plan_;
+ DomainApplication_Impl::TNam2Nm sub_app_mgr_;
+ Node_Locator &nodes_;
+ typedef ACE_Vector<DomainApplication_Impl*> TApplications;
+ TApplications running_app_;
+
+ static void split_plan (const Deployment::DeploymentPlan & plan,
+ TNodePlans & sub_plans);
+
+ void preparePlan();
+ };
+
+}//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..ccf38df6931
--- /dev/null
+++ b/modules/CIAO/DAnCE/DomainApplicationManager/Node_Locator.cpp
@@ -0,0 +1,172 @@
+// $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 ACE_TCHAR *name)
+ {
+ ACE_TString 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 == 0)
+ {
+ DANCE_ERROR ((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 == 0)
+ {
+ DANCE_ERROR ((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);
+
+ ACE_TCHAR * string = 0;
+ // Read from the file line by line
+ while ((string = ACE_TEXT_CHAR_TO_TCHAR (reader.read ('\n'))) != 0)
+ {
+ if (ACE_OS::strlen (string) == 0) continue;
+
+ // Search from the right to the first space
+ const ACE_TCHAR* ior_start = ACE_OS::strrchr (string, ' ');
+ // Search from the left to the first space
+ const ACE_TCHAR* dest_end = ACE_OS::strchr (string, ' ');
+
+ // The destination is first followed by some spaces
+ ACE_TString destination (string, dest_end - string);
+ // And then the IOR
+ ACE_TString ior (ior_start + 1, ACE_OS::strlen (ior_start + 1));
+ reader.alloc ()->free (string);
+
+ DANCE_DEBUG ((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 ACE_TCHAR *name, const ACE_TCHAR *ior)
+ {
+ DANCE_TRACE ("Node_Locator::resolve_ior");
+
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Node_Locator::resolve_ior - ")
+ ACE_TEXT("Resolving ior %s for destination %s\n"),
+ ior, name));
+
+ CORBA::Object_var obj = this->orb_->string_to_object (ior);
+
+ if (CORBA::is_nil (obj.in ()))
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Node_Locator::resolve_ior - ")
+ ACE_TEXT("Error: Unable to resolve object reference for destination ")
+ ACE_TEXT("%s and ior %s\n"),
+ name, ior));
+ return false;
+ }
+
+ ::Deployment::NodeManager_var nm = ::Deployment::NodeManager::_narrow (obj.in ());
+
+ if (CORBA::is_nil (nm.in ()))
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Node_Locator::resolve_ior - ")
+ ACE_TEXT("Error: Unable to narrow reference for destination ")
+ ACE_TEXT("%s and ior %s\n"),
+ name, ior));
+ return false;
+ }
+
+ return nm._retn ();
+ }
+
+ void
+ Node_Locator::store_ior (const ACE_TCHAR *name, const ACE_TCHAR *ior)
+ {
+ DANCE_TRACE ("Node_Locator::store_ior");
+ this->nodes_.bind (name, ior);
+ }
+
+ ::Deployment::NodeManager_ptr
+ Node_Locator::ns_lookup (const ACE_TCHAR *nodename)
+ {
+ DANCE_TRACE ("Node_Locator::ns_lookup");
+
+ if (CORBA::is_nil (this->nc_.in ()))
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Node_Locator::ns_lookup - ")
+ ACE_TEXT("Nameservice lookup of %s failed because there is no naming service.\n"),
+ nodename));
+ return ::Deployment::NodeManager::_nil ();
+ }
+
+ try
+ {
+ CosNaming::Name name;
+ name.length (1);
+
+ name[0].id = ACE_TEXT_ALWAYS_CHAR (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 ((LM_ERROR, DLINFO ACE_TEXT("Node_Locator::ns_lookup - ")
+ ACE_TEXT("Unable to narrow provided reference for node %s\n"),
+ nodename));
+ return ::Deployment::NodeManager::_nil ();
+ }
+
+ return nm._retn ();
+ }
+ catch (const CORBA::Exception &e)
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Node_Locator::ns_lookup - ")
+ ACE_TEXT("Caught CORBA exception while looking up name %s:%C\n"),
+ nodename, e._info ().c_str ()));
+ }
+ catch (...)
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Node_Locator::ns_lookup - ")
+ ACE_TEXT("Caught unexpected exception while looking up name %s\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..0708ef2b911
--- /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 ACE_TCHAR *name);
+
+ bool process_node_map (const ACE_TCHAR *file);
+
+ void store_ior (const ACE_TCHAR *name, const ACE_TCHAR *ior);
+
+ private:
+ ::Deployment::NodeManager_ptr resolve_ior (const ACE_TCHAR *name,
+ const ACE_TCHAR *ior);
+
+ ::Deployment::NodeManager_ptr ns_lookup (const ACE_TCHAR *name);
+
+ typedef ACE_Map_Manager<ACE_TString,
+ ACE_TString,
+ 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/DAnCE_ExecutionManager_Module_Export.h b/modules/CIAO/DAnCE/ExecutionManager/DAnCE_ExecutionManager_Module_Export.h
new file mode 100644
index 00000000000..6ab710d4044
--- /dev/null
+++ b/modules/CIAO/DAnCE/ExecutionManager/DAnCE_ExecutionManager_Module_Export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl DAnCE_ExecutionManager_Module
+// ------------------------------
+#ifndef DANCE_EXECUTIONMANAGER_MODULE_EXPORT_H
+#define DANCE_EXECUTIONMANAGER_MODULE_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (DANCE_EXECUTIONMANAGER_MODULE_HAS_DLL)
+# define DANCE_EXECUTIONMANAGER_MODULE_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && DANCE_EXECUTIONMANAGER_MODULE_HAS_DLL */
+
+#if !defined (DANCE_EXECUTIONMANAGER_MODULE_HAS_DLL)
+# define DANCE_EXECUTIONMANAGER_MODULE_HAS_DLL 1
+#endif /* ! DANCE_EXECUTIONMANAGER_MODULE_HAS_DLL */
+
+#if defined (DANCE_EXECUTIONMANAGER_MODULE_HAS_DLL) && (DANCE_EXECUTIONMANAGER_MODULE_HAS_DLL == 1)
+# if defined (DANCE_EXECUTIONMANAGER_MODULE_BUILD_DLL)
+# define DAnCE_ExecutionManager_Module_Export ACE_Proper_Export_Flag
+# define DANCE_EXECUTIONMANAGER_MODULE_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define DANCE_EXECUTIONMANAGER_MODULE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* DANCE_EXECUTIONMANAGER_MODULE_BUILD_DLL */
+# define DAnCE_ExecutionManager_Module_Export ACE_Proper_Import_Flag
+# define DANCE_EXECUTIONMANAGER_MODULE_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define DANCE_EXECUTIONMANAGER_MODULE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* DANCE_EXECUTIONMANAGER_MODULE_BUILD_DLL */
+#else /* DANCE_EXECUTIONMANAGER_MODULE_HAS_DLL == 1 */
+# define DAnCE_ExecutionManager_Module_Export
+# define DANCE_EXECUTIONMANAGER_MODULE_SINGLETON_DECLARATION(T)
+# define DANCE_EXECUTIONMANAGER_MODULE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* DANCE_EXECUTIONMANAGER_MODULE_HAS_DLL == 1 */
+
+// Set DANCE_EXECUTIONMANAGER_MODULE_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (DANCE_EXECUTIONMANAGER_MODULE_NTRACE)
+# if (ACE_NTRACE == 1)
+# define DANCE_EXECUTIONMANAGER_MODULE_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define DANCE_EXECUTIONMANAGER_MODULE_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !DANCE_EXECUTIONMANAGER_MODULE_NTRACE */
+
+#if (DANCE_EXECUTIONMANAGER_MODULE_NTRACE == 1)
+# define DANCE_EXECUTIONMANAGER_MODULE_TRACE(X)
+#else /* (DANCE_EXECUTIONMANAGER_MODULE_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define DANCE_EXECUTIONMANAGER_MODULE_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (DANCE_EXECUTIONMANAGER_MODULE_NTRACE == 1) */
+
+#endif /* DANCE_EXECUTIONMANAGER_MODULE_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/DAnCE/ExecutionManager/ExecutionManager.mpc b/modules/CIAO/DAnCE/ExecutionManager/ExecutionManager.mpc
new file mode 100644
index 00000000000..0b5531f05cb
--- /dev/null
+++ b/modules/CIAO/DAnCE/ExecutionManager/ExecutionManager.mpc
@@ -0,0 +1,23 @@
+// -*- MPC -*-
+// $Id$
+
+project(ExecutionManager_Module): dance_lib, taolib, iortable, ciao_output, utils, strategies, naming, dance_executionmanager_skel, dance_domainapplicationmanager, dance_deployment_svnt, avoids_minimum_corba, ciao_executionmanager_skel {
+ sharedname = DAnCE_ExecutionManager
+ dynamicflags = EXECUTIONMANAGER_BUILD_DLL DANCE_EXECUTIONMANAGER_MODULE_BUILD_DLL
+
+ Source_Files {
+ ExecutionManager_Impl.cpp
+ ExecutionManager_Module.cpp
+ }
+}
+
+project(Execution_Manager_Exec) : dance_exe, naming_serv, ciao_executionmanager_skel, \
+ dance_domainapplicationmanager, dance_executionmanager_skel, utils, dance_logger, avoids_minimum_corba {
+ exename = dance_execution_manager
+ after += ExecutionManager_Module
+ libs += DAnCE_ExecutionManager
+
+ Source_Files {
+ Execution_Manager_Exec.cpp
+ }
+}
diff --git a/modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Export.h b/modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Export.h
new file mode 100644
index 00000000000..8633f5d5400
--- /dev/null
+++ b/modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Export.h
@@ -0,0 +1,57 @@
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ExecutionManager
+// ------------------------------
+#ifndef EXECUTIONMANAGER_EXPORT_H
+#define EXECUTIONMANAGER_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (EXECUTIONMANAGER_HAS_DLL)
+# define EXECUTIONMANAGER_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && EXECUTIONMANAGER_HAS_DLL */
+
+#if !defined (EXECUTIONMANAGER_HAS_DLL)
+# define EXECUTIONMANAGER_HAS_DLL 1
+#endif /* ! EXECUTIONMANAGER_HAS_DLL */
+
+#if defined (EXECUTIONMANAGER_HAS_DLL) && (EXECUTIONMANAGER_HAS_DLL == 1)
+# if defined (EXECUTIONMANAGER_BUILD_DLL)
+# define ExecutionManager_Export ACE_Proper_Export_Flag
+# define EXECUTIONMANAGER_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define EXECUTIONMANAGER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* EXECUTIONMANAGER_BUILD_DLL */
+# define ExecutionManager_Export ACE_Proper_Import_Flag
+# define EXECUTIONMANAGER_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define EXECUTIONMANAGER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* EXECUTIONMANAGER_BUILD_DLL */
+#else /* EXECUTIONMANAGER_HAS_DLL == 1 */
+# define ExecutionManager_Export
+# define EXECUTIONMANAGER_SINGLETON_DECLARATION(T)
+# define EXECUTIONMANAGER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* EXECUTIONMANAGER_HAS_DLL == 1 */
+
+// Set EXECUTIONMANAGER_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (EXECUTIONMANAGER_NTRACE)
+# if (ACE_NTRACE == 1)
+# define EXECUTIONMANAGER_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define EXECUTIONMANAGER_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !EXECUTIONMANAGER_NTRACE */
+
+#if (EXECUTIONMANAGER_NTRACE == 1)
+# define EXECUTIONMANAGER_TRACE(X)
+#else /* (EXECUTIONMANAGER_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define EXECUTIONMANAGER_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (EXECUTIONMANAGER_NTRACE == 1) */
+
+#endif /* EXECUTIONMANAGER_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Impl.cpp b/modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Impl.cpp
new file mode 100644
index 00000000000..17605c48882
--- /dev/null
+++ b/modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Impl.cpp
@@ -0,0 +1,159 @@
+//--*C++*--
+// $Id$
+
+#include "ExecutionManager_Impl.h"
+
+#include "tools/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 ((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 ((LM_TRACE, DLINFO ACE_TEXT("ExecutionManager_Impl::~ExecutionManager_Impl - ")
+ ACE_TEXT("before deactivate_object...\n")));
+ this->poa_->deactivate_object (id.in());
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("ExecutionManager_Impl::~ExecutionManager_Impl - ")
+ ACE_TEXT("deleting DomainApplicationManager\n")));
+ delete (*iter).int_id_;
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("ExecutionManager_Impl::~ExecutionManager_Impl - ")
+ ACE_TEXT("DomainApplicationManager deleted\n")));
+ }
+}
+
+::Deployment::DomainApplicationManager_ptr
+ExecutionManager_Impl::preparePlan (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((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);
+ return Deployment::DomainApplicationManager::_narrow (ref.in ());
+ }
+
+ DomainApplicationManager_Impl* dam_servant = 0;
+ ACE_NEW_THROW_EX (dam_servant,
+ DAnCE::DomainApplicationManager_Impl (this->orb_.in (),
+ this->poa_.in (),
+ plan,
+ this->locator_),
+ CORBA::NO_MEMORY ());
+ this->managers_.rebind (plan.UUID.in(), dam_servant);
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("ExecutionManager_Impl::preparePlan - ")
+ ACE_TEXT("Domain Application Manager was successfully created.\n")));
+
+ PortableServer::ObjectId_var id = this->poa_->activate_object (dam_servant);
+
+ DANCE_DEBUG((LM_NOTICE, DLINFO ACE_TEXT("ExecutionManager_Impl::preparePlan - ")
+ ACE_TEXT("Plan with UUID %C was successfully prepared.\n"),
+ plan.UUID.in ()));
+
+ CORBA::Object_var ref = this->poa_->id_to_reference (id.in());
+ return Deployment::DomainApplicationManager::_narrow (ref.in ());
+}
+
+::Deployment::DomainApplicationManagers *
+ExecutionManager_Impl::getManagers ()
+{
+ DANCE_TRACE ( "ExecutionManager_Impl::getManagers ()");
+
+ ::Deployment::DomainApplicationManagers * managers = 0;
+ ACE_NEW_THROW_EX (managers,
+ ::Deployment::DomainApplicationManagers(),
+ CORBA::NO_MEMORY());
+
+ managers->length (this->managers_.current_size());
+ unsigned int 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;
+ }
+
+ return managers;
+}
+
+void
+ExecutionManager_Impl::destroyManager (::Deployment::DomainApplicationManager_ptr appManager)
+{
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("ExecutionManager_Impl::destroyManager - started\n")));
+
+ 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 ()))
+ {
+ this->managers_.unbind ( (*iter).ext_id_);
+ PortableServer::ObjectId_var id = this->poa_->reference_to_id (appManager);
+ this->poa_->deactivate_object (id.in());
+ DANCE_DEBUG((LM_INFO, DLINFO ACE_TEXT("ExecutionManager_Impl::destroyManager - deleting DomainApplicationManager\n")));
+ delete (*iter).int_id_;
+ (*iter).int_id_ = 0;
+ DANCE_DEBUG((LM_INFO, DLINFO ACE_TEXT("ExecutionManager_Impl::destroyManager - DomainApplicationManager deleted\n")));
+ //this->managers_.unbind ( (*iter).ext_id_);
+ DANCE_DEBUG((LM_INFO, DLINFO ACE_TEXT("ExecutionManager_Impl::destroyManager - finished\n")));
+ return;
+ }
+ }
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("ExecutionManager_Impl::destroyManager - ")
+ ACE_TEXT("corresponding DomainApplicationManager cannot be found\n")));
+ throw ::Deployment::StopError();
+}
+
+// This one derived from ExecutionManagerDaemon interface
+// for shutdowning DAnCE agent
+void
+ExecutionManager_Impl::shutdown ()
+{
+ DANCE_TRACE ("ExecutionManager_Impl::shutdown");
+ this->orb_->shutdown();
+}
+
+
+void
+ExecutionManager_Impl::add_node_manager (const ACE_TCHAR *name,
+ const ACE_TCHAR *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);
+}
diff --git a/modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Impl.h b/modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Impl.h
new file mode 100644
index 00000000000..544e17ac431
--- /dev/null
+++ b/modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Impl.h
@@ -0,0 +1,71 @@
+// -*- 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 "ExecutionManager_Export.h"
+#include "Deployment/CIAO_ExecutionManagerDaemonS.h"
+#include "Deployment/Deployment_NodeManagerC.h"
+#include "DomainApplicationManager/DomainApplicationManager_Impl.h"
+#include "DomainApplicationManager/Node_Locator.h"
+
+namespace DAnCE
+ {
+ class ExecutionManager_Export ExecutionManager_Impl
+ : public virtual POA_DAnCE::ExecutionManagerDaemon
+ {
+ private:
+ typedef ACE_Map_Manager<ACE_CString, DomainApplicationManager_Impl*, ACE_Null_Mutex> TDomainManagers;
+
+ public:
+
+ ExecutionManager_Impl (CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa,
+ CosNaming::NamingContext_ptr);
+
+ virtual ~ExecutionManager_Impl();
+
+ virtual ::Deployment::DomainApplicationManager_ptr preparePlan (
+ const ::Deployment::DeploymentPlan & plan,
+ ::Deployment::ResourceCommitmentManager_ptr resourceCommitment
+ );
+
+ virtual ::Deployment::DomainApplicationManagers * getManagers (
+ );
+
+ virtual void destroyManager (
+ ::Deployment::DomainApplicationManager_ptr manager
+ );
+
+ // This one derived from ExecutionManagerDaemon interface
+ // for shutdowning DAnCE agent
+ virtual void shutdown ();
+
+ void add_node_manager (const ACE_TCHAR *name, const ACE_TCHAR *ior);
+
+ void load_node_map (const ACE_TCHAR *filename);
+
+ private:
+ 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..657fee649a0
--- /dev/null
+++ b/modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Module.cpp
@@ -0,0 +1,379 @@
+// -*- C++ -*-
+// $Id$
+
+#include "ace/Get_Opt.h"
+#include "ace/OS_NS_stdio.h"
+
+#include "tao/TAO_Singleton_Manager.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 ( (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 ( (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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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':
+ //case '?': // Display help for use of the server.
+ //default:
+ DANCE_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::create_object (CORBA::ORB_ptr orb,
+ int argc,
+ ACE_TCHAR *argv[])
+{
+ DANCE_TRACE ("DAnCE_ExecutionManager_Module::create_object");
+
+ try
+ {
+ if (this->em_impl_ != 0)
+ {
+ DANCE_ERROR ( (LM_ERROR,
+ DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::create_object - ")
+ ACE_TEXT("Error: ExecutionManager already exists.\n")));
+ return CORBA::Object::_nil ();
+ }
+
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::create_object - ")
+ ACE_TEXT("before parsing arguments.\n")));
+
+ if (!this->parse_args (argc, argv))
+ return CORBA::Object::_nil ();
+
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::create_object - ")
+ ACE_TEXT("before creating value factory.\n")));
+ CORBA::ValueFactory_var vf = new Components::Cookie_init();
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::create_object - ")
+ ACE_TEXT("before registering value factory.\n")));
+ vf = orb->register_value_factory ("IDL:omg.org/Components/Cookie:1.0", vf.in());
+
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::create_object - ")
+ 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 ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::create_object - ")
+ 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 ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::create_object - ")
+ 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 ( (LM_ERROR,
+ DLINFO ACE_TEXT("Narrow to NamingContext return nil for DomainNC.\n")));
+ return CORBA::Object::_nil ();
+ }
+ }
+ }
+ }
+ catch (CORBA::Exception&)
+ {
+ DANCE_DEBUG ((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 ( (LM_ERROR,
+ DLINFO ACE_TEXT("Nil IORTable\n")));
+ return CORBA::Object::_nil ();
+ }
+
+ // Create and install the DAnCE Daemon servant on child POA
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::create_object - 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 ());
+
+ DAnCE::ExecutionManagerDaemon_var em_daemon
+ = DAnCE::ExecutionManagerDaemon::_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((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 ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::create_object - ")
+ 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 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 ((LM_ERROR, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::create_object - ")
+ 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);
+ /*
+ CORBA::Object_var obj = orb->string_to_object (nm_ior.c_str ());
+ Deployment::NodeManager_var nm_obj =
+ Deployment::NodeManager::_narrow (obj.in ());
+
+ if (CORBA::is_nil (nm_obj))
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO "DAnCE_ExecutionManager::create_object - "
+ "Failed to narrow the object to node manager : %C\n",
+ this->options_.node_managers_[i].c_str()));
+ continue;
+ }
+ */
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("Placing node \"%C\" to EM's map.\n"), node_name.c_str()));
+ this->em_impl_->add_node_manager (node_name.c_str(), nm_ior.c_str ());
+ }
+
+ if (this->options_.node_map_ != 0)
+ {
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::create_object - ")
+ 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 ();
+ }
+}
+
+ACE_FACTORY_DEFINE (DAnCE_ExecutionManager_Module, DAnCE_ExecutionManager_Module)
+
+
+
diff --git a/modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Module.h b/modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Module.h
new file mode 100644
index 00000000000..eebe3f5f52a
--- /dev/null
+++ b/modules/CIAO/DAnCE/ExecutionManager/ExecutionManager_Module.h
@@ -0,0 +1,102 @@
+// -*- 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 "DAnCE_ExecutionManager_Module_Export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Service_Config.h"
+#include "ace/Vector_T.h"
+#include "tao/Object_Loader.h"
+
+namespace DAnCE
+{
+ class ExecutionManager_Impl;
+}
+
+/**
+ * @class Execution_Manager_Module
+ *
+ * @brief The shared object that is instantiated when the execution manager
+ * module/library is dynamically loaded.
+ *
+ * This class runs the execution manager instance
+ */
+class DAnCE_ExecutionManager_Module_Export DAnCE_ExecutionManager_Module
+ : public TAO_Object_Loader
+ {
+ public:
+ 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)
+ {
+ }
+ };
+
+ /// Constructor.
+ DAnCE_ExecutionManager_Module (void);
+
+ /// Destructor.
+ ~DAnCE_ExecutionManager_Module (void);
+
+ /// Overload the base class method to create a new instance
+ /// of a DAnCE_NodeManager_Module object.
+ virtual CORBA::Object_ptr create_object (CORBA::ORB_ptr orb,
+ int argc,
+ ACE_TCHAR *argv []);
+
+ virtual bool parse_args (int argc, ACE_TCHAR *argv []);
+
+ SOptions options_;
+ private:
+ /// Storage for ExecutionManager servant.
+ DAnCE::ExecutionManager_Impl * em_impl_;
+ };
+
+ACE_FACTORY_DECLARE (DAnCE_ExecutionManager_Module, DAnCE_ExecutionManager_Module)
+
+#include /**/ "ace/post.h"
+
+#endif /* EXECUTION_MANAGER_MODULE_H */
+
diff --git a/modules/CIAO/DAnCE/ExecutionManager/Execution_Manager_Exec.cpp b/modules/CIAO/DAnCE/ExecutionManager/Execution_Manager_Exec.cpp
new file mode 100644
index 00000000000..2331ec167df
--- /dev/null
+++ b/modules/CIAO/DAnCE/ExecutionManager/Execution_Manager_Exec.cpp
@@ -0,0 +1,7 @@
+// $Id$
+#include "ExecutionManager_Module.h"
+
+#define DANCE_MODULE_MAIN_CLASS_NAME DAnCE_ExecutionManager_Module
+#include "Deployment/Module_Main.h"
+
+
diff --git a/modules/CIAO/DAnCE/Logger/DAnCELoggerFactory.h b/modules/CIAO/DAnCE/Logger/DAnCELoggerFactory.h
new file mode 100644
index 00000000000..f2ed4800950
--- /dev/null
+++ b/modules/CIAO/DAnCE/Logger/DAnCELoggerFactory.h
@@ -0,0 +1,19 @@
+// $Id$
+#ifndef DAnCE_LOGGERFACTORY_BASE_H_
+#define DAnCE_LOGGERFACTORY_BASE_H_
+
+#include "ace/Service_Object.h"
+#include "tao/ORB.h"
+#include "ace/Log_Msg_Backend.h"
+
+namespace DAnCE
+ {
+
+ class DAnCELoggerFactory : public ACE_Service_Object
+ {
+ public:
+ virtual ACE_Log_Msg_Backend * get_logger_backend (CORBA::ORB_ptr orb) = 0;
+ };
+} // DAnCE
+
+#endif /*LOGGERFACTORY_H_*/
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/File_Logger_Backend.cpp b/modules/CIAO/DAnCE/Logger/File_Logger_Backend.cpp
new file mode 100644
index 00000000000..7e45b0fa26a
--- /dev/null
+++ b/modules/CIAO/DAnCE/Logger/File_Logger_Backend.cpp
@@ -0,0 +1,46 @@
+// $Id$
+#include "File_Logger_Backend.h"
+#include "ace/OS_NS_stdio.h"
+#include "ace/Log_Record.h"
+#include "ace/Log_Msg.h"
+#include "Log_Macros.h"
+
+namespace DAnCE
+ {
+
+ int
+ File_Logger_Backend::open (const ACE_TCHAR *)
+ {
+ DANCE_DEBUG ((LM_DEBUG, "[%M] Setting logger's output to file \"%s\"\n", this->filename_.c_str()));
+ this->fh_ = ACE_OS::fopen (this->filename_.c_str(), "a+");
+ if (0 == this->fh_)
+ {
+ ACE_TString s = ACE_TEXT("Failed to open log file \"");
+ s += this->filename_;
+ s += ACE_TEXT("\"\n");
+ throw LoggerError (s.c_str());
+ }
+ return 0;
+ }
+
+ int
+ File_Logger_Backend::close (void)
+ {
+ if (0 != this->fh_)
+ {
+ ACE_OS::fclose (this->fh_);
+ this->fh_ = 0;
+ }
+ return 0;
+ }
+
+ ssize_t
+ File_Logger_Backend::log (ACE_Log_Record &log_record)
+ {
+ int res = log_record.print (0, ACE_Log_Msg::VERBOSE, this->fh_);
+ ACE_OS::fflush (this->fh_);
+ return res;
+ }
+
+}
+
diff --git a/modules/CIAO/DAnCE/Logger/File_Logger_Backend.h b/modules/CIAO/DAnCE/Logger/File_Logger_Backend.h
new file mode 100644
index 00000000000..6a02326f429
--- /dev/null
+++ b/modules/CIAO/DAnCE/Logger/File_Logger_Backend.h
@@ -0,0 +1,50 @@
+// $Id$
+#ifndef FILE_LOGGER_BACKEND_H_
+#define FILE_LOGGER_BACKEND_H_
+
+#include "ace/Log_Msg_Backend.h"
+#include "DAnCE_Logger_Export.h"
+#include "ace/SString.h"
+
+namespace DAnCE
+ {
+
+ class DAnCE_Logger_Export LoggerError
+ {
+ public:
+ LoggerError (const ACE_TCHAR * msg)
+ : errmsg_ (msg) {};
+ ACE_TString errmsg_;
+ };
+
+ class DAnCE_Logger_Export File_Logger_Backend : public ACE_Log_Msg_Backend
+ {
+ public:
+ File_Logger_Backend (const ACE_TCHAR * fname)
+ : fh_ (0), filename_ (fname) {}
+
+ virtual ~File_Logger_Backend (void)
+ {
+ this->close();
+ };
+
+ virtual int open (const ACE_TCHAR *logger_key);
+
+ virtual int reset (void)
+ {
+ this->close();
+ return this->open (0);
+ };
+
+ virtual int close (void);
+
+ virtual ssize_t log (ACE_Log_Record &log_record);
+
+ private:
+ FILE * fh_;
+ ACE_TString filename_;
+ };
+
+} // DAnCE
+
+#endif /*FILE_LOGGER_BACKEND_H_*/
diff --git a/modules/CIAO/DAnCE/Logger/Log_Macros.h b/modules/CIAO/DAnCE/Logger/Log_Macros.h
new file mode 100644
index 00000000000..4b2f9c35274
--- /dev/null
+++ b/modules/CIAO/DAnCE/Logger/Log_Macros.h
@@ -0,0 +1,90 @@
+/**
+ * @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_
+
+/*
+// By default tracing is turned off.
+#if !defined (DANCE_NTRACE)
+# if !defined (ACE_NTRACE)
+# define DANCE_NTRACE 1
+# else
+# define DANCE_NTRACE ACE_NTRACE
+# endif
+#endif DANCE_NTRACE
+*/
+#define DLINFO ACE_TEXT("(%P|%t) [%M] - %T - ")
+
+#if (DANCE_NTRACE == 1)
+# if !defined (ACE_NTRACE)
+# define DANCE_TRACE(X) do {} while (0)
+# define DANCE_ENABLE_TRACE(X) do {} while (0)
+# define DANCE_DISABLE_TRACE(X) 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(X) do {} while (0)
+# define DANCE_DISABLE_TRACE(X) 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(X) do {} while (0)
+# define DANCE_DEBUG(X) do {} while (0)
+#define DANCE_ERROR_RETURN(X, Y) return (Y)
+#define DANCE_ERROR_BREAK(X) { break; }
+#else
+# if !defined (DANCE_ERROR)
+# define DANCE_ERROR(X) \
+ do { \
+ int __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(X) \
+ do { \
+ int __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(X, Y) \
+ do { \
+ int __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(X) { DANCE_ERROR (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..6dc00272492
--- /dev/null
+++ b/modules/CIAO/DAnCE/Logger/Logger.mpc
@@ -0,0 +1,18 @@
+// -*- MPC -*-
+// $Id$
+
+project(DAnCE_Logger): dance_lib, messaging, acelib {
+ sharedname = DAnCE_Logger
+ dynamicflags = DANCE_LOGGER_BUILD_DLL
+
+ Source_Files {
+ File_Logger_Backend.cpp
+ Logger_Service.cpp
+ }
+ Header_Files {
+ }
+}
+
+
+
+
diff --git a/modules/CIAO/DAnCE/Logger/Logger_Service.cpp b/modules/CIAO/DAnCE/Logger/Logger_Service.cpp
new file mode 100644
index 00000000000..ff87b584097
--- /dev/null
+++ b/modules/CIAO/DAnCE/Logger/Logger_Service.cpp
@@ -0,0 +1,159 @@
+// $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"
+
+namespace DAnCE
+ {
+ Logger_Service::Logger_Service (void)
+ : filename_ (ACE_TEXT("")),
+ trace_ (false),
+ log_level_ (5)
+ {
+ }
+
+ 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"), this->log_level_);
+
+ this->log_level_ = log;
+
+ ACE_Env_Value<int> trace (ACE_TEXT("DANCE_TRACE_ENABLE"), this->trace_);
+ this->trace_ = trace;
+
+ ACE_Env_Value<const ACE_TCHAR *> filename (ACE_TEXT("DANCE_LOG_FILE"), this->filename_.c_str ());
+ this->filename_ = filename;
+
+ this->parse_args (argc, argv);
+
+ this->set_levels ();
+
+ return 0;
+ }
+
+
+ void
+ Logger_Service::parse_args (int argc, ACE_TCHAR **argv)
+ {
+ const ACE_TCHAR *shortl = ACE_TEXT("-l");
+ const ACE_TCHAR *longl = ACE_TEXT("--log-level");
+ const ACE_TCHAR *tracel = ACE_TEXT("--trace");
+ // const ACE_TCHAR *traces = "-t";
+ const ACE_TCHAR *lfl = ACE_TEXT("--log-file");
+ const ACE_TCHAR *lfs = ACE_TEXT("-f");
+
+ // We need to actually FIND the -l option, as the get_opt won't ignore
+ // the ORB options and such.
+ for (int i = 0; i < argc; ++i)
+ {
+ if (//ACE_OS::strncmp (argv[i], traces, 2) == 0 ||
+ ACE_OS::strncmp (argv[i], tracel, 7) == 0)
+ {
+ this->trace_ = true;
+ continue;
+ }
+
+ if (ACE_OS::strncmp (argv[i], shortl, 2) == 0 ||
+ ACE_OS::strncmp (argv[i], longl, 11 ) == 0)
+ {
+ if ((i + 1) < argc && *argv[i + 1] != '-')
+ {
+ int level = ACE_OS::atoi (argv[i + 1]);
+
+ if (level != 0)
+ this->log_level_ = level;
+ }
+ }
+
+ if (ACE_OS::strncmp (argv[i], lfs, 2) == 0 ||
+ ACE_OS::strncmp (argv[i], lfl, 10 ) == 0)
+ {
+ if ((i + 1) < argc && *argv[i + 1] != '-')
+ {
+ this->filename_ = argv[i+1];
+ }
+ }
+ }
+ }
+
+ void
+ Logger_Service::set_levels (void)
+ {
+ if (this->trace_)
+ {
+ DANCE_ENABLE_TRACE ();
+ this->log_level_ = 10;
+ }
+ else
+ {
+ DANCE_DISABLE_TRACE ();
+ }
+
+ u_long new_mask = 0;
+
+ if (this->log_level_ >= 9)
+ {
+ new_mask |= LM_TRACE;
+ }
+ if (this->log_level_ >= 8)
+ {
+ new_mask |= LM_DEBUG;
+ }
+ if (this->log_level_ >= 7)
+ {
+ new_mask |= LM_INFO;
+ }
+ if (this->log_level_ >= 6)
+ {
+ new_mask |= LM_NOTICE;
+ }
+ if (this->log_level_ >= 5)
+ {
+ new_mask |= LM_WARNING;
+ }
+ if (this->log_level_ >= 4)
+ {
+ new_mask |= LM_ERROR;
+ }
+ if (this->log_level_ >= 3)
+ {
+ new_mask |= LM_CRITICAL;
+ }
+ if (this->log_level_ >= 2)
+ {
+ new_mask |= LM_ALERT;
+ }
+ if (this->log_level_ >= 1)
+ {
+ new_mask |= LM_EMERGENCY;
+ }
+
+ ACE_Log_Msg::instance()->priority_mask(new_mask, ACE_Log_Msg::PROCESS);
+ DANCE_DEBUG ( (LM_TRACE, DLINFO ACE_TEXT("Logging level is set to %i\n"), this->log_level_));
+ }
+
+ ACE_Log_Msg_Backend *
+ Logger_Service::get_logger_backend (CORBA::ORB_ptr)
+ {
+ if (this->filename_ != ACE_TEXT(""))
+ {
+ File_Logger_Backend * the_backend = 0;
+ ACE_NEW_THROW_EX (the_backend,
+ File_Logger_Backend (this->filename_.c_str()),
+ CORBA::NO_MEMORY());
+ return the_backend;
+ }
+ return 0;
+ }
+
+} // DAnCE
+
+using namespace DAnCE;
+ACE_FACTORY_DEFINE (DAnCE_Logger, 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..5713bf96755
--- /dev/null
+++ b/modules/CIAO/DAnCE/Logger/Logger_Service.h
@@ -0,0 +1,29 @@
+// $Id$
+#ifndef LOGGER_SERVICE_H_
+#define LOGGER_SERVICE_H_
+
+#include "DAnCE/Logger/DAnCE_Logger_Export.h"
+#include "DAnCE/Logger/DAnCELoggerFactory.h"
+#include "DAnCE/Logger/File_Logger_Backend.h"
+
+namespace DAnCE
+{
+ class DAnCE_Logger_Export Logger_Service : public ::DAnCE::DAnCELoggerFactory
+ {
+ public:
+ Logger_Service (void);
+ virtual int init (int argc, ACE_TCHAR * argv[]);
+ virtual ACE_Log_Msg_Backend * get_logger_backend (CORBA::ORB_ptr orb);
+ private:
+ void parse_args (int argc, ACE_TCHAR **argv);
+ void set_levels (void);
+
+ ACE_TString filename_;
+ bool trace_;
+ int log_level_;
+ };
+} // DAnCE
+
+ACE_FACTORY_DECLARE (DAnCE_Logger, Logger_Service)
+
+#endif /*LOGGER_SERVICE_H_*/
diff --git a/modules/CIAO/DAnCE/MPC/config/ciao_executionmanager_skel.mpb b/modules/CIAO/DAnCE/MPC/config/ciao_executionmanager_skel.mpb
new file mode 100644
index 00000000000..320c057fd11
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/ciao_executionmanager_skel.mpb
@@ -0,0 +1,8 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance_deployment_stub, ciao_executionmanager_stub {
+ includes += $(CIAO_ROOT)/DAnCE/ExecutionManager
+ libs += CIAO_ExecutionManager_skel
+ after += CIAO_ExecutionManager_skel
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/ciao_executionmanager_stub.mpb b/modules/CIAO/DAnCE/MPC/config/ciao_executionmanager_stub.mpb
new file mode 100644
index 00000000000..a9c5265ed32
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/ciao_executionmanager_stub.mpb
@@ -0,0 +1,8 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance_deployment_stub, dance_executionmanager_stub {
+ includes += $(CIAO_ROOT)/DAnCE/ExecutionManager
+ libs += CIAO_ExecutionManager_stub
+ after += CIAO_ExecutionManager_stub
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/ciao_nodeapplication.mpb b/modules/CIAO/DAnCE/MPC/config/ciao_nodeapplication.mpb
new file mode 100644
index 00000000000..c1854438c7d
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/ciao_nodeapplication.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance_deployment_stub, ciao_nodeapp_configurator {
+ libs += CIAO_NodeApplication
+ after += NodeApplicationLib
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/ciao_nodeapplicationmanager.mpb b/modules/CIAO/DAnCE/MPC/config/ciao_nodeapplicationmanager.mpb
new file mode 100644
index 00000000000..e7d313f0617
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/ciao_nodeapplicationmanager.mpb
@@ -0,0 +1,8 @@
+// -*- MPC -*-
+// $Id$
+
+project : ciao_targetmanager_stub, ciao_nodeapplication {
+ includes += $(CIAO_ROOT)/DAnCE/NodeApplicationManager
+ libs += NodeApplicationManager
+ after += NodeApplicationManager
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/ciao_nodemanager_skel.mpb b/modules/CIAO/DAnCE/MPC/config/ciao_nodemanager_skel.mpb
new file mode 100644
index 00000000000..838b887f7cf
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/ciao_nodemanager_skel.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : ciao_nodemanager_stub {
+ libs += CIAO_NodeManager_skel
+ after += CIAO_NodeManager_skel
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/ciao_nodemanager_stub.mpb b/modules/CIAO/DAnCE/MPC/config/ciao_nodemanager_stub.mpb
new file mode 100644
index 00000000000..2d726b00815
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/ciao_nodemanager_stub.mpb
@@ -0,0 +1,8 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance_nodemanager_stub {
+ after += CIAO_NodeManager_stub
+ libs += CIAO_NodeManager_stub
+ includes += $(CIAO_ROOT)/DAnCE/NodeManager
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/ciao_plan_generator.mpb b/modules/CIAO/DAnCE/MPC/config/ciao_plan_generator.mpb
new file mode 100644
index 00000000000..83b78f6f013
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/ciao_plan_generator.mpb
@@ -0,0 +1,8 @@
+// -*- MPC -*-
+// $Id$
+
+project : ciao_executor {
+ includes += $(CIAO_ROOT)/DAnCE/Plan_Generator
+ libs += DAnCE_Plan_Generator
+ after += DAnCE_Plan_Generator
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/ciao_targetmanager_stub.mpb b/modules/CIAO/DAnCE/MPC/config/ciao_targetmanager_stub.mpb
new file mode 100644
index 00000000000..f9cf898c3a0
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/ciao_targetmanager_stub.mpb
@@ -0,0 +1,8 @@
+// -*- MPC -*-
+// $Id$
+
+project : ciao_nodemanager_stub {
+ includes += $(CIAO_ROOT)/DAnCE/TargetManager
+ libs += CIAO_TargetManager_stub
+ after += CIAO_TargetManager_stub
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/ciao_targetmanager_svnt.mpb b/modules/CIAO/DAnCE/MPC/config/ciao_targetmanager_svnt.mpb
new file mode 100644
index 00000000000..edfccb7f45d
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/ciao_targetmanager_svnt.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : ciao_targetmanager_stub {
+ libs += CIAO_TargetManager_svnt
+ after += CIAO_TargetManager_svnt
+}
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_cdmw_idl.mpb b/modules/CIAO/DAnCE/MPC/config/dance_cdmw_idl.mpb
new file mode 100644
index 00000000000..c1b3a524ca0
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_cdmw_idl.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance {
+ libs += DAnCE_Cdmw_IDL
+ after += Cdmw_IDL
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_component_server.mpb b/modules/CIAO/DAnCE/MPC/config/dance_component_server.mpb
new file mode 100644
index 00000000000..5a744e8fa86
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_component_server.mpb
@@ -0,0 +1,5 @@
+// -*- MPC -*-
+// $Id$
+
+project : ciao_client_dnc {
+ after += DAnCE_ComponentServer_IDL
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_component_server_svnt.mpb b/modules/CIAO/DAnCE/MPC/config/dance_component_server_svnt.mpb
new file mode 100644
index 00000000000..4ba1eef01b0
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_component_server_svnt.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : ccm_svnt {
+// after += Cdmw_IDL
+// libs += DAnCE_Cdmw_IDL
+}
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_deployment_svnt.mpb b/modules/CIAO/DAnCE/MPC/config/dance_deployment_svnt.mpb
new file mode 100644
index 00000000000..752dcbc4568
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_deployment_svnt.mpb
@@ -0,0 +1,8 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance_deployment_stub, portableserver {
+ after += Deployment_svnt
+ libs += DAnCE_Deployment_svnt
+ idlflags += -I$(CIAO_ROOT)/DAnCE
+}
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..5adfe50065c
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_domainapplication_skel.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance, dance_deployment_svnt, 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..4d21834a783
--- /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 {
+ 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..efaec42189e
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_domainapplicationmanager_skel.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance, dance_deployment_svnt, 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..717b2e75173
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_domainapplicationmanager_stub.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance, dance_deployment_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..847c7028c5a
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_executionmanager_skel.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance, dance_deployment_svnt, 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_extension_stub.mpb b/modules/CIAO/DAnCE/MPC/config/dance_extension_stub.mpb
new file mode 100644
index 00000000000..008ee7e8b04
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_extension_stub.mpb
@@ -0,0 +1,5 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance_deployment_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_mocks.mpb b/modules/CIAO/DAnCE/MPC/config/dance_mocks.mpb
new file mode 100644
index 00000000000..c7395989cbe
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_mocks.mpb
@@ -0,0 +1,9 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance, ccm_stub {
+ after += dance_mocks, dummy_ccm_container
+ libs += DAnCE_Mocks Dummy_CCM_Container
+ libpaths += $(ACE_ROOT)/prism/tests/DAnCE/ciao $(ACE_ROOT)/prism/tests/DAnCE/Mocks
+ includes += $(ACE_ROOT)/prism/tests/DAnCE $(ACE_ROOT)/prism/tests/DAnCE/Mocks
+}
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..c955ef31710
--- /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_client, ciao_cs_client, ciao_componentserver_stub, dynamicinterface, iortable, naming {
+ after += 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..d5a818399c2
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_nodeapplication_skel.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance, dance_deployment_svnt, 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..4bcee8b30d1
--- /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_DomainApplication_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..25bbb5148d0
--- /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 += 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..1cc9812ee18
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_nodeapplicationmanager_skel.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance, dance_deployment_svnt, 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..79e316bd26a
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_nodeapplicationmanager_stub.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance, dance_deployment_stub {
+ after += Deployment_NAM_stub
+ libs += DAnCE_NodeApplicationManager_stub
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_nodemanager.mpb b/modules/CIAO/DAnCE/MPC/config/dance_nodemanager.mpb
new file mode 100644
index 00000000000..aab928298ba
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_nodemanager.mpb
@@ -0,0 +1,8 @@
+// -*- MPC -*-
+// $Id$
+
+// @todo, use nodeapplicationmanager_stb
+project : dance, dance_nodeapplicationmanager, dance_nodemanager_skel, naming_serv {
+ after += Node_Manager_Module
+ libs += DAnCE_NodeManager
+}
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..f8cdf0db145
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_nodemanager_skel.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance, dance_deployment_svnt, 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_nodemanager_svnt.mpb b/modules/CIAO/DAnCE/MPC/config/dance_nodemanager_svnt.mpb
new file mode 100644
index 00000000000..50d4ba02322
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_nodemanager_svnt.mpb
@@ -0,0 +1,8 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance_deployment_svnt {
+ includes += $(CIAO_ROOT)/DAnCE/NodeManager
+ libs += DAnCE_NodeManager_svnt
+ after += DAnCE_NodeManager_svnt
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_plan_generator.mpb b/modules/CIAO/DAnCE/MPC/config/dance_plan_generator.mpb
new file mode 100644
index 00000000000..3448d4b2a6b
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_plan_generator.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance_deployment_stub, naming {
+ after += Plan_Generator
+ libs += DAnCE_Plan_Generator
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_plan_launcher_base.mpb b/modules/CIAO/DAnCE/MPC/config/dance_plan_launcher_base.mpb
new file mode 100644
index 00000000000..675ca3045d7
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_plan_launcher_base.mpb
@@ -0,0 +1,6 @@
+// $Id$
+
+project : naming, dance_executionmanager_stub {
+ after += Plan_Launcher_Base
+ libs += DAnCE_Plan_Launcher_Base
+} \ No newline at end of file
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_redirectionservice.mpb b/modules/CIAO/DAnCE/MPC/config/dance_redirectionservice.mpb
new file mode 100644
index 00000000000..092c0d55928
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_redirectionservice.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance, naming, messaging {
+ after += RedirectionService
+ libs += DAnCE_RedirectionService
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_repositorymanager.mpb b/modules/CIAO/DAnCE/MPC/config/dance_repositorymanager.mpb
new file mode 100644
index 00000000000..cf63845cdf6
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_repositorymanager.mpb
@@ -0,0 +1,8 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance_logger, ciao_config_handlers, ccm_stub, dance_repositorymanagerbase, dance_repositorymanager_skel, naming, iortable, utils, zlib, minizip {
+ requires += zlib
+ after += DAnCE_RepositoryManager
+ libs += DAnCE_RepositoryManager
+}
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..3e9ebb51a4f
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_repositorymanager_skel.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance, dance_deployment_svnt, 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_targetmanager.mpb b/modules/CIAO/DAnCE/MPC/config/dance_targetmanager.mpb
new file mode 100644
index 00000000000..9f7a3f6df61
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_targetmanager.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance_deployment_svnt, ciao_config_handlers, dance_targetmanager_skel {
+ after += DAnCE_TargetManager_Impl
+ libs += DAnCE_TargetManager_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..7e9faa32ae7
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_targetmanager_skel.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance, dance_deployment_svnt, 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_tm_daemon.mpb b/modules/CIAO/DAnCE/MPC/config/dance_tm_daemon.mpb
new file mode 100644
index 00000000000..796e100cad2
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_tm_daemon.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance_deployment_svnt {
+ after += DAnCE_TargetManagerDaemon_svnt DAnCE_TargetManagerDaemon_stub
+ libs += DAnCE_TargetManagerDaemon_svnt DAnCE_TargetManagerDaemon_stub
+}
diff --git a/modules/CIAO/DAnCE/MPC/config/dance_utils.mpb b/modules/CIAO/DAnCE/MPC/config/dance_utils.mpb
new file mode 100644
index 00000000000..2505f9dee32
--- /dev/null
+++ b/modules/CIAO/DAnCE/MPC/config/dance_utils.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dance_deployment_stub {
+ after += DAnCE_Utils
+ libs += DAnCE_Utils
+}
diff --git a/modules/CIAO/DAnCE/NodeApplication/ComponentAttributesSetter.cpp b/modules/CIAO/DAnCE/NodeApplication/ComponentAttributesSetter.cpp
new file mode 100644
index 00000000000..d0b38111a10
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeApplication/ComponentAttributesSetter.cpp
@@ -0,0 +1,88 @@
+// $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"
+
+//bool read_config_value( const ACE_CString & name,
+// const Deployment::Properties & prop,
+// CORBA::Any_out value)
+// throw()
+//{
+// ACE_CString cdmw_name = name;
+// bool found = false;
+// CORBA::ULong len = prop.length();
+// for (CORBA::ULong count = 0; count < len; ++count)
+// {
+// if ( cdmw_name.compare(prop[count].name.in()) == 0 )
+// {
+// value = new CORBA::Any(prop[count].value);
+// found = true;
+// break;
+// }
+// }
+// return found;
+//}
+
+
+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 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 ((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();
+
+ ::CORBA::Request_var req;
+
+ try
+ {
+ req = obj->_request (method.c_str ());
+ req->add_in_arg ("x") = prop[i].value;
+
+ req->invoke();
+ }
+ catch (const CORBA::BAD_OPERATION &)
+ {
+ DANCE_ERROR ((LM_WARNING, DLINFO
+ ACE_TEXT("ComponentAttributesSetter::SetComponentAttributes - ")
+ ACE_TEXT("Caught BAD_OPERATION while trying to set attribute %C\n"),
+ name.c_str ()));
+ }
+ catch (const CORBA::Exception &e)
+ {
+ CORBA::release (req);
+ e._tao_print_exception ("ComponentAttributesSetter.cpp::SetComponentAttributes ");
+ throw ::Deployment::StartError();
+ }
+ //Question - How exceptions will be processed, rised by invoked method
+ }
+}
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..9b4d8c92c18
--- /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
+{
+ bool
+ Name_Utilities::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
+ Name_Utilities::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 ((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 ((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 ((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 ((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 ((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
+ Name_Utilities::bind_context (CosNaming::Name &nm,
+ CosNaming::NamingContext_ptr ctx)
+ {
+ DANCE_TRACE ("Name_Utilities::bind_context");
+
+ if (CORBA::is_nil (ctx))
+ {
+ DANCE_ERROR ((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 ((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 ((LM_TRACE, DLINFO ACE_TEXT("Name_Utilities::bind_context - ")
+ ACE_TEXT("Context %C already bound.\n"), newname[i].id.in ()));
+ }
+ }
+ }
+
+ bool
+ Name_Utilities::unbind_object (const char *name,
+ CosNaming::NamingContext_ptr ctx)
+ {
+ DANCE_TRACE ("Name_Utilities::unbind_object");
+
+ if (CORBA::is_nil (ctx))
+ {
+ DANCE_ERROR ((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 ((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
+ Name_Utilities::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 ((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..9a4d229d348
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeApplication/Name_Utilities.h
@@ -0,0 +1,42 @@
+/**
+ * @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
+{
+ class Name_Utilities
+ {
+ public:
+ /// Write IOR to named file. Will overwrite file if present.
+ static 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.
+ static bool bind_object (const char *name,
+ CORBA::Object_ptr obj,
+ CosNaming::NamingContext_ptr);
+
+ /// Will unbind the provided name.
+ static bool unbind_object (const char *name,
+ CosNaming::NamingContext_ptr);
+
+ private:
+ static void bind_context (CosNaming::Name &nm,
+ CosNaming::NamingContext_ptr);
+
+ static 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..e62ac746400
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeApplication/NodeApplication.mpc
@@ -0,0 +1,28 @@
+// -*- MPC -*-
+// $Id$
+
+project(NodeApplication): dance_lib, dynamicinterface, dance_component_server_svnt, \
+ dance_nodeapplication_skel, \
+ dance_logger, iortable, naming, ccm_configvalue, ciao_cs_client, ciao_componentserver_stub, \
+ gen_ostream, avoids_ace_for_tao {
+ sharedname = DAnCE_NodeApplication
+ dynamicflags = NODEAPPLICATION_BUILD_DLL
+
+Source_Files {
+// ComponentInstallation_Impl.cpp
+// ServerActivator_Impl.cpp
+ NodeApplication_Impl.cpp
+ ComponentAttributesSetter.cpp
+ Name_Utilities.cpp
+ }
+ Header_Files {
+// ComponentInstallation_Impl.h
+// ServerActivator_Impl.h
+ 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..a4fc6a12c57
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.cpp
@@ -0,0 +1,2191 @@
+// $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_common.h"
+#include "Deployment/DAnCE_PropertiesC.h"
+#include "ComponentAttributesSetter.h"
+#include "Name_Utilities.h"
+
+#include <string>
+
+//#include "ComponentInstallation_Impl.h"
+
+#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 ("NodeApplicion::<anonymous>::get_property_value<T>");
+ CORBA::Any any;
+
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplicion::<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 ((LM_WARNING, DLINFO ACE_TEXT("NodeApplicion::<anonymous>::get_property_value<T> - ")
+ ACE_TEXT("Failed to extract property value for %C\n"), name));
+ return false;
+ }
+ }
+
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplicion::<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 ("NodeApplicion::<anonymous>::get_property_value<bool>");
+ CORBA::Any any;
+
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplicion::<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_boolean(val))
+ {
+ return true;
+ }
+ else
+ {
+ DANCE_ERROR ((LM_WARNING, DLINFO ACE_TEXT("NodeApplicion::<anonymous>::get_property_value<T> - ")
+ ACE_TEXT("Failed to extract property value for %C\n"), name));
+ return false;
+ }
+ }
+
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplicion::<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 ("NodeApplicion::<anonymous>::get_property_value<const char *>");
+ CORBA::Any any;
+
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplicion::<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 ((LM_WARNING, DLINFO ACE_TEXT("NodeApplicion::<anonymous>::get_property_value<const char *> - ")
+ ACE_TEXT("Failed to extract property value for %C\n"), name));
+ return false;
+ }
+ }
+
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplicion::<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 ("NodeApplicion::<anonymous>::get_property_value<T>");
+
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplicion::<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 ((LM_TRACE, DLINFO ACE_TEXT("NodeApplicion::<anonymous>::get_property_value<T> - ")
+ ACE_TEXT("Found property '%C'\n"), name));
+ if (properties[i].value >>= val)
+ return true;
+ else
+ {
+ DANCE_ERROR ((LM_WARNING, DLINFO ACE_TEXT("NodeApplicion::<anonymous>::get_property_value<T> - ")
+ ACE_TEXT("Failed to extract property value for %C\n"), name));
+ return false;
+ }
+ }
+ }
+
+
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplicion::<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 ("NodeApplicion::<anonymous>::get_property_value<const char *>");
+
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplicion::<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 ((LM_TRACE, DLINFO ACE_TEXT("NodeApplicion::<anonymous>::get_property_value<T> - ")
+ ACE_TEXT("Found property '%C'\n"), name));
+ if (properties[i].value >>= CORBA::Any::to_string (val, 0))
+ {
+ DANCE_DEBUG ((LM_TRACE,
+ DLINFO ACE_TEXT("NodeApplicion::<anonymous>::get_property_value<T> - ")
+ ACE_TEXT("Value is %C\n"), val));
+ return true;
+ }
+ else
+ {
+ DANCE_ERROR ((LM_WARNING, DLINFO ACE_TEXT("NodeApplicion::<anonymous>::get_property_value<T> - ")
+ ACE_TEXT("Failed to extract property value for %C\n"), name));
+ return false;
+ }
+ }
+ }
+
+
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplicion::<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;
+ }
+ }
+
+ const char * get_artifact_location (const char * name,
+ const ::Deployment::ArtifactDeploymentDescriptions &art)
+ {
+ DANCE_TRACE ("NodeApplication::<anonymous>::get_artifact_location");
+
+ for (CORBA::ULong i = 0; i < art.length (); ++i)
+ {
+ if (ACE_OS::strcmp (name, art[0].name.in ()) == 0)
+ return art[0].location[0].in ();
+ }
+
+ return 0;
+ }
+}
+
+
+NodeApplication_Impl::NodeApplication_Impl (CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa,
+ const ::Deployment::DeploymentPlan& plan,
+// RedirectionService & redirection,
+ const ACE_CString& node_name,
+ const PROPERTY_MAP &properties)
+ : orb_ (CORBA::ORB::_duplicate (orb)),
+ poa_ (PortableServer::POA::_duplicate (poa)),
+ plan_ (plan),
+// redirection_ (redirection),
+ 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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::~NodeApplication_Impl - ")
+ ACE_TEXT("Caught unknown C++ exception while removing server %u.\n"),
+ i));
+ }
+
+ DANCE_DEBUG ((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 ((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 ((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 ((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 ((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::init - ")
+ ACE_TEXT("Threading: %C\n"), multithread ? "Multi" : "Single"));
+
+ DANCE_DEBUG ((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;
+
+ this->poa_->activate_object (tmp_ci);
+
+ 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,
+ tmp_ci->_this (),
+ 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((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 ((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 ((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::init - ")
+ ACE_TEXT("Successfully resolved the instance naming context.\n")));
+ }
+ else DANCE_DEBUG ((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 (size_t k = 0; k < this->instances_.size (); ++k)
+ {
+ if (this->instances_[k]->type == eHome)
+ {
+ continue;
+ }
+
+ DANCE_DEBUG ((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 ((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 ((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 ((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 ((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 (size_t k = 0; k < this->instances_.size (); ++k)
+ {
+ if (this->instances_[k]->type == eHome)
+ {
+ continue;
+ }
+
+ DANCE_DEBUG ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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");
+
+ const ::Deployment::MonolithicDeploymentDescription &mdd = this->plan_.implementation[inst.mdd_idx];
+ const ::Deployment::InstanceDeploymentDescription &idd = this->plan_.instance[inst.idd_idx];
+
+ DANCE_DEBUG ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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)");
+
+ //const ::Deployment::MonolithicDeploymentDescription &mdd = this->plan_.implementation[inst.mdd_idx];
+ const ::Deployment::InstanceDeploymentDescription &idd = this->plan_.instance[inst.idd_idx];
+ this->instances_[inst.idd_idx] = &inst;
+
+ DANCE_DEBUG ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::create_component_Server - ")
+ ACE_TEXT("creating component server %u\n"), index));
+ ::Components::ConfigValues config_values;
+ server.ref = this->activator_->create_component_server (config_values);
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::create_component_server - ")
+ ACE_TEXT("component server created\n")));
+ }
+ catch (const ::Components::CreateFailure& )
+ {
+ DANCE_ERROR((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((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 ((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 ((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 ((LM_TRACE, 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 ((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 ((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;
+ 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::PlanSameProcess)
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT ("NodeApplication_impl::create_colocation_groups")
+ ACE_TEXT ("Error: On locality constraint %u, unsupported locality constraint.\n"),
+ i));
+ continue;
+ }
+
+ const ::CORBA::ULongSeq &instances = this->plan_.localityConstraint[i].constrainedInstanceRef;
+
+ for (CORBA::ULong j = 0; j < instances.length (); ++j)
+ {
+ std::string id = this->plan_.instance[instances[j]].name.in ();
+
+ DANCE_DEBUG ((LM_INFO, DLINFO ACE_TEXT ("NodeApplication_impl::create_colocation_groups")
+ ACE_TEXT ("Instance <%s> allocated to component server %u\n"),
+ id.c_str (), num_servers));
+
+ retval[id] = num_servers;
+ }
+
+ ++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 ((LM_INFO, DLINFO ACE_TEXT ("NodeApplication_impl::create_colocation_groups")
+ ACE_TEXT ("Creating default colocation group.\n")));
+ create_default_server = true;
+ }
+
+ DANCE_DEBUG ((LM_INFO, DLINFO ACE_TEXT ("NodeApplication_impl::create_colocation_groups")
+ ACE_TEXT ("Assigning instance <%s> to default colocation group.\n"),
+ i->first.c_str ()));
+ i->second = num_servers;
+ }
+ }
+
+ 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((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 (unsigned int 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);
+
+ switch (type)
+ {
+ case eHome:
+ {
+ DANCE_DEBUG ((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 svr = colocation_map[this->plan_.instance[i].name.in ()];
+ size_t pos = this->servers_[svr].containers[0].homes.size ();
+ 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);
+ //this->instances_[i] = &this->servers_[0].containers[0].homes[pos];
+ break;
+ }
+ case eComponent:
+ {
+ DANCE_DEBUG ((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 svr = colocation_map[this->plan_.instance[i].name.in ()];
+ size_t pos = this->servers_[svr].containers[0].components.size ();
+ 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);
+ //this->instances_[i] = &this->servers_[0].containers[0].components[pos];
+ break;
+ }
+ case eHomedComponent:
+ {
+ DANCE_DEBUG ((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 svr = colocation_map[this->plan_.instance[i].name.in ()];
+ size_t pos = this->servers_[svr].containers[0].components.size ();
+ 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);
+ //this->instances_[i] = &this->servers_[0].containers[0].components[pos];
+ break;
+ }
+ default:
+ {
+ DANCE_ERROR((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((LM_ERROR, DLINFO ACE_TEXT("Exception was thrown while sorting instance \"%C\".\n"), this->plan_.instance[i].name.in()));
+ throw;
+ }
+ }
+
+ DANCE_DEBUG ((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 ((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((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 (size_t k = 0; k < this->instances_.size (); ++k)
+ {
+ if (this->instances_[k]->type == eHome ||
+ 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 ((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 ((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 ((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 ((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 ((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 (size_t k = 0; k < this->instances_.size (); ++k)
+ {
+ try
+ {
+ if (this->instances_[k]->type == eInvalid ||
+ this->instances_[k]->type == eHome)
+ continue;
+
+ if (this->instances_[k]->state != ePassive)
+ DANCE_DEBUG ((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 ((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 ((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 ((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 ((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 ((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 ((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 (size_t k = 0; k < this->instances_.size (); ++k)
+ {
+ try
+ {
+ if (this->instances_[k]->type != eHome)
+ continue;
+
+ DANCE_ERROR ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::get_instance_type - ")
+ ACE_TEXT("Found explicit home component type.\n")));
+ return eHomedComponent;
+ }
+ }
+
+ DANCE_ERROR ((LM_INFO, DLINFO ACE_TEXT("NodeApplication_Impl::get_instance_type - ")
+ ACE_TEXT("Unable to determine instance type\n")));
+ return eInvalid;
+}
+
+void
+NodeApplication_Impl::create_config_values (const ::Deployment::Properties& /*prop*/,
+ const ERequestType request,
+ Components::ConfigValues& /*cfg*/) const
+{
+ DANCE_TRACE ("NodeApplication_Impl::create_config_values");
+
+ CORBA::Any_var feature_any;
+ switch (request)
+ {
+ case eCreateComponentServer:
+ {
+ break;
+ }
+ case eCreateContainer:
+ {
+
+ break;
+ }
+ case eInstallHome:
+ {
+ break;
+ }
+ default:
+ {
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::create_config_values - ")
+ ACE_TEXT("request is not a know type: eCreateComponentServer, eCreateContainer, ")
+ ACE_TEXT("eInstallHome, eCreateComponentWithConfigValues\n")));
+ throw ::Deployment::InvalidProperty("",
+ "Invalid creation type for filling in config values");
+ }
+ }
+}
+
+::Deployment::Connections*
+NodeApplication_Impl::getAllConnections()
+{
+ DANCE_DEBUG((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;
+ /*
+ this->redirection_.registration_start (this->node_name_, this->plan_.UUID.in());
+
+ CCMObjects registration
+ for (TComponents::iterator it = this->components_.begin();
+ !it.done();
+ ++it)
+ {
+ this->redirection_.registration (this->node_name_,
+ this->plan_.UUID.in(),
+ (*it).ext_id_,
+ (*it).int_id_.in());
+
+ }*/
+ for (unsigned int i = 0; i < this->plan_.connection.length(); i++)
+ {
+ for (unsigned int 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 inst_name =
+ this->plan_.instance[this->plan_.connection[i].internalEndpoint[j].instanceRef].name.in();
+
+ DANCE_DEBUG ((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);
+ // ACE_CString path = CCMObjectLocator::TreeNode::mergePath (inst_name.c_str()
+ // , this->plan_.connection[i].internalEndpoint[j].portName.in());
+ switch (this->plan_.connection[i].internalEndpoint[j].kind)
+ {
+ case ::Deployment::Facet:
+ {
+ try
+ {
+ ACE_CString name = this->plan_.connection[i].internalEndpoint[j].portName.in();
+ if (name.compare ("supports") != 0)
+ {
+ DANCE_DEBUG((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(),
+ this->plan_.connection[i].internalEndpoint[j].portName.in()));
+ CORBA::String_var facet_name = CORBA::string_dup (name.c_str());
+ (*conn) [index].endpoint[0] = obj->provide_facet (facet_name.in());
+ DANCE_DEBUG((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(),
+ this->plan_.connection[i].internalEndpoint[j].portName.in()));
+ }
+ else
+ {
+ DANCE_DEBUG((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(),
+ this->plan_.connection[i].internalEndpoint[j].portName.in()));
+ (*conn) [index].endpoint[0] = CORBA::Object::_duplicate (obj.in());
+ }
+ /* this->redirection_.registration (this->node_name_,
+ this->plan_.UUID.in(),
+ inst_name,
+ name,
+ (*conn) [index].endpoint[0].in());*/
+ //app_node.addChild(path.c_str(), obj->provide_facet(facet_name));
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::getAllConnections - provide_facet finished\n")));
+ }
+ catch (const ::Components::InvalidName& )
+ {
+ DANCE_ERROR((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((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());
+ /*this->redirection_.registration (this->node_name_,
+ this->plan_.UUID.in(),
+ inst_name,
+ this->plan_.connection[i].internalEndpoint[j].portName.in(),
+ (*conn) [index].endpoint[0].in());*/
+
+ //app_node.addChild(path.c_str(), obj->get_consumer(this->plan_.connection[i].internalEndpoint[j].portName));
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::getAllConnections - ")
+ ACE_TEXT("get_consumer finished\n")));
+ }
+ catch (const ::Components::InvalidName& )
+ {
+ DANCE_ERROR((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((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");
+ }
+ }
+ // index++;
+ }
+ }
+ }
+ /*this->redirection_.registration_finish (this->node_name_, this->plan_.UUID.in());*/
+ //this->node_.registerObjects(this->plan_.UUID.in(), app_node);
+ DANCE_DEBUG((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((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("started for connections sequence with length: %d\n"),
+ providedReference.length()));
+
+#ifdef GEN_OSTREAM_OPS
+ {
+ std::ostringstream pr_stream;
+ pr_stream << providedReference << std::endl;
+ DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplication_impl::finishLaunch - Provided references: %s",
+ pr_stream.str ().c_str ()));
+ }
+#endif /* GEN_OSTREAM_OPS */
+
+ for (unsigned int j = 0; j < this->plan_.connection.length(); ++j)
+ {
+ CORBA::ULong inst (this->plan_.connection[j].internalEndpoint[0].instanceRef);
+
+ DANCE_DEBUG ((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 ((LM_TRACE, "NodeApplication_impl::finishLaunch - Local connections: %s", 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 ((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");
+ }
+
+ const ::Deployment::PlanConnectionDescription &conn = this->plan_.connection[j];
+
+ ACE_CString name = conn.name.in();
+
+ for (unsigned int i = 0; i < providedReference.length(); ++i)
+ {
+ /*DANCE_DEBUG((LM_DEBUG, DLINFO "NodeApplication_impl::finishLaunch - "
+ "loop on all connections iteration %d for connection %C\n",
+ i,
+ providedReference[i].name.in()));*/
+
+ if (name.compare (providedReference[i].name.in()) == 0)
+ {
+ try
+ {
+ switch (conn.internalEndpoint[0].kind)
+ {
+ case ::Deployment::Facet:
+ {
+ DANCE_DEBUG((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 ());
+
+ this->connect_receptacle (obj.in (),
+ conn.internalEndpoint[1].portName.in(),
+ providedReference[i].endpoint[0].in());
+ }
+ /*
+ DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_impl::finishLaunch - "
+ "Unsupported facet connection; lacks either external reference or "
+ "multiple internalEndpoints.\n"));
+ throw ::Deployment::StartError (name.c_str (),
+ "Unsupported facet connection; lacks either external reference "
+ "or multiple internalEndpoints.\n");
+ */
+ 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((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((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((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&)
+ {
+ // 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((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::finishLaunch - set for receptacle\n")));
+ this->connect_receptacle (obj.in(),
+ conn.internalEndpoint[0].portName.in(),
+ providedReference[i].endpoint[0].in());
+ break;
+ }
+ case ::Deployment::EventEmitter:
+ {
+ DANCE_DEBUG((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((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((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 ((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 ((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((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::finishLaunch - finished\n")));
+}
+
+Components::Cookie*
+NodeApplication_Impl::connect_receptacle (Components::CCMObject_ptr inst,
+ const ACE_CString& port_name,
+ CORBA::Object_ptr facet)
+{
+ Components::Cookie* res = 0;
+ try
+ {
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("connect SimplexReceptacle for %C started\n"), port_name.c_str()));
+ res = inst->connect (port_name.c_str(), facet);
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::finishLaunch - connect finished\n")));
+ }
+ catch (const ::Components::InvalidName& )
+ {
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::InvalidName exception\n")));
+ throw ::Deployment::StartError("",
+ "Received InvalidName exception while connecting receptacle.");
+ }
+ catch (const ::Components::InvalidConnection& )
+ {
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::InvalidConnection exception\n")));
+ throw ::Deployment::InvalidConnection("",
+ "InvalidConnection caught while connecting receptacle.");
+ }
+ catch (const ::Components::AlreadyConnected& )
+ {
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::AlreadyConnected exception\n")));
+ throw ::Deployment::InvalidConnection("",
+ "Caught AlredyConnected exception while connecting receptacle");
+ }
+ catch (const ::Components::ExceededConnectionLimit& )
+ {
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::ExceededConnectionLimit exception\n")));
+ throw ::Deployment::InvalidConnection("",
+ "Caught ExceededConnectionLimit exception while connecting receptacle.");
+ }
+ 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((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("connect SimplexReceptacle for %C started\n"), port_name.c_str()));
+ res = inst->connect (port_name.c_str(), facet);
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::finishLaunch - connect finished\n")));
+ }
+ catch (const ::Components::InvalidName& )
+ {
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::finishLaunch - ")
+ 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((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::finishLaunch - ")
+ 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((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::finishLaunch - ")
+ 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((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::finishLaunch - ")
+ 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((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("connect_consumer for %C started\n"), port_name.c_str()));
+ inst->connect_consumer (port_name.c_str(), event);
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("connect_consumer finished\n")));
+ }
+ catch (const ::Components::InvalidName& )
+ {
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" ACE_TEXT(NodeApplication_impl::finishLaunch - ")
+ 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((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::finishLaunch - ")
+ 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((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::finishLaunch - ")
+ 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((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("connect_emitter_ext for %C started\n"), port_name.c_str()));
+ inst->connect_consumer (port_name.c_str(), event);
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::finishLaunch - connect_emitter_ext finished\n")));
+ }
+ catch (const ::Components::AlreadyConnected& )
+ {
+ DANCE_DEBUG ( (LM_WARNING, ACE_TEXT("NodeApplication_impl::finishLaunch - ")
+ 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((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::finishLaunch - ")
+ 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 ((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((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::finishLaunch - successfully subscribed %C\n"),
+ port_name.c_str ()));
+ }
+ catch (const ::Components::InvalidName& )
+ {
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::finishLaunch - ")
+ 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((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::finishLaunch - ")
+ 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((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("Components::CCMObject_var::subscribe() returned ::Components::ExceededCOnnectionLimit exception\n")));
+ throw ::Deployment::InvalidConnection("", "Caught ExceededConnectionLimit exception while connecting publisher.");
+ }
+ return res;
+}
+
+void NodeApplication_Impl::create_config_values(const ::Deployment::Properties& prop,
+ Components::ConfigValues& cfg) const
+{
+ ACE_CString cdmw_name = "cdmw.config.";
+ CORBA::ULong len = prop.length();
+ unsigned int ind = 0;
+ for (CORBA::ULong i = 0; i < len; ++i)
+ {
+ ACE_CString s = prop[i].name.in();
+ if (0 == s.find(cdmw_name))
+ {
+ cfg.length(ind+1);
+ cfg[ind++] = new CIAO::ConfigValue_impl (s.substring(cdmw_name.length()).c_str(), prop[i].value);
+ }
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.h b/modules/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.h
new file mode 100644
index 00000000000..b40fe03d446
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.h
@@ -0,0 +1,219 @@
+// -*- 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/Map_Manager.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 "Deployment/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,
+// RedirectionService & redirection,
+ 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 ();
+
+ ::Deployment::Connections * getAllConnections();
+
+ //TODO Exception specification should be customized
+ void init_components();
+
+ void configuration_complete_components ();
+
+ void passivate_components ();
+
+ void remove_components ();
+
+ enum ERequestType
+ {
+ eCreateComponentServer,
+ eCreateContainer,
+ eInstallHome,
+ eCreateComponentWithConfigValues
+ };
+
+ enum EInstanceType
+ {
+ eHome,
+ eComponent,
+ eHomedComponent,
+ eInvalid
+ };
+
+ enum EComponentState
+ {
+ eUninstalled,
+ eInstalled,
+ eConfigured,
+ eActive,
+ ePassive,
+ eRemoved,
+ eInvalidState
+ };
+
+
+ protected:
+ //TODO Add throw specification
+ void init();
+
+ 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
+ {
+ CONTAINERS containers;
+ ::Deployment::Properties properties;
+ Components::Deployment::ComponentServer_var ref;
+ };
+
+ typedef ACE_Array<ComponentServer> COMPONENTSERVERS;
+
+ EInstanceType get_instance_type (const ::Deployment::Properties& prop) const;
+
+ void create_config_values (const ::Deployment::Properties& prop,
+ const ERequestType request,
+ Components::ConfigValues& cfg) const;
+
+ void create_config_values(const ::Deployment::Properties& prop,
+ Components::ConfigValues& cfg) 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);
+
+ Components::Cookie* connect_receptacle (Components::CCMObject_ptr inst,
+ const ACE_CString& port_name,
+ CORBA::Object_ptr facet);
+
+ 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_;
+
+ //ComponentInstallation_Impl* installation_;
+ auto_ptr<CIAO::Deployment::CIAO_ServerActivator_i> activator_;
+
+// RedirectionService & redirection_;
+
+ 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/NodeApplication/ServerActivator_Impl.cpp b/modules/CIAO/DAnCE/NodeApplication/ServerActivator_Impl.cpp
new file mode 100644
index 00000000000..541457a9afe
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeApplication/ServerActivator_Impl.cpp
@@ -0,0 +1,249 @@
+// $Id$
+
+#include "ServerActivator_Impl.h"
+#include "Cdmw/CDMW_IDL_ExtC.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+const char* COMPONENT_SERVER_NAME = "ComponentServer";
+
+bool read_config_value (const ACE_CString & name,
+ const Components::ConfigValues & config,
+ CORBA::Any_out value)
+{
+ bool found = false;
+ CORBA::ULong const len = config.length();
+ for (CORBA::ULong count = 0; count < len; ++count)
+ {
+ if (name.compare (config[count]->name()) == 0)
+ {
+ value = new CORBA::Any (config[count]->value());
+ found = true;
+ break;
+ }
+ }
+
+ return found;
+}
+
+using namespace DAnCE;
+
+ServerActivator_Impl::ServerActivator_Impl (CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa,
+ Components::Deployment::ComponentInstallation_ptr compInst)
+ : orb_ (CORBA::ORB::_duplicate (orb))
+ , poa_ (PortableServer::POA::_duplicate (poa))
+ , compInst_ (Components::Deployment::ComponentInstallation::_duplicate (compInst))
+{
+ DANCE_DEBUG ( (LM_DEBUG, "[%M] ServerActivator_Impl::ServerActivator_Impl - started\n"));
+
+ CORBA::Object_var obj =
+ this->orb_->resolve_initial_references ("ProcessDestinationNC");
+ if (CORBA::is_nil(obj))
+ {
+ DANCE_ERROR((LM_ERROR, "[%M] ServerActivator_Impl::ServerActivator_Impl - Failed to retrieve the \"ProcessDestinationNC\" object.\n"));
+ throw CORBA::ORB::InvalidName();
+ }
+ DANCE_DEBUG ( (LM_DEBUG, "[%M] ServerActivator_Impl::ServerActivator_Impl name service reference received\n"));
+ try
+ {
+ this->naming_ = CosNaming::NamingContext::_narrow (obj);
+ }
+ catch (...)
+ {
+ DANCE_ERROR((LM_ERROR, "[%M] ServerActivator_Impl::ServerActivator_Impl - failed to narrow the \"ProcessDestinationNC\" NC.\n"));
+ throw;
+ }
+ DANCE_DEBUG ( (LM_DEBUG, "[%M] ServerActivator_Impl::ServerActivator_Impl - finished\n"));
+}
+
+ServerActivator_Impl::~ServerActivator_Impl()
+{
+ DANCE_DEBUG ( (LM_DEBUG, "[%M] ServerActivator_Impl::~ServerActivator_Impl - started\n"));
+ DANCE_DEBUG ( (LM_DEBUG, "[%M] ServerActivator_Impl::~ServerActivator_Impl - finished\n"));
+}
+
+::Components::Deployment::ComponentServer_ptr
+ServerActivator_Impl::create_component_server (const ::Components::ConfigValues & config)
+{
+ DANCE_DEBUG ( (LM_DEBUG, "[%M] ServerActivator_Impl::create_component_server - started\n"));
+
+ // NOTA: These are the configuration values understood by the server activator
+ // for component server creation
+ //
+ // +====================================+=============================+
+ // | Config Name | Type |
+ // +====================================+=============================+
+ // | PROCESS_DESTINATION (*) | string |
+ // +------------------------------------+-----------------------------+
+ //
+ // (*) compulsory
+ //
+ //Extracting process destination
+ ACE_CString processDest;
+ {
+ CORBA::Any_var processDestAny;
+
+ if (read_config_value (Components::PROCESS_DESTINATION, config, processDestAny))
+ {
+ const char* szProcessDest = 0;
+ processDestAny.in() >>= szProcessDest;
+ processDest = szProcessDest;
+ }
+ else
+ {
+ DANCE_ERROR ( (LM_ERROR, "[%M] ServerActivator_Impl::create_component_server - read_config_value() function fails\n"));
+ throw ::Components::Deployment::InvalidConfiguration();
+ }
+ }
+ ::Components::Deployment::ComponentServer_var srv;
+ if (0 == this->servers_.find (processDest, srv))
+ {
+ return srv._retn();//::Components::Deployment::ComponentServer::_duplicate (srv.in());
+ }
+ //Looking for ComponentServer
+ ACE_CString processName = processDest + "." + COMPONENT_SERVER_NAME;
+ CosNaming::Name name (1);
+ name.length (1);
+ name[0].id = CORBA::string_dup (processDest.c_str());
+ name[0].kind = CORBA::string_dup (COMPONENT_SERVER_NAME);
+ CORBA::Object_var obj;
+ CosNaming::NamingContext_var naming;
+ try
+ {
+ obj = this->naming_->resolve (name);
+ }
+ catch (const CosNaming::NamingContext::NotFound& )
+ {
+ DANCE_ERROR ( (LM_ERROR, "[%M] ServerActivator_Impl::create_component_server - NotFound exception rised."
+ "(Name : CDMW/SERVICES/ASSEMBLYANDDEPLOYMENT/%C)\n"
+ , processDest.c_str()));
+ throw ::Components::CreateFailure();
+ }
+ catch (const CosNaming::NamingContext::CannotProceed& )
+ {
+ DANCE_ERROR ( (LM_ERROR, "[%M] ServerActivator_Impl::create_component_server - NotFound exception rised."
+ "(Name : CDMW/SERVICES/ASSEMBLYANDDEPLOYMENT/%C)\n"
+ , processDest.c_str()));
+ throw ::Components::CreateFailure();
+ }
+ catch (const CosNaming::NamingContext::InvalidName& )
+ {
+ DANCE_ERROR ( (LM_ERROR, "[%M] ServerActivator_Impl::create_component_server - NotFound exception rised."
+ "(Name : CDMW/SERVICES/ASSEMBLYANDDEPLOYMENT/%C)\n"
+ , processDest.c_str()));
+ throw ::Components::CreateFailure();
+ }
+ DANCE_DEBUG ( (LM_DEBUG, "[%M] ServerActivator_Impl::create_component_server - ComponentServer object resolved\n"));
+ //Casting founded object
+ ::Components::Deployment::ComponentServer_var server
+ = ::Components::Deployment::ComponentServer::_narrow (obj);
+ DANCE_DEBUG ( (LM_DEBUG, "[%M] ServerActivator_Impl::create_component_server - ComponentServer object narrowed\n"));
+ if (CORBA::is_nil (server))
+ {
+ DANCE_ERROR ( (LM_ERROR, "[%M] ServerActivator_Impl::create_component_server - ComponentServer in process destination %s could not be contacted\n", processDest.c_str()));
+ throw ::Components::CreateFailure (::Components::COMPONENT_SERVER_NOT_FOUND);
+ }
+
+ //ComponentServer initialization by ServerActivator and ComponentInstallation references
+ this->initializeComponentServer (server.in());
+
+ //Saving server reference
+ //TODO add checking on already present component server with exception CdmwDeployment::COMPONENT_SERVER_ALREADY_CREATED
+ if (0 != this->servers_.bind (processDest, ::Components::Deployment::ComponentServer::_duplicate (server.in())))
+ {
+ DANCE_ERROR ( (LM_ERROR, "[%M] ServerActivator_Impl::create_component_server - ComponentServer in process destination %s already exists.\n", processDest.c_str()));
+ throw ::Components::CreateFailure (::Components::COMPONENT_SERVER_ALREADY_CREATED);
+ }
+
+ DANCE_DEBUG ( (LM_DEBUG, "[%M] ServerActivator_Impl::create_component_server - finished\n"));
+ return server._retn ();
+}
+
+void
+ServerActivator_Impl::remove_component_server (::Components::Deployment::ComponentServer_ptr server)
+{
+ DANCE_DEBUG ( (LM_DEBUG, "[%M] ServerActivator_Impl::remove_component_server - started\n"));
+
+ // Checking input parameters
+ if (CORBA::is_nil (server))
+ {
+ DANCE_ERROR ( (LM_ERROR, "[%M] ServerActivator_Impl::remove_component_server - Wrong input parameter\n"));
+ throw CORBA::BAD_PARAM();
+ }
+
+ // find equivalent server in servers list
+ bool bFound = false;
+ for (TCompServers::iterator iter = this->servers_.begin();
+ iter != this->servers_.end();
+ ++iter)
+ {
+ if (server->_is_equivalent ( (*iter).int_id_.in()))
+ {
+ // remove ComponentServer from list
+ this->servers_.unbind ( (*iter).ext_id_);
+ bFound = true;
+ break;
+ }
+ }
+
+ // if no equivalent found, throw exception
+ if (!bFound)
+ {
+ DANCE_ERROR ( (LM_ERROR, "[%M] ServerActivator_Impl::remove_component_server - equivalent server cannot be found in servers list\n"));
+ throw ::Components::RemoveFailure (::Components::UNKNOWN_COMPONENT_SERVER);
+ }
+
+ DANCE_DEBUG ( (LM_DEBUG, "[%M] ServerActivator_Impl::remove_component_server - finished\n"));
+}
+
+::Components::Deployment::ComponentServers *
+ServerActivator_Impl::get_component_servers ()
+{
+ DANCE_DEBUG ( (LM_DEBUG, "[%M] ServerActivator_Impl::get_component_servers - started\n"));
+
+ ::Components::Deployment::ComponentServers* pServers = 0;
+ ACE_NEW_THROW_EX (pServers,
+ ::Components::Deployment::ComponentServers (this->servers_.current_size()),
+ CORBA::NO_MEMORY());
+ int i = 0;
+ for (TCompServers::iterator iter = this->servers_.begin();
+ iter != this->servers_.end();
+ ++iter)
+ {
+ (*pServers) [i] = ::Components::Deployment::ComponentServer::_duplicate ( (*iter).int_id_.in());
+ i++;
+ }
+
+ DANCE_DEBUG ( (LM_DEBUG, "[%M] ServerActivator_Impl::get_component_servers - finished\n"));
+ return pServers;
+}
+
+void
+ServerActivator_Impl::initializeComponentServer (::Components::Deployment::ComponentServer_ptr server)
+{
+ DANCE_DEBUG ( (LM_DEBUG, "[%M] ServerActivator_Impl::initializeComponentServer - started\n"));
+
+ // the ComponentServer should be a Cdmw ComponentServer
+ Components::Deployment::ComponentServer_var cdmwServer =
+ Components::Deployment::ComponentServer::_narrow (server);
+
+ if (CORBA::is_nil (cdmwServer.in ())
+ {
+ // Component server is not Cdmw ComponentServer
+ DANCE_ERROR ( (LM_ERROR, "[%M] ServerActivator_Impl::initializeComponentServer - ComponentServer is not CdmwComponentServer\n"));
+ throw ::Components::CreateFailure (::Components::COMPONENT_SERVER_NOT_FOUND);
+ }
+ if (CORBA::is_nil (this->compInst_.in()))
+ {
+ DANCE_DEBUG ( (LM_DEBUG, "[%M] ServerActivator_Impl::initializeComponentServer - Reference on ComponentInstallation is nil!!!!\n"));
+ }
+ CdmwCcmComponentServer::ComponentServer_var proprietary_svr =
+ CdmwCcmComponentServer::ComponentServer::_narrow (cdmwServer);
+
+ // give it the ComponentInstallation
+ proprietary_svr->set_component_installation (this->compInst_.in());
+ // give it the ServerActivator
+ proprietary_svr->set_server_activator (Components::Deployment::ServerActivator::_narrow (this->poa_->servant_to_reference (this)));
+
+ DANCE_DEBUG ( (LM_DEBUG, "[%M] ServerActivator_Impl::initializeComponentServer - finished\n"));
+}
diff --git a/modules/CIAO/DAnCE/NodeApplication/ServerActivator_Impl.h b/modules/CIAO/DAnCE/NodeApplication/ServerActivator_Impl.h
new file mode 100644
index 00000000000..b0a54087b35
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeApplication/ServerActivator_Impl.h
@@ -0,0 +1,93 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file ServerActivator_Impl.h
+ *
+ * $Id$
+ *
+ * @brief Implementation of Deployment::ServerActivator
+ *
+ * @author Erwin Gottlieb <eg@prismtech.com>
+ */
+//=============================================================================
+
+#ifndef SERVERACTIVATOR_IMPL_H_
+#define SERVERACTIVATOR_IMPL_H_
+
+#include "ace/Map_Manager.h"
+#include "tao/ORB.h"
+#include "orbsvcs/orbsvcs/CosNamingC.h"
+
+#include "Cdmw/CDMW_IDLS.h"
+#include "ComponentServer/ComponentServerS.h"
+#include "NodeApplication_Export.h"
+
+namespace DAnCE
+ {
+
+ class NodeApplication_Export ServerActivator_Impl : public virtual POA_Components::Deployment::ServerActivator
+ {
+ public:
+ ServerActivator_Impl (CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa_,
+ Components::Deployment::ComponentInstallation_ptr compInst);
+ virtual ~ServerActivator_Impl();
+
+
+ //
+ // IDL:omg.org/Components/Deployment/ServerActivator/create_component_server:1.0
+ //
+ /**
+ * Creates a ComponentServer object on the host on which the
+ * ServerActivator is located.
+ *
+ * @param config ConfigValues for creation of ComponentServer.
+ * For CDMW CCM, this sequence should contain a
+ * PROCESS_DESTINATION ConfigValue which specify the
+ * destination of an already started ComponentServer process.
+ *
+ * @throws CreateFailure
+ * INVALID_PROCESS_DESTINATION: raised if the destination
+ * specified in PROCESS_DESTINATION ConfigValue is not valid.<br>
+ * COMPONENT_SERVER_NOT_CREATED: raised if the ComponentServer could
+ * not be contacted (it should be started by PlatformManagement before
+ * the call to ServerActivator).<br>
+ * COMPONENT_SERVER_ALREADY_CREATED: raised if this method has already
+ * been called with the same PROCESS_DESTINATION ConfigValue.
+ * @throws InvalidConfiguration
+ * raised if the config parameter doesn't contain a single
+ * PROCESS_DESTINATION ConfigValue.
+ */
+ virtual ::Components::Deployment::ComponentServer_ptr create_component_server (
+ const ::Components::ConfigValues & config
+ );
+
+ //
+ // IDL:omg.org/Components/Deployment/ServerActivator/remove_component_server:1.0
+ //
+ virtual void remove_component_server (
+ ::Components::Deployment::ComponentServer_ptr server
+ );
+
+ //
+ // IDL:omg.org/Components/Deployment/ServerActivator/get_component_servers:1.0
+ //
+ virtual ::Components::Deployment::ComponentServers * get_component_servers (
+ );
+
+ private:
+ typedef ACE_Map_Manager<ACE_CString, ::Components::Deployment::ComponentServer_var, ACE_Null_Mutex > TCompServers;
+ TCompServers servers_;
+
+ CORBA::ORB_var orb_;
+ PortableServer::POA_var poa_;
+ CosNaming::NamingContext_var naming_;
+ Components::Deployment::ComponentInstallation_var compInst_;
+
+ private:
+ void initializeComponentServer (::Components::Deployment::ComponentServer_ptr server);
+ };
+};
+
+#endif /*SERVERACTIVATOR_IMPL_H_*/
diff --git a/modules/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager.mpc b/modules/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager.mpc
new file mode 100644
index 00000000000..8ce4f18aa89
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager.mpc
@@ -0,0 +1,13 @@
+// -*- MPC -*-
+// $Id$
+
+project: 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..f36310c854e
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
@@ -0,0 +1,207 @@
+// $Id$
+
+
+#include "ace/streams.h"
+#include "DAnCE/Deployment/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,
+// RedirectionService & redirection,
+ const ACE_CString& node_name,
+ const PROPERTY_MAP &properties)
+ : plan_ (plan),
+ orb_ (CORBA::ORB::_duplicate (orb)),
+ poa_ (PortableServer::POA::_duplicate (poa)),
+ application_ (0),
+ //redirection_ (redirection),
+ node_name_ (node_name),
+ properties_ ()
+{
+ DANCE_TRACE ("NodeApplicationManager_Impl::NodeApplicationManager_Impl");
+
+ DANCE_DEBUG((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()));
+ this->register_plan();
+
+ PROPERTY_MAP::const_iterator i = properties.begin ();
+ while (!i.done ())
+ {
+ DANCE_DEBUG ((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 ((LM_WARNING, 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((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->redirection_,
+ this->node_name_,
+ this->properties_),
+ CORBA::NO_MEMORY ());
+
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("NodeApplicationManager_impl::startLaunch - ")
+ ACE_TEXT("Instructing NodeApplication to initialize components.\n")));
+ this->application_->init_components();
+
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("NodeApplicationManager_impl::startLaunch - ")
+ ACE_TEXT("Collecting connection references\n")));
+ providedReference = this->application_->getAllConnections();
+ //this->parent_.registerConnections(this->plan_.UUID.in(), *providedReference);
+
+ DANCE_DEBUG((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((LM_ERROR, DLINFO ACE_TEXT("NodeApplicationManager_Impl::destroyApplication - ")
+ ACE_TEXT("application is equivalent to current application\n")));
+ throw ::Deployment::StopError();
+ }
+// this->redirection_.unregister (this->node_name_, this->plan_.UUID.in());
+
+ CORBA::Any val;
+
+ if (this->properties_.find (DAnCE::STANDALONE_NM, val) == 0)
+ {
+ DANCE_DEBUG ((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((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((LM_ERROR, DLINFO ACE_TEXT("NodeApplicationManager_Impl::destroyApplication failed with unknown exception.\n")));
+ throw Deployment::StopError();
+ }
+}
+
+void
+NodeApplicationManager_Impl::register_plan(void)
+{
+ DANCE_TRACE("NodeApplicationManager_Impl::register_plan()");
+
+// this->redirection_.registration_start (this->node_name_, this->plan_.UUID.in());
+ DANCE_DEBUG((LM_TRACE, DLINFO
+ ACE_TEXT("NodeApplicationManager_Impl::register_plan - registering objects...\n")));
+ for (CORBA::ULong i = 0; i < this->plan_.instance.length(); i++)
+ {
+// this->redirection_.registration (this->node_name_,
+ // this->plan_.UUID.in(),
+ // this->plan_.instance[i].name.in(),
+ // CORBA::Object::_nil());
+ }
+
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("NodeApplicationManager_Impl::register_plan - registering endpoints...\n")));
+ 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)
+ {
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplicationManager_Impl::register_plan - "),
+ ACE_TEXT("Registering Port '%s' on instance '%s' on node '%s'\n"),
+ this->plan_.connection[i].internalEndpoint[j].portName.in(),
+ this->plan_.instance[this->plan_.connection[i].internalEndpoint[j].instanceRef].name.in(),
+ this->node_name_.c_str ()));
+// this->redirection_.registration (this->node_name_,
+ // this->plan_.UUID.in(),
+ // this->plan_.instance[this->plan_.connection[i].internalEndpoint[j].instanceRef].name.in(),
+ // this->plan_.connection[i].internalEndpoint[j].portName.in(),
+ // CORBA::Object::_nil());
+ }
+ }
+ }
+ DANCE_DEBUG ((LM_TRACE, DLINFO
+ ACE_TEXT("NodeApplicationManager_Impl::register_plan - ")
+ ACE_TEXT("Finishing registration\n")));
+ //this->redirection_.registration_finish (this->node_name_, this->plan_.UUID.in());
+}
diff --git a/modules/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h b/modules/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h
new file mode 100644
index 00000000000..0df4ec15d52
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.h
@@ -0,0 +1,60 @@
+// -*- 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"
+#include "Deployment/Deployment_DeploymentPlanC.h"
+#include "Deployment/Deployment_NodeApplicationManagerS.h"
+#include "Deployment/Deployment_NodeApplicationC.h"
+#include "NodeApplication/NodeApplication_Impl.h"
+//#include "RedirectionService/RedirectionService.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,
+// RedirectionService & redirection,
+ 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:
+ void register_plan();
+
+ Deployment::DeploymentPlan plan_;
+ CORBA::ORB_var orb_;
+ PortableServer::POA_var poa_;
+ NodeApplication_Impl* application_;
+// RedirectionService & redirection_;
+ ACE_CString node_name_;
+ PROPERTY_MAP properties_;
+ };
+}
+#endif /*NODEAPPLICATIONMANAGER_IMPL_H_*/
diff --git a/modules/CIAO/DAnCE/NodeManager/DAnCE_NodeManager_Module_Export.h b/modules/CIAO/DAnCE/NodeManager/DAnCE_NodeManager_Module_Export.h
new file mode 100644
index 00000000000..4eaf82f6fee
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeManager/DAnCE_NodeManager_Module_Export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl DAnCE_NodeManager_Module
+// ------------------------------
+#ifndef DANCE_NODEMANAGER_MODULE_EXPORT_H
+#define DANCE_NODEMANAGER_MODULE_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (DANCE_NODEMANAGER_MODULE_HAS_DLL)
+# define DANCE_NODEMANAGER_MODULE_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && DANCE_NODEMANAGER_MODULE_HAS_DLL */
+
+#if !defined (DANCE_NODEMANAGER_MODULE_HAS_DLL)
+# define DANCE_NODEMANAGER_MODULE_HAS_DLL 1
+#endif /* ! DANCE_NODEMANAGER_MODULE_HAS_DLL */
+
+#if defined (DANCE_NODEMANAGER_MODULE_HAS_DLL) && (DANCE_NODEMANAGER_MODULE_HAS_DLL == 1)
+# if defined (DANCE_NODEMANAGER_MODULE_BUILD_DLL)
+# define DAnCE_NodeManager_Module_Export ACE_Proper_Export_Flag
+# define DANCE_NODEMANAGER_MODULE_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define DANCE_NODEMANAGER_MODULE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* DANCE_NODEMANAGER_MODULE_BUILD_DLL */
+# define DAnCE_NodeManager_Module_Export ACE_Proper_Import_Flag
+# define DANCE_NODEMANAGER_MODULE_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define DANCE_NODEMANAGER_MODULE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* DANCE_NODEMANAGER_MODULE_BUILD_DLL */
+#else /* DANCE_NODEMANAGER_MODULE_HAS_DLL == 1 */
+# define DAnCE_NodeManager_Module_Export
+# define DANCE_NODEMANAGER_MODULE_SINGLETON_DECLARATION(T)
+# define DANCE_NODEMANAGER_MODULE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* DANCE_NODEMANAGER_MODULE_HAS_DLL == 1 */
+
+// Set DANCE_NODEMANAGER_MODULE_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (DANCE_NODEMANAGER_MODULE_NTRACE)
+# if (ACE_NTRACE == 1)
+# define DANCE_NODEMANAGER_MODULE_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define DANCE_NODEMANAGER_MODULE_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !DANCE_NODEMANAGER_MODULE_NTRACE */
+
+#if (DANCE_NODEMANAGER_MODULE_NTRACE == 1)
+# define DANCE_NODEMANAGER_MODULE_TRACE(X)
+#else /* (DANCE_NODEMANAGER_MODULE_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define DANCE_NODEMANAGER_MODULE_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (DANCE_NODEMANAGER_MODULE_NTRACE == 1) */
+
+#endif /* DANCE_NODEMANAGER_MODULE_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/DAnCE/NodeManager/NodeManager.mpc b/modules/CIAO/DAnCE/NodeManager/NodeManager.mpc
new file mode 100644
index 00000000000..e9f44386ae8
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeManager/NodeManager.mpc
@@ -0,0 +1,22 @@
+// -*- MPC -*-
+// $Id$
+
+project(Node_Manager_Module) : dance_lib, naming_serv, dance_nodeapplicationmanager, dance_nodeapplication_stub, dance_deployment_svnt, dynamicinterface, utils, gen_ostream, dance_nodemanager_skel, avoids_ace_for_tao {
+ sharedname = DAnCE_NodeManager
+ dynamicflags = NODEMANAGER_BUILD_DLL DANCE_NODEMANAGER_MODULE_BUILD_DLL
+
+ Source_Files {
+ NodeManager_Impl.cpp
+ Node_Manager_Module.cpp
+ }
+}
+
+project(Node_Manager_Exec) : utils, dance_exe, dance_nodemanager, naming_serv, avoids_ace_for_tao, ccm_componentserver_svnt {
+ exename = dance_node_manager
+ after += Node_Manager_Module
+ libs += DAnCE_NodeManager
+
+ Source_Files {
+ Node_Manager_Exec.cpp
+ }
+}
diff --git a/modules/CIAO/DAnCE/NodeManager/NodeManager_Export.h b/modules/CIAO/DAnCE/NodeManager/NodeManager_Export.h
new file mode 100644
index 00000000000..b7240baeb80
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeManager/NodeManager_Export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl NodeManager
+// ------------------------------
+#ifndef NODEMANAGER_EXPORT_H
+#define NODEMANAGER_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (NODEMANAGER_HAS_DLL)
+# define NODEMANAGER_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && NODEMANAGER_HAS_DLL */
+
+#if !defined (NODEMANAGER_HAS_DLL)
+# define NODEMANAGER_HAS_DLL 1
+#endif /* ! NODEMANAGER_HAS_DLL */
+
+#if defined (NODEMANAGER_HAS_DLL) && (NODEMANAGER_HAS_DLL == 1)
+# if defined (NODEMANAGER_BUILD_DLL)
+# define NodeManager_Export ACE_Proper_Export_Flag
+# define NODEMANAGER_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define NODEMANAGER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* NODEMANAGER_BUILD_DLL */
+# define NodeManager_Export ACE_Proper_Import_Flag
+# define NODEMANAGER_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define NODEMANAGER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* NODEMANAGER_BUILD_DLL */
+#else /* NODEMANAGER_HAS_DLL == 1 */
+# define NodeManager_Export
+# define NODEMANAGER_SINGLETON_DECLARATION(T)
+# define NODEMANAGER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* NODEMANAGER_HAS_DLL == 1 */
+
+// Set NODEMANAGER_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (NODEMANAGER_NTRACE)
+# if (ACE_NTRACE == 1)
+# define NODEMANAGER_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define NODEMANAGER_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !NODEMANAGER_NTRACE */
+
+#if (NODEMANAGER_NTRACE == 1)
+# define NODEMANAGER_TRACE(X)
+#else /* (NODEMANAGER_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define NODEMANAGER_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (NODEMANAGER_NTRACE == 1) */
+
+#endif /* NODEMANAGER_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/DAnCE/NodeManager/NodeManager_Impl.cpp b/modules/CIAO/DAnCE/NodeManager/NodeManager_Impl.cpp
new file mode 100644
index 00000000000..cbe944a3580
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeManager/NodeManager_Impl.cpp
@@ -0,0 +1,180 @@
+// $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 ((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 ((LM_TRACE, DLINFO ACE_TEXT("NodeManager_Impl::NodeManager_Impl - ")
+ ACE_TEXT("Binding property %s 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 ((LM_TRACE, DLINFO
+ ACE_TEXT("NodeManager_impl::~NodeManager_impl - Deactivating NodeApplicationManager %s\n"),
+ (*iter).ext_id_.c_str ()));
+ this->poa_->deactivate_object (id.in());
+ DANCE_DEBUG ((LM_TRACE, DLINFO
+ ACE_TEXT("NodeManager_impl::~NodeManager_impl - deleting NodeApplicationManager\n")));
+ delete (*iter).int_id_;
+ DANCE_DEBUG ((LM_DEBUG, DLINFO
+ ACE_TEXT("NodeManager_impl::~NodeManager_impl - NodeApplicationManager deleted\n")));
+ }
+ catch (...)
+ {
+ DANCE_ERROR ((LM_WARNING, DLINFO
+ ACE_TEXT("NodeManager_impl::~NodeManager_impl - Caught exception while removing ")
+ ACE_TEXT("NodeApplicationManager %s\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 ((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 ((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 ((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 ((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 ((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 ((LM_DEBUG, ACE_TEXT("*** size of properties_:%u\n"), properties_.current_size ()));
+ DANCE_DEBUG ((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 ((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 ((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 ((LM_TRACE, DLINFO ACE_TEXT("NodeManager_impl::destroyManager - deleting NodeApplicationManager\n")));
+ delete (*iter).int_id_;
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeManager_impl::destroyManager - NodeApplicationManager deleted\n")));
+ this->managers_.unbind ( (*iter).ext_id_);
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeManager_impl::destroyManager - finished\n")));
+ return;
+ }
+ }
+
+ DANCE_ERROR((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 ((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..2afc4be7a47
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeManager/NodeManager_Impl.h
@@ -0,0 +1,69 @@
+// -*- 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 "NodeManager_Export.h"
+#include "tao/Object.h"
+#include "tao/ORB.h"
+#include "Deployment/Deployment_common.h"
+#include "Deployment/Deployment_NodeManagerS.h"
+#include "NodeApplicationManager/NodeApplicationManager_Impl.h"
+//#include "RedirectionService/RedirectionService.h"
+
+namespace DAnCE
+{
+ class NodeManager_Export 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,
+// RedirectionService& redirection,
+ 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 ();
+
+ virtual ::Deployment::NodeApplicationManager_ptr preparePlan (
+ const ::Deployment::DeploymentPlan & plan,
+ ::Deployment::ResourceCommitmentManager_ptr resourceCommitment);
+
+ virtual void destroyManager (::Deployment::NodeApplicationManager_ptr appManager);
+
+ virtual ::Deployment::Resources * getDynamicResources ();
+
+ const char* getName();
+
+ 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_Exec.cpp b/modules/CIAO/DAnCE/NodeManager/Node_Manager_Exec.cpp
new file mode 100644
index 00000000000..889604048c5
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeManager/Node_Manager_Exec.cpp
@@ -0,0 +1,6 @@
+// $Id$
+#include "Node_Manager_Module.h"
+
+#define DANCE_MODULE_MAIN_CLASS_NAME DAnCE_NodeManager_Module
+#include "Deployment/Module_Main.h"
+
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..309efefbf6d
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeManager/Node_Manager_Module.cpp
@@ -0,0 +1,649 @@
+// -*- C++ -*-
+// $Id$
+
+#include "ace/Get_Opt.h"
+#include "ace/OS_NS_stdio.h"
+
+#include "tao/TAO_Singleton_Manager.h"
+#include "tao/StringSeqC.h"
+#include "tao/IORTable/IORTable.h"
+#include "tao/Utils/PolicyList_Destroyer.h"
+#include "orbsvcs/CosNamingC.h"
+#include "orbsvcs/orbsvcs/Naming/Naming_Loader.h"
+#include "ciao/Valuetype_Factories/Cookies.h"
+#include "ciao/ComponentServer/CIAO_PropertiesC.h"
+#include "DAnCE/Logger/Log_Macros.h"
+#include "DAnCE/Deployment/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::DAnCE_NodeManager_Module (void)
+ //: redirection_ (0)
+{
+ 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_;
+ }
+
+ //delete this->redirection_;
+}
+
+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-f|--ignore-failure\t\t ignore deployment failures\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::ifs: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("ignore-failure"), 'f', 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 ((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 ((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 ((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 ((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 ((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 'f':
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ")
+ ACE_TEXT("Instructed to ignore deployment errors\n")));
+ this->options_.ignore_failure_ = true;
+ break;
+
+ case 's':
+ DANCE_DEBUG ((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 ((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 ((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:
+ DANCE_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 ((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 ((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 ((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 ((LM_ERROR, this->usage (), argv[0], c), false);
+ }
+ DANCE_DEBUG ((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 ((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 ((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 ((LM_TRACE, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ignoring unknown option %i\n"),
+ c));
+ }
+ }
+ return true;
+}
+
+CORBA::Object_ptr
+DAnCE_NodeManager_Module::create_object (CORBA::ORB_ptr orb,
+ int argc,
+ ACE_TCHAR *argv[])
+{
+ try
+ {
+ if (CORBA::is_nil(orb))
+ {
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT("DAnCE_NodeManager_Module::create_object - ")
+ 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((LM_TRACE, DLINFO ACE_TEXT("DAnCE_NodeManager_Module::create_object - ")
+ 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((LM_TRACE, DLINFO ACE_TEXT("DAnCE_NodeManager_Module::create_object - ")
+ 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 ();
+ }
+
+
+ /* @@CDMW stuff, figure out what to do with this later....
+ try
+ {
+ CORBA::Object_var obj = orb->resolve_initial_references ("ProcessDestinationNC");
+ if (CORBA::is_nil(obj))
+ {
+ DANCE_ERROR((LM_ERROR, DLINFO "DAnCE_NodeManager_Module::create_object - "
+ "ProcessDestinationNC can not be resolved. RIR returned nil.\n"));
+ return CORBA::Object::_nil();
+ }
+
+ CosNaming::NamingContext_var pdnc = CosNaming::NamingContext::_narrow(obj.in());
+ if (CORBA::is_nil(pdnc.in()))
+ {
+ DANCE_ERROR((LM_ERROR, DLINFO "DAnCE_NodeManager_Module::create_object - "
+ "ProcessDestinationNC can not be narrowed to NC.\n"));
+ return CORBA::Object::_nil();
+ }
+ }
+ catch (CORBA::ORB::InvalidName &)
+ {
+ DANCE_ERROR((LM_ERROR, DLINFO "DAnCE_NodeManager_Module::create_object - "
+ "ProcessDestinationNC can not be resolved. InvalidName.\n"));
+ return CORBA::Object::_nil();
+ }
+ catch(...)
+ {
+ DANCE_ERROR((LM_ERROR, DLINFO "DAnCE_NodeManager_Module::create_object - "
+ "ProcessDestinationNC can not be retrieved. Unknown exception.\n"));
+ return CORBA::Object::_nil();
+ }
+ */
+
+
+ this->register_value_factories ();
+ this->create_poas ();
+
+ if (this->options_.domain_nc_)
+ {
+ try
+ {
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("DAnCE_NodeManager_Module::create_object - ")
+ 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 ((LM_ERROR,DLINFO ACE_TEXT("DAnCE_NodeManager_Module::create_object - ")
+ ACE_TEXT("Narrow to NamingContext return nil for DomainNC.\n")));
+ return CORBA::Object::_nil ();
+ }
+ }
+ }
+ catch (const CORBA::Exception&)
+ {
+ DANCE_DEBUG ((LM_WARNING, DLINFO ACE_TEXT("DAnCE_NodeManager_Module::create_object - ")
+ ACE_TEXT("DomainNC context not found!\n")));
+ }
+ }
+
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_NodeManager_Module::create_object - ")
+ 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((LM_ERROR, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::create_object - ")
+ 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 ((LM_ERROR, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::create_object - ")
+ 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 ((LM_ERROR, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::create_object - ")
+ ACE_TEXT ("Unable to RIR the IORTable.\n")));
+ return CORBA::Object::_nil ();
+ }
+
+ // Creating in process nameservice
+ CosNaming::NamingContext_var plan_nc;
+ TAO_Naming_Loader loader;
+ if (this->options_.create_plan_ns_)
+ {
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::create_object - ")
+ 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 ((LM_ERROR, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::create_object - ")
+ 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 ((LM_ERROR, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::create_object - ")
+ 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 ((LM_ERROR,DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::create_object - ")
+ 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 ());
+ }
+ }
+
+ //Creating redirection object
+/* if (this->redirection_ == 0)
+ {
+ DANCE_DEBUG ((LM_TRACE, DLINFO "DAnCE_NodeManager_Module::create_object - "
+ "Creating redirection service object\n"));
+ this->redirection_ = new DAnCE::RedirectionService (orb,
+ this->root_poa_.in (),
+ plan_nc.in (),
+ rebind_nc.in (),
+ this->options_.create_plan_ns_,
+ this->options_.port_indirection_);
+ }*/
+
+ // Make sure that we have only one Node Manager
+ if (this->options_.node_managers_.size () != 1)
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::create_object - ")
+ ACE_TEXT ("For now only one node manager creation is supported.\n")));
+ return CORBA::Object::_nil ();
+ }
+
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::create_object - ")
+ 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 ((LM_INFO, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::create_object - ")
+ 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 ((LM_TRACE, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::create_object - ")
+ 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()),
+// *this->redirection_,
+ properties),
+ CORBA::Object::_nil ());
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::create_object - ")
+ 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 menager to DomainNC
+ if (!CORBA::is_nil (this->domain_nc_.in ()))
+ {
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::create_object - ")
+ 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 ((LM_TRACE, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::create_object - ")
+ 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 ((LM_ERROR, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::create_object - ")
+ 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 ((LM_NOTICE, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::create_object - ")
+ ACE_TEXT ("DAnCE_NodeManager is running...\n")));
+
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::create_object - ")
+ ACE_TEXT ("NodeManager IOR: %s\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 ((LM_TRACE, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::create_object - ")
+ 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 ((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 ((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 ((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 ((LM_INFO, DLINFO ACE_TEXT ("DAnCE_NodeManager_Module::create_poas - ")
+ ACE_TEXT ("Using exiswting \"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);
+ }
+}
+
+#ifndef BUILD_NODE_MANAGER_EXE
+ACE_FACTORY_DEFINE (DAnCE_NodeManager_Module, DAnCE_NodeManager_Module)
+#endif /*BUILD_NODE_MANAGER_EXE */
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..489a96195a7
--- /dev/null
+++ b/modules/CIAO/DAnCE/NodeManager/Node_Manager_Module.h
@@ -0,0 +1,133 @@
+// -*- 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 "DAnCE_NodeManager_Module_Export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Service_Config.h"
+#include "ace/Vector_T.h"
+#include "ace/Map_Manager.h"
+#include "ace/Null_Mutex.h"
+#include "tao/ORB.h"
+#include "tao/PortableServer/POAC.h"
+#include "orbsvcs/CosNamingC.h"
+#include "tao/Object_Loader.h"
+#include "Deployment/DAnCE_Loader.h"
+#include "DAnCE/Deployment/Deployment_common.h"
+
+namespace DAnCE
+{
+ class NodeManager_Impl;
+// class RedirectionService;
+}
+
+/**
+ * @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_Export DAnCE_NodeManager_Module
+ : public DAnCE::DAnCE_Object_Loader
+{
+ public:
+ 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_;
+ bool ignore_failure_;
+ 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()
+ : 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),
+ cs_path_ (0),
+ timeout_ (5),
+ standalone_ (false),
+ server_args_ (0),
+ domain_nc_ (0),
+ instance_nc_ (0)
+ {
+ }
+ };
+
+ /// 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.
+ virtual CORBA::Object_ptr create_object (CORBA::ORB_ptr orb,
+ int argc,
+ ACE_TCHAR *argv []);
+
+ virtual const char * usage (void);
+
+ virtual bool parse_args (int argc, ACE_TCHAR *argv []);
+
+ private:
+ 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_;
+
+ /// Single redirection service for all NMs.
+ //DAnCE::RedirectionService * redirection_;
+ SOptions options_;
+
+ PortableServer::POA_var root_poa_;
+ PortableServer::POA_var nm_poa_;
+};
+
+ACE_FACTORY_DECLARE (DAnCE_NodeManager_Module, DAnCE_NodeManager_Module)
+
+#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_Generator/PCVisitor.cpp b/modules/CIAO/DAnCE/Plan_Generator/PCVisitor.cpp
new file mode 100644
index 00000000000..09f5003f2b2
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Generator/PCVisitor.cpp
@@ -0,0 +1,271 @@
+/* -*- C++ -*- */
+
+//========================================================================
+/*
+ * @file PCVisitor.cpp
+ *
+ * $Id$
+ *
+ * This file contains the implementation of the PackageConfiguration
+ * Visitor class PCVisitor which derives from PCVisitorBase. Each
+ * Visit function focuses on the functionality necessary to process
+ * the PackageConfiguration element which is passed to it as an argument
+ * and on dispatching the next sequence of calls in the correct order!
+ *
+ * This implementation takes a PackageConfiguration and tries to modify
+ * a DeploymentPlan bases on it by expanding the latter in width and depth
+ * simultaneously. At each level of the PackageConfiguration the
+ * PCVisitor first expands the DeploymentPlan vertically at the
+ * corrsponding level and then dispatches the children of the current
+ * PackageConfiguration element. This in turn might and most probably
+ * will cause another vertical expansion of the DeploymentPlan, however
+ * for a different element. This effect is produced due to the flattened
+ * structure of the DeploymentPlan.
+ *
+ * @author Stoyan Paunov <spaunov@isis.vanderbilt.edu>
+ * Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+ */
+//========================================================================
+
+#include "PCVisitorBase.h"
+#include "PCVisitor.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+//Constructor
+PCVisitor::PCVisitor (Deployment::DeploymentPlan &plan,
+ Deployment::PackageConfiguration &pc,
+ bool modify)
+ : PCVisitorBase (),
+ plan_ (plan),
+ pc_ (pc),
+ modify_ (modify),
+ last_impl_index_ (-1)
+{
+}
+
+//entry point for the protected visitor to get it do start
+//the visitation process
+int PCVisitor::Visit ()
+{
+ Accept (*this, this->pc_);
+ return last_impl_index_;
+}
+
+// A whole slew of overloaded routines for different IDL
+// data types part of the PackageConfiguration.
+
+void PCVisitor::Visit (Deployment::PackageConfiguration &pc)
+{
+ //visit the ComponentPackageDescription
+ if (pc.basePackage.length ())
+ {
+ //currently no support for that anywhere
+ //for (size_t r = 0; r = pc.selectRequirement.length (); ++r);
+
+ Accept (*this, pc.basePackage);
+ }
+ else
+ DANCE_DEBUG ((LM_WARNING,
+ "[PCVisitor - PackageConfiguration] We currently "
+ "do NOT support package references, specializedConfigs",
+ "or imports!\n"));
+}
+
+//ComponentPackageDescription descendents
+
+void PCVisitor::Visit (Deployment::ComponentPackageDescription &cpd)
+{
+ Accept (*this, cpd.realizes);
+ //for (size_t impl = 0; impl < cpd.implementation.length (); ++impl)
+ Accept (*this, cpd.implementation[0]);
+}
+
+
+void PCVisitor::Visit (Deployment::ComponentInterfaceDescription &)
+{
+ //Might want to populate this too once PICML starts supporting it
+}
+
+
+void PCVisitor::Visit (Deployment::PackagedComponentImplementation &pci)
+{
+ Accept (*this, pci.referencedImplementation);
+}
+
+
+void PCVisitor::Visit (Deployment::ComponentImplementationDescription &cid)
+{
+ if (cid.assemblyImpl.length ())
+ Accept (*this, cid.assemblyImpl);
+ else
+ //;//Do nothing - monolithic component deployment not supported
+ Accept (*this, cid.monolithicImpl);
+}
+
+
+void PCVisitor::Visit (Deployment::ComponentAssemblyDescription &cad)
+{
+ //visit the SubcomponentInstantiationDescription
+ Accept (*this, cad.instance);
+ //visit the connections
+ Accept (*this, cad.connection);
+}
+
+
+void PCVisitor::Visit (Deployment::SubcomponentInstantiationDescription &sid)
+{
+ //visit the ComponentPackageDescription (again)
+ if (sid.basePackage.length ())
+ {
+ Accept (*this, sid.basePackage);
+ }
+ else
+ DANCE_DEBUG ((LM_WARNING,
+ "[PCVisitor - SubcomponentInstantiationDescription] ",
+ "We currently do NOT support package references, ",
+ "specializedConfigs or imports!\n"));
+}
+
+
+void PCVisitor::Visit (Deployment::MonolithicImplementationDescription &mid)
+{
+ if (!modify_)
+ {
+ //increase the implementation length by one
+ size_t const impl_len = plan_.implementation.length ();
+ last_impl_index_ = impl_len;
+ plan_.implementation.length (impl_len + 1);
+ }
+
+ //visit the NamedImplementationArtifacts
+ Accept (*this, mid.primaryArtifact);
+}
+
+
+void PCVisitor::Visit (Deployment::NamedImplementationArtifact &nia)
+{
+ if (!modify_)
+ {
+ //increase the artifact length by one
+ size_t const arti_len = plan_.artifact.length ();
+ plan_.artifact.length (arti_len + 1);
+
+ //set the name
+ plan_.artifact[arti_len].name = nia.name;
+
+ // Set the artifactRef of implementation
+ size_t const last_mdd = plan_.implementation.length () - 1;
+ Deployment::MonolithicDeploymentDescription& mdd = plan_.implementation[last_mdd];
+ size_t const ref_len = mdd.artifactRef.length ();
+ mdd.artifactRef.length (ref_len + 1);
+ mdd.artifactRef[ref_len] = arti_len;
+ }
+
+ //visit the actual ImplementationArtifactDescriptor
+ Accept (*this, nia.referencedArtifact);
+}
+
+
+void PCVisitor::Visit (Deployment::ImplementationArtifactDescription &iad)
+{
+ if (!modify_)
+ {
+ size_t last_arti = plan_.artifact.length ();
+ Deployment::ArtifactDeploymentDescription& add = plan_.artifact[last_arti - 1];
+
+ //set the location
+ size_t plan_loc_len = add.location.length ();
+ size_t const num_loc = iad.location.length ();
+ for (size_t i = 0; i < num_loc; ++i)
+ {
+ add.location.length (plan_loc_len + 1);
+ add.location[plan_loc_len] = iad.location[i];
+ ++plan_loc_len;
+ }
+
+ //set the execParameter
+ update_execParameter (iad, add);
+ }
+
+ else
+ {
+ size_t const num_arti = plan_.artifact.length ();
+ for (size_t i = 0; i < num_arti; ++i)
+ {
+ if (ACE_OS::strstr (iad.location[0], plan_.artifact[i].location[0]))
+ plan_.artifact[i].location[0] = iad.location[0];
+ }
+ }
+}
+
+
+//ComponentPackageReference descendents
+
+void PCVisitor::Visit (Deployment::ComponentPackageReference &)
+{
+ //not implemented
+}
+
+
+//properties
+
+void PCVisitor::Visit (Deployment::AssemblyPropertyMapping &)
+{
+}
+
+
+void PCVisitor::Visit (Deployment::Property &)
+{
+}
+
+
+//requirements & capabilities
+
+void PCVisitor::Visit (Deployment::Requirement &)
+{
+}
+
+
+void PCVisitor::Visit (Deployment::Capability &)
+{
+}
+
+
+void PCVisitor::Visit (Deployment::ImplementationRequirement &)
+{
+}
+
+
+void PCVisitor::Visit (Deployment::ImplementationDependency &)
+{
+}
+
+//ports and connections
+
+void PCVisitor::Visit (Deployment::AssemblyConnectionDescription &)
+{
+}
+
+
+void PCVisitor::Visit (Deployment::SubcomponentPortEndpoint &)
+{
+}
+
+
+void PCVisitor::Visit (Deployment::ComponentExternalPortEndpoint &)
+{
+}
+
+void PCVisitor::
+update_execParameter (Deployment::ImplementationArtifactDescription& iad,
+ Deployment::ArtifactDeploymentDescription& add)
+{
+ size_t const num_execP = iad.execParameter.length ();
+ size_t execP_len = add.execParameter.length ();
+ for (size_t j = 0; j < num_execP; ++j)
+ {
+ add.execParameter.length (execP_len + 1);
+ add.execParameter[execP_len] = iad.execParameter[j];
+ ++execP_len;
+ }
+}
diff --git a/modules/CIAO/DAnCE/Plan_Generator/PCVisitor.h b/modules/CIAO/DAnCE/Plan_Generator/PCVisitor.h
new file mode 100644
index 00000000000..8417bc8a630
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Generator/PCVisitor.h
@@ -0,0 +1,128 @@
+/* -*- C++ -*- */
+
+//========================================================================
+/**
+ * file PCVisitor.h
+ *
+ * $Id$
+ *
+ * This file contains a number of Visitor classes which are used to
+ * traverse the PackageConfiguration element defined in the
+ * PackagingData.idl
+ *
+ * author Stoyan Paunov <spaunov@isis.vanderbilt.edu>
+ * Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+ */
+//========================================================================
+
+#ifndef PC_VISITOR_H
+#define PC_VISITOR_H
+
+#include /**/ "ace/pre.h"
+#include "PCVisitorBase.h" //for the base visitor
+
+//===========================================================================
+/**
+ * class PCVisitor
+ *
+ * This class is is the actual implementation for the PackageConfiguration
+ * Visitor. It derives from PCVisitorBase and overloads the functions which
+ * deal with single elements. Sequences are handled in the base class.
+ */
+//===========================================================================
+
+
+class PCVisitor : public PCVisitorBase
+{
+public:
+ /// Constructor
+ PCVisitor (Deployment::DeploymentPlan &plan,
+ Deployment::PackageConfiguration &pc,
+ bool modify);
+
+ /// Entry point to protected Visitor functions
+ int Visit ();
+
+protected:
+ /// A whole slew of overloaded routines for different IDL
+ /// data types part of the PackageConfiguration.
+
+ virtual
+ void Visit (Deployment::PackageConfiguration &pc);
+
+ //ComponentPackageDescription descendents
+ virtual
+ void Visit (Deployment::ComponentPackageDescription &cpd);
+
+ virtual
+ void Visit (Deployment::ComponentInterfaceDescription &cid);
+
+ virtual
+ void Visit (Deployment::PackagedComponentImplementation &pci);
+
+ virtual
+ void Visit (Deployment::ComponentImplementationDescription &cid);
+
+ virtual
+ void Visit (Deployment::ComponentAssemblyDescription &cad);
+
+ virtual
+ void Visit (Deployment::SubcomponentInstantiationDescription &sid);
+
+ virtual
+ void Visit (Deployment::MonolithicImplementationDescription &mid);
+
+ virtual
+ void Visit (Deployment::NamedImplementationArtifact &nia);
+
+ virtual
+ void Visit (Deployment::ImplementationArtifactDescription &iad);
+
+ //ComponentPackageReference descendents
+ virtual
+ void Visit (Deployment::ComponentPackageReference &cpr);
+
+ //properties
+ virtual
+ void Visit (Deployment::AssemblyPropertyMapping &apm);
+
+ virtual
+ void Visit (Deployment::Property &property);
+
+ //requirements & capabilities
+ virtual
+ void Visit (Deployment::Requirement &requirement);
+
+ virtual
+ void Visit (Deployment::Capability &capability);
+
+ virtual
+ void Visit (Deployment::ImplementationRequirement &ir);
+
+ virtual
+ void Visit (Deployment::ImplementationDependency &id);
+
+ //ports and connections
+ virtual
+ void Visit (Deployment::AssemblyConnectionDescription &acd);
+
+ virtual
+ void Visit (Deployment::SubcomponentPortEndpoint &spe);
+
+ virtual
+ void Visit (Deployment::ComponentExternalPortEndpoint &cepe);
+
+protected:
+ void update_execParameter (Deployment::ImplementationArtifactDescription& iad,
+ Deployment::ArtifactDeploymentDescription& add);
+
+private:
+ Deployment::DeploymentPlan& plan_;
+ Deployment::PackageConfiguration& pc_;
+ bool modify_;
+ int last_impl_index_;
+};
+
+#include /**/ "ace/post.h"
+
+#endif /* PC_VISITOR_H */
diff --git a/modules/CIAO/DAnCE/Plan_Generator/PCVisitorBase.cpp b/modules/CIAO/DAnCE/Plan_Generator/PCVisitorBase.cpp
new file mode 100644
index 00000000000..c8ffc983095
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Generator/PCVisitorBase.cpp
@@ -0,0 +1,28 @@
+/* -*- C++ -*- */
+
+//========================================================================
+/*
+ * file PCVisitorBase.cpp
+ *
+ * $Id$
+ *
+ * This file is a dummy which either includes the PCVisitorBase.inl or
+ * is ignored.
+ *
+ * author Stoyan Paunov <spaunov@isis.vanderbilt.edu>
+ */
+//========================================================================
+
+#include "PCVisitorBase.h"
+
+PCVisitorBase::PCVisitorBase (void)
+{
+}
+
+PCVisitorBase::~PCVisitorBase (void)
+{
+}
+
+#if !defined (__ACE_INLINE__)
+#include "PCVisitorBase.inl"
+#endif /* __ACE_INLINE__ */
diff --git a/modules/CIAO/DAnCE/Plan_Generator/PCVisitorBase.h b/modules/CIAO/DAnCE/Plan_Generator/PCVisitorBase.h
new file mode 100644
index 00000000000..0dee9f7cc5e
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Generator/PCVisitorBase.h
@@ -0,0 +1,171 @@
+/* -*- C++ -*- */
+
+//========================================================================
+/**
+ * file PCVisitorBase.h
+ *
+ * $Id$
+ *
+ * This file contains the virtual base class for the PackageConfiguration
+ * Visitor which is used to traverse the PackageConfiguration element
+ * defined in the PackagingData.idl. The PackageConfiguration has a
+ * number of sequence elements. This class actually implements the
+ * operations which involve sequences and delegates the calls to
+ * the operations which handle single elements from the sequence type.
+ *
+ * author Stoyan Paunov <spaunov@isis.vanderbilt.edu>
+ */
+//========================================================================
+
+#ifndef PC_VISITOR_BASE_H
+#define PC_VISITOR_BASE_H
+
+#include /**/ "ace/pre.h"
+#include "DAnCE/Deployment/Deployment_Packaging_DataC.h"
+
+//========================================================================
+/**
+ * class PCVisitorBase
+ *
+ * This class is a virtual base class for the PackageConfiguration Visitor
+ * The operation which deal with sequences are implemented here by means
+ * of the visit_sequence function above, in order to make the logic of
+ * derived classes easier to write. Writers of derived classes need only
+ * overload the functions which deal with single elements. Sequences are
+ * always handled here.
+ */
+//========================================================================
+
+
+class PCVisitorBase
+{
+public:
+ /// Constructor
+ PCVisitorBase (void);
+
+ /// Destructor
+ virtual ~PCVisitorBase (void);
+
+ /// Function what dispatches sequences
+ template <typename SEQ>
+ friend void visit_sequence (SEQ &seq, PCVisitorBase& v);
+
+ /// A whole slew of overloaded routines for different IDL
+ /// data types part of the PackageConfiguration.
+
+ virtual
+ void Visit (Deployment::PackageConfiguration &pc) = 0;
+ void Visit (Deployment::PackageConfigurations &pcs);
+
+ /// ComponentPackageDescription descendents
+ virtual
+ void Visit (Deployment::ComponentPackageDescription &cpd) = 0;
+ void Visit (Deployment::ComponentPackageDescriptions &cpds);
+
+ virtual
+ void Visit (Deployment::ComponentInterfaceDescription &cid) = 0;
+ //void Visit (Deployment::ComponentInterfaceDescriptions &cids);
+
+ virtual
+ void Visit (Deployment::PackagedComponentImplementation &pci) = 0;
+ void Visit (Deployment::PackagedComponentImplementations &pcis);
+
+ virtual
+ void Visit (Deployment::ComponentImplementationDescription &cid) = 0;
+ //void Visit (Deployment::ComponentImplementationDescriptions &cids);
+
+ virtual
+ void Visit (Deployment::ComponentAssemblyDescription &cad) = 0;
+ void Visit (Deployment::ComponentAssemblyDescriptions &cads);
+
+ virtual
+ void Visit (Deployment::SubcomponentInstantiationDescription &sid) = 0;
+ void Visit (Deployment::SubcomponentInstantiationDescriptions &sids);
+
+ virtual
+ void Visit (Deployment::MonolithicImplementationDescription &mid) = 0;
+ void Visit (Deployment::MonolithicImplementationDescriptions &mids);
+
+ virtual
+ void Visit (Deployment::NamedImplementationArtifact &nia) = 0;
+ void Visit (Deployment::NamedImplementationArtifacts &nias);
+
+ virtual
+ void Visit (Deployment::ImplementationArtifactDescription &iad) = 0;
+ //void Visit (Deployment::ImplementationArtifactDescriptions &iads);
+
+ //ComponentPackageReference descendents
+ virtual
+ void Visit (Deployment::ComponentPackageReference &cpr) = 0;
+ void Visit (Deployment::ComponentPackageReferences &cprs);
+
+ //properties
+ virtual
+ void Visit (Deployment::AssemblyPropertyMapping &apm) = 0;
+ void Visit (Deployment::AssemblyPropertyMappings &apms);
+
+ virtual
+ void Visit (Deployment::Property &property) = 0;
+ void Visit (Deployment::Properties &properties);
+
+ //requirements & capabilities
+ virtual
+ void Visit (Deployment::Requirement &requirement) = 0;
+ void Visit (Deployment::Requirements &requirements);
+
+ virtual
+ void Visit (Deployment::Capability &capability) = 0;
+ void Visit (Deployment::Capabilities &capabilities);
+
+ virtual
+ void Visit (Deployment::ImplementationRequirement &ir) = 0;
+ void Visit (Deployment::ImplementationRequirements &irs);
+
+ virtual
+ void Visit (Deployment::ImplementationDependency &id) = 0;
+ void Visit (Deployment::ImplementationDependencies &ids);
+
+ //ports and connections
+ virtual
+ void Visit (Deployment::AssemblyConnectionDescription &acd) = 0;
+ void Visit (Deployment::AssemblyConnectionDescriptions &acds);
+
+ virtual
+ void Visit (Deployment::SubcomponentPortEndpoint &spe) = 0;
+ void Visit (Deployment::SubcomponentPortEndpoints &spes);
+
+ virtual
+ void Visit (Deployment::ComponentExternalPortEndpoint &cepe) = 0;
+ void Visit (Deployment::ComponentExternalPortEndpoints &cepes);
+};
+
+template <typename T>
+void Accept (PCVisitorBase &v, T& element_to_visit)
+{
+ v.Visit (element_to_visit);
+}
+
+/**
+ * function - visit_sequence
+ *
+ * This function is used to handle sequences of elements where each
+ * element takes the form of a Visitor Node.
+ */
+template <typename SEQ>
+void visit_sequence (SEQ &seq, PCVisitorBase& v)
+{
+ CORBA::ULong const size = seq.length ();
+
+ for (CORBA::ULong i = 0; i < size; ++i)
+ {
+ Accept(v, seq[i]);
+ }
+}
+
+#if defined (__ACE_INLINE__)
+#include "PCVisitorBase.inl"
+#endif /* __ACE_INLINE__ */
+
+#include /**/ "ace/post.h"
+
+#endif /* PC_VISITOR_BASE_H */
diff --git a/modules/CIAO/DAnCE/Plan_Generator/PCVisitorBase.inl b/modules/CIAO/DAnCE/Plan_Generator/PCVisitorBase.inl
new file mode 100644
index 00000000000..955aefb7c4e
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Generator/PCVisitorBase.inl
@@ -0,0 +1,155 @@
+/* -*- C++ -*- */
+
+//========================================================================
+/*
+ * file PCVisitorBase.inl
+ *
+ * $Id$
+ *
+ * This file contains the implementation of the sequence-based
+ * PackageConfiguration Visitor functions. By implementing these
+ * we relieve developers of derived classes of the burden of handling
+ * the correct traversal of sequence-based elements. This implementation
+ * used the visit_sequence templatized function to do the heavy lifting.
+ *
+ * author Stoyan Paunov <spaunov@isis.vanderbilt.edu>
+ */
+//========================================================================
+
+
+/// A whole slew of overloaded routines for different IDL
+/// data types part of the PackageConfiguration.
+
+ACE_INLINE void PCVisitorBase::Visit
+(Deployment::PackageConfigurations &pcs)
+{
+ visit_sequence (pcs, *this);
+}
+
+//ComponentPackageDescription descendents
+
+ACE_INLINE void PCVisitorBase::Visit
+(Deployment::ComponentPackageDescriptions &cpds)
+{
+ visit_sequence (cpds, *this);
+}
+
+//NOT a member of Deployment
+
+//ACE_INLINE void PCVisitorBase::Visit
+// (Deployment::ComponentInterfaceDescriptions &cids)
+//{
+// visit_sequence (cids, *this);
+//}
+
+ACE_INLINE void PCVisitorBase::Visit
+(Deployment::PackagedComponentImplementations &pcis)
+{
+ visit_sequence (pcis, *this);
+}
+
+//NOT a member of Deployment
+
+//ACE_INLINE void PCVisitorBase::Visit
+// (Deployment::ComponentImplementationDescriptions &cids)
+//{
+// visit_sequence (cids, *this);
+//}
+
+ACE_INLINE void PCVisitorBase::Visit
+(Deployment::ComponentAssemblyDescriptions &cads)
+{
+ visit_sequence (cads, *this);
+}
+
+ACE_INLINE void PCVisitorBase::Visit
+(Deployment::SubcomponentInstantiationDescriptions &sids)
+{
+ visit_sequence (sids, *this);
+}
+
+ACE_INLINE void PCVisitorBase::Visit
+(Deployment::MonolithicImplementationDescriptions &mids)
+{
+ visit_sequence (mids, *this);
+}
+
+ACE_INLINE void PCVisitorBase::Visit
+(Deployment::NamedImplementationArtifacts &nias)
+{
+ visit_sequence (nias, *this);
+}
+
+//ACE_INLINE void PCVisitorBase::Visit
+// (Deployment::ImplementationArtifactDescriptions &iads)
+//{
+// visit_sequence (iads, *this);
+//}
+
+//ComponentPackageReference descendents
+
+ACE_INLINE void PCVisitorBase::Visit
+(Deployment::ComponentPackageReferences &cprs)
+{
+ visit_sequence (cprs, *this);
+}
+
+//properties
+
+ACE_INLINE void PCVisitorBase::Visit
+(Deployment::AssemblyPropertyMappings &apms)
+{
+ visit_sequence (apms, *this);
+}
+
+ACE_INLINE void PCVisitorBase::Visit
+(Deployment::Properties &properties)
+{
+ visit_sequence (properties, *this);
+}
+
+//requirements & capabilities
+
+ACE_INLINE void PCVisitorBase::Visit
+(Deployment::Requirements &requirements)
+{
+ visit_sequence (requirements, *this);
+}
+
+ACE_INLINE void PCVisitorBase::Visit
+(Deployment::Capabilities &capabilities)
+{
+ visit_sequence (capabilities, *this);
+}
+
+ACE_INLINE void PCVisitorBase::Visit
+(Deployment::ImplementationRequirements &irs)
+{
+ visit_sequence (irs, *this);
+}
+
+ACE_INLINE void PCVisitorBase::Visit
+(Deployment::ImplementationDependencies &ids)
+{
+ visit_sequence (ids, *this);
+}
+
+//ports and connections
+
+ACE_INLINE void PCVisitorBase::Visit
+(Deployment::AssemblyConnectionDescriptions &acds)
+{
+ visit_sequence (acds, *this);
+}
+
+ACE_INLINE void PCVisitorBase::Visit
+(Deployment::SubcomponentPortEndpoints &spes)
+{
+ visit_sequence (spes, *this);
+}
+
+ACE_INLINE void PCVisitorBase::Visit
+(Deployment::ComponentExternalPortEndpoints &cepes)
+{
+ visit_sequence (cepes, *this);
+}
diff --git a/modules/CIAO/DAnCE/Plan_Generator/Plan_Generator.mpc b/modules/CIAO/DAnCE/Plan_Generator/Plan_Generator.mpc
new file mode 100644
index 00000000000..041225ba150
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Generator/Plan_Generator.mpc
@@ -0,0 +1,20 @@
+// -*- MPC -*-
+//$Id$
+
+project (Plan_Generator) : dance_deployment_stub, naming, dance_lib, dance_repositorymanager_stub {
+ sharedname = DAnCE_Plan_Generator
+ dynamicflags = PLAN_GENERATOR_IMPL_BUILD_DLL
+
+ Source_Files {
+ Plan_Generator_Impl.cpp
+ PCVisitorBase.cpp
+ PCVisitor.cpp
+ }
+
+ Header_Files {
+ Plan_Generator_Impl.h
+ PCVisitor.h
+ PCVisitorBase.h
+ Plan_Generator_Impl_Export.h
+ }
+}
diff --git a/modules/CIAO/DAnCE/Plan_Generator/Plan_Generator_Impl.cpp b/modules/CIAO/DAnCE/Plan_Generator/Plan_Generator_Impl.cpp
new file mode 100644
index 00000000000..dd394bfe4b5
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Generator/Plan_Generator_Impl.cpp
@@ -0,0 +1,151 @@
+/**
+ * $Id$
+ * @file Plan_Generator_Impl.cpp
+ * @author Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+ */
+
+#include "Plan_Generator_Impl.h"
+#include "orbsvcs/CosNamingC.h"
+#include "PCVisitor.h"
+#include "PCVisitorBase.h"
+
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace CIAO
+{
+ namespace Plan_Generator
+ {
+ // @todo make this a private method
+ static CORBA::Object_ptr
+ fetch_reference_naming (CORBA::ORB_ptr orb,
+ const char *repoman_name = 0)
+ {
+ CORBA::Object_var tmp = orb->resolve_initial_references ("NameService");
+
+ CosNaming::NamingContext_var pns =
+ CosNaming::NamingContext::_narrow (tmp.in ());
+
+ if (CORBA::is_nil (pns.in ()))
+ {
+ return CORBA::Object::_nil ();
+ }
+
+ CosNaming::Name name (1);
+ name.length (1);
+
+ name[0].id = CORBA::string_dup (repoman_name);
+
+ return pns->resolve (name);
+ }
+
+ Plan_Generator_i::Plan_Generator_i ()
+ : rm_ ()
+ {
+ }
+
+ bool
+ Plan_Generator_i::init (CORBA::ORB_ptr orb,
+ bool rm_use_naming,
+ const char *rm_name)
+ {
+ CORBA::Object_var obj;
+
+ if (rm_use_naming)
+ {
+ obj = fetch_reference_naming (orb, rm_name);
+ }
+ else
+ {
+ obj = orb->string_to_object (rm_name);
+ }
+
+ this->rm_ = Deployment::RepositoryManager::_narrow (obj.in ());
+
+ if (CORBA::is_nil (this->rm_.in ()))
+ {
+ DANCE_ERROR ((LM_ERROR,
+ "(%P|%t) Plan_Generator_i: nil Repository "
+ "Manager reference, narrow failed\n"));
+ return false;
+ }
+
+ return true;
+ }
+
+ bool
+ Plan_Generator_i::generate_plan (Deployment::DeploymentPlan &plan,
+ const char *package_uri,
+ bool use_package_name)
+ {
+ if (CORBA::is_nil (rm_.in ()))
+ {
+ DANCE_ERROR ((LM_ERROR,
+ "(%P|%t) Plan_Generator_i: nil Execution\n"));
+ return false;
+ }
+
+ ::Deployment::PackageConfiguration_var pc;
+
+ char package[PACKAGE_NAME_LEN];
+
+ size_t length = ACE_OS::strlen (package_uri);
+ size_t pos1 = 0;
+ size_t pos2 = ACE_OS::strcspn (package_uri + pos1, "+");
+
+ while (pos1 < length)
+ {
+ ACE_OS::strsncpy (package, package_uri + pos1, pos2 + 1);
+
+ if (use_package_name)
+ {
+ pc = this->rm_->findPackageByName (package);
+
+ PCVisitor pcv (plan, *pc, true);
+ pcv.Visit ();
+ }
+ else
+ {
+ CORBA::StringSeq_var seq = this->rm_->findNamesByType (package);
+
+ for (CORBA::ULong i = 0; i < seq->length (); ++i)
+ {
+ pc = this->rm_->findPackageByName (seq[i]);
+
+ PCVisitor pcv (plan, *pc, true);
+ pcv.Visit ();
+ }
+ }
+
+ pos1 += pos2 + 1;
+ pos2 = ACE_OS::strcspn (package_uri + pos1, "+");
+ }
+
+ return true;
+ }
+
+ bool
+ Plan_Generator_i::generate_plan (Deployment::DeploymentPlan &plan,
+ const char *specific_type,
+ int &index)
+ {
+ if (CORBA::is_nil (rm_.in ()))
+ {
+ DANCE_ERROR ((LM_ERROR,
+ "(%P|%t) Plan_Generator_i: nil Execution\n"));
+ return false;
+ }
+
+ CORBA::StringSeq_var seq = rm_->findNamesByType (specific_type);
+ for (CORBA::ULong i = 0; i < seq->length (); ++i)
+ {
+ ::Deployment::PackageConfiguration_var pc =
+ rm_->findPackageByName (seq[i]);
+
+ PCVisitor pcv (plan, *pc, false);
+ index = pcv.Visit ();
+ }
+
+ return true;
+ }
+ }
+}
diff --git a/modules/CIAO/DAnCE/Plan_Generator/Plan_Generator_Impl.h b/modules/CIAO/DAnCE/Plan_Generator/Plan_Generator_Impl.h
new file mode 100644
index 00000000000..98392e4f549
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Generator/Plan_Generator_Impl.h
@@ -0,0 +1,78 @@
+/**
+ * $Id$
+ * @file Plan_Generator_Impl.h
+ * @author Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
+ *
+ * Contains the Plan_Generator_i class, which can be used to generate/modify
+ * DeploymentPlans.
+ */
+
+#ifndef PLAN_GENERATOR_IMPL_H
+#define PLAN_GENERATOR_IMPL_H
+
+#include "DAnCE/Deployment/Deployment_RepositoryManagerC.h"
+#include "Plan_Generator_Impl_Export.h"
+
+namespace CIAO
+{
+ namespace Plan_Generator
+ {
+ const size_t PACKAGE_NAME_LEN = 1024;
+
+ /**
+ * @class Plan_Generator_i
+ * @brief This class generates or modifies deployment plans.
+ */
+ class Plan_Generator_Impl_Export Plan_Generator_i
+ {
+ public:
+ Plan_Generator_i ();
+
+ /**
+ * @fn init
+ * @brief Get the proper Repoman, using naming service or ior file.
+ * @param orb
+ * @param rm_use_naming Whether use naming service or not.
+ * @param rm_name The name of the Repoman.
+ * @returns a boolean denoting if this operation is successful or not.
+ */
+ bool init (CORBA::ORB_ptr orb,
+ bool rm_use_naming = 0,
+ const char *rm_name = 0);
+
+ /**
+ * @fn generate_plan
+ * @brief Use the package name(s) or type(s) to get the PackageConfiguration
+ * provided by Repoman; and then use the PackageConfiguration to
+ * modify the location of all the artifacts in DeploymentPlan.
+ * @param plan A DeploymentPlan that need to be updated.
+ * @param package_uri The package name(s) or type(s).
+ * @param use_package_name Use package name(s) or type(s).
+ * @returns a boolean denoting if this operation is successful or not.
+ */
+ bool generate_plan (Deployment::DeploymentPlan &plan,
+ const char *package_uri,
+ bool use_package_name);
+
+ /**
+ * @fn generate_plan
+ * @brief Use the specific type of a package to get the PackageConfiguration
+ * provided by Repoman; and then use the PackageConfiguration to
+ * generate the implementation and artifact fields in DeploymentPlan.
+ * @param plan A DeploymentPlan that need to be updated.
+ * @param package_uri The package specific type.
+ * @param index The index of the newly generated implementation and artifact fields.
+ * @returns a boolean denoting if this operation is successful or not.
+ */
+ bool generate_plan (Deployment::DeploymentPlan &plan,
+ const char *specific_type,
+ int &index);
+
+ private:
+ Deployment::RepositoryManager_var rm_;
+ };
+
+ }
+}
+
+#endif /* PLAN_GENERATOR_IMPL_H */
diff --git a/modules/CIAO/DAnCE/Plan_Generator/Plan_Generator_Impl_Export.h b/modules/CIAO/DAnCE/Plan_Generator/Plan_Generator_Impl_Export.h
new file mode 100644
index 00000000000..fd120ff7b73
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Generator/Plan_Generator_Impl_Export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl Plan_Generator_Impl
+// ------------------------------
+#ifndef PLAN_GENERATOR_IMPL_EXPORT_H
+#define PLAN_GENERATOR_IMPL_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (PLAN_GENERATOR_IMPL_HAS_DLL)
+# define PLAN_GENERATOR_IMPL_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && PLAN_GENERATOR_IMPL_HAS_DLL */
+
+#if !defined (PLAN_GENERATOR_IMPL_HAS_DLL)
+# define PLAN_GENERATOR_IMPL_HAS_DLL 1
+#endif /* ! PLAN_GENERATOR_IMPL_HAS_DLL */
+
+#if defined (PLAN_GENERATOR_IMPL_HAS_DLL) && (PLAN_GENERATOR_IMPL_HAS_DLL == 1)
+# if defined (PLAN_GENERATOR_IMPL_BUILD_DLL)
+# define Plan_Generator_Impl_Export ACE_Proper_Export_Flag
+# define PLAN_GENERATOR_IMPL_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define PLAN_GENERATOR_IMPL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* PLAN_GENERATOR_IMPL_BUILD_DLL */
+# define Plan_Generator_Impl_Export ACE_Proper_Import_Flag
+# define PLAN_GENERATOR_IMPL_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define PLAN_GENERATOR_IMPL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* PLAN_GENERATOR_IMPL_BUILD_DLL */
+#else /* PLAN_GENERATOR_IMPL_HAS_DLL == 1 */
+# define Plan_Generator_Impl_Export
+# define PLAN_GENERATOR_IMPL_SINGLETON_DECLARATION(T)
+# define PLAN_GENERATOR_IMPL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* PLAN_GENERATOR_IMPL_HAS_DLL == 1 */
+
+// Set PLAN_GENERATOR_IMPL_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (PLAN_GENERATOR_IMPL_NTRACE)
+# if (ACE_NTRACE == 1)
+# define PLAN_GENERATOR_IMPL_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define PLAN_GENERATOR_IMPL_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !PLAN_GENERATOR_IMPL_NTRACE */
+
+#if (PLAN_GENERATOR_IMPL_NTRACE == 1)
+# define PLAN_GENERATOR_IMPL_TRACE(X)
+#else /* (PLAN_GENERATOR_IMPL_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define PLAN_GENERATOR_IMPL_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (PLAN_GENERATOR_IMPL_NTRACE == 1) */
+
+#endif /* PLAN_GENERATOR_IMPL_EXPORT_H */
+
+// End of auto generated file.
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..c66c5ab3d7a
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher.cpp
@@ -0,0 +1,40 @@
+// $Id$
+
+#include "Plan_Launcher_Impl.h"
+
+namespace DAnCE
+ {
+ namespace Plan_Launcher
+ {
+ int
+ run_main_implementation (int argc, ACE_TCHAR *argv[])
+ {
+ try
+ {
+ Plan_Launcher_Impl pl (argc, argv);
+ pl.execute();
+ }
+ catch (const Plan_Launcher_Impl::Deployment_Failure& e)
+ {
+ DANCE_ERROR ( (LM_ERROR, "[%M] PlanLauncher error : %C.\n", e.error_.c_str()));
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Plan_Launcher.cpp::run_main_implementation ");
+ return -1;
+ }
+ catch (...)
+ {
+ DANCE_ERROR ( (LM_ERROR, "[%M] Plan_Launcher.cpp::run_main_implementation Unknown exception.\n"));
+ return -1;
+ }
+ return 0;
+ }
+
+
+ } // Plan_Launcher
+} // DAnCE
+
+
+
+
diff --git a/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher.h b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher.h
new file mode 100644
index 00000000000..5a65dd9df9f
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher.h
@@ -0,0 +1,26 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Plan_Launcher.h
+ *
+ * $Id$
+ *
+ * @brief Run PlanLauncher
+ *
+ * @author Vinzenz Tornow <vt@prismtech.com>
+ */
+//=============================================================================
+
+#ifndef PLAN_LAUNCHER_H
+#define PLAN_LAUNCHER_H
+
+namespace DAnCE
+ {
+ namespace Plan_Launcher
+ {
+ int run_main_implementation (int, ACE_TCHAR*[]);
+ }
+}
+
+#endif /* PLAN_LAUNCHER_H */
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..594a66b6bd0
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher.mpc
@@ -0,0 +1,47 @@
+// -*- MPC -*-
+// $Id$
+
+project(Plan_Launcher_Base) : dance_lib, taolib, ciao_output, naming, ciao_executionmanager_stub {
+ sharedname = DAnCE_Plan_Launcher_Base
+ dynamicflags = PLAN_LAUNCHER_BASE_IMPL_BUILD_DLL DANCE_PLAN_LAUNCHER_BASE_MODULE_BUILD_DLL
+
+ Source_Files {
+ Plan_Launcher_Base_Impl.cpp
+ Plan_Launcher_Base_Module.cpp
+ }
+
+ Header_Files {
+ Plan_Launcher_Base_Impl.h
+ Plan_Launcher_Base_Module.h
+ Plan_Launcher_Base_Impl_Export.h
+ Plan_Launcher_Base_Module_Export.h
+ }
+}
+
+project(Plan_Launcher) : dance_lib, taolib, ciao_output, xerces, naming, dance_domainapplicationmanager_stub, ciao_config_handlers, ciao_executionmanager_stub {
+ sharedname = DAnCE_Plan_Launcher
+ dynamicflags = PLAN_LAUNCHER_IMPL_BUILD_DLL DANCE_PLAN_LAUNCHER_MODULE_BUILD_DLL
+ after += Plan_Launcher_Base
+ libs += DAnCE_Plan_Launcher_Base
+ Source_Files {
+ Plan_Launcher_Impl.cpp
+ Plan_Launcher_Module.cpp
+ }
+
+ Header_Files {
+ Plan_Launcher_Impl.h
+ Plan_Launcher_Module.h
+ Plan_Launcher_Impl_Export.h
+ Plan_Launcher_Module_Export.h
+ }
+}
+
+project(Plan_Launcher_Exec) : dance_exe, dance_logger, xerces, naming, dance_executionmanager_stub, ciao_executionmanager_stub, ciao_config_handlers {
+ after += Plan_Launcher
+ libs += DAnCE_Plan_Launcher DAnCE_Plan_Launcher_Base
+ exename = dance_plan_launcher
+
+ Source_Files {
+ Plan_Launcher_Exec.cpp
+ }
+}
diff --git a/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp
new file mode 100644
index 00000000000..d12d38358de
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp
@@ -0,0 +1,820 @@
+// $Id$
+#include "Plan_Launcher_Base_Impl.h"
+#include "orbsvcs/CosNamingC.h"
+#include "tao/ORB_Core.h"
+#include "ace/Sched_Params.h"
+#include "ccm/CCM_ObjectC.h"
+#include "ace/Env_Value_T.h"
+#include "ace/OS_NS_stdio.h"
+#include "ace/Get_Opt.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace DAnCE
+{
+namespace Plan_Launcher
+{
+
+Plan_Launcher_Base_Impl::Plan_Launcher_Base_Impl(CORBA::ORB_ptr orb, int argc,
+ ACE_TCHAR *argv[]) :
+ orb_(CORBA::is_nil (orb) ? 0 : CORBA::ORB::_duplicate (orb)),
+ em_(DAnCE::ExecutionManagerDaemon::_nil()), em_ior_("file://em.ior") //default
+ , mode_(0x0)
+{
+ DANCE_TRACE ("Plan_Launcher_Base_Impl::Plan_Launcher_Base_Impl");
+ if (CORBA::is_nil (this->orb_))
+ {
+ DANCE_DEBUG ((LM_INFO, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::Plan_Launcher_Base_Impl - ")
+ ACE_TEXT("Creating internal ORB.\n")));
+ this->orb_ = CORBA::ORB_init (argc, argv);
+ }
+ this->parse_args(argc, argv);
+
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("Plan_Launcher_i::init - em_ior = \"%C\"\n")
+ , is_empty (this->em_ior_) ? "NULL" : this->em_ior_.c_str()));
+
+ if (this->mode_ & (MODE_START_PLAN | MODE_STOP_PLAN))
+ {
+ CORBA::Object_var obj;
+ if (this->em_ior_.length() > 0)
+ {
+ obj = this->orb_->string_to_object(this->em_ior_.c_str());
+ if (CORBA::is_nil(obj))
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::Plan_Launcher_Base_Impl - ")
+ ACE_TEXT("Failed to retrieve EM object from \"%C\"\n"), this->em_ior_.c_str()));
+ throw Deployment_Failure ("Plan_Launcher_Base_Impl::Plan_Launcher_Base_Impl - "
+ "failed to retrieve EM object");
+ }
+ }
+ try
+ {
+ this->em_ = ::DAnCE::ExecutionManagerDaemon::_narrow (obj.in());
+ }
+ catch(CORBA::Exception&)
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::Plan_Launcher_Base_Impl - ")
+ ACE_TEXT("Failed to retrieve EM object from \"%C\"\n"), this->em_ior_.c_str()));
+ throw Deployment_Failure ("Plan_Launcher_Base_Impl::Plan_Launcher_Base_Impl - "
+ "failed to retrieve EM object");
+ }
+
+ if (CORBA::is_nil (this->em_.in()))
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::Plan_Launcher_Base_Impl - ")
+ ACE_TEXT("failed to get an execution manager.\n")));
+ throw Deployment_Failure ("Plan_Launcher_Base_Impl::Plan_Launcher_Base_Impl - "
+ "failed to get an execution manager");
+ }
+ }
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::Plan_Launcher_Base_Impl - ")
+ ACE_TEXT("Obtained Execution Manager ref\n")));
+}
+
+Plan_Launcher_Base_Impl::~Plan_Launcher_Base_Impl()
+{
+}
+
+void Plan_Launcher_Base_Impl::execute()
+{
+ DANCE_TRACE ("Plan_Launcher_Base_Impl::execute - ");
+
+ if (this->mode_ & MODE_START_PLAN)
+ {
+ size_t sz = this->cdr_plan_urls_.size();
+ for (size_t i= 0; i < sz; ++i)
+ {
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::execute - ")
+ ACE_TEXT("launching plan \"%s\"...\n"), this->cdr_plan_urls_[i].c_str()));
+ ::Deployment::DeploymentPlan_var plan = this->read_cdr_plan_file(this->cdr_plan_urls_[i].c_str());
+ try
+ {
+ CORBA::String_var uuid = this->launch_plan (plan.in());
+ if (0 == uuid.in ())
+ {
+ throw Deployment_Failure ("Plan_Launcher_Base_Impl::execute - "
+ "Error launching plan\n");
+ }
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::execute - ")
+ ACE_TEXT("returned plan UUID is \"%C\"\n"), uuid.in ()));
+ }
+ catch (...)
+ {
+ this->teardown_plan (plan->UUID.in());
+ throw;
+ }
+ }
+ }
+ else if (this->mode_ & MODE_STOP_PLAN)
+ {
+ this->stop_plan();
+ }
+}
+
+const char *
+Plan_Launcher_Base_Impl::launch_plan(const ::Deployment::DeploymentPlan &plan)
+{
+ DANCE_TRACE ("Plan_Launcher_Base_Impl::launch_plan");
+
+ try
+ {
+ DANCE_DEBUG ((LM_DEBUG, DLINFO
+ ACE_TEXT("Plan_Launcher_Base_Impl::launch_plan - Starting...\n")));
+ if (CORBA::is_nil (this->em_.in ()))
+ {
+ DANCE_ERROR ( (LM_ERROR, DLINFO ACE_TEXT ("Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT ("launch_plan called witn an uninitialized EM.\n")));
+ return 0;
+ }
+
+ DANCE_DEBUG ( (LM_DEBUG, DLINFO
+ ACE_TEXT ("Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT ("about to call this->em_->preparePlan\n")));
+
+ ::Deployment::DomainApplicationManager_var dam;
+ try
+ {
+ dam = this->em_->preparePlan (plan, 0);
+ }
+ catch(...)
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT("An exception was thrown during EM->preparePlan.\n")));
+ throw;
+ }
+
+ DANCE_DEBUG ( (LM_DEBUG, DLINFO
+ ACE_TEXT ("Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT ("after to call this->em_->preparePlan\n")));
+
+ if (CORBA::is_nil (dam.in ()))
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT("CIAO_PlanLauncher:preparePlan call failed: ")
+ ACE_TEXT("nil DomainApplicationManager reference\n")));
+ return 0;
+ }
+ else
+ {
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT("DAM was received from preparePlan.\n")));
+ }
+
+ this->write_dam_ior (dam.in());
+
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT("Obtained DAM ref\n")));
+
+ ::Deployment::Properties_var properties;
+ ACE_NEW_RETURN (properties,
+ Deployment::Properties,
+ 0);
+
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT("before startLaunch...\n")));
+
+ ::Deployment::Connections_var conns;
+ Deployment::Application_var da;
+ try
+ {
+ da = dam->startLaunch (properties.in (), conns.out());
+ }
+ catch(...)
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT("An exception was thrown during DAM->startLaunch.\n")));
+ throw;
+ }
+ //Deployment::DomainApplication_var da = Deployment::DomainApplication::_narrow(obj)
+ if (CORBA::is_nil (da.in()))
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT("CIAO_PlanLauncher:startLaunch call failed: ")
+ ACE_TEXT("nil DomainApplication reference\n")));
+ return 0;
+ }
+ else
+ {
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT("DomainApplication was received from startLaunch\n")));
+ }
+ //this is temporal workaround while cdmw checks object type in connect call
+ /*
+ DANCE_DEBUG ((LM_DEBUG, DLINFO "Press any key after deployment on other node finished\n"));
+ getchar();
+ */
+ this->create_external_connections (plan, conns.inout());
+
+ // Call finish Launch to complete the connections
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT("before finishLaunch\n")));
+ try
+ {
+ da->finishLaunch (conns.in(), false); // is_ReDAC by default is <false>
+ }
+ catch(...)
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT("An exception was thrown during DA->finishLaunch.\n")));
+ throw;
+ }
+
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT("after finishLaunch\n")));
+
+ // Call start to activate components
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT("before start activating components...\n")));
+
+ try
+ {
+ da->start ();
+ }
+ catch(...)
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT("An exception was thrown during DA->start.\n")));
+ throw;
+ }
+
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::launch_plan - [success]\n")));
+ DANCE_DEBUG ( (LM_DEBUG, DLINFO
+ ACE_TEXT ("[%M] Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT ("Application Deployed successfully\n")));
+
+ }
+ catch (const Deployment::ResourceNotAvailable& ex)
+ {
+ char buf[1024];
+ ACE_OS::sprintf (buf, "Plan_Launcher_Base_Impl::launch_plan - EXCEPTION: ResourceNotAvaiable exception caught: %s,\n"
+ "Type: %s\n"
+ "Property: %s\n"
+ "Element: %s\n"
+ "Resource: %s\n",
+ ex.name.in (),
+ ex.resourceType.in (),
+ ex.propertyName.in (),
+ ex.elementName.in (),
+ ex.resourceName.in ());
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("%C"), buf));
+ throw Deployment_Failure (buf);
+ }
+ catch (const Deployment::StartError& ex)
+ {
+ char buf[1024];
+ ACE_OS::sprintf (buf, "Plan_Launcher_Base_Impl::launch_plan - EXCEPTION: StartError exception caught: %s, %s\n",
+ ex.name.in (),
+ ex.reason.in ());
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("%C"), buf));
+ throw Deployment_Failure (buf);
+ }
+ catch (const Deployment::InvalidProperty& ex)
+ {
+ char buf[1024];
+ ACE_OS::sprintf (buf, "Plan_Launcher_Base_Impl::launch_plan - EXCEPTION: InvalidProperty exception caught: %s, %s\n",
+ ex.name.in (),
+ ex.reason.in ());
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("%C"), buf));
+ throw Deployment_Failure (buf);
+ }
+ catch (const Deployment::InvalidConnection& ex)
+ {
+ char buf[1024];
+ ACE_OS::sprintf (buf, "Plan_Launcher_Base_Impl::launch_plan - EXCEPTION: InvalidConnection exception caught: %s, %s\n",
+ ex.name.in (),
+ ex.reason.in ());
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("%C"), buf));
+ throw Deployment_Failure (buf);
+ }
+ 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 ((LM_ERROR, DLINFO ACE_TEXT("%C"), buf));
+ throw Deployment_Failure (buf);
+ }
+ catch (...)
+ {
+ char buf[1024];
+ ACE_OS::sprintf (buf, "Plan_Launcher_Base_Impl::launch_plan - EXCEPTION: non-CORBA exception\n");
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("%C"), buf));
+ throw Deployment_Failure (buf);
+ }
+
+ return CORBA::string_dup (plan.UUID.in());
+}
+
+bool Plan_Launcher_Base_Impl::teardown_plan(const char *uuid)
+{
+ DANCE_TRACE ("Plan_Launcher_Base_Impl::teardown_plan");
+
+ try
+ {
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::teardown_plan - looking for uuid=\"%C\"\n"), uuid));
+ ::Deployment::DomainApplicationManagers_var mgrs = this->em_->getManagers();
+ ::Deployment::DomainApplicationManager_var dapp_mgr;
+ for (size_t i = 0; i < mgrs->length(); ++i)
+ {
+ ACE_CString s = (*mgrs) [i]->getPlan()->UUID.in();
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::teardown_plan - ")
+ ACE_TEXT("comparing with existing uuid=\"%C\"\n"), s.c_str()));
+ if (s == uuid)
+ {
+ dapp_mgr = ::Deployment::DomainApplicationManager::_duplicate ( (*mgrs) [i].in());
+ break;
+ }
+ }
+
+ if (!::CORBA::is_nil (dapp_mgr.in()))
+ {
+ this->teardown_plan (dapp_mgr.in());
+ }
+ else
+ {
+ throw Deployment_Failure ("Failed to find DAM by UUID");
+ }
+ }
+ catch (const CORBA::Exception&)
+ {
+ // @todo the destroy_dam_by_plan could give a stoperror exception
+ // we should handle
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::teardown_plan - ")
+ ACE_TEXT("Unable to find DomainApplicationManager ")
+ ACE_TEXT("for plan with uuid: %C\n"), uuid));
+ return false;
+ }
+
+ return true;
+}
+
+void
+Plan_Launcher_Base_Impl::teardown_plan(::Deployment::DomainApplicationManager_ptr dam)
+{
+ DANCE_DEBUG ((LM_DEBUG, DLINFO
+ ACE_TEXT("Plan_Launcher_Base_Impl::teardown_plan - destroy the application.....\n")));
+ ::Deployment::Applications_var apps = dam->getApplications();
+ if (0 == apps->length())
+ {
+ DANCE_DEBUG((LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::teardown_plan - ")
+ ACE_TEXT("DAM has no application.\n")));
+ }
+ for (size_t i = 0; i < apps->length(); ++i)
+ {
+ dam->destroyApplication(apps[i]);
+ }
+ this->destroy_dam(dam);
+
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::teardown_plan - [success]\n")));
+}
+
+void Plan_Launcher_Base_Impl::destroy_dam(
+ ::Deployment::DomainApplicationManager_ptr dam)
+{
+ DANCE_DEBUG ((LM_DEBUG, DLINFO
+ ACE_TEXT("Plan_Launcher_Base_Impl::destroy_dam - destroy the manager.....\n")));
+ this->em_->destroyManager(dam);
+
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::destroy_dam - [success]\n")));
+}
+
+void Plan_Launcher_Base_Impl::usage(const ACE_TCHAR* program)
+{
+ if (0 == program)
+ {
+ DANCE_ERROR ( (LM_ERROR, ACE_TEXT ("[(%P|%t) Executor] Usage: %s <options>\n"), program));
+ }
+
+ DANCE_ERROR ( (LM_ERROR, ACE_TEXT ("Plan Launcher Options :\n")
+ ACE_TEXT ("-k|--em-ior <EXECUTION_MANAGER_IOR>")
+ ACE_TEXT (" : Default file://em.ior\n")
+ ACE_TEXT ("-d|--read-cdr-plan <CDR_DEPLOYMENT_PLAN_URL>\n")
+ ACE_TEXT ("-w|--write-cdr-plan <CDR_DEPLOYMENT_PLAN_URL>\n")
+ ACE_TEXT ("-t|--plan-uuid <PLAN_UUID>\n")
+ // ACE_TEXT ("-a|dam-ior <DOMAIN_APPLICATION_MANAGER_IOR>\n")
+ // ACE_TEXT ("-n|--node-mgr : Use naming service to fetch EM\n")
+ ACE_TEXT ("-q|--stop-plan : Stop the plan\n")
+ ACE_TEXT ("-h|--help : Show this usage information\n")
+ ACE_TEXT ("-x|--read-plan <XML_DEPLOYMENT_PLAN_URL>\n\n")));
+}
+
+void Plan_Launcher_Base_Impl::parse_args(int argc, ACE_TCHAR *argv[])
+{
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("PL options : \"")));
+
+ for (int i = 0; i < argc; ++i)
+ {
+ DANCE_DEBUG ( (LM_TRACE, "\t%s\n", argv[i]));
+ }
+
+ ACE_Get_Opt get_opt(argc, argv,
+ ACE_TEXT ("k:d:w:t:a:qx:h"), 0);
+ get_opt.long_option(ACE_TEXT("em-ior"), 'k', ACE_Get_Opt::ARG_REQUIRED);
+ get_opt.long_option(ACE_TEXT("read-cdr-plan"), 'd', ACE_Get_Opt::ARG_REQUIRED);
+ get_opt.long_option(ACE_TEXT("write-cdr-plan"), 'w', ACE_Get_Opt::ARG_REQUIRED);
+ get_opt.long_option(ACE_TEXT("plan-uuid"), 't', ACE_Get_Opt::ARG_REQUIRED);
+ get_opt.long_option(ACE_TEXT("dam-ior"), 'a', ACE_Get_Opt::ARG_REQUIRED);
+ get_opt.long_option(ACE_TEXT("stop-plan"), 'q', ACE_Get_Opt::NO_ARG);
+ get_opt.long_option(ACE_TEXT("read-plan"), 'x', ACE_Get_Opt::ARG_REQUIRED);
+ 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':
+ this->em_ior_ = expand_env_vars (get_opt.opt_arg());
+ break;
+ case 'd':
+ s = expand_env_vars (get_opt.opt_arg());
+ // trim leading file://
+ if (0 < s.length())
+ {
+ ssize_t pos = s.find("file://");
+ if (0 == pos)
+ {
+ s = s.substring(7);
+ }
+ this->cdr_plan_urls_.push_back(s);
+ }
+ break;
+ case 'w':
+ if (0 < this->cdr_dest_url_.length())
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Ambiguity: more then one --write-cdr-plan option.\n")));
+ throw Deployment_Failure("Ambiguity: more then one --write-cdr-plan option.");
+ }
+ this->cdr_dest_url_ = expand_env_vars (get_opt.opt_arg());
+ this->mode_ |= MODE_WRITE_CDR;
+ // trim leading file://
+ if (0 < this->cdr_dest_url_.length())
+ {
+ ssize_t pos = this->cdr_dest_url_.find("file://");
+ if (0 == pos)
+ {
+ this->cdr_dest_url_= this->cdr_dest_url_.substring(7);
+ }
+ }
+ break;
+ case 't':
+ this->plan_uuid_ = ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg());
+ break;
+ case 'a':
+ this->dam_ior_ = expand_env_vars (get_opt.opt_arg());
+ DANCE_DEBUG((LM_TRACE, "[%M] Parsed DAM IOR : %s\n", this->dam_ior_.c_str()));
+ break;
+ case 'q':
+ this->mode_ |= MODE_STOP_PLAN;
+ break;
+ case 'x':
+ this->xml_plan_urls_.push_back(expand_env_vars (get_opt.opt_arg()));
+ break;
+ case 'h':
+ usage (argv[0]);
+ throw Help_Issued ();
+ break;
+ default:
+ usage (argv[0]);
+ throw Deployment_Failure ("parse_args : invalid arguments");
+ }
+ }
+ if (0 == (this->mode_ & (MODE_STOP_PLAN | MODE_WRITE_CDR)))
+ {
+ this->mode_ |= MODE_START_PLAN;
+ }
+ // Post-check
+ this->check_mode_consistentness();
+}
+
+void Plan_Launcher_Base_Impl::write_dam_ior(
+ ::Deployment::DomainApplicationManager_ptr dam)
+{
+ if (is_empty (this->dam_ior_))
+ return;
+
+ CORBA::String_var ior = this->orb_->object_to_string(dam);
+
+ FILE* ior_output_file = ACE_OS::fopen (this->dam_ior_.c_str(), "w");
+
+ if (ior_output_file)
+ {
+ ACE_OS::fprintf (ior_output_file, "%s", ior.in());
+ ACE_OS::fclose (ior_output_file);
+ }
+ else
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("PlanLauncher.cpp::write_dap_ior - Error in opening file %s to write DAM IOR: %m"),
+ this->dam_ior_.c_str()));
+ throw Deployment_Failure (ACE_CString ("write_dap_ior - Error in opening file %s to write DAM IOR: %m") +
+ this->dam_ior_);
+ }
+}
+
+void
+Plan_Launcher_Base_Impl::stop_plan()
+{
+ bool stopped = false;
+ if (!is_empty (this->plan_uuid_))
+ {
+ stopped = true;
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::stop_plan - ")
+ ACE_TEXT("Stopping plan \"%C\"\n"), this->plan_uuid_.c_str ()));
+
+ if (!this->teardown_plan(this->plan_uuid_.c_str ()))
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::stop_plan - ")
+ ACE_TEXT("tear down assembly failed: unknown plan uuid.\n")));
+ }
+ }
+
+ if (!is_empty (this->dam_ior_))
+ {
+ stopped = true;
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::stop_plan - ")
+ ACE_TEXT("Stopping plan by DAM IOR.\n")));
+ CORBA::Object_var
+ obj = this->orb_->string_to_object(this->dam_ior_.c_str());
+ if (CORBA::is_nil (obj.in ()))
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO
+ ACE_TEXT("Plan_Launcher_Base_Impl::stop_plan - ")
+ ACE_TEXT("tear down assembly failed: DAM IOR is invalid.\n")));
+ }
+ else
+ {
+ Deployment::DomainApplicationManager_var
+ dam = Deployment::DomainApplicationManager::_narrow (obj.in());
+ this->teardown_plan(dam.in());
+ }
+ }
+
+ if (0 < this->cdr_plan_urls_.size())
+ {
+ stopped = true;
+ size_t sz = this->cdr_plan_urls_.size();
+ for (size_t i = 0; i < sz; ++i)
+ {
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::stop_plan - ")
+ ACE_TEXT("Stopping plan by plan file : %s\n"), this->cdr_plan_urls_[i].c_str()));
+ ::Deployment::DeploymentPlan_var plan = this->read_cdr_plan_file(this->cdr_plan_urls_[i].c_str());
+ if (!this->teardown_plan(plan->UUID.in()))
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::stop_plan - ")
+ ACE_TEXT("tear down assembly failed: unknown plan uuid.\n")));
+ }
+ }
+ }
+
+ if (!stopped && 0 == this->xml_plan_urls_.size())
+ {
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::stop_plan - ")
+ ACE_TEXT("Stopping plan all running plans.\n")));
+ ::Deployment::DomainApplicationManagers_var
+ mgrs = this->em_->getManagers();
+ ::Deployment::DomainApplicationManager_var dapp_mgr;
+ for (size_t i = 0; i < mgrs->length(); ++i)
+ {
+ this->teardown_plan((*mgrs) [i]);
+ }
+ }
+}
+
+void Plan_Launcher_Base_Impl::create_external_connections(
+ const ::Deployment::DeploymentPlan &plan, Deployment::Connections& conn)
+{
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("create_external_connections - start\n")));
+ /* CORBA::Object_var obj = this->orb_->resolve_initial_references("NameService");
+ CosNaming::NamingContext_var naming = CosNaming::NamingContext::_narrow(obj.in());
+ CosNaming::BindingList_var bl;
+ CosNaming::BindingIterator_var bi;
+ //naming->list(10L, bl.out(), bi.out());
+ CosNaming::Name name(1);
+ name.length(3);
+ name[0].id = CORBA::string_dup("CDMW");//CORBA::string_dup("CcmDance1Test");
+ name[1].id = CORBA::string_dup ("SERVICES");
+ name[2].id = CORBA::string_dup("ASSEMBLYANDDEPLOYMENT");
+ obj = naming->resolve(name);
+ DANCE_DEBUG((LM_DEBUG, "[%M] create_external_connections - After resolve\n"));
+ CosNaming::NamingContext_var CcmDance1Test = CosNaming::NamingContext::_narrow(obj.in());
+ CcmDance1Test->list(10L, bl.out(), bi.out());
+ bool exit = false;
+ while (!exit)
+ {
+ char buf[1024];
+ ACE_OS::sprintf(buf, "create_external_connections - naming size is %u\n", bl->length());
+ DANCE_DEBUG((LM_DEBUG, buf));
+ for ( size_t i = 0; i< bl->length(); i++ )
+ {
+ for ( size_t j = 0; j < (*bl)[i].binding_name.length(); j++ )
+ {
+ ACE_OS::sprintf(buf, "create_external_connections - Binding name %s, binding kind %s, binding type %i\n"
+ , (*bl)[i].binding_name[j].id.in()
+ , (*bl)[i].binding_name[j].kind.in()
+ , (*bl)[i].binding_type);
+ DANCE_DEBUG((LM_DEBUG, buf));
+ }
+ }
+ if(!bi->next_n(10L, bl.out()))
+ {
+ exit = true;
+ }
+ }
+ */
+ for (unsigned int i = 0; i < plan.connection.length(); i++)
+ {
+ if (plan.connection[i].externalReference.length() > 0
+ && plan.connection[i].externalReference[0].provider)
+ {
+ DANCE_DEBUG ( (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()));
+ unsigned int indx = conn.length();
+ conn.length(indx + 1);
+ conn[indx].name= CORBA::string_dup (plan.connection[i].name.in());
+ conn[indx].endpoint.length(1L);
+ CORBA::Object_ptr
+ obj = this->orb_->string_to_object(plan.connection[i].externalReference[0].location.in());
+ if (!CORBA::is_nil (obj))
+ {
+ //Components::CCMObject_ptr ccmobj = Components::CCMObject::_narrow (obj);
+ conn[indx].endpoint[0] = obj;
+ }
+ else
+ {
+ DANCE_DEBUG ( (LM_DEBUG,
+ ACE_TEXT("Plan_Launcher_i::create_external_connections - can't create object for IOR %C\n"),
+ plan.connection[i].externalReference[0].location.in()));
+ throw 0;
+ }
+ }
+ }
+}
+
+Deployment::DeploymentPlan*Plan_Launcher_Base_Impl::read_cdr_plan_file(
+ const char *cdr_plan_uri)
+{
+ Deployment::DeploymentPlan* res = 0;
+ try
+ {
+ FILE* file = ACE_OS::fopen (cdr_plan_uri, "r");
+ if (0 == file)
+ {
+ ACE_CString s = "read_cdr_plan_file : failed to open file \"";
+ s += cdr_plan_uri;
+ s += "\"";
+ throw Deployment_Failure (s.c_str());
+ }
+
+ size_t buf_size;
+ ACE_OS::fread (&buf_size, sizeof (buf_size), 1, file);
+
+ char * buf = new char[buf_size];
+ ACE_OS::fread (buf, 1, buf_size, file);
+
+ {
+ TAO_InputCDR cdr (buf, buf_size);
+ ACE_NEW_THROW_EX (res,
+ Deployment::DeploymentPlan (),
+ CORBA::NO_MEMORY ());
+ cdr >> *res;
+ }
+ delete [] buf;
+ ACE_OS::fclose (file);
+ }
+ catch(...)
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Failed to read CDR plan file.\n")));
+ throw Deployment_Failure("Failed to read CDR plan file.");
+ }
+ return res;
+}
+
+void
+Plan_Launcher_Base_Impl::write_cdr_plan_file(const char * filename,
+ const Deployment::DeploymentPlan & plan)
+{
+ try
+ {
+ FILE * file = ACE_OS::fopen (filename, "w");
+ if (0 == file)
+ {
+ throw Deployment_Failure ("write_cdr_plan_file : failed to open file.");
+ }
+ TAO_OutputCDR cdr;
+ cdr << plan;
+ size_t buf_size = cdr.total_length();
+ ACE_OS::fwrite (&buf_size, sizeof (buf_size), 1, file);
+ for (const ACE_Message_Block *i = cdr.begin ();
+ i != 0;
+ i = i->cont ())
+ {
+ ACE_OS::fwrite (i->rd_ptr (), 1, i->length (), file);
+ }
+ ACE_OS::fclose (file);
+ }
+ catch(...)
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::write_cdr_plan_file - ")
+ ACE_TEXT("Failed to write CDR plan file.\n")));
+ throw Deployment_Failure("Failed to write CDR plan file.");
+ }
+}
+
+void
+Plan_Launcher_Base_Impl::check_mode_consistentness()
+{
+ if (this->mode_ & MODE_START_PLAN)
+ {
+ if (0 == this->cdr_plan_urls_.size() && 0 == this->xml_plan_urls_.size())
+ {
+ throw Deployment_Failure ("check_mode_consistentness : no plan to start");
+ }
+ }
+ else if (this->mode_ & MODE_STOP_PLAN)
+ {
+ // if (is_empty (this->cdr_plan_url_)
+ // && is_empty (this->xml_plan_url_)
+ // && is_empty (this->plan_uuid_)
+ // && is_empty (this->dam_ior_))
+ // {
+ // throw Deployment_Failure ("check_mode_consistentness : no plan to stop");
+ // }
+ }
+ else if (this->mode_ & MODE_WRITE_CDR)
+ {
+ if (is_empty (this->cdr_dest_url_))
+ {
+ throw Deployment_Failure ("check_mode_consistentness : no cdr url for writing plan.");
+ }
+ if (1 != this->xml_plan_urls_.size())
+ {
+ throw Deployment_Failure ("check_mode_consistentness : not one source url for writing plan.");
+ }
+ }
+ else
+ {
+ throw Deployment_Failure ("check_mode_consistentness : no action specified");
+ }
+ }
+
+ACE_CString
+Plan_Launcher_Base_Impl::expand_env_vars (const ACE_TCHAR * s)
+ {
+ ACE_CString src(ACE_TEXT_ALWAYS_CHAR (s));
+ ACE_CString res;
+ size_t pos_done = 0;
+ while (pos_done < (size_t) src.length())
+ {
+ size_t pos_start = src.find ('$', pos_done);
+ if (ACE_CString::npos == pos_start)
+ {
+ res += src.substring (pos_done);
+ pos_done = src.length();
+ }
+ else // take the substring before '$' and append value
+
+ {
+ if (pos_start > pos_done)
+ {
+ res += src.substring (pos_done, pos_start - pos_done);
+ pos_done = pos_start;
+ }
+
+ size_t pos_end = src.length();
+
+ size_t p;
+
+ p = src.find (' ', pos_start + 1);
+ if (ACE_CString::npos != p && pos_end > p) pos_end = p;
+
+ p = src.find ('/', pos_start + 1);
+ if (ACE_CString::npos != p && pos_end > p) pos_end = p;
+
+ p = src.find ('\\', pos_start + 1);
+ if (ACE_CString::npos != p && pos_end > p) pos_end = p;
+
+ p = src.find ('$', pos_start + 1);
+ if (ACE_CString::npos != p && pos_end > p) pos_end = p;
+
+ if (pos_end - pos_start > 1)
+ {
+ ACE_Env_Value<const ACE_TCHAR*> val (ACE_TEXT_CHAR_TO_TCHAR (src.substring (pos_start + 1, pos_end - pos_start - 1).c_str()), 0);
+ res += ACE_TEXT_ALWAYS_CHAR (val);
+ pos_done = pos_end;
+ }
+ else
+ {
+ DANCE_DEBUG ((LM_WARNING, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::expand_env_vars - ")
+ ACE_TEXT("Envvar can not be parsed out at %i in \"%s\""),
+ pos_start,
+ src.c_str()));
+ }
+ }
+ }
+ return res;
+ }
+
+} // Plan_Launcher
+} // DAnCE
diff --git a/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.h b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.h
new file mode 100644
index 00000000000..bb853a521dc
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.h
@@ -0,0 +1,117 @@
+/**
+ * $Id$
+ * @file Plan_Launcher_Base_Impl.h
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Contains the Plan_Launcher_i class, which can be used by
+ * applications to launch component assemblies.
+ */
+#ifndef PLAN_LAUNCHER_BASE_IMPL_H
+#define PLAN_LAUNCHER_BASE_IMPL_H
+
+#include "Plan_Launcher_Base_Impl_Export.h"
+#include "DAnCE/Deployment/Deployment_DomainApplicationManagerC.h"
+#include "DAnCE/Deployment/CIAO_ExecutionManagerDaemonC.h"
+#include "DAnCE/Deployment/Deployment_ConnectionC.h"
+#include "ace/Map_Manager.h"
+#include "DAnCE/Deployment/Deployment_DeploymentPlanC.h"
+#include "ace/Vector_T.h"
+
+namespace DAnCE
+{
+namespace Plan_Launcher
+{
+
+/**
+ * @class Plan_Launcher_Impl
+ * @brief This class launches and manages deployment plans.
+ */
+class Plan_Launcher_Base_Impl_Export Plan_Launcher_Base_Impl
+{
+public:
+ struct Deployment_Failure
+ {
+ Deployment_Failure(const ACE_CString &error) :
+ error_(error)
+ {}
+ ACE_CString error_;
+ };
+
+ struct Help_Issued
+ {
+ Help_Issued() {}
+ };
+
+ Plan_Launcher_Base_Impl(CORBA::ORB_ptr orb, int argc, ACE_TCHAR *argv[]);
+
+ virtual ~Plan_Launcher_Base_Impl();
+
+ void execute();
+
+ static Deployment::DeploymentPlan* read_cdr_plan_file(
+ const char *deployment_plan_uri);
+ static void write_cdr_plan_file(const char * filename,
+ const Deployment::DeploymentPlan & plan);
+
+ protected:
+
+ /**
+ * @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);
+
+ /// Returns the DAM associated with a given plan URI
+ ::Deployment::DomainApplicationManager_ptr get_dam(const char *uuid);
+
+ /// Tears down a plan given the UUID
+ bool teardown_plan(const char *uuid);
+
+ void teardown_plan(::Deployment::DomainApplicationManager_ptr dam);
+
+ void destroy_dam(::Deployment::DomainApplicationManager_ptr dam);
+
+ virtual void stop_plan();
+ void usage(const ACE_TCHAR* program = 0);
+ void parse_args(int argc, ACE_TCHAR *argv[]);
+
+ static bool is_empty(const ACE_CString & s)
+ {
+ return 0 == s.length();
+ }
+
+ void write_dam_ior(::Deployment::DomainApplicationManager_ptr dam);
+
+ void create_external_connections(const ::Deployment::DeploymentPlan &plan,
+ Deployment::Connections& conn);
+
+ virtual void check_mode_consistentness();
+ static ACE_CString expand_env_vars(const ACE_TCHAR * src);
+
+ /// Cached ORB pointer
+ CORBA::ORB_var orb_;
+
+ /// Object reference of the ExecutionManager
+ ::DAnCE::ExecutionManagerDaemon_var em_;
+
+ ACE_Vector<ACE_CString> cdr_plan_urls_;
+ ACE_CString plan_uuid_;
+ ACE_CString em_ior_;
+ ACE_CString dam_ior_;
+ ACE_Vector<ACE_CString> xml_plan_urls_;
+ ACE_CString cdr_dest_url_;
+
+ unsigned long mode_;
+ static const unsigned long MODE_START_PLAN = 0x0001;
+ static const unsigned long MODE_STOP_PLAN = 0x0002;
+ static const unsigned long MODE_USE_NAMING = 0x0004;
+ static const unsigned long MODE_WRITE_CDR = 0x0008;
+
+}; // class Plan_Launcher_Impl
+
+} // Plan_Launcher
+} // DAnCE
+
+
+#endif /* PLAN_LAUNCHER_BASE_IMPL_H */
diff --git a/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl_Export.h b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl_Export.h
new file mode 100644
index 00000000000..5dcb51be117
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl_Export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl Plan_Launcher_Base_Impl
+// ------------------------------
+#ifndef PLAN_LAUNCHER_BASE_IMPL_EXPORT_H
+#define PLAN_LAUNCHER_BASE_IMPL_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (PLAN_LAUNCHER_BASE_IMPL_HAS_DLL)
+# define PLAN_LAUNCHER_BASE_IMPL_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && PLAN_LAUNCHER_BASE_IMPL_HAS_DLL */
+
+#if !defined (PLAN_LAUNCHER_BASE_IMPL_HAS_DLL)
+# define PLAN_LAUNCHER_BASE_IMPL_HAS_DLL 1
+#endif /* ! PLAN_LAUNCHER_BASE_IMPL_HAS_DLL */
+
+#if defined (PLAN_LAUNCHER_BASE_IMPL_HAS_DLL) && (PLAN_LAUNCHER_BASE_IMPL_HAS_DLL == 1)
+# if defined (PLAN_LAUNCHER_BASE_IMPL_BUILD_DLL)
+# define Plan_Launcher_Base_Impl_Export ACE_Proper_Export_Flag
+# define PLAN_LAUNCHER_BASE_IMPL_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define PLAN_LAUNCHER_BASE_IMPL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* PLAN_LAUNCHER_BASE_IMPL_BUILD_DLL */
+# define Plan_Launcher_Base_Impl_Export ACE_Proper_Import_Flag
+# define PLAN_LAUNCHER_BASE_IMPL_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define PLAN_LAUNCHER_BASE_IMPL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* PLAN_LAUNCHER_BASE_IMPL_BUILD_DLL */
+#else /* PLAN_LAUNCHER_BASE_IMPL_HAS_DLL == 1 */
+# define Plan_Launcher_Base_Impl_Export
+# define PLAN_LAUNCHER_BASE_IMPL_SINGLETON_DECLARATION(T)
+# define PLAN_LAUNCHER_BASE_IMPL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* PLAN_LAUNCHER_BASE_IMPL_HAS_DLL == 1 */
+
+// Set PLAN_LAUNCHER_BASE_IMPL_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (PLAN_LAUNCHER_BASE_IMPL_NTRACE)
+# if (ACE_NTRACE == 1)
+# define PLAN_LAUNCHER_BASE_IMPL_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define PLAN_LAUNCHER_BASE_IMPL_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !PLAN_LAUNCHER_BASE_IMPL_NTRACE */
+
+#if (PLAN_LAUNCHER_BASE_IMPL_NTRACE == 1)
+# define PLAN_LAUNCHER_BASE_IMPL_TRACE(X)
+#else /* (PLAN_LAUNCHER_BASE_IMPL_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define PLAN_LAUNCHER_BASE_IMPL_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (PLAN_LAUNCHER_BASE_IMPL_NTRACE == 1) */
+
+#endif /* PLAN_LAUNCHER_BASE_IMPL_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Module.cpp b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Module.cpp
new file mode 100644
index 00000000000..c3aa5227538
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Module.cpp
@@ -0,0 +1,47 @@
+// -*- C++ -*-
+// $Id$
+
+#include "Plan_Launcher_Base_Module.h"
+#include "tao/TAO_Singleton_Manager.h"
+#include "tao/StringSeqC.h"
+#include "ace/Get_Opt.h"
+#include "Plan_Launcher_Base_Impl.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+ACE_RCSID (DAnCE,
+ DAnCE_Plan_Launcher_Base_Module,
+ "$Id$")
+
+using namespace DAnCE::Plan_Launcher;
+
+DAnCE_Plan_Launcher_Base_Module::DAnCE_Plan_Launcher_Base_Module (void)
+{
+}
+
+CORBA::Object_ptr
+DAnCE_Plan_Launcher_Base_Module::create_object (CORBA::ORB_ptr orb,
+ int argc,
+ ACE_TCHAR *argv[])
+{
+ try
+ {
+ Plan_Launcher_Base_Impl pl (orb, argc, argv);
+ pl.execute();
+ }
+ catch (const Plan_Launcher_Base_Impl::Deployment_Failure& e)
+ {
+ DANCE_ERROR ( (LM_ERROR, "[%M] PlanLauncher error : %C.\n", e.error_.c_str()));
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Plan_Launcher_Base_Module.cpp::run_main_implementation ");
+ }
+ catch (...)
+ {
+ DANCE_ERROR ( (LM_ERROR, "[%M] Plan_Launcher_Base_Module.cpp::run_main_implementation Unknown exception.\n"));
+ }
+ return CORBA::Object::_nil ();
+}
+
+
+ACE_FACTORY_DEFINE (DAnCE_Plan_Launcher_Base_Module, DAnCE_Plan_Launcher_Base_Module)
diff --git a/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Module.h b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Module.h
new file mode 100644
index 00000000000..92c6036aa9e
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Module.h
@@ -0,0 +1,58 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Plan_Launcher_Base_Module.h
+ *
+ * $Id$
+ *
+ * @brief Uses to run PlanLauncher from starter
+ *
+ * @author Vinzenz Tornow <vt@prismtech.com>
+ */
+//=============================================================================
+
+#ifndef PLAN_LAUNCHER_MODULE_H
+#define PLAN_LAUNCHER_MODULE_H
+
+#include /**/ "ace/pre.h"
+
+#include "Plan_Launcher_Base_Module_Export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Service_Config.h"
+#include "tao/Object_Loader.h"
+
+
+/**
+ * @class Plan_Launcher_Module
+ *
+ * @brief The shared object that is instantiated when the plan launcher
+ * module/library is dynamically loaded.
+ *
+ * This class runs the plan launcher instance
+ */
+class DAnCE_Plan_Launcher_Base_Module_Export DAnCE_Plan_Launcher_Base_Module
+ : public TAO_Object_Loader
+ {
+ public:
+ /// Constructor.
+ DAnCE_Plan_Launcher_Base_Module (void);
+
+ /// Overload the base class method to create a new instance
+ /// of a DAnCE_NodeManager_Module object.
+ virtual CORBA::Object_ptr create_object (CORBA::ORB_ptr orb,
+ int argc,
+ ACE_TCHAR *argv []);
+
+ private:
+ };
+
+ACE_FACTORY_DECLARE (DAnCE_Plan_Launcher_Base_Module, DAnCE_Plan_Launcher_Base_Module)
+
+#include /**/ "ace/post.h"
+
+#endif /* PLAN_LAUNCHER_MODULE_H */
diff --git a/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Module_Export.h b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Module_Export.h
new file mode 100644
index 00000000000..f9e3f7a7961
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Module_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_Base_Module
+// ------------------------------
+#ifndef DANCE_PLAN_LAUNCHER_BASE_MODULE_EXPORT_H
+#define DANCE_PLAN_LAUNCHER_BASE_MODULE_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (DANCE_PLAN_LAUNCHER_BASE_MODULE_HAS_DLL)
+# define DANCE_PLAN_LAUNCHER_BASE_MODULE_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && DANCE_PLAN_LAUNCHER_BASE_MODULE_HAS_DLL */
+
+#if !defined (DANCE_PLAN_LAUNCHER_BASE_MODULE_HAS_DLL)
+# define DANCE_PLAN_LAUNCHER_BASE_MODULE_HAS_DLL 1
+#endif /* ! DANCE_PLAN_LAUNCHER_BASE_MODULE_HAS_DLL */
+
+#if defined (DANCE_PLAN_LAUNCHER_BASE_MODULE_HAS_DLL) && (DANCE_PLAN_LAUNCHER_BASE_MODULE_HAS_DLL == 1)
+# if defined (DANCE_PLAN_LAUNCHER_BASE_MODULE_BUILD_DLL)
+# define DAnCE_Plan_Launcher_Base_Module_Export ACE_Proper_Export_Flag
+# define DANCE_PLAN_LAUNCHER_BASE_MODULE_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define DANCE_PLAN_LAUNCHER_BASE_MODULE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* DANCE_PLAN_LAUNCHER_BASE_MODULE_BUILD_DLL */
+# define DAnCE_Plan_Launcher_Base_Module_Export ACE_Proper_Import_Flag
+# define DANCE_PLAN_LAUNCHER_BASE_MODULE_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define DANCE_PLAN_LAUNCHER_BASE_MODULE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* DANCE_PLAN_LAUNCHER_BASE_MODULE_BUILD_DLL */
+#else /* DANCE_PLAN_LAUNCHER_BASE_MODULE_HAS_DLL == 1 */
+# define DAnCE_Plan_Launcher_Base_Module_Export
+# define DANCE_PLAN_LAUNCHER_BASE_MODULE_SINGLETON_DECLARATION(T)
+# define DANCE_PLAN_LAUNCHER_BASE_MODULE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* DANCE_PLAN_LAUNCHER_BASE_MODULE_HAS_DLL == 1 */
+
+// Set DANCE_PLAN_LAUNCHER_BASE_MODULE_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (DANCE_PLAN_LAUNCHER_BASE_MODULE_NTRACE)
+# if (ACE_NTRACE == 1)
+# define DANCE_PLAN_LAUNCHER_BASE_MODULE_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define DANCE_PLAN_LAUNCHER_BASE_MODULE_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !DANCE_PLAN_LAUNCHER_BASE_MODULE_NTRACE */
+
+#if (DANCE_PLAN_LAUNCHER_BASE_MODULE_NTRACE == 1)
+# define DANCE_PLAN_LAUNCHER_BASE_MODULE_TRACE(X)
+#else /* (DANCE_PLAN_LAUNCHER_BASE_MODULE_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define DANCE_PLAN_LAUNCHER_BASE_MODULE_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (DANCE_PLAN_LAUNCHER_BASE_MODULE_NTRACE == 1) */
+
+#endif /* DANCE_PLAN_LAUNCHER_BASE_MODULE_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Exec.cpp b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Exec.cpp
new file mode 100644
index 00000000000..bd832e3dd31
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Exec.cpp
@@ -0,0 +1,8 @@
+// $Id$
+#include "Plan_Launcher_Module.h"
+
+#define DANCE_MODULE_MAIN_SKIP_ORB_RUN
+#define DANCE_MODULE_MAIN_CLASS_NAME DAnCE_Plan_Launcher_Module
+#include "Deployment/Module_Main.h"
+
+
diff --git a/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp
new file mode 100644
index 00000000000..f7f2f35eff2
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp
@@ -0,0 +1,117 @@
+// $Id$
+#include "Plan_Launcher_Impl.h"
+#include "orbsvcs/CosNamingC.h"
+#include "tools/Config_Handlers/XML_File_Intf.h"
+#include "tools/Config_Handlers/DnC_Dump.h"
+#include "ace/Sched_Params.h"
+#include "ccm/CCM_ObjectC.h"
+
+#include "ace/SString.h"
+#include "ace/Get_Opt.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace DAnCE
+{
+namespace Plan_Launcher
+{
+
+::Deployment::DeploymentPlan *
+Plan_Launcher_Impl::load_xml_plan(const ACE_TCHAR *deployment_plan_uri)
+{
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("Plan_Launcher_Impl::load_xml_plan - ")
+ ACE_TEXT("Parsing plan \"%C\"...\n"), deployment_plan_uri));
+
+ ::Deployment::DeploymentPlan * plan = 0;
+ try
+ {
+ CIAO::Config_Handlers::XML_File_Intf intf (deployment_plan_uri);
+ intf.add_search_path (ACE_TEXT("CIAO_ROOT"), ACE_TEXT("/docs/schema/"));
+ intf.add_search_path (ACE_TEXT("TAO_ROOT"), ACE_TEXT("/docs/schema/"));
+ plan = intf.release_plan ();
+ if (0 == plan)
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Impl::load_xml_plan - ")
+ ACE_TEXT("Failed to parse plan \"%C\".\n"), deployment_plan_uri));
+ throw Deployment_Failure("Failed to parse plan.");
+ }
+ }
+ catch (...)
+ {
+ ACE_TString s = ACE_TEXT ("failed to parse deployment plan \"");
+ s += deployment_plan_uri;
+ s += ACE_TEXT ("\"");
+ DANCE_DEBUG ((LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Impl::load_xml_plan - %s\n"), s.c_str()));
+ throw Deployment_Failure (ACE_TEXT_ALWAYS_CHAR (s.c_str()));
+ }
+
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("Plan_Launcher_Impl::load_xml_plan - Parsing complete....\n")));
+ return plan;
+}
+
+void Plan_Launcher_Impl::execute()
+{
+ DANCE_TRACE ("Plan_Launcher_Impl::execute()");
+
+ if (this->mode_ & MODE_START_PLAN)
+ {
+ size_t sz = this->xml_plan_urls_.size();
+ for (size_t i= 0; i < sz; ++i)
+ {
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("Plan_Launcher_Impl::execute - ")
+ ACE_TEXT("launching plan \"%C\"...\n"), this->xml_plan_urls_[i].c_str()));
+ ::Deployment::DeploymentPlan_var plan =
+ this->load_xml_plan(ACE_TEXT_CHAR_TO_TCHAR (this->xml_plan_urls_[i].c_str()));
+ try
+ {
+ CORBA::String_var uuid = this->launch_plan (plan.in());
+ if (0 == uuid.in ())
+ {
+ throw Deployment_Failure ("execute - Error launching plan\n");
+ }
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("Plan_Launcher_Impl::execute - ")
+ ACE_TEXT("returned plan UUID is \"%C\"\n"), uuid.in ()));
+ }
+ catch (...)
+ {
+ this->teardown_plan (plan->UUID.in());
+ throw;
+ }
+ }
+ this->Plan_Launcher_Base_Impl::execute();
+ }
+
+ if (this->mode_ & MODE_STOP_PLAN)
+ {
+ this->stop_plan();
+ }
+
+ if (this->mode_ & MODE_WRITE_CDR)
+ {
+ ::Deployment::DeploymentPlan_var plan = this->load_xml_plan(ACE_TEXT_CHAR_TO_TCHAR (this->xml_plan_urls_[0].c_str()));
+ this->write_cdr_plan_file(this->cdr_dest_url_.c_str(), plan);
+ }
+}
+void Plan_Launcher_Impl::stop_plan()
+{
+ DANCE_TRACE ("Plan_Launcher_Impl::stop_plan");
+
+ if (0 < this->xml_plan_urls_.size())
+ {
+ size_t sz = this->xml_plan_urls_.size();
+ for (size_t i= 0; i < sz; ++i)
+ {
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("Plan_Launcher_Impl::stop_plan - ")
+ ACE_TEXT("Stopping plan by plan file: %C\n"), this->xml_plan_urls_[i].c_str()));
+ ::Deployment::DeploymentPlan_var plan = this->load_xml_plan(ACE_TEXT_CHAR_TO_TCHAR (this->xml_plan_urls_[i].c_str()));
+ if (!this->teardown_plan(plan->UUID.in()))
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Impl::stop_plan - ")
+ ACE_TEXT("tear down assembly failed: unknown plan uuid.\n")));
+ }
+ }
+ }
+ this->Plan_Launcher_Base_Impl::stop_plan();
+}
+
+} // Plan_Launcher
+} // DAnCE
diff --git a/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Impl.h b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Impl.h
new file mode 100644
index 00000000000..bb4477f9b15
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Impl.h
@@ -0,0 +1,43 @@
+/**
+ * $Id$
+ * @file Plan_Launcher_Impl.h
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Contains the Plan_Launcher_i class, which can be used by
+ * applications to launch component assemblies.
+ */
+#ifndef PLAN_LAUNCHER_IMPL_H
+#define PLAN_LAUNCHER_IMPL_H
+
+#include "Plan_Launcher_Impl_Export.h"
+#include "Plan_Launcher_Base_Impl.h"
+
+namespace DAnCE
+ {
+ namespace Plan_Launcher
+ {
+
+ /**
+ * @class Plan_Launcher_Impl
+ * @brief This class launches and manages deployment plans.
+ */
+ class Plan_Launcher_Impl_Export Plan_Launcher_Impl : public Plan_Launcher_Base_Impl
+ {
+ public:
+ Plan_Launcher_Impl (CORBA::ORB_ptr orb, int argc, ACE_TCHAR *argv[])
+ : Plan_Launcher_Base_Impl (orb, argc, argv) {};
+
+ virtual ~Plan_Launcher_Impl () {};
+
+ void execute();
+ static ::Deployment::DeploymentPlan* load_xml_plan (const ACE_TCHAR *deployment_plan_uri);
+
+ protected:
+ virtual void stop_plan();
+ }; // class Plan_Launcher_Impl
+
+ } // Plan_Launcher
+} // DAnCE
+
+
+#endif /* PLAN_LAUNCHER_IMPL_H */
diff --git a/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Impl_Export.h b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Impl_Export.h
new file mode 100644
index 00000000000..1c85d1b98c9
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Impl_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 PLAN_LAUNCHER_IMPL_EXPORT_H
+#define PLAN_LAUNCHER_IMPL_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (PLAN_LAUNCHER_IMPL_HAS_DLL)
+# define PLAN_LAUNCHER_IMPL_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && PLAN_LAUNCHER_IMPL_HAS_DLL */
+
+#if !defined (PLAN_LAUNCHER_IMPL_HAS_DLL)
+# define PLAN_LAUNCHER_IMPL_HAS_DLL 1
+#endif /* ! PLAN_LAUNCHER_IMPL_HAS_DLL */
+
+#if defined (PLAN_LAUNCHER_IMPL_HAS_DLL) && (PLAN_LAUNCHER_IMPL_HAS_DLL == 1)
+# if defined (PLAN_LAUNCHER_IMPL_BUILD_DLL)
+# define Plan_Launcher_Impl_Export ACE_Proper_Export_Flag
+# define PLAN_LAUNCHER_IMPL_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define PLAN_LAUNCHER_IMPL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* PLAN_LAUNCHER_IMPL_BUILD_DLL */
+# define Plan_Launcher_Impl_Export ACE_Proper_Import_Flag
+# define PLAN_LAUNCHER_IMPL_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define PLAN_LAUNCHER_IMPL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* PLAN_LAUNCHER_IMPL_BUILD_DLL */
+#else /* PLAN_LAUNCHER_IMPL_HAS_DLL == 1 */
+# define Plan_Launcher_Impl_Export
+# define PLAN_LAUNCHER_IMPL_SINGLETON_DECLARATION(T)
+# define PLAN_LAUNCHER_IMPL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* PLAN_LAUNCHER_IMPL_HAS_DLL == 1 */
+
+// Set PLAN_LAUNCHER_IMPL_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (PLAN_LAUNCHER_IMPL_NTRACE)
+# if (ACE_NTRACE == 1)
+# define PLAN_LAUNCHER_IMPL_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define PLAN_LAUNCHER_IMPL_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !PLAN_LAUNCHER_IMPL_NTRACE */
+
+#if (PLAN_LAUNCHER_IMPL_NTRACE == 1)
+# define PLAN_LAUNCHER_IMPL_TRACE(X)
+#else /* (PLAN_LAUNCHER_IMPL_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define PLAN_LAUNCHER_IMPL_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (PLAN_LAUNCHER_IMPL_NTRACE == 1) */
+
+#endif /* PLAN_LAUNCHER_IMPL_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Module.cpp b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Module.cpp
new file mode 100644
index 00000000000..fa07782f010
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Module.cpp
@@ -0,0 +1,56 @@
+// -*- C++ -*-
+// $Id$
+
+#include "Plan_Launcher_Module.h"
+#include "Plan_Launcher_Impl.h"
+#include "ace/Get_Opt.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+ACE_RCSID (DAnCE,
+ DAnCE_Plan_Launcher_Module,
+ "$Id$")
+
+using namespace DAnCE::Plan_Launcher;
+
+DAnCE_Plan_Launcher_Module::DAnCE_Plan_Launcher_Module (void)
+{
+}
+
+CORBA::Object_ptr
+DAnCE_Plan_Launcher_Module::create_object (CORBA::ORB_ptr orb,
+ int argc,
+ ACE_TCHAR *argv[])
+{
+ try
+ {
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_Plan_Launcher_Module::create_object - ")
+ ACE_TEXT("Creating Plan Launcher object.")));
+
+ Plan_Launcher_Impl pl (orb, argc, argv);
+ pl.execute();
+ }
+ catch (const Plan_Launcher_Base_Impl::Help_Issued& )
+ {
+ }
+ catch (const Plan_Launcher_Base_Impl::Deployment_Failure& e)
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("DAnCE_Plan_Launcher_Module::create_object - ")
+ ACE_TEXT("Error : %C.\n"), e.error_.c_str()));
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("DAnCE_Plan_Launcher_Module::create_object - ")
+ ACE_TEXT("Caught CORBA Exception %C"),
+ ex._info ().c_str ()));
+ }
+ catch (...)
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("DAnCE_Plan_Launcher_Module::create_object - ")
+ ACE_TEXT("Unknown exception.\n")));
+ }
+ return CORBA::Object::_nil ();
+}
+
+ACE_FACTORY_DEFINE (DAnCE_Plan_Launcher_Module, DAnCE_Plan_Launcher_Module)
+
+
diff --git a/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Module.h b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Module.h
new file mode 100644
index 00000000000..cc80534de9a
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Module.h
@@ -0,0 +1,56 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Plan_Launcher_Module.h
+ *
+ * $Id$
+ *
+ * @brief Uses to run PlanLauncher from starter
+ *
+ * @author Vinzenz Tornow <vt@prismtech.com>
+ */
+//=============================================================================
+
+#ifndef PLAN_LAUNCHER_MODULE_H
+#define PLAN_LAUNCHER_MODULE_H
+
+#include /**/ "ace/pre.h"
+
+#include "Plan_Launcher_Module_Export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Service_Config.h"
+#include "tao/Object_Loader.h"
+
+
+/**
+ * @class Plan_Launcher_Module
+ *
+ * @brief The shared object that is instantiated when the plan launcher
+ * module/library is dynamically loaded.
+ *
+ * This class runs the plan launcher instance
+ */
+class DAnCE_Plan_Launcher_Module_Export DAnCE_Plan_Launcher_Module
+ : public TAO_Object_Loader
+ {
+ public:
+ /// Constructor.
+ DAnCE_Plan_Launcher_Module (void);
+
+ /// Overload the base class method to create a new instance
+ /// of a DAnCE_NodeManager_Module object.
+ virtual CORBA::Object_ptr create_object (CORBA::ORB_ptr orb,
+ int argc,
+ ACE_TCHAR *argv []);
+ };
+
+ACE_FACTORY_DECLARE (DAnCE_Plan_Launcher_Module, DAnCE_Plan_Launcher_Module)
+
+#include /**/ "ace/post.h"
+
+#endif /* PLAN_LAUNCHER_MODULE_H */
diff --git a/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Module_Export.h b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Module_Export.h
new file mode 100644
index 00000000000..cdeb11e8abf
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Module_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_Module
+// ------------------------------
+#ifndef DANCE_PLAN_LAUNCHER_MODULE_EXPORT_H
+#define DANCE_PLAN_LAUNCHER_MODULE_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (DANCE_PLAN_LAUNCHER_MODULE_HAS_DLL)
+# define DANCE_PLAN_LAUNCHER_MODULE_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && DANCE_PLAN_LAUNCHER_MODULE_HAS_DLL */
+
+#if !defined (DANCE_PLAN_LAUNCHER_MODULE_HAS_DLL)
+# define DANCE_PLAN_LAUNCHER_MODULE_HAS_DLL 1
+#endif /* ! DANCE_PLAN_LAUNCHER_MODULE_HAS_DLL */
+
+#if defined (DANCE_PLAN_LAUNCHER_MODULE_HAS_DLL) && (DANCE_PLAN_LAUNCHER_MODULE_HAS_DLL == 1)
+# if defined (DANCE_PLAN_LAUNCHER_MODULE_BUILD_DLL)
+# define DAnCE_Plan_Launcher_Module_Export ACE_Proper_Export_Flag
+# define DANCE_PLAN_LAUNCHER_MODULE_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define DANCE_PLAN_LAUNCHER_MODULE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* DANCE_PLAN_LAUNCHER_MODULE_BUILD_DLL */
+# define DAnCE_Plan_Launcher_Module_Export ACE_Proper_Import_Flag
+# define DANCE_PLAN_LAUNCHER_MODULE_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define DANCE_PLAN_LAUNCHER_MODULE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* DANCE_PLAN_LAUNCHER_MODULE_BUILD_DLL */
+#else /* DANCE_PLAN_LAUNCHER_MODULE_HAS_DLL == 1 */
+# define DAnCE_Plan_Launcher_Module_Export
+# define DANCE_PLAN_LAUNCHER_MODULE_SINGLETON_DECLARATION(T)
+# define DANCE_PLAN_LAUNCHER_MODULE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* DANCE_PLAN_LAUNCHER_MODULE_HAS_DLL == 1 */
+
+// Set DANCE_PLAN_LAUNCHER_MODULE_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (DANCE_PLAN_LAUNCHER_MODULE_NTRACE)
+# if (ACE_NTRACE == 1)
+# define DANCE_PLAN_LAUNCHER_MODULE_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define DANCE_PLAN_LAUNCHER_MODULE_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !DANCE_PLAN_LAUNCHER_MODULE_NTRACE */
+
+#if (DANCE_PLAN_LAUNCHER_MODULE_NTRACE == 1)
+# define DANCE_PLAN_LAUNCHER_MODULE_TRACE(X)
+#else /* (DANCE_PLAN_LAUNCHER_MODULE_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define DANCE_PLAN_LAUNCHER_MODULE_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (DANCE_PLAN_LAUNCHER_MODULE_NTRACE == 1) */
+
+#endif /* DANCE_PLAN_LAUNCHER_MODULE_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/DAnCE/Plan_Launcher/launcher.cpp b/modules/CIAO/DAnCE/Plan_Launcher/launcher.cpp
new file mode 100644
index 00000000000..1de14bb9398
--- /dev/null
+++ b/modules/CIAO/DAnCE/Plan_Launcher/launcher.cpp
@@ -0,0 +1,11 @@
+// $Id$
+
+#include "ace/OS_main.h"
+#include "Plan_Launcher.h"
+
+int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ return DAnCE::Plan_Launcher::run_main_implementation (argc, argv);
+}
+
+
diff --git a/modules/CIAO/DAnCE/RedirectionService/CCMObjectLocator.cpp b/modules/CIAO/DAnCE/RedirectionService/CCMObjectLocator.cpp
new file mode 100644
index 00000000000..63487b08874
--- /dev/null
+++ b/modules/CIAO/DAnCE/RedirectionService/CCMObjectLocator.cpp
@@ -0,0 +1,390 @@
+// $Id$
+
+#include "CCMObjectLocator.h"
+#include "ace/String_Base.h"
+#include "tao/IORTable/IORTable.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace DAnCE
+ {
+
+ CCMObjectLocator::CCMObjectLocator (CORBA::ORB_ptr orb, PortableServer::POA_ptr parent_poa, const char * poa_name)
+ : orb_ (CORBA::ORB::_duplicate (orb))
+ {
+ DANCE_DEBUG ( (LM_DEBUG, "[%M] CCMObjectLocator::CCMObjectLocator - started\n"));
+ CORBA::PolicyList policies (4);
+ policies.length (4);
+ policies[0] = parent_poa->create_id_assignment_policy (PortableServer::USER_ID);
+ policies[1] = parent_poa->create_request_processing_policy (PortableServer::USE_SERVANT_MANAGER);
+ policies[2] = parent_poa->create_servant_retention_policy (PortableServer::NON_RETAIN);
+ policies[3] = parent_poa->create_lifespan_policy (PortableServer::PERSISTENT);
+ PortableServer::POAManager_var mgr = parent_poa->the_POAManager ();
+ DANCE_DEBUG ( (LM_DEBUG, "[%M] CCMObjectLocator::CCMObjectLocator - before create_POA\n"));
+ this->myPOA_ = parent_poa->create_POA (poa_name
+ , mgr.in()
+ , policies);
+ DANCE_DEBUG ( (LM_DEBUG, "[%M] CCMObjectLocator::CCMObjectLocator - after create_POA\n"));
+ for (CORBA::ULong i = 0; i < policies.length(); ++i)
+ {
+ policies[i]->destroy();
+ }
+
+ DANCE_DEBUG ( (LM_DEBUG, "[%M] CCMObjectLocator::CCMObjectLocator - before set_servant_manager\n"));
+ this->myPOA_->set_servant_manager (this);
+ DANCE_DEBUG ( (LM_DEBUG, "[%M] CCMObjectLocator::CCMObjectLocator - CCMObjectLocator started on POA \"%s\"\n"
+ , poa_name));
+ }
+
+ CCMObjectLocator::~CCMObjectLocator()
+ {}
+
+ void
+ CCMObjectLocator::postinvoke (
+ const ::PortableServer::ObjectId & /*oid*/,
+ ::PortableServer::POA_ptr /*adapter*/,
+ const char * /*operation*/,
+ ::PortableServer::ServantLocator::Cookie /*the_cookie*/,
+ ::PortableServer::Servant /*the_servant*/
+ )
+ {
+ }
+
+ ::PortableServer::Servant
+ CCMObjectLocator::preinvoke (
+ const ::PortableServer::ObjectId & oid,
+ ::PortableServer::POA_ptr ,
+ const char * ,
+ ::PortableServer::ServantLocator::Cookie &
+ )
+ {
+ CORBA::String_var s = PortableServer::ObjectId_to_string (oid);
+ ACE_CString path = s.in();
+ CORBA::Object_var res = this->db_.getValue (path.c_str());
+ if (!CORBA::is_nil (res))
+ {
+ throw ::PortableServer::ForwardRequest (res._retn());
+ }
+ else
+ {
+ int level = this->db_.missingNodeLevel (path.c_str());
+ if (0 > level // all levels (app(1), inst(2), port(3) exist but object is nil yet
+ || 1 == level) // application is not registered
+ {
+ throw CORBA::TRANSIENT();
+ }
+ else
+ {
+ throw CORBA::OBJECT_NOT_EXIST();
+ }
+ }
+ }
+
+ void
+ CCMObjectLocator::start_register (const ACE_CString& plan)
+ {
+ TreeNode* tree = 0;
+ if (0 != this->transactions_.find (plan, tree))
+ {
+ tree = new TreeNode();
+ }
+ else
+ {
+ DANCE_ERROR ( (LM_ERROR, "[%M] CCMObjectLocator::start_register - transaction for plan \"%s\" alreday started!\n"
+ , plan.c_str()));
+ ///TODO Deside correcet processing of this error - probably finish_register should be called
+ delete tree;
+ tree = new TreeNode();
+ }
+ this->transactions_.rebind (plan, tree);
+ }
+
+
+ CORBA::Object_ptr
+ CCMObjectLocator::register_object (const ACE_CString & plan
+ , const ACE_CString & inst
+ , const ACE_CString & port
+ , CORBA::Object_ptr obj)
+ {
+ TreeNode* transaction = 0;
+ ACE_CString s;
+ s = plan + TreeNode::delimiter_ + inst;
+ if (0 < port.length())
+ {
+ s += TreeNode::delimiter_ + port;
+ }
+
+ if (0 == this->transactions_.find (plan, transaction))
+ {
+ ACE_CString path = inst;
+ if (0 < port.length())
+ {
+ path += TreeNode::delimiter_ + port;
+ }
+ transaction->addChild (path.c_str(), obj);
+ }
+ else
+ {
+ DANCE_DEBUG ( (LM_DEBUG, "[%M] CCMObjectLocator::register_object - transaction record for \"%s\" doesn't exist.\n"
+ , plan.c_str()));
+
+ DANCE_DEBUG ( (LM_DEBUG, "[%M] CCMObjectLocator::register_object - registering \"%s\"\n"
+ , s.c_str()));
+ this->db_.addChild (s.c_str(), obj);
+ }
+
+ PortableServer::ObjectId_var oid = PortableServer::string_to_ObjectId (s.c_str());
+ DANCE_DEBUG ( (LM_DEBUG, "[%M] CCMObjectLocator::register_object obj id : \"%s\"\n", PortableServer::ObjectId_to_string (oid.in())));
+ CORBA::Object_var o = this->myPOA_->create_reference_with_id (oid.in(), "IDL:omg.org/CORBA/Object:1.0");
+ DANCE_DEBUG ( (LM_DEBUG, "[%M] CCMObjectLocator::register_object url : \"%s\"\n", this->orb_->object_to_string (o)));
+
+ //--------------- Temporal workaround
+// CORBA::Object_var table_object =
+// this->orb_->resolve_initial_references ("IORTable" );
+//
+// IORTable::Table_var adapter =
+// IORTable::Table::_narrow (table_object.in () );
+//
+// adapter->bind(s.c_str(), this->orb_->object_to_string(o));
+ //---------------
+ return o._retn();
+ }
+
+ CORBA::Object_ptr
+ CCMObjectLocator::register_object (const ACE_CString & app
+ , const ACE_CString & inst
+ , CORBA::Object_ptr obj)
+ {
+ return this->register_object (app, inst, "", obj);
+ }
+
+ void
+ CCMObjectLocator::register_objects (const char * name, TreeNode & node)
+ {
+ this->db_.addChild (name, node);
+ }
+
+ void
+ CCMObjectLocator::finish_register (const ACE_CString& plan)
+ {
+ TreeNode* tree = 0;
+ if (0 != this->transactions_.find (plan, tree))
+ {
+ DANCE_DEBUG ( (LM_DEBUG, "[%M] CCMObjectLocator::finish_register - can't find \"%s\" record for register\n", plan.c_str()));
+ return;
+ }
+ this->register_objects (plan.c_str(), *tree);
+ this->transactions_.unbind (plan);
+ delete tree;
+
+ }
+
+ void
+ CCMObjectLocator::unregister_object (const ACE_CString & app
+ , const ACE_CString & inst
+ , const ACE_CString & port)
+ {
+ ACE_CString s = app + TreeNode::delimiter_ + inst;
+ if (0 < inst.length())
+ {
+ s += TreeNode::delimiter_ + inst;
+ if (0 < port.length())
+ {
+ s += TreeNode::delimiter_ + port;
+ }
+ }
+ this->db_.removeChild (s.c_str());
+ DANCE_DEBUG ( (LM_DEBUG, "[%M] CCMObjectLocator::unregister_object - unregistering \"%s\"\n"
+ , s.c_str()));
+ }
+
+ ACE_CString
+ CCMObjectLocator::TreeNode::mergePath (const char * parent, const char * child)
+ {
+ return ACE_CString (parent) + delimiter_ + child;
+ }
+
+ ACE_CString
+ CCMObjectLocator::TreeNode::splitPath (ACE_CString & path, bool first)
+ {
+ size_t pos = first
+ ? path.find (CCMObjectLocator::TreeNode::delimiter_)
+ : path.rfind (CCMObjectLocator::TreeNode::delimiter_);
+ /* if ( 0 == pos )
+ {
+ path = path.substring(1); Cuts off a leading delimiter
+ }*/
+ ACE_CString res;
+ if (ACE_CString::npos == pos)
+ {
+ res = path;
+ path = "";
+ }
+ else
+ {
+ res = path.substring (0, pos);
+ path = path.substring (pos + 1);
+ }
+ return res;
+ }
+
+ CCMObjectLocator::TreeNode::TreeNode (const TreeNode & src)
+ : obj_ (src.obj_)
+ {
+ TNodes::const_iterator it (src.children_);
+ for (;!it.done(); ++it)
+ {
+ this->children_.bind ( (*it).ext_id_, new TreeNode (* (*it).int_id_));
+ }
+ }
+
+ CCMObjectLocator::TreeNode::~TreeNode()
+ {
+ for (TNodes::iterator it = this->children_.begin(); !it.done(); ++it)
+ {
+ TreeNode * p = (*it).int_id_;
+ (*it).int_id_ = 0;
+ delete p;
+ }
+ this->children_.unbind_all();
+ }
+
+ CORBA::Object_ptr
+ CCMObjectLocator::TreeNode::getValue (const char * path) const
+ {
+ const TreeNode * p = this->getChild (path);
+ if (0 != p)
+ {
+ return p->getValue();
+ }
+ else
+ {
+ return CORBA::Object::_nil();
+ }
+ }
+
+ CCMObjectLocator::TreeNode *
+ CCMObjectLocator::TreeNode::getChild (const char * path) const
+ {
+ ACE_CString path_loc = path;
+ ACE_CString s = splitPath (path_loc);
+
+ TreeNode * res = 0;
+ if (0 == this->children_.find (s, res))
+ {
+ return 0 == path_loc.length() ? res : res->getChild (path_loc.c_str());
+ }
+ else
+ {
+ DANCE_DEBUG ( (LM_DEBUG, "[%M] CCMObjectLocator::TreeNode::getChild - Node \"%s\" not found.\n"
+ , s.c_str()));
+ return 0;
+ }
+ }
+
+ void
+ CCMObjectLocator::TreeNode::addChild (const char * path, CORBA::Object_ptr obj)
+ {
+ ACE_CString path_loc = path;
+ ACE_CString child = splitPath (path_loc);
+
+ TreeNode * p = 0;
+// DANCE_DEBUG((LM_DEBUG, "[%M] CCMObjectLocator::TreeNode::addChild looking for %C in map with %i.\n"
+// , child.c_str()
+// , this->children_.current_size()));
+
+ if (0 != this->children_.find (child, p))
+ {
+ DANCE_DEBUG ( (LM_DEBUG, "[%M] CCMObjectLocator::TreeNode::addChild - create new Node.\n"));
+ p = new TreeNode;
+ this->children_.bind (child, p);
+ }
+// DANCE_DEBUG((LM_DEBUG, "[%M] CCMObjectLocator::TreeNode::addChild - Check for path."));
+ if (0 == path_loc.length()) // i.e. empty
+ {
+ p->setValue (obj);
+ }
+ else
+ {
+ p->addChild (path_loc.c_str(), obj);
+ }
+ }
+
+ void
+ CCMObjectLocator::TreeNode::removeChild (const char * path)
+ {
+ ACE_CString path_loc = path;
+ ACE_CString child = splitPath (path_loc);
+
+ TreeNode * p = 0;
+ if (0 != this->children_.find (child, p))
+ {
+ DANCE_ERROR ( (LM_ERROR, "[%M] CCMObjectLocator::TreeNode::removeChild failed. Node \"%s\" is missing.\n"
+ , child.c_str()));
+ }
+ if (0 == path_loc.length()) // i.e. empty
+ {
+ delete p;
+ }
+ else
+ {
+ p->removeChild (path_loc.c_str());
+ }
+ }
+
+ int
+ CCMObjectLocator::TreeNode::missingNodeLevel (const char * path)
+ {
+ ACE_CString path_loc = path;
+ ACE_CString child = splitPath (path_loc);
+
+ TreeNode * p = 0;
+ if (0 != this->children_.find (child, p))
+ {
+ return 1;
+ }
+ else
+ {
+ if (0 == path_loc.length())
+ {
+ return -1;
+ }
+ else
+ {
+ int i = p->missingNodeLevel (path_loc.c_str());
+ return 0 > i ? -1 : i + 1;
+ }
+ }
+ }
+
+ void
+ CCMObjectLocator::TreeNode::addChild (const char * path, TreeNode & node)
+ {
+ ACE_CString path_loc = path;
+ ACE_CString child = splitPath (path_loc);
+ if (0 == path_loc.length())
+ {
+ TreeNode * p = 0;
+ if (0 == this->children_.find (child, p))
+ {
+ DANCE_DEBUG ( (LM_DEBUG, "[%M] CCMObjectLocator::TreeNode::register_objects - "
+ "node \"%s\" already exists. Replacing.\n"
+ , child.c_str()));
+ this->children_.unbind (child);
+ delete p;
+ p = 0;
+ }
+ this->children_.bind (child, new TreeNode (node));
+ }
+ else
+ {
+ TreeNode * p = 0;
+ if (0 != this->children_.find (child, p))
+ {
+ p = new TreeNode();
+ }
+ p->addChild (path_loc.c_str(), node);
+ }
+ }
+
+} // DAnCE
+
diff --git a/modules/CIAO/DAnCE/RedirectionService/CCMObjectLocator.h b/modules/CIAO/DAnCE/RedirectionService/CCMObjectLocator.h
new file mode 100644
index 00000000000..cf92d6aa292
--- /dev/null
+++ b/modules/CIAO/DAnCE/RedirectionService/CCMObjectLocator.h
@@ -0,0 +1,105 @@
+// $Id$
+
+#ifndef CCMOBJECTLOCATOR_H_
+#define CCMOBJECTLOCATOR_H_
+
+#include "ace/Map_Manager.h"
+#include "ace/Null_Mutex.h"
+#include "ace/SStringfwd.h"
+#include "ace/String_Base.h"
+#include "tao/corba.h"
+#include "tao/ORB.h"
+#include "tao/Object.h"
+#include "tao/PortableServer/PortableServer.h"
+#include "tao/PortableServer/ServantLocatorC.h"
+
+#include "RedirectionService_Export.h"
+
+namespace DAnCE
+{
+
+ class RedirectionService_Export CCMObjectLocator
+ : public PortableServer::ServantLocator
+ , public ::CORBA::LocalObject
+ {
+ public:
+ class TreeNode;
+ typedef ACE_Map_Manager<ACE_CString, TreeNode*, ACE_Null_Mutex> TNodes;
+ class RedirectionService_Export TreeNode
+ {
+ public:
+ static const char delimiter_ = '/';
+ TreeNode() {};
+ TreeNode (const TreeNode & src);
+ ~TreeNode();
+ CORBA::Object_ptr getValue() const
+ {
+ return CORBA::Object::_duplicate (this->obj_.in());
+ };
+ CORBA::Object_ptr getValue (const char * path) const;
+ void setValue (CORBA::Object_ptr obj)
+ {
+ this->obj_ = CORBA::Object::_duplicate (obj);
+ };
+ void addChild (const char * path, CORBA::Object_ptr obj = CORBA::Object::_nil());
+ void addChild (const char * path, TreeNode & node);
+ void removeChild (const char * path);
+ int missingNodeLevel (const char * path);
+ static ACE_CString mergePath (const char * parent, const char * child);
+ private:
+ CORBA::Object_var obj_;
+ TNodes children_;
+ TreeNode * getChild (const char * path) const;
+ static ACE_CString splitPath (ACE_CString & path, bool first = true);
+ };
+
+ CCMObjectLocator (CORBA::ORB_ptr orb, PortableServer::POA_ptr parent_poa, const char * poa_name);
+
+ virtual ~CCMObjectLocator();
+
+ virtual ::PortableServer::Servant preinvoke (
+ const ::PortableServer::ObjectId & oid,
+ ::PortableServer::POA_ptr adapter,
+ const char * operation,
+ ::PortableServer::ServantLocator::Cookie & the_cookie);
+
+ virtual void postinvoke (
+ const ::PortableServer::ObjectId & /*oid*/,
+ ::PortableServer::POA_ptr /*adapter*/,
+ const char * /*operation*/,
+ ::PortableServer::ServantLocator::Cookie /*the_cookie*/,
+ ::PortableServer::Servant /*the_servant*/
+ );
+
+ void start_register (const ACE_CString& plan);
+
+ CORBA::Object_ptr register_object (const ACE_CString & plan
+ , const ACE_CString & inst
+ , const ACE_CString & port
+ , CORBA::Object_ptr obj);
+
+ CORBA::Object_ptr register_object (const ACE_CString & plan
+ , const ACE_CString & inst
+ , CORBA::Object_ptr obj);
+
+ void unregister_object (const ACE_CString & plan
+ , const ACE_CString & inst
+ , const ACE_CString & port);
+
+ void finish_register (const ACE_CString& plan);
+
+ void register_objects (const char * name, TreeNode & node);
+
+ private:
+ TreeNode db_;
+ CORBA::ORB_var orb_;
+ PortableServer::POA_var myPOA_;
+
+ TNodes transactions_;
+ CCMObjectLocator() {};
+ // to ban the usage
+ }; // CCMObjectLocator
+
+} //DAnCE
+
+#endif /*CCMOBJECTLOCATOR_H_*/
diff --git a/modules/CIAO/DAnCE/RedirectionService/NameServiceRedirection.cpp b/modules/CIAO/DAnCE/RedirectionService/NameServiceRedirection.cpp
new file mode 100644
index 00000000000..702d7e7c400
--- /dev/null
+++ b/modules/CIAO/DAnCE/RedirectionService/NameServiceRedirection.cpp
@@ -0,0 +1,271 @@
+// $Id$
+
+#include "NameServiceRedirection.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+using namespace DAnCE;
+
+NameServiceRedirection::NameServiceRedirection (CosNaming::NamingContext_ptr naming,
+ CosNaming::NamingContext_ptr domain)
+ : naming_ (CosNaming::NamingContext::_duplicate (naming)),
+ domain_ (CosNaming::NamingContext::_duplicate (domain))
+{
+}
+
+NameServiceRedirection::~NameServiceRedirection()
+{
+}
+
+void
+NameServiceRedirection::start_binding (const ACE_CString& node, const ACE_CString& plan)
+{
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NameServiceRedirection::start_binding for node %C plan %C.\n"),
+ node.c_str(),
+ plan.c_str()));
+ ACE_CString key = node + plan;
+ TRecords* records = 0;
+ if (0 != this->transactions_.find (key, records))
+ {
+ records = new TRecords();
+ this->transactions_.rebind (key, records);
+ }
+ else
+ {
+ records->clear();
+ }
+}
+
+void
+NameServiceRedirection::bind (const ACE_CString& node, const ACE_CString& plan, const ACE_CString& component, const ACE_CString& port, CORBA::Object_ptr obj)
+{
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NameServiceRedirection::bind for node %C plan %C component %C and port %C is started.\n"),
+ node.c_str(),
+ plan.c_str(),
+ component.c_str(),
+ port.c_str()));
+ SRecord record;
+ record.name.length (4);
+
+ ACE_CString kind = "";
+ CosNaming::NamingContext_var node_context = this->resolve_context (node, kind, this->naming_.in());
+ record.name[0].id = CORBA::string_dup (node.c_str());
+ record.name[0].kind = CORBA::string_dup (kind.c_str());
+
+ kind = "DeploymentPlan";
+ CosNaming::NamingContext_var plan_context = this->resolve_context (plan, kind, node_context.in());
+ record.name[1].id = CORBA::string_dup (plan.c_str());
+ record.name[1].kind = CORBA::string_dup (kind.c_str());
+
+ kind = "";
+ CosNaming::NamingContext_var component_context = this->resolve_context (component, kind, plan_context.in());
+ record.name[2].id = CORBA::string_dup (component.c_str());
+ record.name[2].kind = CORBA::string_dup (kind.c_str());
+
+ record.name[3].id = CORBA::string_dup (port.c_str());
+ record.name[3].kind = CORBA::string_dup ("Port");
+
+ ACE_CString key = node + plan;
+ TRecords* records = 0;
+ if (0 != this->transactions_.find (key, records))
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NameServiceRedirection::bind - Can't find record %C for closing transaction.\n"), key.c_str()));
+ return;
+ }
+
+ record.obj = CORBA::Object::_duplicate (obj);
+ records->push_back (record);
+
+ // try{
+ // component_context->bind(name, obj);
+ // }
+ // catch(CosNaming::NamingContext::AlreadyBound&)
+ // {
+ // component_context->rebind(name, obj);
+ // }
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NameServiceRedirection::bind has finished.\n")));
+}
+
+void
+NameServiceRedirection::bind (const ACE_CString& node, const ACE_CString& plan, const ACE_CString& component, CORBA::Object_ptr obj)
+{
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NameServiceRedirection::bind for node %C plan %C and component %C is started.\n"),
+ node.c_str(),
+ plan.c_str(),
+ component.c_str()));
+ SRecord record;
+ record.name.length (3);
+
+ ACE_CString kind = "";
+ CosNaming::NamingContext_var node_context = this->resolve_context (node, kind, this->naming_.in());
+
+ record.name[0].id = CORBA::string_dup (node.c_str());
+ record.name[0].kind = CORBA::string_dup (kind.c_str());
+
+ kind = "DeploymentPlan";
+ CosNaming::NamingContext_var plan_context = this->resolve_context (plan, kind, node_context.in());
+
+ record.name[1].id = CORBA::string_dup (plan.c_str());
+ record.name[1].kind = CORBA::string_dup (kind.c_str());
+
+ ACE_CString key = node + plan;
+ TRecords* records = 0;
+ if (0 != this->transactions_.find (key, records))
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NameServiceRedirection::bind - Can't find record %C for closing transaction.\n"), key.c_str()));
+ return;
+ }
+
+ record.name[2].id = CORBA::string_dup (component.c_str());
+ record.name[2].kind = CORBA::string_dup ("Component");
+
+ record.obj = CORBA::Object::_duplicate (obj);
+
+ records->push_back (record);
+ // try{
+ // plan_context->bind(name, obj);
+ // }
+ // catch(CosNaming::NamingContext::AlreadyBound&)
+ // {
+ // DANCE_DEBUG((LM_DEBUG, "[%M] NameServiceRedirection::bind - Already bound exception was thrown. Rebinding\n"));
+ // plan_context->rebind(name, obj);
+ // }
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NameServiceRedirection::bind has finished.\n")));
+}
+
+void
+NameServiceRedirection::finish_binding (const ACE_CString& node, const ACE_CString& plan)
+{
+ ACE_CString key = node + plan;
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NameServiceRedirection::finish_binding started for %s.\n"), key.c_str()));
+ TRecords* records = 0;
+ if (0 != this->transactions_.find (key, records))
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NameServiceRedirection::finish_binding - Can't find record %C for closing transaction.\n"), key.c_str()));
+ return;
+ }
+ for (unsigned int i = 0; i < records->size(); i++)
+ {
+ //this->naming_->bind((*records)[i].name, (*records)[i].obj.in());
+ try
+ {
+ this->naming_->bind ( (*records) [i].name, (*records) [i].obj.in());
+ }
+ catch (CosNaming::NamingContext::AlreadyBound&)
+ {
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NameServiceRedirection::finish_bind - Already bound exception was thrown. Rebinding\n")));
+ this->naming_->rebind ( (*records) [i].name, (*records) [i].obj.in());
+ }
+
+ }
+ if (!CORBA::is_nil (this->domain_.in()))
+ {
+ ACE_CString kind = "";
+ CosNaming::NamingContext_var context = this->resolve_context (node, kind, this->naming_.in());
+ CosNaming::Name name;
+ name.length (1);
+ name[0].id = CORBA::string_dup (node.c_str());
+ name[0].kind = CORBA::string_dup (kind.c_str());
+ try
+ {
+ this->domain_->bind_context (name, context.in());
+ }
+ catch (CosNaming::NamingContext::AlreadyBound&)
+ {
+ this->domain_->rebind_context (name, context.in());
+ }
+ }
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NameServiceRedirection::finish_bind has finished.\n")));
+}
+
+void
+NameServiceRedirection::unbind_context (const ACE_CString& node, const ACE_CString& plan)
+{
+ DANCE_DEBUG ( (LM_TRACE, ACE_TEXT("[%M] NameServiceRedirection::unbind_context started...\n")));
+ ACE_CString kind = "";
+ CosNaming::NamingContext_var node_context = this->resolve_context (node, kind, this->naming_.in());
+ kind = "DeploymentPlan";
+ CosNaming::NamingContext_var plan_context = this->resolve_context (plan, kind, node_context.in());
+ DANCE_DEBUG ( (LM_TRACE, ACE_TEXT("[%M] NameServiceRedirection::unbind_context before clear_context for %s.%s\n"), plan.c_str(), kind.c_str()));
+ this->clear_context (plan_context.inout());
+ CosNaming::Name name (1);
+ name.length (1);
+ name[0].id = CORBA::string_dup (plan.c_str());
+ name[0].kind = CORBA::string_dup (kind.c_str());
+ DANCE_DEBUG ( (LM_TRACE, ACE_TEXT("[%M] NameServiceRedirection::unbind_context before unbinding %s.%s\n")
+ , name[0].id.in(), name[0].kind.in()));
+ node_context->unbind (name);
+ DANCE_DEBUG ( (LM_TRACE, ACE_TEXT("[%M] NameServiceRedirection::unbind_context before destroying plan context.\n")));
+ plan_context->destroy();
+ DANCE_DEBUG ( (LM_TRACE, ACE_TEXT("[%M] NameServiceRedirection::unbind_context fininshed.\n")));
+}
+
+CosNaming::NamingContext_ptr
+NameServiceRedirection::resolve_context (const ACE_CString& context_name, const ACE_CString& context_kind, CosNaming::NamingContext_ptr naming)
+{
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NameServiceRedirection::resolve_context is started for context %C.%C\n"), context_name.c_str(), context_kind.c_str()));
+ if (CORBA::is_nil (naming))
+ {
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NameServiceRedirection::resolve_context source context is nil!.\n")));
+ return CosNaming::NamingContext::_nil ();
+ }
+ CORBA::Object_var obj;
+ CosNaming::Name name (1);
+ name.length (1);
+ name[0].id = CORBA::string_dup (context_name.c_str());
+ name[0].kind = CORBA::string_dup (context_kind.c_str());
+ try
+ {
+ obj = naming->resolve (name);
+ }
+ catch (const CosNaming::NamingContext::NotFound&)
+ {
+ obj = naming->bind_new_context (name);
+ }
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NameServiceRedirection::resolve_context has finished.\n")));
+ return CosNaming::NamingContext::_narrow (obj._retn());
+}
+
+void
+NameServiceRedirection::clear_context (CosNaming::NamingContext_ptr& naming)
+{
+ CosNaming::BindingList_var bl;
+ CosNaming::BindingIterator_var bi;
+ naming->list (0, bl.out(), bi.out());
+
+ if (CORBA::is_nil (bi.in()))
+ {
+ return;
+ }
+ while (bi->next_n (100, bl.out()))
+ {
+ for (unsigned int i = 0; i < bl->length(); i++)
+ {
+ if (bl[i].binding_type == CosNaming::ncontext)
+ {
+ CORBA::Object_var obj = naming->resolve ( (*bl) [i].binding_name);
+ CosNaming::NamingContext_var sub_context = CosNaming::NamingContext::_narrow (obj);
+ this->clear_context (sub_context.inout());
+ naming->unbind ( (*bl) [i].binding_name);
+ sub_context->destroy();
+ }
+ else
+ {
+ naming->unbind ( (*bl) [i].binding_name);
+ }
+ }
+ }
+}
+
+void
+NameServiceRedirection::add_node (const ACE_CString& node)
+{
+ CosNaming::NamingContext_var new_nc = this->resolve_context (node, "", this->naming_);
+ if (!CORBA::is_nil (this->domain_.in()))
+ {
+ CosNaming::Name name;
+ name.length (1);
+ name[0].id = CORBA::string_dup (node.c_str());
+ name[0].kind = CORBA::string_dup ("");
+ this->domain_->bind_context (name, new_nc.in());
+ }
+}
diff --git a/modules/CIAO/DAnCE/RedirectionService/NameServiceRedirection.h b/modules/CIAO/DAnCE/RedirectionService/NameServiceRedirection.h
new file mode 100644
index 00000000000..9de7f179eab
--- /dev/null
+++ b/modules/CIAO/DAnCE/RedirectionService/NameServiceRedirection.h
@@ -0,0 +1,57 @@
+// $Id$
+
+#ifndef NAMESERVICEREDIRECTION_H_
+#define NAMESERVICEREDIRECTION_H_
+
+#include "ace/SString.h"
+#include "ace/Vector_T.h"
+#include "ace/Map_Manager.h"
+#include "ace/Null_Mutex.h"
+#include "orbsvcs/orbsvcs/CosNamingC.h"
+
+#include "RedirectionService_Export.h"
+
+namespace DAnCE
+ {
+
+ class RedirectionService_Export NameServiceRedirection
+ {
+ public:
+ NameServiceRedirection (CosNaming::NamingContext_ptr hosting_naming,
+ CosNaming::NamingContext_ptr domain_naming);
+
+ ~NameServiceRedirection();
+
+ void start_binding (const ACE_CString& node, const ACE_CString& plan);
+ /// Registration for port object
+ void bind (const ACE_CString& node, const ACE_CString& plan, const ACE_CString& component, const ACE_CString& port, CORBA::Object_ptr obj);
+ /// Registration for component object
+ void bind (const ACE_CString& node, const ACE_CString& plan, const ACE_CString& component, CORBA::Object_ptr obj);
+
+ void finish_binding (const ACE_CString& node, const ACE_CString& plan);
+ // Removes all records for specified plan
+ void unbind_context (const ACE_CString& node, const ACE_CString& plan);
+
+ void add_node (const ACE_CString& node);
+
+ protected:
+ CosNaming::NamingContext_ptr resolve_context (const ACE_CString& name, const ACE_CString& kind, CosNaming::NamingContext_ptr naming);
+
+ void clear_context (CosNaming::NamingContext_ptr& naming);
+
+ private:
+ CosNaming::NamingContext_var naming_;
+ CosNaming::NamingContext_var domain_;
+
+ struct SRecord
+ {
+ CosNaming::Name name;
+ CORBA::Object_var obj;
+ };
+
+ typedef ACE_Vector<SRecord> TRecords;
+ typedef ACE_Map_Manager<ACE_CString, TRecords*, ACE_Null_Mutex> TTransactions;
+ TTransactions transactions_;
+ };
+}
+#endif /*NAMESERVICEREDIRECTION_H_*/
diff --git a/modules/CIAO/DAnCE/RedirectionService/RedirectionService.cpp b/modules/CIAO/DAnCE/RedirectionService/RedirectionService.cpp
new file mode 100644
index 00000000000..551d7bb5be6
--- /dev/null
+++ b/modules/CIAO/DAnCE/RedirectionService/RedirectionService.cpp
@@ -0,0 +1,162 @@
+// $Id$
+
+#include "RedirectionService.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+using namespace DAnCE;
+
+RedirectionService::RedirectionService (CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa,
+ CosNaming::NamingContext_ptr hosting_naming,
+ CosNaming::NamingContext_ptr domain_naming,
+ bool ns,
+ bool sl)
+ : orb_ (CORBA::ORB::_duplicate (orb))
+ , poa_ (PortableServer::POA::_duplicate (poa))
+ , naming_ (hosting_naming, domain_naming)
+ , ns_ (ns)
+ , sl_ (sl)
+{
+ DANCE_TRACE ("RedirectionService::RedirectionService");
+ if (this->ns_)
+ {
+ if (CORBA::is_nil (hosting_naming))
+ {
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("RedirectionService::RedirectionService - ")
+ ACE_TEXT("Name Service redirection is enabled but name context is nil.\n")));
+ }
+ }
+}
+
+RedirectionService::~RedirectionService()
+{
+ DANCE_TRACE ("RedirectionService::~RedirectionService");
+ for (TLocators::iterator it = this->locators_.begin ();
+ it != this->locators_.end ();
+ ++it)
+ {
+ delete (*it).int_id_;
+ }
+}
+
+void
+RedirectionService::add_node (const ACE_CString& node)
+{
+ DANCE_TRACE ("RedirectionService::add_node");
+ if (this->sl_)
+ {
+ CCMObjectLocator* locator = 0;
+ if (0 != this->locators_.find (node, locator))
+ {
+ locator = new CCMObjectLocator (this->orb_.in(), this->poa_.in(), node.c_str());
+ this->locators_.rebind (node, locator);
+ }
+ }
+
+ if (this->ns_)
+ {
+ this->naming_.add_node (node);
+ }
+}
+
+void
+RedirectionService::registration_start (const ACE_CString& node, const ACE_CString& plan)
+{
+ DANCE_TRACE ("RedirectionService::registration_start");
+ if (this->sl_)
+ {
+ CCMObjectLocator* locator = 0;
+ if (0 != this->locators_.find (node, locator))
+ {
+ locator = new CCMObjectLocator (this->orb_.in(), this->poa_.in(), node.c_str());
+ this->locators_.rebind (node, locator);
+ }
+ locator->start_register (plan);
+ }
+ if (this->ns_)
+ {
+ this->naming_.start_binding (node, plan);
+ }
+}
+
+void
+RedirectionService::registration (const ACE_CString& node, const ACE_CString& plan, const ACE_CString& component, const ACE_CString& port, CORBA::Object_ptr obj)
+{
+ DANCE_TRACE ("RedirectionService::registration");
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("RedirectionService::registration - ")
+ ACE_TEXT("for node %C plan %C component %C and port %C is started.\n"),
+ node.c_str(),
+ plan.c_str(),
+ component.c_str(),
+ port.c_str()));
+ CORBA::Object_var ns_obj = CORBA::Object::_duplicate (obj);
+ if (this->sl_)
+ {
+ CCMObjectLocator* locator = 0;
+ if (0 != this->locators_.find (node, locator))
+ {
+ locator = new CCMObjectLocator (this->orb_.in(), this->poa_.in(), node.c_str());
+ this->locators_.rebind (node, locator);
+ }
+ ns_obj = locator->register_object (plan, component, port, obj);
+ }
+ if (this->ns_)
+ {
+ if (0 == port.length())
+ {
+ this->naming_.bind (node, plan, component, ns_obj.in());
+ }
+ else
+ {
+ this->naming_.bind (node, plan, component, port, ns_obj.in());
+ }
+ }
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("RedirectionService::registration - ")
+ ACE_TEXT("Registration has been finished.\n")));
+}
+
+void
+RedirectionService::registration (const ACE_CString& node, const ACE_CString& plan, const ACE_CString& component, CORBA::Object_ptr obj)
+{
+ DANCE_TRACE ("RedirectionService::registration");
+ this->registration (node, plan, component, "", obj);
+}
+
+void
+RedirectionService::registration_finish (const ACE_CString& node, const ACE_CString& plan)
+{
+ DANCE_TRACE ("RedirectionService::registration_finish");
+ if (this->sl_)
+ {
+ CCMObjectLocator* locator;
+ if (0 != this->locators_.find (node, locator))
+ {
+ locator = new CCMObjectLocator (this->orb_.in(), this->poa_.in(), node.c_str());
+ this->locators_.rebind (node, locator);
+ }
+ locator->finish_register (plan);
+ }
+ if (this->ns_)
+ {
+ this->naming_.finish_binding (node, plan);
+ }
+}
+
+void
+RedirectionService::unregister (const ACE_CString& node, const ACE_CString& plan)
+{
+ DANCE_TRACE ("RedirectionService::unregister");
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("RedirectionService::unregister - ")
+ ACE_TEXT("unregistering %C/%C...\n"), node.c_str(), plan.c_str()));
+ if (this->ns_)
+ {
+ this->naming_.unbind_context (node, plan);
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("RedirectionService::unregister - ")
+ ACE_TEXT("finished.\n")));
+ }
+ else
+ {
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("RedirectionService::unregister - ")
+ ACE_TEXT("nothing to do.\n")));
+ }
+}
diff --git a/modules/CIAO/DAnCE/RedirectionService/RedirectionService.h b/modules/CIAO/DAnCE/RedirectionService/RedirectionService.h
new file mode 100644
index 00000000000..d5749109600
--- /dev/null
+++ b/modules/CIAO/DAnCE/RedirectionService/RedirectionService.h
@@ -0,0 +1,75 @@
+// $Id$
+#ifndef REDIRECTIONSERVICE_H_
+#define REDIRECTIONSERVICE_H_
+
+#include "ace/Map_Manager.h"
+#include "tao/PortableServer/PortableServer.h"
+#include "orbsvcs/orbsvcs/CosNamingC.h"
+
+#include "RedirectionService_Export.h"
+
+#include "CCMObjectLocator.h"
+#include "NameServiceRedirection.h"
+
+/*
+ This class encapsulates redirection mechanisms for dance offline deployment.
+ It contains NameService and ServantLocator classes with correspondent poas
+ and hides from NodeApplication all specific steps required for supporting redirection
+ If no NameService nor ServantLocator is not required when registration methods do nothing.
+*/
+namespace DAnCE
+ {
+ class RedirectionService_Export RedirectionService
+ {
+ public:
+ /// Constructor for redirection service object
+ /// In general, redirection service should be singleton in scope of dance agent process
+ /// but probably it is not compulsory
+ /// parameter hosting_context is compulsory if ns is true
+ /// parameter domain_context should be specified if we need to bind local contextes to external context
+ /// parameter ns should be passed as true if NameService redirection mechanism should be used
+ /// parameter sl should be passed as true if ServantLocator redirection should be used
+ /// parameter poa should be root poa (? probably this parameter is unnecessary and this class can obtains from orb)
+ RedirectionService (CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa,
+ CosNaming::NamingContext_ptr hosting_context,
+ CosNaming::NamingContext_ptr domain_context,
+ bool ns = false,
+ bool sl = false);
+
+ ~RedirectionService ();
+ /// Creates record in redirection service for correspondent node
+ void add_node (const ACE_CString& node);
+ /// Opens transaction for registering node ccm objects.
+ /// Parameters node and plan are the keys
+ void registration_start (const ACE_CString& node, const ACE_CString& plan);
+ /// Registration for port object
+ void registration (const ACE_CString& node, const ACE_CString& plan, const ACE_CString& component, const ACE_CString& port, CORBA::Object_ptr obj);
+ /// Registration for component object
+ void registration (const ACE_CString& node, const ACE_CString& plan, const ACE_CString& component, CORBA::Object_ptr obj);
+ /// Closes transaction for registering node ccm objects
+ /// and insert node to correspondent ServantLocator and/or NameService
+ /// Parameters node and plan are the keys
+ void registration_finish (const ACE_CString& node, const ACE_CString& plan);
+ // Removes all records for specified plan
+ void unregister (const ACE_CString& node, const ACE_CString& plan);
+ private:
+ /// Orb variable
+ CORBA::ORB_var orb_;
+
+ /// Root POA variable
+ PortableServer::POA_var poa_;
+
+ NameServiceRedirection naming_;
+
+ bool ns_;
+
+ bool sl_;
+
+ /// Map of servant locators (node name is a key)
+ typedef ACE_Map_Manager<ACE_CString, DAnCE::CCMObjectLocator*, ACE_Null_Mutex> TLocators;
+ TLocators locators_;
+ };
+}
+
+#endif /*REDIRECTIONSERVICE_H_*/
diff --git a/modules/CIAO/DAnCE/RedirectionService/RedirectionService.mpc b/modules/CIAO/DAnCE/RedirectionService/RedirectionService.mpc
new file mode 100644
index 00000000000..318c38c2244
--- /dev/null
+++ b/modules/CIAO/DAnCE/RedirectionService/RedirectionService.mpc
@@ -0,0 +1,14 @@
+// -*- MPC -*-
+// $Id$
+
+project : taolib, ciao_output, iortable, naming, dance_logger, portableserver, avoids_minimum_corba {
+ sharedname = DAnCE_RedirectionService
+ dynamicflags += REDIRECTIONSERVICE_BUILD_DLL
+
+ Source_Files {
+ RedirectionService.cpp
+ NameServiceRedirection.cpp
+ CCMObjectLocator.cpp
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/RedirectionService/RedirectionService_Export.h b/modules/CIAO/DAnCE/RedirectionService/RedirectionService_Export.h
new file mode 100644
index 00000000000..af8e613acfc
--- /dev/null
+++ b/modules/CIAO/DAnCE/RedirectionService/RedirectionService_Export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl RedirectionService
+// ------------------------------
+#ifndef REDIRECTIONSERVICE_EXPORT_H
+#define REDIRECTIONSERVICE_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (REDIRECTIONSERVICE_HAS_DLL)
+# define REDIRECTIONSERVICE_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && REDIRECTIONSERVICE_HAS_DLL */
+
+#if !defined (REDIRECTIONSERVICE_HAS_DLL)
+# define REDIRECTIONSERVICE_HAS_DLL 1
+#endif /* ! REDIRECTIONSERVICE_HAS_DLL */
+
+#if defined (REDIRECTIONSERVICE_HAS_DLL) && (REDIRECTIONSERVICE_HAS_DLL == 1)
+# if defined (REDIRECTIONSERVICE_BUILD_DLL)
+# define RedirectionService_Export ACE_Proper_Export_Flag
+# define REDIRECTIONSERVICE_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define REDIRECTIONSERVICE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* REDIRECTIONSERVICE_BUILD_DLL */
+# define RedirectionService_Export ACE_Proper_Import_Flag
+# define REDIRECTIONSERVICE_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define REDIRECTIONSERVICE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* REDIRECTIONSERVICE_BUILD_DLL */
+#else /* REDIRECTIONSERVICE_HAS_DLL == 1 */
+# define RedirectionService_Export
+# define REDIRECTIONSERVICE_SINGLETON_DECLARATION(T)
+# define REDIRECTIONSERVICE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* REDIRECTIONSERVICE_HAS_DLL == 1 */
+
+// Set REDIRECTIONSERVICE_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (REDIRECTIONSERVICE_NTRACE)
+# if (ACE_NTRACE == 1)
+# define REDIRECTIONSERVICE_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define REDIRECTIONSERVICE_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !REDIRECTIONSERVICE_NTRACE */
+
+#if (REDIRECTIONSERVICE_NTRACE == 1)
+# define REDIRECTIONSERVICE_TRACE(X)
+#else /* (REDIRECTIONSERVICE_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define REDIRECTIONSERVICE_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (REDIRECTIONSERVICE_NTRACE == 1) */
+
+#endif /* REDIRECTIONSERVICE_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/DAnCE/RepositoryManager/DAnCE_RepositoryManager_Module_Export.h b/modules/CIAO/DAnCE/RepositoryManager/DAnCE_RepositoryManager_Module_Export.h
new file mode 100644
index 00000000000..b94621bd39b
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/DAnCE_RepositoryManager_Module_Export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl DAnCE_RepositoryManager_Module
+// ------------------------------
+#ifndef DANCE_REPOSITORYMANAGER_MODULE_EXPORT_H
+#define DANCE_REPOSITORYMANAGER_MODULE_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (DANCE_REPOSITORYMANAGER_MODULE_HAS_DLL)
+# define DANCE_REPOSITORYMANAGER_MODULE_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && DANCE_REPOSITORYMANAGER_MODULE_HAS_DLL */
+
+#if !defined (DANCE_REPOSITORYMANAGER_MODULE_HAS_DLL)
+# define DANCE_REPOSITORYMANAGER_MODULE_HAS_DLL 1
+#endif /* ! DANCE_REPOSITORYMANAGER_MODULE_HAS_DLL */
+
+#if defined (DANCE_REPOSITORYMANAGER_MODULE_HAS_DLL) && (DANCE_REPOSITORYMANAGER_MODULE_HAS_DLL == 1)
+# if defined (DANCE_REPOSITORYMANAGER_MODULE_BUILD_DLL)
+# define DAnCE_RepositoryManager_Module_Export ACE_Proper_Export_Flag
+# define DANCE_REPOSITORYMANAGER_MODULE_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define DANCE_REPOSITORYMANAGER_MODULE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* DANCE_REPOSITORYMANAGER_MODULE_BUILD_DLL */
+# define DAnCE_RepositoryManager_Module_Export ACE_Proper_Import_Flag
+# define DANCE_REPOSITORYMANAGER_MODULE_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define DANCE_REPOSITORYMANAGER_MODULE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* DANCE_REPOSITORYMANAGER_MODULE_BUILD_DLL */
+#else /* DANCE_REPOSITORYMANAGER_MODULE_HAS_DLL == 1 */
+# define DAnCE_RepositoryManager_Module_Export
+# define DANCE_REPOSITORYMANAGER_MODULE_SINGLETON_DECLARATION(T)
+# define DANCE_REPOSITORYMANAGER_MODULE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* DANCE_REPOSITORYMANAGER_MODULE_HAS_DLL == 1 */
+
+// Set DANCE_REPOSITORYMANAGER_MODULE_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (DANCE_REPOSITORYMANAGER_MODULE_NTRACE)
+# if (ACE_NTRACE == 1)
+# define DANCE_REPOSITORYMANAGER_MODULE_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define DANCE_REPOSITORYMANAGER_MODULE_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !DANCE_REPOSITORYMANAGER_MODULE_NTRACE */
+
+#if (DANCE_REPOSITORYMANAGER_MODULE_NTRACE == 1)
+# define DANCE_REPOSITORYMANAGER_MODULE_TRACE(X)
+#else /* (DANCE_REPOSITORYMANAGER_MODULE_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define DANCE_REPOSITORYMANAGER_MODULE_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (DANCE_REPOSITORYMANAGER_MODULE_NTRACE == 1) */
+
+#endif /* DANCE_REPOSITORYMANAGER_MODULE_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..6266b211598
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/PC_Updater.cpp
@@ -0,0 +1,256 @@
+// $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 ((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..fd5b41db555
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/PC_Updater.h
@@ -0,0 +1,114 @@
+
+/* -*- 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_New_Allocator allocator_;
+ 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..553eac22893
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/RM_Helper.cpp
@@ -0,0 +1,265 @@
+// $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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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..47e46d35a6f
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/RM_Helper.h
@@ -0,0 +1,81 @@
+
+/* -*- 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..3b172b150b0
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/RepositoryManager.cpp
@@ -0,0 +1,281 @@
+
+/* -*- 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 (CIAO::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 (CIAO::RepositoryManager::repoman_name_) > 0)
+ {
+ CIAO::RepositoryManager::RMname_service =
+ CIAO::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 (CIAO::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 (),
+ CIAO::RepositoryManager::HTTPserver.c_str (),
+ CIAO::RepositoryManager::repoman_name_),
+ 1);
+
+ //transfer ownership to the POA
+ PortableServer::ServantBase_var owner_transfer(repo);
+
+ //register and implicitly activate servant
+ CIAO::RepositoryManagerDaemon_var RepositoryManagerDaemon = repo->_this ();
+
+ bool retval = false;
+
+ if (CIAO::RepositoryManager::write_to_ior_)
+ {
+ retval =
+ write_ior_file (orb.in (),
+ RepositoryManagerDaemon.in ());
+ }
+ else if (CIAO::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,
+ CIAO::RepositoryManager::nthreads) != 0)
+ DANCE_ERROR_RETURN ((LM_ERROR,
+ "Cannot activate worker threads\n"),
+ 1);
+
+ worker.thr_mgr ()->wait ();
+
+ DANCE_DEBUG ((LM_DEBUG, "event loop finished\n"));
+
+ // done
+ return 0;
+
+ // todo shutdown orb
+ }
+ catch (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':
+ CIAO::RepositoryManager::write_to_ior_ = true;
+ CIAO::RepositoryManager::register_with_ns_ = false;
+ break;
+ case 'v':
+ CIAO::RepositoryManager::write_to_ior_ = false;
+ CIAO::RepositoryManager::register_with_ns_ = true;
+ CIAO::RepositoryManager::repoman_name_ = get_opts.opt_arg ();
+ break;
+ case 's':
+ CIAO::RepositoryManager::HTTPserver = get_opts.opt_arg ();
+ break;
+ case 'n':
+ CIAO::RepositoryManager::nthreads = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+ case '?': // display help for use of the server.
+ DANCE_DEBUG ((LM_INFO,
+ "usage: %s\n"
+ "-o <using ior file>\n"
+ "-v <name of naming service>\n"
+ "-s <IP:PORT for HTTP server>\n"
+ "-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..bf67d1d7f7c
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/RepositoryManager.mpc
@@ -0,0 +1,68 @@
+// -*- MPC -*-
+// $Id$
+
+project (DAnCE_RepositoryManagerDaemon_IDL) : componentidldefaults {
+ custom_only = 1
+ IDL_Files {
+ RepositoryManagerDaemon.idl
+ }
+}
+
+project (DAnCE_RepositoryManager) : dance_repositorymanager_skel, ciao_config_handlers, ccm_stub, dance_repositorymanagerbase, naming, iortable, utils, minizip, zlib, dance_lib {
+ requires += zlib
+ libs += Package_Config_Handlers
+ after += DAnCE_RepositoryManagerDaemon_IDL
+ dynamicflags = DANCE_REPOSITORYMANAGER_MODULE_BUILD_DLL
+ IDL_Files {
+ }
+
+ Source_Files {
+ RepositoryManagerDaemonC.cpp
+ RepositoryManagerDaemonS.cpp
+ ZIP_Wrapper.cpp
+ RepositoryManager_Impl.cpp
+ RM_Helper.cpp
+ URL_Parser.cpp
+ PC_Updater_T.cpp
+ PC_Updater.cpp
+ Repository_Manager_Module.cpp
+ }
+}
+
+project (DAnCE_RepositoryManager_Exec) : dance_repositorymanager, dance_exe {
+ exename = dance_repository_manager
+
+ Source_Files {
+ Repository_Manager_Exec.cpp
+ }
+ IDL_Files {
+ }
+}
+
+
+project (DAnCE_RepositoryManager_Admin) : dance_repositorymanager_stub, ciao_config_handlers, naming, dance_lib {
+ dynamicflags = DANCE_REPOSITORYMANAGER_ADMIN_BUILD_DLL
+ after += DAnCE_RepositoryManagerDaemon_IDL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ repository_manager_admin.cpp
+ RepositoryManagerDaemonC.cpp
+ }
+}
+
+project (DAnCE_RepositoryManager_Admin_Exec) : dance_repositorymanager, ciao_config_handlers, naming, dance_exe, dance_logger {
+ exename = dance_rm_admin
+
+ libs += DAnCE_RepositoryManager_Admin
+ after += DAnCE_RepositoryManager_Admin
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ 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..5a15c0f2d85
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.cpp
@@ -0,0 +1,1256 @@
+// $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 ((LM_ERROR, "Failed to add the type\n"));
+ }
+
+ 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 ((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 ((LM_DEBUG, DLINFO "RepositoryManagerDaemon_i::installPackage - "
+ "Package Path: %s\n",
+ package_path.c_str ()));
+ DANCE_DEBUG ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((LM_ERROR, "Failed to add the type\n"));
+
+ this->dump ();
+
+ this->save ();
+
+ DANCE_DEBUG ((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 ((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 ((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 ((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 ((LM_ERROR, "Failed to add the type\n"));
+
+ this->dump ();
+
+ this->save ();
+
+ DANCE_DEBUG ((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 ((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 ((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 ((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 ((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 ((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 ((LM_ERROR, "Could not reincarnate PC\n"));
+ internal_err = true;
+ }
+
+ if (this->uuids_.unbind (ACE_CString (pc->UUID)) == -1)
+ {
+ DANCE_ERROR ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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..051c6577514
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.h
@@ -0,0 +1,235 @@
+
+/* -*- 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_Admin_Export.h b/modules/CIAO/DAnCE/RepositoryManager/Repository_Manager_Admin_Export.h
new file mode 100644
index 00000000000..a705cd0c2b7
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/Repository_Manager_Admin_Export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl DAnCE_RepositoryManager_Admin
+// ------------------------------
+#ifndef DANCE_REPOSITORYMANAGER_ADMIN_EXPORT_H
+#define DANCE_REPOSITORYMANAGER_ADMIN_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (DANCE_REPOSITORYMANAGER_ADMIN_HAS_DLL)
+# define DANCE_REPOSITORYMANAGER_ADMIN_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && DANCE_REPOSITORYMANAGER_ADMIN_HAS_DLL */
+
+#if !defined (DANCE_REPOSITORYMANAGER_ADMIN_HAS_DLL)
+# define DANCE_REPOSITORYMANAGER_ADMIN_HAS_DLL 1
+#endif /* ! DANCE_REPOSITORYMANAGER_ADMIN_HAS_DLL */
+
+#if defined (DANCE_REPOSITORYMANAGER_ADMIN_HAS_DLL) && (DANCE_REPOSITORYMANAGER_ADMIN_HAS_DLL == 1)
+# if defined (DANCE_REPOSITORYMANAGER_ADMIN_BUILD_DLL)
+# define DAnCE_RepositoryManager_Admin_Export ACE_Proper_Export_Flag
+# define DANCE_REPOSITORYMANAGER_ADMIN_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define DANCE_REPOSITORYMANAGER_ADMIN_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* DANCE_REPOSITORYMANAGER_ADMIN_BUILD_DLL */
+# define DAnCE_RepositoryManager_Admin_Export ACE_Proper_Import_Flag
+# define DANCE_REPOSITORYMANAGER_ADMIN_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define DANCE_REPOSITORYMANAGER_ADMIN_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* DANCE_REPOSITORYMANAGER_ADMIN_BUILD_DLL */
+#else /* DANCE_REPOSITORYMANAGER_ADMIN_HAS_DLL == 1 */
+# define DAnCE_RepositoryManager_Admin_Export
+# define DANCE_REPOSITORYMANAGER_ADMIN_SINGLETON_DECLARATION(T)
+# define DANCE_REPOSITORYMANAGER_ADMIN_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* DANCE_REPOSITORYMANAGER_ADMIN_HAS_DLL == 1 */
+
+// Set DANCE_REPOSITORYMANAGER_ADMIN_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (DANCE_REPOSITORYMANAGER_ADMIN_NTRACE)
+# if (ACE_NTRACE == 1)
+# define DANCE_REPOSITORYMANAGER_ADMIN_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define DANCE_REPOSITORYMANAGER_ADMIN_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !DANCE_REPOSITORYMANAGER_ADMIN_NTRACE */
+
+#if (DANCE_REPOSITORYMANAGER_ADMIN_NTRACE == 1)
+# define DANCE_REPOSITORYMANAGER_ADMIN_TRACE(X)
+#else /* (DANCE_REPOSITORYMANAGER_ADMIN_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define DANCE_REPOSITORYMANAGER_ADMIN_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (DANCE_REPOSITORYMANAGER_ADMIN_NTRACE == 1) */
+
+#endif /* DANCE_REPOSITORYMANAGER_ADMIN_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/DAnCE/RepositoryManager/Repository_Manager_Exec.cpp b/modules/CIAO/DAnCE/RepositoryManager/Repository_Manager_Exec.cpp
new file mode 100644
index 00000000000..371fabf1406
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/Repository_Manager_Exec.cpp
@@ -0,0 +1,6 @@
+// $Id$
+#include "Repository_Manager_Module.h"
+
+#define DANCE_MODULE_MAIN_CLASS_NAME DAnCE_RepositoryManager_Module
+#include "Deployment/Module_Main.h"
+
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..3cb5fd29f03
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/Repository_Manager_Module.cpp
@@ -0,0 +1,520 @@
+// -*- 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 "orbsvcs/orbsvcs/Naming/Naming_Loader.h"
+#include "DAnCE/Logger/Log_Macros.h"
+#include "DAnCE/Deployment/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 ((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 ((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 ((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 ((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");
+
+ for (Servant_Map::iterator it = this->rm_map_.begin ();
+ it != this->rm_map_.end ();
+ ++it)
+ {
+ delete (*it).int_id_;
+ }
+}
+
+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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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 ((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:
+ DANCE_ERROR_RETURN ( (LM_ERROR,
+ this->usage (),
+ argv [0], c),
+ false);
+ break;
+ }
+
+ }
+
+ if (this->options_.server_address_ == 0)
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Repository_Manager_Module::parse_args - ")
+ ACE_TEXT("Must provider server address using --server-address option.\n")));
+ return false;
+ }
+
+ return true;
+}
+
+CORBA::Object_ptr
+DAnCE_RepositoryManager_Module::create_object (CORBA::ORB_ptr orb,
+ int argc,
+ ACE_TCHAR *argv[])
+{
+ DANCE_TRACE ("DAnCE_RepositoryManager_Module::create_object");
+
+ try
+ {
+ if (CORBA::is_nil(orb))
+ {
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::create_object - ")
+ 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((LM_TRACE, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::create_object - ")
+ 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((LM_TRACE, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::create_object - ")
+ 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 ((LM_ERROR,DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::create_object - ")
+ ACE_TEXT("Narrow to NamingContext return nil for DomainNC.\n")));
+ return CORBA::Object::_nil ();
+ }
+ }
+ }
+ catch (const CORBA::Exception&)
+ {
+ DANCE_DEBUG ((LM_WARNING, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::create_object - ")
+ ACE_TEXT("DomainNC context not found!\n")));
+ }
+ }
+
+
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::create_object - ")
+ 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 ((LM_ERROR, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::create_object - ")
+ 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 menager 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((LM_TRACE, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::create_object - ")
+ 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 ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::create_object - ")
+ 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 ((LM_ERROR, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::create_object - ")
+ 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 ((LM_NOTICE, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::create_object - ")
+ ACE_TEXT("DAnCE_RepositoryManager is running...\n")));
+
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::create_object - ")
+ 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 ((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 ((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 ((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 ((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 ());
+}
+
+#ifndef BUILD_REPOSITORY_MANAGER_EXE
+ACE_FACTORY_DEFINE (DAnCE_RepositoryManager_Module, DAnCE_RepositoryManager_Module)
+#endif /*BUILD_REPOSITORY_MANAGER_EXE */
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..5374ad6f00f
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/Repository_Manager_Module.h
@@ -0,0 +1,128 @@
+// -*- 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 "DAnCE_RepositoryManager_Module_Export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Service_Config.h"
+#include "ace/Vector_T.h"
+#include "ace/Map_Manager.h"
+#include "ace/Null_Mutex.h"
+#include "tao/ORB.h"
+#include "tao/PortableServer/POAC.h"
+#include "orbsvcs/CosNamingC.h"
+#include "tao/Object_Loader.h"
+#include "Deployment/DAnCE_Loader.h"
+#include "DAnCE/Deployment/Deployment_common.h"
+
+namespace DAnCE
+{
+ class RepositoryManagerDaemon_i;
+}
+
+/**
+ * @class Repository_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_RepositoryManager_Module_Export DAnCE_RepositoryManager_Module
+ : public DAnCE::DAnCE_Object_Loader
+{
+ public:
+ 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"))
+ {
+ }
+ };
+
+ /// 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.
+ virtual CORBA::Object_ptr create_object (CORBA::ORB_ptr orb,
+ int argc,
+ ACE_TCHAR *argv []);
+
+ virtual const char * usage (void);
+
+ virtual bool parse_args (int argc, ACE_TCHAR *argv []);
+
+ private:
+ void create_poas (void);
+
+ void spawn_http (void);
+
+ /// Here we store the servants.
+ typedef ACE_Map_Manager < ACE_CString,
+ DAnCE::RepositoryManagerDaemon_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_;
+};
+
+ACE_FACTORY_DECLARE (DAnCE_RepositoryManager_Module, DAnCE_RepositoryManager_Module)
+
+#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..59bf39e073d
--- /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 ((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..c75d2f7bc1a
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/URL_Parser.h
@@ -0,0 +1,64 @@
+
+/* -*- 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..455af597847
--- /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((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((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((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((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((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((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((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((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((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((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((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((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 ((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 ((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..1ad95d626eb
--- /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 ((LM_TRACE, DLINFO "Admin::install_package - "
+ "Installing package with URI: %C, name: %C\n",
+ uri, name));
+ this->rm_->installPackage (ACE_TEXT_ALWAYS_CHAR (name),
+ ACE_TEXT_ALWAYS_CHAR (uri),
+ replace);
+ DANCE_DEBUG ((LM_TRACE, DLINFO "Admin::install_package - "
+ "Package installed successfully\n"));
+ }
+ catch (Deployment::NameExists &)
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO "Admin::install_package - "
+ "Package with name %C already installed.\n",
+ name));
+ return false;
+ }
+ catch (Deployment::PackageError &ex)
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO "Admin::install_package - "
+ "Internal error while installing package with name %C: %C - %C\n",
+ name, ex.source.in (), ex.reason.in ()));
+ return false;
+ }
+ catch (CORBA::Exception &ex)
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO "Admin::install_package - "
+ "Unexpected CORBA Exception while installing package with name: %C. Reason: %C\n",
+ name,
+ ex._info ().c_str ()));
+ return false;
+ }
+ catch (...)
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO "Admin::install_package - "
+ "Unexpected C++ exception while installing package with name: %C\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 ((LM_TRACE, DLINFO "Admin::uninstall_package - "
+ "Attempting to uninstall package %s\n",
+ uuid));
+ this->rm_->deletePackage (ACE_TEXT_ALWAYS_CHAR (uuid));
+ DANCE_DEBUG ((LM_INFO, DLINFO "Admin::uninstall_package - "
+ "Successfully uninstalled package %s\n",
+ uuid));
+ }
+ catch (Deployment::NoSuchName &)
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO "Admin::uninstall_package - "
+ "No package with the given UUID found: %C\n",
+ uuid));
+ return false;
+ }
+ catch (CORBA::Exception &ex)
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO "Admin::uninstall_package - "
+ "Unexpected CORBA Exception while uninstalling package with uuid: %C. Reason: %C\n",
+ uuid,
+ ex._info ().c_str ()));
+ return false;
+ }
+ catch (...)
+ {
+ DANCE_ERROR ((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 ((LM_ERROR, DLINFO "Admin::list_packages - "
+ "Unexpected CORBA Exception while listing packages: %C\n",
+ ex._info ().c_str ()));
+ return 0;
+ }
+ catch (...)
+ {
+ DANCE_ERROR ((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 ((LM_ERROR, DLINFO "Admin::list_types - "
+ "Unexpected CORBA Exception while listing package types: %C\n",
+ ex._info ().c_str ()));
+ return 0;
+ }
+ catch (...)
+ {
+ DANCE_ERROR ((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 ((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 ((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 ((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 ((LM_TRACE, DLINFO "Admin::shutdown - "
+ "Attempting to shut down Repository Manager\n"));
+ CIAO::RepositoryManagerDaemon_var rmd =
+ CIAO::RepositoryManagerDaemon::_narrow (this->rm_.in ());
+ DANCE_DEBUG ((LM_INFO, DLINFO "Admin::shutdown - "
+ "Repository Manager shut down.\n"));
+ if (CORBA::is_nil (rmd.in ()))
+ {
+ DANCE_ERROR ((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..867b4b0a18a
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/repository_manager_admin.h
@@ -0,0 +1,68 @@
+
+// $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"
+
+#include "Repository_Manager_Admin_Export.h"
+
+namespace DAnCE
+{
+ namespace RepositoryManager
+ {
+ /**
+ * @class Admin
+ * @brief Implements administrative functions for the Repository Manager.
+ */
+ class DAnCE_RepositoryManager_Admin_Export 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..4a9bc440e4e
--- /dev/null
+++ b/modules/CIAO/DAnCE/RepositoryManager/repository_manager_admin_exec.cpp
@@ -0,0 +1,466 @@
+// $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 ((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 ((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 ((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 ((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 ((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 ((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 ((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)
+ {
+ DANCE_ERROR ((LM_EMERGENCY, "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 ((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 ((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 ((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 ((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 ((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 ((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 ((LM_DEBUG, DLINFO "Options::parse_args - "
+ "Listing all packages.\n"));
+ this->list_ = true;
+ break;
+
+ case 's':
+ DANCE_DEBUG ((LM_DEBUG, DLINFO "Options::parse_args - "
+ "Shutting down the RM instance.\n"));
+ this->shutdown_ = true;
+ break;
+
+ case 'd':
+ DANCE_DEBUG ((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 ((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_Backend_Factory");
+
+ if (!dlf)
+ {
+ dlf = new DAnCE::Logger_Service;
+ logger.reset (dlf);
+ }
+
+ dlf->init (argc, argv);
+
+ DANCE_DEBUG ((LM_TRACE, DLINFO
+ "Module_main.h - initializing ORB\n"));
+
+ CORBA::ORB_var orb = CORBA::ORB_init(argc, argv);
+
+ ACE_Log_Msg_Backend * backend = dlf->get_logger_backend(orb);
+
+ if (backend != 0)
+ {
+ backend->open(0);
+ ACE_Log_Msg::msg_backend (backend);
+ ACE_Log_Msg * ace = ACE_Log_Msg::instance();
+ ace->clr_flags(ace->flags());
+ ace->set_flags(ACE_Log_Msg::CUSTOM);
+ }
+
+ Options options;
+ int error = options.parse_args (argc, argv);
+ if (error == -1)
+ {
+ DANCE_ERROR ((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 ((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 ((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 ((LM_ERROR, DLINFO "repository_manager_admin_exec::main - "
+ "No packages returned from list_packages\n"));
+ retval = -1;
+ }
+
+ DANCE_DEBUG ((LM_EMERGENCY, "Listing %u packages installed on server:\n"));
+
+ for (CORBA::ULong i = 0; i < packages->length (); ++i)
+ {
+ DANCE_DEBUG ((LM_EMERGENCY, "\t%s\n",
+ (*packages)[i].in ()));
+ }
+
+ delete packages;
+ }
+
+ if (options.shutdown_)
+ {
+ DANCE_DEBUG ((LM_EMERGENCY, "Shutting down the Repository Manager\n"));
+ if (!admin.shutdown ())
+ retval = -1;
+ }
+ }
+ catch (CORBA::Exception &ex)
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO "repository_manager_admin_exec::main - "
+ "Caught unexpected CORBA Exception: %s\n",
+ ex._info ().c_str ()));
+ return -1;
+ }
+ catch (...)
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO "repository_manager_admin_exec::main - "
+ "Caught unexpected C++ exception.\n"));
+ return -1;
+ }
+
+ return 0;
+}
+
diff --git a/modules/CIAO/DAnCE/Starter/Starter.cpp b/modules/CIAO/DAnCE/Starter/Starter.cpp
new file mode 100644
index 00000000000..d17d8f1dcda
--- /dev/null
+++ b/modules/CIAO/DAnCE/Starter/Starter.cpp
@@ -0,0 +1,924 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Starter.cpp
+ *
+ * $Id$
+ *
+ * @brief Dynamically runs libraries
+ *
+ * @author Vinzenz Tornow <vt@prismtech.com>
+ */
+//=============================================================================
+
+#include "Starter.h"
+#include "ace/Service_Config.h"
+#include "ace/Thread_Manager.h"
+#include "ace/DLL.h"
+#include "ace/Get_Opt.h"
+#include "tao/ORB.h"
+#include "tao/Object.h"
+#include "tao/PortableServer/PortableServer.h"
+#include "tao/Object_Loader.h"
+#include "tao/IORTable/IORTable.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+using namespace DAnCE;
+
+#ifdef DANCE_BUILD_STARTER_EXE
+
+int ACE_TMAIN (int argc, ACE_TCHAR * argv[])
+{
+ try
+ {
+ Starter starter (argc, argv);
+ starter.execute();
+ return 0;
+ }
+ catch (ACE_CString & e)
+ {
+ DANCE_ERROR ( (LM_ERROR, "[%M] dance starter failed with an exception : \"%s\"\n", e.c_str()));
+ }
+ catch (CORBA::Exception & e)
+ {
+ DANCE_ERROR ( (LM_ERROR, "[%M] dance starter failed with an CORBA exception : \"%s\"\n", e._info().c_str()));
+ }
+ catch (...)
+ {
+ DANCE_ERROR ( (LM_ERROR, "[%M] dance starter failed with an unknown exception.\n"));
+ }
+ return -1;
+}
+
+#endif /* DANCE_BUILD_STARTER_EXE */
+
+namespace DAnCE
+{
+
+Starter::Starter(int argc, ACE_TCHAR * argv[]) :
+ orb_(CORBA::ORB_init (argc, argv, "")),
+ optLogLevel_(5), //default
+ argc_(argc),
+ argv_(argv),
+ optNS_(false),
+ optEM_(false),
+ optPLB_(false),
+ optPL_(false)
+{
+ DANCE_TRACE ("DAnCE::Starter::Starter ()");
+
+ Logger_Service
+ * dlf = ACE_Dynamic_Service<Logger_Service>::instance ("DAnCE_Logger_Backend_Factory");
+
+ if (!dlf)
+ dlf = new Logger_Service;
+
+ this->logger_.reset (dlf);
+ this->logger_->init (argc, argv);
+
+ DANCE_DEBUG ((LM_TRACE, DLINFO
+ ACE_TEXT("Starter::Starter - Creating starter...\n")));
+
+ this->parseArgs(argc, argv);
+
+ this->configure_logging_backend ();
+
+ DANCE_DEBUG ((LM_TRACE, DLINFO
+ ACE_TEXT("Starter::Starter - Starter was created successfully.\n")));
+}
+
+Starter::~Starter()
+{
+ DANCE_TRACE ("Starter::~Starter");
+/* TAO_Object_Loader
+ * loader = ACE_Dynamic_Service<TAO_Object_Loader>::instance ("ExecutionManager_Loader");
+ if (0 != loader)
+ {
+ DANCE_DEBUG ( (LM_TRACE, "[%M] Starter::~Starter - removing EM ...\n"));
+ loader = 0;
+ ACE_Service_Config::remove ("ExecutionManager_Loader");
+ }
+ loader
+ = ACE_Dynamic_Service<TAO_Object_Loader>::instance ("NodeManager_Loader");
+ if (0 != loader)
+ {
+ DANCE_DEBUG ( (LM_TRACE, "[%M] Starter::~Starter - removing NM ...\n"));
+ loader = 0;
+ ACE_Service_Config::remove ("NodeManager_Loader");
+ }
+
+ this->orb_._retn()->destroy(); */
+}
+
+void Starter::parseArgs(int argc, ACE_TCHAR * argv[])
+{
+ DANCE_DEBUG ( (LM_TRACE, "[%M] Parsing starter's arguments...\n"));
+
+ ACE_Get_Opt opts(argc, argv, "p::n:e::c::r::il:hg:x:d:qk:w:t:a:", 1, 0,
+ ACE_Get_Opt::RETURN_IN_ORDER);
+ opts.long_option(ACE_TEXT("process-ns"), 'p', ACE_Get_Opt::ARG_OPTIONAL);
+ opts.long_option(ACE_TEXT("process-ns-options"), ACE_Get_Opt::ARG_REQUIRED);
+ opts.long_option(ACE_TEXT("node-mgr"), 'n', ACE_Get_Opt::ARG_REQUIRED);
+ opts.long_option(ACE_TEXT("exec-mgr"), 'e', ACE_Get_Opt::ARG_OPTIONAL);
+ opts.long_option(ACE_TEXT("create-plan-ns"), 'c', ACE_Get_Opt::ARG_OPTIONAL);
+ opts.long_option(ACE_TEXT("rebind-plan-ns"), 'r', ACE_Get_Opt::ARG_OPTIONAL);
+ opts.long_option(ACE_TEXT("port-indirection"), 'i', ACE_Get_Opt::NO_ARG);
+ opts.long_option(ACE_TEXT("log-level"), 'l', ACE_Get_Opt::ARG_REQUIRED);
+ opts.long_option(ACE_TEXT("help"), 'h', ACE_Get_Opt::NO_ARG);
+ opts.long_option(ACE_TEXT("gen-object-key"), 'g', ACE_Get_Opt::ARG_REQUIRED);
+ opts.long_option(ACE_TEXT("read-plan"), 'x', ACE_Get_Opt::ARG_REQUIRED);
+ opts.long_option(ACE_TEXT("read-cdr-plan"), 'd', ACE_Get_Opt::ARG_REQUIRED);
+ opts.long_option(ACE_TEXT("stop-plan"), 'q', ACE_Get_Opt::NO_ARG);
+ opts.long_option(ACE_TEXT("em-ior"), 'k', ACE_Get_Opt::ARG_REQUIRED);
+ opts.long_option(ACE_TEXT("write-cdr-plan"), 'w', ACE_Get_Opt::ARG_REQUIRED);
+ opts.long_option(ACE_TEXT("plan-uuid"), 't', ACE_Get_Opt::ARG_REQUIRED);
+ opts.long_option(ACE_TEXT("dam-ior"), 'a', ACE_Get_Opt::ARG_REQUIRED);
+
+ int j;
+ int c;
+ ACE_TString s;
+ while ( (c = opts ()) != -1)
+ {
+ DANCE_DEBUG((LM_TRACE, "[%M] Option : \"%s\" with argument \"%s\"\n", opts.last_option(), opts.opt_arg()));
+ switch (c)
+ {
+ case '?':
+ DANCE_ERROR ( (LM_ERROR, "[%M] Wrong option \"%s\" or this option is requred attribute!\n", opts.last_option()));
+ this->usage();
+ throw ACE_CString("Error parsing starter arguments");
+ break;
+ case 'p':
+ this->optNS_ = true;
+ DANCE_DEBUG ( (LM_TRACE, "[%M] Naming will be started.\n"));
+ this->optNSFile_ = opts.opt_arg();
+ break;
+ case 'n':
+ s = opts.opt_arg();
+ if (0 < s.length())
+ {
+ ACE_CString nodename;
+ Node node;
+ size_t const pos = s.find(ACE_TEXT ("="));
+ if (ACE_CString::npos != pos)
+ {
+ nodename = s.substring(0, pos);
+ node.ior_ = s.substring(pos + 1);
+ /*
+ node.obj = this->orb_->string_to_object(objstr.c_str());
+ if (CORBA::is_nil (node.obj))
+ {
+ DANCE_ERROR ( (LM_ERROR, "[%M] Failed create object for node \"%s\"\n", nodename.c_str()));
+ throw ACE_CString ("Invalid IOR in --node-mgr option");
+ }
+ */
+ }
+ else
+ {
+ nodename = s;
+ DANCE_DEBUG ( (LM_TRACE, "[%M] Node \"%s\" will be started.\n", nodename.c_str()));
+ if (opts.optind < opts.argc_&& '-' != (s = opts.argv_[opts.optind])[0])
+ {
+ ++opts.optind;
+ node.iorfile_ = s;
+ DANCE_DEBUG ( (LM_TRACE, "[%M] and its IOR will be written to file \"%C\".\n", node.iorfile_.c_str()));
+ }
+
+ }
+ if (0 == this->nodes_.find(nodename))
+ {
+ DANCE_ERROR((LM_ERROR, "[%M] Duplication of NM name \"%s\"\n", nodename.c_str()));
+ this->usage();
+ throw ACE_CString("Duplication of NM name");
+ }
+ this->nodes_.bind(nodename, node);
+ }
+ else
+ {
+ DANCE_ERROR ( (LM_ERROR, "[%M] --node-mgr option without arguments.\n"));
+ this->usage();
+ throw ACE_CString ("--node-mgr option without arguments.");
+ }
+ break;
+ case 'e':
+ if (this->optEM_)
+ {
+ DANCE_DEBUG((LM_WARNING, "[%M] ExecutionManager option is encountered more than once. Second and following ignored.\n"));
+ break;
+ }
+ this->optEM_ = true;
+ DANCE_DEBUG ( (LM_TRACE, "[%M] ExecutionManager will be started.\n"));
+ this->optEMFile_ = opts.opt_arg();
+ break;
+ case 'l':
+ j = ACE_OS::atoi (opts.opt_arg());
+ if (j != 0)
+ {
+ this->optLogLevel_ = j;
+ }
+ else
+ {
+ DANCE_ERROR ( (LM_WARNING, "--log-level without argument. Using default.\n"));
+ }
+ break;
+ case 'h':
+ this->usage();
+ break;
+ case 'x':
+ this->optPL_ = true;
+ DANCE_DEBUG ( (LM_TRACE, "[%M] PlanLauncher will be started.\n"));
+ break;
+ case 'd':
+ case 'q':
+ this->optPLB_ = true;
+ DANCE_DEBUG ( (LM_TRACE, "[%M] PlanLauncherBase will be started.\n"));
+ break;
+ case 'g':
+ DANCE_DEBUG ( (LM_TRACE, "[%M] Object key will be generated.\n"));
+ this->optGenObjKey_ = opts.opt_arg();
+ if (0 == this->optGenObjKey_.length())
+ {
+ DANCE_ERROR ( (LM_ERROR, "[%M] --gen-object-key without argument. Doing nothing.\n"));
+ }
+ break;
+ case 0: // long options that do not have short
+ s = opts.last_option();
+ if (s == "process-ns-options")
+ {
+ this->optNSOptions_ = opts.opt_arg();
+ if (0 == this->optNSOptions_.length())
+ {
+ DANCE_ERROR ( (LM_ERROR, "[%M] --process-ns-options without argument\n"));
+ }
+ }
+ else
+ {
+ if (!isPossibleOption(s.c_str()))
+ {
+ DANCE_ERROR((LM_ERROR, "[%M] Invalid option : %s\n", s.c_str()));
+ }
+ }
+ break;
+ default:
+ if (!isPossibleOption(opts.last_option()))
+ {
+ DANCE_ERROR((LM_ERROR, "[%M] Invalid option : %s\n", opts.last_option()));
+ this->usage();
+ }
+ break;
+ }//switch
+ }//while
+
+ DANCE_DEBUG ( (LM_TRACE, "[%M] Parsing starter's arguments completed.\n"));
+}
+
+void Starter::execute()
+{
+ DANCE_DEBUG ( (LM_TRACE, "[%M] Executing starter...\n"));
+ bool orb_run = false;
+
+ // Generate object key
+ if (0 < this->optGenObjKey_.length())
+ {
+ this->generateObjectKey(this->optGenObjKey_.c_str());
+ }
+
+ // Naming
+ if (this->optNS_)
+ {
+ this->initNaming();
+ orb_run = true;
+ }
+
+ // NodeManagers
+ for (ACE_Map_Manager<ACE_CString, Node, ACE_Null_Mutex>::iterator
+ it = this->nodes_.begin(); it != this->nodes_.end(); ++it)
+ {
+ if (!CORBA::is_nil ((*it).int_id_.obj) || 0 < (*it).int_id_.ior_.length())
+ continue;
+ orb_run = true;
+ (*it).int_id_.obj = this->initNodeManager((*it).ext_id_.c_str());
+ if (0 != (*it).int_id_.iorfile_.length())
+ {
+ this->write_IOR((*it).int_id_.iorfile_.c_str(), this->orb_->object_to_string((*it).int_id_.obj));
+ }
+ }
+
+ // ExecutionManager
+ CORBA::Object_var em;
+ if (this->optEM_)
+ {
+ em = this->initExecutionManager();
+ if ( !CORBA::is_nil(em) && 0 < this->optEMFile_.length())
+ {
+ this->write_IOR(this->optEMFile_.c_str(),
+ this->orb_->object_to_string(em.in()));
+ }
+ orb_run = true;
+ }
+
+ if (this->optPLB_ || this->optPL_)
+ {
+ this->runPlanLauncher();
+ }
+
+ if (orb_run)
+ {
+ DANCE_DEBUG ( (LM_TRACE, "[%M] Running starter's ORB...\n"));
+ this->orb_->run();
+ }
+ else
+ {
+ DANCE_DEBUG ( (LM_TRACE, "[%M] Skipping starter's ORB->run.\n"));
+ }
+ DANCE_DEBUG ( (LM_TRACE, "[%M] Executing starter has completed.\n"));
+}
+
+void Starter::usage()
+{
+ DANCE_ERROR ( (LM_EMERGENCY, "Usage : dance <options>\n"
+ "Options :\n"
+ "\t-l|--log-level <log level> - sets log level (default 5). 1 - most detailed.\n"
+ "\t-g|--gen-object-key \"<NODE_NAME> <PLAN_ID> <COMPONENT_ID> [<PORT_NAME>]\" - generates a corbaloc URL\n"
+ "\t-h|--help - shows this help\n"
+ "\t-p|--process-ns [IOR_FILE_NAME] - Instantiate a local name service within the DAnCE process. Export the root context to IOR_FILE if any.\n"
+ "\t--process-ns-options <options> - Specifies quoted string of options to be passed to name service. Depends on --process-ns option.\n"
+ "\t-e|--exec-mgr [IOR_FILE_NAME] - This process will have an execution manager and it's IOR will optionally be exported to IOR_FILE_NAME.\n"
+ "\t-n|--node-mgr name [IOR_FILE_NAME] - Create a named NodeManager in process and optionally export its IOR to IOR_FILE_NAME\n"
+ "\t-n|--node-mgr name=<IOR> - Place the NodeManager instance whose reference is IOR under the control of the ExecutionManager in this process (requires --exec-mgr).\n"
+ "In addition to the options above, the Service Configurator options are processed too.\n"));
+}
+
+void Starter::generateObjectKey(const char * keyargs)
+{
+ ACE_CString args = keyargs;
+ ssize_t pos_start = 0;
+ ACE_CString node;
+ ACE_CString plan;
+ ACE_CString component;
+ ACE_CString port;
+
+ // node
+ if (pos_start < (ssize_t) args.length())
+ {
+ size_t pos_end = args.find(' ', pos_start);
+ if (ACE_CString::npos == pos_end)
+ {
+ node = args.substring(pos_start);
+ pos_start = args.length();
+ }
+ else
+ {
+ node = args.substring(pos_start, pos_end - pos_start);
+ pos_start = pos_end + 1;
+ }
+ }
+
+ // plan
+ if (pos_start < (ssize_t) args.length())
+ {
+ size_t pos_end = args.find(' ', pos_start);
+ if (ACE_CString::npos == pos_end)
+ {
+ plan = args.substring(pos_start);
+ pos_start = args.length();
+ }
+ else
+ {
+ plan = args.substring(pos_start, pos_end - pos_start);
+ pos_start = pos_end + 1;
+ }
+ }
+
+ // component
+ if (pos_start < (ssize_t) args.length())
+ {
+ size_t pos_end = args.find(' ', pos_start);
+ if (ACE_CString::npos == pos_end)
+ {
+ component = args.substring(pos_start);
+ pos_start = args.length();
+ }
+ else
+ {
+ component = args.substring(pos_start, pos_end - pos_start);
+ pos_start = pos_end + 1;
+ }
+ }
+
+ // port
+ if (pos_start < (ssize_t) args.length())
+ {
+ size_t pos_end = args.find(' ', pos_start);
+ if (ACE_CString::npos == pos_end)
+ {
+ port = args.substring(pos_start);
+ pos_start = args.length();
+ }
+ else
+ {
+ port = args.substring(pos_start, pos_end - pos_start);
+ pos_start = pos_end + 1;
+ }
+ }
+
+ // check
+ if (0 == node.length() || 0 == plan.length() || 0 == component.length())
+ {
+ DANCE_ERROR ( (LM_ERROR, "[%M] Invalid object attributes received : \"s\"\n", args.c_str()));
+ this->usage();
+ return;
+ }
+
+ this->generateObjectKey(node.c_str(), plan.c_str(), component.c_str(), 0
+ == port.length() ? 0 : port.c_str());
+}
+
+void Starter::generateObjectKey(const char * node, const char * plan,
+ const char * component, const char * port)
+{
+ DANCE_DEBUG ( (LM_TRACE, "[%M] Starter::generateObjectKey starting...\n"));
+ CORBA::Boolean prev_format = this->orb_->_use_omg_ior_format();
+ this->orb_->_use_omg_ior_format(false);
+ // warning : parent POA supposed to be RootPOA
+ CORBA::Object_var obj = this->orb_->resolve_initial_references("RootPOA");
+ PortableServer::POA_var root_poa = PortableServer::POA::_narrow (obj.in());
+
+ CORBA::PolicyList policies(4);
+ policies.length(4);
+ policies[0]= root_poa->create_id_assignment_policy(PortableServer::USER_ID);
+ policies[1]
+ = root_poa->create_request_processing_policy(PortableServer::USE_SERVANT_MANAGER);
+ policies[2]
+ = root_poa->create_servant_retention_policy(PortableServer::NON_RETAIN);
+ policies[3] = root_poa->create_lifespan_policy(PortableServer::PERSISTENT);
+ PortableServer::POAManager_var mgr = root_poa->the_POAManager();
+ PortableServer::POA_var
+ myPOA = root_poa->create_POA(node, mgr.in(), policies);
+ for (size_t i = 0; i < policies.length(); ++i)
+ {
+ policies[i]->destroy();
+ }
+
+ const char delim = '/';
+
+ ACE_CString s = plan;
+ s += delim;
+ s += component;
+ if (0 != port)
+ {
+ s += delim;
+ s += port;
+ }
+
+ PortableServer::ObjectId_var
+ oid = PortableServer::string_to_ObjectId (s.c_str());
+ CORBA::Object_var o = myPOA->create_reference_with_id(oid.in(),
+ "IDL:omg.org/CORBA/Object:1.0");
+ s = this->orb_->object_to_string(o);
+ size_t pos = s.find(delim);
+ if (ACE_CString::npos != pos)
+ {
+ s = s.substr(pos + 1);
+ }
+ else
+ {
+ DANCE_ERROR ( (LM_WARNING, "Failed to cut off the host specific part of URL.\n"));
+ }
+ DANCE_DEBUG ( (LM_TRACE, "[%M] Starter::generateObjectKey printing result : %s\n", s.c_str()));
+ ACE_OS::printf ("%s\n", s.c_str());
+
+ this->orb_->_use_omg_ior_format(prev_format);
+ DANCE_DEBUG ( (LM_TRACE, "[%M] Starter::generateObjectKey completed.\n"));
+}
+
+void Starter::write_IOR(const ACE_TCHAR * ior_file_name, const char* ior)
+{
+ FILE* ior_output_file_ = ACE_OS::fopen (ior_file_name, "w");
+
+ if (ior_output_file_)
+ {
+ ACE_OS::fprintf (ior_output_file_, "%s", ior);
+ ACE_OS::fclose (ior_output_file_);
+ DANCE_DEBUG ( (LM_DEBUG, "[%M] ior was written into file \"%s\"\n", ior_file_name));
+ }
+ else
+ {
+ DANCE_ERROR ( (LM_ERROR, "[%M] Unable to open IOR output file %s : %m\n",
+ ior_file_name));
+ }
+}
+
+void Starter::initNaming()
+{
+ DANCE_DEBUG ( (LM_TRACE, "[%M] Starting naming...\n"));
+ TAO_Object_Loader
+ * loader = ACE_Dynamic_Service<TAO_Object_Loader>::instance ("Naming_Loader");
+ if (0 == loader)
+ {
+ ACE_CString directive =
+ "dynamic Naming_Loader Service_Object * TAO_CosNaming_Serv:_make_TAO_Naming_Loader() \"";
+ directive += this->optNSOptions_ + "\"";
+ ACE_Service_Config::process_directive(directive.c_str());
+ }
+
+ DANCE_DEBUG ( (LM_TRACE, "[%M] Putting ior to file if necessary...\n"));
+ if (0 < this->optNSFile_.length())
+ {
+ CORBA::Object_var obj = this->orb_->resolve_initial_references("NameService");
+ if (CORBA::is_nil(obj))
+ {
+ DANCE_ERROR((LM_ERROR, "[%M] Failed to rir \"NameService\" after creation to write it to file.\n"));
+ }
+ else
+ {
+ this->write_IOR(this->optNSFile_.c_str(), this->orb_->object_to_string(obj));
+ }
+ }
+
+/* CORBA::Object_var table_object = this->orb_->resolve_initial_references ("IORTable");
+ IORTable::Table_var table = IORTable::Table::_narrow (table_object.in ());
+ if (CORBA::is_nil (table.in()))
+ {
+ DANCE_ERROR ( (LM_ERROR, "[%M] Failed to register Naming in IORTable.Nil IORTable\n"));
+ return;
+ }
+ try
+ {
+ table->bind ("NameService", this->orb_->object_to_string (this->process_naming_));
+ }
+ catch (...)
+ {
+ DANCE_ERROR ( (LM_ERROR, "[%M] Failed to register Naming in IORTable with \"NameService\". Exception is caught.\n"));
+ }*/
+ DANCE_DEBUG ( (LM_TRACE, "[%M] Starting naming completed.\n"));
+ }
+
+CORBA::Object_ptr
+Starter::initNodeManager (const char * node)
+ {
+ DANCE_DEBUG ( (LM_TRACE, "[%M] Starting NodeManager \"%s\"...\n", node));
+ TAO_Object_Loader * loader = ACE_Dynamic_Service<TAO_Object_Loader>::instance ("NodeManager_Loader");
+ if (0 == loader)
+ {
+ ACE_Service_Config::process_directive (ACE_DYNAMIC_SERVICE_DIRECTIVE ("NodeManager_Loader",
+ "DAnCE_NodeManager",
+ "_make_DAnCE_NodeManager_Module",
+ ""));
+ loader = ACE_Dynamic_Service<TAO_Object_Loader>::instance ("NodeManager_Loader");
+ }
+ if (0 == loader)
+ {
+ DANCE_ERROR ( (LM_ERROR, "[%M] Failed to load node manager \"%s\".\n", node));
+ throw ACE_CString ("Failed to load NodeManager.");
+ }
+ int c = 0;
+ ACE_TCHAR ** v = 0;
+ this->argCopyForNode (node, c, v);
+ CORBA::Object_var res = loader->create_object (this->orb_, c, v);
+ this->releaseArgs (c, v);
+ if (CORBA::is_nil(res.in()))
+ {
+ DANCE_ERROR ( (LM_ERROR, "[%M] Failed to create node manager \"%s\".\n", node));
+ throw ACE_CString ("Failed to create NodeManager.");
+ }
+ DANCE_DEBUG ( (LM_TRACE, "[%M] Starting NodeManager \"%s\" completed.\n", node));
+ return res._retn();
+ }
+
+CORBA::Object_ptr
+Starter::initExecutionManager()
+ {
+ DANCE_DEBUG ( (LM_TRACE, "[%M] Starting ExecutionManager...\n"));
+ ACE_Service_Config::process_directive (
+ ACE_DYNAMIC_SERVICE_DIRECTIVE ("ExecutionManager_Loader"
+ , "DAnCE_ExecutionManager"
+ , "_make_DAnCE_ExecutionManager_Module"
+ , ""));
+ TAO_Object_Loader * loader = ACE_Dynamic_Service<TAO_Object_Loader>::instance ("ExecutionManager_Loader");
+ if (0 == loader)
+ {
+ DANCE_ERROR ( (LM_ERROR, "[%M] Failed to load execution manager .\n"));
+ throw ACE_CString ("Failed to load ExecutionManager.");
+ }
+ int c = 0;
+ ACE_TCHAR ** v = 0;
+ this->argCopyForEM (c, v);
+ CORBA::Object_var em = loader->create_object (this->orb_, c, v);
+ this->releaseArgs (c, v);
+ if (CORBA::is_nil(em.in()))
+ {
+ DANCE_ERROR ( (LM_ERROR, "[%M] Failed to create execution manager.\n"));
+ throw ACE_CString ("Failed to create ExecutionManager.");
+ }
+ DANCE_DEBUG ( (LM_TRACE, "[%M] Starting ExecutionManager completed.\n"));
+ return em._retn();
+ }
+
+void
+Starter::runPlanLauncher()
+ {
+ if (this->optPL_)
+ {
+ DANCE_DEBUG ( (LM_TRACE, "[%M] Starting PlanLauncher...\n"));
+ ACE_Service_Config::process_directive (
+ ACE_DYNAMIC_SERVICE_DIRECTIVE ("PlanLauncher_Loader"
+ , "DAnCE_Plan_Launcher"
+ , "_make_DAnCE_Plan_Launcher_Module"
+ , ""));
+ }
+ else
+ {
+ DANCE_DEBUG ( (LM_TRACE, "[%M] Starting PlanLauncherBase...\n"));
+ ACE_Service_Config::process_directive (
+ ACE_DYNAMIC_SERVICE_DIRECTIVE ("PlanLauncher_Loader"
+ , "DAnCE_Plan_Launcher_Base"
+ , "_make_DAnCE_Plan_Launcher_Base_Module"
+ , ""));
+ }
+ TAO_Object_Loader * loader = ACE_Dynamic_Service<TAO_Object_Loader>::instance ("PlanLauncher_Loader");
+ if (0 == loader)
+ {
+ DANCE_ERROR ( (LM_ERROR, "[%M] Failed to load plan launcher.\n"));
+ throw ACE_CString ("Failed to load PlanLauncher.");
+ }
+ int c = 0;
+ ACE_TCHAR ** v = 0;
+ this->argCopyForPL (c, v);
+ loader->create_object (this->orb_, c, v);
+ this->releaseArgs (c, v);
+ DANCE_DEBUG ( (LM_TRACE, "[%M] Starting PlanLauncher(Base) completed.\n"));
+ }
+
+void
+Starter::argCopyForNaming (int & c, char **& v)
+ {
+ int total_sz = 2;
+ for (size_t pos = this->optNSOptions_.find (' ');
+ ACE_CString::npos != pos;
+ pos = this->optNSOptions_.find (' ', pos + 1))
+ {
+ ++total_sz;
+ }
+ v = new char*[total_sz];
+ c = 0;
+ //take the 0-th argument anyway
+ v[c++] = CORBA::string_dup (this->argv_[0]);
+
+ for (int i = 1; i < total_sz; ++i) v[i] = 0;
+
+ ssize_t p0 = 0;
+
+ for (ssize_t p1 = this->optNSOptions_.find (' ');
+ (size_t) p0 < this->optNSOptions_.length();
+ p1 = this->optNSOptions_.find (' ', p0))
+ {
+ if (p1 == p0)
+ {
+ p0 = p1 + 1;
+ continue;
+ }
+ v[c++] = CORBA::string_dup (this->optNSOptions_.substring (p0, p1 - p0).c_str());
+ p0 = p1 + 1;
+ }
+ }
+
+void
+Starter::argCopyForNode (const char * node, int & c, char **& v)
+ {
+ const char * validOptions[] =
+ { //"--node-mgr", "-n"
+ "--process-ns", "-p"
+ , "--create-plan-ns", "-c"
+ , "--rebind-plan-ns", "-r"
+ , "--port-indirection", "-i"
+ , 0
+ };
+
+ int total_sz = this->argc_ + 1;
+ v = new char*[total_sz];
+ for (int i = 0; i < total_sz; ++i) v[i] = 0;
+
+ c = 0;
+ v[c++] = CORBA::string_dup ("-n");
+ v[c++] = CORBA::string_dup (node);
+ Node n;
+ if (0 == this->nodes_.find(node, n) && 0 < n.iorfile_.length())
+ {
+ v[c++] = CORBA::string_dup (n.iorfile_.c_str());
+ }
+
+ bool take = false;
+ for (int i = 0; i < this->argc_; ++i)
+ {
+ if ('-' == this->argv_[i][0])
+ {
+ take = false;
+ for (int j = 0; 0 != validOptions[j]; ++j)
+ {
+ if (this->argv_[i] == ACE_OS::strstr (this->argv_[i], validOptions[j]))
+ {
+ if (i + 1 < this->argc_
+ && (0 == ACE_OS::strcmp (this->argv_[i], ACE_TEXT("--node-mgr")) || 0 == ACE_OS::strcmp (this->argv_[i], ACE_TEXT("-n"))))
+ {
+ ACE_CString s = this->argv_[i+1];
+ if (ACE_CString::npos != s.find ('='))
+ {
+ break;
+ }
+ else if (s == node)
+ {
+ v[c++] = CORBA::string_dup (this->argv_[i]);
+ take = true;
+ break;
+ }
+ }
+ else
+ {
+ v[c++] = CORBA::string_dup (this->argv_[i]);
+ take = true;
+ break;
+ }
+ }
+ }
+ }
+ else if (take)
+ {
+ v[c++] = CORBA::string_dup (this->argv_[i]);
+ }
+ }
+ v[c] = 0;
+ }
+
+void
+Starter::argCopyForEM (int & c, char **& v)
+ {
+ const char * validOptions[] =
+ {
+ //"--node-mgr", "-n"
+ "--exec-mgr", "-e"
+ , "--process-ns", "-p"
+ , "--create-plan-ns", "-c"
+ , "--rebind-plan-ns", "-r"
+ , "--port-indirection", "-i"
+ , 0
+ };
+
+ int total_sz = this->argc_ + 2 * this->nodes_.total_size() + 1;
+ v = new char*[total_sz];
+ for (int i = 0; i < total_sz; ++i) v[i] = 0;
+
+ bool take = false;
+ c = 0;
+ for (int i = 0; i < this->argc_; ++i)
+ {
+ if ('-' == this->argv_[i][0])
+ {
+ take = false;
+ for (int j = 0; 0 != validOptions[j]; ++j)
+ {
+ if (this->argv_[i] == ACE_OS::strstr (this->argv_[i], validOptions[j]))
+ {
+ v[c++] = CORBA::string_dup (this->argv_[i]);
+ take = true;
+ break;
+ }
+ }
+ }
+ else if (take)
+ {
+ v[c++] = CORBA::string_dup (this->argv_[i]);
+ }
+ }
+
+ for (ACE_Map_Manager<ACE_CString, Node, ACE_Null_Mutex>::iterator it = this->nodes_.begin();
+ it != this->nodes_.end();
+ ++it)
+ {
+ //v[c++] = CORBA::string_dup("--node-mgr");
+ v[c++] = CORBA::string_dup ("-n");
+ ACE_CString s = (*it).ext_id_;
+ s += "=";
+ if ( 0 < (*it).int_id_.ior_.length() )
+ {
+ s += (*it).int_id_.ior_;
+ }
+ else if (!CORBA::is_nil((*it).int_id_.obj.in()))
+ {
+ s += this->orb_->object_to_string ( (*it).int_id_.obj.in());
+ }
+ else
+ {
+ DANCE_ERROR((LM_ERROR, "[%M] No IOR for node \"%s\"\n", (*it).ext_id_.c_str()));
+ continue;
+ }
+ v[c++] = CORBA::string_dup (s.c_str());
+ }
+
+ v[c] = 0;
+ }
+
+void
+Starter::argCopyForPL (int & c, char **& v)
+ {
+ const char * validOptions[] =
+ { "--em-ior", "-k"
+ , "--read-plan", "-x"
+ , "--read-cdr-plan", "-d"
+ , "--write-cdr-plan", "-w"
+ , "--plan-uuid", "-t"
+ , "--dam-ior", "-a"
+ , "--stop-plan", "-q"
+ , 0
+ };
+
+ int total_sz = this->argc_ + 1;
+ v = new char*[total_sz];
+ for (int i = 0; i < total_sz; ++i) v[i] = 0;
+
+ bool take = false;
+ c = 0;
+ for (int i = 0; i < this->argc_; ++i)
+ {
+ if ('-' == this->argv_[i][0])
+ {
+ take = false;
+ for (int j = 0; 0 != validOptions[j]; ++j)
+ {
+ if (this->argv_[i] == ACE_OS::strstr (this->argv_[i], validOptions[j]))
+ {
+ v[c++] = CORBA::string_dup (this->argv_[i]);
+ take = true;
+ break;
+ }
+ }
+ }
+ else if (take)
+ {
+ v[c++] = CORBA::string_dup (this->argv_[i]);
+ }
+ }
+ v[c] = 0;
+ }
+
+void
+Starter::releaseArgs (int c, char ** v)
+ {
+ for (int i = 0; i < c && 0 != v[i]; ++i)
+ {
+ CORBA::string_free (v[i]);
+ v[i] = 0;
+ }
+ delete [] v;
+ }
+
+bool
+Starter::isPossibleOption(const char* opt)
+{
+ const char * validOptions[] =
+ { "node-mgr", "n"
+ , "exec-mgr", "e"
+ , "process-ns", "p"
+ , "create-plan-ns", "c"
+ , "rebind-plan-ns", "r"
+ , "port-indirection", "i"
+ , "gen-object-key", "g"
+ , "log-level", "l"
+ , "em-ior", "k"
+ , "read-plan", "x"
+ , "read-cdr-plan", "d"
+ , "write-cdr-plan", "w"
+ , "plan-uuid", "t"
+ , "dam-ior", "a"
+ , "stop-plan", "q"
+ , 0
+ };
+
+ ACE_CString option = opt;
+ for (int i = 0; 0 != validOptions[i]; ++i)
+ {
+ if ( option == validOptions[i]) return true;
+ }
+ return false;
+}
+
+void
+Starter::configure_logging_backend (void)
+{
+ Logger_Service
+ *clf = ACE_Dynamic_Service<Logger_Service>::instance ("DAnCE_Logger_Backend_Factory");
+ if (clf)
+ {
+ DANCE_DEBUG ((LM_TRACE, DLINFO "Starter::configure_logging_backend - "
+ "Replacing logger backend\n"));
+ ACE_Log_Msg_Backend * backend = clf->get_logger_backend(this->orb_);
+ backend->open(0);
+ ACE_Log_Msg::msg_backend (backend);
+ ACE_Log_Msg * ace = ACE_Log_Msg::instance();
+ ace->clr_flags(ace->flags());
+ ace->set_flags(ACE_Log_Msg::CUSTOM);
+ }
+}
+
+} // DAnCE
+
diff --git a/modules/CIAO/DAnCE/Starter/Starter.h b/modules/CIAO/DAnCE/Starter/Starter.h
new file mode 100644
index 00000000000..4e737b73e4e
--- /dev/null
+++ b/modules/CIAO/DAnCE/Starter/Starter.h
@@ -0,0 +1,73 @@
+// $Id$
+#ifndef STARTER_H_
+#define STARTER_H_
+
+#include "ace/String_Base.h"
+#include "tao/ORB.h"
+#include "tao/Object.h"
+#include "ace/Map_Manager.h"
+#include "ace/Null_Mutex.h"
+
+#include "DAnCE/Logger/Logger_Service.h"
+
+namespace DAnCE
+ {
+
+ class Starter
+ {
+ public:
+ Starter (int argc, ACE_TCHAR* argv[]);
+ ~Starter();
+ void execute();
+ private:
+ struct Node
+ {
+ ACE_CString iorfile_;
+ ACE_CString ior_;
+ CORBA::Object_var obj;
+
+ Node() : obj (CORBA::Object::_nil()) {};
+ };
+
+ auto_ptr<DAnCE::Logger_Service> logger_;
+
+ CORBA::ORB_var orb_;
+ int optLogLevel_;
+ int argc_;
+ ACE_TCHAR** argv_;
+ bool optNS_;
+ ACE_TString optNSFile_;
+ ACE_CString optNSOptions_;
+ ACE_Map_Manager<ACE_CString, Node, ACE_Null_Mutex> nodes_;
+ bool optEM_;
+ ACE_CString optEMFile_;
+ ACE_CString optGenObjKey_;
+ bool optPLB_;
+ bool optPL_;
+
+ void parseArgs (int argc, ACE_TCHAR* argv[]);
+ void usage ();
+ void generateObjectKey (const char * keyargs);
+ void generateObjectKey (const char * node
+ , const char * plan
+ , const char * component
+ , const char * port);
+ void write_IOR (const ACE_TCHAR * ior_file_name, const char* ior);
+
+ void initNaming();
+ CORBA::Object_ptr initNodeManager (const char * node);
+ CORBA::Object_ptr initExecutionManager();
+ void runPlanLauncher();
+ void argCopyForNaming (int & c, char **& v);
+ void argCopyForNode (const char * node, int & c, char **& v);
+ void argCopyForEM (int & c, char **& v);
+ void argCopyForPL (int & c, char **& v);
+ void releaseArgs (int c, char ** v);
+ static bool isPossibleOption(const char* opt);
+
+ void configure_logging_backend (void);
+ };
+
+} // DAnCE
+
+#endif /*STARTER_H_*/
diff --git a/modules/CIAO/DAnCE/Starter/Starter.mpc b/modules/CIAO/DAnCE/Starter/Starter.mpc
new file mode 100644
index 00000000000..6ad554a8956
--- /dev/null
+++ b/modules/CIAO/DAnCE/Starter/Starter.mpc
@@ -0,0 +1,10 @@
+// $Id$
+project(Starter) : taoexe, dance_exe, dance_logger, messaging, naming, iortable, avoids_minimum_corba {
+ requires += dummy_label
+ exename = dance
+ macros += DANCE_BUILD_STARTER_EXE
+ Source_Files {
+ Starter.cpp
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/StaticConfigurator/README b/modules/CIAO/DAnCE/StaticConfigurator/README
new file mode 100644
index 00000000000..e42c1099cfd
--- /dev/null
+++ b/modules/CIAO/DAnCE/StaticConfigurator/README
@@ -0,0 +1,29 @@
+Please see $CIAO_ROOT/docs/static_dance.html for details.
+
+To run the static version of Hello example, do the following,
+
+1. Build ACE+TAO+CIAO statically
+2. Build $CIAO_ROOT/examples/Hello
+3. Generate the static function entrypoints (plan.h)
+ > cd $CIAO_ROOT/examples/Hello/descriptors
+ > $CIAO_ROOT/DAnCE/StaticConfigurator/StaticDAnCEParser -p flattened_deploymentplan_without_ns.cdp
+ > cp plan.h $CIAO_ROOT/DAnCE/StaticConfigurator/
+4. Build the static NodeManager for Hello example
+ > cd $CIAO_ROOT/DAnCE/StaticConfigurator
+ > cp StaticDAnCEApp.cpp.tmpl StaticDAnCEApp.cpp
+ > cp StaticDAnCEApp.mpc.tmpl StaticDAnCEApp.mpc
+ > $ACE_ROOT/bin/mwc.pl
+ > make
+5. Run the static node managers. Note that the ORBEndpoint values should
+ correspond to the ones in $CIAO_ROOT/examples/Hello/descriptors/TestNodeManagerMap.dat
+ > cd $CIAO_ROOT/DAnCE/StaticConfigurator
+ > ./StaticDAnCEApp -ORBEndpoint iiop://localhost:60001 &
+ > ./StaticDAnCEApp -ORBEndpoint iiop://localhost:60002 &
+6. Do the deployment. This is just the same as the non-static version of DAnCE
+ except that we have the NodeManagers already running and need not spawn node
+ managers. To accomplish this, change
+ $CIAO_ROOT/examples/Hello/descriptors/run_test_without_ns.pl
+ to *not* run the node manager daemons and do the following.
+ > cd $CIAO_ROOT/examples/Hello/descriptors
+ > ./run_test_without_ns.pl
+
diff --git a/modules/CIAO/DAnCE/StaticConfigurator/StaticDAnCEApp.cpp.tmpl b/modules/CIAO/DAnCE/StaticConfigurator/StaticDAnCEApp.cpp.tmpl
new file mode 100644
index 00000000000..2753ab41444
--- /dev/null
+++ b/modules/CIAO/DAnCE/StaticConfigurator/StaticDAnCEApp.cpp.tmpl
@@ -0,0 +1,103 @@
+// $Id$
+
+#include "plan.h"
+
+#include "NodeManager/NodeManager_Impl.h"
+
+#include "tao/IORTable/IORTable.h"
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ // Initialize the ORB so that CORBA::Any will work.
+ CORBA::ORB_var orb = CORBA::ORB_init (argc,
+ argv,
+ "");
+
+ try
+ {
+ // Get reference to Root POA.
+ CORBA::Object_var obj =
+ orb->resolve_initial_references ("RootPOA");
+
+ PortableServer::POA_var poa =
+ PortableServer::POA::_narrow (obj.in ());
+
+ // Activate POA manager.
+ PortableServer::POAManager_var mgr = poa->the_POAManager ();
+
+ mgr->activate ();
+
+ int homes_table_size =
+ sizeof (homes_table) / sizeof (HomeAttributes);
+
+ CIAO::HOMECREATOR_FUNCPTR_MAP home_creator_fptr_map;
+ CIAO::HOMESERVANTCREATOR_FUNCPTR_MAP homesvnt_creator_fptr_map;
+ CIAO::Static_Config_EntryPoints_Maps static_config_entrypoints_maps;
+
+ static_config_entrypoints_maps.home_creator_funcptr_map_ =
+ &home_creator_fptr_map;
+
+ static_config_entrypoints_maps.home_servant_creator_funcptr_map_ =
+ &homesvnt_creator_fptr_map;
+
+ for (int i = 0; i < homes_table_size; ++i)
+ {
+ home_creator_fptr_map.bind (homes_table[i].executor_entrypt_,
+ homes_table[i].executor_fptr_);
+
+ homesvnt_creator_fptr_map.bind (homes_table[i].servant_entrypt_,
+ homes_table[i].servant_fptr_);
+ }
+
+ CIAO::Static_NodeManager_Impl *static_node_manager_impl;
+
+ // Create and install the CIAO Daemon servant.
+
+ ACE_DEBUG ((LM_DEBUG, "creating static_node_manager\n"));
+
+ static_node_manager_impl =
+ new CIAO::Static_NodeManager_Impl ("NodeManager",
+ orb.in (),
+ poa.in (),
+ "", //exe location
+ "", //exe options
+ 0, //spawn delay
+ &static_config_entrypoints_maps);
+
+ static_node_manager_impl->init ();
+
+ 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 ()))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR, "Nil IORTable\n"), -1);
+ }
+
+ CIAO::NodeManagerDaemon_var manager =
+ static_node_manager_impl->_this ();
+
+ CORBA::String_var str =
+ orb->object_to_string (manager.in ());
+
+ adapter->bind ("NodeManager", str.in ());
+
+ // Run the main event loop for the ORB.
+ orb->run ();
+
+ poa->destroy (true, true);
+
+ orb->destroy ();
+ }
+ catch (CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Caught CORBA Exception: ");
+ return -1;
+ }
+
+ return 0;
+}
diff --git a/modules/CIAO/DAnCE/StaticConfigurator/StaticDAnCEApp.mpc.tmpl b/modules/CIAO/DAnCE/StaticConfigurator/StaticDAnCEApp.mpc.tmpl
new file mode 100644
index 00000000000..c528ee65695
--- /dev/null
+++ b/modules/CIAO/DAnCE/StaticConfigurator/StaticDAnCEApp.mpc.tmpl
@@ -0,0 +1,20 @@
+// -*- MPC -*-
+// $Id$
+
+project(StaticDAnCEApp): ciao_static_dnc_app, iortable {
+ exename = StaticDAnCEApp
+
+ libs += Hello_Base_DnC_stub
+ libs += Hello_Base_DnC_svnt
+ libs += Receiver_DnC_stub
+ libs += Receiver_DnC_svnt
+ libs += Receiver_DnC_exec
+ libs += Sender_DnC_stub
+ libs += Sender_DnC_svnt
+ libs += Sender_DnC_exec
+
+ Source_Files {
+ StaticDAnCEApp.cpp
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/StaticConfigurator/StaticDAnCEParser.cpp b/modules/CIAO/DAnCE/StaticConfigurator/StaticDAnCEParser.cpp
new file mode 100644
index 00000000000..8fc88a0d379
--- /dev/null
+++ b/modules/CIAO/DAnCE/StaticConfigurator/StaticDAnCEParser.cpp
@@ -0,0 +1,157 @@
+//=============================================================================
+/**
+ * @file StaticDAnCEParser.cpp
+ *
+ * $Id$
+ *
+ * This parser is used in static deployment of CIAO components. This
+ * parser parses a deployment plan and generates a header file plan.h
+ * containing information about the home and servant creation
+ * function entry points. This can be used by a Static_NodeManager to
+ * instantiate instances of homes and servants just like the regular
+ * NodeManager. For more details, see
+ * $CIAO_ROOT/DAnCE/StaticConfigurator/docs/static_dance.html
+ *
+ * @author Venkita Subramonian <venkita@cse.wustl.edu>
+ */
+//=============================================================================
+
+#include "DAnCE/NodeApplicationManager/ImplementationInfo.h"
+#include "ace/OS_NS_stdio.h"
+#include "ace/streams.h"
+#include "ace/Get_Opt.h"
+#include "tao/IORTable/IORTable.h"
+#include "tao/CDR.h"
+#include "Config_Handlers/XML_File_Intf.h"
+
+static void
+usage (const ACE_TCHAR* program)
+{
+ DANCE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Usage: %s -p <package URI>\n"),
+ program));
+}
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ // top level package URL
+ char* package_url = 0;
+
+ // Initialize the ORB so that CORBA::Any will work
+ //
+ CORBA::ORB_var orb =
+ CORBA::ORB_init (argc, argv);
+
+ ACE_Get_Opt get_opt (argc, argv, ACE_TEXT ("p:"));
+ int c;
+
+ while ((c = get_opt ()) != EOF)
+ {
+ switch (c)
+ {
+ case 'p':
+ package_url = get_opt.opt_arg ();
+ break;
+
+ default:
+ usage(argv[0]);
+ return -1;
+ }
+ }
+
+ if (package_url == 0) {
+ usage(argv[0]);
+ return -1;
+ }
+
+ CIAO::Config_Handlers::XML_File_Intf intf (package_url);
+
+ ::Deployment::DeploymentPlan_var plan =
+ intf.get_plan ();
+
+ ::Deployment::ComponentPlans dummy;
+ dummy.length (0);
+
+ CIAO::NodeImplementationInfoHandler handler (plan, dummy);
+
+ Deployment::NodeImplementationInfo_var node_impl_info (handler.node_impl_info ());
+
+ if (node_impl_info.ptr() == 0)
+ {
+ DANCE_ERROR_RETURN ((LM_ERROR,
+ "DAnCE (%P|%t) StaticParser -"
+ "Failed to create Node Implementation Infos!\n"), 1);
+
+ }
+
+ Deployment::ContainerImplementationInfos& impl_infos = node_impl_info->impl_infos;
+
+ FILE* fp = ACE_OS::fopen ("plan.h", "w");
+
+ CORBA::ULong i,j,num_containers,num_components;
+ num_containers = impl_infos.length ();
+ for (i = 0; i < num_containers; ++i)
+ {
+ num_components = impl_infos[i].impl_infos.length ();
+ for (j = 0; j < num_components; ++j)
+ {
+ DANCE_DEBUG ((LM_DEBUG, "The info for installation: \n\t%s\n\t%s\n\t%s\n\t%s\n\t%s\n",
+ impl_infos[i].impl_infos[j].component_instance_name.in (),
+ impl_infos[i].impl_infos[j].executor_dll.in (),
+ impl_infos[i].impl_infos[j].executor_entrypt.in (),
+ impl_infos[i].impl_infos[j].servant_dll.in (),
+ impl_infos[i].impl_infos[j].servant_entrypt.in () ));
+ ACE_OS::fprintf (fp,
+ "extern \"C\" ::Components::HomeExecutorBase_ptr %s (void);\n",
+ impl_infos[i].impl_infos[j].executor_entrypt.in ());
+ ACE_OS::fprintf (fp,
+ "extern \"C\" ::PortableServer::Servant %s\n",
+ impl_infos[i].impl_infos[j].servant_entrypt.in ());
+ ACE_OS::fprintf (fp,
+ "\t\t(::Components::HomeExecutorBase_ptr p,\n");
+ ACE_OS::fprintf (fp,
+ "\t\t::CIAO::Session_Container *c,\n");
+ ACE_OS::fprintf (fp,
+ "\t\tconst char*\n");
+ ACE_OS::fprintf (fp,
+ "\t\t);\n");
+ }
+ }
+
+ ACE_OS::fprintf (fp, "struct HomeAttributes\n");
+ ACE_OS::fprintf (fp, "{\n");
+ ACE_OS::fprintf (fp, " char const * component_instance_name_;\n");
+ ACE_OS::fprintf (fp, " /// Specify the entrypoint to component executor DLL.\n");
+ ACE_OS::fprintf (fp, " char const * executor_entrypt_;\n");
+ ACE_OS::fprintf (fp, " ::CIAO::HomeFactory executor_fptr_;\n");
+ ACE_OS::fprintf (fp, " /// Specify the entrypoint to component servant DLL.\n");
+ ACE_OS::fprintf (fp, " char const * servant_entrypt_;\n");
+ ACE_OS::fprintf (fp, " ::CIAO::ServantFactory servant_fptr_;\n");
+ ACE_OS::fprintf (fp, "};\n");
+ ACE_OS::fprintf (fp, "/// Homes\n");
+ ACE_OS::fprintf (fp, "HomeAttributes homes_table[]=\n");
+ ACE_OS::fprintf (fp, "{\n");
+
+ num_containers = impl_infos.length ();
+ for (i = 0; i < num_containers; ++i)
+ {
+ num_components = impl_infos[i].impl_infos.length ();
+ for (j = 0; j < num_components; ++j)
+ {
+ ACE_OS::fprintf (fp, "\t{\"%s\", \"%s\", %s, \"%s\", %s}",
+ impl_infos[i].impl_infos[j].component_instance_name.in (),
+ impl_infos[i].impl_infos[j].executor_entrypt.in (),
+ impl_infos[i].impl_infos[j].executor_entrypt.in (),
+ impl_infos[i].impl_infos[j].servant_entrypt.in (),
+ impl_infos[i].impl_infos[j].servant_entrypt.in () );
+ if (!(i == num_containers -1 && j == num_components-1))
+ ACE_OS::fprintf (fp, ",\n");
+ }
+ }
+ ACE_OS::fprintf (fp, "};\n\n");
+
+ ACE_OS::fclose (fp);
+
+ return 0;
+}
diff --git a/modules/CIAO/DAnCE/StaticConfigurator/StaticDAnCEParser.mpc b/modules/CIAO/DAnCE/StaticConfigurator/StaticDAnCEParser.mpc
new file mode 100644
index 00000000000..3ebe3271730
--- /dev/null
+++ b/modules/CIAO/DAnCE/StaticConfigurator/StaticDAnCEParser.mpc
@@ -0,0 +1,17 @@
+// -*- MPC -*-
+// $Id$
+
+//project(StaticDAnCEParser): ciao_component_dnc \
+// , taoexe \
+// , ciao_config_handlers \
+// , ciao_domainapplicationmanager_dnc \
+// , iortable \
+// , ciao_server_dnc \
+// , ciao_nodeapplicationmanager \
+//{
+// exename = StaticDAnCEParser
+//
+// Source_Files {
+// StaticDAnCEParser.cpp
+// }
+//}
diff --git a/modules/CIAO/DAnCE/TargetManager/CmpClient.cpp b/modules/CIAO/DAnCE/TargetManager/CmpClient.cpp
new file mode 100644
index 00000000000..8317cd05e97
--- /dev/null
+++ b/modules/CIAO/DAnCE/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 "tools/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 ((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 ((LM_ERROR ,"Error:TargetManager:CORBA::NO_IMPLEMENT thrown\n"));
+ }
+ catch(CORBA::Exception &)
+ {
+ DANCE_ERROR ((LM_ERROR ,"Error:TargetManager:CORBA Generic Exception\n"));
+ DANCE_ERROR ((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 ((LM_ERROR, "Error:TargetManager:CORBA::NO_IMPLEMENT thrown\n"));
+ }
+ catch (const ::Deployment::ResourceCommitmentFailure& e)
+ {
+ resource_available = 0;
+ DANCE_ERROR ((LM_ERROR, "TargetManager commitResources ResourceCommitmentFailure Exception\n"));
+
+ DANCE_ERROR ((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 ((LM_ERROR, "Error:TargetManager:commitResources Exception\n"));
+ DANCE_ERROR ((LM_ERROR, "Error:TargetManager:CORBA Generic Exception\n"));
+ DANCE_ERROR ((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 ((LM_ERROR, "Error:TargetManager:CORBA::NO_IMPLEMENT thrown\n"));
+ }
+ catch (const Deployment::ResourceCommitmentFailure&)
+ {
+ DANCE_ERROR ((LM_ERROR, "Error:TargetManager releaseResources ResourceNotAvailable Exception\n"));
+ }
+ catch(const CORBA::Exception &)
+ {
+ DANCE_ERROR ((LM_ERROR, "Error:TargetManager:releaseResources Exception\n"));
+ DANCE_ERROR ((LM_ERROR, "Error:TargetManager:CORBA Generic Exception\n"));
+ DANCE_ERROR ((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 ((LM_ERROR, "Error:TargetManager:CORBA::NO_IMPLEMENT thrown\n"));
+ }
+ catch(CORBA::Exception &)
+ {
+ DANCE_ERROR ((LM_ERROR, "Error:TargetManager:CORBA Generic Exception\n"));
+ DANCE_ERROR ((LM_ERROR, "Error:TargetManager:Exception in UpdateDomain call"));
+ }
+ }
+ else
+ {
+ try
+ {
+ targetI->updateDomain (elements , updated, ::Deployment::Delete);
+ }
+ catch(CORBA::NO_IMPLEMENT &)
+ {
+ DANCE_ERROR ((LM_ERROR, "Error:TargetManager:CORBA::NO_IMPLEMENT thrown\n"));
+ }
+ catch(CORBA::Exception &)
+ {
+ DANCE_ERROR ((LM_ERROR, "Error:TargetManager:CORBA Generic Exception\n"));
+ DANCE_ERROR ((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 ((LM_ERROR, "Error:TargetManager:CORBA::NO_IMPLEMENT thrown\n"));
+ }
+ catch(CORBA::Exception &)
+ {
+ DANCE_ERROR ((LM_ERROR ,"Error:TargetManager:CORBA Generic Exception\n"));
+ DANCE_ERROR ((LM_ERROR, "Error:TargetManager:Exception in TargetManager call\n"));
+ }
+
+ // Finally destroy the ORB
+ orb->destroy ();
+ }
+ catch (CORBA::Exception &)
+ {
+ DANCE_ERROR ((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/TargetManager/DAnCE_TargetManagerDaemon.idl b/modules/CIAO/DAnCE/TargetManager/DAnCE_TargetManagerDaemon.idl
new file mode 100644
index 00000000000..fef488a487b
--- /dev/null
+++ b/modules/CIAO/DAnCE/TargetManager/DAnCE_TargetManagerDaemon.idl
@@ -0,0 +1,12 @@
+// $Id$
+
+#include "DAnCE/Deployment/Deployment_TargetManager.idl"
+
+module DAnCE
+{
+ interface TargetManagerDaemon : Deployment::TargetManager
+ {
+ oneway void shutdown ();
+ };
+};
+
diff --git a/modules/CIAO/DAnCE/TargetManager/DomainDataManager.cpp b/modules/CIAO/DAnCE/TargetManager/DomainDataManager.cpp
new file mode 100644
index 00000000000..e76f270106f
--- /dev/null
+++ b/modules/CIAO/DAnCE/TargetManager/DomainDataManager.cpp
@@ -0,0 +1,688 @@
+// $Id$
+#include "DomainDataManager.h"
+
+#include "tools/Config_Handlers/DD_Handler.h"
+#include "tools/Config_Handlers/DnC_Dump.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 ((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 ((LM_TRACE, DLINFO "DAnCE::DomainDataManager::init - "
+ "Initial domain successfully parsed\n"));
+#ifdef GEN_OSTREAM_OPS
+ std::ostringstream _stream;
+ _stream << *dmn << std::endl;
+
+ DANCE_DEBUG ((LM_TRACE, DLINFO "DAnCE::DomainDataManager::init - "
+ "Contents of Domain:%s\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 ((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 ((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 ((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 ((LM_ERROR, "Failed to extract required amount\n"));
+
+ CORBA::Long available_d;
+
+ if ((available.value >>= available_d) == false)
+ DANCE_ERROR ((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;
+ }
+}
+
+void DAnCE::DomainDataManager::stop_monitors ()
+{
+ DANCE_TRACE ("DAnCE::DomainDataManager::stop_monitors");
+
+ 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 (const CORBA::Exception&)
+ {
+ DANCE_ERROR ((LM_ERROR, "DANCE::TM (%P|%t) DomainDataManager.cpp: "
+ "Error in get Node Manager from Deployment Config %s\n",
+ initial_domain_.node[i].name.in ()));
+ continue;
+ }
+
+ if (!CORBA::is_nil (node_manager.in ()))
+ {
+ try
+ {
+ node_manager->leaveDomain ();
+ }
+ catch (CORBA::Exception& ex)
+ {
+ DANCE_ERROR ((LM_ERROR , "TM::Error in calling Leave Domain\n"));
+ ex._tao_print_exception (
+ "Exception caught in ""DomainDataManager::leaveDomain");
+ }
+ }
+ }
+ return;
+
+}
+
+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 ((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..de4170f6bbd
--- /dev/null
+++ b/modules/CIAO/DAnCE/TargetManager/DomainDataManager.h
@@ -0,0 +1,258 @@
+// $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 "TargetManagerC.h"
+#include "Deployment/Deployment_TargetDataC.h"
+#include "DAnCE/DomainApplicationManager/Node_Locator.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 ();
+
+ /**
+ * @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 ();
+
+ /**
+ * @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
+ * @param plan ::Deployment::DeploymentPlan the plan whose
+ * resources are to be released
+ */
+ void releaseResources (const ::Deployment::ResourceCommitmentManager_ptr manager);
+
+ /**
+ * The node manager in turn stops the monitor
+ * @brief The function makes a call on the leaveDomain on the
+ * NodeManager
+ */
+ void stop_monitors ();
+
+ /**
+ * @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:
+
+ /**
+ * @brief It will read the initial Domain data from
+ * XML files.
+ */
+ int readin_domain_data ();
+
+ /**
+ * @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);
+
+
+ /// The different actiona that can take place
+ enum Action {commit , release};
+
+ /**
+ * @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 ();
+
+ /**
+ * @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/DomainEvents.idl b/modules/CIAO/DAnCE/TargetManager/DomainEvents.idl
new file mode 100644
index 00000000000..77624dbbd23
--- /dev/null
+++ b/modules/CIAO/DAnCE/TargetManager/DomainEvents.idl
@@ -0,0 +1,25 @@
+/**
+ * @file DomainEvents.idl
+ * @brief Contains Events in the Domain
+ *
+ * @author Nilabja R <nilabjar@dre.vanderbilt.edu>
+ *
+ * $Id$
+ */
+
+#ifndef DOMAIN_CHANGE_IDL
+#define DOMAIN_CHANGE_IDL
+
+#include "DAnCE/Deployment/Deployment_TargetManager.idl"
+#include "ccm/CCM_Events.idl"
+
+module CIAO
+{
+ eventtype Domain_Changed_Event
+ {
+ public ::Deployment::Domain changes;
+ public ::Deployment::DomainUpdateKind change_kind;
+ };
+};
+
+#endif
diff --git a/modules/CIAO/DAnCE/TargetManager/ResourceCommitmentManager.cpp b/modules/CIAO/DAnCE/TargetManager/ResourceCommitmentManager.cpp
new file mode 100644
index 00000000000..1b43b6e22bd
--- /dev/null
+++ b/modules/CIAO/DAnCE/TargetManager/ResourceCommitmentManager.cpp
@@ -0,0 +1,61 @@
+// $Id$
+//
+#include "DomainDataManager.h"
+#include "ResourceCommitmentManager.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+// Implementation skeleton constructor
+DAnCE::ResourceCommitmentManager_i::ResourceCommitmentManager_i (void)
+{
+ DANCE_TRACE ("DAnCE::ResourceCommitmentManager_i");
+}
+
+// Implementation skeleton destructor
+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
+ this->add_to_commited_resource (resources);
+ return;
+}
+
+void DAnCE::ResourceCommitmentManager_i::releaseResources (
+ const ::Deployment::ResourceAllocations & resources)
+{
+ DANCE_TRACE ("DAnCE::ResourceCommitmentManager_i::releaseResources");
+
+ ::Deployment::ResourceAllocations res;
+
+ // if the resources set is null , use the already allocated resources ..
+ if (resources.length () == 0)
+ res = this->resources_;
+ else
+ res = resources;
+
+ DOMAIN_DATA_MANAGER->releaseResourceAllocation (res);
+ return;
+}
+
+int DAnCE::ResourceCommitmentManager_i::add_to_commited_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];
+
+ return 0;
+}
diff --git a/modules/CIAO/DAnCE/TargetManager/ResourceCommitmentManager.h b/modules/CIAO/DAnCE/TargetManager/ResourceCommitmentManager.h
new file mode 100644
index 00000000000..36065adfa5a
--- /dev/null
+++ b/modules/CIAO/DAnCE/TargetManager/ResourceCommitmentManager.h
@@ -0,0 +1,64 @@
+// $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);
+
+ /**
+ * @function commitResources
+ * @brief Commits the resources
+ *
+ * @description 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:
+ /**
+ * @function add_to_commited_resource
+ * @brief This function adds the res to already commited resources.
+ * This is to be called from within commitResources
+ */
+ int add_to_commited_resource (::Deployment::ResourceAllocations res);
+
+ /// The commited resource
+ ::Deployment::ResourceAllocations resources_;
+ };
+
+}
+
+#endif /* DEPLOYMENT_RESOURCECOMMITMENTMANAGERI_H_ */
diff --git a/modules/CIAO/DAnCE/TargetManager/TM_Client.mpc b/modules/CIAO/DAnCE/TargetManager/TM_Client.mpc
new file mode 100644
index 00000000000..97b3b760ce9
--- /dev/null
+++ b/modules/CIAO/DAnCE/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, ciao_targetmanager_stub, ciao_config_handlers {
+ requires += dummy_label
+ IDL_Files {
+ }
+
+ Source_Files {
+ CmpClient.cpp
+ }
+
+ Header_Files {
+ }
+
+ Inline_Files {
+ }
+
+ Template_Files {
+ }
+}
diff --git a/modules/CIAO/DAnCE/TargetManager/TargetManager.idl b/modules/CIAO/DAnCE/TargetManager/TargetManager.idl
new file mode 100644
index 00000000000..adc97215394
--- /dev/null
+++ b/modules/CIAO/DAnCE/TargetManager/TargetManager.idl
@@ -0,0 +1,32 @@
+// $Id$
+
+/**
+ * @file TargetManager.idl
+ * @brief TargetManager interface defintion
+ *
+ * @author Nilabja R <nilabjar@dre.vanderbilt.edu>
+ */
+
+#ifndef TARGETMGR_IDL
+#define TARGETMGR_IDL
+
+#include "ccm/Components.idl"
+#include "DAnCE/Deployment/Deployment_PlanError.idl"
+#include "DAnCE/TargetManager/TargetManagerExt.idl"
+#include "DAnCE/TargetManager/DomainEvents.idl"
+
+module CIAO
+{
+ component TargetManagerImpl
+ {
+ provides ::Deployment::TargetManager targetMgr;
+
+ publishes Domain_Changed_Event changes;
+ };
+
+ home TargetManagerHome manages TargetManagerImpl
+ {
+ };
+};
+
+#endif
diff --git a/modules/CIAO/DAnCE/TargetManager/TargetManager.mpc b/modules/CIAO/DAnCE/TargetManager/TargetManager.mpc
new file mode 100644
index 00000000000..d29e929670c
--- /dev/null
+++ b/modules/CIAO/DAnCE/TargetManager/TargetManager.mpc
@@ -0,0 +1,71 @@
+// $Id$
+
+project (DAnCE_TargetManagerDaemon_IDL) : ciaoidldefaults {
+ custom_only = 1
+
+ idlflags += -Gxhst -Gxhsk
+ idlflags += -Wb,stub_export_macro=TARGETMANAGERDAEMON_STUB_Export \
+ -Wb,stub_export_include=TargetManagerDaemon_stub_export.h \
+ -Wb,skel_export_macro=TARGETMANAGERDAEMON_SVNT_Export \
+ -Wb,skel_export_include=TargetManagerDaemon_svnt_export.h
+
+ IDL_Files {
+ DAnCE_TargetManagerDaemon.idl
+ }
+}
+
+project(DAnCE_TargetManagerDaemon_stub) : dance_lib, dance_targetmanager_stub {
+ sharedname = DAnCE_TargetManagerDaemon_stub
+ dynamicflags = TARGETMANAGERDAEMON_STUB_BUILD_DLL
+ after += DAnCE_TargetManagerDaemon_IDL
+ IDL_Files {
+ }
+
+ Source_Files {
+ DAnCE_TargetManagerDaemonC.cpp
+ }
+}
+
+project(DAnCE_TargetManager_Impl) : dance_lib, ciao_config_handlers, naming, iortable, utils, dance_nodemanager_stub, dance_targetmanager_skel {
+ sharedname = DAnCE_TargetManager_Impl
+ libs += DAnCE_TargetManagerDaemon_stub DAnCE_TargetManagerDaemon_svnt
+ after += DAnCE_TargetManagerDaemon_stub DAnCE_TargetManagerDaemon_svnt
+ dynamicflags = DANCE_TARGETMANAGER_IMPL_BUILD_DLL TARGETMANAGER_MODULE_BUILD_DLL
+
+ Source_Files {
+ DomainDataManager.cpp
+ ResourceCommitmentManager.cpp
+ TargetManager_Impl.cpp
+ Target_Manager_Module.cpp
+ }
+
+ IDL_Files {
+ }
+}
+
+project(DAnCE_TargetManagerDaemon_svnt) : dance_lib, dance_deployment_svnt, \
+ dance_targetmanager_stub, dance_targetmanager_skel, ciao_config_handlers {
+ sharedname = DAnCE_TargetManagerDaemon_svnt
+
+ libs += DAnCE_TargetManagerDaemon_stub
+ after += DAnCE_TargetManagerDaemon_stub
+
+ dynamicflags = TARGETMANAGERDAEMON_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ DAnCE_TargetManagerDaemonS.cpp
+ }
+}
+
+project (DAnCE_TargetManager_Exec) : iortable, utils, naming, dance_logger, dance_tm_daemon, dance_nodemanager_stub, dance_targetmanager, dance_exe {
+ exename = dance_target_manager
+ IDL_Files {
+ }
+
+ Source_Files {
+ Target_Manager_Exec.cpp
+ }
+}
diff --git a/modules/CIAO/DAnCE/TargetManager/TargetManagerExt.idl b/modules/CIAO/DAnCE/TargetManager/TargetManagerExt.idl
new file mode 100644
index 00000000000..934314b4613
--- /dev/null
+++ b/modules/CIAO/DAnCE/TargetManager/TargetManagerExt.idl
@@ -0,0 +1,84 @@
+// $Id$
+
+/**
+ * @file TargetManagerExt.idl
+ *
+ * @brief The Extensions to the TM interface for ARMS demo
+ *
+ * @author Nilabja R <nilabjar@dre.vanderbilt.edu>
+ * @author Nishanth Shankaran <nshankar@dre.vanderbilt.edu>
+ *
+ * This file declares a interface which will be implemented as
+ * a facet by the TargetManager component
+ */
+
+#include "DAnCE/Interfaces/NodeManagerDaemon.idl"
+
+module CIAO
+{
+ /**
+ * @struct Cpu_Info
+ * @brief Consists of individual host-cpu info
+ */
+ struct Host_Info
+ {
+ string hostname;
+ double cpu_util;
+ };
+
+ /// The sequence of CPU infos
+ typedef sequence<Host_Info> Host_Infos;
+
+ /**
+ * @struct Component_Cpu_Util
+ * @brief Contains a component CPU Util
+ */
+ struct Component_Info
+ {
+ string component_name;
+ double cpu_util;
+ };
+
+ /// The sequence of component cpu utilization
+ typedef sequence <Component_Info> Component_Infos;
+
+
+ /**
+ * @struct Host_NodeManager
+ * @brief Contains the node manager to host reference
+ */
+ struct Host_NodeManager
+ {
+ /// host name
+ string host_;
+
+ /// the node manager IOR
+ ::Deployment::NodeManager node_mgr_;
+ };
+
+ /// Sequence of NodeManager.
+ typedef sequence <Host_NodeManager> Host_NodeManager_seq;
+
+ /**
+ * @interface TargetManagerExt
+ * @brief The Target Manager Extension
+ *
+ * Contains the interface used by the RACE
+ * controller.
+ */
+ interface TargetManagerExt
+ {
+ /// Returns the pid in which a component runs
+ long get_pid (in string component_uuid);
+
+ /// Returns the cpu usage for each host in the
+ /// last cycle
+ Host_Infos get_host_cpu ();
+
+ /// Return the detail of the components
+ Component_Infos get_component_cpu ();
+
+ /// Returns the OR of the Node managers
+ Host_NodeManager_seq get_all_node_managers ();
+ };
+};
diff --git a/modules/CIAO/DAnCE/TargetManager/TargetManager_Impl.cpp b/modules/CIAO/DAnCE/TargetManager/TargetManager_Impl.cpp
new file mode 100644
index 00000000000..204c582be01
--- /dev/null
+++ b/modules/CIAO/DAnCE/TargetManager/TargetManager_Impl.cpp
@@ -0,0 +1,64 @@
+// -*- C++ -*-
+//
+// $Id$
+
+#include "TargetManager_Impl.h"
+#include "DomainDataManager.h"
+
+namespace DAnCE
+{
+// Implementation skeleton constructor
+TargetManagerDaemon_i::TargetManagerDaemon_i (CORBA::ORB_ptr orb)
+ : orb_ (::CORBA::ORB::_duplicate (orb))
+{
+}
+
+// Implementation skeleton destructor
+TargetManagerDaemon_i::~TargetManagerDaemon_i (void)
+{
+}
+
+void TargetManagerDaemon_i::init (const ACE_TCHAR *file)
+{
+ DAnCE::DOMAIN_DATA_MANAGER->init (this->orb_.in (),
+ this->_this (),
+ file);
+}
+
+void TargetManagerDaemon_i::shutdown (void)
+{
+ // Add your implementation here
+}
+
+::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..9987f21509d
--- /dev/null
+++ b/modules/CIAO/DAnCE/TargetManager/TargetManager_Impl.h
@@ -0,0 +1,61 @@
+// -*- C++ -*-
+//
+// $Id$
+
+
+#ifndef TARGETMANAGERDAEMONI_H_
+#define TARGETMANAGERDAEMONI_H_
+
+#include "DAnCE_TargetManagerDaemonS.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "TargetManager_Impl_export.h"
+
+namespace DAnCE
+{
+class DAnCE_TargetManager_Impl_Export TargetManagerDaemon_i
+ : public virtual POA_DAnCE::TargetManagerDaemon
+{
+public:
+ // Constructor
+ TargetManagerDaemon_i (CORBA::ORB_ptr orb);
+
+ // Destructor
+ virtual ~TargetManagerDaemon_i (void);
+
+ void init (const ACE_TCHAR *file);
+
+ virtual
+ void shutdown (void);
+
+ 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/TargetManager_Impl_export.h b/modules/CIAO/DAnCE/TargetManager/TargetManager_Impl_export.h
new file mode 100644
index 00000000000..ab728ccc8bd
--- /dev/null
+++ b/modules/CIAO/DAnCE/TargetManager/TargetManager_Impl_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl DAnCE_TargetManager_Impl
+// ------------------------------
+#ifndef DANCE_TARGETMANAGER_IMPL_EXPORT_H
+#define DANCE_TARGETMANAGER_IMPL_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (DANCE_TARGETMANAGER_IMPL_HAS_DLL)
+# define DANCE_TARGETMANAGER_IMPL_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && DANCE_TARGETMANAGER_IMPL_HAS_DLL */
+
+#if !defined (DANCE_TARGETMANAGER_IMPL_HAS_DLL)
+# define DANCE_TARGETMANAGER_IMPL_HAS_DLL 1
+#endif /* ! DANCE_TARGETMANAGER_IMPL_HAS_DLL */
+
+#if defined (DANCE_TARGETMANAGER_IMPL_HAS_DLL) && (DANCE_TARGETMANAGER_IMPL_HAS_DLL == 1)
+# if defined (DANCE_TARGETMANAGER_IMPL_BUILD_DLL)
+# define DAnCE_TargetManager_Impl_Export ACE_Proper_Export_Flag
+# define DANCE_TARGETMANAGER_IMPL_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define DANCE_TARGETMANAGER_IMPL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* DANCE_TARGETMANAGER_IMPL_BUILD_DLL */
+# define DAnCE_TargetManager_Impl_Export ACE_Proper_Import_Flag
+# define DANCE_TARGETMANAGER_IMPL_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define DANCE_TARGETMANAGER_IMPL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* DANCE_TARGETMANAGER_IMPL_BUILD_DLL */
+#else /* DANCE_TARGETMANAGER_IMPL_HAS_DLL == 1 */
+# define DAnCE_TargetManager_Impl_Export
+# define DANCE_TARGETMANAGER_IMPL_SINGLETON_DECLARATION(T)
+# define DANCE_TARGETMANAGER_IMPL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* DANCE_TARGETMANAGER_IMPL_HAS_DLL == 1 */
+
+// Set DANCE_TARGETMANAGER_IMPL_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (DANCE_TARGETMANAGER_IMPL_NTRACE)
+# if (ACE_NTRACE == 1)
+# define DANCE_TARGETMANAGER_IMPL_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define DANCE_TARGETMANAGER_IMPL_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !DANCE_TARGETMANAGER_IMPL_NTRACE */
+
+#if (DANCE_TARGETMANAGER_IMPL_NTRACE == 1)
+# define DANCE_TARGETMANAGER_IMPL_TRACE(X)
+#else /* (DANCE_TARGETMANAGER_IMPL_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define DANCE_TARGETMANAGER_IMPL_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (DANCE_TARGETMANAGER_IMPL_NTRACE == 1) */
+
+#endif /* DANCE_TARGETMANAGER_IMPL_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/DAnCE/TargetManager/TargetManager_exec.cpp b/modules/CIAO/DAnCE/TargetManager/TargetManager_exec.cpp
new file mode 100644
index 00000000000..59b6e9453c2
--- /dev/null
+++ b/modules/CIAO/DAnCE/TargetManager/TargetManager_exec.cpp
@@ -0,0 +1,251 @@
+// $Id$
+#include "TargetManager_exec.h"
+#include "tools/Config_Handlers/DD_Handler.h"
+#include "tools/Config_Handlers/DnC_Dump.h"
+
+#include "DomainEventsC.h"
+
+#include "ResourceCommitmentManager.h"
+
+namespace CIAO_CIAO_TargetManagerImpl_Impl
+{
+ //==================================================================
+ // Facet Executor Implementation Class: TargetManager_exec_i
+ //==================================================================
+
+ TargetManager_exec_i::
+ TargetManager_exec_i (TargetManagerImpl_exec_i* exec ,
+ CORBA::ORB_ptr orb)
+ : exec_ (exec),
+ orb_ (::CORBA::ORB::_duplicate (orb))
+ {
+ // The DomainDataManager created here ...
+
+ // get its own obj ref , then call
+ ::Deployment::TargetManager_var target = this->exec_->get_targetMgr ();
+
+ // Create Domain Data here
+
+ CIAO::DOMAIN_DATA_MANAGER->init (orb_.in (), target.in ());
+ }
+
+ TargetManager_exec_i::~TargetManager_exec_i (void)
+ {
+ }
+
+ // Operations from ::Deployment::TargetManager
+
+ ::Deployment::Domain *
+ TargetManager_exec_i::getAllResources ()
+ {
+ return CIAO::DOMAIN_DATA_MANAGER->get_initial_domain ();
+ }
+
+ ::Deployment::Domain *
+ TargetManager_exec_i::getAvailableResources ()
+ {
+ return CIAO::DOMAIN_DATA_MANAGER->get_current_domain ();
+ }
+
+ ::Deployment::ResourceCommitmentManager_ptr
+ TargetManager_exec_i::commitResources (
+ const ::Deployment::ResourceAllocations & resources)
+ {
+ return CIAO::DOMAIN_DATA_MANAGER->commitResources (resources);
+ }
+
+ void
+ TargetManager_exec_i::releaseResources (
+ ::Deployment::ResourceCommitmentManager_ptr manager)
+ {
+ return CIAO::DOMAIN_DATA_MANAGER->releaseResources (manager);
+ }
+
+ void
+ TargetManager_exec_i::updateDomain (
+ const ::CORBA::StringSeq & elements ,
+ const ::Deployment::Domain & domainSubset ,
+ ::Deployment::DomainUpdateKind updateKind)
+ {
+ // Your code here.
+ CIAO::DOMAIN_DATA_MANAGER->update_domain (
+ elements,
+ domainSubset,
+ updateKind);
+
+ // here tell the planner about the changes
+
+ // first get the node names which have failed ...
+ // assuming nodes to only fail , for now
+
+ if (updateKind == ::Deployment::Delete ||
+ updateKind == ::Deployment::Add)
+ {
+ CIAO::Domain_Changed_Event_var changed_event =
+ new OBV_CIAO::Domain_Changed_Event ();
+
+ ::Deployment::Domain_var temp_domain =
+ new ::Deployment::Domain (domainSubset);
+
+ changed_event->changes (temp_domain);
+ changed_event->change_kind (updateKind);
+ this->exec_->context_->push_changes (changed_event);
+ }
+
+ }
+
+ ::Deployment::ResourceCommitmentManager_ptr
+ TargetManager_exec_i::createResourceCommitment (
+ const ::Deployment::ResourceAllocations& manager)
+ {
+
+ CIAO::ResourceCommitmentManager_i *commit_servant =
+ new CIAO::ResourceCommitmentManager_i ();
+
+ // Standard owner transfer mechanisms.
+ //
+ PortableServer::ServantBase_var safe_daemon (commit_servant);
+
+ commit_servant->commitResources (manager);
+
+ Deployment::ResourceCommitmentManager_var mgrv =
+ commit_servant->_this ();
+
+ return mgrv._retn ();
+ }
+
+ void
+ TargetManager_exec_i::destroyResourceCommitment (
+ ::Deployment::ResourceCommitmentManager_ptr manager)
+ {
+ ::Deployment::ResourceAllocations res;
+ res.length (0);
+ manager->releaseResources (res);
+ return;
+ }
+ //==================================================================
+ // Component Executor Implementation Class: TargetManagerImpl_exec_i
+ //==================================================================
+
+ TargetManagerImpl_exec_i::TargetManagerImpl_exec_i (void)
+ : exec_object_ (0)
+ {
+ }
+
+ TargetManagerImpl_exec_i::~TargetManagerImpl_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ ::Deployment::CCM_TargetManager_ptr
+ TargetManagerImpl_exec_i::get_targetMgr ()
+ {
+ // Your code here.
+
+ if (CORBA::is_nil (this->exec_object_.in ()))
+ {
+ this->exec_object_ = new TargetManager_exec_i(this,
+ context_->_get_orb());
+ }
+
+ return ::Deployment::CCM_TargetManager::_duplicate (this->exec_object_.in ());
+ }
+
+ // Operations from Components::SessionComponent
+
+ void
+ TargetManagerImpl_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ = ::CIAO::CCM_TargetManagerImpl_Context::_narrow (ctx);
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ TargetManagerImpl_exec_i::configuration_complete ()
+ {
+ // Your code here.
+ }
+
+ void
+ TargetManagerImpl_exec_i::ccm_activate ()
+ {
+ // Your code here.
+ this->get_targetMgr ();
+ }
+
+ void
+ TargetManagerImpl_exec_i::ccm_passivate ()
+ {
+ // Your code here.
+ }
+
+ void
+ TargetManagerImpl_exec_i::ccm_remove ()
+ {
+ // Your code here.
+
+ //CIAO::DomainDataManager::get_data_manager ()->stop_monitors ();
+
+ return;
+ }
+
+
+ //==================================================================
+ // Home Executor Implementation Class: TargetManagerHome_exec_i
+ //==================================================================
+
+ TargetManagerHome_exec_i::TargetManagerHome_exec_i (void)
+ {
+ }
+
+ TargetManagerHome_exec_i::~TargetManagerHome_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ TargetManagerHome_exec_i::create ()
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ TargetManagerImpl_exec_i,
+ CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" TARGETMANAGER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_CIAO_TargetManagerHome_Impl (void)
+ {
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ TargetManagerHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
diff --git a/modules/CIAO/DAnCE/TargetManager/TargetManager_exec.h b/modules/CIAO/DAnCE/TargetManager/TargetManager_exec.h
new file mode 100644
index 00000000000..cc3190d1427
--- /dev/null
+++ b/modules/CIAO/DAnCE/TargetManager/TargetManager_exec.h
@@ -0,0 +1,140 @@
+// $Id$
+//===============================================================
+/**
+ * @file TargetManager_exec.h
+ *
+ * @brief TargetManager Executor code
+ *
+ * @author Nilabja Roy nilabjar@dre.vanderbilt.edu
+ */
+//===============================================================
+
+#ifndef CIAO_TARGETMANAGER_EXEC_H
+#define CIAO_TARGETMANAGER_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "TargetManager_svnt.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "TargetManager_exec_export.h"
+#include "tao/LocalObject.h"
+#include "DomainDataManager.h"
+#include "TargetManagerEC.h"
+
+/**
+ * TargetManager Executor namespace
+ */
+namespace CIAO_CIAO_TargetManagerImpl_Impl
+{
+ class TARGETMANAGER_EXEC_Export TargetManagerImpl_exec_i
+ : public virtual TargetManagerImpl_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ TargetManagerImpl_exec_i (void);
+ virtual ~TargetManagerImpl_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ virtual ::Deployment::CCM_TargetManager_ptr
+ get_targetMgr ();
+
+ // Operations from Components::SessionComponent
+
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx);
+
+ virtual void ccm_activate ();
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ virtual void configuration_complete ();
+
+ public:
+ /// The service context pointer
+ ::CIAO::CCM_TargetManagerImpl_Context_var context_;
+
+ /// The exec Object
+ ::Deployment::CCM_TargetManager_var exec_object_;
+ };
+
+ class TARGETMANAGER_EXEC_Export TargetManager_exec_i
+ : public virtual ::Deployment::CCM_TargetManager,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ TargetManager_exec_i (TargetManagerImpl_exec_i* exec,
+ CORBA::ORB_ptr orb);
+ virtual ~TargetManager_exec_i (void);
+
+ // Operations from ::Deployment::TargetManager
+
+ virtual ::Deployment::Domain * getAllResources ();
+
+ virtual ::Deployment::Domain * getAvailableResources ();
+
+ virtual ::Deployment::ResourceCommitmentManager_ptr
+ commitResources (const ::Deployment::ResourceAllocations & resources);
+
+ virtual void releaseResources (::Deployment::ResourceCommitmentManager_ptr manager);
+
+ virtual void
+ updateDomain (
+ const ::CORBA::StringSeq & elements,
+ const ::Deployment::Domain & domainSubset,
+ ::Deployment::DomainUpdateKind updateKind);
+
+ virtual ::Deployment::ResourceCommitmentManager_ptr
+ createResourceCommitment (const ::Deployment::ResourceAllocations& manager);
+
+ virtual void
+ destroyResourceCommitment (
+ ::Deployment::ResourceCommitmentManager_ptr resources);
+
+ private:
+ TargetManagerImpl_exec_i * exec_;
+
+ /// The CORBA ORB ...
+ CORBA::ORB_var orb_;
+ };
+
+ class TARGETMANAGER_EXEC_Export TargetManagerHome_exec_i
+ : public virtual TargetManagerHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ TargetManagerHome_exec_i (void);
+ virtual ~TargetManagerHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" TARGETMANAGER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_CIAO_TargetManagerHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_TARGETMANAGER_EXEC_H */
diff --git a/modules/CIAO/DAnCE/TargetManager/Target_Manager_Exec.cpp b/modules/CIAO/DAnCE/TargetManager/Target_Manager_Exec.cpp
new file mode 100644
index 00000000000..347a0063483
--- /dev/null
+++ b/modules/CIAO/DAnCE/TargetManager/Target_Manager_Exec.cpp
@@ -0,0 +1,6 @@
+// $Id$
+#include "Target_Manager_Module.h"
+
+#define DANCE_MODULE_MAIN_CLASS_NAME DAnCE_TargetManager_Module
+#include "Deployment/Module_Main.h"
+
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..9cc34a94092
--- /dev/null
+++ b/modules/CIAO/DAnCE/TargetManager/Target_Manager_Module.cpp
@@ -0,0 +1,338 @@
+// -*- C++ -*-
+// $Id$
+
+#include "Target_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 "orbsvcs/orbsvcs/Naming/Naming_Loader.h"
+#include "DAnCE/Logger/Log_Macros.h"
+#include "DAnCE/Deployment/DAnCE_PropertiesC.h"
+
+#include "TargetManager_Impl.h"
+
+ACE_RCSID (DAnCE,
+ Repository_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 ((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 ((LM_DEBUG, DLINFO "Repository_Manager_Module::parse_args - "
+ "Output filename for IOR is %C\n",
+ get_opts.opt_arg ()));
+ this->options_.ior_file_ = get_opts.opt_arg ();
+ break;
+
+ case 'i':
+ DANCE_DEBUG ((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.
+ DANCE_ERROR_RETURN ( (LM_ERROR,
+ this->usage (),
+ argv [0], c),
+ false);
+ break;
+
+ case 0:
+ {
+ DANCE_ERROR ((LM_ERROR, DLINFO "Repository_Manager_Module::parse_args - "
+ "ERROR: unknown long option %C\n",
+ get_opts.long_option ()));
+ }
+
+ break;
+
+ default:
+ DANCE_DEBUG ((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::create_object (CORBA::ORB_ptr orb,
+ int argc,
+ ACE_TCHAR *argv[])
+{
+ DANCE_TRACE ("DAnCE_TargetManager_Module::create_object");
+
+ try
+ {
+ if (CORBA::is_nil(orb))
+ {
+ DANCE_ERROR((LM_ERROR, DLINFO "DAnCE_TargetManager_Module::create_object - "
+ "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((LM_TRACE, DLINFO "DAnCE_TargetManager_Module::create_object - "
+ "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((LM_TRACE, DLINFO "DAnCE_TargetManager_Module::create_object - "
+ "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 ((LM_ERROR,DLINFO "DAnCE_TargetManager_Module::create_object - "
+ "Narrow to NamingContext return nil for DomainNC.\n"));
+ return CORBA::Object::_nil ();
+ }
+ }
+ }
+ catch (CORBA::Exception&)
+ {
+ DANCE_DEBUG ((LM_WARNING, DLINFO "DAnCE_TargetManager_Module::create_object - "
+ "DomainNC context not found!\n"));
+ }
+ }
+
+
+ DANCE_DEBUG ((LM_TRACE, DLINFO "DAnCE_TargetManager_Module::create_object - "
+ "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 ((LM_ERROR, DLINFO "DAnCE_TargetManager_Module::create_object - "
+ "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 menager 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((LM_TRACE, DLINFO "DAnCE_TargetManager_Module::create_object - "
+ "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 ((LM_TRACE, DLINFO "DAnCE_TargetManager_Module::create_object - "
+ "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 ((LM_ERROR, DLINFO "DAnCE_TargetManager_Module::create_object - "
+ "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 ((LM_NOTICE, DLINFO "DAnCE_TargetManager_Module::create_object - "
+ "DAnCE_TargetManager is running...\n"));
+
+ DANCE_DEBUG ((LM_DEBUG, DLINFO "DAnCE_TargetManager_Module::create_object - "
+ "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 ((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 ((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 ((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 ((LM_INFO, DLINFO "DAnCE_TargetManager_Module::create_poas - "
+ "Using existing \"Repository\" POA\n"));
+ this->rm_poa_ = this->root_poa_->find_POA ("Repository", 0);
+ }
+}
+
+#ifndef DANCE_TARGETMANAGER_IMPL_BUILD_DLL
+ACE_FACTORY_DEFINE (DAnCE_TargetManager_Module, DAnCE_TargetManager_Module)
+#endif /* DANCE_TARGETMANAGER_IMPL_BUILD_DLL */
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..83a598c7934
--- /dev/null
+++ b/modules/CIAO/DAnCE/TargetManager/Target_Manager_Module.h
@@ -0,0 +1,105 @@
+// -*- 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 "Target_Manager_Module_export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Service_Config.h"
+#include "ace/Vector_T.h"
+#include "ace/Map_Manager.h"
+#include "ace/Null_Mutex.h"
+#include "tao/ORB.h"
+#include "tao/PortableServer/POAC.h"
+#include "orbsvcs/CosNamingC.h"
+#include "tao/Object_Loader.h"
+#include "Deployment/DAnCE_Loader.h"
+#include "DAnCE/Deployment/Deployment_common.h"
+#include "TargetManager_Impl.h"
+
+/**
+ * @class Target_Manager_Module
+ *
+ * @brief The shared object that is instantiated when the target manager
+ * module/library is dynamically loaded.
+ *
+ * This class runs the node manager instance
+ */
+class DAnCE_TargetManager_Module_Export DAnCE_TargetManager_Module
+ : public DAnCE::DAnCE_Object_Loader
+{
+ public:
+ 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)
+ {
+ }
+ };
+
+ /// Constructor.
+ DAnCE_TargetManager_Module (void);
+
+ /// Destructor.
+ ~DAnCE_TargetManager_Module (void);
+
+ /// Overload the base class method to create a new instance
+ /// of a DAnCE_RepositoryManager_Module object.
+ virtual CORBA::Object_ptr create_object (CORBA::ORB_ptr orb,
+ int argc,
+ ACE_TCHAR *argv []);
+
+ virtual const char * usage (void);
+
+ virtual bool parse_args (int argc, ACE_TCHAR *argv []);
+
+ private:
+ 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_;
+};
+
+ACE_FACTORY_DECLARE (DAnCE_TargetManager_Module, DAnCE_TargetManager_Module)
+
+#include /**/ "ace/post.h"
+
+#endif /* NODE_MANAGER_MODULE_H */
diff --git a/modules/CIAO/DAnCE/TargetManager/Target_Manager_Module_export.h b/modules/CIAO/DAnCE/TargetManager/Target_Manager_Module_export.h
new file mode 100644
index 00000000000..65f45970d0b
--- /dev/null
+++ b/modules/CIAO/DAnCE/TargetManager/Target_Manager_Module_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl TargetManager_Module
+// ------------------------------
+#ifndef TARGETMANAGER_MODULE_EXPORT_H
+#define TARGETMANAGER_MODULE_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (TARGETMANAGER_MODULE_HAS_DLL)
+# define TARGETMANAGER_MODULE_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && TARGETMANAGER_MODULE_HAS_DLL */
+
+#if !defined (TARGETMANAGER_MODULE_HAS_DLL)
+# define TARGETMANAGER_MODULE_HAS_DLL 1
+#endif /* ! TARGETMANAGER_MODULE_HAS_DLL */
+
+#if defined (TARGETMANAGER_MODULE_HAS_DLL) && (TARGETMANAGER_MODULE_HAS_DLL == 1)
+# if defined (TARGETMANAGER_MODULE_BUILD_DLL)
+# define DAnCE_TargetManager_Module_Export ACE_Proper_Export_Flag
+# define TARGETMANAGER_MODULE_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define TARGETMANAGER_MODULE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* TARGETMANAGER_MODULE_BUILD_DLL */
+# define DAnCE_TargetManager_Module_Export ACE_Proper_Import_Flag
+# define TARGETMANAGER_MODULE_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define TARGETMANAGER_MODULE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* TARGETMANAGER_MODULE_BUILD_DLL */
+#else /* TARGETMANAGER_MODULE_HAS_DLL == 1 */
+# define DAnCE_TargetManager_Module_Export
+# define TARGETMANAGER_MODULE_SINGLETON_DECLARATION(T)
+# define TARGETMANAGER_MODULE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* TARGETMANAGER_MODULE_HAS_DLL == 1 */
+
+// Set TARGETMANAGER_MODULE_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (TARGETMANAGER_MODULE_NTRACE)
+# if (ACE_NTRACE == 1)
+# define TARGETMANAGER_MODULE_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define TARGETMANAGER_MODULE_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !TARGETMANAGER_MODULE_NTRACE */
+
+#if (TARGETMANAGER_MODULE_NTRACE == 1)
+# define TARGETMANAGER_MODULE_TRACE(X)
+#else /* (TARGETMANAGER_MODULE_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define TARGETMANAGER_MODULE_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (TARGETMANAGER_MODULE_NTRACE == 1) */
+
+#endif /* TARGETMANAGER_MODULE_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/DAnCE/Utils/DAnCE_Utils.mpc b/modules/CIAO/DAnCE/Utils/DAnCE_Utils.mpc
new file mode 100644
index 00000000000..cf8d3db5c49
--- /dev/null
+++ b/modules/CIAO/DAnCE/Utils/DAnCE_Utils.mpc
@@ -0,0 +1,16 @@
+// -*- MPC -*-
+// $Id$
+
+project (DAnCE_Utils): dance_lib, dance_deployment_svnt, naming {
+ sharedname = DAnCE_Utils
+ dynamicflags = DANCE_UTILS_BUILD_DLL
+
+ Source_Files {
+ Plan_Handler.cpp
+ }
+
+ Header_Files {
+ Plan_Handler.h
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/Utils/DAnCE_Utils_Export.h b/modules/CIAO/DAnCE/Utils/DAnCE_Utils_Export.h
new file mode 100644
index 00000000000..636453478e8
--- /dev/null
+++ b/modules/CIAO/DAnCE/Utils/DAnCE_Utils_Export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl -s DAnCE_Utils
+// ------------------------------
+#ifndef DANCE_UTILS_EXPORT_H
+#define DANCE_UTILS_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (DANCE_UTILS_HAS_DLL)
+# define DANCE_UTILS_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && DANCE_UTILS_HAS_DLL */
+
+#if !defined (DANCE_UTILS_HAS_DLL)
+# define DANCE_UTILS_HAS_DLL 1
+#endif /* ! DANCE_UTILS_HAS_DLL */
+
+#if defined (DANCE_UTILS_HAS_DLL) && (DANCE_UTILS_HAS_DLL == 1)
+# if defined (DANCE_UTILS_BUILD_DLL)
+# define DAnCE_Utils_Export ACE_Proper_Export_Flag
+# define DANCE_UTILS_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define DANCE_UTILS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* DANCE_UTILS_BUILD_DLL */
+# define DAnCE_Utils_Export ACE_Proper_Import_Flag
+# define DANCE_UTILS_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define DANCE_UTILS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* DANCE_UTILS_BUILD_DLL */
+#else /* DANCE_UTILS_HAS_DLL == 1 */
+# define DAnCE_Utils_Export
+# define DANCE_UTILS_SINGLETON_DECLARATION(T)
+# define DANCE_UTILS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* DANCE_UTILS_HAS_DLL == 1 */
+
+// Set DANCE_UTILS_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (DANCE_UTILS_NTRACE)
+# if (ACE_NTRACE == 1)
+# define DANCE_UTILS_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define DANCE_UTILS_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !DANCE_UTILS_NTRACE */
+
+#if (DANCE_UTILS_NTRACE == 1)
+# define DANCE_UTILS_TRACE(X)
+#else /* (DANCE_UTILS_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define DANCE_UTILS_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (DANCE_UTILS_NTRACE == 1) */
+
+#endif /* DANCE_UTILS_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/DAnCE/Utils/Plan_Handler.cpp b/modules/CIAO/DAnCE/Utils/Plan_Handler.cpp
new file mode 100644
index 00000000000..f464bf5058f
--- /dev/null
+++ b/modules/CIAO/DAnCE/Utils/Plan_Handler.cpp
@@ -0,0 +1,349 @@
+// $Id$
+
+#include "Plan_Handler.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+namespace DAnCE
+{
+ void
+ DAnCE_Utils::add_instance (
+ ::Deployment::DeploymentPlan &deployment_plan,
+ const char *instance_name,
+ const char *node_name,
+ const char *impl_name,
+ const char *ns_name)
+ {
+ // Modifying the deployment plan in order to include the new instance ...
+ ::Deployment::InstanceDeploymentDescriptions instance =
+ deployment_plan.instance;
+
+ instance.length (instance.length()+1);
+
+ instance[instance.length()-1].name = CORBA::string_dup(instance_name); // Name of the instance
+ instance[instance.length()-1].node = CORBA::string_dup(node_name);
+ instance[instance.length()-1].source.length(0);
+
+ // Looking for implementation block with name equals to type ...
+ ::Deployment::MonolithicDeploymentDescriptions implementation =
+ deployment_plan.implementation;
+
+ CORBA::ULong i = 0;
+ for (i = 0; i < implementation.length(); ++i)
+ if (ACE_OS::strcmp (implementation[i].name.in(), impl_name) == 0)
+ break;
+
+ if (i < implementation.length())
+ instance[instance.length()-1].implementationRef = i;
+ else
+ throw ImplementationNotFound();
+
+ if (ns_name != 0)
+ {
+ instance[instance.length()-1].configProperty.length(1);
+ instance[instance.length()-1].configProperty[0].name = CORBA::string_dup ("RegisterNaming");
+ instance[instance.length()-1].configProperty[0].value <<= CORBA::string_dup (ns_name);
+ }
+
+ // Re-assigning instances to deployment plan ...
+ deployment_plan.instance = instance;
+ }
+
+ /*
+ void
+ DAnCE_Utils::add_connection (::Deployment::DeploymentPlan_var &deployment_plan, const char *connection_name, const char *port_name, const char *facet_instance, const char *receptacle_instance)
+ {
+ // Modifying the deployment plan in order to include the new connection ...
+
+ ::Deployment::PlanConnectionDescriptions connection = deployment_plan->connection;
+ connection.length(connection.length()+1);
+
+ connection[connection.length()-1].name = CORBA::string_dup(connection_name);
+ connection[connection.length()-1].source.length(0);
+ connection[connection.length()-1].deployRequirement.length(0);
+ connection[connection.length()-1].externalEndpoint.length(0);
+ connection[connection.length()-1].internalEndpoint.length(2);
+ connection[connection.length()-1].internalEndpoint[0].portName = CORBA::string_dup(port_name);
+ connection[connection.length()-1].internalEndpoint[0].provider = 0L;
+ connection[connection.length()-1].internalEndpoint[0].kind = ::Deployment::Facet;
+
+ unsigned int i;
+
+ // Looking for instance block with name equals to facet_instance ...
+
+ ::Deployment::InstanceDeploymentDescriptions instance = deployment_plan->instance;
+
+ for (i = 0; i < instance.length(); i++)
+ if (!strcmp(instance[i].name.in(), facet_instance))
+ break;
+
+ if (i < instance.length())
+ connection[connection.length()-1].internalEndpoint[0].instanceRef = i;
+ else
+ throw InstanceNotFound();
+
+ connection[connection.length()-1].internalEndpoint[1].portName = CORBA::string_dup(port_name);
+ connection[connection.length()-1].internalEndpoint[1].provider = 0L;
+ connection[connection.length()-1].internalEndpoint[1].kind = ::Deployment::SimplexReceptacle;
+
+ // Looking for instance block with name equals to receptacle_instance ...
+
+ for (i = 0; i < instance.length(); i++)
+ if (!strcmp(instance[i].name.in(), receptacle_instance))
+ break;
+
+ if (i < instance.length())
+ connection[connection.length()-1].internalEndpoint[1].instanceRef = i;
+ else
+ throw InstanceNotFound();
+
+ // Re-assigning connection to deployment plan
+
+ deployment_plan->connection = connection;
+ }
+
+ void
+ DAnCE_Utils::remove_instance (::Deployment::DeploymentPlan_var &deployment_plan, const char *instance_name)
+ {
+ // Modifying the deployment plan in order to remove the instance ...
+
+ ::Deployment::InstanceDeploymentDescriptions instance = deployment_plan->instance;
+ ::Deployment::PlanConnectionDescriptions connection = deployment_plan->connection;
+
+ // Looking for the instance position in sequence of instances ...
+
+ unsigned int instance_ref = 0, i;
+
+ for (i = 0; i < instance.length(); i++)
+ if (!strcmp(instance[i].name.in(), instance_name))
+ {
+ instance_ref = i;
+ break;
+ }
+
+ if (i == instance.length())
+ throw InstanceNotFound();
+
+ // First of all, we need to remove all connections of which this instance participates ...
+
+ for (i = 0; i < connection.length(); i++)
+ for (unsigned int j = 0; j < connection[i].internalEndpoint.length(); j++)
+ if (connection[i].internalEndpoint[j].instanceRef == instance_ref)
+ {
+ remove_connection(deployment_plan, connection[i].name.in());
+ // Updating i in order to verify the shifted connection ...
+ i--;
+ // Re-acquiring instances from the deployment plan ...
+ connection = deployment_plan->connection;
+ break;
+ }
+
+ // And then, removing the instance itself ...
+
+ for (unsigned int j = instance_ref; j < instance.length() - 1; j++)
+ {
+ instance[j].name = instance[j+1].name;
+ instance[j].node = instance[j+1].node;
+ instance[j].source.length(instance[j+1].source.length());
+ for (unsigned int k = 0; k < instance[j].source.length(); k++)
+ instance[j].source[k] = instance[j+1].source[k];
+ instance[j].implementationRef = instance[j].implementationRef;;
+ instance[j].configProperty.length(instance[j+1].configProperty.length());
+ for (unsigned int k = 0; k < instance[j].configProperty.length(); k++)
+ {
+ instance[j].configProperty[k].name = instance[j+1].configProperty[k].name;
+ instance[j].configProperty[k].value = instance[j+1].configProperty[k].value;
+ }
+ }
+ instance.length(instance.length()-1);
+
+ // Re-assigning instances to the deployment plan ...
+ deployment_plan->instance = instance;
+
+ // Updating connections for the shifted instances ...
+ connection = deployment_plan->connection;
+ for (i = 0; i < connection.length(); i++)
+ for (unsigned int j = 0; j < connection[i].internalEndpoint.length(); j++)
+ if (connection[i].internalEndpoint[j].instanceRef > instance_ref)
+ connection[i].internalEndpoint[j].instanceRef--;
+ deployment_plan->connection = connection;
+
+ return;
+
+ }
+
+ void
+ DAnCE_Utils::remove_connection (
+ ::Deployment::DeploymentPlan_var &deployment_plan,
+ const char *connection_name)
+ {
+ ::Deployment::PlanConnectionDescriptions connection = deployment_plan->connection;
+
+ for (unsigned int i = 0; i < connection.length(); i++)
+ if (!strcmp(connection[i].name.in(), connection_name))
+ {
+ for (unsigned int k = i; k < connection.length() - 1; k++)
+ {
+ unsigned int l;
+ connection[k].name = connection[k+1].name;
+ connection[k].source.length(connection[k+1].source.length());
+ for (l = 0; l < connection[k].source.length(); l++)
+ connection[k].source[l] = connection[k+1].source[l];
+ connection[k].deployRequirement.length(connection[k+1].deployRequirement.length());
+ for (l = 0; l < connection[k].deployRequirement.length(); l++)
+ {
+ connection[k].deployRequirement[l].resourceType = connection[k+1].deployRequirement[l].resourceType;
+ connection[k].deployRequirement[l].name = connection[k+1].deployRequirement[l].name;
+ connection[k].deployRequirement[l].property.length(connection[k+1].deployRequirement[l].property.length());
+ for (unsigned int m = 0; m < connection[k].deployRequirement[l].property.length(); m++)
+ {
+ connection[k].deployRequirement[l].property[m].name = connection[k+1].deployRequirement[l].property[m].name;
+ connection[k].deployRequirement[l].property[m].value = connection[k+1].deployRequirement[l].property[m].value;
+ }
+ }
+ connection[k].externalEndpoint.length(connection[k+1].externalEndpoint.length());
+ for (l = 0; l < connection[k].externalEndpoint.length(); l++)
+ connection[k].externalEndpoint[l].portName = connection[k+1].externalEndpoint[l].portName;
+ connection[k].internalEndpoint.length(connection[k+1].internalEndpoint.length());
+ for (l = 0; l < connection[k].internalEndpoint.length(); l++)
+ {
+ connection[k].internalEndpoint[l].portName = connection[k+1].internalEndpoint[l].portName;
+ connection[k].internalEndpoint[l].provider = connection[k+1].internalEndpoint[l].provider;
+ connection[k].internalEndpoint[l].kind = connection[k+1].internalEndpoint[l].kind;
+ connection[k].internalEndpoint[l].instanceRef = connection[k+1].internalEndpoint[l].instanceRef;
+ }
+ connection[k].deployedResource.length(connection[k+1].deployedResource.length());
+ for (l = 0; l < connection[k].deployedResource.length(); l++)
+ {
+ connection[k].deployedResource[l].targetName = connection[k+1].deployedResource[l].targetName;
+ connection[k].deployedResource[l].requirementName = connection[k+1].deployedResource[l].requirementName;
+ connection[k].deployedResource[l].resourceName = connection[k+1].deployedResource[l].resourceName;
+ connection[k].deployedResource[l].resourceValue = connection[k+1].deployedResource[l].resourceValue;
+ }
+ }
+ connection.length(connection.length()-1);
+ // Re-assigning connection to the deployment plan ...
+ deployment_plan->connection = connection;
+ return;
+ }
+ // Throw exception if connection name not found ...
+ throw ConnectionNotFound();
+ }
+*/
+ void
+ DAnCE_Utils::print_instances (const ::Deployment::DeploymentPlan &deployment_plan)
+ {
+ const ::Deployment::InstanceDeploymentDescriptions instance =
+ deployment_plan.instance;
+
+ for (CORBA::ULong i = 0; i < instance.length(); ++i)
+ {
+ DANCE_DEBUG((LM_DEBUG, "[%M] \nInstance no. %d\n", i));
+ DANCE_DEBUG((LM_DEBUG, "[%M] \tName: %C\n", instance[i].name.in()));
+ DANCE_DEBUG((LM_DEBUG, "[%M] \tNode: %C\n", instance[i].node.in()));
+
+ DANCE_DEBUG((LM_DEBUG, "[%M] \tImplementationRef: %d\n", instance[i].implementationRef));
+ DANCE_DEBUG((LM_DEBUG, "[%M] \tNumber of properties: %d\n", instance[i].configProperty.length()));
+
+ for (CORBA::ULong k = 0; k < instance[i].configProperty.length(); k++)
+ DANCE_DEBUG((LM_DEBUG, "[%M] \t\tName: %C\n", instance[i].configProperty[k].name.in()));
+ }
+ }
+
+ void
+ DAnCE_Utils::print_connections (const ::Deployment::DeploymentPlan &deployment_plan)
+ {
+ const ::Deployment::PlanConnectionDescriptions connection =
+ deployment_plan.connection;
+
+ for (CORBA::ULong i = 0; i < connection.length(); ++i)
+ {
+ DANCE_DEBUG((LM_DEBUG, "[%M] \nConnection no. %d\n", i));
+ DANCE_DEBUG((LM_DEBUG, "[%M] \tName: %C\n", connection[i].name.in()));
+
+ DANCE_DEBUG((LM_DEBUG, "[%M] \tNo of deployRequirements: %d\n",
+ connection[i].deployRequirement.length()));
+
+ for (CORBA::ULong j = 0; j < connection[i].deployRequirement.length(); ++j)
+ {
+ DANCE_DEBUG((LM_DEBUG,
+ "\t\tDeploy Requirement %d:\n",
+ j+1));
+ DANCE_DEBUG((LM_DEBUG,
+ "\t\t\tResource Type: %C\n",
+ connection[i].deployRequirement[j].resourceType.in()));
+ DANCE_DEBUG((LM_DEBUG,
+ "\t\t\tName: %C\n",
+ connection[i].deployRequirement[j].name.in()));
+ DANCE_DEBUG((LM_DEBUG,
+ "\t\t\tNo of Properties: %d\n",
+ connection[i].deployRequirement[j].property.length()));
+ for (CORBA::ULong k = 0; k < connection[i].deployRequirement[j].property.length(); ++k)
+ {
+ DANCE_DEBUG((LM_DEBUG, "[%M] \t\t\tProperty %d:\n", k+1));
+ DANCE_DEBUG((LM_DEBUG,
+ "\t\t\t\tName: %C\n",
+ connection[i].deployRequirement[j].property[k].name.in()));
+ }
+ }
+
+ DANCE_DEBUG((LM_DEBUG,
+ "\tNo of externalEndpoints: %d\n",
+ connection[i].externalEndpoint.length()));
+ for (CORBA::ULong j = 0; j < connection[i].externalEndpoint.length(); j++)
+ DANCE_DEBUG((LM_DEBUG,
+ "\t\tPortname %d: %C\n", j+1,
+ connection[i].externalEndpoint[j].portName.in()));
+
+ DANCE_DEBUG((LM_DEBUG,
+ "\tNo of internalEndpoints: %d\n",
+ connection[i].internalEndpoint.length()));
+ for (CORBA::ULong j = 0; j < connection[i].internalEndpoint.length(); j++)
+ {
+ DANCE_DEBUG((LM_DEBUG, "[%M] \t\tInternalEndpoint %d:\n", j+1));
+ DANCE_DEBUG((LM_DEBUG, "[%M] \t\t\tPortname: %C\n", connection[i].internalEndpoint[j].portName.in()));
+ DANCE_DEBUG((LM_DEBUG, "\t\t\tProvider: %d\n", connection[i].internalEndpoint[j].provider));
+
+ if (connection[i].internalEndpoint[j].kind == ::Deployment::Facet ||
+ connection[i].internalEndpoint[j].kind == ::Deployment::SimplexReceptacle)
+ DANCE_DEBUG((LM_DEBUG,
+ "\t\t\tKind: %C\n",
+ (connection[i].internalEndpoint[j].kind == ::Deployment::Facet) ?
+ "Facet" : "SimplexReceptacle"));
+ else
+ DANCE_DEBUG((LM_DEBUG,
+ "\t\t\tKind: %d\n",
+ connection[i].internalEndpoint[j].kind));
+
+ DANCE_DEBUG((LM_DEBUG,
+ "\t\t\tInstanceRef: %ld",
+ (long) connection[i].internalEndpoint[j].instanceRef));
+ DANCE_DEBUG((LM_DEBUG, "[%M] \tInstanceName: %C\n",
+ deployment_plan.instance[connection[i].internalEndpoint[j].instanceRef].name.in()));
+ }
+
+ DANCE_DEBUG((LM_DEBUG,
+ "\tNo of externalReferenceEndpoints: %d\n",
+ connection[i].externalReference.length()));
+ for (CORBA::ULong j = 0; j < connection[i].externalReference.length(); ++j)
+ DANCE_DEBUG((LM_DEBUG,
+ "\t\tLocation %d: %C\n",
+ j+1,
+ connection[i].externalReference[j].location.in()));
+
+ DANCE_DEBUG((LM_DEBUG,
+ "\tNo of deployedResources: %d\n",
+ connection[i].deployedResource.length()));
+ for (CORBA::ULong j = 0; j < connection[i].deployedResource.length(); j++)
+ {
+ DANCE_DEBUG((LM_DEBUG,
+ "\t\tTargetName: %C\n",
+ connection[i].deployedResource[j].targetName.in()));
+ DANCE_DEBUG((LM_DEBUG, "[%M] \t\tRequirementName: %C\n",
+ connection[i].deployedResource[j].requirementName.in()));
+ DANCE_DEBUG((LM_DEBUG, "[%M] \t\tResourceName: %C\n",
+ connection[i].deployedResource[j].resourceName.in()));
+ }
+ }
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/Utils/Plan_Handler.h b/modules/CIAO/DAnCE/Utils/Plan_Handler.h
new file mode 100644
index 00000000000..591853b68a6
--- /dev/null
+++ b/modules/CIAO/DAnCE/Utils/Plan_Handler.h
@@ -0,0 +1,75 @@
+//$Id$
+/*========================================================
+ *
+ * @file Plan_Handler.h
+ *
+ * @brief This file contains the implementation of
+ * the Plan_Handler class.
+ *
+ * @author Gan Deng <gan.deng@vanderbilt.edu>
+ *========================================================*/
+
+#ifndef CIAO_DANCE_UTILS_H
+#define CIAO_DANCE_UTILS_H
+
+#include "DAnCE_Utils_Export.h"
+#include "Deployment/Deployment_DeploymentPlanC.h"
+
+namespace DAnCE
+{
+ class ImplementationNotFound {};
+ class InstanceNotFound {};
+ class ConnectionNotFound {};
+
+ /**
+ * @class Plan_Handler
+ *
+ * This class takes an existing deployment plan as input, and
+ * can modify the deployment plan internals.
+ *
+ * The main methods on this class are:
+ *
+ * - Add a instance to the deployment plan;
+ * - Add a connection to the deployment plan;
+ * - Remove a connection from the deployment plan;
+ * - Remove a instance (and, consequently all its connection) from the
+ * deployment plan;
+ * - Show all instances in the deployment plan;
+ * - Show all connections in the deployment plan;
+ */
+
+ class DAnCE_Utils_Export DAnCE_Utils
+ {
+ public:
+ static void add_instance (
+ ::Deployment::DeploymentPlan &deployment_plan,
+ const char *instance_name,
+ const char *node_name,
+ const char *impl_name,
+ const char *ns_name = 0);
+
+ static void add_connection (
+ ::Deployment::DeploymentPlan &deployment_plan,
+ const char *connection_name,
+ const char *port_name,
+ const char *facet_instance,
+ const char *receptacle_instance);
+
+ static void remove_instance (
+ ::Deployment::DeploymentPlan &deployment_plan,
+ const char *instance_name);
+
+ static void remove_connection (
+ ::Deployment::DeploymentPlan &deployment_plan,
+ const char *connection_name);
+
+ static void print_instances (
+ const ::Deployment::DeploymentPlan &deployment_plan);
+
+ static void print_connections (
+ const ::Deployment::DeploymentPlan &deployment_plan);
+ };
+}
+
+#endif /* CIAO_DANCE_UTILS_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..641e463cdaa
--- /dev/null
+++ b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/__init__.py
@@ -0,0 +1,46 @@
+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
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..e807fc6f58a
--- /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..7bacf681616
--- /dev/null
+++ b/modules/CIAO/DAnCE/bin/PythonDAnCE/generator/comp_inst.py
@@ -0,0 +1,13 @@
+from templet import stringfunction
+
+@stringfunction
+def template (component_name) :
+ """
+ <instance xmi:id="${component_name}ComponentInstance">
+ <name>${component_name}Component</name>
+ <node>Node</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="${component_name}ComponentImplementation" />
+ </instance>
+ """
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/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..15310877bec
--- /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)
+
+ #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/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/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..cafc865f062
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/ProcessColocation_exec.cpp
@@ -0,0 +1,189 @@
+// -*- C++ -*-
+// $Id$
+
+#include "ProcessColocation_exec.h"
+#include "ciao/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 )
+ {
+ CIAO_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)
+ {
+ CIAO_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/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..af03c6c96b7
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute_exec.cpp
@@ -0,0 +1,241 @@
+// $Id$
+
+#include "SimpleAttribute_exec.h"
+#include "ciao/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)
+ {
+ CIAO_TRACE ("SimpleAttribute_exec_i::str_attr");
+ // Your code here.
+ this->str_ = str;
+ }
+
+ ::CORBA::Long
+ SimpleAttribute_exec_i::long_attr ()
+ {
+ CIAO_TRACE ("SimpleAttribute_exec_i::long_attr");
+ // Your code here.
+ return long_;
+ }
+
+ void
+ SimpleAttribute_exec_i::long_attr (::CORBA::Long long_attr )
+ {
+ CIAO_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 )
+ {
+ CIAO_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)
+ {
+ CIAO_ERROR ((LM_ERROR, "SimpleAttribute_exec_i::ccm_activate - "
+ "Error: Attribute values didin't initialize correctly!\n"));
+ }
+ else
+ {
+ CIAO_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)
+ {
+ CIAO_TRACE ("SimpleAttributeHome_exec_i::str_attr");
+ // Your code here.
+ this->str_ = str;
+ }
+
+ ::CORBA::Long
+ SimpleAttributeHome_exec_i::long_attr ()
+ {
+ CIAO_TRACE ("SimpleAttributeHome_exec_i::long_attr");
+ // Your code here.
+ return long_;
+ }
+
+ void
+ SimpleAttributeHome_exec_i::long_attr (::CORBA::Long long_attr )
+ {
+ CIAO_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 )
+ {
+ CIAO_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)
+ {
+ CIAO_ERROR ((LM_ERROR, "SimpleAttribute_exec_i::ccm_activate - "
+ "Error: Attribute values didin't initialize correctly!\n"));
+ }
+ else
+ {
+ CIAO_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..3a7b3eff867
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleAttribute_exec.h
@@ -0,0 +1,141 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#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..6f943e9d1d5
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleCommon.idl
@@ -0,0 +1,21 @@
+// $Id$
+
+#ifndef SIMPLE_COMMON_IDL
+#define SIMPLE_COMMON_IDL
+
+#include "Components.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..35be8e8a717
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer_exec.cpp
@@ -0,0 +1,138 @@
+// $Id$
+
+#include "SimpleConsumer_exec.h"
+#include "ciao/Logger/Log_Macros.h"
+
+namespace CIAO_Simple_SimpleConsumer_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: SimpleConsumer_exec_i
+ //==================================================================
+
+ SimpleConsumer_exec_i::SimpleConsumer_exec_i (void)
+ {
+ CIAO_TRACE ("SimpleConsumer_exec_i::SimpleConsumer_exec_i (void)");
+ }
+
+ SimpleConsumer_exec_i::~SimpleConsumer_exec_i (void)
+ {
+ CIAO_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 )
+ {
+ CIAO_TRACE ("SimpleConsumer_exec_i::push_hello_ ()");
+ // Your code here.
+
+ CIAO_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)
+ {
+ CIAO_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 ()
+ {
+ CIAO_TRACE ("SimpleConsumer_exec_i::configuration_complete ()");
+ // Your code here.
+ }
+
+ void
+ SimpleConsumer_exec_i::ccm_activate ()
+ {
+ CIAO_TRACE ("SimpleConsumer_exec_i::ccm_activate ()");
+ // Your code here.
+ }
+
+ void
+ SimpleConsumer_exec_i::ccm_passivate ()
+ {
+ CIAO_TRACE ("SimpleConsumer_exec_i::ccm_passivate ()");
+ // Your code here.
+ }
+
+ void
+ SimpleConsumer_exec_i::ccm_remove ()
+ {
+ CIAO_TRACE ("SimpleConsumer_exec_i::ccm_remove ()");
+ // Your code here.
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: SimpleConsumerHome_exec_i
+ //==================================================================
+
+ SimpleConsumerHome_exec_i::SimpleConsumerHome_exec_i (void)
+ {
+ CIAO_TRACE ("SimpleConsumerHome_exec_i::SimpleConsumerHome_exec_i (void)");
+ }
+
+ SimpleConsumerHome_exec_i::~SimpleConsumerHome_exec_i (void)
+ {
+ CIAO_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 ()
+ {
+ CIAO_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)
+ {
+ CIAO_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..fa2e39d384a
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleConsumer_exec.h
@@ -0,0 +1,102 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#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_;
+ };
+
+ 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..c21ea4e97fb
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleEmitter_exec.cpp
@@ -0,0 +1,131 @@
+// $Id$
+
+#include "SimpleEmitter_exec.h"
+#include "ciao/Logger/Log_Macros.h"
+
+namespace CIAO_Simple_SimpleEmitter_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: SimpleEmitter_exec_i
+ //==================================================================
+
+ SimpleEmitter_exec_i::SimpleEmitter_exec_i (void)
+ {
+ CIAO_TRACE ("SimpleEmitter_exec_i::SimpleEmitter_exec_i (void)");
+ }
+
+ SimpleEmitter_exec_i::~SimpleEmitter_exec_i (void)
+ {
+ CIAO_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)
+ {
+ CIAO_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 ()
+ {
+ CIAO_TRACE ("SimpleEmitter_exec_i::configuration_complete ()");
+ // Your code here.
+ }
+
+ void
+ SimpleEmitter_exec_i::ccm_activate ()
+ {
+ CIAO_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 ()
+ {
+ CIAO_TRACE ("SimpleEmitter_exec_i::ccm_passivate ()");
+ // Your code here.
+ }
+
+ void
+ SimpleEmitter_exec_i::ccm_remove ()
+ {
+ CIAO_TRACE ("SimpleEmitter_exec_i::ccm_remove ()");
+ // Your code here.
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: SimpleEmitterHome_exec_i
+ //==================================================================
+
+ SimpleEmitterHome_exec_i::SimpleEmitterHome_exec_i (void)
+ {
+ CIAO_TRACE ("SimpleEmitterHome_exec_i::SimpleEmitterHome_exec_i (void)");
+ }
+
+ SimpleEmitterHome_exec_i::~SimpleEmitterHome_exec_i (void)
+ {
+ CIAO_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 ()
+ {
+ CIAO_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)
+ {
+ CIAO_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..32bf579f4c7
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleEmitter_exec.h
@@ -0,0 +1,98 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#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/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..c35430137db
--- /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
+ 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..071736aa054
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.cpp
@@ -0,0 +1,158 @@
+// $Id$
+
+#include "SimpleMultipleUser_exec.h"
+#include "ciao/Logger/Log_Macros.h"
+
+namespace CIAO_Simple_SimpleMultipleUser_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: SimpleMultipleUser_exec_i
+ //==================================================================
+
+ SimpleMultipleUser_exec_i::SimpleMultipleUser_exec_i (void)
+ {
+ CIAO_TRACE ("SimpleMultipleUser_exec_i::SimpleMultipleUser_exec_i (void)");
+ }
+
+ SimpleMultipleUser_exec_i::~SimpleMultipleUser_exec_i (void)
+ {
+ CIAO_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)
+ {
+ CIAO_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 ()
+ {
+ CIAO_TRACE ("SimpleMultipleUser_exec_i::configuration_complete ()");
+ // Your code here.
+ }
+
+ void
+ SimpleMultipleUser_exec_i::ccm_activate ()
+ {
+ CIAO_TRACE ("SimpleMultipleUser_exec_i::ccm_activate ()");
+
+ ::Simple::SimpleMultipleUser::trigConnections_var conns =
+ this->context_->get_connections_trig ();
+
+ CIAO_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
+ {
+ CIAO_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)
+ {
+ CIAO_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 (...)
+ {
+ CIAO_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 ()
+ {
+ CIAO_TRACE ("SimpleMultipleUser_exec_i::ccm_passivate ()");
+ // Your code here.
+ }
+
+ void
+ SimpleMultipleUser_exec_i::ccm_remove ()
+ {
+ CIAO_TRACE ("SimpleMultipleUser_exec_i::ccm_remove ()");
+ // Your code here.
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: SimpleMultipleUserHome_exec_i
+ //==================================================================
+
+ SimpleMultipleUserHome_exec_i::SimpleMultipleUserHome_exec_i (void)
+ {
+ CIAO_TRACE ("SimpleMultipleUserHome_exec_i::SimpleMultipleUserHome_exec_i (void)");
+ }
+
+ SimpleMultipleUserHome_exec_i::~SimpleMultipleUserHome_exec_i (void)
+ {
+ CIAO_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 ()
+ {
+ CIAO_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)
+ {
+ CIAO_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..9313dd2c074
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleMultipleUser_exec.h
@@ -0,0 +1,98 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#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..b7cbae53e70
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider.idl
@@ -0,0 +1,22 @@
+// $Id$
+
+#ifndef SIMPLE_PROVIDER_IDL
+#define SIMPLE_PROVIDER_IDL
+
+#include "SimpleCommon.idl"
+#include "SimpleCommonE.idl"
+#include "Components.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..a2fbd01cf94
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider_exec.cpp
@@ -0,0 +1,160 @@
+// $Id$
+
+#include "SimpleNilFacetProvider_exec.h"
+#include "ciao/Logger/Log_Macros.h"
+
+namespace CIAO_Simple_SimpleNilFacetProvider_Impl
+{
+ //==================================================================
+ // Facet Executor Implementation Class: Trigger_exec_i
+ //==================================================================
+
+ Trigger_exec_i::Trigger_exec_i (void)
+ {
+ CIAO_TRACE ("Trigger_exec_i::Trigger_exec_i (void)");
+ }
+
+ Trigger_exec_i::~Trigger_exec_i (void)
+ {
+ CIAO_TRACE ("Trigger_exec_i::~Trigger_exec_i (void)");
+ }
+
+ // Operations from ::Simple::Trigger
+
+ void
+ Trigger_exec_i::hello (
+ const char * hello )
+ {
+ CIAO_TRACE ("Trigger_exec_i::hello ()");
+ // Your code here.
+ CIAO_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)
+ {
+ CIAO_TRACE ("SimpleNilFacetProvider_exec_i::SimpleNilFacetProvider_exec_i (void)");
+ }
+
+ SimpleNilFacetProvider_exec_i::~SimpleNilFacetProvider_exec_i (void)
+ {
+ CIAO_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 ()
+ {
+ CIAO_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)
+ {
+ CIAO_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 ()
+ {
+ CIAO_TRACE ("SimpleNilFacetProvider_exec_i::configuration_complete ()");
+ // Your code here.
+ }
+
+ void
+ SimpleNilFacetProvider_exec_i::ccm_activate ()
+ {
+ CIAO_TRACE ("SimpleNilFacetProvider_exec_i::ccm_activate ()");
+ // Your code here.
+ }
+
+ void
+ SimpleNilFacetProvider_exec_i::ccm_passivate ()
+ {
+ CIAO_TRACE ("SimpleNilFacetProvider_exec_i::ccm_passivate ()");
+ // Your code here.
+ }
+
+ void
+ SimpleNilFacetProvider_exec_i::ccm_remove ()
+ {
+ CIAO_TRACE ("SimpleNilFacetProvider_exec_i::ccm_remove ()");
+ // Your code here.
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: SimpleNilFacetProviderHome_exec_i
+ //==================================================================
+
+ SimpleNilFacetProviderHome_exec_i::SimpleNilFacetProviderHome_exec_i (void)
+ {
+ CIAO_TRACE ("SimpleNilFacetProviderHome_exec_i::SimpleNilFacetProviderHome_exec_i (void)");
+ }
+
+ SimpleNilFacetProviderHome_exec_i::~SimpleNilFacetProviderHome_exec_i (void)
+ {
+ CIAO_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 ()
+ {
+ CIAO_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)
+ {
+ CIAO_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..3feb16a04cf
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetProvider_exec.h
@@ -0,0 +1,116 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#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..0a44bd38963
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetUser_exec.cpp
@@ -0,0 +1,159 @@
+// $Id$
+
+#include "ciao/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)
+ {
+ CIAO_TRACE ("SimpleNilFacetUser_exec_i::SimpleNilFacetUser_exec_i (void)");
+ }
+
+ SimpleNilFacetUser_exec_i::~SimpleNilFacetUser_exec_i (void)
+ {
+ CIAO_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)
+ {
+ CIAO_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 ()
+ {
+ CIAO_TRACE ("SimpleNilFacetUser_exec_i::configuration_complete ()");
+ // Your code here.
+ }
+
+ void
+ SimpleNilFacetUser_exec_i::ccm_activate ()
+ {
+ CIAO_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 ()))
+ {
+ CIAO_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 &)
+ {
+ CIAO_DEBUG ((LM_DEBUG, "SimpleNilFacetUser_exec_i::ccm_activate () - "
+ "Caught correct CORBA exception\n"));
+ caught_exception = true;
+ }
+ catch (const CORBA::Exception &ex)
+ {
+ CIAO_ERROR ((LM_ERROR, "SimpleNilFacetUser_exec_i::ccm_activate () - "
+ "Caught CORBA exception, details follow:\n"));
+ ex._tao_print_exception ("SimpleNilFacetUser_exec_i::ccm_activate () - ");
+ }
+ catch (...)
+ {
+ CIAO_ERROR ((LM_ERROR, "SimpleNilFacetUser_exec_i::ccm_activate () - "
+ "Error: Caught unknown exception whilst invoking reference for port trig.\n"));
+ }
+ if (!caught_exception)
+ {
+ CIAO_ERROR ((LM_ERROR, "SimpleNilFacetUser_exec_i::ccm_activate () - "
+ "Error: Didn't catch correct exception\n"));
+ }
+ }
+
+ void
+ SimpleNilFacetUser_exec_i::ccm_passivate ()
+ {
+ CIAO_TRACE ("SimpleNilFacetUser_exec_i::ccm_passivate ()");
+ }
+
+ void
+ SimpleNilFacetUser_exec_i::ccm_remove ()
+ {
+ CIAO_TRACE ("SimpleNilFacetUser_exec_i::ccm_remove ()");
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: SimpleNilFacetUserHome_exec_i
+ //==================================================================
+
+ SimpleNilFacetUserHome_exec_i::SimpleNilFacetUserHome_exec_i (void)
+ {
+ CIAO_TRACE ("SimpleNilFacetUserHome_exec_i::SimpleNilFacetUserHome_exec_i (void)");
+ }
+
+ SimpleNilFacetUserHome_exec_i::~SimpleNilFacetUserHome_exec_i (void)
+ {
+ CIAO_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 ()
+ {
+ CIAO_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)
+ {
+ CIAO_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..87381a6de5f
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNilFacetUser_exec.h
@@ -0,0 +1,98 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#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..3d1407236cd
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNull_exec.cpp
@@ -0,0 +1,150 @@
+// $Id$
+
+#include "SimpleNull_exec.h"
+#include "ciao/Logger/Log_Macros.h"
+
+namespace CIAO_Simple_SimpleNull_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: SimpleNull_exec_i
+ //==================================================================
+
+ SimpleNull_exec_i::SimpleNull_exec_i (void)
+ {
+ CIAO_TRACE ("SimpleNull_exec_i::SimpleNull_exec_i (void)");
+ CIAO_DEBUG ((LM_EMERGENCY, "SimpleNull - Test - Lifecycle event - SimpleNull_exec_i::SimpleNull_exec_i (void)\n"));
+ }
+
+ SimpleNull_exec_i::~SimpleNull_exec_i (void)
+ {
+ CIAO_TRACE ("SimpleNull_exec_i::~SimpleNull_exec_i");
+ CIAO_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)
+ {
+ CIAO_TRACE ("SimpleNull_exec_i::set_session_context");
+ CIAO_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 ()
+ {
+ CIAO_TRACE ("SimpleNull_exec_i::configuration_complete\n");
+ CIAO_DEBUG ((LM_EMERGENCY, "SimpleNull - Test - Lifecycle event - SimpleNull_exec_i::configuration_complete\n"));
+ // Your code here.
+ }
+
+ void
+ SimpleNull_exec_i::ccm_activate ()
+ {
+ CIAO_TRACE ("SimpleNull_exec_i::ccm_activate");
+ CIAO_DEBUG ((LM_EMERGENCY, "SimpleNull - Test - Lifecycle event - SimpleNull_exec_i::ccm_activate\n"));
+ // Your code here.
+ }
+
+ void
+ SimpleNull_exec_i::ccm_passivate ()
+ {
+ CIAO_TRACE ("SimpleNull_exec_i::ccm_passivate");
+ CIAO_DEBUG ((LM_EMERGENCY, "SimpleNull - Test - Lifecycle event - SimpleNull_exec_i::ccm_passivate\n"));
+ // Your code here.
+ }
+
+ void
+ SimpleNull_exec_i::ccm_remove ()
+ {
+ CIAO_TRACE ("SimpleNull_exec_i::ccm_remove");
+ CIAO_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)
+ {
+ CIAO_TRACE ("SimpleNullHome_exec_i::SimpleNullHome_exec_i");
+ CIAO_DEBUG ((LM_EMERGENCY, "SimpleNull - Test - Lifecycle event - SimpleNullHome_exec_i::SimpleNullHome_exec_i\n"));
+ }
+
+ SimpleNullHome_exec_i::~SimpleNullHome_exec_i (void)
+ {
+ CIAO_TRACE ("SimpleNullHome_exec_i::~SimpleNullHome_exec_i");
+ CIAO_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 ()
+ {
+ CIAO_TRACE ("SimpleNullHome_exec_i::create");
+ CIAO_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)
+ {
+ CIAO_TRACE ("create_Simple_SimpleNullHome_Impl");
+ CIAO_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..057981b9711
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleNull_exec.h
@@ -0,0 +1,101 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#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..37248cf6cab
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider.idl
@@ -0,0 +1,22 @@
+// $Id$
+
+#ifndef SIMPLE_PROVIDER_IDL
+#define SIMPLE_PROVIDER_IDL
+
+#include "SimpleCommon.idl"
+#include "SimpleCommonE.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..6d2866ec8de
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider_exec.cpp
@@ -0,0 +1,160 @@
+// $Id$
+
+#include "SimpleProvider_exec.h"
+#include "ciao/Logger/Log_Macros.h"
+
+namespace CIAO_Simple_SimpleProvider_Impl
+{
+ //==================================================================
+ // Facet Executor Implementation Class: Trigger_exec_i
+ //==================================================================
+
+ Trigger_exec_i::Trigger_exec_i (void)
+ {
+ CIAO_TRACE ("Trigger_exec_i::Trigger_exec_i (void)");
+ }
+
+ Trigger_exec_i::~Trigger_exec_i (void)
+ {
+ CIAO_TRACE ("Trigger_exec_i::~Trigger_exec_i (void)");
+ }
+
+ // Operations from ::Simple::Trigger
+
+ void
+ Trigger_exec_i::hello (
+ const char * hello )
+ {
+ CIAO_TRACE ("Trigger_exec_i::hello ()");
+ // Your code here.
+ CIAO_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)
+ {
+ CIAO_TRACE ("SimpleProvider_exec_i::SimpleProvider_exec_i (void)");
+ }
+
+ SimpleProvider_exec_i::~SimpleProvider_exec_i (void)
+ {
+ CIAO_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 ()
+ {
+ CIAO_TRACE ("SimpleProvider_exec_i::get_trig ()");
+ return new Trigger_exec_i ();
+ }
+
+ // Operations from Components::SessionComponent
+
+ void
+ SimpleProvider_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ CIAO_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 ()
+ {
+ CIAO_TRACE ("SimpleProvider_exec_i::configuration_complete ()");
+ // Your code here.
+ }
+
+ void
+ SimpleProvider_exec_i::ccm_activate ()
+ {
+ CIAO_TRACE ("SimpleProvider_exec_i::ccm_activate ()");
+ // Your code here.
+ }
+
+ void
+ SimpleProvider_exec_i::ccm_passivate ()
+ {
+ CIAO_TRACE ("SimpleProvider_exec_i::ccm_passivate ()");
+ // Your code here.
+ }
+
+ void
+ SimpleProvider_exec_i::ccm_remove ()
+ {
+ CIAO_TRACE ("SimpleProvider_exec_i::ccm_remove ()");
+ // Your code here.
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: SimpleProviderHome_exec_i
+ //==================================================================
+
+ SimpleProviderHome_exec_i::SimpleProviderHome_exec_i (void)
+ {
+ CIAO_TRACE ("SimpleProviderHome_exec_i::SimpleProviderHome_exec_i (void)");
+ }
+
+ SimpleProviderHome_exec_i::~SimpleProviderHome_exec_i (void)
+ {
+ CIAO_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 ()
+ {
+ CIAO_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)
+ {
+ CIAO_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..183d94a8ab8
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleProvider_exec.h
@@ -0,0 +1,116 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#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 (void);
+ virtual ~Trigger_exec_i (void);
+
+ // Operations from ::Simple::Trigger
+
+ virtual void
+ hello (
+ const char * hello);
+ };
+
+ 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_;
+ };
+
+ 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..5bf38762ae4
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher_exec.cpp
@@ -0,0 +1,130 @@
+// $Id$
+
+#include "SimplePublisher_exec.h"
+#include "ciao/Logger/Log_Macros.h"
+
+namespace CIAO_Simple_SimplePublisher_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: SimplePublisher_exec_i
+ //==================================================================
+
+ SimplePublisher_exec_i::SimplePublisher_exec_i (void)
+ {
+ CIAO_TRACE ("SimplePublisher_exec_i::SimplePublisher_exec_i (void)");
+ }
+
+ SimplePublisher_exec_i::~SimplePublisher_exec_i (void)
+ {
+ CIAO_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)
+ {
+ CIAO_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 ()
+ {
+ CIAO_TRACE ("SimplePublisher_exec_i::configuration_complete ()");
+ // Your code here.
+ }
+
+ void
+ SimplePublisher_exec_i::ccm_activate ()
+ {
+ CIAO_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 ()
+ {
+ CIAO_TRACE ("SimplePublisher_exec_i::ccm_passivate ()");
+ // Your code here.
+ }
+
+ void
+ SimplePublisher_exec_i::ccm_remove ()
+ {
+ CIAO_TRACE ("SimplePublisher_exec_i::ccm_remove ()");
+ // Your code here.
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: SimplePublisherHome_exec_i
+ //==================================================================
+
+ SimplePublisherHome_exec_i::SimplePublisherHome_exec_i (void)
+ {
+ CIAO_TRACE ("SimplePublisherHome_exec_i::SimplePublisherHome_exec_i (void)");
+ }
+
+ SimplePublisherHome_exec_i::~SimplePublisherHome_exec_i (void)
+ {
+ CIAO_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 ()
+ {
+ CIAO_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)
+ {
+ CIAO_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..a0b187014ee
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimplePublisher_exec.h
@@ -0,0 +1,98 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#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..7a975823f95
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleUser_exec.cpp
@@ -0,0 +1,151 @@
+// $Id$
+
+#include "SimpleUser_exec.h"
+#include "ciao/Logger/Log_Macros.h"
+
+namespace CIAO_Simple_SimpleUser_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: SimpleUser_exec_i
+ //==================================================================
+
+ SimpleUser_exec_i::SimpleUser_exec_i (void)
+ {
+ CIAO_TRACE ("SimpleUser_exec_i::SimpleUser_exec_i (void)");
+ }
+
+ SimpleUser_exec_i::~SimpleUser_exec_i (void)
+ {
+ CIAO_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)
+ {
+ CIAO_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 ()
+ {
+ CIAO_TRACE ("SimpleUser_exec_i::configuration_complete ()");
+ // Your code here.
+ }
+
+ void
+ SimpleUser_exec_i::ccm_activate ()
+ {
+ CIAO_TRACE ("SimpleUser_exec_i::ccm_activate ()");
+
+ ::Simple::Trigger_var trig (this->context_->get_connection_trig ());
+
+ if (CORBA::is_nil (trig.in ()))
+ {
+ CIAO_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)
+ {
+ CIAO_ERROR ((LM_ERROR, "SimpleUser_exec_i::ccm_activate () - "
+ "Caught CORBA exception, details follow:\n"));
+ ex._tao_print_exception ("SimpleUser_exec_i::ccm_activate () - ");
+ }
+ catch (...)
+ {
+ CIAO_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 ()
+ {
+ CIAO_TRACE ("SimpleUser_exec_i::ccm_passivate ()");
+ // Your code here.
+ }
+
+ void
+ SimpleUser_exec_i::ccm_remove ()
+ {
+ CIAO_TRACE ("SimpleUser_exec_i::ccm_remove ()");
+ // Your code here.
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: SimpleUserHome_exec_i
+ //==================================================================
+
+ SimpleUserHome_exec_i::SimpleUserHome_exec_i (void)
+ {
+ CIAO_TRACE ("SimpleUserHome_exec_i::SimpleUserHome_exec_i (void)");
+ }
+
+ SimpleUserHome_exec_i::~SimpleUserHome_exec_i (void)
+ {
+ CIAO_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 ()
+ {
+ CIAO_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)
+ {
+ CIAO_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..0e5627cca4f
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/Components/SimpleUser_exec.h
@@ -0,0 +1,98 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#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/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..dc865e8d0a3
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/MultiplexConnectionExplicitHome_NS.cdp
@@ -0,0 +1,286 @@
+<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>
+ <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>
+ </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#SimpleMultipleUserComponent</location>
+ <provider>false</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+<!-- <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>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="SimpleProviderComponentInstance" />
+ </internalEndpoint>
+ <externalReference>
+ <location>corbaname:rir:/NameService#SimpleMultipleUserComponent</location>
+ <provider>false</provider>
+ <portName>trig</portName>
+ <supportedType>Meaningless</supportedType>
+ </externalReference>
+<!--
+ <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>MultiplexReceptacle</kind>
+ <instance xmi:idref="SimpleMultipleUserComponentInstanceReverse" />
+ </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/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/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..c60ad818d6f
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/SimplexConnectionExplicitHome_NS.cdp
@@ -0,0 +1,279 @@
+<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>
+ <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>
+<!-- <internalEndpoint>
+ <portName>trig</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="SimpleUserComponentInstance" />
+ </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>
+ <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_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/em_launcher.mpc b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/em_launcher.mpc
new file mode 100644
index 00000000000..0d18fbd856c
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/em_launcher.mpc
@@ -0,0 +1,6 @@
+// $Id$
+project(simple_em_launcher) : ciao_config_handlers, dance_nodemanager_stub, dance_domainapplication_stub, dance_executionmanager_stub, ciao_logger {
+ Source_Files {
+ simple_em_launcher.cpp
+ }
+}
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..3c6d113f39a
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test.pl
@@ -0,0 +1,174 @@
+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;
+
+$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
+$TAO_ROOT = "$ENV{'TAO_ROOT'}";
+$DAnCE = "$ENV{'DANCE_ROOT'}";
+$daemons_running = 0;
+$em_running = 0;
+$ns_running = 0;
+$daemons = 2;
+@ports = ( 60001, 60002 );
+@iorfiles = ( "NodeApp1.ior", "NodeApp2.ior" );
+@nodenames = ( "NodeOne", "NodeTwo" );
+$status = 0;
+$dat_file = "NodeManagerMap.dat";
+
+$nsior = PerlACE::LocalFile ("ns.ior");
+
+PerlACE::add_lib_path ('../Components');
+
+$E = 0;
+$EM = 0;
+$retval = 0;
+
+# Delete if there are any .ior files.
+sub delete_ior_files {
+ for ($i = 0; $i < $daemons; ++$i) {
+ unlink $iorfiles[$i];
+ }
+ unlink PerlACE::LocalFile ("EM.ior");
+ unlink PerlACE::LocalFile ("Receiver.ior");
+ unlink PerlACE::LocalFile ("Sender.ior");
+ unlink PerlACE::LocalFile ("DAM.ior");
+ unlink PerlACE::LocalFile ("ns.ior");
+}
+
+sub kill_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i) {
+ $Daemons[$i]->Kill (); $Daemons[$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);
+ }
+
+}
+
+sub run_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i)
+ {
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+ $nodename = $nodenames[$i];
+ $iiop = "iiop://localhost:$port";
+ $node_app = "$CIAO_ROOT/bin/ciao_componentserver";
+
+ $d_cmd = "$DAnCE/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";
+
+ $Daemons[$i] = new PerlACE::Process ($d_cmd, $d_param);
+ $result = $Daemons[$i]->Spawn ();
+ push(@processes, $Daemons[$i]);
+
+ if (PerlACE::waitforfile_timed ($iorfile,
+ 30) == -1) {
+ print STDERR
+ "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
+ for (; $i >= 0; --$i) {
+ $Daemons[$i]->Kill (); $Daemons[$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) {
+ print "Starting test for deployment $file\n";
+ delete_ior_files ();
+
+ print STDERR "Starting Naming Service\n";
+
+ $NS = new PerlACE::Process ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 0 -ORBEndpoint iiop://localhost:60003 -o ns.ior");
+ $NS->Spawn ();
+
+ if (PerlACE::waitforfile_timed ($nsior, $PerlACE::wait_interval_for_process_creation) == -1)
+ {
+ print STDERR "ERROR: cannot find naming service IOR file\n";
+ $NS->Kill ();
+ exit 1;
+ }
+ $ns_running = 1;
+
+# Set up NamingService environment
+ $ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService";
+
+
+# Invoke node daemons.
+ print "Invoking node daemons\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 = new PerlACE::Process ("$DAnCE/bin/dance_execution_manager",
+ "-eEM.ior --domain-nc corbaloc:rir:/NameService");
+ $EM->Spawn ();
+
+ if (PerlACE::waitforfile_timed ("EM.ior",
+ $PerlACE::wait_interval_for_process_creation) == -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 - start the application -\n";
+ $E = new PerlACE::Process ("simple_em_launcher",
+ "file://EM.ior $file");
+
+ $status = $E->SpawnWaitKill (5000);
+
+ if ($status != 0)
+ {
+ print "ERROR: simple_em_launcher returned an error code while deploying $file\n";
+ $retval = -1;
+ }
+
+ delete_ior_files ();
+ kill_open_processes ();
+}
+
+delete_ior_files ();
+kill_open_processes ();
+
+exit $status;
diff --git a/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/simple_em_launcher.cpp b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/simple_em_launcher.cpp
new file mode 100644
index 00000000000..c742d37c181
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/simple_em_launcher.cpp
@@ -0,0 +1,130 @@
+/**
+ * @file simple_em_launcher.cpp
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * // $Id$
+ * Launches then immediately tears down a plan.
+ */
+
+
+#include "ace/OS_NS_unistd.h"
+#include "tao/ORB.h"
+#include "ciao/Logger/Logger_Service.h"
+#include "ciao/Logger/Log_Macros.h"
+#include "DAnCE/Logger/Logger_Service.h"
+#include "DAnCE/Logger/Log_Macros.h"
+#include "Deployment/Deployment_DomainApplicationC.h"
+#include "Deployment/Deployment_ExecutionManagerC.h"
+#include "Deployment/Deployment_DeploymentPlanC.h"
+#include "tools/Config_Handlers/XML_File_Intf.h"
+
+int usage ()
+{
+ DANCE_ERROR ((LM_ERROR, "simple_nm_launcher <nm_url> <plan>\n"));
+ return -1;
+}
+
+#include <iostream>
+
+int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ CIAO_DISABLE_TRACE ();
+
+ auto_ptr<CIAO::Logger_Service> logger;
+
+ CIAO::Logger_Service
+ * dlf = ACE_Dynamic_Service<CIAO::Logger_Service>::instance ("CIAO_Logger_Backend_Factory");
+
+ if (!dlf)
+ dlf = new CIAO::Logger_Service;
+
+ logger.reset (dlf);
+ logger->init (argc, argv);
+
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ if (argc != 3)
+ return usage ();
+
+ try
+ {
+ DANCE_DEBUG ((LM_INFO, ACE_TEXT ("*** simple_em_launcher: parsing XML\n")));
+ // Parse plan
+ CIAO::Config_Handlers::XML_File_Intf xml (argv[2]);
+ xml.add_search_path (ACE_TEXT ("CIAO_ROOT"), ACE_TEXT ("/docs/schema/"));
+
+ auto_ptr< ::Deployment::DeploymentPlan> plan (xml.release_plan ());
+
+ if (plan.get () == 0)
+ {
+ DANCE_ERROR ((LM_ERROR, ACE_TEXT ("*** error parsing XML document\n")));
+ throw 1;
+ }
+
+
+ DANCE_DEBUG ((LM_INFO, ACE_TEXT ("*** simple_em_launcher: resoling execution manager reference.\n")));
+ CORBA::Object_var obj = orb->string_to_object (argv[1]);
+ Deployment::ExecutionManager_var em = Deployment::ExecutionManager::_narrow (obj.in ());
+
+ if (CORBA::is_nil (em.in ()))
+ {
+ DANCE_ERROR ((LM_ERROR, ACE_TEXT ("*** simple_em_launcher: ExecutionManager reference is nil.")));
+ throw 1;
+ }
+
+ DANCE_DEBUG ((LM_INFO, ACE_TEXT ("*** simple_em_launcher: calling prepareplan.\n")));
+ Deployment::DomainApplicationManager_var dam = em->preparePlan (*plan,
+ Deployment::ResourceCommitmentManager::_nil ());
+
+ DANCE_DEBUG ((LM_INFO, ACE_TEXT ("*** simple_em_launcher: calling startLaunch\n")));
+ Deployment::Connections_var conns;
+ Deployment::Properties props;
+ Deployment::Application_var app = dam->startLaunch (props, conns.out ());
+ Deployment::DomainApplication_var da = Deployment::DomainApplication::_narrow (app.in ());
+
+ DANCE_DEBUG ((LM_INFO, ACE_TEXT ("*** simple_em_launcher: calling finishLaunch\n")));
+ da->finishLaunch (conns.in (), false);
+
+ DANCE_DEBUG ((LM_INFO, ACE_TEXT ("*** simple_em_launcher: calling start\n")));
+ da->start ();
+
+ DANCE_DEBUG ((LM_INFO, ACE_TEXT ("*** simple_em_launcher: start finished, sleeping 5 seconds.\n")));
+ ACE_OS::sleep (5);
+ DANCE_DEBUG ((LM_INFO, ACE_TEXT ("*** simple_em_launcher: waking up from sleep, calling destroyApplication\n")));
+
+ dam->destroyApplication (da.in ());
+
+ DANCE_DEBUG ((LM_INFO, ACE_TEXT ("*** simple_em_launcher: calling destroyManager\n")));
+
+ em->destroyManager (dam.in ());
+
+ DANCE_DEBUG ((LM_INFO, ACE_TEXT ("*** simple_em_launcher: destroyManager completed.\n")));
+
+ orb->destroy ();
+ }
+ catch (const Deployment::StopError &ex)
+ {
+ DANCE_ERROR ((LM_ERROR, ACE_TEXT ("*** Caught StopError exception with name %C and reason %C\n"),
+ ex.name.in (), ex.reason.in ()));
+ return -1;
+ }
+ catch (const Deployment::StartError &ex)
+ {
+ DANCE_ERROR ((LM_ERROR, ACE_TEXT ("*** Caught StartError exception with name %C and reason %C\n"),
+ ex.name.in (), ex.reason.in ()));
+ return -1;
+ }
+ catch (const CORBA::Exception &ex)
+ {
+ DANCE_ERROR ((LM_ERROR, ACE_TEXT ("*** Caught CORBA exception: %C\n"),
+ ex._info ().c_str ()));
+ return -1;
+
+ }
+ catch (...)
+ {
+ orb->destroy ();
+ DANCE_ERROR ((LM_ERROR, ACE_TEXT ("*** Caught unknown exception\n")));
+ return -1;
+ }
+ return 0;
+}
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/nm_launcher.mpc b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/nm_launcher.mpc
new file mode 100644
index 00000000000..818130bfbb4
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/nm_launcher.mpc
@@ -0,0 +1,6 @@
+// $Id$
+project(simple_nm_launcher) : ciao_config_handlers, dance_nodemanager_stub, dance_nodeapplication_stub, dance_logger {
+ Source_Files {
+ simple_nm_launcher.cpp
+ }
+}
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..7035cec2bcf
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/run_test.pl
@@ -0,0 +1,117 @@
+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;
+
+$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
+$TAO_ROOT = "$ENV{'TAO_ROOT'}";
+$DAnCE = "$ENV{'DANCE_ROOT'}";
+$daemons_running = 0;
+$daemons = 1;
+@ports = ( 60001 );
+@iorfiles = ( "NodeApp1.ior" );
+@nodenames = ( "Node" );
+$status = 0;
+
+PerlACE::add_lib_path ('../Components');
+
+$E = 0;
+$EM = 0;
+
+# Delete if there are any .ior files.
+sub delete_ior_files {
+ for ($i = 0; $i < $daemons; ++$i) {
+ unlink $iorfiles[$i];
+ }
+}
+
+sub kill_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i) {
+ $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1);
+ }
+}
+
+sub kill_open_processes {
+ if ($daemons_running == 1) {
+ kill_node_daemons ();
+ }
+}
+
+sub run_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i)
+ {
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+ $nodename = $nodenames[$i];
+ $iiop = "iiop://localhost:$port";
+ $node_app = "$CIAO_ROOT/bin/ciao_componentserver";
+
+ $d_cmd = "$DAnCE/bin/dance_node_manager";
+ $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30";
+
+ $Daemons[$i] = new PerlACE::Process ($d_cmd, $d_param);
+ $result = $Daemons[$i]->Spawn ();
+ push(@processes, $Daemons[$i]);
+
+ if (PerlACE::waitforfile_timed ($iorfile,
+ 30) == -1) {
+ print STDERR
+ "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
+ for (; $i >= 0; --$i) {
+ $Daemons[$i]->Kill (); $Daemons[$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) {
+ delete_ior_files ();
+
+ print "Running test for plan $file\n";
+
+ # Invoke node daemons.
+ 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 executor - start the application -.
+ print "Launching the plan. file://NodeApp1.ior \n";
+ $E = new PerlACE::Process ("simple_nm_launcher",
+ "file://NodeApp1.ior $file");
+
+ $status = $E->SpawnWaitKill (5000);
+
+ if ($status != 0)
+ {
+ print "ERROR: simple_nm_launcher returned error status $status\n";
+ }
+
+ print "Test for plan $file succeeded\n";
+ kill_open_processes ();
+}
+
+
+exit $status;
diff --git a/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/simple_nm_launcher.cpp b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/simple_nm_launcher.cpp
new file mode 100644
index 00000000000..2e7258ff89c
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/simple_nm_launcher.cpp
@@ -0,0 +1,127 @@
+/**
+ * @file simple_nm_launcher.cpp
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * $Id$
+ * Launches then immediately tears down a plan.
+ */
+
+#include "ace/OS_NS_unistd.h"
+#include "tao/ORB.h"
+#include "DAnCE/Logger/Logger_Service.h"
+#include "DAnCE/Logger/Log_Macros.h"
+#include "Deployment/Deployment_NodeApplicationC.h"
+#include "Deployment/Deployment_NodeManagerC.h"
+#include "Deployment/Deployment_DeploymentPlanC.h"
+#include "tools/Config_Handlers/XML_File_Intf.h"
+
+int usage ()
+{
+ DANCE_ERROR ((LM_ERROR, "simple_nm_launcher <nm_url> <plan>\n"));
+ return -1;
+}
+
+#include <iostream>
+
+int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ DANCE_DISABLE_TRACE ();
+
+ auto_ptr<DAnCE::Logger_Service> logger;
+
+ DAnCE::Logger_Service
+ * dlf = ACE_Dynamic_Service<DAnCE::Logger_Service>::instance ("DAnCE_Logger_Backend_Factory");
+
+ if (!dlf)
+ dlf = new DAnCE::Logger_Service;
+
+ logger.reset (dlf);
+ logger->init (argc, argv);
+
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ if (argc != 3)
+ return usage ();
+
+ try
+ {
+ DANCE_DEBUG ((LM_DEBUG,ACE_TEXT ("*** simple_nm_launcher: parsing XML\n")));
+ // Parse plan
+ CIAO::Config_Handlers::XML_File_Intf xml (argv[2]);
+ xml.add_search_path (ACE_TEXT ("CIAO_ROOT"), ACE_TEXT ("/docs/schema/"));
+
+ auto_ptr< ::Deployment::DeploymentPlan> plan (xml.release_plan ());
+
+ if (plan.get () == 0)
+ {
+ DANCE_ERROR ((LM_ERROR,ACE_TEXT ("*** error parsing XML document\n")));
+ throw 1;
+ }
+
+
+ DANCE_DEBUG ((LM_DEBUG,ACE_TEXT ("*** simple_nm_launcher: resoling node manager reference.\n")));
+ CORBA::Object_var obj = orb->string_to_object (argv[1]);
+ Deployment::NodeManager_var nm = Deployment::NodeManager::_narrow (obj.in ());
+
+ if (CORBA::is_nil (nm.in ()))
+ {
+ DANCE_ERROR ((LM_ERROR,ACE_TEXT ("*** simple_nm_launcher: NodeManager reference is nil.")));
+ throw 1;
+ }
+
+ DANCE_DEBUG ((LM_DEBUG,ACE_TEXT ("*** simple_nm_launcher: calling prepareplan.\n")));
+ Deployment::NodeApplicationManager_var nam = nm->preparePlan (*plan,
+ Deployment::ResourceCommitmentManager::_nil ());
+
+ DANCE_DEBUG ((LM_DEBUG,ACE_TEXT ("*** simple_nm_launcher: calling startLaunch\n")));
+ Deployment::Connections_var conns;
+ Deployment::Properties props;
+ Deployment::Application_var app = nam->startLaunch (props, conns.out ());
+ Deployment::NodeApplication_var na = Deployment::NodeApplication::_narrow (app.in ());
+
+ DANCE_DEBUG ((LM_DEBUG,ACE_TEXT ("*** simple_nm_launcher: calling finishLaunch\n")));
+ na->finishLaunch (conns.in (), false);
+
+ DANCE_DEBUG ((LM_DEBUG,ACE_TEXT ("*** simple_nm_launcher: calling start\n")));
+ na->start ();
+
+ DANCE_DEBUG ((LM_DEBUG,ACE_TEXT ("*** simple_nm_launcher: start finished, sleeping 5 seconds.\n")));
+ ACE_OS::sleep (5);
+ DANCE_DEBUG ((LM_DEBUG,ACE_TEXT ("*** simple_nm_launcher: waking up from sleep, calling destroyApplication\n")));
+
+ nam->destroyApplication (na.in ());
+
+ DANCE_DEBUG ((LM_DEBUG,ACE_TEXT ("*** simple_nm_launcher: calling destroyManager\n")));
+
+ nm->destroyManager (nam.in ());
+
+ DANCE_DEBUG ((LM_DEBUG,ACE_TEXT ("*** simple_nm_launcher: destroyManager completed.\n")));
+
+ orb->destroy ();
+ }
+ catch (Deployment::StopError &ex)
+ {
+ DANCE_ERROR ((LM_ERROR,ACE_TEXT ("*** Caught StopError exception with name %s and reason %s\n"),
+ ex.name.in (), ex.reason.in ()));
+ return -1;
+ }
+ catch (Deployment::StartError &ex)
+ {
+ DANCE_ERROR ((LM_ERROR,ACE_TEXT ("*** Caught StartError exception with name %s and reason %s\n"),
+ ex.name.in (), ex.reason.in ()));
+ return -1;
+ }
+ catch (CORBA::Exception &ex)
+ {
+ DANCE_ERROR ((LM_ERROR,ACE_TEXT ("*** Caught CORBA exception: %s\n"),
+ ex._info ().c_str ()));
+ return -1;
+
+ }
+ catch (...)
+ {
+ orb->destroy ();
+ DANCE_ERROR ((LM_ERROR,ACE_TEXT ("*** Caught unknown exception\n")));
+ return -1;
+ }
+ return 0;
+}
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..e87a25474f9
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/DeploymentPlanDump/DeploymentPlanDump.mpc
@@ -0,0 +1,9 @@
+// $Id$
+project : dance, taoexe, xerces, aceexe, ciao_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..fc3e99a981f
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/DeploymentPlanDump/test.cpp
@@ -0,0 +1,36 @@
+// $Id$
+#include "tools/Config_Handlers/DnC_Dump.h"
+#include "tools/Config_Handlers/XML_File_Intf.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+int ACE_TMAIN (int argc, ACE_TCHAR * argv[])
+{
+ try
+ {
+ if (argc < 1)
+ {
+ DANCE_ERROR((LM_ERROR,
+ ACE_TEXT ("[%M] 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 ("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 (...)
+ {
+ DANCE_ERROR((LM_ERROR, ACE_TEXT ("[%M] 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..50d8831bfbd
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/DeploymentPlanTestReferences/DeploymentPlanTestReferences.mpc
@@ -0,0 +1,9 @@
+// $Id$
+project : dance, taolib, xerces, ciao_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..92930bb3fdf
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/DeploymentPlanTestReferences/test.cpp
@@ -0,0 +1,52 @@
+// $Id$
+#include "ace/Auto_Ptr.h"
+#include "tools/Config_Handlers/DnC_Dump.h"
+#include "tools/Config_Handlers/XML_File_Intf.h"
+#include "DAnCE/Logger/Log_Macros.h"
+
+int ACE_TMAIN (int argc, ACE_TCHAR * argv[])
+{
+ try
+ {
+ if (argc < 1)
+ {
+ DANCE_ERROR((LM_ERROR, ACE_TEXT ("[%M] 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 ("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)
+ {
+ DANCE_ERROR((LM_ERROR, ACE_TEXT ("[%M] 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)
+ {
+ DANCE_ERROR((LM_ERROR, ACE_TEXT ("[%M] incorrect artifactRef in the implementation %C.\n"), plan->implementation[i].name.in()));
+ return 1;
+ }
+ }
+ }
+ }
+ catch (...)
+ {
+ DANCE_ERROR((LM_ERROR, ACE_TEXT ("[%M] 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..3f2c7da54bb
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/DeploymentTest1/DeploymentTest1.mpc
@@ -0,0 +1,9 @@
+// $Id$
+project : dance, xerces, ciao_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..10da6525e46
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/DeploymentTest1/test.cpp
@@ -0,0 +1,67 @@
+// $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 "tools/Config_Handlers/DnC_Dump.h"
+#include "tools/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 ("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());
+
+ DANCE_DEBUG((LM_DEBUG, "[%M] 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;
+ }
+ DANCE_DEBUG((LM_DEBUG, ACE_TEXT ("[%M] preparePlan\n")));
+ Deployment::DomainApplicationManager_var dam = em->preparePlan (*pplan, Deployment::ResourceCommitmentManager::_nil());
+ DANCE_DEBUG((LM_DEBUG, ACE_TEXT ("[%M] 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 ()))
+ {
+ DANCE_DEBUG((LM_DEBUG, ACE_TEXT ("[%M] narrow fails\n")));
+ }
+ DANCE_DEBUG((LM_DEBUG, ACE_TEXT ("[%M] finishLaunch\n")));
+ da->finishLaunch (dc.in(), true);
+ DANCE_DEBUG((LM_DEBUG, ACE_TEXT ("[%M] Test succeded!\n")));
+
+ }
+ catch (const CORBA::Exception &e)
+ {
+ e._tao_print_exception ("DeploymentTest1::main\t\n");
+ DANCE_ERROR((LM_ERROR, ACE_TEXT ("[%M] Uncaught CORBA exception\n")));
+ return 1;
+ }
+ catch (...)
+ {
+ return 1;
+ }
+
+ return 0;
+}
diff --git a/modules/CIAO/DAnCE/tests/MocksTest/MockObjectHome.cpp b/modules/CIAO/DAnCE/tests/MocksTest/MockObjectHome.cpp
new file mode 100644
index 00000000000..4b28594ba85
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/MocksTest/MockObjectHome.cpp
@@ -0,0 +1,19 @@
+// $Id$
+#include "MockObjectHome.h"
+
+::Components::CCMObject_ptr
+MockObjectHome::create_component_with_config_values (
+ const ::Components::ConfigValues & config
+)
+ {
+ return MockHome_Impl::create_component_with_config_values (config);
+ }
+
+extern "C" MocksTest_Export MockHome_Impl *create_MockHome (void);
+
+MockHome_Impl*create_MockHome (void)
+ {
+ MockHome_Impl* home = 0;
+ ACE_NEW_RETURN (home, MockObjectHome (), 0);
+ return home;
+ }
diff --git a/modules/CIAO/DAnCE/tests/MocksTest/MockObjectHome.h b/modules/CIAO/DAnCE/tests/MocksTest/MockObjectHome.h
new file mode 100644
index 00000000000..ad037096ba7
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/MocksTest/MockObjectHome.h
@@ -0,0 +1,24 @@
+// $Id$
+#ifndef MOCKOBJECTHOME_H_
+#define MOCKOBJECTHOME_H_
+
+#include "MocksTest_Export.h"
+#include "Mocks/MockHome_Impl.h"
+
+class MocksTest_Export MockObjectHome : public MockHome_Impl
+ {
+ public:
+ MockObjectHome()
+ {};
+ virtual ~MockObjectHome()
+ {};
+
+ virtual ::Components::CCMObject_ptr create_component_with_config_values (
+ const ::Components::ConfigValues & config
+ );
+
+ protected:
+ private:
+ };
+
+#endif /*MOCKOBJECTHOME_H_*/
diff --git a/modules/CIAO/DAnCE/tests/MocksTest/MockTest.cdp b/modules/CIAO/DAnCE/tests/MocksTest/MockTest.cdp
new file mode 100644
index 00000000000..f3478812063
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/MocksTest/MockTest.cdp
@@ -0,0 +1,196 @@
+<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>MockTest</label>
+ <UUID>MockTest</UUID>
+
+ <realizes></realizes>
+
+ <!-- Implementations declarations -->
+
+ <!-- Mock object implementation-->
+ <!-- Home implementation -->
+ <implementation id="MockObjectHomeImplementation">
+ <name>MockObjectHomeImplementation</name>
+ <source/>
+ <artifact>MockObjectArtifact</artifact>
+
+ <execParameter>
+ <!-- entrypoint as exec parameter (see §10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_MockHome</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>
+ </implementation>
+
+ <!-- Component implementation -->
+ <implementation id="MockObjectImplementation">
+ <name>MockObjectImplementation</name>
+ <source/>
+ <artifact>MockObjectArtifact</artifact>
+ </implementation>
+
+
+
+
+ <!-- Instances declarations -->
+
+ <!-- MockObjectHome instances-->
+ <instance id="MockObjectHome">
+ <name>MockObjectHome</name>
+ <node>MyHost</node>
+ <!-- hostname -->
+ <source/>
+ <implementation>MockObjectHomeImplementation</implementation>
+ <configProperty>
+ <!-- PROCESS_DESTINATION -->
+ <name>cdmw.config.ProcessDestination</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>MockTest</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance id="MockObject">
+ <name>MockObject</name>
+ <node>MyHost</node>
+ <source/>
+ <implementation>MockObjectImplementation</implementation>
+
+ <configProperty>
+ <!-- HOME -->
+ <name>cdmw.component_home</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>MockObjectHome</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <configProperty>
+ <!-- COMPONENT_NAME -->
+ <name>cdmw.config.ComponentName</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>MockObject</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <!-- Artifacts declarations -->
+ <artifact id="MockObjectArtifact">
+ <name>MockObjectArtifact</name>
+ <source/>
+ <node/>
+ <location>./libMockObject.so</location>
+ </artifact>
+
+ </Deployment:DeploymentPlan>
diff --git a/modules/CIAO/DAnCE/tests/MocksTest/MockTest.mpc b/modules/CIAO/DAnCE/tests/MocksTest/MockTest.mpc
new file mode 100644
index 00000000000..2de6e7bf904
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/MocksTest/MockTest.mpc
@@ -0,0 +1,28 @@
+// -*- MPC -*-
+// $Id$
+
+project(*MockTest): dance, taoserver, naming, dance_mocks {
+ requires += ofccm
+ exename = MockTest
+ after += MockObject
+
+ Source_Files {
+ MocksTest.cpp
+ }
+
+}
+
+project(*MockObject): dance_mocks{
+ requires += ofccm
+ sharedname = MockObject
+ dynamicflags = MOCKTEST_BUILD_DLL
+
+ Source_Files {
+ MockObjectHome.cpp
+ }
+
+ Header_Files {
+ MockObjectHome.h
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/MocksTest/MocksTest.cpp b/modules/CIAO/DAnCE/tests/MocksTest/MocksTest.cpp
new file mode 100644
index 00000000000..fc0779ea96c
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/MocksTest/MocksTest.cpp
@@ -0,0 +1,37 @@
+// $Id$
+#include "orbsvcs/orbsvcs/CosNamingC.h"
+#include "Mocks/ComponentServer_Impl.h"
+#include "tao/ORB.h"
+
+int ACE_TMAIN (int argc, ACE_TCHAR* argv[])
+ {
+
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ CORBA::Object_var obj = orb->resolve_initial_references ("RootPOA");
+ PortableServer::POA_var poa = PortableServer::POA::_narrow (obj.in ());
+ PortableServer::POAManager_var poa_manager = poa->the_POAManager ();
+ poa_manager->activate ();
+
+ obj = orb->resolve_initial_references ("NameService");
+ CosNaming::NamingContext_var naming = CosNaming::NamingContext::_narrow (obj.in ());
+
+ ComponentServer_Impl* comp_server = 0;
+
+ ACE_NEW_THROW_EX (comp_server,
+ ComponentServer_Impl (orb.in (), poa.in ()),
+ CORBA::NO_MEMORY());
+
+ PortableServer::ObjectId_var oid = poa->activate_object (comp_server);
+ obj = poa->id_to_reference (oid.in ());
+ CdmwCcmComponentServer::ComponentServer_var server = CdmwCcmComponentServer::ComponentServer::_narrow (obj.in ());
+
+ CosNaming::Name name(1);
+ name.length(1);
+ name[0].id = CORBA::string_dup("MockTest");
+ name[0].kind = CORBA::string_dup("ComponentServer");
+ naming->bind (name, server.in ());
+
+ orb->run ();
+ return 0;
+ }
diff --git a/modules/CIAO/DAnCE/tests/MocksTest/MocksTest_Export.h b/modules/CIAO/DAnCE/tests/MocksTest/MocksTest_Export.h
new file mode 100644
index 00000000000..984e865bf1f
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/MocksTest/MocksTest_Export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl MocksTest
+// ------------------------------
+#ifndef MOCKSTEST_EXPORT_H
+#define MOCKSTEST_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (MOCKSTEST_HAS_DLL)
+# define MOCKSTEST_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && MOCKSTEST_HAS_DLL */
+
+#if !defined (MOCKSTEST_HAS_DLL)
+# define MOCKSTEST_HAS_DLL 1
+#endif /* ! MOCKSTEST_HAS_DLL */
+
+#if defined (MOCKSTEST_HAS_DLL) && (MOCKSTEST_HAS_DLL == 1)
+# if defined (MOCKSTEST_BUILD_DLL)
+# define MocksTest_Export ACE_Proper_Export_Flag
+# define MOCKSTEST_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define MOCKSTEST_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* MOCKSTEST_BUILD_DLL */
+# define MocksTest_Export ACE_Proper_Import_Flag
+# define MOCKSTEST_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define MOCKSTEST_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* MOCKSTEST_BUILD_DLL */
+#else /* MOCKSTEST_HAS_DLL == 1 */
+# define MocksTest_Export
+# define MOCKSTEST_SINGLETON_DECLARATION(T)
+# define MOCKSTEST_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* MOCKSTEST_HAS_DLL == 1 */
+
+// Set MOCKSTEST_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (MOCKSTEST_NTRACE)
+# if (ACE_NTRACE == 1)
+# define MOCKSTEST_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define MOCKSTEST_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !MOCKSTEST_NTRACE */
+
+#if (MOCKSTEST_NTRACE == 1)
+# define MOCKSTEST_TRACE(X)
+#else /* (MOCKSTEST_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define MOCKSTEST_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (MOCKSTEST_NTRACE == 1) */
+
+#endif /* MOCKSTEST_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/DAnCE/tests/MocksTest/plCommand.In b/modules/CIAO/DAnCE/tests/MocksTest/plCommand.In
new file mode 100644
index 00000000000..ca7b0873bab
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/MocksTest/plCommand.In
@@ -0,0 +1,5 @@
+I
+am
+the
+chatter
+quit
diff --git a/modules/CIAO/DAnCE/tests/MocksTest/run_test.pl b/modules/CIAO/DAnCE/tests/MocksTest/run_test.pl
new file mode 100755
index 00000000000..5ecaae833c6
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/MocksTest/run_test.pl
@@ -0,0 +1,97 @@
+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;
+
+#delete IOR files
+if (-e em.ior) {
+ unlink "em.ior"
+}
+if (-e ns.ior) {
+ unlink "ns.ior"
+}
+
+$ns_status = 0;
+$mt_status = 0;
+$pl_status = 0;
+$em_status = 0;
+
+if (PerlACE::is_vxworks_test()) {
+ $ns = new PerlACE::ProcessVX ("$ENV{'ACE_ROOT'}/TAO/orbsvcs/Naming_Service/Naming_Service", "-o ns.ior");
+}
+else {
+ $ns = new PerlACE::Process ("$ENV{'ACE_ROOT'}/TAO/orbsvcs/Naming_Service/Naming_Service", "-o ns.ior");
+}
+
+$ns_status = $ns->Spawn();
+sleep 10;
+
+#read NameService IOR
+$data_file = "ns.ior";
+open(DAT, $data_file) || die("ERROR: Could not open file!");
+$ior = <DAT>;
+close(DAT);
+
+if (PerlACE::is_vxworks_test()) {
+ $mt = new PerlACE::ProcessVX ("./MockTest", "-ORBInitRef NameService=file://ns.ior");
+}
+else {
+ $mt = new PerlACE::Process ("./MockTest", "-ORBInitRef NameService=file://ns.ior");
+}
+
+$mt_status = $mt->Spawn();
+sleep 10;
+
+if (PerlACE::is_vxworks_test()) {
+ $em = new PerlACE::ProcessVX ("$ENV{'ACE_ROOT'}/bin/dance", "--log-level 1 -eem.ior --node-mgr MyHost -ORBListenEndpoints iiop://localhost:12345 -ORBInitRef ProcessDestinationNC=file://ns.ior");
+ $pl = new PerlACE::ProcessVX ("$ENV{'ACE_ROOT'}/bin/dance", "--log-level 1 -x MockTest.cdp -k file://em.ior");
+}
+else {
+ $em = new PerlACE::Process ("$ENV{'ACE_ROOT'}/bin/dance", "--log-level 1 -eem.ior --node-mgr MyHost -ORBListenEndpoints iiop://localhost:12345 -ORBInitRef ProcessDestinationNC=file://ns.ior");
+#open (OLD_STDIN, "<STDIN");
+#open (STDIN, "")
+ $pl = new PerlACE::Process ("$ENV{'ACE_ROOT'}/bin/dance", "--log-level 1 -x MockTest.cdp -k file://em.ior");
+}
+
+$em_status = $em->Spawn();
+sleep 30;
+#print STDIN "c\n";
+#open (OLD_STDIN, "<STDIN");
+#open (kid, "|-");
+open (STDIN, "<./plCommand.In");
+$pl_status = $pl->Spawn();
+sleep 10;
+#print kid "c\n";
+
+#print STDIN "c\n";
+sleep 10;
+
+
+$pl_status = $pl->Kill();
+close (STDIN);
+$em_status = $em->Kill();
+
+$ns_status = $ns->Kill();
+
+$mt_status = $mt->Kill();
+
+#delete IOR files
+if (-e em.ior) {
+ unlink "em.ior"
+}
+if (-e ns.ior) {
+ unlink "ns.ior"
+}
+
+if ($pl_status != 0)
+{
+ print "\n ERROR: test returned $pl_status \n";
+}
+
+exit $pl_status;
+
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..fdccfc5b337
--- /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) )
+// {
+// DANCE_ERROR((LM_ERROR, "[%M] Failed to resolve object. The test failed.\n"));
+// return 1;
+// }
+// DANCE_DEBUG((LM_DEBUG, "[%M] resolve object : ok.\n"));
+//
+// Dummy_var res_dummy_obj = Dummy::_narrow(res_obj);
+// if ( CORBA::is_nil(res_dummy_obj) )
+// {
+// DANCE_ERROR((LM_ERROR, "[%M] Failed to narrow the resolved object to custom type. The test failed.\n"));
+// return 1;
+// }
+// DANCE_DEBUG((LM_DEBUG, "[%M] resolved object -> dummy : ok.\n"));
+//
+// DANCE_DEBUG((LM_DEBUG, "[%M] Dummy object returned : %s.", res_dummy_obj->sayHello()));
+// DANCE_DEBUG((LM_DEBUG, "[%M] 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;
+ DANCE_DEBUG((LM_DEBUG, "[%M] URL : %s\n", url.c_str()));
+
+ CORBA::Object_var obj = orb->string_to_object (url.c_str());
+ if (CORBA::is_nil (obj))
+ {
+ DANCE_ERROR((LM_ERROR, "[%M] Failed to convert url to object. The test failed.\n"));
+ return 1;
+ }
+ DANCE_DEBUG((LM_DEBUG, "[%M] URL -> object : ok.\n"));
+
+ Dummy_var dummy_obj = Dummy::_narrow (obj);
+ if (CORBA::is_nil (dummy_obj))
+ {
+ DANCE_ERROR((LM_ERROR, "[%M] Failed to narrow the object to custom type. The test failed.\n"));
+ return 1;
+ }
+ DANCE_DEBUG((LM_DEBUG, "[%M] object -> dummy : ok.\n"));
+
+ DANCE_DEBUG((LM_DEBUG, "[%M] Dummy object returned : %C.", dummy_obj->sayHello()));
+ DANCE_DEBUG((LM_DEBUG, "[%M] The test succeeded."));
+ return 0;
+ }
+ catch (const CORBA::Exception & e)
+ {
+ DANCE_ERROR((LM_ERROR, "[%M] A CORBA exception \"%C\" (%C) was thrown. The test failed."
+ , e._name(), e._info().c_str()));
+ return 1;
+ }
+ catch (...)
+ {
+ DANCE_ERROR((LM_ERROR, "[%M] 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..46531143c85
--- /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 (...)
+ {
+ DANCE_ERROR((LM_ERROR, "[%M] 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..35791ab4a1e
--- /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");
+ DANCE_ERROR((LM_ERROR, "[%M] 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..433b80fcc07
--- /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());
+ DANCE_DEBUG((LM_DEBUG, "[%M] Plan prepared\n"));
+
+ nm->destroyManager (nam_ptr);
+ DANCE_DEBUG((LM_DEBUG, "[%M] NodeApplicationManager object destroyed\n"));
+ }
+ catch (const CORBA::Exception &)
+ {
+ DANCE_ERROR((LM_ERROR, "[%M] Uncaught CORBA exception\n"));
+ return 1;
+ }
+ catch (...)
+ {
+ return 1;
+ }
+
+ return 0;
+}
diff --git a/modules/CIAO/DAnCE/tests/ObjectLocatorTest/Dummy.idl b/modules/CIAO/DAnCE/tests/ObjectLocatorTest/Dummy.idl
new file mode 100644
index 00000000000..b91938cb4df
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/ObjectLocatorTest/Dummy.idl
@@ -0,0 +1,13 @@
+// $Id$
+#ifndef DUMMY_IDL
+#define DUMMY_IDL
+
+module ObjectLocatorTest
+{
+ interface Dummy {
+ string sayHello();
+ };
+};
+
+#endif /* DUMMY_IDL */
+
diff --git a/modules/CIAO/DAnCE/tests/ObjectLocatorTest/DummyImpl.cpp b/modules/CIAO/DAnCE/tests/ObjectLocatorTest/DummyImpl.cpp
new file mode 100644
index 00000000000..d62413d728a
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/ObjectLocatorTest/DummyImpl.cpp
@@ -0,0 +1,13 @@
+// $Id$
+#include "DummyImpl.h"
+
+namespace ObjectLocatorTest
+ {
+
+ char * DummyImpl::sayHello (void)
+ {
+ return CORBA::string_dup (this->helloSentence);
+ }
+
+ } // namespace ObjectLocatorTest
+
diff --git a/modules/CIAO/DAnCE/tests/ObjectLocatorTest/DummyImpl.h b/modules/CIAO/DAnCE/tests/ObjectLocatorTest/DummyImpl.h
new file mode 100644
index 00000000000..4ec404d93ea
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/ObjectLocatorTest/DummyImpl.h
@@ -0,0 +1,22 @@
+// $Id$
+#ifndef DUMMYIMPL_H_
+#define DUMMYIMPL_H_
+
+#include "DummyS.h"
+
+namespace ObjectLocatorTest
+ {
+ class DummyImpl
+ : public virtual POA_ObjectLocatorTest::Dummy
+ {
+ public:
+ DummyImpl() : helloSentence ("A dummy hello sentence.") {};
+
+ virtual char * sayHello (void);
+
+ private:
+ const char * helloSentence;
+ };
+ } // namespace POA_ObjectLocatorTest
+
+#endif /*DUMMYIMPL_H_*/
diff --git a/modules/CIAO/DAnCE/tests/ObjectLocatorTest/ObjectLocatorTest.mpc b/modules/CIAO/DAnCE/tests/ObjectLocatorTest/ObjectLocatorTest.mpc
new file mode 100644
index 00000000000..e17d3c335c1
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/ObjectLocatorTest/ObjectLocatorTest.mpc
@@ -0,0 +1,35 @@
+// $Id$
+project(*idl): taoidldefaults {
+ IDL_Files {
+ Dummy.idl
+ }
+ custom_only = 1
+}
+
+project (*Server): avoids_minimum_corba, dance, taoserver, iortable, dance_logger, dance_redirectionservice {
+ after += *idl
+ exename = ObjectLocatorTestServer
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ srv_main.cpp
+ DummyC.cpp
+ DummyS.cpp
+ DummyImpl.cpp
+ }
+}
+
+project (*Client): avoids_minimum_corba, dance, taoclient, anytypecode, dance_logger, portableserver {
+ after += *idl
+ exename = ObjectLocatorTestClient
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ clt_main.cpp
+ DummyC.cpp
+ }
+}
diff --git a/modules/CIAO/DAnCE/tests/ObjectLocatorTest/RegistrationPath.h b/modules/CIAO/DAnCE/tests/ObjectLocatorTest/RegistrationPath.h
new file mode 100644
index 00000000000..4a6ea64c651
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/ObjectLocatorTest/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/ObjectLocatorTest/clt_main.cpp b/modules/CIAO/DAnCE/tests/ObjectLocatorTest/clt_main.cpp
new file mode 100644
index 00000000000..d2cca36e843
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/ObjectLocatorTest/clt_main.cpp
@@ -0,0 +1,56 @@
+// $Id$
+#include "ace/String_Base.h"
+#include "DAnCE/Logger/Log_Macros.h"
+#include "RegistrationPath.h"
+#include "DummyC.h"
+
+using namespace ObjectLocatorTest;
+
+
+int ACE_TMAIN (int argc, ACE_TCHAR * argv[])
+{
+ try
+ {
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ ACE_CString url = "corbaloc:iiop:glasgow.headquarters.eclipsesp.com:12345/";
+ url += app_name;
+ url += "/";
+ url += inst_name;
+ url += "/";
+ url += port_name;
+ DANCE_DEBUG((LM_DEBUG, "[%M] URL : %s\n", url.c_str()));
+
+ CORBA::Object_var obj = orb->string_to_object (url.c_str());
+ if (CORBA::is_nil (obj))
+ {
+ DANCE_ERROR((LM_ERROR, "[%M] Failed to convert url to object. The test failed.\n"));
+ return 1;
+ }
+ DANCE_DEBUG((LM_DEBUG, "[%M] URL -> object : ok.\n"));
+
+ Dummy_var dummy_obj = Dummy::_narrow (obj);
+ if (CORBA::is_nil (dummy_obj))
+ {
+ DANCE_ERROR((LM_ERROR, "[%M] Failed to narrow the object to custom type. The test failed.\n"));
+ return 1;
+ }
+ DANCE_DEBUG((LM_DEBUG, "[%M] object -> dummy : ok.\n"));
+
+ DANCE_DEBUG((LM_DEBUG, "[%M] Dummy object returned : %s.", dummy_obj->sayHello()));
+ DANCE_DEBUG((LM_DEBUG, "[%M] The test succeeded."));
+ return 0;
+ }
+ catch (CORBA::Exception & e)
+ {
+ DANCE_ERROR((LM_ERROR, "[%M] A CORBA exception \"%s\" (%s) was thrown. The test failed."
+ , e._name(), e._info().c_str()));
+ return 1;
+ }
+ catch (...)
+ {
+ DANCE_ERROR((LM_ERROR, "[%M] An exception was thrown. The test failed."));
+ return 1;
+ }
+}
+
diff --git a/modules/CIAO/DAnCE/tests/ObjectLocatorTest/srv_main.cpp b/modules/CIAO/DAnCE/tests/ObjectLocatorTest/srv_main.cpp
new file mode 100644
index 00000000000..ec031d59350
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/ObjectLocatorTest/srv_main.cpp
@@ -0,0 +1,55 @@
+// $Id$
+#include "ace/OS_NS_stdio.h"
+
+#include "DummyC.h"
+#include "DummyImpl.h"
+#include "RegistrationPath.h"
+#include "DAnCE/Logger/Log_Macros.h"
+#include "DAnCE/RedirectionService/CCMObjectLocator.h"
+
+using namespace ObjectLocatorTest;
+
+
+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();
+
+ DAnCE::CCMObjectLocator locator (orb.in(), root_poa.in(), "Dummy");
+
+ 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();
+
+ locator.register_object (app_name, inst_name, port_name, dummy_obj);
+
+ orb->run();
+ }
+ catch (...)
+ {
+ DANCE_ERROR((LM_ERROR, "[%M] An error has occured."));
+ }
+ return 0;
+}
+
diff --git a/modules/CIAO/DAnCE/tests/RedirectionServiceTest/Dummy.idl b/modules/CIAO/DAnCE/tests/RedirectionServiceTest/Dummy.idl
new file mode 100644
index 00000000000..5925a4ceeba
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/RedirectionServiceTest/Dummy.idl
@@ -0,0 +1,13 @@
+// $Id$
+#ifndef DUMMY_IDL
+#define DUMMY_IDL
+
+module Test
+{
+ interface Dummy {
+ string sayHello();
+ };
+};
+
+#endif /* DUMMY_IDL */
+
diff --git a/modules/CIAO/DAnCE/tests/RedirectionServiceTest/DummyImpl.cpp b/modules/CIAO/DAnCE/tests/RedirectionServiceTest/DummyImpl.cpp
new file mode 100644
index 00000000000..1ad8cec1ee8
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/RedirectionServiceTest/DummyImpl.cpp
@@ -0,0 +1,14 @@
+// $Id$
+#include "DummyImpl.h"
+
+namespace Test
+ {
+
+ char * DummyImpl::sayHello (
+ )
+ {
+ return CORBA::string_dup (this->helloSentence);
+ }
+
+ } // namespace ObjectLocatorTest
+
diff --git a/modules/CIAO/DAnCE/tests/RedirectionServiceTest/DummyImpl.h b/modules/CIAO/DAnCE/tests/RedirectionServiceTest/DummyImpl.h
new file mode 100644
index 00000000000..272611eedba
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/RedirectionServiceTest/DummyImpl.h
@@ -0,0 +1,24 @@
+// $Id$
+#ifndef DUMMYIMPL_H_
+#define DUMMYIMPL_H_
+
+#include "DummyS.h"
+
+namespace Test
+ {
+ class DummyImpl
+ : public virtual POA_Test::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/RedirectionServiceTest/RedirectionServiceTest.mpc b/modules/CIAO/DAnCE/tests/RedirectionServiceTest/RedirectionServiceTest.mpc
new file mode 100644
index 00000000000..08700809ca2
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/RedirectionServiceTest/RedirectionServiceTest.mpc
@@ -0,0 +1,25 @@
+// $Id$
+project (RedirectionServiceTestServer): dance, taoserver, iortable, naming, dance_redirectionservice, dance_logger, naming_serv, avoids_minimum_corba {
+ exename = RedirectionServiceTestServer
+
+ IDL_Files {
+ Dummy.idl
+ }
+
+ Source_Files {
+ srv_main.cpp
+ DummyC.cpp
+ DummyS.cpp
+ DummyImpl.cpp
+ }
+}
+
+project (RedirectionServiceTestClient): dance, taoclient, naming, dance_logger, naming, portableserver, anytypecode, avoids_minimum_corba {
+ after = RedirectionServiceTestServer
+ exename = RedirectionServiceTestClient
+
+ Source_Files {
+ clt_main.cpp
+ DummyC.cpp
+ }
+}
diff --git a/modules/CIAO/DAnCE/tests/RedirectionServiceTest/RegistrationPath.h b/modules/CIAO/DAnCE/tests/RedirectionServiceTest/RegistrationPath.h
new file mode 100644
index 00000000000..a470d19c36d
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/RedirectionServiceTest/RegistrationPath.h
@@ -0,0 +1,11 @@
+// $Id$
+#ifndef REGISTRATIONPATH_H_
+#define REGISTRATIONPATH_H_
+#include "ace/SString.h"
+
+const ACE_CString node_name = "MyNode";
+const ACE_CString app_name = "app1";
+const ACE_CString inst_name = "inst1";
+const ACE_CString port_name = "port1";
+
+#endif /*REGISTRATIONPATH_H_*/
diff --git a/modules/CIAO/DAnCE/tests/RedirectionServiceTest/clt_main.cpp b/modules/CIAO/DAnCE/tests/RedirectionServiceTest/clt_main.cpp
new file mode 100644
index 00000000000..84ecb82f476
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/RedirectionServiceTest/clt_main.cpp
@@ -0,0 +1,110 @@
+// $Id$
+#include "ace/String_Base.h"
+#include <orbsvcs/orbsvcs/CosNamingC.h>
+#include "DAnCE/Logger/Log_Macros.h"
+#include "RegistrationPath.h"
+#include "DummyC.h"
+#include "ace/SString.h"
+
+using namespace Test;
+
+CORBA::ORB_var orb;
+CORBA::Object_var naming_obj;
+
+void inspect ()
+ {
+ CORBA::Object_var obj = orb->resolve_initial_references("NameService");
+ CosNaming::NamingContext_var naming = CosNaming::NamingContext::_narrow(obj.in());
+ CosNaming::BindingList_var bl;
+ CosNaming::BindingIterator_var bi;
+ //naming->list(10L, bl.out(), bi.out());
+ CosNaming::Name name(1);
+ name.length(2);
+ name[0].id = CORBA::string_dup("Host1");//CORBA::string_dup("CcmDance1Test");
+ name[1].id = CORBA::string_dup ("CcmDance2_1@Host1");
+ name[1].kind = CORBA::string_dup ("DeploymentPlan");
+ //name[2].id = CORBA::string_dup("ASSEMBLYANDDEPLOYMENT");
+ obj = naming->resolve(name);
+ DANCE_DEBUG((LM_DEBUG, "[%M] create_external_connections - After resolve\n"));
+ CosNaming::NamingContext_var CcmDance1Test = CosNaming::NamingContext::_narrow(obj.in());
+ CcmDance1Test->list(10L, bl.out(), bi.out());
+ bool exit = false;
+ while (!exit)
+ {
+ DANCE_DEBUG((LM_DEBUG, "[%M] create_external_connections - naming size is %u\n", bl->length()));
+ for ( size_t i = 0; i< bl->length(); i++ )
+ {
+ for ( size_t j = 0; j < (*bl)[i].binding_name.length(); j++ )
+ {
+ DANCE_DEBUG((LM_DEBUG, "create_external_connections - Binding name %s, binding kind %s, binding type %i\n"
+ , (*bl)[i].binding_name[j].id.in()
+ , (*bl)[i].binding_name[j].kind.in()
+ , (*bl)[i].binding_type));
+ }
+ }
+ if(!bi->next_n(10L, bl.out()))
+ {
+ exit = true;
+ }
+ }
+
+ }
+bool test (const ACE_CString& url)
+{
+ bool res = false;
+ try
+ {
+ DANCE_DEBUG((LM_DEBUG, "[%M] URL : %s\n", url.c_str()));
+
+ CORBA::Object_var obj = orb->string_to_object (url.c_str());
+ if (CORBA::is_nil (obj))
+ {
+ DANCE_ERROR((LM_ERROR, "[%M] Failed to convert url to object. The test failed.\n"));
+ return 1;
+ }
+ DANCE_DEBUG((LM_DEBUG, "[%M] URL -> object : ok.\n"));
+
+ Dummy_var dummy_obj = Dummy::_narrow (obj);
+ if (CORBA::is_nil (dummy_obj))
+ {
+ DANCE_ERROR((LM_ERROR, "[%M] Failed to narrow the object to custom type. The test failed.\n"));
+ return 1;
+ }
+ DANCE_DEBUG((LM_DEBUG, "[%M] object -> dummy : ok.\n"));
+
+ DANCE_DEBUG((LM_DEBUG, "[%M] Dummy object returned : %s.\n", dummy_obj->sayHello()));
+ DANCE_DEBUG((LM_DEBUG, "[%M] The test succeeded.\n"));
+ res = true;
+ }
+ catch (CORBA::Exception & e)
+ {
+ DANCE_ERROR((LM_ERROR, "[%M] A CORBA exception \"%s\" (%s) was thrown. The test failed."
+ , e._name(), e._info().c_str()));
+ }
+ catch (...)
+ {
+ DANCE_ERROR((LM_ERROR, "[%M] An exception was thrown. The test failed.\n"));
+ }
+
+ return res;
+}
+
+
+int ACE_TMAIN (int argc, ACE_TCHAR * argv[])
+{
+ orb = CORBA::ORB_init (argc, argv);
+
+ //naming_obj = orb->resolve_initial_references("NameService");
+ //glasgow.headquarters.eclipsesp.com:12345
+ ACE_CString url = "corbaname::glasgow:12345#" + node_name + "/" + app_name + ".DeploymentPlan" + "/" + inst_name + "/" + port_name + ".Port";
+ test (url);
+ url = "corbaname::glasgow:12345#" + node_name + "/" + app_name + ".DeploymentPlan" + "/" + inst_name + ".Component";
+ test (url);
+ //node_name + "/" + %14%01%0f%00NUP%00%00%00%17%01%00%00%00%01%00%00%00RootPOA%00MyNode%00
+ url = "corbaloc:iiop:1.2@glasgow.headquarters.eclipsesp.com:12345/%14%01%0f%00NUP%00%00%00%17%01%00%00%00%01%00%00%00RootPOA%00MyNode%00" + app_name + "/" + inst_name + "/" + port_name;
+ test (url);
+ url = "corbaloc:iiop:1.2@glasgow.headquarters.eclipsesp.com:12345/%14%01%0f%00NUP%00%00%00%17%01%00%00%00%01%00%00%00RootPOA%00MyNode%00" + app_name + "/" + inst_name;
+ test (url);
+
+ return 0;
+}
diff --git a/modules/CIAO/DAnCE/tests/RedirectionServiceTest/srv_main.cpp b/modules/CIAO/DAnCE/tests/RedirectionServiceTest/srv_main.cpp
new file mode 100644
index 00000000000..fa44d6b8b2f
--- /dev/null
+++ b/modules/CIAO/DAnCE/tests/RedirectionServiceTest/srv_main.cpp
@@ -0,0 +1,75 @@
+// $Id$
+#include "ace/OS_NS_stdio.h"
+#include "ace/Get_Opt.h"
+#include <orbsvcs/orbsvcs/Naming/Naming_Loader.h>
+#include "DAnCE/Logger/Log_Macros.h"
+#include "RedirectionService/RedirectionService.h"
+
+#include "DummyC.h"
+#include "DummyImpl.h"
+#include "RegistrationPath.h"
+
+using namespace Test;
+
+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));
+
+ 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());
+
+ DAnCE::RedirectionService redirection (orb.in(),
+ root_poa.in(),
+ naming.in(),
+ CosNaming::NamingContext::_nil(),
+ true,
+ true);
+
+ redirection.registration_start (node_name, app_name);
+ redirection.registration (node_name, app_name, inst_name, port_name, dummy_obj.in());
+ DANCE_DEBUG((LM_DEBUG, "[%M] Registration for port have finished.\n\n"));
+ redirection.registration (node_name, app_name, inst_name, dummy_obj.in());
+ DANCE_DEBUG((LM_DEBUG, "[%M] Registration for component have finished.\n\n"));
+ redirection.registration_finish (node_name, app_name);
+ orb->run();
+ }
+// catch (...)
+// {
+// DANCE_ERROR((LM_ERROR, "[%M] An error has occured."));
+// }
+ return 0;
+}
+
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/MPC/config/ccm.mpb b/modules/CIAO/MPC/config/ccm.mpb
new file mode 100644
index 00000000000..a6c49e6b649
--- /dev/null
+++ b/modules/CIAO/MPC/config/ccm.mpb
@@ -0,0 +1,6 @@
+// -*- MPC -*-
+// $Id$
+
+project {
+ includes += $(CIAO_ROOT)/ccm
+}
diff --git a/modules/CIAO/MPC/config/ccm_componentserver_stub.mpb b/modules/CIAO/MPC/config/ccm_componentserver_stub.mpb
new file mode 100644
index 00000000000..ce5bd47cea2
--- /dev/null
+++ b/modules/CIAO/MPC/config/ccm_componentserver_stub.mpb
@@ -0,0 +1,8 @@
+// -*- MPC -*-
+// $Id$
+
+project : ccm_stub {
+ after += CCM_ComponentServer_stub
+ libs += CCM_ComponentServer_stub
+ includes += $(CIAO_ROOT)/DAnCE
+}
diff --git a/modules/CIAO/MPC/config/ccm_componentserver_svnt.mpb b/modules/CIAO/MPC/config/ccm_componentserver_svnt.mpb
new file mode 100644
index 00000000000..2f9638b060f
--- /dev/null
+++ b/modules/CIAO/MPC/config/ccm_componentserver_svnt.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : ccm_componentserver_stub, ccm_svnt {
+ after += CCM_ComponentServer_svnt
+ libs += CCM_ComponentServer_svnt
+}
diff --git a/modules/CIAO/MPC/config/ccm_configvalue.mpb b/modules/CIAO/MPC/config/ccm_configvalue.mpb
new file mode 100644
index 00000000000..48cca222e92
--- /dev/null
+++ b/modules/CIAO/MPC/config/ccm_configvalue.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : ccm_stub {
+ after += CCM_ConfigValue_Factory
+ libs += CCM_ConfigValue_Factory
+}
diff --git a/modules/CIAO/MPC/config/ccm_cookie.mpb b/modules/CIAO/MPC/config/ccm_cookie.mpb
new file mode 100644
index 00000000000..060cd137d36
--- /dev/null
+++ b/modules/CIAO/MPC/config/ccm_cookie.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : ccm_stub {
+ after += CCM_Cookie_Factory
+ libs += CCM_Cookie_Factory
+}
diff --git a/modules/CIAO/MPC/config/ccm_executor.mpb b/modules/CIAO/MPC/config/ccm_executor.mpb
new file mode 100644
index 00000000000..5d588a31939
--- /dev/null
+++ b/modules/CIAO/MPC/config/ccm_executor.mpb
@@ -0,0 +1,5 @@
+// -*- MPC -*-
+// $Id$
+
+project : ccm_stub {
+}
diff --git a/modules/CIAO/MPC/config/ccm_stub.mpb b/modules/CIAO/MPC/config/ccm_stub.mpb
new file mode 100644
index 00000000000..1bb08626d3d
--- /dev/null
+++ b/modules/CIAO/MPC/config/ccm_stub.mpb
@@ -0,0 +1,8 @@
+// -*- MPC -*-
+// $Id$
+
+project : ifr_client, valuetype, pi, codecfactory, ciao_vcwarnings, ccm, ciaoidldefaults {
+ includes += $(CIAO_ROOT)
+ after += CCM_stub
+ libs += CCM_stub
+}
diff --git a/modules/CIAO/MPC/config/ccm_svnt.mpb b/modules/CIAO/MPC/config/ccm_svnt.mpb
new file mode 100644
index 00000000000..059ac04f717
--- /dev/null
+++ b/modules/CIAO/MPC/config/ccm_svnt.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : ccm_stub, portableserver, avoids_minimum_corba, avoids_corba_e_compact, avoids_corba_e_micro {
+ after += CCM_svnt
+ libs += CCM_svnt
+}
diff --git a/modules/CIAO/MPC/config/ciao.mpb b/modules/CIAO/MPC/config/ciao.mpb
new file mode 100644
index 00000000000..6a72bc480e6
--- /dev/null
+++ b/modules/CIAO/MPC/config/ciao.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project {
+ includes += $(CIAO_ROOT) $(CIAO_ROOT)/DAnCE
+ libpaths += $(ACE_ROOT)/lib
+}
diff --git a/modules/CIAO/MPC/config/ciao_client.mpb b/modules/CIAO/MPC/config/ciao_client.mpb
new file mode 100644
index 00000000000..1b4b3e02f85
--- /dev/null
+++ b/modules/CIAO/MPC/config/ciao_client.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : ccm_configvalue, ccm_cookie, ciao_vcwarnings {
+ after += CIAO_Client
+ libs += CIAO_Client
+}
diff --git a/modules/CIAO/MPC/config/ciao_componentserver_stub.mpb b/modules/CIAO/MPC/config/ciao_componentserver_stub.mpb
new file mode 100644
index 00000000000..3230fd12933
--- /dev/null
+++ b/modules/CIAO/MPC/config/ciao_componentserver_stub.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : ciao_client, ccm_cookie, ccm_configvalue, ccm_componentserver_stub {
+ after += CIAO_ComponentServer_stub
+ libs += CIAO_ComponentServer_stub
+}
diff --git a/modules/CIAO/MPC/config/ciao_componentserver_svnt.mpb b/modules/CIAO/MPC/config/ciao_componentserver_svnt.mpb
new file mode 100644
index 00000000000..df1134671df
--- /dev/null
+++ b/modules/CIAO/MPC/config/ciao_componentserver_svnt.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : ciao_componentserver_stub, ccm_componentserver_svnt, ciao_session_container {
+ after += CIAO_ComponentServer_svnt
+ libs += CIAO_ComponentServer_svnt
+}
diff --git a/modules/CIAO/MPC/config/ciao_config_handlers.mpb b/modules/CIAO/MPC/config/ciao_config_handlers.mpb
new file mode 100644
index 00000000000..8c78f0bbaca
--- /dev/null
+++ b/modules/CIAO/MPC/config/ciao_config_handlers.mpb
@@ -0,0 +1,21 @@
+// -*- MPC -*-
+// $Id$
+
+project : ciao_config_handlers_base, dynamicany, typecodefactory, dance_deployment_stub {
+ 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/MPC/config/ciao_config_handlers_base.mpb b/modules/CIAO/MPC/config/ciao_config_handlers_base.mpb
new file mode 100644
index 00000000000..9d36eda836b
--- /dev/null
+++ b/modules/CIAO/MPC/config/ciao_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 += $(CIAO_ROOT)/tools/Config_Handlers
+
+ verbatim(gnuace, macros) {
+ override no_hidden_visibility = 1
+ }
+
+}
diff --git a/modules/CIAO/MPC/config/ciao_connector_base.mpb b/modules/CIAO/MPC/config/ciao_connector_base.mpb
new file mode 100644
index 00000000000..c66ed193028
--- /dev/null
+++ b/modules/CIAO/MPC/config/ciao_connector_base.mpb
@@ -0,0 +1,6 @@
+// -*- MPC -*-
+// $Id$
+
+project {
+ includes += $(CIAO_ROOT)/connectors
+} \ No newline at end of file
diff --git a/modules/CIAO/MPC/config/ciao_container_base.mpb b/modules/CIAO/MPC/config/ciao_container_base.mpb
new file mode 100644
index 00000000000..2b069aa7906
--- /dev/null
+++ b/modules/CIAO/MPC/config/ciao_container_base.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : ccm_svnt, avoids_corba_e_compact, avoids_corba_e_micro {
+ after += CIAO_Container_Base
+ libs += CIAO_Container_Base
+}
diff --git a/modules/CIAO/MPC/config/ciao_context_impl.mpb b/modules/CIAO/MPC/config/ciao_context_impl.mpb
new file mode 100644
index 00000000000..1514876a1d0
--- /dev/null
+++ b/modules/CIAO/MPC/config/ciao_context_impl.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : ccm_svnt, ciao_container_base, portableserver {
+ after += CIAO_Context_Impl
+ libs += CIAO_Context_Impl
+}
diff --git a/modules/CIAO/MPC/config/ciao_cs_client.mpb b/modules/CIAO/MPC/config/ciao_cs_client.mpb
new file mode 100644
index 00000000000..4ecdafcd62f
--- /dev/null
+++ b/modules/CIAO/MPC/config/ciao_cs_client.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : ccm_stub, ciao_componentserver_stub, ccm_componentserver_svnt, portableserver, threads, avoids_ace_for_tao {
+ after += CIAO_CS_Client_svnt
+ libs += CIAO_CS_Client_svnt
+}
diff --git a/modules/CIAO/MPC/config/ciao_dds4ccm_ndds_impl.mpb b/modules/CIAO/MPC/config/ciao_dds4ccm_ndds_impl.mpb
new file mode 100644
index 00000000000..9969d99d565
--- /dev/null
+++ b/modules/CIAO/MPC/config/ciao_dds4ccm_ndds_impl.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dds4ccm_skel, nddslib {
+ libs += CIAO_DDS4CCM_NDDS_Impl
+ after += CIAO_DDS4CCM_NDDS_Impl
+}
diff --git a/modules/CIAO/MPC/config/ciao_example_output.mpb b/modules/CIAO/MPC/config/ciao_example_output.mpb
new file mode 100644
index 00000000000..7f7943dcb70
--- /dev/null
+++ b/modules/CIAO/MPC/config/ciao_example_output.mpb
@@ -0,0 +1,6 @@
+// -*- MPC -*-
+// $Id$
+
+project {
+ libout = ../lib
+}
diff --git a/modules/CIAO/MPC/config/ciao_exe.mpb b/modules/CIAO/MPC/config/ciao_exe.mpb
new file mode 100644
index 00000000000..d182a9c06d5
--- /dev/null
+++ b/modules/CIAO/MPC/config/ciao_exe.mpb
@@ -0,0 +1,6 @@
+// -*- MPC -*-
+// $Id$
+
+project : ciao {
+ install = $(CIAO_ROOT)/bin
+}
diff --git a/modules/CIAO/MPC/config/ciao_executor.mpb b/modules/CIAO/MPC/config/ciao_executor.mpb
new file mode 100644
index 00000000000..129fcd0adc1
--- /dev/null
+++ b/modules/CIAO/MPC/config/ciao_executor.mpb
@@ -0,0 +1,5 @@
+// -*- MPC -*-
+// $Id$
+
+project : ccm_svnt, ciao_container_base {
+}
diff --git a/modules/CIAO/MPC/config/ciao_lib.mpb b/modules/CIAO/MPC/config/ciao_lib.mpb
new file mode 100644
index 00000000000..1125dbf77df
--- /dev/null
+++ b/modules/CIAO/MPC/config/ciao_lib.mpb
@@ -0,0 +1,6 @@
+// -*- MPC -*-
+// $Id$
+
+project : ciao {
+ libout = $(ACE_ROOT)/lib
+}
diff --git a/modules/CIAO/MPC/config/ciao_logger.mpb b/modules/CIAO/MPC/config/ciao_logger.mpb
new file mode 100644
index 00000000000..5428fdb8927
--- /dev/null
+++ b/modules/CIAO/MPC/config/ciao_logger.mpb
@@ -0,0 +1,7 @@
+// $Id$
+// -*- MPC -*-
+
+project : ciao, acelib {
+ after += CIAO_Logger
+ libs += CIAO_Logger
+} \ No newline at end of file
diff --git a/modules/CIAO/MPC/config/ciao_output.mpb b/modules/CIAO/MPC/config/ciao_output.mpb
new file mode 100644
index 00000000000..f8352a6ac48
--- /dev/null
+++ b/modules/CIAO/MPC/config/ciao_output.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project {
+ libout = $(ACE_ROOT)/lib
+}
+
diff --git a/modules/CIAO/MPC/config/ciao_port_activator_stub.mpb b/modules/CIAO/MPC/config/ciao_port_activator_stub.mpb
new file mode 100644
index 00000000000..1a38e34dc93
--- /dev/null
+++ b/modules/CIAO/MPC/config/ciao_port_activator_stub.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : portableserver {
+ after += CIAO_Port_Activator_stub
+ libs += CIAO_Port_Activator_stub
+}
diff --git a/modules/CIAO/MPC/config/ciao_servant.mpb b/modules/CIAO/MPC/config/ciao_servant.mpb
new file mode 100644
index 00000000000..7005c3d7a86
--- /dev/null
+++ b/modules/CIAO/MPC/config/ciao_servant.mpb
@@ -0,0 +1,5 @@
+//$Id$
+project : ciao_port_activator_stub, ciao_servant_activator, ccm_svnt, taoidldefaults, ciao_container_base, portableserver, ccm_cookie, ciao_context_impl {
+ after += CIAO_Servant_Impl
+ libs += CIAO_Servant_Impl
+}
diff --git a/modules/CIAO/MPC/config/ciao_servant_activator.mpb b/modules/CIAO/MPC/config/ciao_servant_activator.mpb
new file mode 100644
index 00000000000..bba8e3fa4b3
--- /dev/null
+++ b/modules/CIAO/MPC/config/ciao_servant_activator.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : portableserver, ciao_port_activator_stub, avoids_minimum_corba {
+ libs += CIAO_Servant_Activator_stub
+ after += CIAO_Servant_Activator_stub
+}
diff --git a/modules/CIAO/MPC/config/ciao_server.mpb b/modules/CIAO/MPC/config/ciao_server.mpb
new file mode 100644
index 00000000000..e07b82c2ae9
--- /dev/null
+++ b/modules/CIAO/MPC/config/ciao_server.mpb
@@ -0,0 +1,8 @@
+// -*- MPC -*-
+// $Id$
+
+project : ciao_client, naming, ccm_cookie, ccm_configvalue, \
+ avoids_minimum_corba, avoids_corba_e_compact, avoids_corba_e_micro {
+ after += CIAO_Server
+ libs += CIAO_Server
+}
diff --git a/modules/CIAO/MPC/config/ciao_session_container.mpb b/modules/CIAO/MPC/config/ciao_session_container.mpb
new file mode 100644
index 00000000000..a1f77d0ce95
--- /dev/null
+++ b/modules/CIAO/MPC/config/ciao_session_container.mpb
@@ -0,0 +1,8 @@
+// -*- MPC -*-
+// $Id$
+
+project : utils, ciao_servant, \
+ ccm_componentserver_stub, ciao_port_activator_stub, ciao_servant_activator, ciao_container_base {
+ libs += CIAO_Session_Container
+ after += CIAO_Session_Container
+}
diff --git a/modules/CIAO/MPC/config/ciao_vcwarnings.mpb b/modules/CIAO/MPC/config/ciao_vcwarnings.mpb
new file mode 100644
index 00000000000..f02556f824c
--- /dev/null
+++ b/modules/CIAO/MPC/config/ciao_vcwarnings.mpb
@@ -0,0 +1,20 @@
+// -*- MPC -*-
+// $Id$
+
+// This file contains optional features that disable VC8 warnings that were
+// not present in earlier versions. Some people may consider these superfluous
+// or have already checked code to be sure it causes no trouble. So these
+// warnings are disabled by default. To enable them, generate your projects
+// with the feature set to 0.
+
+feature(vc_avoid_deprecated_warnings) {
+ specific(prop:microsoft) {
+ DisableSpecificWarnings += 4996
+ }
+}
+
+feature(vc_avoid_dominance_warnings) {
+ specific(prop:microsoft) {
+ DisableSpecificWarnings += 4250
+ }
+}
diff --git a/modules/CIAO/MPC/config/ciao_xml_utils.mpb b/modules/CIAO/MPC/config/ciao_xml_utils.mpb
new file mode 100644
index 00000000000..1167281994f
--- /dev/null
+++ b/modules/CIAO/MPC/config/ciao_xml_utils.mpb
@@ -0,0 +1,8 @@
+// -*- MPC -*-
+// $Id$
+
+project : xerces, exceptions {
+ includes += $(CIAO_ROOT)/tools
+ after += CIAO_XML_Utils
+ libs += CIAO_XML_Utils
+}
diff --git a/modules/CIAO/MPC/config/ciaoexe.mpb b/modules/CIAO/MPC/config/ciaoexe.mpb
new file mode 100644
index 00000000000..69433807610
--- /dev/null
+++ b/modules/CIAO/MPC/config/ciaoexe.mpb
@@ -0,0 +1,4 @@
+// $Id$
+project {
+ install = $(CIAO_ROOT)/bin
+}
diff --git a/modules/CIAO/MPC/config/ciaoidldefaults.mpb b/modules/CIAO/MPC/config/ciaoidldefaults.mpb
new file mode 100644
index 00000000000..dad74d13aa1
--- /dev/null
+++ b/modules/CIAO/MPC/config/ciaoidldefaults.mpb
@@ -0,0 +1,6 @@
+// -*- MPC -*-
+// $Id$
+
+project : taoidldefaults {
+ idlflags += -I$(CIAO_ROOT) -I$(CIAO_ROOT)/ccm
+}
diff --git a/modules/CIAO/MPC/config/ciaolib_with_idl.mpb b/modules/CIAO/MPC/config/ciaolib_with_idl.mpb
new file mode 100644
index 00000000000..8dfa7a4fb71
--- /dev/null
+++ b/modules/CIAO/MPC/config/ciaolib_with_idl.mpb
@@ -0,0 +1,5 @@
+// -*- MPC -*-
+// $Id$
+
+project : ciao_lib, ciaoidldefaults {
+}
diff --git a/modules/CIAO/MPC/config/componentidldefaults.mpb b/modules/CIAO/MPC/config/componentidldefaults.mpb
new file mode 100644
index 00000000000..666e7784b7a
--- /dev/null
+++ b/modules/CIAO/MPC/config/componentidldefaults.mpb
@@ -0,0 +1,21 @@
+// -*- MPC -*-
+// $Id$
+
+project : ciaoidldefaults, anytypecode {
+ idlflags += -Gsv -Glem -Gxhst -Gxhsk -Gxhsv -Gxhex
+
+ Modify_Custom (IDL) {
+ optional(source_pre_extension) {
+ commandflags(-Gsv) += _svnt
+ }
+
+ optional(header_pre_extension) {
+ commandflags(-Gsv) += _svnt
+ }
+
+ optional(generic_outputext) {
+ commandflags(-Glem) += E.idl
+ }
+ }
+}
+
diff --git a/modules/CIAO/MPC/config/connectoridldefaults.mpb b/modules/CIAO/MPC/config/connectoridldefaults.mpb
new file mode 100644
index 00000000000..f7a558fa159
--- /dev/null
+++ b/modules/CIAO/MPC/config/connectoridldefaults.mpb
@@ -0,0 +1,6 @@
+// -*- MPC -*-
+// $Id$
+
+project : componentidldefaults {
+ idlflags += -I$(CIAO_ROOT)/connectors
+} \ No newline at end of file
diff --git a/modules/CIAO/MPC/config/dds4ccm_base.mpb b/modules/CIAO/MPC/config/dds4ccm_base.mpb
new file mode 100644
index 00000000000..a2c15617235
--- /dev/null
+++ b/modules/CIAO/MPC/config/dds4ccm_base.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : ciao_connector_base {
+ after += DDS4CCM_stub DDS4CCM_lem_gen
+ libs += DDS4CCM_stub
+}
diff --git a/modules/CIAO/MPC/config/dds4ccm_skel.mpb b/modules/CIAO/MPC/config/dds4ccm_skel.mpb
new file mode 100644
index 00000000000..6c1604195b9
--- /dev/null
+++ b/modules/CIAO/MPC/config/dds4ccm_skel.mpb
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+project : dds4ccm_base {
+ libs += DDS4CCM_skel
+ after += DDS4CCM_skel
+} \ No newline at end of file
diff --git a/modules/CIAO/MPC/config/taoidl3toidl2defaults.mpb b/modules/CIAO/MPC/config/taoidl3toidl2defaults.mpb
new file mode 100644
index 00000000000..a9a773fb356
--- /dev/null
+++ b/modules/CIAO/MPC/config/taoidl3toidl2defaults.mpb
@@ -0,0 +1,23 @@
+// -*- MPC -*-
+// $Id$
+
+project {
+ // Set the idl3_to_idl2 compiler and flags as template values
+ specific {
+ tao_idl3_to_idl2 = $(CIAO_ROOT)/bin/tao_idl3_to_idl2
+ tao_idl3_to_idl2_dep = $(CIAO_ROOT)/bin/tao_idl3_to_idl2
+ }
+
+ Define_Custom(IDL3TOIDL2) {
+ automatic = 1
+ dependent = $(TAO_IDL3_TO_IDL2_DEP)
+ command = $(TAO_IDL3_TO_IDL2)
+ commandflags = -I$(CIAO_ROOT) -I$(CIAO_ROOT)/ccm -I$(TAO_ROOT) -I$(TAO_ROOT)/orbsvcs
+ libpath = $(ACE_ROOT)/lib
+ inputext = .idl
+ generic_outputext = _IDL2.idl
+ keyword idl3toidl2flags = commandflags
+ }
+
+ after += TAO_IDL3_TO_IDL2_EXE
+}
diff --git a/modules/CIAO/MPC/config/xscdefaults.mpb b/modules/CIAO/MPC/config/xscdefaults.mpb
new file mode 100644
index 00000000000..759ddcb6924
--- /dev/null
+++ b/modules/CIAO/MPC/config/xscdefaults.mpb
@@ -0,0 +1,21 @@
+// -*- MPC -*-
+// $Id$
+
+project {
+ specific {
+ xsc_bin = $(XSC_ROOT)/bin/xsc
+ xsc_dep = $(XSC_ROOT)/bin/xsc
+ xsc_flags = --backend cxx --cxx-char-type ACE_TCHAR --cxx-generate-writer-types
+ }
+
+ Define_Custom(XSC) {
+ automatic = 0
+ dependent = $(XSC_DEP)
+ command = $(XSC_BIN)
+ commandflags = $(XSC_FLAGS)
+ inputext = .xsd
+ source_outputext = .cpp
+ header_outputext = .hpp
+ keyword xscflags = commandflags
+ }
+}
diff --git a/modules/CIAO/NEWS b/modules/CIAO/NEWS
new file mode 100644
index 00000000000..4195335e034
--- /dev/null
+++ b/modules/CIAO/NEWS
@@ -0,0 +1,1048 @@
+PLANNED MAJOR CHANGES "SOMETIME IN THE FUTURE" (i.e., exact beta not known)
+===========================================================================
+
+. Several features have been recently removed, with no planned replacement in
+their current form, such as:
+
+. ReDaC
+. Shared Components
+
+Some features are being temporarily removed but with planned
+replacement in the near term:
+
+. RTEC Integration
+. Static Deployment
+. TargetManager
+. RepositoryManager
+. Swapping container
+
+. Enhance Execution Manager and Domain Application Manager to make calls
+ on the Target Manager to get resource information.
+
+. Enhance Node Manager to integrate resource monitoring capacity within
+ individual Nodes.
+
+. Add assembly-wide component activation/deactivation feature.
+
+ - This should allow system deployers to specify the dependencies
+ among component instances within the assembly.
+
+ - Add support in DAnCE so DAnCE could enforce the order in which
+ components are to be activated within the assembly.
+
+. Add AMI support in DAnCE toolchain to when the DomainApplicationManager
+ contacts node-level managers to deploy components, all the node-level
+ managers could performe the deployment concurrently.
+
+. Integrate RT-CORBA 1.2 dynamic scheduling feature into CIAO, which
+ will allow the application developers to use dynamica scheduling
+ through meta-programming model.
+
+. Update DAnCE IDL data structures and interfaces to comply with the
+ 06-04-01 version of the DnC specification, and perform
+ interoperability testing with other DnC implementations. Note this
+ work may change the functionality and semantics of some proprietary
+ DAnCE extensions, notably ReDaC, Shared Compoents, and RTEC
+ integration, and may even be absent until such a time as they
+ can be implemented in such a way as to not break copliance with the DnC
+ specification.
+
+. Decouple dependencies to NodeApplication from other DAnCE tools.
+ These dependencies were added to support static configurator. We
+ need to have these tools in both conventional version and static
+ configuration version.
+
+. Support tool-specific debug levels and added CIAO_DEBUG macros to
+ simplify adding debug printouts based on various tool-specific debug
+ levels.
+
+. Add support for querying for interface types to the
+ RepositoryManager.
+
+. Implement a planner to query the TargetManager and RepositoryManager
+ and generate deployment plans on the fly.
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.7.4 and CIAO-0.7.5
+=======================================================
+
+. Added rudimentary support for PlanLocality, which allows DAnCE to spawn
+ multiple CIAO processes per node. Currently, only SameProcess
+ constraints are honored. SameProcess constraints are honored by
+ creating a separate process per constraint as it appears in the
+ plan, with the appropriate component instances spawned in each
+ process.
+
+ Constraints are not rigerously checked by the runtime, so behaviour
+ when a component instance appears in multiple SameProcess
+ constraints is currently undefined.
+
+ Components not appearing in any constraint are placed in a default
+ component server process.
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.7.3 and CIAO-0.7.4
+=======================================================
+
+. Added second prototype of DDS4CCM that uses the RTI
+ CORBA Compatibility kit and a monolitic connector
+
+. Extended AMI4CCM prototype
+
+. Update all examples and tests for the changes in the -Glem
+ TAO_IDL option. The behavior of this option has changed
+ dramatically, and will require that most user applications be
+ ported. Previously, -Glem would cause the IDL compiler to generate
+ a E.idl file containing local executor mapping for all interfaces
+ provided as ports by any components in the main translation unit.
+ Therefore, files with interfaces, but no components defined will
+ have empty E.idl files generated. Similarly, a file with no
+ interfaces defined, but with components defined would generate LEM
+ interfaces for interfaces provided by that component but not local
+ to the file in question. While this behavior simplified a
+ rudimentary use case where interfaces would be provided by only one
+ component, more complicated use cases were much more difficult to
+ achieve.
+
+ The new behvior causes the IDL compiler to generate LEM IDL for all
+ interfaces within a given translation unit, regardless of whether or
+ not they are provided as ports by a component in the same
+ translation unit. Futhermore, if a component provides an interface
+ that is not defined with the translation unit of that compoment, it
+ is required that the user provide a #include directive to the
+ appropriate E.idl file which contains the required LEM interface for
+ the interfaces provided as facets.
+
+ This new behavior is similar to the former behavior of -Glfa, and as
+ such the behavior of -Glfa has been changed to attempt to be
+ reflective of the old behavior of -Glem, and may be used as a
+ stopgap backwards compatibility measure.
+
+. In idl3_to_idl2 tool, replaced manual designation of IDL2-only
+ files and resulting generated include of undecorated filename
+ (using -x <filename> option) with a mechanism that does it
+ automatically. The -x option has been eliminated.
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.7.2 and CIAO-0.7.3
+=======================================================
+
+. Added a first prototype of DDS4CCM
+
+. Added a first prototype of AMI4CCM
+
+. Made CIAO compiling with unicode enabled
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.7.1 and CIAO-0.7.2
+=======================================================
+
+. CIDL compiler, and .cidl files, have been eliminated. All
+ CIAO code generation is now handled by the TAO IDL compiler.
+ See $TAO_ROOT/docs/compiler.html for details.
+
+. DAnCE has been refactored in separate libraries to reduce
+ footprint and dependencies
+
+. Logging has been improved
+
+. IDL has been updated to match the official specifications
+
+. CIAO now also compiles on HPUX
+
+. Unicode improvements
+
+. Updated Quoter tutorial for all recent changes including
+ the latest CosMIC releases
+
+. Use the new feature of the TAO_IDL compiler to generate all
+ export files as part of the build step
+
+. Extended CIAO and DAnCE tests
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.7.0 and CIAO-0.7.1
+=======================================================
+
+. No user visible changes in this release.
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.6.9 and CIAO-0.7.0
+=======================================================
+
+. CIDLC compiler has new command line options: --suppress-lem which will suppress
+ generation of the local executor mapping, --suppress-svnt which will suppress
+ generation of the servant code, --lem-enclosing-module which will generate the
+ local executor mapping inside a given module.
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.6.8 and CIAO-0.6.9
+======================================================
+
+. The CIAO refactoring branch has been merged to the main line of
+ development. This version of CIAO contains extensive refactoring of
+ the CIAO container code and includes a new version of DAnCE based on
+ code provided by PrismTech.
+
+. Porting hints may be found at CIAO_ROOT/docs/Porting_Hints.txt
+
+. CIAO no longer supports implicitly homed components. This means that
+ components must either be deployed using an explicity deployed and
+ nominated home, or must be deployed without the use of a home.
+ Unhomed components require new factory methods similar to those used
+ for homes. These can be obtained by issuing the --gen-exec-impl
+ operation to the CIDL compiler.
+
+. Extant deployment plans are no longer valid for this version of
+ DAnCE. Until CoSMIC support is available,
+ DANCE_ROOT/bin/generate_plan.py may be used to assist in the creation
+ of well-formed deployment plans.
+
+. Names for most DAnCE executables have changed. Please see the Quoter
+ tutorial found at CIAO_ROOT/docs/tutorials/Quoter for details.
+
+. DAnCE now supports connection endpoints realized by extra-plan
+ object references.
+
+. Support for shared components and ReDaC has been removed with no
+ immediate replacement planned.
+
+. Support for RTEC integration, RT-CCM, RepositoryManager,
+ TargetManager, and staticly linked depoyment has not yet been ported
+ to the new CIAO/DAnCE.
+
+. CIAO/DAnCE now supports by Xerces 3.X and 2.X.
+
+. Note that CoSMIC support is not currently available for this version
+ of CIAO/DAnCE.
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.6.7 and CIAO-0.6.8
+======================================================
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.6.6 and CIAO-0.6.7
+======================================================
+
+. Added the "CIAO" OCI Development Guide Examples under the directory
+ /DevGuideExamples. NOTE this is an ongoing port of the original
+ version x.5.x examples and some are not yet 100% compatiable with the
+ current version of CIAO.
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.6.5 and CIAO-0.6.6
+======================================================
+
+. None
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.6.4 and CIAO-0.6.5
+======================================================
+
+. None
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.6.3 and CIAO-0.6.4
+======================================================
+
+. None
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.6.2 and CIAO-0.6.3
+======================================================
+
+. None
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.6.1 and CIAO-0.6.2
+======================================================
+
+. Removed 24 unnecessary builds from the CIAO_TAO_DAnCE.mwc
+ MPC workspace file
+
+. Changes to the generate_component_mpc.pl Perl scrip, CIDL compiler
+ generation of empty executor implementation classes, and existing
+ tests and examples to make servant dependency on executor the
+ default, instead of vice versa as previously
+
+. Made the processing of IDL and CIDL files into separate build steps
+ for tests, examples, and for DAnCE's TargetManager
+
+. Added additional tests for CIAOEvents Integration, which executes
+ several scenarios for components using Real-time EventChannels
+ as event mechanism.
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.6 and CIAO-0.6.1
+====================================================
+
+. Fixed broken static deployment support
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.5.10 and CIAO-0.6.0
+=======================================================
+
+. Added support for building CIAO statically with Microsoft Visual C++
+
+. Fixes to idl3_to_idl2 conversion tool, which
+ - handle the mapping of IDL identifiers that are
+ escaped (due to a clash with an IDL keyword) or
+ that clash with a C++ keyword
+ - handle the mapping of #includes of IDL files
+ that aren't themselves processed by the tool
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.5.9 and CIAO-0.5.10
+=======================================================
+
+. Extended IDL3_to_IDL2
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.5.8 and CIAO-0.5.9
+======================================================
+
+. Added a new deployment algorithm to DAnCE for optimization of large
+ scale deployment. In this algorithm, the number of threads spawned is
+ based on the deployment plan, i.e, by parsing the deployment plan
+ information, DAnCE decides how many threads to spawn (one thread per
+ node). This algorithm knows how to "initialize" each thread since
+ each thread will have different execution context, i.e., which
+ components to deploy to which node, component configuration, etc.
+
+. Added a NA component server callback wait strategy in NAM, which uses
+ conditional variable to signal the NA call back so it can work with
+ multi-threaded configuration, such as thread-per-connection mode. The
+ original implementation uses the main thread to run the ORB event
+ loop, which will not work for multi-threaded environment.
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.5.7 and CIAO-0.5.8
+======================================================
+
+. Improved the option handling of the Execution_Manager and plan_launcher.
+
+. Added a utility library to manipulate the deployment plan, such as
+ adding/removing instances, adding/removing connections, and pretty print.
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.5.6 and CIAO-0.5.7
+======================================================
+
+. Removed ACE_THROW_RETURN
+
+. Remove exception specifications from ORB mediated operations (C++
+ mapping requirement)
+
+. All DAnCE core idl files are moved to DAnCE/Deployment
+
+. QoS4CCM IDL files are moved to ciao/extension
+
+. RACE has been fully removed from the distribution, a new version
+ is work in progress and will be added again to the distribution
+ when it is ready
+
+. MPC base projects that contained _dnc_ have been renamed to not
+ include that string.
+
+. DAnCE executables are now installed into $CIAO_ROOT/bin
+
+. Added a new TAO policy for specifying the DiffServ code points
+ (DSCP) to be added to request and reply IP packets of an
+ application. The policy can be added at the following levels: OBJECT,
+ THREAD, and ORB.
+
+. Extended the CIAOServerResources schema to allow the specification
+ of request and reply DSCPs to be added to the IP packets of an
+ application. Extended CIAO NodeApplication libraries, to read the
+ CIAOServerResources specification, to create DiffServ policies on the
+ objects, to allow automatic addition of DSCPs on the CCM port
+ objects.
+
+. Updated the Target Manager interface to comply with the latest OMG
+ specification. This includes the addition of a new entity,
+ ResourceCommitmentManager for the management of committed resources.
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.5.5 and CIAO-0.5.6
+======================================================
+. Updated the Target Manager interface to comply with the latest OMG
+ specification. This includes the addition of a new entity,
+ ResourceCommitmentManager for the management of committed resources.
+
+. Removed all exception environment macros except ACE_THROW_RETURN
+ and ACE_THROW_SPEC
+
+. All CIAO libraries built on UNIX systems will now have the correct library
+ version numbers. Previously they had the same version numbers as TAO
+ libraries.
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.5.4 and CIAO-0.5.5
+======================================================
+
+. Fixed problems and added command line options to the
+ generate_component_mpc.pl Perl script. Also added an HTML
+ documentation file for this script.
+
+. All IDL has been refactored to get a smaller footprint
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.5.3 and CIAO-0.5.4
+======================================================
+
+. Adding support to manage multiple interconnected assemblies, which will
+ involve the work through ExternalReferenceEndPoint idea.
+
+. Seamless integration of swapping into the main line programming model,
+ so that DAnCE can actually kickstart swapping.
+
+. Integrated real-time event service into CIAO and DAnCE.
+
+. Improved syntax error checking and reporting in the CIDL compiler.
+
+. Add Null Component to be able to measure footprint in detail
+
+. Added the naming service & the implementation of createPackage function
+ to RepoMan.
+
+. Added the code to save the state of the RepoMan at exit and load the
+ state of it at start.
+
+. Reimplemented the findNamesByType () and getAllTypes () operations of
+ RepoMan, which use the newly generated ACE_Hash_MultiMap_Manager class
+ and its corresponding classes.
+
+. Added Plan_Generator project. This project is used to retrieve information
+ from Repoman and generate/modify DeploymentPlans based on different demands.
+
+. A succesfull static deployment of the Hello example has been tested on
+ VxWorks 6.3
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.5.2 and CIAO-0.5.3
+======================================================
+
+. Improve documentation for CoSMiC Quoter tutorial to reflect the latest update
+
+. Reimplemented the findNamesByType () and getAllTypes () operations
+ of Repository Manager, which use the newly generated
+ ACE_Hash_MultiMap_Manager class and its corresponding classes.
+
+. Added the replace argument in installPackage () and createPackage ()
+ functions to Repoman and extend the functionalities of these two
+ functions based on the latest D&C spec.
+
+. Added the Plan_Generator project. This project is used to retrieve
+ information from Repoman and generate/modify DeploymentPlans based
+ on different demands. Removed the planner project.
+
+. Added C++ keyword mangling to the CIDL compiler (bug#2427).
+
+. Fixed the CIDL compiler source code to build with Intel C++ (bug#2387).
+
+. Reimplemented the CIDL compiler command line handling to make use
+ of '--' to separate options from arguments unnecessary (bug#2426).
+
+. Added file and line number to the semantic errors printed by the CIDL
+ compiler.
+
+. Fixed a number of bugs in the CIDL compiler error handling and recovery
+ mechanisms.
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.5.1 and CIAO-0.5.2
+======================================================
+
+. Changed CIDL compiler code generation for facet servant classes
+ to enable reuse if the same interface is used as a facet more
+ than once in a single translation unit.
+
+. Fixed code that fetches component DLL entry points to be portable
+ across all supported compilers.
+
+. Fixed bugs in the recent implementation of component servant methods
+ get_all_receptacles() and get_all_publishers().
+
+. Simplified template code in component servant and home servant
+ base classes.
+
+. Added the naming service & the implementation of createPackage function
+ to RepoMan.
+
+. Added the code to save the state of the RepoMan at exit and load the
+ state of it at start.
+
+. A new perl library has been added to the bin directory. PerlCIAO is
+ a wrapper around PerlACE with extensions to aid in scripting CIAO
+ tests.
+
+. DAnCE/Planner - a planner which contacts the RepositoryManager, gets a
+ PackageConfiguration by name, and builds a DeploymentPlan on
+ the fly. Note that the node information is currently not populated.
+
+. Added two RACE utilities, the LocationUpdater and PlanGenerator.
+ The LocationUpdater modifies the location field of artifacts in
+ flattened plans to correspond to HTTP URLs pointing at the
+ RepositoryManager. The PlanGenerator is the Planner utility
+ modified to work with RACE. Note that most RACE functionality is
+ still in development and is not included with this release.
+
+. Added support for parsing packaging descriptors to the
+ Config_Handlers, and improved support for IDL->XML serialization.
+
+. Added a Planner utility which, when given the name of a package,
+ will contact the RepositoryManager and construct a flattened
+ deployment plan on the fly. Note this utility currently does not
+ populate node assignments.
+
+. Several important bugfixes for ReDaC and shared components.
+
+. Changed Components.idl to include CCM_Component.idl instead of
+ CCM_Container.idl. This removes a dependancy on the container
+ library for stub projects.
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.5.0 and CIAO-0.5.1
+======================================================
+
+. Added the support of integrating real-time event service into the
+ CIAO core framework. Enhanced DAnCE to support declaratively configure
+ and deploy real-time event channels to mediate event communication
+ among components.
+
+. Fixed a bug in detecting External connection and Internal
+ connections when components are shared across different
+ deployment plans. Earlier when removing connections attached
+ to an external/shared component, not *all* connections
+ associated with this components are purged from the
+ to-be-removed connections list.
+
+. Fixed a bug when redeploying components using the same set
+ of NodeManagers, the destroy of applications results not
+ all internal components and external/shared components
+ are unbinded from the cached map, which sometimes causes
+ duplicate instance exception thrown.
+
+. Fixed bug in detecting name clashes between names of ports of the same
+ category (facet, event sink, etc.) in the same component.
+
+. Added support for attribute exceptions in code generated for executor
+ implementation classes.
+
+. Implemented spec-defined component methods get_all_receptacles(),
+ get_all_publishers(), and disconnect_consumer().
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.4.10 and CIAO-0.5.0
+=======================================================
+
+. Changed MPC configuration of Config_Handlers to turn off hidden
+ visibility if applicable when compiling Config_Handlers or projects
+ that use Config_Handlers on linux.This change was to work around symbol
+ visibility inconsistencies in GNU standard C++ library when using g++
+ 4.x's symbol visibility features.
+
+. Enhanced ReDaC service to enforce the correct
+ assembly redeployment and reconfiguration order.
+
+. Some bug fixes in ReDaC about removing components.
+
+. Fixed NodeApplication to unbind a component with naming service
+ when removing it from the container.
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.4.9 and CIAO-0.4.10
+=======================================================
+
+. Enhanced DAnCE ReDaC service to enforce the correct
+ assembly redeployment and reconfiguration order.
+
+ The order that ReDaC currently enforces:
+
+ (1) Install new components,
+ (2) Set up new connections,
+ (3) Activate new components,
+ (4) Passivate old components,
+ (5) Remove old connections
+ (6) Remove old components.
+
+. Enhanced DAnCE to create hierarchical naming context
+ path through XML descriptors.
+
+. Enhanced DAnCE to maintain a component state map in
+ the component server to manage component life cycle.
+
+. Some bug fixes in DAnCE.
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.4.8 and CIAO-0.4.9
+======================================================
+. RTTI enabled versions of the Xerces library are no longer needed on
+ Windows platforms.
+
+. The CIDLC compiler now supports basic preprocessor directives:
+ #ifdef, #ifndef, #else, and #endif as well as the -D command-
+ line option.
+
+. The CIDLC compiler now supports incomplete struct and union
+ semantics which will appear in CORBA 3.1.
+
+. DAnCE now supports dynamically adding/removing components
+ to/from the existing running assembly without shutting down the
+ running appliation. This will allow the application developers to
+ evolve their applications on the fly without incuring service down
+ time. The service is called ReDaC (Redeployment and Reconfiguration)
+
+ Basically ReDAC provides a whole range of redeployment and
+ reconfiguration granularity level, including:
+
+ 1) Install/remove component instances of the existing component types.
+ 2) Install/remove component instances of a different type, i.e., a
+ totally new type of component.
+ 3) Install/remove component instances from an existing container.
+ 4) Install new component instances into a dynamically created brand
+ new container.
+ Move around existing components from one existing container to
+ another existing/new container.
+ 5) Install new component instances into another component server in
+ the same physical node.
+ 6) Install new component instances into another component server
+ into a remote host.
+
+ To see how to use this feature, please see the ReDaC-Usage.html
+ under the $CIAO_ROOT/examples/Hello/ directory.
+
+. Removed the Old Config Handlers, which have been deprecated for some
+ time. Please see tools/Config_Handlers for the current version.
+
+. Added a step-by-step CoSMIC tutorial for modeling CIAO components
+ using PICML($CIAO_ROOT/docs/tutorials/CoSMIC). Using a simple Stock
+ Quoter system as example, this tutorial demonstrates all the steps
+ that needed to model Component-Based applications.
+
+. DAnCE now supports making connections among components across
+ different assemblies, and allow components to be "shared"
+ across assemblies seamlessly.
+
+ Internally, DAnCE provides a reference counting mechanism when
+ deploying/destroying components, and a reference count table
+ is maintained on each NodeManager.
+
+ From a deployer's point of view, if he/she chooses to deploy
+ a new assembly of component and simultaneously wants to reuse
+ previous deployed components in an existing running assembly,
+ then in the new deployment plan descriptor, he could refer
+ to an old component instance in the <InstanceDeploymentDescriptions>
+ XML tag. The "key" to identify the old component instance is
+ through the <Component_UUID, Node> pair, if such a key is found
+ present in a previous deployed assembly, then DAnCE won't
+ install this component instance (specified by the <Component_UUID>)
+ again, but instead it will increase the reference count of this
+ component instance.
+
+ DAnCE also supports making connections from existing running
+ components to newly deployed components in another assembly, and
+ vice versa.
+
+. The RepositoryManager has been enhanced to support standards based
+ interfaces. A number of techniques have been used to ensure high
+ performance and scalability.
+
+. The RepositoryManager can now retrieve packages from remote locations via
+ HTTP.
+
+. The Target Manager is released with this CIAO release. It is an
+ infrastructure component which keeps track of resource usage in the
+ target domain. The initial domain configuration remains with the
+ Target Manager. A monitor framework has been built into Node Manager which
+ monitors the resources used within each host. This monitor reports its
+ data intermittently to the Target Manager which aggregates the data
+ received across all such hosts acroos the Target domain. The monitor
+ is implemented using a strategy pattern, thus enabling the plug-in of
+ new monitors which can monitor different resources in the domain. The
+ Target manager is a component thus it needs to be started using a
+ deployment plan. It is right now a optional component in the DAnCE
+ tool chain.
+
+. We added a skeleton implementation of the Resource Allocation and
+ Control Engine (RACE) which is a middleware framework built atop
+ CIAO/DAnCE that integrates multiple resource management algorithms for
+ (re)deploying and (re)configuring application components. We are in
+ the process of developing resource management algorithms (both
+ resource allocation and control algorithms) that will be a part of
+ future releases.
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.4.7 and CIAO-0.4.8
+======================================================
+. The deprecated RepositoryManager implementation, under
+ DAnCE/RepositoryManager, has been removed from this release. Please
+ use the Plan_Launcher and flattened deployment plans to deploy
+ component assemblies.
+
+. The CIDL compiler frontend now supports constants, const expressions,
+ bounded strings, bounded sequences, and arrays.
+
+. The CIDL compiler frontend now supports automatic indentation of
+ function arguments (both "new line" and "same line" styles are
+ supported).
+
+. Added backend CIDL compiler support for constants, arrays, bounded
+ strings, bounded sequences, and attribute exceptions, corresponding
+ to frontend support added by Boris Kolpackov <boris@kolpackov.net>.
+
+. Updated documentation to include instructions for building
+ the CIDL compiler using MakeProjectCreator (MPC).
+
+. Fixed a bug in the CIDL compiler's determination if an IDL
+ type is of fixed or variable size type, when it is declared
+ in the scope of an interface, valuetype or home.
+
+. Changes to generate servant code to support component
+ swapping.
+
+. Added capability to pass a base class event consumer to a
+ subscribe() operation generated for a derived event type.
+
+. Added support for .cdl file extension, which was belatedly
+ standardized by the OMG.
+
+. Added documentation on using Rational Purify with CIAO and
+ DAnCE.
+
+. Added tests and documentation for the IDL3-to-IDL2 converter tool.
+
+. RepositoryManager:
+ - enhanced the implementation to use various optimization techniques
+ - added HTTP support
+ - added PackageConfiguration visitor to update the locations of the
+ implementation artifacts with relevant HTTP URLs
+ - refactored some of the code and added a number of helpers functions
+
+. The XSC based config handlers have been heavily optimized, resulting
+ in greatly reduced parsing overhead for large deployments.
+
+. The DAnCE toolchain now supports initializing attributes which have
+ enumerated types. Support for other complex types is planned for the
+ future. Please see examples/Hello/descriptors/
+ flattened_deploymentplan_without_ns.cdp for an example of how to
+ populate enumerated attributes.
+
+. Integrated Real-time QoS support into the DAnCE-based runtime and
+ deployment tools based on the new OMG Deployment and Configuration
+ (D&C) specification. Such effort allows application developers to
+ use real-time CORBA 1.0 features within their CCM appliation through
+ meta-programming (via XML metadata through DAnCE toolchain). The old
+ run-time and deployment tools based on original Packaging and Deployment
+ section of the CCM specification have been completely removed. This
+ work includes extensions to D&C schema, schema parsers, container and
+ NodeApplication.
+
+. Added functionality in XML parsing code to resolve schema in
+ $CIAO_ROOT/docs/schema instead of the local directory only. All
+ DeploymentPlans should use Deployment.xsd instead of
+ Modified_Deployment.xsd, which has been removed.
+
+. Fixed bug in CIDL code generation for some types of component and
+ home attributes.
+
+. Packaging and Deployment (P&D) tools have been completely removed
+ from this release. DAnCE is now the only supported method of
+ deploying components.
+
+. The CIAO directory structure has changed in support of the previous
+ item. The following important directory moves have been made:
+
+ * $CIAO_ROOT/DAnCE/ciao => $CIAO_ROOT/ciao
+ * $CIAO_ROOT/DAnCE/examples => $CIAO_ROOT/examples
+ * $CIAO_ROOT/DAnCE/Config_Handlers => $CIAO_ROOT/tools/Config_Handlers
+ * Various obsolete examples/tutorials/tests have been removed.
+
+. Error reporting during component deployment has been greatly
+ improved. While debugging using CIAO_DEBUG_LEVEL is still
+ available, detailed error messages are now generated and propagated
+ to the Plan_Launcher using exceptions.
+
+. generate_component_mpc.pl has been updated to generate MPC files
+ useful by the modern CIAO infrastructure. This script now also
+ automatically generates export files.
+
+. DAnCE has been enhanced to support deploying multiple assemblies
+ with the same set of ExecutionManager and NodeMangers.
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.4.6 and CIAO-0.4.7
+======================================================
+. Added a component packaging tool to DAnCE. This tool will allow
+ component packagers to create from deployment plan archived
+ packages that wrap up all relevant component properties,
+ descriptors and implementation artifacts.The component packages
+ generated from this tool will be distributed to Repository
+ Manager.
+
+. Enhanced DAnCE to allow more than one NodeApplicationManagers within
+ a NodeManager.
+
+. Enhanced DAnCE to support configurable output of debugging information.
+ Support for debugging information will be added at the level of both the
+ DAnCE/CIAO infrastructure as well as individual component instances.
+ Support for tracing of the DAnCE/CIAO infrastructure will also be added.
+ Together, these efforts will help developers to understand the execution of
+ their component-based applications, as well as allowing customization of
+ the amount of debugging information logged
+
+. Added binding component to the Naming Service. A system deployer
+ could configure this through XML-based flattened deployment plan
+ descriptor.
+ See $CIAO_ROOT/DAnCE/examples/Hello/descriptors/flattened_deploymentplan.cdp
+ for details. Currently DAnCE only provides resolving naming service
+ reference through multicast, so be sure to initialize the naming service
+ with multicast port.
+
+. Added the first cut of the RepositoryManager implementation.
+
+. Changed scoping of code generated by the CIDL compiler to accommodate
+ cases where the composition declaration is enclosed in one or more
+ IDL modules, and/or when the composition declaration is in a different
+ scope than the associated component IDL declarations.
+
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.4.5 and CIAO-0.4.6
+======================================================
+
+. Added support for handle component activation/passivation in D&C
+ assemblies.
+
+. Added a test for the tool that converts IDL3 into equivalent IDL2.
+
+. Fixed CIDL compiler bug in code generation for sequence type
+ attributes of components.
+
+. Added more examples for CIAO, including a new Quoter example that is
+ similar to the one in TAO, as well as GUI-based example.
+
+. Added support for handle component activation/passivation in D&C
+ assemblies.
+
+. Added support for deactivating facets/event consumers when component
+ is getting deactivated.
+
+. Added support for destroying the component executors, when the
+ component is getting deactivated.
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.4.4 and CIAO-0.4.5
+======================================================
+
+. Split the previous NodeApplication interface into NodeApplication
+ and Container interfaces to allow multi-container NodeApplication
+ support. This will be particularly useful to provide an optimized
+ CIAO container support for RT-CORBA features.
+
+. Enhanced CIAO to handle dynamic replacement of components. Please
+ see an example in $CIAO_ROOT/DAnCE/examples/Swapping
+
+. The Config Handlers have been modified to use XML parsing code
+ generated by the XML Schema Compiler (XSC). Binary releases of XSC can
+ currently be found at (http://www.dre.vanderbilt.edu/~boris/xsc), and a
+ recent snapshot of the CVS repository can be found at
+ (http://www.dre.vanderbilt.edu/~wotte/xsc.tbz2).
+
+ Please direct all XSC inquiries/bug reports to wotte at
+ dre.vanderbilt.edu
+
+. Supported initializing attribute values on Component through XML
+ tags. Please refer to the $CIAO_ROOT/DAnCE/examples/Hello for
+ details, particularly the Hello.cid descriptor file.
+
+. Supported parsing component instance names and using them to generate
+ unique component port references, so that multiple instances of the
+ same component can be deployed in a single container and the client
+ requests could be properly designated to the appropriate ports.
+
+. Enhance CIAO to support establishing connections between derived
+ type ports and base type ports. For example, application deployer
+ could set up event connections between base event sink port type and
+ derived event source port type.
+
+. Enhanced the existing set of DAnCE tools to support flattened
+ Deployment Plan based deployment. Please refer an example in
+ $CIAO_ROOT/DAnCE/examples/BasicSP/flattened_deploymentplan.cdp
+ to see how the flattened deployment plan descriptor is used to
+ deploy the BasicSP example.
+
+. Develop regression/performance tests (similar to TAO
+ regression/performance tests) that will test/evaluate the
+ performance of various features of CIAO.
+
+. Added regression test script to the nightly build for DAnCE example.
+ This will make sure DAnCE tools could be ready to use out of
+ box in various platforms.
+
+. Improved documentation pages in various places.
+
+. Some bug fixes.
+
+. Added support for reception of eventtypes of a more derived type than
+ the type of the event sink. Subscription will succeed if the passed
+ event consumer is associated with an eventtype that is an ancestor of
+ the published eventtype.
+
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.4.3 and CIAO-0.4.4
+======================================================
+
+. Minor bugfixes.
+
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.4.2 and CIAO-0.4.3
+======================================================
+
+. CIDLC can generate empty executor implementations for a given
+ composition, which makes it easier to write executors. This can be
+ trigerred by passing --gen-exec-impl option while invoking CIDLC.
+
+. Generated container code has been refactored into base classes,
+ thereby reducing the amount of code generated by CIDLC.
+
+. A new tool for generating equivalent IDL2 declarations from IDL3
+ declarations has been added.
+
+. Fixed a problem with DAnCE that prevented ports from getting activated
+ properly.
+
+. Added support for eventtype factories within CIDLC.
+
+. DAncE compiles clean and works with VC6 and Borland compilers.
+
+. Fixed compile errors and memory related errors on many platforms.
+
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.4.1 and CIAO-0.4.2
+======================================================
+
+. Overall
+ - Support for g++ 3.4.1.
+ - Support added for latest HP aCC compiler.
+
+. CCM Deployment and Configuration specification has largely been
+ implemented. The implementation is called "DAnCE", the Deployment
+ and Configuration Engine. For more information about DAnCE, and a
+ list of supported features, please refer to
+ $CIAO_ROOT/docs/releasenotes/dance.html.
+
+. CIDL compiler
+ . Added missing generation of servant code for operations and
+ attributes of ancestors of interfaces supported and used as ports.
+ . Added missing generation of factory operation(s) from inherited
+ home(s).
+ . Added support for "uses multiple" in generated code.
+ . Fixed bugs in generation of inherited: [Bug 1800]
+ home operations
+ attribute operations
+ port operations
+ home factory operations
+ supported operations
+ . Added automatic registration of value factories for event
+ consumers.
+ . Added support for emits-related navigation.
+ . Fixed bug with multiple facets that provide the same interface.
+ . Implemented get_all_facets() and get_all_consumers() navigation
+ methods.
+
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.4 and CIAO-0.4.1
+====================================================
+
+CIAO
+----
+
+. Added support for statically configuring an assembly. Please see
+ $CIAO_ROOT/docs/static_toc_ciao.html for details.
+
+CIDL:
+-----
+. Fixed incorrect generation of ACE environment macros in servant glue
+ code operations.
+
+. Fixed incorrect code generation in the body of a servant operation
+ that delegates to the executor class.
+
+. Added support for attributes in facets and supported
+ interfaces.
+
+. Fixed bug in code servant glue code generation when there are
+ multiple nested modules in the IDL and/or CIDL files.
+
+. Added missing code generation of enum type names.
+
+. Fixed a bug in the generation of the scoped name of a local variable
+ which is a _var of an executor interface for a facet. These types
+ are required by the CCM spec to be generated in the same scope as
+ the interface that underlies the facet.
+
+. Fixed a bug in the generation of *S.h file includes corresponding to
+ IDL files included in the CIDL file.
+
+. Added ACE style Makefiles.
+
+. Added support for bounded strings
+
+MPC
+===
+. Removed all of the project type specific and unnecessary keywords.
+
+. Changed the defaulting rules for idl files (generated source files
+ will be automatically added even if idl files are explicitly
+ listed).
+
+. The makefiles generated by the gnuace type are now named GNUmakefile
+ instead of Makefile.
+
+. The IDL_Files section is no longer a built-in MPC type. It is a
+ custom build type defined in taoidldefaults.mpb.
+
+. Added support for Borland Makefiles that aren't tied to ACE_wrappers
+ (the bmake project type).
+
+. Added wild-cards to the default.rel file. Now, environment
+ variables that end in _ROOT are automatically considered as if they
+ were used with the -relative option.
+
+. Added an environment variable,
+ MPC_DEPENDENCY_COMBINED_STATIC_LIBRARY, to force MPC to put
+ inter-project dependencies in static vc6 and vc71 workspaces.
+
+. Added an html project type (originally by Justin Michel) to aid in
+ the debugging of mpc files.
+
+. Added a new keyword, pure_libs, that is put into a project
+ unmodified (unlike the libs and lit_libs keywords).
+
+. The behavior obtained through the use of the -hierarchy option is
+ now the default for all "make" based project types. This includes
+ borland, bmake, gnuace, make and nmake.
+
+. Added support for referencing workspace files (.mwc) from within
+ other workspaces.
+
+. Added an option, -genins, that causes MPC to generate .ins files
+ that can be used with prj_install.pl. This will help users install
+ portions of their projects into alternate directories.
+
+. Modified the gnuace workspace output to be based on directory
+ recursion instead of having inter-project dependencies built into
+ each workspace level GNUmakefile.
+
+. Added a new keyword, dependent, for use within a Define_Custom that
+ causes MPC to add a dependency to generated files upon the custom
+ command.
+
+. Assignments within a 'specific' section that are not recognized MPC
+ keywords are assumed to be template value overrides (similar to
+ using the -value_template option).
+
+. Partial support for Visual SlickEdit has been added.
+
+. Various bug fixes and optimizations have been added as well.
+
+
+USER VISIBLE CHANGES BETWEEN CIAO-0.3.6 and CIAO-0.4
+====================================================
+
+. Added Makefiles to build the ciao and tools subdirs by default.
+
+. The suport for the following IDL features have been added to the
+ CIDL since the last beta
+
+ - exception (exception declaration and raises() specification)
+ - valuetype
+ - enum
+ - const declaration
+ - const expression and literals
+ - native
+ - home finder
+ - oneway operation
+ - readonly attribute
+ - type declaration inside interfaces, valuetypes
+ - union
+
+ CIDL doesn't yet support the following features
+
+ - Complete error detection and recovery
+ - Attribute exception specification
+ - Array
+ - Bounded sequence
+ - Fixed type
+ - Floating-point and Fixed-point constant expressions & literal.
+
+ though we plan to add this support over the next several months,
+ depending on user/sponsor needs.
diff --git a/modules/CIAO/PROBLEM-REPORT-FORM b/modules/CIAO/PROBLEM-REPORT-FORM
new file mode 100644
index 00000000000..c3c49f741d2
--- /dev/null
+++ b/modules/CIAO/PROBLEM-REPORT-FORM
@@ -0,0 +1,97 @@
+[Please use the PRF form below to submit bug reports, problem
+ reports, etc., to the CIAO developers and interested users.
+ Send to ciao-users@cs.wustl.edu. If you are using OCI or PrismTech's
+ versions of CIAO do not send bugs to this mailing list, but
+ instead contact those companies for support. Please also send your
+ PRF as plain ASCII text, _not_ uuencoded or as an attachment.
+
+ We prefer that all bug reports be submitted through our bug tracking
+ system. See $ACE_ROOT/docs/usage-bugzilla.html for more information
+ about how to do this. If you are unsure as to whether your problem
+ is a real bug or not then please submit your question to the mailing
+ list using the following form. Not using the problem report form
+ will make it harder or impossible to identify the problem, and in
+ many cases we will be unable to help at all. Also please try to
+ browse bugzilla and the ChangeLog files to find out if your problem
+ has been solved in a more recent version of CIAO.
+
+ To ensure that you see responses, please do one of the following:
+
+ 1) Subscribe to the ciao-users mail list, by sending email with
+ contents "subscribe ciao-users" to majordomo@cs.wustl.edu.
+
+ 2) Or, monitor the comp.soft-sys.ace newsgroup for responses.
+
+ Replace/remove all the explanatory text in brackets before mailing.
+
+ Please send this form as ASCII text only. Do _not_ send it as an
+ attachment, or as tar'ed, compressed and/or uuencoded text. And
+ limit line lengths to less than 80 characters.
+
+ PLEASE make your Subject: line as descriptive as possible.
+ Subjects like "CIAO bug" or "bug report" are not helpful!
+ Also, do _not_ include the word "help" in the Subject!]
+
+ When including your config.h and platform_macros.GNU files as requested
+ below, only include the contents if you use the recommended method of
+ including the platform-specific file in your file. If you use a link
+ to the platform-specific file, simply state which one - DO NOT include
+ an entire platform-specific configuration file in the form.
+
+8<----------8<----------8<----------8<----------8<----------8<----------8<----
+
+To: ciao-users@cs.wustl.edu
+Subject: [area]: [synopsis]
+
+ CIAO VERSION: 0.7.4
+ TAO VERSION : 1.7.4
+ ACE VERSION : 5.7.4
+
+ HOST MACHINE and OPERATING SYSTEM:
+ If on Windows based OS's, which version of WINSOCK do you
+ use?:
+
+ TARGET MACHINE and OPERATING SYSTEM, if different from HOST:
+ COMPILER NAME AND VERSION (AND PATCHLEVEL):
+
+ THE $ACE_ROOT/ace/config.h FILE [if you use a link to a platform-
+ specific file, simply state which one]:
+
+ THE $ACE_ROOT/include/makeinclude/platform_macros.GNU FILE [if you
+ use a link to a platform-specific file, simply state which one
+ (unless this isn't used in this case, e.g., with Microsoft Visual
+ C++)]:
+
+ BUILD METHOD USED:
+[Experimental ./configure or traditional makefile/project file?]
+
+ CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/default.features
+ (used by MPC when you generate your own makefiles):
+
+ AREA/CLASS/EXAMPLE AFFECTED:
+[What example failed? What module failed to compile?]
+
+ DOES THE PROBLEM AFFECT:
+ COMPILATION?
+ If so, what do your $ACE_ROOT/ace/config.h and
+ $ACE_ROOT/include/makeinclude/platform_macros.GNU contain?
+ LINKING?
+ On Unix systems, did you run make realclean first?
+ EXECUTION?
+ OTHER (please specify)?
+[Please indicate whether ACE/TAO/CIAO, your application, or both are affected.]
+
+ SYNOPSIS:
+[Brief description of the problem]
+
+ DESCRIPTION:
+[Detailed description of problem. Don't just say "<blah>
+doesn't work, here's a fix," explain what your program does
+to get to the <blah> state. ]
+
+ REPEAT BY:
+[What you did to get the error; include test program or session
+transcript if at all possible. ]
+
+ SAMPLE FIX/WORKAROUND:
+[If available ]
diff --git a/modules/CIAO/README b/modules/CIAO/README
new file mode 100644
index 00000000000..22504fb64af
--- /dev/null
+++ b/modules/CIAO/README
@@ -0,0 +1,152 @@
+
+BUILDING CIAO
+========================
+
+* Supported platform:
+
+ We have tried CIAO examples on Win32 using MSVC 7.1 and above and on
+ Linux.
+
+* Documentation:
+
+ Various documents are available under $(CIAO_ROOT)/docs/
+ Commments and suggestions for improving these documents are
+ extremely welcome.
+
+* Preparation - Compiling ACE and TAO:
+
+ *************************************************
+
+ There has been some big changes in MPC and
+ a few "problems" are being sorted out before
+ ACE/TAO switched to use MPC generated Makefile
+ projects files exclusively. CIAO only uses
+ MPC. MPC, however, assumes a slightly different
+ directory structure than the stock, old ACE
+ Makefile/project files. Therefore, it is
+ a bit adventurous to compile CIAO at this time
+ of transition. Here are some hints that you
+ can try to make this work a bit easier.
+
+ 1. Make sure to add $ACE_ROOT/lib into your
+ PATH, or LD_LIBRARY_PATH (before
+ $ACE_ROOT/bin)
+
+ 2. Make sure you don't have old CIAO libraries
+ DLL and so files) hanging around.
+
+ 3. If prefered, you can re-generate the Makefile,
+ project files for all/core ACE/TAO libraries.
+ (e.g., using $ACE_ROOT/TAO/TAOACE.mwc.)
+
+ *************************************************
+
+ CIAO depends on many CORBA features to function properly so you need
+ to compile them first. Here is a non-exhaustive list:
+
+ ACEXML_Parser,
+
+ Valuetype
+ IORInterceptor
+ ObjRefTemplate
+ Security
+ PortableServer
+ IFR_Client
+
+ RTPortableServer
+ RTCORBA
+
+and also the libraries they depends on.
+
+ - On Linux, try defining these in the platform_macros.GNU
+
+ exceptions=1
+ interface_repo=1
+ ssl=1
+
+* Compiling CIAO core libraries and tools:
+
+ Assuming CIAO_ROOT = ACE_wrappers/TAO/CIAO/
+
+ Compile the following directories:
+
+
+ $CIAO_ROOT/ciao/
+
+ $CIAO_ROOT/tools/XML_Helpers
+ $CIAO_ROOT/tools/ComponentServer
+ $CIAO_ROOT/tools/ServerActivator
+ $CIAO_ROOT/tools/Assembly_Deployer
+ $CIAO_ROOT/tools/Daemon
+
+ You need to creating the Makefile of your choice..
+ For example, for unix makefile:
+
+ $ cd $CIAO_ROOT/ciao/
+ $ $(ACE_ROOT)/bin/mwc.pl
+ $ make
+
+ To regenerate VC7.1.NET project files, do:
+
+ > cd $CIAO_ROOT/ciao
+ > $(ACE_ROOT)/bin/mwc.pl -type vc71
+
+* You also need to build the CIDL compiler before trying out any
+ examples. The CIDL compiler, CIDLC, compiles your component
+ implementation definition and generates the necessary glue code for
+ developing and deploying components. Pleas see
+ $CIAO_ROOT/CIDLC/README.html for instructions on how to build and
+ use CIDLC.
+
+* Now you can play with the examples:
+
+ - $CIAO_ROOT/examples/Hello
+
+ This is a single component example. Check out run_test.pl to see
+ how you can instantiate a single component using CIAO.
+
+ - $CIAO_ROOT/examples/OEP/Display
+
+ This is a multiple-component example. RateGen component
+ subdirectory contains a run_test.pl that you can use to
+ instantiate a component instance, like you would do with the
+ Hello example. The other components require collaboration with
+ other components and I don't have client programs to test them
+ out individually.
+
+ This example also lets you compose all the components into a
+ distributed application using the Assembly_Deployer. Change
+ directory to
+
+ $CIAO_ROOT/examples/OEP/Display/descriptors
+
+ and take a look at the file: NOTE.txt. This file describes the
+ steps to compose the application using various different
+ configurations and composition specs.
+
+ - $CIAO_ROOT/examples/OEP/BasicSP
+
+ This is a new multi-component example. It has the similar
+ struture as the Dsiplay example above.
+
+
+* If you can not find the
+ Makefiles for unix platform you are using, you can use mwc to create
+ them. For examples, to compile the multi-component example, use the
+ following:
+
+ $ cd $CIAO_ROOT/examples/Display
+ $ $(ACE_ROOT)/bin/mwc.pl
+ $ make
+
+ To regenerate VC6 dsp files, do:
+
+ > cd $CIAO_ROOT/examples/Display
+ > $(ACE_ROOT)/bin/mwc.pl -type vc6
+
+ Likewise, to regenerate VC7.NET project files, do:
+
+ > cd $CIAO_ROOT/examples/Display
+ > $(ACE_ROOT)/bin/mwc.pl -type vc7
+
+
diff --git a/modules/CIAO/Release b/modules/CIAO/Release
new file mode 100644
index 00000000000..2198eab5e2a
--- /dev/null
+++ b/modules/CIAO/Release
@@ -0,0 +1,53 @@
+#----------------------------------------------------------------------------
+# $Id$
+#
+# Top-level Makefile for the CIAO
+#----------------------------------------------------------------------------
+
+#### The "release" targets can be used to create the ACE+TAO+CIAO kit. By
+#### default, it creates a new beta release. To create a new minor or
+#### major release, add "REL=minor" or "REL=major", respectively, to
+#### the make invocation.
+
+CONTROLLED_FILES = CIAO
+
+RELEASE_FILES = $(addprefix ACE_wrappers/TAO/,$(CONTROLLED_FILES))
+
+.PHONY: CIAO tag
+
+REL = beta
+MAKE = make -f Release
+CHECK =
+APPLY_NEW_TAG = tag
+
+#### The call to make_release below doesn't actually create the kit.
+allsources: $(APPLY_NEW_TAG)
+ @cd $(ACE_ROOT) && $(MAKE) -s ciaosources
+
+tag:
+ @$(ACE_ROOT)/bin/make_release $(CHECK) -k ciao -v $(REL) -u
+
+######################################################################
+#### The following target is to create a CIAO distribution
+#### It just delegates to our well known target
+#####################################################################
+CIAO: $(allsources)
+
+
+.PHONY: show_controlled_files show_release_files show_release_lib_files
+
+show_controlled_files:
+ @echo $(CONTROLLED_FILES)
+
+show_release_files:
+ @echo $(RELEASE_FILES)
+
+show_release_lib_files:
+ @echo ""
+
+show_release_tag_files:
+ @echo ""
+
+CIAO-INSTALL: CIAO-INSTALL.html
+ @lynx -dump $< > CIAO-INSTALL
+
diff --git a/modules/CIAO/VERSION b/modules/CIAO/VERSION
new file mode 100644
index 00000000000..5905b0be6ef
--- /dev/null
+++ b/modules/CIAO/VERSION
@@ -0,0 +1,11 @@
+This is CIAO version 0.7.4, released Mon Oct 12 14:03:48 CDT 2009
+
+If you have any problems with or questions about CIAO, please send
+e-mail to the CIAO mailing list (ciao-users@cs.wustl.edu), using the
+form found in the file CIAO/PROBLEM-REPORT-FORM. To ensure that you
+see responses, please do one of the following:
+
+ 1) Subscribe to the ciao-users mail list, by sending email with
+ contents "subscribe ciao-users" to majordomo@cs.wustl.edu.
+
+ 2) Or, monitor the comp.soft-sys.ace newsgroup for responses.
diff --git a/modules/CIAO/bin/PerlCIAO/TestUtils.base b/modules/CIAO/bin/PerlCIAO/TestUtils.base
new file mode 100644
index 00000000000..7e68a521d2f
--- /dev/null
+++ b/modules/CIAO/bin/PerlCIAO/TestUtils.base
@@ -0,0 +1,3 @@
+processes
+files
+wd
diff --git a/modules/CIAO/bin/PerlCIAO/TestUtils.pm b/modules/CIAO/bin/PerlCIAO/TestUtils.pm
new file mode 100644
index 00000000000..6cb4ca22fe7
--- /dev/null
+++ b/modules/CIAO/bin/PerlCIAO/TestUtils.pm
@@ -0,0 +1,323 @@
+
+#------------------------------------------------------------------------
+# class: TestUtils
+# Author: Stoyan Paunov
+#
+# Description: This is a class to help us write better and more manage-
+# able test utilities. Usually when creating a test in
+# CIAO it has to do with deploying a number of managers
+# and failure to deploy any process means failure of the
+# test. This test utility class takes care of the error
+# handling and clean-up and side of testing and allows
+# the test writer to concentrate on the core logic.
+# These are the main advantages of the TestUtils class:
+# --> Semi-Automatic error handling
+# --> Automatic process shutdown and clean-up
+# --> Semi-Automatic file (IOR) deletion
+# --> Location independent tests
+# --> Clean and concise code base
+# --> Manageable test utility suites
+#------------------------------------------------------------------------
+
+# class TestUtils
+sub new;
+sub DESTROY;
+sub cleanup;
+sub goto_dir;
+sub spawn;
+sub terminate;
+sub required_file;
+sub required_files;
+sub mark_file;
+sub mark_files;
+sub remove_file;
+sub remove_files;
+sub cleanup_files;
+sub cleanup_processes;
+
+package TestUtils;
+use PerlCIAO::TestUtils_Base;
+use strict;
+our @ISA = qw(TestUtils_Base); # inherits from TestUtils_Base
+
+use lib "$ENV{'ACE_ROOT'}/bin";
+use PerlACE::Run_Test;
+use Cwd;
+
+#------------------------------------------------------------------------
+# Constructor
+#------------------------------------------------------------------------
+sub new {
+ my $class = shift;
+
+ #call the constructor of the parent class, TestUtils_Base.
+ my $self = $class->SUPER::new();
+
+ $self->{_wd} = getcwd;
+
+ bless $self, $class;
+ return $self;
+}
+
+#------------------------------------------------------------------------
+# Destructor: performs clean-up
+#------------------------------------------------------------------------
+
+sub DESTROY {
+ my $self = shift;
+
+ #$self->cleanup (); check the CLEAN-UP description for explanation
+}
+
+#------------------------------------------------------------------------
+# Cleanup: This fuction kills the spawned processes and deletes the
+# marked files. Optionally, once the cleanup is done it will
+# cause the program to exit, iff an exit code is specified.
+#
+#
+# NOTE: You need to call the cleanup () although it is called
+# in the destructor because this class is a wrapper around
+# PerlACE::Run_Test which also keep some internal state
+# and tries to do some clean-up. However its destructor
+# is called before this one, and this results in some
+# errors.
+#------------------------------------------------------------------------
+
+sub cleanup {
+ my $self = shift;
+ my $exit_code = shift;
+
+ print "Performing clean-up ...\n";
+
+ $self->cleanup_files ();
+ $self->cleanup_processes ();
+
+ print "Cleanup = DONE\n";
+
+ chdir $self->wd ();
+
+ if (defined ($exit_code)) {
+ exit ($exit_code);
+ }
+}
+
+#------------------------------------------------------------------------
+# Goto_dir: This function allows you to change the current working
+# directory. Note that the class returns to the original
+# working directory upon exit.
+#------------------------------------------------------------------------
+
+#TODO: might want to push the dir to some stack
+sub goto_dir {
+ my $self = shift;
+ my $dir = shift;
+
+ if (! (chdir $dir)) {
+ print STDERR "Failed to change directory to: $dir";
+ $self->cleanup ();
+ }
+
+}
+
+#------------------------------------------------------------------------
+# Spawn: This function is used to spawn a process. It takes a descriptive
+# name under which it stores the process, the command line and the
+# arguments needed by the command. Optionally, you could specify
+# a timeout based on which the process would be spawned and if
+# it has not terminated after timeout seconds it will be killed.
+# If a failure occurs the function will perform clean-up and
+# terminate the program.
+#------------------------------------------------------------------------
+
+sub spawn {
+ my $self = shift;
+ my $name = shift;
+ my $cmd = shift;
+ my $args = shift;
+ my $timeout = shift;
+
+ if (!defined ($self->processes ())) {
+ $self->{_processes} = {};
+ }
+
+ my $process = new PerlACE::Process ($cmd, $args);
+
+ if (defined ($timeout)) {
+ if ((my $ret = $process->SpawnWaitKill ($timeout)) == -1) {
+ print STDERR "ERROR: Process $name returned $ret.\n";
+ $self->cleanup (1);
+ }
+ }
+ else {
+ if ($process->Spawn () == -1) {
+ $process->Kill ();
+ #just in case, lets add it to the process list
+ $self->processes->{$name} = $process;
+ print STDERR "ERROR: Failure to spawn $name.\n";
+ $self->cleanup (1);
+ }
+ }
+
+ $self->processes->{$name} = $process;
+ return $process;
+}
+
+#------------------------------------------------------------------------
+# Terminate: This function takes in the descriptive process name passed
+# to Spawn, looks up the process corresponding to it and
+# kills it.
+#------------------------------------------------------------------------
+
+sub terminate {
+ my $self = shift;
+ my $pname = shift;
+
+ $self->processes ()->{$pname}->Kill ();
+ $self->processes ()->{$pname}->TimedWait (1);
+
+ print STDERR "$pname teminated!\n";
+}
+
+#------------------------------------------------------------------------
+# Required_file: This function checks if a required file is present in
+# the current working directory. If the file is missing
+# it performs cleanup and causes the program to exit.
+#------------------------------------------------------------------------
+
+sub required_file {
+ my $self = shift;
+ my $file = shift;
+
+ if (PerlACE::waitforfile_timed
+ ($file, $PerlACE::wait_interval_for_process_creation) == -1) {
+
+ print STDERR
+ "ERROR: Required file $file could not be found.\n";
+
+ $self->cleanup (1);
+ }
+ return 1;
+}
+
+#------------------------------------------------------------------------
+# Required_filez: This function does the same as required_file above
+# except that it works on a reference (REF) to a list
+# of required files.
+#------------------------------------------------------------------------
+
+sub required_files {
+ my $self = shift;
+ my $files = shift;
+ my $pname = shift;
+
+ foreach my $file (@{$files}) {
+
+ if (PerlACE::waitforfile_timed
+ ($file, $PerlACE::wait_interval_for_process_creation) == -1) {
+
+ print STDERR
+ "ERROR: Required file $file could not be found.\n";
+
+ $self->cleanup (1);
+ }
+ }
+ return 1;
+}
+
+#------------------------------------------------------------------------
+# Mark_file: This function marks a file from the current working
+# directory for deletion. Once the file is marked it will be
+# deleted upon program termination. If the file cannot be
+# found, it is ignored.
+#------------------------------------------------------------------------
+
+sub mark_file {
+ my $self = shift;
+ my $file = shift;
+
+ if (!defined $self->files ()) {
+ $self->{_files} = [];
+ }
+
+ push @{$self->files ()}, $file;
+}
+
+#------------------------------------------------------------------------
+# Mark_filez: This function does the same as mark_file above except
+# that it works on a reference (REF) to an array/list of
+# required files.
+#------------------------------------------------------------------------
+
+sub mark_files {
+ my $self = shift;
+ my $files = shift;
+
+ if (!defined $self->files ()) {
+ $self->{_files} = [];
+ }
+
+ foreach my $file (@{$files}) {
+ push @{$self->files ()}, $file;
+ }
+}
+
+#------------------------------------------------------------------------
+# Remove_file: This fuction removes a file from the current working
+# directory. If the file is not there, it is ignored.
+#------------------------------------------------------------------------
+
+sub remove_file {
+ my $self = shift;
+ my $file = shift;
+
+ my $path = PerlACE::LocalFile ($file);
+ unlink $path;
+}
+
+#------------------------------------------------------------------------
+# Remove_filez: This fuction removes a list of file from the current
+# working directory. It takes a REF of a list of files
+# and ignores files which are not found.
+#------------------------------------------------------------------------
+
+sub remove_files {
+ my $self = shift;
+ my $files = shift;
+
+ foreach my $file (@{$files}) {
+ my $path = PerlACE::LocalFile ($file);
+ unlink $path;
+ }
+}
+
+#------------------------------------------------------------------------
+# Cleanup_files: clean us the files :)
+#------------------------------------------------------------------------
+
+sub cleanup_files {
+ my $self = shift;
+
+ if (defined ($self->files ())) {
+ foreach my $file (@{$self->files ()}) {
+ $self->remove_file ($file);
+ }
+ }
+}
+
+#------------------------------------------------------------------------
+# Cleanup_processes: clean us the processes :)
+#------------------------------------------------------------------------
+
+sub cleanup_processes {
+ my $self = shift;
+
+ if (defined ($self->processes ())) {
+ foreach my $pname ( keys %{$self->processes ()}) {
+ $self->terminate ($pname);
+ delete ($self->processes ()->{$pname});
+ }
+ }
+}
+
+#return value of the class
+1; \ No newline at end of file
diff --git a/modules/CIAO/bin/PerlCIAO/TestUtils_Base.pm b/modules/CIAO/bin/PerlCIAO/TestUtils_Base.pm
new file mode 100644
index 00000000000..be0726946c9
--- /dev/null
+++ b/modules/CIAO/bin/PerlCIAO/TestUtils_Base.pm
@@ -0,0 +1,78 @@
+#File generated by C:\ACE_wrappers_devel\ACE_wrappers\TAO\CIAO\bin\PerlCIAO\generate_container.pl.
+#Input file: TestUtils.base.
+#Code generator author: Stoyan Paunov
+#
+
+#class TestUtils_Base
+package TestUtils_Base;
+use strict;
+
+#Class constructor :)
+sub new {
+ my ($class) = @_;
+
+ #Create a reference to an anonymous hash
+ my $self = {
+ _processes => undef,
+ _files => undef,
+ _wd => undef
+ };
+
+ #Bless the hash.
+ bless $self, $class;
+ return $self;
+}
+
+#accessor/mutator method for processes
+sub processes {
+ my ( $self, $processes ) = @_;
+
+ $self->{_processes} = $processes
+ if defined ($processes);
+
+ return $self->{_processes};
+}
+
+#accessor/mutator method for files
+sub files {
+ my ( $self, $files ) = @_;
+
+ $self->{_files} = $files
+ if defined ($files);
+
+ return $self->{_files};
+}
+
+#accessor/mutator method for wd
+sub wd {
+ my ( $self, $wd ) = @_;
+
+ $self->{_wd} = $wd
+ if defined ($wd);
+
+ return $self->{_wd};
+}
+
+#print method for the class
+sub print {
+ my ($self) = @_;
+
+ my $f;
+
+ $f = defined ($self->{_processes})
+ ? $self->{_processes} : "not defined";
+ printf ("processes: %s\n", $f);
+
+ $f = defined ($self->{_files})
+ ? $self->{_files} : "not defined";
+ printf ("files: %s\n", $f);
+
+ $f = defined ($self->{_wd})
+ ? $self->{_wd} : "not defined";
+ printf ("wd: %s\n", $f);
+
+}
+
+#class return value
+1;
+
diff --git a/modules/CIAO/bin/PerlCIAO/generate_container.pl b/modules/CIAO/bin/PerlCIAO/generate_container.pl
new file mode 100755
index 00000000000..c56c03ea300
--- /dev/null
+++ b/modules/CIAO/bin/PerlCIAO/generate_container.pl
@@ -0,0 +1,126 @@
+#!/usr/bin/perl
+#
+# $Id$
+#
+# The above line is for compatibility /w Linux. Windows uses the .pl extension.
+# Author: Stoyan Paunov
+# Purpose: Generate a container class with mutator/accessor methods
+# The idea is to use this class as a base class in the
+# inheritance hierarchy. This way we can evolve the base
+# container independently from the rest of the code!
+#
+
+use strict;
+
+die "Usage: $0 <module name> <field description file>\n"
+ if not defined $ARGV[0];
+
+die "Usage: $0 <module name> <field description file>\n"
+ if not defined $ARGV[1];
+
+my $module_name = $ARGV[0];
+my $fields = $ARGV[1];
+
+open (FIELDS, $fields) or die "Failed opening $fields\n";
+
+my @fields = <FIELDS>;
+close FIELDS;
+
+my $field;
+
+print "\#File generated by $0.\n";
+print "\#Input file: $fields.\n";
+print "\#Code generator author: Stoyan Paunov\n\#\n\n";
+
+print "\#class $module_name\n";
+print "package $module_name;\n";
+print "use strict;\n\n";
+print "\#Class constructor :)\n";
+print "sub new {\n";
+print " my (\$class) = \@_;\n\n";
+print " \#Create a reference to an anonymous hash\n";
+print " my \$self = {\n";
+
+my $count = 0;
+my $end = $#fields;
+
+#generate initialization code
+foreach $field (@fields)
+{
+ if ($field =~ /^$/ ) # empty line
+ {
+ next;
+ }
+
+ chomp ($field);
+
+ if ($count == $end)
+ {
+ printf (" _\%-14s => undef\n", $field);
+ next;
+ }
+ printf (" _\%-14s => undef,\n", $field);
+
+
+ $count++
+}
+
+print " };\n\n";
+print " \#Bless the hash.\n";
+print " bless \$self, \$class;\n";
+print " return \$self;\n";
+print "}\n\n";
+
+#Code to generate the accessor and mutator
+
+foreach $field (@fields)
+{
+ if ($field =~ /^$/ ) # empty line
+ {
+ next;
+ }
+
+ chomp ($field);
+
+ print "\#accessor/mutator method for $field\n";
+ print "sub $field {\n";
+ print " my ( \$self, \$$field ) = \@_;\n\n";
+ print " \$self->{_$field} = \$$field\n";
+ print " if defined (\$$field);\n\n";
+ print " return \$self->{_$field};\n";
+ print "}\n\n";
+
+}
+
+
+print "\#print method for the class\n";
+print "sub print {\n";
+print " my (\$self) = \@_;\n\n";
+
+print " my \$f;\n\n";
+
+#Code to generate a print method which dumps the object state
+foreach $field (@fields)
+{
+ if ($field =~ /^$/ ) # empty line
+ {
+ next;
+ }
+
+ chomp ($field);
+ print " \$f = defined (\$self->{_$field}) \n";
+ print " ? \$self->{_$field} : \"not defined\";\n";
+ print " printf (\"$field: %s\\n\", \$f);\n\n";
+
+}
+
+
+
+print "}\n\n";
+
+print "\#class return value \n1;\n\n";
+
+
+
+
+
diff --git a/modules/CIAO/bin/PerlCIAO/perlciao.mpc b/modules/CIAO/bin/PerlCIAO/perlciao.mpc
new file mode 100644
index 00000000000..681f977300f
--- /dev/null
+++ b/modules/CIAO/bin/PerlCIAO/perlciao.mpc
@@ -0,0 +1,10 @@
+
+// $Id$
+
+project(PerlCIAO) : script {
+ Script_Files {
+ TestUtils.pm
+ TestUtils_Base.pm
+ }
+ custom_only=1
+}
diff --git a/modules/CIAO/bin/ciao_tests.lst b/modules/CIAO/bin/ciao_tests.lst
new file mode 100644
index 00000000000..ab7b0e39567
--- /dev/null
+++ b/modules/CIAO/bin/ciao_tests.lst
@@ -0,0 +1,36 @@
+# $Id$
+#
+# This is the list of run_test.pl's that need to be run by
+# auto_run_tests.pl.
+# Each line has its own test, and a test can be followed by a
+# list of configurations it does _not_ run on.
+#
+# Example: TAO\examples\foo\run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ST
+#
+TAO/CIAO/examples/Hello/descriptors/run_test.pl: !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NOXERCES !ACE_FOR_TAO !ST !LabVIEW_RT !WinCE !FUZZ
+TAO/CIAO/examples/BasicSP/descriptors/run_test.pl: !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NOXERCES !ACE_FOR_TAO !ST !LabVIEW_RT !WinCE !FUZZ
+TAO/CIAO/examples/Null_Component/descriptors/run_test.pl: !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NOXERCES !ACE_FOR_TAO !ST !LabVIEW_RT !WinCE !FUZZ
+TAO/CIAO/examples/Hello/descriptors/run_test_without_ns.pl: !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NOXERCES !ACE_FOR_TAO !ST !LabVIEW_RT !WinCE !FUZZ
+#TAO/CIAO/examples/Hello/descriptors_RTCCM/rt_run_test.pl: !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NOXERCES !ACE_FOR_TAO RT_CAPABLE !ST !LabVIEW_RT !WinCE !FUZZ
+TAO/CIAO/tests/IDL3/Events/Any/run_test.pl: !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ACE_FOR_TAO !ST !LabVIEW_RT !WinCE !FUZZ
+#TAO/CIAO/DevGuideExamples/Messenger/descriptors/run_test.pl: !LabVIEW_RT !WinCE !FUZZ !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ACE_FOR_TAO !ST !NOXERCES
+TAO/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/run_test.pl: !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NOXERCES !ACE_FOR_TAO !ST !LabVIEW_RT !WinCE
+TAO/CIAO/tests/IDL3_to_XMI/XMI_For_Array/run_test.pl: !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NOXERCES !ACE_FOR_TAO !ST !LabVIEW_RT !WinCE
+TAO/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/run_test.pl: !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NOXERCES !ACE_FOR_TAO !ST !LabVIEW_RT !WinCE
+TAO/CIAO/tests/IDL3_to_XMI/XMI_For_Module_Reopen/run_test.pl: !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NOXERCES !ACE_FOR_TAO !ST !LabVIEW_RT !WinCE
+TAO/CIAO/tests/IDL3_to_XMI/XMI_For_Native/run_test.pl: !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NOXERCES !ACE_FOR_TAO !ST !LabVIEW_RT !WinCE
+TAO/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/run_test.pl: !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NOXERCES !ACE_FOR_TAO !ST !LabVIEW_RT !WinCE
+TAO/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/run_test.pl: !FIXED_BUGS_ONLY !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NOXERCES !ACE_FOR_TAO !ST !LabVIEW_RT !WinCE
+TAO/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/run_test.pl: !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NOXERCES !ACE_FOR_TAO !ST !LabVIEW_RT !WinCE !FUZZ !FIXED_BUGS_ONLY
+TAO/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test.pl: !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NOXERCES !ACE_FOR_TAO !ST !LabVIEW_RT !WinCE !FUZZ
+TAO/CIAO/tests/CIAO_ComponentServer/Activator/run_test.pl: !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NOXERCES !ACE_FOR_TAO !ST
+TAO/CIAO/tests/CIAO_ComponentServer/Basic/run_test.pl: !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NOXERCES !ACE_FOR_TAO !ST
+TAO/CIAO/tests/CIAO_ComponentServer/SimpleComponent/run_test.pl: !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NOXERCES !ACE_FOR_TAO !ST
+TAO/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_test.pl: !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NOXERCES !ACE_FOR_TAO !ST !LabVIEW_RT !WinCE !FUZZ NDDS
+TAO/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_sender.pl: !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NOXERCES !ACE_FOR_TAO !ST !LabVIEW_RT !WinCE !FUZZ NDDS
+TAO/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_receiver.pl: !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NOXERCES !ACE_FOR_TAO !ST !LabVIEW_RT !WinCE !FUZZ NDDS
+TAO/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_5_to_1.pl: !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NOXERCES !ACE_FOR_TAO !ST !LabVIEW_RT !WinCE !FUZZ NDDS
+TAO/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_1_to_5.pl: !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NOXERCES !ACE_FOR_TAO !ST !LabVIEW_RT !WinCE !FUZZ NDDS
+TAO/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_5_to_5.pl: !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NOXERCES !ACE_FOR_TAO !ST !LabVIEW_RT !WinCE !FUZZ NDDS
+TAO/CIAO/connectors/ami4ccm/examples/Hello/descriptors/run_test.pl: !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NOXERCES !ACE_FOR_TAO !ST !LabVIEW_RT !WinCE !FUZZ
+TAO/CIAO/connectors/dds4ccm/examples/Quoter/descriptors/run_test.pl: !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NOXERCES !ACE_FOR_TAO !ST !LabVIEW_RT !WinCE !FUZZ NDDS
diff --git a/modules/CIAO/bin/generate_component_mpc.pl b/modules/CIAO/bin/generate_component_mpc.pl
new file mode 100755
index 00000000000..815157211b7
--- /dev/null
+++ b/modules/CIAO/bin/generate_component_mpc.pl
@@ -0,0 +1,306 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# Create a MPC file content for a single component implementation.
+
+use Getopt::Std;
+
+##############################################################################
+# Grab the options
+
+$flags = join (" ", @ARGV);
+
+if (!getopts ('np:l:c:u:b:ho:') || $opt_h) {
+ print "generate_component_mpc.pl [-h] component_name\n";
+ print "\n";
+ print " -h print help message explaining various options\n";
+ print " -p Dependent component name\n";
+ print " -l Dependent component path (libpaths)\n";
+ print " -o Component output path (libout)\n";
+ print " -n Suppress component make/project\n";
+ print " -c Create a client makefile\n";
+ print " -u Unique project name prefix (if not defined, name for -p flag will be used). \n";
+ print " -b common base project(s) for all generated projects\n";
+ print "\n";
+ print "generate_component_mpc creates and save a minimum mpc file\n";
+ print "called $com_name.mpc that is needed for a single component implementation\n";
+ exit (1);
+}
+
+if ($#ARGV < 0) {
+ print STDERR "No component_name specified, use -h for help\n";
+ exit (1);
+}
+
+$com_name = shift @ARGV;
+$UCOM_NAME = uc $com_name;
+
+##############################################################################
+# Prologue
+
+if (defined $opt_b) {
+ $base_projs = ", $opt_b ";
+} else {
+ $base_projs = " ";
+}
+
+if (defined $opt_n) {
+ $svr_suffix = "_skel";
+}
+else {
+ $svr_suffix = "_svnt";
+}
+
+$USVR_SUFFIX = uc $svr_suffix;
+
+if (defined $opt_p) {
+ $stub_depend = "$opt_p".'_stub';
+ $lib_depend = "$opt_p".'_skel '."$opt_p".'_stub';
+
+ $svr_plibs ='\
+ '."$opt_p".'_skel \
+ '."$opt_p".'_stub';
+}
+else {
+ $svr_plibs = "";
+}
+
+$unique_prefix = "";
+
+if (defined $opt_u) {
+ $unique_prefix = "$opt_u" . "_";
+}
+elsif (defined $opt_p) {
+ $unique_prefix = "$opt_p" . "_";
+}
+
+if (defined $opt_p) {
+ $svr_p_after = "$opt_p".'_skel';
+}
+
+if (defined $opt_l) {
+ $lib_paths = "libpaths += $opt_l";
+}
+
+if (defined $opt_o) {
+ $lib_out = "libout = $opt_o";
+}
+
+if (defined $opt_c) {
+ $client_def =
+'project ('."$unique_prefix"."$opt_c".') : ccm_stub, valuetype ' . "$base_projs" . ' {
+ exename = '."$opt_c".'
+ after += '."$unique_prefix"."$com_name".'_stub
+ libs += '."$com_name".'_stub '."$stub_depend"."
+ $lib_paths"."
+ $lib_out".'
+ IDL_Files {
+ }
+
+ Source_Files {
+ '."$opt_c".'.cpp
+ }
+
+ Header_Files {
+ }
+
+ Inline_Files {
+ }
+}
+';
+}
+
+if (! defined $opt_n) {
+ $lem_gen =
+'
+project('."$unique_prefix"."$com_name".'_lem_gen) : ciaoidldefaults ' . "$base_projs" . ' {
+ after += '."$unique_prefix"."$com_name".'_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro='."$UCOM_NAME".'_LEM_STUB_Export \
+ -Wb,stub_export_include='."$com_name".'_lem_stub_export.h \
+ -SS -Gxhst
+
+ IDL_Files {'."
+ $com_name".'E.idl
+ }
+}
+'.'
+project('."$unique_prefix"."$com_name".'_lem_stub) : ccm_svnt ' . "$base_projs" . ' {
+ after += '."$unique_prefix"."$com_name".'_lem_gen '."$unique_prefix"."$com_name".'_stub '."$stub_depend".'
+ libs += '."$stub_depend".' '."$com_name".'_stub'."
+ $lib_paths"."
+ $lib_out".'
+ sharedname = '."$com_name".'_lem_stub
+ dynamicflags = '."$UCOM_NAME".'_LEM_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ '."$com_name".'EC.cpp
+ }
+
+ Header_Files {
+ '."$com_name".'EC.h
+ '."$com_name".'_lem_stub_export.h
+ }
+
+ Inline_Files {
+ '."$com_name".'EC.inl
+ }
+}
+';
+
+ $component_def =
+'
+project('."$unique_prefix"."$com_name".'_exec) : ciao_executor ' . "$base_projs" . ' {
+ after += '."$unique_prefix"."$com_name".'_lem_stub '."$unique_prefix"."$com_name".'_stub
+ sharedname = '."$com_name".'_exec
+ libs += '."$com_name".'_stub '."$com_name".'_lem_stub '."$stub_depend
+ $lib_paths"."
+ $lib_out".'
+ dynamicflags = '."$UCOM_NAME".'_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {'."
+ $com_name".'_exec.cpp
+ }
+
+ Header_Files {'."
+ $com_name".'_exec.h'."
+ $com_name".'_exec_export.h
+ }
+
+ Inline_Files {
+ }
+}
+';
+}
+
+$cli_idlflags =
+ 'idlflags += -Wb,stub_export_macro='."$UCOM_NAME".'_STUB_Export \
+ -Wb,stub_export_include='."$com_name".'_stub_export.h \
+ -Wb,skel_export_macro='."$UCOM_NAME"."$USVR_SUFFIX".'_Export \
+ -Wb,skel_export_include='."$com_name"."$svr_suffix".'_export.h \
+ -Wb,exec_export_macro='."$UCOM_NAME".'_EXEC_Export \
+ -Wb,exec_export_include='."$com_name".'_exec_export.h'
+;
+
+$cli_base = "ccm_stub";
+$svr_base = "ciao_servant";
+$svr_after = "";
+
+$svr_libs = "$com_name".'_stub '. "$com_name".'_lem_stub ';
+
+if (defined $opt_n) {
+ $svr_after = "$unique_prefix"."$com_name".'_stub';
+
+ $svr_libs = "$com_name".'_stub
+';
+
+ $svr_src =
+'
+ '."$com_name".'S.cpp
+';
+
+ $svr_hdr =
+'
+ '."$com_name".'S.h
+ '."$com_name".'_skel_export.h
+';
+
+ $svr_base = "ciao_executor";
+}
+else {
+
+ $svr_idl = "$com_name".'E.idl';
+
+ $svr_src =
+'
+ '."$com_name".'S.cpp
+ '."$com_name".'_svnt.cpp
+';
+
+ $svr_hdr =
+'
+ '."$com_name".'S.h
+ '."$com_name".'_svnt.h
+ '."$com_name".'_svnt_export.h
+';
+}
+
+$mpc_template = '// $Id$
+// This file is generated with "'."generate_component_mpc.pl $flags".'"
+
+project('."$unique_prefix"."$com_name".'_idl_gen) : componentidldefaults ' . "$base_projs" . ' {
+ custom_only = 1
+ '."$cli_idlflags".'
+
+ IDL_Files {
+ '."$com_name".'.idl
+ }
+}
+'."$lem_gen".'
+project('."$unique_prefix"."$com_name".'_stub) : '."$cli_base ". "$base_projs" . ' {
+ after += '."$unique_prefix"."$com_name".'_idl_gen '."$stub_depend".'
+ libs += '."$stub_depend"."
+ $lib_paths"."
+ $lib_out".'
+ sharedname = '."$com_name".'_stub
+ dynamicflags = '."$UCOM_NAME".'_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ '."$com_name".'C.cpp
+ }
+
+ Header_Files {
+ '."$com_name".'C.h
+ '."$com_name".'_stub_export.h
+ }
+
+ Inline_Files {
+ '."$com_name".'C.inl
+ }
+}
+'."$component_def".'
+
+project('."$unique_prefix"."$com_name"."$svr_suffix".') : '."$svr_base ". "$base_projs" . ' {
+ after += '."$svr_p_after "."$svr_after".' '."$unique_prefix"."$com_name".'_lem_stub'.'
+ sharedname = '."$com_name"."$svr_suffix".'
+ libs += '."$svr_libs $svr_plibs
+ $lib_paths"."
+ $lib_out".'
+ dynamicflags = '."$UCOM_NAME"."$USVR_SUFFIX".'_BUILD_DLL
+ '.'
+ IDL_Files {
+ }
+
+ Source_Files {'."$svr_src".' }
+
+ Header_Files {'."$svr_hdr".' }
+
+ Inline_Files {
+ '."$com_name".'S.inl
+ }
+}
+
+'."$client_def
+";
+
+##############################################################################
+# Static Stuff
+
+##############################################################################
+# Print the stuff out
+
+
+# MPC files
+open (MPCFILE, ">", "$com_name".".mpc");
+print MPCFILE $mpc_template;
diff --git a/modules/CIAO/bin/update_package.py b/modules/CIAO/bin/update_package.py
new file mode 100755
index 00000000000..5719b0c7627
--- /dev/null
+++ b/modules/CIAO/bin/update_package.py
@@ -0,0 +1,118 @@
+#!/usr/bin/env python
+""" This script facilitates the update of binaries in a given DAnCE package.
+ Note that it DOES NOT modify meta-data, only blindly replacing existing
+ binaries that match by name EXACTLY"""
+
+#Globals
+verbose = False
+take_action = True
+
+def parse_args ():
+ from optparse import OptionParser
+
+ parser = OptionParser ("usage: %prog [options] package_to_update")
+
+ parser.add_option ("-I", "--include-dir", dest="include_dir", action="store",
+ help="Specify a path to search for new implementations/descriptors",
+ default="./impl/")
+ parser.add_option ("-o", "--output-dir", dest="out_dir", action="store",
+ help="Specify the directory to write updated packages",
+ default="./new_packages/")
+ parser.add_option ("-f", "--out-file", dest="out_file", action="store",
+ help="Specify the name of the file to output. Default is same name",
+ default=None)
+ parser.add_option ("-v", "--verbose", action="store_true", default=False,
+ dest="verbose", help="Print verbose debugging output")
+ parser.add_option ("-n", "--no-action", action="store_false")
+ (opts, args) = parser.parse_args ()
+
+ if len(args) != 1:
+ parser.error ("Must specify exactly one package to update")
+
+ if opts.out_file is None:
+ opts.out_file = os.path.basename (args[0])
+
+ return (opts, args)
+
+def vprint (string):
+ if verbose:
+ print string
+
+"""Caches all files in include paths"""
+def cache_files (dirs):
+ files = dict ()
+ vprint ("Building file list")
+ for item in dirs:
+ for root, dirs, files in os.walk (item, topDown=True):
+ for item in files:
+ fullpath = os.join (root, item)
+ if item not in files:
+ vprint ("Adding " + item + " as " + fullpath)
+ files[item] = fullpath
+ else:
+ vprint ("Skipping " + fullpath + " because " + item + " has been found earlier")
+
+ return files
+
+""" Update a package from infile, a ZipFile object to outfile, a ZipFile object,
+ using files in the dictionary files"""
+def update_package (infile, outfile, files):
+ orig_list = infile.namelist ()
+
+ for item in filelist:
+ vprint ("Considering " + item + " from source package")
+
+ if item[-1] == '/':
+ vprint ("\tSkipping because its a directory")
+ else:
+ bn_item = os.path.basename (item)
+
+ if bn_item in files.keys ():
+ vprint ("\tFound replacement: " + files[bn_item])
+ vprint ("\tPerforming replacement....")
+
+ if take_action:
+ ofile.write (files[bn_item], item)
+ else:
+ print "\tAction: Replace " + item + " with " + item
+ continue # next item
+
+ if take_action:
+ ofile.writestr (item, zfile.read (item))
+ else:
+ print "\tAction: Migrate " + item + " unchanged"
+
+def main ():
+ opts, args = parse_args ()
+
+ from zipfile import ZipFile
+
+ ## Construct output file
+ of_name = os.path.join (opts.out_path, opts.out_file)
+ vprint ("Chose " + of_name + " as output file")
+
+ #make sure out_path exists
+ if os.path.exists (os.path.basename (of_name)):
+ vprint ("Destination path does not exist, creating....")
+ if take_action:
+ os.mkdir (os.path.basename (of_name))
+ else:
+ print "Action: create path " + os.path.basename (of_name)
+
+ # Create zipfile objects
+ infile = ZipFile (args[0], 'a')
+ outfile = None
+
+ if take_action:
+ outfile = ZipFile (of_name, 'w')
+
+ # cache include directories
+ files = cache_files (opts.include_dirs)
+
+ # Perform update
+ update_package (infile, outfile, files)
+
+ print "Package successfully updated"
+
+if __name__ == "__main__":
+ main (opts, args)
diff --git a/modules/CIAO/bin/valgrind_nodedaemon.py b/modules/CIAO/bin/valgrind_nodedaemon.py
new file mode 100755
index 00000000000..a0845864370
--- /dev/null
+++ b/modules/CIAO/bin/valgrind_nodedaemon.py
@@ -0,0 +1,87 @@
+#!/usr/bin/python
+# $Id$
+#
+# Runs a NodeManager (optionally) under valgrind with the NodeApplication (optionally) under valgrind.
+
+from optparse import OptionParser
+from os import system
+from os import environ
+
+def parse_args ():
+
+ parser = OptionParser (usage="usage: valgrind_nodemanager [options] <port_number>")
+
+ parser.add_option ("-v", "--verbose", dest="verbose", action="store_true",
+ help="Output the command that is to be executed.",
+ default=False)
+ parser.add_option ("-l","--log", dest="log_file", action="store",
+ help="Log all output to a given file.",
+ default="")
+ parser.add_option ("-t", "--tool", dest="valgrind_tool", action="store",
+ help="Specify the valgrind tool to run",
+ default="memcheck")
+ parser.add_option ("--nm", dest="node_manager", action="store_true",
+ help="Run valgrind on the NodeManager",
+ default=False)
+ parser.add_option ("--na", dest="node_application", action="store_true",
+ help="Run valgrind on the NodeApplication",
+ default=False)
+ parser.add_option ("--valgrind_args", dest="valgrind_args", action="store",
+ help="Additional arguments to pass to valgrind",
+ default="")
+ parser.add_option ("-g", dest="gen_supp", action="store_true",
+ help="Generate suppression lines",
+ default=False)
+ parser.add_option ("-s", dest="supp_file", action="store",
+ help="Suppression file for Valgrind to use",
+ default="")
+ parser.add_option ("--lc", dest="leak_check", action="store_true",
+ help="Perform a full leak check",
+ default=False)
+
+ return parser.parse_args ()
+
+import os
+
+def main ():
+ (option, args) = parse_args ()
+
+ ciao_root = environ['CIAO_ROOT']
+
+ # Build the valgrind command
+ valgrind_command = "valgrind --tool=" + option.valgrind_tool + ' ' +\
+ option.valgrind_args + ' '
+
+ if option.gen_supp:
+ valgrind_command += "--gen-suppressions=all "
+
+ if option.supp_file != "":
+ valgrind_command += "--suppressions=\"" + options.supp_file + '" '
+
+ if option.leak_check:
+ valgrind_command += "--leak-check=full "
+
+ # Build the actual command
+ command = ""
+
+ if option.node_manager:
+ command += valgrind_command
+
+ command += ciao_root + "/DAnCE/NodeManager/NodeManager " +\
+ "-ORBEndpoint iiop://localhost:" + args[0] + ' '
+
+ if option.node_application:
+ command += "-d 60 -s\"" + valgrind_command
+ else:
+ command += " -s \""
+
+ command += ciao_root + "/DAnCE/NodeApplication/NodeApplication" + '"'
+
+ print command
+
+ system (command)
+
+if __name__ == "__main__":
+ main ()
+
+
diff --git a/modules/CIAO/ccm/CCM.mpc b/modules/CIAO/ccm/CCM.mpc
new file mode 100644
index 00000000000..99a5296f72c
--- /dev/null
+++ b/modules/CIAO/ccm/CCM.mpc
@@ -0,0 +1,182 @@
+// $Id$
+
+project(CCM_stub_idl) : ciaolib_with_idl, valuetype {
+ idlflags += -Wb,stub_export_include=CCM_Stub_Export.h
+ idlflags += -Wb,stub_export_macro=CCM_Stub_Export
+ idlflags += -Wb,skel_export_include=CCM_Svnt_Export.h
+ idlflags += -Wb,skel_export_macro=CCM_Svnt_Export
+ custom_only = 1
+ IDL_Files {
+ idlflags += -SS -Sci
+ CCM_Base.idl
+ CCM_Component.idl
+ CCM_Exceptions.idl
+ }
+
+ IDL_Files {
+ idlflags += -SS
+ CCM_Cookie.idl
+ CCM_Enumeration.idl
+ }
+
+ IDL_Files {
+ idlflags += -Ssi -Sci
+ Components.idl
+ }
+
+ IDL_Files {
+ CCM_HomeConfiguration.idl
+ CCM_StandardConfigurator.idl
+ CCM_Home.idl
+ CCM_Homes.idl
+ CCM_Object.idl
+ CCM_PrimaryKeyBase.idl
+ }
+
+ IDL_Files {
+ idlflags += -Ssi
+ CCM_HomeFinder.idl
+ CCM_Configurator.idl
+ CCM_KeylessCCMHome.idl
+ CCM_Navigation.idl
+ CCM_Receptacle.idl
+ }
+
+ IDL_Files {
+ CCM_Events.idl
+ CCM_EventBase.idl
+ CCM_EventConsumerBase.idl
+ }
+
+}
+
+project(CCM_stub) : ciaolib_with_idl, ciao_output, valuetype, ifr_client {
+ // This is necessary for MPC to pull in rules.ciao.GNU
+ includes += $(CIAO_ROOT)
+ dynamicflags = CCM_STUB_BUILD_DLL
+ after += CCM_stub_idl
+ IDL_Files {
+ }
+
+ Source_Files {
+ CCM_BaseC.cpp
+ CCM_EventsC.cpp
+ CCM_EventBaseC.cpp
+ CCM_EventConsumerBaseC.cpp
+ CCM_ComponentC.cpp
+ CCM_EnumerationC.cpp
+ CCM_HomeC.cpp
+ CCM_HomesC.cpp
+ CCM_ConfiguratorC.cpp
+ CCM_HomeConfigurationC.cpp
+ CCM_KeylessCCMHomeC.cpp
+ CCM_StandardConfiguratorC.cpp
+ CCM_HomeFinderC.cpp
+ CCM_NavigationC.cpp
+ CCM_ReceptacleC.cpp
+ CCM_CookieC.cpp
+ CCM_ObjectC.cpp
+ CCM_PrimaryKeyBaseC.cpp
+ CCM_ExceptionsC.cpp
+ ComponentsC.cpp
+ }
+}
+
+project(CCM_svnt_idl) : ciaolib_with_idl, valuetype {
+ idlflags += -Wb,export_include=CCM_Svnt_Export.h
+ idlflags += -Wb,export_macro=CCM_Svnt_Export
+ custom_only = 1
+ IDL_Files {
+ idlflags += -SS -Sci \
+ -Wb,versioning_begin=TAO_BEGIN_VERSIONED_NAMESPACE_DECL \
+ -Wb,versioning_end=TAO_END_VERSIONED_NAMESPACE_DECL
+ Security.idl
+ }
+
+ IDL_Files {
+ idlflags += -SS -Sci
+ CCM_Context.idl
+ CCM_CCMException.idl
+ CCM_EntityComponent.idl
+ CCM_EntityContext.idl
+ }
+
+ IDL_Files {
+ idlflags += -SS
+ CCM_CCM2Context.idl
+ CCM_ProxyHomeRegistration.idl
+ CCM_Session2Context.idl
+ CCM_Transaction.idl
+ CosPersistentState.idl
+ CCM_Container.idl
+ CCM_SessionContext.idl
+ CCM_SessionComponent.idl
+ CCM_Container_Ex.idl
+ CCM_StateIdFactory.idl
+ CCM_Entity2Context.idl
+ CCM_ComponentId.idl
+ CCM_ExecutorLocator.idl
+ CCM_EnterpriseComponent.idl
+ CCM_SessionSynchronization.idl
+ CCM_HomeRegistration.idl
+ CCM_HomeExecutorBase.idl
+ }
+
+}
+
+project(CCM_svnt) : orbsvcslib, orbsvcs_output \
+ , portableserver \
+ , valuetype \
+ , ifr_client \
+ , codecfactory \
+ , pi \
+ , ccm_stub \
+ , avoids_corba_e_compact \
+ , avoids_corba_e_micro \
+{
+ dynamicflags = CCM_SVNT_BUILD_DLL
+ after += CCM_svnt_idl
+ IDL_Files {
+ }
+
+ Source_Files {
+ CCM_TransactionC.cpp
+ CosPersistentStateC.cpp
+ CCM_ContainerC.cpp
+ CCM_SessionContextC.cpp
+ CCM_SessionComponentC.cpp
+ CCM_EnterpriseComponentC.cpp
+ CCM_SessionSynchronizationC.cpp
+ CCM_CCMExceptionC.cpp
+ CCM_ContextC.cpp
+ SecurityC.cpp
+ CCM_Container_ExC.cpp
+ CCM_StateIdFactoryC.cpp
+ CCM_ComponentIdC.cpp
+ CCM_Entity2ContextC.cpp
+ CCM_ExecutorLocatorC.cpp
+ CCM_ProxyHomeRegistrationC.cpp
+ CCM_Session2ContextC.cpp
+ CCM_CCM2ContextC.cpp
+ CCM_HomeRegistrationC.cpp
+ CCM_HomeExecutorBaseC.cpp
+ CCM_EntityContextC.cpp
+ CCM_EntityComponentC.cpp
+ CCM_EventsS.cpp
+ CCM_EventConsumerBaseS.cpp
+ CCM_EventBaseS.cpp
+ CCM_ConfiguratorS.cpp
+ CCM_HomeConfigurationS.cpp
+ CCM_KeylessCCMHomeS.cpp
+ CCM_StandardConfiguratorS.cpp
+ CCM_HomeS.cpp
+ CCM_HomesS.cpp
+ CCM_ObjectS.cpp
+ CCM_PrimaryKeyBaseS.cpp
+ CCM_HomeFinderS.cpp
+ CCM_NavigationS.cpp
+ CCM_ReceptacleS.cpp
+ ComponentsS.cpp
+ }
+}
+
diff --git a/modules/CIAO/ccm/CCM_Base.idl b/modules/CIAO/ccm/CCM_Base.idl
new file mode 100644
index 00000000000..d5fdac61919
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_Base.idl
@@ -0,0 +1,14 @@
+// $Id$
+
+#if !defined (CCM_BASE_IDL)
+#define CCM_BASE_IDL
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ exception InvalidConnection {};
+ exception AlreadyConnected {};
+ exception NoConnection {};
+};
+#endif /* CCM_BASE_IDL */
diff --git a/modules/CIAO/ccm/CCM_CCM2Context.idl b/modules/CIAO/ccm/CCM_CCM2Context.idl
new file mode 100644
index 00000000000..eedb43ff5ca
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_CCM2Context.idl
@@ -0,0 +1,34 @@
+// $Id$
+
+#if !defined (CCM_2CONTEXT_IDL)
+#define CCM_2CONTEXT_IDL
+
+#include "ccm/CCM_Container.idl"
+#include "ccm/CCM_HomeRegistration.idl"
+#include <CosPersistentState.idl>
+
+// *************** Extended Container Interfaces ***************
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ typedef CosPersistentState::CatalogBase CatalogBase;
+ typedef CosPersistentState::_TypeId _TypeId;
+
+ exception PolicyMismatch {};
+ exception PersistenceNotAvailable {};
+
+ local interface CCM2Context : CCMContext
+ {
+ HomeRegistration get_home_registration ();
+
+ void req_passivate ()
+ raises (PolicyMismatch);
+
+ CatalogBase get_persistence (in _TypeId catalog_type_id)
+ raises (PersistenceNotAvailable);
+ };
+
+};
+#endif /* CCM_2CONTEXT_IDL */
diff --git a/modules/CIAO/ccm/CCM_CCMException.idl b/modules/CIAO/ccm/CCM_CCMException.idl
new file mode 100644
index 00000000000..af076144304
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_CCMException.idl
@@ -0,0 +1,29 @@
+// $Id$
+
+#if !defined (CCM_CCMEXCEPTION_IDL)
+#define CCM_CCMEXCEPTION_IDL
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ enum CCMExceptionReason
+ {
+ SYSTEM_ERROR,
+ CREATE_ERROR,
+ REMOVE_ERROR,
+ DUPLICATE_KEY,
+ FIND_ERROR,
+ OBJECT_NOT_FOUND,
+ NO_SUCH_ENTITY,
+ QOS_ERROR,
+ REGISTRATION_ERROR,
+ SERVICE_INSTALLATION_ERROR
+ };
+
+ exception CCMException
+ {
+ CCMExceptionReason reason;
+ };
+};
+#endif /* CCM_CCMEXCEPTION_IDL */
diff --git a/modules/CIAO/ccm/CCM_Component.idl b/modules/CIAO/ccm/CCM_Component.idl
new file mode 100644
index 00000000000..a579496685f
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_Component.idl
@@ -0,0 +1,11 @@
+// $Id$
+
+#if !defined (CCM_COMPONENT_IDL)
+#define CCM_COMPONENT_IDL
+
+#include "ccm/CCM_Events.idl"
+#include "ccm/CCM_Home.idl"
+#include "ccm/CCM_Object.idl"
+#include "ccm/CCM_Enumeration.idl"
+
+#endif /* CCM_COMPONENT_IDL */
diff --git a/modules/CIAO/ccm/CCM_ComponentId.idl b/modules/CIAO/ccm/CCM_ComponentId.idl
new file mode 100644
index 00000000000..c8d8deabdcb
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_ComponentId.idl
@@ -0,0 +1,34 @@
+// $Id$
+
+#if !defined (CCM_COMPONENTID_IDL)
+#define CCM_COMPONENTID_IDL
+
+#include "ccm/CCM_StateIdFactory.idl"
+
+// *************** Extended Container Interfaces ***************
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ local interface ComponentId
+ {
+ FacetId get_target_facet();
+
+ SegmentId get_target_segment();
+
+ StateIdValue get_target_state_id (in StateIdFactory sid_factory)
+ raises (InvalidStateIdData);
+
+ StateIdValue get_segment_state_id (in SegmentId seg,
+ in StateIdFactory sid_factory)
+ raises (InvalidStateIdData);
+
+ ComponentId create_with_new_target (in FacetId new_target_facet,
+ in SegmentId new_target_segment);
+
+ SegmentDescrSeq get_segment_descrs (in StateIdFactory sid_factory)
+ raises (InvalidStateIdData);
+ };
+};
+#endif /* CCM_COMPONENTID_IDL */
diff --git a/modules/CIAO/ccm/CCM_Configurator.idl b/modules/CIAO/ccm/CCM_Configurator.idl
new file mode 100644
index 00000000000..6a95548ea1e
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_Configurator.idl
@@ -0,0 +1,21 @@
+// $Id$
+/// Compliant with OMG 06-04-01 Section 6.10.1.1
+
+#if !defined (CCM_CONFIGURATOR_IDL)
+#define CCM_CONFIGURATOR_IDL
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ exception WrongComponentType {};
+
+ interface CCMObject;
+
+ interface Configurator
+ {
+ void configure (in CCMObject comp)
+ raises (WrongComponentType);
+ };
+};
+#endif /* CCM_CONFIGURATOR_IDL */
diff --git a/modules/CIAO/ccm/CCM_Container.idl b/modules/CIAO/ccm/CCM_Container.idl
new file mode 100644
index 00000000000..fdefcc1e0f9
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_Container.idl
@@ -0,0 +1,12 @@
+// $Id$
+
+#if !defined (CCM_CONTAINER_IDL)
+#define CCM_CONTAINER_IDL
+
+#include "ccm/CCM_Component.idl"
+#include "ccm/CCM_CCMException.idl"
+#include "ccm/CCM_HomeExecutorBase.idl"
+#include "ccm/CCM_SessionContext.idl"
+#include "ccm/CCM_SessionComponent.idl"
+
+#endif /* CCM_CONTAINER_IDL */
diff --git a/modules/CIAO/ccm/CCM_Container_Ex.idl b/modules/CIAO/ccm/CCM_Container_Ex.idl
new file mode 100644
index 00000000000..8a64c1c5679
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_Container_Ex.idl
@@ -0,0 +1,10 @@
+// $Id$
+
+#if !defined (CCM_CONTAINER_EX_IDL)
+#define CCM_CONTAINER_EX_IDL
+
+#include "ccm/CCM_Container.idl"
+#include "ccm/CCM_Session2Context.idl"
+#include "ccm/CCM_EntityContext.idl"
+
+#endif /* CCM_CONTAINER_EX_IDL */
diff --git a/modules/CIAO/ccm/CCM_Context.idl b/modules/CIAO/ccm/CCM_Context.idl
new file mode 100644
index 00000000000..499c934255e
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_Context.idl
@@ -0,0 +1,45 @@
+// $Id$
+
+#if !defined (CCM_CONTEXT_IDL)
+#define CCM_CONTEXT_IDL
+
+#include "ccm/Security.idl"
+#include "ccm/CCM_Transaction.idl"
+#include "ccm/CCM_Home.idl"
+#include "ccm/CCM_CCMException.idl"
+
+// *************** Basic Container interfaces ***************
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ typedef SecurityLevel2::Credentials Principal;
+
+ exception IllegalState {};
+
+ local interface CCMContext
+ {
+ Principal get_caller_principal();
+
+ CCMHome get_CCM_home();
+
+ boolean get_rollback_only()
+ raises (IllegalState);
+
+ Transaction::UserTransaction get_user_transaction()
+ raises (IllegalState);
+
+ boolean is_caller_in_role (in string role);
+
+ void set_rollback_only()
+ raises (IllegalState);
+
+ /**
+ * Added for QoS4CCM
+ */
+ Object resolve_service_reference(in string service_id)
+ raises (CCMException);
+ };
+};
+#endif /* CCM_CONTEXT_IDL */
diff --git a/modules/CIAO/ccm/CCM_Cookie.idl b/modules/CIAO/ccm/CCM_Cookie.idl
new file mode 100644
index 00000000000..3e7997b482e
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_Cookie.idl
@@ -0,0 +1,18 @@
+/// $Id$
+/// Compliant with OMG 06-04-01 Section 6.5.2.4
+
+#if !defined (CCM_COOKIE_IDL)
+#define CCM_COOKIE_IDL
+
+#include "tao/OctetSeq.pidl"
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ valuetype Cookie
+ {
+ private CORBA::OctetSeq cookieValue;
+ };
+};
+#endif /* CCM_COOKIE_IDL */
diff --git a/modules/CIAO/ccm/CCM_EnterpriseComponent.idl b/modules/CIAO/ccm/CCM_EnterpriseComponent.idl
new file mode 100644
index 00000000000..b2470468da0
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_EnterpriseComponent.idl
@@ -0,0 +1,12 @@
+// $Id$
+
+#if !defined (CCM_ENTERPRISECOMPONENT_IDL)
+#define CCM_ENTERPRISECOMPONENT_IDL
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ local interface EnterpriseComponent {};
+};
+#endif /* CCM_CONTAINER_IDL */
diff --git a/modules/CIAO/ccm/CCM_Entity2Context.idl b/modules/CIAO/ccm/CCM_Entity2Context.idl
new file mode 100644
index 00000000000..d21772bfb6b
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_Entity2Context.idl
@@ -0,0 +1,35 @@
+// $Id$
+
+#if !defined (CCM_ENTITY2CONTEXT_IDL)
+#define CCM_ENTITY2CONTEXT_IDL
+
+#include "ccm/CCM_Session2Context.idl"
+#include "ccm/CCM_EntityContext.idl"
+#include "ccm/CCM_ComponentId.idl"
+
+// *************** Extended Container Interfaces ***************
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ local interface Entity2Context : EntityContext, CCM2Context
+ {
+ ComponentId get_component_id ()
+ raises (IllegalState);
+
+ ComponentId create_component_id (in FacetId target_facet,
+ in SegmentId target_segment,
+ in SegmentDescrSeq seq_descrs);
+
+ ComponentId create_monolithic_component_id (in FacetId target_facet,
+ in StateIdValue sid);
+
+ Object create_ref_from_cid (in CORBA::RepositoryId repid,
+ in ComponentId cid);
+
+ ComponentId get_cid_from_ref (in Object objref)
+ raises (BadComponentReference);
+ };
+};
+#endif /* CCM_ENTITY2CONTEXT_IDL */
diff --git a/modules/CIAO/ccm/CCM_EntityComponent.idl b/modules/CIAO/ccm/CCM_EntityComponent.idl
new file mode 100644
index 00000000000..4fb219a7904
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_EntityComponent.idl
@@ -0,0 +1,38 @@
+// $Id$
+
+#if !defined (CCM_ENTITYCOMPONENT_IDL)
+#define CCM_ENTITYCOMPONENT_IDL
+
+#include "ccm/CCM_CCMException.idl"
+#include "ccm/CCM_EnterpriseComponent.idl"
+#include "ccm/CCM_EntityContext.idl"
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ local interface EntityComponent : EnterpriseComponent
+ {
+ void set_entity_context (in EntityContext ctx)
+ raises (CCMException);
+
+ void unset_entity_context ()
+ raises (CCMException);
+
+ void ccm_activate ()
+ raises (CCMException);
+
+ void ccm_load ()
+ raises (CCMException);
+
+ void ccm_store ()
+ raises (CCMException);
+
+ void ccm_passivate ()
+ raises (CCMException);
+
+ void ccm_remove ()
+ raises (CCMException);
+ };
+};
+#endif /* CCM_ENTITYCOMPONENT_IDL */
diff --git a/modules/CIAO/ccm/CCM_EntityContext.idl b/modules/CIAO/ccm/CCM_EntityContext.idl
new file mode 100644
index 00000000000..3375c44717d
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_EntityContext.idl
@@ -0,0 +1,22 @@
+// $Id$
+
+#if !defined (CCM_ENTITYCONTEXT_IDL)
+#define CCM_ENTITYCONTEXT_IDL
+
+#include "ccm/CCM_Context.idl"
+#include "ccm/CCM_Object.idl"
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ local interface EntityContext : CCMContext
+ {
+ Object get_CCM_object ()
+ raises (IllegalState);
+
+ PrimaryKeyBase get_primary_key ()
+ raises (IllegalState);
+ };
+};
+#endif /* CCM_ENTITYCONTEXT_IDL */
diff --git a/modules/CIAO/ccm/CCM_Enumeration.idl b/modules/CIAO/ccm/CCM_Enumeration.idl
new file mode 100644
index 00000000000..406df4dfeca
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_Enumeration.idl
@@ -0,0 +1,24 @@
+// $Id$
+/// Compliant with OMG 06-04-01 Section 10.3.1.2
+
+#if !defined (CCM_ENUMERATION_IDL)
+#define CCM_ENUMERATION_IDL
+
+#include "ccm/CCM_Object.idl"
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ abstract valuetype Enumeration
+ {
+ boolean has_more_elements();
+ CCMObject next_element();
+ };
+
+ valuetype DefaultEnumeration : Enumeration
+ {
+ private CCMObjectSeq objects;
+ };
+};
+#endif /* CCM_ENUMERATION_IDL */
diff --git a/modules/CIAO/ccm/CCM_EventBase.idl b/modules/CIAO/ccm/CCM_EventBase.idl
new file mode 100644
index 00000000000..d72bb003456
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_EventBase.idl
@@ -0,0 +1,13 @@
+// $Id$
+/// Compliant with OMG 06-04-01 Section 6.6.1.2
+
+#if !defined (CCM_EVENTBASE_IDL)
+#define CCM_EVENTBASE_IDL
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ abstract valuetype EventBase {};
+};
+#endif /* CCM_EVENTBASE_IDL */
diff --git a/modules/CIAO/ccm/CCM_EventConsumerBase.idl b/modules/CIAO/ccm/CCM_EventConsumerBase.idl
new file mode 100644
index 00000000000..86f4261b8f2
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_EventConsumerBase.idl
@@ -0,0 +1,46 @@
+// $Id$
+/// NOT Compliant with OMG 06-04-01 Section 6.6.2
+
+#if !defined (CCM_EVENTCONSUMERBASE_IDL)
+#define CCM_EVENTCONSUMERBASE_IDL
+
+#include "ccm/CCM_EventBase.idl"
+#include "tao/Typecode_types.pidl"
+#include "tao/orb_types.pidl"
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ exception BadEventType
+ {
+ CORBA::RepositoryId expected_event_type;
+ };
+
+ interface EventConsumerBase
+ {
+ void push_event (in EventBase evt) raises (BadEventType);
+
+ /*
+ * CIAO-specific operation to treat event service as regular event
+ * sink port. The source_id needs to be passed in to identify the
+ * source of the publisher port to support event filtering mechanism.
+ *
+ * @todo Has to be removed
+ */
+ void ciao_push_event (in EventBase evt,
+ in string source_id,
+ in CORBA::TypeCode tc)
+ raises (BadEventType);
+
+ /*
+ * CIAO-specific operation to help support the capability
+ * to subscribe to eventtypes more derived than the type
+ * consumed.
+ *
+ * @todo Has to be removed
+ */
+ boolean ciao_is_substitutable (in string event_repo_id);
+ };
+};
+#endif /* CCM_EVENTCONSUMERBASE_IDL */
diff --git a/modules/CIAO/ccm/CCM_Events.idl b/modules/CIAO/ccm/CCM_Events.idl
new file mode 100644
index 00000000000..96647942518
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_Events.idl
@@ -0,0 +1,85 @@
+// $Id$
+/// Compliant with OMG 06-04-01 Section 6.6.8
+
+#if !defined (CCM_EVENTS_IDL)
+#define CCM_EVENTS_IDL
+
+#include "ccm/CCM_Base.idl"
+#include "ccm/CCM_Navigation.idl"
+#include "ccm/CCM_Receptacle.idl"
+#include "ccm/CCM_Cookie.idl"
+#include "ccm/CCM_EventBase.idl"
+#include "ccm/CCM_EventConsumerBase.idl"
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ valuetype ConsumerDescription : PortDescription
+ {
+ public EventConsumerBase consumer;
+ };
+ typedef sequence<ConsumerDescription> ConsumerDescriptions;
+
+ valuetype EmitterDescription : PortDescription
+ {
+ public EventConsumerBase consumer;
+ };
+ typedef sequence<EmitterDescription> EmitterDescriptions;
+
+ valuetype SubscriberDescription
+ {
+ public Cookie ck;
+ public EventConsumerBase consumer;
+ };
+ typedef sequence<SubscriberDescription> SubscriberDescriptions;
+
+ valuetype PublisherDescription : PortDescription
+ {
+ public SubscriberDescriptions consumers;
+ };
+ typedef sequence<PublisherDescription> PublisherDescriptions;
+
+ interface Events
+ {
+ EventConsumerBase get_consumer (in FeatureName sink_name)
+ raises (InvalidName);
+
+ Cookie subscribe (in FeatureName publisher_name,
+ in EventConsumerBase subscriber)
+ raises (InvalidName,
+ InvalidConnection,
+ ExceededConnectionLimit);
+
+ EventConsumerBase unsubscribe (in FeatureName publisher_name,
+ in Cookie ck)
+ raises (InvalidName,
+ InvalidConnection);
+
+ void connect_consumer (in FeatureName emitter_name,
+ in EventConsumerBase consumer)
+ raises (InvalidName,
+ AlreadyConnected,
+ InvalidConnection);
+
+ EventConsumerBase disconnect_consumer (in FeatureName source_name)
+ raises (InvalidName,
+ NoConnection);
+
+ ConsumerDescriptions get_all_consumers ();
+
+ ConsumerDescriptions get_named_consumers (in NameList names)
+ raises (InvalidName);
+
+ EmitterDescriptions get_all_emitters ();
+
+ EmitterDescriptions get_named_emitters (in NameList names)
+ raises (InvalidName);
+
+ PublisherDescriptions get_all_publishers ();
+
+ PublisherDescriptions get_named_publishers (in NameList names)
+ raises (InvalidName);
+ };
+};
+#endif /* CCM_EVENTS_IDL */
diff --git a/modules/CIAO/ccm/CCM_Exceptions.idl b/modules/CIAO/ccm/CCM_Exceptions.idl
new file mode 100644
index 00000000000..7e1f7067f2b
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_Exceptions.idl
@@ -0,0 +1,26 @@
+// $Id$
+/// Compliant with OMG 06-04-01 Section 6.7.6
+
+#if !defined (CCM_EXCEPTIONS_IDL)
+#define CCM_EXCEPTIONS_IDL
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ typedef unsigned long FailureReason;
+
+ exception CreateFailure {
+ FailureReason reason;
+ };
+ exception FinderFailure
+ {
+ FailureReason reason;
+ };
+ exception RemoveFailure
+ {
+ FailureReason reason;
+ };
+};
+
+#endif
diff --git a/modules/CIAO/ccm/CCM_ExecutorLocator.idl b/modules/CIAO/ccm/CCM_ExecutorLocator.idl
new file mode 100644
index 00000000000..ef0ac8386d8
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_ExecutorLocator.idl
@@ -0,0 +1,28 @@
+// $Id$
+
+#if !defined (CCM_EXECUTORLOCATOR_IDL)
+#define CCM_EXECUTORLOCATOR_IDL
+
+#include "ccm/CCM_EnterpriseComponent.idl"
+#include "ccm/CCM_CCMException.idl"
+#include "ccm/CCM_Object.idl"
+
+// *************** Extended Container Interfaces ***************
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ local interface ExecutorLocator : EnterpriseComponent
+ {
+ Object obtain_executor (in string name)
+ raises (CCMException);
+
+ void release_executor (in Object exc)
+ raises (CCMException);
+
+ void configuration_complete()
+ raises (InvalidConfiguration);
+ };
+};
+#endif /* CCM_EXECUTORLOCATOR_IDL */
diff --git a/modules/CIAO/ccm/CCM_Home.idl b/modules/CIAO/ccm/CCM_Home.idl
new file mode 100644
index 00000000000..697fccf72c4
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_Home.idl
@@ -0,0 +1,29 @@
+// $Id$
+/// Compliant with OMG 06-04-01 Section 6.7.6
+
+#if !defined (CCM_HOME_IDL)
+#define CCM_HOME_IDL
+
+#include "tao/IFR_Client/IFR_Base.pidl"
+#include "ccm/CCM_Exceptions.idl"
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ exception DuplicateKeyValue {};
+ exception InvalidKey {};
+ exception UnknownKeyValue {};
+
+ interface CCMObject;
+
+ interface CCMHome
+ {
+ CORBA::IRObject get_component_def ();
+ CORBA::IRObject get_home_def ();
+ void remove_component (in CCMObject comp)
+ raises (RemoveFailure);
+ };
+};
+
+#endif /* CCM_HOME_IDL */
diff --git a/modules/CIAO/ccm/CCM_HomeConfiguration.idl b/modules/CIAO/ccm/CCM_HomeConfiguration.idl
new file mode 100644
index 00000000000..b3b0787ec28
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_HomeConfiguration.idl
@@ -0,0 +1,23 @@
+// $Id$
+/// Compliant with OMG 06-04-01 Section 6.10.2.1
+
+#if !defined (CCM_HOMECONFIGURATION_IDL)
+#define CCM_HOMECONFIGURATION_IDL
+
+#include "ccm/CCM_Configurator.idl"
+#include "ccm/CCM_StandardConfigurator.idl"
+#include "ccm/CCM_Home.idl"
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ interface HomeConfiguration : CCMHome
+ {
+ void set_configurator (in Configurator cfg);
+ void set_configuration_values (in ConfigValues config);
+ void complete_component_configuration (in boolean b);
+ void disable_home_configuration();
+ };
+};
+#endif /* CCM_HOMECONFIGURATOR_IDL */
diff --git a/modules/CIAO/ccm/CCM_HomeExecutorBase.idl b/modules/CIAO/ccm/CCM_HomeExecutorBase.idl
new file mode 100644
index 00000000000..34a92fbe539
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_HomeExecutorBase.idl
@@ -0,0 +1,14 @@
+// $Id$
+
+#if !defined (CCM_HOMEEXECUTORBASE_IDL)
+#define CCM_HOMEEXECUTORBASE_IDL
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ local interface HomeExecutorBase
+ {
+ };
+};
+#endif /* CCM_HOMEEXECUTORBASE_IDL */
diff --git a/modules/CIAO/ccm/CCM_HomeFinder.idl b/modules/CIAO/ccm/CCM_HomeFinder.idl
new file mode 100644
index 00000000000..50c41811acb
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_HomeFinder.idl
@@ -0,0 +1,29 @@
+// $Id$
+/// Compliant with OMG 06-04-01 Section 6.8
+
+#if !defined (CCM_HOMEFINDER_IDL)
+#define CCM_HOMEFINDER_IDL
+
+#include "tao/orb_types.pidl"
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ exception HomeNotFound {};
+
+ interface CCMHome;
+
+ interface HomeFinder
+ {
+ CCMHome find_home_by_component_type (in CORBA::RepositoryId comp_repid)
+ raises (HomeNotFound);
+
+ CCMHome find_home_by_home_type (in CORBA::RepositoryId home_repid)
+ raises (HomeNotFound);
+
+ CCMHome find_home_by_name (in string home_name)
+ raises (HomeNotFound);
+ };
+};
+#endif /* CCM_HOMEFINDER_IDL */
diff --git a/modules/CIAO/ccm/CCM_HomeRegistration.idl b/modules/CIAO/ccm/CCM_HomeRegistration.idl
new file mode 100644
index 00000000000..c6f69ed6c43
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_HomeRegistration.idl
@@ -0,0 +1,21 @@
+// $Id$
+
+#if !defined (CCM_HOMEREGISTRATION_IDL)
+#define CCM_HOMEREGISTRATION_IDL
+
+#include "ccm/CCM_Home.idl"
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ local interface HomeRegistration
+ {
+ void register_home (in CCMHome home_ref,
+ in string home_name);
+
+ void unregister_home (in CCMHome home_ref);
+ };
+
+};
+#endif /* CCM_HOMEREGISTRATION_IDL */
diff --git a/modules/CIAO/ccm/CCM_Homes.idl b/modules/CIAO/ccm/CCM_Homes.idl
new file mode 100644
index 00000000000..edeb6ddb11f
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_Homes.idl
@@ -0,0 +1,19 @@
+// $Id$
+/// NOT Compliant with OMG 06-04-01 Section 6.7.6
+
+#if !defined (CCM_HOMES_IDL)
+#define CCM_HOMES_IDL
+
+#include "ccm/CCM_Home.idl"
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ /**
+ * @@ Added by wotte for continued compatibility with OFCCM
+ */
+ typedef sequence<CCMHome> CCMHomes;
+};
+
+#endif /* CCM_HOMES_IDL */
diff --git a/modules/CIAO/ccm/CCM_KeylessCCMHome.idl b/modules/CIAO/ccm/CCM_KeylessCCMHome.idl
new file mode 100644
index 00000000000..8a720cf64f4
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_KeylessCCMHome.idl
@@ -0,0 +1,19 @@
+// $Id$
+/// Compliant with OMG 06-04-01 Section 6.7.7
+
+#if !defined (CCM_KEYLESSCCMHOME_IDL)
+#define CCM_KEYLESSCCMHOME_IDL
+
+#include "ccm/CCM_Object.idl"
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ interface KeylessCCMHome
+ {
+ CCMObject create_component()
+ raises (CreateFailure);
+ };
+};
+#endif /* CCM_KEYLESSCCMHOME_IDL */
diff --git a/modules/CIAO/ccm/CCM_Navigation.idl b/modules/CIAO/ccm/CCM_Navigation.idl
new file mode 100644
index 00000000000..90e9abe8b71
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_Navigation.idl
@@ -0,0 +1,41 @@
+/// $Id$
+/// Compliant with OMG 06-04-01 Section 6.4.3.3
+
+#if !defined (CCM_NAVIGATION_IDL)
+#define CCM_NAVIGATION_IDL
+
+#include "tao/orb_types.pidl"
+#include "tao/StringSeq.pidl"
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ typedef string FeatureName;
+ typedef sequence<FeatureName> NameList;
+
+ valuetype PortDescription
+ {
+ public FeatureName name;
+ public CORBA::RepositoryId type_id;
+ };
+
+ valuetype FacetDescription : PortDescription
+ {
+ public Object facet_ref;
+ };
+
+ typedef sequence<FacetDescription> FacetDescriptions;
+
+ exception InvalidName {};
+ interface Navigation
+ {
+ Object provide_facet (in FeatureName name)
+ raises (InvalidName);
+ FacetDescriptions get_all_facets();
+ FacetDescriptions get_named_facets (in NameList names)
+ raises (InvalidName);
+ boolean same_component (in Object object_ref);
+ };
+};
+#endif /* CCM_NAVIGATION_IDL */
diff --git a/modules/CIAO/ccm/CCM_Object.idl b/modules/CIAO/ccm/CCM_Object.idl
new file mode 100644
index 00000000000..5f44d1b0568
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_Object.idl
@@ -0,0 +1,58 @@
+// $Id$
+/// NOT Compliant with OMG 06-04-01 Section 6.11.1
+
+#if !defined (CCM_OBJECT_IDL)
+#define CCM_OBJECT_IDL
+
+#include "ccm/CCM_Events.idl"
+#include "ccm/CCM_Navigation.idl"
+#include "ccm/CCM_Home.idl"
+#include "ccm/CCM_PrimaryKeyBase.idl"
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ /// This typedef and consts shouldn't be here but are here because of CIAO
+ /// specific additions
+ typedef FailureReason InvalidConfigurationReason;
+ const InvalidConfigurationReason UnknownConfigValueName = 0;
+ const InvalidConfigurationReason InvalidConfigValueType = 1;
+ const InvalidConfigurationReason ConfigValueRequired = 2;
+ const InvalidConfigurationReason ConfigValueNotExpected = 3;
+
+ /// Shouldn't be here but is now here because of CIAO additions
+ exception InvalidConfiguration
+ {
+ InvalidConfigurationReason reason;
+ FeatureName name;
+ };
+
+ valuetype ComponentPortDescription
+ {
+ public FacetDescriptions facets;
+ public ReceptacleDescriptions receptacles;
+ public ConsumerDescriptions consumers;
+ public EmitterDescriptions emitters;
+ public PublisherDescriptions publishers;
+ };
+
+ exception NoKeyAvailable {};
+
+ interface CCMObject : Navigation, Receptacles, Events
+ {
+ CORBA::IRObject get_component_def ( );
+ CCMHome get_ccm_home( );
+ PrimaryKeyBase get_primary_key( )
+ raises (NoKeyAvailable);
+ void configuration_complete ()
+ raises (InvalidConfiguration);
+ void remove()
+ raises (RemoveFailure);
+ ComponentPortDescription get_all_ports ();
+ };
+
+ // From OMG 06-04-01 Section 10.3.1.2
+ typedef sequence<CCMObject> CCMObjectSeq;
+};
+#endif /* CCM_OBJECT_IDL */
diff --git a/modules/CIAO/ccm/CCM_PrimaryKeyBase.idl b/modules/CIAO/ccm/CCM_PrimaryKeyBase.idl
new file mode 100644
index 00000000000..27c261d20b2
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_PrimaryKeyBase.idl
@@ -0,0 +1,13 @@
+// $Id$
+
+#if !defined (CCM_PRIMARYKEYBASE_IDL)
+#define CCM_PRIMARYKEYBASE_IDL
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ abstract valuetype PrimaryKeyBase {};
+
+};
+#endif /* CCM_PRIMARYKEYBASE_IDL */
diff --git a/modules/CIAO/ccm/CCM_ProxyHomeRegistration.idl b/modules/CIAO/ccm/CCM_ProxyHomeRegistration.idl
new file mode 100644
index 00000000000..3f613d7c13f
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_ProxyHomeRegistration.idl
@@ -0,0 +1,23 @@
+// $Id$
+
+#if !defined (CCM_PROXYHOMEREGISTRATION_IDL)
+#define CCM_PROXYHOMEREGISTRATION_IDL
+
+#include "ccm/CCM_HomeRegistration.idl"
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ exception UnknownActualHome {};
+ exception ProxyHomeNotSupported {};
+
+ local interface ProxyHomeRegistration : HomeRegistration
+ {
+ void register_proxy_home (in CCMHome rhome,
+ in CCMHome ahome)
+ raises (UnknownActualHome,
+ ProxyHomeNotSupported);
+ };
+};
+#endif /* CCM_PROXYHOMEREGISTRATION_IDL */
diff --git a/modules/CIAO/ccm/CCM_Receptacle.idl b/modules/CIAO/ccm/CCM_Receptacle.idl
new file mode 100644
index 00000000000..4d3af287c5c
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_Receptacle.idl
@@ -0,0 +1,55 @@
+/// $Id$
+/// Compliant with OMG 06-04-01 Section 6.5.3
+
+#if !defined (CCM_RECEPTACLE_IDL)
+#define CCM_RECEPTACLE_IDL
+
+#include "ccm/CCM_Base.idl"
+#include "ccm/CCM_Navigation.idl"
+#include "ccm/CCM_Cookie.idl"
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ valuetype ConnectionDescription
+ {
+ public Cookie ck;
+ public Object objref;
+ };
+ typedef sequence<ConnectionDescription> ConnectionDescriptions;
+
+ valuetype ReceptacleDescription : PortDescription
+ {
+ public boolean is_multiple;
+ public ConnectionDescriptions connections;
+ };
+ typedef sequence<ReceptacleDescription> ReceptacleDescriptions;
+
+ exception ExceededConnectionLimit {};
+ exception CookieRequired {};
+
+ interface Receptacles
+ {
+ Cookie connect (in FeatureName name, in Object connection )
+ raises (InvalidName,
+ InvalidConnection,
+ AlreadyConnected,
+ ExceededConnectionLimit);
+
+ Object disconnect (in FeatureName name, in Cookie ck)
+ raises (InvalidName,
+ InvalidConnection,
+ CookieRequired,
+ NoConnection);
+
+ ConnectionDescriptions get_connections (in FeatureName name)
+ raises (InvalidName);
+
+ ReceptacleDescriptions get_all_receptacles ();
+
+ ReceptacleDescriptions get_named_receptacles (in NameList names)
+ raises (InvalidName);
+ };
+};
+#endif /* CCM_RECEPTACLE_IDL */
diff --git a/modules/CIAO/ccm/CCM_Session2Context.idl b/modules/CIAO/ccm/CCM_Session2Context.idl
new file mode 100644
index 00000000000..e1f2d8f1614
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_Session2Context.idl
@@ -0,0 +1,37 @@
+// $Id$
+
+#if !defined (CCM_SESSION2CONTEXT_IDL)
+#define CCM_SESSION2CONTEXT_IDL
+
+#include "ccm/CCM_CCM2Context.idl"
+
+// *************** Extended Container Interfaces ***************
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ enum BadComponentReferenceReason
+ {
+ NON_LOCAL_REFERENCE,
+ NON_COMPONENT_REFERENCE,
+ WRONG_CONTAINER
+ };
+ exception BadComponentReference
+ {
+ BadComponentReferenceReason reason;
+ };
+
+ local interface Session2Context : SessionContext, CCM2Context
+ {
+ Object create_ref (in CORBA::RepositoryId repid);
+
+ Object create_ref_from_oid (in CORBA::OctetSeq oid,
+ in CORBA::RepositoryId repid);
+
+ CORBA::OctetSeq get_oid_from_ref (in Object objref)
+ raises (IllegalState,
+ BadComponentReference);
+ };
+};
+#endif /* CCM_SESSION2CONTEXT_IDL */
diff --git a/modules/CIAO/ccm/CCM_SessionComponent.idl b/modules/CIAO/ccm/CCM_SessionComponent.idl
new file mode 100644
index 00000000000..f7de21e3f04
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_SessionComponent.idl
@@ -0,0 +1,34 @@
+// $Id$
+
+#if !defined (CCM_SESSIONCOMPONENT_IDL)
+#define CCM_SESSIONCOMPONENT_IDL
+
+#include "ccm/CCM_SessionContext.idl"
+#include "ccm/CCM_CCMException.idl"
+#include "ccm/CCM_EnterpriseComponent.idl"
+
+// *************** Basic Container interfaces ***************
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ local interface SessionComponent : EnterpriseComponent
+ {
+ void set_session_context ( in SessionContext ctx)
+ raises (CCMException);
+
+ void configuration_complete ()
+ raises (CCMException);
+
+ void ccm_activate()
+ raises (CCMException);
+
+ void ccm_passivate()
+ raises (CCMException);
+
+ void ccm_remove ()
+ raises (CCMException);
+ };
+};
+#endif /* CCM_SESSIONCOMPONENT_IDL */
diff --git a/modules/CIAO/ccm/CCM_SessionContext.idl b/modules/CIAO/ccm/CCM_SessionContext.idl
new file mode 100644
index 00000000000..88685acd965
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_SessionContext.idl
@@ -0,0 +1,18 @@
+// $Id$
+
+#if !defined (CCM_SESSIONCONTEXT_IDL)
+#define CCM_SESSIONCONTEXT_IDL
+
+#include "ccm/CCM_Context.idl"
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ local interface SessionContext : CCMContext
+ {
+ Object get_CCM_object()
+ raises (IllegalState);
+ };
+};
+#endif /* CCM_SESSIONCONTEXT_IDL */
diff --git a/modules/CIAO/ccm/CCM_SessionSynchronization.idl b/modules/CIAO/ccm/CCM_SessionSynchronization.idl
new file mode 100644
index 00000000000..988cd4fdfb1
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_SessionSynchronization.idl
@@ -0,0 +1,26 @@
+// $Id$
+
+#if !defined (CCM_SESSIONSYNCHRONIZATION_IDL)
+#define CCM_SESSIONSYNCHRONIZATION_IDL
+
+#include "ccm/CCM_CCMException.idl"
+
+// *************** Basic Container interfaces ***************
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ local interface SessionSynchronization
+ {
+ void after_begin ()
+ raises (CCMException);
+
+ void before_completion ()
+ raises (CCMException);
+
+ void after_completion (in boolean committed)
+ raises (CCMException);
+ };
+};
+#endif /* CCM_SESSIONSYNCHRONIZATION_IDL */
diff --git a/modules/CIAO/ccm/CCM_StandardConfigurator.idl b/modules/CIAO/ccm/CCM_StandardConfigurator.idl
new file mode 100644
index 00000000000..0013d3d5b31
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_StandardConfigurator.idl
@@ -0,0 +1,28 @@
+// $Id$
+/// Compliant with OMG 06-04-01 Section 6.10.1.2
+
+#if !defined (CCM_STANDARDCONFIGURATOR_IDL)
+#define CCM_STANDARDCONFIGURATOR_IDL
+
+#include "ccm/CCM_Configurator.idl"
+#include "ccm/CCM_Navigation.idl"
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ valuetype ConfigValue
+ {
+ public FeatureName name;
+ public any value;
+ };
+
+ typedef sequence<ConfigValue> ConfigValues;
+
+ interface StandardConfigurator : Configurator
+ {
+ void set_configuration (in ConfigValues descr);
+ };
+
+};
+#endif /* CCM_STANDARDCONFIGURATOR_IDL */
diff --git a/modules/CIAO/ccm/CCM_StateIdFactory.idl b/modules/CIAO/ccm/CCM_StateIdFactory.idl
new file mode 100644
index 00000000000..f26371ecd54
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_StateIdFactory.idl
@@ -0,0 +1,59 @@
+// $Id$
+
+#if !defined (CCM_STATEIDFACTORY)
+#define CCM_STATEIDFACTORY
+
+#include <CosPersistentState.idl>
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ typedef short SegmentId;
+ const SegmentId COMPONENT_SEGMENT = 0;
+
+ typedef short FacetId;
+ const FacetId COMPONENT_FACET = 0;
+
+ typedef sequence<octet> IdData;
+ typedef CosPersistentState::Pid PersistentId;
+
+ exception InvalidStateIdData {};
+
+ typedef short StateIdType;
+ const StateIdType PERSISTENT_ID = 0;
+
+ abstract valuetype StateIdValue
+ {
+ StateIdType get_sid_type();
+ IdData get_sid_data();
+ };
+
+ local interface StateIdFactory
+ {
+ StateIdValue create (in IdData data)
+ raises (InvalidStateIdData);
+ };
+
+ valuetype PersistentIdValue : StateIdValue
+ {
+ private PersistentId pid;
+ PersistentId get_pid();
+ factory init (in PersistentId pid);
+ };
+
+ valuetype SegmentDescr
+ {
+ private StateIdValue sid;
+ private SegmentId seg;
+
+ StateIdValue get_sid();
+ SegmentId get_seg_id();
+ factory init (in StateIdValue sid,
+ in SegmentId seg);
+ };
+
+ typedef sequence<SegmentDescr> SegmentDescrSeq;
+
+};
+#endif /* CCM_STATEIDFACTORY */
diff --git a/modules/CIAO/ccm/CCM_Stub_Export.h b/modules/CIAO/ccm/CCM_Stub_Export.h
new file mode 100644
index 00000000000..dad69c9cc0e
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_Stub_Export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl CCM_Stub
+// ------------------------------
+#ifndef CCM_STUB_EXPORT_H
+#define CCM_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (CCM_STUB_HAS_DLL)
+# define CCM_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && CCM_STUB_HAS_DLL */
+
+#if !defined (CCM_STUB_HAS_DLL)
+# define CCM_STUB_HAS_DLL 1
+#endif /* ! CCM_STUB_HAS_DLL */
+
+#if defined (CCM_STUB_HAS_DLL) && (CCM_STUB_HAS_DLL == 1)
+# if defined (CCM_STUB_BUILD_DLL)
+# define CCM_Stub_Export ACE_Proper_Export_Flag
+# define CCM_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define CCM_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* CCM_STUB_BUILD_DLL */
+# define CCM_Stub_Export ACE_Proper_Import_Flag
+# define CCM_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define CCM_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* CCM_STUB_BUILD_DLL */
+#else /* CCM_STUB_HAS_DLL == 1 */
+# define CCM_Stub_Export
+# define CCM_STUB_SINGLETON_DECLARATION(T)
+# define CCM_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* CCM_STUB_HAS_DLL == 1 */
+
+// Set CCM_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (CCM_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define CCM_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define CCM_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !CCM_STUB_NTRACE */
+
+#if (CCM_STUB_NTRACE == 1)
+# define CCM_STUB_TRACE(X)
+#else /* (CCM_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define CCM_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (CCM_STUB_NTRACE == 1) */
+
+#endif /* CCM_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/ccm/CCM_Svnt_Export.h b/modules/CIAO/ccm/CCM_Svnt_Export.h
new file mode 100644
index 00000000000..edb1b38f5ba
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_Svnt_Export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl CCM_Svnt
+// ------------------------------
+#ifndef CCM_SVNT_EXPORT_H
+#define CCM_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (CCM_SVNT_HAS_DLL)
+# define CCM_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && CCM_SVNT_HAS_DLL */
+
+#if !defined (CCM_SVNT_HAS_DLL)
+# define CCM_SVNT_HAS_DLL 1
+#endif /* ! CCM_SVNT_HAS_DLL */
+
+#if defined (CCM_SVNT_HAS_DLL) && (CCM_SVNT_HAS_DLL == 1)
+# if defined (CCM_SVNT_BUILD_DLL)
+# define CCM_Svnt_Export ACE_Proper_Export_Flag
+# define CCM_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define CCM_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* CCM_SVNT_BUILD_DLL */
+# define CCM_Svnt_Export ACE_Proper_Import_Flag
+# define CCM_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define CCM_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* CCM_SVNT_BUILD_DLL */
+#else /* CCM_SVNT_HAS_DLL == 1 */
+# define CCM_Svnt_Export
+# define CCM_SVNT_SINGLETON_DECLARATION(T)
+# define CCM_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* CCM_SVNT_HAS_DLL == 1 */
+
+// Set CCM_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (CCM_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define CCM_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define CCM_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !CCM_SVNT_NTRACE */
+
+#if (CCM_SVNT_NTRACE == 1)
+# define CCM_SVNT_TRACE(X)
+#else /* (CCM_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define CCM_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (CCM_SVNT_NTRACE == 1) */
+
+#endif /* CCM_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/ccm/CCM_Transaction.idl b/modules/CIAO/ccm/CCM_Transaction.idl
new file mode 100644
index 00000000000..5760d39846d
--- /dev/null
+++ b/modules/CIAO/ccm/CCM_Transaction.idl
@@ -0,0 +1,76 @@
+// $Id$
+
+#if !defined (CCM_TRANSACTION_IDL)
+#define CCM_TRANSACTION_IDL
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ // @@ Components::Transaction is still there.
+ module Transaction
+ {
+
+ typedef sequence<octet> TranToken;
+
+ exception NoTransaction {};
+ exception NotSupported {};
+ exception SystemError {};
+ exception RollbackError {};
+ exception HeuristicMixed {};
+ exception HeuristicRollback {};
+ exception Security {};
+ exception InvalidToken {};
+
+ enum Status
+ {
+ ACTIVE,
+ MARKED_ROLLBACK,
+ PREPARED,
+ COMMITTED,
+ ROLLED_BACK,
+ NO_TRANSACTION,
+ PREPARING,
+ COMMITTING,
+ ROLLING_BACK
+ };
+
+ local interface UserTransaction {
+ void begin ()
+ raises (NotSupported,
+ SystemError);
+
+ void commit ()
+ raises (RollbackError,
+ NoTransaction,
+ HeuristicMixed,
+ HeuristicRollback,
+ Security,
+ SystemError);
+
+ void rollback ()
+ raises (NoTransaction,
+ Security,
+ SystemError);
+
+ void set_rollback_only ()
+ raises (NoTransaction,
+ SystemError);
+
+ Status get_status()
+ raises (SystemError);
+
+ void set_timeout (in long to)
+ raises (SystemError);
+
+ TranToken suspend ()
+ raises (NoTransaction,
+ SystemError);
+
+ void resume (in TranToken txtoken)
+ raises (InvalidToken,
+ SystemError);
+ };
+ };
+};
+#endif /* CCM_TRANSACTION_IDL */
diff --git a/modules/CIAO/ccm/ComponentServer/CCM_ComponentServer.idl b/modules/CIAO/ccm/ComponentServer/CCM_ComponentServer.idl
new file mode 100644
index 00000000000..dd06fb7c1cb
--- /dev/null
+++ b/modules/CIAO/ccm/ComponentServer/CCM_ComponentServer.idl
@@ -0,0 +1,62 @@
+// $Id$
+
+#if !defined (COMPONENTSERVER_IDL)
+#define COMPONENTSERVER_IDL
+
+#include "ccm/ComponentServer/CCM_ComponentServer_Base.idl"
+#include "ccm/CCM_Homes.idl"
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ module Deployment
+ {
+ interface Container;
+ typedef sequence<Container> Containers;
+ interface ServerActivator;
+
+ interface ComponentServer
+ {
+ readonly attribute ConfigValues configuration;
+
+ ServerActivator get_server_activator();
+
+ Container create_container(in ConfigValues config)
+ raises (::Components::CreateFailure,
+ ::Components::Deployment::InvalidConfiguration);
+
+ void remove_container(in Container cref) raises (::Components::RemoveFailure);
+
+ Containers get_containers();
+
+ void remove() raises (::Components::RemoveFailure);
+ };
+
+ typedef sequence<ComponentServer> ComponentServers;
+
+ interface Container
+ {
+ readonly attribute ConfigValues configuration;
+
+ ComponentServer get_component_server();
+
+ CCMHome install_home(in UUID id,
+ in string entrypt,
+ in ConfigValues config)
+ raises (::Components::Deployment::UnknownImplId,
+ ::Components::Deployment::ImplEntryPointNotFound,
+ ::Components::Deployment::InstallationFailure,
+ ::Components::Deployment::InvalidConfiguration);
+
+ void remove_home(in CCMHome href) raises (::Components::RemoveFailure);
+
+ CCMHomes get_homes();
+
+ void remove() raises (::Components::RemoveFailure);
+ };
+ };
+
+};
+
+#endif /* COMPONENTSERVER_IDL */
diff --git a/modules/CIAO/ccm/ComponentServer/CCM_ComponentServer.mpc b/modules/CIAO/ccm/ComponentServer/CCM_ComponentServer.mpc
new file mode 100644
index 00000000000..a8d6e640caa
--- /dev/null
+++ b/modules/CIAO/ccm/ComponentServer/CCM_ComponentServer.mpc
@@ -0,0 +1,65 @@
+// -*- MPC -*-
+// $Id$
+
+project(CCM_ComponentServer_IDL) : ciaoidldefaults, anytypecode {
+ idlflags += -Wb,stub_export_macro=DANCE_COMPONENTSERVER_STUB_Export \
+ -Wb,stub_export_include=DAnCE_ComponentServer_stub_export.h \
+ -Wb,skel_export_macro=DANCE_COMPONENTSERVER_SVNT_Export \
+ -Wb,skel_export_include=DAnCE_ComponentServer_svnt_export.h
+
+ custom_only = 1
+
+ IDL_Files {
+ idlflags += -SS -Sci -Gxhst -Gxhsk
+ CCM_ComponentServer_Base.idl
+ }
+
+ IDL_Files {
+ idlflags += -Ssi
+ CCM_ComponentServer_Client.idl
+ }
+
+ IDL_Files {
+ idlflags += -Ssi
+ CCM_ComponentServer.idl
+ }
+}
+
+project(CCM_ComponentServer_stub) : ciaolib_with_idl, ciao_output, messaging, ccm_stub, anytypecode, ciao_lib {
+ dynamicflags = DANCE_COMPONENTSERVER_STUB_BUILD_DLL
+ after += CCM_ComponentServer_IDL
+
+ Header_Files {
+ DAnCE_ComponentServer_stub_export.h
+ CCM_ComponentServerC.h
+ CCM_ComponentServer_ClientC.h
+ CCM_ComponentServer_BaseC.h
+ }
+
+ Source_Files {
+ CCM_ComponentServerC.cpp
+ CCM_ComponentServer_ClientC.cpp
+ CCM_ComponentServer_BaseC.cpp
+ }
+ IDL_Files {
+ }
+}
+
+project(CCM_ComponentServer_svnt) : ciaolib_with_idl, ciao_output, messaging, ccm_componentserver_stub, anytypecode, ciao_lib {
+ dynamicflags = DANCE_COMPONENTSERVER_SVNT_BUILD_DLL
+
+ Header_Files {
+ DAnCE_ComponentServer_svnt_export.h
+ CCM_ComponentServerS.h
+ CCM_ComponentServer_ClientS.h
+ CCM_ComponentServer_BaseS.h
+ }
+
+ Source_Files {
+ CCM_ComponentServerS.cpp
+ CCM_ComponentServer_ClientS.cpp
+ }
+ IDL_Files {
+ }
+}
+
diff --git a/modules/CIAO/ccm/ComponentServer/CCM_ComponentServer_Base.idl b/modules/CIAO/ccm/ComponentServer/CCM_ComponentServer_Base.idl
new file mode 100644
index 00000000000..c44ce1b8796
--- /dev/null
+++ b/modules/CIAO/ccm/ComponentServer/CCM_ComponentServer_Base.idl
@@ -0,0 +1,56 @@
+/**
+ * @file CCM_ComponentServer_Base.idl
+ * $Id$
+ * Contains base types for all componenent server interfaces.
+ * These interfaces are not part of the CCM standard.
+ */
+
+#ifndef COMPONENTSERVER_BASE_IDL_
+#define COMPONENTSERVER_BASE_IDL_
+
+#include "ccm/CCM_Home.idl"
+#include "ccm/CCM_KeylessCCMHome.idl"
+#include "ccm/CCM_Navigation.idl"
+#include "ccm/CCM_StandardConfigurator.idl"
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ module Deployment
+ {
+ typedef string UUID;
+ typedef string Location;
+
+ typedef FailureReason InvalidConfigurationReason;
+ const InvalidConfigurationReason UnknownConfigValueName = 0;
+ const InvalidConfigurationReason InvalidConfigValueType = 1;
+ const InvalidConfigurationReason ConfigValueRequired = 2;
+ const InvalidConfigurationReason ConfigValueNotExpected = 3;
+
+ exception InvalidConfiguration
+ {
+ InvalidConfigurationReason reason;
+ FeatureName name;
+ };
+
+ exception UnknownImplId
+ {
+ };
+
+ exception InvalidLocation
+ {
+ };
+
+ exception ImplEntryPointNotFound
+ {
+ };
+
+ exception InstallationFailure
+ {
+ FailureReason reason;
+ };
+ };
+};
+
+#endif
diff --git a/modules/CIAO/ccm/ComponentServer/CCM_ComponentServer_Client.idl b/modules/CIAO/ccm/ComponentServer/CCM_ComponentServer_Client.idl
new file mode 100644
index 00000000000..8d5b0b02abd
--- /dev/null
+++ b/modules/CIAO/ccm/ComponentServer/CCM_ComponentServer_Client.idl
@@ -0,0 +1,47 @@
+/**
+ * @file CCM_ComponentServer_Client.idl
+ * Client side objects hosted by the NodeApplication.
+ * $Id$
+ */
+
+#ifndef COMPONENTSERVER_CLIENT_IDL_
+#define COMPONENTSERVER_CLIENT_IDL_
+
+#include "ccm/ComponentServer/CCM_ComponentServer.idl"
+
+module Components
+{
+ typeprefix Components "omg.org";
+
+ module Deployment
+ {
+ interface ComponentInstallation
+ {
+ void install(in UUID implUUID, in Location component_loc)
+ raises (InvalidLocation, InstallationFailure);
+
+ void replace(in UUID implUUID, in Location component_loc)
+ raises (InvalidLocation, InstallationFailure);
+
+ void remove(in UUID implUUID)
+ raises (UnknownImplId, RemoveFailure);
+
+ Location get_implementation(in UUID implUUID)
+ raises(UnknownImplId, InstallationFailure);
+ };
+
+ interface ServerActivator
+ {
+ ComponentServer create_component_server(in ConfigValues config)
+ raises(::Components::CreateFailure,
+ ::Components::Deployment::InvalidConfiguration);
+
+ void remove_component_server(in ComponentServer server)
+ raises(::Components::RemoveFailure);
+
+ ComponentServers get_component_servers();
+ };
+ };
+};
+
+#endif
diff --git a/modules/CIAO/ccm/Components.idl b/modules/CIAO/ccm/Components.idl
new file mode 100644
index 00000000000..cda791f25fa
--- /dev/null
+++ b/modules/CIAO/ccm/Components.idl
@@ -0,0 +1,17 @@
+// $Id$
+
+/**
+ * This file is included in the generated executor
+ * mapping IDL file,
+ */
+
+#if !defined (CCM_COMPONENTS_IDL)
+#define CCM_COMPONENTS_IDL
+
+#include "ccm/CCM_Component.idl"
+#include "ccm/CCM_KeylessCCMHome.idl"
+#include "ccm/CCM_Home.idl"
+#include "ccm/CCM_Object.idl"
+
+#endif /* CCM_COMPONENTS_IDL */
+
diff --git a/modules/CIAO/ccm/CosPersistentState.idl b/modules/CIAO/ccm/CosPersistentState.idl
new file mode 100644
index 00000000000..b6ce4324fa8
--- /dev/null
+++ b/modules/CIAO/ccm/CosPersistentState.idl
@@ -0,0 +1,21 @@
+// $Id$
+
+/**
+ * @@ This is just a temporary file. Since TAO does not have
+ * CosPersistentState at all, we use this file to define
+ * types necessary to get ComponentBase.idl to compile.
+ */
+
+#if !defined (CIAO_COSPERSISTENTSTATE_PIDL)
+#define CIAO_COSPERSISTENTSTATE_PIDL
+
+module CosPersistentState {
+
+ local interface CatalogBase
+ {
+ };
+
+ typedef sequence<octet> _TypeId;
+ typedef string Pid;
+};
+#endif /* CIAO_COSPERSISTENTSTATE_PIDL */
diff --git a/modules/CIAO/ccm/Security.idl b/modules/CIAO/ccm/Security.idl
new file mode 100644
index 00000000000..ce38f2ce1aa
--- /dev/null
+++ b/modules/CIAO/ccm/Security.idl
@@ -0,0 +1,23 @@
+/**
+ * @@ This is just a temporary file. CIAO doesn't use the security
+ * service in its implementation but just using this local
+ * interface below from the real security service pulls in
+ * 250Kb of footprint
+ *
+ * $Id$
+ */
+
+#if !defined (CIAO_SECURITY_IDL)
+#define CIAO_SECURITY_IDL
+
+#pragma prefix "omg.org"
+
+module SecurityLevel2 {
+
+# pragma version SecurityLevel2 1.8
+
+ local interface Credentials
+ {
+ };
+};
+#endif /* CIAO_SECURITY_IDL */
diff --git a/modules/CIAO/ciao/CIAO.mpc b/modules/CIAO/ciao/CIAO.mpc
new file mode 100644
index 00000000000..8339e017ecc
--- /dev/null
+++ b/modules/CIAO/ciao/CIAO.mpc
@@ -0,0 +1,37 @@
+// $Id$
+project(CIAO_Exception_IDL) : ciaoidldefaults {
+ custom_only = 1
+ IDL_Files {
+ idlflags += -Sci -SS
+ CIAO_FailureReasons.idl
+ }
+}
+
+project(CIAO_Client) : ccm_stub, ciao_lib, ccm_cookie, ccm_configvalue {
+ dynamicflags = CIAO_CLIENT_BUILD_DLL
+ after += CIAO_Exception_IDL
+ Source_Files {
+ Client_init.cpp
+ }
+ Header_Files {
+ Client_init.h
+ CIAO_Client_Export.h
+ }
+ IDL_Files {
+ }
+}
+
+project(CIAO_Server) : ccm_stub, naming, ciao_client, ciao_lib, ccm_cookie {
+ dynamicflags = CIAO_SERVER_BUILD_DLL
+
+ Source_Files {
+ Server_init.cpp
+ }
+ Header_Files {
+ CIAO_Server_Export.h
+ Server_init.h
+ }
+ IDL_Files {
+ }
+}
+
diff --git a/modules/CIAO/ciao/CIAO_Client_Export.h b/modules/CIAO/ciao/CIAO_Client_Export.h
new file mode 100644
index 00000000000..3360fbc80cc
--- /dev/null
+++ b/modules/CIAO/ciao/CIAO_Client_Export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl CIAO_CLIENT
+// ------------------------------
+#ifndef CIAO_CLIENT_EXPORT_H
+#define CIAO_CLIENT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (CIAO_CLIENT_HAS_DLL)
+# define CIAO_CLIENT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && CIAO_CLIENT_HAS_DLL */
+
+#if !defined (CIAO_CLIENT_HAS_DLL)
+# define CIAO_CLIENT_HAS_DLL 1
+#endif /* ! CIAO_CLIENT_HAS_DLL */
+
+#if defined (CIAO_CLIENT_HAS_DLL) && (CIAO_CLIENT_HAS_DLL == 1)
+# if defined (CIAO_CLIENT_BUILD_DLL)
+# define CIAO_CLIENT_Export ACE_Proper_Export_Flag
+# define CIAO_CLIENT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define CIAO_CLIENT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* CIAO_CLIENT_BUILD_DLL */
+# define CIAO_CLIENT_Export ACE_Proper_Import_Flag
+# define CIAO_CLIENT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define CIAO_CLIENT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* CIAO_CLIENT_BUILD_DLL */
+#else /* CIAO_CLIENT_HAS_DLL == 1 */
+# define CIAO_CLIENT_Export
+# define CIAO_CLIENT_SINGLETON_DECLARATION(T)
+# define CIAO_CLIENT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* CIAO_CLIENT_HAS_DLL == 1 */
+
+// Set CIAO_CLIENT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (CIAO_CLIENT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define CIAO_CLIENT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define CIAO_CLIENT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !CIAO_CLIENT_NTRACE */
+
+#if (CIAO_CLIENT_NTRACE == 1)
+# define CIAO_CLIENT_TRACE(X)
+#else /* (CIAO_CLIENT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define CIAO_CLIENT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (CIAO_CLIENT_NTRACE == 1) */
+
+#endif /* CIAO_CLIENT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/ciao/CIAO_Config.h b/modules/CIAO/ciao/CIAO_Config.h
new file mode 100644
index 00000000000..42b04622520
--- /dev/null
+++ b/modules/CIAO/ciao/CIAO_Config.h
@@ -0,0 +1,20 @@
+// -*- C++ -*-
+//=============================================================================
+/**
+ * @file CIAO_Config.h
+ *
+ * $Id$
+ *
+ * CIAO compile time configuration file.
+ *
+ * @author Bala Natarajan <bala @ dre.vanderbilt.edu>
+ */
+//=============================================================================
+#ifndef CIAO_CONFIG_H
+#define CIAO_CONFIG_H
+
+#if !defined (CIAO_DEFAULT_MAP_SIZE)
+# define CIAO_DEFAULT_MAP_SIZE 64
+#endif /* CIAO_DEFAULT_MAP_SIZE */
+
+#endif /*CIAO_CONFIG_H*/
diff --git a/modules/CIAO/ciao/CIAO_Container_Export.h b/modules/CIAO/ciao/CIAO_Container_Export.h
new file mode 100644
index 00000000000..239e7ba1c87
--- /dev/null
+++ b/modules/CIAO/ciao/CIAO_Container_Export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl CIAO_CONTAINER
+// ------------------------------
+#ifndef CIAO_CONTAINER_EXPORT_H
+#define CIAO_CONTAINER_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (CIAO_CONTAINER_HAS_DLL)
+# define CIAO_CONTAINER_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && CIAO_CONTAINER_HAS_DLL */
+
+#if !defined (CIAO_CONTAINER_HAS_DLL)
+# define CIAO_CONTAINER_HAS_DLL 1
+#endif /* ! CIAO_CONTAINER_HAS_DLL */
+
+#if defined (CIAO_CONTAINER_HAS_DLL) && (CIAO_CONTAINER_HAS_DLL == 1)
+# if defined (CIAO_CONTAINER_BUILD_DLL)
+# define CIAO_CONTAINER_Export ACE_Proper_Export_Flag
+# define CIAO_CONTAINER_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define CIAO_CONTAINER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* CIAO_CONTAINER_BUILD_DLL */
+# define CIAO_CONTAINER_Export ACE_Proper_Import_Flag
+# define CIAO_CONTAINER_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define CIAO_CONTAINER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* CIAO_CONTAINER_BUILD_DLL */
+#else /* CIAO_CONTAINER_HAS_DLL == 1 */
+# define CIAO_CONTAINER_Export
+# define CIAO_CONTAINER_SINGLETON_DECLARATION(T)
+# define CIAO_CONTAINER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* CIAO_CONTAINER_HAS_DLL == 1 */
+
+// Set CIAO_CONTAINER_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (CIAO_CONTAINER_NTRACE)
+# if (ACE_NTRACE == 1)
+# define CIAO_CONTAINER_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define CIAO_CONTAINER_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !CIAO_CONTAINER_NTRACE */
+
+#if (CIAO_CONTAINER_NTRACE == 1)
+# define CIAO_CONTAINER_TRACE(X)
+#else /* (CIAO_CONTAINER_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define CIAO_CONTAINER_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (CIAO_CONTAINER_NTRACE == 1) */
+
+#endif /* CIAO_CONTAINER_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/ciao/CIAO_FailureReasons.idl b/modules/CIAO/ciao/CIAO_FailureReasons.idl
new file mode 100644
index 00000000000..c5bae8c9cbc
--- /dev/null
+++ b/modules/CIAO/ciao/CIAO_FailureReasons.idl
@@ -0,0 +1,25 @@
+/**
+ * @file CIAO_FailureReasons.idl
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * $Id$
+ * Failure code definitions for CIAO. The VID is based on that of TAO, but
+ * our failure reasons start at that base since this is a different namespace.
+ */
+
+#ifndef CIAO_FAILUREREASONS_IDL
+#define CIAO_FAILUREREASONS_IDL
+
+#include <ccm/CCM_Exceptions.idl>
+
+module CIAO
+{
+ const Components::FailureReason VID = 0x54410000;
+ const Components::FailureReason MAX_FAILURE = VID | 0xfff;
+
+ // Container failures
+ const Components::FailureReason SERVER_SPAWN_FAILURE = VID | 0x001;
+ const Components::FailureReason CALLBACK_TIMEOUT_EXCEEDED = VID | 0x002;
+};
+
+#endif
+
diff --git a/modules/CIAO/ciao/CIAO_Server_Export.h b/modules/CIAO/ciao/CIAO_Server_Export.h
new file mode 100644
index 00000000000..e56c08a014c
--- /dev/null
+++ b/modules/CIAO/ciao/CIAO_Server_Export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl CIAO_SERVER
+// ------------------------------
+#ifndef CIAO_SERVER_EXPORT_H
+#define CIAO_SERVER_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (CIAO_SERVER_HAS_DLL)
+# define CIAO_SERVER_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && CIAO_SERVER_HAS_DLL */
+
+#if !defined (CIAO_SERVER_HAS_DLL)
+# define CIAO_SERVER_HAS_DLL 1
+#endif /* ! CIAO_SERVER_HAS_DLL */
+
+#if defined (CIAO_SERVER_HAS_DLL) && (CIAO_SERVER_HAS_DLL == 1)
+# if defined (CIAO_SERVER_BUILD_DLL)
+# define CIAO_SERVER_Export ACE_Proper_Export_Flag
+# define CIAO_SERVER_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define CIAO_SERVER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* CIAO_SERVER_BUILD_DLL */
+# define CIAO_SERVER_Export ACE_Proper_Import_Flag
+# define CIAO_SERVER_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define CIAO_SERVER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* CIAO_SERVER_BUILD_DLL */
+#else /* CIAO_SERVER_HAS_DLL == 1 */
+# define CIAO_SERVER_Export
+# define CIAO_SERVER_SINGLETON_DECLARATION(T)
+# define CIAO_SERVER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* CIAO_SERVER_HAS_DLL == 1 */
+
+// Set CIAO_SERVER_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (CIAO_SERVER_NTRACE)
+# if (ACE_NTRACE == 1)
+# define CIAO_SERVER_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define CIAO_SERVER_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !CIAO_SERVER_NTRACE */
+
+#if (CIAO_SERVER_NTRACE == 1)
+# define CIAO_SERVER_TRACE(X)
+#else /* (CIAO_SERVER_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define CIAO_SERVER_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (CIAO_SERVER_NTRACE == 1) */
+
+#endif /* CIAO_SERVER_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/ciao/Client_init.cpp b/modules/CIAO/ciao/Client_init.cpp
new file mode 100644
index 00000000000..c8e5bd8907d
--- /dev/null
+++ b/modules/CIAO/ciao/Client_init.cpp
@@ -0,0 +1,95 @@
+// $Id$
+
+#include "Client_init.h"
+#include <ccm/CCM_CookieC.h>
+#include <ccm/CCM_ReceptacleC.h>
+#include <ccm/CCM_EventsC.h>
+#include <ccm/CCM_ObjectC.h>
+#include "Valuetype_Factories/ConfigValue.h"
+#include "ciao/Logger/Log_Macros.h"
+
+int
+CIAO::Client_init (CORBA::ORB_ptr o)
+{
+ CIAO_REGISTER_VALUE_FACTORY (o, Components::Cookie_init,
+ Components::Cookie);
+ CIAO_REGISTER_VALUE_FACTORY (o, Components::PortDescription_init,
+ Components::PortDescription);
+ CIAO_REGISTER_VALUE_FACTORY (o, Components::FacetDescription_init,
+ Components::FacetDescription);
+ CIAO_REGISTER_VALUE_FACTORY (o, Components::ConnectionDescription_init,
+ Components::ConnectionDescription);
+ CIAO_REGISTER_VALUE_FACTORY (o, Components::ReceptacleDescription_init,
+ Components::ReceptacleDescription);
+ CIAO_REGISTER_VALUE_FACTORY (o, Components::ConsumerDescription_init,
+ Components::ConsumerDescription);
+ CIAO_REGISTER_VALUE_FACTORY (o, Components::EmitterDescription_init,
+ Components::EmitterDescription);
+ CIAO_REGISTER_VALUE_FACTORY (o, Components::SubscriberDescription_init,
+ Components::SubscriberDescription);
+ CIAO_REGISTER_VALUE_FACTORY (o, Components::PublisherDescription_init,
+ Components::PublisherDescription);
+ CIAO_REGISTER_VALUE_FACTORY (o, Components::ConfigValue_init,
+ Components::ConfigValue);
+ CIAO_REGISTER_VALUE_FACTORY (o, Components::ComponentPortDescription_init,
+ Components::ComponentPortDescription);
+ return 0;
+}
+
+namespace CIAO
+{
+ namespace Utility
+ {
+ void build_config_values_map (CONFIGVALUE_MAP &map,
+ const ::Components::ConfigValues &config)
+ {
+ CIAO_TRACE("CIAO::build_config_values_map");
+ map.unbind_all ();
+
+ for (CORBA::ULong i = 0; i < config.length (); ++i)
+ {
+ int const retval = map.rebind (config[i]->name (), config[i]->value ());
+
+ if (retval == 1)
+ {
+ CIAO_ERROR ((LM_WARNING, CLINFO
+ "build_config_values_map: Duplicate value for %C encountered, "
+ "old value overwritten.\n",
+ config[i]->name ()));
+ }
+ else if (retval == -1)
+ {
+ CIAO_ERROR ((LM_WARNING, CLINFO "build_config_values_map: Error binding value for %C, ignoring.\n",
+ config[i]->name ()));
+ }
+ else
+ {
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "build_config_values_map: Bound value for config value %C\n",
+ config[i]->name ()));
+ }
+ }
+ }
+
+ void build_config_values_sequence (::Components::ConfigValues &config,
+ const CONFIGVALUE_MAP &map)
+ {
+ CIAO_TRACE ("CIAO::build_config_values_sequence");
+
+ config.length (map.current_size ());
+
+ CORBA::ULong pos = 0;
+
+ for (CONFIGVALUE_MAP::const_iterator i = map.begin ();
+ (i.advance ()) != 0; ++pos)
+ {
+ Components::ConfigValue_var newval;
+ ACE_NEW_THROW_EX (newval,
+ ConfigValue_impl (i->ext_id_.c_str (), i->int_id_),
+ CORBA::NO_MEMORY ());
+ config[pos] = newval._retn ();
+ }
+ }
+ }
+}
+
diff --git a/modules/CIAO/ciao/Client_init.h b/modules/CIAO/ciao/Client_init.h
new file mode 100644
index 00000000000..6a31e474a3a
--- /dev/null
+++ b/modules/CIAO/ciao/Client_init.h
@@ -0,0 +1,75 @@
+// -*- C++ -*-
+//
+// $Id$
+
+/**
+ * @file Client_init.h
+ *
+ * Initializing CIAO client side ORB, if they need to.
+ *
+ * @author Nanbor Wang <nanbor@cs.wustl.edu>
+ */
+
+#ifndef CIAO_CLIENT_INIT_H
+#define CIAO_CLIENT_INIT_H
+
+#include /**/ "ace/pre.h"
+
+#include "CIAO_Client_Export.h"
+
+#if !defined ACE_LACKS_PRAGMA_ONCE
+#pragma once
+#endif /* ! ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Hash_Map_Manager_T.h"
+#include "tao/orbconf.h"
+#include "tao/AnyTypeCode/Any.h"
+#include "ccm/CCM_StandardConfiguratorC.h"
+
+TAO_BEGIN_VERSIONED_NAMESPACE_DECL
+namespace CORBA
+{
+ class ORB;
+ typedef ORB *ORB_ptr;
+}
+TAO_END_VERSIONED_NAMESPACE_DECL
+
+namespace CIAO
+{
+ /**
+ * The initialize routine for any clients that need to access
+ * component. This routine now simply registers various valuetype
+ * factories defined in CIAO_Component.pidl. Currently, this method
+ * should be call right after ORB initialization but we should try
+ * to register these stuff automatically.
+ */
+ CIAO_CLIENT_Export int Client_init (CORBA::ORB_ptr o);
+
+ namespace Utility
+ {
+ typedef ACE_Hash_Map_Manager_Ex<ACE_CString,
+ CORBA::Any,
+ ACE_Hash<ACE_CString>,
+ ACE_Equal_To<ACE_CString>,
+ ACE_Null_Mutex> CONFIGVALUE_MAP;
+
+ void CIAO_CLIENT_Export build_config_values_map (CONFIGVALUE_MAP &map,
+ const ::Components::ConfigValues &config);
+
+ void CIAO_CLIENT_Export build_config_values_sequence (::Components::ConfigValues &config,
+ const CONFIGVALUE_MAP &map);
+ }
+}
+
+#define CIAO_REGISTER_VALUE_FACTORY(ORB,FACTORY,VALUETYPE) {\
+ CORBA::ValueFactory factory = new FACTORY; \
+ CORBA::ValueFactory prev_factory = \
+ ORB->register_value_factory \
+ (VALUETYPE::_tao_obv_static_repository_id (), \
+ factory); \
+ if (prev_factory) prev_factory->_remove_ref (); \
+ factory->_remove_ref (); }
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_CLIENT_INIT_H */
diff --git a/modules/CIAO/ciao/ComponentServer/CIAO_CS_Client.idl b/modules/CIAO/ciao/ComponentServer/CIAO_CS_Client.idl
new file mode 100644
index 00000000000..7e8acd0e245
--- /dev/null
+++ b/modules/CIAO/ciao/ComponentServer/CIAO_CS_Client.idl
@@ -0,0 +1,40 @@
+/**
+ * @file CIAO_CS_Client.idl
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * $Id$
+ * A couple CIAO-specific extensions to the component server client
+ * interfaces.
+ */
+
+#ifndef CIAO_COMPONENTSERVER_IDL_
+#define CIAO_COMPONENTSERVER_IDL_
+
+#include <ccm/ComponentServer/CCM_ComponentServer_Client.idl>
+
+module CIAO
+{
+ module Deployment
+ {
+ interface ServerActivator : ::Components::Deployment::ServerActivator
+ {
+ /// Used by spawned component servers to notify the server
+ /// activator of their object reference and retrieve
+ /// configuration information.
+ void component_server_callback (in ::Components::Deployment::ComponentServer serverref,
+ in string server_UUID,
+ out ::Components::ConfigValues config);
+
+ void configuration_complete (in string server_UUID);
+ };
+
+ interface ComponentInstallation :
+ ::Components::Deployment::ComponentInstallation
+ {
+ };
+ };
+};
+
+
+#endif
+
+
diff --git a/modules/CIAO/ciao/ComponentServer/CIAO_ComponentInstallation_Impl.cpp b/modules/CIAO/ciao/ComponentServer/CIAO_ComponentInstallation_Impl.cpp
new file mode 100644
index 00000000000..b01175fcbd4
--- /dev/null
+++ b/modules/CIAO/ciao/ComponentServer/CIAO_ComponentInstallation_Impl.cpp
@@ -0,0 +1,129 @@
+// $Id$
+
+#include "CIAO_ComponentInstallation_Impl.h"
+#include "ciao/Logger/Log_Macros.h"
+
+namespace CIAO
+{
+ namespace Deployment
+ {
+
+ ComponentInstallation_Impl::ComponentInstallation_Impl()
+ {
+ CIAO_TRACE ("ComponentInstallation_Impl::ComponentInstallation_Impl");
+ }
+
+ ComponentInstallation_Impl::~ComponentInstallation_Impl()
+ {
+ CIAO_TRACE ("ComponentInstallation_Impl::~ComponentInstallation_Impl");
+ }
+
+ void
+ ComponentInstallation_Impl::install (const char * implUUID, const char * component_loc)
+ {
+ CIAO_TRACE ("ComponentInstallation_Impl::install");
+
+ CIAO_DEBUG ((LM_DEBUG, CLINFO "ComponentInstallation_Impl::install - "
+ "implUUID %C, component_loc %C\n", implUUID, component_loc));
+
+ ACE_CString location = component_loc;
+
+ if (0 == this->locations_.find (implUUID))
+ {
+ this->locations_.bind (implUUID, location);
+ }
+ else
+ {
+ CIAO_DEBUG ((LM_DEBUG, CLINFO "ComponentInstallation_Impl::install - Location for artifact %C "
+ "already present, replacing.\n",
+ implUUID));
+ this->locations_.rebind (implUUID, location);
+ }
+ }
+
+
+ void
+ ComponentInstallation_Impl::replace (const char *uuid, const char *loc)
+ {
+ CIAO_TRACE ("ComponentInstallation_Impl::replace");
+
+ this->locations_.rebind (uuid, loc);
+ }
+
+ void
+ ComponentInstallation_Impl::remove (const char *uuid)
+ {
+ CIAO_TRACE ("ComponentInstallation_Impl::remove");
+ this->locations_.unbind (uuid);
+ }
+
+ char *
+ ComponentInstallation_Impl::get_implementation (const char * implUUID)
+ {
+ CIAO_TRACE ("ComponentInstallation_Impl::get_implementation");
+
+ ACE_CString s;
+ if (0 == this->locations_.find (implUUID, s))
+ {
+ CIAO_DEBUG ((LM_DEBUG, CLINFO "ComponentInstallation_Impl::get_implementation - "
+ "ComponentInstallation_Impl::get_implementation for UUID %C, location %C\n",
+ implUUID, s.c_str()));
+
+ return CORBA::string_dup (s.c_str());
+ }
+ else
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "ComponentInstallation_Impl::get_implementation - "
+ "cannot find location for specified implementation UUID %C\n", implUUID));
+ throw ::Components::Deployment::UnknownImplId();
+ return 0;
+ }
+ }
+
+
+ char *
+ ComponentInstallation_Impl::get_valuetypefactory_location (const char * implUUID,
+ const char * repid)
+ {
+ CIAO_TRACE ("ComponentInstallation_Impl::get_valuetypefactory_location");
+
+ ACE_CString key = ComponentInstallation_Impl::valuefactory_key (implUUID, repid);
+ ACE_CString s;
+ if (0 == this->locations_.find (implUUID, s))
+ {
+ CIAO_DEBUG ((LM_DEBUG, CLINFO "ComponentInstallation_Impl::get_valuetypefactory_location - "
+ "UUID:\"%C\" repid:\"%C\" -> location:\"%C\"\n", implUUID, repid, s.c_str()));
+ return CORBA::string_dup (s.c_str());
+ }
+ else
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "ComponentInstallation_Impl::get_valuetypefactory_location - "
+ "cannot find location for implementation UUID %C and repid %C.\n", implUUID, repid));
+ throw ::Components::Deployment::InstallationFailure();
+ return 0;
+ }
+ return 0;
+ }
+
+
+ void
+ ComponentInstallation_Impl::install_valuetypefactory_location (const char * implUUID,
+ const char * repid,
+ const char * loc)
+ {
+ CIAO_TRACE ("ComponentInstallation_Impl::install_valuetypefactory_location");
+ ACE_CString key = ComponentInstallation_Impl::valuefactory_key (implUUID, repid);
+ if (0 != this->locations_.find (key))
+ {
+ ACE_CString location = loc;
+ this->locations_.bind (implUUID, location);
+ }
+ else
+ {
+ // I don't certaint that we should throw exception here
+ //throw ::Components::Deployment::InstallationFailure();
+ }
+ }
+ }
+}
+
diff --git a/modules/CIAO/ciao/ComponentServer/CIAO_ComponentInstallation_Impl.h b/modules/CIAO/ciao/ComponentServer/CIAO_ComponentInstallation_Impl.h
new file mode 100644
index 00000000000..699a3bd4369
--- /dev/null
+++ b/modules/CIAO/ciao/ComponentServer/CIAO_ComponentInstallation_Impl.h
@@ -0,0 +1,65 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file CIAO_ComponentInstallation_Impl.h
+ *
+ * $Id$
+ *
+ * @brief Return location of component artifact
+ *
+ * @author Erwin Gottlieb <eg@prismtech.com>
+ */
+//=============================================================================
+
+#ifndef COMPONENTINSTALLATION_IMPL_H_
+#define COMPONENTINSTALLATION_IMPL_H_
+
+#include "ace/Map_Manager.h"
+#include "ciao/ComponentServer/CIAO_CS_ClientS.h"
+
+#include "tao/ORB.h"
+#include "ciao/ComponentServer/CIAO_CS_Client_svnt_export.h"
+
+namespace CIAO
+{
+ namespace Deployment
+ {
+
+ class CIAO_CS_CLIENT_SVNT_Export ComponentInstallation_Impl
+ : public virtual POA_CIAO::Deployment::ComponentInstallation
+ {
+ public:
+ ComponentInstallation_Impl();
+
+ virtual ~ComponentInstallation_Impl();
+
+ virtual void install (const char * implUUID,
+ const char * component_loc);
+
+ virtual void replace (const char * implUUID,
+ const char * component_loc);
+
+ virtual void remove (const char * implUUID);
+
+ virtual char * get_implementation (const char * implUUID);
+
+ virtual char * get_valuetypefactory_location (const char * implUUID,
+ const char * repid);
+
+ void install_valuetypefactory_location (const char * implUUID,
+ const char * repid,
+ const char * loc);
+
+ private:
+ typedef ACE_Map_Manager< ACE_CString, ACE_CString, ACE_Null_Mutex > TLocations;
+ TLocations locations_;
+
+ static ACE_CString valuefactory_key (const char* uuid, const char* repid)
+ {
+ return ACE_CString (repid) + "@" + uuid;
+ };
+ };
+ }
+}
+#endif /*COMPONENTINSTALLATION_IMPL_H_*/
diff --git a/modules/CIAO/ciao/ComponentServer/CIAO_ComponentServer.cpp b/modules/CIAO/ciao/ComponentServer/CIAO_ComponentServer.cpp
new file mode 100644
index 00000000000..0adfc3ea526
--- /dev/null
+++ b/modules/CIAO/ciao/ComponentServer/CIAO_ComponentServer.cpp
@@ -0,0 +1,363 @@
+/**
+ * @file CIAO_ComponentServer.cpp
+ * @author William R. Otte
+ * // $Id$
+ * Implementation and main for CIAO_ComponentServer.
+ */
+
+#include "CIAO_ComponentServer.h"
+
+#include "ace/OS_NS_string.h"
+#include "ace/Log_Msg.h"
+#include "ace/Get_Opt.h"
+#include "ace/Sched_Params.h"
+#include "ace/Trace.h"
+#include "ace/Env_Value_T.h"
+#include "tao/ORB.h"
+#include "tao/Object.h"
+#include "tao/CORBA_methods.h"
+#include "tao/PortableServer/PortableServer.h"
+#include "tao/ORB_Core.h"
+#include "ciao/Logger/Logger_Service.h"
+#include "ciao/Logger/Log_Macros.h"
+#include "ciao/Server_init.h"
+
+
+#include "CIAO_ComponentServer_Impl.h"
+#include "CIAO_CS_ClientC.h"
+
+#ifdef CIAO_BUILD_COMPONENTSERVER_EXE
+
+int ACE_TMAIN (int argc, ACE_TCHAR **argv)
+{
+ // Tracing disabled by default
+ CIAO_DISABLE_TRACE ();
+
+ CIAO_TRACE ("CIAO_ComponentServer::ACE_TMAIN");
+
+ try
+ {
+ CIAO::Deployment::ComponentServer_Task cs (argc, argv);
+ cs.run ();
+ return 0;
+ }
+ catch (CIAO::Deployment::ComponentServer_Task::Error &e)
+ {
+ CIAO_DEBUG ((LM_ALERT, CLINFO "CIAO_ComponentServer main: Caught ComponentServer exception: %C\n",
+ e.err_.c_str ()));
+ }
+ catch (...)
+ {
+ CIAO_DEBUG ((LM_ALERT, CLINFO "CIAO_ComponentServer main: Caught unknown exception.\n"));
+ }
+
+ return -1;
+}
+
+#endif /* CIAO_BUILD_COMPONENTSERVER_EXE */
+
+bool
+write_IOR (const ACE_TCHAR * ior_file_name, const char* ior)
+{
+ FILE* ior_output_file_ =
+ ACE_OS::fopen (ior_file_name, "w");
+
+ if (ior_output_file_)
+ {
+ ACE_OS::fprintf (ior_output_file_,
+ "%s",
+ ior);
+ ACE_OS::fclose (ior_output_file_);
+ return true;
+ }
+ return false;
+}
+
+namespace CIAO
+{
+ namespace Deployment
+ {
+ ComponentServer_Task::ComponentServer_Task (int argc, ACE_TCHAR **argv)
+ : orb_ (0),
+ uuid_ (""),
+ callback_ior_str_ (ACE_TEXT(""))
+ {
+ CIAO_TRACE ("CIAO_ComponentServer_Task::CIAO_ComponentServer_Task ()");
+
+ Logger_Service
+ *clf = ACE_Dynamic_Service<Logger_Service>::instance ("CIAO_Logger_Backend_Factory");
+
+ if (!clf)
+ clf = new Logger_Service;
+
+ this->logger_.reset (clf);
+
+ this->logger_->init (argc, argv);
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO "CIAO_ComponentServer_Task::CIAO_ComponentServer_Task - "
+ "Creating server object\n"));
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO "CIAO_ComponentServer_Task::CIAO_ComponentServer_Task - "
+ "Creating ORB\n"));
+ this->orb_ = CORBA::ORB_init (argc, argv);
+
+ this->parse_args (argc, argv);
+ this->configure_logging_backend ();
+
+ CIAO::Server_init (this->orb_.in ());
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO "CIAO_ComponentServer_Task::CIAO_ComponentServer_Task - "
+ "CIAO_ComponentServer object created.\n"));
+ }
+
+ int
+ ComponentServer_Task::svc (void)
+ {
+ CIAO_TRACE ("ComponentServer_Task::svc");
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO "ComponentServer_Task::svc - "
+ "Activating the root POA\n"));
+ CORBA::Object_var object =
+ this->orb_->resolve_initial_references ("RootPOA");
+
+ PortableServer::POA_var root_poa =
+ PortableServer::POA::_narrow (object.in ());
+
+ PortableServer::POAManager_var poa_manager =
+ root_poa->the_POAManager ();
+
+ poa_manager->activate ();
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO "ComponentServer_Task::svc - "
+ "Creating server implementation object\n"));
+ CIAO::Deployment::CIAO_ComponentServer_i *ci_srv = 0;
+ ACE_NEW_NORETURN (ci_srv, CIAO_ComponentServer_i (this->uuid_, this->orb_.in (), root_poa.in ()));
+
+ if (ci_srv == 0)
+ {
+ CIAO_ERROR ((LM_CRITICAL, "ComponentServer_Task::run - "
+ "Out of memory error while allocating servant."));
+ throw Error ("Out of memory whilst allocating servant.");
+ }
+
+ PortableServer::ServantBase_var safe (ci_srv);
+
+ ComponentServer_var cs (ci_srv->_this ());
+
+ if (this->output_file_ != ACE_TEXT(""))
+ {
+ CORBA::String_var ior = this->orb_->object_to_string (cs.in ());
+ write_IOR (this->output_file_.c_str (), ior.in ());
+ }
+
+
+ if (this->callback_ior_str_ != ACE_TEXT(""))
+ {
+ CIAO_DEBUG ((LM_TRACE, CLINFO " resolving callback IOR\n"));
+ CORBA::Object_ptr obj = this->orb_->string_to_object (this->callback_ior_str_.c_str ());
+ ServerActivator_var sa (ServerActivator::_narrow (obj));
+
+ if (CORBA::is_nil (sa.in ()))
+ {
+ CIAO_DEBUG ((LM_ERROR, CLINFO "ComponentServer_Task::svc - "
+ "Failed to narrow callback IOR\n"));
+ throw Error ("Failed to narrow callback IOR");
+ }
+
+ Components::ConfigValues_var config;
+ {
+ Components::ConfigValues *cf = 0;
+ ACE_NEW_NORETURN (cf, Components::ConfigValues (0));
+
+ if (cf == 0)
+ {
+ CIAO_ERROR ((LM_CRITICAL, "ComponentServer_Task::run - "
+ "Out of memory error while allocating config values."));
+ }
+ else
+ {
+ config = cf;
+ }
+ }
+
+ // Make callback.
+ CIAO_DEBUG ((LM_TRACE, CLINFO "ComponentServer_Task::svc - "
+ "Making callback on my ServerActivator\n"));
+
+ try
+ {
+ // Callback to NodeApplication to get configuration
+ sa->component_server_callback (cs.in (),
+ this->uuid_.c_str (),
+ config.out ());
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO "ComponentServer_Task::svc - "
+ "Configuration received\n"));
+ // @@WO: Probably need to do something with these config values.
+
+ ci_srv->init (sa.in (), config._retn ());
+
+ CIAO_DEBUG ((LM_NOTICE, CLINFO "ComponentServer_Task::svc - "
+ "Configuration complete for component server %C\n",
+ this->uuid_.c_str ()));
+
+ sa->configuration_complete (this->uuid_.c_str ());
+ }
+ catch (const CORBA::BAD_PARAM &)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "ComponentServer_Task::svc - "
+ "The Callback IOR provided pointed to the wrong ServerActivator\n"));
+ throw Error ("Bad callback IOR");
+ }
+ catch (...)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "ComponentServer_Task::svc - "
+ "Caught exception while calling back\n"));
+ throw Error ("Caught exception while calling back");
+ }
+
+ }
+ else
+ {
+ CIAO_DEBUG ((LM_TRACE, CLINFO "ComponentServer_Task::svc - "
+ "Initializing ComponentServer without ServantActivator callback\n"));
+ ci_srv->init (0, 0);
+ }
+
+ this->orb_->run ();
+ CIAO_DEBUG ((LM_TRACE, CLINFO "ComponentServer_Task::svc - "
+ "ORB Event loop completed.\n"));
+
+ root_poa->destroy (1, 1);
+
+ this->orb_->destroy ();
+
+ return 0;
+ }
+
+ void
+ ComponentServer_Task::run (void)
+ {
+ CIAO_TRACE ("ComponentServer_Task::run");
+
+ CIAO_DEBUG ((LM_DEBUG, CLINFO "ComponentServer_Task::run - Starting ORB\n"));
+ this->svc ();
+ CIAO_DEBUG ((LM_INFO, CLINFO "ComponentServer_Task::run - ORB has shutdown, terminating ComponentServer\n"));
+ }
+
+ void
+ ComponentServer_Task::parse_args (int argc, ACE_TCHAR **argv)
+ {
+ CIAO_TRACE ("ComponentServer_Task::parse_args");
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO "ComponentServer_Task::parse_args - parsing arguments...\n"));
+
+ ACE_Get_Opt opts (argc, argv, ACE_TEXT("hu:c:"), 1, 0,
+ ACE_Get_Opt::RETURN_IN_ORDER);
+ opts.long_option (ACE_TEXT("uuid"), 'u', ACE_Get_Opt::ARG_REQUIRED);
+ opts.long_option (ACE_TEXT("callback-ior"), 'c', ACE_Get_Opt::ARG_REQUIRED);
+ opts.long_option (ACE_TEXT("help"), 'h');
+ opts.long_option (ACE_TEXT("log-level"),'l', ACE_Get_Opt::ARG_REQUIRED);
+ opts.long_option (ACE_TEXT("trace"),'t', ACE_Get_Opt::NO_ARG);
+ opts.long_option (ACE_TEXT("output-ior"),'o', ACE_Get_Opt::ARG_REQUIRED);
+
+ //int j;
+ int c;
+ ACE_CString s;
+
+ while ((c = opts ()) != -1)
+ {
+ CIAO_DEBUG ((LM_TRACE, CLINFO "ComponentServer_Task::parse_args - "
+ "Found option: \"%s\" with argument \"%s\"\n",
+ opts.last_option (), opts.opt_arg ()));
+
+ switch (c)
+ {
+ case 'u':
+ CIAO_DEBUG ((LM_DEBUG, CLINFO "ComponentServer_Task::parse_args - "
+ "uuid is %s\n",
+ opts.opt_arg ()));
+ this->uuid_ = ACE_TEXT_ALWAYS_CHAR (opts.opt_arg ());
+ break;
+
+ case 'c':
+ CIAO_DEBUG ((LM_DEBUG, CLINFO "ComponentServer_Task::parse_args - "
+ "callback ior is %s\n",
+ opts.opt_arg ()));
+ this->callback_ior_str_ = opts.opt_arg ();
+ break;
+
+ case 'l':
+ {
+ continue; // no-op, already taken care of
+ }
+
+ case 't':
+ continue; // already taken care of
+
+ case 'o':
+ CIAO_DEBUG ((LM_DEBUG, CLINFO "ComponentServer_Task::parse_args - "
+ "IOR Output file: %s\n",
+ opts.opt_arg ()));
+ this->output_file_ = opts.opt_arg ();
+ break;
+
+ case 'h':
+ this->usage ();
+ throw Error ("Command line help requested, bailing out....");
+
+ default:
+ CIAO_ERROR ((LM_ERROR, CLINFO " Unknown option: %s\n",
+ opts.last_option ()));
+ this->usage ();
+ ACE_CString err ("Unknown option ");
+ err += ACE_TEXT_ALWAYS_CHAR (opts.last_option ());
+ throw Error (err);
+ }
+ }
+
+ // check required options.
+ if (this->uuid_ == "")
+ throw Error ("Option required: -u|--uuid");
+ if (this->callback_ior_str_ == ACE_TEXT(""))
+ CIAO_ERROR ((LM_WARNING, CLINFO
+ "ComponentServer_Task::parse_args - Starting ComponentServer without a callback IOR\n"));
+ }
+
+ void
+ ComponentServer_Task::usage (void)
+ {
+ CIAO_TRACE ("ComponentServer_Task::usage");
+ // Shouldn't be subject to CIAO's logging policy
+ ACE_ERROR ((LM_EMERGENCY, "Usage: CIAO_ComponentServer <options>\n"
+ "Options:\n"
+ "\t-h|--help\t\t\t\tShow help\n"
+ "\t-l|--log-level <level>\t\t\tSets log level (default 5). 1 - most detailed.\n"
+ "\t-u|--uuid <uuid> \t\t\tSets UUID of spawned component server (required)\n"
+ "\t-c|--callback-ior <string ior>\t\tSets callback url for the spawning ServerActivator.\n"
+ "\t-o|--output-ior <filename>\t\tOutputs the IOR of the component server object to file\n"
+ ));
+
+ }
+
+ void
+ ComponentServer_Task::configure_logging_backend (void)
+ {
+ Logger_Service
+ *clf = ACE_Dynamic_Service<Logger_Service>::instance ("CIAO_Logger_Backend_Factory");
+ if (clf)
+ {
+ CIAO_DEBUG ((LM_TRACE, CLINFO "ComponentServer_Task::configure_logging_backend - "
+ "Replacing logger backend\n"));
+ ACE_Log_Msg_Backend * backend = clf->get_logger_backend(this->orb_);
+ backend->open(0);
+ ACE_Log_Msg::msg_backend (backend);
+ ACE_Log_Msg * ace = ACE_Log_Msg::instance();
+ ace->clr_flags(ace->flags());
+ ace->set_flags(ACE_Log_Msg::CUSTOM);
+ }
+ }
+ }
+}
+
+
diff --git a/modules/CIAO/ciao/ComponentServer/CIAO_ComponentServer.h b/modules/CIAO/ciao/ComponentServer/CIAO_ComponentServer.h
new file mode 100644
index 00000000000..8e05789d0e6
--- /dev/null
+++ b/modules/CIAO/ciao/ComponentServer/CIAO_ComponentServer.h
@@ -0,0 +1,60 @@
+// $Id$
+/**
+ * @file CIAO_ComponentServer.h
+ * @author William R. Otte
+ *
+ * Defines interface for the bootstrap element of the CIAO Component
+ * Server.
+ */
+
+#ifndef CIAO_COMPONENTSERVER_H_
+#define CIAO_COMPONENTSERVER_H_
+
+#include "ace/String_Base.h"
+#include "ace/Task.h"
+#include "tao/ORB.h"
+#include "ciao/Logger/Logger_Service.h"
+
+namespace CIAO
+{
+ namespace Deployment
+ {
+ class ComponentServer_Task : ACE_Task_Base
+ {
+ public:
+ ComponentServer_Task (int argc, ACE_TCHAR **argv);
+
+ int svc (void);
+
+ struct Error
+ {
+ Error (const ACE_CString &err) : err_(err) {}
+
+ ACE_CString err_;
+ };
+
+ void run (void);
+
+ private:
+ void parse_args (int argc, ACE_TCHAR **argv);
+
+ void get_log_level (int argc, ACE_TCHAR **argv);
+
+ void set_log_level (void);
+
+ void configure_logging_backend (void);
+
+ void usage (void);
+
+ CORBA::ORB_var orb_;
+
+ auto_ptr<CIAO::Logger_Service> logger_;
+
+ ACE_CString uuid_;
+ ACE_TString callback_ior_str_;
+ ACE_TString output_file_;
+ };
+ }
+}
+
+#endif
diff --git a/modules/CIAO/ciao/ComponentServer/CIAO_ComponentServer.idl b/modules/CIAO/ciao/ComponentServer/CIAO_ComponentServer.idl
new file mode 100644
index 00000000000..14290ae6683
--- /dev/null
+++ b/modules/CIAO/ciao/ComponentServer/CIAO_ComponentServer.idl
@@ -0,0 +1,66 @@
+/**
+ * @file CIAO_ComponentServer.idl
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * $Id$
+ * A couple CIAO-specific extensions to the component server
+ * interfaces.
+ */
+
+#ifndef CIAO_COMPONENTSERVER_IDL_
+#define CIAO_COMPONENTSERVER_IDL_
+
+#include <ccm/CCM_Object.idl>
+#include <ccm/ComponentServer/CCM_ComponentServer.idl>
+
+module CIAO
+{
+ module Deployment
+ {
+ interface ComponentServer : ::Components::Deployment::ComponentServer
+ {
+ oneway void shutdown ();
+ };
+
+ exception InvalidComponent
+ {
+ };
+
+ /**
+ * @interface CIAO_Container
+ * @brief CIAO specific extensions to the component server interface.
+ */
+ interface Container : Components::Deployment::Container
+ {
+ /// Instruct the container to install a component without
+ /// an explicit home.
+ ::Components::CCMObject install_component (in ::Components::Deployment::UUID id,
+ in string entrypt,
+ in ::Components::ConfigValues config)
+ raises (::Components::Deployment::UnknownImplId,
+ ::Components::Deployment::ImplEntryPointNotFound,
+ ::Components::Deployment::InstallationFailure,
+ ::Components::Deployment::InvalidConfiguration);
+
+ /// Activate component with specified ID, if no ID provided,
+ /// activates all components.
+ void activate_component (in ::Components::CCMObject comp)
+ raises (InvalidComponent);
+
+ /// Passivate component with specified ID, if no ID provided,
+ /// passivates all components.
+ void passivate_component (in ::Components::CCMObject comp)
+ raises (InvalidComponent);
+
+ /// Instruct the container to remove a component installed
+ /// without an explicit home. If the component was installed
+ /// with an explicit home, this operation will fail.
+ void remove_component (in ::Components::CCMObject cref)
+ raises (::Components::RemoveFailure);
+
+ /// Returns a sequence of all homeless components.
+ ::Components::CCMObjectSeq get_components ();
+ };
+ };
+};
+
+#endif /* CIAO_COMPONENTSERVER_IDL_ */
diff --git a/modules/CIAO/ciao/ComponentServer/CIAO_ComponentServer.mpc b/modules/CIAO/ciao/ComponentServer/CIAO_ComponentServer.mpc
new file mode 100644
index 00000000000..89627e2e94e
--- /dev/null
+++ b/modules/CIAO/ciao/ComponentServer/CIAO_ComponentServer.mpc
@@ -0,0 +1,99 @@
+// $Id$
+
+project(CIAO_ComponentServer_IDL) : ciaoidldefaults, anytypecode {
+ idlflags += -Wb,stub_export_macro=CIAO_COMPONENTSERVER_STUB_Export \
+ -Wb,stub_export_include=CIAO_ComponentServer_stub_export.h \
+ -Wb,skel_export_macro=CIAO_COMPONENTSERVER_SVNT_Export \
+ -Wb,skel_export_include=CIAO_ComponentServer_svnt_export.h \
+ -Gxhst -Gxhsk
+
+ custom_only=1
+
+ IDL_Files {
+ CIAO_ComponentServer.idl
+ }
+}
+
+project(CIAO_CS_Client_IDL) : ciaoidldefaults, anytypecode {
+ idlflags += -Wb,stub_export_macro=CIAO_COMPONENTSERVER_STUB_Export \
+ -Wb,stub_export_include=CIAO_ComponentServer_stub_export.h \
+ -Wb,skel_export_macro=CIAO_CS_CLIENT_SVNT_Export \
+ -Wb,skel_export_include=CIAO_CS_Client_svnt_export.h
+
+ custom_only=1
+
+ IDL_Files {
+ CIAO_Properties.idl
+ idlflags += -SS -Sci -Gxhsk
+ }
+ IDL_Files {
+ CIAO_CS_Client.idl
+ }
+}
+
+project(CIAO_ComponentServer_stub) : ccm_componentserver_stub, ciaolib_with_idl, ciao_output, \
+ messaging, anytypecode, ciao_lib {
+ after += CIAO_ComponentServer_IDL CIAO_CS_Client_IDL
+ dynamicflags = CIAO_COMPONENTSERVER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+ Source_Files {
+ CIAO_ComponentServerC.cpp
+ CIAO_CS_ClientC.cpp
+ CIAO_PropertiesC.cpp
+ }
+ Header_Files {
+ CIAO_ComponentServer_stub_export.h
+ }
+}
+
+project(CIAO_CS_Client_svnt) : ccm_svnt, ccm_componentserver_svnt, ciao_componentserver_stub, portableserver, \
+ ciao_client, ciao_lib, threads, avoids_ace_for_tao {
+ dynamicflags = CIAO_CS_CLIENT_SVNT_BUILD_DLL
+ after += CIAO_CS_Client_IDL
+ IDL_Files {
+ }
+ Source_Files {
+ CIAO_ServerActivator_Impl.cpp
+ CIAO_ComponentInstallation_Impl.cpp
+ CIAO_CS_ClientS.cpp
+ }
+ Header_Files {
+ CIAO_ServerActivator_Impl.h
+ CIAO_ComponentInstallation_Impl.h
+ CIAO_CS_ClientS.h
+ CIAO_CS_Client_svnt_export.h
+ }
+}
+
+project(CIAO_ComponentServer_svnt) : ccm_componentserver_svnt, ciao_componentserver_stub, portableserver, \
+ ciao_session_container, naming, ciao_server, ciao_lib {
+
+ dynamicflags = CIAO_COMPONENTSERVER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+ Source_Files {
+ CIAO_ComponentServer_Impl.cpp
+ CIAO_ComponentServerS.cpp
+ CIAO_Container_Impl.cpp
+ }
+ Header_Files {
+ CIAO_ComponentServer_svnt_export.h
+ }
+}
+
+project(CIAO_ComponentServer_exe) : ccm_componentserver_svnt, portableserver, ciao_componentserver_svnt, \
+ messaging, anytypecode, ciao_server, ciaoexe, ciao_session_container,\
+ ciao_logger {
+ exename = ciao_componentserver
+ macros += CIAO_BUILD_COMPONENTSERVER_EXE
+ Source_Files {
+ CIAO_ComponentServer.cpp
+ }
+ Inline_Files {
+ }
+ IDL_Files {
+ }
+}
diff --git a/modules/CIAO/ciao/ComponentServer/CIAO_ComponentServer_Impl.cpp b/modules/CIAO/ciao/ComponentServer/CIAO_ComponentServer_Impl.cpp
new file mode 100644
index 00000000000..c0da9280dcf
--- /dev/null
+++ b/modules/CIAO/ciao/ComponentServer/CIAO_ComponentServer_Impl.cpp
@@ -0,0 +1,262 @@
+// $Id$
+#include "CIAO_ComponentServer_Impl.h"
+
+#include "ciao/Logger/Log_Macros.h"
+
+#include "CIAO_CS_ClientC.h"
+#include "CIAO_Container_Impl.h"
+#include "CIAO_PropertiesC.h"
+
+namespace CIAO
+{
+ namespace Deployment
+ {
+ CIAO_ComponentServer_i::CIAO_ComponentServer_i (const ACE_CString &uuid,
+ CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa)
+ : uuid_ (uuid),
+ orb_ (CORBA::ORB::_duplicate (orb)),
+ poa_ (PortableServer::POA::_duplicate (poa)),
+ containers_ ()
+ {
+ CIAO_TRACE("CIAO_ComponentServer_i::CIAO_ComponentServer_i");
+ }
+
+ // Destructor
+ CIAO_ComponentServer_i::~CIAO_ComponentServer_i (void)
+ {
+ CIAO_TRACE("CIAO_ComponentServer_i::~CIAO_ComponentServer_i");
+ }
+
+ void
+ CIAO_ComponentServer_i::shutdown (void)
+ {
+ CIAO_TRACE("CIAO_ComponentServer_i::shutdown");
+
+ CIAO_DEBUG ((LM_DEBUG, CLINFO "CIAO_ComponentServer_i::shutdown - ORB shutdown request received at %C.\n",
+ this->uuid_.c_str ()));
+
+ if (!this->containers_.is_empty ())
+ CIAO_ERROR ((LM_ERROR, CLINFO "CIAO_ComponentServer_i::shutdown - ComponentServer %C still containers!\n",
+ this->uuid_.c_str ()));
+
+ this->orb_->shutdown ();
+ }
+
+
+ ::Components::ConfigValues *
+ CIAO_ComponentServer_i::configuration (void)
+ {
+ CIAO_TRACE("CIAO_ComponentServer_i::configuration");
+ return this->config_values_.out ();
+ }
+
+
+ ::Components::Deployment::ServerActivator_ptr
+ CIAO_ComponentServer_i::get_server_activator (void)
+ {
+ CIAO_TRACE("CIAO_ComponentServer_i::get_server_activator");
+ return this->serv_act_.in ();
+ }
+
+ ::Components::Deployment::Container_ptr
+ CIAO_ComponentServer_i::create_container (const ::Components::ConfigValues & config)
+ {
+ CIAO_TRACE("CIAO_ComponentServer_i::create_container");
+
+ try
+ {
+ CIAO_DEBUG ((LM_INFO, CLINFO "CIAO_ComponentServer_i::create_container - Request received with %u config values\n",
+ config.length ()));
+
+ CORBA::PolicyList policies;
+ const char *name = 0;
+ CIAO_Container_i *cont = 0;
+ ACE_NEW_THROW_EX (cont,
+ CIAO_Container_i (config, 0, name, &policies, this->ci_.in (),
+ this->orb_.in (), this->poa_.in ()),
+ CORBA::NO_MEMORY ());
+
+ CIAO_DEBUG ((LM_DEBUG, CLINFO "CIAO_ComponentServer_i::create_container - "
+ "Container servant successfully allocated.\n"));
+
+ PortableServer::ServantBase_var safe_config = cont;
+ CIAO::Deployment::Container_var cont_var = cont->_this ();
+
+ this->containers_.insert (CIAO::Deployment::Container::_duplicate(cont_var.in ()));
+
+ CIAO_DEBUG ((LM_INFO, CLINFO "CIAO_ComponentServer_i::create_container - Container successfully activated and stored,"
+ "now manage %u containers\n",
+ this->containers_.size ()));
+
+ return cont_var._retn ();
+ }
+ catch (const CORBA::NO_MEMORY &)
+ {
+ CIAO_ERROR ((LM_CRITICAL, CLINFO "CIAO_ComponentServer_Impl: Out of memory exception whilst creating container.\n"));
+ throw;
+ }
+ catch (...)
+ {
+ CIAO_ERROR ((LM_ERROR, "CIAO_ComponentServer_Impl: Caught unknown exception\n"));
+ }
+
+ throw Components::CreateFailure ();
+ }
+
+
+
+ void
+ CIAO_ComponentServer_i::remove_container (::Components::Deployment::Container_ptr cref)
+ {
+ CIAO_TRACE("CIAO_ComponentServer_i::remove_container");
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO "CIAO_ComponentServer_i::remove_container - remove request received.\n"));
+
+ if (CORBA::is_nil (cref))
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "CIAO_ComponentServer_i::remove_container - "
+ "Error: Received nil container reference\n"));
+ throw Components::RemoveFailure ();
+ }
+
+ if (this->containers_.is_empty ())
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "CIAO_ComponentServer_i::remove_container - "
+ "Error: I don't manage any containers!\n"));
+ throw Components::RemoveFailure ();
+ }
+
+ try
+ {
+ CONTAINERS::ITERATOR i (this->containers_.begin ());
+
+ // @@ TODO: artifact from when this was a sequence, should probably use .find,
+ // which will work properly with the new parameterized set class.
+ for (CONTAINERS::iterator i = this->containers_.begin ();
+ i.done () != 1; i.advance ())
+ {
+ if (CORBA::is_nil (*i))
+ {
+ ACE_ERROR ((LM_WARNING, CLINFO
+ "CIAO_ComponentServer_i::remove_container - "
+ "Managed container reference is nil, skipping.\n"));
+ continue;
+ }
+
+ if ((*i)->_is_equivalent (cref))
+ {
+ CIAO_DEBUG ((LM_TRACE, CLINFO "CIAO_ComponentServer_i::remove_container - Found container, invoking remove....\n"));
+ cref->remove ();
+ if (this->containers_.remove (*i) != 0)
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "CIAO_ComponentServer_i::remove_container - Unable to remove "
+ "container reference from internal structure....\n"));
+ CIAO_DEBUG ((LM_TRACE, CLINFO "CIAO_ComponentServer_i::remove_container - Remove completed, destroying object, "
+ "now manage %u containers\n", this->containers_.size ()));
+ return;
+ }
+ }
+ }
+ catch (const CORBA::Exception &ex)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "CIAO_ComponentServer_i::remove_container - "
+ "Caught CORBA exception whilst removing container: %C\n",
+ ex._info ().c_str ()));
+ }
+ catch (...)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "CIAO_ComponentServer_i::remove_container - Error: Unknown exception caught while removing a container.\n"));
+ }
+ throw Components::RemoveFailure ();
+ }
+
+
+ ::Components::Deployment::Containers *
+ CIAO_ComponentServer_i::get_containers (void)
+ {
+ CIAO_TRACE("CIAO_ComponentServer_i::get_containers");
+
+ ::Components::Deployment::Containers *tmp = 0;
+ ACE_NEW_THROW_EX (tmp,
+ ::Components::Deployment::Containers (this->containers_.size ()),
+ CORBA::NO_MEMORY ());
+
+ ::Components::Deployment::Containers_var retval (tmp);
+ CORBA::ULong pos (0);
+ retval->length (this->containers_.size ());
+
+ for (CONTAINERS::iterator i = this->containers_.begin ();
+ i.done () != 1; i.advance ())
+ {
+ retval[pos++] = ::CIAO::Deployment::Container::_duplicate (*i);
+ }
+
+ return retval._retn ();
+ }
+
+
+ void
+ CIAO_ComponentServer_i::remove (void)
+ {
+ CIAO_TRACE("CIAO_ComponentServer_i::remove");
+
+ bool successful = true;
+
+ for (CONTAINERS::iterator i = this->containers_.begin ();
+ i.done () != 1; i.advance ())
+ {
+ try
+ {
+ (*i)->remove ();
+ }
+ catch (const CORBA::Exception &ex)
+ {
+ successful = false;
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "CIAO_ComponentServer_i::remove - "
+ "Intercepted CORBA exception while trying to remove a container:%C\n",
+ ex._info ().c_str ()));
+ }
+ catch (...)
+ {
+ successful = false;
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "CIAO_ComponentServer_i::remove - "
+ "Intercepted exception while trying to remove a container\n"));
+ }
+ }
+
+ this->containers_.reset ();
+
+ if (!successful)
+ throw ::Components::RemoveFailure ();
+ }
+
+ void
+ CIAO_ComponentServer_i::init (::Components::Deployment::ServerActivator_ptr sa,
+ Components::ConfigValues *cvs)
+ {
+ if (!CORBA::is_nil (sa))
+ this->serv_act_ = ::Components::Deployment::ServerActivator::_duplicate(sa);
+
+ if (cvs != 0)
+ {
+ this->config_values_ = cvs;
+
+ for (CORBA::ULong i = 0; i < this->config_values_->length (); ++i)
+ {
+ if (ACE_OS::strcmp (CIAO::Deployment::COMPONENTINSTALLATION_REF,
+ this->config_values_[i]->name ()) == 0)
+ {
+ CIAO::Deployment::ComponentInstallation_ptr tmp;
+ this->config_values_[i]->value () >>= tmp;
+ this->ci_ = CIAO::Deployment::ComponentInstallation::_duplicate (tmp);
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/modules/CIAO/ciao/ComponentServer/CIAO_ComponentServer_Impl.h b/modules/CIAO/ciao/ComponentServer/CIAO_ComponentServer_Impl.h
new file mode 100644
index 00000000000..7d3753bd6ca
--- /dev/null
+++ b/modules/CIAO/ciao/ComponentServer/CIAO_ComponentServer_Impl.h
@@ -0,0 +1,82 @@
+// $Id$
+/**
+ * @file CIAO_ComponentServer_Impl.h
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ */
+
+#ifndef CIAO_COMPONENTSERVER_IMPL_H_
+#define CIAO_COMPONENTSERVER_IMPL_H_
+
+#include "ciao/ComponentServer/CIAO_ComponentServerS.h"
+#include "ciao/ComponentServer/CIAO_CS_ClientC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/String_Base.h"
+#include "ace/Unbounded_Set_Ex.h"
+
+namespace CIAO
+{
+ namespace Deployment
+ {
+ class CIAO_COMPONENTSERVER_SVNT_Export CIAO_ComponentServer_i
+ : public virtual POA_CIAO::Deployment::ComponentServer
+ {
+ public:
+ // Constructor
+ CIAO_ComponentServer_i (const ACE_CString &uuid, CORBA::ORB_ptr orb, PortableServer::POA_ptr poa);
+
+ // Destructor
+ virtual ~CIAO_ComponentServer_i (void);
+
+ virtual void shutdown (void);
+
+ virtual ::Components::ConfigValues * configuration (void);
+
+ virtual
+ ::Components::Deployment::ServerActivator_ptr get_server_activator (void);
+
+ virtual
+ ::Components::Deployment::Container_ptr create_container (const ::Components::ConfigValues & config);
+
+ virtual
+ void remove_container (::Components::Deployment::Container_ptr cref);
+
+ virtual
+ ::Components::Deployment::Containers * get_containers (void);
+
+ virtual
+ void remove (void);
+
+ void init (::Components::Deployment::ServerActivator_ptr sa,
+ Components::ConfigValues *cvs);
+
+ private:
+ ACE_CString uuid_;
+ CORBA::ORB_var orb_;
+ PortableServer::POA_var poa_;
+ ::Components::Deployment::ServerActivator_var serv_act_;
+ Components::ConfigValues_var config_values_;
+
+ template<typename T>
+ struct _is_equivalent
+ {
+ bool operator() (const T &a, const T &b) const
+ {
+ return a->_is_equivalent (const_cast <T&> (b));
+ }
+ };
+
+ typedef ACE_Unbounded_Set_Ex <Container_var,
+ _is_equivalent<Container_var> > CONTAINERS;
+
+ CONTAINERS containers_;
+
+ CIAO::Deployment::ComponentInstallation_var ci_;
+ };
+ }
+}
+
+#endif
diff --git a/modules/CIAO/ciao/ComponentServer/CIAO_Container_Impl.cpp b/modules/CIAO/ciao/ComponentServer/CIAO_Container_Impl.cpp
new file mode 100644
index 00000000000..a119c3ebd9b
--- /dev/null
+++ b/modules/CIAO/ciao/ComponentServer/CIAO_Container_Impl.cpp
@@ -0,0 +1,476 @@
+// $Id$
+#include "CIAO_Container_Impl.h"
+
+#include "ace/Log_Msg.h"
+#include "ccm/CCM_HomeC.h"
+#include "ciao/Server_init.h"
+#include "ciao/Client_init.h"
+#include "CIAO_PropertiesC.h"
+#include "CIAO_CS_ClientC.h"
+#include "ciao/Logger/Log_Macros.h"
+
+namespace CIAO
+{
+ namespace Deployment
+ {
+ // Constructor
+ CIAO_Container_i::CIAO_Container_i (const Components::ConfigValues &config,
+ const Static_Config_EntryPoints_Maps *static_entrypts,
+ const char *name,
+ const CORBA::PolicyList *policies,
+ CIAO::Deployment::ComponentInstallation_ptr ci,
+ CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa)
+ : orb_ (CORBA::ORB::_duplicate (orb)),
+ poa_ (PortableServer::POA::_duplicate (poa)),
+ config_ (config.length ()),
+ static_entrypts_maps_ (static_entrypts),
+ ci_ (CIAO::Deployment::ComponentInstallation::_duplicate (ci))
+ {
+ CIAO_TRACE("CIAO_Container_i::CIAO_Container_i");
+
+ for (CORBA::ULong i = 0; i < config.length (); ++i)
+ {
+ this->config_[i] = config[i];
+ }
+
+ try
+ {
+ if (this->static_entrypts_maps_ == 0)
+ {
+ CIAO_DEBUG((LM_DEBUG, CLINFO "CIAO_Container_i: creating Session container with dynamic linkage\n"));
+ this->container_ = new CIAO::Session_Container (this->orb_.in (), this, false,
+ 0, name, policies);
+ }
+ else
+ {
+ CIAO_DEBUG((LM_DEBUG, CLINFO "CIAO_Container_i: creating Session container with static linkage\n"));
+ this->container_ = new CIAO::Session_Container (this->orb_.in (), this, true,
+ this->static_entrypts_maps_,
+ name, policies);
+ }
+ }
+ catch (...)
+ {
+ CIAO_ERROR((LM_ERROR, CLINFO "CIAO_Container_i::CIAO_Container_i - "
+ "Caught exception while allocating container implementation\n"));
+ throw;
+ }
+ }
+
+
+ // Destructor
+ CIAO_Container_i::~CIAO_Container_i (void)
+ {
+ CIAO_TRACE("CIAO_Container_i::~CIAO_Container_i");
+ }
+
+ ::Components::CCMObject_ptr
+ CIAO_Container_i::install_component (const char * id,
+ const char * entrypt,
+ const ::Components::ConfigValues & config)
+ {
+ CIAO_TRACE("CIAO_Container_i::install_component");
+
+ if (!id)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "CIAO_Container_i::install_component - "
+ "No home ID provided\n"));
+ throw ::Components::Deployment::InvalidConfiguration ();
+ }
+
+ Components::CCMObject_var comp;
+
+ if (this->component_map_.find (id, comp) == 0)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "CIAO_Container_i::install_component - "
+ "Component with id %C already installed, aborting\n",
+ id));
+ throw Components::CreateFailure ();
+ }
+
+ if (!entrypt)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "CIAO_Container_i::install_component - "
+ "No executor entrypoint found.\n"));
+ throw ::Components::Deployment::InvalidConfiguration ();
+ }
+
+ CIAO_DEBUG ((LM_INFO, CLINFO "CIAO_Container_i::install_component - "
+ "Attempting to install home with id [%C]\n",
+ id));
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "CIAO_Container_i::install_component - "
+ "Extracting ConfigValues from sequence of length [%u]\n",
+ config.length ()));
+
+ CIAO::Utility::CONFIGVALUE_MAP cm;
+ CIAO::Utility::build_config_values_map (cm, config);
+ CORBA::Any val;
+
+ const char *tmp = 0;
+ CORBA::String_var exec_art, svnt_art, svnt_entry;
+
+ if (cm.find (SVNT_ENTRYPT, val) == 0)
+ {
+ val >>= tmp;
+ svnt_entry = tmp;
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "CIAO_Container_i::install_component - "
+ "Found Servant entrypoint %C\n", svnt_entry.in ()));
+ }
+ else
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "CIAO_Container_i::install_component - "
+ "Error: No Servant entrypoint provided, aborting installation\n"));
+ throw Components::InvalidConfiguration ();
+ }
+
+ if (cm.find (SVNT_ARTIFACT, val) == 0)
+ {
+ val >>= tmp;
+ svnt_art = this->ci_->get_implementation (tmp);
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "CIAO_Container_i::install_component - "
+ "Found Servant artifact %C\n", svnt_art.in ()));
+ }
+ else
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "CIAO_Container_i::install_component - "
+ "Error: No Servant artifact provided, aborting installation\n"));
+ throw Components::InvalidConfiguration ();
+ }
+
+
+ if (cm.find (EXEC_ARTIFACT, val) == 0)
+ {
+ val >>= tmp;
+ exec_art = this->ci_->get_implementation (tmp);
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "CIAO_Container_i::install_component - "
+ "Found executor artifact: %C\n", exec_art.in ()));
+ }
+ else
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "CIAO_Container_i::install_component - "
+ "Error: No Executor artifact provided, aborting installation\n"));
+ }
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "CIAO_Container_i::install_component - "
+ "Extraction resulted in map of [%u] values\n", cm.current_size ()));
+
+ comp = this->container_->install_component (exec_art,
+ entrypt,
+ svnt_art,
+ svnt_entry,
+ id);
+
+ if (this->component_map_.bind (id,
+ Components::CCMObject::_duplicate (comp.in ())) == -1)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "CIAO_Container_i::install_component - "
+ "Unable to bind componnet into component map\n"));
+ }
+
+ return comp._retn ();
+ }
+
+ void
+ CIAO_Container_i::remove_component (::Components::CCMObject_ptr cref)
+ {
+ CIAO_TRACE("CIAO_Container_i::remove_component");
+
+ Component_Iterator i = this->component_map_.begin ();
+ while (!i.done ())
+ {
+ if (i->item ()->_is_equivalent (cref))
+ {
+ CIAO_DEBUG ((LM_TRACE, CLINFO "CIAO_Container_i::remove_component - "
+ "Successfully found matching component\n"));
+ break;
+ }
+ i.advance ();
+ }
+
+ if (i.done ())
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "CIAO_Container_i::remove_component - "
+ "Unable to find matching component managed by this container, throwing RemoveFailure\n"));
+ throw Components::RemoveFailure ();
+ }
+
+ if (!CORBA::is_nil (this->container_.in ()))
+ {
+ CIAO_DEBUG ((LM_TRACE, CLINFO "CIAO_Container_i::remove_component - "
+ "Invoking remove on the container impl for component %C.\n",
+ i->key ().c_str ()));
+ this->container_->uninstall_component (cref);
+ CIAO_DEBUG ((LM_INFO, CLINFO "CIAO_Container_i::remove_component - "
+ "Successfully removed component %C\n",
+ i->key ().c_str ()));
+ }
+
+ if (this->component_map_.unbind (i->key ()) != 0)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "CIAO_Container_i::remove_component - "
+ "Unable to unbind removed component with id %C from component map\n",
+ i->key ().c_str ()));
+ }
+ }
+
+ ::Components::CCMObjectSeq *
+ CIAO_Container_i::get_components (void)
+ {
+ CIAO_TRACE("CIAO_Container_i::get_components");
+ throw CORBA::NO_IMPLEMENT ();
+ return 0;
+ }
+
+ ::Components::ConfigValues *
+ CIAO_Container_i::configuration (void)
+ {
+ CIAO_TRACE("CIAO_Container_i::configuration");
+ throw CORBA::NO_IMPLEMENT ();
+ return 0;
+ }
+
+ ::Components::Deployment::ComponentServer_ptr
+ CIAO_Container_i::get_component_server (void)
+ {
+ CIAO_TRACE("CIAO_Container_i::get_component_server");
+ throw CORBA::NO_IMPLEMENT ();
+ return 0;
+ }
+
+ ::Components::CCMHome_ptr
+ CIAO_Container_i::install_home (const char * id,
+ const char * entrypt,
+ const ::Components::ConfigValues & config)
+ {
+ CIAO_TRACE("CIAO_Container_i::install_home");
+
+ if (!id)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "CIAO_Container_i::install_home - "
+ "No home ID provided\n"));
+ throw ::Components::Deployment::InvalidConfiguration ();
+ }
+
+ Components::CCMHome_var home;
+
+ if (this->home_map_.find (id, home) == 0)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "CIAO_Container_i::install_home - "
+ "Home with id %C already installed, aborting\n",
+ id));
+ throw Components::CreateFailure ();
+ }
+
+ if (!entrypt)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "CIAO_Container_i::install_home - "
+ "No executor entrypoint found.\n"));
+ throw ::Components::Deployment::InvalidConfiguration ();
+ }
+
+ CIAO_DEBUG ((LM_INFO, CLINFO "CIAO_Container_i::install_home - "
+ "Attempting to install home with id [%C]\n", id));
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "CIAO_Container_i::install_home - "
+ "Extracting ConfigValues from sequence of length [%u]\n",
+ config.length ()));
+
+ CIAO::Utility::CONFIGVALUE_MAP cm;
+ CIAO::Utility::build_config_values_map (cm, config);
+ CORBA::Any val;
+
+ const char *tmp = 0;
+ CORBA::String_var exec_art, svnt_art, svnt_entry;
+ if (cm.find (SVNT_ENTRYPT, val) == 0)
+ {
+ val >>= tmp;
+ svnt_entry = tmp;
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "CIAO_Container_i::install_home - "
+ "Found Servant entrypoint %C\n", svnt_entry.in ()));
+ }
+ else
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "CIAO_Container_i::install_home - "
+ "Error: No Servant entrypoint provided, aborting installation\n"));
+ throw Components::InvalidConfiguration ();
+ }
+
+ if (cm.find (SVNT_ARTIFACT, val) == 0)
+ {
+ val >>= tmp;
+ svnt_art = this->ci_->get_implementation (tmp);
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "CIAO_Container_i::install_home - "
+ "Found Servant artifact %C\n", svnt_art.in ()));
+ }
+ else
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "CIAO_Container_i::install_home - "
+ "Error: No Servant artifact provided, aborting installation\n"));
+ throw Components::InvalidConfiguration ();
+ }
+
+
+ if (cm.find (EXEC_ARTIFACT, val) == 0)
+ {
+ val >>= tmp;
+ exec_art = this->ci_->get_implementation (tmp);
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "CIAO_Container_i::install_home - "
+ "Found executor artifact: %C\n", exec_art.in ()));
+ }
+ else
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "CIAO_Container_i::install_home - "
+ "Error: No Executor artifact provided, aborting installation\n"));
+ }
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "CIAO_Container_i::install_home - "
+ "Extraction resulted in map of [%u] values", cm.current_size ()));
+
+
+ // extract config values here...
+
+ //CIAO_DEBUG ((LM_DEBUG, CLINFO "CIAO_Container_i::install_home - ",
+ //"Executor entrypoint [%C], servant entrypoint [%C], servant library [%C]\n",
+ //entrypt, svnt_entrypt.in (), svnt_library.in ()));
+
+ home = this->container_->install_home (exec_art,
+ entrypt,
+ svnt_art,
+ svnt_entry,
+ id);
+
+ if (this->home_map_.bind (id,
+ Components::CCMHome::_duplicate (home.in ())) == -1)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "CIAO_Container_i::install_home - "
+ "Unable to bind home into home map\n"));
+ }
+
+ return home._retn ();
+ }
+
+ void
+ CIAO_Container_i::remove_home (::Components::CCMHome_ptr href)
+ {
+ CIAO_TRACE("CIAO_Container_i::remove_home");
+
+ Home_Iterator i = this->home_map_.begin ();
+ while (!i.done ())
+ {
+ if (i->item ()->_is_equivalent (href))
+ {
+ CIAO_DEBUG ((LM_TRACE, CLINFO "CIAO_Container_i::remove_home - "
+ "Successfully found matching home\n"));
+ break;
+ }
+ i.advance ();
+ }
+
+ if (i.done ())
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "CIAO_Container_i::remove_home - "
+ "Unable to find matching home managed by this container, throwing RemoveFailure\n"));
+ throw Components::RemoveFailure ();
+ }
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO "CIAO_Container_i::remove_home - "
+ "Invoking remove on the container impl for home %C.\n",
+ i->key ().c_str ()));
+ this->container_->uninstall_home (href);
+ CIAO_DEBUG ((LM_INFO, CLINFO "CIAO_Container_i::remove_home - "
+ "Successfully removed home %C\n",
+ i->key ().c_str ()));
+
+ if (this->home_map_.unbind (i->key ()) != 0)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "CIAO_Container_i::remove_home - "
+ "Unable to unbind removed home with id %C from home map\n",
+ i->key ().c_str ()));
+ }
+ }
+
+ ::Components::CCMHomes *
+ CIAO_Container_i::get_homes (void)
+ {
+ CIAO_TRACE("CIAO_Container_i::get_homes");
+
+ ::Components::CCMHomes *tmp_homes = 0;
+
+ ACE_NEW_THROW_EX (tmp_homes,
+ ::Components::CCMHomes (this->home_map_.current_size ()),
+ CORBA::NO_MEMORY ());
+
+ ::Components::CCMHomes_var retval (tmp_homes);
+ retval->length (this->home_map_.current_size ());
+ Home_Iterator i = this->home_map_.begin ();
+ CORBA::ULong pos = 0;
+ while (!i.done ())
+ {
+ retval[pos++] = ::Components::CCMHome::_duplicate (i->item ().in ());
+ i.advance ();
+ }
+
+ return retval._retn ();
+ }
+
+ void
+ CIAO_Container_i::remove (void)
+ {
+ CIAO_TRACE("CIAO_Container_i::remove");
+
+ if (this->home_map_.current_size () != 0 ||
+ this->component_map_.current_size () != 0)
+ {
+ CIAO_ERROR ((LM_WARNING, CLINFO "CIAO_Container_i::remove - "
+ "Attempting to remove container that still has %u homes and %u components installed\n",
+ this->home_map_.current_size (),
+ this->component_map_.current_size ()));
+ }
+ }
+
+ void
+ CIAO_Container_i::activate_component (::Components::CCMObject_ptr comp)
+ {
+ CIAO_TRACE ("CIAO_Container_i::activate_component");
+
+ this->container_->activate_component (comp);
+ }
+
+
+ void
+ CIAO_Container_i::passivate_component (::Components::CCMObject_ptr comp)
+ {
+ CIAO_TRACE ("CIAO_Container_i::passivate_component");
+
+ this->container_->passivate_component (comp);
+ }
+
+
+ PortableServer::POA_ptr
+ CIAO_Container_i::_default_POA (void)
+ {
+ CIAO_TRACE ("CIAO_Container_i::_default_POA");
+ return PortableServer::POA::_duplicate (this->poa_.in ());
+ }
+ }
+}
diff --git a/modules/CIAO/ciao/ComponentServer/CIAO_Container_Impl.h b/modules/CIAO/ciao/ComponentServer/CIAO_Container_Impl.h
new file mode 100644
index 00000000000..cdd5336f482
--- /dev/null
+++ b/modules/CIAO/ciao/ComponentServer/CIAO_Container_Impl.h
@@ -0,0 +1,119 @@
+// $Id$
+/**
+ * @file CIAO_Container_Impl.h
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ */
+
+#ifndef CIAO_CONTAINER_H_
+#define CIAO_CONTAINER_H_
+
+#include "CIAO_ComponentServerS.h"
+#include "CIAO_CS_ClientC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ciao/Containers/Session/Session_Container.h"
+
+#include "CIAO_ComponentServer_svnt_export.h"
+
+namespace CIAO
+{
+ namespace Deployment
+ {
+ /**
+ * @class CIAO_Container
+ * @brief Implements external interface for CIAO container.
+ */
+ class CIAO_COMPONENTSERVER_SVNT_Export CIAO_Container_i
+ : public virtual POA_CIAO::Deployment::Container
+ {
+ public:
+ /// Constructor
+ CIAO_Container_i (const Components::ConfigValues &config,
+ const Static_Config_EntryPoints_Maps *,
+ const char *,
+ const CORBA::PolicyList *,
+ CIAO::Deployment::ComponentInstallation_ptr,
+ CORBA::ORB_ptr,
+ PortableServer::POA_ptr);
+
+ /// Destructor
+ virtual ~CIAO_Container_i (void);
+
+ virtual ::Components::CCMObject_ptr install_component (
+ const char * id,
+ const char * entrypt,
+ const ::Components::ConfigValues & config);
+
+ virtual void remove_component (::Components::CCMObject_ptr cref);
+
+ virtual ::Components::CCMObjectSeq * get_components (void);
+
+ virtual ::Components::ConfigValues * configuration (void);
+
+ virtual
+ ::Components::Deployment::ComponentServer_ptr get_component_server (void);
+
+ virtual ::Components::CCMHome_ptr install_home (const char * id,
+ const char * entrypt,
+ const ::Components::ConfigValues & config);
+
+ virtual void remove_home (::Components::CCMHome_ptr href);
+
+ virtual ::Components::CCMHomes * get_homes (void);
+
+ virtual void remove (void);
+
+ virtual void activate_component (::Components::CCMObject_ptr comp);
+
+ virtual void passivate_component (::Components::CCMObject_ptr comp);
+
+ virtual PortableServer::POA_ptr _default_POA (void);
+
+ private:
+ /// Keep a pointer to the managing ORB serving this servant.
+ CORBA::ORB_var orb_;
+
+ PortableServer::POA_var poa_;
+
+ CIAO::Container_var container_;
+
+ Components::ConfigValues config_;
+
+ const Static_Config_EntryPoints_Maps* static_entrypts_maps_;
+
+ /// To store all created CCMHome object
+ typedef ACE_Hash_Map_Manager_Ex<ACE_CString,
+ Components::CCMHome_var,
+ ACE_Hash<ACE_CString>,
+ ACE_Equal_To<ACE_CString>,
+ ACE_Null_Mutex> CCMHome_Map;
+
+ typedef CCMHome_Map::iterator Home_Iterator;
+ CCMHome_Map home_map_;
+
+ /// To store all created Component object.
+ // @@Gan, see how this caching is duplicated..
+ typedef ACE_Hash_Map_Manager_Ex<ACE_CString,
+ Components::CCMObject_var,
+ ACE_Hash<ACE_CString>,
+ ACE_Equal_To<ACE_CString>,
+ ACE_Null_Mutex> CCMComponent_Map;
+
+ typedef CCMComponent_Map::iterator Component_Iterator;
+ CCMComponent_Map component_map_;
+
+ typedef ACE_Hash_Map_Manager_Ex<ACE_CString,
+ ACE_CString,
+ ACE_Hash<ACE_CString>,
+ ACE_Equal_To<ACE_CString>,
+ ACE_Null_Mutex> CCMNaming_Map;
+ CCMNaming_Map naming_map_;
+
+ CIAO::Deployment::ComponentInstallation_var ci_;
+ };
+ }
+}
+#endif /* CIAO_CONTAINER_H_ */
diff --git a/modules/CIAO/ciao/ComponentServer/CIAO_Properties.idl b/modules/CIAO/ciao/ComponentServer/CIAO_Properties.idl
new file mode 100644
index 00000000000..2e42c8d2cf1
--- /dev/null
+++ b/modules/CIAO/ciao/ComponentServer/CIAO_Properties.idl
@@ -0,0 +1,27 @@
+/**
+ * @file CIAO_Properties.idl
+ * @author William R. Otte
+ * $Id$
+ * Standardizes names of configvalues used by CIAO.
+ */
+
+#ifndef CIAO_PROPERTIES_IDL
+#define CIAO_PROPERTIES_IDL
+
+module CIAO
+{
+ module Deployment
+ {
+ const string SVNT_ENTRYPT = "edu.vanderbilt.dre.CIAO.ServantEntrypoint";
+ const string SVNT_ARTIFACT = "edu.vanderbilt.dre.CIAO.ServantArtifact";
+ const string EXEC_ARTIFACT = "edu.vanderbilt.dre.CIAO.ExecutorArtifact";
+ const string SERVER_UUID = "edu.vanderbilt.dre.CIAO.ServerUUID";
+ const string SERVER_EXECUTABLE = "edu.vanderbilt.dre.CIAO.ComponentServerExecutable";
+ const string SERVER_ARGUMENTS = "edu.vanderbilt.dre.CIAO.ComponentServerArgs";
+ const string SERVER_TIMEOUT = "edu.vanderbilt.dre.CIAO.ServerTimeout";
+ const string SERVER_MULTITHREAD = "edu.vanderbilt.dre.CIAO.Multithreaded";
+ const string REGISTER_NAMING = "edu.vanderbilt.dre.CIAO.RegisterNaming";
+ const string COMPONENTINSTALLATION_REF = "edu.vanderbilt.dre.CIAO.ComponentInstallation";
+ };
+};
+#endif /* CIAO_PROPERTIES_IDL */
diff --git a/modules/CIAO/ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp b/modules/CIAO/ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp
new file mode 100644
index 00000000000..ad88ee927de
--- /dev/null
+++ b/modules/CIAO/ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp
@@ -0,0 +1,518 @@
+// $Id$
+
+#include "CIAO_ServerActivator_Impl.h"
+#include "ace/Log_Msg.h"
+#include "ace/UUID.h"
+#include "ciao/Logger/Log_Macros.h"
+#include "ciao/Client_init.h"
+#include "ciao/CIAO_FailureReasonsC.h"
+
+#include "CIAO_ComponentServerC.h"
+#include "CIAO_PropertiesC.h"
+
+namespace CIAO
+{
+ namespace Deployment
+ {
+ CIAO_ServerActivator_i::CIAO_ServerActivator_i (CORBA::ULong def_spawn_delay,
+ const char * default_cs_path,
+ const char * cs_args,
+ bool multithreaded,
+ CIAO::Deployment::ComponentInstallation_ptr ci,
+ CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa)
+ : spawn_delay_ (def_spawn_delay),
+ multithreaded_ (multithreaded),
+ orb_ (CORBA::ORB::_duplicate (orb)),
+ poa_ (PortableServer::POA::_duplicate (poa)),
+ cs_path_ (default_cs_path),
+ cs_args_ (cs_args),
+ mutex_ (),
+ condition_ (mutex_),
+ ci_ (CIAO::Deployment::ComponentInstallation::_duplicate (ci))
+
+ {
+ CIAO_TRACE ("CIAO_ServerActivator_i::CIAO_ServerActivator_i");
+ ACE_Utils::UUID_GENERATOR::instance ()->init ();
+ }
+
+ CIAO_ServerActivator_i::~CIAO_ServerActivator_i(void)
+ {
+ }
+
+ void
+ CIAO_ServerActivator_i::component_server_callback (
+ ::Components::Deployment::ComponentServer_ptr serverref,
+ const char * server_UUID,
+ ::Components::ConfigValues_out config)
+ {
+ CIAO_TRACE("CIAO_ServerActivator_i::component_server_callback");
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "CIAO_ServerActivator_i::component_server_callback - "
+ "Received callback from ComponentServer %C\n",
+ server_UUID));
+
+ if (this->server_infos_.is_empty ())
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "CIAO_ServerActivator_i::component_server_callback - "
+ "Received callback from ComponentServer %C, but I don't manage any.\n",
+ server_UUID));
+ throw CORBA::BAD_PARAM ();
+ }
+
+ //SERVER_INFOS::iterator i (this->server_infos_.begin ());
+ //i.first ();
+ Server_Info *info = 0;
+
+ for (SERVER_INFOS::iterator i (this->server_infos_.begin ());
+ !i.done (); ++i)
+ {
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "CIAO_ServerActivator_i::component_server_callback - "
+ "Comparing %C with %C\n", (*i)->uuid_.c_str (), server_UUID));
+ if ((*i)->uuid_ == server_UUID)
+ {
+ info = (*i).get ();
+ }
+ }
+
+ if (info == 0)
+ { CIAO_ERROR ((LM_WARNING, CLINFO
+ "CIAO_ServerActivator_i::component_server_callback - "
+ "Received callback from ComponentServer %C, which doesn't belong to me.\n",
+ server_UUID));
+ throw CORBA::BAD_PARAM ();
+ }
+
+ if (info->activated_)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "CIAO_ServerActivator_i::component_server_callback - "
+ "Received callback from ComponentServer %C, which has already been configured.\n",
+ server_UUID));
+ throw CORBA::BAD_INV_ORDER ();
+ }
+
+ if (!CORBA::is_nil (info->ref_))
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "CIAO_ServerActivator_i::component_server_callback - "
+ "Received callback from ComponentServer %C, which has already called back.\n",
+ server_UUID));
+ throw CORBA::BAD_INV_ORDER ();
+ }
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "CIAO_ServerActivator_i::component_server_callback - "
+ "Received callback from ComponentServer %C\n",
+ server_UUID));
+
+ info->ref_ = ::Components::Deployment::ComponentServer::_duplicate (serverref);
+
+ this->create_component_server_config_values (*info, config);
+
+ // @@TODO: May want to print out configvalues here.
+ CIAO_DEBUG ((LM_DEBUG, CLINFO
+ "CIAO_ServerActivator_i::component_server_callback - "
+ "Generated %u ConfigValues for ComponentServer %C\n",
+ config->length (), server_UUID));
+ }
+
+ void
+ CIAO_ServerActivator_i::configuration_complete (const char *server_UUID)
+ {
+ CIAO_TRACE ("CIAO_ServerActivator_i::configuration_complete");
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "CIAO_ServerActivator_i::configuration_complete - "
+ "Received configuration_complete from ComponentServer %C\n",
+ server_UUID));
+
+ try
+ {
+ if (this->server_infos_.is_empty ())
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "CIAO_ServerActivator_i::configuration_complete - "
+ "Received callback from ComponentServer %C, but I don't manage any.\n",
+ server_UUID));
+ throw CORBA::BAD_PARAM ();
+ }
+
+ Server_Info *info = 0;
+
+ for (SERVER_INFOS::ITERATOR j (this->server_infos_);
+ !j.done (); ++j)
+ {
+ if ((*j)->uuid_ == server_UUID)
+ {
+ info = (*j).get ();
+ }
+ }
+
+ if (info == 0)
+ {
+ CIAO_ERROR ((LM_WARNING, CLINFO
+ "CIAO_ServerActivator_i::configuration_complete - "
+ "Received configuration_complete from ComponentServer %C, which doesn't belong to me.\n",
+ server_UUID));
+ throw CORBA::BAD_PARAM ();
+ }
+
+ if (info->activated_)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "CIAO_ServerActivator_i::configuration_complete - "
+ "Received configuration_complete from ComponentServer %C, which has already been completed.\n",
+ server_UUID));
+ throw CORBA::BAD_INV_ORDER ();
+ }
+
+ if (CORBA::is_nil (info->ref_.in ()))
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "CIAO_ServerActivator_i::configuration_complete - "
+ "Received configuration_complete from ComponentServer %C, which has not called back.\n",
+ server_UUID));
+ throw CORBA::BAD_INV_ORDER ();
+ }
+
+ info->activated_ = true;
+ }
+ catch (...)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "CIAO_ServerActivator_i::configuration_complete - "
+ "Caught unknown exception while processing configuration_complete\n"));
+ throw;
+ }
+ }
+
+ ::Components::Deployment::ComponentServer_ptr
+ CIAO_ServerActivator_i::create_component_server (const ::Components::ConfigValues & config)
+ {
+ CIAO_TRACE("CIAO_ServerActivator_i::create_component_server");
+
+ Safe_Server_Info server (new Server_Info (config.length () + 1));
+
+ CIAO::Utility::build_config_values_map (*server->cmap_, config);
+
+ ACE_CString cmd_options = this->construct_command_line (*server);
+
+ CIAO_DEBUG ((LM_DEBUG, CLINFO
+ "CIAO_ServerActivator_i::create_component_server - ComponentServer arguments: %C\n",
+ cmd_options.c_str ()));
+
+ server_infos_.insert_tail (server);
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "CIAO_ServerActivator_i::create_component_server - "
+ "Attempting to spawn ComponentServer with UUID %C\n",
+ server->uuid_.c_str ()));
+ // Now we need to get a copy of the one that was inserted...
+ pid_t pid = this->spawn_component_server (*server, cmd_options);
+ ACE_UNUSED_ARG (pid);
+
+ ACE_Time_Value timeout (this->spawn_delay_);
+
+ CORBA::Any val;
+
+ if (server->cmap_->find (SERVER_TIMEOUT, val) == 0)
+ {
+ CORBA::ULong t;
+ if (val >>= t)
+ {
+ CIAO_DEBUG ((LM_DEBUG, CLINFO "CIAO_ServerActivator_i::create_component_server - "
+ "Using provided non-default server timeout of %u\n", t));
+ timeout = ACE_Time_Value (t);
+ }
+ else
+ {
+ CIAO_ERROR ((LM_WARNING, CLINFO "CIAO_ServerActivator_i::create_component_server - "
+ "Failed to extract provided non-default server timeout from property '%C', "
+ "falling back to default timeout of %u\n",
+ this->spawn_delay_));
+ }
+ }
+
+ if (this->multithreaded_)
+ this->multi_threaded_wait_for_callback (*server, timeout/*, pid*/);
+ else
+ this->single_threaded_wait_for_callback (*server, timeout/*, pid*/);
+
+ CIAO_DEBUG ((LM_DEBUG, CLINFO
+ "CIAO_ServerActivator_i::create_component_server - "
+ "ComponentServer %C successfully spawned and configured!\n",
+ server->uuid_.c_str ()));
+
+ return ::Components::Deployment::ComponentServer::_duplicate (server->ref_.in ());
+ }
+
+ ACE_CString
+ CIAO_ServerActivator_i::construct_command_line (Server_Info &server)
+ {
+ CIAO_TRACE ("CIAO_ServerActivator_i::construct_command_line");
+
+ // Build our command line to launch the compoent server
+ ACE_CString cmd_options (this->cs_args_);
+
+ CORBA::Any val;
+
+ if (server.cmap_->find (SERVER_UUID, val) == 0)
+ {
+ // Nodeapplication has requested a custom uuid
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "CIAO_ServerActivator_i::construct_command_line - Using provided UUID\n"));
+ const char *uuid = 0;
+ val >>= uuid;
+ server.uuid_ = uuid;
+ }
+ else
+ {
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "CIAO_ServerActivator_i::construct_command_line - Using generated UUID\n"));
+ ACE_Utils::UUID uuid;
+ ACE_Utils::UUID_GENERATOR::instance ()->generate_UUID (uuid);
+ server.uuid_ = *uuid.to_string ();
+ }
+
+ CIAO_DEBUG ((LM_DEBUG, CLINFO
+ "CIAO_ServerActivator_i::construct_command_line - Creating component server "
+ " with UUID %C\n", server.uuid_.c_str ()));
+
+ cmd_options += " -u ";
+ cmd_options += server.uuid_;
+
+ return cmd_options;
+ }
+
+ pid_t
+ CIAO_ServerActivator_i::spawn_component_server (const Server_Info &si,
+ const ACE_CString &cmd_line)
+ {
+ CIAO_TRACE ("CIAO_ServerActivator_i::spawn_component_server");
+
+ ACE_Process_Options options;
+
+ // Get my object reference
+ CORBA::Object_var obj = this->poa_->servant_to_reference (this);
+ CORBA::String_var ior = this->orb_->object_to_string (obj.in ());
+ CORBA::Any val;
+
+ const char *path = this->cs_path_.c_str ();
+
+ if (si.cmap_->find (SERVER_EXECUTABLE, val) == 0)
+ {
+ val >>= path;
+ CIAO_DEBUG ((LM_DEBUG, CLINFO "CIAO_ServerActivator_i::spawn_component_server - "
+ "Using provided component server executable:%C\n", path));
+ }
+ else
+ {
+ CIAO_DEBUG ((LM_DEBUG, CLINFO "CIAO_ServerActivator_i::spawn_component_server - "
+ "Using default component server execuable\n"));
+ }
+
+ options.command_line ("%s %s -c %s",
+ path,
+ cmd_line.c_str (),
+ ior.in ());
+
+ options.avoid_zombies (0);
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "CIAO_ServerActivator_i::spawn_component_server - Spawning process, command line is %s\n",
+ options.command_line_buf ()));
+
+ pid_t const pid = this->process_manager_.spawn (options,
+ &this->child_handler_);
+
+ if (pid == ACE_INVALID_PID)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "Failed to spawn a ComponentServer process\n"));
+ throw Components::CreateFailure (CIAO::SERVER_SPAWN_FAILURE);
+ }
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "CIAO_ServerActivator_i::spawn_component_server - Process successfully spawned with pid %u\n",
+ pid));
+ return pid;
+ }
+
+ void
+ CIAO_ServerActivator_i::
+ single_threaded_wait_for_callback (const Server_Info &si,
+ ACE_Time_Value &timeout)
+ {
+ CIAO_TRACE ("CIAO_ServerActivator_i::single_threaded_wait_for_callback");
+
+ // Below code is broken for thread-per-connection concurrency model,
+ // since the main thread is running ORB event loop and will spawn
+ // a different thread to handle the call <register_node_application>,
+ // the <perform_work> operation will not be invoked and finally
+ // a timeout will occur. For a similar reason, it won't work
+ // for thread-pool concurrency model.
+ while (true)
+ {
+ this->orb_->perform_work (timeout);
+
+ if (timeout == ACE_Time_Value::zero)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "CIAO_ServerActivator_i::single_threaded_wait_for_callback - "
+ "Timed out while waiting for ComponentServer %C to call back.\n",
+ si.uuid_.c_str ()));
+ throw ::Components::CreateFailure (CIAO::CALLBACK_TIMEOUT_EXCEEDED);
+ }
+
+ if (si.activated_)
+ {
+ break;
+ }
+ }
+ }
+
+ void
+ CIAO_ServerActivator_i::
+ multi_threaded_wait_for_callback (const Server_Info &si,
+ ACE_Time_Value &timeout)
+ {
+ CIAO_TRACE ("CIAO_ServerActivator_i::multi_threaded_wait_for_callback");
+
+ // Wait for a conditional variable
+ ACE_GUARD_THROW_EX ( TAO_SYNCH_MUTEX,
+ guard,
+ this->mutex_,
+ CORBA::NO_RESOURCES ());
+
+ while (! si.activated_ )
+ if (this->condition_.wait (&timeout) == -1)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "CIAO_ServerActivator_i::multi_threaded_wait_for_callback - "
+ "Timed out while waiting for ComponentServer %C to call back.\n",
+ si.uuid_.c_str ()));
+ throw Components::CreateFailure (CIAO::CALLBACK_TIMEOUT_EXCEEDED);
+ }
+ }
+
+ void
+ CIAO_ServerActivator_i::remove_component_server (::Components::Deployment::ComponentServer_ptr server)
+ {
+ CIAO_TRACE ("CIAO_ServerActivator_i::remove_component_server");
+
+ if (this->server_infos_.is_empty ())
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "CIAO_ServerActivator_i::remove_component_server - "
+ "I don't manage any ComponentServers.\n"));
+ throw CORBA::BAD_PARAM ();
+ }
+
+ Server_Info *info = 0;
+
+ for (SERVER_INFOS::ITERATOR i (this->server_infos_);
+ !i.done (); ++i)
+ {
+ if ((*i)->ref_->_is_equivalent (server))
+ {
+ info = (*i).get ();
+ }
+ }
+
+ if (!info)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "CIAO_ServerActivator_i::remove_component_server - "
+ "Failed to find equivalent ComponentServer under my management.\n"));
+ throw ::Components::RemoveFailure ();
+ }
+
+ try
+ {
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "CIAO_ServerActivator_i::remove_component_server - "
+ "Calling remove () on ComponentServer %C\n",
+ info->uuid_.c_str ()));
+ server->remove ();
+ }
+ catch (::Components::RemoveFailure &)
+ {
+ CIAO_ERROR ((LM_WARNING, CLINFO
+ "CIAO_ServerActivator_i::remove_component_server - "
+ "Received RemoveFailure exception from ComponentServer %C\n",
+ info->uuid_.c_str ()));
+ }
+
+ // If this is a CIAO component server, call shutdown
+ CIAO::Deployment::ComponentServer_var ccs =
+ CIAO::Deployment::ComponentServer::_narrow (server);
+ if (!CORBA::is_nil (ccs))
+ {
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "CIAO_ServerActivator_i::remove_component_server - "
+ "Calling shutdown () on ComponentServer %C\n",
+ info->uuid_.c_str ()));
+ ccs->shutdown ();
+ }
+ else
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "CIAO_ServerActivator_i::remove_component_server - "
+ "ComponentServer %C is not a CIAO_ComponentServer, not calling shutdown.\n",
+ info->uuid_.c_str ()));
+
+ CIAO_DEBUG ((LM_INFO, CLINFO
+ "CIAO_ServerActivator_i::remove_component_server - "
+ "ComponentServer %C successfully shut down.\n",
+ info->uuid_.c_str ()));
+ }
+
+ ::Components::Deployment::ComponentServers *
+ CIAO_ServerActivator_i::get_component_servers (void)
+ {
+ CIAO_TRACE ("CIAO_ServerActivator_i::get_component_servers");
+
+ ::Components::Deployment::ComponentServers_var retval = new
+ Components::Deployment::ComponentServers (this->server_infos_.size ());
+
+ CORBA::ULong pos = 0;
+
+ for (SERVER_INFOS::ITERATOR i (this->server_infos_);
+ !i.done (); ++i)
+ {
+ retval[pos++] =
+ ::Components::Deployment::ComponentServer::_duplicate ((*i)->ref_);
+ }
+
+ return retval._retn ();
+ }
+
+ void
+ CIAO_ServerActivator_i::create_component_server_config_values (
+ const Server_Info &,
+ Components::ConfigValues_out &config)
+ {
+ ACE_NEW_THROW_EX (config,
+ Components::ConfigValues (1),
+ CORBA::NO_MEMORY ());
+
+ CIAO::Deployment::ComponentInstallation_ptr ci =
+ CIAO::Deployment::ComponentInstallation::_duplicate (this->ci_.in ());
+ CORBA::Any ci_any;
+ ci_any <<= ci;
+
+ OBV_Components::ConfigValue* p = 0;
+ ACE_NEW_THROW_EX (p,
+ OBV_Components::ConfigValue (),
+ CORBA::NO_MEMORY ());
+ p->name (CIAO::Deployment::COMPONENTINSTALLATION_REF);
+ p->value (ci_any);
+ config->length (1);
+ config.operator[](0) = p;
+ }
+ }
+}
+
diff --git a/modules/CIAO/ciao/ComponentServer/CIAO_ServerActivator_Impl.h b/modules/CIAO/ciao/ComponentServer/CIAO_ServerActivator_Impl.h
new file mode 100644
index 00000000000..93c10435d00
--- /dev/null
+++ b/modules/CIAO/ciao/ComponentServer/CIAO_ServerActivator_Impl.h
@@ -0,0 +1,192 @@
+// $Id$
+/**
+ * @file CIAO_ServerActivator_Impl.h
+ * @author William R. Otte
+ */
+
+#ifndef CIAO_SERVERACTIVATOR_H_
+#define CIAO_SERVERACTIVATOR_H_
+
+#include "ace/Process_Manager.h"
+#include "ace/Event_Handler.h"
+#include "ace/Condition_T.h"
+#include "ace/OS_NS_sys_wait.h"
+#include "ace/Refcounted_Auto_Ptr.h"
+#include "ace/Unbounded_Set_Ex.h"
+#include "ace/Synch_Traits.h"
+#include "ace/Condition_T.h"
+#include "tao/PortableServer/PortableServer.h"
+#include "tao/orbconf.h"
+#include "ciao/Client_init.h"
+#include "ciao/ComponentServer/CIAO_CS_ClientS.h"
+#include "ciao/ComponentServer/CIAO_ComponentServerC.h"
+#include "ciao/ComponentServer/CIAO_CS_Client_svnt_export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace CIAO
+{
+ namespace Deployment
+ {
+ /**
+ * @brief The signal handler class for the SIGCHLD handling to avoid
+ * zombies
+ */
+ class Child_Handler : public virtual ACE_Event_Handler
+ {
+ public:
+ virtual int handle_signal (int,
+ siginfo_t *,
+ ucontext_t *)
+ {
+ // @@ Note that this code is not portable to all OS platforms
+ // since it uses print statements within signal handler context.
+ ACE_exitcode status;
+ // makes a claal to the underlying os system call
+ // -1 to wait for any child process
+ // and WNOHANG so that it retuurns immediately
+ ACE_OS::waitpid (-1 ,&status, WNOHANG, 0);
+
+ return 0;
+ }
+ };
+
+ /**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @brief Default server activator for CIAO component servers.
+ *
+ * Implements the default component server activation strategy
+ * which is to spawn new processes. This is not thread-safe,
+ * nor is it intended to be. Containers are reated serially,
+ * so there will be only one actor *modifying* data at a particular
+ * point in time.
+ */
+ class CIAO_CS_CLIENT_SVNT_Export CIAO_ServerActivator_i
+ : public virtual POA_CIAO::Deployment::ServerActivator
+ {
+ public:
+ /// Constructor
+ CIAO_ServerActivator_i (CORBA::ULong def_spawn_delay,
+ const char * default_cs_path,
+ const char * cs_args,
+ bool multithreaded,
+ CIAO::Deployment::ComponentInstallation_ptr ci,
+ CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa_);
+
+ /// Destructor
+ virtual ~CIAO_ServerActivator_i (void);
+
+ virtual
+ void component_server_callback (
+ ::Components::Deployment::ComponentServer_ptr serverref,
+ const char * server_UUID,
+ ::Components::ConfigValues_out config);
+
+ virtual void configuration_complete (const char *server_UUID);
+
+ virtual
+ ::Components::Deployment::ComponentServer_ptr
+ create_component_server (const ::Components::ConfigValues & config);
+
+ virtual
+ void remove_component_server (
+ ::Components::Deployment::ComponentServer_ptr server);
+
+ virtual
+ ::Components::Deployment::ComponentServers * get_component_servers (void);
+
+ private:
+ struct Server_Info;
+
+ /// Builds command line options based on configuration information.
+ /// May modify the uuid of the component server.
+ ACE_CString construct_command_line (Server_Info &si);
+
+ /// Spawns the component server process, but does not wait for it
+ /// to call back.
+ pid_t spawn_component_server (const Server_Info &si,
+ const ACE_CString &cmd_line);
+
+ /// This method is only applicable when our program is configured as
+ /// singled threaded . Internally it uses a <perform_work> blocking
+ /// call to wait for NA object to call back
+ void single_threaded_wait_for_callback (const Server_Info &si,
+ ACE_Time_Value &timeout);
+
+ /// This method is only applicable when our program is configured as
+ /// multiple threaded. Internally it waits on a conditional variable
+ /// that could be modified by the callback servant which runs in
+ /// another thread
+ void multi_threaded_wait_for_callback (const Server_Info &si,
+ ACE_Time_Value &timeout);
+
+ void create_component_server_config_values (const Server_Info &info,
+ Components::ConfigValues_out &config);
+
+ struct Server_Info
+ {
+ Server_Info (size_t cmap_size_hint = 128)
+ : cmap_ (new CIAO::Utility::CONFIGVALUE_MAP (cmap_size_hint)),
+ ref_ (Components::Deployment::ComponentServer::_nil ()),
+ pid_ (ACE_INVALID_PID),
+ activated_ (false) {}
+
+ typedef ACE_Refcounted_Auto_Ptr <CIAO::Utility::CONFIGVALUE_MAP,
+ ACE_Null_Mutex> CONFIGVALUE_MAP_PTR;
+
+ ACE_CString uuid_;
+ CONFIGVALUE_MAP_PTR cmap_;
+ Components::Deployment::ComponentServer_var ref_;
+ pid_t pid_;
+ bool activated_;
+ };
+
+ typedef ACE_Refcounted_Auto_Ptr<Server_Info, ACE_Null_Mutex> Safe_Server_Info;
+
+ struct _server_info
+ {
+ bool operator() (const Safe_Server_Info &a, const Safe_Server_Info &b) const
+ {
+ return a->uuid_ == b->uuid_;
+ }
+ };
+
+ // Presumably, there won't be too many component servers per node application
+ typedef ACE_Unbounded_Set_Ex <Safe_Server_Info, _server_info> SERVER_INFOS;
+
+ /// Default args to pass to all componentservers.
+ ACE_CString default_args_;
+
+ SERVER_INFOS server_infos_;
+
+ ACE_Process_Manager process_manager_;
+
+ Child_Handler child_handler_;
+
+ CORBA::ULong spawn_delay_;
+
+ /////*******NEW
+ bool multithreaded_;
+
+ CORBA::ORB_var orb_;
+
+ PortableServer::POA_var poa_;
+
+ ACE_CString cs_path_;
+
+ ACE_CString cs_args_;
+
+ TAO_SYNCH_MUTEX mutex_;
+
+ ACE_Condition<TAO_SYNCH_MUTEX> condition_;
+
+ CIAO::Deployment::ComponentInstallation_var ci_;
+ };
+
+
+ }
+}
+#endif /* CIAO_SERVERACTIVATOR_H_ */
diff --git a/modules/CIAO/ciao/Containers/CIAO_Servant_Activator.idl b/modules/CIAO/ciao/Containers/CIAO_Servant_Activator.idl
new file mode 100644
index 00000000000..18aa906e0e2
--- /dev/null
+++ b/modules/CIAO/ciao/Containers/CIAO_Servant_Activator.idl
@@ -0,0 +1,24 @@
+/**
+ * @file CIAO_Servant_Activator.idl
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * $Id$
+ * Local interface extensions for the CIAO servant activator.
+ */
+
+#ifndef CIAO_SERVANT_ACTIVATOR_IDL
+#define CIAO_SERVANT_ACTIVATOR_IDL
+
+#include "tao/PortableServer/ServantActivator.pidl"
+#include "ciao/Servants/CIAO_Port_Activator.idl"
+
+module CIAO
+{
+ local interface Servant_Activator : PortableServer::ServantActivator
+ {
+ boolean update_port_activator (in PortableServer::ObjectId oid);
+
+ boolean register_port_activator (in Port_Activator pa);
+ };
+};
+
+#endif
diff --git a/modules/CIAO/ciao/Containers/CIAO_Servant_Activator.mpc b/modules/CIAO/ciao/Containers/CIAO_Servant_Activator.mpc
new file mode 100644
index 00000000000..9f17d55807d
--- /dev/null
+++ b/modules/CIAO/ciao/Containers/CIAO_Servant_Activator.mpc
@@ -0,0 +1,24 @@
+// $Id$
+
+project(CIAO_Servant_Activator_stub_idl) : ciaoidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_include=CIAO_Servant_Activator_export.h \
+ -Wb,stub_export_macro=CIAO_SERVANT_ACTIVATOR_Export \
+ -SS -Sci -Gxhst
+ IDL_Files {
+ CIAO_Servant_Activator.idl
+ }
+}
+
+project(CIAO_Servant_Activator_stub) : ciao_lib, portableserver, ciao_port_activator_stub, avoids_minimum_corba {
+ after += CIAO_Servant_Activator_stub_idl
+ dynamicflags = CIAO_SERVANT_ACTIVATOR_BUILD_DLL
+
+ IDL_Files {
+ }
+ Source_Files {
+ Servant_Activator.cpp
+ CIAO_Servant_ActivatorC.cpp
+ }
+}
+
diff --git a/modules/CIAO/ciao/Containers/Container_Base.cpp b/modules/CIAO/ciao/Containers/Container_Base.cpp
new file mode 100644
index 00000000000..9fa616e7299
--- /dev/null
+++ b/modules/CIAO/ciao/Containers/Container_Base.cpp
@@ -0,0 +1,50 @@
+// $Id$
+
+#include "Container_Base.h"
+#include "ciao/Logger/Log_Macros.h"
+
+#if !defined (__ACE_INLINE__)
+# include "Container_Base.inl"
+#endif /* __ACE_INLINE__ */
+
+namespace CIAO
+{
+ ////////////////////////////////////////////////////////////////
+
+ Container_i::Container_i (CORBA::ORB_ptr o)
+ : orb_ (CORBA::ORB::_duplicate (o)),
+ container_impl_ (0)
+ {
+ }
+
+ Container_i::Container_i (CORBA::ORB_ptr o,
+ Deployment::CIAO_Container_i *container_impl)
+ : orb_ (CORBA::ORB::_duplicate (o)),
+ container_impl_ (container_impl)
+ {
+ }
+
+ Container_i::~Container_i (void)
+ {
+ }
+
+ CORBA::PolicyList *
+ Container_i::get_receptacle_policy (const char* name)
+ {
+ CORBA::PolicyList_var policy_list;
+
+ ACE_NEW_THROW_EX (policy_list,
+ CORBA::PolicyList (),
+ CORBA::NO_MEMORY ());
+
+ if (this->rec_pol_map_.find (name, policy_list) != 0)
+ {
+ CIAO_ERROR ((LM_DEBUG, CLINFO
+ "Container_i::get_receptacle_policy - No policies found "
+ "for the receptacle %C\n",
+ name));
+ }
+
+ return policy_list._retn ();
+ }
+}
diff --git a/modules/CIAO/ciao/Containers/Container_Base.h b/modules/CIAO/ciao/Containers/Container_Base.h
new file mode 100644
index 00000000000..722f3f8a5ac
--- /dev/null
+++ b/modules/CIAO/ciao/Containers/Container_Base.h
@@ -0,0 +1,159 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Container_Base.h
+ *
+ * $Id$
+ *
+ * Header file for CIAO's container implementations
+ *
+ * @author Nanbor Wang <nanbor@cs.wustl.edu>
+ * @author Gan Deng <dengg@dre.vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef CIAO_CONTAINER_BASE_H
+#define CIAO_CONTAINER_BASE_H
+
+#include /**/ "ace/pre.h"
+
+#include "ciao/Containers/Container_Base_export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Hash_Map_Manager_T.h"
+#include "tao/LocalObject.h"
+#include "tao/PortableServer/PortableServer.h"
+#include "ccm/CCM_ContainerC.h"
+
+#include "ciao/Containers/Container_BaseC.h"
+
+namespace CIAO
+{
+ class Dynamic_Component_Servant_Base;
+
+ namespace Deployment
+ {
+ class CIAO_Container_i;
+ }
+
+ typedef ACE_Hash_Map_Manager_Ex<ACE_CString,
+ CORBA::PolicyList,
+ ACE_Hash<ACE_CString>,
+ ACE_Equal_To<ACE_CString>,
+ ACE_Null_Mutex> REC_POL_MAP;
+ typedef ACE_Hash_Map_Iterator<ACE_CString,
+ CORBA::PolicyList,
+ ACE_Null_Mutex> REC_POL_MAP_ITERATOR;
+
+ /**
+ * @class Container
+ *
+ * @brief Common container interface definition.
+ *
+ * Perhaps we can use local interface to define these interfaces as
+ * we will also get reference counting automatically.
+ */
+ class CIAO_CONTAINER_BASE_Export Container_i :
+ public virtual Container,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Container_i (CORBA::ORB_ptr o);
+ Container_i (CORBA::ORB_ptr o, Deployment::CIAO_Container_i *container_impl);
+
+ virtual ~Container_i (void) = 0;
+
+ /// Initialize the container with a name.
+ virtual void init (const char *name = 0,
+ const CORBA::PolicyList *more_policies = 0) = 0;
+
+ /// Get component's POA.
+ /**
+ * This operation does *NOT* increase the reference count of the
+ * POA. Look at the const qualifier in the method.
+ */
+ virtual PortableServer::POA_ptr the_POA (void);
+ virtual PortableServer::POA_ptr the_port_POA (void);
+
+ /// Get the receptacle policy given the receptacle name
+ CORBA::PolicyList * get_receptacle_policy (const char *name);
+
+ /// Install a new home
+ virtual Components::CCMHome_ptr install_home (const char *primary_artifact,
+ const char *entry_point,
+ const char *servant_artifact,
+ const char *servant_entrypoint,
+ const char *name) = 0;
+
+ /// Uninstall a servant for component or home.
+ virtual void uninstall_home (Components::CCMHome_ptr homeref) = 0;
+
+ virtual Components::CCMObject_ptr install_component (const char *primary_artifact,
+ const char *entry_point,
+ const char *servant_artifact,
+ const char *servant_entrypoint,
+ const char *name) = 0;
+
+ virtual void uninstall_component (Components::CCMObject_ptr compref) = 0;
+
+ virtual CORBA::Object_ptr get_objref (PortableServer::Servant p) = 0;
+
+ virtual CORBA::Object_ptr install_servant (PortableServer::Servant objref,
+ Container_Types::OA_Type type,
+ PortableServer::ObjectId_out oid) = 0;
+
+ /// Uninstall a servant for component.
+ virtual void uninstall_servant (PortableServer::Servant objref,
+ Container_Types::OA_Type type,
+ PortableServer::ObjectId_out oid) = 0;
+
+ virtual void add_servant_to_map (PortableServer::ObjectId &oid,
+ Dynamic_Component_Servant_Base* servant) = 0;
+
+ virtual void delete_servant_from_map (PortableServer::ObjectId &oid) = 0;
+
+ /// Get a reference to the underlying ORB.
+ CORBA::ORB_ptr the_ORB (void) const;
+
+ /// Set the policy map for all the receptacles hosted in this container.
+ void set_receptacle_policy_map (::CIAO::REC_POL_MAP &rec_pol_map);
+
+ protected:
+ /// Reference to the ORB
+ CORBA::ORB_var orb_;
+
+ /// POA within which all the components in this container will be
+ /// activated.
+ PortableServer::POA_var component_poa_;
+
+ /// POA within which all the facets and receptacles will be
+ /// activated.
+ /**
+ * Having two POA's allows us to associate different policies that
+ * are distinct from the component.
+ */
+ PortableServer::POA_var facet_cons_poa_;
+
+ PortableServer::POA_var home_servant_poa_;
+
+ Deployment::CIAO_Container_i *container_impl_;
+
+ ::CIAO::REC_POL_MAP rec_pol_map_;
+
+ private:
+ /// Not allowed to be used
+ Container_i (void);
+ };
+}
+
+#if defined (__ACE_INLINE__)
+# include "Container_Base.inl"
+#endif /* __ACE_INLINE__ */
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_CONTAINER_BASE_H */
diff --git a/modules/CIAO/ciao/Containers/Container_Base.idl b/modules/CIAO/ciao/Containers/Container_Base.idl
new file mode 100644
index 00000000000..01a79b71a15
--- /dev/null
+++ b/modules/CIAO/ciao/Containers/Container_Base.idl
@@ -0,0 +1,82 @@
+/**
+ * @file Container_Base.idl
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * $Id$
+ * Container local interface.
+ */
+
+#include "tao/PortableServer/PortableServer_include.pidl"
+#include "ccm/CCM_Home.idl"
+#include "ciao/Containers/CIAO_Servant_Activator.idl"
+
+module CIAO
+{
+ module Container_Types
+ {
+ enum OA_Type
+ {
+ COMPONENT_t,
+ HOME_t,
+ FACET_CONSUMER_t
+ };
+ };
+
+ exception InvalidComponent
+ {
+ };
+
+ /**
+ * @interface Container
+ * @brief Internal container interfaces.
+ *
+ * This interface provides interfactes to two portions of the CIAO
+ * container architecture: The generic external container interface
+ * created by the component server, and the component specific container
+ * portions generated by the CIDL compiler (the component servant)
+ */
+ local interface Container
+ {
+ CORBA::PolicyList get_receptacle_policy (in string name);
+ // **** Methods used by external container
+ Components::CCMHome install_home (in string primary_artifact,
+ in string entry_point,
+ in string servant_artifact,
+ in string servant_entrypoint,
+ in string name);
+
+ void uninstall_home (in Components::CCMHome homeptr);
+
+ Components::CCMObject install_component (in string primary_artifact,
+ in string entry_point,
+ in string servant_artifact,
+ in string servant_entrypoint,
+ in string name);
+
+ void activate_component (in Components::CCMObject name);
+
+ void passivate_component (in Components::CCMObject name);
+
+ void uninstall_component (in Components::CCMObject compptr);
+
+ // *** Methods used by component specific container portions
+ Object install_servant (in PortableServer::Servant svnt,
+ in Container_Types::OA_Type type,
+ out PortableServer::ObjectId oid);
+
+ void uninstall_servant (in PortableServer::Servant compptr,
+ in Container_Types::OA_Type type,
+ out PortableServer::ObjectId oid);
+
+ Servant_Activator ports_servant_activator ();
+
+ Object generate_reference (in string obj_id,
+ in string repo_id,
+ in Container_Types::OA_Type type);
+
+ Object get_objref (in PortableServer::Servant p);
+
+ PortableServer::POA the_POA ();
+
+ PortableServer::POA the_port_POA ();
+ };
+};
diff --git a/modules/CIAO/ciao/Containers/Container_Base.inl b/modules/CIAO/ciao/Containers/Container_Base.inl
new file mode 100644
index 00000000000..b4198116983
--- /dev/null
+++ b/modules/CIAO/ciao/Containers/Container_Base.inl
@@ -0,0 +1,33 @@
+// $Id$
+
+namespace CIAO
+{
+ ACE_INLINE PortableServer::POA_ptr
+ Container_i::the_POA (void)
+ {
+ return this->component_poa_.in ();
+ }
+
+ ACE_INLINE PortableServer::POA_ptr
+ Container_i::the_port_POA (void)
+ {
+ return this->facet_cons_poa_.in ();
+ }
+
+ ACE_INLINE CORBA::ORB_ptr
+ Container_i::the_ORB (void) const
+ {
+ return this->orb_.in ();
+ }
+
+ ACE_INLINE void
+ Container_i::set_receptacle_policy_map (::CIAO::REC_POL_MAP &rec_pol_map)
+ {
+ for (::CIAO::REC_POL_MAP_ITERATOR it = rec_pol_map.begin ();
+ it != rec_pol_map.end ();
+ ++it)
+ {
+ this->rec_pol_map_.bind ((*it).ext_id_, (*it).int_id_);
+ }
+ }
+}
diff --git a/modules/CIAO/ciao/Containers/Containers.mpc b/modules/CIAO/ciao/Containers/Containers.mpc
new file mode 100644
index 00000000000..3e17afdb9fd
--- /dev/null
+++ b/modules/CIAO/ciao/Containers/Containers.mpc
@@ -0,0 +1,30 @@
+// $Id$
+
+project(CIAO_Container_Base_idl) : taoidldefaults {
+ custom_only = 1
+
+ idlflags += -Wb,export_include=Container_Base_export.h \
+ -Wb,export_macro=CIAO_CONTAINER_BASE_Export \
+ -SS -Sci -Gxhst
+
+ IDL_Files {
+ Container_Base.idl
+ }
+}
+project(CIAO_Container_Base) : ciao_lib, ccm_svnt, ciao_servant_activator, ciao_port_activator_stub {
+ after += CIAO_Container_Base_idl
+ dynamicflags += CIAO_CONTAINER_BASE_BUILD_DLL
+
+ IDL_Files {
+ }
+ Source_Files {
+ Container_Base.cpp
+ Container_BaseC.cpp
+ }
+ Inline_Files {
+ Container_Base.inl
+ }
+ Header_Files {
+ Container_Base.h
+ }
+}
diff --git a/modules/CIAO/ciao/Containers/Servant_Activator.cpp b/modules/CIAO/ciao/Containers/Servant_Activator.cpp
new file mode 100644
index 00000000000..eb7efa2a98d
--- /dev/null
+++ b/modules/CIAO/ciao/Containers/Servant_Activator.cpp
@@ -0,0 +1,167 @@
+#include "Servant_Activator.h"
+
+#include "tao/PortableServer/PortableServer_Functions.h"
+#include "ciao/Logger/Log_Macros.h"
+
+ACE_RCSID (ciao,
+ Servant_Activator_i,
+ "$Id$")
+
+namespace CIAO
+{
+ Servant_Activator_i::Servant_Activator_i (CORBA::ORB_ptr o)
+ : orb_ (CORBA::ORB::_duplicate (o)),
+ slot_index_ (0)
+ {
+ }
+
+ Servant_Activator_i::~Servant_Activator_i (void)
+ {
+ CIAO_TRACE ("Servant_Activator_i::~Servant_Activator_i");
+ }
+
+ bool
+ Servant_Activator_i::update_port_activator (
+ const PortableServer::ObjectId &oid)
+ {
+ CIAO_TRACE ("Servant_Activator_i::update_port_activator");
+
+ CORBA::String_var str =
+ PortableServer::ObjectId_to_string (oid);
+ {
+ ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX,
+ guard,
+ this->mutex_,
+ CORBA::NO_RESOURCES ());
+
+ Port_Activators::iterator pa_iter = this->pa_.find (str.in ());
+
+ if (pa_iter != this->pa_.end ())
+ {
+ this->pa_.erase (pa_iter);
+ }
+ else return false;
+ }
+
+ return true;
+ }
+
+ PortableServer::Servant
+ Servant_Activator_i::incarnate (const PortableServer::ObjectId &oid,
+ PortableServer::POA_ptr)
+ {
+ CIAO_TRACE ("Servant_Activator_i::incarnate");
+
+ CORBA::String_var str =
+ PortableServer::ObjectId_to_string (oid);
+
+ CIAO_DEBUG ((LM_INFO, CLINFO
+ "Servant_Activator_i::incarnate, "
+ "Attempting to activate port name [%C]\n",
+ str.in ()));
+
+ Port_Activators::iterator pa_iter;
+
+ {
+ ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX,
+ guard,
+ this->mutex_,
+ CORBA::NO_RESOURCES ());
+
+ pa_iter = this->pa_.find (str.in ());
+ }
+
+ if (pa_iter == this->pa_.end ())
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "Servant_Activator_i::incarnate - "
+ "Unable to find sutible port activator for ObjectID %C\n",
+ str.in ()));
+ throw CORBA::OBJECT_NOT_EXIST ();
+ }
+
+ if (CORBA::is_nil (pa_iter->second))
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "Servant_Activator_i::incarnate - "
+ "Port Activator for ObjectId %C was nil!\n",
+ str.in ()));
+ throw CORBA::OBJECT_NOT_EXIST ();
+ }
+
+ CIAO_DEBUG ((LM_INFO, CLINFO
+ "Servant_Activator_i::incarnate - Activating Port %C\n",
+ str.in ()));
+
+ return pa_iter->second->activate (oid);
+ }
+
+ void
+ Servant_Activator_i::etherealize (const PortableServer::ObjectId &oid,
+ PortableServer::POA_ptr ,
+ PortableServer::Servant servant,
+ CORBA::Boolean ,
+ CORBA::Boolean)
+ {
+ CORBA::String_var str =
+ PortableServer::ObjectId_to_string (oid);
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO "Servant_Activator_i::etherealize - "
+ "Attempting to etherealize servant with object ID %C\n",
+ str.in ()));
+
+ Port_Activators::iterator pa_iter;
+
+ {
+ ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX,
+ guard,
+ this->mutex_,
+ CORBA::NO_RESOURCES ());
+
+ pa_iter = this->pa_.find (str.in ());
+ }
+
+ if (pa_iter == this->pa_.end ())
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "Servant_Activator_i::etherealize - "
+ "Unable to find sutible port activator for ObjectID %C\n",
+ str.in ()));
+ throw CORBA::OBJECT_NOT_EXIST ();
+ }
+
+ if (CORBA::is_nil (pa_iter->second))
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "Servant_Activator_i::etherealize - "
+ "Port Activator for ObjectId %C was nil!\n",
+ str.in ()));
+ throw CORBA::OBJECT_NOT_EXIST ();
+ }
+
+ pa_iter->second->deactivate (servant);
+ }
+
+ bool
+ Servant_Activator_i::register_port_activator (Port_Activator_ptr pa)
+ {
+ ACE_GUARD_RETURN (TAO_SYNCH_MUTEX,
+ guard,
+ this->mutex_,
+ false);
+
+ CIAO_DEBUG ((LM_INFO, CLINFO "Servant_Activator_i::register_port_activator - "
+ "Registering a port activator for port [%C] with ObjectID [%C]\n",
+ pa->name (), pa->oid ()));
+
+ try
+ {
+ this->pa_ [pa->oid ()] = Port_Activator::_duplicate (pa);
+ }
+ catch (...)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "Servant_Activator_i::register_port_activator - "
+ "Unable to register a port activator for port [%C] with ObjectID [%C]\n",
+ pa->name (), pa->oid ()));
+ return false;
+ }
+
+ return true;
+ }
+}
diff --git a/modules/CIAO/ciao/Containers/Servant_Activator.h b/modules/CIAO/ciao/Containers/Servant_Activator.h
new file mode 100644
index 00000000000..bf228c48e18
--- /dev/null
+++ b/modules/CIAO/ciao/Containers/Servant_Activator.h
@@ -0,0 +1,100 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Servant_Activator.h
+ *
+ * $Id$
+ *
+ * @authors Balachandran Natarajan <bala@dre.vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef CIAO_SERVANT_ACTIVATOR_H
+#define CIAO_SERVANT_ACTIVATOR_H
+
+#include /**/ "ace/pre.h"
+
+#include "CIAO_Servant_Activator_export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Array_Base.h"
+#include "tao/PortableServer/ServantActivatorC.h"
+#include "tao/LocalObject.h"
+#include "ciao/Containers/CIAO_Servant_ActivatorC.h"
+
+#include <map>
+#include <string>
+
+namespace CIAO
+{
+ class Port_Activator;
+
+ /**
+ * @class Servant_Activator
+ *
+ * @brief Activator that is registered with the POA for facet and
+ * consumer servants.
+ *
+ * This class acts like a factory in some sense. This factory is
+ * registered with the POA with RETAIN policy. When the factory gets
+ * a call back as part of the upcall, this factory looks at the
+ * list of port activators registered, uses the OID to pick the
+ * right one (yes a linear algorithm is used), calls activate () on
+ * it which returns the servant for *that* port.
+ */
+ class CIAO_SERVANT_ACTIVATOR_Export Servant_Activator_i
+ : public virtual ::CIAO::Servant_Activator,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Servant_Activator_i (CORBA::ORB_ptr o);
+
+ virtual ~Servant_Activator_i (void);
+
+ virtual ::CORBA::Boolean update_port_activator (
+ const ::PortableServer::ObjectId &oid);
+
+ virtual ::CORBA::Boolean register_port_activator (
+ ::CIAO::Port_Activator_ptr pa);
+
+ /// Template methods overridden to get callbacks.
+ /**
+ * If you would like to know the details of the following two
+ * methods, please PortableServer documentation. This is probably
+ * not the place to document what these mean.
+ */
+ virtual PortableServer::Servant incarnate (
+ const PortableServer::ObjectId &oid,
+ PortableServer::POA_ptr poa);
+
+ virtual void etherealize (const PortableServer::ObjectId &oid,
+ PortableServer::POA_ptr adapter,
+ PortableServer::Servant servant,
+ CORBA::Boolean cleanup_in_progress,
+ CORBA::Boolean remaining_activations);
+ /// Local helper methods
+
+ private:
+ /// Pointer to our ORB
+ CORBA::ORB_var orb_;
+
+ typedef std::map <std::string, Port_Activator_var> Port_Activators;
+
+ /// Array of port activators
+ Port_Activators pa_;
+
+ /// Running index of the slot that has been just filled in.
+ size_t slot_index_;
+
+ /// Mutex that synchronizes access to the array.
+ TAO_SYNCH_MUTEX mutex_;
+ };
+}
+
+#include /**/ "ace/post.h"
+
+#endif /*CIAO_SERVANT_ACTIVATOR_H*/
diff --git a/modules/CIAO/ciao/Containers/Session/Session_Container.cpp b/modules/CIAO/ciao/Containers/Session/Session_Container.cpp
new file mode 100644
index 00000000000..ae909f0691a
--- /dev/null
+++ b/modules/CIAO/ciao/Containers/Session/Session_Container.cpp
@@ -0,0 +1,920 @@
+// $Id$
+
+#include "Session_Container.h"
+
+#include "tao/Utils/PolicyList_Destroyer.h"
+#include "ciao/Containers/Servant_Activator.h"
+#include "ccm/ComponentServer/CCM_ComponentServer_BaseC.h"
+#include "ciao/ComponentServer/CIAO_ComponentServerC.h"
+#include "ciao/Servants/Servant_Impl_Base.h"
+#include "ciao/Logger/Log_Macros.h"
+
+#if !defined (__ACE_INLINE__)
+# include "Session_Container.inl"
+#endif /* __ACE_INLINE__ */
+
+namespace CIAO
+{
+ ///////////////////////////////////////////////////////////////
+
+ ACE_Atomic_Op <TAO_SYNCH_MUTEX, unsigned long>
+ Session_Container::serial_number_ (0);
+
+ Session_Container::Session_Container (CORBA::ORB_ptr o,
+ Deployment::CIAO_Container_i *container_impl,
+ bool static_config_flag,
+ const Static_Config_EntryPoints_Maps* maps,
+ const char *name,
+ const CORBA::PolicyList *more_policies)
+ : Container_i (o, container_impl),
+ number_ (0),
+ static_config_flag_ (static_config_flag),
+ static_entrypts_maps_ (maps),
+ sa_ (0)
+ {
+ this->init (name, more_policies);
+ }
+
+ Session_Container::~Session_Container (void)
+ {
+ if (! CORBA::is_nil (this->component_poa_.in ()))
+ {
+ this->component_poa_->destroy (1, 1);
+ }
+
+ if (! CORBA::is_nil (this->facet_cons_poa_.in ()))
+ {
+ this->facet_cons_poa_->destroy (1, 1);
+ }
+
+ if (! CORBA::is_nil (this->home_servant_poa_.in ()))
+ {
+ this->home_servant_poa_->destroy (1, 1);
+ }
+
+ // delete this->sa_;
+ }
+
+ void
+ Session_Container::init (const char *name,
+ const CORBA::PolicyList *more_policies)
+ {
+ CIAO_TRACE ("Session_Container::init");
+
+ char buffer[MAXPATHLEN];
+
+ if (name == 0)
+ {
+ this->number_ = ++Session_Container::serial_number_;
+ CIAO_DEBUG ((LM_TRACE, CLINFO "Session_Container::init - "
+ "Constructing container name from serial number %u\n",
+ this->number_));
+ ACE_OS::sprintf (buffer,
+ "CIAO::Session_Container-%ld",
+ this->number_);
+ name = buffer;
+ }
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO "Session_Container::init - "
+ "Initializing a container with name %C\n",
+ name));
+
+ CORBA::Object_var poa_object =
+ this->orb_->resolve_initial_references ("RootPOA");
+
+ if (CORBA::is_nil (poa_object.in ()))
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "CIAO::Session_Container: Unable to initialize the POA.\n"));
+ throw Components::CreateFailure ();
+ }
+
+ PortableServer::POA_var root_poa =
+ PortableServer::POA::_narrow (poa_object.in ());
+
+ this->create_component_POA (name,
+ more_policies,
+ root_poa.in ());
+
+ ACE_CString port_poa_name (name);
+ port_poa_name += ":Port_POA";
+ this->create_facet_consumer_POA (port_poa_name.c_str (),
+ more_policies,
+ root_poa.in ());
+
+ PortableServer::POAManager_var poa_manager =
+ root_poa->the_POAManager ();
+
+ poa_manager->activate ();
+ }
+
+ void
+ Session_Container::create_component_POA (const char *name,
+ const CORBA::PolicyList *p,
+ PortableServer::POA_ptr root)
+ {
+ CIAO_TRACE ("Session_Container::create_component_POA");
+
+ // Set up proper poa policies here. Default policies seems to be
+ // fine for session container. If you add some other default
+ // policies here, then you need to "add" more_policies below
+ // instead of simply assigning more_policies to the init policy
+ // list.
+ CORBA::PolicyList policies (0);
+
+ if (p != 0)
+ {
+ policies = *p;
+ }
+
+ PortableServer::POAManager_var poa_manager =
+ root->the_POAManager ();
+
+ this->component_poa_ =
+ root->create_POA (name, poa_manager.in (), policies);
+ }
+
+ void
+ Session_Container::create_facet_consumer_POA (const char *name,
+ const CORBA::PolicyList *p,
+ PortableServer::POA_ptr root)
+ {
+ CIAO_TRACE ("Session_Container::create_facet_consumer_POA");
+
+ PortableServer::POAManager_var poa_manager = root->the_POAManager ();
+ CORBA::ULong p_length = 0;
+
+ if (p != 0)
+ {
+ p_length = p->length ();
+ }
+
+ TAO::Utils::PolicyList_Destroyer policies (p_length + 3);
+ policies.length (p_length + 3);
+
+ policies[0] =
+ root->create_id_assignment_policy (PortableServer::USER_ID);
+
+ // Servant Manager Policy
+ policies[1] =
+ root->create_request_processing_policy (PortableServer::USE_SERVANT_MANAGER);
+
+ // Servant Retention Policy
+ policies[2] =
+ root->create_servant_retention_policy (PortableServer::RETAIN);
+
+ for (CORBA::ULong i = 0; i < p_length; ++i)
+ {
+ policies[i+3] = (*p)[i];
+ }
+
+ this->facet_cons_poa_ =
+ root->create_POA (name,
+ poa_manager.in (),
+ policies);
+
+ Servant_Activator_i *sa = 0;
+ ACE_NEW_THROW_EX (sa,
+ Servant_Activator_i (this->orb_.in ()),
+ CORBA::NO_MEMORY ());
+ this->sa_ = sa;
+
+ this->facet_cons_poa_->set_servant_manager (this->sa_.in ());
+ }
+
+ CORBA::Object_ptr
+ Session_Container::install_servant (PortableServer::Servant p,
+ Container_Types::OA_Type t,
+ PortableServer::ObjectId_out oid)
+ {
+ CIAO_TRACE ("Session_Container::install_servant");
+
+ PortableServer::POA_ptr tmp = PortableServer::POA::_nil();
+
+ if (t == Container_Types::COMPONENT_t ||
+ t == Container_Types::HOME_t)
+ {
+ tmp = this->component_poa_.in ();
+ }
+ else
+ {
+ tmp = this->facet_cons_poa_.in ();
+ }
+
+ PortableServer::ObjectId_var tmp_id = tmp->activate_object (p);
+
+ CORBA::Object_var objref = tmp->id_to_reference (tmp_id.in ());
+ oid = tmp_id._retn ();
+
+ return objref._retn ();
+ }
+
+ //@@ Apparently we need to be cautious when handling the exception
+ // thrown here. We should make sure that new DnC interfaces
+ // NodeApplication/NodeApplicationManager etc will cache the new
+ // exceptions--> rethrow of new exceptions is needed.
+ // --Tao
+ Components::CCMHome_ptr
+ Session_Container::install_home (const char *primary_artifact,
+ const char *entry_point,
+ const char *servant_artifact,
+ const char *servant_entrypoint,
+ const char *name)
+ {
+ CIAO_TRACE ("Session_Container::install_home");
+
+ HomeFactory hcreator = 0;
+ HomeServantFactory screator = 0;
+
+ if (!this->static_config_flag_)
+ {
+ CIAO_DEBUG ((LM_DEBUG, CLINFO
+ "Session_Container::install_home - "
+ "Loading home [%C] from shared libraries\n",
+ name));
+ CIAO_DEBUG ((LM_DEBUG, CLINFO
+ "Session_Container::install_home - "
+ "Executor library [%C] with entrypoint [%C]\n",
+ primary_artifact, entry_point));
+ CIAO_DEBUG ((LM_DEBUG, CLINFO
+ "Session_Container::install_home - "
+ "Servant library [%C] with entrypoint [%C]\n",
+ servant_artifact, servant_entrypoint));
+
+ if (primary_artifact == 0 || servant_artifact == 0)
+ {
+ ACE_CString exception;
+
+ if (primary_artifact == 0)
+ {
+ exception = "Null component executor DLL name";
+ }
+
+ if (servant_artifact == 0)
+ {
+ exception = "Null component servant DLL name";
+ }
+
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "Session_Container::install_home - "
+ "ERROR: %C\n",
+ exception.c_str ()));
+
+ throw Components::Deployment::UnknownImplId ();
+ }
+
+ ACE_DLL executor_dll;
+ ACE_DLL servant_dll;
+
+ if (executor_dll.open (ACE_TEXT_CHAR_TO_TCHAR (primary_artifact),
+ ACE_DEFAULT_SHLIB_MODE,
+ 0) != 0)
+ {
+ ACE_CString error ("Failed to open executor DLL: ");
+ error += primary_artifact;
+
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "Session_Container::install_home - "
+ "ERROR in opening the executor DLL [%C]\n",
+ primary_artifact));
+
+ throw Components::Deployment::UnknownImplId ();
+ }
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "Session_Container::install_home - "
+ "Executor DLL successfully opened\n"));
+
+ if (servant_dll.open (ACE_TEXT_CHAR_TO_TCHAR (servant_artifact),
+ ACE_DEFAULT_SHLIB_MODE,
+ 0) != 0)
+ {
+ ACE_CString error ("Failed to open executor DLL: ");
+ error += servant_artifact;
+
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "Session_Container::install_home - "
+ "ERROR in opening the servant DLL [%C]\n",
+ servant_artifact));
+
+ throw Components::Deployment::UnknownImplId ();
+ }
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "Session_Container::install_home - "
+ "Servant DLL successfully openend.\n"));
+
+ if (entry_point == 0 || servant_entrypoint == 0)
+ {
+ ACE_CString error ("Entry point is null for ");
+
+ if (entry_point == 0)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "Session_Container::install_home - "
+ "ERROR in opening the executor entry point "
+ "for executor DLL [%C]\n",
+ primary_artifact));
+ error += primary_artifact;
+ }
+ else
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "Session_Container::install_home - "
+ "ERROR in opening the servant entry point "
+ "for servant DLL [%C]\n",
+ servant_artifact));
+ error += servant_artifact;
+ }
+
+ throw Components::Deployment::ImplEntryPointNotFound ();
+ }
+
+ // We have to do this casting in two steps because the C++
+ // standard forbids casting a pointer-to-object (including
+ // void*) directly to a pointer-to-function.
+ void *void_ptr = executor_dll.symbol (ACE_TEXT_CHAR_TO_TCHAR (entry_point));
+ ptrdiff_t tmp_ptr = reinterpret_cast<ptrdiff_t> (void_ptr);
+ hcreator = reinterpret_cast<HomeFactory> (tmp_ptr);
+
+ void_ptr = servant_dll.symbol (ACE_TEXT_CHAR_TO_TCHAR (servant_entrypoint));
+ tmp_ptr = reinterpret_cast<ptrdiff_t> (void_ptr);
+ screator = reinterpret_cast<HomeServantFactory> (tmp_ptr);
+ }
+ else
+ {
+ CIAO_DEBUG ((LM_DEBUG, CLINFO
+ "Session_Container::install_home - "
+ "Loading statically linked home [%C]\n",
+ name));
+
+ if (static_entrypts_maps_ == 0
+ || static_entrypts_maps_->home_creator_funcptr_map_ == 0
+ || static_entrypts_maps_->home_servant_creator_funcptr_map_ == 0)
+ {
+ CIAO_DEBUG ((LM_ERROR, CLINFO
+ "Session_Container::install_home - ERROR: Static entrypoint "
+ "maps are null or imcomplete.\n"));
+ throw Components::Deployment::ImplEntryPointNotFound ();
+ }
+
+ ACE_CString entry_point_str (entry_point);
+ static_entrypts_maps_->home_creator_funcptr_map_->find (entry_point_str,
+ hcreator);
+
+ ACE_CString servant_entrypoint_str (servant_entrypoint);
+ static_entrypts_maps_->home_servant_creator_funcptr_map_->find (
+ servant_entrypoint_str, screator);
+ }
+
+ if (hcreator == 0 || screator == 0)
+ {
+ ACE_CString error ("Entry point ");
+
+ if (hcreator == 0)
+ {
+ error += entry_point;
+ error += " invalid in dll ";
+ error += primary_artifact;
+ }
+ else
+ {
+ error += servant_entrypoint;
+ error += " invalid in dll ";
+ error += servant_artifact;
+ }
+
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "Session_Container::install_home - Error: %C\n",
+ error.c_str ()));
+
+ throw Components::Deployment::ImplEntryPointNotFound ();
+ }
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "Session_Container::install_home - Loading home executor\n"));
+ Components::HomeExecutorBase_var home_executor = hcreator ();
+
+ if (CORBA::is_nil (home_executor.in ()))
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "Session_Container::install_home - "
+ "Home executor factory failed.\n"));
+ throw Components::Deployment::InstallationFailure ();
+ }
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "Session_Container::install_home - Loading home servant\n"));
+ PortableServer::Servant home_servant = screator (home_executor.in (),
+ this,
+ name);
+
+ if (home_servant == 0)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "Session_Container::install_home - "
+ "Home servant factory failed.\n"));
+ throw Components::Deployment::InstallationFailure ();
+ }
+
+ PortableServer::ServantBase_var safe (home_servant);
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "Session_Container::install_home - Installing home servant\n"));
+
+ PortableServer::ObjectId_var oid;
+
+ CORBA::Object_var objref =
+ this->install_servant (home_servant, Container_Types::HOME_t, oid.out ());
+
+ Components::CCMHome_var homeref =
+ Components::CCMHome::_narrow (objref.in ());
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "Session_Container::install_home - Home successfully created with name\n"));
+
+ return homeref._retn ();
+ }
+
+ Components::CCMObject_ptr
+ Session_Container::install_component (const char *primary_artifact,
+ const char *entry_point,
+ const char *servant_artifact,
+ const char *servant_entrypoint,
+ const char *name)
+ {
+ CIAO_TRACE ("Session_Container::install_component");
+
+ ComponentFactory ccreator = 0;
+ ComponentServantFactory screator = 0;
+
+ if (!this->static_config_flag_)
+ {
+ CIAO_DEBUG ((LM_DEBUG, CLINFO
+ "Session_Container::install_component - "
+ "Loading component [%C] from shared libraries\n",
+ name));
+ CIAO_DEBUG ((LM_DEBUG, CLINFO
+ "Session_Container::install_component - "
+ "Executor library [%C] with entrypoint [%C]\n",
+ primary_artifact, entry_point));
+ CIAO_DEBUG ((LM_DEBUG, CLINFO
+ "Session_Container::install_component - "
+ "Servant library [%C] with entrypoint [%C]\n",
+ servant_artifact, servant_entrypoint));
+
+ ACE_DLL executor_dll, servant_dll;
+
+ if (primary_artifact == 0 || servant_artifact == 0)
+ {
+ ACE_CString exception;
+
+ if (primary_artifact == 0)
+ {
+ exception = "Null component executor DLL name";
+ }
+
+ if (servant_artifact == 0)
+ {
+ exception = "Null component servant DLL name";
+ }
+
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "Session_Container::install_component -"
+ "ERROR: %C\n",
+ exception.c_str ()));
+
+ throw Components::Deployment::UnknownImplId ();
+ }
+
+ if (executor_dll.open (ACE_TEXT_CHAR_TO_TCHAR (primary_artifact),
+ ACE_DEFAULT_SHLIB_MODE,
+ 0) != 0)
+ {
+ ACE_CString error ("Failed to open executor DLL: ");
+ error += primary_artifact;
+
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "Session_Container::install_component - "
+ "ERROR in opening the executor DLL [%C]\n",
+ primary_artifact));
+
+ throw Components::Deployment::UnknownImplId ();
+ }
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "Session_Container::install_component - Executor DLL successfully opened\n"));
+
+ if (servant_dll.open (ACE_TEXT_CHAR_TO_TCHAR (servant_artifact),
+ ACE_DEFAULT_SHLIB_MODE,
+ 0) != 0)
+ {
+ ACE_CString error ("Failed to open executor DLL: ");
+ error += servant_artifact;
+
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "Session_Container::install_component - "
+ "ERROR in opening the servant DLL [%C]\n",
+ servant_artifact));
+
+ throw Components::Deployment::UnknownImplId ();
+ }
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "Session_Container::install_component - Servant DLL successfully openend.\n"));
+
+ if (entry_point == 0 || servant_entrypoint == 0)
+ {
+ ACE_CString error ("Entry point is null for ");
+
+ if (entry_point == 0)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "Session_Container::install_component - "
+ "ERROR in opening the executor entry point "
+ "for executor DLL [%C]\n",
+ primary_artifact));
+ error += primary_artifact;
+ }
+ else
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "Session_Container::install_component - "
+ "ERROR in opening the servant entry point "
+ "for servant DLL [%C]\n",
+ servant_artifact));
+ error += servant_artifact;
+ }
+
+ throw Components::Deployment::ImplEntryPointNotFound ();
+ }
+
+ // We have to do this casting in two steps because the C++
+ // standard forbids casting a pointer-to-object (including
+ // void*) directly to a pointer-to-function.
+ void *void_ptr = executor_dll.symbol (ACE_TEXT_CHAR_TO_TCHAR (entry_point));
+ ptrdiff_t tmp_ptr = reinterpret_cast<ptrdiff_t> (void_ptr);
+ ccreator = reinterpret_cast<ComponentFactory> (tmp_ptr);
+
+ void_ptr = servant_dll.symbol (ACE_TEXT_CHAR_TO_TCHAR (servant_entrypoint));
+ tmp_ptr = reinterpret_cast<ptrdiff_t> (void_ptr);
+ screator = reinterpret_cast<ComponentServantFactory> (tmp_ptr);
+ }
+ else
+ {
+ CIAO_DEBUG ((LM_DEBUG, CLINFO
+ "Session_Container::install_component - "
+ "Loading statically linked component [%C]\n",
+ name));
+
+ if (static_entrypts_maps_ == 0
+ || static_entrypts_maps_->component_creator_funcptr_map_ == 0
+ || static_entrypts_maps_->component_servant_creator_funcptr_map_ == 0)
+ {
+ CIAO_DEBUG ((LM_ERROR, CLINFO
+ "Session_Container::install_component - "
+ "ERROR: Static entrypoint "
+ "maps are null or imcomplete.\n"));
+ throw Components::Deployment::ImplEntryPointNotFound ();
+ }
+
+ ACE_CString entry_point_str (entry_point);
+ static_entrypts_maps_->component_creator_funcptr_map_->find (entry_point_str,
+ ccreator);
+
+ ACE_CString servant_entrypoint_str (servant_entrypoint);
+ static_entrypts_maps_->component_servant_creator_funcptr_map_->find (servant_entrypoint_str,
+ screator);
+ }
+
+ if (ccreator == 0 || screator == 0)
+ {
+ ACE_CString error ("Entry point ");
+
+ if (ccreator == 0)
+ {
+ error += entry_point;
+ error += " invalid in dll ";
+ error += primary_artifact;
+ }
+ else
+ {
+ error += servant_entrypoint;
+ error += " invalid in dll ";
+ error += servant_artifact;
+ }
+
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "Session_Container::install_component - Error: %C\n",
+ error.c_str ()));
+
+ throw Components::Deployment::ImplEntryPointNotFound ();
+ }
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "Session_Container::install_component - "
+ "Loading component executor\n"));
+ Components::EnterpriseComponent_var component_executor = ccreator ();
+
+ if (CORBA::is_nil (component_executor.in ()))
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "Session_Container::install_component - "
+ "Component executor factory failed.\n"));
+ throw Components::Deployment::InstallationFailure ();
+ }
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "Session_Container::install_component - "
+ "Loading component servant\n"));
+ PortableServer::Servant component_servant = screator (component_executor.in (),
+ this,
+ name);
+
+ if (component_servant == 0)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "Session_Container::install_component - "
+ "Component servant factory failed.\n"));
+ throw Components::Deployment::InstallationFailure ();
+ }
+
+ PortableServer::ServantBase_var safe (component_servant);
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "Session_Container::install_component - "
+ "Installing component servant\n"));
+
+ PortableServer::ObjectId_var oid;
+
+ CORBA::Object_var objref =
+ this->install_servant (component_servant, Container_Types::COMPONENT_t, oid.out ());
+
+ Components::CCMObject_var componentref =
+ Components::CCMObject::_narrow (objref.in ());
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "Session_Container::install_component - "
+ "Component successfully created\n"));
+
+ return componentref._retn ();
+ }
+
+ void
+ Session_Container::activate_component (Components::CCMObject_ptr compref)
+ {
+ CIAO_TRACE("Session_Container::activate_component");
+
+ try
+ {
+
+ PortableServer::Servant svt;
+
+ try
+ {
+ svt = this->component_poa_->reference_to_servant (compref);
+ }
+ catch (...)
+ {
+ throw InvalidComponent ();
+ }
+
+ CIAO::Servant_Impl_Base *sess = dynamic_cast<CIAO::Servant_Impl_Base *> (svt);
+
+ if (sess == 0)
+ throw CIAO::InvalidComponent ();
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO "Session_Container::activate_component - "
+ "Invoking CCM activate on provided component object reference.\n"));
+ sess->activate_component ();
+ }
+ catch (const CIAO::InvalidComponent &)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "Session_Container::activate_component - "
+ "Failed to retrieve servant and/or cast to servant pointer.\n"));
+ throw;
+ }
+ catch (const CORBA::Exception &ex)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "Session_Container::activate_component - "
+ "Caught CORBA exception while activating a component: %C\n",
+ ex._info ().c_str ()));
+ throw;
+ }
+ catch (...)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "Session_Container::activate_component - "
+ "Caught unknown C++ eception while activating a component.\n"));
+ throw;
+ }
+ }
+
+ void
+ Session_Container::passivate_component (Components::CCMObject_ptr compref)
+ {
+ CIAO_TRACE ("Session_Container::passivate_component");
+
+ try
+ {
+ PortableServer::Servant svt;
+
+ try
+ {
+ svt = this->component_poa_->reference_to_servant (compref);
+ }
+ catch (...)
+ {
+ throw InvalidComponent ();
+ }
+
+ CIAO::Servant_Impl_Base *sess = dynamic_cast<CIAO::Servant_Impl_Base *> (svt);
+
+ if (sess == 0)
+ throw CIAO::InvalidComponent ();
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO "Session_Container::passivate_component - "
+ "Invoking CCM activate on provided component object reference.\n"));
+ sess->passivate_component ();
+ }
+ catch (const CIAO::InvalidComponent &)
+ {
+ throw;
+ }
+ catch (const CORBA::Exception &ex)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "Session_Container::passivate_component - "
+ "Caught CORBA exception while passivating a component: %C\n",
+ ex._info ().c_str ()));
+ throw;
+ }
+ catch (...)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "Session_Container::passivate_component - "
+ "Caught unknown C++ eception while passivating a component.\n"));
+ throw;
+ }
+ }
+
+ void
+ Session_Container::uninstall (CORBA::Object_ptr objref, Container_Types::OA_Type y)
+ {
+ CIAO_TRACE ("Session_Container::uninstall");
+
+ PortableServer::Servant svnt;
+
+ switch (y)
+ {
+ case Container_Types::COMPONENT_t:
+ case Container_Types::HOME_t:
+ svnt = this->component_poa_->reference_to_servant (objref);
+ break;
+ default:
+ svnt = this->facet_cons_poa_->reference_to_servant (objref);
+ break;
+ }
+
+ PortableServer::ObjectId_var oid;
+ this->uninstall_servant (svnt, y, oid.out ());
+ }
+
+ void
+ Session_Container::uninstall_home (Components::CCMHome_ptr homeref)
+ {
+ CIAO_TRACE ("Session_Container::uninstall_home");
+
+ this->uninstall (homeref, Container_Types::HOME_t);
+ }
+
+ void
+ Session_Container::uninstall_component (Components::CCMObject_ptr homeref)
+ {
+ CIAO_TRACE ("Session_Container::uninstall_component");
+
+ PortableServer::Servant svnt = this->component_poa_->reference_to_servant (homeref);
+
+ if (svnt == 0)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "Session_Container::uninstall_component - "
+ "Unable to convert provided CCMObject reference to Servant."));
+ throw ::Components::RemoveFailure ();
+ }
+
+ CIAO::Servant_Impl_Base * svt = dynamic_cast < CIAO::Servant_Impl_Base * > (svnt);
+
+ if (svt == 0)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "Session_Container::uninstall_component - "
+ "Unable to convert provided servant reference to servant implementation."));
+ throw ::Components::RemoveFailure ();
+ }
+
+ svt->remove ();
+
+ //this->uninstall (homeref, Container_Types::COMPONENT_t);
+ }
+
+ void
+ Session_Container::uninstall_servant (PortableServer::Servant svnt,
+ Container_Types::OA_Type t,
+ PortableServer::ObjectId_out oid)
+ {
+ CIAO_TRACE ("Session_Container::uninstall_servant");
+
+ PortableServer::POA_ptr tmp = PortableServer::POA::_nil();
+
+ if ((t == Container_Types::COMPONENT_t) ||
+ (t == Container_Types::HOME_t))
+ {
+ CIAO_DEBUG ((LM_TRACE, CLINFO "Session_Container::uninstall_servant - "
+ "Removing component or home servant\n"));
+ tmp = this->component_poa_.in ();
+ }
+ else
+ {
+ CIAO_DEBUG ((LM_TRACE, CLINFO "Session_Container::uninstall_servant - "
+ "Removing facet or consumer servant\n"));
+ tmp = this->facet_cons_poa_.in ();
+ }
+
+ try
+ {
+ PortableServer::ObjectId_var tmp_id;
+ tmp_id = tmp->servant_to_id (svnt);
+ tmp->deactivate_object (tmp_id);
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO "Session_Container::uninstall_servant - "
+ "Servant successfully removed, reference count is %u\n",
+ svnt->_refcount_value () - 1));
+
+ svnt->_remove_ref ();
+
+ oid = tmp_id._retn ();
+ }
+ catch (const CORBA::Exception &ex)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "Session_Container::uninstall_servant - "
+ "Caught CORBA exception while uninstalling servant: %C\n",
+ ex._info ().c_str ()));
+ throw Components::RemoveFailure ();
+ }
+
+ }
+
+ void
+ Session_Container::add_servant_to_map (PortableServer::ObjectId &,
+ Dynamic_Component_Servant_Base*)
+ {
+ CIAO_TRACE ("Session_Container::add_servant_to_map");
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ void
+ Session_Container::delete_servant_from_map (PortableServer::ObjectId &)
+ {
+ CIAO_TRACE ("Session_Container::delete_servant_from_map");
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ void
+ Session_Container::deactivate_facet (const PortableServer::ObjectId &)
+ {
+ CIAO_TRACE ("Session_Container::deactivate_facet");
+ }
+
+ CORBA::Object_ptr
+ Session_Container::get_home_objref (PortableServer::Servant)
+ {
+ CIAO_TRACE ("Session_Container::get_home_objref");
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ CORBA::Object_ptr
+ Session_Container::generate_reference (const char *obj_id,
+ const char *repo_id,
+ Container_Types::OA_Type t)
+ {
+ CIAO_TRACE ("Session_Container::generate_reference");
+
+ PortableServer::POA_ptr tmp = PortableServer::POA::_nil();
+
+ if (t == Container_Types::COMPONENT_t ||
+ t == Container_Types::HOME_t)
+ {
+ tmp = this->component_poa_.in ();
+ }
+ else
+ {
+ tmp = this->facet_cons_poa_.in ();
+ }
+
+ PortableServer::ObjectId_var oid =
+ PortableServer::string_to_ObjectId (obj_id);
+
+ CORBA::String_var str = PortableServer::ObjectId_to_string (oid.in ());
+
+ CORBA::Object_var objref =
+ tmp->create_reference_with_id (oid.in (), repo_id);
+
+ return objref._retn ();
+ }
+}
diff --git a/modules/CIAO/ciao/Containers/Session/Session_Container.h b/modules/CIAO/ciao/Containers/Session/Session_Container.h
new file mode 100644
index 00000000000..75a4d5bb00a
--- /dev/null
+++ b/modules/CIAO/ciao/Containers/Session/Session_Container.h
@@ -0,0 +1,231 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Session_Container.h
+ *
+ * $Id$
+ *
+ * Header file for CIAO's container implementations
+ *
+ * @author Nanbor Wang <nanbor@cs.wustl.edu>
+ * @author Gan Deng <dengg@dre.vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef CIAO_SESSION_CONTAINER_H
+#define CIAO_SESSION_CONTAINER_H
+
+#include /**/ "ace/pre.h"
+
+#include "ciao/Containers/Session/Session_Container_export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "tao/PortableServer/Servant_Base.h"
+#include "ciao/Containers/Container_Base.h"
+
+namespace CIAO
+{
+ class Session_Container;
+ class Servant_Activator;
+ class Home_Servant_Impl_Base;
+
+ namespace Deployment
+ {
+ class CIAO_Container_i;
+ }
+
+ typedef ::Components::HomeExecutorBase_ptr (*HomeFactory) (void);
+ typedef ::PortableServer::Servant (*HomeServantFactory) (::Components::HomeExecutorBase_ptr p,
+ ::CIAO::Container_ptr c,
+ const char *ins_name);
+ typedef ::Components::EnterpriseComponent_ptr (*ComponentFactory) (void);
+ typedef ::PortableServer::Servant (*ComponentServantFactory) (::Components::EnterpriseComponent_ptr,
+ ::CIAO::Container_ptr,
+ const char *);
+
+ typedef ACE_Hash_Map_Manager_Ex<ACE_CString,
+ HomeFactory,
+ ACE_Hash<ACE_CString>,
+ ACE_Equal_To<ACE_CString>,
+ ACE_Null_Mutex>
+ HOMECREATOR_FUNCPTR_MAP;
+
+ typedef ACE_Hash_Map_Manager_Ex<ACE_CString,
+ HomeServantFactory,
+ ACE_Hash<ACE_CString>,
+ ACE_Equal_To<ACE_CString>,
+ ACE_Null_Mutex>
+ HOMESERVANTCREATOR_FUNCPTR_MAP;
+
+ typedef ACE_Hash_Map_Manager_Ex<ACE_CString,
+ ComponentFactory,
+ ACE_Hash<ACE_CString>,
+ ACE_Equal_To<ACE_CString>,
+ ACE_Null_Mutex>
+ COMPONENTCREATOR_FUNCPTR_MAP;
+
+ typedef ACE_Hash_Map_Manager_Ex<ACE_CString,
+ ComponentServantFactory,
+ ACE_Hash<ACE_CString>,
+ ACE_Equal_To<ACE_CString>,
+ ACE_Null_Mutex>
+ COMPONENTSERVANTCREATOR_FUNCPTR_MAP;
+
+
+ struct SESSION_CONTAINER_Export Static_Config_EntryPoints_Maps
+ {
+ /// Map of home creator entry point name and func ptr
+ HOMECREATOR_FUNCPTR_MAP* home_creator_funcptr_map_;
+
+ /// Map of home servant creator entry point name and func ptr
+ HOMESERVANTCREATOR_FUNCPTR_MAP* home_servant_creator_funcptr_map_;
+
+ /// Map of home creator entry point name and func ptr
+ COMPONENTCREATOR_FUNCPTR_MAP* component_creator_funcptr_map_;
+
+ /// Map of home servant creator entry point name and func ptr
+ COMPONENTSERVANTCREATOR_FUNCPTR_MAP* component_servant_creator_funcptr_map_;
+ };
+
+ class SESSION_CONTAINER_Export Session_Container : public Container_i
+ {
+ public:
+ Session_Container (CORBA::ORB_ptr o,
+ Deployment::CIAO_Container_i *container_impl,
+ bool static_config_flag = false,
+ const Static_Config_EntryPoints_Maps* static_entrypts_maps =0,
+ const char *name = 0,
+ const CORBA::PolicyList *more_policies = 0);
+
+ virtual ~Session_Container (void);
+
+ /**
+ * @brief Simply installing a home executor into the component.
+ *
+ * This operation install a home executor into the component. It
+ * requires the name of the DLLs to executor and the servant glue
+ * code, and the entry points to the respective DLLs. Currently,
+ * we don't try to manage the lifetime of DLL objects, but we
+ * should at some later point.
+ *
+ * @retval Home objref of the installed home.
+ */
+ /// Install a new home
+ virtual Components::CCMHome_ptr install_home (const char *primary_artifact,
+ const char *entry_point,
+ const char *servant_artifact,
+ const char *servant_entrypoint,
+ const char *name);
+
+ virtual void uninstall_home (Components::CCMHome_ptr homeref);
+
+ virtual Components::CCMObject_ptr install_component (const char *primary_artifact,
+ const char *entry_point,
+ const char *servant_artifact,
+ const char *servant_entrypoint,
+ const char *name);
+
+ /// Activate component
+ virtual void activate_component (Components::CCMObject_ptr compref);
+
+ virtual void passivate_component (Components::CCMObject_ptr compref);
+
+ virtual void uninstall_component (Components::CCMObject_ptr compref);
+
+ /// Uninstall a servant
+ virtual void uninstall_servant (PortableServer::Servant objref,
+ Container_Types::OA_Type type,
+ PortableServer::ObjectId_out oid);
+
+ /// Install a servant for component or home.
+ virtual CORBA::Object_ptr install_servant (PortableServer::Servant p,
+ Container_Types::OA_Type type,
+ PortableServer::ObjectId_out oid);
+
+ /// Get an object reference to a component or home from the servant.
+ virtual CORBA::Object_ptr get_objref (PortableServer::Servant p);
+
+ /// Uninstall a servant for component or home.
+ void uninstall (CORBA::Object_ptr objref, Container_Types::OA_Type t);
+
+ /// Uninstall a servant for component or home.
+ void uninstall (PortableServer::Servant svt, Container_Types::OA_Type t);
+
+ virtual void add_servant_to_map (PortableServer::ObjectId &oid,
+ Dynamic_Component_Servant_Base* servant);
+
+ virtual void delete_servant_from_map (PortableServer::ObjectId &oid);
+
+ // @@Jai, could yo please add documentation?
+ /*
+ * @@Jai, you may want to consider moving these away from the
+ * container interface. I know what you are going to say
+ * :-). Consider using dynamic_cast <> to access
+ * add_servant_to_map, delete_servant_from_map and
+ * deactivate_facet from the Swapping_Conatiner's interface. It
+ * would make the base container interface much cleaner.
+ */
+ virtual void deactivate_facet (const PortableServer::ObjectId &oid);
+
+ virtual CORBA::Object_ptr get_home_objref (PortableServer::Servant p);
+
+ /// Analog of the POA method that creates an object reference from
+ /// an object id string.
+ CORBA::Object_ptr generate_reference (const char *obj_id,
+ const char *repo_id,
+ Container_Types::OA_Type t);
+
+ /// Return the servant activator factory that activates the
+ /// servants for facets and consumers.
+ ::CIAO::Servant_Activator_ptr ports_servant_activator (void);
+
+ private:
+
+ /// Initialize the container with a name.
+ virtual void init (const char *name = 0,
+ const CORBA::PolicyList *more_policies = 0);
+
+ /// Create POA for the component.
+ /**
+ * This is the POA that is returned to the component applications
+ * if they need one.
+ */
+ void create_component_POA (const char *name,
+ const CORBA::PolicyList *p,
+ PortableServer::POA_ptr root);
+
+ /// Create POA for the facets and consumers alone.
+ void create_facet_consumer_POA (const char *name,
+ const CORBA::PolicyList *p,
+ PortableServer::POA_ptr root);
+
+ /// Not allowed to be
+ Session_Container (void);
+
+ protected:
+ unsigned long number_;
+
+ /// Static variable to store the highest number we have given out until
+ /// now
+ static ACE_Atomic_Op <TAO_SYNCH_MUTEX, unsigned long> serial_number_;
+
+ const bool static_config_flag_;
+ const Static_Config_EntryPoints_Maps* static_entrypts_maps_;
+
+ /// The servant activator factory used to activate facets and
+ /// consumer servants.
+ Servant_Activator_var sa_;
+ };
+}
+
+#if defined (__ACE_INLINE__)
+# include "Session_Container.inl"
+#endif /* __ACE_INLINE__ */
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_SESSION_CONTAINER_H */
diff --git a/modules/CIAO/ciao/Containers/Session/Session_Container.idl b/modules/CIAO/ciao/Containers/Session/Session_Container.idl
new file mode 100644
index 00000000000..65021db65c8
--- /dev/null
+++ b/modules/CIAO/ciao/Containers/Session/Session_Container.idl
@@ -0,0 +1,15 @@
+/**
+ * @file Session_Container.idl
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * $Id$
+ * Extends the basic container interface for session capabilities.
+ */
+
+#include "ciao/Containers/Container_Base.idl"
+
+module CIAO
+{
+ local interface Session_Container : Container
+ {
+ };
+};
diff --git a/modules/CIAO/ciao/Containers/Session/Session_Container.inl b/modules/CIAO/ciao/Containers/Session/Session_Container.inl
new file mode 100644
index 00000000000..03461c07ac6
--- /dev/null
+++ b/modules/CIAO/ciao/Containers/Session/Session_Container.inl
@@ -0,0 +1,13 @@
+// $Id$ -*- C++ -*-
+
+ACE_INLINE CORBA::Object_ptr
+CIAO::Session_Container::get_objref (PortableServer::Servant p)
+{
+ return this->the_POA ()->servant_to_reference (p);
+}
+
+ACE_INLINE CIAO::Servant_Activator_ptr
+CIAO::Session_Container::ports_servant_activator (void)
+{
+ return Servant_Activator::_duplicate(this->sa_.in ());
+}
diff --git a/modules/CIAO/ciao/Containers/Session/Session_Container.mpc b/modules/CIAO/ciao/Containers/Session/Session_Container.mpc
new file mode 100644
index 00000000000..261a5eb0e45
--- /dev/null
+++ b/modules/CIAO/ciao/Containers/Session/Session_Container.mpc
@@ -0,0 +1,30 @@
+// -*- MPC -*-
+// $Id$
+
+project(CIAO_Session_Container_idl) : ciaoidldefaults {
+ custom_only = 1
+ idlflags += -Wb,export_include=Session_Container_export.h \
+ -Wb,export_macro=SESSION_CONTAINER_Export \
+ -Gxhst -SS -Sci
+ IDL_Files {
+ Session_Container.idl
+ }
+}
+
+project(CIAO_Session_Container) : ccm_svnt, ciao_lib, ciao_container_base, utils, \
+ ccm_componentserver_stub, ciao_servant_activator, ciao_servant {
+ after += CIAO_Session_Container_idl
+ dynamicflags += SESSION_CONTAINER_BUILD_DLL
+
+ IDL_Files {
+ }
+ Source_Files {
+ Session_Container.cpp
+ }
+ Inline_Files {
+ Session_Container.inl
+ }
+ Header_Files {
+ Session_Container.h
+ }
+}
diff --git a/modules/CIAO/ciao/Contexts/Context.mpc b/modules/CIAO/ciao/Contexts/Context.mpc
new file mode 100644
index 00000000000..955521cfa3b
--- /dev/null
+++ b/modules/CIAO/ciao/Contexts/Context.mpc
@@ -0,0 +1,16 @@
+//$Id$
+project(CIAO_Context_Impl) : ccm_svnt, ciao_container_base, portableserver, ciao_output {
+ dynamicflags = CONTEXT_IMPL_BUILD_DLL
+ Source_Files {
+ Context_Impl_Base.cpp
+ Context_Impl_T.cpp
+ }
+ Header_Files {
+ Context_Impl_Base.h
+ Context_Impl_T.h
+ Context_Impl_export.h
+ }
+ Inline_Files {
+ Context_Impl_Base.inl
+ }
+}
diff --git a/modules/CIAO/ciao/Contexts/Context_Impl_Base.cpp b/modules/CIAO/ciao/Contexts/Context_Impl_Base.cpp
new file mode 100644
index 00000000000..d695b58025a
--- /dev/null
+++ b/modules/CIAO/ciao/Contexts/Context_Impl_Base.cpp
@@ -0,0 +1,76 @@
+// $Id$
+
+#include "Context_Impl_Base.h"
+
+#if !defined (__ACE_INLINE__)
+# include "Context_Impl_Base.inl"
+#endif /* __ACE_INLINE__ */
+
+#include "ciao/Containers/Container_BaseC.h"
+
+namespace CIAO
+{
+ Context_Impl_Base::Context_Impl_Base (void)
+ {
+ // This constructor is here to keep MSVC happy and should
+ // not be used at all. This constructor should be removed
+ // in the future. Until then, we have the ACE_ASSERT
+ // below to detect a runtime call to this constructor.
+ ACE_ASSERT (0);
+ }
+
+ Context_Impl_Base::Context_Impl_Base (Components::CCMHome_ptr home,
+ Container_ptr c)
+ : home_ (Components::CCMHome::_duplicate (home)),
+ container_ (Container::_duplicate (c))
+ {
+ }
+
+ Context_Impl_Base::~Context_Impl_Base (void)
+ {
+ }
+
+ // Operations from ::Components::CCMContext.
+
+ Components::Principal_ptr
+ Context_Impl_Base::get_caller_principal (void)
+ {
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ Components::CCMHome_ptr
+ Context_Impl_Base::get_CCM_home (void)
+ {
+ return Components::CCMHome::_duplicate (this->home_.in ());
+ }
+
+ CORBA::Boolean
+ Context_Impl_Base::get_rollback_only (void)
+ {
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ Components::Transaction::UserTransaction_ptr
+ Context_Impl_Base::get_user_transaction (void)
+ {
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ CORBA::Boolean
+ Context_Impl_Base::is_caller_in_role (const char * /* role */)
+ {
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ void
+ Context_Impl_Base::set_rollback_only (void)
+ {
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ CORBA::Object_ptr
+ Context_Impl_Base::resolve_service_reference(const char *)
+ {
+ throw CORBA::NO_IMPLEMENT ();
+ }
+}
diff --git a/modules/CIAO/ciao/Contexts/Context_Impl_Base.h b/modules/CIAO/ciao/Contexts/Context_Impl_Base.h
new file mode 100644
index 00000000000..4cb9954f061
--- /dev/null
+++ b/modules/CIAO/ciao/Contexts/Context_Impl_Base.h
@@ -0,0 +1,105 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Context_Impl_Base.h
+ *
+ * $Id$
+ *
+ * This file contains the non-template declaration of a base class for
+ * the template mixin for the generated context class.
+ *
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef CIAO_CONTEXT_IMPL_BASE_H
+#define CIAO_CONTEXT_IMPL_BASE_H
+
+#include /**/ "ace/pre.h"
+
+#include "Context_Impl_export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ccm/CCM_ContextC.h"
+
+namespace Components
+{
+ class CCMHome;
+ typedef CCMHome *CCMHome_ptr;
+
+ typedef
+ TAO_Objref_Var_T<
+ CCMHome
+ >
+ CCMHome_var;
+}
+
+namespace CIAO
+{
+ class Container;
+ typedef Container *Container_ptr;
+ typedef TAO_Objref_Var_T<Container> Container_var;
+
+ /**
+ * @class Context_Impl_Base
+ *
+ * @brief Non-template base class for Context_Impl.
+ *
+ * Holds the non-template parts of its child class
+ * Context_Impl.
+ */
+ class Context_Impl_Export Context_Impl_Base
+ : public virtual Components::CCMContext
+ {
+ public:
+ /// @todo This constructor should be declarated private but it seems
+ /// the compilers want it, have to sort this out in detail.
+ Context_Impl_Base (void);
+
+ Context_Impl_Base (Components::CCMHome_ptr home, Container_ptr c);
+
+ virtual ~Context_Impl_Base (void);
+
+ // Operations from ::Components::CCMContext.
+
+ virtual Components::Principal_ptr get_caller_principal ();
+
+ virtual Components::CCMHome_ptr get_CCM_home ();
+
+ virtual CORBA::Boolean get_rollback_only ();
+
+ virtual Components::Transaction::UserTransaction_ptr get_user_transaction ();
+
+ virtual CORBA::Boolean is_caller_in_role (const char *role);
+
+ virtual void set_rollback_only ();
+
+ virtual CORBA::Object_ptr resolve_service_reference(const char *service_id);
+
+ /// CIAO-specific.
+ CIAO::Container_ptr _ciao_the_Container (void) const;
+
+ /// Accessors for the private member.
+ const char *_ciao_instance_id (void) const;
+ void _ciao_instance_id (const char *instance_id);
+
+ protected:
+ Components::CCMHome_var home_;
+ Container_var container_;
+
+ private:
+ CORBA::String_var ciao_instance_id_;
+ };
+}
+
+#if defined (__ACE_INLINE__)
+# include "Context_Impl_Base.inl"
+#endif /* __ACE_INLINE__ */
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_CONTEXT_IMPL_BASE_H */
diff --git a/modules/CIAO/ciao/Contexts/Context_Impl_Base.inl b/modules/CIAO/ciao/Contexts/Context_Impl_Base.inl
new file mode 100644
index 00000000000..7365d9c0b48
--- /dev/null
+++ b/modules/CIAO/ciao/Contexts/Context_Impl_Base.inl
@@ -0,0 +1,24 @@
+// $Id$
+
+namespace CIAO
+{
+ // CIAO-specific.
+
+ ACE_INLINE CIAO::Container_ptr
+ Context_Impl_Base::_ciao_the_Container (void) const
+ {
+ return this->container_;
+ }
+
+ ACE_INLINE const char *
+ Context_Impl_Base::_ciao_instance_id (void) const
+ {
+ return this->ciao_instance_id_.in ();
+ }
+
+ ACE_INLINE void
+ Context_Impl_Base::_ciao_instance_id (const char *instance_id)
+ {
+ this->ciao_instance_id_ = instance_id;
+ }
+}
diff --git a/modules/CIAO/ciao/Contexts/Context_Impl_T.cpp b/modules/CIAO/ciao/Contexts/Context_Impl_T.cpp
new file mode 100644
index 00000000000..f3afa79af0e
--- /dev/null
+++ b/modules/CIAO/ciao/Contexts/Context_Impl_T.cpp
@@ -0,0 +1,63 @@
+// $Id$
+
+#ifndef CIAO_CONTEXT_IMPL_T_C
+#define CIAO_CONTEXT_IMPL_T_C
+
+#include "Context_Impl_T.h"
+
+namespace CIAO
+{
+ template <typename BASE_CTX,
+ typename SVNT,
+ typename COMP>
+ Context_Impl<BASE_CTX, SVNT, COMP>::Context_Impl (
+ Components::CCMHome_ptr the_home,
+ Container_ptr c,
+ SVNT *sv)
+ : Context_Impl_Base (the_home, c),
+ servant_ (sv)
+ {
+ }
+
+ template <typename BASE_CTX,
+ typename SVNT,
+ typename COMP>
+ Context_Impl<BASE_CTX, SVNT, COMP>::~Context_Impl (void)
+ {
+ }
+
+ // Operations from ::Components::SessionContext.
+
+ template <typename BASE_CTX,
+ typename SVNT,
+ typename COMP>
+ CORBA::Object_ptr
+ Context_Impl<BASE_CTX, SVNT, COMP>::get_CCM_object (void)
+ {
+ if (CORBA::is_nil (this->component_.in ()))
+ {
+ CORBA::Object_var obj;
+
+ try
+ {
+ obj = this->container_->get_objref (this->servant_);
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Caught Exception\n");
+ return CORBA::Object::_nil ();
+ }
+
+ this->component_ = COMP::_narrow (obj.in ());
+
+ if (CORBA::is_nil (this->component_.in ()))
+ {
+ throw CORBA::INTERNAL ();
+ }
+ }
+
+ return COMP::_duplicate (this->component_.in ());
+ }
+}
+
+#endif /* CIAO_CONTEXT_IMPL_T_C */
diff --git a/modules/CIAO/ciao/Contexts/Context_Impl_T.h b/modules/CIAO/ciao/Contexts/Context_Impl_T.h
new file mode 100644
index 00000000000..284251771cd
--- /dev/null
+++ b/modules/CIAO/ciao/Contexts/Context_Impl_T.h
@@ -0,0 +1,114 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Context_Impl_T.h
+ *
+ * $Id$
+ *
+ * This file contains the declaration of a mixin base class for
+ * the generated context class.
+ *
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ */
+//=============================================================================
+
+
+#ifndef CIAO_CONTEXT_IMPL_T_H
+#define CIAO_CONTEXT_IMPL_T_H
+
+#include /**/ "ace/pre.h"
+
+#include "Context_Impl_Base.h"
+#include "tao/LocalObject.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+TAO_BEGIN_VERSIONED_NAMESPACE_DECL
+namespace CORBA
+{
+ class SystemException;
+}
+
+namespace SecurityLevel2
+{
+ class Credentials;
+}
+TAO_END_VERSIONED_NAMESPACE_DECL
+
+namespace Components
+{
+ typedef SecurityLevel2::Credentials Principal;
+ typedef Principal *Principal_ptr;
+
+ class IllegalState;
+
+ namespace Transaction
+ {
+ class UserTransaction;
+ typedef UserTransaction *UserTransaction_ptr;
+ }
+}
+
+namespace CIAO
+{
+ class Container;
+ typedef Container *Container_ptr;
+
+ /**
+ * @class Context_Impl
+ *
+ * @brief Mixin base class for generated context.
+ *
+ * This class implements operations and contains parameterized
+ * members common to all generated servants.
+ */
+ template <typename BASE_CTX,
+ typename SVNT,
+ typename COMP>
+ class Context_Impl : public virtual BASE_CTX,
+ public virtual Context_Impl_Base,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ /// Type definition of the context type.
+ typedef BASE_CTX context_type;
+
+ /// Type definition of the var type for the context.
+ typedef typename context_type::_var_type _var_type;
+
+ /// Type definition of the servant type.
+ typedef SVNT servant_type;
+
+ /// Type definition of the component type.
+ typedef COMP component_type;
+
+ Context_Impl (Components::CCMHome_ptr the_home,
+ Container_ptr c,
+ SVNT *sv);
+
+ virtual ~Context_Impl (void);
+
+ // Operations from ::Components::SessionContext.
+
+ virtual CORBA::Object_ptr get_CCM_object ();
+
+ protected:
+ SVNT *servant_;
+ typename COMP::_var_type component_;
+ };
+}
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "Context_Impl_T.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("Context_Impl_T.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_CONTEXT_IMPL_T_H */
diff --git a/modules/CIAO/ciao/Contexts/Context_Impl_export.h b/modules/CIAO/ciao/Contexts/Context_Impl_export.h
new file mode 100644
index 00000000000..644dbfc00bb
--- /dev/null
+++ b/modules/CIAO/ciao/Contexts/Context_Impl_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl Context_Impl
+// ------------------------------
+#ifndef CONTEXT_IMPL_EXPORT_H
+#define CONTEXT_IMPL_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (CONTEXT_IMPL_HAS_DLL)
+# define CONTEXT_IMPL_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && CONTEXT_IMPL_HAS_DLL */
+
+#if !defined (CONTEXT_IMPL_HAS_DLL)
+# define CONTEXT_IMPL_HAS_DLL 1
+#endif /* ! CONTEXT_IMPL_HAS_DLL */
+
+#if defined (CONTEXT_IMPL_HAS_DLL) && (CONTEXT_IMPL_HAS_DLL == 1)
+# if defined (CONTEXT_IMPL_BUILD_DLL)
+# define Context_Impl_Export ACE_Proper_Export_Flag
+# define CONTEXT_IMPL_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define CONTEXT_IMPL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* CONTEXT_IMPL_BUILD_DLL */
+# define Context_Impl_Export ACE_Proper_Import_Flag
+# define CONTEXT_IMPL_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define CONTEXT_IMPL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* CONTEXT_IMPL_BUILD_DLL */
+#else /* CONTEXT_IMPL_HAS_DLL == 1 */
+# define Context_Impl_Export
+# define CONTEXT_IMPL_SINGLETON_DECLARATION(T)
+# define CONTEXT_IMPL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* CONTEXT_IMPL_HAS_DLL == 1 */
+
+// Set CONTEXT_IMPL_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (CONTEXT_IMPL_NTRACE)
+# if (ACE_NTRACE == 1)
+# define CONTEXT_IMPL_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define CONTEXT_IMPL_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !CONTEXT_IMPL_NTRACE */
+
+#if (CONTEXT_IMPL_NTRACE == 1)
+# define CONTEXT_IMPL_TRACE(X)
+#else /* (CONTEXT_IMPL_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define CONTEXT_IMPL_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (CONTEXT_IMPL_NTRACE == 1) */
+
+#endif /* CONTEXT_IMPL_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/ciao/Logger/CIAOLoggerFactory.h b/modules/CIAO/ciao/Logger/CIAOLoggerFactory.h
new file mode 100644
index 00000000000..3abee97aaf1
--- /dev/null
+++ b/modules/CIAO/ciao/Logger/CIAOLoggerFactory.h
@@ -0,0 +1,19 @@
+// $Id$
+#ifndef LOGGERFACTORY_H_
+#define LOGGERFACTORY_H_
+
+#include "ace/Service_Object.h"
+#include "tao/ORB.h"
+#include "ace/Log_Msg_Backend.h"
+
+namespace CIAO
+ {
+
+ class CIAOLoggerFactory : public ACE_Service_Object
+ {
+ public:
+ virtual ACE_Log_Msg_Backend * get_logger_backend (CORBA::ORB_ptr orb) = 0;
+ };
+} // CIAO
+
+#endif /*LOGGERFACTORY_H_*/
diff --git a/modules/CIAO/ciao/Logger/CIAO_Logger_Export.h b/modules/CIAO/ciao/Logger/CIAO_Logger_Export.h
new file mode 100644
index 00000000000..b1760b426f9
--- /dev/null
+++ b/modules/CIAO/ciao/Logger/CIAO_Logger_Export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl CIAO_Logger
+// ------------------------------
+#ifndef CIAO_LOGGER_EXPORT_H
+#define CIAO_LOGGER_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (CIAO_LOGGER_HAS_DLL)
+# define CIAO_LOGGER_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && CIAO_LOGGER_HAS_DLL */
+
+#if !defined (CIAO_LOGGER_HAS_DLL)
+# define CIAO_LOGGER_HAS_DLL 1
+#endif /* ! CIAO_LOGGER_HAS_DLL */
+
+#if defined (CIAO_LOGGER_HAS_DLL) && (CIAO_LOGGER_HAS_DLL == 1)
+# if defined (CIAO_LOGGER_BUILD_DLL)
+# define CIAO_Logger_Export ACE_Proper_Export_Flag
+# define CIAO_LOGGER_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define CIAO_LOGGER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* CIAO_LOGGER_BUILD_DLL */
+# define CIAO_Logger_Export ACE_Proper_Import_Flag
+# define CIAO_LOGGER_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define CIAO_LOGGER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* CIAO_LOGGER_BUILD_DLL */
+#else /* CIAO_LOGGER_HAS_DLL == 1 */
+# define CIAO_Logger_Export
+# define CIAO_LOGGER_SINGLETON_DECLARATION(T)
+# define CIAO_LOGGER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* CIAO_LOGGER_HAS_DLL == 1 */
+
+// Set CIAO_LOGGER_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (CIAO_LOGGER_NTRACE)
+# if (ACE_NTRACE == 1)
+# define CIAO_LOGGER_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define CIAO_LOGGER_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !CIAO_LOGGER_NTRACE */
+
+#if (CIAO_LOGGER_NTRACE == 1)
+# define CIAO_LOGGER_TRACE(X)
+#else /* (CIAO_LOGGER_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define CIAO_LOGGER_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (CIAO_LOGGER_NTRACE == 1) */
+
+#endif /* CIAO_LOGGER_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/ciao/Logger/File_Logger_Backend.cpp b/modules/CIAO/ciao/Logger/File_Logger_Backend.cpp
new file mode 100644
index 00000000000..160926b8ecd
--- /dev/null
+++ b/modules/CIAO/ciao/Logger/File_Logger_Backend.cpp
@@ -0,0 +1,46 @@
+// $Id$
+#include "File_Logger_Backend.h"
+#include "ace/OS_NS_stdio.h"
+#include "ace/Log_Record.h"
+#include "ace/Log_Msg.h"
+#include "ciao/Logger/Log_Macros.h"
+
+namespace CIAO
+{
+
+ int
+ File_Logger_Backend::open (const ACE_TCHAR *)
+ {
+ CIAO_DEBUG ( (LM_DEBUG, CLINFO "Setting logger's output to file \"%s\"", this->filename_.c_str()));
+ this->fh_ = ACE_OS::fopen (this->filename_.c_str(), "w");
+ if (0 == this->fh_)
+ {
+ ACE_CString s = "Failed to open log file \"";
+ s += ACE_TEXT_ALWAYS_CHAR (this->filename_.c_str ());
+ s += "\"";
+ throw LoggerError (s.c_str());
+ }
+ return 0;
+ }
+
+ int
+ File_Logger_Backend::close (void)
+ {
+ if (0 != this->fh_)
+ {
+ ACE_OS::fclose (this->fh_);
+ this->fh_ = 0;
+ }
+ return 0;
+ }
+
+ ssize_t
+ File_Logger_Backend::log (ACE_Log_Record &log_record)
+ {
+ int res = log_record.print (0, ACE_Log_Msg::VERBOSE, this->fh_);
+ ACE_OS::fflush (this->fh_);
+ return res;
+ }
+
+}
+
diff --git a/modules/CIAO/ciao/Logger/File_Logger_Backend.h b/modules/CIAO/ciao/Logger/File_Logger_Backend.h
new file mode 100644
index 00000000000..99b899484c2
--- /dev/null
+++ b/modules/CIAO/ciao/Logger/File_Logger_Backend.h
@@ -0,0 +1,52 @@
+// $Id$
+#ifndef FILE_LOGGER_BACKEND_H_
+#define FILE_LOGGER_BACKEND_H_
+
+#include "ace/Log_Msg_Backend.h"
+#include "ace/SString.h"
+//#include "ace/String_Base.h"
+
+#include "CIAO_Logger_Export.h"
+
+namespace CIAO
+ {
+
+ class CIAO_Logger_Export LoggerError
+ {
+ public:
+ LoggerError (const char * msg)
+ : errmsg_ (msg) {};
+ ACE_CString errmsg_;
+ };
+
+ class CIAO_Logger_Export File_Logger_Backend : public ACE_Log_Msg_Backend
+ {
+ public:
+ File_Logger_Backend (const ACE_TCHAR * fname)
+ : fh_ (0), filename_ (fname) {}
+
+ virtual ~File_Logger_Backend (void)
+ {
+ this->close();
+ };
+
+ virtual int open (const ACE_TCHAR *logger_key);
+
+ virtual int reset (void)
+ {
+ this->close();
+ return this->open (0);
+ };
+
+ virtual int close (void);
+
+ virtual ssize_t log (ACE_Log_Record &log_record);
+
+ private:
+ FILE * fh_;
+ ACE_TString filename_;
+ };
+
+} // CIAO
+
+#endif /*FILE_LOGGER_BACKEND_H_*/
diff --git a/modules/CIAO/ciao/Logger/Log_Macros.h b/modules/CIAO/ciao/Logger/Log_Macros.h
new file mode 100644
index 00000000000..d6c7744e539
--- /dev/null
+++ b/modules/CIAO/ciao/Logger/Log_Macros.h
@@ -0,0 +1,82 @@
+// $Id$
+/**
+ * @file Log_Macros.h
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Macros used for logging in CIAO.
+ */
+
+#ifndef CIAO_LOG_MACROS_H_
+#define CIAO_LOG_MACROS_H_
+
+// default information printed with CIAO logging messages.
+
+#define CLINFO "(%P|%t) [%M] - %T - "
+
+#if (CIAO_NTRACE == 1)
+# if !defined (ACE_NTRACE)
+# define CIAO_TRACE(X) do {} while (0)
+# define CIAO_ENABLE_TRACE(X) do {} while (0)
+# define CIAO_DISABLE_TRACE(X) do {} while (0)
+# else
+# if (ACE_NTRACE == 0)
+# error CIAO_TRACE cannot be disabled if ACE_TRACE is enabled
+# else
+# define CIAO_TRACE(X) do {} while (0)
+# define CIAO_ENABLE_TRACE(X) do {} while (0)
+# define CIAO_DISABLE_TRACE(X) do {} while (0)
+# endif
+# endif
+#else
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define CIAO_TRACE(X) ACE_TRACE_IMPL(X)
+# define CIAO_ENABLE_TRACE() ACE_Trace::start_tracing ()
+# define CIAO_DISABLE_TRACE() ACE_Trace::stop_tracing ()
+# undef CLINFO // Make log messages indent with tracing.
+# define CLINFO "%I(%P|%t) [%M] - %T - "
+# include "ace/Trace.h"
+#endif /* CIAO_NTRACE */
+
+#if defined (CIAO_NLOGGING)
+# define CIAO_ERROR(X) do {} while (0)
+# define CIAO_DEBUG(X) do {} while (0)
+#define CIAO_ERROR_RETURN(X, Y) return (Y)
+#define CIAO_ERROR_BREAK(X) { break; }
+#else
+# if !defined (CIAO_ERROR)
+# define CIAO_ERROR(X) \
+ do { \
+ int __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 (CIAO_DEBUG)
+# define CIAO_DEBUG(X) \
+ do { \
+ int __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 (CIAO_ERROR_RETURN)
+# define CIAO_ERROR_RETURN(X, Y) \
+ do { \
+ int __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 (CIAO_ERROR_BREAK)
+# define CIAO_ERROR_BREAK(X) { CIAO_ERROR (X); break; }
+# endif
+#endif
+
+
+#endif
diff --git a/modules/CIAO/ciao/Logger/Logger.mpc b/modules/CIAO/ciao/Logger/Logger.mpc
new file mode 100644
index 00000000000..642071d4abe
--- /dev/null
+++ b/modules/CIAO/ciao/Logger/Logger.mpc
@@ -0,0 +1,18 @@
+// -*- MPC -*-
+// $Id$
+
+project(CIAO_Logger): ciao_lib, messaging {
+ sharedname = CIAO_Logger
+ dynamicflags = CIAO_LOGGER_BUILD_DLL
+
+ Source_Files {
+ File_Logger_Backend.cpp
+ Logger_Service.cpp
+ }
+ Header_Files {
+ }
+}
+
+
+
+
diff --git a/modules/CIAO/ciao/Logger/Logger_Service.cpp b/modules/CIAO/ciao/Logger/Logger_Service.cpp
new file mode 100644
index 00000000000..d5c1c9c5fbf
--- /dev/null
+++ b/modules/CIAO/ciao/Logger/Logger_Service.cpp
@@ -0,0 +1,151 @@
+// $Id$
+#include "Logger_Service.h"
+#include "Log_Macros.h"
+#include "ace/Get_Opt.h"
+#include "ace/CORBA_macros.h"
+#include "ace/Env_Value_T.h"
+#include "tao/SystemException.h"
+
+namespace CIAO
+{
+ Logger_Service::Logger_Service (void)
+ : filename_ (ACE_TEXT("")),
+ trace_ (false),
+ log_level_ (5)
+ {
+ }
+
+ 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("CIAO_LOG_LEVEL"), this->log_level_);
+ this->log_level_ = log;
+
+ ACE_Env_Value<int> trace (ACE_TEXT("CIAO_TRACE_ENABLE"), this->trace_);
+ this->trace_ = trace;
+
+ ACE_Env_Value<const ACE_TCHAR *> filename (ACE_TEXT("CIAO_LOG_FILE"), this->filename_.c_str ());
+ this->filename_ = filename;
+
+ this->parse_args (argc, argv);
+ this->set_levels ();
+
+ return 0;
+ }
+
+ void
+ Logger_Service::parse_args (int argc, ACE_TCHAR **argv)
+ {
+ const ACE_TCHAR *shortl = ACE_TEXT("-l");
+ const ACE_TCHAR *longl = ACE_TEXT("--log-level");
+ const ACE_TCHAR *tracel = ACE_TEXT("--trace");
+ const ACE_TCHAR *traces = ACE_TEXT("-t");
+ const ACE_TCHAR *lfl = ACE_TEXT("--log-file");
+ const ACE_TCHAR *lfs = ACE_TEXT("-f");
+
+ // We need to actually FIND the -l option, as the get_opt won't ignore
+ // the ORB options and such.
+ for (int i = 0; i < argc; ++i)
+ {
+ if (ACE_OS::strncmp (argv[i], traces, 2) == 0 ||
+ ACE_OS::strncmp (argv[i], tracel, 7) == 0)
+ {
+ this->trace_ = true;
+ continue;
+ }
+
+ if (ACE_OS::strncmp (argv[i], shortl, 2) == 0 ||
+ ACE_OS::strncmp (argv[i], longl,11 ) == 0)
+ {
+ if ((i + 1) < argc && *argv[i + 1] != '-')
+ {
+ int level = ACE_OS::atoi (argv[i + 1]);
+
+ if (level != 0)
+ this->log_level_ = level;
+ }
+ }
+
+ if (ACE_OS::strncmp (argv[i], lfs, 2) == 0 ||
+ ACE_OS::strncmp (argv[i], lfl, 10 ) == 0)
+ {
+ if ((i + 1) < argc && *argv[i + 1] != '-')
+ {
+ this->filename_ = argv[i+1];
+ }
+ }
+ }
+ }
+
+ void
+ Logger_Service::set_levels (void)
+ {
+ if (this->trace_)
+ {
+ CIAO_ENABLE_TRACE ();
+ this->log_level_ = 10;
+ }
+ else
+ {
+ CIAO_DISABLE_TRACE ();
+ }
+
+ u_long new_mask = 0;
+
+ if (this->log_level_ >= 9)
+ {
+ new_mask |= LM_TRACE;
+ }
+ if (this->log_level_ >= 8)
+ {
+ new_mask |= LM_DEBUG;
+ }
+ if (this->log_level_ >= 7)
+ {
+ new_mask |= LM_INFO;
+ }
+ if (this->log_level_ >= 6)
+ {
+ new_mask |= LM_NOTICE;
+ }
+ if (this->log_level_ >= 5)
+ {
+ new_mask |= LM_WARNING;
+ }
+ if (this->log_level_ >= 4)
+ {
+ new_mask |= LM_ERROR;
+ }
+ if (this->log_level_ >= 3)
+ {
+ new_mask |= LM_CRITICAL;
+ }
+ if (this->log_level_ >= 2)
+ {
+ new_mask |= LM_ALERT;
+ }
+ if (this->log_level_ >= 1)
+ {
+ new_mask |= LM_EMERGENCY;
+ }
+ ACE_Log_Msg::instance()->priority_mask(new_mask, ACE_Log_Msg::PROCESS);
+ CIAO_DEBUG ( (LM_TRACE, CLINFO "Logging level is set to %i\n", this->log_level_));
+ }
+
+ ACE_Log_Msg_Backend *
+ Logger_Service::get_logger_backend (CORBA::ORB_ptr)
+ {
+ File_Logger_Backend * the_backend;
+ ACE_NEW_THROW_EX (the_backend,
+ File_Logger_Backend (this->filename_.c_str()),
+ CORBA::NO_MEMORY());
+ return the_backend;
+ }
+
+} // CIAO
+
+using namespace CIAO;
+ACE_FACTORY_DEFINE (CIAO_Logger, Logger_Service)
+
diff --git a/modules/CIAO/ciao/Logger/Logger_Service.h b/modules/CIAO/ciao/Logger/Logger_Service.h
new file mode 100644
index 00000000000..0ebbd53d57e
--- /dev/null
+++ b/modules/CIAO/ciao/Logger/Logger_Service.h
@@ -0,0 +1,34 @@
+// $Id$
+#ifndef CIAO_LOGGER_SERVICE_H_
+#define CIAO_LOGGER_SERVICE_H_
+
+#include "CIAO_Logger_Export.h"
+#include "CIAOLoggerFactory.h"
+#include "File_Logger_Backend.h"
+
+namespace CIAO
+ {
+
+ class CIAO_Logger_Export Logger_Service : public CIAOLoggerFactory
+ {
+ public:
+ Logger_Service (void);
+
+ virtual int init (int argc, ACE_TCHAR * argv[]);
+ virtual ACE_Log_Msg_Backend * get_logger_backend (CORBA::ORB_ptr orb);
+
+ private:
+
+ void parse_args (int argc, ACE_TCHAR **argv);
+ void set_levels (void);
+
+ ACE_TString filename_;
+ bool trace_;
+ int log_level_;
+ };
+
+} // DAnCE
+
+ACE_FACTORY_DECLARE (CIAO_Logger, Logger_Service)
+
+#endif /*LOGGER_SERVICE_H_*/
diff --git a/modules/CIAO/ciao/Servants/CIAO_Port_Activator.idl b/modules/CIAO/ciao/Servants/CIAO_Port_Activator.idl
new file mode 100644
index 00000000000..593a9b33ce0
--- /dev/null
+++ b/modules/CIAO/ciao/Servants/CIAO_Port_Activator.idl
@@ -0,0 +1,37 @@
+/**
+ * @file CIAO_Port_Activator.idl
+ * @author Wiliam R. Otte <wotte@dre.vanderbilt.edu
+ * $Id$
+ * Local interface describing servant activators for component ports.
+ */
+
+#ifndef CIAO_PORT_ACTIVATOR_IDL_
+#define CIAO_PORT_ACTIVATOR_IDL_
+
+#include "tao/PortableServer/ServantActivator.pidl"
+
+module CIAO
+{
+ module Port_Activator_Types
+ {
+ enum Type
+ {
+ FACET,
+ SINK
+ };
+ };
+
+ local interface Port_Activator
+ {
+ // OID of port this activator encapsulates
+ attribute string oid;
+ // name of the port
+ readonly attribute string name;
+
+ PortableServer::Servant activate (in PortableServer::ObjectId oid);
+
+ void deactivate (in PortableServer::Servant servant);
+ };
+};
+
+#endif
diff --git a/modules/CIAO/ciao/Servants/CIAO_Servant_Impl_export.h b/modules/CIAO/ciao/Servants/CIAO_Servant_Impl_export.h
new file mode 100644
index 00000000000..c624a706b48
--- /dev/null
+++ b/modules/CIAO/ciao/Servants/CIAO_Servant_Impl_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl CIAO_Servant_Impl
+// ------------------------------
+#ifndef CIAO_SERVANT_IMPL_EXPORT_H
+#define CIAO_SERVANT_IMPL_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (CIAO_SERVANT_IMPL_HAS_DLL)
+# define CIAO_SERVANT_IMPL_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && CIAO_SERVANT_IMPL_HAS_DLL */
+
+#if !defined (CIAO_SERVANT_IMPL_HAS_DLL)
+# define CIAO_SERVANT_IMPL_HAS_DLL 1
+#endif /* ! CIAO_SERVANT_IMPL_HAS_DLL */
+
+#if defined (CIAO_SERVANT_IMPL_HAS_DLL) && (CIAO_SERVANT_IMPL_HAS_DLL == 1)
+# if defined (CIAO_SERVANT_IMPL_BUILD_DLL)
+# define CIAO_Servant_Impl_Export ACE_Proper_Export_Flag
+# define CIAO_SERVANT_IMPL_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define CIAO_SERVANT_IMPL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* CIAO_SERVANT_IMPL_BUILD_DLL */
+# define CIAO_Servant_Impl_Export ACE_Proper_Import_Flag
+# define CIAO_SERVANT_IMPL_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define CIAO_SERVANT_IMPL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* CIAO_SERVANT_IMPL_BUILD_DLL */
+#else /* CIAO_SERVANT_IMPL_HAS_DLL == 1 */
+# define CIAO_Servant_Impl_Export
+# define CIAO_SERVANT_IMPL_SINGLETON_DECLARATION(T)
+# define CIAO_SERVANT_IMPL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* CIAO_SERVANT_IMPL_HAS_DLL == 1 */
+
+// Set CIAO_SERVANT_IMPL_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (CIAO_SERVANT_IMPL_NTRACE)
+# if (ACE_NTRACE == 1)
+# define CIAO_SERVANT_IMPL_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define CIAO_SERVANT_IMPL_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !CIAO_SERVANT_IMPL_NTRACE */
+
+#if (CIAO_SERVANT_IMPL_NTRACE == 1)
+# define CIAO_SERVANT_IMPL_TRACE(X)
+#else /* (CIAO_SERVANT_IMPL_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define CIAO_SERVANT_IMPL_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (CIAO_SERVANT_IMPL_NTRACE == 1) */
+
+#endif /* CIAO_SERVANT_IMPL_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/ciao/Servants/Home_Servant_Impl_Base.cpp b/modules/CIAO/ciao/Servants/Home_Servant_Impl_Base.cpp
new file mode 100644
index 00000000000..eeeedb34d59
--- /dev/null
+++ b/modules/CIAO/ciao/Servants/Home_Servant_Impl_Base.cpp
@@ -0,0 +1,31 @@
+// $Id$
+
+#include "Home_Servant_Impl_Base.h"
+#include "ciao/Containers/Container_Base.h"
+
+namespace CIAO
+{
+ Home_Servant_Impl_Base::Home_Servant_Impl_Base (Container_ptr c)
+ : container_ (Container::_duplicate(c))
+ {
+ }
+
+ Home_Servant_Impl_Base::~Home_Servant_Impl_Base (void)
+ {
+ }
+
+ // Operations for CCMHome interface.
+
+ CORBA::IRObject_ptr
+ Home_Servant_Impl_Base::get_component_def (void)
+ {
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ CORBA::IRObject_ptr
+ Home_Servant_Impl_Base::get_home_def (void)
+ {
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+}
diff --git a/modules/CIAO/ciao/Servants/Home_Servant_Impl_Base.h b/modules/CIAO/ciao/Servants/Home_Servant_Impl_Base.h
new file mode 100644
index 00000000000..f1c6de82b60
--- /dev/null
+++ b/modules/CIAO/ciao/Servants/Home_Servant_Impl_Base.h
@@ -0,0 +1,67 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Home_Servant_Impl_Base.h
+ *
+ * $Id$
+ *
+ * This file contains the non-template declaration of a base class for
+ * the template mixin for the generated home servant class.
+ *
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef CIAO_HOME_SERVANT_IMPL_BASE_H
+#define CIAO_HOME_SERVANT_IMPL_BASE_H
+
+#include /**/ "ace/pre.h"
+
+#include "CIAO_Servant_Impl_export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ccm/CCM_HomeS.h"
+#include "ciao/Containers/Container_BaseC.h"
+
+namespace CIAO
+{
+ /**
+ * @class Home_Servant_Impl_Base
+ *
+ * @brief Non-template base class for Home_Servant_Impl.
+ *
+ * Holds the non-template parts of its child class
+ * Home_Servant_Impl.
+ */
+ class CIAO_Servant_Impl_Export Home_Servant_Impl_Base
+ : public virtual POA_Components::CCMHome
+ {
+ public:
+ Home_Servant_Impl_Base (Container_ptr c);
+
+ virtual ~Home_Servant_Impl_Base (void);
+
+ // Operations for CCMHome interface.
+
+ virtual ::CORBA::IRObject_ptr get_component_def (void);
+
+ virtual ::CORBA::IRObject_ptr get_home_def (void);
+
+ virtual void update_component_map (PortableServer::ObjectId &oid) = 0;
+
+ protected:
+ Container_var container_;
+
+ private:
+ /// Not to be used
+ Home_Servant_Impl_Base (void);
+ };
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_HOME_SERVANT_IMPL_BASE_H */
diff --git a/modules/CIAO/ciao/Servants/Home_Servant_Impl_T.cpp b/modules/CIAO/ciao/Servants/Home_Servant_Impl_T.cpp
new file mode 100644
index 00000000000..0fb77c96811
--- /dev/null
+++ b/modules/CIAO/ciao/Servants/Home_Servant_Impl_T.cpp
@@ -0,0 +1,225 @@
+// $Id$
+
+#ifndef CIAO_HOME_SERVANT_IMPL_T_C
+#define CIAO_HOME_SERVANT_IMPL_T_C
+
+#include "Home_Servant_Impl_T.h"
+#include "ccm/CCM_ObjectC.h"
+#include "ccm/CCM_EnterpriseComponentC.h"
+#include "ciao/Containers/Container_BaseC.h"
+#include "ciao/Logger/Log_Macros.h"
+
+namespace CIAO
+{
+ template <typename BASE_SKEL,
+ typename EXEC,
+ typename COMP_SVNT>
+ Home_Servant_Impl<BASE_SKEL,
+ EXEC,
+ COMP_SVNT>::Home_Servant_Impl (
+ typename EXEC::_ptr_type exe,
+ Container_ptr c,
+ const char *ins_name
+ )
+ : Home_Servant_Impl_Base (c),
+ ins_name_ (ins_name),
+ executor_ (EXEC::_duplicate (exe)),
+ serial_number_ (0)
+ {
+ CIAO_DEBUG ((LM_TRACE, CLINFO "Home_Servant_Impl<>::Home_Servant_Impl - "
+ "Creating servant for home with ID %C\n",
+ ins_name));
+ }
+
+ template <typename BASE_SKEL,
+ typename EXEC,
+ typename COMP_SVNT>
+ Home_Servant_Impl<BASE_SKEL,
+ EXEC,
+ COMP_SVNT>::~Home_Servant_Impl (void)
+ {
+ CIAO_TRACE ("Home_Servant_Impl<>::destructor");
+
+ OBJ_ITERATOR const end = this->objref_map_.end ();
+
+ for (OBJ_ITERATOR iter = this->objref_map_.begin ();
+ iter != end;
+ ++iter)
+ {
+ this->remove_component (((*iter).int_id_).in ());
+ }
+ }
+
+ // Operations for CCMHome interface.
+
+ template <typename BASE_SKEL,
+ typename EXEC,
+ typename COMP_SVNT>
+ void
+ Home_Servant_Impl<BASE_SKEL,
+ EXEC,
+ COMP_SVNT>::remove_component (
+ ::Components::CCMObject_ptr comp)
+ {
+ CIAO_TRACE ("Home_Servant_Impl<>::remove_component");
+
+ PortableServer::ObjectId_var oid =
+ this->container_->the_POA ()->reference_to_id (comp);
+
+ Components::CCMObject_var ccm_obj_var = Components::CCMObject::_nil ();
+ if (objref_map_.find (oid.in (), ccm_obj_var) != 0)
+ {
+ CIAO_ERROR ((LM_WARNING, CLINFO "Home_Servant_Impl<>::remove_component - Invalid component object reference\n"));
+ throw Components::RemoveFailure ();
+ }
+
+ typedef typename COMP_SVNT::_stub_type stub_type;
+ typename COMP_SVNT::_stub_var_type _ciao_comp =
+ stub_type::_narrow (ccm_obj_var.in ());
+
+ if (CORBA::is_nil (_ciao_comp.in ()))
+ {
+ throw Components::RemoveFailure ();
+ }
+
+ _ciao_comp->remove ();
+
+ CIAO_DEBUG ((LM_INFO, CLINFO "Home_Servant_Impl<>::remove_component - Removed the component\n"));
+ }
+
+ template <typename BASE_SKEL,
+ typename EXEC,
+ typename COMP_SVNT>
+ void
+ Home_Servant_Impl<BASE_SKEL,
+ EXEC,
+ COMP_SVNT>::update_component_map (
+ PortableServer::ObjectId &oid)
+ {
+ CIAO_TRACE ("Home_Servant_Impl<>::update_component_map");
+
+ Components::CCMObject_var ccm_obj_ptr;
+ if (objref_map_.unbind (oid, ccm_obj_ptr) != 0)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "Home_Servant_Impl<>::update_component_map - "
+ "Invalid component object reference\n"));
+ return;
+ }
+
+ return;
+ }
+
+ // Operations for keyless home interface.
+
+ template <typename BASE_SKEL,
+ typename EXEC,
+ typename COMP_SVNT>
+ Components::CCMObject_ptr
+ Home_Servant_Impl<BASE_SKEL,
+ EXEC,
+ COMP_SVNT>::create_component (void)
+ {
+ CIAO_TRACE ("Home_Servant_Impl<>::create_component");
+
+ return this->create ();
+ }
+
+ // Operations for implicit home interface.
+
+ template <typename BASE_SKEL,
+ typename EXEC,
+ typename COMP_SVNT>
+ typename COMP_SVNT::_stub_ptr_type
+ Home_Servant_Impl<BASE_SKEL,
+ EXEC,
+ COMP_SVNT>::create (void)
+ {
+ CIAO_TRACE ("Home_Servant_Impl<>::create");
+
+ if (this->executor_.in () == 0)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "Home_Servant_Impl<>:create - nil executor reference\n"));
+ throw CORBA::INTERNAL ();
+ }
+
+ ::Components::EnterpriseComponent_var _ciao_ec =
+ this->executor_->create ();
+
+ typedef typename COMP_SVNT::_exec_type exec_type;
+ typename COMP_SVNT::_exec_type::_var_type _ciao_comp =
+ exec_type::_narrow (_ciao_ec.in ());
+
+ return this->_ciao_activate_component (_ciao_comp.in ());
+ }
+
+ // CIAO-specific operations.
+
+ template <typename BASE_SKEL,
+ typename EXEC,
+ typename COMP_SVNT>
+ typename COMP_SVNT::_stub_ptr_type
+ Home_Servant_Impl<BASE_SKEL,
+ EXEC,
+ COMP_SVNT>::_ciao_activate_component (
+ typename COMP_SVNT::_exec_type::_ptr_type exe)
+ {
+ CIAO_TRACE ("Home_Servant_Impl<>::_ciao_activate_component");
+
+ CORBA::Object_var hobj = this->container_->get_objref (this);
+
+ Components::CCMHome_var home =
+ Components::CCMHome::_narrow (hobj.in ());
+
+ char buffer[256];
+ unsigned long serial = this->serial_number_++;
+ ACE_OS::sprintf (buffer,
+ "%ld",
+ serial);
+
+ typedef typename COMP_SVNT::_stub_type stub_type;
+ COMP_SVNT *svt = 0;
+ ACE_NEW_THROW_EX (svt,
+ COMP_SVNT (exe,
+ home.in (),
+ (this->ins_name_ + buffer).c_str (),
+ this,
+ this->container_),
+ CORBA::NO_MEMORY ());
+
+ PortableServer::ServantBase_var safe (svt);
+ PortableServer::ObjectId_var oid;
+
+ CORBA::Object_var objref =
+ this->container_->install_servant (svt,
+ Container_Types::COMPONENT_t,
+ oid.out ());
+
+ typedef typename COMP_SVNT::_stub_type stub_type;
+ typename COMP_SVNT::_stub_var_type ho = stub_type::_narrow (objref.in ());
+
+ Components::CCMObject_var ccmobjref =
+ Components::CCMObject::_narrow (objref.in ());
+
+ this->objref_map_.bind (
+ oid.in (),
+ Components::CCMObject::_duplicate (ccmobjref.in ()));
+
+ return ho._retn ();
+ }
+
+ template <typename BASE_SKEL,
+ typename EXEC,
+ typename COMP_SVNT>
+ void
+ Home_Servant_Impl<BASE_SKEL,
+ EXEC,
+ COMP_SVNT>::_ciao_passivate_component (
+ typename COMP_SVNT::_stub_ptr_type comp)
+ {
+ CIAO_TRACE ("Home_Servant_Impl<>::_ciao_passivate_component");
+
+ this->container_->uninstall_component (comp);
+ }
+}
+
+#endif /* CIAO_HOME_SERVANT_IMPL_T_C */
diff --git a/modules/CIAO/ciao/Servants/Home_Servant_Impl_T.h b/modules/CIAO/ciao/Servants/Home_Servant_Impl_T.h
new file mode 100644
index 00000000000..80b57189ef1
--- /dev/null
+++ b/modules/CIAO/ciao/Servants/Home_Servant_Impl_T.h
@@ -0,0 +1,107 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Home_Servant_Impl_T.h
+ *
+ * $Id$
+ *
+ * This file contains the declaration of a mixin base class for
+ * the generated home servant class.
+ *
+ * @authors Jeff Parsons <j.parsons@vanderbilt.edu>
+ */
+//=============================================================================
+
+
+#ifndef CIAO_HOME_SERVANT_IMPL_T_H
+#define CIAO_HOME_SERVANT_IMPL_T_H
+
+#include /**/ "ace/pre.h"
+
+#include "Home_Servant_Impl_Base.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Hash_Map_Manager_T.h"
+#include "tao/PortableServer/Key_Adapters.h"
+
+namespace CIAO
+{
+ class Container;
+ typedef Container *Container_ptr;
+
+
+ /**
+ * @class Home_Servant_Impl
+ *
+ * @brief Mixin base class for generated home servant.
+ *
+ * This class implements operations
+ * common to all generated home servants.
+ */
+ template <typename BASE_SKEL,
+ typename EXEC,
+ typename COMP_SVNT>
+ class Home_Servant_Impl
+ : public virtual BASE_SKEL,
+ public virtual Home_Servant_Impl_Base
+ {
+ public:
+ Home_Servant_Impl (typename EXEC::_ptr_type exe,
+ Container_ptr c,
+ const char *ins_name);
+
+ virtual ~Home_Servant_Impl (void);
+
+ // Operations for CCMHome interface.
+ virtual void remove_component (Components::CCMObject_ptr comp);
+
+ // Operations for keyless home interface.
+ virtual ::Components::CCMObject_ptr create_component ();
+
+ // Operations for implicit home interface.
+ virtual typename COMP_SVNT::_stub_ptr_type create ();
+
+ virtual void update_component_map (PortableServer::ObjectId &oid);
+
+ protected:
+ // CIAO-specific operations.
+ typename COMP_SVNT::_stub_ptr_type
+ _ciao_activate_component (typename COMP_SVNT::_exec_type::_ptr_type exe);
+
+ void
+ _ciao_passivate_component (typename COMP_SVNT::_stub_ptr_type comp);
+
+ protected:
+ ACE_CString ins_name_;
+ typename EXEC::_var_type executor_;
+
+ typedef ACE_Hash_Map_Manager_Ex<PortableServer::ObjectId,
+ Components::CCMObject_var,
+ TAO_ObjectId_Hash,
+ ACE_Equal_To<PortableServer::ObjectId>,
+ TAO_SYNCH_MUTEX>
+ OBJREF_MAP;
+
+ typedef OBJREF_MAP::iterator OBJ_ITERATOR;
+
+ OBJREF_MAP objref_map_;
+
+ ACE_Atomic_Op <TAO_SYNCH_MUTEX, unsigned long> serial_number_;
+ };
+}
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "Home_Servant_Impl_T.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("Home_Servant_Impl_T.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_HOME_SERVANT_IMPL_T_H */
diff --git a/modules/CIAO/ciao/Servants/Port_Activator.cpp b/modules/CIAO/ciao/Servants/Port_Activator.cpp
new file mode 100644
index 00000000000..68e253dea13
--- /dev/null
+++ b/modules/CIAO/ciao/Servants/Port_Activator.cpp
@@ -0,0 +1,39 @@
+#include "Port_Activator.h"
+
+ACE_RCSID (ciao,
+ Servant_Activator,
+ "$Id$")
+
+namespace CIAO
+{
+ Port_Activator_i::Port_Activator_i (const char *oid,
+ const char *name,
+ Port_Activator_Types::Type t)
+ : oid_ (oid),
+ name_ (name),
+ t_ (t)
+ {
+ }
+
+ Port_Activator_i::~Port_Activator_i (void)
+ {
+ }
+
+ char*
+ Port_Activator_i::oid (void)
+ {
+ return CORBA::string_dup(this->oid_.in ());
+ }
+
+ void
+ Port_Activator_i::oid (const char* oid)
+ {
+ this->oid_ = oid;
+ }
+
+ char*
+ Port_Activator_i::name (void)
+ {
+ return CORBA::string_dup(this->name_.in ());
+ }
+}
diff --git a/modules/CIAO/ciao/Servants/Port_Activator.h b/modules/CIAO/ciao/Servants/Port_Activator.h
new file mode 100644
index 00000000000..5f5cb019a94
--- /dev/null
+++ b/modules/CIAO/ciao/Servants/Port_Activator.h
@@ -0,0 +1,82 @@
+// -*- C++ -*-
+//=============================================================================
+/**
+ * @file Port_Activator.h
+ *
+ * $Id$
+ *
+ * @authors Bala Natarajan <bala@dre.vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef CIAO_PORT_ACTIVATOR_H
+#define CIAO_PORT_ACTIVATOR_H
+
+#include /**/ "ace/pre.h"
+
+#include "CIAO_Servant_Impl_export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "tao/PortableServer/PortableServer.h"
+#include "ciao/Servants/CIAO_Port_ActivatorC.h"
+
+namespace CIAO
+{
+ /**
+ * @class Port_Activator_i
+ *
+ * @brief Base class for port activations
+ *
+ * This is a ABC for the Port_Activator_T <> template class where
+ * the bulk of the work is done. This class is simply a place holder
+ * so that we could use the pointer to this class to achieve
+ * polymorphism for facet and consumer servant activations.
+ *
+ */
+ class CIAO_Servant_Impl_Export Port_Activator_i :
+ public virtual Port_Activator
+ {
+ public:
+ Port_Activator_i (const char *oid, const char *name, Port_Activator_Types::Type t);
+
+ virtual ~Port_Activator_i (void);
+
+ /// Return the oid of port that this activator encapulates.
+ virtual char* oid (void);
+
+ /// Set the oid
+ virtual void oid (const char* oid);
+
+ /// Return the oid of port that this activator encapulates.
+ virtual char* name (void);
+
+ /// Activate the servant reponsible for this port.
+ /**
+ * There are intentionally no throw specifications. It is the
+ * caller's responsibility to handle CORBA and C++
+ * specifications.
+ */
+ virtual PortableServer::Servant activate (
+ const PortableServer::ObjectId &oid) = 0;
+
+ virtual void deactivate (::PortableServer::Servant servant) = 0;
+
+ protected:
+ /// The object ID that is used to activate the servant within the
+ /// POA.
+ CORBA::String_var oid_;
+
+ /// Name of the port
+ CORBA::String_var name_;
+
+ /// What type of port is it, a consumer or facet.
+ Port_Activator_Types::Type const t_;
+ };
+}
+
+#include /**/ "ace/post.h"
+
+#endif /*CIAO_PORT_ACTIVATOR_H*/
diff --git a/modules/CIAO/ciao/Servants/Port_Activator_T.cpp b/modules/CIAO/ciao/Servants/Port_Activator_T.cpp
new file mode 100644
index 00000000000..6b8b69b2e24
--- /dev/null
+++ b/modules/CIAO/ciao/Servants/Port_Activator_T.cpp
@@ -0,0 +1,79 @@
+// $Id$
+
+#ifndef CIAO_PORT_ACTIVATOR_T_CPP
+#define CIAO_PORT_ACTIVATOR_T_CPP
+
+#include "Port_Activator_T.h"
+#include "tao/CORBA_String.h"
+
+#include "ace/OS_NS_string.h"
+
+namespace CIAO
+{
+ template <typename SERV,
+ typename EXEC,
+ typename CONTEXT,
+ typename COMP_SERV>
+ Port_Activator_T<SERV, EXEC, CONTEXT, COMP_SERV>::Port_Activator_T (
+ const char *oid,
+ const char *name,
+ Port_Activator_Types::Type t,
+ EXEC *e,
+ CONTEXT *c,
+ COMP_SERV *cc)
+ : Port_Activator_i (oid, name, t)
+ , executor_ (e)
+ , context_ (c)
+ , comp_serv_ (cc)
+ {
+ }
+
+ template <typename SERV,
+ typename EXEC,
+ typename CONTEXT,
+ typename COMP_SERV>
+ void
+ Port_Activator_T<SERV, EXEC, CONTEXT, COMP_SERV>::deactivate (
+ PortableServer::Servant servant)
+ {
+ SERVANT *s = dynamic_cast<SERVANT *> (servant);
+ s->_remove_ref ();
+ }
+
+ template <typename SERV,
+ typename EXEC,
+ typename CONTEXT,
+ typename COMP_SERV>
+ PortableServer::Servant
+ Port_Activator_T<SERV, EXEC, CONTEXT, COMP_SERV>::activate (
+ const PortableServer::ObjectId &oid)
+ {
+ CORBA::String_var str =
+ PortableServer::ObjectId_to_string (oid);
+
+ // An additional check, may not be necessary. Being on the safe
+ // side.
+ if (ACE_OS::strcmp (this->oid_.in (), str.in ()) == 0)
+ {
+ if (this->executor_ == 0 && this->t_ == Port_Activator_Types::FACET)
+ {
+ CORBA::Object_var tmp =
+ this->comp_serv_->get_facet_executor (this->name_.in ());
+
+ this->executor_ = EXEC::_narrow (tmp.in ());
+ }
+
+ SERVANT *s = 0;
+
+ ACE_NEW_THROW_EX (s,
+ SERVANT (this->executor_,
+ this->context_),
+ CORBA::NO_MEMORY ());
+ return s;
+ }
+
+ throw CORBA::OBJECT_NOT_EXIST ();
+ }
+}
+
+#endif /*SERVANT_ACTIVATOR_T_CPP*/
diff --git a/modules/CIAO/ciao/Servants/Port_Activator_T.h b/modules/CIAO/ciao/Servants/Port_Activator_T.h
new file mode 100644
index 00000000000..4e40d895e8e
--- /dev/null
+++ b/modules/CIAO/ciao/Servants/Port_Activator_T.h
@@ -0,0 +1,80 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Port_Activator_T.h
+ *
+ * $Id$
+ *
+ * @authors Bala Natarajan <bala@dre.vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef CIAO_PORT_ACTIVATOR_T_H
+#define CIAO_PORT_ACTIVATOR_T_H
+#include /**/ "ace/pre.h"
+
+#include "ciao/Servants/Port_Activator.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+
+namespace CIAO
+{
+ /**
+ * @class Port_Activator_T
+ *
+ * @brief Concrete class that implements the strategy for creating
+ * the right type of servant for the ports in question.
+ *
+ * This class is parametrized by the servant type for the port, the
+ * executor type for the port, the context for the component and the
+ * component servant which instantiated this class within the
+ * container.
+ */
+ template <typename SERV,
+ typename EXEC,
+ typename CONTEXT,
+ typename COMP_SERV>
+ class Port_Activator_T : public virtual Port_Activator_i
+ {
+ public:
+ typedef SERV SERVANT;
+
+ Port_Activator_T (const char *oid,
+ const char *name,
+ Port_Activator_Types::Type t,
+ EXEC *e,
+ CONTEXT *c,
+ COMP_SERV *cs);
+
+ /// Template method from the base class, please see the base class
+ /// documentation for details.
+ virtual PortableServer::Servant activate (const PortableServer::ObjectId &oid);
+
+ virtual void deactivate (PortableServer::Servant servant);
+
+ private:
+ /// The executor
+ EXEC *executor_;
+
+ /// Context classes
+ CONTEXT *context_;
+
+ /// Component servant which created <this>
+ COMP_SERV *comp_serv_;
+ };
+}
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "Port_Activator_T.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("Port_Activator_T.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#include /**/ "ace/post.h"
+#endif /*CIAO_SERVANT_ACTIVATOR_T_H*/
diff --git a/modules/CIAO/ciao/Servants/Servant_Impl_Base.cpp b/modules/CIAO/ciao/Servants/Servant_Impl_Base.cpp
new file mode 100644
index 00000000000..b8f000e7854
--- /dev/null
+++ b/modules/CIAO/ciao/Servants/Servant_Impl_Base.cpp
@@ -0,0 +1,758 @@
+// $Id$
+
+#include "Servant_Impl_Base.h"
+
+#include "StandardConfigurator_Impl.h"
+#include "ciao/Logger/Log_Macros.h"
+#include "ciao/Containers/Container_BaseC.h"
+
+namespace CIAO
+{
+ Servant_Impl_Base::Servant_Impl_Base (Components::CCMHome_ptr home,
+ Home_Servant_Impl_Base *home_servant,
+ Container_ptr c)
+ : home_ (Components::CCMHome::_duplicate (home)),
+ home_servant_ (home_servant),
+ container_ (Container::_duplicate (c))
+ {
+ }
+
+ Servant_Impl_Base::~Servant_Impl_Base (void)
+ {
+ }
+
+ // Operations for CCMObject interface.
+
+ ::Components::PrimaryKeyBase *
+ Servant_Impl_Base::get_primary_key (void)
+ {
+ CIAO_TRACE("Servant_Impl_Base::get_primary_key");
+ throw ::Components::NoKeyAvailable ();
+ }
+
+ CORBA::IRObject_ptr
+ Servant_Impl_Base::get_component_def (void)
+ {
+ CIAO_TRACE("Servant_Impl_Base::get_component_def");
+ throw ::CORBA::NO_IMPLEMENT ();
+ }
+
+ void
+ Servant_Impl_Base::configuration_complete (void)
+ {
+ CIAO_TRACE("Servant_Impl_Base::configuration_complete (void)");
+ // CIAO to-do
+ }
+
+ void
+ Servant_Impl_Base::remove (void)
+ {
+ CIAO_TRACE("Servant_Impl_Base::remove (void)");
+ try
+ {
+ // Removing Facets
+ Components::FacetDescriptions_var facets = this->get_all_facets ();
+
+ CORBA::ULong const facet_len = facets->length ();
+
+ for (CORBA::ULong i = 0; i < facet_len; ++i)
+ {
+ PortableServer::ObjectId_var facet_id =
+ this->container_->the_port_POA ()->reference_to_id (
+ facets[i]->facet_ref ());
+
+ this->container_->the_port_POA ()->deactivate_object (
+ facet_id);
+
+ CIAO::Servant_Activator_var sa =
+ this->container_->ports_servant_activator ();
+
+ if (!CORBA::is_nil (sa.in ()))
+ {
+ sa->update_port_activator (facet_id.in ());
+ }
+ }
+
+ // Removed Facets
+
+ // Removing Consumers
+ Components::ConsumerDescriptions_var consumers =
+ this->get_all_consumers ();
+
+ CORBA::ULong const consumer_len = consumers->length ();
+
+ for (CORBA::ULong j = 0; j < consumer_len; ++j)
+ {
+ PortableServer::ObjectId_var cons_id =
+ this->container_->the_port_POA ()->reference_to_id (
+ consumers[j]->consumer ());
+
+ this->container_->the_port_POA ()->deactivate_object (
+ cons_id);
+
+ CIAO::Servant_Activator_var sa =
+ this->container_->ports_servant_activator ();
+
+ if (!CORBA::is_nil (sa.in ()))
+ {
+ sa->update_port_activator (cons_id.in ());
+ }
+ }
+
+ Components::SessionComponent_var temp = this->get_executor ();
+ temp->ccm_remove ();
+
+ CORBA::Object_var objref = this->container_->get_objref (this);
+
+ Components::CCMObject_var ccmobjref =
+ Components::CCMObject::_narrow (objref.in ());
+
+ PortableServer::ObjectId_var oid;
+
+ this->container_->uninstall_servant (this,
+ Container_Types::COMPONENT_t,
+ oid.out ());
+
+ if (this->home_servant_)
+ this->home_servant_->update_component_map (oid);
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Port not active\n");
+ }
+ }
+
+ ::Components::ConnectionDescriptions *
+ Servant_Impl_Base::get_connections (const char * /* name */)
+ {
+ CIAO_TRACE("Servant_Impl_Base::get_connections (const char * /* name */)");
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ ::Components::ComponentPortDescription *
+ Servant_Impl_Base::get_all_ports (void)
+ {
+ CIAO_TRACE("Servant_Impl_Base::get_all_ports (void)");
+ OBV_Components::ComponentPortDescription *cps = 0;
+ ACE_NEW_THROW_EX (cps,
+ OBV_Components::ComponentPortDescription,
+ CORBA::NO_MEMORY ());
+ ::Components::ComponentPortDescription_var retv = cps;
+
+ ::Components::FacetDescriptions_var facets_desc =
+ this->get_all_facets ();
+
+ ::Components::ReceptacleDescriptions_var receptacle_desc =
+ this->get_all_receptacles ();
+
+ ::Components::ConsumerDescriptions_var consumer_desc =
+ this->get_all_consumers ();
+
+ ::Components::EmitterDescriptions_var emitter_desc =
+ this->get_all_emitters ();
+
+ ::Components::PublisherDescriptions_var publisher_desc =
+ this->get_all_publishers ();
+
+ retv->facets (facets_desc.in ());
+ retv->receptacles (receptacle_desc.in ());
+ retv->consumers (consumer_desc.in ());
+ retv->emitters (emitter_desc.in ());
+ retv->publishers (publisher_desc.in ());
+
+ return retv._retn ();
+ }
+
+ ::CORBA::Object_ptr
+ Servant_Impl_Base::provide_facet (const char *name)
+ {
+ CIAO_TRACE("Servant_Impl_Base::provide_facet (const char *name)");
+ if (0 == name)
+ {
+ throw Components::InvalidName ();
+ }
+
+ CORBA::Object_ptr retval = this->lookup_facet (name);
+
+ if ( ::CORBA::is_nil (retval))
+ {
+ throw Components::InvalidName ();
+ }
+
+ return retval;
+ }
+
+ Components::FacetDescriptions *
+ Servant_Impl_Base::get_named_facets (
+ const ::Components::NameList & names)
+ {
+ CIAO_TRACE("Servant_Impl_Base::get_named_facets");
+ Components::FacetDescriptions *retval = 0;
+ ACE_NEW_THROW_EX (retval,
+ ::Components::FacetDescriptions,
+ CORBA::NO_MEMORY ());
+ Components::FacetDescriptions_var safe_retval = retval;
+ CORBA::ULong const len = names.length ();
+ safe_retval->length (len);
+
+ for (CORBA::ULong i = 0; i < len; ++i)
+ {
+ ::Components::FacetDescription *tmp =
+ this->lookup_facet_description (names[i]);
+
+ if (0 == tmp)
+ {
+ throw Components::InvalidName ();
+ }
+
+ safe_retval[i] = tmp;
+ }
+
+ return safe_retval._retn ();
+ }
+
+ ::Components::FacetDescriptions *
+ Servant_Impl_Base::get_all_facets (void)
+ {
+ CIAO_TRACE ("Servant_Impl_Base::get_all_facets (void)");
+ ::Components::FacetDescriptions *tmp = 0;
+ ACE_NEW_THROW_EX (tmp,
+ ::Components::FacetDescriptions,
+ CORBA::NO_MEMORY ());
+
+ ::Components::FacetDescriptions_var retval = tmp;
+
+ retval->length (this->facet_table_.size ());
+ CORBA::ULong i = 0UL;
+
+ for (FacetTable::const_iterator iter = this->facet_table_.begin ();
+ iter != this->facet_table_.end ();
+ ++iter, ++i)
+ {
+ retval[i] = iter->second;
+ }
+
+ return retval._retn ();
+ }
+
+
+ ::Components::ConsumerDescriptions *
+ Servant_Impl_Base::get_all_consumers (void)
+ {
+ CIAO_TRACE("Servant_Impl_Base::get_all_consumers (void)");
+ ::Components::ConsumerDescriptions *tmp = 0;
+ ACE_NEW_THROW_EX (tmp,
+ ::Components::ConsumerDescriptions (
+ this->consumer_table_.size ()),
+ CORBA::NO_MEMORY ());
+
+ ::Components::ConsumerDescriptions_var retval = tmp;
+
+ retval->length (this->consumer_table_.size ());
+ CORBA::ULong i = 0UL;
+
+ for (ConsumerTable::const_iterator iter = this->consumer_table_.begin ();
+ iter != this->consumer_table_.end ();
+ ++iter, ++i)
+ {
+ retval[i] = iter->second;
+ }
+
+ return retval._retn ();
+ }
+
+
+ ::Components::EventConsumerBase_ptr
+ Servant_Impl_Base::get_consumer (const char *sink_name)
+ {
+ CIAO_TRACE("Servant_Impl_Base::get_consumer (const char *sink_name)");
+ if (!sink_name)
+ {
+ throw Components::InvalidName ();
+ }
+
+ Components::EventConsumerBase_ptr retval =
+ this->lookup_consumer (sink_name);
+
+ if (CORBA::is_nil (retval))
+ {
+ throw Components::InvalidName ();
+ }
+
+ return retval;
+ }
+
+ ::Components::ConsumerDescriptions *
+ Servant_Impl_Base::get_named_consumers (
+ const ::Components::NameList & names)
+ {
+ CIAO_TRACE("Servant_Impl_Base::get_named_consumers");
+ Components::ConsumerDescriptions *retval = 0;
+ ACE_NEW_THROW_EX (retval,
+ ::Components::ConsumerDescriptions,
+ CORBA::NO_MEMORY ());
+ Components::ConsumerDescriptions_var safe_retval = retval;
+ CORBA::ULong const len = names.length ();
+ safe_retval->length (len);
+
+ for (CORBA::ULong i = 0; i < len; ++i)
+ {
+ ::Components::ConsumerDescription *tmp =
+ this->lookup_consumer_description (names[i]);
+
+ if (0 == tmp)
+ {
+ throw Components::InvalidName ();
+ }
+
+ safe_retval[i] = tmp;
+ }
+
+ return safe_retval._retn ();
+ }
+
+ ::Components::EmitterDescriptions *
+ Servant_Impl_Base::get_named_emitters (
+ const ::Components::NameList & /* names */)
+ {
+ CIAO_TRACE("Servant_Impl_Base::get_named_emitters");
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ ::Components::ReceptacleDescriptions *
+ Servant_Impl_Base::get_all_receptacles (void)
+ {
+ CIAO_TRACE(" Servant_Impl_Base::get_all_receptacles (void)");
+ CIAO_DEBUG ((LM_TRACE, CLINFO "Servant_Impl_Base::get_all_receptacles\n"));
+
+ ::Components::ReceptacleDescriptions *tmp = 0;
+ ACE_NEW_THROW_EX (tmp,
+ ::Components::ReceptacleDescriptions,
+ CORBA::NO_MEMORY ());
+
+ ::Components::ReceptacleDescriptions_var retval = tmp;
+
+ retval->length (this->receptacle_table_.current_size ());
+ CORBA::ULong i = 0;
+
+ CIAO_DEBUG ((LM_DEBUG, CLINFO
+ "Servant_Impl_Base::get_all_receptacles - Building sequence of length %d\n",
+ retval->length()));
+
+ for (ReceptacleTable::iterator iter = this->receptacle_table_.begin ();
+ iter != this->receptacle_table_.end ();
+ ++iter, ++i)
+ {
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "Servant_Impl_Base::get_all_receptacles - Starting loop iteration...\n",
+ retval->length()));
+
+ ReceptacleTable::ENTRY & entry = *iter;
+ retval[i] = entry.int_id_;
+ }
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO "Servant_Impl_Base::get_all_receptacles - Escaped loop.\n"));
+ return retval._retn ();
+ }
+
+ ::Components::ReceptacleDescriptions *
+ Servant_Impl_Base::get_named_receptacles (
+ const ::Components::NameList & /* names */)
+ {
+ CIAO_TRACE("Servant_Impl_Base::get_named_receptacles");
+ throw ::CORBA::NO_IMPLEMENT ();
+ }
+
+ ::Components::PublisherDescriptions *
+ Servant_Impl_Base::get_named_publishers (
+ const ::Components::NameList & /* names */)
+ {
+ CIAO_TRACE("Servant_Impl_Base::get_named_publishers");
+ throw ::CORBA::NO_IMPLEMENT ();
+ }
+
+ /// Protected operations.
+ void
+ Servant_Impl_Base::add_facet (const char *port_name,
+ ::CORBA::Object_ptr port_ref)
+ {
+ CIAO_TRACE("Servant_Impl_Base::add_facet");
+ if (0 == port_name || ::CORBA::is_nil (port_ref))
+ {
+ throw ::CORBA::BAD_PARAM ();
+ }
+
+ ::Components::FacetDescription *fd = 0;
+ ACE_NEW_THROW_EX (fd,
+ ::OBV_Components::FacetDescription (port_name,
+ port_ref->_interface_repository_id (),
+ port_ref),
+ CORBA::NO_MEMORY ());
+ ::Components::FacetDescription_var safe = fd;
+
+ FacetTable::value_type entry;
+ entry.first = port_name;
+ entry.second = safe._retn ();
+
+ {
+ ACE_WRITE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, mon, this->lock_,
+ CORBA::NO_RESOURCES ());
+
+ (void) this->facet_table_.insert (entry);
+ }
+ }
+
+ CORBA::Object_ptr
+ Servant_Impl_Base::lookup_facet (const char *port_name)
+ {
+ CIAO_TRACE("Servant_Impl_Base::lookup_facet");
+ if (0 == port_name)
+ {
+ return CORBA::Object::_nil ();
+ }
+
+ ACE_READ_GUARD_THROW_EX (TAO_SYNCH_MUTEX,
+ mon,
+ this->lock_,
+ CORBA::NO_RESOURCES ());
+
+ FacetTable::const_iterator iter =
+ this->facet_table_.find (port_name);
+
+ if (iter == this->facet_table_.end ())
+ {
+ return CORBA::Object::_nil ();
+ }
+
+ return CORBA::Object::_duplicate (iter->second->facet_ref ());
+ }
+
+ ::Components::FacetDescription *
+ Servant_Impl_Base::lookup_facet_description (const char *port_name)
+ {
+ CIAO_TRACE("Servant_Impl_Base::lookup_facet_description");
+ if (0 == port_name)
+ {
+ /// Calling function will throw InvalidName after getting this.
+ return 0;
+ }
+
+ ::Components::FacetDescription_var fd;
+
+ {
+ ACE_READ_GUARD_RETURN (TAO_SYNCH_MUTEX,
+ mon,
+ this->lock_,
+ 0);
+ FacetTable::const_iterator iter =
+ this->facet_table_.find (port_name);
+
+ if (iter != this->facet_table_.end ())
+ {
+ fd = iter->second;
+ }
+ }
+
+ return fd._retn ();
+ }
+
+ void
+ Servant_Impl_Base::add_receptacle (const char *receptacle_name,
+ CORBA::Object_ptr recept_ref,
+ ::Components::Cookie * cookie)
+ {
+ CIAO_TRACE("Servant_Impl_Base::add_receptacle");
+ CIAO_DEBUG ((LM_INFO, CLINFO
+ "Servant_Impl_Base::add_receptacle - attempting to add new connection to receptacle (%C)\n",
+ receptacle_name));
+
+ ::Components::ReceptacleDescription_var safe;
+ ::Components::ReceptacleDescription *rd = 0;
+
+ if (this->receptacle_table_.find (receptacle_name,
+ safe) == -1)
+ {
+ CIAO_DEBUG ((LM_DEBUG, CLINFO
+ "Servant_Impl_Base::add_receptacle - Found no receptacle named (%C), creating it...\n",
+ receptacle_name));
+
+ ACE_NEW_THROW_EX (rd,
+ OBV_Components::ReceptacleDescription,
+ CORBA::NO_MEMORY ());
+ safe = rd;
+
+ rd->name (receptacle_name);
+ rd->type_id ();
+ // The receptacle is a multiplex receptacle if and only if a
+ // cookie was given.
+ rd->is_multiple (cookie != 0);
+
+ ::Components::ConnectionDescription *cd = 0;
+ ACE_NEW_THROW_EX (cd,
+ OBV_Components::ConnectionDescription (cookie,
+ recept_ref),
+ CORBA::NO_MEMORY ());
+ ::Components::ConnectionDescription_var cd_safe = cd;
+ ::Components::ConnectionDescriptions cds (1);
+
+ cds.length (1);
+ cds[0] = cd_safe;
+ rd->connections (cds);
+ }
+ else
+ {
+ CIAO_DEBUG ((LM_DEBUG, CLINFO
+ "Servant_Impl_Base::add_receptacle - Found a receptacle named (%C)\n",
+ receptacle_name));
+ rd = safe.inout ();
+
+ ::Components::ConnectionDescription *cd = 0;
+ ACE_NEW_THROW_EX (cd,
+ OBV_Components::ConnectionDescription (cookie,
+ recept_ref),
+ CORBA::NO_MEMORY ());
+ ::Components::ConnectionDescription_var cd_safe = cd;
+ ::Components::ConnectionDescriptions & cds = rd->connections ();
+ CORBA::ULong old_length = cds.length ();
+ cds.length (old_length + 1);
+ cds [old_length] = cd_safe;
+
+ CIAO_DEBUG ((LM_DEBUG, CLINFO
+ "Servant_Impl_Base::add_receptacle - Added new connection to "
+ "existing receptacle named (%C)\n",
+ receptacle_name));
+ }
+
+ if (this->receptacle_table_.bind (receptacle_name, safe) == 0)
+ {
+ CIAO_DEBUG ((LM_INFO, CLINFO
+ "Servant_Impl_Base::add_receptacle - Successfully added new receptacle named (%C)\n",
+ receptacle_name));
+ }
+ }
+
+ void
+ Servant_Impl_Base::add_consumer (const char *port_name,
+ ::Components::EventConsumerBase_ptr port_ref)
+ {
+ CIAO_TRACE("Servant_Impl_Base::add_consumer");
+ if (0 == port_name || ::CORBA::is_nil (port_ref))
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "Servant_Impl_Base::add_consumer - Bad port name [%C] or bad objref\n",
+ port_name));
+ throw ::CORBA::BAD_PARAM ();
+ return;
+ }
+
+ ::Components::ConsumerDescription *cd = 0;
+ ACE_NEW_THROW_EX (cd,
+ ::OBV_Components::ConsumerDescription,
+ CORBA::NO_MEMORY ());
+
+ ::Components::ConsumerDescription_var safe = cd;
+
+ cd->name (port_name);
+ cd->type_id (port_ref->_interface_repository_id ());
+ cd->consumer (port_ref);
+
+ ConsumerTable::value_type entry;
+ entry.first = port_name;
+ entry.second = safe._retn ();
+
+ ACE_WRITE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, mon, this->lock_,
+ CORBA::NO_RESOURCES ());
+
+ (void) this->consumer_table_.insert (entry);
+ }
+
+ ::Components::EventConsumerBase_ptr
+ Servant_Impl_Base::lookup_consumer (const char *port_name)
+ {
+ CIAO_TRACE("Servant_Impl_Base::lookup_consumer");
+ if (0 == port_name)
+ {
+ return ::Components::EventConsumerBase::_nil ();
+ }
+
+ ACE_READ_GUARD_THROW_EX (TAO_SYNCH_MUTEX,
+ mon,
+ this->lock_,
+ CORBA::NO_RESOURCES ());
+
+ ConsumerTable::const_iterator iter =
+ this->consumer_table_.find (port_name);
+
+ if (iter == this->consumer_table_.end ())
+ {
+ return ::Components::EventConsumerBase::_nil ();
+ }
+
+ return
+ ::Components::EventConsumerBase::_duplicate (
+ iter->second->consumer ());
+ }
+
+ ::Components::ConsumerDescription *
+ Servant_Impl_Base::lookup_consumer_description (
+ const char *port_name)
+ {
+ CIAO_TRACE("Servant_Impl_Base::lookup_consumer_description");
+ if (0 == port_name)
+ {
+ /// Calling function will throw InvalidName after getting this.
+ return 0;
+ }
+
+ ::Components::ConsumerDescription_var cd;
+ ConsumerTable::const_iterator iter;
+
+ {
+ ACE_READ_GUARD_THROW_EX (TAO_SYNCH_MUTEX,
+ mon,
+ this->lock_,
+ CORBA::NO_RESOURCES ());
+
+ iter = this->consumer_table_.find (port_name);
+
+ if (iter != this->consumer_table_.end ())
+ {
+ cd = iter->second;
+ }
+ }
+
+ return cd._retn ();
+ }
+
+ ::Components::StandardConfigurator_ptr
+ Servant_Impl_Base::get_standard_configurator (void)
+ {
+ CIAO_TRACE("Servant_Impl_Base::get_standard_configurator (void)");
+ // Create the configurator servant.
+ StandardConfigurator_Impl *config_impl = 0;
+
+ ACE_NEW_THROW_EX (config_impl,
+ StandardConfigurator_Impl (this),
+ CORBA::NO_MEMORY ());
+
+
+ Components::StandardConfigurator_var configurator =
+ config_impl->_this ();
+
+ return configurator._retn ();
+ }
+
+ void
+ Servant_Impl_Base::activate_component (void)
+ {
+ CIAO_TRACE ("Servant_Impl_Base::activate_component");
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+
+ void
+ Servant_Impl_Base::passivate_component (void)
+ {
+ CIAO_TRACE ("Servant_Impl_Base::passivate_component");
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ Components::SessionComponent_ptr
+ Servant_Impl_Base::get_executor (void)
+ {
+ CIAO_TRACE ("Servant_Impl_Base::get_executor");
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ void
+ Servant_Impl_Base::set_attributes (const Components::ConfigValues &/*descr*/)
+ {
+ CIAO_TRACE ("Servant_Impl_Base::set_attributes");
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ ::Components::CCMHome_ptr
+ Servant_Impl_Base::get_ccm_home (void)
+ {
+ CIAO_TRACE ("Servant_Impl_Base::get_ccm_home");
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ PortableServer::POA_ptr
+ Servant_Impl_Base::_default_POA (void)
+ {
+ CIAO_TRACE("Servant_Impl_Base::_default_POA (void)");
+ return
+ PortableServer::POA::_duplicate (container_->the_POA ());
+ }
+
+ ::Components::Cookie *
+ Servant_Impl_Base::subscribe (const char *,
+ ::Components::EventConsumerBase_ptr)
+ {
+ CIAO_TRACE ("Servant_Impl_Base::subscribe");
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+
+ ::Components::EventConsumerBase_ptr
+ Servant_Impl_Base::unsubscribe (const char *,
+ ::Components::Cookie *)
+ {
+ CIAO_TRACE ("Servant_Impl_Base::unsubscribe");
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ void
+ Servant_Impl_Base::connect_consumer (const char *,
+ ::Components::EventConsumerBase_ptr)
+ {
+ CIAO_TRACE ("Servant_Impl_Base::connect_consumer");
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ ::Components::EventConsumerBase_ptr
+ Servant_Impl_Base::disconnect_consumer (const char *)
+ {
+ CIAO_TRACE ("Servant_Impl_Base::disconnect_consumer");
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ ::Components::EmitterDescriptions *
+ Servant_Impl_Base::get_all_emitters (void)
+ {
+ CIAO_TRACE ("Servant_Impl_Base::get_all_emitters");
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ ::Components::PublisherDescriptions *
+ Servant_Impl_Base::get_all_publishers (void)
+ {
+ CIAO_TRACE ("Servant_Impl_Base::get_all_publishers");
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ ::CORBA::Boolean
+ Servant_Impl_Base::same_component (::CORBA::Object_ptr)
+ {
+ CIAO_TRACE ("Servant_Impl_Base::same_component");
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+
+ ::Components::Cookie *
+ Servant_Impl_Base::connect (const char *,
+ ::CORBA::Object_ptr)
+ {
+ CIAO_TRACE ("Servant_Impl_Base::connect");
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ ::CORBA::Object_ptr
+ Servant_Impl_Base::disconnect (const char *,
+ ::Components::Cookie *)
+ {
+ CIAO_TRACE ("Servant_Impl_Base::disconnect");
+ throw CORBA::NO_IMPLEMENT ();
+ }
+}
+
diff --git a/modules/CIAO/ciao/Servants/Servant_Impl_Base.h b/modules/CIAO/ciao/Servants/Servant_Impl_Base.h
new file mode 100644
index 00000000000..ef6a1c47aa5
--- /dev/null
+++ b/modules/CIAO/ciao/Servants/Servant_Impl_Base.h
@@ -0,0 +1,247 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Servant_Impl_Base.h
+ *
+ * $Id$
+ *
+ * This file contains the non-template declaration of a base class for
+ * the template mixin for the generated servant class.
+ *
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef CIAO_SERVANT_IMPL_BASE_H
+#define CIAO_SERVANT_IMPL_BASE_H
+
+#include /**/ "ace/pre.h"
+
+#include "CIAO_Servant_Impl_export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "Home_Servant_Impl_Base.h"
+#include "ciao/Containers/CIAO_Servant_ActivatorC.h"
+
+#include "ace/Hash_Map_Manager_T.h"
+#include "ace/Array_Map.h"
+#include "ccm/CCM_ContainerC.h"
+#include "ccm/CCM_ObjectS.h"
+#include "ccm/CCM_StandardConfiguratorC.h"
+
+
+
+namespace CIAO
+{
+ class Container;
+ typedef Container *Container_ptr;
+ typedef TAO_Objref_Var_T<Container> Container_var;
+
+ namespace Servant {
+ template<typename T_var>
+ void describe_simplex_receptacle (
+ const char *port_name,
+ const char *port_type_repo_id,
+ T_var &connection,
+ ::Components::ReceptacleDescriptions_var &descriptions,
+ CORBA::ULong slot);
+
+ template<typename T_var>
+ void describe_multiplex_receptacle (
+ const char *port_name,
+ const char *port_type_repo_id,
+ ACE_Array_Map<ptrdiff_t, T_var> &objrefs,
+ ::Components::ReceptacleDescriptions_var &descriptions,
+ CORBA::ULong slot);
+
+ template<typename T_var>
+ void describe_pub_event_source (
+ const char *port_name,
+ const char *port_type_repo_id,
+ ACE_Array_Map<ptrdiff_t, T_var> &consumers,
+ ::Components::PublisherDescriptions_var &descriptions,
+ CORBA::ULong slot);
+
+ template<typename T_var>
+ void describe_emit_event_source (
+ const char *port_name,
+ const char *port_type_repo_id,
+ T_var &consumer_ref,
+ ::Components::EmitterDescriptions_var &descriptions,
+ CORBA::ULong slot);
+ } /* Servant */
+
+ /**
+ * @class Servant_Impl_Base
+ *
+ * @brief Non-template base class for Servant_Impl.
+ *
+ * Holds the non-template parts of its child class
+ * Servant_Impl.
+ */
+ class CIAO_Servant_Impl_Export Servant_Impl_Base
+ : public virtual POA_Components::CCMObject
+ {
+ protected:
+ Servant_Impl_Base (Components::CCMHome_ptr home,
+ Home_Servant_Impl_Base *home_servant,
+ Container_ptr c);
+
+ public:
+ virtual ~Servant_Impl_Base (void);
+
+ /// Operations for CCMObject interface.
+
+ virtual ::Components::PrimaryKeyBase * get_primary_key (void);
+
+ virtual CORBA::IRObject_ptr get_component_def (void);
+
+ virtual Components::SessionComponent_ptr get_executor (void);
+
+ virtual void configuration_complete (void);
+
+ virtual void activate_component (void);
+
+ virtual void passivate_component (void);
+
+ virtual ::Components::CCMHome_ptr get_ccm_home (void);
+
+ virtual void remove (void);
+
+ virtual ::Components::ConnectionDescriptions *
+ get_connections (const char *name);
+
+ virtual ::Components::ComponentPortDescription * get_all_ports (void);
+
+ virtual CORBA::Object_ptr provide_facet (const char *name);
+
+ virtual ::Components::FacetDescriptions *
+ get_named_facets (const ::Components::NameList & names);
+
+ virtual ::Components::FacetDescriptions * get_all_facets (void);
+
+ virtual ::Components::ConsumerDescriptions * get_all_consumers (void);
+
+ virtual ::Components::EventConsumerBase_ptr
+ get_consumer (const char *sink_name);
+
+ virtual ::Components::ConsumerDescriptions *
+ get_named_consumers (const ::Components::NameList & names);
+
+ virtual ::Components::EmitterDescriptions *
+ get_named_emitters (const ::Components::NameList & names);
+
+ virtual ::Components::ReceptacleDescriptions *
+ get_named_receptacles (const ::Components::NameList & names);
+
+ virtual ::Components::ReceptacleDescriptions *
+ get_all_receptacles (void);
+
+ virtual ::Components::PublisherDescriptions *
+ get_named_publishers (const ::Components::NameList & names);
+
+ /// Operation to set attributes on the component.
+ virtual void set_attributes (const Components::ConfigValues &descr);
+
+ // Creates and returns the StandardConfigurator for the component.
+ virtual ::Components::StandardConfigurator_ptr
+ get_standard_configurator (void);
+
+ /// Override that returns the (passed-in) default POA of our member
+ /// component's container, to ensure that we get registered
+ /// to that POA when _this() is called.
+ virtual PortableServer::POA_ptr _default_POA (void);
+
+ virtual ::Components::Cookie * subscribe (const char * publisher_name,
+ ::Components::EventConsumerBase_ptr subscriber);
+
+ virtual ::Components::EventConsumerBase_ptr unsubscribe (const char * publisher_name,
+ ::Components::Cookie * ck);
+
+ virtual void connect_consumer (const char * emitter_name,
+ ::Components::EventConsumerBase_ptr consumer);
+
+ virtual ::Components::EventConsumerBase_ptr disconnect_consumer (const char * source_name);
+
+ virtual ::Components::EmitterDescriptions * get_all_emitters (void);
+
+ virtual ::Components::PublisherDescriptions * get_all_publishers (void);
+
+ virtual ::CORBA::Boolean same_component (::CORBA::Object_ptr object_ref);
+
+ virtual ::Components::Cookie * connect (const char * name,
+ ::CORBA::Object_ptr connection);
+
+ virtual ::CORBA::Object_ptr disconnect (const char * name,
+ ::Components::Cookie * ck);
+
+
+ protected:
+ void add_facet (const char *port_name,
+ ::CORBA::Object_ptr port_ref);
+
+ CORBA::Object_ptr lookup_facet (const char *port_name);
+
+ ::Components::FacetDescription *lookup_facet_description (
+ const char *port_name);
+
+ void add_receptacle (const char *receptacle_name,
+ CORBA::Object_ptr recept_ref,
+ ::Components::Cookie * cookie);
+
+ void add_consumer (const char *port_name,
+ ::Components::EventConsumerBase_ptr port_ref);
+
+ ::Components::EventConsumerBase_ptr lookup_consumer (
+ const char *port_name);
+
+ ::Components::ConsumerDescription *lookup_consumer_description (
+ const char *port_name);
+
+ /// Called from generated servant class to help with
+ /// get_all_*() methods.
+
+ protected:
+ typedef ACE_Array_Map<ACE_CString,
+ ::Components::FacetDescription_var>
+ FacetTable;
+
+ typedef ACE_Array_Map<ACE_CString,
+ ::Components::ConsumerDescription_var>
+ ConsumerTable;
+
+ typedef ACE_Hash_Map_Manager_Ex<const char *,
+ ::Components::ReceptacleDescription_var,
+ ACE_Hash<const char *>,
+ ACE_Equal_To<const char *>,
+ ACE_Null_Mutex>
+ ReceptacleTable;
+
+ FacetTable facet_table_;
+ ConsumerTable consumer_table_;
+ ReceptacleTable receptacle_table_;
+ Components::CCMHome_var home_;
+ Home_Servant_Impl_Base *home_servant_;
+ Container_var container_;
+
+ private:
+ /// For internal locking of table reads and writes.
+ TAO_SYNCH_MUTEX lock_;
+ };
+}
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "Servant_Impl_Utils_T.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("Servant_Impl_Utils_T.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_SERVANT_IMPL_T_H */
diff --git a/modules/CIAO/ciao/Servants/Servant_Impl_T.cpp b/modules/CIAO/ciao/Servants/Servant_Impl_T.cpp
new file mode 100644
index 00000000000..8c3b00a09d0
--- /dev/null
+++ b/modules/CIAO/ciao/Servants/Servant_Impl_T.cpp
@@ -0,0 +1,239 @@
+// $Id$
+
+#ifndef CIAO_SERVANT_IMPL_T_C
+#define CIAO_SERVANT_IMPL_T_C
+
+#include "Servant_Impl_T.h"
+#include <ccm/CCM_EntityContextC.h>
+
+namespace CIAO
+{
+ template <typename BASE_SKEL,
+ typename EXEC,
+ typename CONTEXT>
+ Servant_Impl<BASE_SKEL, EXEC, CONTEXT>::Servant_Impl (
+ EXEC * exe,
+ Components::CCMHome_ptr home,
+ Home_Servant_Impl_Base *home_servant,
+ Container_ptr c
+ )
+ : Servant_Impl_Base (home, home_servant, c),
+ activated_ (false),
+ configuration_completed_ (false),
+ executor_ (EXEC::_duplicate (exe))
+ {
+ }
+
+ template <typename BASE_SKEL,
+ typename EXEC,
+ typename CONTEXT>
+ Servant_Impl<BASE_SKEL, EXEC, CONTEXT>::~Servant_Impl (void)
+ {
+ CIAO_DEBUG ((LM_INFO, "Servant_Impl_T::~Servant_Impl - "
+ "Executor object reference count is %u\n",
+ this->executor_->_refcount_value ()));
+
+ // **********************************************************************
+ /*
+ try
+ {
+ ::Components::SessionComponent_var scom =
+ ::Components::SessionComponent::_narrow (
+ this->executor_.in ()
+ );
+
+ if (! ::CORBA::is_nil (scom.in ()))
+ {
+ scom->ccm_remove ();
+ }
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ }
+ */
+ // *********************************************************************
+
+ this->context_->_remove_ref ();
+ }
+
+ // Operations for CCMObject interface.
+
+ template <typename BASE_SKEL,
+ typename EXEC,
+ typename CONTEXT>
+ CORBA::Boolean
+ Servant_Impl<BASE_SKEL, EXEC, CONTEXT>::same_component (
+ CORBA::Object_ptr object_ref
+ )
+ {
+ if (::CORBA::is_nil (object_ref))
+ {
+ throw ::CORBA::BAD_PARAM ();
+ }
+
+ ::CORBA::Object_var the_other =
+ object_ref->_get_component ();
+
+ ::CORBA::Object_var me =
+ this->context_->get_CCM_object ();
+
+ return me->_is_equivalent (the_other.in ());
+
+ }
+
+ template <typename BASE_SKEL,
+ typename EXEC,
+ typename CONTEXT>
+ ::Components::CCMHome_ptr
+ Servant_Impl<BASE_SKEL, EXEC, CONTEXT>::get_ccm_home (
+ )
+ {
+ return this->context_->get_CCM_home ();
+ }
+
+ template <typename BASE_SKEL,
+ typename EXEC,
+ typename CONTEXT>
+ Components::SessionComponent_ptr
+ Servant_Impl<BASE_SKEL, EXEC, CONTEXT>::get_executor (
+ )
+ {
+ ::Components::SessionComponent_var temp =
+ ::Components::SessionComponent::_narrow (
+ this->executor_.in ()
+ );
+ return temp._retn ();
+ }
+
+ template <typename BASE_SKEL,
+ typename EXEC,
+ typename CONTEXT>
+ CORBA::Object_ptr
+ Servant_Impl<BASE_SKEL, EXEC, CONTEXT>::_get_component (
+ )
+ {
+ ::Components::SessionContext_var sc =
+ ::Components::SessionContext::_narrow (
+ this->context_
+ );
+
+ if (! ::CORBA::is_nil (sc.in ()))
+ {
+ return sc->get_CCM_object ();
+ }
+
+ ::Components::EntityContext_var ec =
+ ::Components::EntityContext::_narrow (
+ this->context_
+ );
+
+ if (! ::CORBA::is_nil (ec.in ()))
+ {
+ return ec->get_CCM_object ();
+ }
+
+ throw CORBA::INTERNAL ();
+ }
+
+ // CIAO-specific operations.
+
+ template <typename BASE_SKEL,
+ typename EXEC,
+ typename CONTEXT>
+ void
+ Servant_Impl<BASE_SKEL, EXEC, CONTEXT>::activate_component (
+ )
+ {
+ if (this->configuration_completed_ == 1)
+ {
+ this->ciao_activate ();
+ }
+ }
+
+ template <typename BASE_SKEL,
+ typename EXEC,
+ typename CONTEXT>
+ void
+ Servant_Impl<BASE_SKEL, EXEC, CONTEXT>::passivate_component (
+ )
+ {
+ if (this->activated_ == 1)
+ {
+ this->ciao_passivate ();
+ }
+ }
+
+ template <typename BASE_SKEL,
+ typename EXEC,
+ typename CONTEXT>
+ void
+ Servant_Impl<BASE_SKEL, EXEC, CONTEXT>::configuration_complete (
+ )
+ {
+ ::Components::SessionComponent_var temp =
+ ::Components::SessionComponent::_narrow (
+ this->executor_.in ()
+ );
+
+ if (! ::CORBA::is_nil (temp.in ()))
+ {
+ if (this->configuration_completed_ == 0)
+ {
+ this->configuration_completed_ = 1;
+ temp->configuration_complete ();
+ }
+ }
+ }
+
+ template <typename BASE_SKEL,
+ typename EXEC,
+ typename CONTEXT>
+ void
+ Servant_Impl<BASE_SKEL, EXEC, CONTEXT>::ciao_activate ()
+ {
+ ::Components::SessionComponent_var temp =
+ ::Components::SessionComponent::_narrow (
+ this->executor_.in ()
+ );
+
+ if (! ::CORBA::is_nil (temp.in ()))
+ {
+ if (this->activated_ == 0)
+ {
+ this->activated_ = 1;
+ temp->ccm_activate ();
+ }
+ }
+ }
+
+ template <typename BASE_SKEL,
+ typename EXEC,
+ typename CONTEXT>
+ CORBA::Boolean
+ Servant_Impl<BASE_SKEL, EXEC, CONTEXT>::is_activated (
+ )
+ {
+ return this->activated_;
+ }
+
+ template <typename BASE_SKEL,
+ typename EXEC,
+ typename CONTEXT>
+ void
+ Servant_Impl<BASE_SKEL, EXEC, CONTEXT>::ciao_passivate (
+ )
+ {
+ // @@ Jai, could you please see why this is required?
+ ::Components::SessionComponent_var temp =
+ ::Components::SessionComponent::_narrow (
+ this->executor_.in ()
+ );
+
+ if (! ::CORBA::is_nil (temp.in ()))
+ temp->ccm_passivate ();
+
+ this->activated_ = 0;
+ }
+}
+
+#endif /* CIAO_SERVANT_IMPL_T_C */
diff --git a/modules/CIAO/ciao/Servants/Servant_Impl_T.h b/modules/CIAO/ciao/Servants/Servant_Impl_T.h
new file mode 100644
index 00000000000..10c25af865b
--- /dev/null
+++ b/modules/CIAO/ciao/Servants/Servant_Impl_T.h
@@ -0,0 +1,111 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Servant_Impl_T.h
+ *
+ * $Id$
+ *
+ * This file contains the declaration of a mixin base class for
+ * the generated servant class.
+ *
+ * @authors Boris Kolpackov <boris@dre.vanderbilt.edu>
+ * Jeff Parsons <j.parsons@vanderbilt.edu>
+ */
+//=============================================================================
+
+
+#ifndef CIAO_SERVANT_IMPL_T_H
+#define CIAO_SERVANT_IMPL_T_H
+
+#include /**/ "ace/pre.h"
+
+#include "Servant_Impl_Base.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+namespace CIAO
+{
+ /**
+ * @class Servant_Impl
+ *
+ * @brief Mixin base class for generated servant.
+ *
+ * This class implements navigation and other operations
+ * common to all generated servants.
+ */
+ template <typename BASE_SKEL,
+ typename EXEC,
+ typename CONTEXT>
+ class Servant_Impl : public virtual BASE_SKEL,
+ public virtual Servant_Impl_Base
+ {
+ public:
+ Servant_Impl (EXEC * exe,
+ Components::CCMHome_ptr home,
+ Home_Servant_Impl_Base *home_servant,
+ Container_ptr c);
+
+ virtual ~Servant_Impl (void);
+
+ // Operations for CCMObject interface.
+
+ virtual CORBA::Boolean
+ same_component (CORBA::Object_ptr object_ref);
+
+ virtual ::Components::CCMHome_ptr
+ get_ccm_home ();
+
+ virtual CORBA::Object_ptr
+ _get_component ();
+
+ virtual Components::SessionComponent_ptr
+ get_executor ();
+
+ // CIAO-specific operations.
+
+ void
+ configuration_complete ();
+
+ void
+ ciao_activate ();
+
+ /// @@NOTE: The busted operation.
+ void
+ ciao_passivate ();
+
+ CORBA::Boolean
+ is_activated ();
+
+ virtual void
+ activate_component ();
+
+ virtual void
+ passivate_component ();
+
+ protected:
+
+ CORBA::Boolean activated_;
+ CORBA::Boolean configuration_completed_;
+
+ /// Initialized in this constructor.
+ typename EXEC::_var_type executor_;
+
+ /// Initialized in the derived, generated servant constructor.
+ CONTEXT * context_;
+ };
+}
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "Servant_Impl_T.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("Servant_Impl_T.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_SERVANT_IMPL_T_H */
diff --git a/modules/CIAO/ciao/Servants/Servant_Impl_Utils_T.cpp b/modules/CIAO/ciao/Servants/Servant_Impl_Utils_T.cpp
new file mode 100644
index 00000000000..4d4332fd5a8
--- /dev/null
+++ b/modules/CIAO/ciao/Servants/Servant_Impl_Utils_T.cpp
@@ -0,0 +1,182 @@
+// $Id$
+
+#ifndef CIAO_SERVANT_IMPL_UTILS_T_C
+#define CIAO_SERVANT_IMPL_UTILS_T_C
+
+#include "ciao/Servants/Servant_Impl_Base.h"
+#include "ciao/Valuetype_Factories/Cookies.h"
+#include "ciao/Logger/Log_Macros.h"
+
+namespace CIAO
+{
+ template<typename T_var>
+ void
+ Servant::describe_simplex_receptacle (
+ const char *port_name,
+ const char *port_type_repo_id,
+ T_var &connection,
+ ::Components::ReceptacleDescriptions_var &descriptions,
+ CORBA::ULong slot)
+ {
+ CIAO_TRACE ("Servant::describe_simplex_receptacle");
+
+ ::Components::ReceptacleDescription *elem = 0;
+ ACE_NEW_THROW_EX (elem,
+ ::OBV_Components::ReceptacleDescription,
+ CORBA::NO_MEMORY ());
+
+ ::Components::ReceptacleDescription_var safe_elem = elem;
+
+ elem->name (port_name);
+ elem->type_id (port_type_repo_id);
+ elem->is_multiple (false);
+ elem->connections ().length (1UL);
+
+ ::Components::ConnectionDescription *conn = 0;
+ ACE_NEW (conn, ::OBV_Components::ConnectionDescription);
+ ::Components::ConnectionDescription_var safe_conn = conn;
+
+ conn->ck (0);
+ conn->objref (connection.in ());
+
+ elem->connections ()[0UL] = safe_conn._retn ();
+ descriptions[slot] = safe_elem._retn ();
+ }
+
+ template<typename T_var>
+ void
+ Servant::describe_multiplex_receptacle (
+ const char *port_name,
+ const char *port_type_repo_id,
+ ACE_Array_Map<ptrdiff_t, T_var> &objrefs,
+ ::Components::ReceptacleDescriptions_var &descriptions,
+ CORBA::ULong slot
+ )
+ {
+ CIAO_TRACE ("Servant::describe_multiplex_receptacle");
+
+ ::Components::ReceptacleDescription *elem = 0;
+ ACE_NEW_THROW_EX (elem,
+ ::OBV_Components::ReceptacleDescription,
+ CORBA::NO_MEMORY ());
+
+ ::Components::ReceptacleDescription_var safe_elem = elem;
+
+ elem->name (port_name);
+ elem->type_id (port_type_repo_id);
+ elem->is_multiple (true);
+ elem->connections ().length (objrefs.size ());
+
+ CORBA::ULong seq_slot = 0UL;
+ ::Components::ConnectionDescription *conn = 0;
+
+ typedef typename ACE_Array_Map<ptrdiff_t, T_var>::const_iterator
+ CONST_ITERATOR;
+
+ for (CONST_ITERATOR iter = objrefs.begin ();
+ iter != objrefs.end ();
+ ++iter, ++seq_slot)
+ {
+ ACE_NEW_THROW_EX (conn,
+ ::OBV_Components::ConnectionDescription,
+ CORBA::NO_MEMORY ());
+ ::Components::ConnectionDescription_var safe_conn = conn;
+
+ ::Components::Cookie *key_cookie = 0;
+ ACE_NEW_THROW_EX (key_cookie,
+ CIAO::Cookie_Impl (iter->first),
+ CORBA::NO_MEMORY ());
+
+ // Valuetype member set operation calls add_ref.
+ conn->ck (key_cookie);
+ CORBA::remove_ref (key_cookie);
+
+ conn->objref (iter->second.in ());
+
+ elem->connections ()[seq_slot] = safe_conn._retn ();
+ }
+
+ descriptions[slot] = safe_elem._retn ();
+ }
+
+ template<typename T_var>
+ void
+ Servant::describe_pub_event_source (
+ const char *port_name,
+ const char *port_type_repo_id,
+ ACE_Array_Map<ptrdiff_t, T_var> &consumers,
+ ::Components::PublisherDescriptions_var &descriptions,
+ CORBA::ULong slot
+ )
+ {
+ CIAO_TRACE ("Servant::describe_pub_event_source");
+
+ ::Components::PublisherDescription *elem = 0;
+ ACE_NEW_THROW_EX (elem,
+ ::OBV_Components::PublisherDescription,
+ CORBA::NO_MEMORY ());
+
+ ::Components::PublisherDescription_var safe_elem = elem;
+
+ elem->name (port_name);
+ elem->type_id (port_type_repo_id);
+ elem->consumers ().length (consumers.size ());
+
+ ptrdiff_t map_slot = 0UL;
+ ::Components::SubscriberDescription *sub = 0;
+
+ typedef typename ACE_Array_Map<ptrdiff_t, T_var>::const_iterator
+ CONST_ITERATOR;
+
+ for (CONST_ITERATOR iter = consumers.begin ();
+ iter != consumers.end ();
+ ++iter, ++map_slot)
+ {
+ ACE_NEW_THROW_EX (sub,
+ ::OBV_Components::SubscriberDescription,
+ CORBA::NO_MEMORY ());
+ ::Components::SubscriberDescription_var safe_sub = sub;
+
+ ::Components::Cookie *key_cookie = 0;
+ ACE_NEW (key_cookie,
+ CIAO::Cookie_Impl (iter->first));
+
+ // Valuetype member set operation calls add_ref.
+ sub->ck (key_cookie);
+ CORBA::remove_ref (key_cookie);
+
+ sub->consumer (iter->second.in ());
+
+ elem->consumers ()[map_slot] = safe_sub._retn ();
+ }
+
+ descriptions[slot] = safe_elem._retn ();
+ }
+
+ template<typename T_var>
+ void
+ Servant::describe_emit_event_source (
+ const char *port_name,
+ const char *port_type_repo_id,
+ T_var &consumer_ref,
+ ::Components::EmitterDescriptions_var &descriptions,
+ CORBA::ULong slot)
+ {
+ CIAO_TRACE ("Servant::describe_emit_event_source");
+ ::Components::EmitterDescription *elem = 0;
+ ACE_NEW_THROW_EX (elem,
+ ::OBV_Components::EmitterDescription,
+ CORBA::NO_MEMORY ());
+ ::Components::EmitterDescription_var safe_elem = elem;
+
+ elem->name (port_name);
+ elem->type_id (port_type_repo_id);
+
+ // Valuetype 'set' call increments the reference count.
+ elem->consumer (consumer_ref.in ());
+
+ descriptions[slot] = safe_elem._retn ();
+ }
+}
+
+#endif /* CIAO_SERVANT_IMPL_T_C */
diff --git a/modules/CIAO/ciao/Servants/Servants.mpc b/modules/CIAO/ciao/Servants/Servants.mpc
new file mode 100644
index 00000000000..3bce7351c57
--- /dev/null
+++ b/modules/CIAO/ciao/Servants/Servants.mpc
@@ -0,0 +1,57 @@
+// $Id$
+project(CIAO_Port_Activator_stub_idl) : ciaoidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_include=CIAO_Port_Activator_export.h \
+ -Wb,stub_export_macro=CIAO_PORT_ACTIVATOR_Export \
+ -SS -Sci -Gxhst
+ IDL_Files {
+ CIAO_Port_Activator.idl
+ }
+}
+
+project(CIAO_Port_Activator_stub) : portableserver, ciao_lib {
+ dynamicflags = CIAO_PORT_ACTIVATOR_BUILD_DLL
+ after += CIAO_Port_Activator_stub_idl
+ IDL_Files {
+ }
+ Source_Files {
+ CIAO_Port_ActivatorC.cpp
+ }
+ Header_Files {
+ }
+}
+
+project(CIAO_Servant_Impl) : ciao_servant_activator, ciao_port_activator_stub, ciao_container_base, ccm_svnt, ciao_output {
+ dynamicflags = CIAO_SERVANT_IMPL_BUILD_DLL
+ IDL_Files {
+ }
+
+ Source_Files {
+ Home_Servant_Impl_Base.cpp
+ Home_Servant_Impl_T.cpp
+ Servant_Impl_Base.cpp
+ Servant_Impl_T.cpp
+ StandardConfigurator_Impl.cpp
+ Port_Activator.cpp
+ }
+
+ Template_Files {
+ Servant_Impl_Utils_T.cpp
+ Port_Activator_T.cpp
+ }
+
+ Header_Files {
+ CIAO_Servant_Impl_export.h
+ Home_Servant_Impl_Base.h
+ Home_Servant_Impl_T.h
+ Servant_Impl_Base.h
+ Servant_Impl_T.h
+ StandardConfigurator_Impl.h
+ Port_Activator.h
+ Port_Activator_T.h
+ }
+
+ Inline_Files {
+ Port_Activator.inl
+ }
+}
diff --git a/modules/CIAO/ciao/Servants/StandardConfigurator_Impl.cpp b/modules/CIAO/ciao/Servants/StandardConfigurator_Impl.cpp
new file mode 100644
index 00000000000..59b683fb82b
--- /dev/null
+++ b/modules/CIAO/ciao/Servants/StandardConfigurator_Impl.cpp
@@ -0,0 +1,33 @@
+// StandardConfigurator.cpp,v 1.0 2004/14/04 08:47:46 white Exp
+
+#include "StandardConfigurator_Impl.h"
+#include "Servant_Impl_Base.h"
+
+ACE_RCSID (ciao,
+ StandardConfigurator_Impl,
+ "$Id$")
+
+namespace CIAO
+{
+ StandardConfigurator_Impl::StandardConfigurator_Impl (
+ Servant_Impl_Base* servant)
+ : component_ (servant)
+ {
+ }
+
+ StandardConfigurator_Impl::~StandardConfigurator_Impl (void)
+ {
+ }
+
+ void
+ StandardConfigurator_Impl::set_configuration (
+ const Components::ConfigValues &descr)
+ {
+ this->component_->set_attributes (descr);
+ }
+
+ void
+ StandardConfigurator_Impl::configure (Components::CCMObject_ptr)
+ {
+ }
+}
diff --git a/modules/CIAO/ciao/Servants/StandardConfigurator_Impl.h b/modules/CIAO/ciao/Servants/StandardConfigurator_Impl.h
new file mode 100644
index 00000000000..4f49e216b88
--- /dev/null
+++ b/modules/CIAO/ciao/Servants/StandardConfigurator_Impl.h
@@ -0,0 +1,73 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file StandardConfigurator_Impl.h
+ *
+ * $Id$
+ *
+ * This file contains implementation for the servant of
+ * Components::StandardConfigurator interface.
+ *
+ * @author Jules White <jules@dre.vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef CIAO_STANDARDCONFIGURATOR_IMPL_H
+#define CIAO_STANDARDCONFIGURATOR_IMPL_H
+
+# include /**/ "ace/pre.h"
+
+#include "CIAO_Servant_Impl_export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ccm/CCM_StandardConfiguratorS.h"
+
+namespace CIAO
+{
+ class Servant_Impl_Base;
+}
+
+namespace CIAO
+{
+ /**
+ * @class StandardConfigurator_Impl
+ *
+ * @brief Servant implementation for Components::StandardConfigurator
+ *
+ * This class implements the Components::StandardConfigurator
+ * interface as defined by the CCM spcification. This class aids
+ * in setting the initial values of component attributes that are
+ * defined in the meta data.
+ */
+ class CIAO_Servant_Impl_Export StandardConfigurator_Impl
+ : public virtual POA_Components::StandardConfigurator
+ {
+ public:
+ /// Constructor
+ StandardConfigurator_Impl (Servant_Impl_Base* toconfigure);
+
+ /// Destructor
+ virtual ~StandardConfigurator_Impl (void);
+
+ /// This method will call set_attributes on the component that is
+ /// being configured, i.e, the template method from
+ /// StandardConfigurator interface.
+ virtual void set_configuration (const Components::ConfigValues & descr);
+
+ void configure (Components::CCMObject_ptr comp);
+
+ private:
+ /// The component whose attributes are going to be configured via
+ /// set_attributes
+ Servant_Impl_Base* const component_;
+ };
+
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_STANDARDCONFIGURATOR_IMPL_H */
diff --git a/modules/CIAO/ciao/Server_init.cpp b/modules/CIAO/ciao/Server_init.cpp
new file mode 100644
index 00000000000..1c8fe5499f7
--- /dev/null
+++ b/modules/CIAO/ciao/Server_init.cpp
@@ -0,0 +1,281 @@
+// $Id$
+
+#include "Server_init.h"
+
+#include <ccm/CCM_ComponentC.h>
+#include <ccm/CCM_StandardConfiguratorC.h>
+#include "Valuetype_Factories/Cookies.h"
+#include "ciao/Logger/Log_Macros.h"
+#include "Client_init.h"
+#include "ace/Tokenizer_T.h"
+
+namespace CIAO
+{
+ int
+ Server_init (CORBA::ORB_ptr o)
+ {
+ Client_init (o);
+ CIAO_REGISTER_VALUE_FACTORY (o,
+ CIAO::Cookie_Impl_init,
+ Components::Cookie);
+ return 0;
+ }
+
+ namespace Utility
+ {
+ int write_IOR (const ACE_TCHAR *pathname, const char *ior)
+ {
+ FILE* ior_output_file_ = ACE_OS::fopen (pathname, ACE_TEXT("w"));
+
+ if (ior_output_file_)
+ {
+ ACE_OS::fprintf (ior_output_file_,
+ "%s",
+ ior);
+ ACE_OS::fclose (ior_output_file_);
+ return 0;
+ }
+
+ return -1;
+ }
+
+ // --------------------------------------------------------------
+ // Implementation of NameUtility class
+ // --------------------------------------------------------------
+ bool NameUtility::bind_name (const char *namestr,
+ CORBA::Object_ptr obj,
+ CosNaming::NamingContextExt_var &root)
+ {
+ if (namestr == 0)
+ {
+ CIAO_ERROR ((LM_WARNING, CLINFO
+ "NameUtility::bind_name - "
+ "called with null name, aborting registration.\n"));
+ return false;
+ }
+
+ CosNaming::Name name;
+ NameUtility::create_name (namestr, name);
+
+ if (name.length () > 1)
+ {
+ // This name has contexts, create them.
+ name.length (name.length () - 1);
+ Utility::NameUtility::create_context_path (root.in (), name);
+ name.length (name.length () + 1);
+ }
+
+ return NameUtility::bind_object_path (root.in (), name, obj);
+ }
+
+ void
+ NameUtility::create_name (const char *namestr, CosNaming::Name &name)
+ {
+ ACE_Auto_Basic_Array_Ptr<char> namebfr (ACE::strnew (namestr));
+ ACE_Tokenizer_T<char> tok (namebfr.get ());
+
+ tok.delimiter ('/');
+
+ for (char *p = tok.next (); p; p=tok.next ())
+ {
+ CORBA::ULong const pos = name.length ();
+ name.length (pos + 1);
+ name[pos].id = CORBA::string_dup (p);
+ }
+ }
+
+ void NameUtility::create_context_path (const CosNaming::NamingContextExt_ptr nc,
+ const CosNaming::Name& name)
+ {
+ bool isNotFound = false;
+ CORBA::ULong lengthMissing = 0;
+ CORBA::ULong const OriginalLength = name.length ();
+ CosNaming::Name tmpName;
+ CosNaming::NamingContext_var tmpCtxVar;
+
+ try
+ {
+ tmpCtxVar = nc->bind_new_context (name);
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "NameUtility::CreateContextPath - Bound Context.\n\n"));
+ }
+ catch (const CosNaming::NamingContext::AlreadyBound&)
+ {
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "NameUtility::CreateContextPath - Context Already Bound.\n\n"));
+ }
+ catch (const CosNaming::NamingContext::NotFound& nf)
+ {
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "NameUtility::CreateContextPath - Context not found.\n\n"));
+ isNotFound = true;
+ lengthMissing = nf.rest_of_name.length ();
+ }
+
+ if (lengthMissing == name.length ())
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "NameUtility::CreateContextPath - Null name length.\n\n"));
+ }
+
+ if (isNotFound)
+ {
+ for (CORBA::ULong l = OriginalLength - lengthMissing;
+ l < OriginalLength;
+ ++l)
+ {
+ tmpName.length (l + 1);
+
+ for (CORBA::ULong i = 0; i <= l; ++i)
+ {
+ tmpName[i] = name[i];
+
+ CORBA::String_var newSCName = nc->to_string (tmpName);
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "NameUtility::CreateContextPath - What's left of the name:%C\n",
+ newSCName.in ()));
+ }
+
+ tmpCtxVar = nc->bind_new_context (tmpName);
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "NameUtility::CreateContextPath - Bound New Context.\n"));
+ }
+ }
+ }
+
+ //---------------------------------------------------------------------------------------------
+ bool NameUtility::bind_object_path (const CosNaming::NamingContextExt_ptr nc,
+ const CosNaming::Name& name,
+ const CORBA::Object_ptr obj)
+ {
+ CosNaming::Name tmpName;
+ CORBA::String_var newSCName = nc->to_string (name);
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "NameUtility::BindObjectPath - The name is: %C\n", newSCName.in ()));
+
+ try
+ {
+ nc->rebind(name, obj);
+ }
+
+ catch (const CosNaming::NamingContext::NotFound&)
+ {
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "NameUtility::BindObjectPath - Name not found, doing new bind.\n"));
+ nc->bind (name, obj);
+ }
+ catch (...)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "NameUtility::BindObjectPath - Caught exception while binding name in nameing service.\n"));
+ return false;
+ }
+ return true;
+ }
+
+ //---------------------------------------------------------------------------------------------
+ CosNaming::BindingList *
+ NameUtility::list_bindings (const CosNaming::NamingContext_ptr nc,
+ const CosNaming::Name& name,
+ CORBA::ULong max_list_size)
+ {
+ CosNaming::BindingList_var basicListV;
+ CosNaming::BindingIterator_var bIterV;
+
+ CORBA::Object_var objV;
+ CosNaming::NamingContext_var tmpContextV;
+
+ if (name.length () == 0)
+ {
+ tmpContextV = CosNaming::NamingContext::_duplicate (nc);
+ }
+ else
+ {
+ objV = nc->resolve (name);
+ tmpContextV = CosNaming::NamingContext::_narrow (objV.in ());
+ }
+
+ if (CORBA::is_nil (tmpContextV.in ()))
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "NameUtility::listBindings: Nil context.\n"));
+ return 0;
+ }
+
+ tmpContextV->list(max_list_size, basicListV.out (), bIterV.out ());
+
+ CORBA::Long max_remaining = max_list_size - basicListV->length ();
+ CORBA::Boolean moreBindings = !CORBA::is_nil (bIterV.in ());
+
+ if (moreBindings)
+ {
+ while (moreBindings && (max_remaining > 0) )
+ {
+ CosNaming::BindingList_var tmpListV;
+
+ moreBindings = bIterV->next_n (max_remaining, tmpListV.out ());
+
+ // Append 'tmpListV' to 'basicListV'
+ CORBA::ULong basicListLen = basicListV->length ();
+ basicListV->length (basicListLen+tmpListV->length ());
+
+ for (CORBA::ULong i = 0; i < tmpListV->length (); ++i)
+ {
+ (*basicListV)[i+basicListLen] = (*tmpListV)[i];
+ }
+
+ // Re-calculate 'max_remaining'
+ max_remaining = max_list_size - basicListV->length();
+ }
+
+ bIterV->destroy ();
+ }
+
+ return basicListV._retn ();
+ }
+
+ //---------------------------------------------------------------------------------------------
+ void
+ NameUtility::recursive_unbind (const CosNaming::NamingContext_ptr nc,
+ const CosNaming::Name& name)
+ {
+ CORBA::Object_var objV;
+ CosNaming::NamingContext_var tmpContextV;
+
+ objV = nc->resolve(name);
+ tmpContextV = CosNaming::NamingContext::_narrow (objV.in ());
+
+ if (CORBA::is_nil (tmpContextV.in ()))
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO
+ "NameUtility::recursiveUnbind - Nil context reference.\n"));
+ return;
+ }
+
+ CosNaming::BindingList_var blV;
+ CosNaming::Name tmpName;
+ tmpName.length (0);
+
+ blV = NameUtility::list_bindings (tmpContextV.in (),
+ tmpName,
+ 10000); // 'max_list_size'
+
+ for (CORBA::ULong i = 0; i < blV->length (); ++i)
+ {
+ tmpName = (*blV)[i].binding_name;
+
+ if ((*blV)[i].binding_type == CosNaming::nobject)
+ {
+ tmpContextV->unbind(tmpName);
+ }
+ else if ((*blV)[i].binding_type==CosNaming::ncontext)
+ {
+ NameUtility::recursive_unbind (tmpContextV.in (), tmpName);
+ }
+ }
+
+ nc->unbind (name);
+ tmpContextV->destroy ();
+ }
+ } /* namespace Utility */
+} /* namespace CIAO */
diff --git a/modules/CIAO/ciao/Server_init.h b/modules/CIAO/ciao/Server_init.h
new file mode 100644
index 00000000000..bb9e00ede9f
--- /dev/null
+++ b/modules/CIAO/ciao/Server_init.h
@@ -0,0 +1,103 @@
+// $Id$
+
+/**
+ * @file Server_init.h
+ *
+ * Initializing CIAO Server side ORB, if they need to.
+ * I'm also puting some utilities functions here.
+ *
+ * @author Nanbor Wang <nanbor@cs.wustl.edu>
+ * @author Gan Deng <dengg@dre.vanderbilt.edu>
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ */
+
+#ifndef CIAO_SERVER_INIT_H
+#define CIAO_SERVER_INIT_H
+
+#include /**/ "ace/pre.h"
+
+#include "CIAO_Server_Export.h"
+
+#if !defined ACE_LACKS_PRAGMA_ONCE
+#pragma once
+#endif /* ! ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/SString.h"
+#include "orbsvcs/CosNamingC.h"
+#include "ccm/CCM_StandardConfiguratorC.h"
+
+TAO_BEGIN_VERSIONED_NAMESPACE_DECL
+namespace CORBA
+{
+ class ORB;
+ typedef ORB *ORB_ptr;
+}
+TAO_END_VERSIONED_NAMESPACE_DECL
+
+namespace CIAO
+{
+ /**
+ * The initialize routine for any server that need to access
+ * component. This routine now simply registers various valuetype
+ * factories defined in CIAO_Component.pidl. Currently, this method
+ * should be call right after ORB initialization but we should try
+ * to register these stuff automatically.
+ */
+ CIAO_SERVER_Export int Server_init (CORBA::ORB_ptr o);
+
+ namespace Utility
+ {
+ /// Write a string (usually a stringified IOR) to a file
+ /// designated by the @c pathname. The file named will always get
+ /// overwritten.
+ CIAO_SERVER_Export int write_IOR (const ACE_TCHAR *pathname,
+ const char *IOR);
+
+ class CIAO_SERVER_Export NameUtility
+ {
+ /**
+ * A utility class to bind naming context. This class is contributed by
+ * Dipa Suri <dipa.suri@lmco.com>.
+ *
+ * The concept/code are derived from
+ * http://www.informit.com/articles/article.asp?p=23266&seqNum=6
+ */
+
+ public:
+ static bool bind_name (const char *namestr,
+ CORBA::Object_ptr obj,
+ CosNaming::NamingContextExt_var &root);
+
+ static void create_name (const char *namestr, CosNaming::Name &);
+
+ /// For each 'NameComponent' in 'name', create a corresponding 'NamingContext'.
+ static void create_context_path (const CosNaming::NamingContextExt_ptr,
+ const CosNaming::Name &);
+
+ /// For the first [0, length-2] NameComponents of 'name', create a
+ /// corresponding 'NamingContext'.
+ /// For the length-1 NameComponent of 'name', bind it to the object
+ /// reference 'obj'.
+ static bool bind_object_path (const CosNaming::NamingContextExt_ptr,
+ const CosNaming::Name&,
+ const CORBA::Object_ptr);
+
+ /// Get a list of all bindings under the given context, up to
+ /// max_list_size.
+ static CosNaming::BindingList * list_bindings (const CosNaming::NamingContext_ptr,
+ const CosNaming::Name&,
+ CORBA::ULong);
+
+ /// Recursively unbind all objects and contexts below the given name
+ /// context, given the initial context nc.
+ /// Assumes a tree shape to service (not cyclic)
+ static void recursive_unbind (const CosNaming::NamingContext_ptr,
+ const CosNaming::Name&);
+
+ };
+ }
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_SERVER_INIT_H */
diff --git a/modules/CIAO/ciao/Valuetype_Factories/ConfigValue.cpp b/modules/CIAO/ciao/Valuetype_Factories/ConfigValue.cpp
new file mode 100644
index 00000000000..30a12b438b3
--- /dev/null
+++ b/modules/CIAO/ciao/Valuetype_Factories/ConfigValue.cpp
@@ -0,0 +1,43 @@
+// $Id$
+#include "ConfigValue.h"
+
+ACE_RCSID (ciao,
+ ConfigValue,
+ "$Id$")
+
+namespace CIAO
+{
+ ConfigValue_impl::ConfigValue_impl()
+ {
+ CORBA::Any any;
+ any <<= CORBA::Short(0);
+ name((const char*)"");
+ value(any);
+ }
+
+
+ ConfigValue_impl::ConfigValue_impl(const char* the_name,
+ const CORBA::Any& the_value)
+ : OBV_Components::ConfigValue()
+ {
+ CORBA::Any any = the_value;
+ name( the_name );
+ value( any );
+ }
+
+ CORBA::ValueBase* ConfigValue_impl::_copy_value()
+ {
+ return new ConfigValue_impl(name(),value());
+ }
+
+ ConfigValue_impl::~ConfigValue_impl()
+ throw ()
+ {
+ }
+
+ CORBA::ValueBase *
+ ConfigValueFactory::create_for_unmarshal ()
+ {
+ return new ConfigValue_impl();
+ }
+}
diff --git a/modules/CIAO/ciao/Valuetype_Factories/ConfigValue.h b/modules/CIAO/ciao/Valuetype_Factories/ConfigValue.h
new file mode 100644
index 00000000000..3592c045f79
--- /dev/null
+++ b/modules/CIAO/ciao/Valuetype_Factories/ConfigValue.h
@@ -0,0 +1,38 @@
+// $Id$
+
+
+#ifndef CIAO_CONFIG_VALUE_H
+#define CIAO_CONFIG_VALUE_H
+#include /**/ "ace/pre.h"
+
+#include "ccm/CCM_StandardConfiguratorC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ConfigValue_Export.h"
+// #include "ace/Active_Map_Manager.h"
+
+namespace CIAO
+{
+ class ConfigValue_Factory_Export ConfigValue_impl
+ : public virtual OBV_Components::ConfigValue,
+ public virtual CORBA::DefaultValueRefCountBase
+ {
+ public:
+ ConfigValue_impl();
+ ConfigValue_impl(const char* the_name, const CORBA::Any& the_value);
+ ~ConfigValue_impl() throw();
+ virtual CORBA::ValueBase* _copy_value();
+ };
+
+ class ConfigValueFactory : virtual public Components::ConfigValue_init
+ {
+ public:
+ CORBA::ValueBase * create_for_unmarshal ();
+ };
+}
+
+#include /**/ "ace/post.h"
+#endif /* CIAO_CONFIG_VALUE_H */
diff --git a/modules/CIAO/ciao/Valuetype_Factories/ConfigValue_Export.h b/modules/CIAO/ciao/Valuetype_Factories/ConfigValue_Export.h
new file mode 100644
index 00000000000..71ec6ce9491
--- /dev/null
+++ b/modules/CIAO/ciao/Valuetype_Factories/ConfigValue_Export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ConfigValue_Factory
+// ------------------------------
+#ifndef CONFIGVALUE_FACTORY_EXPORT_H
+#define CONFIGVALUE_FACTORY_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (CONFIGVALUE_FACTORY_HAS_DLL)
+# define CONFIGVALUE_FACTORY_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && CONFIGVALUE_FACTORY_HAS_DLL */
+
+#if !defined (CONFIGVALUE_FACTORY_HAS_DLL)
+# define CONFIGVALUE_FACTORY_HAS_DLL 1
+#endif /* ! CONFIGVALUE_FACTORY_HAS_DLL */
+
+#if defined (CONFIGVALUE_FACTORY_HAS_DLL) && (CONFIGVALUE_FACTORY_HAS_DLL == 1)
+# if defined (CONFIGVALUE_FACTORY_BUILD_DLL)
+# define ConfigValue_Factory_Export ACE_Proper_Export_Flag
+# define CONFIGVALUE_FACTORY_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define CONFIGVALUE_FACTORY_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* CONFIGVALUE_FACTORY_BUILD_DLL */
+# define ConfigValue_Factory_Export ACE_Proper_Import_Flag
+# define CONFIGVALUE_FACTORY_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define CONFIGVALUE_FACTORY_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* CONFIGVALUE_FACTORY_BUILD_DLL */
+#else /* CONFIGVALUE_FACTORY_HAS_DLL == 1 */
+# define ConfigValue_Factory_Export
+# define CONFIGVALUE_FACTORY_SINGLETON_DECLARATION(T)
+# define CONFIGVALUE_FACTORY_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* CONFIGVALUE_FACTORY_HAS_DLL == 1 */
+
+// Set CONFIGVALUE_FACTORY_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (CONFIGVALUE_FACTORY_NTRACE)
+# if (ACE_NTRACE == 1)
+# define CONFIGVALUE_FACTORY_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define CONFIGVALUE_FACTORY_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !CONFIGVALUE_FACTORY_NTRACE */
+
+#if (CONFIGVALUE_FACTORY_NTRACE == 1)
+# define CONFIGVALUE_FACTORY_TRACE(X)
+#else /* (CONFIGVALUE_FACTORY_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define CONFIGVALUE_FACTORY_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (CONFIGVALUE_FACTORY_NTRACE == 1) */
+
+#endif /* CONFIGVALUE_FACTORY_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/ciao/Valuetype_Factories/Cookie_Export.h b/modules/CIAO/ciao/Valuetype_Factories/Cookie_Export.h
new file mode 100644
index 00000000000..277717f4d5c
--- /dev/null
+++ b/modules/CIAO/ciao/Valuetype_Factories/Cookie_Export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl Cookie_Factory
+// ------------------------------
+#ifndef COOKIE_FACTORY_EXPORT_H
+#define COOKIE_FACTORY_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (COOKIE_FACTORY_HAS_DLL)
+# define COOKIE_FACTORY_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && COOKIE_FACTORY_HAS_DLL */
+
+#if !defined (COOKIE_FACTORY_HAS_DLL)
+# define COOKIE_FACTORY_HAS_DLL 1
+#endif /* ! COOKIE_FACTORY_HAS_DLL */
+
+#if defined (COOKIE_FACTORY_HAS_DLL) && (COOKIE_FACTORY_HAS_DLL == 1)
+# if defined (COOKIE_FACTORY_BUILD_DLL)
+# define Cookie_Factory_Export ACE_Proper_Export_Flag
+# define COOKIE_FACTORY_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define COOKIE_FACTORY_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* COOKIE_FACTORY_BUILD_DLL */
+# define Cookie_Factory_Export ACE_Proper_Import_Flag
+# define COOKIE_FACTORY_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define COOKIE_FACTORY_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* COOKIE_FACTORY_BUILD_DLL */
+#else /* COOKIE_FACTORY_HAS_DLL == 1 */
+# define Cookie_Factory_Export
+# define COOKIE_FACTORY_SINGLETON_DECLARATION(T)
+# define COOKIE_FACTORY_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* COOKIE_FACTORY_HAS_DLL == 1 */
+
+// Set COOKIE_FACTORY_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (COOKIE_FACTORY_NTRACE)
+# if (ACE_NTRACE == 1)
+# define COOKIE_FACTORY_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define COOKIE_FACTORY_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !COOKIE_FACTORY_NTRACE */
+
+#if (COOKIE_FACTORY_NTRACE == 1)
+# define COOKIE_FACTORY_TRACE(X)
+#else /* (COOKIE_FACTORY_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define COOKIE_FACTORY_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (COOKIE_FACTORY_NTRACE == 1) */
+
+#endif /* COOKIE_FACTORY_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/ciao/Valuetype_Factories/Cookies.cpp b/modules/CIAO/ciao/Valuetype_Factories/Cookies.cpp
new file mode 100644
index 00000000000..0d32ffe9d89
--- /dev/null
+++ b/modules/CIAO/ciao/Valuetype_Factories/Cookies.cpp
@@ -0,0 +1,68 @@
+// $Id$
+
+#include "Cookies.h"
+
+#if !defined (__ACE_INLINE__)
+#include "Cookies.inl"
+#endif /* !defined INLINE */
+
+ACE_RCSID (ciao,
+ Cookies,
+ "$Id$")
+
+namespace CIAO
+{
+ Cookie_Impl::Cookie_Impl (ptrdiff_t const &key)
+ {
+ this->cookieValue ().length (sizeof (ptrdiff_t));
+ ACE_OS::memcpy (this->cookieValue ().get_buffer (false),
+ &key,
+ sizeof (ptrdiff_t));
+ }
+
+ Cookie_Impl::~Cookie_Impl (void)
+ {
+ }
+
+ bool
+ Cookie_Impl::extract (Components::Cookie const * const ck,
+ ptrdiff_t &key)
+ {
+ Cookie_Impl const * const c =
+ dynamic_cast <Cookie_Impl const *> (ck);
+
+ if (c == 0)
+ {
+ return false;
+ }
+
+ CORBA::OctetSeq const &x = c->cookieValue ();
+
+ if (x.length () != sizeof (ptrdiff_t))
+ {
+ return false;
+ }
+
+ key = *reinterpret_cast<const ptrdiff_t*> (x.get_buffer ());
+
+ return true;
+ }
+
+ //========================================================
+
+ CORBA::ValueBase *
+ Cookie_Impl_init::create_for_unmarshal (void)
+ {
+ CORBA::ValueBase *ret_val = 0;
+
+ ACE_NEW_THROW_EX (ret_val,
+ CIAO::Cookie_Impl,
+ CORBA::NO_MEMORY ());
+
+ return ret_val;
+ }
+
+ Cookie_Impl_init::~Cookie_Impl_init (void)
+ {
+ }
+}
diff --git a/modules/CIAO/ciao/Valuetype_Factories/Cookies.h b/modules/CIAO/ciao/Valuetype_Factories/Cookies.h
new file mode 100644
index 00000000000..8fd92b348f8
--- /dev/null
+++ b/modules/CIAO/ciao/Valuetype_Factories/Cookies.h
@@ -0,0 +1,70 @@
+// $Id$
+
+/**
+ * @file Cookies.h
+ *
+ * A CIAO implementation of Cookie valuetype.
+ *
+ * @author Nanbor Wang <nanbor@cs.wustl.edu>
+ */
+
+#ifndef CIAO_COOKIES_H
+#define CIAO_COOKIES_H
+
+#include /**/ "ace/pre.h"
+
+#include "Cookie_Export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ccm/CCM_CookieC.h"
+
+#include "ace/Active_Map_Manager.h"
+
+namespace CIAO
+{
+ /**
+ * @class Cookie_Impl
+ *
+ * @brief A cookie implementation using an unsigned integer
+ * big enough to hold an address, even on a 64-bit machine.
+ */
+ class Cookie_Factory_Export Cookie_Impl
+ : public virtual OBV_Components::Cookie
+ {
+ public:
+ Cookie_Impl (void);
+ virtual ~Cookie_Impl (void);
+
+ /// Initialize a @c Cookie with a @c ptrdiff_t
+ Cookie_Impl (ptrdiff_t const &key);
+
+ /// Extract the @c CORBA::ULong
+ static bool extract (Components::Cookie const * const c,
+ ptrdiff_t &key);
+ };
+
+ /**
+ * @class Cookie_Impl_init
+ *
+ * @brief Valuefactory implementation for Cookie_Impl.
+ */
+ class Cookie_Factory_Export Cookie_Impl_init
+ : public virtual Components::Cookie_init
+ {
+ public:
+ virtual ~Cookie_Impl_init (void);
+
+ virtual CORBA::ValueBase *create_for_unmarshal (void);
+ };
+}
+
+#if defined (__ACE_INLINE__)
+#include "Cookies.inl"
+#endif /* defined INLINE */
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_COOKIES_H */
diff --git a/modules/CIAO/ciao/Valuetype_Factories/Cookies.inl b/modules/CIAO/ciao/Valuetype_Factories/Cookies.inl
new file mode 100644
index 00000000000..406485110c4
--- /dev/null
+++ b/modules/CIAO/ciao/Valuetype_Factories/Cookies.inl
@@ -0,0 +1,10 @@
+/* -*- C++ -*- */
+// $Id$
+
+namespace CIAO
+{
+ ACE_INLINE
+ Cookie_Impl::Cookie_Impl (void)
+ {
+ }
+}
diff --git a/modules/CIAO/ciao/Valuetype_Factories/Factories.mpc b/modules/CIAO/ciao/Valuetype_Factories/Factories.mpc
new file mode 100644
index 00000000000..c03e88e1ec8
--- /dev/null
+++ b/modules/CIAO/ciao/Valuetype_Factories/Factories.mpc
@@ -0,0 +1,23 @@
+//$Id$
+project(CCM_Cookie_Factory) : ccm_stub, ciao_lib {
+ dynamicflags = COOKIE_FACTORY_BUILD_DLL
+ Source_Files {
+ Cookies.cpp
+ }
+ Header_Files {
+ Cookies.h
+ }
+ Inline_Files {
+ Cookies.inl
+ }
+}
+
+project(CCM_ConfigValue_Factory) : ccm_stub, ciao_lib {
+ dynamicflags = CONFIGVALUE_FACTORY_BUILD_DLL
+ Source_Files {
+ ConfigValue.cpp
+ }
+ Header_Files {
+ ConfigValue.h
+ }
+}
diff --git a/modules/CIAO/ciao/Version.h b/modules/CIAO/ciao/Version.h
new file mode 100644
index 00000000000..1b2b41508e5
--- /dev/null
+++ b/modules/CIAO/ciao/Version.h
@@ -0,0 +1,9 @@
+
+// -*- C++ -*-
+// $Id$
+// This is file was automatically generated by \$ACE_ROOT/bin/make_release.
+
+#define CIAO_MAJOR_VERSION 0
+#define CIAO_MINOR_VERSION 7
+#define CIAO_BETA_VERSION 4
+#define CIAO_VERSION "0.7.4"
diff --git a/modules/CIAO/connectors/ami4ccm/docs/AMI4CCM-explanation.odt b/modules/CIAO/connectors/ami4ccm/docs/AMI4CCM-explanation.odt
new file mode 100644
index 00000000000..3fa615676e7
--- /dev/null
+++ b/modules/CIAO/connectors/ami4ccm/docs/AMI4CCM-explanation.odt
Binary files differ
diff --git a/modules/CIAO/connectors/ami4ccm/docs/AMI4CCM-spec.odt b/modules/CIAO/connectors/ami4ccm/docs/AMI4CCM-spec.odt
new file mode 100644
index 00000000000..c38341f275e
--- /dev/null
+++ b/modules/CIAO/connectors/ami4ccm/docs/AMI4CCM-spec.odt
Binary files differ
diff --git a/modules/CIAO/connectors/ami4ccm/examples/Hello/AMI/AMI.idl b/modules/CIAO/connectors/ami4ccm/examples/Hello/AMI/AMI.idl
new file mode 100644
index 00000000000..e264aea4b8c
--- /dev/null
+++ b/modules/CIAO/connectors/ami4ccm/examples/Hello/AMI/AMI.idl
@@ -0,0 +1,32 @@
+// $Id$
+
+#ifndef AMI_IDL
+#define AMI_IDL
+
+#include <Components.idl>
+
+#include "Hello_Base/Hello_Base.idl"
+#include "Hello_Base/Hello_BaseE.idl"
+#include "Hello_Base/HelloE.idl"
+
+module Hello_AMI_AMI
+{
+ component AMI
+ {
+ //provides the interface for Sender
+ provides Hello_AMI::AMI_MyFoo perform_asynch_my_foo;
+
+ //uses the interface of the Receiver ('server')
+ uses Hello::MyFoo my_foo_receiver;
+
+ //uses the callback interface of the sender
+ uses Hello_AMI::AMI_MyFooCallback callback_my_foo;
+ };
+
+ home AMIHome manages AMI
+ {
+ };
+};
+
+
+#endif
diff --git a/modules/CIAO/connectors/ami4ccm/examples/Hello/AMI/AMI.mpc b/modules/CIAO/connectors/ami4ccm/examples/Hello/AMI/AMI.mpc
new file mode 100644
index 00000000000..4473cf6adb5
--- /dev/null
+++ b/modules/CIAO/connectors/ami4ccm/examples/Hello/AMI/AMI.mpc
@@ -0,0 +1,141 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p Hello_Base AMI"
+
+project(Hello_Base_AMI_idl_gen) : componentidldefaults {
+ after += AMI_Hello_Base_idl_gen AMI_Hello_idl_gen
+ custom_only = 1
+ idlflags += \
+ -Wb,stub_export_macro=AMI_STUB_Export \
+ -Wb,stub_export_include=AMI_stub_export.h \
+ -Wb,skel_export_macro=AMI_SVNT_Export \
+ -Wb,skel_export_include=AMI_svnt_export.h \
+ -Wb,exec_export_macro=AMI_EXEC_Export \
+ -Wb,exec_export_include=AMI_exec_export.h \
+ -I..
+
+ IDL_Files {
+ AMI.idl
+ }
+}
+
+project(Hello_Base_AMI_lem_gen) : ciaoidldefaults {
+ after += Hello_Base_AMI_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=AMI_LEM_STUB_Export \
+ -Wb,stub_export_include=AMI_lem_stub_export.h \
+ -SS -Gxhst -I..
+
+ IDL_Files {
+ AMIE.idl
+ }
+}
+
+project(Hello_Base_AMI_lem_stub) : ccm_svnt, ami {
+ after += Hello_Base_AMI_lem_gen Hello_Base_AMI_stub AMI_Hello_Base_stub
+ libs += Hello_Base_stub AMI_stub
+ libpaths += ../lib
+ libout = ../lib
+ sharedname = AMI_lem_stub
+ dynamicflags = AMI_LEM_STUB_BUILD_DLL
+ includes += ..
+ IDL_Files {
+ }
+
+ Source_Files {
+ AMIEC.cpp
+ }
+
+ Header_Files {
+ AMIEC.h
+ AMI_lem_stub_export.h
+ }
+
+ Inline_Files {
+ AMIEC.inl
+ }
+}
+
+project(Hello_Base_AMI_stub) : ccm_stub, ami {
+ after += Hello_Base_AMI_idl_gen AMI_Hello_Base_stub
+ libs += Hello_Base_stub
+ libpaths += ../lib
+ libout = ../lib
+ sharedname = AMI_stub
+ dynamicflags = AMI_STUB_BUILD_DLL
+ includes += ..
+ IDL_Files {
+ }
+
+ Source_Files {
+ AMIC.cpp
+ }
+
+ Header_Files {
+ AMIC.h
+ AMI_stub_export.h
+ }
+
+ Inline_Files {
+ AMIC.inl
+ }
+}
+
+project(Hello_Base_AMI_exec) : ciao_executor, ami {
+ after += Hello_Base_AMI_lem_stub AMI_Hello_Base_AMI_stub AMI_Hello_Base_skel AMI_Hello_Base_exec
+ sharedname = AMI_exec
+ libs += AMI_stub AMI_lem_stub Hello_Base_stub Hello_Base_skel Hello_Base_exec
+ libpaths += ../lib
+ libout = ../lib
+ dynamicflags = AMI_EXEC_BUILD_DLL
+ includes += ..
+ IDL_Files {
+ }
+
+ Source_Files {
+ AMI_exec.cpp
+ AMI_MyFoo_i.cpp
+ }
+
+ Header_Files {
+ AMI_exec.h
+ AMI_MyFoo_i.h
+ AMI_exec_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+
+project(Hello_Base_AMI_svnt) : ciao_servant, ami {
+ after += AMI_Hello_Base_skel Hello_Base_AMI_lem_stub Hello_Base_AMI_exec
+ sharedname = AMI_svnt
+ libs += AMI_stub AMI_lem_stub \
+ Hello_Base_skel \
+ Hello_Base_stub \
+ Hello_Base_exec \
+ AMI_exec
+ libpaths += ../lib
+ libout = ../lib
+ dynamicflags = AMI_SVNT_BUILD_DLL
+ includes += ..
+ IDL_Files {
+ }
+
+ Source_Files {
+ AMIS.cpp
+ AMI_svnt.cpp
+ }
+
+ Header_Files {
+ AMIS.h
+ AMI_svnt.h
+ AMI_svnt_export.h
+ }
+
+ Inline_Files {
+ AMIS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/connectors/ami4ccm/examples/Hello/AMI/AMI_MyFoo_i.cpp b/modules/CIAO/connectors/ami4ccm/examples/Hello/AMI/AMI_MyFoo_i.cpp
new file mode 100644
index 00000000000..1e028cc32b9
--- /dev/null
+++ b/modules/CIAO/connectors/ami4ccm/examples/Hello/AMI/AMI_MyFoo_i.cpp
@@ -0,0 +1,216 @@
+// $Id$
+
+#include "AMI_MyFoo_i.h"
+#include "tao/Messaging/ExceptionHolder_i.h"
+#include "tao/Exception_Data.h"
+
+namespace CCM_CORBA_AMI_MyFoo_Impl
+{
+ //============================================================
+ // Implementation of the AMI CORBA FOO reply handler
+ //============================================================
+ AMI_MyFoo_reply_handler::AMI_MyFoo_reply_handler (::Hello_AMI::AMI_MyFooCallback_ptr foo_callback)
+ : foo_callback_ (::Hello_AMI::AMI_MyFooCallback::_duplicate (foo_callback))
+ {
+ }
+
+ AMI_MyFoo_reply_handler::~AMI_MyFoo_reply_handler ()
+ {
+ }
+
+ // FOO methods
+ void
+ AMI_MyFoo_reply_handler::foo (
+ CORBA::Long result,
+ const char * out_str)
+ {
+ printf ("AMI CORBA (FOO) :\tMyFoo Foo Reply Handler::foo\n");
+ foo_callback_->foo (result, CORBA::string_dup (out_str));
+ this->_remove_ref ();
+ }
+
+ void
+ AMI_MyFoo_reply_handler::foo_excep (
+ ::Messaging::ExceptionHolder * excep_holder)
+ {
+ printf ("AMI CORBA (FOO) :\tMyFoo Foo Reply Handler::foo_excep\n");
+ foo_callback_->foo_excep (excep_holder);
+ this->_remove_ref ();
+ }
+
+ // HELLO methods
+ void
+ AMI_MyFoo_reply_handler::hello (
+ CORBA::Long answer)
+ {
+ printf ("AMI CORBA (FOO) :\tMyFoo Hello Reply Handler::hello\n");
+ foo_callback_->hello (answer);
+ this->_remove_ref ();
+ }
+
+ void
+ AMI_MyFoo_reply_handler::hello_excep (
+ ::Messaging::ExceptionHolder * excep_holder)
+ {
+ printf ("AMI CORBA (FOO) :\tMyFoo Hello Reply Handler::hello_excep\n");
+ foo_callback_->hello_excep (excep_holder);
+ this->_remove_ref ();
+ }
+
+ //GET rw_attrib Reply Handler
+ void
+ AMI_MyFoo_reply_handler::get_rw_attrib (
+ ::CORBA::Short ami_return_val)
+ {
+ printf ("AMI CORBA (FOO) :\tMyFoo Hello Reply Handler::get_rw_atrrib\n");
+ foo_callback_->get_rw_attrib (ami_return_val);
+ this->_remove_ref ();
+ }
+
+ void
+ AMI_MyFoo_reply_handler::get_rw_attrib_excep (
+ ::Messaging::ExceptionHolder * excep_holder)
+ {
+ printf ("AMI CORBA (FOO) :\tMyFoo Hello Reply Handler::get_rw_attrib_excep\n");
+ foo_callback_->get_rw_attrib_excep (excep_holder);
+ this->_remove_ref ();
+ }
+
+ //SET rw_attrib Reply Handler
+ void
+ AMI_MyFoo_reply_handler::set_rw_attrib ()
+ {
+ printf ("AMI CORBA (FOO) :\tMyFoo Hello Reply Handler::set_rw_attrib\n");
+ foo_callback_->set_rw_attrib ();
+ this->_remove_ref ();
+ }
+
+ void
+ AMI_MyFoo_reply_handler::set_rw_attrib_excep (
+ ::Messaging::ExceptionHolder * excep_holder)
+ {
+ printf ("AMI CORBA (FOO) :\tMyFoo Hello Reply Handler::set_rw_attrib_excep\n");
+ foo_callback_->set_rw_attrib_excep (excep_holder);
+ this->_remove_ref ();
+ }
+
+ //ro_attrib Reply Handler
+ void
+ AMI_MyFoo_reply_handler::get_ro_attrib (
+ ::CORBA::Short ami_return_val)
+ {
+ printf ("AMI CORBA (FOO) :\tMyFoo Hello Reply Handler::get_ro_attrib\n");
+ foo_callback_->get_ro_attrib (ami_return_val);
+ this->_remove_ref ();
+ }
+
+ void
+ AMI_MyFoo_reply_handler::get_ro_attrib_excep (
+ ::Messaging::ExceptionHolder * excep_holder)
+ {
+ printf ("AMI CORBA (FOO) :\tMyFoo Hello Reply Handler::get_ro_atrrib_excep\n");
+ foo_callback_->get_ro_attrib_excep (excep_holder);
+ this->_remove_ref ();
+ }
+
+
+ //============================================================
+ // Implementation of the AMI CORBA FOO interface
+ //============================================================
+ AMI_MyFoo_i::AMI_MyFoo_i (CORBA::ORB_ptr orb, ::Hello::MyFoo_ptr foo_receiver)
+ : orb_ (CORBA::ORB::_duplicate (orb)),
+ foo_receiver_ (::Hello::MyFoo::_duplicate (foo_receiver))
+ {
+ }
+
+ CORBA::Long
+ AMI_MyFoo_i::foo (const char * in_str,
+ CORBA::String_out out_str)
+ {
+ printf ("AMI CORBA (FOO) :\tReceived string <%s>. Try passing it to the Receiver component\n", in_str);
+ CORBA::Long result = foo_receiver_->foo (CORBA::string_dup (in_str), out_str);
+ return result;
+ }
+
+ void
+ AMI_MyFoo_i::hello (CORBA::Long_out answer)
+ {
+ printf ("AMI CORBA (FOO) :\tHello. Try calling the Receiver component\n");
+ foo_receiver_->hello (answer);
+ }
+
+ CORBA::Short
+ AMI_MyFoo_i::rw_attrib ()
+ {
+ printf ("AMI CORBA (FOO) :\trw_attrib. Try calling the Receiver component\n");
+ CORBA::Short result = foo_receiver_->rw_attrib ();
+ return result;
+ }
+
+ void
+ AMI_MyFoo_i::rw_attrib (CORBA::Short rw_attrib)
+ {
+ printf ("AMI CORBA (FOO) :\tSet rw_attrib. Try calling the Receiver component\n");
+ foo_receiver_->rw_attrib (rw_attrib);
+ }
+
+ CORBA::Short
+ AMI_MyFoo_i::ro_attrib ()
+ {
+ printf ("AMI CORBA (FOO) :\tro_attrib. Try calling the Receiver component\n");
+ CORBA::Short result = foo_receiver_->ro_attrib ();
+ return result;
+ }
+
+ //============================================================
+ // Worker thread to service the AMI CORBA FOO interface
+ //============================================================
+ CORBA_MyFoo_server::CORBA_MyFoo_server (::Hello::MyFoo_ptr foo_receiver)
+ : foo_receiver_ (::Hello::MyFoo::_duplicate (foo_receiver))
+ {
+ }
+
+ int CORBA_MyFoo_server::svc ()
+ {
+ try
+ {
+ int argc = 2;
+ ACE_TCHAR **argv = new ACE_TCHAR *[argc];
+ argv[0] = ACE::strnew (ACE_TEXT (""));
+ argv[1] = ACE::strnew (ACE_TEXT (""));
+ CORBA::ORB_var orb =
+ CORBA::ORB_init (argc, argv, ACE_TEXT ("CORBA_MyFoo_server"));
+
+ CORBA::Object_var poa_object =
+ orb->resolve_initial_references("RootPOA");
+
+ if (CORBA::is_nil (poa_object.in ()))
+ {
+ printf ("Server :\tERROR creating POA \n");
+ return 1;
+ }
+ PortableServer::POA_var root_poa =
+ PortableServer::POA::_narrow (poa_object.in ());
+ PortableServer::POAManager_var poa_manager =
+ root_poa->the_POAManager ();
+ AMI_MyFoo_i AMI_MyFoo_i (orb.in (), foo_receiver_);
+ PortableServer::ObjectId_var id =
+ root_poa->activate_object (&AMI_MyFoo_i);
+ CORBA::Object_var object = root_poa->id_to_reference (id.in ());
+ Hello::MyFoo_var ami_foo_var =
+ Hello::MyFoo::_narrow (object.in ());
+ CORBA::String_var ior =
+ orb->object_to_string (ami_foo_var.in ());
+ poa_manager->activate ();
+ printf ("AMI CORBA (FOO) :\tFOO Server is activated\n");
+ orb->run ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Caught except:");
+ return 1;
+ }
+
+ return 0;
+ }
+}
diff --git a/modules/CIAO/connectors/ami4ccm/examples/Hello/AMI/AMI_MyFoo_i.h b/modules/CIAO/connectors/ami4ccm/examples/Hello/AMI/AMI_MyFoo_i.h
new file mode 100644
index 00000000000..472886fb1a0
--- /dev/null
+++ b/modules/CIAO/connectors/ami4ccm/examples/Hello/AMI/AMI_MyFoo_i.h
@@ -0,0 +1,110 @@
+// $Id$
+
+#ifndef AMI_MyFoo_i_H
+#define AMI_MyFoo_i_H
+
+#include "AMIS.h"
+#include "ace/Task.h"
+
+namespace CCM_CORBA_AMI_MyFoo_Impl
+{
+ //============================================================
+ // Implementation of the AMI CORBA FOO reply handler
+ //============================================================
+ class AMI_MyFoo_reply_handler : public POA_Hello::AMI_MyFooHandler
+ {
+ public:
+ AMI_MyFoo_reply_handler (
+ ::Hello_AMI::AMI_MyFooCallback_ptr foo_callback);
+ ~AMI_MyFoo_reply_handler (void);
+
+ void
+ foo (
+ CORBA::Long result,
+ const char * out_str);
+
+ void
+ foo_excep (
+ ::Messaging::ExceptionHolder * excep_holder);
+
+ void
+ hello (
+ CORBA::Long answer);
+
+ void
+ hello_excep (
+ ::Messaging::ExceptionHolder * excep_holder);
+
+ void
+ get_rw_attrib (
+ ::CORBA::Short ami_return_val);
+
+ void
+ get_rw_attrib_excep (
+ ::Messaging::ExceptionHolder * excep_holder);
+
+ void
+ set_rw_attrib ();
+
+ void
+ set_rw_attrib_excep (
+ ::Messaging::ExceptionHolder * excep_holder);
+
+ void
+ get_ro_attrib (
+ ::CORBA::Short ami_return_val);
+
+ void
+ get_ro_attrib_excep (
+ ::Messaging::ExceptionHolder * excep_holder);
+ private:
+ ::Hello_AMI::AMI_MyFooCallback_var foo_callback_;
+ };
+
+ class AMI_MyFoo_i : public POA_Hello::MyFoo
+ {
+ public:
+ /// ctor
+ AMI_MyFoo_i (
+ CORBA::ORB_ptr orb,
+ ::Hello::MyFoo_ptr foo_receiver);
+
+ // The AMI methods.
+ CORBA::Long
+ foo (
+ const char * in_str,
+ CORBA::String_out out_str);
+
+ void
+ hello (
+ CORBA::Long_out answer);
+
+ CORBA::Short
+ rw_attrib (void);
+
+ void
+ rw_attrib (
+ CORBA::Short rw_attrib);
+
+ CORBA::Short
+ ro_attrib (void);
+
+ private:
+ CORBA::ORB_var orb_;
+ ::Hello::MyFoo_var foo_receiver_;
+ };
+
+ // CORBA server which delivers the MyFoo interface
+ class CORBA_MyFoo_server : public ACE_Task_Base
+ {
+ public:
+ CORBA_MyFoo_server (
+ ::Hello::MyFoo_ptr foo_receiver);
+ virtual int svc (void);
+
+ private:
+ ::Hello::MyFoo_var foo_receiver_;
+ };
+}
+#endif /* AMI_MyFoo_i_H */
+
diff --git a/modules/CIAO/connectors/ami4ccm/examples/Hello/AMI/AMI_exec.cpp b/modules/CIAO/connectors/ami4ccm/examples/Hello/AMI/AMI_exec.cpp
new file mode 100644
index 00000000000..f243f9a2786
--- /dev/null
+++ b/modules/CIAO/connectors/ami4ccm/examples/Hello/AMI/AMI_exec.cpp
@@ -0,0 +1,320 @@
+// -*- C++ -*-
+//
+// $Id$
+
+// **** Code generated by the The ACE ORB (TAO) IDL Compiler v1.7.1 ****
+// 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 Universityaaa
+// 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:1278
+
+#include "AMI_exec.h"
+#include "ciao/Logger/Log_Macros.h"
+#include "AMI_MyFoo_i.h"
+#include "ace/OS_NS_unistd.h"
+
+namespace CIAO_Hello_AMI_AMI_AMI_Impl
+{
+ //============================================================
+ // Worker thread to call "perform_work"
+ //============================================================
+ AMI_perform_work::AMI_perform_work (CORBA::ORB_ptr orb)
+ : orb_ (CORBA::ORB::_duplicate (orb))
+ {
+ }
+
+ int AMI_perform_work::svc ()
+ {
+ try
+ {
+ printf ("AMI :\tPerform work started\n");
+ while (1)
+ {
+ if (orb_->work_pending())
+ orb_->perform_work();
+ ACE_Time_Value tv (0, 1000);
+ ACE_OS::sleep (tv);
+ }
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Caught except:");
+ return 1;
+ }
+ printf ("AMI :\t Exiting perform work");
+ return 0;
+ }
+
+
+ //============================================================
+ // Facet Executor Implementation Class: AMI_MyFoo_exec_i
+ //============================================================
+ AMI_MyFoo_exec_i::AMI_MyFoo_exec_i (
+ ::Hello_AMI::AMI_MyFooCallback_ptr foo_callback,
+ ::Hello::MyFoo_ptr receiver_foo)
+ : foo_callback_ (::Hello_AMI::AMI_MyFooCallback::_duplicate (foo_callback))
+ {
+ //initialize AMI client
+ int argc = 2;
+ ACE_TCHAR **argv = new ACE_TCHAR *[argc];
+ argv[0] = ACE::strnew (ACE_TEXT ("-ORBAMICollocation"));
+ argv[1] = ACE::strnew (ACE_TEXT ("0"));
+ CORBA::ORB_var orb =
+ CORBA::ORB_init (argc, argv, ACE_TEXT ("AMI_foo_client"));
+
+ ami_foo_server_ = ::Hello::MyFoo::_duplicate (receiver_foo);
+
+ if (CORBA::is_nil (ami_foo_server_.in ()))
+ {
+ printf ("Server is NIL\n");
+ }
+ // Activate POA to handle the call back.
+ CORBA::Object_var poa_object =
+ orb->resolve_initial_references("RootPOA");
+
+ if (CORBA::is_nil (poa_object.in ()))
+ printf ("POA is NIL!\n");
+
+ PortableServer::POA_var root_poa =
+ PortableServer::POA::_narrow (poa_object.in ());
+
+ PortableServer::POAManager_var poa_manager =
+ root_poa->the_POAManager ();
+
+ poa_manager->activate ();
+ AMI_perform_work *pw = new AMI_perform_work (orb.in ());
+ pw->activate ();
+ }
+
+ AMI_MyFoo_exec_i::~AMI_MyFoo_exec_i (void)
+ {
+ }
+
+ // Operations from ::CCM_AMI::AMI_ami_foo
+
+ void
+ AMI_MyFoo_exec_i::sendc_foo (
+ ::Hello_AMI::AMI_MyFooCallback_ptr /*ami_handler*/,
+ const char * in_str)
+ {
+ printf ("AMI (FOO) :\tsendc_foo <%s>\n", in_str);
+ ::CCM_CORBA_AMI_MyFoo_Impl::AMI_MyFoo_reply_handler* handler =
+ new ::CCM_CORBA_AMI_MyFoo_Impl::AMI_MyFoo_reply_handler (foo_callback_);
+ //Create a reply handler the CORBA-way
+ Hello::AMI_MyFooHandler_var the_handler_var = handler->_this ();
+ printf ("AMI (FOO) :\tSending string <%s> to AMI CORBA server\n", in_str);
+ ami_foo_server_->sendc_foo (the_handler_var.in (), in_str);
+ printf ("AMI (FOO) : \tInvoked sendc_foo\n");
+ }
+
+ void
+ AMI_MyFoo_exec_i::sendc_hello (
+ ::Hello_AMI::AMI_MyFooCallback_ptr /*ami_handler*/)
+ {
+ printf ("AMI (FOO) :\tsendc_hello\n");
+
+ ::CCM_CORBA_AMI_MyFoo_Impl::AMI_MyFoo_reply_handler* handler =
+ new ::CCM_CORBA_AMI_MyFoo_Impl::AMI_MyFoo_reply_handler (foo_callback_);
+ //Create a reply handler the CORBA-way
+ Hello::AMI_MyFooHandler_var the_handler_var = handler->_this ();
+ printf ("AMI (FOO) :\tCalling AMI CORBA server\n");
+ ami_foo_server_->sendc_hello (the_handler_var.in ());
+ printf ("AMI (FOO) : \tInvoked sendc_foo\n");
+ }
+
+ void
+ AMI_MyFoo_exec_i::sendc_get_rw_attrib (
+ ::Hello_AMI::AMI_MyFooCallback_ptr /*ami_handler*/)
+ {
+ printf ("AMI (FOO) :\tsendc_get_rw_attrib\n");
+ ::CCM_CORBA_AMI_MyFoo_Impl::AMI_MyFoo_reply_handler* handler =
+ new ::CCM_CORBA_AMI_MyFoo_Impl::AMI_MyFoo_reply_handler (foo_callback_);
+ //Create a reply handler the CORBA-way
+ Hello::AMI_MyFooHandler_var the_handler_var = handler->_this ();
+ ami_foo_server_->sendc_get_rw_attrib (the_handler_var.in ());
+ printf ("AMI (FOO) : \tInvoked sendc_get_rw_attrib\n");
+ }
+
+ void
+ AMI_MyFoo_exec_i::sendc_set_rw_attrib (
+ ::Hello_AMI::AMI_MyFooCallback_ptr /*ami_handler*/,
+ CORBA::Short rw_attrib)
+ {
+ printf ("AMI (FOO) :\tsendc_set_rw_attrib\n");
+ ::CCM_CORBA_AMI_MyFoo_Impl::AMI_MyFoo_reply_handler* handler =
+ new ::CCM_CORBA_AMI_MyFoo_Impl::AMI_MyFoo_reply_handler (foo_callback_);
+ //Create a reply handler the CORBA-way
+ Hello::AMI_MyFooHandler_var the_handler_var = handler->_this ();
+ printf ("AMI (FOO) : \tSet rw_attrib <%d>\n", rw_attrib);
+ ami_foo_server_->sendc_set_rw_attrib (the_handler_var.in (), rw_attrib);
+ printf ("AMI (FOO) : \tInvoked sendc_set_rw_attrib\n");
+ }
+
+ void
+ AMI_MyFoo_exec_i::sendc_get_ro_attrib (
+ ::Hello_AMI::AMI_MyFooCallback_ptr /*ami_handler*/)
+ {
+ printf ("AMI (FOO) :\tsendc_get_ro_attrib\n");
+ ::CCM_CORBA_AMI_MyFoo_Impl::AMI_MyFoo_reply_handler* handler =
+ new ::CCM_CORBA_AMI_MyFoo_Impl::AMI_MyFoo_reply_handler (foo_callback_);
+ //Create a reply handler the CORBA-way
+ Hello::AMI_MyFooHandler_var the_handler_var = handler->_this ();
+ ami_foo_server_->sendc_get_ro_attrib (the_handler_var.in ());
+ printf ("AMI (FOO) : \tInvoked sendc_get_ro_attrib\n");
+ }
+ //============================================================
+ // Component Executor Implementation Class: AMI_exec_i
+ //============================================================
+
+ AMI_exec_i::AMI_exec_i (void)
+ {
+ }
+
+ AMI_exec_i::~AMI_exec_i (void)
+ {
+ }
+
+ // Supported operations and attributes.
+
+ // Component attributes.
+
+ // Port operations.
+
+ ::Hello_AMI::CCM_AMI_MyFoo_ptr
+ AMI_exec_i::get_perform_asynch_my_foo (void)
+ {
+ ::Hello_AMI::AMI_MyFooCallback_var foo_callback =
+ this->context_->get_connection_callback_my_foo ();
+ return new AMI_MyFoo_exec_i (foo_callback.in (),
+ receiver_foo_.in ());
+ }
+ // Operations from Components::SessionComponent.
+
+ void
+ AMI_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::Hello_AMI_AMI::CCM_AMI_Context::_narrow (ctx);
+
+ if ( ::CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ AMI_exec_i::configuration_complete (void)
+ {
+ /* Your code here. */
+ }
+
+ void
+ AMI_exec_i::ccm_activate (void)
+ {
+ receiver_foo_ =
+ this->context_->get_connection_my_foo_receiver ();
+ ::CCM_CORBA_AMI_MyFoo_Impl::CORBA_MyFoo_server* foo_srv =
+ new ::CCM_CORBA_AMI_MyFoo_Impl::CORBA_MyFoo_server (receiver_foo_.in ());
+ printf ("AMI :\tStarting MyFoo CORBA server thread.\n");
+ foo_srv->activate ();
+ }
+
+ void
+ AMI_exec_i::ccm_passivate (void)
+ {
+ /* Your code here. */
+ }
+
+ void
+ AMI_exec_i::ccm_remove (void)
+ {
+ /* Your code here. */
+ }
+
+ extern "C" ::Components::EnterpriseComponent_ptr
+ create_Hello_AMI_AMI_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ AMI_exec_i,
+ ::Components::EnterpriseComponent::_nil ());
+
+ return retval;
+ }
+}
+
+namespace CIAO_Hello_AMI_AMI_AMI_Impl
+{
+ //============================================================
+ // Home Executor Implementation Class: AMIHome_exec_i
+ //============================================================
+
+ AMIHome_exec_i::AMIHome_exec_i (void)
+ {
+ }
+
+ AMIHome_exec_i::~AMIHome_exec_i (void)
+ {
+ }
+
+ // All operations and attributes.
+
+ // Factory operations.
+
+ // Finder operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ AMIHome_exec_i::create (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ AMI_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" ::Components::HomeExecutorBase_ptr
+ create_Hello_AMI_AMIHome_Impl (void)
+ {
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ AMIHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/connectors/ami4ccm/examples/Hello/AMI/AMI_exec.h b/modules/CIAO/connectors/ami4ccm/examples/Hello/AMI/AMI_exec.h
new file mode 100644
index 00000000000..2afed3b025f
--- /dev/null
+++ b/modules/CIAO/connectors/ami4ccm/examples/Hello/AMI/AMI_exec.h
@@ -0,0 +1,158 @@
+// -*- C++ -*-
+//
+// $Id$
+
+// **** Code generated by the The ACE ORB (TAO) IDL Compiler v1.7.1 ****
+// 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:1217
+
+#ifndef CIAO_AMI_EXEC_H_
+#define CIAO_AMI_EXEC_H_
+
+
+#include "AMIEC.h"
+#include "AMI_exec_export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "tao/LocalObject.h"
+#include "ace/Task.h"
+
+namespace CIAO_Hello_AMI_AMI_AMI_Impl
+{
+ class AMI_perform_work : public ACE_Task_Base
+ {
+ public:
+ AMI_perform_work (CORBA::ORB_ptr orb);
+ virtual int svc (void);
+
+ private:
+ CORBA::ORB_var orb_;
+ };
+
+ class AMI_MyFoo_exec_i
+ : public virtual ::Hello_AMI::CCM_AMI_MyFoo,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ AMI_MyFoo_exec_i (::Hello_AMI::AMI_MyFooCallback_ptr foo_callback,
+ ::Hello::MyFoo_ptr receiver_foo);
+
+ virtual ~AMI_MyFoo_exec_i (void);
+ virtual void
+ sendc_foo (
+ ::Hello_AMI::AMI_MyFooCallback_ptr ami_handler,
+ const char * in_str);
+
+ virtual void
+ sendc_hello (
+ ::Hello_AMI::AMI_MyFooCallback_ptr ami_handler);
+
+ virtual void
+ sendc_get_rw_attrib (
+ ::Hello_AMI::AMI_MyFooCallback_ptr ami_handler);
+ virtual void
+ sendc_set_rw_attrib (
+ ::Hello_AMI::AMI_MyFooCallback_ptr ami_handler,
+ CORBA::Short rw_attrib);
+ virtual void
+ sendc_get_ro_attrib (
+ ::Hello_AMI::AMI_MyFooCallback_ptr ami_handler);
+
+ private:
+ Hello::MyFoo_var ami_foo_server_;
+ ::Hello_AMI::AMI_MyFooCallback_ptr foo_callback_;
+ };
+
+ class AMI_exec_i
+ : public virtual AMI_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ AMI_exec_i (void);
+ virtual ~AMI_exec_i (void);
+
+ // Supported operations and attributes.
+
+ // Component attributes.
+
+ // Port operations.
+
+ virtual ::Hello_AMI::CCM_AMI_MyFoo_ptr
+ get_perform_asynch_my_foo (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:
+ ::Hello_AMI_AMI::CCM_AMI_Context_var context_;
+ ::Hello_AMI::AMI_MyFooCallback_var callback_foo_;
+ ::Hello::MyFoo_var receiver_foo_;
+ };
+
+ extern "C" AMI_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Hello_AMI_AMI_Impl (void);
+}
+
+namespace CIAO_Hello_AMI_AMI_AMI_Impl
+{
+ class AMIHome_exec_i
+ : public virtual AMIHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ AMIHome_exec_i (void);
+
+ virtual ~AMIHome_exec_i (void);
+
+ // All operations and attributes.
+
+ // Factory operations.
+
+ // Finder operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create (void);
+ };
+
+ extern "C" AMI_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Hello_AMI_AMIHome_Impl (void);
+}
+
+#endif /* ifndef */
+
diff --git a/modules/CIAO/connectors/ami4ccm/examples/Hello/Hello_Base/Hello.idl b/modules/CIAO/connectors/ami4ccm/examples/Hello/Hello_Base/Hello.idl
new file mode 100644
index 00000000000..de15803ddd5
--- /dev/null
+++ b/modules/CIAO/connectors/ami4ccm/examples/Hello/Hello_Base/Hello.idl
@@ -0,0 +1,27 @@
+// $Id$
+
+#ifndef HELLO_IDL
+#define HELLO_IDL
+
+module Hello
+{
+ exception InternalError
+ {
+ long id;
+ string error_string;
+ };
+
+ // Sender/Receiver interface
+ interface MyFoo
+ {
+ long foo (in string in_str, out string answer)
+ raises (InternalError);
+ void hello (out long answer)
+ raises (InternalError);
+
+ attribute short rw_attrib;
+ readonly attribute short ro_attrib;
+ };
+};
+
+#endif
diff --git a/modules/CIAO/connectors/ami4ccm/examples/Hello/Hello_Base/Hello_Base.idl b/modules/CIAO/connectors/ami4ccm/examples/Hello/Hello_Base/Hello_Base.idl
new file mode 100644
index 00000000000..cf356190ca7
--- /dev/null
+++ b/modules/CIAO/connectors/ami4ccm/examples/Hello/Hello_Base/Hello_Base.idl
@@ -0,0 +1,45 @@
+// $Id$
+
+#ifndef HELLO_BASE_IDL
+#define HELLO_BASE_IDL
+
+#include "Hello_Base/Hello.idl"
+#include "tao/Messaging/Messaging.pidl"
+
+module Hello_AMI
+{
+ // callback interface from AMI-component to Sender component
+ interface AMI_MyFooCallback : ::Messaging::ReplyHandler
+ {
+ void foo (in long ami_return_val, in string answer);
+ void foo_excep (in Messaging::ExceptionHolder excep_holder);
+
+ void hello (in long ami_return_val);
+ void hello_excep (in Messaging::ExceptionHolder excep_holder);
+
+ void get_rw_attrib (in short ami_return_val);
+ void get_rw_attrib_excep (in Messaging::ExceptionHolder excep_holder);
+
+ void set_rw_attrib ();
+ void set_rw_attrib_excep (in Messaging::ExceptionHolder excep_holder);
+
+ void get_ro_attrib (in short ami_return_val);
+ void get_ro_attrib_excep (in Messaging::ExceptionHolder excep_holder);
+ };
+
+ // AMI component. Sender calls AMI-component and AMI-component calls Receiver
+ // using the AMI_foo interface.
+ // Example of a global reply handler
+ interface AMI_MyFoo
+ {
+ void sendc_foo (in AMI_MyFooCallback ami_handler, in string in_str);
+ void sendc_hello (in AMI_MyFooCallback ami_handler);
+
+ //asynch method for handling attributes
+ void sendc_get_rw_attrib (in AMI_MyFooCallback ami_handler);
+ void sendc_set_rw_attrib (in AMI_MyFooCallback ami_handler, in short rw_attrib);
+ void sendc_get_ro_attrib (in AMI_MyFooCallback ami_handler);
+ };
+};
+
+#endif /* HELLO_BASE_IDL */
diff --git a/modules/CIAO/connectors/ami4ccm/examples/Hello/Hello_Base/Hello_Base.mpc b/modules/CIAO/connectors/ami4ccm/examples/Hello/Hello_Base/Hello_Base.mpc
new file mode 100644
index 00000000000..9e57b95951a
--- /dev/null
+++ b/modules/CIAO/connectors/ami4ccm/examples/Hello/Hello_Base/Hello_Base.mpc
@@ -0,0 +1,149 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Hello_Base"
+
+project(AMI_Hello_idl_gen) : componentidldefaults, ami {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=HELLO_STUB_Export \
+ -Wb,stub_export_include=Hello_stub_export.h \
+ -Wb,skel_export_macro=HELLO_SKEL_Export \
+ -Wb,skel_export_include=Hello_skel_export.h \
+ -Wb,exec_export_macro=HELLO_EXEC_Export \
+ -Wb,exec_export_include=Hello_exec_export.h -I..
+
+ IDL_Files {
+ Hello.idl
+ }
+}
+
+project(AMI_Hello_lem_gen) : ciaoidldefaults {
+ after += AMI_Hello_idl_gen
+ custom_only = 1
+ idlflags += \
+ -Wb,export_macro=HELLO_EXEC_Export \
+ -Wb,export_include=Hello_exec_export.h -I.. -SS
+
+ IDL_Files {
+ HelloE.idl
+ }
+}
+
+project(AMI_Hello_Base_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=HELLO_BASE_STUB_Export \
+ -Wb,stub_export_include=Hello_Base_stub_export.h \
+ -Wb,skel_export_macro=HELLO_BASE_SKEL_Export \
+ -Wb,skel_export_include=Hello_Base_skel_export.h \
+ -Wb,exec_export_macro=HELLO_BASE_EXEC_Export \
+ -Wb,exec_export_include=Hello_Base_exec_export.h -I..
+
+ IDL_Files {
+ Hello_Base.idl
+ }
+}
+
+project(AMI_Hello_Base_lem_gen) : ciaoidldefaults {
+ after += AMI_Hello_Base_idl_gen
+ custom_only = 1
+ idlflags += \
+ -Wb,export_macro=HELLO_BASE_EXEC_Export \
+ -Wb,export_include=Hello_Base_exec_export.h -I.. -SS
+
+ IDL_Files {
+ Hello_BaseE.idl
+ }
+}
+
+project(AMI_Hello_Base_stub) : ccm_stub, ami {
+ after += AMI_Hello_lem_gen AMI_Hello_Base_lem_gen
+ libs +=
+ libout = ../lib
+ libpaths += ../lib
+ includes += ..
+
+ sharedname = Hello_Base_stub
+ dynamicflags = HELLO_BASE_STUB_BUILD_DLL HELLO_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ HelloC.cpp
+ Hello_BaseC.cpp
+ }
+
+ Header_Files {
+ HelloC.h
+ Hello_BaseC.h
+ Hello_Base_stub_export.h
+ Hello_stub_export.h
+}
+
+ Inline_Files {
+ HelloC.inl
+ Hello_BaseC.inl
+ }
+}
+
+project(AMI_Hello_Base_exec) : ccm_executor, ami {
+ after += AMI_Hello_lem_gen AMI_Hello_Base_lem_gen AMI_Hello_Base_stub
+ libs += Hello_Base_stub
+ libout = ../lib
+ libpaths += ../lib
+ includes += ..
+
+ sharedname = Hello_Base_exec
+ dynamicflags = HELLO_BASE_EXEC_BUILD_DLL HELLO_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ HelloEC.cpp
+ Hello_BaseEC.cpp
+ }
+
+ Header_Files {
+ HelloEC.h
+ Hello_BaseEC.h
+ Hello_Base_exec_export.h
+ Hello_exec_export.h
+}
+
+ Inline_Files {
+ HelloEC.inl
+ Hello_BaseEC.inl
+ }
+}
+
+
+project(AMI_Hello_Base_skel) : ciao_executor, ami {
+ after += AMI_Hello_Base_stub AMI_Hello_Base_exec
+ sharedname = Hello_Base_skel
+ libs += Hello_Base_stub Hello_Base_exec
+ libout = ../lib
+ libpaths += ../lib
+ includes += ..
+
+ dynamicflags = HELLO_BASE_SKEL_BUILD_DLL HELLO_SKEL_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ HelloS.cpp
+ Hello_BaseS.cpp
+ }
+
+ Header_Files {
+ HelloS.h
+ Hello_BaseS.h
+ Hello_Base_skel_export.h
+ }
+
+ Inline_Files {
+ HelloS.inl
+ Hello_BaseS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver.idl b/modules/CIAO/connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver.idl
new file mode 100644
index 00000000000..4632cd3ebc3
--- /dev/null
+++ b/modules/CIAO/connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver.idl
@@ -0,0 +1,24 @@
+// $Id$
+
+#ifndef HELLO_RECEIVER_IDL
+#define HELLO_RECEIVER_IDL
+
+#include <Components.idl>
+
+#include "Hello_Base/Hello_Base.idl"
+#include "Hello_Base/Hello_BaseE.idl"
+#include "Hello_Base/HelloE.idl"
+
+module Hello_AMI
+{
+ component Receiver
+ {
+ //provides
+ provides Hello::MyFoo do_my_foo;
+ };
+
+ home ReceiverHome manages Receiver
+ {
+ };
+};
+#endif
diff --git a/modules/CIAO/connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver.mpc b/modules/CIAO/connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver.mpc
new file mode 100644
index 00000000000..480f52c157d
--- /dev/null
+++ b/modules/CIAO/connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver.mpc
@@ -0,0 +1,136 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p Hello_Base Hello_Receiver"
+
+project(AMI_Hello_Base_Hello_Receiver_idl_gen) : componentidldefaults {
+ custom_only = 1
+ after += AMI_Hello_idl_gen
+ idlflags += -Wb,stub_export_macro=HELLO_RECEIVER_STUB_Export \
+ -Wb,stub_export_include=Hello_Receiver_stub_export.h \
+ -Wb,skel_export_macro=HELLO_RECEIVER_SVNT_Export \
+ -Wb,skel_export_include=Hello_Receiver_svnt_export.h \
+ -Wb,exec_export_macro=HELLO_RECEIVER_EXEC_Export \
+ -Wb,exec_export_include=Hello_Receiver_exec_export.h \
+ -Glem -I..
+
+ IDL_Files {
+ Hello_Receiver.idl
+ }
+}
+
+project(AMI_Hello_Base_Hello_Receiver_lem_gen) : ciaoidldefaults {
+ after += AMI_Hello_Base_Hello_Receiver_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=HELLO_RECEIVER_LEM_STUB_Export \
+ -Wb,stub_export_include=Hello_Receiver_lem_stub_export.h \
+ -SS -Gxhst -I..
+
+ IDL_Files {
+ Hello_ReceiverE.idl
+ }
+}
+
+project(AMI_Hello_Base_Hello_Receiver_l_stub) : ccm_svnt, messaging {
+ after += AMI_Hello_Base_Hello_Receiver_lem_gen AMI_Hello_Base_Hello_Receiver_stub Hello_Base_stub
+ libs += Hello_Base_stub Hello_Receiver_stub
+ libpaths += ../lib
+ libout = ../lib
+ sharedname = Hello_Receiver_lem_stub
+ dynamicflags = HELLO_RECEIVER_LEM_STUB_BUILD_DLL
+ includes += ..
+ IDL_Files {
+ }
+
+ Source_Files {
+ Hello_ReceiverEC.cpp
+ }
+
+ Header_Files {
+ Hello_ReceiverEC.h
+ Hello_Receiver_lem_stub_export.h
+ }
+
+ Inline_Files {
+ Hello_ReceiverEC.inl
+ }
+}
+
+project(AMI_Hello_Base_Hello_Receiver_stub) : ccm_stub, messaging {
+ after += AMI_Hello_Base_Hello_Receiver_idl_gen AMI_Hello_Base_stub
+ libs += Hello_Base_stub
+ libpaths += ../lib
+ libout = ../lib
+ sharedname = Hello_Receiver_stub
+ dynamicflags = HELLO_RECEIVER_STUB_BUILD_DLL
+ includes += ..
+ IDL_Files {
+ }
+
+ Source_Files {
+ Hello_ReceiverC.cpp
+ }
+
+ Header_Files {
+ Hello_ReceiverC.h
+ Hello_Receiver_stub_export.h
+ }
+
+ Inline_Files {
+ Hello_ReceiverC.inl
+ }
+}
+
+project(AMI_Hello_Base_Hello_Receiver_exec) : ciao_executor, messaging {
+ after += AMI_Hello_Base_Hello_Receiver_l_stub AMI_Hello_Base_Hello_Receiver_stub AMI_Hello_Base_exec
+ sharedname = Hello_Receiver_exec
+ libs += Hello_Receiver_stub Hello_Receiver_lem_stub Hello_Base_stub Hello_Base_exec
+ libpaths += ../lib
+ libout = ../lib
+ dynamicflags = HELLO_RECEIVER_EXEC_BUILD_DLL
+ includes += ..
+ IDL_Files {
+ }
+
+ Source_Files {
+ Hello_Receiver_exec.cpp
+ }
+
+ Header_Files {
+ Hello_Receiver_exec.h
+ Hello_Receiver_exec_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+
+project(AMI_Hello_Base_Hello_Receiver_svnt) : ciao_servant, messaging {
+ after += AMI_Hello_Base_skel AMI_Hello_Base_Hello_Receiver_l_stub AMI_Hello_Base_exec
+ sharedname = Hello_Receiver_svnt
+ libs += Hello_Receiver_stub Hello_Receiver_lem_stub \
+ Hello_Base_skel \
+ Hello_Base_stub \
+ Hello_Base_exec
+ libpaths += ../lib
+ libout = ../lib
+ dynamicflags = HELLO_RECEIVER_SVNT_BUILD_DLL
+ includes += ..
+ IDL_Files {
+ }
+
+ Source_Files {
+ Hello_ReceiverS.cpp
+ Hello_Receiver_svnt.cpp
+ }
+
+ Header_Files {
+ Hello_ReceiverS.h
+ Hello_Receiver_svnt.h
+ Hello_Receiver_svnt_export.h
+ }
+
+ Inline_Files {
+ Hello_ReceiverS.inl
+ }
+}
+
diff --git a/modules/CIAO/connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp b/modules/CIAO/connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp
new file mode 100644
index 00000000000..b0f737eaf74
--- /dev/null
+++ b/modules/CIAO/connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp
@@ -0,0 +1,242 @@
+// -*- C++ -*-
+//
+// $Id$
+
+// **** Code generated by the The ACE ORB (TAO) IDL Compiler v1.7.1 ****
+// 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:1278
+
+#include "Hello_Receiver_exec.h"
+#include "ace/OS_NS_unistd.h"
+
+namespace CIAO_Hello_AMI_Receiver_Impl
+{
+ //============================================================
+ // Facet Executor Implementation Class: MyFoo_exec_i
+ //============================================================
+
+ MyFoo_exec_i::MyFoo_exec_i (void)
+ {
+ }
+
+ MyFoo_exec_i::~MyFoo_exec_i (void)
+ {
+ }
+
+ // Operations from ::CCM_AMI::MyFoo
+
+ ::CORBA::Long
+ MyFoo_exec_i::foo (
+ const char * in_str,
+ ::CORBA::String_out answer)
+ {
+ if (ACE_OS::strlen (in_str) == 0)
+ {
+ printf ("Receiver (FOO) :\tEMPTY string received -> throw internal excep with id <42> and errorstring <Hello World>\n");
+ Hello::InternalError ex;
+ ex.id = 42;
+ ex.error_string = "Hello world";
+ throw ex;
+ }
+ else
+ {
+ printf ("Receiver (FOO) :\tReceived string <%s>\n", in_str);
+ ACE_OS::sleep (ACE_OS::rand () % 2);
+ answer = CORBA::string_dup ("This is my answer : Hi");
+ return ACE_OS::rand () % 100;
+ }
+ }
+
+ void
+ MyFoo_exec_i::hello (
+ CORBA::Long_out answer)
+ {
+ printf ("Receiver (HELLO) :\tReceived request\n");
+ ACE_OS::sleep (ACE_OS::rand () % 2);
+ answer = ACE_OS::rand () % 100;
+ }
+
+ CORBA::Short
+ MyFoo_exec_i::rw_attrib ()
+ {
+ printf ("Receiver (RW_ATTRIB) :\tReceived request\n");
+ ACE_OS::sleep (ACE_OS::rand () % 2);
+ return ACE_OS::rand () % 100;
+ }
+
+ void
+ MyFoo_exec_i::rw_attrib (
+ CORBA::Short new_value)
+ {
+ if (new_value == 0)
+ {
+ printf ("Receiver (RW_ATTRIB) :\tnew_value == 0 -> THROW empty exception\n");
+ Hello::InternalError ex;
+ throw ex;
+ }
+ else
+ {
+ printf ("Receiver (RW_ATTRIB) :\tSet <%d>\n", new_value);
+ ACE_OS::sleep (ACE_OS::rand () % 2);
+ }
+ }
+
+ CORBA::Short
+ MyFoo_exec_i::ro_attrib ()
+ {
+ printf ("Receiver (RO_ATTRIB) :\tReceived request\n");
+ ACE_OS::sleep (ACE_OS::rand () % 2);
+ return ACE_OS::rand () % 100;
+ }
+
+ //============================================================
+ // Component Executor Implementation Class: Receiver_exec_i
+ //============================================================
+
+ Receiver_exec_i::Receiver_exec_i (void)
+ {
+ }
+
+ Receiver_exec_i::~Receiver_exec_i (void)
+ {
+ }
+
+ // Supported operations and attributes.
+
+ // Component attributes.
+
+ // Port operations.
+
+ ::Hello::CCM_MyFoo_ptr
+ Receiver_exec_i::get_do_my_foo (void)
+ {
+ return new MyFoo_exec_i ();
+ }
+
+ // Operations from Components::SessionComponent.
+
+ void
+ Receiver_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::Hello_AMI::CCM_Receiver_Context::_narrow (ctx);
+
+ if ( ::CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Receiver_exec_i::configuration_complete (void)
+ {
+ /* Your code here. */
+ }
+
+ void
+ Receiver_exec_i::ccm_activate (void)
+ {
+ /* Your code here. */
+ }
+
+ void
+ Receiver_exec_i::ccm_passivate (void)
+ {
+ /* Your code here. */
+ }
+
+ void
+ Receiver_exec_i::ccm_remove (void)
+ {
+ /* Your code here. */
+ }
+
+ extern "C" ::Components::EnterpriseComponent_ptr
+ create_Hello_AMI_Receiver_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ Receiver_exec_i,
+ ::Components::EnterpriseComponent::_nil ());
+
+ return retval;
+ }
+}
+
+namespace CIAO_Hello_AMI_Receiver_Impl
+{
+ //============================================================
+ // Home Executor Implementation Class: ReceiverHome_exec_i
+ //============================================================
+
+ ReceiverHome_exec_i::ReceiverHome_exec_i (void)
+ {
+ }
+
+ ReceiverHome_exec_i::~ReceiverHome_exec_i (void)
+ {
+ }
+
+ // All operations and attributes.
+
+ // Factory operations.
+
+ // Finder operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ ReceiverHome_exec_i::create (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ Receiver_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" ::Components::HomeExecutorBase_ptr
+ create_Hello_AMI_ReceiverHome_Impl (void)
+ {
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ ReceiverHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver_exec.h b/modules/CIAO/connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver_exec.h
new file mode 100644
index 00000000000..3a974de5664
--- /dev/null
+++ b/modules/CIAO/connectors/ami4ccm/examples/Hello/Receiver/Hello_Receiver_exec.h
@@ -0,0 +1,144 @@
+// -*- C++ -*-
+//
+// $Id$
+
+// **** Code generated by the The ACE ORB (TAO) IDL Compiler v1.7.1 ****
+// 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:1217
+
+#ifndef CIAO_HELLO_RECEIVER_EXEC_H_
+#define CIAO_HELLO_RECEIVER_EXEC_H_
+
+
+#include "Hello_ReceiverEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "tao/LocalObject.h"
+#include "Hello_Receiver_exec_export.h"
+
+namespace CIAO_Hello_AMI_Receiver_Impl
+{
+ class MyFoo_exec_i
+ : public virtual ::Hello::CCM_MyFoo,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ MyFoo_exec_i (void);
+ virtual ~MyFoo_exec_i (void);
+
+ // Operations and attributes from ::CCM_AMI::MyFoo
+
+ // TAO_IDL - Generated from
+ // be/be_visitor_operation/operation_ch.cpp:46
+
+ virtual ::CORBA::Long
+ foo (
+ const char * in_str,
+ ::CORBA::String_out answer);
+
+ virtual void
+ hello (
+ CORBA::Long_out answer);
+
+ virtual CORBA::Short
+ rw_attrib ();
+
+ virtual void
+ rw_attrib (
+ CORBA::Short new_value);
+
+ virtual CORBA::Short
+ ro_attrib ();
+ };
+
+ class Receiver_exec_i
+ : public virtual Receiver_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Receiver_exec_i (void);
+ virtual ~Receiver_exec_i (void);
+
+ // Supported operations and attributes.
+
+ // Component attributes.
+
+ // Port operations.
+
+ virtual ::Hello::CCM_MyFoo_ptr
+ get_do_my_foo (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:
+ ::Hello_AMI::CCM_Receiver_Context_var context_;
+ };
+
+ extern "C" HELLO_RECEIVER_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Hello_AMI_Receiver_Impl (void);
+}
+
+namespace CIAO_Hello_AMI_Receiver_Impl
+{
+ class ReceiverHome_exec_i
+ : public virtual ReceiverHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ ReceiverHome_exec_i (void);
+
+ virtual ~ReceiverHome_exec_i (void);
+
+ // All operations and attributes.
+
+ // Factory operations.
+
+ // Finder operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create (void);
+ };
+
+ extern "C" HELLO_RECEIVER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Hello_AMI_ReceiverHome_Impl (void);
+}
+
+#endif /* ifndef */
+
diff --git a/modules/CIAO/connectors/ami4ccm/examples/Hello/Sender/Hello_Sender.idl b/modules/CIAO/connectors/ami4ccm/examples/Hello/Sender/Hello_Sender.idl
new file mode 100644
index 00000000000..766847fced3
--- /dev/null
+++ b/modules/CIAO/connectors/ami4ccm/examples/Hello/Sender/Hello_Sender.idl
@@ -0,0 +1,31 @@
+// $Id$
+
+#ifndef HELLO_SENDER_IDL
+#define HELLO_SENDER_IDL
+
+#include <Components.idl>
+
+#include "Hello_Base/Hello_Base.idl"
+#include "Hello_Base/HelloE.idl"
+#include "Hello_Base/Hello_BaseE.idl"
+
+module Hello_AMI
+{
+ component Sender
+ {
+ // for asynch invocation.
+ uses Hello_AMI::AMI_MyFoo run_asynch_my_foo;
+
+ // for synchronous invocation
+ uses Hello::MyFoo run_my_foo;
+
+ //provides the callback function/exception for the AMI component.
+ provides Hello_AMI::AMI_MyFooCallback the_my_foo_callback;
+ };
+
+ home SenderHome manages Sender
+ {
+ };
+};
+
+#endif
diff --git a/modules/CIAO/connectors/ami4ccm/examples/Hello/Sender/Hello_Sender.mpc b/modules/CIAO/connectors/ami4ccm/examples/Hello/Sender/Hello_Sender.mpc
new file mode 100644
index 00000000000..67974a13cd0
--- /dev/null
+++ b/modules/CIAO/connectors/ami4ccm/examples/Hello/Sender/Hello_Sender.mpc
@@ -0,0 +1,137 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p Hello_Base Hello_Sender"
+
+project(AMI_Hello_Base_Hello_Sender_idl_gen) : componentidldefaults {
+ after += AMI_Hello_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=HELLO_SENDER_STUB_Export \
+ -Wb,stub_export_include=Hello_Sender_stub_export.h \
+ -Wb,skel_export_macro=HELLO_SENDER_SVNT_Export \
+ -Wb,skel_export_include=Hello_Sender_svnt_export.h \
+ -Wb,exec_export_macro=HELLO_SENDER_EXEC_Export \
+ -Wb,exec_export_include=Hello_Sender_exec_export.h \
+ -I..
+
+ IDL_Files {
+ Hello_Sender.idl
+ }
+}
+
+project(AMI_Hello_Base_Hello_Sender_lem_gen) : ciaoidldefaults {
+ after += AMI_Hello_Base_Hello_Sender_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=HELLO_SENDER_LEM_STUB_Export \
+ -Wb,stub_export_include=Hello_Sender_lem_stub_export.h \
+ -SS -Gxhst -I..
+
+ IDL_Files {
+ Hello_SenderE.idl
+ }
+}
+
+project(AMI_Hello_Base_Hello_Sender_lem_stub) : ccm_svnt, ami {
+ after += AMI_Hello_Base_Hello_Sender_lem_gen AMI_Hello_Base_Hello_Sender_stub Hello_Base_stub
+ libs += Hello_Base_stub Hello_Sender_stub
+ libpaths += ../lib
+ libout = ../lib
+ sharedname = Hello_Sender_lem_stub
+ dynamicflags = HELLO_SENDER_LEM_STUB_BUILD_DLL
+ includes += ..
+ IDL_Files {
+ }
+
+ Source_Files {
+ Hello_SenderEC.cpp
+ }
+
+ Header_Files {
+ Hello_SenderEC.h
+ Hello_Sender_lem_stub_export.h
+ }
+
+ Inline_Files {
+ Hello_SenderEC.inl
+ }
+}
+
+project(AMI_Hello_Base_Hello_Sender_stub) : ccm_stub, ami {
+ after += AMI_Hello_Base_Hello_Sender_idl_gen AMI_Hello_Base_stub
+ libs += Hello_Base_stub
+ libpaths += ../lib
+ libout = ../lib
+ sharedname = Hello_Sender_stub
+ dynamicflags = HELLO_SENDER_STUB_BUILD_DLL
+ includes += ..
+ IDL_Files {
+ }
+
+ Source_Files {
+ Hello_SenderC.cpp
+ }
+
+ Header_Files {
+ Hello_SenderC.h
+ Hello_Sender_stub_export.h
+ }
+
+ Inline_Files {
+ Hello_SenderC.inl
+ }
+}
+
+project(AMI_Hello_Base_Hello_Sender_exec) : ciao_executor, ami {
+ after += AMI_Hello_Base_Hello_Sender_lem_stub AMI_Hello_Base_Hello_Sender_stub AMI_Hello_Base_exec
+ sharedname = Hello_Sender_exec
+ libs += Hello_Sender_stub Hello_Sender_lem_stub Hello_Base_stub Hello_Base_exec
+ libpaths += ../lib
+ libout = ../lib
+ dynamicflags = HELLO_SENDER_EXEC_BUILD_DLL
+ includes += ..
+ IDL_Files {
+ }
+
+ Source_Files {
+ Hello_Sender_exec.cpp
+ }
+
+ Header_Files {
+ Hello_Sender_exec.h
+ Hello_Sender_exec_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+
+project(AMI_Hello_Base_Hello_Sender_svnt) : ciao_servant, ami {
+ after += AMI_Hello_Base_skel AMI_Hello_Base_Hello_Sender_lem_stub AMI_Hello_Base_exec
+ sharedname = Hello_Sender_svnt
+ libs += Hello_Sender_stub Hello_Sender_lem_stub \
+ Hello_Base_skel \
+ Hello_Base_stub \
+ Hello_Base_exec
+ libpaths += ../lib
+ libout = ../lib
+ dynamicflags = HELLO_SENDER_SVNT_BUILD_DLL
+ includes += ..
+ IDL_Files {
+ }
+
+ Source_Files {
+ Hello_SenderS.cpp
+ Hello_Sender_svnt.cpp
+ }
+
+ Header_Files {
+ Hello_SenderS.h
+ Hello_Sender_svnt.h
+ Hello_Sender_svnt_export.h
+ }
+
+ Inline_Files {
+ Hello_SenderS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp b/modules/CIAO/connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp
new file mode 100644
index 00000000000..22272db56d5
--- /dev/null
+++ b/modules/CIAO/connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp
@@ -0,0 +1,410 @@
+// -*- C++ -*-
+//
+// $Id$
+
+// **** Code generated by the The ACE ORB (TAO) IDL Compiler v1.7.1 ****
+// 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:1278
+
+#include "Hello_Sender_exec.h"
+#include "ace/OS_NS_unistd.h"
+
+namespace CIAO_Hello_AMI_Sender_Impl
+{
+ void HandleException (
+ long id,
+ const char* error_string,
+ const char* func)
+ {
+ printf ("Sender (%s) :\tCallback except from AMI\n",
+ func);
+ if (id != 42)
+ {
+ printf ("ERROR (%s) :\tReceived unexpected ID received in except handler\n",
+ func);
+ return;
+ }
+ if (ACE_OS::strcmp (error_string, "Hello world") != 0)
+ {
+ printf ("ERROR (%s) :\tReceived unexpected error string received in except handler\n",
+ func);
+ return;
+ }
+ printf ("Sender (%s) :\tReceived the correct except parameters.\n", func);
+ }
+
+ void HandleException (
+ ::Messaging::ExceptionHolder * excep_holder,
+ const char* func)
+ {
+ printf ("Sender (%s) :\tHandle except AMI\n",
+ func);
+ try
+ {
+ excep_holder->raise_exception ();
+ }
+ catch (const Hello::InternalError& ex)
+ {
+ printf ("AMI CORBA (FOO) :\tCaught the correct except type (CCM_AMI::InternalError) <%d> <%s>\n",
+ ex.id, ex.error_string.in ());
+ HandleException (ex.id, ex.error_string.in (), func);
+ }
+ catch (const CORBA::Exception&)
+ {
+ // For now, this excep is EXPECTED! Don't print it
+ // otherwise the scoreboard will be confused.
+ //ex._tao_print_exception ("Caught unexpected except:");
+ }
+ }
+
+ //============================================================
+ // Facet Executor Implementation Class: MyFoo_callback_exec_i
+ //============================================================
+ MyFoo_callback_exec_i::MyFoo_callback_exec_i (void)
+ {
+ }
+
+ MyFoo_callback_exec_i::~MyFoo_callback_exec_i (void)
+ {
+ }
+
+ //============================================================
+ // Operations from ::CCM_AMI::MyFoo_callback
+ //============================================================
+
+ // FOO methods
+ void
+ MyFoo_callback_exec_i::foo (
+ ::CORBA::Long ami_return_val,
+ const char * answer)
+ {
+ printf ("Sender (FOO) :\tCallback from AMI : result <%d> answer <%s>\n", ami_return_val, answer);
+ }
+
+ void
+ MyFoo_callback_exec_i::foo_excep (
+ ::Messaging::ExceptionHolder * excep_holder)
+ {
+ HandleException (excep_holder, "FOO");
+ }
+
+ // HELLO methods
+ void
+ MyFoo_callback_exec_i::hello (
+ ::CORBA::Long answer)
+ {
+ printf ("Sender (FOO) :\tCallback from AMI (HELLO) : answer <%d>\n", answer);
+ }
+
+ void
+ MyFoo_callback_exec_i::hello_excep (
+ ::Messaging::ExceptionHolder * excep_holder)
+ {
+ HandleException (excep_holder, "HELLO");
+ }
+
+ //GET rw_attrib Reply Handler
+ void
+ MyFoo_callback_exec_i::get_rw_attrib (
+ ::CORBA::Short ami_return_val)
+ {
+ printf ("Sender (RW_ATTRIB) :\tCallback from AMI (RW_ATTRIB) : answer <%d>\n", ami_return_val);
+ }
+
+ void
+ MyFoo_callback_exec_i::get_rw_attrib_excep (
+ ::Messaging::ExceptionHolder * excep_holder)
+ {
+ HandleException (excep_holder, "GET RW_ATTRIB");
+ }
+
+ //SET rw_attrib Reply Handler
+ void
+ MyFoo_callback_exec_i::set_rw_attrib ()
+ {
+ printf ("Sender (RW_ATTRIB) :\tCallback from AMI (RW_ATTRIB)\n");
+ }
+
+ void
+ MyFoo_callback_exec_i::set_rw_attrib_excep (
+ ::Messaging::ExceptionHolder * excep_holder)
+ {
+ HandleException (excep_holder, "SET_RW_ATTRIB");
+ }
+
+ //ro_attrib Reply Handler
+ void
+ MyFoo_callback_exec_i::get_ro_attrib (
+ ::CORBA::Short ami_return_val)
+ {
+ printf ("Sender (RO_ATTRIB) :\tCallback from AMI (RO_ATTRIB) : answer <%d>\n", ami_return_val);
+ }
+
+ void
+ MyFoo_callback_exec_i::get_ro_attrib_excep (
+ ::Messaging::ExceptionHolder * excep_holder)
+ {
+ HandleException (excep_holder, "RO_ATTRIB");
+ }
+
+ //============================================================
+ // Worker thread for asynchronous invocations for MyFoo
+ //============================================================
+ asynch_foo_generator::asynch_foo_generator (::Hello_AMI::AMI_MyFoo_ptr my_foo_ami)
+ : my_foo_ami_ (::Hello_AMI::AMI_MyFoo::_duplicate (my_foo_ami))
+ {
+ }
+
+ int asynch_foo_generator::svc ()
+ {
+ ACE_OS::sleep (3);
+ for (int i = 0; i < 5; ++i)
+ {
+ if (CORBA::is_nil (my_foo_ami_))
+ {
+ printf ("Sender (ASYNCH) :\tfoo_ami is NIL !!!\n");
+ return 1;
+ }
+ else
+ {
+ printf ("Sender (ASYNCH) :\tInvoke Asynchronous calls\n");
+ my_foo_ami_->sendc_foo (0, "Do something asynchronous");
+ my_foo_ami_->sendc_hello (0);
+ my_foo_ami_->sendc_get_rw_attrib(0);
+ my_foo_ami_->sendc_set_rw_attrib(0, 15);
+ my_foo_ami_->sendc_get_ro_attrib(0);
+ printf ("Sender (ASYNCH) :\tInvoked Asynchronous calls\n");
+ }
+ }
+ printf ("Sender (ASYNCH) :\tInvoke Asynchronous calls to test except handling\n");
+ my_foo_ami_->sendc_foo (0, "");
+ my_foo_ami_->sendc_set_rw_attrib(0, 0);
+ printf ("Sender (ASYNCH) :\tInvoked Asynchronous call.\n");
+ return 0;
+ }
+
+ //============================================================
+ // Worker thread for synchronous invocations for MyFoo
+ //============================================================
+ synch_foo_generator::synch_foo_generator (::Hello::MyFoo_ptr my_foo_ami)
+ : my_foo_ami_ (::Hello::MyFoo::_duplicate (my_foo_ami))
+ {
+ }
+
+ int synch_foo_generator::svc ()
+ {
+ ACE_OS::sleep (3);
+ //run synch calls
+ char * out_str;
+ for (int i = 0; i < 5; ++i)
+ {
+ CORBA::Long result = my_foo_ami_->foo ("Do something synchronous", out_str);
+ printf ("Sender (SYNCH):\tInvoked synchronous call (FOO) result <%d> answer <%s>\n", result, out_str);
+
+ CORBA::Long answer;
+ my_foo_ami_->hello (answer);
+ printf ("Sender (SYNCH):\tInvoked synchronous call (HELLO) answer <%d>\n", answer);
+
+ CORBA::Short rw_attrib = my_foo_ami_->rw_attrib ();
+ printf ("Sender (SYNCH):\tInvoked synchronous call (GET_RW_ATTRIB) answer <%d>\n", rw_attrib);
+
+ my_foo_ami_->rw_attrib (15);
+ printf ("Sender (SYNCH):\tInvoked synchronous call (SET_RW_ATTRIB) to <15>\n");
+
+ CORBA::Short ro_attrib = my_foo_ami_->ro_attrib ();
+ printf ("Sender (SYNCH):\tInvoked synchronous call (GET_RO_ATTRIB) answer <%d>\n", ro_attrib);
+ }
+ try
+ {
+ CORBA::Long result = my_foo_ami_->foo ("", out_str);
+ printf ("Sender (SYNCH) :\tInvoked synchronous call result <%d> answer <%s>\n", result, out_str);
+ }
+ catch (Hello::InternalError& ex)
+ {
+ printf ("Sender (SYNCH FOO) :\tExpected Except caught : <%d> <%s>\n", ex.id, ex.error_string.in ());
+ }
+
+ try
+ {
+ my_foo_ami_->rw_attrib (0);
+ printf ("Sender (SYNCH) :\tInvoked synchronous call rw_attrib\n");
+ }
+ catch (Hello::InternalError& ex)
+ {
+ printf ("Sender (SYNCH RW_ATTRIB) :\tExpected Except caught : <%d> <%s>\n", ex.id, ex.error_string.in ());
+ }
+ catch (const CORBA::Exception&)
+ {
+ // For now, this excep is EXPECTED! Don't print it
+ // otherwise the scoreboard will be confused.
+ //ex._tao_print_exception ("Caught unexpected except:");
+ }
+ return 0;
+ }
+
+ //============================================================
+ // Component Executor Implementation Class: Sender_exec_i
+ //============================================================
+ Sender_exec_i::Sender_exec_i (void)
+ : global_foo_callback_ (0)
+ {
+ }
+
+ Sender_exec_i::~Sender_exec_i (void)
+ {
+ }
+
+ // Supported operations and attributes.
+
+ // Component attributes.
+
+ // Port operations.
+
+ ::Hello_AMI::CCM_AMI_MyFooCallback_ptr
+ Sender_exec_i::get_the_my_foo_callback ()
+ {
+ if (CORBA::is_nil (global_foo_callback_))
+ {
+ global_foo_callback_ = new MyFoo_callback_exec_i ();
+ }
+
+ return global_foo_callback_;
+ }
+
+ // Operations from Components::SessionComponent.
+
+ void
+ Sender_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::Hello_AMI::CCM_Sender_Context::_narrow (ctx);
+ if ( ::CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Sender_exec_i::configuration_complete (void)
+ {
+ /* Your code here. */
+ }
+
+ void
+ Sender_exec_i::ccm_activate (void)
+ {
+
+ ::Hello_AMI::AMI_MyFoo_var asynch_foo =
+ this->context_->get_connection_run_asynch_my_foo();
+ asynch_foo_generator* asynch_foo_gen =
+ new asynch_foo_generator (asynch_foo);
+ asynch_foo_gen->activate (THR_NEW_LWP | THR_JOINABLE, 1);
+
+ ::Hello::MyFoo_var synch_foo =
+ this->context_->get_connection_run_my_foo ();
+ synch_foo_generator* synch_foo_gen =
+ new synch_foo_generator (synch_foo);
+ synch_foo_gen->activate (THR_NEW_LWP | THR_JOINABLE, 1);
+ }
+
+ void
+ Sender_exec_i::ccm_passivate (void)
+ {
+ /* Your code here. */
+ }
+
+ void
+ Sender_exec_i::ccm_remove (void)
+ {
+ /* Your code here. */
+ }
+
+ extern "C" ::Components::EnterpriseComponent_ptr
+ create_Hello_AMI_Sender_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ Sender_exec_i,
+ ::Components::EnterpriseComponent::_nil ());
+
+ return retval;
+ }
+}
+
+namespace CIAO_Hello_AMI_Sender_Impl
+{
+ //============================================================
+ // Home Executor Implementation Class: SenderHome_exec_i
+ //============================================================
+
+ SenderHome_exec_i::SenderHome_exec_i (void)
+ {
+ }
+
+ SenderHome_exec_i::~SenderHome_exec_i (void)
+ {
+ }
+
+ // All operations and attributes.
+
+ // Factory operations.
+
+ // Finder operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ SenderHome_exec_i::create (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ Sender_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" ::Components::HomeExecutorBase_ptr
+ create_Hello_AMI_SenderHome_Impl (void)
+ {
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ SenderHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.h b/modules/CIAO/connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.h
new file mode 100644
index 00000000000..976a4c5981c
--- /dev/null
+++ b/modules/CIAO/connectors/ami4ccm/examples/Hello/Sender/Hello_Sender_exec.h
@@ -0,0 +1,195 @@
+// -*- C++ -*-
+//
+// $Id$
+
+// **** Code generated by the The ACE ORB (TAO) IDL Compiler v1.7.1 ****
+// 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:1217
+
+#ifndef CIAO_HELLO_SENDER_EXEC_H_
+#define CIAO_HELLO_SENDER_EXEC_H_
+
+
+#include "Hello_SenderEC.h"
+#include "Hello_Sender_exec_export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "tao/LocalObject.h"
+#include "ace/Task.h"
+
+
+namespace CIAO_Hello_AMI_Sender_Impl
+{
+ //common excepti handlers
+ void HandleException (
+ long id,
+ const char* error_string,
+ const char* func);
+
+ void HandleException (
+ ::Messaging::ExceptionHolder * excep_holder,
+ const char* func);
+
+ // Worker thread for asynchronous invocations
+ class asynch_foo_generator : public virtual ACE_Task_Base
+ {
+ public:
+ asynch_foo_generator (::Hello_AMI::AMI_MyFoo_ptr my_foo_ami);
+
+ virtual int svc (void);
+
+ private:
+ ::Hello_AMI::AMI_MyFoo_var my_foo_ami_;
+ };
+
+ // Worker thread for synchronous invocations
+ class synch_foo_generator : public virtual ACE_Task_Base
+ {
+ public:
+ synch_foo_generator (::Hello::MyFoo_ptr my_foo_ami);
+
+ virtual int svc (void);
+
+ private:
+ ::Hello::MyFoo_var my_foo_ami_;
+ };
+
+ class MyFoo_callback_exec_i
+ : public virtual ::Hello_AMI::CCM_AMI_MyFooCallback,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ MyFoo_callback_exec_i (void);
+ virtual ~MyFoo_callback_exec_i (void);
+
+ // Operations and attributes from ::CCM_AMI::MyFoo_callback
+
+ // TAO_IDL - Generated from
+ // be/be_visitor_operation/operation_ch.cpp:46
+ // FOO Reply Handler
+ virtual void
+ foo (
+ ::CORBA::Long ami_return_val,
+ const char * answer);
+
+ virtual void
+ foo_excep (
+ ::Messaging::ExceptionHolder * excep_holder);
+
+ // Hello Reply Handler
+ virtual void
+ hello (
+ ::CORBA::Long answer);
+ virtual void
+ hello_excep (
+ ::Messaging::ExceptionHolder * excep_holder);
+
+ //GET rw_attrib Reply Handler
+ virtual void get_rw_attrib (
+ ::CORBA::Short ami_return_val);
+ virtual void get_rw_attrib_excep (
+ ::Messaging::ExceptionHolder * excep_holder);
+
+ //SET rw_attrib Reply Handler
+ virtual void set_rw_attrib (void);
+ virtual void set_rw_attrib_excep (
+ ::Messaging::ExceptionHolder * excep_holder);
+
+ //ro_attrib Reply Handler
+ virtual void get_ro_attrib (
+ ::CORBA::Short ami_return_val);
+ virtual void get_ro_attrib_excep (
+ ::Messaging::ExceptionHolder * excep_holder);
+ };
+
+ class Sender_exec_i
+ : public virtual Sender_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Sender_exec_i (void);
+ virtual ~Sender_exec_i (void);
+
+ // Supported operations and attributes.
+
+ // Component attributes.
+
+ // Port operations.
+
+ virtual ::Hello_AMI::CCM_AMI_MyFooCallback_ptr
+ get_the_my_foo_callback (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:
+ ::Hello_AMI::CCM_Sender_Context_var context_;
+ MyFoo_callback_exec_i* global_foo_callback_;
+ };
+
+ extern "C" HELLO_SENDER_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Hello_AMI_Sender_Impl (void);
+}
+
+namespace CIAO_Hello_AMI_Sender_Impl
+{
+ class SenderHome_exec_i
+ : public virtual SenderHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SenderHome_exec_i (void);
+
+ virtual ~SenderHome_exec_i (void);
+
+ // All operations and attributes.
+
+ // Factory operations.
+
+ // Finder operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create (void);
+ };
+
+ extern "C" HELLO_SENDER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Hello_AMI_SenderHome_Impl (void);
+}
+
+#endif /* ifndef */
+
diff --git a/modules/CIAO/connectors/ami4ccm/examples/Hello/descriptors/Plan.cdp b/modules/CIAO/connectors/ami4ccm/examples/Hello/descriptors/Plan.cdp
new file mode 100644
index 00000000000..72f2cd3c627
--- /dev/null
+++ b/modules/CIAO/connectors/ami4ccm/examples/Hello/descriptors/Plan.cdp
@@ -0,0 +1,385 @@
+<?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>6D382DAE-9024-4C4D-B91B-A0F9176AFACF</UUID>
+
+ <implementation xmi:id="Hello_ReceiverHomeImplementation">
+ <name>Hello_ReceiverHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="Hello_Receiver_ExecArtifact"/>
+ <artifact xmi:idref="Hello_Receiver_SvntArtifact"/>
+ <execParameter>
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_AMI_Receiver_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello.ImplementationArtifacts.ReceiverArtifacts.Receiver_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_AMI_Receiver_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello.ImplementationArtifacts.ReceiverArtifacts.Receiver_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="Hello_SenderHomeImplementation">
+ <name>Hello_SenderHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="Hello_Sender_ExecArtifact"/>
+ <artifact xmi:idref="Hello_Sender_SvntArtifact"/>
+ <execParameter>
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_AMI_Sender_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello.ImplementationArtifacts.SenderArtifacts.Sender_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_AMI_Sender_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello.ImplementationArtifacts.SenderArtifacts.Sender_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="Hello_AMIHomeImplementation">
+ <name>Hello_AMIHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="Hello_AMI_ExecArtifact"/>
+ <artifact xmi:idref="Hello_AMI_SvntArtifact"/>
+ <execParameter>
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_AMI_AMI_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello.ImplementationArtifacts.AMIArtifacts.AMI_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_AMI_AMI_AMI_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello.ImplementationArtifacts.AMIArtifacts.AMI_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <instance xmi:id="Hello.ComponentImplementations.HelloImplementation.Hello.Receiver">
+ <name>Hello.ComponentImplementations.HelloImplementation.Hello.Receiver</name>
+ <node>Receiver</node>
+ <source/>
+ <implementation xmi:idref="Hello_ReceiverHomeImplementation"/>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="Hello.ComponentImplementations.HelloImplementation.Hello.Sender">
+ <name>Hello.ComponentImplementations.HelloImplementation.Hello.Sender</name>
+ <node>Sender</node>
+ <source/>
+ <implementation xmi:idref="Hello_SenderHomeImplementation"/>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="Hello.ComponentImplementations.HelloImplementation.Hello.AMI">
+ <name>Hello.ComponentImplementations.HelloImplementation.Hello.AMI</name>
+ <node>AMI</node>
+ <source/>
+ <implementation xmi:idref="Hello_AMIHomeImplementation"/>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>AMI.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>run_asynch_foo_connection</name>
+ <internalEndpoint>
+ <portName>perform_asynch_my_foo</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello.ComponentImplementations.HelloImplementation.Hello.AMI" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>run_asynch_my_foo</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello.ComponentImplementations.HelloImplementation.Hello.Sender" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>foo_callback_connection</name>
+ <internalEndpoint>
+ <portName>the_my_foo_callback</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello.ComponentImplementations.HelloImplementation.Hello.Sender" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>callback_my_foo</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello.ComponentImplementations.HelloImplementation.Hello.AMI" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>do_foo_connection</name>
+ <internalEndpoint>
+ <portName>do_my_foo</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello.ComponentImplementations.HelloImplementation.Hello.Receiver" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>my_foo_receiver</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello.ComponentImplementations.HelloImplementation.Hello.AMI" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>synch_foo_connection</name>
+ <internalEndpoint>
+ <portName>do_my_foo</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello.ComponentImplementations.HelloImplementation.Hello.Receiver" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>run_my_foo</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello.ComponentImplementations.HelloImplementation.Hello.Sender" />
+ </internalEndpoint>
+ </connection>
+
+ <artifact xmi:id="Hello_AMI_SvntArtifact">
+ <name>Hello.ImplementationArtifacts.AMIArtifacts.AMI_svnt</name>
+ <source/>
+ <node/>
+ <location>AMI_svnt</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_AMI_AMIHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact xmi:id="Hello_AMI_ExecArtifact">
+ <name>Hello.ImplementationArtifacts.AMIArtifacts.AMI_exec</name>
+ <source/>
+ <node/>
+ <location>AMI_exec</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_AMI_AMIHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact xmi:id="Hello_Receiver_SvntArtifact">
+ <name>Hello.ImplementationArtifacts.ReceiverArtifacts.Receiver_svnt</name>
+ <source/>
+ <node/>
+ <location>Hello_Receiver_svnt</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_AMI_ReceiverHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact xmi:id="Hello_Receiver_ExecArtifact">
+ <name>Hello.ImplementationArtifacts.ReceiverArtifacts.Receiver_exec</name>
+ <source/>
+ <node/>
+ <location>Hello_Receiver_exec</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_AMI_ReceiverHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact xmi:id="Hello_Sender_SvntArtifact">
+ <name>Hello.ImplementationArtifacts.SenderArtifacts.Sender_svnt</name>
+ <source/>
+ <node/>
+ <location>Hello_Sender_svnt</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_AMI_SenderHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact xmi:id="Hello_Sender_ExecArtifact">
+ <name>Hello.ImplementationArtifacts.SenderArtifacts.Sender_exec</name>
+ <source/>
+ <node/>
+ <location>Hello_Sender_exec</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_AMI_SenderHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+</Deployment:DeploymentPlan>
diff --git a/modules/CIAO/connectors/ami4ccm/examples/Hello/descriptors/run_test.pl b/modules/CIAO/connectors/ami4ccm/examples/Hello/descriptors/run_test.pl
new file mode 100755
index 00000000000..be04df44296
--- /dev/null
+++ b/modules/CIAO/connectors/ami4ccm/examples/Hello/descriptors/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 = 3;
+@ports = ( 60000, 60001, 60002 );
+@iorbases = ( "AMI.ior", "Sender.ior", "Receiver.ior" );
+@iorfiles = 0;
+@nodenames = ( "AMI", "Sender", "Receiver" );
+
+# 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 = "Plan.cdp";
+
+PerlACE::add_lib_path ('../lib');
+$ENV{"DANCE_TRACE_ENABLE"} = 0;
+$ENV{"CIAO_TRACE_ENABLE"} = 0;
+
+
+sub create_targets {
+ # naming service
+ $tg_naming = PerlACE::TestTarget::create_target (1) || die "Create target for ns failed\n";
+
+ # 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";
+ }
+ # execution manager
+ $tg_exe_man = PerlACE::TestTarget::create_target (1) || die "Create target for EM failed\n";
+ # executor (plan_launcher)
+ $tg_executor = PerlACE::TestTarget::create_target (1) || die "Create target for executor failed\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);
+ }
+}
+
+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];
+ $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);
+ $result = $DEAMONS[$i]->Spawn ();
+ push(@processes, $DEAMONS[$i]);
+
+ 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");
+
+$NS->Spawn ();
+
+print STDERR "Starting Naming Service with -m 1 -ORBEndpoint iiop://localhost:60003 -o ns.ior\n";
+
+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->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\n";
+$E = $tg_executor->CreateProcess ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-x $cdp_file -k file://$ior_emfile");
+$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;
+ }
+}
+
+print "Sleeping 180 seconds to allow task to complete\n";
+sleep (180);
+
+# 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 =
+ new PerlACE::Process ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-k file://$ior_emfile -x $cdp_file -q");
+$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/connectors/dds4ccm/docs/09-10-23.pdf b/modules/CIAO/connectors/dds4ccm/docs/09-10-23.pdf
new file mode 100644
index 00000000000..26e72bcd894
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/docs/09-10-23.pdf
Binary files differ
diff --git a/modules/CIAO/connectors/dds4ccm/docs/09-10-25.pdf b/modules/CIAO/connectors/dds4ccm/docs/09-10-25.pdf
new file mode 100644
index 00000000000..69c23485067
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/docs/09-10-25.pdf
Binary files differ
diff --git a/modules/CIAO/connectors/dds4ccm/docs/09-10-27.pdf b/modules/CIAO/connectors/dds4ccm/docs/09-10-27.pdf
new file mode 100644
index 00000000000..038b2aa1e20
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/docs/09-10-27.pdf
Binary files differ
diff --git a/modules/CIAO/connectors/dds4ccm/docs/DDS_DefaultQoS.xml b/modules/CIAO/connectors/dds4ccm/docs/DDS_DefaultQoS.xml
new file mode 100644
index 00000000000..3c2fe44e581
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/docs/DDS_DefaultQoS.xml
@@ -0,0 +1,254 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<dds xmlns="http://www.omg.org/dds/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="file:DDS_QoSProfile.xsd">
+<qos_profile name="DDS DefaultQosProfile">
+ <datareader_qos>
+ <durability>
+ <kind>VOLATILE_DURABILITY_QOS</kind>
+ </durability>
+ <deadline>
+ <period>
+ <sec>DURATION_INFINITE_SEC</sec>
+ <nanosec>DURATION_INFINITE_NSEC</nanosec>
+ </period>
+ </deadline>
+ <latency_budget>
+ <duration>
+ <sec>0</sec>
+ <nanosec>0</nanosec>
+ </duration>
+ </latency_budget>
+ <liveliness>
+ <kind>AUTOMATIC_LIVELINESS_QOS</kind>
+ <lease_duration>
+ <sec>DURATION_INFINITE_SEC</sec>
+ <nanosec>DURATION_INFINITE_NSEC</nanosec>
+ </lease_duration>
+ </liveliness>
+ <reliability>
+ <kind>BEST_EFFORT_RELIABILITY_QOS</kind>
+ <max_blocking_time>
+ <sec>0</sec>
+ <nanosec>100000000</nanosec>
+ </max_blocking_time>
+ </reliability>
+ <destination_order>
+ <kind>BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS</kind>
+ </destination_order>
+ <history>
+ <kind>KEEP_LAST_HISTORY_QOS</kind>
+ <depth>1</depth>
+ </history>
+ <resource_limits>
+ <max_samples>LENGTH_UNLIMITED</max_samples>
+ <max_instances>LENGTH_UNLIMITED</max_instances>
+ <max_samples_per_instance>LENGTH_UNLIMITED</max_samples_per_instance>
+ </resource_limits>
+ <user_data>
+ <value></value>
+ </user_data>
+ <ownership>
+ <kind>SHARED_OWNERSHIP_QOS</kind>
+ </ownership>
+ <time_based_filter>
+ <minimum_separation>
+ <sec>0</sec>
+ <nanosec>0</nanosec>
+ </minimum_separation>
+ </time_based_filter>
+ <reader_data_lifecycle>
+ <autopurge_nowriter_samples_delay>
+ <sec>DURATION_INFINITE_SEC</sec>
+ <nanosec>DURATION_INFINITE_NSEC</nanosec>
+ </autopurge_nowriter_samples_delay>
+ <autopurge_disposed_samples_delay>
+ <sec>DURATION_INFINITE_SEC</sec>
+ <nanosec>DURATION_INFINITE_NSEC</nanosec>
+ </autopurge_disposed_samples_delay>
+ </reader_data_lifecycle>
+ </datareader_qos>
+ <datawriter_qos>
+ <durability>
+ <kind>VOLATILE_DURABILITY_QOS</kind>
+ </durability>
+ <durability_service>
+ <service_cleanup_delay>
+ <sec>0</sec>
+ <nanosec>0</nanosec>
+ </service_cleanup_delay>
+ <history_kind>KEEP_LAST_HISTORY_QOS</history_kind>
+ <history_depth>1</history_depth>
+ <max_samples>LENGTH_UNLIMITED</max_samples>
+ <max_instances>LENGTH_UNLIMITED</max_instances>
+ <max_samples_per_instance>LENGTH_UNLIMITED</max_samples_per_instance>
+ </durability_service>
+ <deadline>
+ <period>
+ <sec>DURATION_INFINITE_SEC</sec>
+ <nanosec>DURATION_INFINITE_NSEC</nanosec>
+ </period>
+ </deadline>
+ <latency_budget>
+ <duration>
+ <sec>0</sec>
+ <nanosec>0</nanosec>
+ </duration>
+ </latency_budget>
+ <liveliness>
+ <kind>AUTOMATIC_LIVELINESS_QOS</kind>
+ <lease_duration>
+ <sec>DURATION_INFINITE_SEC</sec>
+ <nanosec>DURATION_INFINITE_NSEC</nanosec>
+ </lease_duration>
+ </liveliness>
+ <reliability>
+ <kind>RELIABLE_RELIABILITY_QOS</kind>
+ <max_blocking_time>
+ <sec>0</sec>
+ <nanosec>100000000</nanosec>
+ </max_blocking_time>
+ </reliability>
+ <destination_order>
+ <kind>BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS</kind>
+ </destination_order>
+ <history>
+ <kind>KEEP_LAST_HISTORY_QOS</kind>
+ <depth>1</depth>
+ </history>
+ <resource_limits>
+ <max_samples>LENGTH_UNLIMITED</max_samples>
+ <max_instances>LENGTH_UNLIMITED</max_instances>
+ <max_samples_per_instance>LENGTH_UNLIMITED</max_samples_per_instance>
+ </resource_limits>
+ <transport_priority>
+ <value>0</value>
+ </transport_priority>
+ <lifespan>
+ <duration>
+ <sec>DURATION_INFINITE_SEC</sec>
+ <nanosec>DURATION_INFINITE_NSEC</nanosec>
+ </duration>
+ </lifespan>
+ <user_data>
+ <value></value>
+ </user_data>
+ <ownership>
+ <kind>SHARED_OWNERSHIP_QOS</kind>
+ </ownership>
+ <ownership_strength>
+ <value>0</value>
+ </ownership_strength>
+ <writer_data_lifecycle>
+ <autodispose_unregistered_instances>true</autodispose_unregistered_instances>
+ </writer_data_lifecycle>
+ </datawriter_qos>
+ <domainparticipant_qos>
+ <user_data>
+ <value></value>
+ </user_data>
+ <entity_factory>
+ <autoenable_created_entities>true</autoenable_created_entities>
+ </entity_factory>
+ </domainparticipant_qos>
+ <subscriber_qos>
+ <presentation>
+ <access_scope>INSTANCE_PRESENTATION_QOS</access_scope>
+ <coherent_access>false</coherent_access>
+ <ordered_access>false</ordered_access>
+ </presentation>
+ <partition>
+ <name></name>
+ </partition>
+ <group_data>
+ <value></value>
+ </group_data>
+ <entity_factory>
+ <autoenable_created_entities>true</autoenable_created_entities>
+ </entity_factory>
+ </subscriber_qos>
+ <publisher_qos>
+ <presentation>
+ <access_scope>INSTANCE_PRESENTATION_QOS</access_scope>
+ <coherent_access>false</coherent_access>
+ <ordered_access>false</ordered_access>
+ </presentation>
+ <partition>
+ <name></name>
+ </partition>
+ <group_data>
+ <value></value>
+ </group_data>
+ <entity_factory>
+ <autoenable_created_entities>true</autoenable_created_entities>
+ </entity_factory>
+ </publisher_qos>
+ <topic_qos>
+ <topic_data>
+ <value></value>
+ </topic_data>
+ <durability>
+ <kind>VOLATILE_DURABILITY_QOS</kind>
+ </durability>
+ <durability_service>
+ <service_cleanup_delay>
+ <sec>0</sec>
+ <nanosec>0</nanosec>
+ </service_cleanup_delay>
+ <history_kind>KEEP_LAST_HISTORY_QOS</history_kind>
+ <history_depth>1</history_depth>
+ <max_samples>LENGTH_UNLIMITED</max_samples>
+ <max_instances>LENGTH_UNLIMITED</max_instances>
+ <max_samples_per_instance>LENGTH_UNLIMITED</max_samples_per_instance>
+ </durability_service>
+ <deadline>
+ <period>
+ <sec>DURATION_INFINITE_SEC</sec>
+ <nanosec>DURATION_INFINITE_NSEC</nanosec>
+ </period>
+ </deadline>
+ <latency_budget>
+ <duration>
+ <sec>0</sec>
+ <nanosec>0</nanosec>
+ </duration>
+ </latency_budget>
+ <liveliness>
+ <kind>AUTOMATIC_LIVELINESS_QOS</kind>
+ <lease_duration>
+ <sec>DURATION_INFINITE_SEC</sec>
+ <nanosec>DURATION_INFINITE_NSEC</nanosec>
+ </lease_duration>
+ </liveliness>
+ <reliability>
+ <kind>BEST_EFFORT_RELIABILITY_QOS</kind>
+ <max_blocking_time>
+ <sec>0</sec>
+ <nanosec>100000000</nanosec>
+ </max_blocking_time>
+ </reliability>
+ <destination_order>
+ <kind>BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS</kind>
+ </destination_order>
+ <history>
+ <kind>KEEP_LAST_HISTORY_QOS</kind>
+ <depth>1</depth>
+ </history>
+ <resource_limits>
+ <max_samples>LENGTH_UNLIMITED</max_samples>
+ <max_instances>LENGTH_UNLIMITED</max_instances>
+ <max_samples_per_instance>LENGTH_UNLIMITED</max_samples_per_instance>
+ </resource_limits>
+ <transport_priority>
+ <value>0</value>
+ </transport_priority>
+ <lifespan>
+ <duration>
+ <sec>DURATION_INFINITE_SEC</sec>
+ <nanosec>DURATION_INFINITE_NSEC</nanosec>
+ </duration>
+ </lifespan>
+ <ownership>
+ <kind>SHARED_OWNERSHIP_QOS</kind>
+ </ownership>
+ </topic_qos>
+</qos_profile>
+</dds>
diff --git a/modules/CIAO/connectors/dds4ccm/docs/DDS_QoSProfile.xsd b/modules/CIAO/connectors/dds4ccm/docs/DDS_QoSProfile.xsd
new file mode 100644
index 00000000000..62a3a4731cb
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/docs/DDS_QoSProfile.xsd
@@ -0,0 +1,390 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.omg.org/dds/" xmlns:dds="http://www.omg.org/dds/" targetNamespace="http://www.omg.org/dds/" elementFormDefault="qualified" attributeFormDefault="unqualified">
+ <!-- definition of simple types -->
+ <xs:simpleType name="elementName">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="([a-zA-Z0-9 ])+"></xs:pattern>
+ <!-- <xs:pattern value="^((::)?([a-zA-Z0-9])+(::([a-zA-Z0-9])+)*)$"/> -->
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="topicNameFilter">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="([a-zA-Z0-9])+"></xs:pattern>
+ <!-- <xs:pattern value="^((::)?([a-zA-Z0-9])+(::([a-zA-Z0-9])+)*)$"/> -->
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="destinationOrderKind">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS"></xs:enumeration>
+ <xs:enumeration value="BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS"></xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="durabilityKind">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="VOLATILE_DURABILITY_QOS"></xs:enumeration>
+ <xs:enumeration value="TRANSIENT_LOCAL_DURABILITY_QOS"></xs:enumeration>
+ <xs:enumeration value="TRANSIENT_DURABILITY_QOS"></xs:enumeration>
+ <xs:enumeration value="PERSISTENT_DURABILITY_QOS"></xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="historyKind">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="KEEP_LAST_HISTORY_QOS"></xs:enumeration>
+ <xs:enumeration value="KEEP_ALL_HISTORY_QOS"></xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="livelinessKind">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="AUTOMATIC_LIVELINESS_QOS"></xs:enumeration>
+ <xs:enumeration value="MANUAL_BY_PARTICIPANT_LIVELINESS_QOS"></xs:enumeration>
+ <xs:enumeration value="MANUAL_BY_TOPIC_LIVELINESS_QOS"></xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="presentationAccessScopeKind">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="INSTANCE_PRESENTATION_QOS"></xs:enumeration>
+ <xs:enumeration value="TOPIC_PRESENTATION_QOS"></xs:enumeration>
+ <xs:enumeration value="GROUP_PRESENTATION_QOS"></xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="reliabilityKind">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="BEST_EFFORT_RELIABILITY_QOS"></xs:enumeration>
+ <xs:enumeration value="RELIABLE_RELIABILITY_QOS"></xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ownershipKind">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="SHARED_OWNERSHIP_QOS"></xs:enumeration>
+ <xs:enumeration value="EXCLUSIVE_OWNERSHIP_QOS"></xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="nonNegativeInteger_UNLIMITED">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="(LENGTH_UNLIMITED|([0-9])*)?"></xs:pattern>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="nonNegativeInteger_Duration_SEC">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="(DURATION_INFINITY|DURATION_INFINITE_SEC|([0-9])*)?"></xs:pattern>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="nonNegativeInteger_Duration_NSEC">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="(DURATION_INFINITY|DURATION_INFINITE_NSEC|([0-9])*)?"></xs:pattern>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="positiveInteger_UNLIMITED">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="(LENGTH_UNLIMITED|[1-9]([0-9])*)?"></xs:pattern>
+ </xs:restriction>
+ </xs:simpleType>
+ <!-- definition of named types -->
+ <xs:complexType name="duration">
+ <xs:all>
+ <xs:element name="sec" type="dds:nonNegativeInteger_Duration_SEC" minOccurs="0"></xs:element>
+ <xs:element name="nanosec" type="dds:nonNegativeInteger_Duration_NSEC" minOccurs="0"></xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="stringSeq">
+ <xs:sequence>
+ <xs:element name="element" type="xs:string" minOccurs="0" maxOccurs="unbounded"></xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="deadlineQosPolicy">
+ <xs:all>
+ <xs:element name="period" type="dds:duration" minOccurs="0"></xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="destinationOrderQosPolicy">
+ <xs:all>
+ <xs:element name="kind" type="dds:destinationOrderKind" minOccurs="0"></xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="durabilityQosPolicy">
+ <xs:all>
+ <xs:element name="kind" type="dds:durabilityKind" default="VOLATILE_DURABILITY_QOS" minOccurs="0"></xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="durabilityServiceQosPolicy">
+ <xs:all>
+ <xs:element name="service_cleanup_delay" type="dds:duration" minOccurs="0"></xs:element>
+ <xs:element name="history_kind" type="dds:historyKind" default="KEEP_LAST_HISTORY_QOS" minOccurs="0"></xs:element>
+ <xs:element name="history_depth" type="xs:positiveInteger" minOccurs="0"></xs:element>
+ <xs:element name="max_samples" type="dds:positiveInteger_UNLIMITED" minOccurs="0"></xs:element>
+ <xs:element name="max_instances" type="dds:positiveInteger_UNLIMITED" minOccurs="0"></xs:element>
+ <xs:element name="max_samples_per_instance" type="dds:positiveInteger_UNLIMITED" minOccurs="0"></xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="entityFactoryQosPolicy">
+ <xs:all>
+ <xs:element name="autoenable_created_entities" type="xs:boolean" default="true" minOccurs="0"></xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="groupDataQosPolicy">
+ <xs:all>
+ <xs:element name="value" type="xs:base64Binary" minOccurs="0"></xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="historyQosPolicy">
+ <xs:all>
+ <xs:element name="kind" type="dds:historyKind" default="KEEP_LAST_HISTORY_QOS" minOccurs="0"></xs:element>
+ <xs:element name="depth" type="xs:positiveInteger" default="1" minOccurs="0"></xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="latencyBudgetQosPolicy">
+ <xs:all>
+ <xs:element name="duration" type="dds:duration" minOccurs="0"></xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="lifespanQosPolicy">
+ <xs:all>
+ <xs:element name="duration" type="dds:duration" minOccurs="0"></xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="livelinessQosPolicy">
+ <xs:all>
+ <xs:element name="kind" type="dds:livelinessKind" default="AUTOMATIC_LIVELINESS_QOS" minOccurs="0"></xs:element>
+ <xs:element name="lease_duration" type="dds:duration" minOccurs="0"></xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="ownershipQosPolicy">
+ <xs:all>
+ <xs:element name="kind" type="dds:ownershipKind" minOccurs="0"></xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="ownershipStrengthQosPolicy">
+ <xs:all>
+ <xs:element name="value" type="xs:nonNegativeInteger" minOccurs="0"></xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="partitionQosPolicy">
+ <xs:all>
+ <xs:element name="name" type="dds:stringSeq" minOccurs="0"></xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="presentationQosPolicy">
+ <xs:all>
+ <xs:element name="access_scope" type="dds:presentationAccessScopeKind" default="INSTANCE_PRESENTATION_QOS" minOccurs="0"></xs:element>
+ <xs:element name="coherent_access" type="xs:boolean" default="false" minOccurs="0"></xs:element>
+ <xs:element name="ordered_access" type="xs:boolean" default="false" minOccurs="0"></xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="readerDataLifecycleQosPolicy">
+ <xs:all>
+ <xs:element name="autopurge_nowriter_samples_delay" type="dds:duration" minOccurs="0"></xs:element>
+ <xs:element name="autopurge_disposed_samples_delay" type="dds:duration" minOccurs="0"></xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="reliabilityQosPolicy">
+ <xs:all>
+ <xs:element name="kind" type="dds:reliabilityKind" minOccurs="0"></xs:element>
+ <xs:element name="max_blocking_time" type="dds:duration" minOccurs="0"></xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="resourceLimitsQosPolicy">
+ <xs:all>
+ <xs:element name="max_samples" type="dds:positiveInteger_UNLIMITED" minOccurs="0"></xs:element>
+ <xs:element name="max_instances" type="dds:positiveInteger_UNLIMITED" minOccurs="0"></xs:element>
+ <xs:element name="max_samples_per_instance" type="dds:positiveInteger_UNLIMITED" minOccurs="0"></xs:element>
+ <xs:element name="initial_samples" type="xs:positiveInteger" minOccurs="0"></xs:element>
+ <xs:element name="initial_instances" type="xs:positiveInteger" minOccurs="0"></xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="timeBasedFilterQosPolicy">
+ <xs:all>
+ <xs:element name="minimum_separation" type="dds:duration" minOccurs="0"></xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="topicDataQosPolicy">
+ <xs:all>
+ <xs:element name="value" type="xs:base64Binary" minOccurs="0"></xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="transportPriorityQosPolicy">
+ <xs:all>
+ <xs:element name="value" type="xs:nonNegativeInteger" minOccurs="0"></xs:element>
+ </xs:all>
+ </xs:complexType>
+ <!-- userDataQosPolicy uses base64Binary encoding:
+ * Allowed characters are all letters: a-z, A-Z, digits: 0-9, the characters: '+' '/' '=' and ' '
+ +,/.=,the plus sign (+), the slash (/), the equals sign (=), and XML whitespace characters.
+ * The number of nonwhitespace characters must be divisible by four.
+ * Equals signs, which are used as padding, can only appear at the end of the value,
+ and there can be zero, one, or two of them.
+ * If there are two equals signs, they must be preceded by one of the following characters:
+ A, Q, g, w.
+ * If there is only one equals sign, it must be preceded by one of the following characters: A, E, I, M, Q, U, Y, c, g, k, o, s, w, 0, 4, 8.
+ -->
+ <xs:complexType name="userDataQosPolicy">
+ <xs:all>
+ <xs:element name="value" type="xs:base64Binary" minOccurs="0"></xs:element>
+ </xs:all>
+ </xs:complexType>
+ <xs:complexType name="writerDataLifecycleQosPolicy">
+ <xs:all>
+ <xs:element name="autodispose_unregistered_instances" type="xs:boolean" default="true" minOccurs="0"></xs:element>
+ </xs:all>
+ </xs:complexType>
+
+ <xs:complexType name="domainparticipantQos">
+ <xs:all>
+ <xs:element name="user_data" type="dds:userDataQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="entity_factory" type="dds:entityFactoryQosPolicy" minOccurs="0"></xs:element>
+ </xs:all>
+ <xs:attribute name="name" type="dds:elementName"></xs:attribute>
+ <xs:attribute name="base_name" type="dds:elementName"></xs:attribute>
+ <xs:attribute name="topic_filter" type="dds:topicNameFilter"></xs:attribute>
+ </xs:complexType>
+ <xs:complexType name="publisherQos">
+ <xs:all>
+ <xs:element name="presentation" type="dds:presentationQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="partition" type="dds:partitionQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="group_data" type="dds:groupDataQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="entity_factory" type="dds:entityFactoryQosPolicy" minOccurs="0"></xs:element>
+ </xs:all>
+ <xs:attribute name="name" type="dds:elementName"></xs:attribute>
+ <xs:attribute name="base_name" type="dds:elementName"></xs:attribute>
+ <xs:attribute name="topic_filter" type="dds:topicNameFilter"></xs:attribute>
+ </xs:complexType>
+ <xs:complexType name="subscriberQos">
+ <xs:all>
+ <xs:element name="presentation" type="dds:presentationQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="partition" type="dds:partitionQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="group_data" type="dds:groupDataQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="entity_factory" type="dds:entityFactoryQosPolicy" minOccurs="0"></xs:element>
+ </xs:all>
+ <xs:attribute name="name" type="dds:elementName"></xs:attribute>
+ <xs:attribute name="base_name" type="dds:elementName"></xs:attribute>
+ <xs:attribute name="topic_filter" type="dds:topicNameFilter"></xs:attribute>
+ </xs:complexType>
+ <xs:complexType name="topicQos">
+ <xs:all>
+ <xs:element name="topic_data" type="dds:topicDataQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="durability" type="dds:durabilityQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="durability_service" type="dds:durabilityServiceQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="deadline" type="dds:deadlineQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="latency_budget" type="dds:latencyBudgetQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="liveliness" type="dds:livelinessQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="reliability" type="dds:reliabilityQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="destination_order" type="dds:destinationOrderQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="history" type="dds:historyQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="resource_limits" type="dds:resourceLimitsQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="transport_priority" type="dds:transportPriorityQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="lifespan" type="dds:lifespanQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="ownership" type="dds:ownershipQosPolicy" minOccurs="0"></xs:element>
+ </xs:all>
+ <xs:attribute name="name" type="dds:elementName"></xs:attribute>
+ <xs:attribute name="base_name" type="dds:elementName"></xs:attribute>
+ <xs:attribute name="topic_filter" type="dds:topicNameFilter"></xs:attribute>
+ </xs:complexType>
+ <xs:complexType name="datareaderQos">
+ <xs:all>
+ <xs:element name="durability" type="dds:durabilityQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="deadline" type="dds:deadlineQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="latency_budget" type="dds:latencyBudgetQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="liveliness" type="dds:livelinessQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="reliability" type="dds:reliabilityQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="destination_order" type="dds:destinationOrderQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="history" type="dds:historyQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="resource_limits" type="dds:resourceLimitsQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="user_data" type="dds:userDataQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="ownership" type="dds:ownershipQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="time_based_filter" type="dds:timeBasedFilterQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="reader_data_lifecycle" type="dds:readerDataLifecycleQosPolicy" minOccurs="0"></xs:element>
+ </xs:all>
+ <xs:attribute name="name" type="dds:elementName"></xs:attribute>
+ <xs:attribute name="base_name" type="dds:elementName"></xs:attribute>
+ <xs:attribute name="topic_filter" type="dds:topicNameFilter"></xs:attribute>
+ </xs:complexType>
+ <xs:complexType name="datawriterQos">
+ <xs:all>
+ <xs:element name="durability" type="dds:durabilityQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="durability_service" type="dds:durabilityServiceQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="deadline" type="dds:deadlineQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="latency_budget" type="dds:latencyBudgetQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="liveliness" type="dds:livelinessQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="reliability" type="dds:reliabilityQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="destination_order" type="dds:destinationOrderQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="history" type="dds:historyQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="resource_limits" type="dds:resourceLimitsQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="transport_priority" type="dds:transportPriorityQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="lifespan" type="dds:lifespanQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="user_data" type="dds:userDataQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="ownership" type="dds:ownershipQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="ownership_strength" type="dds:ownershipStrengthQosPolicy" minOccurs="0"></xs:element>
+ <xs:element name="writer_data_lifecycle" type="dds:writerDataLifecycleQosPolicy" minOccurs="0"></xs:element>
+ </xs:all>
+ <xs:attribute name="name" type="dds:elementName"></xs:attribute>
+ <xs:attribute name="base_name" type="dds:elementName"></xs:attribute>
+ <xs:attribute name="topic_filter" type="dds:topicNameFilter"></xs:attribute>
+ </xs:complexType>
+
+ <xs:complexType name="domainparticipantQosProfile">
+ <xs:complexContent>
+ <xs:restriction base="dds:domainparticipantQos">
+ <xs:attribute name="name" type="dds:elementName" use="required"></xs:attribute>
+ </xs:restriction>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="topicQosProfile">
+ <xs:complexContent>
+ <xs:restriction base="dds:topicQos">
+ <xs:attribute name="name" type="dds:elementName" use="required"></xs:attribute>
+ </xs:restriction>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="publisherQosProfile">
+ <xs:complexContent>
+ <xs:restriction base="dds:publisherQos">
+ <xs:attribute name="name" type="dds:elementName" use="required"></xs:attribute>
+ </xs:restriction>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="subscriberQosProfile">
+ <xs:complexContent>
+ <xs:restriction base="dds:subscriberQos">
+ <xs:attribute name="name" type="dds:elementName" use="required"></xs:attribute>
+ </xs:restriction>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="datawriterQosProfile">
+ <xs:complexContent>
+ <xs:restriction base="dds:datawriterQos">
+ <xs:attribute name="name" type="dds:elementName" use="required"></xs:attribute>
+ </xs:restriction>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="datareaderQosProfile">
+ <xs:complexContent>
+ <xs:restriction base="dds:datareaderQos">
+ <xs:attribute name="name" type="dds:elementName" use="required"></xs:attribute>
+ </xs:restriction>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="qosProfile">
+ <xs:sequence>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element name="datareader_qos" type="dds:datareaderQos" minOccurs="0" maxOccurs="unbounded"></xs:element>
+ <xs:element name="datawriter_qos" type="dds:datawriterQos" minOccurs="0" maxOccurs="unbounded"></xs:element>
+ <xs:element name="topic_qos" type="dds:topicQos" minOccurs="0" maxOccurs="unbounded"></xs:element>
+ <xs:element name="domainparticipant_qos" type="dds:domainparticipantQos" minOccurs="0" maxOccurs="unbounded"></xs:element>
+ <xs:element name="publisher_qos" type="dds:publisherQos" minOccurs="0" maxOccurs="unbounded"></xs:element>
+ <xs:element name="subscriber_qos" type="dds:subscriberQos" minOccurs="0" maxOccurs="unbounded"></xs:element>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute name="name" type="dds:elementName" use="required"></xs:attribute>
+ <xs:attribute name="base_name" type="dds:elementName"></xs:attribute>
+ </xs:complexType>
+
+ <xs:element name="dds_ccm">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element name="qos_profile" type="dds:qosProfile" minOccurs="0" maxOccurs="unbounded"></xs:element>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+</xs:schema>
diff --git a/modules/CIAO/connectors/dds4ccm/docs/DDSforCCM-meta.uml b/modules/CIAO/connectors/dds4ccm/docs/DDSforCCM-meta.uml
new file mode 100644
index 00000000000..9fec3ed3ac1
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/docs/DDSforCCM-meta.uml
@@ -0,0 +1,567 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/2.1.0/UML" xmi:id="_DWFT4BINEd2MuIEcqg0Vsw" name="DDSforCCM-meta">
+ <ownedComment xmi:id="_H7_O8BxIEd2uaZhm61RBnw" annotatedElement="_N9hMoBINEd2MuIEcqg0Vsw">
+ <body>Can be an interface which depends on the template parameters. Might be given in form of an interface template.</body>
+ </ownedComment>
+ <packageImport xmi:id="_DWFT4RINEd2MuIEcqg0Vsw">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Class" xmi:id="_EBWecBINEd2MuIEcqg0Vsw" name="ComponentDef">
+ <generalization xmi:id="_3dajwBuDEd2uaZhm61RBnw" general="_N9hMoBINEd2MuIEcqg0Vsw"/>
+ <ownedAttribute xmi:id="_nK5bEBINEd2MuIEcqg0Vsw" name="supports" type="_N9hMoBINEd2MuIEcqg0Vsw" isUnique="false" aggregation="composite" association="_nK1JoBINEd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nK-TkBINEd2MuIEcqg0Vsw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nK9sgBINEd2MuIEcqg0Vsw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_nzMKIBINEd2MuIEcqg0Vsw" name="facet" type="_PAvkMBINEd2MuIEcqg0Vsw" isUnique="false" aggregation="composite" association="_nzGqkBINEd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nzN_URINEd2MuIEcqg0Vsw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nzN_UBINEd2MuIEcqg0Vsw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_oeIkkBINEd2MuIEcqg0Vsw" name="receptacle" type="_MSZHkBINEd2MuIEcqg0Vsw" isUnique="false" aggregation="composite" association="_oeETIBINEd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oeLA0RINEd2MuIEcqg0Vsw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oeLA0BINEd2MuIEcqg0Vsw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_EX4nwBIQEd2MuIEcqg0Vsw" name="attributes" type="_FhPj4BINEd2MuIEcqg0Vsw" isUnique="false" association="_EXzIMBIQEd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_EX-uYRIQEd2MuIEcqg0Vsw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_EX-uYBIQEd2MuIEcqg0Vsw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_FohJMBIQEd2MuIEcqg0Vsw" name="publishes" type="_G6DJ4BINEd2MuIEcqg0Vsw" isUnique="false" aggregation="composite" association="_FocQsBIQEd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FokMgRIQEd2MuIEcqg0Vsw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FokMgBIQEd2MuIEcqg0Vsw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_GLt84BIQEd2MuIEcqg0Vsw" name="emits" type="_IVOucBINEd2MuIEcqg0Vsw" isUnique="false" aggregation="composite" association="_GLnPMBIQEd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GLzccBIQEd2MuIEcqg0Vsw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GLy1YBIQEd2MuIEcqg0Vsw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_GkPKkBIQEd2MuIEcqg0Vsw" name="consumes" type="_JooQABINEd2MuIEcqg0Vsw" isUnique="false" aggregation="composite" association="_GkGnsBIQEd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GkS08BIQEd2MuIEcqg0Vsw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GkSN4BIQEd2MuIEcqg0Vsw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_KZ3i4BIREd2MuIEcqg0Vsw" name="extendedPortDef" type="_q_iqABIQEd2MuIEcqg0Vsw" isUnique="false" aggregation="composite" association="_KZrVoBIREd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KZ-3oBIREd2MuIEcqg0Vsw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KZ-QkBIREd2MuIEcqg0Vsw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_Jvkh8BuDEd2uaZhm61RBnw" name="sinks" type="_DUacYBuDEd2uaZhm61RBnw" isUnique="false" aggregation="composite" association="_JvJEIBuDEd2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JvtE0BuDEd2uaZhm61RBnw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JvsdwBuDEd2uaZhm61RBnw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_NbNGMBuDEd2uaZhm61RBnw" name="sources" type="_EcNx8BuDEd2uaZhm61RBnw" isUnique="false" aggregation="composite" association="_Na1SwBuDEd2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_NbZ6gBuDEd2uaZhm61RBnw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_NbZTcBuDEd2uaZhm61RBnw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_FhPj4BINEd2MuIEcqg0Vsw" name="AttributeDef">
+ <ownedAttribute xmi:id="_46FHsBIPEd2MuIEcqg0Vsw" name="is_readonly" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_G6DJ4BINEd2MuIEcqg0Vsw" name="PublishesDef">
+ <generalization xmi:id="_UPWPsBIQEd2MuIEcqg0Vsw" general="_ZUvjkBINEd2MuIEcqg0Vsw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_IVOucBINEd2MuIEcqg0Vsw" name="EmitsDef">
+ <generalization xmi:id="_T_ensBIQEd2MuIEcqg0Vsw" general="_ZUvjkBINEd2MuIEcqg0Vsw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_JooQABINEd2MuIEcqg0Vsw" name="ConsumesDef">
+ <generalization xmi:id="_Th4FsBIQEd2MuIEcqg0Vsw" general="_ZUvjkBINEd2MuIEcqg0Vsw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_MSZHkBINEd2MuIEcqg0Vsw" name="UsesDef">
+ <ownedAttribute xmi:id="_94osYBIPEd2MuIEcqg0Vsw" name="is_multiple" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_TbxLwBISEd2MuIEcqg0Vsw" name="usesIntf" type="_N9hMoBINEd2MuIEcqg0Vsw" isUnique="false" association="_Tbh7MBISEd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Tb3SYBISEd2MuIEcqg0Vsw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Tb2rUBISEd2MuIEcqg0Vsw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_9Y_mwBxGEd2uaZhm61RBnw" name="interfaceDef" type="_N9hMoBINEd2MuIEcqg0Vsw" isUnique="false" association="_9YZJ0BxGEd2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9ZGUcBxGEd2uaZhm61RBnw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9ZFtYBxGEd2uaZhm61RBnw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_N9hMoBINEd2MuIEcqg0Vsw" name="InterfaceDef">
+ <ownedAttribute xmi:id="_lVLzEBuDEd2uaZhm61RBnw" name="isAbstract" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_oZw-YBuDEd2uaZhm61RBnw" name="isLocal" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_-OeBkBwXEd2uaZhm61RBnw" name="derived" type="_N9hMoBINEd2MuIEcqg0Vsw" isUnique="false" association="_-OCjwBwXEd2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-Oi6ERwXEd2uaZhm61RBnw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-Oi6EBwXEd2uaZhm61RBnw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_PAvkMBINEd2MuIEcqg0Vsw" name="ProvidesDef">
+ <ownedAttribute xmi:id="_UFjIkBISEd2MuIEcqg0Vsw" name="providesIntf" type="_N9hMoBINEd2MuIEcqg0Vsw" isUnique="false" association="_UFRbwBISEd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_UFmy8BISEd2MuIEcqg0Vsw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UFmL4BISEd2MuIEcqg0Vsw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_9INYwBxGEd2uaZhm61RBnw" name="interfaceDef" type="_N9hMoBINEd2MuIEcqg0Vsw" isUnique="false" association="_9Hr0UBxGEd2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9ITfYBxGEd2uaZhm61RBnw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9IS4UBxGEd2uaZhm61RBnw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_RCTMQBINEd2MuIEcqg0Vsw" name="OperationDef"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Sz6T0BINEd2MuIEcqg0Vsw" name="FactoryDef">
+ <generalization xmi:id="_gFZQoBIQEd2MuIEcqg0Vsw" general="_RCTMQBINEd2MuIEcqg0Vsw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_TvgZYBINEd2MuIEcqg0Vsw" name="FinderDef">
+ <generalization xmi:id="_gfGxIBIQEd2MuIEcqg0Vsw" general="_RCTMQBINEd2MuIEcqg0Vsw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_VZ3pcBINEd2MuIEcqg0Vsw" name="HomeDef">
+ <ownedAttribute xmi:id="_Z-oGsBIQEd2MuIEcqg0Vsw" name="primary_key" type="_XDOz8BINEd2MuIEcqg0Vsw" isUnique="false" association="_Z-gK4BIQEd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Z-s_MBIQEd2MuIEcqg0Vsw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Z-sYIBIQEd2MuIEcqg0Vsw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_c4qO4BIQEd2MuIEcqg0Vsw" name="manages" type="_EBWecBINEd2MuIEcqg0Vsw" isUnique="false" association="_c4hsABIQEd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_c4tSMBIQEd2MuIEcqg0Vsw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_c4srIBIQEd2MuIEcqg0Vsw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_iFtikBIQEd2MuIEcqg0Vsw" name="finders" type="_TvgZYBINEd2MuIEcqg0Vsw" isUnique="false" association="_iFk_sBIQEd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iFwl4RIQEd2MuIEcqg0Vsw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iFwl4BIQEd2MuIEcqg0Vsw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_iix5EBIQEd2MuIEcqg0Vsw" name="factories" type="_Sz6T0BINEd2MuIEcqg0Vsw" isUnique="false" association="_iikdsBIQEd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ii08YRIQEd2MuIEcqg0Vsw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ii08YBIQEd2MuIEcqg0Vsw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_XDOz8BINEd2MuIEcqg0Vsw" name="ValueDef"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_YKWNABINEd2MuIEcqg0Vsw" name="EventDef">
+ <generalization xmi:id="_YvAR4BIQEd2MuIEcqg0Vsw" general="_XDOz8BINEd2MuIEcqg0Vsw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_ZUvjkBINEd2MuIEcqg0Vsw" name="EventPortDef">
+ <ownedAttribute xmi:id="_XnepIBIQEd2MuIEcqg0Vsw" name="type" type="_YKWNABINEd2MuIEcqg0Vsw" isUnique="false" association="_XnWtUBIQEd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XnhFYBIQEd2MuIEcqg0Vsw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XngeUBIQEd2MuIEcqg0Vsw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_nK1JoBINEd2MuIEcqg0Vsw" name="Association_ComponentDef_InterfaceDef" memberEnd="_nK5bEBINEd2MuIEcqg0Vsw _nK-TkRINEd2MuIEcqg0Vsw">
+ <ownedEnd xmi:id="_nK-TkRINEd2MuIEcqg0Vsw" name="componentDef" type="_EBWecBINEd2MuIEcqg0Vsw" isUnique="false" aggregation="composite" association="_nK1JoBINEd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nLAv0BINEd2MuIEcqg0Vsw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nLAv0RINEd2MuIEcqg0Vsw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_nzGqkBINEd2MuIEcqg0Vsw" name="Association_ComponentDef_ProvidesDef" memberEnd="_nzMKIBINEd2MuIEcqg0Vsw _nzOmYBINEd2MuIEcqg0Vsw">
+ <ownedEnd xmi:id="_nzOmYBINEd2MuIEcqg0Vsw" name="componentDef" type="_EBWecBINEd2MuIEcqg0Vsw" isUnique="false" association="_nzGqkBINEd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nzSQwBINEd2MuIEcqg0Vsw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nzS30BINEd2MuIEcqg0Vsw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_oeETIBINEd2MuIEcqg0Vsw" name="Association_ComponentDef_UsesDef" memberEnd="_oeIkkBINEd2MuIEcqg0Vsw _oeLn4BINEd2MuIEcqg0Vsw">
+ <ownedEnd xmi:id="_oeLn4BINEd2MuIEcqg0Vsw" name="componentDef" type="_EBWecBINEd2MuIEcqg0Vsw" isUnique="false" association="_oeETIBINEd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oeNdEBINEd2MuIEcqg0Vsw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oeOEIBINEd2MuIEcqg0Vsw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_EXzIMBIQEd2MuIEcqg0Vsw" name="Association_ComponentDef_AttributeDef" memberEnd="_EX4nwBIQEd2MuIEcqg0Vsw _EX_VcBIQEd2MuIEcqg0Vsw">
+ <ownedEnd xmi:id="_EX_VcBIQEd2MuIEcqg0Vsw" name="componentDef" type="_EBWecBINEd2MuIEcqg0Vsw" isUnique="false" association="_EXzIMBIQEd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_EYBxsBIQEd2MuIEcqg0Vsw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_EYCYwBIQEd2MuIEcqg0Vsw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_FocQsBIQEd2MuIEcqg0Vsw" name="Association_ComponentDef_PublishesDef" memberEnd="_FohJMBIQEd2MuIEcqg0Vsw _FokzkBIQEd2MuIEcqg0Vsw">
+ <ownedEnd xmi:id="_FokzkBIQEd2MuIEcqg0Vsw" name="componentDef" type="_EBWecBINEd2MuIEcqg0Vsw" isUnique="false" association="_FocQsBIQEd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FonP0BIQEd2MuIEcqg0Vsw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Fon24BIQEd2MuIEcqg0Vsw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_GLnPMBIQEd2MuIEcqg0Vsw" name="Association_ComponentDef_EmitsDef" memberEnd="_GLt84BIQEd2MuIEcqg0Vsw _GLzccRIQEd2MuIEcqg0Vsw">
+ <ownedEnd xmi:id="_GLzccRIQEd2MuIEcqg0Vsw" name="componentDef" type="_EBWecBINEd2MuIEcqg0Vsw" isUnique="false" association="_GLnPMBIQEd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GL14sBIQEd2MuIEcqg0Vsw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GL2fwBIQEd2MuIEcqg0Vsw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_GkGnsBIQEd2MuIEcqg0Vsw" name="Association_ComponentDef_ConsumesDef" memberEnd="_GkPKkBIQEd2MuIEcqg0Vsw _GkS08RIQEd2MuIEcqg0Vsw">
+ <ownedEnd xmi:id="_GkS08RIQEd2MuIEcqg0Vsw" name="componentDef" type="_EBWecBINEd2MuIEcqg0Vsw" isUnique="false" association="_GkGnsBIQEd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GkVRMBIQEd2MuIEcqg0Vsw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GkV4QBIQEd2MuIEcqg0Vsw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_XnWtUBIQEd2MuIEcqg0Vsw" name="Association_EventPortDef_EventDef" memberEnd="_XnepIBIQEd2MuIEcqg0Vsw _XnhscBIQEd2MuIEcqg0Vsw">
+ <ownedEnd xmi:id="_XnhscBIQEd2MuIEcqg0Vsw" name="eventPortDef" type="_ZUvjkBINEd2MuIEcqg0Vsw" isUnique="false" association="_XnWtUBIQEd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XnkIsBIQEd2MuIEcqg0Vsw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XnkIsRIQEd2MuIEcqg0Vsw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_Z-gK4BIQEd2MuIEcqg0Vsw" name="Association_HomeDef_ValueDef" memberEnd="_Z-oGsBIQEd2MuIEcqg0Vsw _Z-s_MRIQEd2MuIEcqg0Vsw">
+ <ownedEnd xmi:id="_Z-s_MRIQEd2MuIEcqg0Vsw" name="homeDef" type="_VZ3pcBINEd2MuIEcqg0Vsw" isUnique="false" association="_Z-gK4BIQEd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Z-wCgBIQEd2MuIEcqg0Vsw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Z-wCgRIQEd2MuIEcqg0Vsw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_c4hsABIQEd2MuIEcqg0Vsw" name="Association_HomeDef_ComponentDef" memberEnd="_c4qO4BIQEd2MuIEcqg0Vsw _c4tSMRIQEd2MuIEcqg0Vsw">
+ <ownedEnd xmi:id="_c4tSMRIQEd2MuIEcqg0Vsw" name="homeDef" type="_VZ3pcBINEd2MuIEcqg0Vsw" isUnique="false" association="_c4hsABIQEd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_c4wVgBIQEd2MuIEcqg0Vsw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_c4w8kBIQEd2MuIEcqg0Vsw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_iFk_sBIQEd2MuIEcqg0Vsw" name="Association_HomeDef_Class_0" memberEnd="_iFtikBIQEd2MuIEcqg0Vsw _iFxM8BIQEd2MuIEcqg0Vsw">
+ <ownedEnd xmi:id="_iFxM8BIQEd2MuIEcqg0Vsw" name="homeDef" type="_VZ3pcBINEd2MuIEcqg0Vsw" isUnique="false" association="_iFk_sBIQEd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iF0QQBIQEd2MuIEcqg0Vsw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iF0QQRIQEd2MuIEcqg0Vsw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_iikdsBIQEd2MuIEcqg0Vsw" name="Association_HomeDef_FinderDef" memberEnd="_iix5EBIQEd2MuIEcqg0Vsw _ii1jcBIQEd2MuIEcqg0Vsw">
+ <ownedEnd xmi:id="_ii1jcBIQEd2MuIEcqg0Vsw" name="homeDef" type="_VZ3pcBINEd2MuIEcqg0Vsw" isUnique="false" association="_iikdsBIQEd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ii4mwBIQEd2MuIEcqg0Vsw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ii5N0BIQEd2MuIEcqg0Vsw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_ntaK4BIQEd2MuIEcqg0Vsw" name="PortKindDef">
+ <ownedAttribute xmi:id="_wUjm4BIQEd2MuIEcqg0Vsw" name="providesDef" type="_PAvkMBINEd2MuIEcqg0Vsw" isUnique="false" association="_wUYAsBIQEd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wUmqMBIQEd2MuIEcqg0Vsw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wUmDIBIQEd2MuIEcqg0Vsw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_wz84oBIQEd2MuIEcqg0Vsw" name="usesDef" type="_MSZHkBINEd2MuIEcqg0Vsw" isUnique="false" association="_wzu2MBIQEd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wz_U4RIQEd2MuIEcqg0Vsw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wz_U4BIQEd2MuIEcqg0Vsw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_q_iqABIQEd2MuIEcqg0Vsw" name="ExtendedPortDef">
+ <ownedAttribute xmi:id="_Eq6cABIREd2MuIEcqg0Vsw" name="kind" type="_ntaK4BIQEd2MuIEcqg0Vsw" isUnique="false" association="_EqwD8BIREd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Eq_UgBIREd2MuIEcqg0Vsw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Eq-tcBIREd2MuIEcqg0Vsw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_cPAqwBwdEd2uaZhm61RBnw" name="templateParams" type="_vCfUsBwZEd2uaZhm61RBnw" isUnique="false" association="_cOnCIBwdEd2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_cPHYcBwdEd2uaZhm61RBnw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cPGxYBwdEd2uaZhm61RBnw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_wUYAsBIQEd2MuIEcqg0Vsw" name="Association_ExtendedPortDef_ProvidesDef" memberEnd="_wUjm4BIQEd2MuIEcqg0Vsw _wUmqMRIQEd2MuIEcqg0Vsw">
+ <ownedEnd xmi:id="_wUmqMRIQEd2MuIEcqg0Vsw" name="extendedPortDef" type="_ntaK4BIQEd2MuIEcqg0Vsw" isUnique="false" association="_wUYAsBIQEd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wUqUkBIQEd2MuIEcqg0Vsw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wUqUkRIQEd2MuIEcqg0Vsw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_wzu2MBIQEd2MuIEcqg0Vsw" name="Association_ExtendedPortDef_UsesDef" memberEnd="_wz84oBIQEd2MuIEcqg0Vsw _wz_78BIQEd2MuIEcqg0Vsw">
+ <ownedEnd xmi:id="_wz_78BIQEd2MuIEcqg0Vsw" name="extendedPortDef" type="_ntaK4BIQEd2MuIEcqg0Vsw" isUnique="false" association="_wzu2MBIQEd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_w0C_QBIQEd2MuIEcqg0Vsw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w0DmUBIQEd2MuIEcqg0Vsw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_EqwD8BIREd2MuIEcqg0Vsw" name="Association_ExtendedPortDef_Kind" memberEnd="_Eq6cABIREd2MuIEcqg0Vsw _Eq_UgRIREd2MuIEcqg0Vsw">
+ <ownedEnd xmi:id="_Eq_UgRIREd2MuIEcqg0Vsw" name="extendedPortDef" type="_q_iqABIQEd2MuIEcqg0Vsw" isUnique="false" association="_EqwD8BIREd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ErCX0BIREd2MuIEcqg0Vsw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ErC-4BIREd2MuIEcqg0Vsw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_KZrVoBIREd2MuIEcqg0Vsw" name="Association_ComponentDef_ExtendedPortDef" memberEnd="_KZ3i4BIREd2MuIEcqg0Vsw _KZ_esBIREd2MuIEcqg0Vsw">
+ <ownedEnd xmi:id="_KZ_esBIREd2MuIEcqg0Vsw" name="componentDef" type="_EBWecBINEd2MuIEcqg0Vsw" isUnique="false" association="_KZrVoBIREd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KaCiABIREd2MuIEcqg0Vsw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KaCiARIREd2MuIEcqg0Vsw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_Tbh7MBISEd2MuIEcqg0Vsw" name="Association_UsesDef_InterfaceDef" memberEnd="_TbxLwBISEd2MuIEcqg0Vsw _Tb35cBISEd2MuIEcqg0Vsw">
+ <ownedEnd xmi:id="_Tb35cBISEd2MuIEcqg0Vsw" name="usesDef" type="_MSZHkBINEd2MuIEcqg0Vsw" isUnique="false" association="_Tbh7MBISEd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Tb7j0BISEd2MuIEcqg0Vsw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Tb7j0RISEd2MuIEcqg0Vsw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_UFRbwBISEd2MuIEcqg0Vsw" name="Association_ProvidesDef_InterfaceDef" memberEnd="_UFjIkBISEd2MuIEcqg0Vsw _UFnaABISEd2MuIEcqg0Vsw">
+ <ownedEnd xmi:id="_UFnaABISEd2MuIEcqg0Vsw" name="providesDef" type="_PAvkMBINEd2MuIEcqg0Vsw" isUnique="false" association="_UFRbwBISEd2MuIEcqg0Vsw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_UFrEYBISEd2MuIEcqg0Vsw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UFrrcBISEd2MuIEcqg0Vsw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_rLn4cBt3Ed2uaZhm61RBnw" name="D&amp;C">
+ <packagedElement xmi:type="uml:Class" xmi:id="_tvCQYBt3Ed2uaZhm61RBnw" name="Property"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_DduasBISEd2MuIEcqg0Vsw" name="ConnectorPackageDescription"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_9gJYsBt3Ed2uaZhm61RBnw" name="ConnectorImplementationDescription"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_ERYb8Bt4Ed2uaZhm61RBnw" name="ComponentInterfaceDescription">
+ <ownedAttribute xmi:id="_WwFakBw2Ed2uaZhm61RBnw" name="label" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ZDEJ0Bw2Ed2uaZhm61RBnw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ZC_RUBw2Ed2uaZhm61RBnw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_ZDK3gBw2Ed2uaZhm61RBnw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ZaGJwBw2Ed2uaZhm61RBnw" name="UUID" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_d0hGoBw2Ed2uaZhm61RBnw" name="specificType" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_h6rDsBw2Ed2uaZhm61RBnw" name="supportedType" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kBci8Bw2Ed2uaZhm61RBnw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kBXqcBw2Ed2uaZhm61RBnw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_kBjQoBw2Ed2uaZhm61RBnw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_qMB14Bw2Ed2uaZhm61RBnw" name="idlFile" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0euNsBw2Ed2uaZhm61RBnw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0eouIBw2Ed2uaZhm61RBnw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_0e0UUBw2Ed2uaZhm61RBnw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_UnBKYBw4Ed2uaZhm61RBnw" name="configProperty" type="_tvCQYBt3Ed2uaZhm61RBnw" isUnique="false" aggregation="composite" association="_Um51oBw4Ed2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_UnJGMBw4Ed2uaZhm61RBnw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UnIfIBw4Ed2uaZhm61RBnw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_VFG0kBw4Ed2uaZhm61RBnw" name="property" type="_PYWQoBw5Ed2uaZhm61RBnw" isUnique="false" aggregation="composite" association="_VE9qoBw4Ed2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VFPXcBw4Ed2uaZhm61RBnw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VFOwYBw4Ed2uaZhm61RBnw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_byNlwBw4Ed2uaZhm61RBnw" name="port" type="_k3QUIBw3Ed2uaZhm61RBnw" isUnique="false" aggregation="composite" association="_byEb0Bw4Ed2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_byX90Bw4Ed2uaZhm61RBnw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_byXWwBw4Ed2uaZhm61RBnw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_KfIXoBt4Ed2uaZhm61RBnw" name="ConnectorImplementationDescription">
+ <ownedAttribute xmi:id="_YUiBMBt4Ed2uaZhm61RBnw" name="monolithicImplem" type="_N-sOwBt4Ed2uaZhm61RBnw" isUnique="false" aggregation="shared" association="_YUdvwBt4Ed2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D1gU0KweEd2Ytox-zaOdkw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D1ZnIKweEd2Ytox-zaOdkw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_YzbjsBt4Ed2uaZhm61RBnw" name="configProperty" type="_tvCQYBt3Ed2uaZhm61RBnw" isUnique="false" aggregation="shared" association="_YzXSQBt4Ed2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_YzgcMBt4Ed2uaZhm61RBnw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Yzf1IBt4Ed2uaZhm61RBnw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ZMPFQBt4Ed2uaZhm61RBnw" name="capability" type="_6mgqUBxBEd2uaZhm61RBnw" isUnique="false" aggregation="shared" association="_ZMKMwBt4Ed2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ZMUk0Bt4Ed2uaZhm61RBnw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ZMT9wBt4Ed2uaZhm61RBnw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_baY-4Bt4Ed2uaZhm61RBnw" name="implements" type="_ERYb8Bt4Ed2uaZhm61RBnw" isUnique="false" association="_baUGYBt4Ed2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_EoDBgKwdEd2Ytox-zaOdkw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_En9h8KwdEd2Ytox-zaOdkw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_lFtNoBt4Ed2uaZhm61RBnw" name="label" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_oluXwBt4Ed2uaZhm61RBnw" name="UUID" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_6t5hMBxAEd2uaZhm61RBnw" name="monolithicImplementationDescription" type="_N-sOwBt4Ed2uaZhm61RBnw" isUnique="false" association="_6tqQoBxAEd2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6uCrIBxAEd2uaZhm61RBnw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6uCEEBxAEd2uaZhm61RBnw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_HJz-MKweEd2Ytox-zaOdkw" name="assemblyImplem" type="_93v88KwdEd2Ytox-zaOdkw" isUnique="false" aggregation="shared" association="_HJhqUKweEd2Ytox-zaOdkw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MQ2wgKweEd2Ytox-zaOdkw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MQxQ8KweEd2Ytox-zaOdkw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_N-sOwBt4Ed2uaZhm61RBnw" name="MonolithicImplementationDescription"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_YUdvwBt4Ed2uaZhm61RBnw" name="Association_ConnectorImplementationDescription_MonolithicImplementationDescription" memberEnd="_YUiBMBt4Ed2uaZhm61RBnw _YUm5sBt4Ed2uaZhm61RBnw">
+ <ownedEnd xmi:id="_YUm5sBt4Ed2uaZhm61RBnw" name="connectorImplementationDescription" type="_KfIXoBt4Ed2uaZhm61RBnw" isUnique="false" association="_YUdvwBt4Ed2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_YUryMBt4Ed2uaZhm61RBnw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_YUuOcBt4Ed2uaZhm61RBnw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_YzXSQBt4Ed2uaZhm61RBnw" name="Association_ConnectorImplementationDescription_Property" memberEnd="_YzbjsBt4Ed2uaZhm61RBnw _YzhDQBt4Ed2uaZhm61RBnw">
+ <ownedEnd xmi:id="_YzhDQBt4Ed2uaZhm61RBnw" name="connectorImplementationDescription" type="_KfIXoBt4Ed2uaZhm61RBnw" isUnique="false" aggregation="composite" association="_YzXSQBt4Ed2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_YznJ4Bt4Ed2uaZhm61RBnw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Yznw8Bt4Ed2uaZhm61RBnw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_ZMKMwBt4Ed2uaZhm61RBnw" name="A_ConnectorImplementationDescription_Capability" memberEnd="_ZMPFQBt4Ed2uaZhm61RBnw _ZMVL4Bt4Ed2uaZhm61RBnw">
+ <ownedEnd xmi:id="_ZMVL4Bt4Ed2uaZhm61RBnw" name="connectorImplementationDescription" type="_KfIXoBt4Ed2uaZhm61RBnw" isUnique="false" association="_ZMKMwBt4Ed2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ZMbSgBt4Ed2uaZhm61RBnw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ZMb5kBt4Ed2uaZhm61RBnw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_baUGYBt4Ed2uaZhm61RBnw" name="Association_ConnectorImplementationDescription_ComponentInterfaceDescription" memberEnd="_baY-4Bt4Ed2uaZhm61RBnw _bag6sRt4Ed2uaZhm61RBnw">
+ <ownedEnd xmi:id="_bag6sRt4Ed2uaZhm61RBnw" name="connectorImplementationDescription" type="_KfIXoBt4Ed2uaZhm61RBnw" isUnique="false" association="_baUGYBt4Ed2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_bamaQBt4Ed2uaZhm61RBnw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_banBUBt4Ed2uaZhm61RBnw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_k3QUIBw3Ed2uaZhm61RBnw" name="ComponentPortDescription">
+ <ownedAttribute xmi:id="_k3QUIRw3Ed2uaZhm61RBnw" name="name" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_k3QUIhw3Ed2uaZhm61RBnw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_k3QUIxw3Ed2uaZhm61RBnw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_k3QUJBw3Ed2uaZhm61RBnw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_k3QUJRw3Ed2uaZhm61RBnw" name="specificType" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_k3QUJhw3Ed2uaZhm61RBnw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_k3QUJxw3Ed2uaZhm61RBnw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_k3QUKBw3Ed2uaZhm61RBnw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_k3QUKRw3Ed2uaZhm61RBnw" name="provider" visibility="public" isUnique="false" isDerived="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_k3QUKhw3Ed2uaZhm61RBnw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_k3QUKxw3Ed2uaZhm61RBnw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_k3QULBw3Ed2uaZhm61RBnw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_k3QULRw3Ed2uaZhm61RBnw" name="exclusiverProvider" isUnique="false" isDerived="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Boolean"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_k3QULhw3Ed2uaZhm61RBnw" name="exclusiveUser" isUnique="false" isDerived="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Boolean"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_k3QULxw3Ed2uaZhm61RBnw" name="optional" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Boolean"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_y8kB8Bw3Ed2uaZhm61RBnw" name="kind" type="_3hF9EBw3Ed2uaZhm61RBnw" isUnique="false"/>
+ <ownedAttribute xmi:id="_CFa3cBw4Ed2uaZhm61RBnw" name="templateParam" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_G1LyMBw4Ed2uaZhm61RBnw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_G1GSoBw4Ed2uaZhm61RBnw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_tUy2QBw5Ed2uaZhm61RBnw" name="supportedType" isUnique="false" isDerived="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/UML.metamodel.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_vyscEBw5Ed2uaZhm61RBnw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_vyluYBw5Ed2uaZhm61RBnw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_3hF9EBw3Ed2uaZhm61RBnw" name="CCMComponentPortKind">
+ <ownedLiteral xmi:id="_Wt0CUBw5Ed2uaZhm61RBnw" name="Facet"/>
+ <ownedLiteral xmi:id="_YEMmcBw5Ed2uaZhm61RBnw" name="SimplexReceptacle"/>
+ <ownedLiteral xmi:id="_YP8jcBw5Ed2uaZhm61RBnw" name="MultiplexReceptacle"/>
+ <ownedLiteral xmi:id="_YZGfcBw5Ed2uaZhm61RBnw" name="EventEmitter"/>
+ <ownedLiteral xmi:id="_cUYCMBw5Ed2uaZhm61RBnw" name="EventPublisher"/>
+ <ownedLiteral xmi:id="_dbuEwBw5Ed2uaZhm61RBnw" name="EventConsumer"/>
+ <ownedLiteral xmi:id="_eYX6QBw5Ed2uaZhm61RBnw" name="ExtendedPort"/>
+ <ownedLiteral xmi:id="_onfZoBw5Ed2uaZhm61RBnw" name="InversePort"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_Um51oBw4Ed2uaZhm61RBnw" name="Association_ComponentInterfaceDescription_Property" memberEnd="_UnBKYBw4Ed2uaZhm61RBnw _UnJtQBw4Ed2uaZhm61RBnw">
+ <ownedEnd xmi:id="_UnJtQBw4Ed2uaZhm61RBnw" name="componentInterfaceDescription" type="_ERYb8Bt4Ed2uaZhm61RBnw" isUnique="false" association="_Um51oBw4Ed2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_UnPM0Bw4Ed2uaZhm61RBnw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UnPz4Bw4Ed2uaZhm61RBnw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_VE9qoBw4Ed2uaZhm61RBnw" name="A_ComponentInterfaceDescription_ComponentPropertyDescription" memberEnd="_VFG0kBw4Ed2uaZhm61RBnw _VFP-gBw4Ed2uaZhm61RBnw">
+ <ownedEnd xmi:id="_VFP-gBw4Ed2uaZhm61RBnw" name="componentInterfaceDescription" type="_ERYb8Bt4Ed2uaZhm61RBnw" isUnique="false" association="_VE9qoBw4Ed2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VFYhYBw4Ed2uaZhm61RBnw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VFZIcBw4Ed2uaZhm61RBnw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_byEb0Bw4Ed2uaZhm61RBnw" name="Association_ComponentInterfaceDescription_ComponentPortDescription" memberEnd="_byNlwBw4Ed2uaZhm61RBnw _byYk4Bw4Ed2uaZhm61RBnw">
+ <ownedEnd xmi:id="_byYk4Bw4Ed2uaZhm61RBnw" name="componentInterfaceDescription" type="_ERYb8Bt4Ed2uaZhm61RBnw" isUnique="false" association="_byEb0Bw4Ed2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_byergBw4Ed2uaZhm61RBnw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_byfSkBw4Ed2uaZhm61RBnw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_PYWQoBw5Ed2uaZhm61RBnw" name="ComponentPropertyDescription"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_QDhXwBw9Ed2uaZhm61RBnw" name="PackageConfiguration"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_SLGvUBw9Ed2uaZhm61RBnw" name="ConnectorPackageDescription">
+ <ownedAttribute xmi:id="_1iWCUBxAEd2uaZhm61RBnw" name="implementation" type="_KfIXoBt4Ed2uaZhm61RBnw" isUnique="false" association="_1iH_4BxAEd2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_1ielMBxAEd2uaZhm61RBnw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1id-IBxAEd2uaZhm61RBnw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_3J6dEBxAEd2uaZhm61RBnw" name="realizes" type="_ERYb8Bt4Ed2uaZhm61RBnw" isUnique="false" association="_3JrMgBxAEd2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3J_8oBxAEd2uaZhm61RBnw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3J_VkBxAEd2uaZhm61RBnw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_1iH_4BxAEd2uaZhm61RBnw" name="Association_ConnectorPackageDescription_ConnectorImplementationDescription" memberEnd="_1iWCUBxAEd2uaZhm61RBnw _1ifMQBxAEd2uaZhm61RBnw">
+ <ownedEnd xmi:id="_1ifMQBxAEd2uaZhm61RBnw" name="connectorPackageDescription" type="_SLGvUBw9Ed2uaZhm61RBnw" isUnique="false" association="_1iH_4BxAEd2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_1il58BxAEd2uaZhm61RBnw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1imhABxAEd2uaZhm61RBnw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_3JrMgBxAEd2uaZhm61RBnw" name="Association_ConnectorPackageDescription_ComponentInterfaceDescription" memberEnd="_3J6dEBxAEd2uaZhm61RBnw _3KAjsBxAEd2uaZhm61RBnw">
+ <ownedEnd xmi:id="_3KAjsBxAEd2uaZhm61RBnw" name="connectorPackageDescription" type="_SLGvUBw9Ed2uaZhm61RBnw" isUnique="false" association="_3JrMgBxAEd2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3KHRYBxAEd2uaZhm61RBnw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3KH4cBxAEd2uaZhm61RBnw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_6tqQoBxAEd2uaZhm61RBnw" name="Association_ConnectorImplementationDescription_MonolithicImplementationDescription" memberEnd="_6t5hMBxAEd2uaZhm61RBnw _6uDSMBxAEd2uaZhm61RBnw">
+ <ownedEnd xmi:id="_6uDSMBxAEd2uaZhm61RBnw" name="connectorImplementationDescription" type="_KfIXoBt4Ed2uaZhm61RBnw" isUnique="false" association="_6tqQoBxAEd2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6uJ_4BxAEd2uaZhm61RBnw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6uKm8BxAEd2uaZhm61RBnw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_6mgqUBxBEd2uaZhm61RBnw" name="Capability"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_93v88KwdEd2Ytox-zaOdkw" name="ComponentAssemblyDescription"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_HJhqUKweEd2Ytox-zaOdkw" name="Association_ConnectorImplementationDescription_ComponentAssemblyDescription" memberEnd="_HJz-MKweEd2Ytox-zaOdkw _HKALcKweEd2Ytox-zaOdkw">
+ <ownedEnd xmi:id="_HKALcKweEd2Ytox-zaOdkw" name="connectorImplementationDescription" type="_KfIXoBt4Ed2uaZhm61RBnw" isUnique="false" association="_HJhqUKweEd2Ytox-zaOdkw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HKJ8cKweEd2Ytox-zaOdkw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HKKjgKweEd2Ytox-zaOdkw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_RmXcoKweEd2Ytox-zaOdkw" name="ComponentUsageDescription">
+ <ownedAttribute xmi:id="_aHd7AKweEd2Ytox-zaOdkw" name="baseConnectorPackage" type="_SLGvUBw9Ed2uaZhm61RBnw" isUnique="false" association="_aG7IcKweEd2Ytox-zaOdkw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_fPZeIKweEd2Ytox-zaOdkw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_fPUloKweEd2Ytox-zaOdkw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_aG7IcKweEd2Ytox-zaOdkw" name="Association_ComponentUsageDescription_ConnectorPackageDescription" memberEnd="_aHd7AKweEd2Ytox-zaOdkw _aHlPwKweEd2Ytox-zaOdkw">
+ <ownedEnd xmi:id="_aHlPwKweEd2Ytox-zaOdkw" name="componentUsageDescription" type="_RmXcoKweEd2Ytox-zaOdkw" isUnique="false" association="_aG7IcKweEd2Ytox-zaOdkw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_aHr9cKweEd2Ytox-zaOdkw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_aHtLkKweEd2Ytox-zaOdkw"/>
+ </ownedEnd>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_DUacYBuDEd2uaZhm61RBnw" name="SinkDef">
+ <generalization xmi:id="_Z4efMBuDEd2uaZhm61RBnw" general="_UR1m0BuDEd2uaZhm61RBnw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_EcNx8BuDEd2uaZhm61RBnw" name="SourceDef">
+ <generalization xmi:id="_YocasBuDEd2uaZhm61RBnw" general="_UR1m0BuDEd2uaZhm61RBnw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_JvJEIBuDEd2uaZhm61RBnw" name="Association_ComponentDef_SinkDef" memberEnd="_Jvkh8BuDEd2uaZhm61RBnw _Jvtr4BuDEd2uaZhm61RBnw">
+ <ownedEnd xmi:id="_Jvtr4BuDEd2uaZhm61RBnw" name="componentDef" type="_EBWecBINEd2MuIEcqg0Vsw" isUnique="false" association="_JvJEIBuDEd2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JvykYBuDEd2uaZhm61RBnw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JvzLcBuDEd2uaZhm61RBnw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_Na1SwBuDEd2uaZhm61RBnw" name="Association_ComponentDef_SourceDef" memberEnd="_NbNGMBuDEd2uaZhm61RBnw _NbahkBuDEd2uaZhm61RBnw">
+ <ownedEnd xmi:id="_NbahkBuDEd2uaZhm61RBnw" name="componentDef" type="_EBWecBINEd2MuIEcqg0Vsw" isUnique="false" association="_Na1SwBuDEd2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_NbgBIBuDEd2uaZhm61RBnw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_NbgoMBuDEd2uaZhm61RBnw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_SImpcBuDEd2uaZhm61RBnw" name="StreamTypeDef">
+ <ownedAttribute xmi:id="_NLuycBwVEd2uaZhm61RBnw" name="groupedTypes" type="_SImpcBuDEd2uaZhm61RBnw" isUnique="false" association="_NLWX8BwVEd2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zUnGoBwYEd2uaZhm61RBnw" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zUiOIBwYEd2uaZhm61RBnw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_UR1m0BuDEd2uaZhm61RBnw" name="StreamPortDef">
+ <ownedAttribute xmi:id="_Lr2UEBwVEd2uaZhm61RBnw" name="stream_type" type="_SImpcBuDEd2uaZhm61RBnw" isUnique="false" association="_LrcEYBwVEd2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Lr6lgBwVEd2uaZhm61RBnw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Lr5-cBwVEd2uaZhm61RBnw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_LrcEYBwVEd2uaZhm61RBnw" name="Association_StreamPortDef_StreamTypeDef" memberEnd="_Lr2UEBwVEd2uaZhm61RBnw _Lr7MkBwVEd2uaZhm61RBnw">
+ <ownedEnd xmi:id="_Lr7MkBwVEd2uaZhm61RBnw" name="streamPortDef" type="_UR1m0BuDEd2uaZhm61RBnw" isUnique="false" association="_LrcEYBwVEd2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LsAFEBwVEd2uaZhm61RBnw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LsAsIBwVEd2uaZhm61RBnw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_NLWX8BwVEd2uaZhm61RBnw" name="Association_StreamTypeDef_StreamTypeDef" memberEnd="_NLuycBwVEd2uaZhm61RBnw _NLzq8BwVEd2uaZhm61RBnw">
+ <ownedEnd xmi:id="_NLzq8BwVEd2uaZhm61RBnw" name="streamTypeDef" type="_SImpcBuDEd2uaZhm61RBnw" isUnique="false" association="_NLWX8BwVEd2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_NL5KgBwVEd2uaZhm61RBnw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_NL5xkBwVEd2uaZhm61RBnw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_-OCjwBwXEd2uaZhm61RBnw" name="Association_InterfaceDef_InterfaceDef" memberEnd="_-OeBkBwXEd2uaZhm61RBnw _-OjhIBwXEd2uaZhm61RBnw">
+ <ownedEnd xmi:id="_-OjhIBwXEd2uaZhm61RBnw" name="interfaceDef" type="_N9hMoBINEd2MuIEcqg0Vsw" isUnique="false" association="_-OCjwBwXEd2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-OpAsBwXEd2uaZhm61RBnw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-OpnwBwXEd2uaZhm61RBnw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_vCfUsBwZEd2uaZhm61RBnw" name="IDLType"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_cOnCIBwdEd2uaZhm61RBnw" name="Association_ExtendedPortDef_IDLType" memberEnd="_cPAqwBwdEd2uaZhm61RBnw _cPH_gBwdEd2uaZhm61RBnw">
+ <ownedEnd xmi:id="_cPH_gBwdEd2uaZhm61RBnw" name="extendedPortDef" type="_q_iqABIQEd2MuIEcqg0Vsw" isUnique="false" association="_cOnCIBwdEd2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_cPNfEBwdEd2uaZhm61RBnw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cPOGIBwdEd2uaZhm61RBnw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_9Hr0UBxGEd2uaZhm61RBnw" name="Association_ProvidesDef_InterfaceDef" memberEnd="_9INYwBxGEd2uaZhm61RBnw _9IUGcBxGEd2uaZhm61RBnw">
+ <ownedEnd xmi:id="_9IUGcBxGEd2uaZhm61RBnw" name="providesDef" type="_PAvkMBINEd2MuIEcqg0Vsw" isUnique="false" association="_9Hr0UBxGEd2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9Ia0IBxGEd2uaZhm61RBnw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9IbbMBxGEd2uaZhm61RBnw"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_9YZJ0BxGEd2uaZhm61RBnw" name="Association_UsesDef_InterfaceDef" memberEnd="_9Y_mwBxGEd2uaZhm61RBnw _9ZG7gBxGEd2uaZhm61RBnw">
+ <ownedEnd xmi:id="_9ZG7gBxGEd2uaZhm61RBnw" name="usesDef" type="_MSZHkBINEd2MuIEcqg0Vsw" isUnique="false" association="_9YZJ0BxGEd2uaZhm61RBnw">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9ZOQQBxGEd2uaZhm61RBnw" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9ZO3UBxGEd2uaZhm61RBnw"/>
+ </ownedEnd>
+ </packagedElement>
+ <profileApplication xmi:id="_DWFT4hINEd2MuIEcqg0Vsw">
+ <eAnnotations xmi:id="_DWFT4xINEd2MuIEcqg0Vsw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Standard.profile.uml#_yzU58YinEdqtvbnfB2L_5w"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+</uml:Model>
diff --git a/modules/CIAO/connectors/dds4ccm/docs/_DDS for CCM Readable Files README.pdf b/modules/CIAO/connectors/dds4ccm/docs/_DDS for CCM Readable Files README.pdf
new file mode 100644
index 00000000000..ed6164d2e85
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/docs/_DDS for CCM Readable Files README.pdf
Binary files differ
diff --git a/modules/CIAO/connectors/dds4ccm/docs/ccm_dds.idl b/modules/CIAO/connectors/dds4ccm/docs/ccm_dds.idl
new file mode 100644
index 00000000000..5ebc8e152e6
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/docs/ccm_dds.idl
@@ -0,0 +1,396 @@
+// $Id$
+
+#include "dds_rtf2_dcps.idl"
+
+module CCM_DDS {
+
+ // ===================================================================================
+ // Non-typed part
+ // (here are placed all the constructs that are not dependent on the data type)
+ // ===================================================================================
+ // ---------------------------
+ // Enums, structs and Typedefs
+ // ---------------------------
+ typedef unsigned long DataNumber_t; // count or index of data
+ typedef sequence<DataNumber_t> DataNumberSeq;
+
+ const DataNumber_t UNLIMITED = 0;
+
+ enum AccessStatus {
+ FRESH_INFO,
+ ALREADY_SEEN
+ };
+
+ enum InstanceStatus { // at sample time, as perceived by the component
+ INSTANCE_CREATED,
+ INSTANCE_FILTERED_IN,
+ INSTANCE_UPDATED,
+ INSTANCE_FILTERED_OUT,
+ INSTANCE_DELETED
+ };
+
+ struct ReadInfo {
+ DDS::InstanceHandle_t instance_handle;
+ DDS::Time_t source_timestamp;
+ AccessStatus access_status;
+ InstanceStatus instance_status;
+ };
+ typedef sequence<ReadInfo> ReadInfoSeq;
+
+ struct QueryFilter {
+ string query;
+ DDS::StringSeq query_parameters;
+ };
+
+ // Data Listener control
+ // ---------------------
+ enum ListenerMode {
+ NOT_ENABLED,
+ ONE_BY_ONE,
+ MANY_BY_MANY
+ };
+
+ // ----------
+ // Exceptions
+ // ----------
+ exception AlreadyCreated {
+ DataNumberSeq indexes; // of the erroneous
+ };
+
+ exception NonExistent{
+ DataNumberSeq indexes; // of the erroneous
+ };
+
+ exception InternalError{
+ DDS::ReturnCode_t error_code; // DDS codes that are relevant:
+ // ERROR (1);
+ // UNSUPPORTED (2);
+ // BAD_PARAMETER (3)
+ // PRECONDITION_NOT_MET (4)
+ // OUT_OF_RESOURCE (5)
+ DataNumber_t index; // of the erroneous
+ };
+
+ exception NonChangeable {};
+
+ // ----------
+ // Interfaces
+ // ----------
+
+ // Listener Control
+ // ----------------
+ local interface DataListenerControl {
+ attribute ListenerMode mode; // default NOT_ENABLED
+ attribute DataNumber_t max_delivered_data; // default 0 (no limit)
+ };
+
+ local interface StateListenerControl : DataListenerControl {
+ attribute boolean is_filter_interpreted; // default FALSE
+ };
+
+ // Status Access
+ // -------------
+ local interface PortStatusListener { // status that are relevant to the component
+ void on_requested_deadline_missed(
+ in DDS::DataReader the_reader,
+ in DDS::RequestedDeadlineMissedStatus status);
+ void on_sample_lost(
+ in DDS::DataReader the_reader,
+ in DDS::SampleLostStatus status);
+ };
+
+ local interface ConnectorStatusListener { // status that are relevant system-wide
+ void on_inconsistent_topic(
+ in DDS::Topic the_topic,
+ in DDS::InconsistentTopicStatus status);
+ void on_requested_incompatible_qos(
+ in DDS::DataReader the_reader,
+ in DDS::RequestedIncompatibleQosStatus status);
+ void on_sample_rejected(
+ in DDS::DataReader the_reader,
+ in DDS::SampleRejectedStatus status);
+ void on_offered_deadline_missed(
+ in DDS::DataWriter the_writer,
+ in DDS::OfferedDeadlineMissedStatus status);
+ void on_offered_incompatible_qos(
+ in DDS::DataWriter the_writer,
+ in DDS::OfferedIncompatibleQosStatus status);
+ void on_unexpected_status (
+ in DDS::Entity the_entity,
+ in DDS::StatusKind status_kind);
+ };
+
+ // ---------------
+ // Connector bases
+ // ---------------
+ connector DDS_Base {
+ uses ConnectorStatusListener error_listener
+ attribute DDS::DomainId_t domain_id
+ setraises (NonChangeable);
+ attribute string qos_profile // File URL or XML string
+ setraises (NonChangeable);
+ };
+
+ connector DDS_TopicBase : DDS_Base {
+ attribute string topic_name
+ setraises (NonChangeable);
+ attribute DDS::StringSeq key_fields
+ setraises (NonChangeable);
+ };
+
+ // ===================================================================================
+ // Typed sub-part
+ // (here are placed all the construct that are depending on the data type
+ // either directly or indirectly)
+ // ===================================================================================
+
+ module Typed <typename T, sequence<T> TSeq> {
+ // Gathers all the constructs that are dependent on the data type (T),
+ // either directly -- interfaces making use of T or TSeq,
+ // or indirectly -- porttypes using or providing those intefaces.
+ // TSeq is passed as a second parameter to avoid creating a new sequence type.
+
+ // -------------------------------------
+ // Interfaces to be 'used' or 'provided'
+ // -------------------------------------
+
+ // Data access - publishing side
+ // -----------------------------
+
+ // -- InstanceHandle Manager
+ abstract interface InstanceHandleManager {
+ DDS::InstanceHandle_t register_instance (in T datum)
+ raises (InternalError);
+ void unregister_instance (in datum, in DDS::InstanceHandle_t instance_handle)
+ raises (InternalError);
+ };
+
+ // -- Writer: when the instance lifecycle is not a concern
+ local interface Writer : InstanceHandleManager {
+ void write_one (in T datum, in DDS::InstanceHandle_t instance_handle)
+ raises (InternalError);
+ void write_many (in TSeq data)
+ raises (InternalError);
+ attribute boolean is_coherent_write; // FALSE by default
+ // behavior
+ // ---------
+ // - the handle is exactly managed as by DDS (cf. DDS spec for more details)
+ // - attempt to write_many is stopped at the first error
+ // - if is_coherent_write, DDS write orders issued by a write_many
+ // are placed between begin/end coherent updates (even if an error occurs)
+ };
+
+ // -- Updater: when the instance lifecycle is a concern
+ local interface Updater : InstanceHandleManager {
+ void create_one (in T datum)
+ raises (AlreadyCreated,
+ InternalError);
+ void update_one (in T datum, in DDS::InstanceHandle_t instance_handle)
+ raises (NonExistent,
+ InternalError);
+ void delete_one (in T datum,in DDS::InstanceHandle_t instance_handle)
+ raises (NonExistent,
+ InternalError);
+
+ void create_many (in TSeq data)
+ raises (AlreadyCreated,
+ InternalError);
+ void update_many (in TSeq data)
+ raises (NonExistent,
+ InternalError);
+ void delete_many (in TSeq data)
+ raises (NonExistent,
+ InternalError);
+
+ readonly attribute boolean is_global_scope; // FALSE by default
+ attribute boolean is_coherent_write; // FALSE by default
+
+ // behavior
+ // --------
+ // - the handle is exactly managed as by DDS (cf. DDS spec for more details)
+ // - exceptions AlreadyCreated or NonExistent are raised at least if a local
+ // conflict exists; in addition if is_global_scope is true, the test on
+ // existence attempts to take into account the instances created outside
+ // - note: this check requires to previously attempt to read (not free)
+ // - note: this check is not 100% guaranteed as a creation or a deletion
+ // may occur in the short time between the check and the DDS order
+ // - For *-many operations:
+ // - global check is performed before actual write or dispose
+ // (in case of error, all the erroneous instances are reported
+ // in the exception)
+ // - attempt to DDS write or dispose is stopped at the first error
+ // - if is_coherent_write, DDS orders resulting from a *_many operation
+ // are placed between begin/end coherent updates (even if an error
+ // occurs)
+ };
+
+ // Data access - subscribing side
+ // ------------------------------
+
+ // -- Reader: to simply access to the available data (no wait)
+ local interface Reader {
+ void read_last (out TSeq data, out ReadInfoSeq infos)
+ raises (InternalError);
+ void read_all (out TSeq data, out ReadInfoSeq infos)
+ raises (InternalError);
+ void read_one_last (inout T datum, out ReadInfo info,
+ in DDS::InstanceHandle_t instance_handle)
+ raises (NonExistent,
+ InternalError);
+ void read_one_all (in T datum, out TSeq data, out ReadInfoSeq infos,
+ in DDS::InstanceHandle_t instance_handle)
+ raises (NonExistent,
+ InternalError);
+ attribute QueryFilter filter
+ setraises (InternalError);
+ // behavior
+ // --------
+ // - read operations are performed with the following parameters
+ // - READ or NO_READ
+ // - NEW or NOT_NEW
+ // - ALIVE
+ // - through the query as specified in the filter ("" means no query)
+ // - data returned:
+ // - read_last returns for each living instance, its last sample
+ // - read_all returns all the samples of all instances
+ // ordered by instance first and then by sample
+ // - read_one_last returns the last sample of the given instance
+ // - read_one_all returns all the samples for the given instance
+ // - read_one operations use the instance_handle the same way
+ // the Writer or Updater *_one operations do
+ };
+
+ // -- Getter: to get new data (and wait for)
+ local interface Getter {
+ boolean get_one (out T datum, out ReadInfo info)
+ raises (InternalError);
+ boolean get_many (out TSeq data, out ReadInfoSeq infos)
+ raises (InternalError);
+ attribute DDS::Duration_t time_out;
+ attribute DataNumber_t max_delivered_data; // default 0 (no limit)
+ // behavior
+ // --------
+ // - get operations are performed with the following parameters
+ // - NO_READ
+ // - NEW or NOT_NEW
+ // - ALIVE or NOT_ALIVE
+ // - through the query as specified in the associated Reader
+ // - within the time limit specified in time_out
+ // - all operations returns TRUE if data are provided
+ // or FALSE if time-out occurred
+ // - data returned:
+ // - get_one returns each read sample one by one
+ // - get_many returns all available samples within the
+ // max_delivered_data limit
+ };
+
+ // -- Listener: similar to a Getter but in push mode
+ local interface Listener {
+ void on_one_data (in T datum, in ReadInfo info);
+ void on_many_data (in TSeq data, in ReadInfoSeq infos);
+ // behavior
+ // --------
+ // - on_one_data() trigered is the mode of the associated listener control
+ // is ONE_BY_ONE (then similar to a get_one(), except that in push mode
+ // instead of pull mode)
+ // - on_many_data() triggered if the listener mode is MANY_BY_MANY (then
+ // similar to get_many() but in push mode)
+ // - query filter (if any) in the associated Reader
+ };
+
+ // -- StateListener: listener to be notified based on the instance lifecycle
+ local interface StateListener {
+ void on_creation (in T datum, in ReadInfo info);
+ void on_one_update (in T datum, in ReadInfo info);
+ void on_many_updates (in TSeq data, in ReadInfoSeq infos);
+ void on_deletion (in T datum, in ReadInfo info);
+ // behavior
+ // --------
+ // - no operations are trigerred if the mode of the associated listener
+ // control is NOT_ENABLED
+ // - on_creation() is triggered if the instance is considered as new in the
+ // component scope; note that in case there is a filter and the attribute
+ // is_filter_interpreted of the listener control is TRUE, this gathers also
+ // the case when the instance is filtered-in.
+ // - on_delation() is triggered if the instance is no more existing; note
+ // that in case there is a filter and the attribute
+ // is_filter_interpreted of the listener control is TRUE, this gathers
+ // also the case when the instance is filtered-out
+ // - on_one_update() is trigrered if neither on_creation() nor on_deletion()
+ // are triggered and the mode of the associated listener control is
+ // ONE_BY_ONE
+ // - on_many_updates()is triggered if neither on_creation() nor on_deletion()
+ // are triggered and the mode of the associated listener control is
+ // MANY_BY_MANY; the number of returned samples is within the limits of
+ // max_delivered_data attribute of the associated listener control.
+ // - query filter (if any) in the associated Reader
+ };
+
+
+ // ---------
+ // DDS Ports
+ // ---------
+
+ porttype DDS_Write {
+ uses Writer data;
+ uses DDS::DataWriter dds_entity;
+ };
+
+ porttype DDS_Update {
+ uses Updater data;
+ uses DDS::DataWriter dds_entity;
+ };
+
+ porttype DDS_Read {
+ uses Reader data;
+ uses DDS::DataReader dds_entity;
+ provides PortStatusListener status;
+ };
+
+ porttype DDS_Get {
+ uses Reader data;
+ uses Getter fresh_data;
+ uses DDS::DataReader dds_entity;
+ provides PortStatusListener status;
+ };
+
+ porttype DDS_Listen {
+ uses Reader data;
+ uses DataListenerControl data_control;
+ provides Listener data_listener;
+ uses DDS::DataReader dds_entity;
+ provides PortStatusListener status;
+ };
+
+ porttype DDS_StateListen {
+ uses Reader data;
+ uses StateListenerControl data_control;
+ provides StateListener data_listener;
+ uses DDS::DataReader dds_entity;
+ provides PortStatusListener status;
+ };
+
+ // ----------------------------
+ // Connectors
+ // (Correspond to DDS patterns)
+ // ----------------------------
+
+ connector DDS_State : DDS_TopicBase {
+ mirrorport DDS_Update observable;
+ mirrorport DDS_Read passive_observer;
+ mirrorport DDS_Get pull_observer;
+ mirrorport DDS_Listen push_observer;
+ mirrorport DDS_StateListen push_state_observer;
+ };
+
+ connector DDS_Event : DDS_TopicBase {
+ mirrorport DDS_Write supplier;
+ mirrorport DDS_Get pull_consumer;
+ mirrorport DDS_Listen push_consumer;
+ };
+ };
+ };
+
+
+
+
diff --git a/modules/CIAO/connectors/dds4ccm/docs/ccm_dds_dlrl.idl b/modules/CIAO/connectors/dds4ccm/docs/ccm_dds_dlrl.idl
new file mode 100644
index 00000000000..42b65c36406
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/docs/ccm_dds_dlrl.idl
@@ -0,0 +1,44 @@
+// $Id$
+
+#include "dds_rtf2_dlrl.idl"
+
+module CCM_DDS {
+
+local interface CacheOperation {
+ // Cache kind
+ // ----------
+ readonly attribute DDS::CacheUsage cache_usage;
+
+ // Other Cache attributes
+ // ----------------------
+ readonly attribute DDS::ObjectRootSeq objects;
+ readonly attribute boolean updates_enabled;
+ readonly attribute DDS::ObjectHomeSeq homes;
+ readonly attribute DDS::CacheAccessSeq sub_accesses;
+ readonly attribute DDS::CacheListenerSeq listeners;
+
+ // Cache update
+ // ------------
+ void DDS::refresh( )
+ raises (DDS::DCPSError);
+
+ // Listener management
+ // -------------------
+ void attach_listener (in DDS::CacheListener listener);
+ void detach_listener (in DDS::CacheListener listener);
+
+ // Updates management
+ // ------------------
+ void enable_updates ();
+ void disable_updates ();
+
+ // CacheAccess Management
+ // ----------------------
+ DDS::CacheAccess create_access (in DDS::CacheUsage purpose)
+ raises (DDS::PreconditionNotMet);
+ void delete_access (in DDS::CacheAccess access)
+ raises (DDS::PreconditionNotMet);
+ };
+};
+
+
diff --git a/modules/CIAO/connectors/dds4ccm/docs/details.txt b/modules/CIAO/connectors/dds4ccm/docs/details.txt
new file mode 100644
index 00000000000..8d871ba686b
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/docs/details.txt
@@ -0,0 +1,33 @@
+$Id$
+
+For more information regarding DDS4CCM also check the CCM tutoral, see
+$CIAO_ROOT/docs/OMG-CCM-Tutorial.ppt
+
+Currently the exact syntax of IDL3+ is not clear. The batch 4 document has
+been outdated and we are waiting for a new batch 5. Before this will be
+published a decision on IDL3+ has to be made. The latest proposal is to just
+use templated modules, no templated interfaces. The usage of $ as
+concatanation symbol has been removed from the spec.
+
+A lis of all open issues can be found at:
+http://www.omg.org/issues/dds4ccm-ftf.open.html
+
+The list of issues that have been resolved are in the DDS for CCM FTF
+27Aug09 document in the same directory as this file.
+
+One issue that has to be reraised is the fact that DDS SampleInfo is not
+available at the CCM level, we need to have access to that.
+
+The DDS4CCM spec still has to be reviewed whether the given ports deliver the
+correct abstraction. We want to prevent that we get lightweight DDS for
+lightweight CCM.
+
+The CIAO tooling will generate the full connector. The goal is to have just
+template instantiations and simple pass through code inside the connector, all
+real code should be in a supporting core library. That makes it possible to
+change the connector without changing the code generators.
+
+A problem to resolve is the fact that DDS defines an implicit sequence. We
+need to be able to have the same sequence in IDL to be used for DDS and CCM.
+This is not possible at this moment because we have 2 different code
+generators each generating the same type.
diff --git a/modules/CIAO/connectors/dds4ccm/docs/ptc_09-10-26 DDS4CCM v1-0 WCB.pdf b/modules/CIAO/connectors/dds4ccm/docs/ptc_09-10-26 DDS4CCM v1-0 WCB.pdf
new file mode 100644
index 00000000000..2f99240be78
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/docs/ptc_09-10-26 DDS4CCM v1-0 WCB.pdf
Binary files differ
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Hello/Base/Hello_Base.idl b/modules/CIAO/connectors/dds4ccm/examples/Hello/Base/Hello_Base.idl
new file mode 100644
index 00000000000..d24b377ddb1
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Hello/Base/Hello_Base.idl
@@ -0,0 +1,18 @@
+// $Id$
+
+/**
+ * @file Hello_Base.idl
+ * @author Marcel Smit <msmit@remedy.nl>
+ */
+
+#ifndef HELLO_BASE_IDL
+#define HELLO_BASE_IDL
+
+struct DDSHello {
+ string hello;
+ short iterator;
+};
+
+typedef sequence<DDSHello> DDSHello_Seq;
+
+#endif
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Hello/Base/Hello_Base.mpc b/modules/CIAO/connectors/dds4ccm/examples/Hello/Base/Hello_Base.mpc
new file mode 100644
index 00000000000..21cf204e93c
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Hello/Base/Hello_Base.mpc
@@ -0,0 +1,72 @@
+// $Id$
+
+project(DDS_Hello_Base_idl_gen) : taoidldefaults, anytypecode {
+ custom_only = 1
+ idlflags -= -St -Sa
+ idlflags += -SS -Gxhst \
+ -Wb,stub_export_macro=HELLO_BASE_STUB_Export \
+ -Wb,stub_export_include=Hello_Base_stub_export.h
+
+ IDL_Files {
+ Hello_Base.idl
+ }
+}
+
+project(DDS_Hello_Base_ndds_ts_gen) : ndds_ts_defaults {
+ custom_only = 1
+ after += DDS_Hello_Base_idl_gen
+ ndds_ts_flags += -corba Hello_BaseC.h -orb ACE_TAO1.7
+
+ NDDSTypeSupport_Files {
+ Hello_Base.idl
+ }
+}
+
+project(DDS_Hello_Base_NDDS_TS) : nddslib, taolib {
+ after += DDS_Hello_Base_ndds_ts_gen DDS_Hello_Base_stub
+ libs += DDS_Hello_Base_stub
+ libout = ../lib
+ libpaths += ../lib
+ sharedname = DDS_Hello_Base_NDDS_TS
+ dynamicflags = NDDS_USER_DLL_EXPORT
+
+ Source_Files {
+ Hello_Base.cxx
+ Hello_BasePlugin.cxx
+ Hello_BaseSupport.cxx
+ }
+
+ Header_Files {
+ Hello_Base.h
+ Hello_BasePlugin.h
+ Hello_BaseSupport.h
+ }
+
+ Inline_Files {
+ }
+}
+
+project(DDS_Hello_Base_stub) : ccm_stub {
+ after += DDS_Hello_Base_idl_gen
+ libs +=
+ libout = ../lib
+ sharedname = DDS_Hello_Base_stub
+ dynamicflags = HELLO_BASE_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Hello_BaseC.cpp
+ }
+
+ Header_Files {
+ Hello_BaseC.h
+ Hello_Base_stub_export.h
+ }
+
+ Inline_Files {
+ Hello_BaseC.inl
+ }
+}
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Hello/Connector/Hello_Connector.idl b/modules/CIAO/connectors/dds4ccm/examples/Hello/Connector/Hello_Connector.idl
new file mode 100644
index 00000000000..f3b0371a654
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Hello/Connector/Hello_Connector.idl
@@ -0,0 +1,163 @@
+// $Id$
+
+/**
+ * @file Hello_Connector.idl
+ * @author Marcel Smit <msmit@remedy.nl>
+ *
+ * by-hand translation of the idl3p.
+ */
+
+#ifndef HELLO_CONNECTOR_IDL_
+#define HELLO_CONNECTOR_IDL_
+
+#include <Components.idl>
+#include "connectors/dds4ccm/idl/dds4ccm_ListenerControl.idl3"
+#include "connectors/dds4ccm/idl/dds4ccm_ListenerControlE.idl"
+#include "connectors/dds4ccm/idl/dds4ccm_PortStatusListener.idl3"
+#include "connectors/dds4ccm/idl/dds4ccm_PortStatusListenerE.idl"
+#include "connectors/dds4ccm/idl/dds4ccm_ConnectorStatusListener.idl3"
+#include "connectors/dds4ccm/idl/dds4ccm_ListenerControl.idl3"
+#include "connectors/dds4ccm/idl/dds_rtf2_dcpsE.idl"
+#include "Base/Hello_Base.idl"
+
+module CCM_DDS
+{
+ interface DDSHello_InstanceHandleManager {
+ DDS::InstanceHandle_t register_instance (in DDSHello datum);
+ void unregister_instance (in DDSHello datum, in DDS::InstanceHandle_t instance_handle);
+ };
+
+ // @from DDS_Write for Hello::DDSHello
+ interface DDSHello_Writer : DDSHello_InstanceHandleManager
+ {
+ void write (in DDSHello an_instance)
+ raises (InternalError);
+ void write_many (in DDSHello_Seq an_instance)
+ raises (InternalError);
+ };
+
+ // @from DDS_Update for Hello::DDSHello
+ interface DDSHello_Updater
+ {
+ void create (in DDSHello an_instance)
+ raises (AlreadyCreated,
+ InternalError);
+ void update(in DDSHello an_instance)
+ raises (NonExistent,
+ InternalError);
+ void delete (in DDSHello an_instance)
+ raises (NonExistent,
+ InternalError);
+ readonly attribute boolean is_lifecycle_checked;
+ attribute boolean is_coherent_write;
+ };
+
+ interface DDSHello_Getter
+ {
+ boolean get_all (out DDSHello_Seq instances, out ReadInfoSeq infos)
+ raises (InternalError);
+ boolean get_all_history (out DDSHello_Seq instances, out ReadInfoSeq infos)
+ raises (InternalError);
+ boolean get_one (inout DDSHello an_instance, out ReadInfo info)
+ raises (NonExistent,
+ InternalError);
+ boolean get_one_history (in DDSHello an_instance,
+ out DDSHello_Seq instances, out ReadInfoSeq infos)
+ raises (NonExistent,
+ InternalError);
+ boolean get_next (out DDSHello an_instance, out ReadInfo info)
+ raises (InternalError);
+ attribute QueryFilter filter
+ setraises (BadParameter);
+ attribute DDS::Duration_t time_out;
+ };
+
+ // @from Reader<T> from DDS_RawListen for Hello::DDSHello
+ interface DDSHello_Reader
+ {
+ void read_all (out DDSHello_Seq instances, out ReadInfoSeq infos)
+ raises (InternalError);
+
+ void read_all_history (out DDSHello_Seq instances, out ReadInfoSeq infos)
+ raises (InternalError);
+
+ void read_one (inout DDSHello an_instance, out ReadInfo info)
+ raises (NonExistent,
+ InternalError);
+
+ void read_one_history (in DDSHello an_instance,
+ out DDSHello_Seq instances, out ReadInfoSeq infos)
+ raises (NonExistent,
+ InternalError);
+
+ attribute QueryFilter filter
+ setraises (BadParameter);
+ };
+
+ // @from RawListener for Hello::DDSHello
+ interface DDSHello_RawListener
+ {
+ void on_data (in DDSHello an_instance, in ReadInfo info);
+ };
+
+ porttype DDS_Write {
+ uses CCM_DDS::DDSHello_Writer data;
+ uses DDS::DataWriter dds_entity;
+ };
+ porttype DDS_Update {
+ uses CCM_DDS::DDSHello_Updater data;
+ };
+ porttype DDS_Listen {
+ uses CCM_DDS::DDSHello_Reader data;
+ uses CCM_DDS::DDSHello_Getter get_data;
+ uses CCM_DDS::ListenerControl data_control;
+ provides CCM_DDS::DDSHello_RawListener data_listener;
+ uses DDS::DataReader dds_entity;
+ provides CCM_DDS::PortStatusListener status;
+ };
+};
+
+module Hello
+{
+ component Hello_Connector
+ {
+ // @from DDS_TopicBase
+ attribute string topic_name;
+ readonly attribute DDS::StringSeq key_fields;
+
+ // @from DDS_TopicBase : DDS_Base
+ uses CCM_DDS::ConnectorStatusListener error_listener;
+ attribute DDS::DomainId_t domain_id;
+ attribute string qos_profile;
+
+ // @from DDS_Write for DDSHello
+ mirrorport CCM_DDS::DDS_Write info_in;
+
+ // @from DDS_Update for DDSHello
+ mirrorport CCM_DDS::DDS_Update info_update;
+
+ // @from DDS_RawListen for DDSHello
+ mirrorport CCM_DDS::DDS_Listen info_out;
+ };
+};
+
+
+/*
+For future use: IDL3 plus
+#include <dds4ccm/idl/dds4ccm_Connector_Base.idl3p>
+#include <dds4ccm/idl/dds4ccm_Port_RawListen.idl3p>
+#include <dds4ccm/idl/dds4ccm_Port_Write.idl3p>
+
+module Hello
+{
+ connector Hello_Connector : CCM_DDS::DDS_TopicBase
+ {
+ mirrorport CCM_DDS::DDS_Write <DDSHello> info_in;
+ mirrorport CCM_DDS::DDS_RawListen <DDSHello> info_out;
+ };
+};
+*/
+
+#endif /* HELLO_CONNECTOR_IDL_ */
+
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Hello/Connector/Hello_Connector.mpc b/modules/CIAO/connectors/dds4ccm/examples/Hello/Connector/Hello_Connector.mpc
new file mode 100644
index 00000000000..c8f3cf9b790
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Hello/Connector/Hello_Connector.mpc
@@ -0,0 +1,148 @@
+// $Id$
+
+project(DDS_Hello_Connector_idl_gen) : connectoridldefaults {
+ after += DDS4CCM_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=HELLO_CONNECTOR_STUB_Export \
+ -Wb,stub_export_include=Hello_Connector_stub_export.h \
+ -Wb,skel_export_macro=HELLO_CONNECTOR_SVNT_Export \
+ -Wb,skel_export_include=Hello_Connector_svnt_export.h \
+ -Wb,svnt_export_macro=HELLO_CONNECTOR_SVNT_Export \
+ -Wb,svnt_export_include=Hello_Connector_svnt_export.h \
+ -Wb,exec_export_macro=HELLO_CONNECTOR_EXEC_Export \
+ -Wb,exec_export_include=Hello_Connector_exec_export.h \
+ -I ..
+
+ IDL_Files {
+ Hello_Connector.idl
+ }
+}
+
+project(DDS_Hello_Connector_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ after += DDS_Hello_Connector_idl_gen
+ idlflags += -Wb,stub_export_macro=HELLO_CONNECTOR_LEM_STUB_Export \
+ -Wb,stub_export_include=Hello_Connector_lem_stub_export.h \
+ -SS -Gxhst \
+ -I .. -I $(CIAO_ROOT)/connectors -I $(CIAO_ROOT)/connectors/dds4ccm/idl
+
+ IDL_Files {
+ Hello_ConnectorE.idl
+ }
+}
+
+project(DDS_Hello_Connector_lem_stub) : ccm_svnt, dds4ccm_base {
+ after += DDS_Hello_Connector_lem_gen DDS_Hello_Connector_stub DDS_Hello_Base_stub
+ libs += DDS_Hello_Base_stub DDS_Hello_Connector_stub
+ libpaths += ../lib
+ libout = ../lib
+ includes += ..
+ sharedname = DDS_Hello_Connector_lem_stub
+ dynamicflags = HELLO_CONNECTOR_LEM_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Hello_ConnectorEC.cpp
+ }
+
+ Header_Files {
+ Hello_ConnectorEC.h
+ Hello_Connector_lem_stub_export.h
+ }
+
+ Inline_Files {
+ Hello_ConnectorEC.inl
+ }
+}
+
+project(DDS_Hello_Connector_stub) : ccm_stub, dds4ccm_base {
+ after += DDS_Hello_Connector_idl_gen DDS_Hello_Base_stub
+ libs += DDS_Hello_Base_stub
+ libpaths += ../lib
+ libout = ../lib
+ includes += ..
+ sharedname = DDS_Hello_Connector_stub
+ dynamicflags = HELLO_CONNECTOR_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Hello_ConnectorC.cpp
+ }
+
+ Header_Files {
+ Hello_ConnectorC.h
+ Hello_Connector_stub_export.h
+ }
+
+ Inline_Files {
+ Hello_ConnectorC.inl
+ }
+}
+
+project(DDS_Hello_Connector_exec) : ciao_executor, dds4ccm_skel, nddslib {
+ after += DDS_Hello_Connector_lem_stub DDS_Hello_Connector_stub DDS4CCM_lem_stub CIAO_DDS4CCM_NDDS_Impl DDS_Hello_Base_NDDS_TS
+ sharedname = DDS_Hello_Connector_exec
+ libs += DDS_Hello_Connector_stub DDS_Hello_Connector_lem_stub DDS_Hello_Base_stub CIAO_DDS4CCM_NDDS_Impl DDS4CCM_lem_stub DDS_Hello_Base_NDDS_TS
+ libpaths += ../lib
+ libout = ../lib
+ includes += ..
+ dynamicflags = HELLO_CONNECTOR_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Hello_Connector_exec.cpp
+ ../Base/Hello_Base.cxx
+ ../Base/Hello_BasePlugin.cxx
+ ../Base/Hello_BaseSupport.cxx
+
+ }
+
+ Header_Files {
+ Hello_Connector_exec.h
+ Hello_Connector_exec_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+
+project(DDS_Hello_Connector_svnt) : ciao_servant, dds4ccm_skel, nddslib {
+ after += DDS_Hello_Connector_lem_stub DDS_Hello_Connector_exec DDS_Hello_Connector_stub DDS4CCM_lem_stub
+ sharedname = DDS_Hello_Connector_svnt
+ libs += DDS_Hello_Connector_stub \
+ DDS_Hello_Connector_lem_stub \
+ DDS_Hello_Base_stub \
+ DDS_Hello_Connector_exec \
+ DDS4CCM_lem_stub
+ libpaths += ../lib
+ libout = ../lib
+ includes += ..
+ dynamicflags = HELLO_CONNECTOR_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Hello_ConnectorS.cpp
+ Hello_Connector_svnt.cpp
+ }
+
+ Header_Files {
+ Hello_ConnectorS.h
+ Hello_Connector_svnt.h
+ Hello_Connector_svnt_export.h
+ }
+
+ Inline_Files {
+ Hello_ConnectorS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Hello/Connector/Hello_Connector_exec.cpp b/modules/CIAO/connectors/dds4ccm/examples/Hello/Connector/Hello_Connector_exec.cpp
new file mode 100644
index 00000000000..2f06f1f1aa5
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Hello/Connector/Hello_Connector_exec.cpp
@@ -0,0 +1,30 @@
+// -*- C++ -*-
+// $Id$
+
+#include "Hello_Connector_exec.h"
+
+namespace CIAO_Hello_Hello_Connector_Impl
+{
+ Hello_Connector_exec_i::Hello_Connector_exec_i (const char * topic_name)
+ : Connector_T<DDSHello_DDS_Traits, DDSHello_Connector_Traits> (topic_name)
+ {
+ }
+
+ Hello_Connector_exec_i::~Hello_Connector_exec_i (void)
+ {
+ }
+
+ extern "C" HELLO_CONNECTOR_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Hello_Hello_Connector_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_NORETURN (
+ retval,
+ Hello_Connector_exec_i ("Default_Topic_Name")); //should be set by dep. plan.
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Hello/Connector/Hello_Connector_exec.h b/modules/CIAO/connectors/dds4ccm/examples/Hello/Connector/Hello_Connector_exec.h
new file mode 100644
index 00000000000..a50c75d6a64
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Hello/Connector/Hello_Connector_exec.h
@@ -0,0 +1,60 @@
+// -*- C++ -*-
+// $Id$
+
+#ifndef HELLO_CONNECTOR_EXEC_H_
+#define HELLO_CONNECTOR_EXEC_H_
+
+#include /**/ "ace/pre.h"
+
+#include "Hello_ConnectorEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include /**/ "Hello_Connector_exec_export.h"
+#include "tao/LocalObject.h"
+
+#include "dds4ccm/impl/ndds/NDDS_Traits.h"
+#include "dds4ccm/impl/ndds/Connector_T.h"
+
+#include "Base/Hello_BaseSupport.h"
+
+namespace CIAO_Hello_Hello_Connector_Impl
+{
+
+ // @from use of DDSHello as a parameter
+ typedef CIAO::DDS4CCM::RTI::Type_Traits <
+ DDSHello,
+ DDSHelloSeq,
+ DDSHelloTypeSupport,
+ DDSHelloDataWriter,
+ DDSHelloDataReader > DDSHello_DDS_Traits;
+
+ typedef Connector_Traits <
+ ::CIAO_Hello_Hello_Connector_Impl::Hello_Connector_Exec,
+ DDSHello_Seq,
+ ::CCM_DDS::CCM_DDSHello_Writer,
+ ::CCM_DDS::CCM_DDSHello_Updater,
+ ::CCM_DDS::CCM_DDSHello_Getter,
+ ::CCM_DDS::CCM_DDSHello_Reader,
+ ::Hello::CCM_Hello_Connector_Context,
+ ::CCM_DDS::DDSHello_RawListener,
+ ::CCM_DDS::ConnectorStatusListener> DDSHello_Connector_Traits;
+
+ class HELLO_CONNECTOR_EXEC_Export Hello_Connector_exec_i :
+ public Connector_T <DDSHello_DDS_Traits, DDSHello_Connector_Traits>
+ {
+ public:
+ Hello_Connector_exec_i (const char * topic_name);
+ virtual ~Hello_Connector_exec_i (void);
+ };
+
+ extern "C" HELLO_CONNECTOR_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Hello_Hello_Connector_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* ifndef */
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Hello/DDS_Receiver/DDS_Receiver.mpc b/modules/CIAO/connectors/dds4ccm/examples/Hello/DDS_Receiver/DDS_Receiver.mpc
new file mode 100644
index 00000000000..3d4fca6fc38
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Hello/DDS_Receiver/DDS_Receiver.mpc
@@ -0,0 +1,10 @@
+// $Id$
+
+project(*receiver) : nddslib, acelib {
+ exename = DDS_receiver
+
+ Source_Files {
+ Hello_Receiver.cpp
+ }
+}
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Hello/DDS_Receiver/Hello_Receiver.cpp b/modules/CIAO/connectors/dds4ccm/examples/Hello/DDS_Receiver/Hello_Receiver.cpp
new file mode 100644
index 00000000000..e4b26b81f31
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Hello/DDS_Receiver/Hello_Receiver.cpp
@@ -0,0 +1,169 @@
+// $Id$
+
+#include "ace/OS_main.h"
+#include "ace/Get_Opt.h"
+#include "ace/OS_NS_unistd.h"
+#include "ace/OS_NS_string.h"
+#include "ace/OS_NS_stdlib.h"
+#include "ace/Date_Time.h"
+#include "ace/SString.h"
+
+#include <ndds/ndds_namespace_cpp.h>
+
+/* By default DDS::String type manage strings up to 1k */
+#define MAX_STRING_SIZE 1024
+
+bool shutdown_flag = false;
+long num_samples = 0;
+long received_samples = 0;
+
+/* The listener of events and data from the middleware */
+class HelloListener: public ::DDS::DataReaderListener {
+public:
+ void on_data_available(::DDS::DataReader *reader);
+};
+
+
+int ACE_TMAIN(int argc, ACE_TCHAR** argv) {
+ HelloListener listener;
+ int main_result = 1; /* error by default */
+ ::DDS::Topic * topic = 0;
+ ::DDS::DataReader *data_reader = 0;
+
+ if (argc == 2)
+ {
+ char *end = 0;
+ num_samples = ACE_OS::strtol (argv[1], &end, 10);
+
+ if (end == argv[1] && num_samples < 0)
+ {
+ ACE_ERROR ((LM_ERROR, "Error: provided argument not a valid integer over zero\n"));
+ return -1;
+ }
+ }
+
+ /* Create the domain participant on domain ID 0 */
+ ::DDS::DomainParticipant *participant = ::DDS::DomainParticipantFactory::get_instance()->
+ create_participant(
+ 0, /* Domain ID */
+ DDS_PARTICIPANT_QOS_DEFAULT, /* QoS */
+ 0, /* Listener */
+ DDS_STATUS_MASK_NONE);
+ if (!participant) {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Unable to create domain participant.\n")));
+ goto clean_exit;
+ }
+
+ /* Create the topic "Hello, World" for the String type */
+ topic = participant->create_topic(
+ "Hello, World", /* Topic name*/
+ ::DDS::StringTypeSupport::get_type_name(), /* Type name */
+ DDS_TOPIC_QOS_DEFAULT, /* Topic QoS */
+ 0, /* Listener */
+ DDS_STATUS_MASK_NONE);
+ if (!topic) {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Unable to create topic.\n")));
+ goto clean_exit;
+ }
+
+ /* Create the data writer using the default publisher */
+ data_reader = participant->create_datareader(
+ topic,
+ DDS_DATAREADER_QOS_DEFAULT, /* QoS */
+ &listener, /* Listener */
+ DDS_DATA_AVAILABLE_STATUS);
+ if (!data_reader) {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Unable to create data reader.\n")));
+ goto clean_exit;
+ }
+
+ /* --- Sleep During Asynchronous Reception ---------------------------- */
+
+ /* This thread sleeps forever. When a sample is received, RTI Data
+ * Distribution Service will call the on_data_available_callback function.
+ */
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Ready to read data.\n")));
+ for (;;) {
+ ACE_OS::sleep (1);
+ if(shutdown_flag){
+ break;
+ }
+ }
+
+ /* --- Clean Up ------------------------------------------------------- */
+
+ main_result = 0;
+ clean_exit:
+ ::DDS::ReturnCode_t retcode;
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Exiting.")));
+ if (participant) {
+ retcode = participant->delete_contained_entities();
+ if (retcode != DDS_RETCODE_OK) {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Deletion failed.\n")));
+ main_result = 1;
+ }
+ retcode = ::DDS::DomainParticipantFactory::get_instance()->
+ delete_participant(participant);
+ if (retcode != DDS_RETCODE_OK) {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Deletion failed.\n")));
+ main_result = 1;
+ }
+ }
+
+ return main_result;
+}
+
+
+/* This method gets called back by DDS when one or more data samples have been
+ * received.
+ */
+void HelloListener::on_data_available(::DDS::DataReader *reader) {
+ /* Perform a safe type-cast from a generic data reader into a
+ * specific data reader for the type "DDS::String"
+ */
+ ::DDS::StringDataReader * string_reader = ::DDS::StringDataReader::narrow(reader);
+ if (!string_reader) {
+ /* In this specific case, this will never fail */
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("::DDS::StringDataReader::narrow failed.\n")));
+ return;
+ }
+
+ /* Loop until there are messages available in the queue */
+ char sample[MAX_STRING_SIZE];
+ char *ptr_sample = &sample[0];
+ for(;;) {
+ ::DDS::SampleInfo info;
+ ::DDS::ReturnCode_t retcode = string_reader->take_next_sample(
+ ptr_sample,
+ info);
+ if (retcode == DDS_RETCODE_NO_DATA) {
+ /* No more samples */
+ break;
+ } else if (retcode != DDS_RETCODE_OK) {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Unable to take data from data reader, error %d.\n"), retcode));
+ return;
+ }
+ if (info.valid_data) {
+ // Valid (this isn't just a lifecycle sample): print it
+ ++received_samples;
+ ACE_CString rec (sample);
+ ACE_Date_Time now;
+ int sec_rec = ACE_OS::atoi (rec.substr (0, 2).c_str() );
+ if (sec_rec > 0)
+ {
+ int usec_rec = ACE_OS::atoi (rec.substr (3, 6).c_str ());
+ if (sec_rec != now.second ())
+ usec_rec += 10000000;
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT("%C dur <%d>\n"), sample, now.microsec () - usec_rec));
+ }
+ else
+ {
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT("%C\n"), sample));
+ }
+ if(received_samples == num_samples || ACE_OS::strlen(sample) == 0){
+ shutdown_flag = true;
+ }
+ }
+ }
+}
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Hello/DDS_Sender/DDS_Sender.mpc b/modules/CIAO/connectors/dds4ccm/examples/Hello/DDS_Sender/DDS_Sender.mpc
new file mode 100644
index 00000000000..1471cf1bf44
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Hello/DDS_Sender/DDS_Sender.mpc
@@ -0,0 +1,10 @@
+// $Id$
+
+project(*sender) : nddslib, acelib {
+ exename = DDS_Sender
+
+ Source_Files {
+ Hello_Sender.cpp
+ }
+}
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Hello/DDS_Sender/Hello_Sender.cpp b/modules/CIAO/connectors/dds4ccm/examples/Hello/DDS_Sender/Hello_Sender.cpp
new file mode 100644
index 00000000000..c761e4e7b8f
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Hello/DDS_Sender/Hello_Sender.cpp
@@ -0,0 +1,151 @@
+// $Id$
+
+#include "ace/OS_main.h"
+#include "ace/Get_Opt.h"
+#include "ace/OS_NS_unistd.h"
+#include "ace/OS_NS_stdio.h"
+#include "ace/Date_Time.h"
+#include "ace/SString.h"
+#include <ndds/ndds_namespace_cpp.h>
+
+int number_of_iterations = 100;
+bool log_time = false;
+const char* send_string = "This is a DDS sender";
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("i:s:t"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 's':
+ send_string = ACE_TEXT_ALWAYS_CHAR (get_opts.opt_arg ());
+ break;
+ case 'i':
+ number_of_iterations = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+ case 't':
+ log_time = true;
+ break;
+
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s "
+ "-s <send string>"
+ "-i <number of iterations>"
+ "-t log timing"
+ "\n",
+ argv [0]),
+ -1);
+ }
+ // Indicates sucessful parsing of the command line
+ return 0;
+}
+
+int ACE_TMAIN(int argc, ACE_TCHAR* argv[]) {
+ ::DDS::ReturnCode_t retcode;
+ ::DDS::StringDataWriter *string_writer = 0;
+ ::DDS::Topic *topic = 0;
+ ::DDS::DataWriter *data_writer = 0;
+ int main_result = 1; /* error by default */
+
+ if (parse_args (argc, argv) != 0)
+ return 1;
+
+ ACE_Time_Value tv (0, 1000); //1 msec
+ /* Create the domain participant */
+ ::DDS::DomainParticipant *participant = ::DDS::DomainParticipantFactory::get_instance()->
+ create_participant(
+ 0, /* Domain ID */
+ DDS_PARTICIPANT_QOS_DEFAULT, /* QoS */
+ 0, /* Listener */
+ DDS_STATUS_MASK_NONE);
+ if (!participant) {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Unable to create domain participant.\n")));
+ goto clean_exit;
+ }
+
+ /* Create the topic "Hello, World" for the String type */
+ topic = participant->create_topic(
+ "Hello, World", /* Topic name*/
+ ::DDS::StringTypeSupport::get_type_name(), /* Type name */
+ DDS_TOPIC_QOS_DEFAULT, /* Topic QoS */
+ 0, /* Listener */
+ DDS_STATUS_MASK_NONE);
+ if (!topic) {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Unable to create topic.\n")));
+ goto clean_exit;
+ }
+
+ /* Create the data writer using the default publisher */
+ data_writer = participant->create_datawriter(
+ topic,
+ DDS_DATAWRITER_QOS_DEFAULT, /* QoS */
+ 0, /* Listener */
+ DDS_STATUS_MASK_NONE);
+ if (!data_writer) {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Unable to create data writer.\n")));
+ goto clean_exit;
+ }
+
+ /* Perform a safe type-cast from a generic data writer into a
+ * specific data writer for the type "DDS::String"
+ */
+ string_writer = ::DDS::StringDataWriter::narrow(data_writer);
+ if (!string_writer) {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("DDS_StringDataWriter_narrow failed.\n")));
+ /* In this specific case, this will never fail */
+ goto clean_exit;
+ }
+
+ // Sleep a couple seconds to allow discovery to happen
+ ACE_OS::sleep (1);
+
+ /* --- Write Data ----------------------------------------------------- */
+
+ for (int i = 0; i < number_of_iterations; i++)
+ {
+ ACE_TCHAR timestamp[16];
+ ACE_CString msg (send_string);
+ ACE_CString ret;
+ ACE_Date_Time now;
+ ACE_OS::sprintf (timestamp,
+ "%02d.%d",
+ now.second(),
+ now.microsec ());
+ ret.set (timestamp);
+ ret = ret + " " + msg;
+ retcode = string_writer->write(
+ ret.c_str (),
+ DDS_HANDLE_NIL);
+ if (retcode != DDS_RETCODE_OK)
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Write failed: %d.\n"), retcode));
+ //ACE_ERROR ((LM_ERROR, ACE_TEXT ("%C.\n"), ret.c_str()));
+ ACE_OS::sleep (tv);
+ }
+
+ /* --- Clean Up ------------------------------------------------------- */
+
+ main_result = 0;
+clean_exit:
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Exiting.")));
+ if (participant) {
+ retcode = participant->delete_contained_entities();
+ if (retcode != DDS_RETCODE_OK) {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Deletion failed.\n")));
+ main_result = 1;
+ }
+ retcode = ::DDS::DomainParticipantFactory::get_instance()->
+ delete_participant(participant);
+ if (retcode != DDS_RETCODE_OK) {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Deletion failed.\n")));
+ main_result = 1;
+ }
+ }
+ return main_result;
+}
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.idl b/modules/CIAO/connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.idl
new file mode 100644
index 00000000000..a738c8ad7d4
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.idl
@@ -0,0 +1,38 @@
+// $Id$
+
+/**
+ * @file
+ * @author Marcel Smit <msmit@remedy.nl>
+ */
+
+#ifndef HELLO_RECEIVER_IDL
+#define HELLO_RECEIVER_IDL
+
+#include "Connector/Hello_Connector.idl"
+#include "Connector/Hello_ConnectorE.idl"
+
+module Hello
+{
+ component Receiver
+ {
+ port CCM_DDS::DDS_Listen info_out;
+
+ attribute string name;
+ attribute unsigned long expected_samples;
+ };
+};
+
+/*
+For future use: IDL3 plus
+#include <dds4ccm/idl/dds4ccm_Connector_Base.idl3p>
+#include <dds4ccm/idl/dds4ccm_Port_RawListen.idl3p>
+
+module Hello
+{
+ component Receiver
+ {
+ port CCM_DDS::DDS_RawListen <DDSHello> info;
+ };
+};
+*/
+#endif
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.mpc b/modules/CIAO/connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.mpc
new file mode 100644
index 00000000000..298278bfa7d
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver.mpc
@@ -0,0 +1,138 @@
+// $Id$
+
+project(DDS_Hello_Receiver_idl_gen) : componentidldefaults {
+ custom_only = 1
+ after += DDS_Hello_Connector_idl_gen
+ idlflags += -Wb,stub_export_macro=HELLO_RECEIVER_STUB_Export \
+ -Wb,stub_export_include=Receiver_stub_export.h \
+ -Wb,skel_export_macro=HELLO_RECEIVER_SVNT_Export \
+ -Wb,skel_export_include=Receiver_svnt_export.h \
+ -Wb,svnt_export_macro=HELLO_RECEIVER_SVNT_Export \
+ -Wb,svnt_export_include=Receiver_svnt_export.h \
+ -Wb,exec_export_macro=HELLO_RECEIVER_EXEC_Export \
+ -Wb,exec_export_include=Receiver_exec_export.h -I..
+
+ IDL_Files {
+ Hello_Receiver.idl
+ }
+}
+
+project(DDS_Hello_Receiver_lem_gen) : ciaoidldefaults {
+ after += DDS_Hello_Receiver_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=HELLO_RECEIVER_LEM_STUB_Export \
+ -Wb,stub_export_include=Receiver_lem_stub_export.h \
+ -SS -Gxhst -I..
+
+ IDL_Files {
+ Hello_ReceiverE.idl
+ }
+}
+
+project(DDS_Hello_Receiver_lem_stub) : ccm_svnt, dds4ccm_base {
+ after += DDS_Hello_Receiver_lem_gen DDS_Hello_Receiver_stub DDS_Hello_Connector_stub DDS_Hello_Base_stub
+ libs += Receiver_stub DDS_Hello_Connector_stub DDS_Hello_Base_stub
+ libpaths += ../lib
+ libout = ../lib
+ includes += ..
+ sharedname = Receiver_lem_stub
+ dynamicflags = HELLO_RECEIVER_LEM_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Hello_ReceiverEC.cpp
+ }
+
+ Header_Files {
+ Hello_ReceiverEC.h
+ Hello_Receiver_lem_stub_export.h
+ }
+
+ Inline_Files {
+ Hello_ReceiverEC.inl
+ }
+}
+
+project(DDS_Hello_Receiver_stub) : ccm_stub, dds4ccm_base {
+ after += DDS_Hello_Receiver_idl_gen DDS_Hello_Connector_stub DDS_Hello_Base_stub DDS_Hello_Connector_lem_gen
+ libs += DDS_Hello_Connector_stub DDS_Hello_Base_stub
+ libpaths += ../lib
+ libout = ../lib
+ includes += ..
+ sharedname = Receiver_stub
+ dynamicflags = HELLO_RECEIVER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Hello_ReceiverC.cpp
+ }
+
+ Header_Files {
+ Hello_ReceiverC.h
+ Hello_Receiver_stub_export.h
+ }
+
+ Inline_Files {
+ Hello_ReceiverC.inl
+ }
+}
+
+project(DDS_Hello_Receiver_exec) : ciao_executor, dds4ccm_base {
+ after += DDS_Hello_Receiver_lem_stub DDS_Hello_Receiver_stub DDS_Hello_Base_stub DDS_Hello_Connector_stub DDS_Hello_Connector_lem_stub DDS4CCM_lem_stub
+ sharedname = Receiver_exec
+ libs += Receiver_stub Receiver_lem_stub DDS_Hello_Base_stub DDS_Hello_Connector_stub DDS_Hello_Connector_lem_stub DDS4CCM_lem_stub
+ libpaths += ../lib
+ libout = ../lib
+ includes += ..
+ dynamicflags = HELLO_RECEIVER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Hello_Receiver_exec.cpp
+ }
+
+ Header_Files {
+ Hello_Receiver_exec.h
+ Hello_Receiver_exec_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+
+project(DDS_Hello_Receiver_svnt) : ciao_servant, dds4ccm_base, nddslib {
+ after += DDS_Hello_Receiver_lem_stub DDS_Hello_Base_stub DDS_Hello_Connector_stub DDS_Hello_Connector_svnt DDS_Hello_Receiver_exec DDS_Hello_Connector_lem_stub DDS4CCM_lem_stub DDS4CCM_skel
+ sharedname = Receiver_svnt
+ libs += Receiver_stub Receiver_lem_stub DDS_Hello_Base_stub DDS_Hello_Connector_stub DDS_Hello_Connector_svnt Receiver_exec DDS_Hello_Connector_lem_stub DDS4CCM_lem_stub DDS4CCM_skel
+ libpaths += ../lib
+ libout = ../lib
+ includes += ..
+ dynamicflags = HELLO_RECEIVER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Hello_ReceiverS.cpp
+ Hello_Receiver_svnt.cpp
+ }
+
+ Header_Files {
+ Hello_ReceiverS.h
+ Hello_Receiver_svnt.h
+ Hello_Receiver_svnt_export.h
+ }
+
+ Inline_Files {
+ Hello_ReceiverS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp b/modules/CIAO/connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp
new file mode 100644
index 00000000000..4d73d614760
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.cpp
@@ -0,0 +1,217 @@
+// -*- C++ -*-
+//
+// $Id$
+
+#include "Hello_Receiver_exec.h"
+#include "ciao/Logger/Log_Macros.h"
+#include "tao/ORB_Core.h"
+#include "ace/Date_Time.h"
+
+namespace CIAO_Hello_Receiver_Impl
+{
+ //============================================================
+ // Facet Executor Implementation Class: DDSHello_RawListener_exec_i
+ //============================================================
+
+ DDSHello_RawListener_exec_i::DDSHello_RawListener_exec_i (Atomic_ULong &received,
+ const ACE_CString &name)
+ : received_ (received),
+ name_ (name)
+ {
+ }
+
+ DDSHello_RawListener_exec_i::~DDSHello_RawListener_exec_i (void)
+ {
+ }
+
+ // Operations from ::CCM_DDS::DDSHello_RawListener
+
+ void
+ DDSHello_RawListener_exec_i::on_data (
+ const DDSHello & an_instance ,
+ const ::CCM_DDS::ReadInfo & /* info */)
+ {
+
+ ++this->received_;
+ ACE_CString rec (an_instance.hello.in ());
+ ACE_Date_Time now;
+ int sec_rec = ACE_OS::atoi (rec.substr (0, 2).c_str() );
+ if (sec_rec > 0)
+ {
+ int usec_rec = ACE_OS::atoi (rec.substr (3, 6).c_str ());
+ if (sec_rec != now.second ())
+ usec_rec += 10000000;
+ CIAO_DEBUG ((LM_DEBUG, ACE_TEXT ("<%C> received <%C> - <%d>. difference <%d>\n"),
+ this->name_.c_str (),
+ an_instance.hello.in (),
+ an_instance.iterator,
+ now.microsec () - usec_rec));
+ }
+ else
+ {
+ CIAO_DEBUG ((LM_DEBUG, ACE_TEXT("<%C> received <%C> - <%d>.\n"),
+ this->name_.c_str (),
+ an_instance.hello.in (),
+ an_instance.iterator));
+ }
+/*
+ CIAO_DEBUG ((LM_DEBUG, ACE_TEXT ("DDSHello_RawListener: ")
+ ACE_TEXT ("received hello for <%C> - iterator <%d>\n"),
+ an_instance.hello.in (),
+ an_instance.iterator));
+*/
+ }
+ //============================================================
+ // Facet Executor Implementation Class: PortStatusListener_exec_i
+ //============================================================
+
+ PortStatusListener_exec_i::PortStatusListener_exec_i (Atomic_ULong &lost)
+ : lost_ (lost)
+ {
+ }
+
+ PortStatusListener_exec_i::~PortStatusListener_exec_i (void)
+ {
+ }
+
+ // Operations from ::CCM_DDS::PortStatusListener
+
+ void
+ PortStatusListener_exec_i::on_requested_deadline_missed (
+ ::DDS::DataReader_ptr /* the_reader */,
+ const ::DDS::RequestedDeadlineMissedStatus & /* status */)
+ {
+ /* Your code here. */
+ }
+
+ void
+ PortStatusListener_exec_i::on_sample_lost (
+ ::DDS::DataReader_ptr /* the_reader */,
+ const ::DDS::SampleLostStatus & /* status */)
+ {
+ ++this->lost_;
+ CIAO_DEBUG ((LM_ERROR, ACE_TEXT("port status listener::on_sample_lost\n")));
+ }
+
+ //============================================================
+ // Component Executor Implementation Class: Receiver_exec_iDDSHello_RawListener_exec_i ();
+ //============================================================
+
+ Receiver_exec_i::Receiver_exec_i (void)
+ : expected_ (100),
+ received_ (0),
+ lost_ (0)
+ {
+ }
+
+ Receiver_exec_i::~Receiver_exec_i (void)
+ {
+ }
+
+ ::CORBA::ULong
+ Receiver_exec_i::expected_samples (void)
+ {
+ return this->expected_;
+ }
+
+ void
+ Receiver_exec_i::expected_samples (::CORBA::ULong expected_samples)
+ {
+ this->expected_ = expected_samples;
+ }
+
+ char *
+ Receiver_exec_i::name (void)
+ {
+ return CORBA::string_dup (this->name_.c_str ());
+ }
+
+ void
+ Receiver_exec_i::name (const char *name)
+ {
+ this->name_ = name;
+ }
+
+ // Port operations.
+ ::CCM_DDS::CCM_DDSHello_RawListener_ptr
+ Receiver_exec_i::get_info_out_data_listener (void)
+ {
+ CIAO_DEBUG ((LM_DEBUG, ACE_TEXT ("new DDSHello RAW listener\n")));
+ return new DDSHello_RawListener_exec_i (this->received_, this->name_);
+ }
+
+ ::CCM_DDS::CCM_PortStatusListener_ptr
+ Receiver_exec_i::get_info_out_status (void)
+ {
+ CIAO_DEBUG ((LM_DEBUG, ACE_TEXT ("new PortStatuslistener\n")));
+ return new PortStatusListener_exec_i (this->lost_);
+ }
+
+ // Operations from Components::SessionComponent.
+ void
+ Receiver_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::Hello::CCM_Receiver_Context::_narrow (ctx);
+ if ( ::CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Receiver_exec_i::configuration_complete (void)
+ {
+ }
+
+ void
+ Receiver_exec_i::ccm_activate (void)
+ {
+ ::CCM_DDS::ListenerControl_var lc =
+ this->context_->get_connection_info_out_data_control ();
+
+ if (CORBA::is_nil (lc.in ()))
+ {
+ CIAO_ERROR ((LM_INFO, ACE_TEXT ("Error: Listener control receptacle is null!\n")));
+ throw CORBA::INTERNAL ();
+ }
+ lc->enabled (true);
+ }
+
+ void
+ Receiver_exec_i::ccm_passivate (void)
+ {
+ }
+
+ void
+ Receiver_exec_i::ccm_remove (void)
+ {
+ CIAO_DEBUG ((LM_INFO, "Receiver_exec_i received %u messages and lost %u messages\n",
+ this->received_.value (),
+ this->lost_.value ()));
+
+ if (this->received_ != this->expected_)
+ {
+ CIAO_ERROR ((LM_EMERGENCY, "Receiver_exec_i: Warning: Expected to receive %u messages, actually got %u\n",
+ this->expected_, this->received_.value ()));
+ }
+ }
+
+ extern "C" HELLO_RECEIVER_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Hello_Receiver_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_NORETURN (
+ retval,
+ Receiver_exec_i);
+
+ return retval;
+ }
+}
+
+
+
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.h b/modules/CIAO/connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.h
new file mode 100644
index 00000000000..fb7e29ed476
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Hello/Receiver/Hello_Receiver_exec.h
@@ -0,0 +1,151 @@
+// -*- C++ -*-
+//
+// $Id$
+
+/**
+ * Code generated by the The ACE ORB (TAO) IDL Compiler v1.7.3
+ * 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:1217
+
+#ifndef HELLO_RECEIVER_EXEC_H_
+#define HELLO_RECEIVER_EXEC_H_
+
+
+#include "Hello_ReceiverEC.h"
+
+#include /**/ "Receiver_exec_export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "tao/LocalObject.h"
+
+namespace CIAO_Hello_Receiver_Impl
+{
+ typedef ACE_Atomic_Op <TAO_SYNCH_MUTEX, CORBA::ULong > Atomic_ULong;
+
+ class HELLO_RECEIVER_EXEC_Export DDSHello_RawListener_exec_i
+ : public virtual ::CCM_DDS::CCM_DDSHello_RawListener,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ DDSHello_RawListener_exec_i (Atomic_ULong &,
+ const ACE_CString &);
+ virtual ~DDSHello_RawListener_exec_i (void);
+
+ // Operations and attributes from ::CCM_DDS::DDSHello_RawListener
+
+ // TAO_IDL - Generated from
+ // be/be_visitor_operation/operation_ch.cpp:46
+
+ virtual void
+ on_data (
+ const DDSHello & an_instance,
+ const ::CCM_DDS::ReadInfo & info);
+ private:
+ Atomic_ULong &received_;
+ const ACE_CString &name_;
+ };
+
+ class HELLO_RECEIVER_EXEC_Export PortStatusListener_exec_i
+ : public virtual ::CCM_DDS::CCM_PortStatusListener,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ PortStatusListener_exec_i (Atomic_ULong &);
+ virtual ~PortStatusListener_exec_i (void);
+
+ // Operations and attributes from ::CCM_DDS::PortStatusListener
+
+ // TAO_IDL - Generated from
+ // be/be_visitor_operation/operation_ch.cpp:46
+
+ virtual void
+ on_requested_deadline_missed (
+ ::DDS::DataReader_ptr the_reader,
+ const ::DDS::RequestedDeadlineMissedStatus & status);
+
+ // TAO_IDL - Generated from
+ // be/be_visitor_operation/operation_ch.cpp:46
+
+ virtual void
+ on_sample_lost (
+ ::DDS::DataReader_ptr the_reader,
+ const ::DDS::SampleLostStatus & status);
+ private:
+ Atomic_ULong &lost_;
+ };
+
+ class HELLO_RECEIVER_EXEC_Export Receiver_exec_i
+ : public virtual Receiver_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Receiver_exec_i (void);
+ virtual ~Receiver_exec_i (void);
+
+ // Supported operations and attributes.
+ // Port operations.
+
+ virtual ::CORBA::ULong expected_samples (void);
+ virtual void expected_samples (::CORBA::ULong expected_samples);
+
+ virtual char * name (void);
+ virtual void name (const char *name);
+
+ virtual ::CCM_DDS::CCM_DDSHello_RawListener_ptr
+ get_info_out_data_listener (void);
+
+ virtual ::CCM_DDS::CCM_PortStatusListener_ptr
+ get_info_out_status (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:
+ ::Hello::CCM_Receiver_Context_var context_;
+ CORBA::ULong expected_;
+ Atomic_ULong received_;
+ Atomic_ULong lost_;
+ ACE_CString name_;
+ };
+
+ extern "C" HELLO_RECEIVER_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Hello_Receiver_Impl (void);
+}
+
+#endif /* ifndef */
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.idl b/modules/CIAO/connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.idl
new file mode 100644
index 00000000000..7d2f700ebbc
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.idl
@@ -0,0 +1,38 @@
+// $Id$
+
+/**
+ * @file
+ * @author Marcel Smit <msmit@remedy.nl>
+ *
+ * by-hand idl3 translation of sender components.
+ */
+
+#ifndef DDS_SENDER_IDL
+#define DDS_SENDER_IDL
+
+#include "Connector/Hello_Connector.idl"
+#include "Connector/Hello_ConnectorE.idl"
+
+module Hello
+{
+ component Sender
+ {
+ port CCM_DDS::DDS_Write info_in;
+ attribute unsigned long rate;
+ attribute unsigned long iterations;
+ attribute string message;
+ attribute boolean log_time;
+ };
+};
+
+/*
+For future use: IDL3 plus
+module Hello
+{
+ component Sender
+ {
+ port CCM_DDS::DDS_Write <DDSHello> info;
+ };
+};
+*/
+#endif
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.mpc b/modules/CIAO/connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.mpc
new file mode 100644
index 00000000000..b23d4d2dce0
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Hello/Sender/Hello_Sender.mpc
@@ -0,0 +1,139 @@
+// $Id$
+
+project(DDS_Hello_Sender_idl_gen) : componentidldefaults {
+ after += DDS_Hello_Connector_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=HELLO_SENDER_STUB_Export \
+ -Wb,stub_export_include=Sender_stub_export.h \
+ -Wb,skel_export_macro=HELLO_SENDER_SVNT_Export \
+ -Wb,skel_export_include=Sender_svnt_export.h \
+ -Wb,svnt_export_macro=HELLO_SENDER_SVNT_Export \
+ -Wb,svnt_export_include=Sender_svnt_export.h \
+ -Wb,exec_export_macro=HELLO_SENDER_EXEC_Export \
+ -Wb,exec_export_include=Sender_exec_export.h \
+ -I ..
+
+ IDL_Files {
+ Hello_Sender.idl
+ }
+}
+
+project(DDS_Hello_Sender_lem_gen) : ciaoidldefaults {
+ after += DDS_Hello_Sender_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=HELLO_SENDER_LEM_STUB_Export \
+ -Wb,stub_export_include=Sender_lem_stub_export.h \
+ -SS -Gxhst -I $CIAO_ROOT/connectors -I ..
+
+ IDL_Files {
+ Hello_SenderE.idl
+ }
+}
+
+project(DDS_Hello_Sender_lem_stub) : ccm_svnt, dds4ccm_base {
+ after += DDS_Hello_Sender_lem_gen DDS_Hello_Sender_stub DDS_Hello_Base_stub
+ libs += DDS_Hello_Base_stub Sender_stub
+ libpaths += ../lib
+ libout = ../lib
+ includes += ..
+ sharedname = Sender_lem_stub
+ dynamicflags = HELLO_SENDER_LEM_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Hello_SenderEC.cpp
+ }
+
+ Header_Files {
+ Hello_SenderEC.h
+ Sender_lem_stub_export.h
+ }
+
+ Inline_Files {
+ Hello_SenderEC.inl
+ }
+}
+
+project(DDS_Hello_Sender_stub) : ccm_stub, dds4ccm_base {
+ after += DDS_Hello_Sender_idl_gen DDS_Hello_Base_stub DDS_Hello_Connector_stub
+ libs += DDS_Hello_Base_stub DDS_Hello_Connector_stub
+ includes += ..
+ libpaths += ../lib
+ libout = ../lib
+ sharedname = Sender_stub
+ dynamicflags = HELLO_SENDER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Hello_SenderC.cpp
+ }
+
+ Header_Files {
+ Hello_SenderC.h
+ Sender_stub_export.h
+ }
+
+ Inline_Files {
+ Hello_SenderC.inl
+ }
+}
+
+project(DDS_Hello_Sender_exec) : ciao_executor, dds4ccm_base {
+ after += DDS_Hello_Sender_lem_stub DDS_Hello_Sender_stub DDS_Hello_Connector_lem_stub DDS_Hello_Connector_stub
+ sharedname = Sender_exec
+ libs += Sender_stub Sender_lem_stub DDS_Hello_Base_stub DDS_Hello_Connector_lem_stub DDS_Hello_Connector_stub
+ libpaths += ../lib
+ includes += ..
+ libout = ../lib
+ dynamicflags = HELLO_SENDER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Hello_Sender_exec.cpp
+ }
+
+ Header_Files {
+ Hello_Sender_exec.h
+ Sender_exec_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+
+project(DDS_Hello_Sender_svnt) : ciao_servant, dds4ccm_base, nddslib {
+ after += DDS_Hello_Base_stub DDS_Hello_Sender_lem_stub DDS4CCM_lem_stub DDS4CCM_skel DDS_Hello_Connector_stub DDS_Hello_Connector_svnt DDS_Hello_Connector_lem_stub
+ sharedname = Sender_svnt
+ libs += Sender_stub Sender_lem_stub \
+ DDS_Hello_Base_stub DDS4CCM_lem_stub DDS4CCM_skel DDS_Hello_Connector_stub DDS_Hello_Connector_svnt DDS_Hello_Connector_lem_stub
+ libpaths += ../lib
+ libout = ../lib
+ includes += ..
+ dynamicflags = HELLO_SENDER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Hello_SenderS.cpp
+ Hello_Sender_svnt.cpp
+ }
+
+ Header_Files {
+ Hello_SenderS.h
+ Hello_Sender_svnt.h
+ Sender_svnt_export.h
+ }
+
+ Inline_Files {
+ Hello_SenderS.inl
+ }
+}
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp b/modules/CIAO/connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp
new file mode 100644
index 00000000000..207d9e12e66
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.cpp
@@ -0,0 +1,212 @@
+// -*- C++ -*-
+// $Id$
+
+#include "Hello_Sender_exec.h"
+#include "ace/Guard_T.h"
+#include "ciao/Logger/Log_Macros.h"
+#include "tao/ORB_Core.h"
+#include "ace/Date_Time.h"
+#include "ace/OS_NS_unistd.h"
+
+namespace CIAO_Hello_Sender_Impl
+{
+ //============================================================
+ // Pulse generator
+ //============================================================
+
+ pulse_Generator::pulse_Generator (Sender_exec_i &callback)
+ : pulse_callback_ (callback)
+ {
+ }
+
+ pulse_Generator::~pulse_Generator ()
+ {
+ }
+
+ int
+ pulse_Generator::handle_timeout (const ACE_Time_Value &,
+ const void *)
+ {
+ // Notify the subscribers
+ this->pulse_callback_.tick ();
+ return 0;
+ }
+
+ //============================================================
+ // Component Executor Implementation Class: Sender_exec_i
+ //============================================================
+
+ Sender_exec_i::Sender_exec_i (void)
+ : rate_ (1),
+ iteration_ (0),
+ iterations_ (1000),
+ log_time_ (false),
+ msg_ ("Hello World!")
+ {
+ this->ticker_ = new pulse_Generator (*this);
+ }
+
+ Sender_exec_i::~Sender_exec_i (void)
+ {
+ }
+
+ // Supported operations and attributes.
+ ACE_CString Sender_exec_i::create_message (const ACE_CString &msg)
+ {
+ if (!this->log_time_)
+ return msg;
+ char timestamp[16];
+ ACE_Date_Time now;
+ ACE_OS::sprintf (timestamp,
+ "%02d.%06d",
+ now.second(),
+ now.microsec ());
+ ACE_CString ret (timestamp);
+ ret = ret + " " + msg;
+ return ret.c_str ();
+ }
+
+ void
+ Sender_exec_i::tick ()
+ {
+ if (this->iteration_ == 0)
+ ACE_OS::sleep (1);
+ if (this->iteration_ < this->iterations_)
+ {
+ DDSHello * new_msg = new DDSHello();
+ ACE_CString msg = create_message (this->msg_);
+ new_msg->hello = msg.c_str ();
+ new_msg->iterator = ++this->iteration_;
+ this->writer_->write (*new_msg);
+ }
+ else
+ { //we're done
+ this->context_->get_CCM_object()->_get_orb ()->orb_core ()->reactor ()->cancel_timer (this->ticker_);
+ }
+ }
+
+ void
+ Sender_exec_i::start (void)
+ {
+ // calculate the interval time
+ long usec = 1000000 / this->rate_;
+ if (this->context_->get_CCM_object()->_get_orb ()->orb_core ()->reactor ()->schedule_timer (
+ this->ticker_,
+ 0,
+ ACE_Time_Value (0, usec),
+ ACE_Time_Value (0, usec)) == -1)
+ {
+ CIAO_ERROR ((LM_ERROR, ACE_TEXT ("Sender_exec_i::start : ")
+ ACE_TEXT ("Error scheduling timer")));
+ }
+ }
+
+ void
+ Sender_exec_i::stop (void)
+ {
+ this->context_->get_CCM_object()->_get_orb ()->orb_core ()->reactor ()->cancel_timer (this->ticker_);
+ CIAO_DEBUG ((LM_DEBUG, ACE_TEXT ("Sender_exec_i::stop : Timer canceled.\n")));
+ delete this->ticker_;
+ }
+
+ // Component attributes.
+ ::CORBA::ULong
+ Sender_exec_i::iterations (void)
+ {
+ return this->iterations_;
+ }
+
+ void
+ Sender_exec_i::iterations (::CORBA::ULong iterations)
+ {
+ this->iterations_ = iterations;
+ }
+
+ char *
+ Sender_exec_i::message (void)
+ {
+ return CORBA::string_dup (this->msg_.c_str());
+ }
+ void
+ Sender_exec_i::message (const char *msg)
+ {
+ this->msg_ = msg;
+ }
+
+ ::CORBA::Boolean
+ Sender_exec_i::log_time (void)
+ {
+ return this->log_time_;
+ }
+
+ void
+ Sender_exec_i::log_time (::CORBA::Boolean log_time)
+ {
+ this->log_time_ = log_time;
+ }
+
+ ::CORBA::ULong
+ Sender_exec_i::rate (void)
+ {
+ return this->rate_;
+ }
+
+ void
+ Sender_exec_i::rate (::CORBA::ULong rate)
+ {
+ this->rate_ = rate;
+ }
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent.
+ void
+ Sender_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::Hello::CCM_Sender_Context::_narrow (ctx);
+
+ if ( ::CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Sender_exec_i::configuration_complete (void)
+ {
+ this->writer_ = this->context_->get_connection_info_in_data ();
+ }
+
+ void
+ Sender_exec_i::ccm_activate (void)
+ {
+ this->start ();
+ }
+
+ void
+ Sender_exec_i::ccm_passivate (void)
+ {
+ this->stop ();
+ }
+
+ void
+ Sender_exec_i::ccm_remove (void)
+ {
+ }
+
+ extern "C" HELLO_SENDER_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Hello_Sender_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_NORETURN (
+ retval,
+ Sender_exec_i);
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.h b/modules/CIAO/connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.h
new file mode 100644
index 00000000000..537901d3d43
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Hello/Sender/Hello_Sender_exec.h
@@ -0,0 +1,113 @@
+// -*- C++ -*-
+// $Id$
+
+#ifndef HELLO_SENDER_EXEC_H_
+#define HELLO_SENDER_EXEC_H_
+
+
+#include "Hello_SenderEC.h"
+
+#include /**/ "Sender_exec_export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "tao/LocalObject.h"
+#include "ace/Task.h"
+#include "ace/Reactor.h"
+
+#include <map>
+
+namespace CIAO_Hello_Sender_Impl
+{
+ class Sender_exec_i;
+
+ class pulse_Generator :
+ public ACE_Event_Handler
+ {
+ public:
+ pulse_Generator (Sender_exec_i &callback);
+
+ ~pulse_Generator ();
+
+ /// Handle the timeout.
+ virtual int handle_timeout (const ACE_Time_Value &tv,
+ const void *arg);
+ private:
+ /// Maintains a handle that actually process the event
+ Sender_exec_i &pulse_callback_;
+ };
+
+ class Sender_exec_i
+ : public virtual Sender_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Sender_exec_i (void);
+ virtual ~Sender_exec_i (void);
+
+ // Supported operations and attributes.
+
+ // TAO_IDL - Generated from
+ // be/be_visitor_operation/operation_ch.cpp:46
+
+ void start (void);
+
+ // TAO_IDL - Generated from
+ // be/be_visitor_operation/operation_ch.cpp:46
+
+ void stop (void);
+
+ void tick ();
+
+ // Component attributes.
+ virtual ::CORBA::ULong iterations (void);
+
+ virtual void iterations (CORBA::ULong iterations);
+
+ virtual char * message (void);
+
+ virtual void message (const char *message);
+
+ virtual ::CORBA::Boolean log_time (void);
+
+ virtual void log_time (::CORBA::Boolean log_time);
+
+ virtual ::CORBA::ULong rate (void);
+
+ virtual void rate (::CORBA::ULong rate);
+
+ // 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:
+ ::Hello::CCM_Sender_Context_var context_;
+ CCM_DDS::DDSHello_Writer_var writer_;
+ pulse_Generator * ticker_;
+ CORBA::ULong rate_;
+ CORBA::ULong iteration_, iterations_;
+ CORBA::Boolean log_time_;
+ ACE_CString msg_;
+
+ ACE_CString create_message (
+ const ACE_CString &msg);
+ };
+
+ extern "C" HELLO_SENDER_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Hello_Sender_Impl (void);
+}
+
+#endif /* ifndef */
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/1_to_5.cdp b/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/1_to_5.cdp
new file mode 100644
index 00000000000..e85e3b367b6
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/1_to_5.cdp
@@ -0,0 +1,954 @@
+<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_Depl_1</label>
+ <UUID>Hello_Depl_1</UUID>
+
+ <implementation xmi:id="Hello_ReceiverComponentImplementation">
+ <name>ReceiverComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Receiver_ExecArtifact" />
+ <artifact xmi:idref="Receiver_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Receiver_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Receiver_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="Hello_ConnectorComponentImplementation">
+ <name>Hello_ConnectorComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Hello_Connector_ExecArtifact" />
+ <artifact xmi:idref="Hello_Connector_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Hello_Connector_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Hello_Connector_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_Connector_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_Connector_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+ <implementation xmi:id="SenderComponentImplementation">
+ <name>SenderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Sender_ExecArtifact" />
+ <artifact xmi:idref="Sender_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Sender_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Sender_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <instance xmi:id="Hello_ReceiverComponentInstanceOne">
+ <name>Hello_ReceiverComponentOne</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ReceiverComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverOne.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverOne</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverOne</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="Hello_ReceiverConnectorComponentInstanceOne">
+ <name>Hello_ReceiverConnectorComponentOne</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ConnectorComponentImplementation" />
+ <configProperty>
+ <name>topic_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>DDS_Hello</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverConnectorOne.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverConnectorOne</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+ <instance xmi:id="Hello_ReceiverComponentInstanceTwo">
+ <name>Hello_ReceiverComponentTwo</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ReceiverComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverTwo.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverTwo</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverTwo</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="Hello_ReceiverConnectorComponentInstanceTwo">
+ <name>Hello_ReceiverConnectorComponentTwo</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ConnectorComponentImplementation" />
+ <configProperty>
+ <name>topic_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>DDS_Hello</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverConnectorTwo.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverConnectorTwo</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+ <instance xmi:id="Hello_ReceiverComponentInstanceThree">
+ <name>Hello_ReceiverComponentThree</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ReceiverComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverThree.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverThree</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverThree</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="Hello_ReceiverConnectorComponentInstanceThree">
+ <name>Hello_ReceiverConnectorComponentThree</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ConnectorComponentImplementation" />
+ <configProperty>
+ <name>topic_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>DDS_Hello</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverConnectorThree.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverConnectorThree</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+ <instance xmi:id="Hello_ReceiverComponentInstanceFour">
+ <name>Hello_ReceiverComponentFour</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ReceiverComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverFour.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverFour</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverFour</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="Hello_ReceiverConnectorComponentInstanceFour">
+ <name>Hello_ReceiverConnectorComponentFour</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ConnectorComponentImplementation" />
+ <configProperty>
+ <name>topic_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>DDS_Hello</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverConnectorFour.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverConnectorFour</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+ <instance xmi:id="Hello_ReceiverComponentInstanceFive">
+ <name>Hello_ReceiverComponentFive</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ReceiverComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverFive.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverFive</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverFive</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="Hello_ReceiverConnectorComponentInstanceFive">
+ <name>Hello_ReceiverConnectorComponentFive</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ConnectorComponentImplementation" />
+ <configProperty>
+ <name>topic_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>DDS_Hello</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverConnectorFive.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverConnectorFive</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+
+ <instance xmi:id="Hello_SenderConnectorComponentInstance">
+ <name>Hello_SenderConnectorComponent</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ConnectorComponentImplementation" />
+ <configProperty>
+ <name>topic_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>DDS_Hello</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+ <instance xmi:id="SenderComponentInstance">
+ <name>SenderComponent</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SenderComponentImplementation" />
+ <configProperty>
+ <name>rate</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>10</long>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>iterations</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>100</long>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>message</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello, World via DDS</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>log_time</name>
+ <value>
+ <type>
+ <kind>tk_boolean</kind>
+ </type>
+ <value>
+ <boolean>true</boolean>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>info_write_data</name>
+ <internalEndpoint>
+ <portName>info_in_data</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="SenderComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_in_data</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_SenderConnectorComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>_listenercontrolOne</name>
+ <internalEndpoint>
+ <portName>info_out_data_control</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstanceOne" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_data_control</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_ReceiverConnectorComponentInstanceOne" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_listenercontrolTwo</name>
+ <internalEndpoint>
+ <portName>info_out_data_control</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstanceTwo" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_data_control</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_ReceiverConnectorComponentInstanceTwo" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_listenercontrolThree</name>
+ <internalEndpoint>
+ <portName>info_out_data_control</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstanceThree" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_data_control</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_ReceiverConnectorComponentInstanceThree" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_listenercontrolFour</name>
+ <internalEndpoint>
+ <portName>info_out_data_control</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstanceFour" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_data_control</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_ReceiverConnectorComponentInstanceFour" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_listenercontrolFive</name>
+ <internalEndpoint>
+ <portName>info_out_data_control</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstanceFive" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_data_control</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_ReceiverConnectorComponentInstanceFive" />
+ </internalEndpoint>
+ </connection>
+
+
+
+
+ <connection>
+ <name>_portstatuslistenerOne</name>
+ <internalEndpoint>
+ <portName>info_out_status</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstanceOne" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_status</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverConnectorComponentInstanceOne" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_portstatuslistenerTwo</name>
+ <internalEndpoint>
+ <portName>info_out_status</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstanceTwo" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_status</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverConnectorComponentInstanceTwo" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_portstatuslistenerThree</name>
+ <internalEndpoint>
+ <portName>info_out_status</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstanceThree" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_status</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverConnectorComponentInstanceThree" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_portstatuslistenerFour</name>
+ <internalEndpoint>
+ <portName>info_out_status</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstanceFour" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_status</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverConnectorComponentInstanceFour" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_portstatuslistenerFive</name>
+ <internalEndpoint>
+ <portName>info_out_status</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstanceFive" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_status</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverConnectorComponentInstanceFive" />
+ </internalEndpoint>
+ </connection>
+
+
+
+
+ <connection>
+ <name>_rawlistnerOne</name>
+ <internalEndpoint>
+ <portName>info_out_data_listener</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstanceOne" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_data_listener</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverConnectorComponentInstanceOne" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_rawlistnerTwo</name>
+ <internalEndpoint>
+ <portName>info_out_data_listener</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstanceTwo" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_data_listener</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverConnectorComponentInstanceTwo" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_rawlistnerThree</name>
+ <internalEndpoint>
+ <portName>info_out_data_listener</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstanceThree" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_data_listener</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverConnectorComponentInstanceThree" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_rawlistnerFour</name>
+ <internalEndpoint>
+ <portName>info_out_data_listener</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstanceFour" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_data_listener</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverConnectorComponentInstanceFour" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_rawlistnerFive</name>
+ <internalEndpoint>
+ <portName>info_out_data_listener</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstanceFive" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_data_listener</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverConnectorComponentInstanceFive" />
+ </internalEndpoint>
+ </connection>
+
+ <artifact xmi:id="Sender_ExecArtifact">
+ <name>Sender_exec</name>
+ <source/>
+ <node/>
+ <location>Sender_exec</location>
+ </artifact>
+ <artifact xmi:id="Sender_SvntArtifact">
+ <name>Sender_svnt</name>
+ <source/>
+ <node/>
+ <location>Sender_svnt</location>
+ </artifact>
+ <artifact xmi:id="Sender_StubArtifact">
+ <name>Sender_stub</name>
+ <source/>
+ <node/>
+ <location>Sender_stub</location>
+ </artifact>
+ <artifact xmi:id="Hello_Connector_ExecArtifact">
+ <name>Hello_Connector_exec</name>
+ <source/>
+ <node/>
+ <location>DDS_Hello_Connector_exec</location>
+ </artifact>
+ <artifact xmi:id="Hello_Connector_SvntArtifact">
+ <name>Hello_Connector_svnt</name>
+ <source/>
+ <node/>
+ <location>DDS_Hello_Connector_svnt</location>
+ </artifact>
+ <artifact xmi:id="Hello_Connector_StubArtifact">
+ <name>Hello_Connector_stub</name>
+ <source/>
+ <node/>
+ <location>DDS_Hello_Connector_stub</location>
+ </artifact>
+ <artifact xmi:id="Receiver_ExecArtifact">
+ <name>Receiver_exec</name>
+ <source/>
+ <node/>
+ <location>Receiver_exec</location>
+ </artifact>
+ <artifact xmi:id="Receiver_SvntArtifact">
+ <name>Receiver_svnt</name>
+ <source/>
+ <node/>
+ <location>Receiver_svnt</location>
+ </artifact>
+ <artifact xmi:id="Receiver_StubArtifact">
+ <name>Receiver_stub</name>
+ <source/>
+ <node/>
+ <location>Receiver_stub</location>
+ </artifact>
+</Deployment:DeploymentPlan>
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/5_Receivers.cdp b/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/5_Receivers.cdp
new file mode 100644
index 00000000000..11199c97390
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/5_Receivers.cdp
@@ -0,0 +1,981 @@
+<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_5_Receivers</label>
+ <UUID>Hello_DDS_Deployment_5_Receivers</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="Hello_ReceiverComponentImplementation">
+ <name>ReceiverComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Receiver_ExecArtifact" />
+ <artifact xmi:idref="Receiver_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Receiver_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Receiver_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="Hello_ReceiverConnectorComponentImplementation">
+ <name>Hello_ConnectorComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Hello_Connector_ExecArtifact" />
+ <artifact xmi:idref="Hello_Connector_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Hello_Connector_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Hello_Connector_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_Connector_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_Connector_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+ <implementation xmi:id="SenderComponentImplementation">
+ <name>SenderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Sender_ExecArtifact" />
+ <artifact xmi:idref="Sender_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Sender_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Sender_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <instance xmi:id="Hello_ReceiverComponentInstanceOne">
+ <name>Hello_ReceiverComponentOne</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ReceiverComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_ReceiverHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverOne.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverOne</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverOne</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>expected_samples</name>
+ <value>
+ <type>
+ <kind>tk_ulong</kind>
+ </type>
+ <value>
+ <ulong>500</ulong>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="Hello_ReceiverConnectorComponentInstanceOne">
+ <name>Hello_ReceiverConnectorComponentOne</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ReceiverConnectorComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_ReceiverConnectorHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverConnectorOne.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverConnectorOne</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+ <instance xmi:id="Hello_ReceiverComponentInstanceTwo">
+ <name>Hello_ReceiverComponentTwo</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ReceiverComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_ReceiverHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverTwo.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverTwo</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverTwo</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>expected_samples</name>
+ <value>
+ <type>
+ <kind>tk_ulong</kind>
+ </type>
+ <value>
+ <ulong>500</ulong>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="Hello_ReceiverConnectorComponentInstanceTwo">
+ <name>Hello_ReceiverConnectorComponentTwo</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ReceiverConnectorComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_ReceiverConnectorHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverConnectorTwo.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverConnectorTwo</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+ <instance xmi:id="Hello_ReceiverComponentInstanceThree">
+ <name>Hello_ReceiverComponentThree</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ReceiverComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_ReceiverHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverThree.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverThree</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverThree</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>expected_samples</name>
+ <value>
+ <type>
+ <kind>tk_ulong</kind>
+ </type>
+ <value>
+ <ulong>500</ulong>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="Hello_ReceiverConnectorComponentInstanceThree">
+ <name>Hello_ReceiverConnectorComponentThree</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ReceiverConnectorComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_ReceiverConnectorHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverConnectorThree.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverConnectorThree</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+ <instance xmi:id="Hello_ReceiverComponentInstanceFour">
+ <name>Hello_ReceiverComponentFour</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ReceiverComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_ReceiverHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverFour.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverFour</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverFour</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>expected_samples</name>
+ <value>
+ <type>
+ <kind>tk_ulong</kind>
+ </type>
+ <value>
+ <ulong>500</ulong>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="Hello_ReceiverConnectorComponentInstanceFour">
+ <name>Hello_ReceiverConnectorComponentFour</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ReceiverConnectorComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_ReceiverConnectorHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverConnectorFour.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverConnectorFour</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+ <instance xmi:id="Hello_ReceiverComponentInstanceFive">
+ <name>Hello_ReceiverComponentFive</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ReceiverComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_ReceiverHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverFive.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverFive</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverFive</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>expected_samples</name>
+ <value>
+ <type>
+ <kind>tk_ulong</kind>
+ </type>
+ <value>
+ <ulong>500</ulong>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="Hello_ReceiverConnectorComponentInstanceFive">
+ <name>Hello_ReceiverConnectorComponentFive</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ReceiverConnectorComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_ReceiverConnectorHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverConnectorFive.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverConnectorFive</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>_listenercontrolOne</name>
+ <internalEndpoint>
+ <portName>info_out_data_control</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstanceOne" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_data_control</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_ReceiverConnectorComponentInstanceOne" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_listenercontrolTwo</name>
+ <internalEndpoint>
+ <portName>info_out_data_control</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstanceTwo" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_data_control</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_ReceiverConnectorComponentInstanceTwo" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_listenercontrolThree</name>
+ <internalEndpoint>
+ <portName>info_out_data_control</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstanceThree" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_data_control</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_ReceiverConnectorComponentInstanceThree" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_listenercontrolFour</name>
+ <internalEndpoint>
+ <portName>info_out_data_control</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstanceFour" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_data_control</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_ReceiverConnectorComponentInstanceFour" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_listenercontrolFive</name>
+ <internalEndpoint>
+ <portName>info_out_data_control</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstanceFive" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_data_control</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_ReceiverConnectorComponentInstanceFive" />
+ </internalEndpoint>
+ </connection>
+
+
+
+
+ <connection>
+ <name>_portstatuslistenerOne</name>
+ <internalEndpoint>
+ <portName>info_out_status</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstanceOne" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_status</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverConnectorComponentInstanceOne" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_portstatuslistenerTwo</name>
+ <internalEndpoint>
+ <portName>info_out_status</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstanceTwo" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_status</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverConnectorComponentInstanceTwo" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_portstatuslistenerThree</name>
+ <internalEndpoint>
+ <portName>info_out_status</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstanceThree" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_status</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverConnectorComponentInstanceThree" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_portstatuslistenerFour</name>
+ <internalEndpoint>
+ <portName>info_out_status</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstanceFour" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_status</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverConnectorComponentInstanceFour" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_portstatuslistenerFive</name>
+ <internalEndpoint>
+ <portName>info_out_status</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstanceFive" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_status</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverConnectorComponentInstanceFive" />
+ </internalEndpoint>
+ </connection>
+
+
+
+
+ <connection>
+ <name>_rawlistnerOne</name>
+ <internalEndpoint>
+ <portName>info_out_data_listener</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstanceOne" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_data_listener</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverConnectorComponentInstanceOne" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_rawlistnerTwo</name>
+ <internalEndpoint>
+ <portName>info_out_data_listener</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstanceTwo" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_data_listener</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverConnectorComponentInstanceTwo" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_rawlistnerThree</name>
+ <internalEndpoint>
+ <portName>info_out_data_listener</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstanceThree" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_data_listener</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverConnectorComponentInstanceThree" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_rawlistnerFour</name>
+ <internalEndpoint>
+ <portName>info_out_data_listener</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstanceFour" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_data_listener</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverConnectorComponentInstanceFour" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_rawlistnerFive</name>
+ <internalEndpoint>
+ <portName>info_out_data_listener</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstanceFive" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_data_listener</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverConnectorComponentInstanceFive" />
+ </internalEndpoint>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="Sender_ExecArtifact">
+ <name>Sender_exec</name>
+ <source/>
+ <node/>
+ <location>Sender_exec</location>
+ </artifact>
+ <artifact xmi:id="Sender_SvntArtifact">
+ <name>Sender_svnt</name>
+ <source/>
+ <node/>
+ <location>Sender_svnt</location>
+ </artifact>
+ <artifact xmi:id="Sender_StubArtifact">
+ <name>Sender_stub</name>
+ <source/>
+ <node/>
+ <location>Sender_stub</location>
+ </artifact>
+ <artifact xmi:id="Hello_Connector_ExecArtifact">
+ <name>Hello_Connector_exec</name>
+ <source/>
+ <node/>
+ <location>DDS_Hello_Connector_exec</location>
+ </artifact>
+ <artifact xmi:id="Hello_Connector_SvntArtifact">
+ <name>Hello_Connector_svnt</name>
+ <source/>
+ <node/>
+ <location>DDS_Hello_Connector_svnt</location>
+ </artifact>
+ <artifact xmi:id="Hello_Connector_StubArtifact">
+ <name>Hello_Connector_stub</name>
+ <source/>
+ <node/>
+ <location>DDS_Hello_Connector_stub</location>
+ </artifact>
+ <artifact xmi:id="Receiver_ExecArtifact">
+ <name>Receiver_exec</name>
+ <source/>
+ <node/>
+ <location>Receiver_exec</location>
+ </artifact>
+ <artifact xmi:id="Receiver_SvntArtifact">
+ <name>Receiver_svnt</name>
+ <source/>
+ <node/>
+ <location>Receiver_svnt</location>
+ </artifact>
+ <artifact xmi:id="Receiver_StubArtifact">
+ <name>Receiver_stub</name>
+ <source/>
+ <node/>
+ <location>Receiver_stub</location>
+ </artifact>
+
+</Deployment:DeploymentPlan>
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/5_Senders.cdp b/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/5_Senders.cdp
new file mode 100644
index 00000000000..3e3887b7a28
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/5_Senders.cdp
@@ -0,0 +1,767 @@
+<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_5_Senders</label>
+ <UUID>Hello_DDS_Deployment_5_Senders</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="Hello_ReceiverComponentImplementation">
+ <name>ReceiverComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Receiver_ExecArtifact" />
+ <artifact xmi:idref="Receiver_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Receiver_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Receiver_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="Hello_ConnectorComponentImplementation">
+ <name>Hello_ConnectorComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Hello_Connector_ExecArtifact" />
+ <artifact xmi:idref="Hello_Connector_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Hello_Connector_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Hello_Connector_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_Connector_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_Connector_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+ <implementation xmi:id="Hello_SenderComponentImplementation">
+ <name>SenderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Sender_ExecArtifact" />
+ <artifact xmi:idref="Sender_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Sender_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Sender_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <instance xmi:id="Hello_SenderComponentInstanceOne">
+ <name>Hello_SenderComponentOne</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_SenderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderOne.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderOne</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>message</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hi, I'm sender One!</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>rate</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>10</long>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>iterations</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>100</long>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="Hello_SenderConnectorComponentInstanceOne">
+ <name>Hello_SenderConnectorComponentOne</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ConnectorComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderConnectorOne.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderConnectorOne</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="Hello_SenderComponentInstanceTwo">
+ <name>Hello_SenderComponentTwo</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_SenderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderTwo.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderTwo</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>message</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hi, I'm sender Two!</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>rate</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>10</long>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>iterations</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>100</long>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="Hello_SenderConnectorComponentInstanceTwo">
+ <name>Hello_SenderConnectorComponentTwo</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ConnectorComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderConnectorTwo.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderConnectorTwo</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+ <instance xmi:id="Hello_SenderComponentInstanceThree">
+ <name>Hello_SenderComponentThree</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_SenderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderThree.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderThree</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>message</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hi, I'm sender Three!</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>rate</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>10</long>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>iterations</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>100</long>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="Hello_SenderConnectorComponentInstanceThree">
+ <name>Hello_SenderConnectorComponentThree</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ConnectorComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderConnectorThree.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderConnectorThree</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+ <instance xmi:id="Hello_SenderComponentInstanceFour">
+ <name>Hello_SenderComponentFour</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_SenderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderFour.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderFour</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>message</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hi, I'm sender Four!</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>rate</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>10</long>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>iterations</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>100</long>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+ <instance xmi:id="Hello_SenderConnectorComponentInstanceFour">
+ <name>Hello_SenderConnectorComponentFour</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ConnectorComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderConnectorFour.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderConnectorFour</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+ <instance xmi:id="Hello_SenderComponentInstanceFive">
+ <name>Hello_SenderComponentFive</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_SenderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderFive.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderFive</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>message</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hi, I'm sender Five!</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>rate</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>10</long>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>iterations</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>100</long>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="Hello_SenderConnectorComponentInstanceFive">
+ <name>Hello_SenderConnectorComponentFive</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ConnectorComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderConnectorFive.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderConnectorFive</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>info_write_dataOne</name>
+ <internalEndpoint>
+ <portName>info_in_data</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_SenderComponentInstanceOne" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_in_data</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_SenderConnectorComponentInstanceOne" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>info_write_dataTwo</name>
+ <internalEndpoint>
+ <portName>info_in_data</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_SenderComponentInstanceTwo" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_in_data</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_SenderConnectorComponentInstanceTwo" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>info_write_dataThree</name>
+ <internalEndpoint>
+ <portName>info_in_data</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_SenderComponentInstanceThree" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_in_data</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_SenderConnectorComponentInstanceThree" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>info_write_dataFour</name>
+ <internalEndpoint>
+ <portName>info_in_data</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_SenderComponentInstanceFour" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_in_data</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_SenderConnectorComponentInstanceFour" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>info_write_dataFive</name>
+ <internalEndpoint>
+ <portName>info_in_data</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_SenderComponentInstanceFive" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_in_data</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_SenderConnectorComponentInstanceFive" />
+ </internalEndpoint>
+ </connection>
+
+ <artifact xmi:id="Sender_ExecArtifact">
+ <name>Sender_exec</name>
+ <source/>
+ <node/>
+ <location>Sender_exec</location>
+ </artifact>
+ <artifact xmi:id="Sender_SvntArtifact">
+ <name>Sender_svnt</name>
+ <source/>
+ <node/>
+ <location>Sender_svnt</location>
+ </artifact>
+ <artifact xmi:id="Sender_StubArtifact">
+ <name>Sender_stub</name>
+ <source/>
+ <node/>
+ <location>Sender_stub</location>
+ </artifact>
+ <artifact xmi:id="Hello_Connector_ExecArtifact">
+ <name>Hello_Connector_exec</name>
+ <source/>
+ <node/>
+ <location>DDS_Hello_Connector_exec</location>
+ </artifact>
+ <artifact xmi:id="Hello_Connector_SvntArtifact">
+ <name>Hello_Connector_svnt</name>
+ <source/>
+ <node/>
+ <location>DDS_Hello_Connector_svnt</location>
+ </artifact>
+ <artifact xmi:id="Hello_Connector_StubArtifact">
+ <name>Hello_Connector_stub</name>
+ <source/>
+ <node/>
+ <location>DDS_Hello_Connector_stub</location>
+ </artifact>
+ <artifact xmi:id="Receiver_ExecArtifact">
+ <name>Receiver_exec</name>
+ <source/>
+ <node/>
+ <location>Receiver_exec</location>
+ </artifact>
+ <artifact xmi:id="Receiver_SvntArtifact">
+ <name>Receiver_svnt</name>
+ <source/>
+ <node/>
+ <location>Receiver_svnt</location>
+ </artifact>
+ <artifact xmi:id="Receiver_StubArtifact">
+ <name>Receiver_stub</name>
+ <source/>
+ <node/>
+ <location>Receiver_stub</location>
+ </artifact>
+
+</Deployment:DeploymentPlan>
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/5_to_1.cdp b/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/5_to_1.cdp
new file mode 100644
index 00000000000..5cec20ed460
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/5_to_1.cdp
@@ -0,0 +1,960 @@
+<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_Depl_1</label>
+ <UUID>Hello_Depl_1</UUID>
+
+ <implementation xmi:id="Hello_ReceiverComponentImplementation">
+ <name>ReceiverComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Receiver_ExecArtifact" />
+ <artifact xmi:idref="Receiver_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Receiver_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Receiver_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="Hello_ConnectorComponentImplementation">
+ <name>Hello_ConnectorComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Hello_Connector_ExecArtifact" />
+ <artifact xmi:idref="Hello_Connector_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Hello_Connector_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Hello_Connector_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_Connector_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_Connector_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+ <implementation xmi:id="SenderComponentImplementation">
+ <name>SenderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Sender_ExecArtifact" />
+ <artifact xmi:idref="Sender_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Sender_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Sender_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <instance xmi:id="Hello_SenderComponentInstanceOne">
+ <name>Hello_SenderComponentOne</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SenderComponentImplementation" />
+ <configProperty>
+ <name>rate</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>10</long>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>iterations</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>100</long>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>message</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello, World via DDS Sender One</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>log_time</name>
+ <value>
+ <type>
+ <kind>tk_boolean</kind>
+ </type>
+ <value>
+ <boolean>true</boolean>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderOne.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderOne</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="Hello_SenderConnectorComponentInstanceOne">
+ <name>Hello_SenderConnectorComponentOne</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ConnectorComponentImplementation" />
+ <configProperty>
+ <name>topic_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>DDS_Hello</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderConnectorOne.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderConnectorOne</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+ <instance xmi:id="Hello_SenderComponentInstanceTwo">
+ <name>Hello_SenderComponentTwo</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SenderComponentImplementation" />
+ <configProperty>
+ <name>rate</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>10</long>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>iterations</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>100</long>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>message</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello, World via DDS Sender Two</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>log_time</name>
+ <value>
+ <type>
+ <kind>tk_boolean</kind>
+ </type>
+ <value>
+ <boolean>true</boolean>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderTwo.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderTwo</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="Hello_SenderConnectorComponentInstanceTwo">
+ <name>Hello_SenderConnectorComponentTwo</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ConnectorComponentImplementation" />
+ <configProperty>
+ <name>topic_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>DDS_Hello</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderConnectorTwo.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderConnectorTwo</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+ <instance xmi:id="Hello_SenderComponentInstanceThree">
+ <name>Hello_SenderComponentThree</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SenderComponentImplementation" />
+ <configProperty>
+ <name>rate</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>10</long>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>iterations</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>100</long>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>message</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello, World via DDS Sender Three</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>log_time</name>
+ <value>
+ <type>
+ <kind>tk_boolean</kind>
+ </type>
+ <value>
+ <boolean>true</boolean>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderThree.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderThree</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="Hello_SenderConnectorComponentInstanceThree">
+ <name>Hello_SenderConnectorComponentThree</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ConnectorComponentImplementation" />
+ <configProperty>
+ <name>topic_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>DDS_Hello</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderConnectorThree.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderConnectorThree</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+ <instance xmi:id="Hello_SenderComponentInstanceFour">
+ <name>Hello_SenderComponentFour</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SenderComponentImplementation" />
+ <configProperty>
+ <name>rate</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>10</long>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>iterations</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>100</long>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>message</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello, World via DDS Sender Four</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>log_time</name>
+ <value>
+ <type>
+ <kind>tk_boolean</kind>
+ </type>
+ <value>
+ <boolean>true</boolean>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderFour.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderFour</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="Hello_SenderConnectorComponentInstanceFour">
+ <name>Hello_SenderConnectorComponentFour</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ConnectorComponentImplementation" />
+ <configProperty>
+ <name>topic_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>DDS_Hello</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderConnectorFour.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderConnectorFour</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+ <instance xmi:id="Hello_SenderComponentInstanceFive">
+ <name>Hello_SenderComponentFive</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SenderComponentImplementation" />
+ <configProperty>
+ <name>rate</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>10</long>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>iterations</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>100</long>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>message</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello, World via DDS Sender Five</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>log_time</name>
+ <value>
+ <type>
+ <kind>tk_boolean</kind>
+ </type>
+ <value>
+ <boolean>true</boolean>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderFive.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderFive</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="Hello_SenderConnectorComponentInstanceFive">
+ <name>Hello_SenderConnectorComponentFive</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ConnectorComponentImplementation" />
+ <configProperty>
+ <name>topic_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>DDS_Hello</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderConnectorFive.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderConnectorFive</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+
+ <instance xmi:id="Hello_ReceiverConnectorComponentInstance">
+ <name>Hello_ReceiverConnectorComponent</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ConnectorComponentImplementation" />
+ <configProperty>
+ <name>topic_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>DDS_Hello</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+ <instance xmi:id="ReceiverComponentInstance">
+ <name>ReceiverComponent</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ReceiverComponentImplementation" />
+ <configProperty>
+ <name>expected_samples</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>500</long>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>info_write_dataOne</name>
+ <internalEndpoint>
+ <portName>info_in_data</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_SenderComponentInstanceOne" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_in_data</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_SenderConnectorComponentInstanceOne" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>info_write_dataTwo</name>
+ <internalEndpoint>
+ <portName>info_in_data</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_SenderComponentInstanceTwo" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_in_data</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_SenderConnectorComponentInstanceTwo" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>info_write_dataThree</name>
+ <internalEndpoint>
+ <portName>info_in_data</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_SenderComponentInstanceThree" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_in_data</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_SenderConnectorComponentInstanceThree" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>info_write_dataFour</name>
+ <internalEndpoint>
+ <portName>info_in_data</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_SenderComponentInstanceFour" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_in_data</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_SenderConnectorComponentInstanceFour" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>info_write_dataFive</name>
+ <internalEndpoint>
+ <portName>info_in_data</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_SenderComponentInstanceFive" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_in_data</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_SenderConnectorComponentInstanceFive" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>_listenercontrol</name>
+ <internalEndpoint>
+ <portName>info_out_data_control</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="ReceiverComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_data_control</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_ReceiverConnectorComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>_portstatuslistener</name>
+ <internalEndpoint>
+ <portName>info_out_status</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="ReceiverComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_status</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverConnectorComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>_rawlistner</name>
+ <internalEndpoint>
+ <portName>info_out_data_listener</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="ReceiverComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_data_listener</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverConnectorComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <artifact xmi:id="Sender_ExecArtifact">
+ <name>Sender_exec</name>
+ <source/>
+ <node/>
+ <location>Sender_exec</location>
+ </artifact>
+ <artifact xmi:id="Sender_SvntArtifact">
+ <name>Sender_svnt</name>
+ <source/>
+ <node/>
+ <location>Sender_svnt</location>
+ </artifact>
+ <artifact xmi:id="Sender_StubArtifact">
+ <name>Sender_stub</name>
+ <source/>
+ <node/>
+ <location>Sender_stub</location>
+ </artifact>
+ <artifact xmi:id="Hello_Connector_ExecArtifact">
+ <name>Hello_Connector_exec</name>
+ <source/>
+ <node/>
+ <location>DDS_Hello_Connector_exec</location>
+ </artifact>
+ <artifact xmi:id="Hello_Connector_SvntArtifact">
+ <name>Hello_Connector_svnt</name>
+ <source/>
+ <node/>
+ <location>DDS_Hello_Connector_svnt</location>
+ </artifact>
+ <artifact xmi:id="Hello_Connector_StubArtifact">
+ <name>Hello_Connector_stub</name>
+ <source/>
+ <node/>
+ <location>DDS_Hello_Connector_stub</location>
+ </artifact>
+ <artifact xmi:id="Receiver_ExecArtifact">
+ <name>Receiver_exec</name>
+ <source/>
+ <node/>
+ <location>Receiver_exec</location>
+ </artifact>
+ <artifact xmi:id="Receiver_SvntArtifact">
+ <name>Receiver_svnt</name>
+ <source/>
+ <node/>
+ <location>Receiver_svnt</location>
+ </artifact>
+ <artifact xmi:id="Receiver_StubArtifact">
+ <name>Receiver_stub</name>
+ <source/>
+ <node/>
+ <location>Receiver_stub</location>
+ </artifact>
+</Deployment:DeploymentPlan>
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/DeploymentPlan.cdp b/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/DeploymentPlan.cdp
new file mode 100644
index 00000000000..109590eb696
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/DeploymentPlan.cdp
@@ -0,0 +1,395 @@
+<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_Depl_1</label>
+ <UUID>Hello_Depl_1</UUID>
+
+ <implementation xmi:id="ReceiverComponentImplementation">
+ <name>ReceiverComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Receiver_ExecArtifact" />
+ <artifact xmi:idref="Receiver_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Receiver_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Receiver_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="Hello_ConnectorComponentImplementation">
+ <name>Hello_ConnectorComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Hello_Connector_ExecArtifact" />
+ <artifact xmi:idref="Hello_Connector_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Hello_Connector_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Hello_Connector_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_Connector_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_Connector_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+ <implementation xmi:id="SenderComponentImplementation">
+ <name>SenderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Sender_ExecArtifact" />
+ <artifact xmi:idref="Sender_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Sender_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Sender_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+ <instance xmi:id="ReceiverComponentInstance">
+ <name>ReceiverComponent</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ReceiverComponentImplementation" />
+ <configProperty>
+ <name>expected_samples</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>100</long>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver1</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+ <instance xmi:id="Hello_ConnectorComponentInstance">
+ <name>Hello_ConnectorComponent</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ConnectorComponentImplementation" />
+ <configProperty>
+ <name>topic_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+ <instance xmi:id="Hello_ConnectorComponentInstance2">
+ <name>Hello_ConnectorComponent2</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ConnectorComponentImplementation" />
+ <configProperty>
+ <name>topic_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+ <instance xmi:id="SenderComponentInstance">
+ <name>SenderComponent</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SenderComponentImplementation" />
+ <configProperty>
+ <name>rate</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>10</long>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>iterations</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>100</long>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>message</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello, World via DDS</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>log_time</name>
+ <value>
+ <type>
+ <kind>tk_boolean</kind>
+ </type>
+ <value>
+ <boolean>true</boolean>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>info_write_data</name>
+ <internalEndpoint>
+ <portName>info_in_data</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="SenderComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_in_data</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_ConnectorComponentInstance2" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_listenercontrol</name>
+ <internalEndpoint>
+ <portName>info_out_data_control</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="ReceiverComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_data_control</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_ConnectorComponentInstance2" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_portstatuslistener</name>
+ <internalEndpoint>
+ <portName>info_out_status</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="ReceiverComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_status</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ConnectorComponentInstance2" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_rawlistner</name>
+ <internalEndpoint>
+ <portName>info_out_data_listener</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="ReceiverComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_data_listener</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ConnectorComponentInstance2" />
+ </internalEndpoint>
+ </connection>
+
+ <artifact xmi:id="Sender_ExecArtifact">
+ <name>Sender_exec</name>
+ <source/>
+ <node/>
+ <location>Sender_exec</location>
+ </artifact>
+ <artifact xmi:id="Sender_SvntArtifact">
+ <name>Sender_svnt</name>
+ <source/>
+ <node/>
+ <location>Sender_svnt</location>
+ </artifact>
+ <artifact xmi:id="Sender_StubArtifact">
+ <name>Sender_stub</name>
+ <source/>
+ <node/>
+ <location>Sender_stub</location>
+ </artifact>
+ <artifact xmi:id="Hello_Connector_ExecArtifact">
+ <name>Hello_Connector_exec</name>
+ <source/>
+ <node/>
+ <location>DDS_Hello_Connector_exec</location>
+ </artifact>
+ <artifact xmi:id="Hello_Connector_SvntArtifact">
+ <name>Hello_Connector_svnt</name>
+ <source/>
+ <node/>
+ <location>DDS_Hello_Connector_svnt</location>
+ </artifact>
+ <artifact xmi:id="Hello_Connector_StubArtifact">
+ <name>Hello_Connector_stub</name>
+ <source/>
+ <node/>
+ <location>DDS_Hello_Connector_stub</location>
+ </artifact>
+ <artifact xmi:id="Receiver_ExecArtifact">
+ <name>Receiver_exec</name>
+ <source/>
+ <node/>
+ <location>Receiver_exec</location>
+ </artifact>
+ <artifact xmi:id="Receiver_SvntArtifact">
+ <name>Receiver_svnt</name>
+ <source/>
+ <node/>
+ <location>Receiver_svnt</location>
+ </artifact>
+ <artifact xmi:id="Receiver_StubArtifact">
+ <name>Receiver_stub</name>
+ <source/>
+ <node/>
+ <location>Receiver_stub</location>
+ </artifact>
+</Deployment:DeploymentPlan>
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/ReceiverOnly.cdp b/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/ReceiverOnly.cdp
new file mode 100644
index 00000000000..d3eb0d63459
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/ReceiverOnly.cdp
@@ -0,0 +1,247 @@
+<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="ReceiverComponentImplementation">
+ <name>ReceiverComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Receiver_ExecArtifact" />
+ <artifact xmi:idref="Receiver_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Receiver_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Receiver_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="Hello_ConnectorComponentImplementation">
+ <name>Hello_ConnectorComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Hello_Connector_ExecArtifact" />
+ <artifact xmi:idref="Hello_Connector_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Hello_Connector_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Hello_Connector_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_Connector_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_Connector_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+ <instance xmi:id="ReceiverComponentInstance">
+ <name>ReceiverComponent</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ReceiverComponentImplementation" />
+ <configProperty>
+ <name>expected_samples</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>100</long>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver1</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+ <instance xmi:id="Hello_ConnectorComponentInstance">
+ <name>Hello_ConnectorComponent2</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ConnectorComponentImplementation" />
+ <configProperty>
+ <name>topic_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>_listenercontrol</name>
+ <internalEndpoint>
+ <portName>info_out_data_control</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="ReceiverComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_data_control</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_ConnectorComponentInstance" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_portstatuslistener</name>
+ <internalEndpoint>
+ <portName>info_out_status</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="ReceiverComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_status</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ConnectorComponentInstance" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_rawlistner</name>
+ <internalEndpoint>
+ <portName>info_out_data_listener</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="ReceiverComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_data_listener</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ConnectorComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="Hello_Connector_ExecArtifact">
+ <name>Hello_Connector_exec</name>
+ <source/>
+ <node/>
+ <location>DDS_Hello_Connector_exec</location>
+ </artifact>
+ <artifact xmi:id="Hello_Connector_SvntArtifact">
+ <name>Hello_Connector_svnt</name>
+ <source/>
+ <node/>
+ <location>DDS_Hello_Connector_svnt</location>
+ </artifact>
+ <artifact xmi:id="Hello_Connector_StubArtifact">
+ <name>Hello_Connector_stub</name>
+ <source/>
+ <node/>
+ <location>DDS_Hello_Connector_stub</location>
+ </artifact>
+ <artifact xmi:id="Receiver_ExecArtifact">
+ <name>Receiver_exec</name>
+ <source/>
+ <node/>
+ <location>Receiver_exec</location>
+ </artifact>
+ <artifact xmi:id="Receiver_SvntArtifact">
+ <name>Receiver_svnt</name>
+ <source/>
+ <node/>
+ <location>Receiver_svnt</location>
+ </artifact>
+ <artifact xmi:id="Receiver_StubArtifact">
+ <name>Receiver_stub</name>
+ <source/>
+ <node/>
+ <location>Receiver_stub</location>
+ </artifact>
+
+</Deployment:DeploymentPlan>
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/SenderOnly.cdp b/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/SenderOnly.cdp
new file mode 100644
index 00000000000..0ef3315892f
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/SenderOnly.cdp
@@ -0,0 +1,216 @@
+<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 -->
+
+ <implementation xmi:id="Hello_SenderConnectorComponentImplementation">
+ <name>Hello_ConnectorComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Hello_Connector_ExecArtifact" />
+ <artifact xmi:idref="Hello_Connector_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Hello_Connector_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Hello_Connector_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_Connector_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_Connector_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+ <implementation xmi:id="Hello_SenderComponentImplementation">
+ <name>Hello_SenderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Sender_ExecArtifact" />
+ <artifact xmi:idref="Sender_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Sender_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_Sender_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <instance xmi:id="Hello_SenderComponentInstance">
+ <name>Hello_SenderComponent</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_SenderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="Hello_SenderConnectorComponentInstance">
+ <name>Hello_SenderConnectorComponent</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_SenderConnectorComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderConnector.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderConnector</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>info_write_data</name>
+ <internalEndpoint>
+ <portName>info_in_data</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_SenderComponentImplementation" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_in_data</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_SenderConnectorComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="Sender_ExecArtifact">
+ <name>Sender_exec</name>
+ <source/>
+ <node/>
+ <location>Sender_exec</location>
+ </artifact>
+ <artifact xmi:id="Sender_SvntArtifact">
+ <name>Sender_svnt</name>
+ <source/>
+ <node/>
+ <location>Sender_svnt</location>
+ </artifact>
+ <artifact xmi:id="Hello_Connector_ExecArtifact">
+ <name>Hello_Connector_exec</name>
+ <source/>
+ <node/>
+ <location>DDS_Hello_Connector_exec</location>
+ </artifact>
+ <artifact xmi:id="Hello_Connector_SvntArtifact">
+ <name>Hello_Connector_svnt</name>
+ <source/>
+ <node/>
+ <location>DDS_Hello_Connector_svnt</location>
+ </artifact>
+
+</Deployment:DeploymentPlan>
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_1_to_5.pl b/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_1_to_5.pl
new file mode 100755
index 00000000000..d8ec9922da0
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_1_to_5.pl
@@ -0,0 +1,206 @@
+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;
+
+$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
+$TAO_ROOT = "$ENV{'TAO_ROOT'}";
+$DAnCE = "$ENV{'DANCE_ROOT'}";
+
+$daemons_running = 0;
+$em_running = 0;
+$ns_running = 0;
+
+$daemons = 2;
+@ports = ( 60001, 60002 );
+@iorfiles = ( "Sender.ior", "Receiver.ior" );
+@nodenames = ( "SenderNode", "ReceiverNode" );
+
+$status = 0;
+$dat_file = "NodeManagerMap.dat";
+$cdp_file = "1_to_5.cdp";
+
+$nsior = PerlACE::LocalFile ("ns.ior");
+
+PerlACE::add_lib_path ('../lib');
+
+unlink $nsior;
+
+$E = 0;
+$EM = 0;
+
+# Delete if there are any .ior files.
+sub delete_ior_files {
+ for ($i = 0; $i < $daemons; ++$i) {
+ unlink $iorfiles[$i];
+ }
+ unlink PerlACE::LocalFile ("EM.ior");
+ unlink PerlACE::LocalFile ("Receiver.ior");
+ unlink PerlACE::LocalFile ("Sender.ior");
+ unlink PerlACE::LocalFile ("DAM.ior");
+ unlink PerlACE::LocalFile ("ns.ior");
+}
+
+sub kill_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i) {
+ $Daemons[$i]->Kill (); $Daemons[$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);
+ }
+
+}
+
+sub run_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i)
+ {
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+ $nodename = $nodenames[$i];
+ $iiop = "iiop://localhost:$port";
+ $node_app = "$CIAO_ROOT/bin/ciao_componentserver";
+
+ $d_cmd = "$DAnCE/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";
+
+ $Daemons[$i] = new PerlACE::Process ($d_cmd, $d_param);
+ $result = $Daemons[$i]->Spawn ();
+ push(@processes, $Daemons[$i]);
+
+ if (PerlACE::waitforfile_timed ($iorfile,
+ 30) == -1) {
+ print STDERR
+ "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
+ for (; $i >= 0; --$i) {
+ $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1);
+ }
+ return -1;
+ }
+ }
+ return 0;
+}
+
+delete_ior_files ();
+
+# Invoke naming service
+
+$NS = new PerlACE::Process ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 0 -ORBEndpoint iiop://localhost:60003 -o ns.ior");
+
+$NS->Spawn ();
+
+print STDERR "Starting Naming Service with -m 0 -ORBEndpoint iiop://localhost:60003 -o ns.ior\n";
+
+if (PerlACE::waitforfile_timed ($nsior, $PerlACE::wait_interval_for_process_creation) == -1)
+{
+ print STDERR "ERROR: cannot find naming service IOR file\n";
+ $NS->Kill ();
+ exit 1;
+}
+
+$ns_running = 1;
+
+# Set up NamingService environment
+$ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService";
+
+
+# Invoke node daemons.
+print "Invoking node daemons\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 -eEM.ior \n";
+$EM = new PerlACE::Process ("$DAnCE/bin/dance_execution_manager",
+ "-eEM.ior --domain-nc corbaloc:rir:/NameService");
+$EM->Spawn ();
+
+if (PerlACE::waitforfile_timed ("EM.ior",
+ $PerlACE::wait_interval_for_process_creation) == -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 - start the application -\n";
+
+print "Start dance_plan_launcher.exe with -x $cdp_file -k file://EM.ior\n";
+$E =
+ new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher",
+ "-x $cdp_file -k file://EM.ior");
+
+$E->SpawnWaitKill (50);
+
+if (PerlACE::waitforfile_timed (
+ "ReceiverOne.ior",
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: The ior file of receiver could not be found\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+if (PerlACE::waitforfile_timed ("Sender.ior",
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: The ior file of sender could not be found\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+print "Sleeping 60 seconds to allow task to complete\n";
+sleep (60);
+
+# print "Invoking the controller ($controller_exec -k file://Sender.ior)\n";
+# $controller = new PerlACE::Process ("$controller_exec", "-k file://Sender.ior");
+# $result = $controller->SpawnWaitKill (30);
+
+# if ($result != 0) {
+# print STDERR "ERROR: The controller returned $result\n";
+# $status = 1;
+# }
+
+# Invoke executor - stop the application -.
+print "Invoking executor - stop the application -\n";
+print "by running dance_plan_launcher.exe with -k file://EM.ior -x $cdp_file -q\n";
+
+$E =
+ new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher",
+ "-k file://EM.ior -x $cdp_file -q");
+$E->SpawnWaitKill (30);
+
+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/connectors/dds4ccm/examples/Hello/descriptors/run_5_to_1.pl b/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_5_to_1.pl
new file mode 100755
index 00000000000..7f3b2289c70
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_5_to_1.pl
@@ -0,0 +1,206 @@
+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;
+
+$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
+$TAO_ROOT = "$ENV{'TAO_ROOT'}";
+$DAnCE = "$ENV{'DANCE_ROOT'}";
+
+$daemons_running = 0;
+$em_running = 0;
+$ns_running = 0;
+
+$daemons = 2;
+@ports = ( 60001, 60002 );
+@iorfiles = ( "Sender.ior", "Receiver.ior" );
+@nodenames = ( "SenderNode", "ReceiverNode" );
+
+$status = 0;
+$dat_file = "NodeManagerMap.dat";
+$cdp_file = "5_to_1.cdp";
+
+$nsior = PerlACE::LocalFile ("ns.ior");
+
+PerlACE::add_lib_path ('../lib');
+
+unlink $nsior;
+
+$E = 0;
+$EM = 0;
+
+# Delete if there are any .ior files.
+sub delete_ior_files {
+ for ($i = 0; $i < $daemons; ++$i) {
+ unlink $iorfiles[$i];
+ }
+ unlink PerlACE::LocalFile ("EM.ior");
+ unlink PerlACE::LocalFile ("Receiver.ior");
+ unlink PerlACE::LocalFile ("Sender.ior");
+ unlink PerlACE::LocalFile ("DAM.ior");
+ unlink PerlACE::LocalFile ("ns.ior");
+}
+
+sub kill_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i) {
+ $Daemons[$i]->Kill (); $Daemons[$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);
+ }
+
+}
+
+sub run_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i)
+ {
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+ $nodename = $nodenames[$i];
+ $iiop = "iiop://localhost:$port";
+ $node_app = "$CIAO_ROOT/bin/ciao_componentserver";
+
+ $d_cmd = "$DAnCE/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";
+
+ $Daemons[$i] = new PerlACE::Process ($d_cmd, $d_param);
+ $result = $Daemons[$i]->Spawn ();
+ push(@processes, $Daemons[$i]);
+
+ if (PerlACE::waitforfile_timed ($iorfile,
+ 30) == -1) {
+ print STDERR
+ "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
+ for (; $i >= 0; --$i) {
+ $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1);
+ }
+ return -1;
+ }
+ }
+ return 0;
+}
+
+delete_ior_files ();
+
+# Invoke naming service
+
+$NS = new PerlACE::Process ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 0 -ORBEndpoint iiop://localhost:60003 -o ns.ior");
+
+$NS->Spawn ();
+
+print STDERR "Starting Naming Service with -m 0 -ORBEndpoint iiop://localhost:60003 -o ns.ior\n";
+
+if (PerlACE::waitforfile_timed ($nsior, $PerlACE::wait_interval_for_process_creation) == -1)
+{
+ print STDERR "ERROR: cannot find naming service IOR file\n";
+ $NS->Kill ();
+ exit 1;
+}
+
+$ns_running = 1;
+
+# Set up NamingService environment
+$ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService";
+
+
+# Invoke node daemons.
+print "Invoking node daemons\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 -eEM.ior \n";
+$EM = new PerlACE::Process ("$DAnCE/bin/dance_execution_manager",
+ "-eEM.ior --domain-nc corbaloc:rir:/NameService");
+$EM->Spawn ();
+
+if (PerlACE::waitforfile_timed ("EM.ior",
+ $PerlACE::wait_interval_for_process_creation) == -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 - start the application -\n";
+
+print "Start dance_plan_launcher.exe with -x $cdp_file -k file://EM.ior\n";
+$E =
+ new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher",
+ "-x $cdp_file -k file://EM.ior");
+
+$E->SpawnWaitKill (50);
+
+if (PerlACE::waitforfile_timed (
+ "Receiver.ior",
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: The ior file of receiver could not be found\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+if (PerlACE::waitforfile_timed ("SenderOne.ior",
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: The ior file of sender could not be found\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+print "Sleeping 60 seconds to allow task to complete\n";
+sleep (60);
+
+# print "Invoking the controller ($controller_exec -k file://Sender.ior)\n";
+# $controller = new PerlACE::Process ("$controller_exec", "-k file://Sender.ior");
+# $result = $controller->SpawnWaitKill (30);
+
+# if ($result != 0) {
+# print STDERR "ERROR: The controller returned $result\n";
+# $status = 1;
+# }
+
+# Invoke executor - stop the application -.
+print "Invoking executor - stop the application -\n";
+print "by running dance_plan_launcher.exe with -k file://EM.ior -x $cdp_file -q\n";
+
+$E =
+ new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher",
+ "-k file://EM.ior -x $cdp_file -q");
+$E->SpawnWaitKill (30);
+
+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/connectors/dds4ccm/examples/Hello/descriptors/run_5_to_5.pl b/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_5_to_5.pl
new file mode 100755
index 00000000000..9bf25536809
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_5_to_5.pl
@@ -0,0 +1,240 @@
+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;
+
+$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
+$TAO_ROOT = "$ENV{'TAO_ROOT'}";
+$DAnCE = "$ENV{'DANCE_ROOT'}";
+
+$daemons_running = 0;
+$em_running = 0;
+$ns_running = 0;
+
+$daemons = 2;
+@ports = ( 60001, 60002 );
+@iorfiles = ( "Sender.ior", "Receiver.ior" );
+@nodenames = ( "SenderNode", "ReceiverNode" );
+
+$status = 0;
+$dat_file = "NodeManagerMap.dat";
+$cdp_file = "5_Receivers.cdp";
+$cdp_file_two = "5_Senders.cdp";
+
+$nsior = PerlACE::LocalFile ("ns.ior");
+
+PerlACE::add_lib_path ('../lib');
+
+unlink $nsior;
+
+$E = 0;
+$EM = 0;
+
+# Delete if there are any .ior files.
+sub delete_ior_files {
+ for ($i = 0; $i < $daemons; ++$i) {
+ unlink $iorfiles[$i];
+ }
+ unlink PerlACE::LocalFile ("EM.ior");
+ unlink PerlACE::LocalFile ("ReceiverOne.ior");
+ unlink PerlACE::LocalFile ("ReceiverTwo.ior");
+ unlink PerlACE::LocalFile ("ReceiverThree.ior");
+ unlink PerlACE::LocalFile ("ReceiverFour.ior");
+ unlink PerlACE::LocalFile ("ReceiverFive.ior");
+ unlink PerlACE::LocalFile ("SenderOne.ior");
+ unlink PerlACE::LocalFile ("SenderTwo.ior");
+ unlink PerlACE::LocalFile ("SenderThree.ior");
+ unlink PerlACE::LocalFile ("SenderFour.ior");
+ unlink PerlACE::LocalFile ("SenderFive.ior");
+ unlink PerlACE::LocalFile ("ReceiverConnectorOne.ior");
+ unlink PerlACE::LocalFile ("ReceiverConnectorTwo.ior");
+ unlink PerlACE::LocalFile ("ReceiverConnectorThree.ior");
+ unlink PerlACE::LocalFile ("ReceiverConnectorFour.ior");
+ unlink PerlACE::LocalFile ("ReceiverConnectorFive.ior");
+ unlink PerlACE::LocalFile ("SenderConnectorOne.ior");
+ unlink PerlACE::LocalFile ("SenderConnectorTwo.ior");
+ unlink PerlACE::LocalFile ("SenderConnectorThree.ior");
+ unlink PerlACE::LocalFile ("SenderConnectorFour.ior");
+ unlink PerlACE::LocalFile ("SenderConnectorFive.ior");
+ unlink PerlACE::LocalFile ("DAM.ior");
+ unlink PerlACE::LocalFile ("ns.ior");
+}
+
+sub kill_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i) {
+ $Daemons[$i]->Kill (); $Daemons[$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);
+ }
+
+}
+
+sub run_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i)
+ {
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+ $nodename = $nodenames[$i];
+ $iiop = "iiop://localhost:$port";
+ $node_app = "$CIAO_ROOT/bin/ciao_componentserver";
+
+ $d_cmd = "$DAnCE/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";
+
+ $Daemons[$i] = new PerlACE::Process ($d_cmd, $d_param);
+ $result = $Daemons[$i]->Spawn ();
+ push(@processes, $Daemons[$i]);
+
+ if (PerlACE::waitforfile_timed ($iorfile,
+ 30) == -1) {
+ print STDERR
+ "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
+ for (; $i >= 0; --$i) {
+ $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1);
+ }
+ return -1;
+ }
+ }
+ return 0;
+}
+
+delete_ior_files ();
+
+# Invoke naming service
+
+$NS = new PerlACE::Process ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 0 -ORBEndpoint iiop://localhost:60003 -o ns.ior");
+
+$NS->Spawn ();
+
+print STDERR "Starting Naming Service with -m 0 -ORBEndpoint iiop://localhost:60003 -o ns.ior\n";
+
+if (PerlACE::waitforfile_timed ($nsior, $PerlACE::wait_interval_for_process_creation) == -1)
+{
+ print STDERR "ERROR: cannot find naming service IOR file\n";
+ $NS->Kill ();
+ exit 1;
+}
+
+$ns_running = 1;
+
+# Set up NamingService environment
+$ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService";
+
+
+# Invoke node daemons.
+print "Invoking node daemons\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 -eEM.ior \n";
+$EM = new PerlACE::Process ("$DAnCE/bin/dance_execution_manager",
+ "-eEM.ior --domain-nc corbaloc:rir:/NameService");
+$EM->Spawn ();
+
+if (PerlACE::waitforfile_timed ("EM.ior",
+ $PerlACE::wait_interval_for_process_creation) == -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 - start the application -\n";
+
+print "Start dance_plan_launcher.exe with -x $cdp_file -k file://EM.ior\n";
+$E =
+ new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher",
+ "-x $cdp_file -k file://EM.ior");
+
+$E->SpawnWaitKill (50);
+
+if (PerlACE::waitforfile_timed (
+ "ReceiverOne.ior",
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: The ior file of receiver could not be found\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+print "Start dance_plan_launcher.exe with -x $cdp_file_two -k file://EM.ior\n";
+$E =
+ new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher",
+ "-x $cdp_file_two -k file://EM.ior");
+
+$E->SpawnWaitKill (50);
+
+if (PerlACE::waitforfile_timed ("SenderOne.ior",
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: The ior file of sender could not be found\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+print "Sleeping 60 seconds to allow task to complete\n";
+sleep (60);
+
+# print "Invoking the controller ($controller_exec -k file://Sender.ior)\n";
+# $controller = new PerlACE::Process ("$controller_exec", "-k file://Sender.ior");
+# $result = $controller->SpawnWaitKill (30);
+
+# if ($result != 0) {
+# print STDERR "ERROR: The controller returned $result\n";
+# $status = 1;
+# }
+
+# Invoke executor - stop the application -.
+print "Invoking executor - stop the application -\n";
+print "by running dance_plan_launcher.exe with -k file://EM.ior -x $cdp_file -q\n";
+
+$E =
+ new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher",
+ "-k file://EM.ior -x $cdp_file -q");
+$E->SpawnWaitKill (30);
+
+print "Invoking executor - stop the application -\n";
+print "by running dance_plan_launcher.exe with -k file://EM.ior -x $cdp_file_two -q\n";
+
+$E =
+ new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher",
+ "-k file://EM.ior -x $cdp_file_two -q");
+$E->SpawnWaitKill (30);
+
+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/connectors/dds4ccm/examples/Hello/descriptors/run_receiver.pl b/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_receiver.pl
new file mode 100755
index 00000000000..3961ab12218
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_receiver.pl
@@ -0,0 +1,218 @@
+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;
+
+$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
+$TAO_ROOT = "$ENV{'TAO_ROOT'}";
+$DAnCE = "$ENV{'DANCE_ROOT'}";
+
+$daemons_running = 0;
+$em_running = 0;
+$ns_running = 0;
+
+$daemons = 1;
+@ports = ( 60001 );
+@iorfiles = ( "Receiver.ior" );
+@nodenames = ( "ReceiverNode" );
+
+$status = 0;
+$dat_file = "NodeManagerMap.dat";
+$cdp_file = "ReceiverOnly.cdp";
+
+$nsior = PerlACE::LocalFile ("ns.ior");
+
+PerlACE::add_lib_path ('../lib');
+
+unlink $nsior;
+
+$E = 0;
+$EM = 0;
+
+# Delete if there are any .ior files.
+sub delete_ior_files {
+ for ($i = 0; $i < $daemons; ++$i) {
+ unlink $iorfiles[$i];
+ }
+ unlink PerlACE::LocalFile ("EM.ior");
+ unlink PerlACE::LocalFile ("Receiver.ior");
+ unlink PerlACE::LocalFile ("DAM.ior");
+ unlink PerlACE::LocalFile ("ns.ior");
+}
+
+sub kill_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i) {
+ $Daemons[$i]->Kill (); $Daemons[$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);
+ }
+
+}
+
+sub run_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i)
+ {
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+ $nodename = $nodenames[$i];
+ $iiop = "iiop://localhost:$port";
+ $node_app = "$CIAO_ROOT/bin/ciao_componentserver";
+
+ $d_cmd = "$DAnCE/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";
+
+ $Daemons[$i] = new PerlACE::Process ($d_cmd, $d_param);
+ $result = $Daemons[$i]->Spawn ();
+ push(@processes, $Daemons[$i]);
+
+ if (PerlACE::waitforfile_timed ($iorfile,
+ 30) == -1) {
+ print STDERR
+ "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
+ for (; $i >= 0; --$i) {
+ $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1);
+ }
+ return -1;
+ }
+ }
+ return 0;
+}
+
+delete_ior_files ();
+
+# Invoke naming service
+
+$NS = new PerlACE::Process ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 0 -ORBEndpoint iiop://localhost:60003 -o ns.ior");
+
+$NS->Spawn ();
+
+print STDERR "Starting Naming Service with -m 0 -ORBEndpoint iiop://localhost:60003 -o ns.ior\n";
+
+if (PerlACE::waitforfile_timed ($nsior, $PerlACE::wait_interval_for_process_creation) == -1)
+{
+ print STDERR "ERROR: cannot find naming service IOR file\n";
+ $NS->Kill ();
+ exit 1;
+}
+
+$ns_running = 1;
+
+# Set up NamingService environment
+$ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService";
+
+
+# Invoke node daemons.
+print "Invoking node daemons\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 -eEM.ior \n";
+$EM = new PerlACE::Process ("$DAnCE/bin/dance_execution_manager",
+ "-eEM.ior --domain-nc corbaloc:rir:/NameService");
+$EM->Spawn ();
+
+if (PerlACE::waitforfile_timed ("EM.ior",
+ $PerlACE::wait_interval_for_process_creation) == -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 - start the application -\n";
+
+print "Start dance_plan_launcher.exe with -x $cdp_file -k file://EM.ior\n";
+$E =
+ new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher",
+ "-x $cdp_file -k file://EM.ior");
+
+$E->SpawnWaitKill (50);
+
+if (PerlACE::waitforfile_timed ("Receiver.ior",
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: The ior file of receiver could not be found\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+print "Invoking the non-CCM DDS Sender (../DDS_Sender/DDS_Sender -s \"Message from RTI DDS Sender\" -i 10)\n";
+
+$receiver = new PerlACE::Process ("../DDS_Sender/DDS_Sender", "-s \"Message from RTI DDS Sender\" -i 10");
+
+$result = $receiver->Spawn ();
+
+if ($result != 0) {
+ print STDERR "ERROR: Unable to spawn DDS sender $result\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+print "Sleeping 60 seconds to receive all messages\n";
+sleep (60);
+
+# print "Invoking the controller ($controller_exec -k file://Receiver.ior)\n";
+# $controller = new PerlACE::Process ("$controller_exec", "-k file://Receiver.ior");
+# $result = $controller->SpawnWaitKill (30);
+
+# if ($result != 0) {
+# print STDERR "ERROR: The controller returned $result\n";
+# $status = 1;
+# }
+
+# Invoke executor - stop the application -.
+print "Invoking executor - stop the application -\n";
+print "by running dance_plan_launcher.exe with -k file://EM.ior -x $cdp_file -q\n";
+
+$E =
+ new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher",
+ "-k file://EM.ior -x $cdp_file -q");
+$E->SpawnWaitKill (30);
+
+print "Executor returned.\n";
+print "Shutting down rest of the processes.\n";
+
+$result = $receiver->WaitKill (10);
+
+if ($result != 0) {
+ print STDERR "ERROR: DDS Sender terminated unexpectedly with $result\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+
+delete_ior_files ();
+kill_open_processes ();
+
+exit $status;
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_sender.pl b/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_sender.pl
new file mode 100755
index 00000000000..0803e2de1d8
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_sender.pl
@@ -0,0 +1,218 @@
+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;
+
+$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
+$TAO_ROOT = "$ENV{'TAO_ROOT'}";
+$DAnCE = "$ENV{'DANCE_ROOT'}";
+
+$daemons_running = 0;
+$em_running = 0;
+$ns_running = 0;
+
+$daemons = 1;
+@ports = ( 60001 );
+@iorfiles = ( "Sender.ior" );
+@nodenames = ( "SenderNode" );
+
+$status = 0;
+$dat_file = "NodeManagerMap.dat";
+$cdp_file = "SenderOnly.cdp";
+
+$nsior = PerlACE::LocalFile ("ns.ior");
+
+PerlACE::add_lib_path ('../lib');
+
+unlink $nsior;
+
+$E = 0;
+$EM = 0;
+
+# Delete if there are any .ior files.
+sub delete_ior_files {
+ for ($i = 0; $i < $daemons; ++$i) {
+ unlink $iorfiles[$i];
+ }
+ unlink PerlACE::LocalFile ("EM.ior");
+ unlink PerlACE::LocalFile ("Sender.ior");
+ unlink PerlACE::LocalFile ("DAM.ior");
+ unlink PerlACE::LocalFile ("ns.ior");
+}
+
+sub kill_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i) {
+ $Daemons[$i]->Kill (); $Daemons[$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);
+ }
+
+}
+
+sub run_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i)
+ {
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+ $nodename = $nodenames[$i];
+ $iiop = "iiop://localhost:$port";
+ $node_app = "$CIAO_ROOT/bin/ciao_componentserver";
+
+ $d_cmd = "$DAnCE/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";
+
+ $Daemons[$i] = new PerlACE::Process ($d_cmd, $d_param);
+ $result = $Daemons[$i]->Spawn ();
+ push(@processes, $Daemons[$i]);
+
+ if (PerlACE::waitforfile_timed ($iorfile,
+ 30) == -1) {
+ print STDERR
+ "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
+ for (; $i >= 0; --$i) {
+ $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1);
+ }
+ return -1;
+ }
+ }
+ return 0;
+}
+
+delete_ior_files ();
+
+# Invoke naming service
+
+$NS = new PerlACE::Process ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 0 -ORBEndpoint iiop://localhost:60003 -o ns.ior");
+
+$NS->Spawn ();
+
+print STDERR "Starting Naming Service with -m 0 -ORBEndpoint iiop://localhost:60003 -o ns.ior\n";
+
+if (PerlACE::waitforfile_timed ($nsior, $PerlACE::wait_interval_for_process_creation) == -1)
+{
+ print STDERR "ERROR: cannot find naming service IOR file\n";
+ $NS->Kill ();
+ exit 1;
+}
+
+$ns_running = 1;
+
+# Set up NamingService environment
+$ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService";
+
+
+# Invoke node daemons.
+print "Invoking node daemons\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 -eEM.ior \n";
+$EM = new PerlACE::Process ("$DAnCE/bin/dance_execution_manager",
+ "-eEM.ior --domain-nc corbaloc:rir:/NameService");
+$EM->Spawn ();
+
+if (PerlACE::waitforfile_timed ("EM.ior",
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR
+ "ERROR: The ior file of execution manager could not be found\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+$em_running = 1;
+
+print "Invoking the non-CCM DDS Receiver (../DDS_Receiver/DDS_receiver)";
+
+$receiver = new PerlACE::Process ("../DDS_Receiver/DDS_receiver", "10");
+
+$result = $receiver->Spawn ();
+
+if ($result != 0) {
+ print STDERR "ERROR: Unable to spawn DDS receiver $result\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+# Invoke executor - start the application -.
+print "Invoking executor - start the application -\n";
+
+print "Start dance_plan_launcher.exe with -x $cdp_file -k file://EM.ior\n";
+$E =
+ new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher",
+ "-x $cdp_file -k file://EM.ior");
+
+$E->SpawnWaitKill (50);
+
+if (PerlACE::waitforfile_timed ("Sender.ior",
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: The ior file of sender could not be found\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+print "Sleeping 60 seconds to allow sending to complete\n";
+sleep (60);
+
+# print "Invoking the controller ($controller_exec -k file://Sender.ior)\n";
+# $controller = new PerlACE::Process ("$controller_exec", "-k file://Sender.ior");
+# $result = $controller->SpawnWaitKill (30);
+
+# if ($result != 0) {
+# print STDERR "ERROR: The controller returned $result\n";
+# $status = 1;
+# }
+
+# Invoke executor - stop the application -.
+print "Invoking executor - stop the application -\n";
+print "by running dance_plan_launcher.exe with -k file://EM.ior -x $cdp_file -q\n";
+
+$E =
+ new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher",
+ "-k file://EM.ior -x $cdp_file -q");
+$E->SpawnWaitKill (30);
+
+print "Executor returned.\n";
+print "Shutting down rest of the processes.\n";
+
+$result = $receiver->WaitKill (10);
+
+if ($result != 0) {
+ print STDERR "ERROR: DDS Receiver terminated unexpectedly with $result\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+
+delete_ior_files ();
+kill_open_processes ();
+
+exit $status;
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_test.pl b/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_test.pl
new file mode 100755
index 00000000000..f6c03d09085
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_test.pl
@@ -0,0 +1,206 @@
+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;
+
+$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
+$TAO_ROOT = "$ENV{'TAO_ROOT'}";
+$DAnCE = "$ENV{'DANCE_ROOT'}";
+
+$daemons_running = 0;
+$em_running = 0;
+$ns_running = 0;
+
+$daemons = 2;
+@ports = ( 60001, 60002 );
+@iorfiles = ( "Sender.ior", "Receiver.ior" );
+@nodenames = ( "SenderNode", "ReceiverNode" );
+
+$status = 0;
+$dat_file = "NodeManagerMap.dat";
+$cdp_file = "DeploymentPlan.cdp";
+
+$nsior = PerlACE::LocalFile ("ns.ior");
+
+PerlACE::add_lib_path ('../lib');
+
+unlink $nsior;
+
+$E = 0;
+$EM = 0;
+
+# Delete if there are any .ior files.
+sub delete_ior_files {
+ for ($i = 0; $i < $daemons; ++$i) {
+ unlink $iorfiles[$i];
+ }
+ unlink PerlACE::LocalFile ("EM.ior");
+ unlink PerlACE::LocalFile ("Receiver.ior");
+ unlink PerlACE::LocalFile ("Sender.ior");
+ unlink PerlACE::LocalFile ("DAM.ior");
+ unlink PerlACE::LocalFile ("ns.ior");
+}
+
+sub kill_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i) {
+ $Daemons[$i]->Kill (); $Daemons[$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);
+ }
+
+}
+
+sub run_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i)
+ {
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+ $nodename = $nodenames[$i];
+ $iiop = "iiop://localhost:$port";
+ $node_app = "$CIAO_ROOT/bin/ciao_componentserver";
+
+ $d_cmd = "$DAnCE/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";
+
+ $Daemons[$i] = new PerlACE::Process ($d_cmd, $d_param);
+ $result = $Daemons[$i]->Spawn ();
+ push(@processes, $Daemons[$i]);
+
+ if (PerlACE::waitforfile_timed ($iorfile,
+ 30) == -1) {
+ print STDERR
+ "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
+ for (; $i >= 0; --$i) {
+ $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1);
+ }
+ return -1;
+ }
+ }
+ return 0;
+}
+
+delete_ior_files ();
+
+# Invoke naming service
+
+$NS = new PerlACE::Process ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 0 -ORBEndpoint iiop://localhost:60003 -o ns.ior");
+
+$NS->Spawn ();
+
+print STDERR "Starting Naming Service with -m 0 -ORBEndpoint iiop://localhost:60003 -o ns.ior\n";
+
+if (PerlACE::waitforfile_timed ($nsior, $PerlACE::wait_interval_for_process_creation) == -1)
+{
+ print STDERR "ERROR: cannot find naming service IOR file\n";
+ $NS->Kill ();
+ exit 1;
+}
+
+$ns_running = 1;
+
+# Set up NamingService environment
+$ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService";
+
+
+# Invoke node daemons.
+print "Invoking node daemons\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 -eEM.ior \n";
+$EM = new PerlACE::Process ("$DAnCE/bin/dance_execution_manager",
+ "-eEM.ior --domain-nc corbaloc:rir:/NameService");
+$EM->Spawn ();
+
+if (PerlACE::waitforfile_timed ("EM.ior",
+ $PerlACE::wait_interval_for_process_creation) == -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 - start the application -\n";
+
+print "Start dance_plan_launcher.exe with -x DeploymentPlan.cdp -k file://EM.ior\n";
+$E =
+ new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher",
+ "-x DeploymentPlan.cdp -k file://EM.ior");
+
+$E->SpawnWaitKill (50);
+
+if (PerlACE::waitforfile_timed (
+ "Receiver.ior",
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: The ior file of receiver could not be found\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+if (PerlACE::waitforfile_timed ("Sender.ior",
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: The ior file of sender could not be found\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+print "Sleeping 20 seconds to allow task to complete\n";
+sleep (20);
+
+# print "Invoking the controller ($controller_exec -k file://Sender.ior)\n";
+# $controller = new PerlACE::Process ("$controller_exec", "-k file://Sender.ior");
+# $result = $controller->SpawnWaitKill (30);
+
+# if ($result != 0) {
+# print STDERR "ERROR: The controller returned $result\n";
+# $status = 1;
+# }
+
+# Invoke executor - stop the application -.
+print "Invoking executor - stop the application -\n";
+print "by running dance_plan_launcher.exe with -k file://EM.ior -x DeploymentPlan.cdp -q\n";
+
+$E =
+ new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher",
+ "-k file://EM.ior -x DeploymentPlan.cdp -q");
+$E->SpawnWaitKill (30);
+
+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/connectors/dds4ccm/examples/Hello/descriptors/run_test_dds.pl b/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_test_dds.pl
new file mode 100755
index 00000000000..61a5f8967e5
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Hello/descriptors/run_test_dds.pl
@@ -0,0 +1,24 @@
+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;
+
+$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
+$TAO_ROOT = "$ENV{'TAO_ROOT'}";
+$DAnCE = "$ENV{'DANCE_ROOT'}";
+
+print "Start receiver\n";
+$R = new PerlACE::Process ("$CIAO_ROOT/connectors/dds4ccm/examples/Hello/DDS_Receiver/DDS_receiver", "");
+$R->Spawn();
+print "Start sender\n";
+$S = new PerlACE::Process ("$CIAO_ROOT/connectors/dds4ccm/examples/Hello/DDS_Sender/DDS_Sender",
+ "-i 10000 -t -s \"Hello, World\"");
+$S->SpawnWaitKill (30);
+$R->Kill ();
+
+exit 0;
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Quoter/Base/Quoter_Base.idl b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Base/Quoter_Base.idl
new file mode 100644
index 00000000000..750908a015d
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Base/Quoter_Base.idl
@@ -0,0 +1,23 @@
+// $Id$
+
+/**
+ * @file Quoter_Base.idl
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ */
+
+#ifndef QUOTER_BASE_IDL
+#define QUOTER_BASE_IDL
+
+module Quoter
+{
+ struct Stock_Info
+ {
+ unsigned long low;
+ unsigned long high;
+ unsigned long current;
+ string symbol; //@key
+ };
+ typedef sequence<Stock_Info> Stock_Info_Seq;
+};
+
+#endif
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Quoter/Base/Quoter_Base.mpc b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Base/Quoter_Base.mpc
new file mode 100644
index 00000000000..60af70abeb3
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Base/Quoter_Base.mpc
@@ -0,0 +1,74 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -o ../lib -u DDS -n Quoter_Base"
+
+project(DDS_Quoter_Base_idl_gen) : taoidldefaults, anytypecode {
+ custom_only = 1
+ idlflags -= -St -Sa
+ idlflags += -SS -Gxhst \
+ -Wb,stub_export_macro=QUOTER_BASE_STUB_Export \
+ -Wb,stub_export_include=Quoter_Base_stub_export.h
+
+ IDL_Files {
+ Quoter_Base.idl
+ }
+}
+
+project(DDS_Quoter_Base_ndds_ts_gen) : ndds_ts_defaults {
+ custom_only = 1
+ after += DDS_Quoter_Base_idl_gen
+ ndds_ts_flags += -corba Quoter_BaseC.h -orb ACE_TAO1.7
+
+ NDDSTypeSupport_Files {
+ Quoter_Base.idl
+ }
+}
+
+project(DDS_Quoter_Base_NDDS_TS) : nddslib, taolib {
+ after += DDS_Quoter_Base_ndds_ts_gen DDS_Quoter_Base_stub
+ libs += DDS_Quoter_Base_stub
+ libout = ../lib
+ libpaths += ../lib
+ sharedname = DDS_Quoter_Base_NDDS_TS
+ dynamicflags = NDDS_USER_DLL_EXPORT
+
+ Source_Files {
+ Quoter_Base.cxx
+ Quoter_BasePlugin.cxx
+ Quoter_BaseSupport.cxx
+ }
+
+ Header_Files {
+ Quoter_Base.h
+ Quoter_BasePlugin.h
+ Quoter_BaseSupport.h
+ }
+
+ Inline_Files {
+ }
+}
+
+project(DDS_Quoter_Base_stub) : ccm_stub {
+ after += DDS_Quoter_Base_idl_gen
+ libs +=
+ libout = ../lib
+ libpaths += ../lib
+ sharedname = DDS_Quoter_Base_stub
+ dynamicflags = QUOTER_BASE_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Quoter_BaseC.cpp
+ }
+
+ Header_Files {
+ Quoter_BaseC.h
+ Quoter_Base_stub_export.h
+ }
+
+ Inline_Files {
+ Quoter_BaseC.inl
+ }
+}
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Quoter/Broker/Broker.idl b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Broker/Broker.idl
new file mode 100644
index 00000000000..6da51908cd2
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Broker/Broker.idl
@@ -0,0 +1,36 @@
+// $Id$
+
+/**
+ * @file Broker.idl
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ */
+
+#ifndef BROKER_IDL
+#define BROKER_IDL
+
+#include "Connector/Quoter_Connector.idl"
+#include "Connector/Quoter_ConnectorE.idl"
+
+module Quoter
+{
+ component Broker
+ {
+ port CCM_DDS::DDS_Listen info_out;
+ provides CCM_DDS::ConnectorStatusListener info_out_connector_status;
+ };
+};
+
+/*
+#include <dds4ccm/idl/dds4ccm_Connector_Base.idl3p>
+#include <dds4ccm/idl/dds4ccm_Port_RawListen.idl3p>
+
+module Quoter
+{
+ component Broker
+ {
+ port CCM_DDS::DDS_RawListen <Stock_Info> info;
+ };
+};
+
+ */
+#endif
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Quoter/Broker/Broker.mpc b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Broker/Broker.mpc
new file mode 100644
index 00000000000..d6f1b5aa469
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Broker/Broker.mpc
@@ -0,0 +1,139 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -l ../lib -o ../lib -u DDS -b dds4ccm_base Broker"
+
+project(DDS_Broker_idl_gen) : componentidldefaults {
+ custom_only = 1
+ after += DDS_Quoter_Connector_idl_gen
+ idlflags += -Wb,stub_export_macro=BROKER_STUB_Export \
+ -Wb,stub_export_include=Broker_stub_export.h \
+ -Wb,skel_export_macro=BROKER_SVNT_Export \
+ -Wb,skel_export_include=Broker_svnt_export.h \
+ -Wb,svnt_export_macro=BROKER_SVNT_Export \
+ -Wb,svnt_export_include=Broker_svnt_export.h \
+ -Wb,exec_export_macro=BROKER_EXEC_Export \
+ -Wb,exec_export_include=Broker_exec_export.h -I..
+
+ IDL_Files {
+ Broker.idl
+ }
+}
+
+project(DDS_Broker_lem_gen) : ciaoidldefaults {
+ after += DDS_Broker_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=BROKER_LEM_STUB_Export \
+ -Wb,stub_export_include=Broker_lem_stub_export.h \
+ -SS -Gxhst -I..
+
+ IDL_Files {
+ BrokerE.idl
+ }
+}
+
+project(DDS_Broker_lem_stub) : ccm_svnt, dds4ccm_base {
+ after += DDS_Broker_lem_gen DDS_Broker_stub DDS_Quoter_Connector_stub DDS_Quoter_Base_stub
+ libs += Broker_stub DDS_Quoter_Connector_stub DDS_Quoter_Base_stub
+ libpaths += ../lib
+ libout = ../lib
+ includes += ..
+ sharedname = Broker_lem_stub
+ dynamicflags = BROKER_LEM_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ BrokerEC.cpp
+ }
+
+ Header_Files {
+ BrokerEC.h
+ Broker_lem_stub_export.h
+ }
+
+ Inline_Files {
+ BrokerEC.inl
+ }
+}
+
+project(DDS_Broker_stub) : ccm_stub, dds4ccm_base {
+ after += DDS_Broker_idl_gen DDS_Quoter_Connector_stub DDS_Quoter_Base_stub DDS_Quoter_Connector_lem_gen
+ libs += DDS_Quoter_Connector_stub DDS_Quoter_Base_stub
+ libpaths += ../lib
+ libout = ../lib
+ includes += ..
+ sharedname = Broker_stub
+ dynamicflags = BROKER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ BrokerC.cpp
+ }
+
+ Header_Files {
+ BrokerC.h
+ Broker_stub_export.h
+ }
+
+ Inline_Files {
+ BrokerC.inl
+ }
+}
+
+project(DDS_Broker_exec) : ciao_executor, dds4ccm_base {
+ after += DDS_Broker_lem_stub DDS_Broker_stub DDS_Quoter_Base_stub DDS_Quoter_Connector_stub DDS_Quoter_Connector_lem_stub DDS4CCM_lem_stub
+ sharedname = Broker_exec
+ libs += Broker_stub Broker_lem_stub DDS_Quoter_Base_stub DDS_Quoter_Connector_stub DDS_Quoter_Connector_lem_stub DDS4CCM_lem_stub
+ libpaths += ../lib
+ libout = ../lib
+ includes += ..
+ dynamicflags = BROKER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Broker_exec.cpp
+ }
+
+ Header_Files {
+ Broker_exec.h
+ Broker_exec_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+
+project(DDS_Broker_svnt) : ciao_servant, dds4ccm_base, nddslib {
+ after += DDS_Broker_lem_stub DDS_Quoter_Base_stub DDS_Quoter_Connector_stub DDS_Quoter_Connector_svnt DDS_Broker_exec DDS_Quoter_Connector_lem_stub DDS4CCM_lem_stub DDS4CCM_skel
+ sharedname = Broker_svnt
+ libs += Broker_stub Broker_lem_stub DDS_Quoter_Base_stub DDS_Quoter_Connector_stub DDS_Quoter_Connector_svnt Broker_exec DDS_Quoter_Connector_lem_stub DDS4CCM_lem_stub DDS4CCM_skel
+ libpaths += ../lib
+ libout = ../lib
+ includes += ..
+ dynamicflags = BROKER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ BrokerS.cpp
+ Broker_svnt.cpp
+ }
+
+ Header_Files {
+ BrokerS.h
+ Broker_svnt.h
+ Broker_svnt_export.h
+ }
+
+ Inline_Files {
+ BrokerS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Quoter/Broker/Broker_exec.cpp b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Broker/Broker_exec.cpp
new file mode 100644
index 00000000000..cd1dff01e7c
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Broker/Broker_exec.cpp
@@ -0,0 +1,526 @@
+// -*- C++ -*-
+//
+// $Id$
+
+/**
+ * Code generated by the The ACE ORB (TAO) IDL Compiler v1.7.2
+ * 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:1278
+
+#include "Broker_exec.h"
+#include "ace/Reactor.h"
+#include "ace/OS_NS_time.h"
+
+
+
+namespace CIAO_Quoter_Broker_Impl
+{
+
+ read_action_Generator::read_action_Generator (Broker_exec_i &callback)
+ : active_ (0),
+ pulse_callback_ (callback)
+ {
+ // initialize the reactor
+ this->reactor (ACE_Reactor::instance ());
+ }
+
+ read_action_Generator::~read_action_Generator ()
+ {
+ }
+
+ int
+ read_action_Generator::open_h ()
+ {
+ // convert the task into a active object that runs in separate thread
+ return this->activate ();
+ }
+
+ int
+ read_action_Generator::close_h ()
+ {
+ this->reactor ()->end_reactor_event_loop ();
+ // wait for all threads in the task to exit before it returns
+ return this->wait ();
+ }
+
+ int
+ read_action_Generator::start (CORBA::ULong hertz)
+ {
+ // return if not valid
+ if (hertz == 0 || this->active_ != 0)
+ {
+ return -1;
+ }
+
+ // calculate the interval time
+ long usec = 1000 / hertz;
+
+ std::cerr << "Starting read_action_generator with hertz of " << hertz << ", interval of "
+ << usec << std::endl;
+
+ if (this->reactor ()->schedule_timer (this,
+ 0,
+ ACE_Time_Value(0),
+ ACE_Time_Value(3)) == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Unable to setup Timer\n"),
+ -1);
+
+ }
+
+ this->active_ = 1;
+ return 0;
+ }
+
+ int
+ read_action_Generator::stop (void)
+ {
+ // return if not valid.
+ if (this->active_ == 0)
+ {
+ return -1;
+ }
+ // cancle the timer
+ this->reactor ()->cancel_timer (this);
+ this->active_ = 0;
+ return 0;
+ }
+
+ int
+ read_action_Generator::active (void)
+ {
+ return this->active_;
+ }
+
+ int
+ read_action_Generator::handle_close (ACE_HANDLE handle,
+ ACE_Reactor_Mask close_mask)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("[%x] handle = %d, close_mask = %d\n"),
+ this,
+ handle,
+ close_mask));
+ return 0;
+ }
+
+ int
+ read_action_Generator::handle_timeout (const ACE_Time_Value &,
+ const void *)
+ {
+ // Notify the subscribers
+ // this->pulse_callback_.read_one();
+ // this->pulse_callback_.read_one_history();
+ // this->pulse_callback_.read_all();
+ // this->pulse_callback_.read_all_history();
+ return 0;
+ }
+
+ int
+ read_action_Generator::svc (void)
+ {
+ // define the owner of the reactor thread
+ this->reactor ()->owner (ACE_OS::thr_self ());
+
+ // run event loop to wait for event, and then dispatch them to corresponding handlers
+ this->reactor ()->run_reactor_event_loop ();
+
+ return 0;
+ }
+
+ void
+ Broker_exec_i::read_one (void)
+ {
+ std::cerr << "read_one" << std::endl;
+ ::Quoter::Stock_Info stock_info;
+ stock_info.symbol= "IBM";
+ ::CCM_DDS::ReadInfo readinfo;
+
+ try
+ {
+ this->reader_->read_one (stock_info, readinfo );
+ time_t tim = readinfo.timestamp.sec;
+ printf("Read_Info. -> date = %s",ctime(&tim));
+ printf ("Stock_Info_Read_One: received a stock_info for <%s> at %u:%u:%u\n",
+ stock_info.symbol.in (),
+ stock_info.low,
+ stock_info.current,
+ stock_info.high);
+ }
+ catch(CCM_DDS::NonExistent& )
+ {
+ printf("Stock_Info_Read_One: no stock_info received\n");
+ }
+ }
+
+ void
+ Broker_exec_i::read_all (void)
+ {
+ std::cerr << "read_all" << std::endl;
+
+ ::Quoter::Stock_Info_Seq_var stock_infos;
+ ::CCM_DDS::ReadInfoSeq_var readinfoseq;
+ this->reader_->read_all(stock_infos.out(), readinfoseq.out());
+ if(readinfoseq->length()!= 0)
+ {
+ int nr_of_infos = readinfoseq->length();
+ for(int i = 0; i < nr_of_infos; i ++)
+ {
+ time_t tim = readinfoseq[i].timestamp.sec;
+ printf("Read_Info.timestamp -> date = %s",ctime(&tim));
+ }
+ }
+ if(stock_infos->length()!= 0)
+ {
+ for(CORBA::ULong i = 0; i < stock_infos->length(); i ++)
+ {
+ printf ("Stock_Info_Read_All: Number %d : received a stock_info for <%s> at %u:%u:%u\n",
+ i,
+ stock_infos[i].symbol.in (),
+ stock_infos[i].low,
+ stock_infos[i].current,
+ stock_infos[i].high);
+ }
+ }
+ }
+ void
+ Broker_exec_i::read_all_history (void)
+ {
+ std::cerr << "read_all_history" << std::endl;
+
+ ::Quoter::Stock_Info_Seq_var stock_infos;
+ ::CCM_DDS::ReadInfoSeq_var readinfoseq;
+ this->reader_->read_all_history(stock_infos.out(), readinfoseq.out());
+ if(readinfoseq->length()!= 0)
+ {
+ int nr_of_infos = readinfoseq->length();
+ for(int i = 0; i < nr_of_infos; i ++)
+ {
+ time_t tim = readinfoseq[i].timestamp.sec;
+ printf("Read_Info.timestamp -> date = %s",ctime(&tim));
+ }
+ }
+ if(stock_infos->length()!= 0)
+ {
+ int nr_of_stock_infos = stock_infos->length();
+ for(CORBA::ULong i = 0; i < (CORBA::ULong)nr_of_stock_infos; i ++)
+ {
+ printf ("Stock_Info_Read_All_History: Number %d : received a stock_info for <%s> at %u:%u:%u\n",
+ i,
+ stock_infos[i].symbol.in (),
+ stock_infos[i].low,
+ stock_infos[i].current,
+ stock_infos[i].high);
+ }
+ }
+ }
+ // read all samples of an given instance
+ void
+ Broker_exec_i::read_one_history (void)
+ {
+ std::cerr << "read_one_history" << std::endl;
+ ::Quoter::Stock_Info stock_info;
+ stock_info.symbol= "IBM"; //key of instance to read
+
+ ::Quoter::Stock_Info_Seq_var stock_infos;
+ ::CCM_DDS::ReadInfoSeq_var readinfoseq;
+ try
+ {
+ this->reader_->read_one_history(stock_info,stock_infos.out(), readinfoseq.out());
+ if(readinfoseq->length()!= 0)
+ {
+ int nr_of_infos = readinfoseq->length();
+ for(int i = 0; i < nr_of_infos; i ++)
+ {
+ time_t tim = readinfoseq[i].timestamp.sec;
+ printf("Read_Info.timestamp -> date = %s",ctime(&tim));
+ }
+ }
+ if(stock_infos->length()!= 0)
+ {
+ int nr_of_stock_infos = stock_infos->length();
+ for(CORBA::ULong i = 0; i < (CORBA::ULong)nr_of_stock_infos; i ++)
+ {
+ printf ("Stock_Info_Read_One_History: Number %d : received a stock_info for <%s> at %u:%u:%u\n",
+ i,
+ stock_infos[i].symbol.in (),
+ stock_infos[i].low,
+ stock_infos[i].current,
+ stock_infos[i].high);
+ }
+ }
+ }
+ catch(CCM_DDS::NonExistent& )
+ {
+ printf("Stock_Info_Read_One_History: no stock_info's received\n");
+ }
+ }
+ //============================================================
+ // Facet Executor Implementation Class: Stock_Info_RawListener_exec_i
+ //============================================================
+
+ Stock_Info_RawListener_exec_i::Stock_Info_RawListener_exec_i (void)
+ {
+ }
+
+ Stock_Info_RawListener_exec_i::~Stock_Info_RawListener_exec_i (void)
+ {
+ }
+
+ // Operations from ::CCM_DDS::Stock_Info_RawListener
+
+ void
+ Stock_Info_RawListener_exec_i::on_data (
+ const ::Quoter::Stock_Info & an_instance,
+ const ::CCM_DDS::ReadInfo & /* info */)
+ {
+ printf ("Stock_Info_RawListener: received a stock_info for <%s> at %u:%u:%u\n",
+ an_instance.symbol.in (),
+ an_instance.low,
+ an_instance.current,
+ an_instance.high);
+ }
+ //============================================================
+ // Facet Executor Implementation Class: ConnectorStatusListener_exec_i
+ //============================================================
+
+ ConnectorStatusListener_exec_i::ConnectorStatusListener_exec_i (void)
+ {
+ }
+
+ ConnectorStatusListener_exec_i::~ConnectorStatusListener_exec_i (void)
+ {
+
+ }
+
+ // Operations from ::CCM_DDS::ConnectorStatusListener
+ void ConnectorStatusListener_exec_i::on_inconsistent_topic(
+ ::DDS::Topic_ptr /*the_topic*/,
+ const DDS::InconsistentTopicStatus & /*status*/)
+ {
+ printf("ConnectorStatusListener_exec_i::on_inconsistent_topic\n");
+ }
+
+ void ConnectorStatusListener_exec_i::on_requested_incompatible_qos(
+ ::DDS::DataReader_ptr /*the_reader*/,
+ const DDS::RequestedIncompatibleQosStatus & /*status*/)
+ {
+ printf("ConnectorStatusListener_exec_i::on_requested_incompatible_qos\n");
+ }
+
+ void ConnectorStatusListener_exec_i::on_sample_rejected(
+ ::DDS::DataReader_ptr /*the_reader*/,
+ const DDS::SampleRejectedStatus & /*status*/)
+ {
+ printf("ConnectorStatusListener_exec_i::on_sample_rejected\n");
+ }
+
+ void ConnectorStatusListener_exec_i::on_offered_deadline_missed(
+ ::DDS::DataWriter_ptr /*the_writer*/,
+ const DDS::OfferedDeadlineMissedStatus & /*status*/)
+ {
+ printf("ConnectorStatusListener_exec_i::on_offered_deadline_missed\n");
+ }
+
+ void ConnectorStatusListener_exec_i::on_offered_incompatible_qos(
+ ::DDS::DataWriter_ptr /*the_writer*/,
+ const DDS::OfferedIncompatibleQosStatus & /*status*/)
+ {
+ printf("ConnectorStatusListener_exec_i::on_offered_incompatible_qos\n");
+ }
+
+ void ConnectorStatusListener_exec_i::on_unexpected_status(
+ ::DDS::Entity_ptr /*the_entity*/,
+ ::DDS::StatusKind /*status_kind*/)
+ {
+ printf("ConnectorStatusListener_exec_i::on_unexpected_status\n");
+ }
+
+ //============================================================
+ // Facet Executor Implementation Class: PortStatusListener_exec_i
+ //============================================================
+
+ PortStatusListener_exec_i::PortStatusListener_exec_i (void)
+ {
+ printf("####### construct PortStatusListener ######");
+ }
+
+ PortStatusListener_exec_i::~PortStatusListener_exec_i (void)
+ {
+ }
+
+ // Operations from ::CCM_DDS::PortStatusListener
+
+ void
+ PortStatusListener_exec_i::on_requested_deadline_missed (
+ ::DDS::DataReader_ptr /* the_reader */,
+ const ::DDS::RequestedDeadlineMissedStatus & /* status */)
+ {
+ printf("####### deadline missed ######");
+ }
+
+ void
+ PortStatusListener_exec_i::on_sample_lost (
+ ::DDS::DataReader_ptr /*the_reader*/ ,
+ const ::DDS::SampleLostStatus & status )
+ {
+ printf("####### sample lost ######");
+ printf(" status.total_count = %d\n", status.total_count);
+ printf(" status.total_count_change = %d\n", status.total_count_change);
+ }
+
+ //============================================================
+ // Component Executor Implementation Class: Broker_exec_i
+ //============================================================
+
+ Broker_exec_i::Broker_exec_i (void)
+ {
+ ACE_OS::srand (static_cast <u_int> (ACE_OS::time ()));
+ this->ticker_ = new read_action_Generator (*this);
+ }
+
+ Broker_exec_i::~Broker_exec_i (void)
+ {
+ printf ("Broker_exec_i::~Broker_exec_i\n");
+ }
+
+ // Supported operations and attributes.
+
+ // Component attributes.
+
+ // Port operations.
+
+ ::CCM_DDS::CCM_Stock_Info_RawListener_ptr
+ Broker_exec_i::get_info_out_data_listener (void)
+ {
+ printf ("*************** out listener\n");
+ return new Stock_Info_RawListener_exec_i ();
+ }
+
+ ::CCM_DDS::CCM_PortStatusListener_ptr
+ Broker_exec_i::get_info_out_status (void)
+ {
+ printf ("*************** out status************************\n");
+ //return ::CCM_DDS::CCM_PortStatusListener::_nil ();
+ return new PortStatusListener_exec_i ();
+ }
+
+ ::CCM_DDS::CCM_ConnectorStatusListener_ptr
+ Broker_exec_i::get_info_out_connector_status (void)
+ {
+ printf ("*************** out connector status************************\n");
+ return new ConnectorStatusListener_exec_i ();
+ }
+
+ // Operations from Components::SessionComponent.
+
+ void
+ Broker_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ ::Quoter::CCM_Broker_Context_var lctx =
+ ::Quoter::CCM_Broker_Context::_narrow (ctx);
+
+ if ( ::CORBA::is_nil (lctx.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+
+ this->context_ = lctx;
+ }
+
+ void
+ Broker_exec_i::configuration_complete (void)
+ {
+ std::cerr << ">>> Broker_exec_i::configuration_complete" << endl;
+ this->reader_ = this->context_->get_connection_info_out_data();
+// this->getter_ = this->context_->get_connection_info_get_out_data ();
+// this->ticker_->open_h ();
+ ::CCM_DDS::CCM_ConnectorStatusListener_var pl = this->get_info_out_connector_status();
+ }
+
+ void
+ Broker_exec_i::start (void)
+ {
+ std::cerr << ">>> Broker_exec_i::start" << endl;
+ this->ticker_->start (500);
+ }
+
+ void
+ Broker_exec_i::stop (void)
+ {
+ std::cerr << ">>> Broker_exec_i::stop" << endl;
+ this->ticker_->stop ();
+ }
+
+ void
+ Broker_exec_i::ccm_activate (void)
+ {
+ std::cerr << ">>> Broker_exec_i::ccm_activate" << endl;
+ ::CCM_DDS::ListenerControl_var lc =
+ this->context_->get_connection_info_out_data_control ();
+
+ if (CORBA::is_nil (lc.in ()))
+ {
+ printf ("Error: Listener control receptacle is null!\n");
+ throw CORBA::INTERNAL ();
+ }
+ //in case of testing RawListener set lc-> enabled true
+ lc->enabled (true);
+ //in case of testing Reader set lc-> enabled false, so the RawListener doesn't consume all the messages
+ //lc->enabled (false);
+ this->start();
+ }
+
+ void
+ Broker_exec_i::ccm_passivate (void)
+ {
+ std::cerr << ">>> Broker_exec_i::ccm_passivate" << endl;
+ this->stop ();
+ }
+
+ void
+ Broker_exec_i::ccm_remove (void)
+ {
+ std::cerr << ">>> Broker_exec_i::ccm_remove" << endl;
+ this->ticker_->close_h ();
+ }
+
+ extern "C" BROKER_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Quoter_Broker_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+ printf("in create Broker\n");
+ ACE_NEW_NORETURN (
+ retval,
+ Broker_exec_i);
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Quoter/Broker/Broker_exec.h b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Broker/Broker_exec.h
new file mode 100644
index 00000000000..1910083e6f4
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Broker/Broker_exec.h
@@ -0,0 +1,238 @@
+// -*- C++ -*-
+//
+// $Id$
+
+/**
+ * Code generated by the The ACE ORB (TAO) IDL Compiler v1.7.2
+ * 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:1217
+
+#ifndef CIAO_BROKER_EXEC_H_
+#define CIAO_BROKER_EXEC_H_
+
+#include /**/ "ace/pre.h"
+
+#include "BrokerEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include /**/ "Broker_exec_export.h"
+#include "tao/LocalObject.h"
+#include "ace/Task.h"
+#include "ace/Reactor.h"
+
+namespace CIAO_Quoter_Broker_Impl
+{
+
+ class Broker_exec_i;
+ /**
+ * @class reader activity generator
+ *
+ * @brief an active object used by StockBroker to perform a periodical read action
+ *
+ */
+ class read_action_Generator : public ACE_Task_Base
+ {
+ public:
+ read_action_Generator (Broker_exec_i &callback);
+
+ ~read_action_Generator ();
+
+ /// Hook method that performs application-defined initialization activities
+ int open_h (void);
+
+ /// Hook method that performs application-defined destruction activites
+ int close_h (void);
+
+ /// appliation-defined method for starting the pulse-generation service
+ int start (CORBA::ULong hertz);
+
+ /// application-defined method for stopping the pulse-generation service
+ int stop (void);
+
+ /// Indicate whether the current object is active
+ int active (void);
+
+ /// Handle the timeout.
+ virtual int handle_timeout (const ACE_Time_Value &tv,
+ const void *arg);
+
+ /// Called when timer handler is removed.
+ virtual int handle_close (ACE_HANDLE handle,
+ ACE_Reactor_Mask close_mask);
+
+ /// Hook methods implemnting the task's service processing,
+ /// invoked by all threads activated by activate () method
+ virtual int svc (void);
+
+ private:
+ /// Tracking whether we are actively generating pulse or not.
+ int active_;
+
+ /// Maintains a handle that actually process the event
+ Broker_exec_i &pulse_callback_;
+
+ };
+
+
+
+ class BROKER_EXEC_Export Stock_Info_RawListener_exec_i
+ : public virtual ::CCM_DDS::CCM_Stock_Info_RawListener,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Stock_Info_RawListener_exec_i (void);
+ virtual ~Stock_Info_RawListener_exec_i (void);
+
+ // Operations and attributes from ::CCM_DDS::Stock_Info_RawListener
+
+ // TAO_IDL - Generated from
+ // be/be_visitor_operation/operation_ch.cpp:46
+
+ virtual void
+ on_data (
+ const ::Quoter::Stock_Info & an_instance,
+ const ::CCM_DDS::ReadInfo & info);
+ };
+ class BROKER_EXEC_Export PortStatusListener_exec_i
+ : public virtual ::CCM_DDS::CCM_PortStatusListener,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ PortStatusListener_exec_i (void);
+ virtual ~PortStatusListener_exec_i (void);
+
+ // Operations and attributes from ::CCM_DDS::PortStatusListener
+
+ // TAO_IDL - Generated from
+ // be/be_visitor_operation/operation_ch.cpp:46
+
+ virtual void
+ on_requested_deadline_missed (
+ ::DDS::DataReader_ptr the_reader,
+ const ::DDS::RequestedDeadlineMissedStatus & status);
+
+ // TAO_IDL - Generated from
+ // be/be_visitor_operation/operation_ch.cpp:46
+
+ virtual void
+ on_sample_lost (
+ ::DDS::DataReader_ptr the_reader,
+ const ::DDS::SampleLostStatus & status);
+ };
+
+
+class BROKER_EXEC_Export ConnectorStatusListener_exec_i
+ : public virtual ::CCM_DDS::CCM_ConnectorStatusListener,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ ConnectorStatusListener_exec_i (void);
+ virtual ~ConnectorStatusListener_exec_i (void);
+
+ virtual
+ void on_inconsistent_topic( ::DDS::Topic_ptr the_topic,
+ const DDS::InconsistentTopicStatus & status);
+ virtual
+ void on_requested_incompatible_qos( ::DDS::DataReader_ptr the_reader,
+ const DDS::RequestedIncompatibleQosStatus & status);
+ virtual
+ void on_sample_rejected( ::DDS::DataReader_ptr the_reader,
+ const DDS::SampleRejectedStatus & status);
+ virtual
+ void on_offered_deadline_missed( ::DDS::DataWriter_ptr the_writer,
+ const DDS::OfferedDeadlineMissedStatus & status);
+ virtual
+ void on_offered_incompatible_qos( ::DDS::DataWriter_ptr the_writer,
+ const DDS::OfferedIncompatibleQosStatus & status);
+ virtual
+ void on_unexpected_status( ::DDS::Entity_ptr the_entity,
+ ::DDS::StatusKind status_kind);
+
+ };
+
+
+ class BROKER_EXEC_Export Broker_exec_i
+ : public virtual Broker_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Broker_exec_i (void);
+ virtual ~Broker_exec_i (void);
+
+ // Supported operations and attributes.
+
+ // Component attributes.
+
+ // Port operations.
+ virtual ::CCM_DDS::CCM_ConnectorStatusListener_ptr
+ get_info_out_connector_status (void);
+
+
+
+ virtual ::CCM_DDS::CCM_Stock_Info_RawListener_ptr
+ get_info_out_data_listener (void);
+
+ virtual ::CCM_DDS::CCM_PortStatusListener_ptr
+ get_info_out_status (void);
+ void read_one (void);
+ void read_one_history (void);
+ void read_all(void);
+ void read_all_history(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);
+ virtual void start (void);
+ virtual void stop (void);
+
+
+
+ private:
+ ::Quoter::CCM_Broker_Context_var context_;
+ read_action_Generator * ticker_;
+ ::CCM_DDS::Stock_Info_Reader_var reader_;
+ ::CCM_DDS::Stock_Info_Getter_var getter_;
+ };
+
+ extern "C" BROKER_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Quoter_Broker_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* ifndef */
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.idl b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.idl
new file mode 100644
index 00000000000..2c19d4f0940
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.idl
@@ -0,0 +1,153 @@
+// $Id$
+
+/**
+ * @file Quoter_Connector.idl
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ *
+ * by-hand translation of the idl3p.
+ */
+
+#ifndef QUOTER_CONNECTOR_IDL_
+#define QUOTER_CONNECTOR_IDL_
+
+#include <Components.idl>
+#include "connectors/dds4ccm/idl/dds4ccm_ListenerControl.idl3"
+#include "connectors/dds4ccm/idl/dds4ccm_ListenerControlE.idl"
+#include "connectors/dds4ccm/idl/dds4ccm_PortStatusListener.idl3"
+#include "connectors/dds4ccm/idl/dds4ccm_PortStatusListenerE.idl"
+#include "connectors/dds4ccm/idl/dds4ccm_ConnectorStatusListener.idl3"
+#include "connectors/dds4ccm/idl/dds4ccm_ConnectorStatusListenerE.idl"
+#include "connectors/dds4ccm/idl/dds4ccm_ListenerControl.idl3"
+#include "connectors/dds4ccm/idl/dds_rtf2_dcpsE.idl"
+#include "Base/Quoter_Base.idl"
+
+module CCM_DDS
+{
+ // @from DDS_Write for Quoter::Stock_Info
+ interface Stock_Info_Writer
+ {
+ void write (in Quoter::Stock_Info an_instance)
+ raises (InternalError);
+ };
+
+ // @from DDS_Update for Quoter::Stock_Info
+ interface Stock_Info_Updater
+ {
+ void create (in Quoter::Stock_Info an_instance)
+ raises (AlreadyCreated,
+ InternalError);
+ void update(in Quoter::Stock_Info an_instance)
+ raises (NonExistent,
+ InternalError);
+ void delete (in Quoter::Stock_Info an_instance)
+ raises (NonExistent,
+ InternalError);
+ readonly attribute boolean is_lifecycle_checked;
+ };
+
+ interface Stock_Info_Getter
+ {
+ boolean get_all (out Quoter::Stock_Info_Seq instances, out ReadInfoSeq infos)
+ raises (InternalError);
+ boolean get_all_history (out Quoter::Stock_Info_Seq instances, out ReadInfoSeq infos)
+ raises (InternalError);
+ boolean get_one (inout Quoter::Stock_Info an_instance, out ReadInfo info)
+ raises (NonExistent,
+ InternalError);
+ boolean get_one_history (in Quoter::Stock_Info an_instance,
+ out Quoter::Stock_Info_Seq instances, out ReadInfoSeq infos)
+ raises (NonExistent,
+ InternalError);
+ boolean get_next (out Quoter::Stock_Info an_instance, out ReadInfo info)
+ raises (InternalError);
+ attribute QueryFilter filter
+ setraises (BadParameter);
+ attribute DDS::Duration_t time_out;
+ };
+
+ // @from Reader<T> from DDS_RawListen for Quoter::Stock_Info
+ interface Stock_Info_Reader
+ {
+ void read_all (out Quoter::Stock_Info_Seq instances, out ReadInfoSeq infos)
+ raises (InternalError);
+
+ void read_all_history (out Quoter::Stock_Info_Seq instances, out ReadInfoSeq infos)
+ raises (InternalError);
+
+ void read_one (inout Quoter::Stock_Info an_instance, out ReadInfo info)
+ raises (NonExistent,
+ InternalError);
+
+ void read_one_history (in Quoter::Stock_Info an_instance,
+ out Quoter::Stock_Info_Seq instances, out ReadInfoSeq infos)
+ raises (NonExistent,
+ InternalError);
+
+ attribute QueryFilter filter
+ setraises (BadParameter);
+ };
+
+ // @from RawListener for Quoter::Stock_Info
+ interface Stock_Info_RawListener
+ {
+ void on_data (in Quoter::Stock_Info an_instance, in ReadInfo info);
+ };
+
+ porttype DDS_Write {
+ uses CCM_DDS::Stock_Info_Writer data;
+ uses DDS::DataWriter dds_entity;
+ };
+ porttype DDS_Update {
+ uses CCM_DDS::Stock_Info_Updater data;
+ };
+ porttype DDS_Listen {
+ uses CCM_DDS::Stock_Info_Reader data;
+ uses CCM_DDS::Stock_Info_Getter get_data;
+ uses CCM_DDS::ListenerControl data_control;
+ provides CCM_DDS::Stock_Info_RawListener data_listener;
+ uses DDS::DataReader dds_entity;
+ provides CCM_DDS::PortStatusListener status;
+ };
+};
+
+module Quoter
+{
+ component Quoter_Connector //: CCM_DDS::DDS_TopicBase
+ {
+ // @from DDS_TopicBase
+ attribute string topic_name;
+ readonly attribute DDS::StringSeq key_fields;
+
+ // @from DDS_TopicBase : DDS_Base
+ uses CCM_DDS::ConnectorStatusListener error_listener;
+ attribute DDS::DomainId_t domain_id;
+ attribute string qos_profile;
+
+ // @from DDS_Write for Stock_Info
+ mirrorport CCM_DDS::DDS_Write info_in;
+
+ // @from DDS_Update for Stock_Info
+ mirrorport CCM_DDS::DDS_Update info_update;
+
+ // @from DDS_RawListen for Stock_Info
+ mirrorport CCM_DDS::DDS_Listen info_out;
+ };
+};
+
+/*
+#include <dds4ccm/idl/dds4ccm_Connector_Base.idl3p>
+#include <dds4ccm/idl/dds4ccm_Port_RawListen.idl3p>
+#include <dds4ccm/idl/dds4ccm_Port_Write.idl3p>
+
+module Quoter
+{
+ connector Quoter_Connector : CCM_DDS::DDS_TopicBase
+ {
+ mirrorport CCM_DDS::DDS_Write <Stock_Info> info_in;
+ mirrorport CCM_DDS::DDS_RawListen <Stock_Info> info_out;
+ };
+};
+
+ */
+
+#endif /* QUOTER_CONNECTOR_IDL3_ */
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.mpc b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.mpc
new file mode 100644
index 00000000000..e4dc625354c
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector.mpc
@@ -0,0 +1,145 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p DDS_Quoter_Base -l .. -o ../lib -u DDS Quoter_Connector"
+
+project(DDS_Quoter_Connector_idl_gen) : connectoridldefaults {
+ after += DDS4CCM_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=QUOTER_CONNECTOR_STUB_Export \
+ -Wb,stub_export_include=Quoter_Connector_stub_export.h \
+ -Wb,skel_export_macro=QUOTER_CONNECTOR_SVNT_Export \
+ -Wb,skel_export_include=Quoter_Connector_svnt_export.h \
+ -Wb,svnt_export_macro=QUOTER_CONNECTOR_SVNT_Export \
+ -Wb,svnt_export_include=Quoter_Connector_svnt_export.h \
+ -Wb,exec_export_macro=QUOTER_CONNECTOR_EXEC_Export \
+ -Wb,exec_export_include=Quoter_Connector_exec_export.h \
+ -I ..
+
+ IDL_Files {
+ Quoter_Connector.idl
+ }
+}
+
+project(DDS_Quoter_Connector_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ after += DDS_Quoter_Connector_idl_gen
+ idlflags += -Wb,stub_export_macro=QUOTER_CONNECTOR_LEM_STUB_Export \
+ -Wb,stub_export_include=Quoter_Connector_lem_stub_export.h \
+ -SS -Gxhst \
+ -I .. -I $(CIAO_ROOT)/connectors -I$(CIAO_ROOT)/connectors/dds4ccm/idl
+
+ IDL_Files {
+ Quoter_ConnectorE.idl
+ }
+}
+
+project(DDS_Quoter_Connector_lem_stub) : ccm_svnt, dds4ccm_base {
+ after += DDS_Quoter_Connector_lem_gen DDS_Quoter_Connector_stub DDS_Quoter_Base_stub
+ libs += DDS_Quoter_Base_stub DDS_Quoter_Connector_stub
+ libpaths += ../lib
+ libout = ../lib
+ includes += ..
+ sharedname = DDS_Quoter_Connector_lem_stub
+ dynamicflags = QUOTER_CONNECTOR_LEM_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Quoter_ConnectorEC.cpp
+ }
+
+ Header_Files {
+ Quoter_ConnectorEC.h
+ Quoter_Connector_lem_stub_export.h
+ }
+
+ Inline_Files {
+ Quoter_ConnectorEC.inl
+ }
+}
+
+project(DDS_Quoter_Connector_stub) : ccm_stub, dds4ccm_base {
+ after += DDS_Quoter_Connector_idl_gen DDS_Quoter_Base_stub
+ libs += DDS_Quoter_Base_stub
+ libpaths += ../lib
+ libout = ../lib
+ includes += ..
+ sharedname = DDS_Quoter_Connector_stub
+ dynamicflags = QUOTER_CONNECTOR_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Quoter_ConnectorC.cpp
+ }
+
+ Header_Files {
+ Quoter_ConnectorC.h
+ Quoter_Connector_stub_export.h
+ }
+
+ Inline_Files {
+ Quoter_ConnectorC.inl
+ }
+}
+
+project(DDS_Quoter_Connector_exec) : ciao_executor, dds4ccm_skel, nddslib {
+ after += DDS_Quoter_Connector_lem_stub DDS_Quoter_Connector_stub DDS4CCM_lem_stub CIAO_DDS4CCM_NDDS_Impl DDS_Quoter_Base_NDDS_TS
+ sharedname = DDS_Quoter_Connector_exec
+ libs += DDS_Quoter_Connector_stub DDS_Quoter_Connector_lem_stub DDS_Quoter_Base_stub CIAO_DDS4CCM_NDDS_Impl DDS4CCM_lem_stub DDS_Quoter_Base_NDDS_TS
+ libpaths += ../lib
+ libout = ../lib
+ includes += ..
+ dynamicflags = QUOTER_CONNECTOR_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Quoter_Connector_exec.cpp
+ }
+
+ Header_Files {
+ Quoter_Connector_exec.h
+ Quoter_Connector_exec_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+
+project(DDS_Quoter_Connector_svnt) : ciao_servant, dds4ccm_skel, nddslib {
+ after += DDS_Quoter_Connector_lem_stub DDS_Quoter_Connector_exec DDS_Quoter_Connector_stub DDS4CCM_lem_stub
+ sharedname = DDS_Quoter_Connector_svnt
+ libs += DDS_Quoter_Connector_stub \
+ DDS_Quoter_Connector_lem_stub \
+ DDS_Quoter_Base_stub \
+ DDS_Quoter_Connector_exec \
+ DDS4CCM_lem_stub
+ libpaths += ../lib
+ libout = ../lib
+ includes += ..
+ dynamicflags = QUOTER_CONNECTOR_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Quoter_ConnectorS.cpp
+ Quoter_Connector_svnt.cpp
+ }
+
+ Header_Files {
+ Quoter_ConnectorS.h
+ Quoter_Connector_svnt.h
+ Quoter_Connector_svnt_export.h
+ }
+
+ Inline_Files {
+ Quoter_ConnectorS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.cpp b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.cpp
new file mode 100644
index 00000000000..b5013ed743f
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.cpp
@@ -0,0 +1,30 @@
+// -*- C++ -*-
+// $Id$
+
+#include "Quoter_Connector_exec.h"
+
+namespace CIAO_Quoter_Quoter_Connector_Impl
+{
+ Quoter_Connector_exec_i::Quoter_Connector_exec_i (const char * topic_name)
+ : Connector_T<Stock_Info_DDS_Traits, Stock_Info_Connector_Traits> (topic_name)
+ {
+ }
+
+ Quoter_Connector_exec_i::~Quoter_Connector_exec_i (void)
+ {
+ }
+
+ extern "C" QUOTER_CONNECTOR_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Quoter_Quoter_Connector_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_NORETURN (
+ retval,
+ Quoter_Connector_exec_i ("Quoter_Topic"));
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.h b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.h
new file mode 100644
index 00000000000..4f2654f01d0
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Connector/Quoter_Connector_exec.h
@@ -0,0 +1,61 @@
+// -*- C++ -*-
+// $Id$
+
+#ifndef CIAO_QUOTER_CONNECTOR_EXEC_H_
+#define CIAO_QUOTER_CONNECTOR_EXEC_H_
+
+#include /**/ "ace/pre.h"
+
+#include "Quoter_ConnectorEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include /**/ "Quoter_Connector_exec_export.h"
+#include "tao/LocalObject.h"
+
+#include "dds4ccm/impl/ndds/NDDS_Traits.h"
+#include "dds4ccm/impl/ndds/Connector_T.h"
+
+#include "Base/Quoter_BaseSupport.h"
+
+namespace CIAO_Quoter_Quoter_Connector_Impl
+{
+
+ // @from use of Stock_Info as a parameter
+ typedef CIAO::DDS4CCM::RTI::Type_Traits <
+ ::Quoter::Stock_Info,
+ ::Quoter::Stock_InfoSeq,
+ ::Quoter::Stock_InfoTypeSupport,
+ ::Quoter::Stock_InfoDataWriter,
+ ::Quoter::Stock_InfoDataReader > Stock_Info_DDS_Traits;
+
+ typedef Connector_Traits <
+ ::CIAO_Quoter_Quoter_Connector_Impl::Quoter_Connector_Exec,
+ ::Quoter::Stock_Info_Seq,
+ ::CCM_DDS::CCM_Stock_Info_Writer,
+ ::CCM_DDS::CCM_Stock_Info_Updater,
+ ::CCM_DDS::CCM_Stock_Info_Getter,
+ ::CCM_DDS::CCM_Stock_Info_Reader,
+ ::Quoter::CCM_Quoter_Connector_Context,
+ ::CCM_DDS::Stock_Info_RawListener,
+ ::CCM_DDS::ConnectorStatusListener> Stock_Info_Connector_Traits;
+
+
+ class QUOTER_CONNECTOR_EXEC_Export Quoter_Connector_exec_i :
+ public Connector_T <Stock_Info_DDS_Traits, Stock_Info_Connector_Traits>
+ {
+ public:
+ Quoter_Connector_exec_i (const char * topic_name);
+ virtual ~Quoter_Connector_exec_i (void);
+ };
+
+ extern "C" QUOTER_CONNECTOR_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Quoter_Quoter_Connector_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* ifndef */
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Quoter/Distributor/Distributor.idl b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Distributor/Distributor.idl
new file mode 100644
index 00000000000..ca4fc65a613
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Distributor/Distributor.idl
@@ -0,0 +1,49 @@
+// $Id$
+
+/**
+ * @file Distributor.idl
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ *
+ * by-hand idl3 translation of distributor components.
+ */
+
+#ifndef DDS_DISTRIBUTOR_IDL
+#define DDS_DISTRIBUTOR_IDL
+
+#include "Connector/Quoter_Connector.idl"
+#include "Connector/Quoter_ConnectorE.idl"
+
+module Quoter
+{
+ interface Trigger
+ {
+ void add_stock (in string stock);
+ void del_stock (in string stock);
+ void start ();
+ void stop ();
+ };
+
+ component Distributor supports Trigger
+ {
+ port CCM_DDS::DDS_Update info_update;
+ port CCM_DDS::DDS_Write info_in;
+ attribute unsigned long rate;
+ };
+};
+
+#endif
+
+/*
+#ifndef DDS_DISTRIBUTOR_IDL3P
+#define DDS_DISTRIBUTOR_IDL3P
+
+module Quoter
+{
+ component Distributor
+ {
+ port CCM_DDS::DDS_Write <Stock_Info> info;
+ };
+};
+
+ */
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Quoter/Distributor/Distributor.mpc b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Distributor/Distributor.mpc
new file mode 100644
index 00000000000..c0bfbe30530
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Distributor/Distributor.mpc
@@ -0,0 +1,140 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p DDS_Quoter_Base -l ../lib -o ../lib -c controller -u DDS Distributor"
+
+project(DDS_Distributor_idl_gen) : componentidldefaults {
+ after += DDS_Quoter_Connector_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=DISTRIBUTOR_STUB_Export \
+ -Wb,stub_export_include=Distributor_stub_export.h \
+ -Wb,skel_export_macro=DISTRIBUTOR_SVNT_Export \
+ -Wb,skel_export_include=Distributor_svnt_export.h \
+ -Wb,svnt_export_macro=DISTRIBUTOR_SVNT_Export \
+ -Wb,svnt_export_include=Distributor_svnt_export.h \
+ -Wb,exec_export_macro=DISTRIBUTOR_EXEC_Export \
+ -Wb,exec_export_include=Distributor_exec_export.h \
+ -I ..
+
+ IDL_Files {
+ Distributor.idl
+ }
+}
+
+project(DDS_Distributor_lem_gen) : ciaoidldefaults {
+ after += DDS_Distributor_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=DISTRIBUTOR_LEM_STUB_Export \
+ -Wb,stub_export_include=Distributor_lem_stub_export.h \
+ -SS -Gxhst -I $CIAO_ROOT/connectors -I ..
+
+ IDL_Files {
+ DistributorE.idl
+ }
+}
+
+project(DDS_Distributor_lem_stub) : ccm_svnt, dds4ccm_base {
+ after += DDS_Distributor_lem_gen DDS_Distributor_stub DDS_Quoter_Base_stub
+ libs += DDS_Quoter_Base_stub Distributor_stub
+ libpaths += ../lib
+ libout = ../lib
+ includes += ..
+ sharedname = Distributor_lem_stub
+ dynamicflags = DISTRIBUTOR_LEM_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ DistributorEC.cpp
+ }
+
+ Header_Files {
+ DistributorEC.h
+ Distributor_lem_stub_export.h
+ }
+
+ Inline_Files {
+ DistributorEC.inl
+ }
+}
+
+project(DDS_Distributor_stub) : ccm_stub, dds4ccm_base {
+ after += DDS_Distributor_idl_gen DDS_Quoter_Base_stub DDS_Quoter_Connector_stub
+ libs += DDS_Quoter_Base_stub DDS_Quoter_Connector_stub
+ includes += ..
+ libpaths += ../lib
+ libout = ../lib
+ sharedname = Distributor_stub
+ dynamicflags = DISTRIBUTOR_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ DistributorC.cpp
+ }
+
+ Header_Files {
+ DistributorC.h
+ Distributor_stub_export.h
+ }
+
+ Inline_Files {
+ DistributorC.inl
+ }
+}
+
+project(DDS_Distributor_exec) : ciao_executor, dds4ccm_base {
+ after += DDS_Distributor_lem_stub DDS_Distributor_stub DDS_Quoter_Connector_lem_stub DDS_Quoter_Connector_stub
+ sharedname = Distributor_exec
+ libs += Distributor_stub Distributor_lem_stub DDS_Quoter_Base_stub DDS_Quoter_Connector_lem_stub DDS_Quoter_Connector_stub
+ libpaths += ../lib
+ includes += ..
+ libout = ../lib
+ dynamicflags = DISTRIBUTOR_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Distributor_exec.cpp
+ }
+
+ Header_Files {
+ Distributor_exec.h
+ Distributor_exec_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+
+project(DDS_Distributor_svnt) : ciao_servant, dds4ccm_base, nddslib {
+ after += DDS_Quoter_Base_stub DDS_Distributor_lem_stub DDS4CCM_lem_stub DDS4CCM_skel DDS_Quoter_Connector_stub DDS_Quoter_Connector_svnt DDS_Quoter_Connector_lem_stub
+ sharedname = Distributor_svnt
+ libs += Distributor_stub Distributor_lem_stub \
+ DDS_Quoter_Base_stub DDS4CCM_lem_stub DDS4CCM_skel DDS_Quoter_Connector_stub DDS_Quoter_Connector_svnt DDS_Quoter_Connector_lem_stub
+ libpaths += ../lib
+ libout = ../lib
+ includes += ..
+ dynamicflags = DISTRIBUTOR_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ DistributorS.cpp
+ Distributor_svnt.cpp
+ }
+
+ Header_Files {
+ DistributorS.h
+ Distributor_svnt.h
+ Distributor_svnt_export.h
+ }
+
+ Inline_Files {
+ DistributorS.inl
+ }
+}
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.cpp b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.cpp
new file mode 100644
index 00000000000..1b41c4c0193
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.cpp
@@ -0,0 +1,386 @@
+// -*- C++ -*-
+//
+// $Id$
+
+/**
+ * Code generated by the The ACE ORB (TAO) IDL Compiler v1.7.2
+ * 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:1278
+
+#include "Distributor_exec.h"
+#include "ace/Reactor.h"
+#include "ace/Guard_T.h"
+#include "ace/CORBA_macros.h"
+#include "ace/OS_NS_time.h"
+#include <iostream>
+
+namespace CIAO_Quoter_Distributor_Impl
+{
+ //============================================================
+ // Component Executor Implementation Class: Distributor_exec_i
+ //============================================================
+
+ pulse_Generator::pulse_Generator (Distributor_exec_i &callback)
+ : active_ (0),
+ pulse_callback_ (callback)
+ {
+ // initialize the reactor
+ this->reactor (ACE_Reactor::instance ());
+ }
+
+ pulse_Generator::~pulse_Generator ()
+ {
+ }
+
+ int
+ pulse_Generator::open_h ()
+ {
+ // convert the task into a active object that runs in separate thread
+ return this->activate ();
+ }
+
+ int
+ pulse_Generator::close_h ()
+ {
+ this->reactor ()->end_reactor_event_loop ();
+
+ // wait for all threads in the task to exit before it returns
+ return this->wait ();
+ }
+
+ int
+ pulse_Generator::start (CORBA::ULong hertz)
+ {
+ // return if not valid
+ if (hertz == 0 || this->active_ != 0)
+ {
+ return -1;
+ }
+
+ // calculate the interval time
+ long usec = 1000000 / hertz;
+
+ std::cerr << "Starting pulse_generator with hertz of " << hertz << ", interval of "
+ << usec << std::endl;
+
+ if (this->reactor ()->schedule_timer (this,
+ 0,
+ ACE_Time_Value (0, usec),
+ ACE_Time_Value (0, usec)) == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Unable to setup Timer\n"),
+ -1);
+ }
+
+ this->active_ = 1;
+ return 0;
+ }
+
+ int
+ pulse_Generator::stop (void)
+ {
+ // return if not valid.
+ if (this->active_ == 0)
+ {
+ return -1;
+ }
+ // cancle the timer
+ this->reactor ()->cancel_timer (this);
+ this->active_ = 0;
+ return 0;
+ }
+
+ int
+ pulse_Generator::active (void)
+ {
+ return this->active_;
+ }
+
+ int
+ pulse_Generator::handle_close (ACE_HANDLE handle,
+ ACE_Reactor_Mask close_mask)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("[%x] handle = %d, close_mask = %d\n"),
+ this,
+ handle,
+ close_mask));
+ return 0;
+ }
+
+ int
+ pulse_Generator::handle_timeout (const ACE_Time_Value &,
+ const void *)
+ {
+ // Notify the subscribers
+ this->pulse_callback_.tick ();
+ return 0;
+ }
+
+ int
+ pulse_Generator::svc (void)
+ {
+ // define the owner of the reactor thread
+ this->reactor ()->owner (ACE_OS::thr_self ());
+
+ // run event loop to wait for event, and then dispatch them to corresponding handlers
+ this->reactor ()->run_reactor_event_loop ();
+
+ return 0;
+ }
+
+ Distributor_exec_i::Distributor_exec_i (void)
+ : rate_ (1)
+ {
+ ACE_OS::srand (static_cast <u_int> (ACE_OS::time ()));
+ this->ticker_ = new pulse_Generator (*this);
+ }
+
+ Distributor_exec_i::~Distributor_exec_i (void)
+ {
+ }
+
+ // Supported operations and attributes.
+
+ void
+ Distributor_exec_i::tick (void)
+ {
+ std::cerr << "Ticking" << std::endl;
+
+ for (Stock_Table::iterator i = this->stocks_.begin ();
+ i != this->stocks_.end ();
+ ++i)
+ {
+ if (ACE_OS::rand () % 2)
+ {
+ //std::cerr << "Updating stock: " << i->first.c_str () << std::endl;
+
+ int delta = (ACE_OS::rand () % 10) - 2;
+
+ i->second->current += delta;
+
+ if (i->second->current > i->second->high)
+ i->second->high = i->second->current;
+
+ if (i->second->current < i->second->low)
+ i->second->low = i->second->current;
+
+ if (!CORBA::is_nil (this->writer_)) {
+ printf ("WRITE AND CREATE stock_info for <%s> %u:%u:%u\n",
+ i->first.c_str(),
+ i->second->low,
+ i->second->current,
+ i->second->high);
+ this->writer_->write (i->second);
+ try
+ {
+ this->updater_->create (i->second);
+ }
+ catch (CCM_DDS::AlreadyCreated& )
+ {
+ printf ("Stock_info for <%s> already created.\n",
+ i->first.c_str ());
+ }
+ catch (CCM_DDS::InternalError& )
+ {
+ printf ("Internal Error while creating Stock_info for <%s>.\n",
+ i->first.c_str ());
+ }
+ }
+ else
+ std::cerr << "Writer reference is nil!" << std::endl;
+ }
+ else
+ {
+ if (!CORBA::is_nil (this->updater_))
+ {
+ i->second->current = ACE_OS::rand () % 50;
+ i->second->high = i->second->current + ACE_OS::rand () % 50;
+ i->second->low = ACE_OS::rand () % 50;
+ try
+ {
+ this->updater_->update (i->second);
+ printf ("Updated stock_info for <%s> %u:%u:%u\n",
+ i->first.c_str(),
+ i->second->low,
+ i->second->current,
+ i->second->high);
+ }
+ catch (CCM_DDS::NonExistent& )
+ {
+ printf ("Stock_info for <%s> not updated: <%s> didn't exist.\n",
+ i->first.c_str (), i->first.c_str ());
+ }
+ catch (CCM_DDS::InternalError& )
+ {
+ printf ("Internal Error while updating Stock_info for <%s>.\n",
+ i->first.c_str ());
+ }
+ }
+ else
+ std::cerr << "Updater reference is nil!" << std::endl;
+ }
+ }
+ }
+
+ void
+ Distributor_exec_i::add_stock (
+ const char * stock)
+ {
+ std::cerr << "Distributor_exec_i::add_stock - Adding stock: " << stock << std::endl;
+
+ ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, _guard,
+ this->mutex_, CORBA::INTERNAL ());
+
+ Quoter::Stock_Info *new_stock = new Quoter::Stock_Info;
+
+ new_stock->low = 50;
+ new_stock->high = 50;
+ new_stock->current = 50;
+ new_stock->symbol = stock;
+
+ this->stocks_[stock] = new_stock;
+ }
+
+ void
+ Distributor_exec_i::del_stock (const char * stock)
+ {
+ std::cerr << "Distributor_exec_i::del_stock - Removing stock: " << stock << std::endl;
+
+ ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, _guard,
+ this->mutex_, CORBA::INTERNAL ());
+
+ Stock_Table::iterator pos = this->stocks_.find (stock);
+
+ if (pos != this->stocks_.end ())
+ {
+ this->stocks_.erase (pos);
+ }
+
+ std::cerr << "Distributor_exec_i::del_stock - Stock no present: " << stock;
+ }
+
+ void
+ Distributor_exec_i::start (void)
+ {
+ this->ticker_->start (this->rate_);
+ }
+
+ void
+ Distributor_exec_i::stop (void)
+ {
+ for (Stock_Table::iterator i = this->stocks_.begin ();
+ i != this->stocks_.end ();
+ ++i)
+ {
+ printf ("Unregister <%s>\n", i->first.c_str ());
+ this->updater_->_cxx_delete (i->second);
+ }
+ this->ticker_->stop ();
+ }
+
+ // Component attributes.
+
+ ::CORBA::ULong
+ Distributor_exec_i::rate (void)
+ {
+ return this->rate_;
+ }
+
+ void
+ Distributor_exec_i::rate (
+ ::CORBA::ULong rate )
+ {
+ this->rate_ = rate;
+ }
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent.
+
+ void
+ Distributor_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ ::Quoter::CCM_Distributor_Context_var lctx =
+ ::Quoter::CCM_Distributor_Context::_narrow (ctx);
+
+ if ( ::CORBA::is_nil (lctx.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+
+ this->context_ = lctx;
+ }
+
+ void
+ Distributor_exec_i::configuration_complete (void)
+ {
+ this->writer_ = this->context_->get_connection_info_in_data ();
+ this->updater_ = this->context_->get_connection_info_update_data ();
+ this->ticker_->activate ();
+ }
+
+ void
+ Distributor_exec_i::ccm_activate (void)
+ {
+ this->start ();
+ this->add_stock ("MSFT");
+ this->add_stock ("IBM");
+ this->add_stock ("HP");
+ this->add_stock ("DELL");
+ this->add_stock ("ACER");
+ this->add_stock ("ASUS");
+ }
+
+ void
+ Distributor_exec_i::ccm_passivate (void)
+ {
+ /* Your code here. */
+ }
+
+ void
+ Distributor_exec_i::ccm_remove (void)
+ {
+ /* Your code here. */
+ //this->stop ();
+ }
+
+ extern "C" DISTRIBUTOR_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Quoter_Distributor_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_NORETURN (
+ retval,
+ Distributor_exec_i);
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.h b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.h
new file mode 100644
index 00000000000..62f8e1ab24f
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Quoter/Distributor/Distributor_exec.h
@@ -0,0 +1,190 @@
+// -*- C++ -*-
+//
+// $Id$
+
+/**
+ * Code generated by the The ACE ORB (TAO) IDL Compiler v1.7.2
+ * 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:1217
+
+#ifndef CIAO_DISTRIBUTOR_EXEC_H_
+#define CIAO_DISTRIBUTOR_EXEC_H_
+
+#include /**/ "ace/pre.h"
+
+#include "DistributorEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include /**/ "Distributor_exec_export.h"
+#include "tao/LocalObject.h"
+#include "ace/Thread_Mutex.h"
+#include "ace/Task.h"
+#include "ace/Reactor.h"
+
+#include <map>
+
+namespace CIAO_Quoter_Distributor_Impl
+{
+ class Distributor_exec_i;
+
+ /**
+ * @class pulse generator
+ *
+ * @brief an active object used by StockDistributor to perform periodical pulse generation
+ *
+ */
+ class pulse_Generator : public ACE_Task_Base
+ {
+ public:
+ pulse_Generator (Distributor_exec_i &callback);
+
+ ~pulse_Generator ();
+
+ /// Hook method that performs application-defined initialization activities
+ int open_h (void);
+
+ /// Hook method that performs application-defined destruction activites
+ int close_h (void);
+
+ /// appliation-defined method for starting the pulse-generation service
+ int start (CORBA::ULong hertz);
+
+ /// application-defined method for stopping the pulse-generation service
+ int stop (void);
+
+ /// Indicate whether the current object is active
+ int active (void);
+
+ /// Handle the timeout.
+ virtual int handle_timeout (const ACE_Time_Value &tv,
+ const void *arg);
+
+ /// Called when timer handler is removed.
+ virtual int handle_close (ACE_HANDLE handle,
+ ACE_Reactor_Mask close_mask);
+
+ /// Hook methods implemnting the task's service processing,
+ /// invoked by all threads activated by activate () method
+ virtual int svc (void);
+
+ private:
+ /// Tracking whether we are actively generating pulse or not.
+ int active_;
+
+ /// Maintains a handle that actually process the event
+ Distributor_exec_i &pulse_callback_;
+
+ };
+
+ class DISTRIBUTOR_EXEC_Export Distributor_exec_i
+ : public virtual Distributor_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Distributor_exec_i (void);
+ virtual ~Distributor_exec_i (void);
+
+ void tick (void);
+
+ // Supported operations and attributes.
+
+ // TAO_IDL - Generated from
+ // be/be_visitor_operation/operation_ch.cpp:46
+
+ virtual void
+ add_stock (
+ const char * stock);
+
+ // TAO_IDL - Generated from
+ // be/be_visitor_operation/operation_ch.cpp:46
+
+ virtual void
+ del_stock (
+ const char * stock);
+
+ // TAO_IDL - Generated from
+ // be/be_visitor_operation/operation_ch.cpp:46
+
+ virtual void
+ start (void);
+
+ // TAO_IDL - Generated from
+ // be/be_visitor_operation/operation_ch.cpp:46
+
+ virtual void
+ stop (void);
+
+ // Component attributes.
+
+ // TAO_IDL - Generated from
+ // be/be_visitor_operation/operation_ch.cpp:46
+
+ virtual ::CORBA::ULong
+ rate (void);
+
+ // TAO_IDL - Generated from
+ // be/be_visitor_operation/operation_ch.cpp:46
+
+ virtual void
+ rate (
+ ::CORBA::ULong rate);
+
+ // 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:
+ pulse_Generator * ticker_;
+ ::Quoter::CCM_Distributor_Context_var context_;
+ TAO_SYNCH_MUTEX mutex_;
+ typedef std::map<ACE_CString, Quoter::Stock_Info_var> Stock_Table;
+ Stock_Table stocks_;
+ CORBA::ULong rate_;
+ CCM_DDS::Stock_Info_Writer_var writer_;
+ CCM_DDS::Stock_Info_Updater_var updater_;
+ };
+
+ extern "C" DISTRIBUTOR_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Quoter_Distributor_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* ifndef */
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Quoter/descriptors/Plan.cdp b/modules/CIAO/connectors/dds4ccm/examples/Quoter/descriptors/Plan.cdp
new file mode 100644
index 00000000000..2937cb710c4
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Quoter/descriptors/Plan.cdp
@@ -0,0 +1,391 @@
+<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>Quoter_Depl_1</label>
+ <UUID>Quoter_Depl_1</UUID>
+
+ <implementation xmi:id="BrokerComponentImplementation">
+ <name>BrokerComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Broker_ExecArtifact" />
+ <artifact xmi:idref="Broker_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Quoter_Broker_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Quoter_Broker_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Broker_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Broker_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="Quoter_ConnectorComponentImplementation">
+ <name>Quoter_ConnectorComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Quoter_Connector_ExecArtifact" />
+ <artifact xmi:idref="Quoter_Connector_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Quoter_Quoter_Connector_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Quoter_Quoter_Connector_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Quoter_Connector_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Quoter_Connector_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+ <implementation xmi:id="DistributorComponentImplementation">
+ <name>DistributorComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Distributor_ExecArtifact" />
+ <artifact xmi:idref="Distributor_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Quoter_Distributor_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Quoter_Distributor_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Distributor_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Distributor_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+ <instance xmi:id="BrokerComponentInstance">
+ <name>BrokerComponent</name>
+ <node>BrokerNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="BrokerComponentImplementation" />
+ </instance>
+ <instance xmi:id="Quoter_ConnectorComponentInstance">
+ <name>Quoter_ConnectorComponent</name>
+ <node>DistributorNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Quoter_ConnectorComponentImplementation" />
+ </instance>
+ <instance xmi:id="Quoter_ConnectorComponentInstance2">
+ <name>Quoter_ConnectorComponent2</name>
+ <node>BrokerNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Quoter_ConnectorComponentImplementation" />
+ </instance>
+ <instance xmi:id="DistributorComponentInstance">
+ <name>DistributorComponent</name>
+ <node>DistributorNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="DistributorComponentImplementation" />
+ </instance>
+
+
+ <connection>
+ <name>info_out_data</name>
+ <internalEndpoint>
+ <portName>info_out_data</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="BrokerComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_data</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Quoter_ConnectorComponentInstance2" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>info_out_get_data</name>
+ <internalEndpoint>
+ <portName>info_out_get_data</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="BrokerComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_get_data</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Quoter_ConnectorComponentInstance2" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>_listenercontrol</name>
+ <internalEndpoint>
+ <portName>info_out_data_control</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="BrokerComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_data_control</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Quoter_ConnectorComponentInstance2" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>_rawlistner</name>
+ <internalEndpoint>
+ <portName>info_out_data_listener</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="BrokerComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_data_listener</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Quoter_ConnectorComponentInstance2" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>_datareader</name>
+ <internalEndpoint>
+ <portName>info_out_dds_entity</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="BrokerComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_dds_entity</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Quoter_ConnectorComponentInstance2" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>_portstatuslistener</name>
+ <internalEndpoint>
+ <portName>info_out_status</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="BrokerComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_status</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Quoter_ConnectorComponentInstance2" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>_connectorstatuslistener</name>
+ <internalEndpoint>
+ <portName>info_out_connector_status</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="BrokerComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>error_listener</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Quoter_ConnectorComponentInstance2" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>writer_connection</name>
+ <internalEndpoint>
+ <portName>info_in_data</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="DistributorComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_in_data</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Quoter_ConnectorComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>updater_connection</name>
+ <internalEndpoint>
+ <portName>info_update_data</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="DistributorComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_update_data</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Quoter_ConnectorComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <artifact xmi:id="Distributor_ExecArtifact">
+ <name>Distributor_exec</name>
+ <source/>
+ <node/>
+ <location>Distributor_exec</location>
+ </artifact>
+ <artifact xmi:id="Distributor_SvntArtifact">
+ <name>Distributor_svnt</name>
+ <source/>
+ <node/>
+ <location>Distributor_svnt</location>
+ </artifact>
+ <artifact xmi:id="Distributor_StubArtifact">
+ <name>Distributor_stub</name>
+ <source/>
+ <node/>
+ <location>Distributor_stub</location>
+ </artifact>
+ <artifact xmi:id="Quoter_Connector_ExecArtifact">
+ <name>Quoter_Connector_exec</name>
+ <source/>
+ <node/>
+ <location>DDS_Quoter_Connector_exec</location>
+ </artifact>
+ <artifact xmi:id="Quoter_Connector_SvntArtifact">
+ <name>Quoter_Connector_svnt</name>
+ <source/>
+ <node/>
+ <location>DDS_Quoter_Connector_svnt</location>
+ </artifact>
+ <artifact xmi:id="Quoter_Connector_StubArtifact">
+ <name>Quoter_Connector_stub</name>
+ <source/>
+ <node/>
+ <location>DDS_Quoter_Connector_stub</location>
+ </artifact>
+ <artifact xmi:id="Broker_ExecArtifact">
+ <name>Broker_exec</name>
+ <source/>
+ <node/>
+ <location>Broker_exec</location>
+ </artifact>
+ <artifact xmi:id="Broker_SvntArtifact">
+ <name>Broker_svnt</name>
+ <source/>
+ <node/>
+ <location>Broker_svnt</location>
+ </artifact>
+ <artifact xmi:id="Broker_StubArtifact">
+ <name>Broker_stub</name>
+ <source/>
+ <node/>
+ <location>Broker_stub</location>
+ </artifact>
+</Deployment:DeploymentPlan>
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Quoter/descriptors/USER_QOS_PROFILES.xml b/modules/CIAO/connectors/dds4ccm/examples/Quoter/descriptors/USER_QOS_PROFILES.xml
new file mode 100644
index 00000000000..b11db281d0a
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Quoter/descriptors/USER_QOS_PROFILES.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+Description
+XML QoS Profile
+
+The QoS configuration of the DDS entities in the generated example is
+loaded from this file.
+
+This file is used only when it is in the current working directory
+or when the enviroment variable
+NDDS_QOS_PROFILES is defined and points to this file.
+
+For more information about XML QoS Profiles see Chapter 15 in the
+RTI Data Distribution Service user manual.
+-->
+<dds xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="c:/ndds/ndds.4.4d/scripts/../resource/rtiddsgen/../qos_profiles_4.4d/schema/rti_dds_qos_profiles.xsd" version="4.4d">
+ <!-- QoS Library containing the QoS profile used in the generated example.
+
+ A QoS library is a named set of QoS profiles.
+ -->
+ <qos_library name="HelloMsg_Library">
+ <!-- QoS profile used to configure reliable communication between the DataWriter
+ and DataReader created in the example code.
+
+ A QoS profile groups a set of related QoS.
+ -->
+ <qos_profile name="HelloMsg_Profile" is_default_qos="true">
+ <!-- QoS used to configure the data writer created in the example code -->
+ <datawriter_qos>
+ <reliability>
+ <kind>RELIABLE_RELIABILITY_QOS</kind>
+ <max_blocking_time>
+ <sec>10</sec>
+ <nanosec>0</nanosec>
+ </max_blocking_time>
+ </reliability>
+ <durability>
+ <kind>TRANSIENT_LOCAL_DURABILITY_QOS</kind>
+ </durability>
+ <history>
+ <kind>KEEP_LAST_HISTORY_QOS</kind>
+ <depth>20</depth>
+ </history>
+ <protocol>
+ <rtps_reliable_writer>
+ <max_heartbeat_retries>10</max_heartbeat_retries>
+ </rtps_reliable_writer>
+ </protocol>
+ </datawriter_qos>
+ <!-- QoS used to configure the data reader created in the example code -->
+ <datareader_qos>
+ <reliability>
+ <kind>RELIABLE_RELIABILITY_QOS</kind>
+ </reliability>
+ <history>
+ <kind>KEEP_LAST_HISTORY_QOS</kind>
+ <depth>20</depth>
+ </history>
+ <durability>
+ <kind>TRANSIENT_LOCAL_DURABILITY_QOS</kind>
+ </durability>
+ </datareader_qos>
+ </qos_profile>
+ </qos_library>
+</dds> \ No newline at end of file
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Quoter/descriptors/run_test.pl b/modules/CIAO/connectors/dds4ccm/examples/Quoter/descriptors/run_test.pl
new file mode 100755
index 00000000000..aafbb22d119
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Quoter/descriptors/run_test.pl
@@ -0,0 +1,189 @@
+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;
+
+$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
+$TAO_ROOT = "$ENV{'TAO_ROOT'}";
+$DAnCE = "$ENV{'DANCE_ROOT'}";
+
+$daemons_running = 0;
+$em_running = 0;
+$ns_running = 0;
+
+$daemons = 2;
+@ports = ( 60001, 60002 );
+@iorfiles = ( "NodeApp1.ior", "NodeApp2.ior" );
+@nodenames = ( "DistributorNode", "BrokerNode" );
+
+$status = 0;
+$cdp_file = "Plan.cdp";
+
+$nsior = PerlACE::LocalFile ("ns.ior");
+
+PerlACE::add_lib_path ('../lib');
+
+unlink $nsior;
+
+$E = 0;
+$EM = 0;
+
+# Delete if there are any .ior files.
+sub delete_ior_files {
+ for ($i = 0; $i < $daemons; ++$i) {
+ unlink $iorfiles[$i];
+ }
+ unlink PerlACE::LocalFile ("EM.ior");
+ unlink PerlACE::LocalFile ("DAM.ior");
+ unlink PerlACE::LocalFile ("ns.ior");
+}
+
+sub kill_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i) {
+ $Daemons[$i]->Kill (); $Daemons[$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);
+ }
+
+}
+
+sub run_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i)
+ {
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+ $nodename = $nodenames[$i];
+ $iiop = "iiop://localhost:$port";
+ $node_app = "$CIAO_ROOT/bin/ciao_componentserver";
+
+ $d_cmd = "$DAnCE/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";
+
+ $Daemons[$i] = new PerlACE::Process ($d_cmd, $d_param);
+ $result = $Daemons[$i]->Spawn ();
+ push(@processes, $Daemons[$i]);
+
+ if (PerlACE::waitforfile_timed ($iorfile,
+ 30) == -1) {
+ print STDERR
+ "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
+ for (; $i >= 0; --$i) {
+ $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1);
+ }
+ return -1;
+ }
+ }
+ return 0;
+}
+
+delete_ior_files ();
+
+# Invoke naming service
+
+$NS = new PerlACE::Process ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 0 -ORBEndpoint iiop://localhost:60003 -o ns.ior");
+
+$NS->Spawn ();
+
+print STDERR "Starting Naming Service with -m 0 -ORBEndpoint iiop://localhost:60003 -o ns.ior\n";
+
+if (PerlACE::waitforfile_timed ($nsior, $PerlACE::wait_interval_for_process_creation) == -1)
+{
+ print STDERR "ERROR: cannot find naming service IOR file\n";
+ $NS->Kill ();
+ exit 1;
+}
+
+$ns_running = 1;
+
+# Set up NamingService environment
+$ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService";
+
+
+# Invoke node daemons.
+print "Invoking node daemons\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 -eEM.ior \n";
+$EM = new PerlACE::Process ("$DAnCE/bin/dance_execution_manager",
+ "-eEM.ior --domain-nc corbaloc:rir:/NameService");
+$EM->Spawn ();
+
+if (PerlACE::waitforfile_timed ("EM.ior",
+ $PerlACE::wait_interval_for_process_creation) == -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 - start the application -\n";
+
+print "Start dance_plan_launcher.exe with -x $cdp_file -k file://EM.ior\n";
+$E =
+ new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher",
+ "-x $cdp_file -k file://EM.ior");
+
+$E->SpawnWaitKill (50);
+
+
+print "Sleeping 12 seconds to allow task to complete\n";
+sleep (12);
+
+# print "Invoking the controller ($controller_exec -k file://Sender.ior)\n";
+# $controller = new PerlACE::Process ("$controller_exec", "-k file://Sender.ior");
+# $result = $controller->SpawnWaitKill (30);
+
+# if ($result != 0) {
+# print STDERR "ERROR: The controller returned $result\n";
+# $status = 1;
+# }
+
+# Invoke executor - stop the application -.
+print "Invoking executor - stop the application -\n";
+print "by running dance_plan_launcher.exe with -k file://EM.ior -x $cdp_file -q\n";
+
+$E =
+ new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher",
+ "-k file://EM.ior -x $cdp_file -q");
+$E->SpawnWaitKill (30);
+
+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/connectors/dds4ccm/examples/Shapes/Base/Shapes_Base.idl b/modules/CIAO/connectors/dds4ccm/examples/Shapes/Base/Shapes_Base.idl
new file mode 100644
index 00000000000..750a8e327e5
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Shapes/Base/Shapes_Base.idl
@@ -0,0 +1,26 @@
+// $Id$
+
+/**
+ * @file Shapes_Base.idl
+ * @author Marcel Smit <msmit@remedy.nl>
+ */
+
+#ifndef SHAPES_BASE_IDL
+#define SHAPES_BASE_IDL
+
+struct ShapeType {
+ string color; //@key
+ long x;
+ long y;
+ long shapesize;
+};
+
+struct Attributes {
+ string shape; //@key
+ string color; //@key
+ float speed;
+};
+
+typedef sequence<ShapeType> ShapeType_Seq;
+
+#endif
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Shapes/Base/Shapes_Base.mpc b/modules/CIAO/connectors/dds4ccm/examples/Shapes/Base/Shapes_Base.mpc
new file mode 100644
index 00000000000..9751d9fa726
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Shapes/Base/Shapes_Base.mpc
@@ -0,0 +1,73 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -o ../lib -u DDS -n Shapes_Base"
+
+project(DDS_Shapes_Base_idl_gen) : taoidldefaults, anytypecode {
+ custom_only = 1
+ idlflags -= -St -Sa
+ idlflags += -SS -Gxhst \
+ -Wb,stub_export_macro=SHAPES_BASE_STUB_Export \
+ -Wb,stub_export_include=Shapes_Base_stub_export.h
+
+ IDL_Files {
+ Shapes_Base.idl
+ }
+}
+
+project(DDS_Shapes_Base_ndds_ts_gen) : ndds_ts_defaults {
+ custom_only = 1
+ after += DDS_Shapes_Base_idl_gen
+ ndds_ts_flags += -corba Shapes_BaseC.h -orb ACE_TAO1.7
+
+ NDDSTypeSupport_Files {
+ Shapes_Base.idl
+ }
+}
+
+project(DDS_Shapes_Base_NDDS_TS) : nddslib, taolib {
+ after += DDS_Shapes_Base_ndds_ts_gen DDS_Shapes_Base_stub
+ libs += DDS_Shapes_Base_stub
+ libout = ../lib
+ libpaths += ../lib
+ sharedname = DDS_Shapes_Base_NDDS_TS
+ dynamicflags = NDDS_USER_DLL_EXPORT
+
+ Source_Files {
+ Shapes_Base.cxx
+ Shapes_BasePlugin.cxx
+ Shapes_BaseSupport.cxx
+ }
+
+ Header_Files {
+ Shapes_Base.h
+ Shapes_BasePlugin.h
+ Shapes_BaseSupport.h
+ }
+
+ Inline_Files {
+ }
+}
+
+project(DDS_Shapes_Base_stub) : ccm_stub {
+ after += DDS_Shapes_Base_idl_gen
+ libout = ../lib
+ libpaths += ../lib
+ sharedname = DDS_Shapes_Base_stub
+ dynamicflags = SHAPES_BASE_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Shapes_BaseC.cpp
+ }
+
+ Header_Files {
+ Shapes_BaseC.h
+ Shapes_Base_stub_export.h
+ }
+
+ Inline_Files {
+ Shapes_BaseC.inl
+ }
+}
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector.idl b/modules/CIAO/connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector.idl
new file mode 100644
index 00000000000..11819382ef3
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector.idl
@@ -0,0 +1,163 @@
+// $Id$
+
+/**
+ * @file Shapes_Connector.idl
+ * @author Marcel Smit <msmit@remedy.nl>
+ *
+ * by-hand translation of the idl3p.
+ */
+
+#ifndef SHAPES_CONNECTOR_IDL_
+#define SHAPES_CONNECTOR_IDL_
+
+#include <Components.idl>
+#include "connectors/dds4ccm/idl/dds4ccm_ListenerControl.idl3"
+#include "connectors/dds4ccm/idl/dds4ccm_ListenerControlE.idl"
+#include "connectors/dds4ccm/idl/dds4ccm_PortStatusListener.idl3"
+#include "connectors/dds4ccm/idl/dds4ccm_PortStatusListenerE.idl"
+#include "connectors/dds4ccm/idl/dds4ccm_ConnectorStatusListener.idl3"
+#include "connectors/dds4ccm/idl/dds4ccm_ListenerControl.idl3"
+#include "connectors/dds4ccm/idl/dds_rtf2_dcpsE.idl"
+#include "Base/Shapes_Base.idl"
+
+module CCM_DDS
+{
+ interface ShapeType_InstanceHandleManager {
+ DDS::InstanceHandle_t register_instance (in ShapeType datum);
+ void unregister_instance (in ShapeType datum, in DDS::InstanceHandle_t instance_handle);
+ };
+
+ // @from DDS_Write for Shapes::ShapeType
+ interface ShapeType_Writer : ShapeType_InstanceHandleManager
+ {
+ void write (in ShapeType an_instance)
+ raises (InternalError);
+ void write_many (in ShapeType_Seq an_instance)
+ raises (InternalError);
+ };
+
+ // @from DDS_Update for Shapes::ShapeType
+ interface ShapeType_Updater
+ {
+ void create (in ShapeType an_instance)
+ raises (AlreadyCreated,
+ InternalError);
+ void update(in ShapeType an_instance)
+ raises (NonExistent,
+ InternalError);
+ void delete (in ShapeType an_instance)
+ raises (NonExistent,
+ InternalError);
+ readonly attribute boolean is_lifecycle_checked;
+ attribute boolean is_coherent_write;
+ };
+
+ interface ShapeType_Getter
+ {
+ boolean get_all (out ShapeType_Seq instances, out ReadInfoSeq infos)
+ raises (InternalError);
+ boolean get_all_history (out ShapeType_Seq instances, out ReadInfoSeq infos)
+ raises (InternalError);
+ boolean get_one (inout ShapeType an_instance, out ReadInfo info)
+ raises (NonExistent,
+ InternalError);
+ boolean get_one_history (in ShapeType an_instance,
+ out ShapeType_Seq instances, out ReadInfoSeq infos)
+ raises (NonExistent,
+ InternalError);
+ boolean get_next (out ShapeType an_instance, out ReadInfo info)
+ raises (InternalError);
+ attribute QueryFilter filter
+ setraises (BadParameter);
+ attribute DDS::Duration_t time_out;
+ };
+
+ // @from Reader<T> from DDS_RawListen for Shapes::ShapeType
+ interface ShapeType_Reader
+ {
+ void read_all (out ShapeType_Seq instances, out ReadInfoSeq infos)
+ raises (InternalError);
+
+ void read_all_history (out ShapeType_Seq instances, out ReadInfoSeq infos)
+ raises (InternalError);
+
+ void read_one (inout ShapeType an_instance, out ReadInfo info)
+ raises (NonExistent,
+ InternalError);
+
+ void read_one_history (in ShapeType an_instance,
+ out ShapeType_Seq instances, out ReadInfoSeq infos)
+ raises (NonExistent,
+ InternalError);
+
+ attribute QueryFilter filter
+ setraises (BadParameter);
+ };
+
+ // @from RawListener for Shapes::ShapeType
+ interface ShapeType_RawListener
+ {
+ void on_data (in ShapeType an_instance, in ReadInfo info);
+ };
+
+ porttype DDS_Write {
+ uses CCM_DDS::ShapeType_Writer data;
+ uses DDS::DataWriter dds_entity;
+ };
+ porttype DDS_Update {
+ uses CCM_DDS::ShapeType_Updater data;
+ };
+ porttype DDS_Listen {
+ uses CCM_DDS::ShapeType_Reader data;
+ uses CCM_DDS::ShapeType_Getter get_data;
+ uses CCM_DDS::ListenerControl data_control;
+ provides CCM_DDS::ShapeType_RawListener data_listener;
+ uses DDS::DataReader dds_entity;
+ provides CCM_DDS::PortStatusListener status;
+ };
+};
+
+module Shapes
+{
+ component Shapes_Connector
+ {
+ // @from DDS_TopicBase
+ attribute string topic_name;
+ readonly attribute DDS::StringSeq key_fields;
+
+ // @from DDS_TopicBase : DDS_Base
+ uses CCM_DDS::ConnectorStatusListener error_listener;
+ attribute DDS::DomainId_t domain_id;
+ attribute string qos_profile;
+
+ // @from DDS_Write for ShapeType
+ mirrorport CCM_DDS::DDS_Write info_in;
+
+ // @from DDS_Update for ShapeType
+ mirrorport CCM_DDS::DDS_Update info_update;
+
+ // @from DDS_RawListen for ShapeType
+ mirrorport CCM_DDS::DDS_Listen info_out;
+ };
+};
+
+
+/*
+For future use: IDL3 plus
+#include <dds4ccm/idl/dds4ccm_Connector_Base.idl3p>
+#include <dds4ccm/idl/dds4ccm_Port_RawListen.idl3p>
+#include <dds4ccm/idl/dds4ccm_Port_Write.idl3p>
+
+module Shapes
+{
+ connector Shapes_Connector : CCM_DDS::DDS_TopicBase
+ {
+ mirrorport CCM_DDS::DDS_Write <Shape_Info> info_in;
+ mirrorport CCM_DDS::DDS_RawListen <Shape_Info> info_out;
+ };
+};
+*/
+
+#endif /* SHAPES_CONNECTOR_IDL_ */
+
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector.mpc b/modules/CIAO/connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector.mpc
new file mode 100644
index 00000000000..a7133895c58
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector.mpc
@@ -0,0 +1,145 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p DDS_Shapes_Base -l .. -o ../lib -u DDS Shapes_Connector"
+
+project(DDS_Shapes_Connector_idl_gen) : connectoridldefaults {
+ after += DDS4CCM_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=SHAPES_CONNECTOR_STUB_Export \
+ -Wb,stub_export_include=Shapes_Connector_stub_export.h \
+ -Wb,skel_export_macro=SHAPES_CONNECTOR_SVNT_Export \
+ -Wb,skel_export_include=Shapes_Connector_svnt_export.h \
+ -Wb,svnt_export_macro=SHAPES_CONNECTOR_SVNT_Export \
+ -Wb,svnt_export_include=Shapes_Connector_svnt_export.h \
+ -Wb,exec_export_macro=SHAPES_CONNECTOR_EXEC_Export \
+ -Wb,exec_export_include=Shapes_Connector_exec_export.h \
+ -I ..
+
+ IDL_Files {
+ Shapes_Connector.idl
+ }
+}
+
+project(DDS_Shapes_Connector_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ after += DDS_Shapes_Connector_idl_gen
+ idlflags += -Wb,stub_export_macro=SHAPES_CONNECTOR_LEM_STUB_Export \
+ -Wb,stub_export_include=Shapes_Connector_lem_stub_export.h \
+ -SS -Gxhst \
+ -I .. -I $(CIAO_ROOT)/connectors -I$(CIAO_ROOT)/connectors/dds4ccm/idl
+
+ IDL_Files {
+ Shapes_ConnectorE.idl
+ }
+}
+
+project(DDS_Shapes_Connector_lem_stub) : ccm_svnt, dds4ccm_base {
+ after += DDS_Shapes_Connector_lem_gen DDS_Shapes_Connector_stub DDS_Shapes_Base_stub
+ libs += DDS_Shapes_Base_stub DDS_Shapes_Connector_stub
+ libpaths += ../lib
+ libout = ../lib
+ includes += ..
+ sharedname = DDS_Shapes_Connector_lem_stub
+ dynamicflags = SHAPES_CONNECTOR_LEM_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Shapes_ConnectorEC.cpp
+ }
+
+ Header_Files {
+ Shapes_ConnectorEC.h
+ Shapes_Connector_lem_stub_export.h
+ }
+
+ Inline_Files {
+ Shapes_ConnectorEC.inl
+ }
+}
+
+project(DDS_Shapes_Connector_stub) : ccm_stub, dds4ccm_base {
+ after += DDS_Shapes_Connector_idl_gen DDS_Shapes_Base_stub
+ libs += DDS_Shapes_Base_stub
+ libpaths += ../lib
+ libout = ../lib
+ includes += ..
+ sharedname = DDS_Shapes_Connector_stub
+ dynamicflags = SHAPES_CONNECTOR_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Shapes_ConnectorC.cpp
+ }
+
+ Header_Files {
+ Shapes_ConnectorC.h
+ Shapes_Connector_stub_export.h
+ }
+
+ Inline_Files {
+ Shapes_ConnectorC.inl
+ }
+}
+
+project(DDS_Shapes_Connector_exec) : ciao_executor, dds4ccm_skel, nddslib {
+ after += DDS_Shapes_Connector_lem_stub DDS_Shapes_Connector_stub DDS4CCM_lem_stub CIAO_DDS4CCM_NDDS_Impl DDS_Shapes_Base_NDDS_TS
+ sharedname = DDS_Shapes_Connector_exec
+ libs += DDS_Shapes_Connector_stub DDS_Shapes_Connector_lem_stub DDS_Shapes_Base_stub CIAO_DDS4CCM_NDDS_Impl DDS4CCM_lem_stub DDS_Shapes_Base_NDDS_TS
+ libpaths += ../lib
+ libout = ../lib
+ includes += ..
+ dynamicflags = SHAPES_CONNECTOR_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Shapes_Connector_exec.cpp
+ }
+
+ Header_Files {
+ Shapes_Connector_exec.h
+ Shapes_Connector_exec_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+
+project(DDS_Shapes_Connector_svnt) : ciao_servant, dds4ccm_skel, nddslib {
+ after += DDS_Shapes_Connector_lem_stub DDS_Shapes_Connector_exec DDS_Shapes_Connector_stub DDS4CCM_lem_stub
+ sharedname = DDS_Shapes_Connector_svnt
+ libs += DDS_Shapes_Connector_stub \
+ DDS_Shapes_Connector_lem_stub \
+ DDS_Shapes_Base_stub \
+ DDS_Shapes_Connector_exec \
+ DDS4CCM_lem_stub
+ libpaths += ../lib
+ libout = ../lib
+ includes += ..
+ dynamicflags = SHAPES_CONNECTOR_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Shapes_ConnectorS.cpp
+ Shapes_Connector_svnt.cpp
+ }
+
+ Header_Files {
+ Shapes_ConnectorS.h
+ Shapes_Connector_svnt.h
+ Shapes_Connector_svnt_export.h
+ }
+
+ Inline_Files {
+ Shapes_ConnectorS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector_exec.cpp b/modules/CIAO/connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector_exec.cpp
new file mode 100644
index 00000000000..fa17a3cdde4
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector_exec.cpp
@@ -0,0 +1,30 @@
+// -*- C++ -*-
+// $Id$
+
+#include "Shapes_Connector_exec.h"
+
+namespace CIAO_Shapes_Shapes_Connector_Impl
+{
+ Shapes_Connector_exec_i::Shapes_Connector_exec_i (const char * topic_name)
+ : Connector_T<ShapeType_DDS_Traits, ShapeType_Connector_Traits> (topic_name)
+ {
+ }
+
+ Shapes_Connector_exec_i::~Shapes_Connector_exec_i (void)
+ {
+ }
+
+ extern "C" SHAPES_CONNECTOR_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Shapes_Shapes_Connector_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_NORETURN (
+ retval,
+ Shapes_Connector_exec_i ("Default_Topic_Name")); //should be set by dep. plan.
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector_exec.h b/modules/CIAO/connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector_exec.h
new file mode 100644
index 00000000000..01b7a7f5d0e
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Shapes/Connector/Shapes_Connector_exec.h
@@ -0,0 +1,60 @@
+// -*- C++ -*-
+// $Id$
+
+#ifndef SHAPES_CONNECTOR_EXEC_H_
+#define SHAPES_CONNECTOR_EXEC_H_
+
+#include /**/ "ace/pre.h"
+
+#include "Shapes_ConnectorEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include /**/ "Shapes_Connector_exec_export.h"
+#include "tao/LocalObject.h"
+
+#include "dds4ccm/impl/ndds/NDDS_Traits.h"
+#include "dds4ccm/impl/ndds/Connector_T.h"
+
+#include "Base/Shapes_BaseSupport.h"
+
+namespace CIAO_Shapes_Shapes_Connector_Impl
+{
+
+ // @from use of ShapeType as a parameter
+ typedef CIAO::DDS4CCM::RTI::Type_Traits <
+ ShapeType,
+ ShapeTypeSeq,
+ ShapeTypeTypeSupport,
+ ShapeTypeDataWriter,
+ ShapeTypeDataReader > ShapeType_DDS_Traits;
+
+ typedef Connector_Traits <
+ ::CIAO_Shapes_Shapes_Connector_Impl::Shapes_Connector_Exec,
+ ShapeType_Seq,
+ ::CCM_DDS::CCM_ShapeType_Writer,
+ ::CCM_DDS::CCM_ShapeType_Updater,
+ ::CCM_DDS::CCM_ShapeType_Getter,
+ ::CCM_DDS::CCM_ShapeType_Reader,
+ ::Shapes::CCM_Shapes_Connector_Context,
+ ::CCM_DDS::ShapeType_RawListener,
+ ::CCM_DDS::ConnectorStatusListener> ShapeType_Connector_Traits;
+
+ class SHAPES_CONNECTOR_EXEC_Export Shapes_Connector_exec_i :
+ public Connector_T <ShapeType_DDS_Traits, ShapeType_Connector_Traits>
+ {
+ public:
+ Shapes_Connector_exec_i (const char * topic_name);
+ virtual ~Shapes_Connector_exec_i (void);
+ };
+
+ extern "C" SHAPES_CONNECTOR_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Shapes_Shapes_Connector_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* ifndef */
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Shapes/Receiver/Shapes_Receiver.idl b/modules/CIAO/connectors/dds4ccm/examples/Shapes/Receiver/Shapes_Receiver.idl
new file mode 100644
index 00000000000..d1d25e4ed82
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Shapes/Receiver/Shapes_Receiver.idl
@@ -0,0 +1,39 @@
+// $Id$
+
+/**
+ * @file
+ * @author Marcel Smit <msmit@remedy.nl>
+ */
+
+#ifndef RECEIVER_IDL
+#define RECEIVER_IDL
+
+#include "Connector/Shapes_Connector.idl"
+#include "Connector/Shapes_ConnectorE.idl"
+
+module Shapes
+{
+ component Receiver
+ {
+ port CCM_DDS::DDS_Listen info_out;
+ attribute unsigned long rate;
+ attribute boolean get_data; //if true, get_one and get_all are invoked
+ attribute boolean read_data;//if true, read_one and read_all are invoked.
+ attribute boolean raw_listen; //if true, raw listen port is enabled.
+ };
+};
+
+/*
+For future use: IDL3 plus
+#include <dds4ccm/idl/dds4ccm_Connector_Base.idl3p>
+#include <dds4ccm/idl/dds4ccm_Port_RawListen.idl3p>
+
+module Shapes
+{
+ component Receiver
+ {
+ port CCM_DDS::DDS_RawListen <Shape_Info> info;
+ };
+};
+*/
+#endif
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Shapes/Receiver/Shapes_Receiver.mpc b/modules/CIAO/connectors/dds4ccm/examples/Shapes/Receiver/Shapes_Receiver.mpc
new file mode 100644
index 00000000000..2571cbc74cd
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Shapes/Receiver/Shapes_Receiver.mpc
@@ -0,0 +1,139 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -l ../lib -o ../lib -u DDS -b dds4ccm_base Receiver"
+
+project(DDS_Receiver_idl_gen) : componentidldefaults {
+ custom_only = 1
+ after += DDS_Shapes_Connector_idl_gen
+ idlflags += -Wb,stub_export_macro=RECEIVER_STUB_Export \
+ -Wb,stub_export_include=Receiver_stub_export.h \
+ -Wb,skel_export_macro=RECEIVER_SVNT_Export \
+ -Wb,skel_export_include=Receiver_svnt_export.h \
+ -Wb,svnt_export_macro=RECEIVER_SVNT_Export \
+ -Wb,svnt_export_include=Receiver_svnt_export.h \
+ -Wb,exec_export_macro=RECEIVER_EXEC_Export \
+ -Wb,exec_export_include=Receiver_exec_export.h -I..
+
+ IDL_Files {
+ Shapes_Receiver.idl
+ }
+}
+
+project(DDS_Receiver_lem_gen) : ciaoidldefaults {
+ after += DDS_Receiver_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=RECEIVER_LEM_STUB_Export \
+ -Wb,stub_export_include=Receiver_lem_stub_export.h \
+ -SS -Gxhst -I..
+
+ IDL_Files {
+ Shapes_ReceiverE.idl
+ }
+}
+
+project(DDS_Receiver_lem_stub) : ccm_svnt, dds4ccm_base {
+ after += DDS_Receiver_lem_gen DDS_Receiver_stub DDS_Shapes_Connector_stub DDS_Shapes_Base_stub
+ libs += Receiver_stub DDS_Shapes_Connector_stub DDS_Shapes_Base_stub
+ libpaths += ../lib
+ libout = ../lib
+ includes += ..
+ sharedname = Receiver_lem_stub
+ dynamicflags = RECEIVER_LEM_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Shapes_ReceiverEC.cpp
+ }
+
+ Header_Files {
+ Shapes_ReceiverEC.h
+ Receiver_lem_stub_export.h
+ }
+
+ Inline_Files {
+ Shapes_ReceiverEC.inl
+ }
+}
+
+project(DDS_Receiver_stub) : ccm_stub, dds4ccm_base {
+ after += DDS_Receiver_idl_gen DDS_Shapes_Connector_stub DDS_Shapes_Base_stub DDS_Shapes_Connector_lem_gen
+ libs += DDS_Shapes_Connector_stub DDS_Shapes_Base_stub
+ libpaths += ../lib
+ libout = ../lib
+ includes += ..
+ sharedname = Receiver_stub
+ dynamicflags = RECEIVER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Shapes_ReceiverC.cpp
+ }
+
+ Header_Files {
+ Shapes_ReceiverC.h
+ Receiver_stub_export.h
+ }
+
+ Inline_Files {
+ Shapes_ReceiverC.inl
+ }
+}
+
+project(DDS_Receiver_exec) : ciao_executor, dds4ccm_base {
+ after += DDS_Receiver_lem_stub DDS_Receiver_stub DDS_Shapes_Base_stub DDS_Shapes_Connector_stub DDS_Shapes_Connector_lem_stub DDS4CCM_lem_stub
+ sharedname = Receiver_exec
+ libs += Receiver_stub Receiver_lem_stub DDS_Shapes_Base_stub DDS_Shapes_Connector_stub DDS_Shapes_Connector_lem_stub DDS4CCM_lem_stub
+ libpaths += ../lib
+ libout = ../lib
+ includes += ..
+ dynamicflags = RECEIVER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Shapes_Receiver_exec.cpp
+ }
+
+ Header_Files {
+ Shapes_Receiver_exec.h
+ Receiver_exec_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+
+project(DDS_Receiver_svnt) : ciao_servant, dds4ccm_base, nddslib {
+ after += DDS_Receiver_lem_stub DDS_Shapes_Base_stub DDS_Shapes_Connector_stub DDS_Shapes_Connector_svnt DDS_Receiver_exec DDS_Shapes_Connector_lem_stub DDS4CCM_lem_stub DDS4CCM_skel
+ sharedname = Receiver_svnt
+ libs += Receiver_stub Receiver_lem_stub DDS_Shapes_Base_stub DDS_Shapes_Connector_stub DDS_Shapes_Connector_svnt Receiver_exec DDS_Shapes_Connector_lem_stub DDS4CCM_lem_stub DDS4CCM_skel
+ libpaths += ../lib
+ libout = ../lib
+ includes += ..
+ dynamicflags = RECEIVER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Shapes_ReceiverS.cpp
+ Shapes_Receiver_svnt.cpp
+ }
+
+ Header_Files {
+ Shapes_ReceiverS.h
+ Shapes_Receiver_svnt.h
+ Receiver_svnt_export.h
+ }
+
+ Inline_Files {
+ Shapes_ReceiverS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Shapes/Receiver/Shapes_Receiver_exec.cpp b/modules/CIAO/connectors/dds4ccm/examples/Shapes/Receiver/Shapes_Receiver_exec.cpp
new file mode 100644
index 00000000000..ed1384a880b
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Shapes/Receiver/Shapes_Receiver_exec.cpp
@@ -0,0 +1,358 @@
+// -*- C++ -*-
+//
+// $Id$
+
+#include "Shapes_Receiver_exec.h"
+#include "ciao/Logger/Log_Macros.h"
+#include "tao/ORB_Core.h"
+
+namespace CIAO_Shapes_Receiver_Impl
+{
+ read_action_Generator::read_action_Generator (Receiver_exec_i &callback)
+ : pulse_callback_ (callback)
+ {
+ }
+
+ read_action_Generator::~read_action_Generator ()
+ {
+ }
+
+ int
+ read_action_Generator::handle_timeout (const ACE_Time_Value &,
+ const void *)
+ {
+ if (pulse_callback_.read_data ())
+ {
+ this->pulse_callback_.read_one();
+ this->pulse_callback_.read_all();
+ }
+ if (pulse_callback_.get_data ())
+ {
+ this->pulse_callback_.get_one ();
+ this->pulse_callback_.get_all ();
+ }
+ return 0;
+ }
+
+ //============================================================
+ // Facet Executor Implementation Class: ShapeType_RawListener_exec_i
+ //============================================================
+
+ ShapeType_RawListener_exec_i::ShapeType_RawListener_exec_i (void)
+ {
+ }
+
+ ShapeType_RawListener_exec_i::~ShapeType_RawListener_exec_i (void)
+ {
+ }
+
+ // Operations from ::CCM_DDS::ShapeType_RawListener
+
+ void
+ ShapeType_RawListener_exec_i::on_data (
+ const ShapeType & an_instance ,
+ const ::CCM_DDS::ReadInfo & /* info */)
+ {
+ CIAO_DEBUG ((LM_DEBUG, ACE_TEXT ("ShapeType_RawListener: ")
+ ACE_TEXT ("received shape_info for <%s> at %u:%u:%u\n"),
+ an_instance.color.in (),
+ an_instance.x,
+ an_instance.y,
+ an_instance.shapesize));
+ }
+ //============================================================
+ // Facet Executor Implementation Class: PortStatusListener_exec_i
+ //============================================================
+
+ PortStatusListener_exec_i::PortStatusListener_exec_i (void)
+ {
+ }
+
+ PortStatusListener_exec_i::~PortStatusListener_exec_i (void)
+ {
+ }
+
+ // Operations from ::CCM_DDS::PortStatusListener
+
+ void
+ PortStatusListener_exec_i::on_requested_deadline_missed (
+ ::DDS::DataReader_ptr /* the_reader */,
+ const ::DDS::RequestedDeadlineMissedStatus & /* status */)
+ {
+ /* Your code here. */
+ }
+
+ void
+ PortStatusListener_exec_i::on_sample_lost (
+ ::DDS::DataReader_ptr /* the_reader */,
+ const ::DDS::SampleLostStatus & /* status */)
+ {
+
+ }
+
+ //============================================================
+ // Component Executor Implementation Class: Receiver_exec_iShapeType_RawListener_exec_i ();
+ //============================================================
+
+ Receiver_exec_i::Receiver_exec_i (void)
+ : rate_ (0),
+ get_data_ (true),
+ read_data_ (true),
+ raw_listen_ (false)
+
+ {
+ this->ticker_ = new read_action_Generator (*this);
+ }
+
+ Receiver_exec_i::~Receiver_exec_i (void)
+ {
+ }
+
+ // Supported operations and attributes.
+ void
+ Receiver_exec_i::read_one (void)
+ {
+ ShapeType shape_info;
+ shape_info.color = "GREEN";
+ ::CCM_DDS::ReadInfo readinfo;
+
+ try
+ {
+ this->reader_->read_one (shape_info, readinfo );
+ time_t tim = readinfo.timestamp.sec;
+ tm* time = localtime(&tim);
+ CIAO_DEBUG ((LM_DEBUG, ACE_TEXT ("READ_ONE Read_Info ")
+ ACE_TEXT (" -> date = %02d:%02d:%02d.%d\n"),
+ time->tm_hour,
+ time->tm_min,
+ time->tm_sec,
+ readinfo.timestamp.nanosec));
+ CIAO_DEBUG ((LM_DEBUG, ACE_TEXT ("READ ON shape info : ")
+ ACE_TEXT ("received shape_info for <%s> at %u:%u:%u\n"),
+ shape_info.color.in (),
+ shape_info.x,
+ shape_info.y,
+ shape_info.shapesize));
+ }
+ catch(CCM_DDS::NonExistent& )
+ {
+ CIAO_ERROR ((LM_ERROR, ACE_TEXT ("ShapeType_Read_One: ")
+ ACE_TEXT ("no shape_info receieved\n")));
+ }
+ }
+
+ void
+ Receiver_exec_i::read_all (void)
+ {
+ ShapeType_Seq_var shape_infos;
+ ::CCM_DDS::ReadInfoSeq_var readinfoseq;
+ this->reader_->read_all(shape_infos.out(), readinfoseq.out());
+ for(unsigned int i = 0; i < readinfoseq->length(); ++i)
+ {
+ time_t tim = readinfoseq[i].timestamp.sec;
+ tm* time = localtime(&tim);
+ CIAO_DEBUG ((LM_DEBUG, ACE_TEXT ("READ_ALL ReadInfo ")
+ ACE_TEXT ("-> UTC date = %02d:%02d:%02d.%d\n"),
+ time->tm_hour,
+ time->tm_min,
+ time->tm_sec,
+ readinfoseq[i].timestamp.nanosec));
+ }
+ for(CORBA::ULong i = 0; i < shape_infos->length(); ++i)
+ {
+ CIAO_DEBUG ((LM_DEBUG, ACE_TEXT ("READ_ALL Shape Info : ")
+ ACE_TEXT ("Number <%d> : received shape_info for <%s> at %u:%u:%u\n"),
+ i,
+ shape_infos[i].color.in (),
+ shape_infos[i].x,
+ shape_infos[i].y,
+ shape_infos[i].shapesize));
+ }
+ }
+
+ void
+ Receiver_exec_i::get_one (void)
+ {
+ ShapeType shape_info;
+ shape_info.color = "yellow";
+ ::CCM_DDS::ReadInfo readinfo;
+
+ try
+ {
+ if (this->getter_->get_one (shape_info, readinfo ))
+ {
+ time_t tim = readinfo.timestamp.sec;
+ tm* time = localtime(&tim);
+ CIAO_DEBUG ((LM_DEBUG, ACE_TEXT ("GET_ONE ReadInfo -> ")
+ ACE_TEXT ("date = %02d:%02d:%02d.%d\n"),
+ time->tm_hour,
+ time->tm_min,
+ time->tm_sec,
+ readinfo.timestamp.nanosec));
+ CIAO_DEBUG ((LM_DEBUG, ACE_TEXT ("GET_ONE ShapeType : ")
+ ACE_TEXT ("received shape_info for <%s> at %u:%u:%u\n"),
+ shape_info.color.in (),
+ shape_info.x,
+ shape_info.y,
+ shape_info.shapesize));
+ }
+ else
+ {
+ CIAO_DEBUG ((LM_DEBUG, ACE_TEXT ("GET_ONE No data available for <%C>\n"),
+ shape_info.color.in ()));
+ }
+ }
+ catch(CCM_DDS::NonExistent& )
+ {
+ CIAO_ERROR ((LM_ERROR, ACE_TEXT ("ShapeType_Read_One: no shape_info receieved\n")));
+ }
+ }
+
+ void
+ Receiver_exec_i::get_all (void)
+ {
+ }
+ // Component attributes.
+ ::CORBA::ULong
+ Receiver_exec_i::rate (void)
+ {
+ return this->rate_;
+ }
+
+ void
+ Receiver_exec_i::rate (
+ ::CORBA::ULong rate)
+ {
+ this->rate_ = rate;
+ }
+ ::CORBA::Boolean
+ Receiver_exec_i::get_data (void)
+ {
+ return this->get_data_;
+ }
+
+ void
+ Receiver_exec_i::get_data (
+ ::CORBA::Boolean get_data)
+ {
+ this->get_data_ = get_data;
+ }
+
+ ::CORBA::Boolean
+ Receiver_exec_i::read_data (void)
+ {
+ return this->read_data_;
+ }
+
+ void
+ Receiver_exec_i::read_data (
+ ::CORBA::Boolean read_data)
+ {
+ this->read_data_ = read_data;
+ }
+
+ ::CORBA::Boolean
+ Receiver_exec_i::raw_listen (void)
+ {
+ return this->raw_listen_;
+ }
+
+ void
+ Receiver_exec_i::raw_listen (
+ ::CORBA::Boolean raw_listen)
+ {
+ this->raw_listen_ = raw_listen;
+ }
+
+ // Port operations.
+ ::CCM_DDS::CCM_ShapeType_RawListener_ptr
+ Receiver_exec_i::get_info_out_data_listener (void)
+ {
+ CIAO_DEBUG ((LM_DEBUG, ACE_TEXT ("new ShapeType RAW listener\n")));
+ return new ShapeType_RawListener_exec_i ();
+ }
+
+ ::CCM_DDS::CCM_PortStatusListener_ptr
+ Receiver_exec_i::get_info_out_status (void)
+ {
+ CIAO_DEBUG ((LM_DEBUG, ACE_TEXT ("new PortStatuslistener\n")));
+ return new PortStatusListener_exec_i ();
+ }
+
+ // Operations from Components::SessionComponent.
+ void
+ Receiver_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::Shapes::CCM_Receiver_Context::_narrow (ctx);
+ if ( ::CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Receiver_exec_i::configuration_complete (void)
+ {
+ if (this->read_data ())
+ {
+ this->reader_ = this->context_->get_connection_info_out_data();
+ }
+ if (this->get_data ())
+ {
+ this->getter_ = this->context_->get_connection_info_out_get_data();
+ }
+ }
+
+ void
+ Receiver_exec_i::ccm_activate (void)
+ {
+ ::CCM_DDS::ListenerControl_var lc =
+ this->context_->get_connection_info_out_data_control ();
+
+ if (CORBA::is_nil (lc.in ()))
+ {
+ CIAO_ERROR ((LM_INFO, ACE_TEXT ("Error: Listener control receptacle is null!\n")));
+ throw CORBA::INTERNAL ();
+ }
+ lc->enabled (this->raw_listen_);
+
+ // calculate the interval time
+ long usec = 1000000 / this->rate_;
+ if (this->context_->get_CCM_object()->_get_orb ()->orb_core ()->reactor ()->schedule_timer (
+ this->ticker_,
+ 0,
+ ACE_Time_Value(0, usec),
+ ACE_Time_Value(0, usec)) == -1)
+ {
+ CIAO_ERROR ((LM_ERROR, "Unable to schedule Timer\n"));
+ }
+ }
+
+ void
+ Receiver_exec_i::ccm_passivate (void)
+ {
+ this->context_->get_CCM_object()->_get_orb ()->orb_core ()->reactor ()->cancel_timer (this->ticker_);
+ delete this->ticker_;
+ }
+
+ void
+ Receiver_exec_i::ccm_remove (void)
+ {
+ }
+
+ extern "C" RECEIVER_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Shapes_Receiver_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_NORETURN (
+ retval,
+ Receiver_exec_i);
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Shapes/Receiver/Shapes_Receiver_exec.h b/modules/CIAO/connectors/dds4ccm/examples/Shapes/Receiver/Shapes_Receiver_exec.h
new file mode 100644
index 00000000000..59312be4f8c
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Shapes/Receiver/Shapes_Receiver_exec.h
@@ -0,0 +1,143 @@
+// -*- C++ -*-
+// $Id$
+
+#ifndef CIAO_RECEIVER_EXEC_H_
+#define CIAO_RECEIVER_EXEC_H_
+
+#include "Shapes_ReceiverEC.h"
+
+#include /**/ "Receiver_exec_export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "tao/LocalObject.h"
+#include "ace/Task.h"
+#include "ace/Reactor.h"
+
+namespace CIAO_Shapes_Receiver_Impl
+{
+ class Receiver_exec_i;
+ /**
+ * @class reader activity generator
+ *
+ * @brief an active object used by Receiver to perform a periodical read action
+ *
+ */
+ class read_action_Generator
+ : public ACE_Event_Handler
+ {
+ public:
+ read_action_Generator (Receiver_exec_i &callback);
+
+ ~read_action_Generator ();
+
+ /// Handle the timeout.
+ virtual int handle_timeout (const ACE_Time_Value &tv,
+ const void *arg);
+
+ private:
+ /// Maintains a handle that actually process the event
+ Receiver_exec_i &pulse_callback_;
+
+ };
+
+ class RECEIVER_EXEC_Export ShapeType_RawListener_exec_i
+ : public virtual ::CCM_DDS::CCM_ShapeType_RawListener,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ ShapeType_RawListener_exec_i (void);
+ virtual ~ShapeType_RawListener_exec_i (void);
+
+ virtual void
+ on_data (
+ const ShapeType & an_instance,
+ const ::CCM_DDS::ReadInfo & info);
+ };
+
+ class RECEIVER_EXEC_Export PortStatusListener_exec_i
+ : public virtual ::CCM_DDS::CCM_PortStatusListener,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ PortStatusListener_exec_i (void);
+ virtual ~PortStatusListener_exec_i (void);
+
+ virtual void
+ on_requested_deadline_missed (
+ ::DDS::DataReader_ptr the_reader,
+ const ::DDS::RequestedDeadlineMissedStatus & status);
+
+ virtual void
+ on_sample_lost (
+ ::DDS::DataReader_ptr the_reader,
+ const ::DDS::SampleLostStatus & status);
+ };
+
+ class RECEIVER_EXEC_Export Receiver_exec_i
+ : public virtual Receiver_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Receiver_exec_i (void);
+ virtual ~Receiver_exec_i (void);
+
+ // Supported operations and attributes.
+ void read_one (void);
+ void read_all (void);
+ void get_one (void);
+ void get_all (void);
+
+ // Component attributes.
+ virtual ::CORBA::ULong rate (void);
+
+ virtual void rate (::CORBA::ULong rate);
+
+ virtual ::CORBA::Boolean get_data (void);
+
+ virtual void get_data (::CORBA::Boolean get_data);
+
+ virtual ::CORBA::Boolean read_data (void);
+
+ virtual void read_data (::CORBA::Boolean read_data);
+
+ virtual ::CORBA::Boolean raw_listen (void);
+
+ virtual void raw_listen (::CORBA::Boolean raw_listen);
+
+ // Port operations.
+ virtual ::CCM_DDS::CCM_ShapeType_RawListener_ptr
+ get_info_out_data_listener (void);
+
+ virtual ::CCM_DDS::CCM_PortStatusListener_ptr
+ get_info_out_status (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:
+ ::Shapes::CCM_Receiver_Context_var context_;
+ ::CCM_DDS::ShapeType_Reader_var reader_;
+ ::CCM_DDS::ShapeType_Getter_var getter_;
+
+ read_action_Generator * ticker_;
+ CORBA::ULong rate_;
+ CORBA::Boolean get_data_, read_data_, raw_listen_;
+ };
+
+ extern "C" RECEIVER_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Shape_Receiver_Impl (void);
+}
+
+#endif /* ifndef */
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Shapes/Sender/Shapes_Sender.idl b/modules/CIAO/connectors/dds4ccm/examples/Shapes/Sender/Shapes_Sender.idl
new file mode 100644
index 00000000000..c60215714b1
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Shapes/Sender/Shapes_Sender.idl
@@ -0,0 +1,39 @@
+// $Id$
+
+/**
+ * @file
+ * @author Marcel Smit <msmit@remedy.nl>
+ *
+ * by-hand idl3 translation of sender components.
+ */
+
+#ifndef DDS_SENDER_IDL
+#define DDS_SENDER_IDL
+
+#include "Connector/Shapes_Connector.idl"
+#include "Connector/Shapes_ConnectorE.idl"
+
+module Shapes
+{
+ component Sender
+ {
+ port CCM_DDS::DDS_Update info_update;
+ attribute unsigned long rate;
+ attribute unsigned short max_x;
+ attribute unsigned short max_y;
+ attribute unsigned short max_size;
+ attribute boolean resize_shape;
+ };
+};
+
+/*
+For future use: IDL3 plus
+module Shapes
+{
+ component Sender
+ {
+ port CCM_DDS::DDS_Write <Shape_Info> info;
+ };
+};
+*/
+#endif
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Shapes/Sender/Shapes_Sender.mpc b/modules/CIAO/connectors/dds4ccm/examples/Shapes/Sender/Shapes_Sender.mpc
new file mode 100644
index 00000000000..6b2c1dffc33
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Shapes/Sender/Shapes_Sender.mpc
@@ -0,0 +1,140 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p DDS_Shapes_Base -l ../lib -o ../lib -c controller -u DDS Sender"
+
+project(DDS_Sender_idl_gen) : componentidldefaults {
+ after += DDS_Shapes_Connector_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=SENDER_STUB_Export \
+ -Wb,stub_export_include=Sender_stub_export.h \
+ -Wb,skel_export_macro=SENDER_SVNT_Export \
+ -Wb,skel_export_include=Sender_svnt_export.h \
+ -Wb,svnt_export_macro=SENDER_SVNT_Export \
+ -Wb,svnt_export_include=Sender_svnt_export.h \
+ -Wb,exec_export_macro=SENDER_EXEC_Export \
+ -Wb,exec_export_include=Sender_exec_export.h \
+ -I ..
+
+ IDL_Files {
+ Shapes_Sender.idl
+ }
+}
+
+project(DDS_Sender_lem_gen) : ciaoidldefaults {
+ after += DDS_Sender_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=SENDER_LEM_STUB_Export \
+ -Wb,stub_export_include=Sender_lem_stub_export.h \
+ -SS -Gxhst -I $CIAO_ROOT/connectors -I ..
+
+ IDL_Files {
+ Shapes_SenderE.idl
+ }
+}
+
+project(DDS_Sender_lem_stub) : ccm_svnt, dds4ccm_base {
+ after += DDS_Sender_lem_gen DDS_Sender_stub DDS_Shapes_Base_stub
+ libs += DDS_Shapes_Base_stub Sender_stub
+ libpaths += ../lib
+ libout = ../lib
+ includes += ..
+ sharedname = Sender_lem_stub
+ dynamicflags = SENDER_LEM_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Shapes_SenderEC.cpp
+ }
+
+ Header_Files {
+ Shapes_SenderEC.h
+ Sender_lem_stub_export.h
+ }
+
+ Inline_Files {
+ Shapes_SenderEC.inl
+ }
+}
+
+project(DDS_Sender_stub) : ccm_stub, dds4ccm_base {
+ after += DDS_Sender_idl_gen DDS_Shapes_Base_stub DDS_Shapes_Connector_stub
+ libs += DDS_Shapes_Base_stub DDS_Shapes_Connector_stub
+ includes += ..
+ libpaths += ../lib
+ libout = ../lib
+ sharedname = Sender_stub
+ dynamicflags = SENDER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Shapes_SenderC.cpp
+ }
+
+ Header_Files {
+ Shapes_SenderC.h
+ Sender_stub_export.h
+ }
+
+ Inline_Files {
+ Shapes_SenderC.inl
+ }
+}
+
+project(DDS_Sender_exec) : ciao_executor, dds4ccm_base {
+ after += DDS_Sender_lem_stub DDS_Sender_stub DDS_Shapes_Connector_lem_stub DDS_Shapes_Connector_stub
+ sharedname = Sender_exec
+ libs += Sender_stub Sender_lem_stub DDS_Shapes_Base_stub DDS_Shapes_Connector_lem_stub DDS_Shapes_Connector_stub
+ libpaths += ../lib
+ includes += ..
+ libout = ../lib
+ dynamicflags = SENDER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Shapes_Sender_exec.cpp
+ }
+
+ Header_Files {
+ Shapes_Sender_exec.h
+ Sender_exec_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+
+project(DDS_Sender_svnt) : ciao_servant, dds4ccm_base, nddslib {
+ after += DDS_Shapes_Base_stub DDS_Sender_lem_stub DDS4CCM_lem_stub DDS4CCM_skel DDS_Shapes_Connector_stub DDS_Shapes_Connector_svnt DDS_Shapes_Connector_lem_stub
+ sharedname = Sender_svnt
+ libs += Sender_stub Sender_lem_stub \
+ DDS_Shapes_Base_stub DDS4CCM_lem_stub DDS4CCM_skel DDS_Shapes_Connector_stub DDS_Shapes_Connector_svnt DDS_Shapes_Connector_lem_stub
+ libpaths += ../lib
+ libout = ../lib
+ includes += ..
+ dynamicflags = SENDER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Shapes_SenderS.cpp
+ Shapes_Sender_svnt.cpp
+ }
+
+ Header_Files {
+ Shapes_SenderS.h
+ Shapes_Sender_svnt.h
+ Sender_svnt_export.h
+ }
+
+ Inline_Files {
+ Shapes_SenderS.inl
+ }
+}
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Shapes/Sender/Shapes_Sender_exec.cpp b/modules/CIAO/connectors/dds4ccm/examples/Shapes/Sender/Shapes_Sender_exec.cpp
new file mode 100644
index 00000000000..a5fe98248be
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Shapes/Sender/Shapes_Sender_exec.cpp
@@ -0,0 +1,288 @@
+// -*- C++ -*-
+// $Id$
+
+#include "Shapes_Sender_exec.h"
+#include "ace/Guard_T.h"
+#include "ciao/Logger/Log_Macros.h"
+#include "tao/ORB_Core.h"
+
+namespace CIAO_Shapes_Sender_Impl
+{
+ //============================================================
+ // Pulse generator
+ //============================================================
+
+ pulse_Generator::pulse_Generator (Sender_exec_i &callback)
+ : pulse_callback_ (callback)
+ {
+ }
+
+ pulse_Generator::~pulse_Generator ()
+ {
+ }
+
+ int
+ pulse_Generator::handle_timeout (const ACE_Time_Value &, const void *)
+ {
+ // Notify the subscribers
+ this->pulse_callback_.tick ();
+ return 0;
+ }
+
+ //============================================================
+ // Component Executor Implementation Class: Sender_exec_i
+ //============================================================
+
+ Sender_exec_i::Sender_exec_i (void)
+ : rate_ (1),
+ max_x_ (100),
+ max_y_ (100),
+ max_size_ (25),
+ resize_ (false),
+ x_increasing_ (false),
+ y_increasing_ (false),
+ size_increasing_ (false)
+ {
+ square_ = new ShapeType;
+ this->ticker_ = new pulse_Generator (*this);
+ }
+
+ Sender_exec_i::~Sender_exec_i (void)
+ {
+ }
+
+ // Supported operations and attributes.
+
+ void
+ Sender_exec_i::tick ()
+ {
+ if (this->x_increasing_)
+ {
+ ++square_->x;
+ this->x_increasing_ = square_->x + 1 <= this->max_x_;
+ }
+ else
+ {
+ --square_->x;
+ this->x_increasing_ = square_->x - 1 < 0;
+ }
+ if (this->y_increasing_)
+ {
+ ++square_->y;
+ this->y_increasing_ = square_->y + 1 <= this->max_y_;
+ }
+ else
+ {
+ --square_->y;
+ this->y_increasing_ = square_->y - 1 < 0;
+ }
+ if (resize_shape ())
+ {
+ if (this->size_increasing_)
+ {
+ ++square_->shapesize;
+ this->size_increasing_ = square_->shapesize + 1 <= this->max_size_;
+ }
+ else
+ {
+ --square_->shapesize;
+ this->size_increasing_ = square_->shapesize - 1 < 0;
+ }
+ }
+ try
+ {
+ this->updater_->update (*square_);
+ CIAO_DEBUG ((LM_DEBUG, ACE_TEXT ("UPDATED Shape_info for <%C> %u:%u:%u\n"),
+ square_->color.in (),
+ square_->x,
+ square_->y,
+ square_->shapesize));
+ }
+ catch (CCM_DDS::NonExistent& )
+ {
+ CIAO_ERROR ((LM_ERROR,
+ ACE_TEXT ("Shape_info for <%C> not updated: <%C> didn't exist.\n"),
+ square_->color.in (), square_->color.in ()));
+ }
+ catch (CCM_DDS::InternalError& )
+ {
+ CIAO_ERROR ((LM_ERROR,
+ ACE_TEXT ("Internal Error while updating Shape_info for <%C>.\n"),
+ square_->color.in ()));
+ }
+ }
+
+ void
+ Sender_exec_i::start (void)
+ {
+ // calculate the interval time
+ long usec = 1000000 / this->rate_;
+ if (this->context_->get_CCM_object()->_get_orb ()->orb_core ()->reactor ()->schedule_timer (
+ this->ticker_,
+ 0,
+ ACE_Time_Value (0, usec),
+ ACE_Time_Value (0, usec)) == -1)
+ {
+ CIAO_ERROR ((LM_ERROR, ACE_TEXT ("Sender_exec_i::start : ")
+ ACE_TEXT ("Error scheduling timer")));
+ }
+ }
+
+ void
+ Sender_exec_i::stop (void)
+ {
+ this->context_->get_CCM_object()->_get_orb ()->orb_core ()->reactor ()->cancel_timer (this->ticker_);
+ CIAO_DEBUG ((LM_DEBUG, ACE_TEXT ("Sender_exec_i::stop : Timer canceled.\n")));
+ try
+ {
+ this->updater_->_cxx_delete (*this->square_);
+ }
+ catch (CCM_DDS::NonExistent& )
+ {
+ CIAO_ERROR ((LM_ERROR,
+ ACE_TEXT ("Shape_info for <%C> not deleted: <%C> didn't exist.\n"),
+ square_->color.in (), square_->color.in ()));
+ }
+ catch (CCM_DDS::InternalError& )
+ {
+ CIAO_ERROR ((LM_ERROR, ACE_TEXT ("Internal Error while deleting Shape_info for <%C>.\n"),
+ square_->color.in ()));
+ }
+ delete this->ticker_;
+ delete this->square_;
+ }
+
+ ::CORBA::ULong
+ Sender_exec_i::rate (void)
+ {
+ return this->rate_;
+ }
+
+ void
+ Sender_exec_i::rate (::CORBA::ULong rate)
+ {
+ this->rate_ = rate;
+ }
+
+ ::CORBA::UShort
+ Sender_exec_i::max_x (void)
+ {
+ return this->max_x_;
+ }
+
+ void
+ Sender_exec_i::max_x (::CORBA::UShort max_x)
+ {
+ this->max_x_ = max_x;
+ }
+
+ ::CORBA::UShort
+ Sender_exec_i::max_y (void)
+ {
+ return this->max_y_;
+ }
+
+ void
+ Sender_exec_i::max_y (::CORBA::UShort max_y)
+ {
+ this->max_y_ = max_y;
+ }
+
+ ::CORBA::UShort
+ Sender_exec_i::max_size (void)
+ {
+ return this->max_size_;
+ }
+
+ void
+ Sender_exec_i::max_size (::CORBA::UShort max_size)
+ {
+ this->max_size_ = max_size;
+ }
+
+ void
+ Sender_exec_i::resize_shape (::CORBA::Boolean resize)
+ {
+ this->resize_ = resize;
+ }
+
+ ::CORBA::Boolean
+ Sender_exec_i::resize_shape ()
+ {
+ return this->resize_;
+ }
+
+ void
+ Sender_exec_i::set_session_context (::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::Shapes::CCM_Sender_Context::_narrow (ctx);
+
+ if ( ::CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Sender_exec_i::configuration_complete (void)
+ {
+ this->updater_ = this->context_->get_connection_info_update_data ();
+ }
+
+ void
+ Sender_exec_i::ccm_activate (void)
+ {
+ this->start ();
+ square_->x = ACE_OS::rand () % this->max_x_;
+ square_->y = ACE_OS::rand () % this->max_y_;
+ square_->shapesize = max_size_;
+ square_->color = CORBA::string_dup("GREEN");
+
+ //Register shape with dds.
+ CIAO_DEBUG ((LM_DEBUG, ACE_TEXT ("REGISTER Shape_info for <%C> %u:%u:%u\n"),
+ square_->color.in (),
+ square_->x,
+ square_->y,
+ square_->shapesize));
+ try
+ {
+ this->updater_->create (*square_);
+ }
+ catch (CCM_DDS::AlreadyCreated& )
+ {
+ CIAO_ERROR ((LM_ERROR, ACE_TEXT ("Shape_info for <%C> already created.\n"),
+ square_->color.in ()));
+ }
+ catch (CCM_DDS::InternalError& )
+ {
+ CIAO_ERROR ((LM_ERROR, ACE_TEXT ("Internal Error while creating Shape_info for <%C>.\n"),
+ square_->color.in ()));
+ }
+ }
+
+ void
+ Sender_exec_i::ccm_passivate (void)
+ {
+ this->stop ();
+ }
+
+ void
+ Sender_exec_i::ccm_remove (void)
+ {
+ }
+
+ extern "C" SENDER_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Shape_Sender_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_NORETURN (
+ retval,
+ Sender_exec_i);
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Shapes/Sender/Shapes_Sender_exec.h b/modules/CIAO/connectors/dds4ccm/examples/Shapes/Sender/Shapes_Sender_exec.h
new file mode 100644
index 00000000000..30f024fee53
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Shapes/Sender/Shapes_Sender_exec.h
@@ -0,0 +1,104 @@
+// -*- C++ -*-
+// $Id$
+
+#ifndef CIAO_SENDER_EXEC_H_
+#define CIAO_SENDER_EXEC_H_
+
+
+#include "Shapes_SenderEC.h"
+
+#include /**/ "Sender_exec_export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "tao/LocalObject.h"
+#include "ace/Task.h"
+#include "ace/Reactor.h"
+
+namespace CIAO_Shapes_Sender_Impl
+{
+ class Sender_exec_i;
+
+ class pulse_Generator :
+ public ACE_Event_Handler
+ {
+ public:
+ pulse_Generator (Sender_exec_i &callback);
+
+ ~pulse_Generator ();
+
+ /// Handle the timeout.
+ virtual int handle_timeout (const ACE_Time_Value &tv,
+ const void *arg);
+ private:
+ /// Maintains a handle that actually process the event
+ Sender_exec_i &pulse_callback_;
+ };
+
+ class Sender_exec_i
+ : public virtual Sender_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Sender_exec_i (void);
+ virtual ~Sender_exec_i (void);
+
+ virtual ::CORBA::ULong rate (void);
+
+ virtual void rate (::CORBA::ULong rate);
+
+ virtual ::CORBA::UShort max_x (void);
+
+ virtual void max_x (::CORBA::UShort max_x);
+
+ virtual ::CORBA::UShort max_y (void);
+
+ virtual void max_y (::CORBA::UShort max_y);
+
+ virtual ::CORBA::UShort max_size (void);
+
+ virtual void max_size (::CORBA::UShort max_size);
+
+ virtual void resize_shape (::CORBA::Boolean resize);
+
+ virtual ::CORBA::Boolean resize_shape (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);
+
+ void tick ();
+
+ private:
+ void start (void);
+ void stop (void);
+
+ CCM_DDS::ShapeType_Updater_var updater_;
+
+ pulse_Generator * ticker_;
+ ::Shapes::CCM_Sender_Context_var context_;
+ CORBA::ULong rate_;
+ CORBA::UShort max_x_;
+ CORBA::UShort max_y_;
+ CORBA::UShort max_size_;
+ CORBA::Boolean resize_;
+
+ bool x_increasing_;
+ bool y_increasing_;
+ bool size_increasing_;
+
+ ShapeType* square_;
+ };
+
+ extern "C" SENDER_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Shape_Sender_Impl (void);
+}
+
+#endif /* ifndef */
+
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/Plan.cdp b/modules/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/Plan.cdp
new file mode 100644
index 00000000000..efc8f8198eb
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/Plan.cdp
@@ -0,0 +1,459 @@
+<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>Shapes_Depl_1</label>
+ <UUID>Shapes_Depl_1</UUID>
+
+ <implementation xmi:id="ReceiverComponentImplementation">
+ <name>ReceiverComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Receiver_ExecArtifact" />
+ <artifact xmi:idref="Receiver_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Shapes_Receiver_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Shapes_Receiver_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="Shapes_ConnectorComponentImplementation">
+ <name>Shapes_ConnectorComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Shapes_Connector_ExecArtifact" />
+ <artifact xmi:idref="Shapes_Connector_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Shapes_Shapes_Connector_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Shapes_Shapes_Connector_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Shapes_Connector_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Shapes_Connector_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+ <implementation xmi:id="SenderComponentImplementation">
+ <name>SenderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Sender_ExecArtifact" />
+ <artifact xmi:idref="Sender_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Shape_Sender_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Shapes_Sender_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+ <instance xmi:id="ReceiverComponentInstance">
+ <name>ReceiverComponent</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ReceiverComponentImplementation" />
+ <configProperty>
+ <name>rate</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>1</long>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>get_data</name>
+ <value>
+ <type>
+ <kind>tk_boolean</kind>
+ </type>
+ <value>
+ <boolean>false</boolean>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>read_data</name>
+ <value>
+ <type>
+ <kind>tk_boolean</kind>
+ </type>
+ <value>
+ <boolean>false</boolean>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>raw_listen</name>
+ <value>
+ <type>
+ <kind>tk_boolean</kind>
+ </type>
+ <value>
+ <boolean>true</boolean>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+ <instance xmi:id="Shapes_ConnectorComponentInstance">
+ <name>Shapes_ConnectorComponent</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
+ <configProperty>
+ <name>topic_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Square</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+ <instance xmi:id="Shapes_ConnectorComponentInstance2">
+ <name>Shapes_ConnectorComponent2</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Shapes_ConnectorComponentImplementation" />
+ <configProperty>
+ <name>topic_name</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Square</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+ <instance xmi:id="SenderComponentInstance">
+ <name>SenderComponent</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="SenderComponentImplementation" />
+ <configProperty>
+ <name>rate</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>10</long>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>max_x</name>
+ <value>
+ <type>
+ <kind>tk_short</kind>
+ </type>
+ <value>
+ <short>225</short>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>max_y</name>
+ <value>
+ <type>
+ <kind>tk_short</kind>
+ </type>
+ <value>
+ <short>250</short>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>max_size</name>
+ <value>
+ <type>
+ <kind>tk_short</kind>
+ </type>
+ <value>
+ <short>25</short>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>resize_shape</name>
+ <value>
+ <type>
+ <kind>tk_boolean</kind>
+ </type>
+ <value>
+ <boolean>true</boolean>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>info_out_data</name>
+ <internalEndpoint>
+ <portName>info_out_data</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="ReceiverComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_data</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Shapes_ConnectorComponentInstance2" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_listenercontrol</name>
+ <internalEndpoint>
+ <portName>info_out_data_control</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="ReceiverComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_data_control</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Shapes_ConnectorComponentInstance2" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_portstatuslistener</name>
+ <internalEndpoint>
+ <portName>info_out_status</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="ReceiverComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_status</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Shapes_ConnectorComponentInstance2" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>_rawlistner</name>
+ <internalEndpoint>
+ <portName>info_out_data_listener</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="ReceiverComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_data_listener</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Shapes_ConnectorComponentInstance2" />
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>info_out_get_data</name>
+ <internalEndpoint>
+ <portName>info_out_get_data</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="ReceiverComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_out_get_data</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Shapes_ConnectorComponentInstance2" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>updater_connection</name>
+ <internalEndpoint>
+ <portName>info_update_data</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="SenderComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>info_update_data</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Shapes_ConnectorComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <artifact xmi:id="Sender_ExecArtifact">
+ <name>Sender_exec</name>
+ <source/>
+ <node/>
+ <location>Sender_exec</location>
+ </artifact>
+ <artifact xmi:id="Sender_SvntArtifact">
+ <name>Sender_svnt</name>
+ <source/>
+ <node/>
+ <location>Sender_svnt</location>
+ </artifact>
+ <artifact xmi:id="Sender_StubArtifact">
+ <name>Sender_stub</name>
+ <source/>
+ <node/>
+ <location>Sender_stub</location>
+ </artifact>
+ <artifact xmi:id="Shapes_Connector_ExecArtifact">
+ <name>Shapes_Connector_exec</name>
+ <source/>
+ <node/>
+ <location>DDS_Shapes_Connector_exec</location>
+ </artifact>
+ <artifact xmi:id="Shapes_Connector_SvntArtifact">
+ <name>Shapes_Connector_svnt</name>
+ <source/>
+ <node/>
+ <location>DDS_Shapes_Connector_svnt</location>
+ </artifact>
+ <artifact xmi:id="Shapes_Connector_StubArtifact">
+ <name>Shapes_Connector_stub</name>
+ <source/>
+ <node/>
+ <location>DDS_Shapes_Connector_stub</location>
+ </artifact>
+ <artifact xmi:id="Receiver_ExecArtifact">
+ <name>Receiver_exec</name>
+ <source/>
+ <node/>
+ <location>Receiver_exec</location>
+ </artifact>
+ <artifact xmi:id="Receiver_SvntArtifact">
+ <name>Receiver_svnt</name>
+ <source/>
+ <node/>
+ <location>Receiver_svnt</location>
+ </artifact>
+ <artifact xmi:id="Receiver_StubArtifact">
+ <name>Receiver_stub</name>
+ <source/>
+ <node/>
+ <location>Receiver_stub</location>
+ </artifact>
+</Deployment:DeploymentPlan>
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/USER_QOS_PROFILES.xml b/modules/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/USER_QOS_PROFILES.xml
new file mode 100644
index 00000000000..05eac617c37
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/USER_QOS_PROFILES.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+Description
+XML QoS Profile
+
+The QoS configuration of the DDS entities in the generated example is
+loaded from this file.
+
+This file is used only when it is in the current working directory
+or when the enviroment variable
+NDDS_QOS_PROFILES is defined and points to this file.
+
+For more information about XML QoS Profiles see Chapter 15 in the
+RTI Data Distribution Service user manual.
+-->
+<dds xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="c:/ndds/ndds.4.4d/scripts/../resource/rtiddsgen/../qos_profiles_4.4d/schema/rti_dds_qos_profiles.xsd" version="4.4d">
+ <!-- QoS Library containing the QoS profile used in the generated example.
+
+ A QoS library is a named set of QoS profiles.
+ -->
+ <qos_library name="HelloMsg_Library">
+ <!-- QoS profile used to configure reliable communication between the DataWriter
+ and DataReader created in the example code.
+
+ A QoS profile groups a set of related QoS.
+ -->
+ <qos_profile name="HelloMsg_Profile" is_default_qos="true">
+ <!-- QoS used to configure the data writer created in the example code -->
+ <datawriter_qos>
+ <reliability>
+ <kind>RELIABLE_RELIABILITY_QOS</kind>
+ <max_blocking_time>
+ <sec>10</sec>
+ <nanosec>0</nanosec>
+ </max_blocking_time>
+ </reliability>
+ <durability>
+ <kind>TRANSIENT_DURABILITY_QOS</kind>
+ </durability>
+ <history>
+ <kind>KEEP_LAST_HISTORY_QOS</kind>
+ <depth>20</depth>
+ </history>
+ <protocol>
+ <rtps_reliable_writer>
+ <max_heartbeat_retries>10</max_heartbeat_retries>
+ </rtps_reliable_writer>
+ </protocol>
+ </datawriter_qos>
+ <!-- QoS used to configure the data reader created in the example code -->
+ <datareader_qos>
+ <reliability>
+ <kind>RELIABLE_RELIABILITY_QOS</kind>
+ </reliability>
+ <history>
+ <kind>KEEP_LAST_HISTORY_QOS</kind>
+ <depth>20</depth>
+ </history>
+ <durability>
+ <kind>TRANSIENT_LOCAL_DURABILITY_QOS</kind>
+ </durability>
+ </datareader_qos>
+ </qos_profile>
+ </qos_library>
+</dds> \ No newline at end of file
diff --git a/modules/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/run_test.pl b/modules/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/run_test.pl
new file mode 100755
index 00000000000..5a45cf23637
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/examples/Shapes/descriptors/run_test.pl
@@ -0,0 +1,189 @@
+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;
+
+$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
+$TAO_ROOT = "$ENV{'TAO_ROOT'}";
+$DAnCE = "$ENV{'DANCE_ROOT'}";
+
+$daemons_running = 0;
+$em_running = 0;
+$ns_running = 0;
+
+$daemons = 2;
+@ports = ( 60001, 60002 );
+@iorfiles = ( "NodeApp1.ior", "NodeApp2.ior" );
+@nodenames = ( "SenderNode", "ReceiverNode" );
+
+$status = 0;
+$cdp_file = "Plan.cdp";
+
+$nsior = PerlACE::LocalFile ("ns.ior");
+
+PerlACE::add_lib_path ('../lib');
+
+unlink $nsior;
+
+$E = 0;
+$EM = 0;
+
+# Delete if there are any .ior files.
+sub delete_ior_files {
+ for ($i = 0; $i < $daemons; ++$i) {
+ unlink $iorfiles[$i];
+ }
+ unlink PerlACE::LocalFile ("EM.ior");
+ unlink PerlACE::LocalFile ("DAM.ior");
+ unlink PerlACE::LocalFile ("ns.ior");
+}
+
+sub kill_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i) {
+ $Daemons[$i]->Kill (); $Daemons[$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);
+ }
+
+}
+
+sub run_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i)
+ {
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+ $nodename = $nodenames[$i];
+ $iiop = "iiop://localhost:$port";
+ $node_app = "$CIAO_ROOT/bin/ciao_componentserver";
+
+ $d_cmd = "$DAnCE/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";
+
+ $Daemons[$i] = new PerlACE::Process ($d_cmd, $d_param);
+ $result = $Daemons[$i]->Spawn ();
+ push(@processes, $Daemons[$i]);
+
+ if (PerlACE::waitforfile_timed ($iorfile,
+ 30) == -1) {
+ print STDERR
+ "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
+ for (; $i >= 0; --$i) {
+ $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1);
+ }
+ return -1;
+ }
+ }
+ return 0;
+}
+
+delete_ior_files ();
+
+# Invoke naming service
+
+$NS = new PerlACE::Process ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 0 -ORBEndpoint iiop://localhost:60003 -o ns.ior");
+
+$NS->Spawn ();
+
+print STDERR "Starting Naming Service with -m 0 -ORBEndpoint iiop://localhost:60003 -o ns.ior\n";
+
+if (PerlACE::waitforfile_timed ($nsior, $PerlACE::wait_interval_for_process_creation) == -1)
+{
+ print STDERR "ERROR: cannot find naming service IOR file\n";
+ $NS->Kill ();
+ exit 1;
+}
+
+$ns_running = 1;
+
+# Set up NamingService environment
+$ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService";
+
+
+# Invoke node daemons.
+print "Invoking node daemons\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 -eEM.ior \n";
+$EM = new PerlACE::Process ("$DAnCE/bin/dance_execution_manager",
+ "-eEM.ior --domain-nc corbaloc:rir:/NameService");
+$EM->Spawn ();
+
+if (PerlACE::waitforfile_timed ("EM.ior",
+ $PerlACE::wait_interval_for_process_creation) == -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 - start the application -\n";
+
+print "Start dance_plan_launcher.exe with -x $cdp_file -k file://EM.ior\n";
+$E =
+ new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher",
+ "-x $cdp_file -k file://EM.ior");
+
+$E->SpawnWaitKill (50);
+
+
+print "Sleeping 60 seconds to allow task to complete\n";
+sleep (60);
+
+# print "Invoking the controller ($controller_exec -k file://Sender.ior)\n";
+# $controller = new PerlACE::Process ("$controller_exec", "-k file://Sender.ior");
+# $result = $controller->SpawnWaitKill (30);
+
+# if ($result != 0) {
+# print STDERR "ERROR: The controller returned $result\n";
+# $status = 1;
+# }
+
+# Invoke executor - stop the application -.
+print "Invoking executor - stop the application -\n";
+print "by running dance_plan_launcher.exe with -k file://EM.ior -x $cdp_file -q\n";
+
+$E =
+ new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher",
+ "-k file://EM.ior -x $cdp_file -q");
+$E->SpawnWaitKill (30);
+
+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/connectors/dds4ccm/id3p_test/Multiple_Reader_Ports/test.idl3p b/modules/CIAO/connectors/dds4ccm/id3p_test/Multiple_Reader_Ports/test.idl3p
new file mode 100644
index 00000000000..5c131f20cd1
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/id3p_test/Multiple_Reader_Ports/test.idl3p
@@ -0,0 +1,17 @@
+// $Id$
+
+// IDL3+
+
+#ifndef TEST_IDL3P
+#define TEST_IDL3P
+
+module Hello_DDS
+{
+ component Sender
+ {
+ port DDS_Write<string> push_message;
+ port DDS_Write<int> push_state;
+ };
+};
+
+#endif /* TEST_IDL3P */
diff --git a/modules/CIAO/connectors/dds4ccm/idl/dds4ccm.mpc b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm.mpc
new file mode 100644
index 00000000000..a8bec3ce2f7
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm.mpc
@@ -0,0 +1,123 @@
+// $Id$
+
+project (DDS4CCM_idl_gen) : ciaoidldefaults, anytypecode {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=DDS4CCM_STUB_Export \
+ -Wb,stub_export_include=dds4ccm_stub_export.h \
+ -Wb,skel_export_macro=DDS4CCM_SKEL_Export \
+ -Wb,skel_export_include=dds4ccm_skel_export.h \
+ -I$(CIAO_ROOT)/connectors -Glem
+
+ IDL_Files {
+ idlflags += -Gxhst -Gxhsk -Glem -Glfa
+ dds4ccm_Base.idl3
+ }
+
+
+ IDL_Files {
+ dds_rtf2_dcps.idl
+ dds4ccm_PortStatusListener.idl3
+ dds4ccm_ListenerControl.idl3
+ dds4ccm_ConnectorStatusListener.idl3
+ }
+}
+
+project (DDS4CCM_lem_gen) : ciaoidldefaults, anytypecode {
+ custom_only = 1
+ after += DDS4CCM_idl_gen
+ idlflags += -I$(CIAO_ROOT)/connectors \
+ -Wb,stub_export_macro=DDS4CCM_LEM_STUB_Export \
+ -Wb,stub_export_include=dds4ccm_lem_stub_export.h -SS
+
+ IDL_Files {
+ idlflags += -Gxhst
+ dds_rtf2_dcpsE.idl
+ }
+
+ IDL_Files {
+ dds4ccm_BaseE.idl
+ dds4ccm_PortStatusListenerE.idl
+ dds4ccm_ListenerControlE.idl
+ dds4ccm_ConnectorStatusListenerE.idl
+ }
+}
+
+project (DDS4CCM_stub) : ciaolib_with_idl, ciao_output, taolib, anytypecode {
+
+ after += DDS4CCM_idl_gen
+ includes += $(CIAO_ROOT)/connectors
+
+ dynamicflags += DDS4CCM_STUB_BUILD_DLL
+ IDL_Files {
+ }
+
+ Header_Files {
+ dds4ccm_BaseC.h
+ dds4ccm_PortStatusListenerC.h
+ dds4ccm_ListenerControlC.h
+ dds4ccm_ConnectorStatusListenerC.h
+ dds_rtf2_dcpsC.h
+ }
+
+ Source_Files {
+ dds4ccm_BaseC.cpp
+ dds4ccm_PortStatusListenerC.cpp
+ dds4ccm_ListenerControlC.cpp
+ dds4ccm_ConnectorStatusListenerC.cpp
+ dds_rtf2_dcpsC.cpp
+ }
+}
+
+project (DDS4CCM_lem_stub) : ciaolib_with_idl, ciao_output, taolib, valuetype, anytypecode, ifr_client {
+ after += DDS4CCM_stub DDS4CCM_lem_gen
+ libs += DDS4CCM_stub
+ includes += $(CIAO_ROOT)/connectors
+ sharedname = DDS4CCM_lem_stub
+ dynamicflags += DDS4CCM_LEM_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ dds4ccm_BaseEC.cpp
+ dds_rtf2_dcpsEC.cpp
+ dds4ccm_PortStatusListenerEC.cpp
+ dds4ccm_ListenerControlEC.cpp
+ dds4ccm_ConnectorStatusListenerEC.cpp
+ }
+
+ Header_Files {
+ dds4ccm_BaseEC.h
+ dds_rtf2_dcpsEC.h
+ dds4ccm_PortStatusListenerEC.h
+ dds4ccm_ListenerControlEC.h
+ dds4ccm_ConnectorStatusListenerEC.h
+ dds4ccm_lem_stub_export.h
+ }
+}
+
+project (DDS4CCM_skel) : ciaolib_with_idl, ciao_output, taolib, anytypecode, portableserver {
+ after += DDS4CCM_stub
+ libs += DDS4CCM_stub
+ includes += $(CIAO_ROOT)/connectors
+
+ dynamicflags += DDS4CCM_SKEL_BUILD_DLL
+ IDL_Files {
+ }
+
+ Header_Files {
+ dds4ccm_BaseS.h
+ dds4ccm_PortStatusListenerS.h
+ dds4ccm_ListenerControlS.h
+ dds4ccm_ConnectorStatusListenerS.h
+ dds_rtf2_dcpsS.h
+ }
+
+ Source_Files {
+ dds4ccm_BaseS.cpp
+ dds4ccm_PortStatusListenerS.cpp
+ dds4ccm_ListenerControlS.cpp
+ dds4ccm_ConnectorStatusListenerS.cpp
+ dds_rtf2_dcpsS.cpp
+ }
+}
diff --git a/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Base.idl3 b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Base.idl3
new file mode 100644
index 00000000000..c7322fb48ed
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Base.idl3
@@ -0,0 +1,56 @@
+// $Id$
+/**
+ * @file dds4ccm_Base.idl3
+ *
+ */
+
+#ifndef DDS4CCM_BASE_IDL3
+#define DDS4CCM_BASE_IDL3
+
+#include "dds_rtf2_dcps.idl"
+
+module CCM_DDS
+{
+ typedef sequence<unsigned long> InstanceNumberSeq;
+ exception AlreadyCreated {
+ InstanceNumberSeq indexes; // of the erroneous
+ };
+
+ exception NonExistent{
+ InstanceNumberSeq indexes; // of the erroneous
+ };
+
+ exception InternalError{
+ unsigned long error_code; // DDS codes that are relevant:
+ //ERROR (1); UNSUPPORTED (2); OUT_OF_RESOURCE (5)
+ unsigned long index; // of the erroneaous
+ };
+
+ exception BadParameter {};
+
+ enum AccessStatus {
+ FRESH_INFO,
+ ALREADY_SEEN
+ };
+
+ enum InstanceStatus {
+ INSTANCE_CREATED,
+ INSTANCE_UPDATED,
+ INSTANCE_DELETED
+ };
+
+ struct ReadInfo {
+ AccessStatus access_status;
+ InstanceStatus instance_status;
+ DDS::Time_t timestamp;
+ unsigned long instance_rank;
+ };
+ typedef sequence<ReadInfo> ReadInfoSeq;
+
+ struct QueryFilter {
+ string query;
+ ::DDS::StringSeq query_parameters;
+ };
+};
+
+#endif
diff --git a/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_ConnectorStatusListener.idl3 b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_ConnectorStatusListener.idl3
new file mode 100644
index 00000000000..890340a8332
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_ConnectorStatusListener.idl3
@@ -0,0 +1,34 @@
+// $Id$
+
+/**
+ * @file dds4ccm_ConnectorStatusListener.idl3
+ *
+ */
+
+#ifndef DDS4CCM_CONNECTORSTATUSLISTNER_IDL3
+#define DDS4CCM_CONNECTORSTATUSLISTNER_IDL3
+
+#include "connectors/dds4ccm/idl/dds4ccm_Base.idl3"
+
+module CCM_DDS
+{
+
+ interface ConnectorStatusListener {
+ // status that are relevant system-wide
+ void on_inconsistent_topic(in DDS::Topic the_topic,
+ in DDS::InconsistentTopicStatus status);
+ void on_requested_incompatible_qos(in DDS::DataReader the_reader,
+ in DDS::RequestedIncompatibleQosStatus status);
+ void on_sample_rejected(in DDS::DataReader the_reader,
+ in DDS::SampleRejectedStatus status);
+ void on_offered_deadline_missed(in DDS::DataWriter the_writer,
+ in DDS::OfferedDeadlineMissedStatus status);
+ void on_offered_incompatible_qos(in DDS::DataWriter the_writer,
+ in DDS::OfferedIncompatibleQosStatus status);
+ void on_unexpected_status (in DDS::Entity the_entity,
+ in DDS::StatusKind status_kind);
+ };
+
+};
+
+#endif
diff --git a/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Connector_Base.idl3p b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Connector_Base.idl3p
new file mode 100644
index 00000000000..8d16f09a25a
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Connector_Base.idl3p
@@ -0,0 +1,27 @@
+// $Id$
+
+/**
+ * @file dds4ccm_Connector_Base.idl3p
+ *
+ */
+
+#ifndef DDS4CCM_CONNECTOR_BASE_IDL3P
+#define DDS4CCM_CONNECTOR_BASE_IDL3P
+
+#include "connectors/dds4ccm/idl/dds4ccm_ConnectorStatusListener.idl3"
+
+module CCM_DDS
+{
+ connector DDS_Base {
+ uses ConnectorStatusListener error_listener;
+ readonly attribute DDS::DomainId_t domain_id;
+ readonly attribute string qos_profile;// File URL or XML string
+ };
+
+ connector DDS_TopicBase : DDS_Base {
+ readonly attribute string topic_name;
+ readonly attribute StringSeq key_fields;
+ };
+};
+
+#endif /* DDS4CCM_CONNECTOR_BASE_IDL3P */
diff --git a/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Connector_Event.idl3p b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Connector_Event.idl3p
new file mode 100644
index 00000000000..985899e49aa
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Connector_Event.idl3p
@@ -0,0 +1,24 @@
+// $Id$
+
+/**
+ * @file dds4ccm_Connector_Event.idl3p
+ *
+ */
+
+#ifndef DDS4CCM_CONNECTOR_EVENT_IDL3P
+#define DDS4CCM_CONNECTOR_EVENT_IDL3P
+
+#include "connectors/dds4ccm/idl/dds4ccm_Port_Write.idl3p"
+#include "connectors/dds4ccm/idl/dds4ccm_Port_Get.idl3p"
+#include "connectors/dds4ccm/idl/dds4ccm_Port_RawListen.idl3p"
+
+module CCM_DDS
+{
+ connector DDS_Event<typename T> : DDS_TopicBase { // T assumed to be a data type
+ mirrorport DDS_Write<T> supplier;
+ mirrorport DDS_Get<T> pull_consumer;
+ mirrorport DDS_RawListen<T> push_consumer;
+ };
+};
+
+#endif /* DDS4CCM_CONNECTOR_EVENT_IDL3P */
diff --git a/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Connector_State.idl3p b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Connector_State.idl3p
new file mode 100644
index 00000000000..77a2203bb42
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Connector_State.idl3p
@@ -0,0 +1,26 @@
+// $Id$
+
+/**
+ * @file dds4ccm_Connector_State.idl3p
+ *
+ */
+
+#ifndef DDS4CCM_CONNECTOR_STATE_IDL3P
+#define DDS4CCM_CONNECTOR_STATE_IDL3P
+
+#include "connectors/dds4ccm/idl/dds4ccm_Port_Update.idl3p"
+#include "connectors/dds4ccm/idl/dds4ccm_Port_Read.idl3p"
+#include "connectors/dds4ccm/idl/dds4ccm_Port_Get.idl3p"
+#include "connectors/dds4ccm/idl/dds4ccm_Port_StateListen.idl3p"
+
+module CCM_DDS
+{
+ connector DDS_State<typename T> : DDS_TopicBase { // T assumed to be a data type
+ mirrorport DDS_Update<T> observable;
+ mirrorport DDS_Read<T> passive_observer;
+ mirrorport DDS_Get<T> pull_observer;
+ mirrorport DDS_StateListen<T> push_observer;
+ };
+};
+
+#endif /* DDS4CCM_CONNECTOR_STATE_IDL3P */
diff --git a/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Getter.idl3p b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Getter.idl3p
new file mode 100644
index 00000000000..76af1ffd584
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Getter.idl3p
@@ -0,0 +1,51 @@
+// $Id$
+
+/**
+ * @file dds4ccm_Getter.idl3p
+ *
+ */
+
+#ifndef DDS4CCM_Getter_IDL3P
+#define DDS4CCM_Getter_IDL3P
+
+#include "connectors/dds4ccm/idl/dds4ccm_Base.idl3"
+
+module CCM_DDS
+{
+ interface Getter<typename T> {
+ typedef sequence<T> T$Seq;
+ boolean get_all (out T$Seq instances, out ReadInfoSeq infos)
+ raises (InternalError);
+ boolean get_all_history (out T$Seq instances, out ReadInfoSeq infos)
+ raises (InternalError);
+ boolean get_one (inout T an_instance, out ReadInfo info)
+ raises (NonExistent,
+ InternalError);
+ boolean get_one_history (in T an_instance,
+ out T$Seq instances, out ReadInfoSeq infos)
+ raises (NonExistent,
+ InternalError);
+ boolean get_next (out T an_instance, out ReadInfo info)
+ raises (InternalError);
+ attribute QueryFilter filter
+ setraises (BadParameter);
+ attribute DDS::Duration_t time_out;
+ // behaviour
+ // - get operations are performed with the following parameters
+ // - NO_READ
+ // - NEW or NOT_NEW
+ // - ALIVE or NOT_ALIVE
+ // - through the query as specified in the filter ("" means no query)
+ // - within the time limit specified in time_out
+ // - all operations returns TRUE if data are provided,
+ // FALSE if time-out occurred
+ // - data returned:
+ // - get_all returns for all the instances their last sample
+ // - get_all_history returns all the samples of all instances
+ // - get_one returns the last sample of the given instance
+ // - get_one_history returns all the samples for the given instance
+ // - get_next returns each read sample one by one
+ };
+};
+
+#endif /* DDS4CCM_Getter_IDL3P */
diff --git a/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_ListenerControl.idl3 b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_ListenerControl.idl3
new file mode 100644
index 00000000000..887431af396
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_ListenerControl.idl3
@@ -0,0 +1,20 @@
+// $Id$
+
+/**
+ * @file dds4ccm_ListenerControl.idl3
+ *
+ */
+
+#ifndef DDS4CCM_LISTENERCONTROL_IDL3
+#define DDS4CCM_LISTENERCONTROL_IDL3
+
+#include "connectors/dds4ccm/idl/dds4ccm_Base.idl3"
+
+module CCM_DDS
+{
+ interface ListenerControl {
+ attribute boolean enabled;
+ };
+};
+
+#endif
diff --git a/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_MultiListener.idl3p b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_MultiListener.idl3p
new file mode 100644
index 00000000000..3d9883a5226
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_MultiListener.idl3p
@@ -0,0 +1,34 @@
+// $Id$
+
+/**
+ * @file dds4ccm_MultiListener.idl3p
+ *
+ */
+
+#ifndef DDS4CCM_MULTILISTENER_IDL3P
+#define DDS4CCM_MULTILISTENER_IDL3P
+
+#include "connectors/dds4ccm/idl/dds4ccm_Base.idl3"
+
+module CCM_DDS
+{
+ enum GroupingMode {
+ INSTANCE_HISTORY,
+ LAST_SAMPLE_ALL_INSTANCES,
+ ALL_SAMPLES_ALL_INSTANCES
+ };
+
+ interface MultiListener<typename T> {
+ typedef sequence<T> T$Seq;
+ void on_data (in T$Seq instances, in ReadInfoSeq infos);
+ attribute GroupingMode grouping_mode;
+ // behaviour
+ // - depending on grouping_mode similar to get_one_history(any new instance),
+ // get_all or get_all_history, except that in push mode instead of
+ // pull mode
+ // - triggered only if enabled is the associated ListenerControl
+ // - query filter (if any) in the associated Reader
+ };
+};
+
+#endif /* DDS4CCM_MULTILISTENER_IDL3P */
diff --git a/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_MultiUpdater.idl3p b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_MultiUpdater.idl3p
new file mode 100644
index 00000000000..09ceebf6711
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_MultiUpdater.idl3p
@@ -0,0 +1,41 @@
+// $Id$
+
+/**
+ * @file dds4ccm_MultiUpdater.idl3p
+ *
+ */
+
+#ifndef DDS4CCM_MULTIUPDATER_IDL3P
+#define DDS4CCM_MULTIUPDATER_IDL3P
+
+#include "connectors/dds4ccm/idl/dds4ccm_Base.idl3"
+
+module CCM_DDS
+{
+ interface MultiUpdater<typename T> {
+ typedef sequence<T> T$Seq;
+ unsigned long create (in T$Seq instances) // returns nb of created instances
+ raises (AlreadyCreated,
+ InternalError);
+
+ unsigned long update (in T$Seq instances) // returns nb of updated instances
+ raises (NonExistent,
+ InternalError);
+ unsigned long delete (in T$Seq instances) // returns nb of deleted instances
+ raises (NonExistent,
+ InternalError);
+ readonly attribute boolean is_lifecycle_checked;
+ attribute boolean is_coherent_write;
+ // behaviour:
+ // - exceptions AlreadyCreated or NonExistent are raised only if
+ // is_lifecycle_checked
+ // - global check is performed before actual write or dispose
+ // (in case of error, all the erroneous instances are reported
+ // in the exception)
+ // - attempt to write or dispose is stopped at the first error
+ // - if is_coherent_write, write orders are placed betwen begin/end
+ // coherent updates (even if an error occurs)
+ };
+};
+
+#endif /* DDS4CCM_MULTIUPDATER_IDL3P */
diff --git a/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_MultiWriter.idl3p b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_MultiWriter.idl3p
new file mode 100644
index 00000000000..7648846c83a
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_MultiWriter.idl3p
@@ -0,0 +1,27 @@
+// $Id$
+
+/**
+ * @file dds4ccm_MultiWriter.idl3p
+ *
+ */
+
+#ifndef DDS4CCM_MULTIWRITER_IDL3P
+#define DDS4CCM_MULTIWRITER_IDL3P
+
+#include "connectors/dds4ccm/idl/dds4ccm_Base.idl3"
+
+module CCM_DDS
+{
+ interface MultiWriter<typename T> {
+ typedef sequence<T> T$Seq;
+ unsigned long write(in T$Seq instances) // returns nb of written
+ raises (InternalError);
+ attribute boolean is_coherent_write;
+ // behaviour:
+ // - attempt to write is stopped at the first error
+ // - if is_coherent_write, write orders are placed betwen begin/end
+ // coherent updates (even if an error occurs)
+ };
+};
+
+#endif /* DDS4CCM_MULTIWRITER_IDL3P */
diff --git a/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_PortStatusListener.idl3 b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_PortStatusListener.idl3
new file mode 100644
index 00000000000..b9622ef7457
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_PortStatusListener.idl3
@@ -0,0 +1,23 @@
+// $Id$
+/**
+ * @file dds4ccm_PortStatusListener.idl3
+ *
+ */
+
+#ifndef DDS4CCM_PORTSTATUSLISTNER_IDL3
+#define DDS4CCM_PORTSTATUSLISTNER_IDL3
+
+#include "connectors/dds4ccm/idl/dds4ccm_Base.idl3"
+
+module CCM_DDS
+{
+ interface PortStatusListener {
+ // status that are relevant to the component
+ void on_requested_deadline_missed(in DDS::DataReader the_reader,
+ in DDS::RequestedDeadlineMissedStatus status);
+ void on_sample_lost(in DDS::DataReader the_reader,
+ in DDS::SampleLostStatus status);
+ };
+};
+
+#endif
diff --git a/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_Get.idl3p b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_Get.idl3p
new file mode 100644
index 00000000000..e9153a97880
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_Get.idl3p
@@ -0,0 +1,23 @@
+// $Id$
+
+/**
+ * @file dds4ccm_Port_Get.idl3p
+ *
+ */
+
+#ifndef DDS4CCM_PORT_GET_IDL3P
+#define DDS4CCM_PORT_GET_IDL3P
+
+#include "connectors/dds4ccm/idl/dds4ccm_Getter.idl3p"
+#include "connectors/dds4ccm/idl/dds4ccm_PortStatusListener.idl3p"
+
+module CCM_DDS
+{
+ porttype DDS_Get<typename T> {
+ uses Getter<T> data;
+ uses DDS::DataReader dds_entity;
+ provides PortStatusListener status;
+ };
+};
+
+#endif /* DDS4CCM_PORT_GET_IDL3P */
diff --git a/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_MultiListen.idl3p b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_MultiListen.idl3p
new file mode 100644
index 00000000000..22c4a6c50de
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_MultiListen.idl3p
@@ -0,0 +1,27 @@
+// $Id$
+
+/**
+ * @file dds4ccm_Port_MultiListen.idl3p
+ *
+ */
+
+#ifndef DDS4CCM_PORT_MULTILISTEN_IDL3P
+#define DDS4CCM_PORT_MULTILISTEN_IDL3P
+
+#include "connectors/dds4ccm/idl/dds4ccm_Reader.idl3"
+#include "connectors/dds4ccm/idl/dds4ccm_ListenerControl.idl3"
+#include "connectors/dds4ccm/idl/dds4ccm_MultiListener.idl3"
+#include "connectors/dds4ccm/idl/dds4ccm_PortStatusListener.idl3"
+
+module CCM_DDS
+{
+ porttype DDS_MultiListen<typename T> {
+ uses Reader<T> data;
+ uses ListenerControl control;
+ provides MultiListener<T> listener;
+ uses DDS::DataReader dds_entity;
+ provides PortStatusListener status;
+ };
+};
+
+#endif /* DDS4CCM_PORT_MULTILISTEN_IDL3P */
diff --git a/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_MultiUpdate.idl3p b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_MultiUpdate.idl3p
new file mode 100644
index 00000000000..430555eebe9
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_MultiUpdate.idl3p
@@ -0,0 +1,21 @@
+// $Id$
+
+/**
+ * @file dds4ccm_Port_MultiUpdate.idl3p
+ *
+ */
+
+#ifndef DDS4CCM_PORT_MULTIUPDATE_IDL3P
+#define DDS4CCM_PORT_MULTIUPDATE_IDL3P
+
+#include "connectors/dds4ccm/idl/dds4ccm_MultiUpdater.idl3p"
+
+module CCM_DDS
+{
+ porttype DDS_MultiUpdate <typename T> {
+ uses MultiUpdater<T> data;
+ uses DDS::DataWriter dds_entity;
+ };
+};
+
+#endif /* DDS4CCM_PORT_MULTIUPDATE_IDL3P */
diff --git a/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_MultiWrite.idl3p b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_MultiWrite.idl3p
new file mode 100644
index 00000000000..034171ffefa
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_MultiWrite.idl3p
@@ -0,0 +1,21 @@
+// $Id$
+
+/**
+ * @file dds4ccm_Port_MultiWrite.idl3p
+ *
+ */
+
+#ifndef DDS4CCM_PORT_MULTIWRITE_IDL3P
+#define DDS4CCM_PORT_MULTIWRITE_IDL3P
+
+#include "connectors/dds4ccm/idl/dds4ccm_MultiWriter.idl3p"
+
+module CCM_DDS
+{
+ porttype DDS_MultiWrite<typename T> {
+ uses MultiWriter<T> data;
+ uses DDS::DataWriter dds_entity;
+ };
+};
+
+#endif /* DDS4CCM_PORT_MULTIWRITE_IDL3P */
diff --git a/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_RawListen.idl3p b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_RawListen.idl3p
new file mode 100644
index 00000000000..aeb4e671fa7
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_RawListen.idl3p
@@ -0,0 +1,27 @@
+// $Id$
+
+/**
+ * @file dds4ccm_Port_RawListen.idl3p
+ *
+ */
+
+#ifndef DDS4CCM_PORT_RAWLISTEN_IDL3P
+#define DDS4CCM_PORT_RAWLISTEN_IDL3P
+
+#include "connectors/dds4ccm/idl/dds4ccm_Reader.idl3p"
+#include "connectors/dds4ccm/idl/dds4ccm_ListenerControl.idl3"
+#include "connectors/dds4ccm/idl/dds4ccm_RawListener.idl3p"
+#include "connectors/dds4ccm/idl/dds4ccm_PortStatusListener.idl3"
+
+module CCM_DDS
+{
+ porttype DDS_RawListen<typename T> {
+ uses Reader<T> data;
+ uses ListenerControl control;
+ provides RawListener<T> listener;
+ uses DDS::DataReader dds_entity;
+ provides PortStatusListener status;
+ };
+};
+
+#endif /* DDS4CCM_PORT_RAWLISTEN_IDL3P */
diff --git a/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_Read.idl3p b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_Read.idl3p
new file mode 100644
index 00000000000..75250f359a6
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_Read.idl3p
@@ -0,0 +1,23 @@
+// $Id$
+
+/**
+ * @file dds4ccm_Port_Read.idl3p
+ *
+ */
+
+#ifndef DDS4CCM_PORT_READ_IDL3P
+#define DDS4CCM_PORT_READ_IDL3P
+
+#include "connectors/dds4ccm/idl/dds4ccm_Reader.idl3p"
+#include "connectors/dds4ccm/idl/dds4ccm_PortStatusListener.idl3p"
+
+module CCM_DDS
+{
+ porttype DDS_Read<typename T> {
+ uses Reader<T> data;
+ uses DDS::DataReader dds_entity;
+ provides PortStatusListener status;
+ };
+};
+
+#endif /* DDS4CCM_PORT_READ_IDL3P */
diff --git a/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_StateListen.idl3p b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_StateListen.idl3p
new file mode 100644
index 00000000000..d31d950bd52
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_StateListen.idl3p
@@ -0,0 +1,27 @@
+// $Id$
+
+/**
+ * @file dds4ccm_Port_StateListen.idl3p
+ *
+ */
+
+#ifndef DDS4CCM_PORT_STATELISTEN_IDL3P
+#define DDS4CCM_PORT_STATELISTEN_IDL3P
+
+#include "connectors/dds4ccm/idl/dds4ccm_Reader.idl3p"
+#include "connectors/dds4ccm/idl/dds4ccm_ListenerControl.idl3p"
+#include "connectors/dds4ccm/idl/dds4ccm_StateListener.idl3p"
+#include "connectors/dds4ccm/idl/dds4ccm_PortStatusListener.idl3p"
+
+module CCM_DDS
+{
+ porttype DDS_StateListen<typename T> {
+ uses Reader<T> data;
+ uses ListenerControl control;
+ provides StateListener<T> listener;
+ uses DDS::DataReader dds_entity;
+ provides PortStatusListener status;
+ };
+};
+
+#endif /* DDS4CCM_PORT_STATELISTEN_IDL3P */
diff --git a/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_Update.idl3p b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_Update.idl3p
new file mode 100644
index 00000000000..fb92f1c711d
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_Update.idl3p
@@ -0,0 +1,21 @@
+// $Id$
+
+/**
+ * @file dds4ccm_Port_Update.idl3p
+ *
+ */
+
+#ifndef DDS4CCM_PORT_UPDATE_IDL3P
+#define DDS4CCM_PORT_UPDATE_IDL3P
+
+#include "connectors/dds4ccm/idl/dds4ccm_Updater.idl3p"
+
+module CCM_DDS
+{
+ porttype DDS_Update <typename T> {
+ uses Updater<T> data;
+ uses DDS::DataWriter dds_entity;
+ };
+};
+
+#endif /* DDS4CCM_PORT_UPDATE_IDL3P */
diff --git a/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_Write.idl3p b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_Write.idl3p
new file mode 100644
index 00000000000..767479105dc
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Port_Write.idl3p
@@ -0,0 +1,21 @@
+// $Id$
+
+/**
+ * @file dds4ccm_Port_Write.idl3p
+ *
+ */
+
+#ifndef DDS4CCM_PORT_WRITE_IDL3P
+#define DDS4CCM_PORT_WRITE_IDL3P
+
+#include "connectors/dds4ccm/idl/dds4ccm_Writer.idl3p"
+
+module CCM_DDS
+{
+ porttype DDS_Write<typename T> {
+ uses Writer<T> data;
+ uses DDS::DataWriter dds_entity;
+ };
+};
+
+#endif /* DDS4CCM_PORT_WRITE_IDL3P */
diff --git a/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_RawListener.idl3p b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_RawListener.idl3p
new file mode 100644
index 00000000000..4059e7a9d5e
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_RawListener.idl3p
@@ -0,0 +1,24 @@
+// $Id$
+
+/**
+ * @file dds4ccm_RawListener.idl3p
+ *
+ */
+
+#ifndef DDS4CCM_RAWLISTENER_IDL3P
+#define DDS4CCM_RAWLISTENER_IDL3P
+
+#include "connectors/dds4ccm/idl/dds4ccm_Base.idl3"
+
+module CCM_DDS
+{
+ interface RawListener<typename T> {
+ void on_data (in T an_instance, in ReadInfo info);
+ // behaviour
+ // - similar to a get_next, except that in push mode instead of pull mode
+ // - triggered only if enabled is the associated ListenerControl
+ // - query filter (if any) in the associated Reader
+ };
+};
+
+#endif /* DDS4CCM_RAWLISTENER_IDL3P */
diff --git a/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Reader.idl3p b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Reader.idl3p
new file mode 100644
index 00000000000..9b049d95779
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Reader.idl3p
@@ -0,0 +1,46 @@
+// $Id$
+
+/**
+ * @file dds4ccm_Reader.idl3p
+ *
+ */
+
+#ifndef DDS4CCM_READER_IDL3P
+#define DDS4CCM_READER_IDL3P
+
+#include "connectors/dds4ccm/idl/dds4ccm_Base.idl3"
+
+module CCM_DDS
+{
+ interface Reader <typename T> {
+ typedef sequence<T> T$Seq;
+ void read_all (out T$Seq instances, out ReadInfoSeq infos)
+ raises (InternalError);
+ void read_all_history (out T$Seq instances, out ReadInfoSeq infos)
+ raises (InternalError);
+ void read_one (inout T an_instance, out ReadInfo info)
+ raises (NonExistent,
+ InternalError);
+ void read_one_history (in T an_instance,
+ out T$Seq instances, out ReadInfoSeq infos)
+ raises (NonExistent,
+ InternalError);
+ attribute QueryFilter filter
+ setraises (BadParameter);
+ // behaviour
+ // - read operations are performed with the following parameters
+ // - READ or NO_READ
+ // - NEW or NOT_NEW
+ // - ALIVE
+ // - through the query as specified in the filter ("" means no query)
+ // - data returned:
+ // - read_all returns for each living instance, its last sample
+ // ordered by instance first and then by sample
+ // - read_all_history returns all the samples of all instances
+ // ordered by instance first and then by sample
+ // - read_one returns the last sample of the given instance
+ // - read_one_history returns all the samples for the given instance
+ };
+};
+
+#endif /* DDS4CCM_READER_IDL3P */
diff --git a/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_StateListener.idl3p b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_StateListener.idl3p
new file mode 100644
index 00000000000..35f0bded5fb
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_StateListener.idl3p
@@ -0,0 +1,27 @@
+// $Id$
+
+/**
+ * @file dds4ccm_StateListener.idl3p
+ *
+ */
+
+#ifndef DDS4CCM_STATELISTENER_IDL3P
+#define DDS4CCM_STATELISTENER_IDL3P
+
+#include "connectors/dds4ccm/idl/dds4ccm_Base.idl3"
+
+module CCM_DDS
+{
+ interface StateListener<typename T> {
+ void on_creation (in T an_instance, in DDS::Time_t timestamp);
+ void on_update (in T an_instance, in DDS::Time_t timestamp);
+ void on_deletion (in T an_instance, in DDS::Time_t timestamp);
+ // behaviour
+ // - similar to a get_next, except that different operations are called
+ // depending on the instance state
+ // - triggered only if enabled is the associated ListenerControl
+ // - query filter (if any) in the associated Reader
+ };
+};
+
+#endif /* DDS4CCM_STATELISTENER_IDL3P */
diff --git a/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Updater.idl3p b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Updater.idl3p
new file mode 100644
index 00000000000..eb92f751d0d
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Updater.idl3p
@@ -0,0 +1,35 @@
+// $Id$
+
+/**
+ * @file dds4ccm_Updater.idl3p
+ *
+ */
+
+#ifndef DDS4CCM_UPDATER_IDL3P
+#define DDS4CCM_UPDATER_IDL3P
+
+#include "connectors/dds4ccm/idl/dds4ccm_Base.idl3"
+
+module CCM_DDS
+{
+ interface Updater<typename T> {
+ void create (in T an_instance)
+ raises (AlreadyCreated,
+ InternalError);
+ void update (in T an_instance)
+ raises (NonExistent,
+ InternalError);
+ void delete (in T an_instance)
+ raises (NonExistent,
+ InternalError);
+ readonly attribute boolean is_lifecycle_checked;
+ // behaviour:
+ // - exceptions AlreadyCreated or NonExistent are raised only if
+ // is_lifecycle_checked
+ // - note: this check requires to previously attempt to read (not free)
+ // - note: this check is not 100% guarantee as a creation or a deletion may
+ // occur between the check and the actual write od dispose order
+ };
+};
+
+#endif /* DDS4CCM_UPDATER_IDL3P */
diff --git a/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Writer.idl3p b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Writer.idl3p
new file mode 100644
index 00000000000..f6a45d56c95
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_Writer.idl3p
@@ -0,0 +1,21 @@
+// $Id$
+
+/**
+ * @file dds4ccm_Writer.idl3p
+ *
+ */
+
+#ifndef DDS4CCM_WRITER_IDL3P
+#define DDS4CCM_WRITER_IDL3P
+
+#include "connectors/dds4ccm/idl/dds4ccm_Base.idl3"
+
+module CCM_DDS
+{
+ interface Writer<typename T> { // T assumed to be a data type
+ void write (in T an_instance)
+ raises (InternalError);
+ };
+};
+
+#endif /* DDS4CCM_WRITER_IDL3P */
diff --git a/modules/CIAO/connectors/dds4ccm/idl/dds_rtf2_dcps.idl b/modules/CIAO/connectors/dds4ccm/idl/dds_rtf2_dcps.idl
new file mode 100644
index 00000000000..14a695d5c37
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/idl/dds_rtf2_dcps.idl
@@ -0,0 +1,1206 @@
+// $Id$
+
+#ifndef DDS_RFT2_DCPS_IDL
+#define DDS_RFT2_DCPS_IDL
+
+#define DOMAINID_TYPE_NATIVE long
+#define HANDLE_TYPE_NATIVE long
+#define HANDLE_NIL_NATIVE 0
+#define BUILTIN_TOPIC_KEY_TYPE_NATIVE long
+
+#define TheParticipantFactory
+#define PARTICIPANT_QOS_DEFAULT
+#define TOPIC_QOS_DEFAULT
+#define PUBLISHER_QOS_DEFAULT
+#define SUBSCRIBER_QOS_DEFAULT
+#define DATAWRITER_QOS_DEFAULT
+#define DATAREADER_QOS_DEFAULT
+#define DATAWRITER_QOS_USE_TOPIC_QOS
+#define DATAREADER_QOS_USE_TOPIC_QOS
+
+#include "tao/StringSeq.pidl"
+
+module DDS {
+ struct NativeInstanceHandle_t {
+ octet value[16];
+ unsigned long length;
+ };
+ typedef long DomainId_t;
+ typedef NativeInstanceHandle_t InstanceHandle_t;
+ struct BuiltinTopicKey_t {
+ long value[3];
+ };
+
+ typedef sequence<InstanceHandle_t> InstanceHandleSeq;
+
+ typedef long ReturnCode_t;
+ typedef long QosPolicyId_t;
+ typedef sequence<string> StringSeq;
+
+ struct Duration_t {
+ long sec;
+ unsigned long nanosec;
+ };
+
+ struct Time_t {
+ long sec;
+ unsigned long nanosec;
+ };
+
+ // ----------------------------------------------------------------------
+ // Pre-defined values
+ // ----------------------------------------------------------------------
+ //const InstanceHandle_t HANDLE_NIL = 0;
+
+ const long LENGTH_UNLIMITED = -1;
+
+ const long DURATION_INFINITE_SEC = 0x7fffffff;
+ const unsigned long DURATION_INFINITE_NSEC = 0x7fffffff;
+
+ const long DURATION_ZERO_SEC = 0;
+ const unsigned long DURATION_ZERO_NSEC = 0;
+
+ const long TIME_INVALID_SEC = -1;
+ const unsigned long TIME_INVALID_NSEC = 0xffffffff;
+
+ // ----------------------------------------------------------------------
+ // Return codes
+ // ----------------------------------------------------------------------
+ const ReturnCode_t RETCODE_OK = 0;
+ const ReturnCode_t RETCODE_ERROR = 1;
+ const ReturnCode_t RETCODE_UNSUPPORTED = 2;
+ const ReturnCode_t RETCODE_BAD_PARAMETER = 3;
+ const ReturnCode_t RETCODE_PRECONDITION_NOT_MET = 4;
+ const ReturnCode_t RETCODE_OUT_OF_RESOURCES = 5;
+ const ReturnCode_t RETCODE_NOT_ENABLED = 6;
+ const ReturnCode_t RETCODE_IMMUTABLE_POLICY = 7;
+ const ReturnCode_t RETCODE_INCONSISTENT_POLICY = 8;
+ const ReturnCode_t RETCODE_ALREADY_DELETED = 9;
+ const ReturnCode_t RETCODE_TIMEOUT = 10;
+ const ReturnCode_t RETCODE_NO_DATA = 11;
+ const ReturnCode_t RETCODE_ILLEGAL_OPERATION = 12;
+
+ // ----------------------------------------------------------------------
+ // Status to support listeners and conditions
+ // ----------------------------------------------------------------------
+
+ typedef unsigned long StatusKind;
+ typedef unsigned long StatusMask; // bit-mask StatusKind
+
+ const StatusKind INCONSISTENT_TOPIC_STATUS = 0x0001 << 0;
+ const StatusKind OFFERED_DEADLINE_MISSED_STATUS = 0x0001 << 1;
+ const StatusKind REQUESTED_DEADLINE_MISSED_STATUS = 0x0001 << 2;
+ const StatusKind OFFERED_INCOMPATIBLE_QOS_STATUS = 0x0001 << 5;
+ const StatusKind REQUESTED_INCOMPATIBLE_QOS_STATUS = 0x0001 << 6;
+ const StatusKind SAMPLE_LOST_STATUS = 0x0001 << 7;
+ const StatusKind SAMPLE_REJECTED_STATUS = 0x0001 << 8;
+ const StatusKind DATA_ON_READERS_STATUS = 0x0001 << 9;
+ const StatusKind DATA_AVAILABLE_STATUS = 0x0001 << 10;
+ const StatusKind LIVELINESS_LOST_STATUS = 0x0001 << 11;
+ const StatusKind LIVELINESS_CHANGED_STATUS = 0x0001 << 12;
+ const StatusKind PUBLICATION_MATCHED_STATUS = 0x0001 << 13;
+ const StatusKind SUBSCRIPTION_MATCHED_STATUS = 0x0001 << 14;
+
+ struct InconsistentTopicStatus {
+ long total_count;
+ long total_count_change;
+ };
+
+ struct SampleLostStatus {
+ long total_count;
+ long total_count_change;
+ };
+
+ enum SampleRejectedStatusKind {
+ NOT_REJECTED,
+ REJECTED_BY_INSTANCES_LIMIT,
+ REJECTED_BY_SAMPLES_LIMIT,
+ REJECTED_BY_SAMPLES_PER_INSTANCE_LIMIT
+ };
+
+ struct SampleRejectedStatus {
+ long total_count;
+ long total_count_change;
+ SampleRejectedStatusKind last_reason;
+ InstanceHandle_t last_instance_handle;
+ };
+
+ struct LivelinessLostStatus {
+ long total_count;
+ long total_count_change;
+ };
+
+ struct LivelinessChangedStatus {
+ long alive_count;
+ long not_alive_count;
+ long alive_count_change;
+ long not_alive_count_change;
+ InstanceHandle_t last_publication_handle;
+ };
+
+ struct OfferedDeadlineMissedStatus {
+ long total_count;
+ long total_count_change;
+ InstanceHandle_t last_instance_handle;
+ };
+
+ struct RequestedDeadlineMissedStatus {
+ long total_count;
+ long total_count_change;
+ InstanceHandle_t last_instance_handle;
+ };
+
+ struct QosPolicyCount {
+ QosPolicyId_t policy_id;
+ long count;
+ };
+
+ typedef sequence<QosPolicyCount> QosPolicyCountSeq;
+
+ struct OfferedIncompatibleQosStatus {
+ long total_count;
+ long total_count_change;
+ QosPolicyId_t last_policy_id;
+ QosPolicyCountSeq policies;
+ };
+
+ struct RequestedIncompatibleQosStatus {
+ long total_count;
+ long total_count_change;
+ QosPolicyId_t last_policy_id;
+ QosPolicyCountSeq policies;
+ };
+
+
+ struct PublicationMatchedStatus {
+ long total_count;
+ long total_count_change;
+ long current_count;
+ long current_count_change;
+ InstanceHandle_t last_subscription_handle;
+ };
+
+
+ struct SubscriptionMatchedStatus {
+ long total_count;
+ long total_count_change;
+ long current_count;
+ long current_count_change;
+ InstanceHandle_t last_publication_handle;
+ };
+
+ // ----------------------------------------------------------------------
+ // Listeners
+ // ----------------------------------------------------------------------
+
+ interface Listener;
+ interface Entity;
+ interface TopicDescription;
+ interface Topic;
+ interface ContentFilteredTopic;
+ interface MultiTopic;
+ interface DataWriter;
+ interface DataReader;
+ interface Subscriber;
+ interface Publisher;
+
+ typedef sequence<DataReader> DataReaderSeq;
+
+ interface Listener {};
+
+ interface TopicListener : Listener {
+ void on_inconsistent_topic(in Topic the_topic,
+ in InconsistentTopicStatus status);
+ };
+
+ interface DataWriterListener : Listener {
+ void on_offered_deadline_missed(
+ in DataWriter writer,
+ in OfferedDeadlineMissedStatus status);
+ void on_offered_incompatible_qos(
+ in DataWriter writer,
+ in OfferedIncompatibleQosStatus status);
+ void on_liveliness_lost(
+ in DataWriter writer,
+ in LivelinessLostStatus status);
+ void on_publication_matched(
+ in DataWriter writer,
+ in PublicationMatchedStatus status);
+ };
+
+ interface PublisherListener : DataWriterListener {
+ };
+
+ interface DataReaderListener : Listener {
+ void on_requested_deadline_missed(
+ in DataReader the_reader,
+ in RequestedDeadlineMissedStatus status);
+ void on_requested_incompatible_qos(
+ in DataReader the_reader,
+ in RequestedIncompatibleQosStatus status);
+ void on_sample_rejected(
+ in DataReader the_reader,
+ in SampleRejectedStatus status);
+ void on_liveliness_changed(
+ in DataReader the_reader,
+ in LivelinessChangedStatus status);
+ void on_data_available(
+ in DataReader the_reader);
+ void on_subscription_matched(
+ in DataReader the_reader,
+ in SubscriptionMatchedStatus status);
+ void on_sample_lost(
+ in DataReader the_reader,
+ in SampleLostStatus status);
+ };
+
+ interface SubscriberListener : DataReaderListener {
+ void on_data_on_readers(
+ in Subscriber the_subscriber);
+ };
+
+
+ interface DomainParticipantListener : TopicListener,
+ PublisherListener,
+ SubscriberListener {
+ };
+
+
+ // ----------------------------------------------------------------------
+ // Conditions
+ // ----------------------------------------------------------------------
+
+ interface Condition {
+ boolean get_trigger_value();
+ };
+
+ typedef sequence<Condition> ConditionSeq;
+
+ interface WaitSet {
+ ReturnCode_t wait(
+ inout ConditionSeq active_conditions,
+ in Duration_t timeout);
+ ReturnCode_t attach_condition(
+ in Condition cond);
+ ReturnCode_t detach_condition(
+ in Condition cond);
+ ReturnCode_t get_conditions(
+ inout ConditionSeq attached_conditions);
+ };
+
+ interface GuardCondition : Condition {
+ ReturnCode_t set_trigger_value(
+ in boolean value);
+ };
+
+ interface StatusCondition : Condition {
+ StatusMask get_enabled_statuses();
+ ReturnCode_t set_enabled_statuses(
+ in StatusMask mask);
+ Entity get_entity();
+ };
+
+ // Sample states to support reads
+ typedef unsigned long SampleStateKind;
+ const SampleStateKind READ_SAMPLE_STATE = 0x0001 << 0;
+ const SampleStateKind NOT_READ_SAMPLE_STATE = 0x0001 << 1;
+
+ // This is a bit-mask SampleStateKind
+ typedef unsigned long SampleStateMask;
+ const SampleStateMask ANY_SAMPLE_STATE = 0xffff;
+
+ // View states to support reads
+ typedef unsigned long ViewStateKind;
+ const ViewStateKind NEW_VIEW_STATE = 0x0001 << 0;
+ const ViewStateKind NOT_NEW_VIEW_STATE = 0x0001 << 1;
+
+ // This is a bit-mask ViewStateKind
+ typedef unsigned long ViewStateMask;
+ const ViewStateMask ANY_VIEW_STATE = 0xffff;
+
+ // Instance states to support reads
+ typedef unsigned long InstanceStateKind;
+ const InstanceStateKind ALIVE_INSTANCE_STATE = 0x0001 << 0;
+ const InstanceStateKind NOT_ALIVE_DISPOSED_INSTANCE_STATE = 0x0001 << 1;
+ const InstanceStateKind NOT_ALIVE_NO_WRITERS_INSTANCE_STATE = 0x0001 << 2;
+
+ // This is a bit-mask InstanceStateKind
+ typedef unsigned long InstanceStateMask;
+ const InstanceStateMask ANY_INSTANCE_STATE = 0xffff;
+ const InstanceStateMask NOT_ALIVE_INSTANCE_STATE = 0x006;
+
+
+ interface ReadCondition : Condition {
+ SampleStateMask get_sample_state_mask();
+ ViewStateMask get_view_state_mask();
+ InstanceStateMask get_instance_state_mask();
+ DataReader get_datareader();
+ };
+
+ interface QueryCondition : ReadCondition {
+ string get_query_expression();
+ ReturnCode_t get_query_parameters(
+ inout StringSeq query_parameters);
+ ReturnCode_t set_query_parameters(
+ in StringSeq query_parameters);
+ };
+
+ // ----------------------------------------------------------------------
+ // Qos
+ // ----------------------------------------------------------------------
+ const string USERDATA_QOS_POLICY_NAME = "UserData";
+ const string DURABILITY_QOS_POLICY_NAME = "Durability";
+ const string PRESENTATION_QOS_POLICY_NAME = "Presentation";
+ const string DEADLINE_QOS_POLICY_NAME = "Deadline";
+ const string LATENCYBUDGET_QOS_POLICY_NAME = "LatencyBudget";
+ const string OWNERSHIP_QOS_POLICY_NAME = "Ownership";
+ const string OWNERSHIPSTRENGTH_QOS_POLICY_NAME = "OwnershipStrength";
+ const string LIVELINESS_QOS_POLICY_NAME = "Liveliness";
+ const string TIMEBASEDFILTER_QOS_POLICY_NAME = "TimeBasedFilter";
+ const string PARTITION_QOS_POLICY_NAME = "Partition";
+ const string RELIABILITY_QOS_POLICY_NAME = "Reliability";
+ const string DESTINATIONORDER_QOS_POLICY_NAME = "DestinationOrder";
+ const string HISTORY_QOS_POLICY_NAME = "History";
+ const string RESOURCELIMITS_QOS_POLICY_NAME = "ResourceLimits";
+ const string ENTITYFACTORY_QOS_POLICY_NAME = "EntityFactory";
+ const string WRITERDATALIFECYCLE_QOS_POLICY_NAME = "WriterDataLifecycle";
+ const string READERDATALIFECYCLE_QOS_POLICY_NAME = "ReaderDataLifecycle";
+ const string TOPICDATA_QOS_POLICY_NAME = "TopicData";
+ const string GROUPDATA_QOS_POLICY_NAME = "TransportPriority";
+ const string LIFESPAN_QOS_POLICY_NAME = "Lifespan";
+ const string DURABILITYSERVICE_POLICY_NAME = "DurabilityService";
+
+ const QosPolicyId_t INVALID_QOS_POLICY_ID = 0;
+ const QosPolicyId_t USERDATA_QOS_POLICY_ID = 1;
+ const QosPolicyId_t DURABILITY_QOS_POLICY_ID = 2;
+ const QosPolicyId_t PRESENTATION_QOS_POLICY_ID = 3;
+ const QosPolicyId_t DEADLINE_QOS_POLICY_ID = 4;
+ const QosPolicyId_t LATENCYBUDGET_QOS_POLICY_ID = 5;
+ const QosPolicyId_t OWNERSHIP_QOS_POLICY_ID = 6;
+ const QosPolicyId_t OWNERSHIPSTRENGTH_QOS_POLICY_ID = 7;
+ const QosPolicyId_t LIVELINESS_QOS_POLICY_ID = 8;
+ const QosPolicyId_t TIMEBASEDFILTER_QOS_POLICY_ID = 9;
+ const QosPolicyId_t PARTITION_QOS_POLICY_ID = 10;
+ const QosPolicyId_t RELIABILITY_QOS_POLICY_ID = 11;
+ const QosPolicyId_t DESTINATIONORDER_QOS_POLICY_ID = 12;
+ const QosPolicyId_t HISTORY_QOS_POLICY_ID = 13;
+ const QosPolicyId_t RESOURCELIMITS_QOS_POLICY_ID = 14;
+ const QosPolicyId_t ENTITYFACTORY_QOS_POLICY_ID = 15;
+ const QosPolicyId_t WRITERDATALIFECYCLE_QOS_POLICY_ID = 16;
+ const QosPolicyId_t READERDATALIFECYCLE_QOS_POLICY_ID = 17;
+ const QosPolicyId_t TOPICDATA_QOS_POLICY_ID = 18;
+ const QosPolicyId_t GROUPDATA_QOS_POLICY_ID = 19;
+ const QosPolicyId_t TRANSPORTPRIORITY_QOS_POLICY_ID = 20;
+ const QosPolicyId_t LIFESPAN_QOS_POLICY_ID = 21;
+ const QosPolicyId_t DURABILITYSERVICE_QOS_POLICY_ID = 22;
+
+ typedef sequence<octet> OctetSeq;
+ struct UserDataQosPolicy {
+ OctetSeq value;
+ };
+
+ struct TopicDataQosPolicy {
+ OctetSeq value;
+ };
+
+ struct GroupDataQosPolicy {
+ OctetSeq value;
+ };
+
+ struct TransportPriorityQosPolicy {
+ long value;
+ };
+
+ struct LifespanQosPolicy {
+ Duration_t duration;
+ };
+
+ enum DurabilityQosPolicyKind {
+ VOLATILE_DURABILITY_QOS,
+ TRANSIENT_LOCAL_DURABILITY_QOS,
+ TRANSIENT_DURABILITY_QOS,
+ PERSISTENT_DURABILITY_QOS
+ };
+ struct DurabilityQosPolicy {
+ DurabilityQosPolicyKind kind;
+ };
+
+ enum PresentationQosPolicyAccessScopeKind {
+ INSTANCE_PRESENTATION_QOS,
+ TOPIC_PRESENTATION_QOS,
+ GROUP_PRESENTATION_QOS
+ };
+ struct PresentationQosPolicy {
+ PresentationQosPolicyAccessScopeKind access_scope;
+ boolean coherent_access;
+ boolean ordered_access;
+ };
+
+ struct DeadlineQosPolicy {
+ Duration_t period;
+ };
+
+ struct LatencyBudgetQosPolicy {
+ Duration_t duration;
+ };
+
+ enum OwnershipQosPolicyKind {
+ SHARED_OWNERSHIP_QOS,
+ EXCLUSIVE_OWNERSHIP_QOS
+ };
+ struct OwnershipQosPolicy {
+ OwnershipQosPolicyKind kind;
+ };
+
+ struct OwnershipStrengthQosPolicy {
+ long value;
+ };
+
+ enum LivelinessQosPolicyKind {
+ AUTOMATIC_LIVELINESS_QOS,
+ MANUAL_BY_PARTICIPANT_LIVELINESS_QOS,
+ MANUAL_BY_TOPIC_LIVELINESS_QOS
+ };
+
+ struct LivelinessQosPolicy {
+ LivelinessQosPolicyKind kind;
+ Duration_t lease_duration;
+ };
+
+ struct TimeBasedFilterQosPolicy {
+ Duration_t minimum_separation;
+ };
+
+ struct PartitionQosPolicy {
+ StringSeq name;
+ };
+
+ enum ReliabilityQosPolicyKind {
+ BEST_EFFORT_RELIABILITY_QOS,
+ RELIABLE_RELIABILITY_QOS
+ };
+
+ struct ReliabilityQosPolicy {
+ ReliabilityQosPolicyKind kind;
+ Duration_t max_blocking_time;
+ };
+
+ enum DestinationOrderQosPolicyKind {
+ BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS,
+ BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS
+ };
+ struct DestinationOrderQosPolicy {
+ DestinationOrderQosPolicyKind kind;
+ };
+
+ enum HistoryQosPolicyKind {
+ KEEP_LAST_HISTORY_QOS,
+ KEEP_ALL_HISTORY_QOS
+ };
+ struct HistoryQosPolicy {
+ HistoryQosPolicyKind kind;
+ long depth;
+ };
+
+ struct ResourceLimitsQosPolicy {
+ long max_samples;
+ long max_instances;
+ long max_samples_per_instance;
+ };
+
+ struct EntityFactoryQosPolicy {
+ boolean autoenable_created_entities;
+ };
+
+ struct WriterDataLifecycleQosPolicy {
+ boolean autodispose_unregistered_instances;
+ };
+
+ struct ReaderDataLifecycleQosPolicy {
+ Duration_t autopurge_nowriter_samples_delay;
+ Duration_t autopurge_disposed_samples_delay;
+ };
+
+ struct DurabilityServiceQosPolicy {
+ Duration_t service_cleanup_delay;
+ HistoryQosPolicyKind history_kind;
+ long history_depth;
+ long max_samples;
+ long max_instances;
+ long max_samples_per_instance;
+ };
+
+ struct DomainParticipantFactoryQos {
+ EntityFactoryQosPolicy entity_factory;
+ };
+
+ struct DomainParticipantQos {
+ UserDataQosPolicy user_data;
+ EntityFactoryQosPolicy entity_factory;
+ };
+
+ struct TopicQos {
+ TopicDataQosPolicy topic_data;
+ DurabilityQosPolicy durability;
+ DurabilityServiceQosPolicy durability_service;
+ DeadlineQosPolicy deadline;
+ LatencyBudgetQosPolicy latency_budget;
+ LivelinessQosPolicy liveliness;
+ ReliabilityQosPolicy reliability;
+ DestinationOrderQosPolicy destination_order;
+ HistoryQosPolicy history;
+ ResourceLimitsQosPolicy resource_limits;
+ TransportPriorityQosPolicy transport_priority;
+ LifespanQosPolicy lifespan;
+
+ OwnershipQosPolicy ownership;
+ };
+
+ struct DataWriterQos {
+ DurabilityQosPolicy durability;
+ DurabilityServiceQosPolicy durability_service;
+ DeadlineQosPolicy deadline;
+ LatencyBudgetQosPolicy latency_budget;
+ LivelinessQosPolicy liveliness;
+ ReliabilityQosPolicy reliability;
+ DestinationOrderQosPolicy destination_order;
+ HistoryQosPolicy history;
+ ResourceLimitsQosPolicy resource_limits;
+ TransportPriorityQosPolicy transport_priority;
+ LifespanQosPolicy lifespan;
+
+ UserDataQosPolicy user_data;
+ OwnershipQosPolicy ownership;
+ OwnershipStrengthQosPolicy ownership_strength;
+ WriterDataLifecycleQosPolicy writer_data_lifecycle;
+ };
+
+ struct PublisherQos {
+ PresentationQosPolicy presentation;
+ PartitionQosPolicy partition;
+ GroupDataQosPolicy group_data;
+ EntityFactoryQosPolicy entity_factory;
+ };
+
+ struct DataReaderQos {
+ DurabilityQosPolicy durability;
+ DeadlineQosPolicy deadline;
+ LatencyBudgetQosPolicy latency_budget;
+ LivelinessQosPolicy liveliness;
+ ReliabilityQosPolicy reliability;
+ DestinationOrderQosPolicy destination_order;
+ HistoryQosPolicy history;
+ ResourceLimitsQosPolicy resource_limits;
+
+ UserDataQosPolicy user_data;
+ OwnershipQosPolicy ownership;
+ TimeBasedFilterQosPolicy time_based_filter;
+ ReaderDataLifecycleQosPolicy reader_data_lifecycle;
+ };
+
+ struct SubscriberQos {
+ PresentationQosPolicy presentation;
+ PartitionQosPolicy partition;
+ GroupDataQosPolicy group_data;
+ EntityFactoryQosPolicy entity_factory;
+ };
+
+ // ----------------------------------------------------------------------
+
+ struct ParticipantBuiltinTopicData {
+ BuiltinTopicKey_t key;
+ UserDataQosPolicy user_data;
+ };
+
+ struct TopicBuiltinTopicData {
+ BuiltinTopicKey_t key;
+ string name;
+ string type_name;
+ DurabilityQosPolicy durability;
+ DurabilityServiceQosPolicy durability_service;
+ DeadlineQosPolicy deadline;
+ LatencyBudgetQosPolicy latency_budget;
+ LivelinessQosPolicy liveliness;
+ ReliabilityQosPolicy reliability;
+ TransportPriorityQosPolicy transport_priority;
+ LifespanQosPolicy lifespan;
+ DestinationOrderQosPolicy destination_order;
+ HistoryQosPolicy history;
+ ResourceLimitsQosPolicy resource_limits;
+ OwnershipQosPolicy ownership;
+ TopicDataQosPolicy topic_data;
+ };
+
+ struct PublicationBuiltinTopicData {
+ BuiltinTopicKey_t key;
+ BuiltinTopicKey_t participant_key;
+ string topic_name;
+ string type_name;
+
+ DurabilityQosPolicy durability;
+ DurabilityServiceQosPolicy durability_service;
+ DeadlineQosPolicy deadline;
+ LatencyBudgetQosPolicy latency_budget;
+ LivelinessQosPolicy liveliness;
+ ReliabilityQosPolicy reliability;
+ LifespanQosPolicy lifespan;
+ UserDataQosPolicy user_data;
+ OwnershipQosPolicy ownership;
+ OwnershipStrengthQosPolicy ownership_strength;
+ DestinationOrderQosPolicy destination_order;
+
+ PresentationQosPolicy presentation;
+ PartitionQosPolicy partition;
+ TopicDataQosPolicy topic_data;
+ GroupDataQosPolicy group_data;
+ };
+
+ struct SubscriptionBuiltinTopicData {
+ BuiltinTopicKey_t key;
+ BuiltinTopicKey_t participant_key;
+ string topic_name;
+ string type_name;
+
+ DurabilityQosPolicy durability;
+ DeadlineQosPolicy deadline;
+ LatencyBudgetQosPolicy latency_budget;
+ LivelinessQosPolicy liveliness;
+ ReliabilityQosPolicy reliability;
+ OwnershipQosPolicy ownership;
+ DestinationOrderQosPolicy destination_order;
+ UserDataQosPolicy user_data;
+ TimeBasedFilterQosPolicy time_based_filter;
+
+ PresentationQosPolicy presentation;
+ PartitionQosPolicy partition;
+ TopicDataQosPolicy topic_data;
+ GroupDataQosPolicy group_data;
+ };
+
+ // ----------------------------------------------------------------------
+ interface Entity {
+ // ReturnCode_t set_qos(
+ // in EntityQos qos);
+ // ReturnCode_t get_qos(
+ // inout EntityQos qos);
+ // ReturnCode_t set_listener(
+ // in Listener l,
+ // in StatusMask mask);
+ // Listener get_listener();
+
+ ReturnCode_t enable();
+
+ StatusCondition get_statuscondition();
+
+ StatusMask get_status_changes();
+
+ InstanceHandle_t get_instance_handle();
+ };
+
+ // ----------------------------------------------------------------------
+ interface DomainParticipant : Entity {
+ // Factory interfaces
+ Publisher create_publisher(
+ in PublisherQos qos,
+ in PublisherListener a_listener,
+ in StatusMask mask);
+ ReturnCode_t delete_publisher(
+ in Publisher p);
+
+ Subscriber create_subscriber(
+ in SubscriberQos qos,
+ in SubscriberListener a_listener,
+ in StatusMask mask);
+ ReturnCode_t delete_subscriber(
+ in Subscriber s);
+ Subscriber get_builtin_subscriber();
+
+ Topic create_topic(
+ in string topic_name,
+ in string type_name,
+ in TopicQos qos,
+ in TopicListener a_listener,
+ in StatusMask mask);
+
+ ReturnCode_t delete_topic(
+ in Topic a_topic);
+
+ Topic find_topic(
+ in string topic_name,
+ in Duration_t timeout);
+ TopicDescription lookup_topicdescription(
+ in string name);
+
+ ContentFilteredTopic create_contentfilteredtopic(
+ in string name,
+ in Topic related_topic,
+ in string filter_expression,
+ in StringSeq expression_parameters);
+
+ ReturnCode_t delete_contentfilteredtopic(
+ in ContentFilteredTopic a_contentfilteredtopic);
+
+ MultiTopic create_multitopic(
+ in string name,
+ in string type_name,
+ in string subscription_expression,
+ in StringSeq expression_parameters);
+
+ ReturnCode_t delete_multitopic(
+ in MultiTopic a_multitopic);
+
+ ReturnCode_t delete_contained_entities();
+
+ ReturnCode_t set_qos(
+ in DomainParticipantQos qos);
+ ReturnCode_t get_qos(
+ inout DomainParticipantQos qos);
+
+ ReturnCode_t set_listener(
+ in DomainParticipantListener a_listener,
+ in StatusMask mask);
+ DomainParticipantListener get_listener();
+
+ ReturnCode_t ignore_participant(
+ in InstanceHandle_t handle);
+ ReturnCode_t ignore_topic(
+ in InstanceHandle_t handle);
+ ReturnCode_t ignore_publication(
+ in InstanceHandle_t handle);
+ ReturnCode_t ignore_subscription(
+ in InstanceHandle_t handle);
+
+ DomainId_t get_domain_id();
+ ReturnCode_t assert_liveliness();
+
+ ReturnCode_t set_default_publisher_qos(
+ in PublisherQos qos);
+ ReturnCode_t get_default_publisher_qos(
+ inout PublisherQos qos);
+
+ ReturnCode_t set_default_subscriber_qos(
+ in SubscriberQos qos);
+ ReturnCode_t get_default_subscriber_qos(
+ inout SubscriberQos qos);
+
+ ReturnCode_t set_default_topic_qos(
+ in TopicQos qos);
+ ReturnCode_t get_default_topic_qos(
+ inout TopicQos qos);
+
+ ReturnCode_t get_discovered_participants(
+ inout InstanceHandleSeq participant_handles);
+ ReturnCode_t get_discovered_participant_data(
+ inout ParticipantBuiltinTopicData participant_data,
+ in InstanceHandle_t participant_handle);
+
+ ReturnCode_t get_discovered_topics(
+ inout InstanceHandleSeq topic_handles);
+ ReturnCode_t get_discovered_topic_data(
+ inout TopicBuiltinTopicData topic_data,
+ in InstanceHandle_t topic_handle);
+
+ boolean contains_entity(
+ in InstanceHandle_t a_handle);
+
+ ReturnCode_t get_current_time(
+ inout Time_t current_time);
+ };
+
+ interface DomainParticipantFactory {
+ DomainParticipant create_participant(
+ in DomainId_t domain_id,
+ in DomainParticipantQos qos,
+ in DomainParticipantListener a_listener,
+ in StatusMask mask);
+ ReturnCode_t delete_participant(
+ in DomainParticipant a_participant);
+
+ DomainParticipant lookup_participant(
+ in DomainId_t domain_id);
+
+ ReturnCode_t set_default_participant_qos(
+ in DomainParticipantQos qos);
+ ReturnCode_t get_default_participant_qos(
+ inout DomainParticipantQos qos);
+
+ ReturnCode_t set_qos(
+ in DomainParticipantFactoryQos qos);
+ ReturnCode_t get_qos(
+ inout DomainParticipantFactoryQos qos);
+ };
+
+ interface TypeSupport {
+ // ReturnCode_t register_type(
+ // in DomainParticipant domain,
+ // in string type_name);
+ // string get_type_name();
+ };
+
+ // ----------------------------------------------------------------------
+ interface TopicDescription {
+ string get_type_name();
+ string get_name();
+
+ DomainParticipant get_participant();
+ };
+
+ interface Topic : Entity, TopicDescription {
+ ReturnCode_t set_qos(
+ in TopicQos qos);
+ ReturnCode_t get_qos(
+ inout TopicQos qos);
+ ReturnCode_t set_listener(
+ in TopicListener a_listener,
+ in StatusMask mask);
+ TopicListener get_listener();
+ // Access the status
+ ReturnCode_t get_inconsistent_topic_status(
+ inout InconsistentTopicStatus a_status);
+ };
+
+ interface ContentFilteredTopic : TopicDescription {
+ string get_filter_expression();
+ ReturnCode_t get_expression_parameters(
+ inout StringSeq expression_parameters);
+ ReturnCode_t set_expression_parameters(
+ in StringSeq expression_parameters);
+ Topic get_related_topic();
+ };
+
+ interface MultiTopic : TopicDescription {
+ string get_subscription_expression();
+ ReturnCode_t get_expression_parameters(
+ inout StringSeq expression_parameters);
+ ReturnCode_t set_expression_parameters(
+ in StringSeq expression_parameters);
+ };
+
+ // ----------------------------------------------------------------------
+ interface Publisher : Entity {
+ DataWriter create_datawriter(
+ in Topic a_topic,
+ in DataWriterQos qos,
+ in DataWriterListener a_listener,
+ in StatusMask mask);
+ ReturnCode_t delete_datawriter(
+ in DataWriter a_datawriter);
+ DataWriter lookup_datawriter(
+ in string topic_name);
+
+ ReturnCode_t delete_contained_entities();
+
+ ReturnCode_t set_qos(
+ in PublisherQos qos);
+ ReturnCode_t get_qos(
+ inout PublisherQos qos);
+
+ ReturnCode_t set_listener(
+ in PublisherListener a_listener,
+ in StatusMask mask);
+ PublisherListener get_listener();
+
+ ReturnCode_t suspend_publications();
+ ReturnCode_t resume_publications();
+
+ ReturnCode_t begin_coherent_changes();
+ ReturnCode_t end_coherent_changes();
+
+ ReturnCode_t wait_for_acknowledgments(
+ in Duration_t max_wait);
+
+ DomainParticipant get_participant();
+
+ ReturnCode_t set_default_datawriter_qos(
+ in DataWriterQos qos);
+ ReturnCode_t get_default_datawriter_qos(
+ inout DataWriterQos qos);
+
+ ReturnCode_t copy_from_topic_qos(
+ inout DataWriterQos a_datawriter_qos,
+ in TopicQos a_topic_qos);
+ };
+
+ interface DataWriter : Entity {
+ // InstanceHandle_t register_instance(
+ // in Data instance_data);
+ // InstanceHandle_t register_instance_w_timestamp(
+ // in Data instance_data,
+ // in Time_t source_timestamp);
+ // ReturnCode_t unregister_instance(
+ // in Data instance_data,
+ // in InstanceHandle_t handle);
+ // ReturnCode_t unregister_instance_w_timestamp(
+ // in Data instance_data,
+ // in InstanceHandle_t handle,
+ // in Time_t source_timestamp);
+ // ReturnCode_t write(
+ // in Data instance_data,
+ // in InstanceHandle_t handle);
+ // ReturnCode_t write_w_timestamp(
+ // in Data instance_data,
+ // in InstanceHandle_t handle,
+ // in Time_t source_timestamp);
+ // ReturnCode_t dispose(
+ // in Data instance_data,
+ // in InstanceHandle_t instance_handle);
+ // ReturnCode_t dispose_w_timestamp(
+ // in Data instance_data,
+ // in InstanceHandle_t instance_handle,
+ // in Time_t source_timestamp);
+ // ReturnCode_t get_key_value(
+ // inout Data key_holder,
+ // in InstanceHandle_t handle);
+ // InstanceHandle_t lookup_instance(
+ // in Data instance_data);
+
+ ReturnCode_t set_qos(
+ in DataWriterQos qos);
+ ReturnCode_t get_qos(
+ inout DataWriterQos qos);
+
+ ReturnCode_t set_listener(
+ in DataWriterListener a_listener,
+ in StatusMask mask);
+ DataWriterListener get_listener();
+
+ Topic get_topic();
+ Publisher get_publisher();
+
+ ReturnCode_t wait_for_acknowledgments(
+ in Duration_t max_wait);
+
+ // Access the status
+ ReturnCode_t get_liveliness_lost_status(
+ inout LivelinessLostStatus status);
+ ReturnCode_t get_offered_deadline_missed_status(
+ inout OfferedDeadlineMissedStatus status);
+ ReturnCode_t get_offered_incompatible_qos_status(
+ inout OfferedIncompatibleQosStatus status);
+ ReturnCode_t get_publication_matched_status(
+ inout PublicationMatchedStatus status);
+
+ ReturnCode_t assert_liveliness();
+
+ ReturnCode_t get_matched_subscriptions(
+ inout InstanceHandleSeq subscription_handles);
+ ReturnCode_t get_matched_subscription_data(
+ inout SubscriptionBuiltinTopicData subscription_data,
+ in InstanceHandle_t subscription_handle);
+ };
+
+ // ----------------------------------------------------------------------
+ interface Subscriber : Entity {
+ DataReader create_datareader(
+ in TopicDescription a_topic,
+ in DataReaderQos qos,
+ in DataReaderListener a_listener,
+ in StatusMask mask);
+ ReturnCode_t delete_datareader(
+ in DataReader a_datareader);
+ ReturnCode_t delete_contained_entities();
+ DataReader lookup_datareader(
+ in string topic_name);
+ ReturnCode_t get_datareaders(
+ inout DataReaderSeq readers,
+ in SampleStateMask sample_states,
+ in ViewStateMask view_states,
+ in InstanceStateMask instance_states);
+ ReturnCode_t notify_datareaders();
+
+ ReturnCode_t set_qos(
+ in SubscriberQos qos);
+ ReturnCode_t get_qos(
+ inout SubscriberQos qos);
+
+ ReturnCode_t set_listener(
+ in SubscriberListener a_listener,
+ in StatusMask mask);
+ SubscriberListener get_listener();
+
+ ReturnCode_t begin_access();
+ ReturnCode_t end_access();
+
+ DomainParticipant get_participant();
+
+ ReturnCode_t set_default_datareader_qos(
+ in DataReaderQos qos);
+ ReturnCode_t get_default_datareader_qos(
+ inout DataReaderQos qos);
+
+ ReturnCode_t copy_from_topic_qos(
+ inout DataReaderQos a_datareader_qos,
+ in TopicQos a_topic_qos);
+ };
+
+ interface DataReader : Entity {
+ // ReturnCode_t read(
+ // inout DataSeq data_values,
+ // inout SampleInfoSeq sample_infos,
+ // in long max_samples,
+ // in SampleStateMask sample_states,
+ // in ViewStateMask view_states,
+ // in InstanceStateMask instance_states);
+
+ // ReturnCode_t take(
+ // inout DataSeq data_values,
+ // inout SampleInfoSeq sample_infos,
+ // in long max_samples,
+ // in SampleStateMask sample_states,
+ // in ViewStateMask view_states,
+ // in InstanceStateMask instance_states);
+
+ // ReturnCode_t read_w_condition(
+ // inout DataSeq data_values,
+ // inout SampleInfoSeq sample_infos,
+ // in long max_samples,
+ // in ReadCondition a_condition);
+
+ // ReturnCode_t take_w_condition(
+ // inout DataSeq data_values,
+ // inout SampleInfoSeq sample_infos,
+ // in long max_samples,
+ // in ReadCondition a_condition);
+
+ // ReturnCode_t read_next_sample(
+ // inout Data data_values,
+ // inout SampleInfo sample_info);
+
+ // ReturnCode_t take_next_sample(
+ // inout Data data_values,
+ // inout SampleInfo sample_info);
+
+ // ReturnCode_t read_instance(
+ // inout DataSeq data_values,
+ // inout SampleInfoSeq sample_infos,
+ // in long max_samples,
+ // in InstanceHandle_t a_handle,
+ // in SampleStateMask sample_states,
+ // in ViewStateMask view_states,
+ // in InstanceStateMask instance_states);
+
+ // ReturnCode_t take_instance(
+ // inout DataSeq data_values,
+ // inout SampleInfoSeq sample_infos,
+ // in long max_samples,
+ // in InstanceHandle_t a_handle,
+ // in SampleStateMask sample_states,
+ // in ViewStateMask view_states,
+ // in InstanceStateMask instance_states);
+
+ // ReturnCode_t read_next_instance(
+ // inout DataSeq data_values,
+ // inout SampleInfoSeq sample_infos,
+ // in long max_samples,
+ // in InstanceHandle_t previous_handle,
+ // in SampleStateMask sample_states,
+ // in ViewStateMask view_states,
+ // in InstanceStateMask instance_states);
+
+ // ReturnCode_t take_next_instance(
+ // inout DataSeq data_values,
+ // inout SampleInfoSeq sample_infos,
+ // in long max_samples,
+ // in InstanceHandle_t previous_handle,
+ // in SampleStateMask sample_states,
+ // in ViewStateMask view_states,
+ // in InstanceStateMask instance_states);
+
+ // ReturnCode_t read_next_instance_w_condition(
+ // inout DataSeq data_values,
+ // inout SampleInfoSeq sample_infos,
+ // in long max_samples,
+ // in InstanceHandle_t previous_handle,
+ // in ReadCondition a_condition);
+
+ // ReturnCode_t take_next_instance_w_condition(
+ // inout DataSeq data_values,
+ // inout SampleInfoSeq sample_infos,
+ // in long max_samples,
+ // in InstanceHandle_t previous_handle,
+ // in ReadCondition a_condition);
+
+ // ReturnCode_t return_loan(
+ // inout DataSeq data_values,
+ // inout SampleInfoSeq sample_infos);
+
+ // ReturnCode_t get_key_value(
+ // inout Data key_holder,
+ // in InstanceHandle_t handle);
+
+ // InstanceHandle_t lookup_instance(
+ // in Data instance_data);
+
+ ReadCondition create_readcondition(
+ in SampleStateMask sample_states,
+ in ViewStateMask view_states,
+ in InstanceStateMask instance_states);
+
+ QueryCondition create_querycondition(
+ in SampleStateMask sample_states,
+ in ViewStateMask view_states,
+ in InstanceStateMask instance_states,
+ in string query_expression,
+ in StringSeq query_parameters);
+
+ ReturnCode_t delete_readcondition(
+ in ReadCondition a_condition);
+
+ ReturnCode_t delete_contained_entities();
+
+ ReturnCode_t set_qos(
+ in DataReaderQos qos);
+ ReturnCode_t get_qos(
+ inout DataReaderQos qos);
+
+ ReturnCode_t set_listener(
+ in DataReaderListener a_listener,
+ in StatusMask mask);
+ DataReaderListener get_listener();
+
+ TopicDescription get_topicdescription();
+ Subscriber get_subscriber();
+
+ ReturnCode_t get_sample_rejected_status(
+ inout SampleRejectedStatus status);
+ ReturnCode_t get_liveliness_changed_status(
+ inout LivelinessChangedStatus status);
+ ReturnCode_t get_requested_deadline_missed_status(
+ inout RequestedDeadlineMissedStatus status);
+ ReturnCode_t get_requested_incompatible_qos_status(
+ inout RequestedIncompatibleQosStatus status);
+ ReturnCode_t get_subscription_matched_status(
+ inout SubscriptionMatchedStatus status);
+ ReturnCode_t get_sample_lost_status(
+ inout SampleLostStatus status);
+
+ ReturnCode_t wait_for_historical_data(
+ in Duration_t max_wait);
+
+ ReturnCode_t get_matched_publications(
+ inout InstanceHandleSeq publication_handles);
+ ReturnCode_t get_matched_publication_data(
+ inout PublicationBuiltinTopicData publication_data,
+ in InstanceHandle_t publication_handle);
+ };
+
+
+ struct SampleInfo {
+ SampleStateKind sample_state;
+ ViewStateKind view_state;
+ InstanceStateKind instance_state;
+ Time_t source_timestamp;
+ InstanceHandle_t instance_handle;
+ InstanceHandle_t publication_handle;
+ long disposed_generation_count;
+ long no_writers_generation_count;
+ long sample_rank;
+ long generation_rank;
+ long absolute_generation_rank;
+ boolean valid_data;
+ };
+
+ typedef sequence<SampleInfo> SampleInfoSeq;
+};
+
+#endif
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/Coherent_Changes_Guard.cpp b/modules/CIAO/connectors/dds4ccm/impl/ndds/Coherent_Changes_Guard.cpp
new file mode 100644
index 00000000000..93aef94fe30
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/Coherent_Changes_Guard.cpp
@@ -0,0 +1,19 @@
+// $Id$
+#include "dds4ccm/impl/ndds/Coherent_Changes_Guard.h"
+
+CIAO::DDS4CCM::RTI::Coherent_Changes_Guard::Coherent_Changes_Guard (DDSPublisher* p, bool coherent_write) : p_ (p), coherent_write_ (coherent_write)
+{
+ if (this->coherent_write_)
+ {
+ p_->begin_coherent_changes ();
+ }
+}
+
+CIAO::DDS4CCM::RTI::Coherent_Changes_Guard::~Coherent_Changes_Guard ()
+{
+ if (this->coherent_write_)
+ {
+ this->p_->end_coherent_changes ();
+ }
+}
+
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/Coherent_Changes_Guard.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/Coherent_Changes_Guard.h
new file mode 100644
index 00000000000..e16f249f401
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/Coherent_Changes_Guard.h
@@ -0,0 +1,38 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef _CIAO_COHERENT_CHANGES_GUARD
+#define _CIAO_COHERENT_CHANGES_GUARD
+
+#include "ace/Copy_Disabled.h"
+#include "ndds/ndds_cpp.h"
+#include "dds4ccm/impl/ndds/dds4ccm_ndds_impl_export.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ class DDS4CCM_NDDS_IMPL_Export Coherent_Changes_Guard :
+ private ACE_Copy_Disabled
+ {
+ public:
+ Coherent_Changes_Guard (::DDSPublisher* p, bool coherent_write);
+ ~Coherent_Changes_Guard ();
+ private:
+ ::DDSPublisher* p_;
+ bool const coherent_write_;
+ };
+ }
+ }
+}
+
+#endif /* _CIAO_COHERENT_CHANGES_GUARD */
+
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/Connector_T.cpp b/modules/CIAO/connectors/dds4ccm/impl/ndds/Connector_T.cpp
new file mode 100644
index 00000000000..c39e5c76e75
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/Connector_T.cpp
@@ -0,0 +1,401 @@
+// -*- C++ -*-
+// $Id$
+
+#include "dds4ccm/impl/ndds/DomainParticipantFactory.h"
+#include "dds4ccm/impl/ndds/DomainParticipant.h"
+#include "dds4ccm/impl/ndds/DataReaderListener_T.h"
+#include "dds4ccm/impl/ndds/DataWriterListener_T.h"
+#include "dds4ccm/impl/ndds/Writer_T.h"
+#include "dds4ccm/impl/ndds/Updater_T.h"
+#include "dds4ccm/impl/ndds/Getter_T.h"
+#include "dds4ccm/impl/ndds/Reader_T.h"
+#include "dds4ccm/impl/ndds/ListenerControl.h"
+
+#include "ciao/Logger/Log_Macros.h"
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+Connector_T<DDS_TYPE, CCM_TYPE>::Connector_T (const char * topic_name)
+ : default_domain_configured_ (false),
+ domain_id_ (0),
+ default_topic_configured_ (false),
+ topic_name_ (topic_name),
+ __info_in_configured_ (false),
+ __info_out_configured_ (false),
+ __info_out_rawlistener_enabled_ (false)
+{
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+Connector_T<DDS_TYPE, CCM_TYPE>::~Connector_T (void)
+{
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+char *
+Connector_T<DDS_TYPE, CCM_TYPE>::topic_name (void)
+{
+ // @from DDS_TopicBase
+ return CORBA::string_dup (this->topic_name_.in ());
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+void
+Connector_T<DDS_TYPE, CCM_TYPE>::topic_name (
+ const char * topic_name)
+{
+ // @from DDS_TopicBase
+ this->topic_name_ = topic_name;
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+::DDS::StringSeq *
+Connector_T<DDS_TYPE, CCM_TYPE>::key_fields (void)
+{
+ // @from DDS_TopicBase
+ ::DDS::StringSeq *retval =
+ new ::DDS::StringSeq (this->key_fields_.length ());
+
+ for (CORBA::ULong i = 0; i < this->key_fields_.length (); ++i)
+ {
+ (*retval)[i] = CORBA::string_dup (this->key_fields_[i]);
+ }
+ return retval;
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+::DDS::DomainId_t
+Connector_T<DDS_TYPE, CCM_TYPE>::domain_id (void)
+{
+ // @from DDS_Base
+ return this->domain_id_;
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+void
+Connector_T<DDS_TYPE, CCM_TYPE>::domain_id (
+ ::DDS::DomainId_t domain_id)
+{
+ // @from DDS_Base
+ this->domain_id_ = domain_id;
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+char *
+Connector_T<DDS_TYPE, CCM_TYPE>::qos_profile (void)
+{
+ // @from DDS_Base
+ return CORBA::string_dup (this->qos_profile_.in ());
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+void
+Connector_T<DDS_TYPE, CCM_TYPE>::qos_profile (
+ const char * qos_profile)
+{
+ // @from DDS_Base
+ this->qos_profile_ = qos_profile;
+}
+
+// Port operations.
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+void
+Connector_T<DDS_TYPE, CCM_TYPE>::configure_default_domain_ (void)
+{
+ CIAO_DEBUG ((LM_TRACE, CLINFO "Connector_T::configure_default_domain_ - "
+ "Configuring default domain\n"));
+
+ if (this->default_domain_configured_)
+ return;
+
+ try
+ {
+ //NDDSConfigLogger::get_instance()->set_verbosity_by_category(NDDS_CONFIG_LOG_CATEGORY_API,
+ // NDDS_CONFIG_LOG_VERBOSITY_STATUS_ALL );
+
+ // Generic code
+ this->domain_factory_ = new ::CIAO::DDS4CCM::RTI::RTI_DomainParticipantFactory_i ();
+
+ ::DDS::DomainParticipantQos qos;
+ this->domain_ =
+ this->domain_factory_->create_participant (this->domain_id_,
+ qos,
+ 0,
+ 0);
+ default_domain_configured_ = true;
+ }
+ catch (...)
+ {
+ CIAO_ERROR ((LM_ERROR, "Caught unknown C++ exception whilst configuring default domain\n"));
+ throw CORBA::INTERNAL ();
+ }
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+void
+Connector_T<DDS_TYPE, CCM_TYPE>::configure_default_topic_ (void)
+{
+ CIAO_DEBUG ((LM_TRACE, CLINFO "Connector_T::configure_default_topic_ - "
+ "Configuring default topic\n"));
+
+ if (this->default_topic_configured_)
+ return;
+
+ this->configure_default_domain_ ();
+
+ try
+ {
+ if (CORBA::is_nil (this->topic_))
+ {
+ CIAO::DDS4CCM::RTI::RTI_DomainParticipant_i *part =
+ dynamic_cast< CIAO::DDS4CCM::RTI::RTI_DomainParticipant_i * > (this->domain_.in ());
+ DDS_ReturnCode_t retcode = DDS_TYPE::type_support::register_type(
+ part->get_participant (), DDS_TYPE::type_support::get_type_name ());
+ if (retcode == DDS_RETCODE_OK)
+ {
+ ::DDS::TopicQos tqos;
+ this->topic_ =
+ this->domain_->create_topic (this->topic_name_.in (),
+ DDS_TYPE::type_support::get_type_name (),
+ tqos,
+ 0,
+ 0);
+ this->default_topic_configured_ = true;
+ }
+ else
+ {
+ throw CORBA::INTERNAL ();
+ }
+ }
+ }
+ catch (...)
+ {
+ CIAO_ERROR ((LM_ERROR, "Caught unknown error while configuring default topic\n"));
+ throw CORBA::INTERNAL ();
+ }
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+void
+Connector_T<DDS_TYPE, CCM_TYPE>::configure_port_info_in_ (void)
+{
+ if (this->__info_in_configured_)
+ return;
+
+ this->configure_default_topic_ ();
+
+ try
+ {
+ if (CORBA::is_nil (this->__info_in_publisher_.in ()))
+ {
+ ::DDS::PublisherQos pqos;
+ this->__info_in_publisher_ = this->domain_->create_publisher (pqos,
+ 0,
+ 0);
+ }
+
+ if (CORBA::is_nil (this->__info_in_datawriter_.in ()))
+ {
+ this->__info_out_datawriterlistener = new ::CIAO::DDS4CCM::DataWriterListener_T
+ <DDS_TYPE, CCM_TYPE> (
+ this->context_,
+ this->__info_out_rawlistener_enabled_);
+
+ ::DDS::DataWriterQos dwqos;
+ //test mh
+ // dwqos.history.depth=1;
+ // dwqos.resource_limits.max_instances = 5; // >= Initial Instances
+ // dwqos.resource_limits.max_samples_per_instance = 4; //>= Depth, <=Max Samples
+ // dwqos.deadline.period.nanosec = 0;
+ // dwqos.deadline.period.sec = 1;
+ ::DDS::DataWriter_var dwv_tmp = this->__info_in_publisher_->create_datawriter (this->topic_.in (),
+ dwqos,
+ this->__info_out_datawriterlistener.in (),
+ 0);
+ this->__info_in_datawriter_ = ::DDS::CCM_DataWriter::_narrow (dwv_tmp);
+ __info_in_configured_ = true;
+ }
+ }
+ catch (...)
+ {
+ CIAO_ERROR ((LM_ERROR, "Caught unknown C++ exception while configuring port info_in_\n"));
+ throw CORBA::INTERNAL ();
+ }
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+void
+Connector_T<DDS_TYPE, CCM_TYPE>::configure_port_info_out_ (bool create_getter)
+{
+ if (this->__info_out_configured_ && this->__info_get_configured_ )
+ return;
+
+ this->configure_default_topic_ ();
+
+ try
+ {
+ if (CORBA::is_nil (this->__info_out_subscriber_.in ()))
+ {
+ ::DDS::SubscriberQos sqos;
+ this->__info_out_subscriber_ = this->domain_->create_subscriber (sqos,
+ 0,
+ 0);
+ }
+
+ if (CORBA::is_nil (this->__info_out_datareader_.in ()))
+ {
+ this->__info_out_datareaderlistener = new ::CIAO::DDS4CCM::RTI::DataReaderListener_T
+ <DDS_TYPE, CCM_TYPE> (
+ this->context_,
+ this->__info_out_rawlistener_enabled_);
+ ::DDS::DataReaderQos drqos;
+ if (create_getter)
+ {
+ this->__info_get_datareader_ =
+ this->__info_out_subscriber_->create_datareader (this->topic_.in (),
+ drqos,
+ this->__info_out_datareaderlistener.in (),
+ DDS_DATA_AVAILABLE_STATUS);
+ this->__info_get_configured_ = true;
+ }
+ else
+ {
+ this->__info_out_datareader_ =
+ this->__info_out_subscriber_->create_datareader (this->topic_.in (),
+ drqos,
+ this->__info_out_datareaderlistener.in (),
+ DDS_DATA_AVAILABLE_STATUS);
+ this->__info_out_configured_ = true;
+ }
+ }
+
+ }
+ catch (...)
+ {
+ CIAO_ERROR ((LM_EMERGENCY, "Caught unknown c++ exception while creating subscriber entities\n"));
+ throw CORBA::INTERNAL ();
+ }
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+typename CCM_TYPE::writer_type::_ptr_type
+Connector_T<DDS_TYPE, CCM_TYPE>::get_info_in_data (void)
+{
+ CIAO_TRACE ("get_info_in_data");
+
+ this->configure_port_info_in_ ();
+
+ return new CIAO::DDS4CCM::RTI::Writer_T<DDS_TYPE, CCM_TYPE>
+ (this->__info_in_datawriter_.in ());
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+::DDS::CCM_DataWriter_ptr
+Connector_T<DDS_TYPE, CCM_TYPE>::get_info_in_dds_entity (void)
+{
+ CIAO_TRACE ("get_info_in_dds_entity");
+
+ this->configure_port_info_in_ ();
+
+ return this->__info_in_datawriter_.in ();
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+typename CCM_TYPE::updater_type::_ptr_type
+Connector_T<DDS_TYPE, CCM_TYPE>::get_info_update_data (void)
+{
+ CIAO_TRACE ("get_info_update_data");
+
+ this->configure_port_info_in_ ();
+ return new CIAO::DDS4CCM::RTI::Updater_T<DDS_TYPE, CCM_TYPE> (
+ this->__info_in_datawriter_.in ());
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+typename CCM_TYPE::getter_type::_ptr_type
+Connector_T<DDS_TYPE, CCM_TYPE>::get_info_out_get_data (void)
+{
+ CIAO_TRACE ("get_info_get_out_data");
+
+ this->configure_port_info_out_ (true);
+
+ return new CIAO::DDS4CCM::RTI::Getter_T<DDS_TYPE, CCM_TYPE> (
+ this->__info_get_datareader_.in ());
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+typename CCM_TYPE::reader_type::_ptr_type
+Connector_T<DDS_TYPE, CCM_TYPE>::get_info_out_data (void)
+{
+ CIAO_TRACE ("get_info_out_data");
+
+ this->configure_port_info_out_ (false);
+
+ return new CIAO::DDS4CCM::RTI::Reader_T<DDS_TYPE, CCM_TYPE> (
+ this->__info_out_datareader_.in ());
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+::CCM_DDS::CCM_ListenerControl_ptr
+Connector_T<DDS_TYPE, CCM_TYPE>::get_info_out_data_control (void)
+{
+ CIAO_TRACE ("get_info_out_control");
+ return new CCM_DDS_ListenerControl_i (
+ this->__info_out_rawlistener_enabled_);
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+::DDS::CCM_DataReader_ptr
+Connector_T<DDS_TYPE, CCM_TYPE>::get_info_out_dds_entity (void)
+{
+ CIAO_TRACE ("get_info_out_dds_entity");
+ return ::DDS::CCM_DataReader::_nil ();
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+void
+Connector_T<DDS_TYPE, CCM_TYPE>::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+{
+ CIAO_TRACE ("set_session_context");
+ typename CCM_TYPE::context_type::_var_type lctx =
+ CCM_TYPE::context_type::_narrow (ctx);
+
+ if (::CORBA::is_nil (lctx.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+
+ this->context_ = lctx;
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+void
+Connector_T<DDS_TYPE, CCM_TYPE>::configuration_complete (void)
+{
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+void
+Connector_T<DDS_TYPE, CCM_TYPE>::ccm_activate (void)
+{
+ if (!CORBA::is_nil (this->context_->get_connection_info_out_data_listener ()) ||
+ (!CORBA::is_nil (this->context_->get_connection_info_out_status () )))
+ {
+ this->configure_port_info_out_ (false);
+ this->configure_port_info_out_ (true);
+ this->configure_port_info_in_ ();
+ }
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+void
+Connector_T<DDS_TYPE, CCM_TYPE>::ccm_passivate (void)
+{
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+void
+Connector_T<DDS_TYPE, CCM_TYPE>::ccm_remove (void)
+{
+}
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/Connector_T.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/Connector_T.h
new file mode 100644
index 00000000000..1975e34fb00
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/Connector_T.h
@@ -0,0 +1,128 @@
+/**
+ * @author Marcel Smit <msmit@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+#ifndef CONNECTOR_T_H_
+#define CONNECTOR_T_H_
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ace/Copy_Disabled.h"
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+class Connector_T
+ : public virtual CCM_TYPE::base_type,
+ public virtual ::CORBA::LocalObject,
+ private virtual ACE_Copy_Disabled
+{
+public:
+ Connector_T (const char * topic_name);
+ virtual ~Connector_T (void);
+
+ virtual char *topic_name (void);
+
+ virtual void topic_name (const char * topic_name);
+
+ virtual ::DDS::StringSeq *key_fields (void);
+
+ virtual ::DDS::DomainId_t domain_id (void);
+
+ virtual void domain_id (::DDS::DomainId_t domain_id);
+
+ virtual char *qos_profile (void);
+
+ virtual void qos_profile (const char * qos_profile);
+
+ virtual typename CCM_TYPE::writer_type::_ptr_type get_info_in_data (void);
+
+ virtual ::DDS::CCM_DataWriter_ptr get_info_in_dds_entity (void);
+
+ virtual typename CCM_TYPE::updater_type::_ptr_type get_info_update_data (void);
+
+ virtual typename CCM_TYPE::getter_type::_ptr_type get_info_out_get_data (void);
+
+ virtual typename CCM_TYPE::reader_type::_ptr_type get_info_out_data (void);
+
+ virtual ::CCM_DDS::CCM_ListenerControl_ptr get_info_out_data_control (void);
+
+ virtual ::DDS::CCM_DataReader_ptr get_info_out_dds_entity (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:
+ typename CCM_TYPE::context_type::_var_type context_;
+
+ // Default stuff
+ void configure_default_domain_ (void);
+ bool default_domain_configured_;
+ ::DDS::DomainParticipantFactory_var domain_factory_;
+ ::DDS::DomainParticipant_var domain_;
+
+ // @from DDS_Base
+ DDS::DomainId_t domain_id_;
+ CORBA::String_var qos_profile_;
+
+ // @from DDS_TopicBase
+ void configure_default_topic_ (void);
+ bool default_topic_configured_;
+ ::DDS::Topic_var topic_;
+ CORBA::String_var topic_name_;
+ DDS::StringSeq key_fields_;
+
+ // @from DDS_Write for
+ void configure_port_info_in_ (void);
+ bool __info_in_configured_;
+ ::DDS::Publisher_var __info_in_publisher_;
+ ::DDS::CCM_DataWriter_var __info_in_datawriter_;
+ typename CCM_TYPE::writer_type::_var_type __info_in_writer_;
+
+ // @from DDS_RawListen
+ void configure_port_info_out_ (bool create_getter);
+ bool __info_out_configured_;
+ ACE_Atomic_Op <TAO_SYNCH_MUTEX, bool> __info_out_rawlistener_enabled_;
+ ::DDS::Subscriber_var __info_out_subscriber_;
+ ::DDS::DataReader_var __info_out_datareader_;
+ ::DDS::DataReaderListener_var __info_out_datareaderlistener;
+ ::DDS::DataWriterListener_var __info_out_datawriterlistener;
+
+ // @from DDS_Getter
+ bool __info_get_configured_;
+ ::DDS::DataReader_var __info_get_datareader_;
+};
+
+ template <typename BASE_TYPE,
+ typename SEQ_TYPE,
+ typename WRITER_TYPE,
+ typename UPDATER_TYPE,
+ typename GETTER_TYPE,
+ typename READER_TYPE,
+ typename CONTEXT_TYPE,
+ typename RAWLISTENER_TYPE,
+ typename CONNECTORSTATUSLISTENER_TYPE
+ >
+
+ struct Connector_Traits
+ {
+ typedef BASE_TYPE base_type;
+ typedef SEQ_TYPE seq_type;
+ typedef WRITER_TYPE writer_type;
+ typedef UPDATER_TYPE updater_type;
+ typedef GETTER_TYPE getter_type;
+ typedef READER_TYPE reader_type;
+ typedef CONTEXT_TYPE context_type;
+ typedef RAWLISTENER_TYPE rawlistener_type;
+ typedef CONNECTORSTATUSLISTENER_TYPE connectorstatuslistener_type;
+ };
+
+
+#include "dds4ccm/impl/ndds/Connector_T.cpp"
+
+#endif /* CONNECTOR_T_H_ */
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/DataReader.cpp b/modules/CIAO/connectors/dds4ccm/impl/ndds/DataReader.cpp
new file mode 100644
index 00000000000..5949f4009b7
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/DataReader.cpp
@@ -0,0 +1,254 @@
+// $Id$
+
+#include "DataReader.h"
+#include "DataReaderListener.h"
+#include "StatusCondition.h"
+#include "ReadCondition.h"
+#include "QueryCondition.h"
+#include "SampleLostStatus.h"
+#include "SubscriptionMatchedStatus.h"
+#include "RequestedDeadlineMissedStatus.h"
+#include "SampleRejectedStatus.h"
+#include "LivelinessChangedStatus.h"
+#include "RequestedIncompatibleQosStatus.h"
+#include "Duration_t.h"
+#include "InstanceHandle_t.h"
+#include "InstanceHandleSeq.h"
+#include "Subscriber.h"
+#include "TopicDescription.h"
+#include "ciao/Logger/Log_Macros.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ // Implementation skeleton constructor
+ RTI_DataReader_i::RTI_DataReader_i (DDSDataReader * dr)
+ : impl_ (dr)
+ {
+ }
+
+ // Implementation skeleton destructor
+ RTI_DataReader_i::~RTI_DataReader_i (void)
+ {
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataReader_i::enable (void)
+ {
+ return this->impl_->enable ();
+ }
+
+ ::DDS::StatusCondition_ptr
+ RTI_DataReader_i::get_statuscondition (void)
+ {
+ DDSStatusCondition* sc = this->impl_->get_statuscondition ();
+ ::DDS::StatusCondition_var retval = new RTI_StatusCondition_i (sc);
+ return retval._retn ();
+ }
+
+ ::DDS::StatusMask
+ RTI_DataReader_i::get_status_changes (void)
+ {
+ return this->impl_->get_status_changes ();
+ }
+
+ ::DDS::InstanceHandle_t
+ RTI_DataReader_i::get_instance_handle (void)
+ {
+ ::DDS_InstanceHandle_t const rtihandle = this->impl_->get_instance_handle ();
+ ::DDS::InstanceHandle_t handle;
+ handle <<= rtihandle;
+ return handle;
+ }
+
+ ::DDS::ReadCondition_ptr
+ RTI_DataReader_i::create_readcondition (
+ ::DDS::SampleStateMask sample_states,
+ ::DDS::ViewStateMask view_states,
+ ::DDS::InstanceStateMask instance_states)
+ {
+ DDSReadCondition* rc = this->impl_->create_readcondition (sample_states, view_states, instance_states);
+ ::DDS::ReadCondition_var retval = new RTI_ReadCondition_i (rc);
+ return retval._retn ();
+ }
+
+ ::DDS::QueryCondition_ptr
+ RTI_DataReader_i::create_querycondition (
+ ::DDS::SampleStateMask /*sample_states*/,
+ ::DDS::ViewStateMask /*view_states*/,
+ ::DDS::InstanceStateMask /*instance_states*/,
+ const char * /*query_expression*/,
+ const ::DDS::StringSeq & /*query_parameters*/)
+ {
+ DDSQueryCondition* qc = 0; // @todo = this->impl_->create_querycondition (sample_states, view_states, instance_states, query_expression, query_parameters);
+ ::DDS::QueryCondition_var retval = new RTI_QueryCondition_i (qc);
+ return retval._retn ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataReader_i::delete_readcondition (
+ ::DDS::ReadCondition_ptr a_condition)
+ {
+ RTI_ReadCondition_i *rc = dynamic_cast< RTI_ReadCondition_i *> (a_condition);
+ if (!rc)
+ {
+ return ::DDS::RETCODE_BAD_PARAMETER;
+ }
+ return this->impl_->delete_readcondition (rc->get_readcondition ());
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataReader_i::delete_contained_entities (void)
+ {
+ return this->impl_->delete_contained_entities ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataReader_i::set_qos (
+ const ::DDS::DataReaderQos & /*qos*/)
+ {
+ throw CORBA::NO_IMPLEMENT ();
+ // Add your implementation here
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataReader_i::get_qos (
+ ::DDS::DataReaderQos & /*qos*/)
+ {
+ throw CORBA::NO_IMPLEMENT ();
+ // Add your implementation here
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataReader_i::set_listener (
+ ::DDS::DataReaderListener_ptr a_listener,
+ ::DDS::StatusMask mask)
+ {
+ RTI_DataReaderListener_i* rti_impl_list = new RTI_DataReaderListener_i (a_listener);
+ return this->impl_->set_listener (rti_impl_list, mask);
+ }
+
+ ::DDS::DataReaderListener_ptr
+ RTI_DataReader_i::get_listener (void)
+ {
+ //::DDSDataReaderListener* reader = this->impl_->get_listener ();
+// ::DDS::DataReaderListener_var dds_reader = new RTI_DataReaderListener_i (reader);
+ //return dds_reader._retn ();
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ ::DDS::TopicDescription_ptr
+ RTI_DataReader_i::get_topicdescription (void)
+ {
+ ::DDSTopicDescription* reader = this->impl_->get_topicdescription ();
+ ::DDS::TopicDescription_var dds_td = new RTI_TopicDescription_i (reader);
+ return dds_td._retn ();
+ }
+
+ ::DDS::Subscriber_ptr
+ RTI_DataReader_i::get_subscriber (void)
+ {
+ ::DDSSubscriber* subscriber = this->impl_->get_subscriber ();
+ ::DDS::Subscriber_var dds_td = new RTI_Subscriber_i (subscriber);
+ return dds_td._retn ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataReader_i::get_sample_rejected_status (
+ ::DDS::SampleRejectedStatus & status)
+ {
+ DDS_SampleRejectedStatus rtistatus;
+ ::DDS::ReturnCode_t const retval = this->impl_->get_sample_rejected_status (rtistatus);
+ rtistatus >>= status;
+ return retval;
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataReader_i::get_liveliness_changed_status (
+ ::DDS::LivelinessChangedStatus & status)
+ {
+ DDS_LivelinessChangedStatus rtistatus;
+ ::DDS::ReturnCode_t const retval = this->impl_->get_liveliness_changed_status (rtistatus);
+ rtistatus >>= status;
+ return retval;
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataReader_i::get_requested_deadline_missed_status (
+ ::DDS::RequestedDeadlineMissedStatus & status)
+ {
+ DDS_RequestedDeadlineMissedStatus rtistatus;
+ ::DDS::ReturnCode_t const retval = this->impl_->get_requested_deadline_missed_status (rtistatus);
+ rtistatus >>= status;
+ return retval;
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataReader_i::get_requested_incompatible_qos_status (
+ ::DDS::RequestedIncompatibleQosStatus & status)
+ {
+ DDS_RequestedIncompatibleQosStatus rtistatus;
+ ::DDS::ReturnCode_t const retval = this->impl_->get_requested_incompatible_qos_status (rtistatus);
+ rtistatus >>= status;
+ return retval;
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataReader_i::get_subscription_matched_status (
+ ::DDS::SubscriptionMatchedStatus & status)
+ {
+ ::DDS_SubscriptionMatchedStatus ddsstatus;
+ ::DDS::ReturnCode_t const retval = this->impl_->get_subscription_matched_status (ddsstatus);
+ ddsstatus >>= status;
+ return retval;
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataReader_i::get_sample_lost_status (
+ ::DDS::SampleLostStatus & status)
+ {
+ DDS_SampleLostStatus rtistatus;
+ ::DDS::ReturnCode_t const retval = this->impl_->get_sample_lost_status (rtistatus);
+ rtistatus >>= status;
+ return retval;
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataReader_i::wait_for_historical_data (
+ const ::DDS::Duration_t & max_wait)
+ {
+ ::DDS_Duration_t rtiduration;
+ rtiduration <<= max_wait;
+ return this->impl_->wait_for_historical_data (rtiduration);
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataReader_i::get_matched_publications (
+ ::DDS::InstanceHandleSeq & publication_handles)
+ {
+ ::DDS_InstanceHandleSeq rtiseq;
+ ::DDS::ReturnCode_t const retval = this->impl_->get_matched_publications (rtiseq);
+ rtiseq >>= publication_handles;
+ return retval;
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataReader_i::get_matched_publication_data (
+ ::DDS::PublicationBuiltinTopicData & /*publication_data*/,
+ const ::DDS::InstanceHandle_t & /*publication_handle*/)
+ {
+ throw CORBA::NO_IMPLEMENT ();
+ // Add your implementation here
+ }
+
+ DDSDataReader *
+ RTI_DataReader_i::get_datareader (void)
+ {
+ return this->impl_;
+ }
+ }
+ }
+}
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/DataReader.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/DataReader.h
new file mode 100644
index 00000000000..eecde2749ec
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/DataReader.h
@@ -0,0 +1,140 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef CIAO_RTI_DATAREADER_H
+#define CIAO_RTI_DATAREADER_H
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+
+#include "dds4ccm/idl/dds_rtf2_dcpsEC.h"
+
+#include "dds4ccm/impl/ndds/dds4ccm_ndds_impl_export.h"
+#include "tao/LocalObject.h"
+
+#include "ndds/ndds_cpp.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ class DDS4CCM_NDDS_IMPL_Export RTI_DataReader_i
+ : public virtual ::DDS::CCM_DataReader,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ // Constructor
+ RTI_DataReader_i (DDSDataReader *dr);
+
+ // Destructor
+ virtual ~RTI_DataReader_i (void);
+
+ virtual ::DDS::ReturnCode_t
+ enable (void);
+
+ virtual ::DDS::StatusCondition_ptr
+ get_statuscondition (void);
+
+ virtual ::DDS::StatusMask
+ get_status_changes (void);
+
+ virtual ::DDS::InstanceHandle_t
+ get_instance_handle (void);
+
+ virtual ::DDS::ReadCondition_ptr
+ create_readcondition (
+ ::DDS::SampleStateMask sample_states,
+ ::DDS::ViewStateMask view_states,
+ ::DDS::InstanceStateMask instance_states);
+
+ virtual ::DDS::QueryCondition_ptr
+ create_querycondition (
+ ::DDS::SampleStateMask sample_states,
+ ::DDS::ViewStateMask view_states,
+ ::DDS::InstanceStateMask instance_states,
+ const char * query_expression,
+ const ::DDS::StringSeq & query_parameters);
+
+ virtual ::DDS::ReturnCode_t
+ delete_readcondition (
+ ::DDS::ReadCondition_ptr a_condition);
+
+ virtual ::DDS::ReturnCode_t
+ delete_contained_entities (void);
+
+ virtual ::DDS::ReturnCode_t
+ set_qos (
+ const ::DDS::DataReaderQos & qos);
+
+ virtual ::DDS::ReturnCode_t
+ get_qos (
+ ::DDS::DataReaderQos & qos);
+
+ virtual ::DDS::ReturnCode_t
+ set_listener (
+ ::DDS::DataReaderListener_ptr a_listener,
+ ::DDS::StatusMask mask);
+
+ virtual ::DDS::DataReaderListener_ptr
+ get_listener (void);
+
+ virtual ::DDS::TopicDescription_ptr
+ get_topicdescription (void);
+
+ virtual ::DDS::Subscriber_ptr
+ get_subscriber (void);
+
+ virtual ::DDS::ReturnCode_t
+ get_sample_rejected_status (
+ ::DDS::SampleRejectedStatus & status);
+
+ virtual ::DDS::ReturnCode_t
+ get_liveliness_changed_status (
+ ::DDS::LivelinessChangedStatus & status);
+
+ virtual ::DDS::ReturnCode_t
+ get_requested_deadline_missed_status (
+ ::DDS::RequestedDeadlineMissedStatus & status);
+
+ virtual ::DDS::ReturnCode_t
+ get_requested_incompatible_qos_status (
+ ::DDS::RequestedIncompatibleQosStatus & status);
+
+ virtual ::DDS::ReturnCode_t
+ get_subscription_matched_status (
+ ::DDS::SubscriptionMatchedStatus & status);
+
+ virtual ::DDS::ReturnCode_t
+ get_sample_lost_status (
+ ::DDS::SampleLostStatus & status);
+
+ virtual ::DDS::ReturnCode_t
+ wait_for_historical_data (
+ const ::DDS::Duration_t & max_wait);
+
+ virtual ::DDS::ReturnCode_t
+ get_matched_publications (
+ ::DDS::InstanceHandleSeq & publication_handles);
+
+ virtual ::DDS::ReturnCode_t
+ get_matched_publication_data (
+ ::DDS::PublicationBuiltinTopicData & publication_data,
+ const ::DDS::InstanceHandle_t & publication_handle);
+
+ DDSDataReader * get_datareader (void);
+
+ private:
+ DDSDataReader * impl_;
+ };
+ }
+ }
+}
+
+#endif
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/DataReaderHandler_T.cpp b/modules/CIAO/connectors/dds4ccm/impl/ndds/DataReaderHandler_T.cpp
new file mode 100644
index 00000000000..7e05d29ee63
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/DataReaderHandler_T.cpp
@@ -0,0 +1,50 @@
+// $Id$
+
+#include "dds4ccm/impl/ndds/Utils.h"
+
+#include "dds4ccm/impl/ndds/DataReader.h"
+#include "ciao/Logger/Log_Macros.h"
+
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+CIAO::DDS4CCM::RTI::DataReaderHandler_T<DDS_TYPE, CCM_TYPE>::DataReaderHandler_T (
+ typename CCM_TYPE::context_type::_ptr_type context,
+ typename DDS_TYPE::data_reader * reader)
+ : context_ (CCM_TYPE::context_type::_duplicate (context)),
+ reader_ (reader)
+{
+ listener_ = this->context_->get_connection_info_out_data_listener ();
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+CIAO::DDS4CCM::RTI::DataReaderHandler_T<DDS_TYPE, CCM_TYPE>::~DataReaderHandler_T (void)
+{
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+int
+CIAO::DDS4CCM::RTI::DataReaderHandler_T<DDS_TYPE, CCM_TYPE>::handle_exception (ACE_HANDLE)
+{
+ // Loop until there are messages available in the queue
+ for(;;)
+ {
+ typename DDS_TYPE::value_type instance;
+ ::DDS_SampleInfo sampleinfo;
+ ::DDS::ReturnCode_t const result = this->reader_->take_next_sample(instance,
+ sampleinfo);
+ if (result == DDS_RETCODE_NO_DATA)
+ break;
+ else if (result != DDS_RETCODE_OK)
+ {
+ CIAO_ERROR ((LM_ERROR, ACE_TEXT ("Unable to take data from data reader, error %d.\n"), result));
+ return 1;
+ }
+ if (sampleinfo.valid_data)
+ {
+ CIAO_DEBUG ((LM_DEBUG, ACE_TEXT ("DataReaderHandler_T : found valid data\n")));
+ ::CCM_DDS::ReadInfo empty;
+ listener_->on_data (instance, empty);
+ }
+ }
+ return 0;
+}
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/DataReaderHandler_T.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/DataReaderHandler_T.h
new file mode 100644
index 00000000000..8c0fcdb39e6
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/DataReaderHandler_T.h
@@ -0,0 +1,40 @@
+// $Id$
+/**
+ * @author Marcel Smit <msmit@remedy.nl>
+ *
+ * $Id$
+ *
+ * Eventhandler on orb thread, handling the
+ * received data from DDS.
+ */
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ace/Reactor.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ template <typename DDS_TYPE, typename CCM_TYPE>
+ class DataReaderHandler_T :
+ public ACE_Event_Handler
+ {
+ public:
+ DataReaderHandler_T (
+ typename CCM_TYPE::context_type::_ptr_type context,
+ typename DDS_TYPE::data_reader * reader);
+ ~DataReaderHandler_T ();
+
+ virtual int handle_exception (ACE_HANDLE fc = ACE_INVALID_HANDLE);
+ private:
+ typename CCM_TYPE::context_type::_var_type context_;
+ typename DDS_TYPE::data_reader * reader_;
+ typename CCM_TYPE::rawlistener_type::_var_type listener_;
+ };
+ }
+ }
+}
+
+#include "dds4ccm/impl/ndds/DataReaderHandler_T.cpp"
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/DataReaderListener.cpp b/modules/CIAO/connectors/dds4ccm/impl/ndds/DataReaderListener.cpp
new file mode 100644
index 00000000000..707ca497c2b
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/DataReaderListener.cpp
@@ -0,0 +1,114 @@
+// $Id$
+
+#include "DataReaderListener.h"
+#include "DataReader.h"
+#include "SampleLostStatus.h"
+#include "SubscriptionMatchedStatus.h"
+#include "RequestedDeadlineMissedStatus.h"
+#include "SampleRejectedStatus.h"
+#include "LivelinessChangedStatus.h"
+#include "RequestedIncompatibleQosStatus.h"
+
+#include "dds4ccm/idl/dds4ccm_BaseC.h"
+
+#include "ciao/Logger/Log_Macros.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ // Implementation skeleton constructor
+ RTI_DataReaderListener_i::RTI_DataReaderListener_i (::DDS::DataReaderListener_ptr p)
+ : impl_ (::DDS::DataReaderListener::_duplicate (p))
+ {
+ }
+
+ // Implementation skeleton destructor
+ RTI_DataReaderListener_i::~RTI_DataReaderListener_i (void)
+ {
+ }
+
+ void
+ RTI_DataReaderListener_i::on_requested_deadline_missed (
+ ::DDSDataReader* the_reader,
+ const ::DDS_RequestedDeadlineMissedStatus & status)
+ {
+ ::DDS::RequestedDeadlineMissedStatus ddsstatus;
+ ddsstatus <<= status;
+ ::DDS::DataReader_var dds_reader = new RTI_DataReader_i (the_reader);
+ this->impl_->on_requested_deadline_missed (dds_reader.in (), ddsstatus);
+ }
+
+ void
+ RTI_DataReaderListener_i::on_requested_incompatible_qos (
+ ::DDSDataReader* the_reader,
+ const ::DDS_RequestedIncompatibleQosStatus & status)
+ {
+ ::DDS::RequestedIncompatibleQosStatus ddsstatus;
+ ddsstatus <<= status;
+ ::DDS::DataReader_var dds_reader = new RTI_DataReader_i (the_reader);
+ this->impl_->on_requested_incompatible_qos (dds_reader.in (), ddsstatus);
+ }
+
+ void
+ RTI_DataReaderListener_i::on_sample_rejected (
+ ::DDSDataReader* the_reader,
+ const ::DDS_SampleRejectedStatus & status)
+ {
+ ::DDS::SampleRejectedStatus ddsstatus;
+ ddsstatus <<= status;
+ ::DDS::DataReader_var dds_reader = new RTI_DataReader_i (the_reader);
+ this->impl_->on_sample_rejected (dds_reader.in (), ddsstatus);
+ }
+
+ void
+ RTI_DataReaderListener_i::on_liveliness_changed (
+ ::DDSDataReader* the_reader,
+ const ::DDS_LivelinessChangedStatus & status)
+ {
+ ::DDS::LivelinessChangedStatus ddsstatus;
+ ddsstatus <<= status;
+ ::DDS::DataReader_var dds_reader = new RTI_DataReader_i (the_reader);
+ this->impl_->on_liveliness_changed (dds_reader.in (), ddsstatus);
+ }
+
+ void
+ RTI_DataReaderListener_i::on_data_available(::DDSDataReader *reader)
+ {
+ ::DDS::DataReader_var dds_reader = new RTI_DataReader_i (reader);
+ this->impl_->on_data_available (dds_reader.in ());
+ }
+
+ void
+ RTI_DataReaderListener_i::on_subscription_matched (
+ ::DDSDataReader* the_reader,
+ const ::DDS_SubscriptionMatchedStatus & status)
+ {
+ ::DDS::SubscriptionMatchedStatus ddsstatus;
+ ddsstatus <<= status;
+ ::DDS::DataReader_var dds_reader = new RTI_DataReader_i (the_reader);
+ this->impl_->on_subscription_matched (dds_reader.in (), ddsstatus);
+ }
+
+ void
+ RTI_DataReaderListener_i::on_sample_lost (
+ ::DDSDataReader* the_reader,
+ const ::DDS_SampleLostStatus & status)
+ {
+ ::DDS::SampleLostStatus ddsstatus;
+ ddsstatus <<= status;
+ ::DDS::DataReader_var dds_reader = new RTI_DataReader_i (the_reader);
+ this->impl_->on_sample_lost (dds_reader.in (), ddsstatus);
+ }
+
+ ::DDS::DataReaderListener_ptr
+ RTI_DataReaderListener_i::get_datareaderlistener (void)
+ {
+ return ::DDS::DataReaderListener::_duplicate (this->impl_.in ());
+ }
+ }
+ }
+}
+
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/DataReaderListener.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/DataReaderListener.h
new file mode 100644
index 00000000000..adf47e57b4e
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/DataReaderListener.h
@@ -0,0 +1,64 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef CIAO_RTI_DATAREADERLISTENER_H
+#define CIAO_RTI_DATAREADERLISTENER_H
+
+#include "tao/LocalObject.h"
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "dds4ccm_ndds_impl_export.h"
+
+#include "ndds/ndds_cpp.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ class DDS4CCM_NDDS_IMPL_Export RTI_DataReaderListener_i :
+ public virtual ::DDSDataReaderListener
+ {
+ public:
+ // Constructor
+ RTI_DataReaderListener_i (::DDS::DataReaderListener_ptr p);
+
+ // Destructor
+ virtual ~RTI_DataReaderListener_i (void);
+
+ virtual void on_requested_deadline_missed(::DDSDataReader* reader,
+ const ::DDS_RequestedDeadlineMissedStatus& status);
+
+ virtual void on_liveliness_changed(::DDSDataReader* reader,
+ const ::DDS_LivelinessChangedStatus& status);
+
+ virtual void on_requested_incompatible_qos(::DDSDataReader* reader,
+ const ::DDS_RequestedIncompatibleQosStatus& status);
+
+ virtual void on_sample_rejected(::DDSDataReader* reader,
+ const ::DDS_SampleRejectedStatus& status);
+
+ virtual void on_data_available(::DDSDataReader* reader);
+
+ virtual void on_sample_lost(::DDSDataReader* reader,
+ const ::DDS_SampleLostStatus& status);
+
+ virtual void on_subscription_matched(::DDSDataReader* reader,
+ const ::DDS_SubscriptionMatchedStatus& status);
+
+ ::DDS::DataReaderListener_ptr get_datareaderlistener (void);
+ private:
+ ::DDS::DataReaderListener_var impl_;
+ };
+ }
+ }
+}
+
+#endif
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/DataReaderListener_T.cpp b/modules/CIAO/connectors/dds4ccm/impl/ndds/DataReaderListener_T.cpp
new file mode 100644
index 00000000000..9b5dd61b1ff
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/DataReaderListener_T.cpp
@@ -0,0 +1,92 @@
+// $Id$
+#include "dds4ccm/impl/ndds/Utils.h"
+
+#include "dds4ccm/impl/ndds/DataReader.h"
+#include "ciao/Logger/Log_Macros.h"
+#include "dds4ccm/impl/ndds/DataReaderHandler_T.h"
+#include "tao/ORB_Core.h"
+
+// Implementation skeleton constructor
+template <typename DDS_TYPE, typename CCM_TYPE>
+CIAO::DDS4CCM::RTI::DataReaderListener_T<DDS_TYPE, CCM_TYPE>::DataReaderListener_T (
+ typename CCM_TYPE::context_type::_ptr_type context,
+ ACE_Atomic_Op <TAO_SYNCH_MUTEX, bool> &enabled)
+ : context_ (CCM_TYPE::context_type::_duplicate (context)),
+ enabled_ (enabled)
+{
+ CIAO_TRACE ("CIAO::DDS4CCM::RTI::DataReaderListener_T::DataReaderListener_T");
+ this->info_out_portstatus_ = this->context_->get_connection_info_out_status ();
+ this->info_out_connector_status_ = this->context_->get_connection_error_listener ();
+}
+
+// Implementation skeleton destructor
+template <typename DDS_TYPE, typename CCM_TYPE>
+CIAO::DDS4CCM::RTI::DataReaderListener_T<DDS_TYPE, CCM_TYPE>::~DataReaderListener_T (void)
+{
+ CIAO_TRACE ("CIAO::DDS4CCM::RTI::DataReaderListener_T::~DataReaderListener_T");
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+void
+CIAO::DDS4CCM::RTI::DataReaderListener_T<DDS_TYPE, CCM_TYPE>::on_data_available(::DDS::DataReader *rdr)
+{
+ if (!this->enabled_.value ())
+ return;
+
+ ::CIAO::DDS4CCM::RTI::RTI_DataReader_i* rd =
+ dynamic_cast < ::CIAO::DDS4CCM::RTI::RTI_DataReader_i*>(rdr);
+ typename DDS_TYPE::data_reader * reader =
+ dynamic_cast< typename DDS_TYPE::data_reader * > ((rd->get_datareader ()));
+
+ if (!reader)
+ {
+ /* In this specific case, this will never fail */
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("DataReaderListener_T::narrow failed.\n")));
+ return;
+ }
+ ::CIAO::DDS4CCM::RTI::DataReaderHandler_T<DDS_TYPE, CCM_TYPE>* rh =
+ new ::CIAO::DDS4CCM::RTI::DataReaderHandler_T<DDS_TYPE, CCM_TYPE>(this->context_, reader);
+ this->context_->get_CCM_object()->_get_orb ()->orb_core ()->reactor ()->notify (rh);
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+void
+CIAO::DDS4CCM::RTI::DataReaderListener_T<DDS_TYPE, CCM_TYPE>::on_requested_deadline_missed (
+ ::DDS::DataReader_ptr the_reader,
+ const ::DDS::RequestedDeadlineMissedStatus & status)
+{
+ this->info_out_portstatus_->on_requested_deadline_missed (the_reader, status);
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+void
+CIAO::DDS4CCM::RTI::DataReaderListener_T<DDS_TYPE, CCM_TYPE>::on_sample_lost (
+ ::DDS::DataReader_ptr the_reader,
+ const ::DDS::SampleLostStatus & status)
+{
+ this->info_out_portstatus_->on_sample_lost (the_reader, status);
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+void
+CIAO::DDS4CCM::RTI::DataReaderListener_T<DDS_TYPE, CCM_TYPE>::on_requested_incompatible_qos (
+ ::DDS::DataReader_ptr the_reader,
+ const ::DDS::RequestedIncompatibleQosStatus & status)
+{
+ this->info_out_connector_status_->on_requested_incompatible_qos (the_reader, status);
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+bool
+CIAO::DDS4CCM::RTI::DataReaderListener_T<DDS_TYPE, CCM_TYPE>::enabled (void) const
+{
+ return this->enabled_;
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+void
+CIAO::DDS4CCM::RTI::DataReaderListener_T<DDS_TYPE, CCM_TYPE>::enabled (bool enabled)
+{
+ this->enabled_ = enabled;
+}
+
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/DataReaderListener_T.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/DataReaderListener_T.h
new file mode 100644
index 00000000000..1de80065f47
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/DataReaderListener_T.h
@@ -0,0 +1,58 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ace/Copy_Disabled.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ template <typename DDS_TYPE, typename CCM_TYPE>
+ class DataReaderListener_T :
+ public ::DDS::DataReaderListener,
+ private ACE_Copy_Disabled
+ {
+ public:
+ /// Constructor
+ DataReaderListener_T (
+ typename CCM_TYPE::context_type::_ptr_type context,
+ ACE_Atomic_Op <TAO_SYNCH_MUTEX, bool> &enabled);
+
+ /// Destructor
+ virtual ~DataReaderListener_T (void);
+
+ virtual void on_data_available( ::DDS::DataReader *rdr);
+
+ virtual void on_requested_deadline_missed (::DDS::DataReader_ptr the_reader,
+ const ::DDS::RequestedDeadlineMissedStatus & status);
+
+ virtual void on_sample_lost (::DDS::DataReader_ptr the_reader,
+ const ::DDS::SampleLostStatus & status);
+
+ virtual void on_requested_incompatible_qos (::DDS::DataReader_ptr the_reader,
+ const ::DDS::RequestedIncompatibleQosStatus & status);
+
+ bool enabled () const;
+ void enabled (bool enable);
+
+ private:
+ typename CCM_TYPE::context_type::_var_type context_;
+
+ CCM_DDS::ConnectorStatusListener_var info_out_connector_status_;
+ CCM_DDS::PortStatusListener_var info_out_portstatus_;
+ ACE_Atomic_Op <TAO_SYNCH_MUTEX, bool> &enabled_;
+ };
+ }
+ }
+}
+
+#include "dds4ccm/impl/ndds/DataReaderListener_T.cpp"
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/DataWriter.cpp b/modules/CIAO/connectors/dds4ccm/impl/ndds/DataWriter.cpp
new file mode 100644
index 00000000000..4cc5674e91f
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/DataWriter.cpp
@@ -0,0 +1,187 @@
+// $Id$
+
+#include "DataWriter.h"
+#include "StatusCondition.h"
+#include "Publisher.h"
+#include "DataWriterListener.h"
+#include "Topic.h"
+#include "Duration_t.h"
+#include "InstanceHandle_t.h"
+#include "PublicationMatchedStatus.h"
+#include "LivelinessLostStatus.h"
+#include "OfferedIncompatibleQosStatus.h"
+#include "OfferedDeadlineMissedStatus.h"
+#include "InstanceHandleSeq.h"
+
+#include "ciao/Logger/Log_Macros.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ // Implementation skeleton constructor
+ RTI_DataWriter_i::RTI_DataWriter_i (DDSDataWriter * dw)
+ : impl_ (dw)
+ {
+ }
+
+ // Implementation skeleton destructor
+ RTI_DataWriter_i::~RTI_DataWriter_i (void)
+ {
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataWriter_i::set_qos (const ::DDS::DataWriterQos & /*qos*/)
+ {
+ CIAO_TRACE ("RTI_DataWriter_i::set_qos");
+ throw CORBA::NO_IMPLEMENT ();
+ // Add your implementation here
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataWriter_i::get_qos (::DDS::DataWriterQos & /*qos*/)
+ {
+ CIAO_TRACE ("RTI_DataWriter_i::get_qos");
+ throw CORBA::NO_IMPLEMENT ();
+ // Add your implementation here
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataWriter_i::set_listener (::DDS::DataWriterListener_ptr a_listener,
+ ::DDS::StatusMask mask)
+ {
+ RTI_DataWriterListener_i* rti_impl_list = new RTI_DataWriterListener_i (a_listener);
+ return this->impl_->set_listener (rti_impl_list, mask);
+ }
+
+ ::DDS::DataWriterListener_ptr
+ RTI_DataWriter_i::get_listener (void)
+ {
+ DDSDataWriterListener* wr = this->impl_->get_listener ();
+ RTI_DataWriterListener_i *dwl = dynamic_cast< RTI_DataWriterListener_i *> (wr);
+ return dwl->get_datawriterlistener ();
+ }
+
+ ::DDS::Topic_ptr
+ RTI_DataWriter_i::get_topic (void)
+ {
+ DDSTopic* t = this->impl_->get_topic ();
+ ::DDS::Topic_var retval = new RTI_Topic_i (t);
+ return retval._retn ();
+ }
+
+ ::DDS::Publisher_ptr
+ RTI_DataWriter_i::get_publisher (void)
+ {
+ DDSPublisher* p = this->impl_->get_publisher ();
+ ::DDS::Publisher_var retval = new RTI_Publisher_i (p);
+ return retval._retn ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataWriter_i::wait_for_acknowledgments (const ::DDS::Duration_t & max_wait)
+ {
+ ::DDS_Duration_t rtiduration;
+ rtiduration <<= max_wait;
+ return this->impl_->wait_for_acknowledgments (rtiduration);
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataWriter_i::get_liveliness_lost_status (::DDS::LivelinessLostStatus & status)
+ {
+ ::DDS_LivelinessLostStatus rtistatus;
+ ::DDS::ReturnCode_t const retval = this->impl_->get_liveliness_lost_status (rtistatus);
+ rtistatus >>= status;
+ return retval;
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataWriter_i::get_offered_deadline_missed_status (::DDS::OfferedDeadlineMissedStatus & status)
+ {
+ ::DDS_OfferedDeadlineMissedStatus rtistatus;
+ ::DDS::ReturnCode_t const retval = this->impl_->get_offered_deadline_missed_status (rtistatus);
+ rtistatus >>= status;
+ return retval;
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataWriter_i::get_offered_incompatible_qos_status (::DDS::OfferedIncompatibleQosStatus & status)
+ {
+ ::DDS_OfferedIncompatibleQosStatus rtistatus;
+ ::DDS::ReturnCode_t const retval = this->impl_->get_offered_incompatible_qos_status (rtistatus);
+ rtistatus >>= status;
+ return retval;
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataWriter_i::get_publication_matched_status (::DDS::PublicationMatchedStatus & status)
+ {
+ ::DDS_PublicationMatchedStatus rtistatus;
+ ::DDS::ReturnCode_t const retval = this->impl_->get_publication_matched_status (rtistatus);
+ rtistatus >>= status;
+ return retval;
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataWriter_i::assert_liveliness (void)
+ {
+ return this->impl_->assert_liveliness ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataWriter_i::get_matched_subscriptions (::DDS::InstanceHandleSeq & subscription_handles)
+ {
+ ::DDS_InstanceHandleSeq rtiseq;
+ ::DDS::ReturnCode_t const retval = this->impl_->get_matched_subscriptions (rtiseq);
+ rtiseq >>= subscription_handles;
+ return retval;
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataWriter_i::get_matched_subscription_data (::DDS::SubscriptionBuiltinTopicData & /*subscription_data*/,
+ const ::DDS::InstanceHandle_t & /*subscription_handle*/)
+ {
+ CIAO_TRACE ("RTI_DataWriter_i::get_matched_subscription_data");
+ throw CORBA::NO_IMPLEMENT ();
+ // Add your implementation here
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataWriter_i::enable (void)
+ {
+ return this->impl_->enable ();
+ }
+
+ ::DDS::StatusCondition_ptr
+ RTI_DataWriter_i::get_statuscondition (void)
+ {
+ DDSStatusCondition* sc = this->impl_->get_statuscondition ();
+ ::DDS::StatusCondition_var retval = new RTI_StatusCondition_i (sc);
+ return retval._retn ();
+ }
+
+ ::DDS::StatusMask
+ RTI_DataWriter_i::get_status_changes (void)
+ {
+ return this->impl_->get_status_changes ();
+ }
+
+ ::DDS::InstanceHandle_t
+ RTI_DataWriter_i::get_instance_handle (void)
+ {
+ ::DDS_InstanceHandle_t const rtihandle = this->impl_->get_instance_handle ();
+ ::DDS::InstanceHandle_t handle;
+ handle <<= rtihandle;
+ return handle;
+ }
+
+ DDSDataWriter *
+ RTI_DataWriter_i::get_datawriter (void)
+ {
+ return this->impl_;
+ }
+ }
+ }
+}
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/DataWriter.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/DataWriter.h
new file mode 100644
index 00000000000..8f251ca84fd
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/DataWriter.h
@@ -0,0 +1,104 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef CIAO_RTI_DATAWRITER_H
+#define CIAO_RTI_DATAWRITER_H
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+
+#include "dds4ccm/idl/dds_rtf2_dcpsEC.h"
+
+#include "dds4ccm/impl/ndds/dds4ccm_ndds_impl_export.h"
+#include "tao/LocalObject.h"
+
+#include "ndds/ndds_cpp.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ class DDS4CCM_NDDS_IMPL_Export RTI_DataWriter_i
+ : public virtual ::DDS::CCM_DataWriter,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ // Constructor
+ RTI_DataWriter_i (::DDSDataWriter *dw);
+
+ // Destructor
+ virtual ~RTI_DataWriter_i (void);
+
+ virtual
+ ::DDS::ReturnCode_t set_qos (const ::DDS::DataWriterQos & qos);
+
+ virtual
+ ::DDS::ReturnCode_t get_qos (::DDS::DataWriterQos & qos);
+
+ virtual
+ ::DDS::ReturnCode_t set_listener (::DDS::DataWriterListener_ptr a_listener,
+ ::DDS::StatusMask mask);
+
+ virtual
+ ::DDS::DataWriterListener_ptr get_listener (void);
+
+ virtual
+ ::DDS::Topic_ptr get_topic (void);
+
+ virtual
+ ::DDS::Publisher_ptr get_publisher (void);
+
+ virtual
+ ::DDS::ReturnCode_t wait_for_acknowledgments (const ::DDS::Duration_t & max_wait);
+
+ virtual
+ ::DDS::ReturnCode_t get_liveliness_lost_status (::DDS::LivelinessLostStatus & status);
+
+ virtual
+ ::DDS::ReturnCode_t get_offered_deadline_missed_status (::DDS::OfferedDeadlineMissedStatus & status);
+
+ virtual
+ ::DDS::ReturnCode_t get_offered_incompatible_qos_status (::DDS::OfferedIncompatibleQosStatus & status);
+
+ virtual
+ ::DDS::ReturnCode_t get_publication_matched_status (::DDS::PublicationMatchedStatus & status);
+
+ virtual
+ ::DDS::ReturnCode_t assert_liveliness (void);
+
+ virtual
+ ::DDS::ReturnCode_t get_matched_subscriptions (::DDS::InstanceHandleSeq & subscription_handles);
+
+ virtual
+ ::DDS::ReturnCode_t get_matched_subscription_data (::DDS::SubscriptionBuiltinTopicData & subscription_data,
+ const ::DDS::InstanceHandle_t & subscription_handle);
+
+ virtual
+ ::DDS::ReturnCode_t enable (void);
+
+ virtual
+ ::DDS::StatusCondition_ptr get_statuscondition (void);
+
+ virtual
+ ::DDS::StatusMask get_status_changes (void);
+
+ virtual
+ ::DDS::InstanceHandle_t get_instance_handle (void);
+
+ DDSDataWriter * get_datawriter (void);
+
+ private:
+ DDSDataWriter * impl_;
+ };
+ }
+ }
+}
+
+#endif
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/DataWriterListener.cpp b/modules/CIAO/connectors/dds4ccm/impl/ndds/DataWriterListener.cpp
new file mode 100644
index 00000000000..7c66b260ab7
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/DataWriterListener.cpp
@@ -0,0 +1,79 @@
+// $Id$
+
+#include "DataWriterListener.h"
+#include "DataWriter.h"
+#include "PublicationMatchedStatus.h"
+#include "LivelinessLostStatus.h"
+#include "OfferedIncompatibleQosStatus.h"
+#include "OfferedDeadlineMissedStatus.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ // Implementation skeleton constructor
+ RTI_DataWriterListener_i::RTI_DataWriterListener_i (::DDS::DataWriterListener_ptr s)
+ : impl_ (::DDS::DataWriterListener::_duplicate (s))
+ {
+ }
+
+ // Implementation skeleton destructor
+ RTI_DataWriterListener_i::~RTI_DataWriterListener_i (void)
+ {
+ }
+
+ void
+ RTI_DataWriterListener_i::on_offered_deadline_missed (
+ ::DDSDataWriter *the_writer,
+ const ::DDS_OfferedDeadlineMissedStatus & status)
+ {
+ ::DDS::OfferedDeadlineMissedStatus ddsstatus;
+ ddsstatus <<= status;
+ ::DDS::DataWriter_var dds_writer = new RTI_DataWriter_i (the_writer);
+ this->impl_->on_offered_deadline_missed (dds_writer.in (), ddsstatus);
+ }
+
+ void
+ RTI_DataWriterListener_i::on_offered_incompatible_qos (
+ ::DDSDataWriter *the_writer,
+ const ::DDS_OfferedIncompatibleQosStatus & status)
+ {
+ ::DDS::OfferedIncompatibleQosStatus ddsstatus;
+ ddsstatus <<= status;
+ ::DDS::DataWriter_var dds_writer = new RTI_DataWriter_i (the_writer);
+ this->impl_->on_offered_incompatible_qos (dds_writer.in (), ddsstatus);
+ }
+
+ void
+ RTI_DataWriterListener_i::on_liveliness_lost (
+ ::DDSDataWriter *the_writer,
+ const ::DDS_LivelinessLostStatus & status)
+ {
+ ::DDS::LivelinessLostStatus ddsstatus;
+ ddsstatus <<= status;
+ ::DDS::DataWriter_var dds_writer = new RTI_DataWriter_i (the_writer);
+ this->impl_->on_liveliness_lost (dds_writer.in (), ddsstatus);
+ }
+
+ void
+ RTI_DataWriterListener_i::on_publication_matched (
+ ::DDSDataWriter *the_writer,
+ const ::DDS_PublicationMatchedStatus & status)
+ {
+ ::DDS::PublicationMatchedStatus ddsstatus;
+ ddsstatus <<= status;
+ ::DDS::DataWriter_var dds_writer = new RTI_DataWriter_i (the_writer);
+ this->impl_->on_publication_matched (dds_writer.in (), ddsstatus);
+ }
+
+ ::DDS::DataWriterListener_ptr
+ RTI_DataWriterListener_i::get_datawriterlistener (void)
+ {
+ return ::DDS::DataWriterListener::_duplicate (this->impl_.in ());
+ }
+ }
+ }
+}
+
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/DataWriterListener.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/DataWriterListener.h
new file mode 100644
index 00000000000..29462493c48
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/DataWriterListener.h
@@ -0,0 +1,62 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef CIAO_RTI_DATAWRITERLISTENER_H
+#define CIAO_RTI_DATAWRITERLISTENER_H
+
+#include "tao/LocalObject.h"
+
+#include "dds4ccm/idl/dds_rtf2_dcpsEC.h"
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "dds4ccm/impl/ndds/dds4ccm_ndds_impl_export.h"
+
+#include "ndds/ndds_cpp.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ class DDS4CCM_NDDS_IMPL_Export RTI_DataWriterListener_i :
+ public virtual ::DDSDataWriterListener
+ {
+ public:
+ // Constructor
+ RTI_DataWriterListener_i (::DDS::DataWriterListener_ptr p);
+
+ // Destructor
+ virtual ~RTI_DataWriterListener_i (void);
+
+ virtual void on_offered_deadline_missed (
+ ::DDSDataWriter *the_writer,
+ const ::DDS_OfferedDeadlineMissedStatus & status);
+
+ virtual void on_offered_incompatible_qos (
+ ::DDSDataWriter *the_writer,
+ const ::DDS_OfferedIncompatibleQosStatus & status);
+
+ virtual void on_liveliness_lost (
+ ::DDSDataWriter *the_writer,
+ const ::DDS_LivelinessLostStatus & status);
+
+ virtual void on_publication_matched (
+ ::DDSDataWriter *the_writer,
+ const ::DDS_PublicationMatchedStatus & status);
+
+ ::DDS::DataWriterListener_ptr get_datawriterlistener (void);
+ private:
+ ::DDS::DataWriterListener_var impl_;
+ };
+ }
+ }
+}
+
+#endif
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/DataWriterListener_T.cpp b/modules/CIAO/connectors/dds4ccm/impl/ndds/DataWriterListener_T.cpp
new file mode 100644
index 00000000000..42316df8d3f
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/DataWriterListener_T.cpp
@@ -0,0 +1,75 @@
+// $Id$
+#include "dds4ccm/impl/ndds/Utils.h"
+
+#include "dds4ccm/impl/ndds/DataWriter.h"
+#include "ciao/Logger/Log_Macros.h"
+
+// Implementation skeleton constructor
+template <typename DDS_TYPE, typename CCM_TYPE>
+CIAO::DDS4CCM::DataWriterListener_T<DDS_TYPE, CCM_TYPE>::DataWriterListener_T (
+ typename CCM_TYPE::context_type::_ptr_type context,
+ ACE_Atomic_Op <TAO_SYNCH_MUTEX, bool> &enabled)
+ : context_ (CCM_TYPE::context_type::_duplicate (context)),
+ info_out_connector_status_ (CCM_DDS::ConnectorStatusListener::_duplicate (context->get_connection_error_listener ())),
+ enable_ (enabled)
+{
+ CIAO_TRACE ("CIAO::DDS4CCM::DataWriterListener_T::DataWriterListener_T");
+}
+
+// Implementation skeleton destructor
+template <typename DDS_TYPE, typename CCM_TYPE>
+CIAO::DDS4CCM::DataWriterListener_T<DDS_TYPE, CCM_TYPE>::~DataWriterListener_T (void)
+{
+ CIAO_TRACE ("CIAO::DDS4CCM::DataWriterListener_T::~DataWriterListener_T");
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+void
+CIAO::DDS4CCM::DataWriterListener_T<DDS_TYPE, CCM_TYPE>::on_offered_deadline_missed (
+ ::DDS::DataWriter_ptr the_Writer,
+ const ::DDS::OfferedDeadlineMissedStatus & status)
+{
+ this->info_out_connector_status_->on_offered_deadline_missed (the_Writer, status);
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+void
+CIAO::DDS4CCM::DataWriterListener_T<DDS_TYPE, CCM_TYPE>::on_offered_incompatible_qos (
+ ::DDS::DataWriter_ptr the_Writer,
+ const ::DDS::OfferedIncompatibleQosStatus & status)
+{
+ this->info_out_connector_status_->on_offered_incompatible_qos (the_Writer, status);
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+void
+CIAO::DDS4CCM::DataWriterListener_T<DDS_TYPE, CCM_TYPE>::on_liveliness_lost (
+ ::DDS::DataWriter_ptr the_Writer,
+ const ::DDS::LivelinessLostStatus &)
+{
+ this->info_out_connector_status_->on_unexpected_status (the_Writer, ::DDS::LIVELINESS_LOST_STATUS);
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+void
+CIAO::DDS4CCM::DataWriterListener_T<DDS_TYPE, CCM_TYPE>::on_publication_matched (
+ ::DDS::DataWriter_ptr the_Writer,
+ const ::DDS::PublicationMatchedStatus &)
+{
+ this->info_out_connector_status_->on_unexpected_status (the_Writer, ::DDS::PUBLICATION_MATCHED_STATUS);
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+bool
+CIAO::DDS4CCM::DataWriterListener_T<DDS_TYPE, CCM_TYPE>::enabled (void) const
+{
+ return this->enabled_;
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE>
+void
+CIAO::DDS4CCM::DataWriterListener_T<DDS_TYPE, CCM_TYPE>::enabled (bool enabled)
+{
+ this->enabled_ = enabled;
+}
+
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/DataWriterListener_T.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/DataWriterListener_T.h
new file mode 100644
index 00000000000..6e95062a8e9
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/DataWriterListener_T.h
@@ -0,0 +1,58 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ace/Copy_Disabled.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ template <typename DDS_TYPE, typename CCM_TYPE>
+ class DataWriterListener_T :
+ public ::DDS::DataWriterListener,
+ private ACE_Copy_Disabled
+ {
+ public:
+ /// Constructor
+ DataWriterListener_T (
+ typename CCM_TYPE::context_type::_ptr_type context,
+ ACE_Atomic_Op <TAO_SYNCH_MUTEX, bool> &enabled);
+
+ /// Destructor
+ virtual ~DataWriterListener_T (void);
+
+ virtual void on_offered_deadline_missed (
+ ::DDS::DataWriter *the_writer,
+ const ::DDS::OfferedDeadlineMissedStatus & status);
+
+ virtual void on_offered_incompatible_qos (
+ ::DDS::DataWriter *the_writer,
+ const ::DDS::OfferedIncompatibleQosStatus & status);
+
+ virtual void on_liveliness_lost (
+ ::DDS::DataWriter *the_writer,
+ const ::DDS::LivelinessLostStatus & status);
+
+ virtual void on_publication_matched (
+ ::DDS::DataWriter *the_writer,
+ const ::DDS::PublicationMatchedStatus & status);
+
+ bool enabled () const;
+ void enabled (bool enable);
+
+ private:
+ typename CCM_TYPE::context_type::_var_type context_;
+ CCM_DDS::ConnectorStatusListener_var info_out_connector_status_;
+ ACE_Atomic_Op <TAO_SYNCH_MUTEX, bool> &enable_;
+ };
+ }
+}
+
+#include "dds4ccm/impl/ndds/DataWriterListener_T.cpp"
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipant.cpp b/modules/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipant.cpp
new file mode 100644
index 00000000000..60245779d61
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipant.cpp
@@ -0,0 +1,517 @@
+// $Id$
+
+#include "DomainParticipant.h"
+#include "Subscriber.h"
+#include "Publisher.h"
+#include "Topic.h"
+#include "TopicDescription.h"
+#include "Utils.h"
+#include "StatusCondition.h"
+#include "InstanceHandle_t.h"
+#include "Duration_t.h"
+#include "Time_t.h"
+#include "InstanceHandleSeq.h"
+
+#include "dds4ccm/idl/dds4ccm_BaseC.h"
+
+#include "ciao/Logger/Log_Macros.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ // Implementation skeleton constructor
+ RTI_DomainParticipant_i::RTI_DomainParticipant_i (DDSDomainParticipant *part)
+ : impl_ (part)
+ {
+ CIAO_TRACE ("RTI_DomainParticipant_i::RTI_DomainParticipant_i");
+ }
+
+ // Implementation skeleton destructor
+ RTI_DomainParticipant_i::~RTI_DomainParticipant_i (void)
+ {
+ CIAO_TRACE ("RTI_DomainParticipant_i::~RTI_DomainParticipant_i");
+ }
+
+ ::DDS::Publisher_ptr
+ RTI_DomainParticipant_i::create_publisher (const ::DDS::PublisherQos & /*qos*/,
+ ::DDS::PublisherListener_ptr /*a_listener*/,
+ ::DDS::StatusMask mask)
+ {
+ CIAO_TRACE ("DDS_DomainParticipant_i::create_publisher");
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO "RTI_DomainParticipant_i::create_publisher - "
+ "Creating Publisher\n"));
+
+ DDSPublisher * rti_pub =
+ this->impl_->create_publisher (DDS_PUBLISHER_QOS_DEFAULT,
+ 0,
+ mask);
+
+ if (!rti_pub)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "RTI_DomainParticipant_i::create_publisher - "
+ "Error: Unable to create Participant\n"));
+ throw CCM_DDS::InternalError (::DDS::RETCODE_ERROR, 0);
+ }
+
+ CIAO_DEBUG ((LM_INFO, CLINFO "RTI_DomainParticipant_i::create_publisher - "
+ "Successfully created a DDSPublisher\n"));
+
+ ::DDS::Publisher_var retval = new RTI_Publisher_i (rti_pub);
+
+ return retval._retn ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DomainParticipant_i::delete_publisher (::DDS::Publisher_ptr p)
+ {
+ RTI_Publisher_i *rti_pub = dynamic_cast < RTI_Publisher_i * > (p);
+
+ if (!rti_pub)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "RTI_DomainParticipant_i::delete_publisher - "
+ "Unable to cast provided object refence to servant pointer.\n"));
+ return ::DDS::RETCODE_ERROR;
+ }
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO "RTI_DomainParticipant_i::delete_publisher - "
+ "Successfully casted provided object refence to RTI_Publisher_i\n"));
+
+ DDS_ReturnCode_t retval = this->impl_->delete_publisher (rti_pub->get_publisher ());
+
+ if (retval != DDS_RETCODE_OK)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "RTI_DomainParticipant_i::delete_publisher - "
+ "Error: RTI delete_publisher returned non-ok error code %c\n",
+ translate_retcode (retval)));
+ }
+ else CIAO_DEBUG ((LM_INFO, CLINFO "RTI_DomainParticipant_i::delete_publisher - "
+ "Provided publisher successfully created\n"));
+
+ return retval;
+ }
+
+ ::DDS::Subscriber_ptr
+ RTI_DomainParticipant_i::create_subscriber (const ::DDS::SubscriberQos & /*qos*/,
+ ::DDS::SubscriberListener_ptr /*a_listener*/,
+ ::DDS::StatusMask mask)
+ {
+ CIAO_TRACE ("DDS_DomainParticipant_i::create_subscriber");
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO "RTI_DomainParticipant_i::create_subscriber - "
+ "Creating Subscriber\n"));
+
+ DDSSubscriber * rti_sub =
+ this->impl_->create_subscriber (DDS_SUBSCRIBER_QOS_DEFAULT,
+ 0,
+ mask);
+
+ if (!rti_sub)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "RTI_DomainParticipant_i::create_subscriber - "
+ "Error: Unable to create Subscriber\n"));
+ throw CCM_DDS::InternalError (::DDS::RETCODE_ERROR, 0);
+ }
+
+ CIAO_DEBUG ((LM_INFO, CLINFO "RTI_DomainParticipant_i::create_subscriber - "
+ "Successfully created a DDSSubscriber\n"));
+
+ ::DDS::Subscriber_var retval = new RTI_Subscriber_i (rti_sub);
+
+ return retval._retn ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DomainParticipant_i::delete_subscriber (::DDS::Subscriber_ptr s)
+ {
+ RTI_Subscriber_i *rti_sub = dynamic_cast < RTI_Subscriber_i * > (s);
+
+ if (!rti_sub)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "RTI_DomainParticipant_i::delete_subscriber - "
+ "Unable to cast provided object refence to servant pointer.\n"));
+ return ::DDS::RETCODE_ERROR;
+ }
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO "RTI_DomainParticipant_i::delete_subscriber - "
+ "Successfully casted provided object refence to RTI_Subscriber_i\n"));
+
+ return this->impl_->delete_subscriber (rti_sub->get_subscriber ());
+ }
+
+ ::DDS::Subscriber_ptr
+ RTI_DomainParticipant_i::get_builtin_subscriber (void)
+ {
+ DDSSubscriber* rti_sub = this->impl_->get_builtin_subscriber ();
+ ::DDS::Subscriber_var retval = new RTI_Subscriber_i (rti_sub);
+ return retval._retn ();
+ }
+
+ ::DDS::Topic_ptr
+ RTI_DomainParticipant_i::create_topic (const char * impl_name,
+ const char * type_name,
+ const ::DDS::TopicQos & /*qos*/,
+ ::DDS::TopicListener_ptr /*a_listener*/,
+ ::DDS::StatusMask mask)
+ {
+ CIAO_TRACE ("DDS_DomainParticipant_i::create_topic");
+
+ if (impl_name == 0)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "DDS_DomainParticipant_i::create_topic - "
+ "Error: provided nil topic name\n"));
+ throw CCM_DDS::InternalError (::DDS::RETCODE_BAD_PARAMETER,
+ 0);
+ }
+
+ if (type_name == 0)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "DDS_DomainParticipant_i::create_topic - "
+ "Error: provided nil type name\n"));
+ throw CCM_DDS::InternalError (::DDS::RETCODE_BAD_PARAMETER,
+ 0);
+ }
+
+ CIAO_DEBUG ((LM_DEBUG, CLINFO "DDS_DomainParticipant_i::create_topic - "
+ "Attempting to create topic with name %C and type %C\n",
+ impl_name, type_name));
+
+ DDSTopic *rti_topic = this->impl_->create_topic (impl_name,
+ type_name,
+ DDS_TOPIC_QOS_DEFAULT,
+ 0,
+ mask);
+
+ if (rti_topic == 0)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "DDS_DomainParticipant_i::create_topic - "
+ "Error: RTI DDS returned a nil topic\n"));
+ throw CCM_DDS::InternalError (::DDS::RETCODE_ERROR, 0);
+ }
+
+ CIAO_DEBUG ((LM_INFO, CLINFO "DDS_DomainParticipant_i::create_topic - "
+ "Successfully created topic with name %C and type %C\n",
+ impl_name, type_name));
+
+ ::DDS::Topic_var retval = new RTI_Topic_i (rti_topic);
+
+ return retval._retn ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DomainParticipant_i::delete_topic (::DDS::Topic_ptr a_topic)
+ {
+ CIAO_TRACE ("DDS_DomainParticipant_i::delete_topic");
+
+ RTI_Topic_i *top = dynamic_cast< RTI_Topic_i *> (a_topic);
+
+ if (top == 0)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "RTI_DomainParticipant_i::delete_topic - "
+ "Unable to cast provided object reference to servant.\n"));
+ return ::DDS::RETCODE_BAD_PARAMETER;
+ }
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO "RTI_DomainParticipant_i::delete_topic - "
+ "Successfully casted provided object reference to servant.\n"));
+
+ DDS_ReturnCode_t retval = this->impl_->delete_topic (top->get_topic ());
+
+ if (retval != DDS_RETCODE_OK)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "RTI_DomainParticipant_i::delete_topic - "
+ "Error: RTI delete_topic returned non-ok error code %c\n",
+ translate_retcode (retval)));
+ }
+ else CIAO_DEBUG ((LM_INFO, CLINFO "RTI_DomainParticipant_i::delete_topic - "
+ "Provided topic successfully deleted\n"));
+
+ return retval;
+ }
+
+ ::DDS::Topic_ptr
+ RTI_DomainParticipant_i::find_topic (const char * impl_name,
+ const ::DDS::Duration_t & timeout)
+ {
+ ::DDS_Duration_t ddstimeout;
+ ddstimeout <<= timeout;
+ ::DDSTopic* rti_topic = this->impl_->find_topic (impl_name, ddstimeout);
+ ::DDS::Topic_var retval = new RTI_Topic_i (rti_topic);
+ return retval._retn ();
+ }
+
+ ::DDS::TopicDescription_ptr
+ RTI_DomainParticipant_i::lookup_topicdescription (const char * name)
+ {
+ ::DDSTopicDescription* rti_topic = this->impl_->lookup_topicdescription (name);
+ ::DDS::TopicDescription_var retval = new RTI_TopicDescription_i (rti_topic);
+ return retval._retn ();
+ }
+
+ ::DDS::ContentFilteredTopic_ptr
+ RTI_DomainParticipant_i::create_contentfilteredtopic (const char * /*name*/,
+ ::DDS::Topic_ptr /*related_topic*/,
+ const char * /*filter_expression*/,
+ const ::DDS::StringSeq & /*expression_parameters*/)
+ {
+ CIAO_TRACE ("DDS_DomainParticipant_i::create_contentfilteredtopic");
+ throw CORBA::NO_IMPLEMENT ();
+
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DomainParticipant_i::delete_contentfilteredtopic (::DDS::ContentFilteredTopic_ptr /*a_contentfilteredtopic*/)
+ {
+ CIAO_TRACE ("DDS_DomainParticipant_i::delete_contentfilteredtopic");
+ throw CORBA::NO_IMPLEMENT ();
+
+ }
+
+ ::DDS::MultiTopic_ptr
+ RTI_DomainParticipant_i::create_multitopic (const char * /*name*/,
+ const char * /*type_name*/,
+ const char * /*subscription_expression*/,
+ const ::DDS::StringSeq & /*expression_parameters*/)
+ {
+ CIAO_TRACE ("DDS_DomainParticipant_i::create_multitopic");
+ throw CORBA::NO_IMPLEMENT ();
+
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DomainParticipant_i::delete_multitopic (::DDS::MultiTopic_ptr /*a_multitopic*/)
+ {
+ //this->impl_->delete_multitopic (
+ CIAO_TRACE ("DDS_DomainParticipant_i::delete_multitopic");
+ throw CORBA::NO_IMPLEMENT ();
+
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DomainParticipant_i::delete_contained_entities (void)
+ {
+ return this->impl_->delete_contained_entities ();
+
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DomainParticipant_i::set_qos (const ::DDS::DomainParticipantQos & /*qos*/)
+ {
+ CIAO_TRACE ("DDS_DomainParticipant_i::set_qos");
+ throw CORBA::NO_IMPLEMENT ();
+
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DomainParticipant_i::get_qos (::DDS::DomainParticipantQos & /*qos*/)
+ {
+ CIAO_TRACE ("DDS_DomainParticipant_i::get_qos");
+ throw CORBA::NO_IMPLEMENT ();
+
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DomainParticipant_i::set_listener (::DDS::DomainParticipantListener_ptr /*a_listener*/,
+ ::DDS::StatusMask /*mask*/)
+ {
+// RTI_DomainParticipantListener_i* rti_impl_list = new RTI_DomainParticipantListener_i (a_listener);
+ //return this->impl_->set_listener (rti_impl_list, mask);
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ ::DDS::DomainParticipantListener_ptr
+ RTI_DomainParticipant_i::get_listener (void)
+ {
+ CIAO_TRACE ("DDS_DomainParticipant_i::get_listener");
+ throw CORBA::NO_IMPLEMENT ();
+
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DomainParticipant_i::ignore_participant (const ::DDS::InstanceHandle_t & handle)
+ {
+ ::DDS_InstanceHandle_t rti_handle;
+ rti_handle <<= handle;
+ return this->impl_->ignore_participant (rti_handle);
+
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DomainParticipant_i::ignore_topic (const ::DDS::InstanceHandle_t & handle)
+ {
+ ::DDS_InstanceHandle_t rti_handle;
+ rti_handle <<= handle;
+ return this->impl_->ignore_topic (rti_handle);
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DomainParticipant_i::ignore_publication (const ::DDS::InstanceHandle_t & handle)
+ {
+ ::DDS_InstanceHandle_t rti_handle;
+ rti_handle <<= handle;
+ return this->impl_->ignore_publication (rti_handle);
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DomainParticipant_i::ignore_subscription (const ::DDS::InstanceHandle_t & handle)
+ {
+ ::DDS_InstanceHandle_t rti_handle;
+ rti_handle <<= handle;
+ return this->impl_->ignore_subscription (rti_handle);
+ }
+
+ ::DDS::DomainId_t
+ RTI_DomainParticipant_i::get_domain_id (void)
+ {
+ return this->impl_->get_domain_id ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DomainParticipant_i::assert_liveliness (void)
+ {
+ return this->impl_->assert_liveliness ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DomainParticipant_i::set_default_publisher_qos (const ::DDS::PublisherQos & /*qos*/)
+ {
+ CIAO_TRACE ("DDS_DomainParticipant_i::set_default_publisher_qos");
+ throw CORBA::NO_IMPLEMENT ();
+
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DomainParticipant_i::get_default_publisher_qos (::DDS::PublisherQos & /*qos*/)
+ {
+ CIAO_TRACE ("DDS_DomainParticipant_i::get_default_publisher_qos");
+ throw CORBA::NO_IMPLEMENT ();
+
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DomainParticipant_i::set_default_subscriber_qos (const ::DDS::SubscriberQos & /*qos*/)
+ {
+ CIAO_TRACE ("DDS_DomainParticipant_i::set_default_subscriber_qos");
+ throw CORBA::NO_IMPLEMENT ();
+
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DomainParticipant_i::get_default_subscriber_qos (::DDS::SubscriberQos & /*qos*/)
+ {
+ CIAO_TRACE ("DDS_DomainParticipant_i::get_default_subscriber_qos");
+ throw CORBA::NO_IMPLEMENT ();
+
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DomainParticipant_i::set_default_topic_qos (const ::DDS::TopicQos & /*qos*/)
+ {
+ CIAO_TRACE ("DDS_DomainParticipant_i::set_default_topic_qos");
+ throw CORBA::NO_IMPLEMENT ();
+
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DomainParticipant_i::get_default_topic_qos (::DDS::TopicQos & /*qos*/)
+ {
+ CIAO_TRACE ("DDS_DomainParticipant_i::get_default_topic_qos");
+ throw CORBA::NO_IMPLEMENT ();
+
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DomainParticipant_i::get_discovered_participants (::DDS::InstanceHandleSeq & impl_handles)
+ {
+ ::DDS_InstanceHandleSeq rtiseq;
+ ::DDS::ReturnCode_t const retval = this->impl_->get_discovered_participants (rtiseq);
+ rtiseq >>= impl_handles;
+ return retval;
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DomainParticipant_i::get_discovered_participant_data (::DDS::ParticipantBuiltinTopicData & /*impl_data*/,
+ const ::DDS::InstanceHandle_t & /*impl_handle*/)
+ {
+ CIAO_TRACE ("DDS_DomainParticipant_i::get_discovered_participant_data");
+ throw CORBA::NO_IMPLEMENT ();
+
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DomainParticipant_i::get_discovered_topics (::DDS::InstanceHandleSeq & impl_handles)
+ {
+ ::DDS_InstanceHandleSeq rtiseq;
+ ::DDS::ReturnCode_t const retval = this->impl_->get_discovered_topics (rtiseq);
+ rtiseq >>= impl_handles;
+ return retval;
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DomainParticipant_i::get_discovered_topic_data (::DDS::TopicBuiltinTopicData & /*impl_data*/,
+ const ::DDS::InstanceHandle_t & /*impl_handle*/)
+ {
+ CIAO_TRACE ("DDS_DomainParticipant_i::get_discovered_topic_data");
+ throw CORBA::NO_IMPLEMENT ();
+
+ }
+
+ ::CORBA::Boolean
+ RTI_DomainParticipant_i::contains_entity (const ::DDS::InstanceHandle_t & a_handle)
+ {
+ ::DDS_InstanceHandle_t rti_handle;
+ rti_handle <<= a_handle;
+ return this->impl_->contains_entity (rti_handle);
+
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DomainParticipant_i::get_current_time (::DDS::Time_t & current_time)
+ {
+ DDS_Time_t rti_time;
+ ::DDS::ReturnCode_t const retval = this->impl_->get_current_time (rti_time);
+ rti_time >>= current_time;
+ return retval;
+
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DomainParticipant_i::enable (void)
+ {
+ return this->impl_->enable ();
+ }
+
+ ::DDS::StatusCondition_ptr
+ RTI_DomainParticipant_i::get_statuscondition (void)
+ {
+ DDSStatusCondition* sc = this->impl_->get_statuscondition ();
+ ::DDS::StatusCondition_var retval = new RTI_StatusCondition_i (sc);
+ return retval._retn ();
+ }
+
+ ::DDS::StatusMask
+ RTI_DomainParticipant_i::get_status_changes (void)
+ {
+ return this->impl_->get_status_changes ();
+ }
+
+ ::DDS::InstanceHandle_t
+ RTI_DomainParticipant_i::get_instance_handle (void)
+ {
+ ::DDS_InstanceHandle_t const rtihandle = this->impl_->get_instance_handle ();
+ ::DDS::InstanceHandle_t handle;
+ handle <<= rtihandle;
+ return handle;
+ }
+
+ DDSDomainParticipant *
+ RTI_DomainParticipant_i::get_participant (void)
+ {
+ return this->impl_;
+ }
+ }
+ }
+}
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipant.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipant.h
new file mode 100644
index 00000000000..986c8e4eab6
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipant.h
@@ -0,0 +1,188 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef CIAO_NDDS_PARTICIPANT_H
+#define CIAO_NDDS_PARTICIPANT_H
+
+#include "tao/LocalObject.h"
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+
+#include "dds4ccm/idl/dds_rtf2_dcpsEC.h"
+
+#include "dds4ccm/impl/ndds/dds4ccm_ndds_impl_export.h"
+
+#include "ndds/ndds_cpp.h"
+#include "tao/LocalObject.h"
+
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ class DDS4CCM_NDDS_IMPL_Export RTI_DomainParticipant_i :
+ public virtual ::DDS::CCM_DomainParticipant,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ // Constructor
+ RTI_DomainParticipant_i (DDSDomainParticipant *p);
+
+ // Destructor
+ virtual ~RTI_DomainParticipant_i (void);
+
+ virtual
+ ::DDS::Publisher_ptr create_publisher (const ::DDS::PublisherQos & qos,
+ ::DDS::PublisherListener_ptr a_listener,
+ ::DDS::StatusMask mask);
+
+ virtual
+ ::DDS::ReturnCode_t delete_publisher (::DDS::Publisher_ptr p);
+
+ virtual
+ ::DDS::Subscriber_ptr create_subscriber (const ::DDS::SubscriberQos & qos,
+ ::DDS::SubscriberListener_ptr a_listener,
+ ::DDS::StatusMask mask);
+
+ virtual
+ ::DDS::ReturnCode_t delete_subscriber (::DDS::Subscriber_ptr s);
+
+ virtual
+ ::DDS::Subscriber_ptr get_builtin_subscriber (void);
+
+ virtual
+ ::DDS::Topic_ptr create_topic (const char * impl_name,
+ const char * type_name,
+ const ::DDS::TopicQos & qos,
+ ::DDS::TopicListener_ptr a_listener,
+ ::DDS::StatusMask mask);
+
+ virtual
+ ::DDS::ReturnCode_t delete_topic (::DDS::Topic_ptr a_topic);
+
+ virtual
+ ::DDS::Topic_ptr find_topic (const char * impl_name,
+ const ::DDS::Duration_t & timeout);
+
+ virtual
+ ::DDS::TopicDescription_ptr lookup_topicdescription (const char * name);
+
+ virtual
+ ::DDS::ContentFilteredTopic_ptr create_contentfilteredtopic (const char * name,
+ ::DDS::Topic_ptr related_topic,
+ const char * filter_expression,
+ const ::DDS::StringSeq & expression_parameters);
+
+ virtual
+ ::DDS::ReturnCode_t delete_contentfilteredtopic (::DDS::ContentFilteredTopic_ptr a_contentfilteredtopic);
+
+ virtual
+ ::DDS::MultiTopic_ptr create_multitopic (const char * name,
+ const char * type_name,
+ const char * subscription_expression,
+ const ::DDS::StringSeq & expression_parameters);
+
+ virtual
+ ::DDS::ReturnCode_t delete_multitopic (::DDS::MultiTopic_ptr a_multitopic);
+
+ virtual
+ ::DDS::ReturnCode_t delete_contained_entities (void);
+
+ virtual
+ ::DDS::ReturnCode_t set_qos (const ::DDS::DomainParticipantQos & qos);
+
+ virtual
+ ::DDS::ReturnCode_t get_qos (::DDS::DomainParticipantQos & qos);
+
+ virtual
+ ::DDS::ReturnCode_t set_listener (::DDS::DomainParticipantListener_ptr a_listener,
+ ::DDS::StatusMask mask);
+
+ virtual
+ ::DDS::DomainParticipantListener_ptr get_listener (void);
+
+ virtual
+ ::DDS::ReturnCode_t ignore_participant (const ::DDS::InstanceHandle_t & handle);
+
+ virtual
+ ::DDS::ReturnCode_t ignore_topic (const ::DDS::InstanceHandle_t & handle);
+
+ virtual
+ ::DDS::ReturnCode_t ignore_publication (const ::DDS::InstanceHandle_t & handle);
+
+ virtual
+ ::DDS::ReturnCode_t ignore_subscription (const ::DDS::InstanceHandle_t & handle);
+
+ virtual
+ ::DDS::DomainId_t get_domain_id (void);
+
+ virtual
+ ::DDS::ReturnCode_t assert_liveliness (void);
+
+ virtual
+ ::DDS::ReturnCode_t set_default_publisher_qos (const ::DDS::PublisherQos & qos);
+
+ virtual
+ ::DDS::ReturnCode_t get_default_publisher_qos (::DDS::PublisherQos & qos);
+
+ virtual
+ ::DDS::ReturnCode_t set_default_subscriber_qos (const ::DDS::SubscriberQos & qos);
+
+ virtual
+ ::DDS::ReturnCode_t get_default_subscriber_qos (::DDS::SubscriberQos & qos);
+
+ virtual
+ ::DDS::ReturnCode_t set_default_topic_qos (const ::DDS::TopicQos & qos);
+
+ virtual
+ ::DDS::ReturnCode_t get_default_topic_qos (::DDS::TopicQos & qos);
+
+ virtual
+ ::DDS::ReturnCode_t get_discovered_participants (::DDS::InstanceHandleSeq & impl_handles);
+
+ virtual
+ ::DDS::ReturnCode_t get_discovered_participant_data (::DDS::ParticipantBuiltinTopicData & impl_data,
+ const ::DDS::InstanceHandle_t & impl_handle);
+
+ virtual
+ ::DDS::ReturnCode_t get_discovered_topics (::DDS::InstanceHandleSeq & impl_handles);
+
+ virtual
+ ::DDS::ReturnCode_t get_discovered_topic_data (::DDS::TopicBuiltinTopicData & impl_data,
+ const ::DDS::InstanceHandle_t & impl_handle);
+
+ virtual
+ ::CORBA::Boolean contains_entity (const ::DDS::InstanceHandle_t & a_handle);
+
+ virtual
+ ::DDS::ReturnCode_t get_current_time (::DDS::Time_t & current_time);
+
+ virtual
+ ::DDS::ReturnCode_t enable (void);
+
+ virtual
+ ::DDS::StatusCondition_ptr get_statuscondition (void);
+
+ virtual
+ ::DDS::StatusMask get_status_changes (void);
+
+ virtual
+ ::DDS::InstanceHandle_t get_instance_handle (void);
+
+ DDSDomainParticipant * get_participant (void);
+
+ protected:
+ DDSDomainParticipant *impl_;
+ };
+ }
+ }
+}
+
+#endif
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantFactory.cpp b/modules/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantFactory.cpp
new file mode 100644
index 00000000000..defdfafe9e7
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantFactory.cpp
@@ -0,0 +1,128 @@
+// $Id$
+
+#include "DomainParticipantFactory.h"
+#include "DomainParticipant.h"
+#include "Utils.h"
+
+#include "ciao/Logger/Log_Macros.h"
+#include "dds4ccm/idl/dds4ccm_BaseC.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ RTI_DomainParticipantFactory_i::RTI_DomainParticipantFactory_i (void)
+ {
+ CIAO_TRACE ("RTI_DomainParticipantFactory_i::RTI_DomainParticipantFactory_i");
+ }
+
+ RTI_DomainParticipantFactory_i::~RTI_DomainParticipantFactory_i (void)
+ {
+ CIAO_TRACE ("RTI_DomainParticipantFactory_i::~RTI_DomainParticipantFactory_i");
+ }
+
+ ::DDS::DomainParticipant_ptr
+ RTI_DomainParticipantFactory_i::create_participant (::DDS::DomainId_t domain_id,
+ const ::DDS::DomainParticipantQos & /*qos*/,
+ ::DDS::DomainParticipantListener_ptr /*a_listener*/,
+ ::DDS::StatusMask mask)
+ {
+ CIAO_TRACE ("RTI_DomainParticipantFactory_i::create_participant");
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO "RTI_DomainParticipantFactory_i::create_participant - "
+ "Creating domain participant\n"));
+ DDSDomainParticipant *part = DDSDomainParticipantFactory::get_instance ()->
+ create_participant (domain_id,
+ DDS_PARTICIPANT_QOS_DEFAULT,
+ 0,
+ mask);
+
+ if (!part)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "RTI_DomainParticipantFactory_i::create_participant - "
+ "Error: Unable to create DomainParticipant\n"));
+ throw CCM_DDS::InternalError (1, 0);
+ }
+
+ ::DDS::DomainParticipant_var retval = new RTI_DomainParticipant_i (part);
+
+ return retval._retn ();
+ }
+
+
+ ::DDS::ReturnCode_t
+ RTI_DomainParticipantFactory_i::delete_participant (::DDS::DomainParticipant_ptr a_participant)
+ {
+ CIAO_TRACE ("RTI_DomainParticipantFactory_i::delete_participant");
+
+ RTI_DomainParticipant_i *part = dynamic_cast< RTI_DomainParticipant_i * > (a_participant);
+
+ if (!part)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "RTI_DomainParticipantFactory_i::delete_participant - "
+ "Unable to cast provided object reference to servant type, bailing.\n"));
+ return DDS::RETCODE_ERROR;
+ }
+ CIAO_DEBUG ((LM_TRACE, CLINFO "RTI_DomainParticipantFactory_i::delete_participant - "
+ "Successfully casted provided object reference to servant type.\n"));
+
+ DDS_ReturnCode_t retval = DDSDomainParticipantFactory::get_instance ()->
+ delete_participant (part->get_participant ());
+
+ if (retval != DDS_RETCODE_OK)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "RTI_DomainParticipantFactory_i::delete_participant - "
+ "RTI delete_participant returned non-ok error code %c\n",
+ translate_retcode (retval)));
+ }
+ else CIAO_DEBUG ((LM_INFO, CLINFO "RTI_DomainParticipantFactory_i::delete_participant - "
+ "Successfully deleted provided participant.\n"));
+
+ return retval;
+ }
+
+ ::DDS::DomainParticipant_ptr
+ RTI_DomainParticipantFactory_i::lookup_participant (::DDS::DomainId_t domain_id)
+ {
+ DDSDomainParticipant* dp = DDSDomainParticipantFactory::get_instance ()->lookup_participant (domain_id);
+ ::DDS::DomainParticipant_var retval = new RTI_DomainParticipant_i (dp);
+ return retval._retn ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DomainParticipantFactory_i::set_default_participant_qos (const ::DDS::DomainParticipantQos & /*qos*/)
+ {
+ CIAO_TRACE ("RTI_DomainParticipantFactory_i::set_default_participant_qos");
+
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DomainParticipantFactory_i::get_default_participant_qos (::DDS::DomainParticipantQos & /*qos*/)
+ {
+ CIAO_TRACE ("RTI_DomainParticipantFactory_i::get_default_participant_qos");
+
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DomainParticipantFactory_i::set_qos (const ::DDS::DomainParticipantFactoryQos & /*qos*/)
+ {
+ CIAO_TRACE ("RTI_DomainParticipantFactory_i::set_qos");
+
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DomainParticipantFactory_i::get_qos (::DDS::DomainParticipantFactoryQos & /*qos*/)
+ {
+ CIAO_TRACE ("RTI_DomainParticipantFactory_i::get_qos");
+
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ }
+ }
+}
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantFactory.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantFactory.h
new file mode 100644
index 00000000000..04b42655796
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantFactory.h
@@ -0,0 +1,67 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef DDS_RTI_PARTICIPANTFACTORY_H
+#define DDS_RTI_PARTICIPANTFACTORY_H
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+
+#include "dds4ccm/idl/dds_rtf2_dcpsEC.h"
+
+#include "dds4ccm/impl/ndds/dds4ccm_ndds_impl_export.h"
+
+#include "tao/LocalObject.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ class DDS4CCM_NDDS_IMPL_Export RTI_DomainParticipantFactory_i :
+ public virtual ::DDS::CCM_DomainParticipantFactory,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ // Constructor
+ RTI_DomainParticipantFactory_i (void);
+
+ // Destructor
+ virtual ~RTI_DomainParticipantFactory_i (void);
+
+ virtual
+ ::DDS::DomainParticipant_ptr create_participant (::DDS::DomainId_t domain_id,
+ const ::DDS::DomainParticipantQos & qos,
+ ::DDS::DomainParticipantListener_ptr a_listener,
+ ::DDS::StatusMask mask);
+
+ virtual
+ ::DDS::ReturnCode_t delete_participant (::DDS::DomainParticipant_ptr a_participant);
+
+ virtual
+ ::DDS::DomainParticipant_ptr lookup_participant (::DDS::DomainId_t domain_id);
+
+ virtual
+ ::DDS::ReturnCode_t set_default_participant_qos (const ::DDS::DomainParticipantQos & qos);
+
+ virtual
+ ::DDS::ReturnCode_t get_default_participant_qos (::DDS::DomainParticipantQos & qos);
+
+ virtual
+ ::DDS::ReturnCode_t set_qos (const ::DDS::DomainParticipantFactoryQos & qos);
+
+ virtual
+ ::DDS::ReturnCode_t get_qos (::DDS::DomainParticipantFactoryQos & qos);
+ };
+ }
+ }
+}
+
+
+#endif
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/Duration_t.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/Duration_t.h
new file mode 100644
index 00000000000..3f8245afc81
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/Duration_t.h
@@ -0,0 +1,35 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef CIAO_RTI_DURATION_T_H
+#define CIAO_RTI_DURATION_T_H
+
+inline void
+operator<<= (::DDS::Duration_t &ddsduration, const ::DDS_Duration_t & duration)
+{
+ ddsduration.sec = duration.sec;
+ ddsduration.nanosec = duration.nanosec;
+}
+
+inline void
+operator<<= (::DDS_Duration_t &ddsduration, const ::DDS::Duration_t & duration)
+{
+ ddsduration.sec = duration.sec;
+ ddsduration.nanosec = duration.nanosec;
+}
+
+inline void
+operator>>= (const ::DDS_Duration_t &duration, ::DDS::Duration_t & ddsduration)
+{
+ ddsduration.sec = duration.sec;
+ ddsduration.nanosec = duration.nanosec;
+}
+
+#endif /* CIAO_RTI_DURATION_T_H */
+
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/Getter_T.cpp b/modules/CIAO/connectors/dds4ccm/impl/ndds/Getter_T.cpp
new file mode 100644
index 00000000000..ea5cd3e8132
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/Getter_T.cpp
@@ -0,0 +1,217 @@
+// $Id$
+#include "dds4ccm/impl/ndds/DataReader.h"
+#include "dds4ccm/impl/ndds/Utils.h"
+#include "dds4ccm/impl/ndds/Duration_t.h"
+#include "dds4ccm/impl/ndds/SampleInfo.h"
+
+#include "ciao/Logger/Log_Macros.h"
+
+template <typename DDS_TYPE, typename CCM_TYPE >
+CIAO::DDS4CCM::RTI::Getter_T<DDS_TYPE, CCM_TYPE>::Getter_T (::DDS::DataReader_ptr reader)
+: impl_ (0),
+ condition_(0),
+ time_out_ ()
+{
+ CIAO_TRACE ("CIAO::DDS4CCM::RTI::Getter_T::Getter_T");
+
+ RTI_DataReader_i *rdr = dynamic_cast <RTI_DataReader_i *> (reader);
+ if (rdr == 0)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "CIAO::DDS4CCM::RTI::Getter_T::Getter_T - "
+ "Unable to cast provided DataReader to servant\n"));
+ throw CORBA::INTERNAL ();
+ }
+
+ this->impl_ = DDS_TYPE::data_reader::narrow (rdr->get_datareader ());
+
+ if (this->impl_ == 0)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "CIAO::DDS4CCM::RTI::Getter_T::Getter_T - "
+ "Unable to narrow the provided writer entity to the specific "
+ "type necessary to publish messages\n"));
+ throw CORBA::INTERNAL ();
+ }
+ //now create the waitset conditions
+ ws_ = new DDSWaitSet ();
+ gd_ = new DDSGuardCondition ();
+ rd_condition_ = this->impl_->create_readcondition (DDS_NOT_READ_SAMPLE_STATE,
+ DDS_ANY_VIEW_STATE,
+ DDS_ANY_INSTANCE_STATE);
+ DDS_ReturnCode_t retcode = ws_->attach_condition (gd_);
+ if (retcode != DDS_RETCODE_OK)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "GETTER:Unable to attach guard condition to waitset.\n"));
+ throw CCM_DDS::InternalError (retcode, 0);
+ }
+ retcode = ws_->attach_condition (rd_condition_);
+ if (retcode != DDS_RETCODE_OK)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "GETTER: Unable to attach read condition to waitset.\n"));
+ throw CCM_DDS::InternalError (retcode, 1);
+ }
+}
+
+// Implementation skeleton destructor
+template <typename DDS_TYPE, typename CCM_TYPE >
+CIAO::DDS4CCM::RTI::Getter_T<DDS_TYPE, CCM_TYPE>::~Getter_T (void)
+{
+ CIAO_TRACE ("CIAO::DDS4CCM::RTI::Getter_T::~Getter_T");
+ delete ws_;
+ delete gd_;
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE >
+bool
+CIAO::DDS4CCM::RTI::Getter_T<DDS_TYPE, CCM_TYPE>::wait (
+ DDSConditionSeq& active_conditions)
+{
+ DDS_Duration_t timeout;
+ timeout <<= this->time_out_;
+ DDS_ReturnCode_t const retcode = ws_->wait (active_conditions, timeout);
+ if (retcode == DDS_RETCODE_TIMEOUT)
+ {
+ CIAO_DEBUG ((LM_DEBUG, ACE_TEXT ("Getter: No data available after timeout.\n")));
+ return false;
+ }
+ return true;
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE >
+bool
+CIAO::DDS4CCM::RTI::Getter_T<DDS_TYPE, CCM_TYPE>::get_all (
+ typename CCM_TYPE::seq_type::_out_type instances,
+ ::CCM_DDS::ReadInfoSeq_out infos)
+{
+ ACE_UNUSED_ARG (instances);
+ ACE_UNUSED_ARG (infos);
+ return true;
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE >
+bool
+CIAO::DDS4CCM::RTI::Getter_T<DDS_TYPE, CCM_TYPE>::get_all_history (
+ typename CCM_TYPE::seq_type::_out_type instances,
+ ::CCM_DDS::ReadInfoSeq_out infos)
+{
+ DDSConditionSeq active_conditions;
+ DDS_SampleInfoSeq sample_info;
+ if (!this->wait (active_conditions))
+ return false;
+
+ ACE_UNUSED_ARG (instances);
+ ACE_UNUSED_ARG (infos);
+ return false;
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE >
+bool
+CIAO::DDS4CCM::RTI::Getter_T<DDS_TYPE, CCM_TYPE>::get_one (
+ typename DDS_TYPE::value_type& an_instance,
+ ::CCM_DDS::ReadInfo_out info)
+{
+ DDSConditionSeq active_conditions;
+ DDS_SampleInfoSeq sample_info;
+ if (!this->wait (active_conditions))
+ return false;
+ typename DDS_TYPE::dds_seq_type data;
+ for (int i = 0; i < active_conditions.length(); i++)
+ {
+ if (active_conditions[i] == gd_)
+ {
+ gd_->set_trigger_value (false);
+ }
+
+ if (active_conditions[i] == rd_condition_)
+ {
+ // Check trigger
+ active_conditions[i]->get_trigger_value ();
+
+ // Take read condition
+ DDS_ReturnCode_t retcode = this->impl_->read (data,
+ sample_info,
+ DDS_LENGTH_UNLIMITED,
+ DDS_NOT_READ_SAMPLE_STATE ,
+ DDS_ANY_VIEW_STATE,
+ DDS_ANY_INSTANCE_STATE);
+
+ if (retcode == DDS_RETCODE_NO_DATA)
+ {
+ throw CCM_DDS::InternalError (retcode, 1);
+ }
+ else if (retcode != DDS_RETCODE_OK)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "CIAO::DDS4CCM::RTI::Getter_T::Getter_T - "
+ "Unable to return the loan to DDS: <%d>\n", retcode));
+ break;
+ }
+ info <<= sample_info; //retrieves the last sample.
+ if (retcode == DDS_RETCODE_OK && data.length () >= 0)
+ {
+ an_instance = data[0];
+ }
+ else
+ {
+ throw CCM_DDS::InternalError (retcode, 0);
+ }
+
+ retcode = this->impl_->return_loan(data,sample_info);
+ if (retcode != DDS_RETCODE_OK)
+ {
+ CIAO_ERROR ((LM_ERROR, ACE_TEXT ("return loan error %d\n"), retcode));
+ }
+ }
+ }
+ return true;
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE >
+bool
+CIAO::DDS4CCM::RTI::Getter_T<DDS_TYPE, CCM_TYPE>::get_one_history (
+ const typename DDS_TYPE::value_type& an_instance,
+ typename CCM_TYPE::seq_type::_out_type instances,
+ ::CCM_DDS::ReadInfoSeq_out infos)
+{
+ ACE_UNUSED_ARG (an_instance);
+ ACE_UNUSED_ARG (instances);
+ ACE_UNUSED_ARG (infos);
+ return true;
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE >
+bool
+CIAO::DDS4CCM::RTI::Getter_T<DDS_TYPE, CCM_TYPE>::get_next (
+ typename DDS_TYPE::value_type::_out_type an_instance,
+ ::CCM_DDS::ReadInfo_out info)
+{
+ ACE_UNUSED_ARG (an_instance);
+ ACE_UNUSED_ARG (info);
+ return true;
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE >
+ ::CCM_DDS::QueryFilter *
+ CIAO::DDS4CCM::RTI::Getter_T<DDS_TYPE, CCM_TYPE>::filter (void)
+{
+ return 0;
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE >
+void
+CIAO::DDS4CCM::RTI::Getter_T<DDS_TYPE, CCM_TYPE>::filter (const ::CCM_DDS::QueryFilter & filter)
+{
+ this->query_filter_ = filter;
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE >
+::DDS::Duration_t
+CIAO::DDS4CCM::RTI::Getter_T<DDS_TYPE, CCM_TYPE>::time_out (void)
+{
+ return this->time_out_;
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE >
+void
+CIAO::DDS4CCM::RTI::Getter_T<DDS_TYPE, CCM_TYPE>::time_out (const ::DDS::Duration_t & time_out)
+{
+ this->time_out_ = time_out;
+}
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/Getter_T.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/Getter_T.h
new file mode 100644
index 00000000000..97aedb17bc9
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/Getter_T.h
@@ -0,0 +1,74 @@
+/**
+ * @author Marcel Smit <msmit@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ace/Copy_Disabled.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ template <typename DDS_TYPE, typename CCM_TYPE>
+ class Getter_T :
+ public virtual CCM_TYPE::getter_type,
+ public virtual ::CORBA::LocalObject,
+ private virtual ACE_Copy_Disabled
+ {
+ public:
+ // Constructor
+ Getter_T (::DDS::DataReader_ptr dr);
+
+ // Destructor
+ virtual ~Getter_T (void);
+
+ virtual bool get_all (
+ typename CCM_TYPE::seq_type::_out_type instances,
+ ::CCM_DDS::ReadInfoSeq_out infos);
+
+ virtual bool get_all_history (
+ typename CCM_TYPE::seq_type::_out_type instances,
+ ::CCM_DDS::ReadInfoSeq_out infos);
+
+ virtual bool get_one (
+ typename DDS_TYPE::value_type& an_instance,
+ ::CCM_DDS::ReadInfo_out info);
+
+ virtual bool get_one_history (
+ const typename DDS_TYPE::value_type& an_instance,
+ typename CCM_TYPE::seq_type::_out_type instances,
+ ::CCM_DDS::ReadInfoSeq_out infos);
+
+ virtual bool get_next (
+ typename DDS_TYPE::value_type::_out_type an_instance,
+ ::CCM_DDS::ReadInfo_out info);
+
+ virtual ::CCM_DDS::QueryFilter *filter (void);
+ virtual void filter (const ::CCM_DDS::QueryFilter & filter);
+
+ virtual ::DDS::Duration_t time_out (void);
+ virtual void time_out (const ::DDS::Duration_t & time_out);
+ private:
+ typename DDS_TYPE::data_reader *impl_;
+ DDSQueryCondition* condition_;
+ ::DDS::Duration_t time_out_;
+ DDSGuardCondition* gd_;
+ DDSWaitSet* ws_;
+ DDSReadCondition* rd_condition_;
+ ::CCM_DDS::QueryFilter query_filter_;
+
+ bool
+ wait (
+ DDSConditionSeq& active_conditions);
+ };
+ }
+ }
+}
+
+#include "dds4ccm/impl/ndds/Getter_T.cpp"
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/InconsistentTopicStatus.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/InconsistentTopicStatus.h
new file mode 100644
index 00000000000..31585e1a0d5
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/InconsistentTopicStatus.h
@@ -0,0 +1,41 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef CIAO_RTI_INCONSISTENTTOPICSTATUS_H
+#define CIAO_RTI_INCONSISTENTTOPICSTATUS_H
+
+inline void
+operator<<= (::DDS::InconsistentTopicStatus &ddsstatus, const ::DDS_InconsistentTopicStatus & status)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+}
+
+inline void
+operator<<= (::DDS_InconsistentTopicStatus &ddsstatus, const ::DDS::InconsistentTopicStatus & status)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+}
+
+inline void
+operator>>= (const ::DDS_InconsistentTopicStatus &status, ::DDS::InconsistentTopicStatus & ddsstatus)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+}
+
+inline void
+operator>>= (const ::DDS::InconsistentTopicStatus &status, ::DDS_InconsistentTopicStatus & ddsstatus)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+}
+
+#endif /* CIAO_RTI_INCONSISTENTTOPICSTATUS_H */
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/InstanceHandleSeq.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/InstanceHandleSeq.h
new file mode 100644
index 00000000000..e3916285d14
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/InstanceHandleSeq.h
@@ -0,0 +1,60 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef CIAO_RTI_INSTANCEHANDLESEQ_H
+#define CIAO_RTI_INSTANCEHANDLESEQ_H
+
+#include "InstanceHandle_t.h"
+
+template <typename corbaseq, typename ddsseq>
+void convert_dds_to_corba_sequence(corbaseq & target, const ddsseq& source) {
+ target.length (source.length ());
+ for (::DDS_Long index = 0; index < source.length (); index++)
+ {
+ target[index] <<= source[index];
+ }
+}
+
+inline void
+operator<<= (::DDS::InstanceHandleSeq &ddsinstancehandleseqseq, const ::DDS_InstanceHandleSeq & instancehandleseq)
+{
+ convert_dds_to_corba_sequence (ddsinstancehandleseqseq, instancehandleseq);
+}
+
+inline void
+operator<<= (::DDS_InstanceHandleSeq &ddsinstancehandleseqseq, const ::DDS::InstanceHandleSeq & instancehandleseq)
+{
+ ddsinstancehandleseqseq.length (instancehandleseq.length ());
+ for (::DDS::InstanceHandleSeq::size_type index = 0; index < instancehandleseq.length (); index++)
+ {
+ ddsinstancehandleseqseq[index] <<= instancehandleseq[index];
+ }
+}
+
+inline void
+operator>>= (const ::DDS_InstanceHandleSeq &instancehandle, ::DDS::InstanceHandleSeq & ddsinstancehandleseqseq)
+{
+ ddsinstancehandleseqseq.length (instancehandle.length ());
+ for (::DDS_Long index = 0; index < instancehandle.length (); index++)
+ {
+ ddsinstancehandleseqseq[index] <<= instancehandle[index];
+ }
+}
+
+inline void
+operator>>= (const ::DDS::InstanceHandleSeq &instancehandle, ::DDS_InstanceHandleSeq & ddsinstancehandleseqseq)
+{
+ ddsinstancehandleseqseq.length (instancehandle.length ());
+ for (::DDS::InstanceHandleSeq::size_type index = 0; index < instancehandle.length (); index++)
+ {
+ ddsinstancehandleseqseq[index] <<= instancehandle[index];
+ }
+}
+
+#endif /* CIAO_RTI_INSTANCEHANDLESEQ_H */
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/InstanceHandle_t.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/InstanceHandle_t.h
new file mode 100644
index 00000000000..f92e4722994
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/InstanceHandle_t.h
@@ -0,0 +1,41 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef CIAO_RTI_INSTANCEHANDLE_T_H
+#define CIAO_RTI_INSTANCEHANDLE_T_H
+
+inline void
+operator<<= (::DDS::InstanceHandle_t &ddsinstancehandle, const ::DDS_InstanceHandle_t & instancehandle)
+{
+ ACE_OS::memcpy (ddsinstancehandle.value, instancehandle.keyHash.value, MIG_RTPS_KEY_HASH_MAX_LENGTH);
+ ddsinstancehandle.length = instancehandle.keyHash.length;
+}
+
+inline void
+operator<<= (::DDS_InstanceHandle_t &ddsinstancehandle, const ::DDS::InstanceHandle_t & instancehandle)
+{
+ ACE_OS::memcpy (ddsinstancehandle.keyHash.value, instancehandle.value, MIG_RTPS_KEY_HASH_MAX_LENGTH);
+ ddsinstancehandle.keyHash.length = instancehandle.length;
+}
+
+inline void
+operator>>= (const ::DDS_InstanceHandle_t &instancehandle, ::DDS::InstanceHandle_t & ddsinstancehandle)
+{
+ ACE_OS::memcpy (ddsinstancehandle.value, instancehandle.keyHash.value, MIG_RTPS_KEY_HASH_MAX_LENGTH);
+ ddsinstancehandle.length = instancehandle.keyHash.length;
+}
+
+inline void
+operator>>= (const ::DDS::InstanceHandle_t &instancehandle, ::DDS_InstanceHandle_t & ddsinstancehandle)
+{
+ ACE_OS::memcpy (ddsinstancehandle.keyHash.value, instancehandle.value, MIG_RTPS_KEY_HASH_MAX_LENGTH);
+ ddsinstancehandle.keyHash.length = instancehandle.length;
+}
+
+#endif /* CIAO_RTI_INSTANCEHANDLE_T_H */
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/ListenerControl.cpp b/modules/CIAO/connectors/dds4ccm/impl/ndds/ListenerControl.cpp
new file mode 100644
index 00000000000..361e9442880
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/ListenerControl.cpp
@@ -0,0 +1,54 @@
+// -*- 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:1422
+
+#include "ListenerControl.h"
+
+// Implementation skeleton constructor
+CCM_DDS_ListenerControl_i::CCM_DDS_ListenerControl_i (ACE_Atomic_Op <TAO_SYNCH_MUTEX, bool> &flag)
+ : flag_ (flag)
+{
+}
+
+// Implementation skeleton destructor
+CCM_DDS_ListenerControl_i::~CCM_DDS_ListenerControl_i (void)
+{
+}
+
+::CORBA::Boolean CCM_DDS_ListenerControl_i::enabled (void)
+{
+ return flag_.value ();
+}
+
+void CCM_DDS_ListenerControl_i::enabled (::CORBA::Boolean enabled)
+{
+ this->flag_ = enabled;
+}
+
+
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/ListenerControl.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/ListenerControl.h
new file mode 100644
index 00000000000..cf05037bee9
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/ListenerControl.h
@@ -0,0 +1,63 @@
+// -*- 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:1364
+
+#ifndef DDS4CCM_LISTNERCONTROLI_H_
+#define DDS4CCM_LISTNERCONTROLI_H_
+
+#include "dds4ccm/impl/ndds/dds4ccm_ndds_impl_export.h"
+#include "dds4ccm/idl/dds4ccm_ListenerControlEC.h"
+#include "tao/LocalObject.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+class DDS4CCM_NDDS_IMPL_Export CCM_DDS_ListenerControl_i
+ : public virtual CCM_DDS::CCM_ListenerControl,
+ public virtual ::CORBA::LocalObject
+{
+public:
+ // Constructor
+ CCM_DDS_ListenerControl_i (ACE_Atomic_Op <TAO_SYNCH_MUTEX, bool> &flag);
+
+ // Destructor
+ virtual ~CCM_DDS_ListenerControl_i (void);
+
+ virtual ::CORBA::Boolean enabled (void);
+
+ virtual void enabled (::CORBA::Boolean enabled);
+
+private:
+ ACE_Atomic_Op <TAO_SYNCH_MUTEX, bool> &flag_;
+};
+
+
+#endif /* DDS4CCM_LISTNERCONTROLI_H_ */
+
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/LivelinessChangedStatus.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/LivelinessChangedStatus.h
new file mode 100644
index 00000000000..4215f1bd160
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/LivelinessChangedStatus.h
@@ -0,0 +1,55 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef CIAO_RTI_LIVELINESSCHANGEDSTATUS_H
+#define CIAO_RTI_LIVELINESSCHANGEDSTATUS_H
+
+#include "InstanceHandle_t.h"
+
+inline void
+operator<<= (::DDS::LivelinessChangedStatus &ddsstatus, const ::DDS_LivelinessChangedStatus & status)
+{
+ ddsstatus.alive_count = status.alive_count;
+ ddsstatus.not_alive_count = status.not_alive_count;
+ ddsstatus.alive_count_change = status.alive_count_change;
+ ddsstatus.not_alive_count_change = status.not_alive_count_change;
+ ddsstatus.last_publication_handle <<= status.last_publication_handle;
+}
+
+inline void
+operator<<= (::DDS_LivelinessChangedStatus &ddsstatus, const ::DDS::LivelinessChangedStatus & status)
+{
+ ddsstatus.alive_count = status.alive_count;
+ ddsstatus.not_alive_count = status.not_alive_count;
+ ddsstatus.alive_count_change = status.alive_count_change;
+ ddsstatus.not_alive_count_change = status.not_alive_count_change;
+ ddsstatus.last_publication_handle <<= status.last_publication_handle;
+}
+
+inline void
+operator>>= (const ::DDS_LivelinessChangedStatus &status, ::DDS::LivelinessChangedStatus & ddsstatus)
+{
+ ddsstatus.alive_count = status.alive_count;
+ ddsstatus.not_alive_count = status.not_alive_count;
+ ddsstatus.alive_count_change = status.alive_count_change;
+ ddsstatus.not_alive_count_change = status.not_alive_count_change;
+ ddsstatus.last_publication_handle <<= status.last_publication_handle;
+}
+
+inline void
+operator>>= (const ::DDS::LivelinessChangedStatus &status, ::DDS_LivelinessChangedStatus & ddsstatus)
+{
+ ddsstatus.alive_count = status.alive_count;
+ ddsstatus.not_alive_count = status.not_alive_count;
+ ddsstatus.alive_count_change = status.alive_count_change;
+ ddsstatus.not_alive_count_change = status.not_alive_count_change;
+ ddsstatus.last_publication_handle <<= status.last_publication_handle;
+}
+
+#endif /* CIAO_RTI_LIVELINESSCHANGEDSTATUS_H */
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/LivelinessLostStatus.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/LivelinessLostStatus.h
new file mode 100644
index 00000000000..926e39d8f08
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/LivelinessLostStatus.h
@@ -0,0 +1,41 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef CIAO_RTI_LIVELINESSLOSTSTATUS_H
+#define CIAO_RTI_LIVELINESSLOSTSTATUS_H
+
+inline void
+operator<<= (::DDS::LivelinessLostStatus &ddsstatus, const ::DDS_LivelinessLostStatus & status)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+}
+
+inline void
+operator<<= (::DDS_LivelinessLostStatus &ddsstatus, const ::DDS::LivelinessLostStatus & status)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+}
+
+inline void
+operator>>= (const ::DDS_LivelinessLostStatus &status, ::DDS::LivelinessLostStatus & ddsstatus)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+}
+
+inline void
+operator>>= (const ::DDS::LivelinessLostStatus &status, ::DDS_LivelinessLostStatus & ddsstatus)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+}
+
+#endif /* CIAO_RTI_LIVELINESSLOSTSTATUS_H */
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/NDDS_Traits.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/NDDS_Traits.h
new file mode 100644
index 00000000000..d1b55e9e010
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/NDDS_Traits.h
@@ -0,0 +1,51 @@
+/**
+ * @file NDDS_Traits.h
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ *
+ * $Id$
+ *
+ * Traits necessary for various bits and pieces of the DDS4CCM infrastructure.
+ */
+
+#ifndef NDDS_TRAITS_H
+#define NDDS_TRAITS_H
+
+#include "ndds/ndds_cpp.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ /**
+ * @struct Type_Traits
+ * @brief Convenience traits struct.
+ *
+ * This is a convenience struct that is used by most of the
+ * DDS4CCM infrastructure; it is not necessary to use this exact
+ * struct, so long as all of the needed fields are filled in.
+ */
+ template <typename VALUE_TYPE,
+ typename DDS_SEQ_TYPE,
+ typename TYPE_SUPPORT,
+ typename DATA_WRITER,
+ typename DATA_READER>
+ struct Type_Traits
+ {
+ typedef VALUE_TYPE value_type;
+ typedef DDS_SEQ_TYPE dds_seq_type;
+ typedef TYPE_SUPPORT type_support;
+ typedef DATA_WRITER data_writer;
+ typedef DATA_READER data_reader;
+ };
+
+ typedef Type_Traits < const char *,
+ DDS_StringSeq,
+ DDSStringTypeSupport,
+ DDSStringDataWriter,
+ DDSStringDataReader > String_Traits;
+ }
+ }
+}
+#endif
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/OfferedDeadlineMissedStatus.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/OfferedDeadlineMissedStatus.h
new file mode 100644
index 00000000000..255b22b4c71
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/OfferedDeadlineMissedStatus.h
@@ -0,0 +1,47 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef CIAO_RTI_OFFEREDDEADLINEMISSEDSTATUS_H
+#define CIAO_RTI_OFFEREDDEADLINEMISSEDSTATUS_H
+
+#include "InstanceHandle_t.h"
+
+inline void
+operator<<= (::DDS::OfferedDeadlineMissedStatus &ddsstatus, const ::DDS_OfferedDeadlineMissedStatus & status)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+ ddsstatus.last_instance_handle <<= status.last_instance_handle;
+}
+
+inline void
+operator<<= (::DDS_OfferedDeadlineMissedStatus &ddsstatus, const ::DDS::OfferedDeadlineMissedStatus & status)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+ ddsstatus.last_instance_handle <<= status.last_instance_handle;
+}
+
+inline void
+operator>>= (const ::DDS_OfferedDeadlineMissedStatus &status, ::DDS::OfferedDeadlineMissedStatus & ddsstatus)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+ ddsstatus.last_instance_handle <<= status.last_instance_handle;
+}
+
+inline void
+operator>>= (const ::DDS::OfferedDeadlineMissedStatus &status, ::DDS_OfferedDeadlineMissedStatus & ddsstatus)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+ ddsstatus.last_instance_handle <<= status.last_instance_handle;
+}
+
+#endif /* CIAO_RTI_OFFEREDDEADLINEMISSEDSTATUS_H */
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/OfferedIncompatibleQosStatus.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/OfferedIncompatibleQosStatus.h
new file mode 100644
index 00000000000..3021d2ff935
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/OfferedIncompatibleQosStatus.h
@@ -0,0 +1,51 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef CIAO_RTI_OFFEREDINCOMPATIBLEQOSSTATUS_H
+#define CIAO_RTI_OFFEREDINCOMPATIBLEQOSSTATUS_H
+
+#include "QosPolicyCountSeq.h"
+
+inline void
+operator<<= (::DDS::OfferedIncompatibleQosStatus &ddsstatus, const ::DDS_OfferedIncompatibleQosStatus & status)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+ ddsstatus.last_policy_id = status.last_policy_id;
+ ddsstatus.policies <<= status.policies;
+}
+
+inline void
+operator<<= (::DDS_OfferedIncompatibleQosStatus &ddsstatus, const ::DDS::OfferedIncompatibleQosStatus & status)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+ ddsstatus.last_policy_id = static_cast <DDS_QosPolicyId_t>(status.last_policy_id);
+ ddsstatus.policies <<= status.policies;
+}
+
+inline void
+operator>>= (const ::DDS_OfferedIncompatibleQosStatus &status, ::DDS::OfferedIncompatibleQosStatus & ddsstatus)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+ ddsstatus.last_policy_id = status.last_policy_id;
+ ddsstatus.policies <<= status.policies;
+}
+
+inline void
+operator>>= (const ::DDS::OfferedIncompatibleQosStatus &status, ::DDS_OfferedIncompatibleQosStatus & ddsstatus)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+ ddsstatus.last_policy_id = static_cast <DDS_QosPolicyId_t>(status.last_policy_id);
+ ddsstatus.policies <<= status.policies;
+}
+
+#endif /* CIAO_RTI_OFFEREDINCOMPATIBLEQOSSTATUS_H */
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/PublicationMatchedStatus.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/PublicationMatchedStatus.h
new file mode 100644
index 00000000000..fa967fcbee8
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/PublicationMatchedStatus.h
@@ -0,0 +1,55 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef CIAO_RTI_PUBLICATIONMATCHEDSTATUS_H
+#define CIAO_RTI_PUBLICATIONMATCHEDSTATUS_H
+
+#include "InstanceHandle_t.h"
+
+inline void
+operator<<= (::DDS::PublicationMatchedStatus &ddsstatus, const ::DDS_PublicationMatchedStatus & status)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+ ddsstatus.current_count = status.current_count;
+ ddsstatus.current_count_change = status.current_count_change;
+ ddsstatus.last_subscription_handle <<= status.last_subscription_handle;
+}
+
+inline void
+operator<<= (::DDS_PublicationMatchedStatus &ddsstatus, const ::DDS::PublicationMatchedStatus & status)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+ ddsstatus.current_count = status.current_count;
+ ddsstatus.current_count_change = status.current_count_change;
+ ddsstatus.last_subscription_handle <<= status.last_subscription_handle;
+}
+
+inline void
+operator>>= (const ::DDS_PublicationMatchedStatus &status, ::DDS::PublicationMatchedStatus & ddsstatus)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+ ddsstatus.current_count = status.current_count;
+ ddsstatus.current_count_change = status.current_count_change;
+ ddsstatus.last_subscription_handle <<= status.last_subscription_handle;
+}
+
+inline void
+operator>>= (const ::DDS::PublicationMatchedStatus &status, ::DDS_PublicationMatchedStatus & ddsstatus)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+ ddsstatus.current_count = status.current_count;
+ ddsstatus.current_count_change = status.current_count_change;
+ ddsstatus.last_subscription_handle <<= status.last_subscription_handle;
+}
+
+#endif /* CIAO_RTI_PUBLICATIONMATCHEDSTATUS_H */
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/Publisher.cpp b/modules/CIAO/connectors/dds4ccm/impl/ndds/Publisher.cpp
new file mode 100644
index 00000000000..eac22517a2f
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/Publisher.cpp
@@ -0,0 +1,247 @@
+// $Id$
+
+#include "Publisher.h"
+#include "PublisherListener.h"
+#include "Topic.h"
+#include "DataWriter.h"
+#include "StatusCondition.h"
+#include "Utils.h"
+#include "Duration_t.h"
+#include "InstanceHandle_t.h"
+
+#include "dds4ccm/idl/dds4ccm_BaseC.h"
+
+#include "ciao/Logger/Log_Macros.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ // Implementation skeleton constructor
+ RTI_Publisher_i::RTI_Publisher_i (DDSPublisher *p)
+ : impl_ (p)
+ {
+ CIAO_TRACE ("RTI_Publisher_i::RTI_Publisher_i");
+ }
+
+ // Implementation skeleton destructor
+ RTI_Publisher_i::~RTI_Publisher_i (void)
+ {
+ CIAO_TRACE ("RTI_Publisher_i::~RTI_Publisher_i");
+ }
+
+ ::DDS::DataWriter_ptr
+ RTI_Publisher_i::create_datawriter (::DDS::Topic_ptr a_topic,
+ const ::DDS::DataWriterQos & /*qos*/,
+ ::DDS::DataWriterListener_ptr /*a_listener*/,
+ ::DDS::StatusMask mask)
+ {
+ CIAO_TRACE ("RTI_Publisher_i::create_datawriter");
+
+ RTI_Topic_i * topic = dynamic_cast < RTI_Topic_i * > (a_topic);
+
+ if (!topic)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "RTI_Publisher_i::create_datawriter - "
+ "Error: Unable to cast provided topic to its servant.\n"));
+ throw CCM_DDS::InternalError (::DDS::RETCODE_BAD_PARAMETER, 0);
+ }
+
+ DDSTopic *rti_topic = topic->get_topic ();
+
+ DDSDataWriter *rti_dw = this->impl_->create_datawriter (rti_topic,
+ DDS_DATAWRITER_QOS_DEFAULT,
+ 0,
+ mask);
+
+ if (rti_dw == 0)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "RTI_Publisher_i::create_datawriter - "
+ "Error: RTI Topic returned a nil datawriter.\n"));
+ throw CCM_DDS::InternalError (::DDS::RETCODE_ERROR, 0);
+ }
+
+ ::DDS::DataWriter_var retval = new RTI_DataWriter_i (rti_dw);
+
+ return retval._retn ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_Publisher_i::delete_datawriter (::DDS::DataWriter_ptr a_datawriter)
+ {
+ CIAO_TRACE ("RTI_Publisher_i::delete_datawriter");
+
+ RTI_DataWriter_i *top = dynamic_cast< RTI_DataWriter_i *> (a_datawriter);
+
+ if (top == 0)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "RTI_Publisher_i::delete_datawriter - "
+ "Unable to cast provided object reference to servant.\n"));
+ return ::DDS::RETCODE_BAD_PARAMETER;
+ }
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO "RTI_Publisher_i::delete_datawriter - "
+ "Successfully casted provided object reference to servant.\n"));
+
+ DDS_ReturnCode_t retval = this->impl_->delete_datawriter (top->get_datawriter ());
+
+ if (retval != DDS_RETCODE_OK)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "RTI_Publisher_i::delete_datawriter - "
+ "Error: RTI delete_datawriter returned non-ok error code %c\n",
+ translate_retcode (retval)));
+ }
+ else CIAO_DEBUG ((LM_INFO, CLINFO "RTI_Publisher_i::delete_datawriter - "
+ "Provided datawriter successfully deleted\n"));
+
+ return retval;
+ }
+
+ ::DDS::DataWriter_ptr
+ RTI_Publisher_i::lookup_datawriter (const char * impl_name)
+ {
+ DDSDataWriter* dw = this->impl_->lookup_datawriter (impl_name);
+ ::DDS::DataWriter_var retval = new RTI_DataWriter_i (dw);
+ return retval._retn ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_Publisher_i::delete_contained_entities (void)
+ {
+ return this->impl_->delete_contained_entities ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_Publisher_i::set_qos (const ::DDS::PublisherQos & /*qos*/)
+ {
+ CIAO_TRACE ("RTI_Publisher_i::set_qos");
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_Publisher_i::get_qos (::DDS::PublisherQos & /* qos*/)
+ {
+ CIAO_TRACE ("RTI_Publisher_i::get_qos");
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_Publisher_i::set_listener (::DDS::PublisherListener_ptr a_listener,
+ ::DDS::StatusMask mask)
+ {
+ RTI_PublisherListener_i* rti_impl_list = new RTI_PublisherListener_i (a_listener);
+ return this->impl_->set_listener (rti_impl_list, mask);
+ }
+
+ ::DDS::PublisherListener_ptr
+ RTI_Publisher_i::get_listener (void)
+ {
+ // DDSPublisherListener* pl = this->impl_->get_listener ();
+// ::DDS::PublisherListener_var retval = new RTI_PublisherListener_i (pl);
+ //return retval._retn ();
+ throw CORBA::NO_IMPLEMENT ();
+
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_Publisher_i::suspend_publications (void)
+ {
+ return this->impl_->suspend_publications ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_Publisher_i::resume_publications (void)
+ {
+ return this->impl_->resume_publications ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_Publisher_i::begin_coherent_changes (void)
+ {
+ return this->impl_->begin_coherent_changes ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_Publisher_i::end_coherent_changes (void)
+ {
+ return this->impl_->end_coherent_changes ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_Publisher_i::wait_for_acknowledgments (const ::DDS::Duration_t & max_wait)
+ {
+ DDS_Duration_t rti_dds_duration;
+ rti_dds_duration <<= max_wait;
+ return this->impl_->wait_for_acknowledgments (rti_dds_duration);
+ }
+
+ ::DDS::DomainParticipant_ptr
+ RTI_Publisher_i::get_participant (void)
+ {
+ DDSDomainParticipant* p = this->impl_->get_participant ();
+ ::DDS::DomainParticipant_var retval = new RTI_DomainParticipant_i (p);
+ return retval._retn ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_Publisher_i::set_default_datawriter_qos (const ::DDS::DataWriterQos & /*qos*/)
+ {
+ CIAO_TRACE ("RTI_Publisher_i::set_default_datawriter_qos");
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_Publisher_i::get_default_datawriter_qos (::DDS::DataWriterQos & /*qos*/)
+ {
+ CIAO_TRACE ("RTI_Publisher_i::get_default_datawriter_qos");
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_Publisher_i::copy_from_topic_qos (::DDS::DataWriterQos & /*a_dataimpl_qos*/,
+ const ::DDS::TopicQos & /*a_impl_qos*/)
+ {
+ CIAO_TRACE ("RTI_Publisher_i::copy_from_topic_qos");
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_Publisher_i::enable (void)
+ {
+ return this->impl_->enable ();
+ }
+
+ ::DDS::StatusCondition_ptr
+ RTI_Publisher_i::get_statuscondition (void)
+ {
+ DDSStatusCondition* sc = this->impl_->get_statuscondition ();
+ ::DDS::StatusCondition_var retval = new RTI_StatusCondition_i (sc);
+ return retval._retn ();
+ }
+
+ ::DDS::StatusMask
+ RTI_Publisher_i::get_status_changes (void)
+ {
+ return this->impl_->get_status_changes ();
+ }
+
+ ::DDS::InstanceHandle_t
+ RTI_Publisher_i::get_instance_handle (void)
+ {
+ ::DDS_InstanceHandle_t const rtihandle = this->impl_->get_instance_handle ();
+ ::DDS::InstanceHandle_t handle;
+ handle <<= rtihandle;
+ return handle;
+ }
+
+ DDSPublisher *
+ RTI_Publisher_i::get_publisher (void)
+ {
+ return this->impl_;
+ }
+ }
+ }
+}
+
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/Publisher.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/Publisher.h
new file mode 100644
index 00000000000..f1c4e3584a1
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/Publisher.h
@@ -0,0 +1,116 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef CIAO_RTI_PUBLISHER_H
+#define CIAO_RTI_PUBLISHER_H
+
+#include "tao/LocalObject.h"
+
+#include "dds4ccm/idl/dds_rtf2_dcpsEC.h"
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "dds4ccm/impl/ndds/dds4ccm_ndds_impl_export.h"
+
+#include "ndds/ndds_cpp.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ class DDS4CCM_NDDS_IMPL_Export RTI_Publisher_i :
+ public virtual ::DDS::CCM_Publisher,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ // Constructor
+ RTI_Publisher_i (DDSPublisher *p);
+
+ // Destructor
+ virtual ~RTI_Publisher_i (void);
+
+ virtual
+ ::DDS::DataWriter_ptr create_datawriter (::DDS::Topic_ptr a_topic,
+ const ::DDS::DataWriterQos & qos,
+ ::DDS::DataWriterListener_ptr a_listener,
+ ::DDS::StatusMask mask);
+
+ virtual
+ ::DDS::ReturnCode_t delete_datawriter (::DDS::DataWriter_ptr a_datawriter);
+
+ virtual
+ ::DDS::DataWriter_ptr lookup_datawriter (const char * impl_name);
+
+ virtual
+ ::DDS::ReturnCode_t delete_contained_entities (void);
+
+ virtual
+ ::DDS::ReturnCode_t set_qos (const ::DDS::PublisherQos & qos);
+
+ virtual
+ ::DDS::ReturnCode_t get_qos (::DDS::PublisherQos & qos);
+
+ virtual
+ ::DDS::ReturnCode_t set_listener (::DDS::PublisherListener_ptr a_listener,
+ ::DDS::StatusMask mask);
+
+ virtual
+ ::DDS::PublisherListener_ptr get_listener (void);
+
+ virtual
+ ::DDS::ReturnCode_t suspend_publications (void);
+
+ virtual
+ ::DDS::ReturnCode_t resume_publications (void);
+
+ virtual
+ ::DDS::ReturnCode_t begin_coherent_changes (void);
+
+ virtual
+ ::DDS::ReturnCode_t end_coherent_changes (void);
+
+ virtual
+ ::DDS::ReturnCode_t wait_for_acknowledgments (const ::DDS::Duration_t & max_wait);
+
+ virtual
+ ::DDS::DomainParticipant_ptr get_participant (void);
+
+ virtual
+ ::DDS::ReturnCode_t set_default_datawriter_qos (const ::DDS::DataWriterQos & qos);
+
+ virtual
+ ::DDS::ReturnCode_t get_default_datawriter_qos (::DDS::DataWriterQos & qos);
+
+ virtual
+ ::DDS::ReturnCode_t copy_from_topic_qos (::DDS::DataWriterQos & a_dataimpl_qos,
+ const ::DDS::TopicQos & a_impl_qos);
+
+ virtual
+ ::DDS::ReturnCode_t enable (void);
+
+ virtual
+ ::DDS::StatusCondition_ptr get_statuscondition (void);
+
+ virtual
+ ::DDS::StatusMask get_status_changes (void);
+
+ virtual
+ ::DDS::InstanceHandle_t get_instance_handle (void);
+
+ DDSPublisher * get_publisher (void);
+ private:
+ DDSPublisher *impl_;
+ };
+ }
+ }
+}
+
+#endif
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/PublisherListener.cpp b/modules/CIAO/connectors/dds4ccm/impl/ndds/PublisherListener.cpp
new file mode 100644
index 00000000000..10e9ce5980c
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/PublisherListener.cpp
@@ -0,0 +1,82 @@
+// $Id$
+
+#include "PublisherListener.h"
+#include "Publisher.h"
+#include "DataWriter.h"
+#include "PublicationMatchedStatus.h"
+#include "LivelinessLostStatus.h"
+#include "OfferedIncompatibleQosStatus.h"
+#include "OfferedDeadlineMissedStatus.h"
+
+#include "dds4ccm/idl/dds4ccm_BaseC.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ // Implementation skeleton constructor
+ RTI_PublisherListener_i::RTI_PublisherListener_i ( ::DDS::PublisherListener_ptr p)
+ : impl_ (::DDS::PublisherListener::_duplicate (p))
+ {
+ }
+
+ // Implementation skeleton destructor
+ RTI_PublisherListener_i::~RTI_PublisherListener_i (void)
+ {
+ }
+
+ void
+ RTI_PublisherListener_i::on_offered_deadline_missed (
+ ::DDSDataWriter* writer,
+ const ::DDS_OfferedDeadlineMissedStatus & status)
+ {
+ ::DDS::OfferedDeadlineMissedStatus ddsstatus;
+ ddsstatus <<= status;
+ ::DDS::DataWriter_var dds_writer = new RTI_DataWriter_i (writer);
+ this->impl_->on_offered_deadline_missed (dds_writer.in (), ddsstatus);
+ }
+
+ void
+ RTI_PublisherListener_i::on_offered_incompatible_qos (
+ ::DDSDataWriter* writer,
+ const ::DDS_OfferedIncompatibleQosStatus & status)
+ {
+ ::DDS::OfferedIncompatibleQosStatus ddsstatus;
+ ddsstatus <<= status;
+ ::DDS::DataWriter_var dds_writer = new RTI_DataWriter_i (writer);
+ this->impl_->on_offered_incompatible_qos (dds_writer.in (), ddsstatus);
+ }
+
+ void
+ RTI_PublisherListener_i::on_liveliness_lost (
+ ::DDSDataWriter* writer,
+ const ::DDS_LivelinessLostStatus & status)
+ {
+ ::DDS::LivelinessLostStatus ddsstatus;
+ ddsstatus <<= status;
+ ::DDS::DataWriter_var dds_writer = new RTI_DataWriter_i (writer);
+ this->impl_->on_liveliness_lost (dds_writer.in (), ddsstatus);
+ }
+
+ void
+ RTI_PublisherListener_i::on_publication_matched (
+ ::DDSDataWriter* writer,
+ const ::DDS_PublicationMatchedStatus & status)
+ {
+ ::DDS::PublicationMatchedStatus ddsstatus;
+ ddsstatus <<= status;
+ ::DDS::DataWriter_var dds_writer = new RTI_DataWriter_i (writer);
+ this->impl_->on_publication_matched (dds_writer.in (), ddsstatus);
+ }
+
+ ::DDS::PublisherListener_ptr
+ RTI_PublisherListener_i::get_publisher_listener (void)
+ {
+ return ::DDS::PublisherListener::_duplicate (this->impl_.in ());
+ }
+ }
+ }
+}
+
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/PublisherListener.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/PublisherListener.h
new file mode 100644
index 00000000000..edad2f0a620
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/PublisherListener.h
@@ -0,0 +1,67 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef CIAO_RTI_PUBLISHERLISTENER_H
+#define CIAO_RTI_PUBLISHERLISTENER_H
+
+#include "tao/LocalObject.h"
+
+#include "dds4ccm/idl/dds_rtf2_dcpsEC.h"
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "dds4ccm/impl/ndds/dds4ccm_ndds_impl_export.h"
+
+#include "ndds/ndds_cpp.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ class DDS4CCM_NDDS_IMPL_Export RTI_PublisherListener_i :
+ public virtual ::DDSPublisherListener
+ {
+ public:
+ // Constructor
+ RTI_PublisherListener_i (::DDS::PublisherListener_ptr p);
+
+ // Destructor
+ virtual ~RTI_PublisherListener_i (void);
+
+ virtual void
+ on_offered_deadline_missed (
+ ::DDSDataWriter *writer,
+ const ::DDS_OfferedDeadlineMissedStatus & status);
+
+ virtual void
+ on_offered_incompatible_qos (
+ ::DDSDataWriter *writer,
+ const ::DDS_OfferedIncompatibleQosStatus & status);
+
+ virtual void
+ on_liveliness_lost (
+ ::DDSDataWriter* writer,
+ const ::DDS_LivelinessLostStatus & status);
+
+ virtual void
+ on_publication_matched (
+ ::DDSDataWriter *writer,
+ const ::DDS_PublicationMatchedStatus & status);
+
+ ::DDS::PublisherListener_ptr get_publisher_listener (void);
+ private:
+ ::DDS::PublisherListener_var impl_;
+ };
+ }
+ }
+}
+
+#endif
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/QosPolicyCountSeq.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/QosPolicyCountSeq.h
new file mode 100644
index 00000000000..a54eb46faf6
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/QosPolicyCountSeq.h
@@ -0,0 +1,34 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef CIAO_RTI_QOSPOLICYCOUNTSEQ_H
+#define CIAO_RTI_QOSPOLICYCOUNTSEQ_H
+
+inline void
+operator<<= (::DDS::QosPolicyCountSeq &/*ddsstatus*/, const ::DDS_QosPolicyCountSeq & /*status*/)
+{
+ // todo
+}
+
+inline void
+operator<<= (::DDS_QosPolicyCountSeq &/*ddsstatus*/, const ::DDS::QosPolicyCountSeq & /*status*/)
+{
+}
+
+inline void
+operator>>= (const ::DDS_QosPolicyCountSeq &/*status*/, ::DDS::QosPolicyCountSeq & /*ddsstatus*/)
+{
+}
+
+inline void
+operator>>= (const ::DDS::QosPolicyCountSeq &/*status*/, ::DDS_QosPolicyCountSeq & /*ddsstatus*/)
+{
+}
+
+#endif /* CIAO_RTI_QOSPOLICYCOUNTSEQ_H */
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/QueryCondition.cpp b/modules/CIAO/connectors/dds4ccm/impl/ndds/QueryCondition.cpp
new file mode 100644
index 00000000000..ddd28d90346
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/QueryCondition.cpp
@@ -0,0 +1,88 @@
+// $Id$
+
+#include "QueryCondition.h"
+#include "Subscriber.h"
+#include "DataReader.h"
+
+#include "dds4ccm/idl/dds4ccm_BaseC.h"
+
+#include "ciao/Logger/Log_Macros.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ // Implementation skeleton constructor
+ RTI_QueryCondition_i::RTI_QueryCondition_i ( ::DDSQueryCondition *sc)
+ : impl_ (sc)
+ {
+ }
+
+ // Implementation skeleton destructor
+ RTI_QueryCondition_i::~RTI_QueryCondition_i (void)
+ {
+ }
+
+ ::CORBA::Boolean
+ RTI_QueryCondition_i::get_trigger_value (void)
+ {
+ return this->impl_->get_trigger_value ();
+ }
+
+ ::DDS::SampleStateMask
+ RTI_QueryCondition_i::get_sample_state_mask (void)
+ {
+ return this->impl_->get_sample_state_mask ();
+ }
+
+ ::DDS::ViewStateMask
+ RTI_QueryCondition_i::get_view_state_mask (void)
+ {
+ return this->impl_->get_view_state_mask ();
+ }
+
+ ::DDS::InstanceStateMask
+ RTI_QueryCondition_i::get_instance_state_mask (void)
+ {
+ return this->impl_->get_instance_state_mask ();
+ }
+
+ ::DDS::DataReader_ptr
+ RTI_QueryCondition_i::get_datareader (void)
+ {
+ ::DDSDataReader* reader = this->impl_->get_datareader ();
+ ::DDS::DataReader_var dds_reader = new RTI_DataReader_i (reader);
+ return dds_reader._retn ();
+ }
+
+ char *
+ RTI_QueryCondition_i::get_query_expression (void)
+ {
+ return ::CORBA::string_dup (this->impl_->get_query_expression ());
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_QueryCondition_i::get_query_parameters (
+ ::DDS::StringSeq & /*query_parameters*/)
+ {
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_QueryCondition_i::set_query_parameters (
+ const ::DDS::StringSeq & /*query_parameters*/)
+ {
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ DDSQueryCondition *
+ RTI_QueryCondition_i::get_query_condition (void)
+ {
+ return this->impl_;
+ }
+ }
+ }
+}
+
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/QueryCondition.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/QueryCondition.h
new file mode 100644
index 00000000000..62e41e5623c
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/QueryCondition.h
@@ -0,0 +1,74 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef CIAO_RTI_QUERYCONDITION_H
+#define CIAO_RTI_QUERYCONDITION_H
+
+#include "tao/LocalObject.h"
+
+#include "dds4ccm/idl/dds_rtf2_dcpsEC.h"
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "dds4ccm/impl/ndds/dds4ccm_ndds_impl_export.h"
+
+#include "ndds/ndds_cpp.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ class DDS4CCM_NDDS_IMPL_Export RTI_QueryCondition_i :
+ public virtual ::DDS::CCM_QueryCondition,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ // Constructor
+ RTI_QueryCondition_i (DDSQueryCondition *sc);
+
+ // Destructor
+ virtual ~RTI_QueryCondition_i (void);
+
+ virtual ::CORBA::Boolean
+ get_trigger_value (void);
+
+ virtual ::DDS::SampleStateMask
+ get_sample_state_mask (void);
+
+ virtual ::DDS::ViewStateMask
+ get_view_state_mask (void);
+
+ virtual ::DDS::InstanceStateMask
+ get_instance_state_mask (void);
+
+ virtual ::DDS::DataReader_ptr
+ get_datareader (void);
+
+ virtual char *
+ get_query_expression (void);
+
+ virtual ::DDS::ReturnCode_t
+ get_query_parameters (
+ ::DDS::StringSeq & query_parameters);
+
+ virtual ::DDS::ReturnCode_t
+ set_query_parameters (
+ const ::DDS::StringSeq & query_parameters);
+
+ DDSQueryCondition * get_query_condition (void);
+ private:
+ DDSQueryCondition *impl_;
+ };
+ }
+ }
+}
+
+#endif /* CIAO_RTI_QUERYCONDITION_H */
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/ReadCondition.cpp b/modules/CIAO/connectors/dds4ccm/impl/ndds/ReadCondition.cpp
new file mode 100644
index 00000000000..55f8ae929ea
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/ReadCondition.cpp
@@ -0,0 +1,63 @@
+// $Id$
+
+#include "ReadCondition.h"
+#include "DataReader.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ // Implementation skeleton constructor
+ RTI_ReadCondition_i::RTI_ReadCondition_i (DDSReadCondition *rc)
+ : impl_ (rc)
+ {
+ }
+
+ // Implementation skeleton destructor
+ RTI_ReadCondition_i::~RTI_ReadCondition_i (void)
+ {
+ }
+
+ ::CORBA::Boolean
+ RTI_ReadCondition_i::get_trigger_value (void)
+ {
+ return this->impl_->get_trigger_value ();
+ }
+
+ ::DDS::SampleStateMask
+ RTI_ReadCondition_i::get_sample_state_mask (void)
+ {
+ return this->impl_->get_sample_state_mask ();
+ }
+
+ ::DDS::ViewStateMask
+ RTI_ReadCondition_i::get_view_state_mask (void)
+ {
+ return this->impl_->get_view_state_mask ();
+ }
+
+ ::DDS::InstanceStateMask
+ RTI_ReadCondition_i::get_instance_state_mask (void)
+ {
+ return this->impl_->get_instance_state_mask ();
+ }
+
+ ::DDS::DataReader_ptr
+ RTI_ReadCondition_i::get_datareader (void)
+ {
+ DDSDataReader* rd = this->impl_->get_datareader ();
+ ::DDS::DataReader_var retval = new RTI_DataReader_i (rd);
+ return retval._retn ();
+ }
+
+ DDSReadCondition *
+ RTI_ReadCondition_i::get_readcondition (void)
+ {
+ return this->impl_;
+ }
+ }
+ }
+}
+
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/ReadCondition.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/ReadCondition.h
new file mode 100644
index 00000000000..71c7847311c
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/ReadCondition.h
@@ -0,0 +1,63 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef CIAO_RTI_READCONDITION_H
+#define CIAO_RTI_READCONDITION_H
+
+#include "tao/LocalObject.h"
+
+#include "dds4ccm/idl/dds_rtf2_dcpsEC.h"
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "dds4ccm/impl/ndds/dds4ccm_ndds_impl_export.h"
+
+#include "ndds/ndds_cpp.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ class DDS4CCM_NDDS_IMPL_Export RTI_ReadCondition_i :
+ public virtual ::DDS::CCM_ReadCondition,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ // Constructor
+ RTI_ReadCondition_i (DDSReadCondition *rc);
+
+ // Destructor
+ virtual ~RTI_ReadCondition_i (void);
+
+ virtual ::CORBA::Boolean
+ get_trigger_value (void);
+
+ virtual ::DDS::SampleStateMask
+ get_sample_state_mask (void);
+
+ virtual ::DDS::ViewStateMask
+ get_view_state_mask (void);
+
+ virtual ::DDS::InstanceStateMask
+ get_instance_state_mask (void);
+
+ virtual ::DDS::DataReader_ptr
+ get_datareader (void);
+
+ DDSReadCondition * get_readcondition (void);
+ private:
+ DDSReadCondition *impl_;
+ };
+ }
+ }
+}
+
+#endif /* CIAO_RTI_READCONDITION_H */
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/Reader_T.cpp b/modules/CIAO/connectors/dds4ccm/impl/ndds/Reader_T.cpp
new file mode 100644
index 00000000000..29a2adf6f80
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/Reader_T.cpp
@@ -0,0 +1,355 @@
+// $Id$
+
+#include "dds4ccm/impl/ndds/DataReader.h"
+#include "dds4ccm/impl/ndds/Utils.h"
+#include "dds4ccm/impl/ndds/SampleInfo.h"
+#include "ciao/Logger/Log_Macros.h"
+
+// Implementation skeleton constructor
+template <typename DDS_TYPE, typename CCM_TYPE >
+CIAO::DDS4CCM::RTI::Reader_T<DDS_TYPE, CCM_TYPE>::Reader_T (::DDS::DataReader_ptr reader)
+ : impl_ (0),
+ reader_ (reader)
+{
+ CIAO_TRACE ("CIAO::DDS4CCM::RTI::Reader_T::Reader_T");
+
+ RTI_DataReader_i *rdr = dynamic_cast <RTI_DataReader_i *> (this->reader_);
+ if (!rdr)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO ACE_TEXT ("CIAO::DDS4CCM::RTI::Reader_T::Reader_T - ")
+ ACE_TEXT ("Unable to cast provided DataReader to servant\n")));
+ throw CORBA::INTERNAL ();
+ }
+
+ this->impl_ = DDS_TYPE::data_reader::narrow (rdr->get_datareader ());
+
+ if (!this->impl_)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO ACE_TEXT ("CIAO::DDS4CCM::RTI::Reader_T::Reader_T - ")
+ ACE_TEXT ("Unable to narrow the provided reader entity to the specific ")
+ ACE_TEXT ("type necessary to publish messages\n")));
+ throw CORBA::INTERNAL ();
+ }
+
+}
+
+// Implementation skeleton destructor
+template <typename DDS_TYPE, typename CCM_TYPE >
+CIAO::DDS4CCM::RTI::Reader_T<DDS_TYPE, CCM_TYPE>::~Reader_T (void)
+{
+ CIAO_TRACE ("CIAO::DDS4CCM::RTI::Reader_T::~Reader_T");
+}
+
+
+//for the requirement : 'samples ordered by instances' the following settings are necessary:
+// ordered_access -> true and DDS_INSTANCE_PRESENTATION_QOS (default) .
+
+template <typename DDS_TYPE, typename CCM_TYPE >
+void
+CIAO::DDS4CCM::RTI::Reader_T<DDS_TYPE, CCM_TYPE>::read_all (
+ typename CCM_TYPE::seq_type::_out_type instances,
+ ::CCM_DDS::ReadInfoSeq_out infos)
+{
+ //this function has to return the last sample of all instances
+ typename CCM_TYPE::seq_type::_var_type inst_seq = new typename CCM_TYPE::seq_type;
+ ::CCM_DDS::ReadInfoSeq_var infoseq = new ::CCM_DDS::ReadInfoSeq;
+
+ DDS_SampleInfoSeq sample_info;
+ typename DDS_TYPE::dds_seq_type data;
+ // DDS_TYPE::dds_seq_type = dds sequence
+ // CCM_TYPE::seq_type = ccm sequence
+ DDS_ReturnCode_t retval = this->impl_->read ( data,
+ sample_info,
+ DDS_LENGTH_UNLIMITED,
+ DDS_READ_SAMPLE_STATE | DDS_NOT_READ_SAMPLE_STATE ,
+ DDS_NEW_VIEW_STATE | DDS_NOT_NEW_VIEW_STATE,
+ DDS_ALIVE_INSTANCE_STATE);
+
+ CORBA::ULong ix = 0;
+ CORBA::ULong nr_of_last_samples = 0;
+ switch(retval)
+ {
+ case DDS_RETCODE_OK:
+ ix = 0;
+ nr_of_last_samples = 0;
+ CIAO_DEBUG ((LM_DEBUG, ACE_TEXT ("CIAO::DDS4CCM::RTI::Reader_T::read_all - ")
+ ACE_TEXT ("number_of_samples <%d>\n"), data.length() ));
+ //infoseq <<= sample_info; ??
+
+ // count the last samples of all instances
+ for (::DDS_Long i = 0 ; i < sample_info.length(); i++)
+ {
+ if((sample_info[i].sample_rank == 0) && (sample_info[i].valid_data))
+ {
+ ++nr_of_last_samples;
+ }
+ }
+ infoseq->length(nr_of_last_samples);
+ inst_seq->length(nr_of_last_samples);
+ // we need only the last sample of each instance
+ for (::DDS_Long i = 0 ; i < sample_info.length(); i++)
+ {
+ if((sample_info[i].sample_rank == 0) && (sample_info[i].valid_data))
+ {
+ sample_info[i].reception_timestamp >>= infoseq[ix].timestamp;
+ inst_seq[ix] = data[i];
+ ++ix;
+ }
+ }
+ break;
+ case DDS_RETCODE_NO_DATA:
+ CIAO_DEBUG ((LM_INFO, ACE_TEXT ("CIAO::DDS4CCM::RTI::Reader_T::read_all - No data")));
+ break;
+ default:
+ CIAO_ERROR ((LM_ERROR, ACE_TEXT ("CIAO::DDS4CCM::RTI::Reader_T::read_all - ")
+ ACE_TEXT ("retval is %d\n"), retval));
+ throw ::CCM_DDS::InternalError (retval, 0);
+ break;
+ }
+ //return the loan
+ this->impl_->return_loan(data,sample_info);
+ infos = infoseq._retn ();
+ instances = inst_seq._retn();
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE >
+void
+CIAO::DDS4CCM::RTI::Reader_T<DDS_TYPE, CCM_TYPE>::read_all_history (
+ typename CCM_TYPE::seq_type::_out_type instances,
+ ::CCM_DDS::ReadInfoSeq_out infos)
+{
+ //this function has to return all samples of all instances
+ typename CCM_TYPE::seq_type::_var_type inst_seq = new typename CCM_TYPE::seq_type;
+ ::CCM_DDS::ReadInfoSeq_var infoseq = new ::CCM_DDS::ReadInfoSeq;
+
+ DDS_SampleInfoSeq sample_info;
+ DDS_ReturnCode_t retval = DDS_RETCODE_NO_DATA;
+ typename DDS_TYPE::dds_seq_type data;
+
+ // DDS_TYPE::dds_seq_type = dds sequence
+ // CCM_TYPE::seq_type = ccm sequence
+ retval = this->impl_->read ( data,
+ sample_info,
+ DDS_LENGTH_UNLIMITED,
+ DDS_READ_SAMPLE_STATE | DDS_NOT_READ_SAMPLE_STATE ,
+ DDS_NEW_VIEW_STATE | DDS_NOT_NEW_VIEW_STATE,
+ DDS_ALIVE_INSTANCE_STATE);
+ CORBA::ULong nr_of_samples = 0;
+ CORBA::ULong ix = 0;
+ switch(retval)
+ {
+ case DDS_RETCODE_OK:
+ CIAO_DEBUG ((LM_DEBUG, ACE_TEXT ("CIAO::DDS4CCM::RTI::Reader_T::read_all_history - ")
+ ACE_TEXT ("number_of_samples <%d>\n"), data.length ()));
+ //count the number of valid data
+ for (::DDS_Long i = 0 ; i < sample_info.length(); i++)
+ {
+ if(sample_info[i].valid_data)
+ {
+ ++nr_of_samples;
+ }
+ }
+ //infoseq->length(sample_info.length ());
+ infoseq->length(nr_of_samples);
+ inst_seq->length(nr_of_samples);
+ for (::DDS_Long i = 0 ; i < sample_info.length(); i++)
+ {
+ if(sample_info[i].valid_data)
+ {
+ sample_info[i].reception_timestamp >>= infoseq[ix].timestamp;
+ inst_seq[ix] = data[i];
+ ++ix;
+ }
+ }
+ break;
+ case DDS_RETCODE_NO_DATA:
+ CIAO_DEBUG ((LM_INFO, ACE_TEXT ("CIAO::DDS4CCM::RTI::Reader_T::read_all_history - No data")));
+ break;
+ default:
+ CIAO_ERROR ((LM_ERROR, ACE_TEXT ("CIAO::DDS4CCM::RTI::Reader_T::read_all_history - ")
+ ACE_TEXT ("retval is %d\n"), retval));
+ throw ::CCM_DDS::InternalError (retval, 0);
+ break;
+ }
+ //return the loan
+ this->impl_->return_loan(data,sample_info);
+ infos = infoseq._retn ();
+ instances = inst_seq._retn();
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE >
+void
+CIAO::DDS4CCM::RTI::Reader_T<DDS_TYPE, CCM_TYPE>::read_one (
+ typename DDS_TYPE::value_type& an_instance,
+ ::CCM_DDS::ReadInfo_out info)
+{
+ DDS_InstanceHandle_t hnd = this->impl_->lookup_instance (an_instance);
+ DDS_SampleInfoSeq sample_info;
+ DDS_ReturnCode_t retval = DDS_RETCODE_NO_DATA;
+
+ typename DDS_TYPE::dds_seq_type data;
+
+ // DDS_TYPE::dds_seq_type = dds sequence
+ // CCM_TYPE::seq_type = ccm sequence
+ // if initial instance has a registered key, pass back instance with this key,
+ // else return last instance regardless of key
+ if (!DDS_InstanceHandle_equals (&hnd, & ::DDS_HANDLE_NIL))
+ {
+ retval = this->impl_->read_instance(data,
+ sample_info,
+ DDS_LENGTH_UNLIMITED,
+ hnd,
+ DDS_READ_SAMPLE_STATE | DDS_NOT_READ_SAMPLE_STATE ,
+ DDS_NEW_VIEW_STATE | DDS_NOT_NEW_VIEW_STATE,
+ DDS_ALIVE_INSTANCE_STATE);
+ }
+ else
+ {
+ CIAO_DEBUG ((LM_INFO, ACE_TEXT ("CIAO::DDS4CCM::RTI::Reader_T::read_one_history - ")
+ ACE_TEXT ("No instance found.\n")));
+ retval = this->impl_->read(data,
+ sample_info,
+ DDS_LENGTH_UNLIMITED,
+ DDS_READ_SAMPLE_STATE | DDS_NOT_READ_SAMPLE_STATE ,
+ DDS_NEW_VIEW_STATE | DDS_NOT_NEW_VIEW_STATE,
+ DDS_ALIVE_INSTANCE_STATE);
+
+ }
+ int number_of_samples = 0;
+ switch(retval)
+ {
+ case DDS_RETCODE_OK:
+ CIAO_DEBUG ((LM_INFO, ACE_TEXT ("CIAO::DDS4CCM::RTI::Reader_T::read_one - ")
+ ACE_TEXT ("number_of_samples =%d\n"), number_of_samples));
+ number_of_samples = data.length();
+ //get last instance
+ if(sample_info[number_of_samples-1].valid_data)
+ {
+ an_instance = data[number_of_samples-1];
+ //info <<= sample_info;
+ sample_info[number_of_samples-1].reception_timestamp >>= info.timestamp;
+ }
+ //else ?? What to do ?
+
+ //what about the following attributes?
+ //info.access_status DDS_SampleStateKind sample_state or DDS_ViewStateKind view_state; ?
+ //info.instance_status DDS_InstanceStateKind instance_state;
+ //info.instance_rank DDS_Long sample_rank; is always 0 with last sample
+ //return the loan
+ this->impl_->return_loan(data,sample_info);
+ break;
+ case DDS_RETCODE_NO_DATA:
+ CIAO_DEBUG ((LM_INFO, ACE_TEXT ("CIAO::DDS4CCM::RTI::Reader_T::read_one - ")
+ ACE_TEXT ("No data\n")));
+ this->impl_->return_loan(data,sample_info);
+ //only if a key and no instance for that key throw NonExistent exception
+ if (!DDS_InstanceHandle_equals (&hnd, & ::DDS_HANDLE_NIL))
+ {
+ throw ::CCM_DDS::NonExistent(0);
+ }
+ break;
+ default:
+ CIAO_ERROR ((LM_ERROR, ACE_TEXT ("CIAO::DDS4CCM::RTI::Reader_T::read_one - ")
+ ACE_TEXT ("retval <%d>\n"), retval));
+ this->impl_->return_loan(data,sample_info);
+ throw ::CCM_DDS::InternalError (retval, 0);
+ break;
+ }
+ }
+
+template <typename DDS_TYPE, typename CCM_TYPE >
+void
+CIAO::DDS4CCM::RTI::Reader_T<DDS_TYPE, CCM_TYPE>::read_one_history (
+ const typename DDS_TYPE::value_type& an_instance,
+ typename CCM_TYPE::seq_type::_out_type instances,
+ ::CCM_DDS::ReadInfoSeq_out infos)
+{
+ //this function has to return all samples of all instances
+ typename CCM_TYPE::seq_type::_var_type inst_seq = new typename CCM_TYPE::seq_type;
+ ::CCM_DDS::ReadInfoSeq_var infoseq = new ::CCM_DDS::ReadInfoSeq;
+ DDS_InstanceHandle_t hnd = this->impl_->lookup_instance (an_instance);
+ DDS_SampleInfoSeq sample_info;
+ DDS_ReturnCode_t retval = DDS_RETCODE_NO_DATA;
+ typename DDS_TYPE::dds_seq_type data;
+
+ // DDS_TYPE::dds_seq_type = dds sequence
+ // CCM_TYPE::seq_type = ccm sequence
+ if (!DDS_InstanceHandle_equals (&hnd, & ::DDS_HANDLE_NIL))
+ {
+ retval = this->impl_->read_instance(data,
+ sample_info,
+ DDS_LENGTH_UNLIMITED,
+ hnd,
+ DDS_READ_SAMPLE_STATE | DDS_NOT_READ_SAMPLE_STATE ,
+ DDS_NEW_VIEW_STATE | DDS_NOT_NEW_VIEW_STATE,
+ DDS_ALIVE_INSTANCE_STATE);
+ }
+ else
+ {
+ CIAO_DEBUG ((LM_INFO, ACE_TEXT ("CIAO::DDS4CCM::RTI::Reader_T::read_one_history - ")
+ ACE_TEXT ("No instance found.\n")));
+ retval = this->impl_->read(data,
+ sample_info,
+ DDS_LENGTH_UNLIMITED,
+ DDS_READ_SAMPLE_STATE | DDS_NOT_READ_SAMPLE_STATE ,
+ DDS_NEW_VIEW_STATE | DDS_NOT_NEW_VIEW_STATE,
+ DDS_ALIVE_INSTANCE_STATE);
+
+ }
+ CORBA::ULong ix = 0;
+ CORBA::ULong nr_of_samples = 0;
+ switch(retval)
+ {
+ case DDS_RETCODE_OK:
+ //count the number of valid data
+ for (::DDS_Long i = 0 ; i < sample_info.length(); i++)
+ {
+ if(sample_info[i].valid_data)
+ {
+ ++nr_of_samples;
+ }
+ }
+ infoseq->length(nr_of_samples);
+ inst_seq->length(nr_of_samples);
+
+ for (::DDS_Long i = 0 ; i < sample_info.length(); i++)
+ {
+ sample_info[i].reception_timestamp >>= infoseq[ix].timestamp;
+ inst_seq[ix] = data[i];
+ ++ix;
+ }
+ break;
+ case DDS_RETCODE_NO_DATA:
+ CIAO_DEBUG ((LM_INFO, ACE_TEXT ("Reader_T: read_all_history No data : retval is %d ---\n"), retval));
+ if (!DDS_InstanceHandle_equals (&hnd, & ::DDS_HANDLE_NIL))
+ {
+ this->impl_->return_loan(data,sample_info);
+ throw ::CCM_DDS::NonExistent(0);
+ }
+ break;
+ default:
+ CIAO_ERROR ((LM_ERROR, ACE_TEXT ("Reader_T: read_all_history Failed retval is %d ---\n"), retval));
+ this->impl_->return_loan(data,sample_info);
+ throw ::CCM_DDS::InternalError (retval, 0);
+ break;
+ }
+ //return the loan
+ this->impl_->return_loan(data,sample_info);
+ infos = infoseq._retn ();
+ instances = inst_seq._retn();
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE >
+ ::CCM_DDS::QueryFilter *
+ CIAO::DDS4CCM::RTI::Reader_T<DDS_TYPE, CCM_TYPE>::filter (void)
+{
+ return 0;
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE >
+void
+CIAO::DDS4CCM::RTI::Reader_T<DDS_TYPE, CCM_TYPE>::filter (const ::CCM_DDS::QueryFilter & filter)
+{
+ ACE_UNUSED_ARG (filter);
+}
+
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/Reader_T.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/Reader_T.h
new file mode 100644
index 00000000000..fe080dea000
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/Reader_T.h
@@ -0,0 +1,60 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ace/Copy_Disabled.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ template <typename DDS_TYPE, typename CCM_TYPE>
+ class Reader_T :
+ public virtual CCM_TYPE::reader_type,
+ public virtual ::CORBA::LocalObject,
+ private virtual ACE_Copy_Disabled
+ {
+ public:
+ // Constructor
+ Reader_T (::DDS::DataReader_ptr dr);
+
+ // Destructor
+ virtual ~Reader_T (void);
+
+ virtual void read_all (
+ typename CCM_TYPE::seq_type::_out_type instances,
+ ::CCM_DDS::ReadInfoSeq_out infos);
+
+ virtual void read_all_history (
+ typename CCM_TYPE::seq_type::_out_type instances,
+ ::CCM_DDS::ReadInfoSeq_out infos);
+
+ virtual void read_one (
+ typename DDS_TYPE::value_type& an_instance,
+ ::CCM_DDS::ReadInfo_out info);
+
+ virtual void read_one_history (
+ const typename DDS_TYPE::value_type& an_instance,
+ typename CCM_TYPE::seq_type::_out_type instances,
+ ::CCM_DDS::ReadInfoSeq_out infos);
+
+ virtual ::CCM_DDS::QueryFilter *filter (void);
+
+ virtual void filter (const ::CCM_DDS::QueryFilter & filter);
+ private:
+ typename DDS_TYPE::data_reader *impl_;
+ ::DDS::DataReader_ptr reader_;
+ };
+ }
+ }
+}
+
+#include "dds4ccm/impl/ndds/Reader_T.cpp"
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/RequestedDeadlineMissedStatus.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/RequestedDeadlineMissedStatus.h
new file mode 100644
index 00000000000..9d9f203c649
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/RequestedDeadlineMissedStatus.h
@@ -0,0 +1,47 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef CIAO_RTI_REQUESTEDDEADLINEMISSEDSTATUS_H
+#define CIAO_RTI_REQUESTEDDEADLINEMISSEDSTATUS_H
+
+#include "InstanceHandle_t.h"
+
+inline void
+operator<<= (::DDS::RequestedDeadlineMissedStatus &ddsstatus, const ::DDS_RequestedDeadlineMissedStatus & status)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+ ddsstatus.last_instance_handle <<= status.last_instance_handle;
+}
+
+inline void
+operator<<= (::DDS_RequestedDeadlineMissedStatus &ddsstatus, const ::DDS::RequestedDeadlineMissedStatus & status)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+ ddsstatus.last_instance_handle <<= status.last_instance_handle;
+}
+
+inline void
+operator>>= (const ::DDS_RequestedDeadlineMissedStatus &status, ::DDS::RequestedDeadlineMissedStatus & ddsstatus)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+ ddsstatus.last_instance_handle <<= status.last_instance_handle;
+}
+
+inline void
+operator>>= (const ::DDS::RequestedDeadlineMissedStatus &status, ::DDS_RequestedDeadlineMissedStatus & ddsstatus)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+ ddsstatus.last_instance_handle <<= status.last_instance_handle;
+}
+
+#endif /* CIAO_RTI_REQUESTEDDEADLINEMISSEDSTATUS_H */
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/RequestedIncompatibleQosStatus.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/RequestedIncompatibleQosStatus.h
new file mode 100644
index 00000000000..b657de7c1fc
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/RequestedIncompatibleQosStatus.h
@@ -0,0 +1,51 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef CIAO_RTI_REQUESTEDINCOMPATIBLEQOSSTATUS_H
+#define CIAO_RTI_REQUESTEDINCOMPATIBLEQOSSTATUS_H
+
+#include "QosPolicyCountSeq.h"
+
+inline void
+operator<<= (::DDS::RequestedIncompatibleQosStatus &ddsstatus, const ::DDS_RequestedIncompatibleQosStatus & status)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+ ddsstatus.last_policy_id = status.last_policy_id;
+ ddsstatus.policies <<= status.policies;
+}
+
+inline void
+operator<<= (::DDS_RequestedIncompatibleQosStatus &ddsstatus, const ::DDS::RequestedIncompatibleQosStatus & status)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+ ddsstatus.last_policy_id = static_cast <DDS_QosPolicyId_t>(status.last_policy_id);
+ ddsstatus.policies <<= status.policies;
+}
+
+inline void
+operator>>= (const ::DDS_RequestedIncompatibleQosStatus &status, ::DDS::RequestedIncompatibleQosStatus & ddsstatus)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+ ddsstatus.last_policy_id = status.last_policy_id;
+ ddsstatus.policies <<= status.policies;
+}
+
+inline void
+operator>>= (const ::DDS::RequestedIncompatibleQosStatus &status, ::DDS_RequestedIncompatibleQosStatus & ddsstatus)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+ ddsstatus.last_policy_id = static_cast <DDS_QosPolicyId_t>(status.last_policy_id);
+ ddsstatus.policies <<= status.policies;
+}
+
+#endif /* CIAO_RTI_REQUESTEDINCOMPATIBLEQOSSTATUS_H */
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/SampleInfo.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/SampleInfo.h
new file mode 100644
index 00000000000..b10e34755d3
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/SampleInfo.h
@@ -0,0 +1,60 @@
+/**
+ * @author Marcel Smit <msmit@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef SAMPLE_INFO_H
+#define SAMPLE_INFO_H
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "Time_t.h"
+
+inline void
+operator<<= (::CCM_DDS::AccessStatus & access_status, const ::DDS_SampleStateKind & sample_state)
+{
+ if (sample_state == DDS_NOT_READ_SAMPLE_STATE)
+ access_status = ::CCM_DDS::FRESH_INFO;
+ else if (sample_state == DDS_READ_SAMPLE_STATE)
+ access_status = ::CCM_DDS::ALREADY_SEEN;
+}
+
+inline void
+operator<<= (::CCM_DDS::InstanceStatus & instance_status, const ::DDS_InstanceStateKind & instance_state)
+{
+ if (instance_state == DDS_ALIVE_INSTANCE_STATE)
+ instance_status = ::CCM_DDS::INSTANCE_CREATED;
+ else if (instance_state == DDS_NOT_ALIVE_DISPOSED_INSTANCE_STATE)
+ instance_status = ::CCM_DDS::INSTANCE_DELETED;
+ else if (instance_state == DDS_NOT_ALIVE_NO_WRITERS_INSTANCE_STATE)
+ instance_status = ::CCM_DDS::INSTANCE_UPDATED;
+}
+
+inline void
+operator<<= (::CCM_DDS::ReadInfo & ccm_dds_readinfo, const ::DDS_SampleInfoSeq & sample_info)
+{
+ ccm_dds_readinfo.timestamp <<= sample_info[sample_info.length () - 1].reception_timestamp;
+ ccm_dds_readinfo.access_status <<= sample_info[sample_info.length () - 1].sample_state;
+ ccm_dds_readinfo.instance_status <<= sample_info[sample_info.length () - 1].instance_state;
+ ccm_dds_readinfo.instance_rank = sample_info[sample_info.length () - 1].sample_rank;
+}
+
+inline void
+operator<<= (::CCM_DDS::ReadInfoSeq & ccm_dds_readinfo_seq, const ::DDS_SampleInfoSeq & sample_info)
+{
+ ccm_dds_readinfo_seq.length(sample_info.length ());
+ for (::DDS_Long i = 0; i < sample_info.length(); i++)
+ {
+ if (sample_info[i].valid_data)
+ {
+ ccm_dds_readinfo_seq[i].timestamp <<= sample_info[i].reception_timestamp;
+ ccm_dds_readinfo_seq[i].access_status <<= sample_info[i].sample_state;
+ ccm_dds_readinfo_seq[i].instance_status <<= sample_info[i].instance_state;
+ ccm_dds_readinfo_seq[i].instance_rank = sample_info[i].sample_rank;
+ }
+ }
+}
+
+#endif
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/SampleLostStatus.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/SampleLostStatus.h
new file mode 100644
index 00000000000..4e51ef3e61a
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/SampleLostStatus.h
@@ -0,0 +1,28 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef CIAO_RTI_SAMPLELOSTSTATUS_H
+#define CIAO_RTI_SAMPLELOSTSTATUS_H
+
+inline void
+operator<<= (::DDS::SampleLostStatus &ddsstatus, const ::DDS_SampleLostStatus & status)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+}
+
+inline void
+operator>>= (const ::DDS_SampleLostStatus &status, ::DDS::SampleLostStatus & ddsstatus)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+}
+
+#endif /* CIAO_RTI_SAMPLELOSTSTATUS_H */
+
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/SampleRejectedStatus.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/SampleRejectedStatus.h
new file mode 100644
index 00000000000..09bee568910
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/SampleRejectedStatus.h
@@ -0,0 +1,51 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef CIAO_RTI_SAMPLEREJECTEDSTATUS_H
+#define CIAO_RTI_SAMPLEREJECTEDSTATUS_H
+
+#include "InstanceHandle_t.h"
+
+inline void
+operator<<= (::DDS::SampleRejectedStatus &ddsstatus, const ::DDS_SampleRejectedStatus & status)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+ ddsstatus.last_reason = static_cast < ::DDS::SampleRejectedStatusKind> (status.last_reason);
+ ddsstatus.last_instance_handle <<= status.last_instance_handle;
+}
+
+inline void
+operator<<= (::DDS_SampleRejectedStatus &ddsstatus, const ::DDS::SampleRejectedStatus & status)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+ ddsstatus.last_reason = static_cast < ::DDS_SampleRejectedStatusKind> (status.last_reason);
+ ddsstatus.last_instance_handle <<= status.last_instance_handle;
+}
+
+inline void
+operator>>= (const ::DDS_SampleRejectedStatus &status, ::DDS::SampleRejectedStatus & ddsstatus)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+ ddsstatus.last_reason = static_cast < ::DDS::SampleRejectedStatusKind> (status.last_reason);
+ ddsstatus.last_instance_handle <<= status.last_instance_handle;
+}
+
+inline void
+operator>>= (const ::DDS::SampleRejectedStatus &status, ::DDS_SampleRejectedStatus & ddsstatus)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+ ddsstatus.last_reason = static_cast < ::DDS_SampleRejectedStatusKind> (status.last_reason);
+ ddsstatus.last_instance_handle <<= status.last_instance_handle;
+}
+
+#endif /* CIAO_RTI_SAMPLEREJECTEDSTATUS_H */
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/StatusCondition.cpp b/modules/CIAO/connectors/dds4ccm/impl/ndds/StatusCondition.cpp
new file mode 100644
index 00000000000..c632e85ed71
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/StatusCondition.cpp
@@ -0,0 +1,60 @@
+// $Id$
+
+#include "StatusCondition.h"
+#include "Subscriber.h"
+
+#include "dds4ccm/idl/dds4ccm_BaseC.h"
+
+#include "ciao/Logger/Log_Macros.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ // Implementation skeleton constructor
+ RTI_StatusCondition_i::RTI_StatusCondition_i (DDSStatusCondition *sc)
+ : impl_ (sc)
+ {
+ }
+
+ // Implementation skeleton destructor
+ RTI_StatusCondition_i::~RTI_StatusCondition_i (void)
+ {
+ }
+
+ ::CORBA::Boolean
+ RTI_StatusCondition_i::get_trigger_value (void)
+ {
+ return this->impl_->get_trigger_value ();
+ }
+
+ ::DDS::StatusMask
+ RTI_StatusCondition_i::get_enabled_statuses (void)
+ {
+ return this->impl_->get_enabled_statuses ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_StatusCondition_i::set_enabled_statuses (
+ ::DDS::StatusMask mask)
+ {
+ return this->impl_->set_enabled_statuses (mask);
+ }
+
+ ::DDS::Entity_ptr
+ RTI_StatusCondition_i::get_entity (void)
+ {
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ DDSStatusCondition *
+ RTI_StatusCondition_i::get_status_condition (void)
+ {
+ return this->impl_;
+ }
+ }
+ }
+}
+
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/StatusCondition.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/StatusCondition.h
new file mode 100644
index 00000000000..720b2430dbf
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/StatusCondition.h
@@ -0,0 +1,61 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef CIAO_RTI_STATUSCONDITION_H
+#define CIAO_RTI_STATUSCONDITION_H
+
+#include "tao/LocalObject.h"
+
+#include "dds4ccm/idl/dds_rtf2_dcpsEC.h"
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "dds4ccm/impl/ndds/dds4ccm_ndds_impl_export.h"
+
+#include "ndds/ndds_cpp.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ class DDS4CCM_NDDS_IMPL_Export RTI_StatusCondition_i :
+ public virtual ::DDS::CCM_StatusCondition,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ // Constructor
+ RTI_StatusCondition_i (DDSStatusCondition *sc);
+
+ // Destructor
+ virtual ~RTI_StatusCondition_i (void);
+
+ virtual ::CORBA::Boolean
+ get_trigger_value (void);
+
+ virtual ::DDS::StatusMask
+ get_enabled_statuses (void);
+
+ virtual ::DDS::ReturnCode_t
+ set_enabled_statuses (
+ ::DDS::StatusMask mask);
+
+ virtual ::DDS::Entity_ptr
+ get_entity (void);
+
+ DDSStatusCondition * get_status_condition (void);
+ private:
+ DDSStatusCondition *impl_;
+ };
+ }
+ }
+}
+
+#endif /* CIAO_RTI_STATUSCONDITION_H */
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/Subscriber.cpp b/modules/CIAO/connectors/dds4ccm/impl/ndds/Subscriber.cpp
new file mode 100644
index 00000000000..91764d8856d
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/Subscriber.cpp
@@ -0,0 +1,255 @@
+// $Id$
+
+#include "Subscriber.h"
+#include "SubscriberListener.h"
+#include "Topic.h"
+#include "DataReader.h"
+#include "DataReaderListener.h"
+#include "Utils.h"
+#include "StatusCondition.h"
+#include "InstanceHandle_t.h"
+
+#include "dds4ccm/idl/dds4ccm_BaseC.h"
+
+#include "ciao/Logger/Log_Macros.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ // Implementation skeleton constructor
+ RTI_Subscriber_i::RTI_Subscriber_i (DDSSubscriber *s)
+ : impl_ (s)
+ {
+ CIAO_TRACE ("RTI_Subscriber_i::RTI_Subscriber_i");
+ }
+
+ // Implementation skeleton destructor
+ RTI_Subscriber_i::~RTI_Subscriber_i (void)
+ {
+ CIAO_TRACE ("RTI_Subscriber_i::~RTI_Subscriber_i");
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_Subscriber_i::enable (void)
+ {
+ return this->impl_->enable ();
+ }
+
+ ::DDS::StatusCondition_ptr
+ RTI_Subscriber_i::get_statuscondition (void)
+ {
+ DDSStatusCondition* sc = this->impl_->get_statuscondition ();
+ ::DDS::StatusCondition_var retval = new RTI_StatusCondition_i (sc);
+ return retval._retn ();
+ }
+
+ ::DDS::StatusMask
+ RTI_Subscriber_i::get_status_changes (void)
+ {
+ return this->impl_->get_status_changes ();
+ }
+
+ ::DDS::InstanceHandle_t
+ RTI_Subscriber_i::get_instance_handle (void)
+ {
+ ::DDS_InstanceHandle_t const rtihandle = this->impl_->get_instance_handle ();
+ ::DDS::InstanceHandle_t handle;
+ handle <<= rtihandle;
+ return handle;
+ }
+
+ ::DDS::DataReader_ptr
+ RTI_Subscriber_i::create_datareader (
+ ::DDS::TopicDescription_ptr a_topic,
+ const ::DDS::DataReaderQos & /*qos*/,
+ ::DDS::DataReaderListener_ptr a_listener,
+ ::DDS::StatusMask mask)
+ {
+ RTI_Topic_i * topic = dynamic_cast < RTI_Topic_i * > (a_topic);
+ if (!topic)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "RTI_Subscriber_i::create_datareader - "
+ "Error: Unable to cast provided topic to its servant.\n"));
+ throw CCM_DDS::InternalError (::DDS::RETCODE_BAD_PARAMETER, 0);
+ }
+ DDSTopic *rti_topic = topic->get_topic ();
+// DDSDataReaderListener *rti_drl = drl->get_datareaderlistener ();
+// todo leak
+ DDSDataReaderListener *rti_drl = new RTI_DataReaderListener_i (a_listener);
+ DDSDataReader *rti_dr = this->impl_->create_datareader (rti_topic,
+ DDS_DATAREADER_QOS_DEFAULT,
+ rti_drl,
+ mask);
+ if (!rti_dr)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "RTI_Subscriber_i::create_datareader - "
+ "Error: RTI Topic returned a nil datareader.\n"));
+ throw CCM_DDS::InternalError (::DDS::RETCODE_ERROR, 0);
+ }
+
+ ::DDS::DataReader_var retval = new RTI_DataReader_i (rti_dr);
+
+ return retval._retn ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_Subscriber_i::delete_datareader (
+ ::DDS::DataReader_ptr a_datareader)
+ {
+ RTI_DataReader_i *top = dynamic_cast< RTI_DataReader_i *> (a_datareader);
+ if (!top)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "RTI_Subscriber_i::delete_datareader - "
+ "Unable to cast provided object reference to servant.\n"));
+ return ::DDS::RETCODE_BAD_PARAMETER;
+ }
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO "RTI_Subscriber_i::delete_datareader - "
+ "Successfully casted provided object reference to servant.\n"));
+
+ DDS_ReturnCode_t retval = this->impl_->delete_datareader (top->get_datareader ());
+
+ if (retval != DDS_RETCODE_OK)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "RTI_Subscriber_i::delete_datareader - "
+ "Error: Returned non-ok error code %c\n",
+ translate_retcode (retval)));
+ }
+ else CIAO_DEBUG ((LM_INFO, CLINFO "RTI_Subscriber_i::delete_datareader - "
+ "Successfully deleted\n"));
+
+ return retval;
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_Subscriber_i::delete_contained_entities (void)
+ {
+ return this->impl_->delete_contained_entities ();
+ }
+
+ ::DDS::DataReader_ptr
+ RTI_Subscriber_i::lookup_datareader (
+ const char * impl_name)
+ {
+ DDSDataReader* dr = this->impl_->lookup_datareader (impl_name);
+ ::DDS::DataReader_var retval = new RTI_DataReader_i (dr);
+ return retval._retn ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_Subscriber_i::get_datareaders (
+ ::DDS::DataReaderSeq & /*readers*/,
+ ::DDS::SampleStateMask /*sample_states*/,
+ ::DDS::ViewStateMask /*view_states*/,
+ ::DDS::InstanceStateMask /*instance_states*/)
+ {
+ throw CORBA::NO_IMPLEMENT ();
+ // Add your implementation here
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_Subscriber_i::notify_datareaders (void)
+ {
+ return this->impl_->notify_datareaders ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_Subscriber_i::set_qos (
+ const ::DDS::SubscriberQos & /*qos*/)
+ {
+ DDS_SubscriberQos rti_impl_qos;
+/* rti_impl_qos.presentation = qos.presentation;
+ rti_impl_qos.partition = qos.partition;
+ rti_impl_qos.group_data = qos.group_data;
+ rti_impl_qos.entity_factory = qos.entity_factory;*/
+ return this->impl_->set_qos (rti_impl_qos);
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_Subscriber_i::get_qos (
+ ::DDS::SubscriberQos & /*qos*/)
+ {
+ DDS_SubscriberQos rti_impl_qos;
+ DDS_ReturnCode_t const rti_retcode = this->impl_->get_qos (rti_impl_qos);
+ /*qos.presentation = rti_impl_qos.presentation;
+ qos.partition = rti_impl_qos.partition;
+ qos.group_data = rti_impl_qos.group_data;
+ qos.entity_factory = rti_impl_qos.entity_factory;*/
+ return rti_retcode;
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_Subscriber_i::set_listener (
+ ::DDS::SubscriberListener_ptr a_listener,
+ ::DDS::StatusMask mask)
+ {
+ RTI_SubscriberListener_i* rti_impl_list = new RTI_SubscriberListener_i (a_listener);
+ return this->impl_->set_listener (rti_impl_list, mask);
+ }
+
+ ::DDS::SubscriberListener_ptr
+ RTI_Subscriber_i::get_listener (void)
+ {
+// DDSSubscriberListener* rti_impl_list = this->impl_->get_listener ();
+// ::DDS::SubscriberListener_var retval = new RTI_SubscriberListener_i (rti_impl_list);
+// return retval._retn ();
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_Subscriber_i::begin_access (void)
+ {
+ return this->impl_->begin_access ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_Subscriber_i::end_access (void)
+ {
+ return this->impl_->end_access ();
+ }
+
+ ::DDS::DomainParticipant_ptr
+ RTI_Subscriber_i::get_participant (void)
+ {
+ DDSDomainParticipant* p = this->impl_->get_participant ();
+ ::DDS::DomainParticipant_var retval = new RTI_DomainParticipant_i (p);
+ return retval._retn ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_Subscriber_i::set_default_datareader_qos (
+ const ::DDS::DataReaderQos & /*qos*/)
+ {
+ throw CORBA::NO_IMPLEMENT ();
+ // Add your implementation here
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_Subscriber_i::get_default_datareader_qos (
+ ::DDS::DataReaderQos & /*qos*/)
+ {
+ throw CORBA::NO_IMPLEMENT ();
+ // Add your implementation here
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_Subscriber_i::copy_from_topic_qos (
+ ::DDS::DataReaderQos & /*a_datareader_qos*/,
+ const ::DDS::TopicQos & /*a_impl_qos*/)
+ {
+ throw CORBA::NO_IMPLEMENT ();
+ // Add your implementation here
+ }
+
+ DDSSubscriber *
+ RTI_Subscriber_i::get_subscriber (void)
+ {
+ return this->impl_;
+ }
+ }
+ }
+}
+
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/Subscriber.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/Subscriber.h
new file mode 100644
index 00000000000..cf35349ed28
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/Subscriber.h
@@ -0,0 +1,127 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef CIAO_RTI_SUBSCRIBER_H
+#define CIAO_RTI_SUBSCRIBER_H
+
+#include "tao/LocalObject.h"
+
+#include "dds4ccm/idl/dds_rtf2_dcpsEC.h"
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "dds4ccm/impl/ndds/dds4ccm_ndds_impl_export.h"
+
+#include "ndds/ndds_cpp.h"
+#include "tao/LocalObject.h"
+
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ class DDS4CCM_NDDS_IMPL_Export RTI_Subscriber_i :
+ public virtual ::DDS::CCM_Subscriber,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ // Constructor
+ RTI_Subscriber_i (DDSSubscriber *p);
+
+ // Destructor
+ virtual ~RTI_Subscriber_i (void);
+
+ virtual ::DDS::ReturnCode_t
+ enable (void);
+
+ virtual ::DDS::StatusCondition_ptr
+ get_statuscondition (void);
+
+ virtual ::DDS::StatusMask
+ get_status_changes (void);
+
+ virtual ::DDS::InstanceHandle_t
+ get_instance_handle (void);
+
+ virtual ::DDS::DataReader_ptr
+ create_datareader (
+ ::DDS::TopicDescription_ptr a_topic,
+ const ::DDS::DataReaderQos & qos,
+ ::DDS::DataReaderListener_ptr a_listener,
+ ::DDS::StatusMask mask);
+
+ virtual ::DDS::ReturnCode_t
+ delete_datareader (
+ ::DDS::DataReader_ptr a_datareader);
+
+ virtual ::DDS::ReturnCode_t
+ delete_contained_entities (void);
+
+ virtual ::DDS::DataReader_ptr
+ lookup_datareader (
+ const char * impl_name);
+
+ virtual ::DDS::ReturnCode_t
+ get_datareaders (
+ ::DDS::DataReaderSeq & readers,
+ ::DDS::SampleStateMask sample_states,
+ ::DDS::ViewStateMask view_states,
+ ::DDS::InstanceStateMask instance_states);
+
+ virtual ::DDS::ReturnCode_t
+ notify_datareaders (void);
+
+ virtual ::DDS::ReturnCode_t
+ set_qos (
+ const ::DDS::SubscriberQos & qos);
+
+ virtual ::DDS::ReturnCode_t
+ get_qos (
+ ::DDS::SubscriberQos & qos);
+
+ virtual ::DDS::ReturnCode_t
+ set_listener (
+ ::DDS::SubscriberListener_ptr a_listener,
+ ::DDS::StatusMask mask);
+
+ virtual ::DDS::SubscriberListener_ptr
+ get_listener (void);
+
+ virtual ::DDS::ReturnCode_t
+ begin_access (void);
+
+ virtual ::DDS::ReturnCode_t
+ end_access (void);
+
+ virtual ::DDS::DomainParticipant_ptr
+ get_participant (void);
+
+ virtual ::DDS::ReturnCode_t
+ set_default_datareader_qos (
+ const ::DDS::DataReaderQos & qos);
+
+ virtual ::DDS::ReturnCode_t
+ get_default_datareader_qos (
+ ::DDS::DataReaderQos & qos);
+
+ virtual ::DDS::ReturnCode_t
+ copy_from_topic_qos (
+ ::DDS::DataReaderQos & a_datareader_qos,
+ const ::DDS::TopicQos & a_impl_qos);
+
+ DDSSubscriber * get_subscriber (void);
+ private:
+ DDSSubscriber *impl_;
+ };
+ }
+ }
+}
+
+#endif
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/SubscriberListener.cpp b/modules/CIAO/connectors/dds4ccm/impl/ndds/SubscriberListener.cpp
new file mode 100644
index 00000000000..1a894786c21
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/SubscriberListener.cpp
@@ -0,0 +1,120 @@
+// $Id$
+
+#include "SubscriberListener.h"
+#include "Subscriber.h"
+#include "DataReader.h"
+#include "SampleLostStatus.h"
+#include "SubscriptionMatchedStatus.h"
+#include "RequestedDeadlineMissedStatus.h"
+#include "SampleRejectedStatus.h"
+#include "LivelinessChangedStatus.h"
+#include "RequestedIncompatibleQosStatus.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ // Implementation skeleton constructor
+ RTI_SubscriberListener_i::RTI_SubscriberListener_i (::DDS::SubscriberListener_ptr p)
+ : impl_ ( ::DDS::SubscriberListener::_duplicate (p))
+ {
+ }
+
+ // Implementation skeleton destructor
+ RTI_SubscriberListener_i::~RTI_SubscriberListener_i (void)
+ {
+ }
+
+ void
+ RTI_SubscriberListener_i::on_data_on_readers (
+ ::DDSSubscriber* the_subscriber)
+ {
+ ::DDS::Subscriber_var sub = new RTI_Subscriber_i (the_subscriber);
+ this->impl_->on_data_on_readers (sub.in ());
+ }
+
+ void
+ RTI_SubscriberListener_i::on_requested_deadline_missed (
+ ::DDSDataReader* the_reader,
+ const ::DDS_RequestedDeadlineMissedStatus & status)
+ {
+ ::DDS::RequestedDeadlineMissedStatus ddsstatus;
+ ddsstatus <<= status;
+ ::DDS::DataReader_var dds_reader = new RTI_DataReader_i (the_reader);
+ this->impl_->on_requested_deadline_missed (dds_reader.in (), ddsstatus);
+ }
+
+ void
+ RTI_SubscriberListener_i::on_requested_incompatible_qos (
+ ::DDSDataReader* the_reader,
+ const ::DDS_RequestedIncompatibleQosStatus & status)
+ {
+ ::DDS::RequestedIncompatibleQosStatus ddsstatus;
+ ddsstatus <<= status;
+ ::DDS::DataReader_var dds_reader = new RTI_DataReader_i (the_reader);
+ this->impl_->on_requested_incompatible_qos (dds_reader.in (), ddsstatus);
+ }
+
+ void
+ RTI_SubscriberListener_i::on_sample_rejected (
+ ::DDSDataReader* the_reader,
+ const ::DDS_SampleRejectedStatus & status)
+ {
+ ::DDS::SampleRejectedStatus ddsstatus;
+ ddsstatus <<= status;
+ ::DDS::DataReader_var dds_reader = new RTI_DataReader_i (the_reader);
+ this->impl_->on_sample_rejected (dds_reader.in (), ddsstatus);
+ }
+
+ void
+ RTI_SubscriberListener_i::on_liveliness_changed (
+ ::DDSDataReader* the_reader,
+ const ::DDS_LivelinessChangedStatus & status)
+ {
+ ::DDS::LivelinessChangedStatus ddsstatus;
+ ddsstatus <<= status;
+ ::DDS::DataReader_var dds_reader = new RTI_DataReader_i (the_reader);
+ this->impl_->on_liveliness_changed (dds_reader.in (), ddsstatus);
+ }
+
+ void
+ RTI_SubscriberListener_i::on_data_available (
+ ::DDSDataReader* the_reader)
+ {
+ ::DDS::DataReader_var dds_reader = new RTI_DataReader_i (the_reader);
+ this->impl_->on_data_available (dds_reader.in ());
+ }
+
+ void
+ RTI_SubscriberListener_i::on_subscription_matched (
+ ::DDSDataReader* the_reader,
+ const ::DDS_SubscriptionMatchedStatus & status)
+ {
+ ::DDS::SubscriptionMatchedStatus ddsstatus;
+ ddsstatus <<= status;
+ ::DDS::DataReader_var dds_reader = new RTI_DataReader_i (the_reader);
+ this->impl_->on_subscription_matched (dds_reader.in (), ddsstatus);
+ }
+
+ void
+ RTI_SubscriberListener_i::on_sample_lost (
+ ::DDSDataReader* the_reader,
+ const ::DDS_SampleLostStatus & status)
+ {
+ ::DDS::SampleLostStatus ddsstatus;
+ ddsstatus <<= status;
+ ::DDS::DataReader_var dds_reader = new RTI_DataReader_i (the_reader);
+ this->impl_->on_sample_lost (dds_reader.in (), ddsstatus);
+ }
+
+ ::DDS::SubscriberListener_ptr
+ RTI_SubscriberListener_i::get_subscriber_listener (void)
+ {
+ return ::DDS::SubscriberListener::_duplicate (this->impl_.in ());
+ }
+ }
+ }
+}
+
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/SubscriberListener.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/SubscriberListener.h
new file mode 100644
index 00000000000..6f552d234e9
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/SubscriberListener.h
@@ -0,0 +1,82 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef CIAO_RTI_SUBSCRIBERLISTENER_H
+#define CIAO_RTI_SUBSCRIBERLISTENER_H
+
+#include "dds4ccm/idl/dds_rtf2_dcpsEC.h"
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "dds4ccm/impl/ndds/dds4ccm_ndds_impl_export.h"
+
+#include "ndds/ndds_cpp.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ class DDS4CCM_NDDS_IMPL_Export RTI_SubscriberListener_i :
+ public virtual ::DDSSubscriberListener
+ {
+ public:
+ // Constructor
+ RTI_SubscriberListener_i ( ::DDS::SubscriberListener_ptr s);
+
+ // Destructor
+ virtual ~RTI_SubscriberListener_i (void);
+
+ virtual void
+ on_requested_deadline_missed (
+ ::DDSDataReader* the_reader,
+ const ::DDS_RequestedDeadlineMissedStatus & status);
+
+ virtual void
+ on_requested_incompatible_qos (
+ ::DDSDataReader* the_reader,
+ const ::DDS_RequestedIncompatibleQosStatus & status);
+
+ virtual void
+ on_sample_rejected (
+ ::DDSDataReader* the_reader,
+ const ::DDS_SampleRejectedStatus & status);
+
+ virtual void
+ on_liveliness_changed (
+ ::DDSDataReader* the_reader,
+ const ::DDS_LivelinessChangedStatus & status);
+
+ virtual void
+ on_data_available (
+ ::DDSDataReader* the_reader);
+
+ virtual void
+ on_subscription_matched (
+ ::DDSDataReader* the_reader,
+ const ::DDS_SubscriptionMatchedStatus & status);
+
+ virtual void
+ on_sample_lost (
+ ::DDSDataReader* the_reader,
+ const ::DDS_SampleLostStatus & status);
+
+ virtual void
+ on_data_on_readers (
+ ::DDSSubscriber* the_subscriber);
+
+ ::DDS::SubscriberListener_ptr get_subscriber_listener (void);
+ private:
+ ::DDS::SubscriberListener_var impl_;
+ };
+ }
+ }
+}
+
+#endif
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/SubscriptionMatchedStatus.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/SubscriptionMatchedStatus.h
new file mode 100644
index 00000000000..0bfbfdbab4f
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/SubscriptionMatchedStatus.h
@@ -0,0 +1,56 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef CIAO_RTI_SUBSCRIPTIONMATCHEDSTATUS_H
+#define CIAO_RTI_SUBSCRIPTIONMATCHEDSTATUS_H
+
+#include "InstanceHandle_t.h"
+
+inline void
+operator<<= (::DDS::SubscriptionMatchedStatus &ddsstatus, const ::DDS_SubscriptionMatchedStatus & status)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+ ddsstatus.current_count = status.current_count;
+ ddsstatus.current_count_change = status.current_count_change;
+ ddsstatus.last_publication_handle <<= status.last_publication_handle;
+}
+
+inline void
+operator<<= (::DDS_SubscriptionMatchedStatus &ddsstatus, const ::DDS::SubscriptionMatchedStatus & status)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+ ddsstatus.current_count = status.current_count;
+ ddsstatus.current_count_change = status.current_count_change;
+ ddsstatus.last_publication_handle <<= status.last_publication_handle;
+}
+
+inline void
+operator>>= (const ::DDS_SubscriptionMatchedStatus &status, ::DDS::SubscriptionMatchedStatus & ddsstatus)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+ ddsstatus.current_count = status.current_count;
+ ddsstatus.current_count_change = status.current_count_change;
+ ddsstatus.last_publication_handle <<= status.last_publication_handle;
+}
+
+inline void
+operator>>= (const ::DDS::SubscriptionMatchedStatus &status, ::DDS_SubscriptionMatchedStatus & ddsstatus)
+{
+ ddsstatus.total_count = status.total_count;
+ ddsstatus.total_count_change = status.total_count_change;
+ ddsstatus.current_count = status.current_count;
+ ddsstatus.current_count_change = status.current_count_change;
+ ddsstatus.last_publication_handle <<= status.last_publication_handle;
+}
+
+#endif /* CIAO_RTI_SUBSCRIPTIONMATCHEDSTATUS_H */
+
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/Time_t.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/Time_t.h
new file mode 100644
index 00000000000..e1e7145c016
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/Time_t.h
@@ -0,0 +1,35 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef CIAO_RTI_TIME_T_H
+#define CIAO_RTI_TIME_T_H
+
+inline void
+operator<<= (::DDS::Time_t &ddstime, const ::DDS_Time_t & time)
+{
+ ddstime.sec = time.sec;
+ ddstime.nanosec = time.nanosec;
+}
+
+inline void
+operator<<= (::DDS_Time_t &ddstime, const ::DDS::Time_t & time)
+{
+ ddstime.sec = time.sec;
+ ddstime.nanosec = time.nanosec;
+}
+
+inline void
+operator>>= (const ::DDS_Time_t &time, ::DDS::Time_t & ddstime)
+{
+ ddstime.sec = time.sec;
+ ddstime.nanosec = time.nanosec;
+}
+
+#endif /* CIAO_RTI_TIME_T_H */
+
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/Topic.cpp b/modules/CIAO/connectors/dds4ccm/impl/ndds/Topic.cpp
new file mode 100644
index 00000000000..aa8ed0c686f
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/Topic.cpp
@@ -0,0 +1,117 @@
+// $Id$
+
+#include "Topic.h"
+#include "StatusCondition.h"
+#include "InstanceHandle_t.h"
+#include "InconsistentTopicStatus.h"
+#include "ciao/Logger/Log_Macros.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ // Implementation skeleton constructor
+ RTI_Topic_i::RTI_Topic_i (DDSTopic * top)
+ : impl_ (top)
+ {
+ }
+
+ // Implementation skeleton destructor
+ RTI_Topic_i::~RTI_Topic_i (void)
+ {
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_Topic_i::set_qos (const ::DDS::TopicQos & /*qos*/)
+ {
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_Topic_i::get_qos (::DDS::TopicQos & /*qos*/)
+ {
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_Topic_i::set_listener (::DDS::TopicListener_ptr /*a_listener*/,
+ ::DDS::StatusMask /*mask*/)
+ {
+ //RTI_TopicListener_i* rti_impl_list = new RTI_TopicListener_i (a_listener);
+ //return this->impl_->set_listener (rti_impl_list, mask);
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ ::DDS::TopicListener_ptr
+ RTI_Topic_i::get_listener (void)
+ {
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_Topic_i::get_inconsistent_topic_status (::DDS::InconsistentTopicStatus & a_status)
+ {
+ DDS_InconsistentTopicStatus ddsstatus;
+ ddsstatus <<= a_status;
+ return this->impl_->get_inconsistent_topic_status (ddsstatus);
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_Topic_i::enable (void)
+ {
+ return this->impl_->enable ();
+ }
+
+ ::DDS::StatusCondition_ptr
+ RTI_Topic_i::get_statuscondition (void)
+ {
+ DDSStatusCondition* sc = this->impl_->get_statuscondition ();
+ ::DDS::StatusCondition_var retval = new RTI_StatusCondition_i (sc);
+ return retval._retn ();
+ }
+
+ ::DDS::StatusMask
+ RTI_Topic_i::get_status_changes (void)
+ {
+ return this->impl_->get_status_changes ();
+ }
+
+ ::DDS::InstanceHandle_t
+ RTI_Topic_i::get_instance_handle (void)
+ {
+ ::DDS_InstanceHandle_t const rtihandle = this->impl_->get_instance_handle ();
+ ::DDS::InstanceHandle_t handle;
+ handle <<= rtihandle;
+ return handle;
+ }
+
+ char *
+ RTI_Topic_i::get_type_name (void)
+ {
+ return CORBA::string_dup (this->impl_->get_type_name ());
+ }
+
+ char *
+ RTI_Topic_i::get_name (void)
+ {
+ return CORBA::string_dup (this->impl_->get_name ());
+ }
+
+ ::DDS::DomainParticipant_ptr
+ RTI_Topic_i::get_participant (void)
+ {
+ DDSDomainParticipant* p = this->impl_->get_participant ();
+ ::DDS::DomainParticipant_var retval = new RTI_DomainParticipant_i (p);
+ return retval._retn ();
+ }
+
+ DDSTopic *
+ RTI_Topic_i::get_topic (void)
+ {
+ return impl_;
+ }
+ }
+ }
+}
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/Topic.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/Topic.h
new file mode 100644
index 00000000000..af0ff15fdeb
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/Topic.h
@@ -0,0 +1,81 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef CIAO_NDDS_TOPIC_H
+#define CIAO_NDDS_TOPIC_H
+#include "NDDS_Traits.h"
+#include "DomainParticipant.h"
+
+#include "dds4ccm/impl/ndds/dds4ccm_ndds_impl_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ class DDS4CCM_NDDS_IMPL_Export RTI_Topic_i :
+ public virtual ::DDS::CCM_Topic,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ // Constructor
+ RTI_Topic_i (DDSTopic *);
+
+ // Destructor
+ virtual ~RTI_Topic_i (void);
+
+ virtual
+ ::DDS::ReturnCode_t set_qos (const ::DDS::TopicQos & qos);
+
+ virtual
+ ::DDS::ReturnCode_t get_qos (::DDS::TopicQos & qos);
+
+ virtual
+ ::DDS::ReturnCode_t set_listener (::DDS::TopicListener_ptr a_listener,
+ ::DDS::StatusMask mask);
+
+ virtual
+ ::DDS::TopicListener_ptr get_listener (void);
+
+ virtual
+ ::DDS::ReturnCode_t get_inconsistent_topic_status (::DDS::InconsistentTopicStatus & a_status);
+
+ virtual
+ ::DDS::ReturnCode_t enable (void);
+
+ virtual
+ ::DDS::StatusCondition_ptr get_statuscondition (void);
+
+ virtual
+ ::DDS::StatusMask get_status_changes (void);
+
+ virtual
+ ::DDS::InstanceHandle_t get_instance_handle (void);
+
+ virtual
+ char * get_type_name (void);
+
+ virtual
+ char * get_name (void);
+
+ virtual
+ ::DDS::DomainParticipant_ptr get_participant (void);
+
+ DDSTopic * get_topic (void);
+
+ private:
+ DDSTopic * impl_;
+ };
+ }
+ }
+}
+
+#endif
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/TopicDescription.cpp b/modules/CIAO/connectors/dds4ccm/impl/ndds/TopicDescription.cpp
new file mode 100644
index 00000000000..2950ec89dc0
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/TopicDescription.cpp
@@ -0,0 +1,55 @@
+// $Id$
+
+#include "TopicDescription.h"
+#include "DomainParticipant.h"
+
+#include "dds4ccm/idl/dds4ccm_BaseC.h"
+
+#include "ciao/Logger/Log_Macros.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ // Implementation skeleton constructor
+ RTI_TopicDescription_i::RTI_TopicDescription_i (DDSTopicDescription *td)
+ : impl_ (td)
+ {
+ }
+
+ // Implementation skeleton destructor
+ RTI_TopicDescription_i::~RTI_TopicDescription_i (void)
+ {
+ }
+
+ char *
+ RTI_TopicDescription_i::get_type_name (void)
+ {
+ return CORBA::string_dup (this->impl_->get_type_name ());
+ }
+
+ char *
+ RTI_TopicDescription_i::get_name (void)
+ {
+ return CORBA::string_dup (this->impl_->get_name ());
+ }
+
+ ::DDS::DomainParticipant_ptr
+ RTI_TopicDescription_i::get_participant (void)
+ {
+ DDSDomainParticipant* p = this->impl_->get_participant ();
+ ::DDS::DomainParticipant_var retval = new RTI_DomainParticipant_i (p);
+ return retval._retn ();
+ }
+
+ DDSTopicDescription *
+ RTI_TopicDescription_i::get_topicdescription (void)
+ {
+ return this->impl_;
+ }
+ }
+ }
+}
+
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/TopicDescription.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/TopicDescription.h
new file mode 100644
index 00000000000..cbd4c84433c
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/TopicDescription.h
@@ -0,0 +1,57 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#ifndef CIAO_RTI_TOPICDESCRIPTION_H
+#define CIAO_RTI_TOPICDESCRIPTION_H
+
+#include "tao/LocalObject.h"
+
+#include "dds4ccm/idl/dds_rtf2_dcpsEC.h"
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "dds4ccm/impl/ndds/dds4ccm_ndds_impl_export.h"
+
+#include "ndds/ndds_cpp.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ class DDS4CCM_NDDS_IMPL_Export RTI_TopicDescription_i :
+ public virtual ::DDS::CCM_TopicDescription,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ // Constructor
+ RTI_TopicDescription_i (DDSTopicDescription *td);
+
+ // Destructor
+ virtual ~RTI_TopicDescription_i (void);
+
+ virtual char *
+ get_type_name (void);
+
+ virtual char *
+ get_name (void);
+
+ virtual ::DDS::DomainParticipant_ptr
+ get_participant (void);
+
+ DDSTopicDescription * get_topicdescription (void);
+ private:
+ DDSTopicDescription *impl_;
+ };
+ }
+ }
+}
+
+#endif /* CIAO_RTI_TOPICDESCRIPTION_H */
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/Updater_T.cpp b/modules/CIAO/connectors/dds4ccm/impl/ndds/Updater_T.cpp
new file mode 100644
index 00000000000..9b829692743
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/Updater_T.cpp
@@ -0,0 +1,103 @@
+// $Id$
+#include "dds4ccm/impl/ndds/DataWriter.h"
+#include "dds4ccm/impl/ndds/Utils.h"
+#include "dds4ccm/impl/ndds/Coherent_Changes_Guard.h"
+
+#include "ciao/Logger/Log_Macros.h"
+
+template <typename DDS_TYPE, typename CCM_TYPE >
+CIAO::DDS4CCM::RTI::Updater_T<DDS_TYPE, CCM_TYPE>::Updater_T (::DDS::DataWriter_ptr dw)
+ : impl_ (0),
+ is_lifecycle_checked_ (false),
+ is_coherent_write_ (false)
+{
+ CIAO_TRACE ("CIAO::DDS4CCM::RTI::Updater_T::Updater_T");
+
+ RTI_DataWriter_i *rdu = dynamic_cast <RTI_DataWriter_i *> (dw);
+
+ if (!rdu)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "CIAO::DDS4CCM::RTI::Updater_T::Updater - "
+ "Unable to cast provided DataUpdater to servant\n"));
+ throw CORBA::INTERNAL ();
+ }
+
+ this->impl_ = DDS_TYPE::data_writer::narrow (rdu->get_datawriter ());
+
+ if (!this->impl_)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "CIAO::DDS4CCM::RTI::Updater_T::Updater_T - "
+ "Unable to narrow the provided updater entity to the specific "
+ "type necessary to update messages\n"));
+ throw CORBA::INTERNAL ();
+ }
+}
+
+// Implementation skeleton destructor
+template <typename DDS_TYPE, typename CCM_TYPE >
+CIAO::DDS4CCM::RTI::Updater_T<DDS_TYPE, CCM_TYPE>::~Updater_T (void)
+{
+ CIAO_TRACE ("CIAO::DDS4CCM::RTI::Updater_T::~Updater_T");
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE >
+bool
+CIAO::DDS4CCM::RTI::Updater_T<DDS_TYPE, CCM_TYPE>::is_lifecycle_checked ()
+{
+ CIAO_TRACE ("CIAO::DDS4CCM::RTI::Updater_T::~is_lifecycle_checked");
+ return this->is_lifecycle_checked_;
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE >
+void
+CIAO::DDS4CCM::RTI::Updater_T<DDS_TYPE, CCM_TYPE>::create (
+ const typename DDS_TYPE::value_type & an_instance)
+{
+ CIAO_TRACE ("CIAO::DDS4CCM::RTI::Updater_T::create");
+
+ DDS_InstanceHandle_t hnd = this->impl_->lookup_instance (an_instance);
+ if (this->is_lifecycle_checked_ &&
+ !DDS_InstanceHandle_equals (&hnd, & ::DDS_HANDLE_NIL))
+ {
+ throw CCM_DDS::AlreadyCreated (0);
+ }
+ this->impl_->register_instance (an_instance);
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE >
+void
+CIAO::DDS4CCM::RTI::Updater_T<DDS_TYPE, CCM_TYPE>::update (
+ const typename DDS_TYPE::value_type & an_instance)
+{
+ CIAO_TRACE ("CIAO::DDS4CCM::RTI::Updater_T::update");
+
+ DDS_InstanceHandle_t hnd = this->impl_->lookup_instance (an_instance);
+ if (this->is_lifecycle_checked_ && DDS_InstanceHandle_equals (&hnd, &::DDS_HANDLE_NIL))
+ throw CCM_DDS::NonExistent (0);
+ ::DDS::ReturnCode_t const result = this->impl_->write (an_instance, hnd);
+ if (result != DDS_RETCODE_OK)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("CIAO::DDS4CCM::RTI::Updater_T::update : ")
+ ACE_TEXT ("Unable to update data, error %d.\n"), result));
+ throw CCM_DDS::InternalError (result, 0);
+ }
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE >
+void
+CIAO::DDS4CCM::RTI::Updater_T<DDS_TYPE, CCM_TYPE>::_cxx_delete (const typename DDS_TYPE::value_type & an_instance)
+{
+ CIAO_TRACE ("CIAO::DDS4CCM::RTI::Updater_T::_cxx_delete");
+
+ DDS_InstanceHandle_t hnd = this->impl_->lookup_instance (an_instance);
+ if (this->is_lifecycle_checked_ && DDS_InstanceHandle_equals (&hnd, & ::DDS_HANDLE_NIL))
+ throw CCM_DDS::NonExistent (0);
+ ::DDS::ReturnCode_t const result = this->impl_->unregister_instance (an_instance, hnd);
+ if (result != DDS_RETCODE_OK)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("CIAO::DDS4CCM::RTI::Updater_T::_cxx_delete ")
+ ACE_TEXT ("Unable to unregister instance, error %d.\n"), result));
+ throw CCM_DDS::InternalError (result, 0);
+ }
+}
+
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/Updater_T.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/Updater_T.h
new file mode 100644
index 00000000000..d87ad096e81
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/Updater_T.h
@@ -0,0 +1,48 @@
+/**
+ * @author Marcel Smit <msmit@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ace/Copy_Disabled.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ template <typename DDS_TYPE, typename CCM_TYPE>
+ class Updater_T :
+ public virtual CCM_TYPE::updater_type,
+ public virtual ::CORBA::LocalObject,
+ private ACE_Copy_Disabled
+ {
+ public:
+ // Constructor
+ Updater_T (::DDS::DataWriter_ptr dw);
+
+ // Destructor
+ virtual ~Updater_T (void);
+
+ virtual void create (const typename DDS_TYPE::value_type& an_instance);
+
+ virtual void update (const typename DDS_TYPE::value_type& an_instance);
+
+ virtual void _cxx_delete (const typename DDS_TYPE::value_type& an_instance);
+
+ virtual bool is_lifecycle_checked ();
+
+ private:
+ typename DDS_TYPE::data_writer *impl_;
+ bool is_lifecycle_checked_;
+ bool is_coherent_write_;
+ };
+ }
+ }
+}
+
+#include "dds4ccm/impl/ndds/Updater_T.cpp"
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/Utils.cpp b/modules/CIAO/connectors/dds4ccm/impl/ndds/Utils.cpp
new file mode 100644
index 00000000000..cd1f279d7ac
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/Utils.cpp
@@ -0,0 +1,36 @@
+// $Id$
+
+#include "Utils.h"
+#include "ndds/ndds_cpp.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ const char * translate_retcode (DDS_ReturnCode_t ret)
+ {
+#define RTI_DDS_RETCODE(X) case X: return #X
+ switch (ret)
+ {
+ RTI_DDS_RETCODE (DDS_RETCODE_OK);
+ RTI_DDS_RETCODE (DDS_RETCODE_ERROR);
+ RTI_DDS_RETCODE (DDS_RETCODE_UNSUPPORTED);
+ RTI_DDS_RETCODE (DDS_RETCODE_BAD_PARAMETER);
+ RTI_DDS_RETCODE (DDS_RETCODE_PRECONDITION_NOT_MET);
+ RTI_DDS_RETCODE (DDS_RETCODE_OUT_OF_RESOURCES);
+ RTI_DDS_RETCODE (DDS_RETCODE_NOT_ENABLED);
+ RTI_DDS_RETCODE (DDS_RETCODE_IMMUTABLE_POLICY);
+ RTI_DDS_RETCODE (DDS_RETCODE_INCONSISTENT_POLICY);
+ RTI_DDS_RETCODE (DDS_RETCODE_ALREADY_DELETED);
+ RTI_DDS_RETCODE (DDS_RETCODE_TIMEOUT);
+ RTI_DDS_RETCODE (DDS_RETCODE_NO_DATA);
+ RTI_DDS_RETCODE (DDS_RETCODE_ILLEGAL_OPERATION);
+ }
+ return "***Unknown enum value, update RTI::translate_retcode()";
+#undef RTI_DDS_RETCODE
+ }
+ }
+ }
+}
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/Utils.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/Utils.h
new file mode 100644
index 00000000000..dbc687f6e7b
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/Utils.h
@@ -0,0 +1,27 @@
+/**
+ * @file Utils.h
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ *
+ * $Id$
+ *
+ * Misc utility classes for NDDS.
+ */
+
+#ifndef NDDS_UTILS_H
+#define NDDS_UTILS_H
+
+#include "ndds/ndds_cpp.h"
+#include "dds4ccm_ndds_impl_export.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ DDS4CCM_NDDS_IMPL_Export const char * translate_retcode (DDS_ReturnCode_t ret);
+ }
+ }
+}
+
+#endif
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/Writer_T.cpp b/modules/CIAO/connectors/dds4ccm/impl/ndds/Writer_T.cpp
new file mode 100644
index 00000000000..a27946d44ce
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/Writer_T.cpp
@@ -0,0 +1,111 @@
+// $Id$
+#include "dds4ccm/impl/ndds/DataWriter.h"
+#include "dds4ccm/impl/ndds/Utils.h"
+#include "dds4ccm/impl/ndds/Coherent_Changes_Guard.h"
+#include "dds4ccm/impl/ndds/InstanceHandle_t.h"
+
+#include "ciao/Logger/Log_Macros.h"
+
+// Implementation skeleton constructor
+template <typename DDS_TYPE, typename CCM_TYPE >
+CIAO::DDS4CCM::RTI::Writer_T<DDS_TYPE, CCM_TYPE>::Writer_T (::DDS::DataWriter_ptr writer)
+ : impl_ (0),
+ is_coherent_write_ (false)
+{
+ CIAO_TRACE ("CIAO::DDS4CCM::RTI::Writer_T::Writer_T");
+
+ RTI_DataWriter_i *rdw = dynamic_cast <RTI_DataWriter_i *> (writer);
+
+ if (rdw == 0)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "CIAO::DDS4CCM::RTI::Writer_T::Writer_T - "
+ "Unable to cast provided DataWriter to servant\n"));
+ throw CORBA::INTERNAL ();
+ }
+
+ impl_ = DDS_TYPE::data_writer::narrow (rdw->get_datawriter ());
+
+ if (!impl_)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "CIAO::DDS4CCM::RTI::Writer_T::Writer_T - "
+ "Unable to narrow the provided writer entity to the specific "
+ "type necessary to publish messages\n"));
+ throw CORBA::INTERNAL ();
+ }
+}
+
+// Implementation skeleton destructor
+template <typename DDS_TYPE, typename CCM_TYPE >
+CIAO::DDS4CCM::RTI::Writer_T<DDS_TYPE, CCM_TYPE>::~Writer_T (void)
+{
+ CIAO_TRACE ("CIAO::DDS4CCM::RTI::Writer_T::~Writer_T");
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE >
+void
+CIAO::DDS4CCM::RTI::Writer_T<DDS_TYPE, CCM_TYPE>::write (const typename DDS_TYPE::value_type & an_instance)
+{
+ CIAO_TRACE ("CIAO::DDS4CCM::RTI::Writer_T::write");
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO "CIAO::DDS4CCM::RTI::Writer_T::write - "
+ "Preparing to write to DDS\n"));
+ DDS_ReturnCode_t const retval = this->impl_->write (an_instance, DDS_HANDLE_NIL);
+
+ if (retval != DDS_RETCODE_OK)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "CIAO::DDS4CCM::RTI::Writer_T::write - "
+ "Write unsuccessful, received error code %C\n",
+ translate_retcode (retval)));
+ throw CCM_DDS::InternalError (retval, 0);
+ }
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO "CIAO::DDS4CCM::RTI::Writer_T::write - "
+ "Write successful\n"));
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE >
+void
+CIAO::DDS4CCM::RTI::Writer_T<DDS_TYPE, CCM_TYPE>::write_many (const typename CCM_TYPE::seq_type& instances)
+{
+ CIAO_TRACE ("CIAO::DDS4CCM::RTI::Writer_T::write");
+
+ Coherent_Changes_Guard guard (this->impl_->get_publisher(), this->is_coherent_write_);
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO "CIAO::DDS4CCM::RTI::Writer_T::write - "
+ "Preparing to write to DDS\n"));
+ for (::CORBA::ULong index = 0; index < instances.length(); index++)
+ {
+ DDS_ReturnCode_t const retval = this->impl_->write (instances[index],
+ DDS_HANDLE_NIL);
+
+ if (retval != DDS_RETCODE_OK)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "CIAO::DDS4CCM::RTI::Writer_T::write - "
+ "Write unsuccessful, received error code %C\n",
+ translate_retcode (retval)));
+ throw CCM_DDS::InternalError (retval, index);
+ }
+ }
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO "CIAO::DDS4CCM::RTI::Writer_T::write - "
+ "Write successful\n"));
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE >
+::DDS::InstanceHandle_t
+CIAO::DDS4CCM::RTI::Writer_T<DDS_TYPE, CCM_TYPE>::register_instance (const typename DDS_TYPE::value_type & datum)
+{
+ ::DDS_InstanceHandle_t const handle = this->impl_->register_instance (datum);
+ ::DDS::InstanceHandle_t dds_handle;
+ dds_handle <<= handle;
+ return dds_handle;
+}
+
+template <typename DDS_TYPE, typename CCM_TYPE >
+void
+CIAO::DDS4CCM::RTI::Writer_T<DDS_TYPE, CCM_TYPE>::unregister_instance (const typename DDS_TYPE::value_type & datum, const ::DDS::InstanceHandle_t & instance_handle)
+{
+ ::DDS_InstanceHandle_t handle;
+ handle <<= instance_handle;
+ this->impl_->unregister_instance (datum, handle);
+}
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/Writer_T.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/Writer_T.h
new file mode 100644
index 00000000000..28933e37208
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/Writer_T.h
@@ -0,0 +1,48 @@
+/**
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ * Wrapper facade for NDDS.
+ */
+
+#include "dds4ccm/idl/dds_rtf2_dcpsC.h"
+#include "ace/Copy_Disabled.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ template <typename DDS_TYPE, typename CCM_TYPE>
+ class Writer_T :
+ public virtual CCM_TYPE::writer_type,
+ public virtual ::CORBA::LocalObject,
+ private virtual ACE_Copy_Disabled
+ {
+ public:
+ /// Constructor
+ Writer_T (::DDS::DataWriter_ptr dw);
+
+ /// Destructor
+ virtual ~Writer_T (void);
+
+ virtual void write (const typename DDS_TYPE::value_type& an_instance);
+
+ virtual void write_many (const typename CCM_TYPE::seq_type& instances);
+
+ virtual ::DDS::InstanceHandle_t register_instance (const typename DDS_TYPE::value_type & datum);
+
+ virtual void unregister_instance (const typename DDS_TYPE::value_type & datum, const ::DDS::InstanceHandle_t & instance_handle);
+
+ private:
+ typename DDS_TYPE::data_writer *impl_;
+ bool is_coherent_write_;
+ };
+ }
+ }
+}
+
+#include "dds4ccm/impl/ndds/Writer_T.cpp"
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/dds4ccm_ndds_impl_export.h b/modules/CIAO/connectors/dds4ccm/impl/ndds/dds4ccm_ndds_impl_export.h
new file mode 100644
index 00000000000..7ca68d771eb
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/dds4ccm_ndds_impl_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl DDS4CCM_NDDS_IMPL
+// ------------------------------
+#ifndef DDS4CCM_NDDS_IMPL_EXPORT_H
+#define DDS4CCM_NDDS_IMPL_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (DDS4CCM_NDDS_IMPL_HAS_DLL)
+# define DDS4CCM_NDDS_IMPL_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && DDS4CCM_NDDS_IMPL_HAS_DLL */
+
+#if !defined (DDS4CCM_NDDS_IMPL_HAS_DLL)
+# define DDS4CCM_NDDS_IMPL_HAS_DLL 1
+#endif /* ! DDS4CCM_NDDS_IMPL_HAS_DLL */
+
+#if defined (DDS4CCM_NDDS_IMPL_HAS_DLL) && (DDS4CCM_NDDS_IMPL_HAS_DLL == 1)
+# if defined (DDS4CCM_NDDS_IMPL_BUILD_DLL)
+# define DDS4CCM_NDDS_IMPL_Export ACE_Proper_Export_Flag
+# define DDS4CCM_NDDS_IMPL_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define DDS4CCM_NDDS_IMPL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* DDS4CCM_NDDS_IMPL_BUILD_DLL */
+# define DDS4CCM_NDDS_IMPL_Export ACE_Proper_Import_Flag
+# define DDS4CCM_NDDS_IMPL_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define DDS4CCM_NDDS_IMPL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* DDS4CCM_NDDS_IMPL_BUILD_DLL */
+#else /* DDS4CCM_NDDS_IMPL_HAS_DLL == 1 */
+# define DDS4CCM_NDDS_IMPL_Export
+# define DDS4CCM_NDDS_IMPL_SINGLETON_DECLARATION(T)
+# define DDS4CCM_NDDS_IMPL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* DDS4CCM_NDDS_IMPL_HAS_DLL == 1 */
+
+// Set DDS4CCM_NDDS_IMPL_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (DDS4CCM_NDDS_IMPL_NTRACE)
+# if (ACE_NTRACE == 1)
+# define DDS4CCM_NDDS_IMPL_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define DDS4CCM_NDDS_IMPL_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !DDS4CCM_NDDS_IMPL_NTRACE */
+
+#if (DDS4CCM_NDDS_IMPL_NTRACE == 1)
+# define DDS4CCM_NDDS_IMPL_TRACE(X)
+#else /* (DDS4CCM_NDDS_IMPL_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define DDS4CCM_NDDS_IMPL_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (DDS4CCM_NDDS_IMPL_NTRACE == 1) */
+
+#endif /* DDS4CCM_NDDS_IMPL_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/ndds_impl.mpc b/modules/CIAO/connectors/dds4ccm/impl/ndds/ndds_impl.mpc
new file mode 100644
index 00000000000..d21bcb9d0d7
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/ndds_impl.mpc
@@ -0,0 +1,38 @@
+// $Id$
+
+project(CIAO_DDS4CCM_NDDS_Impl) : dds4ccm_skel, taolib, ciao_output, nddslib, ccm_stub {
+
+ after += DDS4CCM_lem_stub
+ libs += DDS4CCM_lem_stub
+
+ dynamicflags = DDS4CCM_NDDS_IMPL_BUILD_DLL
+ macros += BUILDING_NDDS_LIB
+ Header_Files {
+ *.h
+ }
+
+ Template_Files {
+ *_T.cpp
+ }
+
+ Source_Files {
+ Coherent_Changes_Guard.cpp
+ DataWriter.cpp
+ DataWriterListener.cpp
+ DataReader.cpp
+ DataReaderListener.cpp
+ DomainParticipant.cpp
+ DomainParticipantFactory.cpp
+ Topic.cpp
+ TopicDescription.cpp
+ Publisher.cpp
+ PublisherListener.cpp
+ Subscriber.cpp
+ SubscriberListener.cpp
+ StatusCondition.cpp
+ ReadCondition.cpp
+ QueryCondition.cpp
+ Utils.cpp
+ ListenerControl.cpp
+ }
+}
diff --git a/modules/CIAO/docs/CIAO.pdf b/modules/CIAO/docs/CIAO.pdf
new file mode 100644
index 00000000000..496a4af14ba
--- /dev/null
+++ b/modules/CIAO/docs/CIAO.pdf
Binary files differ
diff --git a/modules/CIAO/docs/CIAO_Style_Guide.txt b/modules/CIAO/docs/CIAO_Style_Guide.txt
new file mode 100644
index 00000000000..28c3245bc76
--- /dev/null
+++ b/modules/CIAO/docs/CIAO_Style_Guide.txt
@@ -0,0 +1,60 @@
+Error/Debug messages
+========================
+ciao_debug_level () and associated environment are no longer used.
+Instead, there are error message levels, in order from least to most
+severe:
+
+LM_TRACE
+LM_DEBUG
+LM_INFO
+LM_NOTICE
+LM_WARNING
+LM_ERROR
+LM_CRITICAL
+LM_ALERT
+LM_EMERGENCY
+
+Please use the full range. Severity LM_TRACE through LM_NOTICE should
+use ACE_DEBUG. LM_WARNING through LM_EMERGENCY should use ACE_ERROR.
+
+The verbosity of the logging output, i.e. which severity of logging
+messages are output, is configured at runtime from the command line of
+any CIAO executable with --log-level.
+
+Examples of usage:
+LM_TRACE should be used for gratuitous tracing flow of execution
+messages, and insignificant debug values. Feel free to be as detailed
+as possible here, the purpose is to make our lives easier when users
+are having problems. LM_DEBUG should be used to report significant
+debugging values and configuration parameters. LM_INFO should be used
+to report subactions (e.g. activiation of ports, establishment of
+connections), and LM_NOTICE should be used to report significant
+actions (e.g., component installation complete, container creation).
+
+Debug messages should begin with "ClassName::MethodName - ".
+There is a macro in CIAO_common.h called CLINFO. This macro expands
+to a set of default log message decorators, and should be prepended to
+any and all debug messages and error messages, e.g.:
+
+ACE_DEBUG((LM_INFO, CLINFO
+ "Servant_Activator::etherialize - Your message here"));
+
+It is VERY IMPORTANT to follow this format for EVERY MESSAGE to make
+it easier to filter and make sense of logging output.
+
+All methods (no exceptions!) must have a CIAO_TRACE statement at the
+beginning.
+
+Memory Allocation
+=======================
+All calls to allocate memory should use ACE_NEW_THROW_EX with
+CORBA::NO_MEMORY, e.g.:
+
+ACE_NEW_THROW_EX(pointer_var, constructor, CORBA::NO_MEMORY);
+
+Locking
+=======================
+Use gards as much as possible, using the _THROW_EX versions of the
+acquisition macros throwing CORBA::NO_RESOURCES.
+
+
diff --git a/modules/CIAO/docs/ConfigValues.html b/modules/CIAO/docs/ConfigValues.html
new file mode 100644
index 00000000000..70ade5ca68d
--- /dev/null
+++ b/modules/CIAO/docs/ConfigValues.html
@@ -0,0 +1,270 @@
+<!-- $Id$ -->
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html> <head>
+<title>ConfigValues Index</title>
+</head>
+
+<body>
+
+<h1>Index of ConfigValues</h1>
+
+<font size="+1" color="red">This page is currently a placeholder for
+all the configuration values we will support when creating various CCM
+deployment mechanisms, such as ComponentServers and Containers. The
+ConfigValues listed here are currently only partially supported in
+CIAO. <p>
+
+Note from self: There are discrepancy in this document. Most
+significantly, (RT)ComponentServer's don't get their ConfigValues
+directly from that passed in thru
+ServerActivator::create_component_server but rather, using some sort
+of pre-defined command line flags.
+</font>
+
+<h2>ComponentServer</h2>
+The <code>ConfigValues</code> for a <code>ComponentServer</code> are
+passed in via <code>ServerActivator::create_component_server</code>
+operation. CIAO accepts the following feature names:<p>
+
+<table border="3" spacing="2" cellpadding="3">
+ <tr>
+ <th>FeatureName</th>
+ <th>type</th>
+ <th>Requirement</th>
+ <th>Remarks</th>
+ </tr>
+ <tr>
+ <td>CIAO-svcconf-id</td>
+ <td>string</td>
+ <td>
+ Optional
+ </td>
+ <td>
+ Specify the canonical svc.conf id. This id should only serve
+ as a hint for the deployment framework in determining the
+ actual svc.conf file used to start up the component server.
+ Currently, CIAO's ServerActivator maintains a set of svc.conf
+ files and use this id value to map to the exact svc.conf file
+ name.
+ </td>
+ </tr>
+ <tr>
+ <td>CIAO-ORB[option]</td>
+ <td>string</td>
+ <td>
+ Optional
+ </td>
+ <td>
+ Specify an ORB option that you want to pass to the
+ ComponentServer ORB.
+ </td>
+ </tr>
+</table>
+
+<h2>RTComponentServer (Real-time ComponentServer)</h2>
+
+Like a regular <code>ComponentServer</code>, the
+<code>ConfigValues</code> for a <code>RTComponentServer</code> are
+passed in via <code>ServerActivator::create_component_server</code>
+operation. On top of the <code>ConfigValues</code> accepted by the
+regular <code>ComponentServer</code>, a real-time ComponentServer also
+accepts the following feature names:<p>
+
+<table border="3" spacing="2" cellpadding="3">
+ <tr>
+ <th>FeatureName</th>
+ <th>type</th>
+ <th>Requirement</th>
+ <th>Remarks</th>
+ </tr>
+ <tr>
+ <td>CIAO-rtcad-filename</td>
+ <td>string</td>
+ <td>
+ Optional
+ </td>
+ <td>
+ Specify the filename of RTCAD extension XML file.
+ The component server will invoke the XML parser and translate
+ the content of the file into the following two ConfigValues
+ (CIAO-RTresources and CIAO-RTPolicySets) to
+ RTComponentServer implementation.
+ </td>
+ </tr>
+ <tr>
+ <td>CIAO-RTresources</td>
+ <td><code>CIAO::RTConfiguration::RTORB_Resources_Info</code></td>
+ <td>
+ Optional
+ </td>
+ <td>
+ <code>CIAO::RTConfiguration::RTORB_Resources_Info</code> as
+ defined in
+ <code>$CIAO_ROOT/tools/XML_Helpers/RTConfiguration.idl</code>
+ defines the system wise resources an RT ORB should allocate.
+ These resources then can be used to define the RT policies in
+ the RTPolicySet described subsequently.
+ </td>
+ </tr>
+ <tr>
+ <td>CIAO-RTPolicySets</td>
+ <td><code>CIAO::RTConfiguration::Policy_Sets</code></td>
+ <td>
+ Optional
+ </td>
+ <td>
+ <code>CIAO::RTConfiguration::Policy_Sets</code>, also
+ defined in
+ <code>$CIAO_ROOT/tools/XML_Helpers/RTConfiguration.idl</code>,
+ defines a list of policy sets, which are named sequences of
+ policies. These policies often refer to the global resources
+ defined in the previous CIAO-RTresource via names. Likewise,
+ an <b>RT-container</b> also specifies the RTPolicySet its POA
+ uses via the name defined here.
+ </td>
+ </tr>
+</table>
+
+<h2>Container</h2>
+The <code>ConfigValues</code> for a <code>Container</code> are
+passed in via <code>ComponentServer::create_container</code>
+operation. CIAO accepts the following feature names:<p>
+
+<table border="3" spacing="2" cellpadding="3">
+ <tr>
+ <th>FeatureName</th>
+ <th>type</th>
+ <th>Requirement</th>
+ <th>Remarks</th>
+ </tr>
+ <tr>
+ <td>
+ CIAO-Container-Type
+ </td>
+ <td>
+ <code>string</code>
+ </td>
+ <td>
+ currently not supported.
+ </td>
+ <td>
+ Possible value: <code>session</code>, <code>rt-session</code>,
+ <code>unclassified</code>, <code>rt-unclassified</code>.
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ CIAO-POAPolicies
+ </td>
+ <td>
+ <code>CORBA::PolicyList</code>
+ </td>
+ <td>
+ Currently not supported.
+ </td>
+ <td>
+ Must not conflict with CIAO-Container-Type setting.
+ (Certain containers assume several POA policies.)
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ CIAO-RTPolicySet
+ </td>
+ <td>
+ <code>string</code>
+ </td>
+ <td>
+ Optional
+ </td>
+ <td>
+ Name, as defined in RTCompoenentServer's CIAO-RTPolicySets, of
+ the PolicySet this container uses.
+ </td>
+ </tr>
+</table>
+
+
+<h2>CCMHome</h2>
+The <code>ConfigValues</code> for a <code>CCMHome</code> are
+passed in via <code>Container::install_home</code>
+operation. CIAO accepts the following feature names:<p>
+
+<table border="3" spacing="2" cellpadding="3">
+ <tr>
+ <th>FeatureName</th>
+ <th>type</th>
+ <th>Requirement</th>
+ <th>Remarks</th>
+ </tr>
+ <tr>
+ <td>CIAO-executor-path</td>
+ <td><code>string</code></td>
+ <td>
+ REQUIRED
+ </td>
+ <td>
+ This string value specifies the location of the executor DLL.
+ In the future, we should use UUIDs to identify the component
+ executors and query the ComponentInstallation interface for
+ the actual location of the DLL.
+ </td>
+ </tr>
+ <tr>
+ <td>CIAO-executor-entrypt</td>
+ <td><code>string</code></td>
+ <td>
+ REQUIRED
+ </td>
+ <td>
+ This string value specifies the entry point of the executor
+ DLL. It points to a factory function for the component executor.
+ </td>
+ </tr>
+ <tr>
+ <td>CIAO-servant-path</td>
+ <td><code>string</code></td>
+ <td>
+ REQUIRED
+ </td>
+ <td>
+ This string value specifies the location of the servant DLL.
+ In the future, we should use UUIDs to identify the component
+ servants and query the ComponentInstallation interface for
+ the actual location of the DLL. <p>
+
+ Servant are part of the Container framework and we can use
+ type checking to ensure servant and container match with each
+ other.
+ </td>
+ </tr>
+ <tr>
+ <td>CIAO-executor-entrypt</td>
+ <td><code>string</code></td>
+ <td>
+ REQUIRED
+ </td>
+ <td>
+ This string value specifies the entry point of the servant
+ DLL. It points to a factory function for the compnent servant.
+ </td>
+ </tr>
+</table>
+
+<!--
+ <tr>
+ <td>
+ a
+ </td>
+ <td>
+ b
+ </td>
+ <td>
+ c
+ </td>
+ </tr>
+-->
+<!--#include virtual="/~nanbor/signature.html" -->
+</body> </html>
diff --git a/modules/CIAO/docs/Connectors.graffle b/modules/CIAO/docs/Connectors.graffle
new file mode 100644
index 00000000000..7051803af0a
--- /dev/null
+++ b/modules/CIAO/docs/Connectors.graffle
@@ -0,0 +1,10989 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ApplicationVersion</key>
+ <array>
+ <string>com.omnigroup.OmniGrafflePro</string>
+ <string>138.9.0.117994</string>
+ </array>
+ <key>CreationDate</key>
+ <string>2009-09-10 13:37:03 -0500</string>
+ <key>Creator</key>
+ <string>William Otte</string>
+ <key>GraphDocumentVersion</key>
+ <integer>6</integer>
+ <key>GuidesLocked</key>
+ <string>NO</string>
+ <key>GuidesVisible</key>
+ <string>YES</string>
+ <key>ImageCounter</key>
+ <integer>1</integer>
+ <key>LinksVisible</key>
+ <string>NO</string>
+ <key>MagnetsVisible</key>
+ <string>NO</string>
+ <key>MasterSheets</key>
+ <array/>
+ <key>ModificationDate</key>
+ <string>2009-09-15 17:17:06 -0500</string>
+ <key>Modifier</key>
+ <string>William Otte</string>
+ <key>NotesVisible</key>
+ <string>NO</string>
+ <key>OriginVisible</key>
+ <string>NO</string>
+ <key>PageBreaks</key>
+ <string>YES</string>
+ <key>PrintInfo</key>
+ <dict>
+ <key>NSBottomMargin</key>
+ <array>
+ <string>float</string>
+ <string>41</string>
+ </array>
+ <key>NSLeftMargin</key>
+ <array>
+ <string>float</string>
+ <string>18</string>
+ </array>
+ <key>NSPaperSize</key>
+ <array>
+ <string>size</string>
+ <string>{612, 792}</string>
+ </array>
+ <key>NSRightMargin</key>
+ <array>
+ <string>float</string>
+ <string>18</string>
+ </array>
+ <key>NSTopMargin</key>
+ <array>
+ <string>float</string>
+ <string>18</string>
+ </array>
+ </dict>
+ <key>QuickLookPreview</key>
+ <data>
+ JVBERi0xLjMKJcTl8uXrp/Og0MTGCjUgMCBvYmoKPDwgL0xlbmd0aCA2IDAgUiAvRmls
+ dGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGtWMtuHccR3c9X9JJasNXvx8pIJAew
+ FkZkEsgiyMJgrmAppBVTsr8/53R31QzvpWQtAoKYnr79qDpd51T1/Gbemt+Mw1+uxdQY
+ zePJ/MP8al6++uTN3Sfjx9+nO3PtbDb8Pwx8Z17+/fR4d/rv599/vt8e32MpH8JYDqv5
+ lkzu2dw9mJc/PHjz+uPY7GxE7PVihGvTpIY1qskub3ONIGtg9WEzBsBkDFhLRBmArdeA
+ UI8D0jasePnT6f7nz+//OL36eP/x8f3D6fPj+zsDB5xtoThsetkABsE5U0oyDyZ0t7F1
+ j1awtfg0fghwtxQ/O8ZL7gbz2O3zGM1WsCG2olO34h1XxC+Oo7kLWvfG9zpH8tWPRdbU
+ +QK3V3eW53b2C/bnOgez9kVhv3h0Z37R9oN5h0N/s3nzYYbBq5sBpjM3r3jC4+WaD8YL
+ TmYs0icqpnDDHZRO57fq6QdsIRI1LUi8bwsSH5xgttD0IQ5I+JyQsHUP9xYkfKVfOnW8
+ YMUJCdeWHnnOX7D9QGQ3SteE7csXxYNu3SBuwYdAPjiDODiAEBKgjZUB+tdbGLPACeYa
+ LsXkWjDJ3IIBf/MWZ2hu35l/mqub0wsSKpirX18g1PD893qeXmzzh8cX5l/m9o35/nbu
+ Pth4GZXas8IzlbIOAq3tcBL8geinEgVqvmDZ2e3rOovk09PwNMmHjeGJ5zoLtg7hyVeC
+ rFPnC4i9uuvxuSXstX7B/jM81Sw9jGEwqMCnHAfbDM/DAYwoJPw8uVDq8p6tg/d8pfeh
+ dHEOL3X4g+7oy/I++jbggcMrEmPwIxL5nJHI1sF7vtJhmbpeaPXsLoOU3GO9r1+4//Re
+ zVLvh8HLI/EefdufR2OKkJwRjc4654K5hR3HuMzWwY5o0vY0Lq9+Ot2doImIvNsP53FX
+ va9DFmvN2YF65EFwQJNMy7FYBz2EeVjaRh+QJ2LjmdiWczA5I6gqqBdCtA4t9HgkE6wR
+ YE9LWCMX230C2BmTSssbe1yEpewpvfd9UikYUj06qo3O4XBbtXmsm7KtMWFSjbYUZJcc
+ u+0xlo2RDrJ1SG+O1foAWDgq5Y7tg7e9NChA7rYNB0KaFmaERIDPGZQOzcPCmGwMccsI
+ luZge4jB+oYDzjIHv8RSgAIaiHdmsm4zB1TEFyPxArt5zGeIPhvuU3TXSN+BG9zDSMF+
+ xJtij91hfwD9BXuY+hR7X4H00OeFvWFPL6luir1OEux9zTwVIC3YI1vbUDJOQ7D3HcfN
+ RLljT+Nsqw2oCfaIIRw0gRXsg2tPscdZ2QoMBXsTIFNYCcok2OscwZ5DckNBsrAPLoP8
+ KBYUe8XuiD0MVES/Lv2IPwT5M9IPp32oFwyj8n9cQn8nGeA/0tCc8PnTM9qPdAw+txBz
+ 6CxuLtNQwlGcEz/MOugaz2sfkZAqFBTQTuoHSUlX3323k/4grsxuuf1/lkWGr7mBe3Sk
+ ppwgJ3DCQwccCsWlIIziFIaCbATXk849UB6WgnjESMUsFQOPgsu5clAQX8HuTvYtBdnY
+ 4zp0QmRnhGqCcu8KAq0KY11REN9BEx8pZVNBGMUOMpGhTSIgHBQbNVAExLfwVEDY4Sno
+ KiCeHHKQQ1GQzZdsU6GfS0E8TAdJoDqqIBE8dsRKNOQcO0bx7IN9U5G/qB9r7iHWBfeR
+ pRR3UY9NcRchUNxVPRR3UQ/IyMJdJ1EigDtORNRDcFf1UNyP6jFxHxI3xENxF/HYFHcR
+ AsVdxUNxF/UwirtOWrhvu3oI7qof59jtuMO+C+3YnikbPXOXasfziRqKV0pFAtsLSIgA
+ Csir169vdrruNzXSqnRo5MiWxdehEixkoBtInntIBESkK4FhDBluCJXMy5pQLDr8nCLT
+ 9kwU0UVk14JgBDojSceAmEaQjB4m6Q1lkGU20DkR+TcxgCVHxwTlGcsKwyKgRXnAfKwM
+ i0hBObm+U4yjkvNYSSgWA+bBfmVLJCUqRUFydPQOKZkmgz9M0ltETinpMAmVgC2NnBOK
+ oYCAe6g4lGKX6OGwR3F4jullVTrStKB/CAxBn8G8KfpCNKPoC2cUfSWaoq9EW+iDBOvE
+ BH3lmaKvPFP0DzwT9JVom6IvRDOKvnBG0VeiKfpKNEF/k0mKvhJN0VeiKfqK3kjUC9Nv
+ TdQRV++dbMda2BcbY3T+uUx9uxL19z9Kgv7LMS0fsuR+EUZS6C6lDd8QkG5KYDZrGUmE
+ ly8UfD6gML2XC+W80o0bI4vpBL5E3hcLalqEKa40ZAXy2JYgli6Pzw0RxRPvvqmC7qA0
+ lsPV/XLuO6z7Bv8fnr8syQSUa7bU42YowuBFGhci2SwUfHdI43vHYbM1d91J8MkAqf1y
+ u8EC6Eh3q8BDo9G53qkPAAZMrfxqcLO9hSc4kpDSRKHAUYyELjlwHz4z04+LXUIRkHlw
+ QAblHb+t0LKzyTDtyzgMw2TG8CXiXnLYLqCwoKLhHrm2QzVcAT9KyCfbHSazYPwqEpBM
+ LuJhGqurAFmbAcE3Hv34kII7BT0b31ISQmK16eI+arm2fQFzro7T9XSJdxTuOnzBrWe1
+ 53oyivj/me0MPV40kA+q78jvKHVR/iwfKC2Nr0wlsUV6yXKfNwCmAVyeeHrM3anyPoe4
+ 8riHoQ+Vy/lkbHQ4PRbA+Dt+eNIZ1M7i8flm346651k/HbZDRrSt1Y7vIoftDpO/5fQm
+ AijCbe4hoI5BcLrOmzxn4zJqPa+ROUeLwJ2fxVDKjbzHShUMnx8mEj+bMKE2cByftn55
+ dvIBAVbOZwjodr6CEAkJEIeNEoTbwTTEL7h22I75wrOGJALPTf4aAuMrC6JqIcAW4lXO
+ ftwVcMYSvxmxJ/Er7RlvjIT+DdTE+jxEuoT4lb1QPWp7rDdKSY6i7W//B46qmM4KZW5k
+ c3RyZWFtCmVuZG9iago2IDAgb2JqCjIxNjIKZW5kb2JqCjMgMCBvYmoKPDwgL1R5cGUg
+ L1BhZ2UgL1BhcmVudCA0IDAgUiAvUmVzb3VyY2VzIDcgMCBSIC9Db250ZW50cyA1IDAg
+ UiAvTWVkaWFCb3ggWzAgMCA1NzYgNzMzXQo+PgplbmRvYmoKNyAwIG9iago8PCAvUHJv
+ Y1NldCBbIC9QREYgL1RleHQgL0ltYWdlQiAvSW1hZ2VDIC9JbWFnZUkgXSAvQ29sb3JT
+ cGFjZSA8PCAvQ3MyIDE3IDAgUgovQ3MxIDggMCBSID4+IC9Gb250IDw8IC9GMi4wIDE5
+ IDAgUiAvRjEuMCAxOCAwIFIgPj4gL1hPYmplY3QgPDwgL0ltMiAxMSAwIFIKL0ltMyAx
+ MyAwIFIgL0ltNCAxNSAwIFIgL0ltMSA5IDAgUiA+PiA+PgplbmRvYmoKMTEgMCBvYmoK
+ PDwgL0xlbmd0aCAxMiAwIFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9X
+ aWR0aCAyMTYgL0hlaWdodCAxMTYgL0ludGVycG9sYXRlCnRydWUgL0NvbG9yU3BhY2Ug
+ MjAgMCBSIC9JbnRlbnQgL1BlcmNlcHR1YWwgL1NNYXNrIDIxIDAgUiAvQml0c1BlckNv
+ bXBvbmVudAo4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Ae3QMQEAAADC
+ oPVPbQo/iEBhwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwMBrYCWvAAEKZW5kc3RyZWFtCmVuZG9i
+ agoxMiAwIG9iagozNTEKZW5kb2JqCjEzIDAgb2JqCjw8IC9MZW5ndGggMTQgMCBSIC9U
+ eXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lkdGggMTUyIC9IZWlnaHQgMTE2
+ IC9JbnRlcnBvbGF0ZQp0cnVlIC9Db2xvclNwYWNlIDIwIDAgUiAvSW50ZW50IC9QZXJj
+ ZXB0dWFsIC9TTWFzayAyMyAwIFIgL0JpdHNQZXJDb21wb25lbnQKOCAvRmlsdGVyIC9G
+ bGF0ZURlY29kZSA+PgpzdHJlYW0KeAHt0AENAAAAwqD3T+3sAREoDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYOADA86gAAEKZW5kc3RyZWFtCmVuZG9iagoxNCAwIG9iagoyNTQK
+ ZW5kb2JqCjE1IDAgb2JqCjw8IC9MZW5ndGggMTYgMCBSIC9UeXBlIC9YT2JqZWN0IC9T
+ dWJ0eXBlIC9JbWFnZSAvV2lkdGggMTY4IC9IZWlnaHQgMTE2IC9JbnRlcnBvbGF0ZQp0
+ cnVlIC9Db2xvclNwYWNlIDIwIDAgUiAvSW50ZW50IC9QZXJjZXB0dWFsIC9TTWFzayAy
+ NSAwIFIgL0JpdHNQZXJDb21wb25lbnQKOCAvRmlsdGVyIC9GbGF0ZURlY29kZSA+Pgpz
+ dHJlYW0KeAHt0DEBAAAAwqD1T20ND4hAYcCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYOB3YORgAAEKZW5kc3RyZWFtCmVuZG9iagoxNiAw
+ IG9iagoyNzgKZW5kb2JqCjkgMCBvYmoKPDwgL0xlbmd0aCAxMCAwIFIgL1R5cGUgL1hP
+ YmplY3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0aCAyNDQgL0hlaWdodCAxNTIgL0ludGVy
+ cG9sYXRlCnRydWUgL0NvbG9yU3BhY2UgMjAgMCBSIC9JbnRlbnQgL1BlcmNlcHR1YWwg
+ L1NNYXNrIDI3IDAgUiAvQml0c1BlckNvbXBvbmVudAo4IC9GaWx0ZXIgL0ZsYXRlRGVj
+ b2RlID4+CnN0cmVhbQp4Ae3QMQEAAADCoPVPbQhfiEBhwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMvAMDsq8AAQplbmRzdHJlYW0KZW5kb2JqCjEwIDAgb2JqCjUwOQplbmRvYmoK
+ MjEgMCBvYmoKPDwgL0xlbmd0aCAyMiAwIFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUg
+ L0ltYWdlIC9XaWR0aCAyMTYgL0hlaWdodCAxMTYgL0NvbG9yU3BhY2UKL0RldmljZUdy
+ YXkgL0ludGVycG9sYXRlIHRydWUgL0JpdHNQZXJDb21wb25lbnQgOCAvRmlsdGVyIC9G
+ bGF0ZURlY29kZSA+PgpzdHJlYW0KeAHtXAdXFNnWnfDe6KioIEgOShAEJEhQgiRFUBAE
+ UZQgCCIgkpGMIigKAoqSg6AoCuYwTnizvr/27X1uVdOgD1sf47y3lmct6epqoWvXOWfX
+ rbp73++++xbfzsC3M/DtDHw7A9/OwLczoJ+B71X8YAhth/75/9orD1/D8qPEPxhq80ft
+ A/yX/ylYGqIff/zHP/4p8ZNxqF0CUvD9b4BTaQIkHP5PP61ZsxbxM2KdFtjkrrVr1vxE
+ gMggwf23Y5NMKUxABDTr16/fsMHMbONimJmZbdiA3esIUMApbCxcQ1XyjQrDrr9vwwDq
+ J2ICIMDZtGmzOcLCwmILA68WfL95E4CaAd5SbFrfffBCiH8LLnwvD4aZAiikCZiAyGKL
+ paXV1q3WCBsV3LTeamVlabnFguiIbR3zpqpSyEU1oP5TsY1A/VrgpFK0k6t1lCQKmMzN
+ twCRtY2tnZ29gyPCSQU3HRzs7exsbQDPcou5OTJHbNJ1a1RIA+o/0IhfrRMJSOEhceOM
+ 4uSCJNauRT+ZbUSeLK2sbezsHBydnF22bXd1dXVzc1fh5oZ327dvc3F2cnSwswM4SZwq
+ SnTdYmyQLsT7dYJZ0OFCga/Fl/8FRalBMpA4KFxYjxyxYSNAbbHcam1r5+hERO4eOzy9
+ vHZ6e/sYwtt7p5eX5w4Pd1egc3K017GhKjex69CSmzYzzPlDdoFpVEZJMxq01UWmqEEn
+ cZYKGZwnmSQhDYVE2Ts6b3N18/D08vbx9fMLCAgM3B2kx+7dgQEB/n5+vj7eXp4Ap7DZ
+ Wluj5YzCSgvsQiMKz5gJtr8AmsZ3ihtIDgYOF9azsJREOTi5bCcmQAoIDAoODd0bFhYe
+ HhGpIiIiPDwsbE9oaHBQYIDfLp+dXkyci7Mje87OloFXhL0ENtCI0omgGXYiihLQ5NKw
+ OuXIhtL4TiM8Mh4pHKRHjkDxIVEuSJSXNzAB0t7wyH3R0bFxcfsPxOtx4MD+uLiY6Kh9
+ keF7AS7An9h2uLsicS4uzgi8uLhsQ2znD+xzAtPY29miEy0twDJm5E+tHr//jxtNRyXc
+ YEzipHCN9Jxd0FA7vHx2+QcGh4ZF7IuO3R9/MPFQUlLykZSUlFQJbBxJTjp8KPFg/P7Y
+ 6H0RYXtCggL9/VCU7DktduzwRFciPLnPHVQDngHN2KJYCW0DLntrVKf9Z8g0VLw0sZHI
+ DSRxjcNBeuQIN48dXjt9/AJ2h+wJj4yOO3AwMelIalp6xvETmSdPnsrS4tTJzMwTGRnp
+ aSlHkg4lxMfFREUS22723K5dvr6+u3b5IfxVYGuXj9aJrFZ7QkNBasiEHb+YQdhXqECg
+ WicsrggPJC5wXN3cPch6O9FQ/oFBoXsj9sXsB6aUtGPHM7NycvPyzxQUnj1bpMXZwoKC
+ M3mnc7OzMo8fS0tJPqywhbPnQoIRISEhoaGhe1RwX5DqRG9W6zZnR/CnpYVCxj778rGl
+ MapNuDRttcGFiYQHEieH+/j47vLzF47YExYZHXsg4fCRo8dOnMzOzSs4e66ktKysvKKi
+ orKyClFZic0LZedLS86dLcjLzT51IoPYEuP3s+ei9jGioqKjo2NiYmLxL5qNGBEWFopq
+ DfDz2enp4eri5GCrIRMG+UJgWrIkV5vMt1hZA5QiPG8fwgkAhQeHhO7ZGxYRGR0TF89E
+ ZWRmAVNRyfkLFVU1dXX1DQ2NjU1NzYimpsbGhoaLdbXVVRUXzpcUFeafFmypR5IOJyYm
+ JBw8mJCQkJiYeOiwikPYGQ/Q0VGkmSBC2+G23dnBTpCBQbSUfXYtEhZKEH1lthGobOwc
+ ncHiQni7gwAHHB4RuS8qOiaWDXU4WYHKLzxXeqGyuq6+sbml7dLl9vYrHR2djI6OK1fa
+ 2y+3tbU0N9bXVVeWA1sBsWUezziWpkV6+rEMPY6lpx1lJyKjsehEgebpDmS2Wy3N0Wbg
+ D6nFzwQGWOwsNNbGzRbIlaOLK0Dt8t+tkXgMODwepJd4OCk55WhaBqrv9JmzxefLq2qB
+ qe3ylc6rXV03uru7e26q6Onp7r5xvavraueVy20tTQ0atkK2XG5OdnZ2Tk5ubu7pvLy8
+ /Hz8wN6crFMgmjRkNDE+LjoyLGS3n4+X+3Ynexsri01m638GMbLJPguYgrVmLQZI5pYa
+ Kh+/wGASHkg8QeCkpKalHcs4nnmSJIHqK6uormtobgUmILrZ299/6/bAwMAdLbB5+1Z/
+ f+/N7htdVzvagY15qyg7X1JSfI5RXFxSUlJ6voyBPiw5V3QWGc3NysxITyW0qPBQIPN0
+ c3G027rFfCMon8A+i+8NsMw2WVjZODgjV74BQaHhivBA4scywOGnsrJzc/PyzpAkzl+o
+ rAGotvbOa9e7e/tvDdwdHBoeGRkdHRsblxgbGx0dGRkeGrw7cKu/t0fHJi1XrUVNTW2d
+ HrU1AH2hTGgm59SJ9JSkhLhoItvp4eqELlPAUIqfkzApwjU/owa3bLVz3Obu5RMQtCcy
+ ev9BEt5xyQ85vOhcMVjvQkVlNTA1tVxqR6Ju9gHT0Mjo+MTk1NS96ekZQ0xP35uamhwf
+ Hx0ZGhy4rWO73Nba0kJmaW5uaW1ta2u7xMBrS3NTYwN4pqKs9FxhXs7JjKPJifujwkIC
+ fJEyewUMPfY5lSiUQVisQSfXHd5+QBVzIDH5qEZ4yA/gVFRVV+ME1zc0Nbe2tXdc7UKi
+ bt8ZBKbJqemZ+w9mZx8+ejSnx6NHDx/Ozj64PzMNcGMatpvd17uuXRVm6ey8evVaF+L6
+ dbSh7L3Sfqm1ueFibVV5aVHB6azjachZ5J4gPy93FwcBBvL4jITxuvVP9BZh2bu4oQRD
+ w6MPJKakncjKJTdcqEB+LtY3NPIUk/U6Oq91dff09jNRYxPA9GD20dzjJ/Pz8wsLC0+1
+ wOb8/JPHc3OPZh8YsN1BUfb16tHX128I7GUnXuu8cqm1qb62sqyk8HRWRurh+OiwYP+d
+ HgS22Ww96N50YKhCMOF6s82W1g4u7l5+QXv3xSUeSc/MzissJjeA8AAHHI5TfK3r+g1A
+ 6uu/PTA4PIJEzdyffTj3eH7h6bNnz1+8eLkkXrx4/uzZ04X5J0bYkLjBwbsMvA4ODQ2r
+ GEIj3kG19vV2X7/Wcbm1sa76QklB7sn05ITYiBB/b3eU4pZNG9atRSWa2GFShWvXmW3e
+ gmy57/QLDo+OT0o7kZ1XVFpOwiOJKzg3ewEIiEASwyNj41P3JFFP5p8+e/7y5avXbxhv
+ DcF3r1+/evnyObE9Fmwz96YmJyYUs4yPT0xMoiklJiexd3RkmDTT13Pj2pW25otVZUX5
+ WRkpiXEAttPN2W4ruOMzEsZ0rfl5wyYLazvA8g+JiE04cuxU3tmSipp6Eh5IvBeMBzh3
+ cI7BeqNj4xNTU9NaopCml6+A590vjPdGwffv3r0FOg0b8vZw9gFaTuL+/fsP0JNacC+I
+ ZmJ8dHhw4FZvd1dHW1NdRUlBzolUAAv283J1tLE0N1tncocxXajCjeZWds5uhBWXmHI8
+ +0zxher65sud5AYhcXA4GBxnGKw3g+JDRz2ZX2CiXgum97/++pvE71qod7/++h7ggE3P
+ m7Scxi2PHz95wq5EHz55zE58OEuamRgbGRzo677W3lJfdb4w90RKYkzYbh8PVKIFE2Zi
+ IUq6UIWWNo6uXn7BgHU0M7ewtLIOqK739N++S8IDnHukcJIeWI8kgY5CogTUe0L6/fc/
+ /vjjX0sCO37/HR9p2FiT7Dj0HIKviOcquMlOfDwHbNNT40DWe6OzraEawI6nxEeF+nu5
+ Otlabt6AYYdpDfa9SpcFmsvDNygsNjE1M/dsWXVDW0fXzf6BQXKDkLjicMV6JAl0FKoP
+ lQdQwKQD+tMQ+h6AAzQ9b+g4wEO8QrxGsA3Rh7IbqJ8Ky8wA2d3+bgIrLcg6lhQXEeSL
+ hKHDwBw//mDKWIrdtc7M3NLWyW1nwN7ohJQTuUVlNY2Xrnb3DwyNTkwZSBwULieYrEeS
+ YEcZgzIAWrIh6ASawoaOeyfUgtd3qifZhyxWduIrZnThydzszNTY4C0CqyzJO5maEM2E
+ OYIS15uIi2WI7rKwdtjm6RccGZ+cgWzVNLV33bw9ODoJcjCQuDrJcoLfCqZPg1IIdWgs
+ SYBD6hjc0FpS249OZCu+fvni2dMncw/ujRNYa115UW5GUhw6zN3ZDoVoYoOxDH/esJnp
+ 8g4Iiz2UllVwvrqxvat3YHj83v2Hc8YkDjg668khsaXkoJdk6CNvtJJEv6HhjIN7VGCv
+ wAO4tyCZZwtzswDWf6O9qbr0zMnUg/tCdu1gIZr9bBpxfP+DlOFWe5cdu5CulMy84sqG
+ S9d6B0YmZmbn5tFHBhKXc8wvRxizxFIg/6fF0r1//qlhW+lF0Qw68d2bVy8WHs/eG73T
+ e62tvrwoJ/1QzJ4AFqLFRjC9KcQBXFKGIMOAPdGH0rMLL9S1dvYMDE/MPHzy9DlYXNpI
+ KoZnWp1dw9EtOXodkv665EPtjf6bH/lMPpJWfP/L29cvFubuT47c7r7SXF2SdyIZhejt
+ 5mSzBUxvGi621yaWoc/u8Ljk43klVY3tN/oHx2cezj97+ZqEp6VHPyLt9cMD0+EYv374
+ v1bco6D9/tuvv7x99Xz+0cz4XSSsrqzgVGp8JBnRztJU4iBtoL3sSPKR8aknC8qQrpsD
+ o1Ozj5+9RK7I4jqJr3hIf/5pjEff/sSvfORjQiOwNy+fPX4wNXzrRntDRVF2WmJ0qJ/n
+ Nnsr8w2mEaLCZWWH9gqJSkjLOltef6mrD+maW3jxmrAUquUHoB/3arwu/9sC7P2718/n
+ H06PDvR0NlcX52YcjtmLBnOwNpU4SIdm5lb2YPnQ6MT0nKKKhvYbt4YnHzBdOqwl37wa
+ UD7yN4y+41//wqUcCXs6NzM+2Hu1tbZUGizQ+zOIQ+HaquE6lnuusrG9+/bI1OyTZ6/e
+ /vLbb6xBo6/E5keOaTV2GX2JJOyXtyzEyaH+LjbYyRQ0GK5gtpYkjh8/favyebhWA8BK
+ f0MDh4T99v7tq2dPZqdGbt243FBemHWUVzASx2YZcXwS2L+pwynW4Yf5WumYVuMzY1xs
+ sNl7IwPd7Y1GxLHVfINJV+YffvwJfEje8FO8UdFw+Xr/0OT9uaeqv5bU4Woc+0p/wwjX
+ rwbi6GiuInHE7g3YaWiwTw59jXgew43UU+D5Np0P37x7r+jQUPsrHdNqfGaM65c3Lxbk
+ CtbZUlOSdzx5f/huH/3K/OmHHDLs5XXZ3Sco4kBKZv752pbOm3fGph/OP8dVeRlxrMax
+ r/Q3luJ6uUBC7OOV+UwmiCNYNZhJQ9/vZTi/xdrRdWdAWFzS8dPFVU1XNEL8sBBXOqbV
+ +GwR1+/alXlyuP/65frys1m8Mvt7befQl0PETxWijHs3mls7bPfy5/iQF7DLXf1DE6rB
+ VCF+/TrEkANDqWeKOK40scFwryJXMBkifrIQ5T4FF2YZcOw7eFQa7Grv3fGZR6oQZbyh
+ A1uNnKz0Nwz5Ai6MOF6oIeLVltrz+SxENUQ06R5MPQZAgzlLgx05kVdS3dzRPaCuzBxx
+ GF+ZVzqm1fhMP3+8gLEQn87dn8CV+dJFXMH0ISLvwUy4VxHi2GhosIxcjqSu92MkJUyP
+ QjRi+tU49pX+xlJc2pX5Nq5gledQiLFh2j2YKQ8DgGvNOmkwGSGmZRVeuGhg+tca0+vf
+ t9IxrcZn+vfICFEb+o4N3MTQtyQv88gBML27k41p9yokDo58caeyK3jfwdSTZ8j0vYtM
+ zwbTv281jn2lv6F/j4wQ37/DFUyGvnIPdtJwD6aGUp94KCUNxgccSxqsZ2Dknhr6SoPp
+ 37fSMa3GZ/r3ANdigw2iwerZYAlRfMhhh3swDqU+jUvumG3UHfNHrmB/T74ULg7peQXj
+ vWW6dm9p2sMb7UHbFjzu9Q7ElTkjtxhPAoyvzH8fLt6qzOr3zDnHDuGe2WubqQ+lPiBE
+ 4NJHHLwF+5v6S8+XAVcucO3BiMPBtHx9txyXGkmxv+bl1vLr4dK7iw/lcMesLmC8tbzO
+ Zxw5Uoem52v5CFEuzD0Do/c48v1aPL8IiVtCGxhwaHzYR944a3h2o+XrE7zxnXqCyAsz
+ +ytZBhyGET1xfY3rsjEufB/T9f6XNxggPpweu4NHHHzWJrfMJvOhjsvG0c07MHw/cJXW
+ yJ0KBogv5A7sL8dlDEqeC3MGxvBsdFh7NooBYkSQj4d6SI/p2E/mS92pABeejO4/kplP
+ XDLwXfgAF45Au0wtOZaPvTHtcrb8NyVX0lvI1ouneJY9drcXZVihJh8C+czXtPHGd1p/
+ qeuXARfGG8jX8v5afhgrv/84tH/3O4SEAmSu8Ij+7ZuXz/GIfppzD1eaa86jDHn5Ah3K
+ rKUJk2CCa9MWAy7UYTOf+JI3wPNLB/T/7qA+vv9DYB/5fwqPhkmB4pTKi2fzc4A1ZJgr
+ St4vk3sYbsiN5aefSMkTeuLyRh0q3lA3KvJoFI/neadiGCJ+5MiwSw7uw4+WAVv2H+SX
+ +AOTGWqeSKY11RTYwuNH96cwBdbT2VZfUZyXibk9mVJBGZr0IEC/fglvaE8COPMwNDEz
+ h4S94ZykPs+1DJzhuJZuLDn6JciMP9F+R80NyUQtZ9g5r/cKyoj5x49mpydHBmUutrLk
+ TFba4bhwfS7WxCeIxk84Yg/zBgyP6Hvvjt2bfbzw4hXmHrSJyeXT4upEy6nmDJLxlNiy
+ EyBk8yEoDRPmL5fNw87PPXyAidihgb4bHW31lSWcYj4Qie6i2EHmzk2YY1a8YYHrF59w
+ JOIGrKyupbP71tD4DIBxBoyTRcTG6Tzt+OWVexAyo6pPqpoyhympAij+LpOkzSyLWEDN
+ m1MSMHy3v6ervfliBbKVkRwftSfAGzOxIk4xSXRjeHKDqYeQqIOpmfklVXh0gxnLSc5Y
+ Ym5PnyUnOgkFBZPEnPBm9ehz4ErFoZWtcYIWtxdBGSQCSv8AmQO0ANQ5zExNjA7fvdV7
+ vfNSU215cX7WseT46L2BkHA4UEyEpwCffGyDi5vgUjeWvkER+zFxXnShrvnK9b47IxPT
+ Dx7NUX1CpQYlAJxhljlmvvA0i0QBGgVqFvBG1wgsduRiRWoNxbGExnrvRIrzQlduABJU
+ N9DcUJfSD/kGhCnVZUV5p9KTAGu3747trEIz0UiZMBW7ZOZ8b0xi2qn8koqLrR03+gaG
+ xyhzgCIAs+cEJ7ILii4ot6AMA8qu56I0EYUJ/sNS/cOyjuQcrkGoIhocYKIsDNopiN4o
+ nhofh0bqzu2+nutA1VBTDu1XZtrhA1GA5enqaEt5pakSKe2JFAaI21GIkQeSM7ILSqvq
+ Wzu6em/dhSzlnkjWoBqCCk9XyVDIAdUMKkdpgB5TEqTQL8HG9lM9yWZiCEnorCfNxMKb
+ noIyaowKzDsD/dR9dVxuaaitKC3KE+FX5J5AgWVF1aip4krtxpJPONx9AqlMOU4d0cXm
+ 9mvdvbchMYTKC9geaKpJQJCgxkmkk1ByMSgwmhPNlNIXaUow0WqoH6oXUb2a+gQaN2IS
+ sReVbBQnQoQInV57W1N9TcX5ovzsE2lJB2MiQgN8UIR2VhYbN0Dla6pmlE+kKOGwQcJ2
+ BYXHJaaeyCkoqahtbLsCZFBPUiEFOZFSSEGExrhPVdr0PUhdpyYhvZuk4g56I10PBmxC
+ N9KTSrrHZiQk0p5iPeot0UwU51F52AMx6dVO0YzWVZWXFOXnZKanUAsb5Oftsc3RlrAg
+ pDdZ46sKUQnavPxDIiFoy8jKLyqrqmuiTK+bEt47mkBPiQaJZHwchSPSZColqZCkPoyZ
+ NeRtudBSdJZoKD1RkxTl3YH0VylFO6C3b1E62POQ+GZnHks5FB8dERq4i0JYGxQhYZEL
+ PzmGkrG+KNogQBRdpXdAaCQFiCdzC4qBrKFFSa4pI9cUiETBuIvCESl5fx8CgtbbQK/p
+ LYFNKWMXhbGiixWVHmhPJWqIIsqb3RS/tre1NjdBrA17BHXL+blQ9wJVDOW9PjtcnUW4
+ rMEygQt1XFQgQvsFHayHt38IBaOpGVmngUwk8m2X2yH7pwAWitFeokBAj6tJ/7uuIaA/
+ hoge+ljBxryBSdmSupIZW0rHrBpKJQrNJIUHT0StEtcXwTkAnfkxSOgPxETuDQ7w9XLf
+ 5qgLzZktU2HxCsYOo27ZxnGbx04R+CYkpWWcyj0j6v/ai1CVU+ELjwZE1Cqgqu6gVYMa
+ cSUYhwAYemZkVmGjqNRYeK5056A9Te2KRFGk3NxQVyMelmJCgkOHvoDkQ7A8ROwJAioP
+ JAuOB4iWwYSfBQu4YE2BM4XAqFz2DYQge39CEmXmdGuUlkFiXguBORXZonpvbW2FCB6C
+ 9/qLEPbXMuou4uPWS6I/V9hQlItGgUWfAGhP1Mmd7W3NjRdrqmhdKYTnKCfrJCAp1xF9
+ HLCo+MIUALuD9Zc6VJgweFNo4rCxd6aAfjeQxcEWoCxDZwqLxBBABX1NDVHU1FRXV1VW
+ lF9QHgwxZIipSPkFoK2naNvY2DGgmlFoT9TkSBRMALTjMEnwiKXSSHVQOeBCgwPhTtFQ
+ wQX2ZY4iUdBrwOBOoeEByMJg44DFKzU9I/MUPF75muMBrhJG8bkinGZY1+CZQWj+jrJy
+ GKZgWkHeKOKmEUc5cXrQjDTiXOvsaL/ERNWCIQCKzSRmG3j6DsAbRsdiaFCgn+9OT3fJ
+ lRW8KWInkho0jQkNjz40YMrJYevgvN0DyGi7AbR4cUXBZgjDTVY2XUAqcrKy4DU8cVxz
+ Ookf5/SZwnPw4xBbE0T3i8apDhinpBmF9uDWuADWO6NMNsruBucXIcE+CxcmfW207FkD
+ Fb1EoPcvcUmROqQU4f7aJIYi5+3unrRJhdCZBxcbbaHJ8ITCuZUugY2jqbSGwhvKEP8U
+ MpuVk3cGvpyy8kp05EWD0U353Orr6mivKSstRqIIKi2FziFYL8Pp1KP30le5Zre5iMVS
+ UK2jd/RLfYgCDG4ONJkYwByct7khabC8BsHUBs8rDG10gNFkJ5FwMD6eVl64CMVOGKcZ
+ SIktNw8dWaxMLTAmVsKWSF9ieVlZaYmiPZgu01OPHE44QIZA4e2mx5mQNJezvR3svugr
+ mn3FxvwZ9G6oQu0q9oM425Rhz9La1l5siLCS0yUaTAMiTdew7EnAIxkZGQHr9d49MILC
+ /hlGfyK8YjTHqo48DUvVopH0bGFhwZl80h6Z/CgTtT8mKgK0p+y/nh4ebjRu03FPD7Py
+ +S6i+szOWgSHjKEWmTJaEZVtFJZyV3H1wgKrOSxpYkWE0L9Kqzx9u7Trip8UBm3BBp/i
+ UTGN0TWmQny/NCEeVf7RWCYqhE5KMcByhQRHQuIKCbove3Xcy3C3ScqIDNUI77JaAgDY
+ YFn21Byx4joWCzJWOODSBjBVI2CYVYZ6ms+jYliU7DmDUVv5tOGfVLQn7tBAeNBRecpe
+ zzUfuHYAVrQQHz0t2avlNteQIWdYBUXZsrlkg72+DAUdzB47JOgYp0EcizVIYJEK+rVp
+ rFcdGQmPaRyM9bqzXnz1sdHRtPOqhvL19kLp0YTNwsMaHWrdA21NBx2UqaPcxcL72JaO
+ 7Ke1TJpaYgOrHMBBz1VDnOg418OZhn5HB3uuY4DVC2QNDqladiRcwcpEqy+EoNZB2IsC
+ VrSH4mOinGiaV0tzYO0KfZkKLVPgwNVBRaRExnJE0lTWUJEoSVnwwMZGX4WBSzLYoHCs
+ t2KtF8ZWAQ8ft6EjxfS8uHCFrFsRIHZ50p6buOVRe1ZoJhQeF6fguiJrmKd/qnVFVg+U
+ pFBDppapkFVEuC4P0HFNHqOlM7A6D5Z5kFVBsDgI17jBWgK29KhLR2IJiyULjRjWGRHa
+ k9UNkCitmbB0gyRJIDFPwPTFDPixQlT7FDRmTdZIUUtwAB0Cq5yo4BsscKJWcZE1lriA
+ j8Jm7whwQIem01aGwas0owuWTtEbiolC6clyPipJguivgaSDFWg/aKv0qAVguOYVl0zR
+ AnXDpaG0kDWk1OJEXHdEX9OCTcngOj5oRm35EDI5FylaD9bDGAlZ+gqIdGRar6HbmDgE
+ F7hBCBBuYMUb2a9+cDkfJlbWiUHiLNF0aEBt5SXZQjNqy70IR6glUTRMf0XZLSL5cAt1
+ znInOi5IJEsSAYhscpEiow9ZtQobF8GRRVb0hbIW18kyor3VpfIPD92EPUCn41NAtJ+y
+ 3/ChrD9HbJK4ZQubGdY1M9CevpqSCd//N/4XDbhaW+/DhejQi9qSWFK9Bib/C1hv9U+C
+ jk1bQostaRSqD4Hoq5LEqqHUwKmW1LqSnYgwqt5V+7qv/Yek64yaUnv/tQ/j2/d9OwPf
+ zsC3M/DtDHw7A//NZ+D/AbrYKzEKZW5kc3RyZWFtCmVuZG9iagoyMiAwIG9iago3NzUx
+ CmVuZG9iagoyNSAwIG9iago8PCAvTGVuZ3RoIDI2IDAgUiAvVHlwZSAvWE9iamVjdCAv
+ U3VidHlwZSAvSW1hZ2UgL1dpZHRoIDE2OCAvSGVpZ2h0IDExNiAvQ29sb3JTcGFjZQov
+ RGV2aWNlR3JheSAvSW50ZXJwb2xhdGUgdHJ1ZSAvQml0c1BlckNvbXBvbmVudCA4IC9G
+ aWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Ae2b51+UydKGd9dIzjlnhoyAZBhJ
+ ApKT5CgICIJkiRKUJIIISBIEERREkGDafX/nX3vv6n6eYVBkQDlnv1gfkBmRuayuqu6n
+ 664//vhtvz3w2wO/PfDbA/+eB/781v49lKM/GXx/cTsnM+EN/NXR/+Z//a7AeO7c+fMX
+ vrHz50FNvP86K/cjQ7x48dKlyzAlZvTd5UsXL4IcsAz13/MrozwHN14EoZKSsoqKiqqq
+ GjdVVbxSViJYxsrCgMfv/3jFiVKAJERVdXUNDU0tmWlqaqirq4FWxsody4CFL8T9X6Xm
+ QQlKeBKQYAShjq6unr6+ATN9fT1dXR1tLS3ACqzMsUIEnycTghfR+9+A5YjwJNYby02Q
+ GlraOrr6BoZGxsYmpmbMTE1NjI0NDQz0dHWIlfyqrATPCnYJxoJXiN6zzTQBkTNSTAqQ
+ unoGhsYmZuYWllbWNoJZW1lampuB1lBkVVdTY0GLuCVTZtyM9jxPtDOJACGzefVheXMA
+ aQRGS2sbW3sHR4nEycnZ2clJIpE42NvZ2lgBVmBFEGhpaSJsydRh4AYuz7SzQRXLD6KL
+ VR8KSTVabngSkBZWNnb2EicXV3d3D0/PK2Senh7ubi7OEkd7O4HVyMAAQauHsGWmQ8GL
+ VAMrqgJi99dJD5cfSm1iRNroGxgZE6S9o5OLm4ent4+vr39AQEBgIL74+/le9fbyBKwT
+ Z7UwQxQgaLkZGSF4kWsseoF6+bJI+rOrf7j8ABGpjbThIckhXd09va/6BQQFh0rDwsPD
+ IyIiwsPDrklDggMDACuw2tva2FhbIWqZWViYg5tSTU9XW1Nd7YD055JfRikkDRh1KbUp
+ bSy5J92vePsGBIVeC4+8HhMbFxefAIuPi7sREx0VES4NCQrw9WGsLhS0jo4OMHsYghe5
+ BlYjAz0dlASQCqv/E1WKYSIoLyvx8kOMRgIjC0l40jcgWBoeFX0jPjE5NT3jZiazmxnp
+ aSlJCXGx0ZGcFUHAgtadzM3N1dUF3I5wsqW5qbGBvq6WBvn0EgvTU4PyHYdTamrp0Fqb
+ mlkgte14SJInCTImLjElPTM7N7+wsLiEWXFRYX5eTtbNtJREzhoaHERB6+dLdvWqjw9x
+ u7u6SBzsrC3NjA31dbSwIShdunABReqUoIRJxVxZBTGpqw9IKj/2DkhtShuEJIdMSs3I
+ yi0ovlVWXnmnqvouWXVVZcXt0pLC/FyRNSqSgvaalCw0NCQY3P6+Psg0F4m9DUgN9BCn
+ 2GSRT6cEZZjkTDUNojQxs7S2tZc4u7h7XGFpE8I9mZqRnVdYUlZRdbe2rqGxqbmFrLmx
+ sf5eTfWdijKw5mRlIAgSKWhjY2PIoqOvgztMGhLof9XLw9WJk+rCpcqnBgUm9m/mTB09
+ QxNzSxt7CfyItYYfQ6XhkdGxWO6MLIKsrK6ta2xpbevofNDN7EFXZ3sbaOvAWk6sudmZ
+ mRkZ6elpaWmpqakpKcnEHXM9Iiw00M/b0xU+tTAx1NPWODWoiKmqrqVrYGxmaePg5Orh
+ 5UOM15A2YExOw3KTJ6tr65vut3d29/Y96h8YHCIbHOh/2Nf9oLPtfnMDWCvLy26VIGYL
+ CwsKCvJhebk52ZnwcmJcdIQ02N/b00Via2lmpK+NdIJHTx6jMkwNbT1DUwsbeyc3T2+/
+ wBAwxiC1U8CYk8+Wu4Ygu3r6+geHR56Mjj0dhz0dGx0deTw00N/Xw1gb62prqquq7lRW
+ VlaQld8uAzgiIjM9JSE26lqwn7e7s721mbG+jgh6sjqKgnSOFl1NQ1vfyMzKTuLq6eMf
+ LI24HhufJKR2CdKGe7Kr52H/0Mjo0/GJyefT09MzM/jyfGry2fjYkxGBtb21paWpEdbQ
+ 0FBfX19Xd6+2pooioiAnMzUxNlIaeNXTxdHGnEDZ0p87WdLLYRqbW9s7u3v7B4dFxSYk
+ p2eSG0tvs7RpbG7tAOQAIMcnpqZn5+YXFhYXF18uLi4svJibm5menBBZe7u7EbNkHR0d
+ 7e1tba3grqupqigtzMtMTYgJD/bzcpPYWBhj6VVRnk6W9GzVLyurwpvG5jaOLp6+gdKo
+ 2MRUQBaX3q6sqrlXT2mDkOSQk89n5l4svFx6tbLymtnKyqvlpcWFeYGVgmBwYKCf7NGj
+ Rw8f9vX1UvS2ALWyrDAnI/lGpDTAG6Dmxnpa6ioo+CdyKLnzkpKKOsOUuHn5hYTHJKRm
+ 5hWWVlTV1DU0tbR1dCFtKCRHxwlyYRGMq2tv3q7DNujL27W11yuvll4yVgoCilnYE9jI
+ yMjjYYqIbqDW11TcKshKjY8iUEcbMyOUJ5XL5FCFRxK+6irqWnpGZjYSN+8AaVRc8s3c
+ orLKuyg/bZ0PepDZQ2Ac45Avl1Zer71Z33i3+f791tb29vbW1vvNzXfr628E1hdzswja
+ 58+nYJNkE8/GWUT09z1oa66rul2Uk55wXRrg5epgZWqAEMXKn8Chf6JyIoc0dQ3NrB0Z
+ ZnxqVkFpRU19M9a679HA0OMnlDYUklhtQL5dB+P29oedXcF2dj5sA1bGukQxu/CCbH5+
+ fm5ubnaaonf08UBfV2tjTUVJLoH6X3G2szTWFxyqcPukXFdS0dAxMLWyd/EKkF5PSM8p
+ ul1d19z2oK8fjGMss2dZSAqQW9sfdnf39j/KbH9/b1eOdfX1CtkrZsvLS0uI3hdz05Pj
+ o8P93e1NtQQaHxXi6y6xMTPU1VRVunhB4cLTsl+mVTe2sHP29JNGJaTnllTUNLZ29fUP
+ P3n6bHJ6Bpm9SGmzyjzJIMH46fMXmX3+/Onjx/1dkZVi9i3ZG7K1tTWAv1panJ+ZGh8Z
+ 7Otsrq0ozkm9ER7o7WLPHKp8GQuvIECx7Bcvq2pg1W0k7r4hUfGEWdvc0dM/jKyZnp3H
+ Wi+vUNqsY7llkED8+jfsn3/o69evX74w1D3GSiH7HkEr2juAv1lbWX45Pz0xOgTQmvLC
+ zKRoqa8HOVRHA5mkMEDJncrqWvrGlvYu3oHhN1JzSirutXT2DT4Zn5qZXwAjsuYtSxsZ
+ JDz5FYTyBlagM1bEAGyH2wcY5RpF79rr5YXZSYB2NN4ty0+PiyCHWhjramHhzyso9XzZ
+ NXTInR5+0pjkrEJ4s7NvaHRien5xeYW7EX6ktKGQpOWGJ4nx/w6MXnK3ghUxINg+sz3u
+ 5feb62uvFgE62NNWf6c4Ozk61Nfd0coUmaR86YJCzvMXldQQneTOoIj4jPyymiZgjk3O
+ Liy/Xlvf2HwPNyKz9/ZFyO8piZdIZawscD+L9onI93d3tt9vrK0szkyM9He11JBDw/w9
+ nWzMDHSohCrkvHAJJd7A1Fri4SuNSckpqWpo6x0anZxbXFlbR/lhbiREljdfBUh5X4pe
+ 5aQ8YBGxckbYnz9+3P2wtbH2amF6fLivrb6yKDMxMsjbxc7CSJcF6PGF6U/KdmSRua3z
+ lYDwuIyC8tqW7gGG+Wbj/fbOrgzxi4zx0IqLlPxPkfXbPyl6P3/c29laX1uamxzt72q+
+ W5qTEh1y1c3B0lhPU1VhwlMaqWrqYtldfYKjkrJLqho7Hj4en1lYefNua2cPfoQviJCH
+ JH3+YbL//Ofw66NeMeq/v3z5uPdh8+0KHDrU23qvPD89VurnIbE20ddSU7qooDD9dY7C
+ U9/EytEdy56aV1bT0j04OvVieW1ja2f/40HSfE/IiP4DOwrt2/fwz/+GR3e3N8ihIw87
+ GioLb8aFB7AA1VZXRsIfW0BRPcFpYGoj8fQPi0svqKhr6xsen1l8vf5+Zw++5OXn20+V
+ vSbMU4B+gkPfvHrxHAvfVFWShQD1crFFBUXCKyhM4FRGGpnZOCE84zOL7jR2PBqZnFta
+ 29je/fiZVUkZFH3Dwb77euhnjn4Bh379/HHn/frK4vTToe6WmtKcpKhgb1d7JJK6iqLC
+ 9Nf5S4zT1tkrMCIhE+HZ2Y9lf/Vmcxvu/Ho4HL/DU/yGHPM//3z9Qgu/+nJ2fLi3tbYs
+ LyU69Kobtk6W8McXJhmni1dgZGJWSXVTV//o8xev3m5+ACetutwnKcY64idk/54iFJzv
+ EKATI31tdeX5aTFSqvRCwh9bmI7mXCDOfcYp+5gjEE74lvAriPPT3vbm2vL85MijjvqK
+ wvQbYf484RUWJhknrXsi1p38ydZd8OcZcOK/Q7+Fc7JEQgXtbLxTmCEmPBWm4xP+mzwq
+ pvh8Mjm/zONTft1P6Lyjf0zGuc8qKCV8Y1VxZkJEoJezrZkBCpOChBfqEk4hntiObhZW
+ NnQ8ZPn+DvnOTkWiQ48GOOG77JdQBd3fYZV+bPBBczUKExLexc7cCDu8goQX6zy2d79r
+ N3j9fPxsdmlVVpfOmlO+MCXTzikm/LE7Et83cVxy4PvR7dr7PUNCncduhIU/Q85/UEB3
+ t9aFwnTvdl4qT3gTPS2WSMdkPHHiHIL93c0n5HpKTintm2PTCys84eUK6AlX+Ogf4+su
+ FFBemNrrKgrS48L9PSU2pgY8kY7h/PMvejrSMTK3w/EzCgVUvtAfCtCjAU747gEnCtMb
+ FCZK+KoiWSLRznnsERScfEOyoXNd/DGJdEKio39M4EQBFRJ+bIASKZt2Tjx7KD6C0mPc
+ dwcRJNLL1fUtbPByAXo0wAnflXGyHf71Io523fdrynJTYkKvuuMIqqvJnuV+fGRinKpa
+ egcHO5ZI0+zAdGhHOiHR0T8mcrJEoh3+2XAv2zlj2c7JEun4IyhLJHZQdrsaGn1UIrHP
+ +OFJ6Wiub98VOHkiCTt8O3bODHpGkliLifRjf/4hJLyRhb2rNzvQs5OIbOdEwp8xp7DD
+ P3nU2XCn6Gb8oaPyMQnPONV1WcIHH5HwZ81JJxEk/BRLeLZzXnHGM6fCnVMoTIYoTF5B
+ kYmZbIcfneQnUBSms+WkExM7iXDOksxE7PA40p+IEw/GOnjglOeUPyn/8roLv4Ae8b/+
+ gNPwJP48xClX6Olkdxb+PMT5Ub7QFzN/nujERIWe+VO2IbETvbhxHmzw36bwiV+LmHQA
+ ZU8elO90Um68gw0pPODE8SnjRB5ll1Q3PxgYe342nDJE+kZ8NGYHkWePcSdCdUnId7pj
+ OvaRU/CnkO9J2bfuNj8QDiI7+7+6H8lzCpjCVcPToZ77927np/GrBtyFKTrR83zXRf10
+ ofqZc+uucGDCA/whzlNXenlIciaOydjed3DHJH91w/dNHOwUXIkwTo1DnAf+PPwkd+iD
+ j3jBI/aIvyBIis3PuLXbfveGbm7Eq7AoXIXJziHHXYl8w8nWfWCUx+f3T/BHQMi9RaBy
+ L+lbhkiQoPyEi7BtPHa8nJ14gpswulrEA+fB1eK5Y7ajP2ScyHeeR+yJc355TfaEJO6c
+ 3yAc8fIwpsgoXjXv4WIR3nyJC7vBnta6yuKspOshOC5Z4SZM0fmTc1Kdp7ok7EePRibm
+ lnCw28GBSbzglnOO8PnsjyNg+Vv8h4Sre7gSt+EftnCjDMypsaG+9sbq0rw0ZPsVdgNK
+ PY9j013GacYuQOmgXE83YezJY3t3H7ezcvee+HC6YeQmwz2Clf2d3J092jbbW5sbb1eX
+ F+YmgdnZVHO74GZiFNzpiNOSNt0oH99KwLqjfrKbMM8A3Njll9feZxe1cOjm9u6e2H+h
+ 62F2nX3whV2LctrDqPTeASRu59EGQx/hzerKyxdCx6O2vDArOeYairwddRLUWE/umGMd
+ +ZM9eAgX36m5pdVNnbipnV5Yxr03Glqsn4UrdsHEFgHuwamBJHP2AamMkq829b8A+Xbt
+ 9aulhdmp8SeDvR3oIBXlpNwID/J2Q3Rydx6/7OA8f4nf1Dq4Xw25npRVVFnX2j3wZGJm
+ YXn17QZ1jKg/uMdNaBSyN3Ajzp0t3tlz1wqupBYNa9JRR+bt2urK0uKL2efPRh9TR66G
+ Gl1xkcEHHTmFLU7+4MEO9Liyi8DCl91tbKdOwszC0grvZVK39cC2WPeV9zdlnRp2M87i
+ Vux5CZAbrD+LVvLczNSzsRHqcDbcLS/KSYtD49CTVp31tpFFx1XPP+BPoZNAVzesgVQk
+ ayDNLS7xRtzGxjtmG2TUyMYbm7KOjdgM4ZHLeohykNQxBORzdDcfD/Z1t6NjXFaYnRoX
+ Fernib6hCTrGJGU6PosQufxAr21gYuXgig5SXFpuSSVryI2gbUgd4lcrr1dX0aQkW4VB
+ G4Cva7wDJusuiXH7UejJvt8kTxLkCwY5NjKEFnx7SwM68PmZKXGRoX5XXOzR2NbVVEN/
+ U5E7yaFQCahp4cnD1gkOvZ6YkQfQ5nahwUnaBXRhBXsJg9biJd5YBj91FNHjphgWm9xC
+ j/sAcnoKHe2R4YGHPV1toLxDioak2Ihg3ysuDtZoF1Nfm0Q3x21GVAgoQHElAoeiJecV
+ cC2GQIWG8ZDQ1Z6ZnZ2Dzc7OznDD63nSXgjdTxYEiFsY0wy8RQlingTk01F48mHPg47W
+ pjpQFkMhEh8dFuyLRbcW9AwnWHUhQJXhULQ4Hd19AsNiEtNzi1kDvqv3EdP/QP7zjBtk
+ QNyeTUxO8Y43YxVEGBS66GO/XlleooY7QT6m5e5qb22ur62uKCvKy0wjxU2Aj4ezvZWZ
+ EeXQCYUsMt2FvrGFrcTdJygsOiEtu+BWxd26ptYOqC5ITjX8mGx4eJgJq4aGhodHSIgx
+ IXTnKQi4qEXUtMzy5SZIyEKaAFkJpVguKG9EhUFu4y6xs+SLfkJMtvAo9apQNJhY2jm5
+ +3CBSA5kLNX3GpohtOnq7u7t7YP19vb09JBUraent+9h/+DQCI+LmTkEMYmERI3Q88ln
+ bLkZJFMEATIvi+mswoIDfEi+hEyn2FRCDikOTh6gpLJSgUKEg3r7k+AmJRMytdukpYPi
+ puV+axtUSK2t9+8z5R+9hrwOChfImcD6bHKKRFdkTHM1+oQtN9MC3b1TXlpckAsxmKBb
+ 8/F0k9hbmxuLmJRDipKIOFkJvUTaCwK1lbhe8Q2SRoI0I5uJ1Sqr7tbU1N67d6+2trZG
+ tNq6+sbm+1yNA6XLyChEbE/Hn4oatkeiJ++U3ypiirXEuJhIrgN0c3KAttJIX4eklafR
+ gDKhFSmYCNTCxsHFw9sv+FpkTFxS6s0s6FGLS26VlnErLb3FrLTsdsWdaqibGGs3gqB/
+ kESBg4P9pAns6mCqKgjACDItOeFGNCCDuK7SASJAciaJ606nqUUqnWdSK6ZWZAI7b78g
+ QTubln4zMztHsOzs7KysrOzsnNy8giImuuNKrPbOLi6y5BrLJugWqyrKiiGoSwckKSqD
+ /H2hXGY6VXMTrqg9tfSXhIAcVFNH38iUxJ+ughYZeukbcQmJiUlJyUlJSYmiJaekpt/k
+ IsZy+BXKtsZmEq02NzU21N2rqaoUY5Igr5FClUE62EL3C0rmTFFOe6LYZAGKCGWgSCao
+ aZkAFDJVru0OkV4Lj4iMEi2SDC+iueCSxQUpBSurmAgYekpBA0wqSiROJINkil8HuwMd
+ NVN8c3nyKTAplTioMpSqENSSVBXqaWjlvXygqIVaXrAgWGAQXhI+E7CmpMGvefmFRVxU
+ zTXVmRmp8jHpRgpqQEJCbQC1vwaJqEnye3KFKncny3kCFQTKjFSYPXDFeMQVL2/RvMjw
+ 4irwg0i0DLFtQlJKmihSh0Y9lTTqMVER11jieALSHssNRTp0/jpaTOcvozyVMxmsoJ5n
+ gm8NkqXzWQ7Mm0ggp5YzZ3rl6sYE1tD8gzWCogCi//iEeMinY0nzHyYNDvRDTAqQUPhz
+ SHIlm5tA0Tyl0vs7l0JNjTDVJpU/BhFIQW9jayeYLTc7ey5Yh/LfxzcgkKKAhijIwqSY
+ oYAK3fuKBy03JQ4g9bHcmjRFdRZzKMyltPhESpMdNNiBiQSMQ5kLxgejzEEvGwBADFMU
+ 0FAKGWZSfLxJ1e8swfgMW24OScMyZzXXg3RiYYoBMxWgskEZzJcZGBgKxgfNDNk0Fxv6
+ wLACwgJR4MmGfPAVkxKY8XEQY1KAVGGjc+KU3y9Pn5FLiZScClQa6qFxPW1tHW7a3Nh0
+ nGxAxdaOghhDUzBMn2Bmysba0oLFJFtuDHOwqSMkOIvKk+3msnj8wTeMlKHSACSbQMJ8
+ z7cGfHHgxxSOPRhCE2bQMBkj50ka6xNmo06f4T/gRDGVobJhTZomVZYZf4GZN5qNpAEq
+ PUQFzfSxoT420oexKExFaVMJokIpB/nDj/zZv2Cof4nzuRdhbGiQviFj07DkasYKx8qG
+ JMUZSZoyYzF54MmfZVH07zgrwhXGZjCFOUz6g0Yz+RAixTCC+GDoVJw5RUxizxGXW9GH
+ /erfIzNFXmSYnIFdYKUYxgwvH+LlI7zEyJb71wf2fuk/ILCLrEg4GM1Es2+AyOeMeXb/
+ 0iedwT8+HMMUCaLRmC5z/dlUoDNhpdpARlFMxl/RGPwZVqAzIKVfQTEsb2f0a3//mt8e
+ +O2B3x747YGf8sD/AwDX6mcKZW5kc3RyZWFtCmVuZG9iagoyNiAwIG9iago2MzEyCmVu
+ ZG9iagoyMyAwIG9iago8PCAvTGVuZ3RoIDI0IDAgUiAvVHlwZSAvWE9iamVjdCAvU3Vi
+ dHlwZSAvSW1hZ2UgL1dpZHRoIDE1MiAvSGVpZ2h0IDExNiAvQ29sb3JTcGFjZQovRGV2
+ aWNlR3JheSAvSW50ZXJwb2xhdGUgdHJ1ZSAvQml0c1BlckNvbXBvbmVudCA4IC9GaWx0
+ ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Ae2b91dU2dKGZ9RRCZJzzjkLNDlnkNBK
+ ECQJkgUJrSQREMlJkKAggoAEAVExjHNn3X/te2vvc5rGwW4MM3PX+qwfsOmeWf1Q9e7a
+ +1TV/uWXn/bTAz898NMD/z898OsR+x/wAXhOiXYaJr4mzn8NjzOdPn3mzG+KdubMGQ74
+ r6AxKDCB6Oy5c+cV7Ny5s3iTs/3TbiMqBnUWSGrqGhoamtzwSkNd7fx5BbZTFNR/JKqk
+ KfLUWcakeUFLS1tHR5eZjo62ltYFTcCJbEJQBeX9fYiiq+ApNQ2NC0DS1dM3MDA0IjM0
+ NDDQ19PVBRzYyG/nzlJUKbBMd3xl/Gj/CUqHqwClDigwgcjYxMzM3NwCZm5mZmZibGxI
+ cNrcb2qgg50jQob4Y5WHP5FCwRYfNKWuoamlratvYGRsamZhaWVjY2tnZ29vZ2drY2Nl
+ CTwTYtPV1dGiqMJ1JDt1hsgceIb89v2iU2AioXMoPUCZmVta29jZOzo5u7gyc3F2cnSw
+ twUcsRnxqOpCdYisIDxhVRDad5ExKMXFR55C+AgKTE7Oru4eXt7ePr4wH29vLw93Vxcn
+ R4HNFFFlqiNCCA/LAquCFgWlku8g41S0+JiksPg4lClBOTi5unt6+/r5B0gkwcEhIcFB
+ EkmA/0VfwLlxNmsrSworzNSEEA0M9BBcoKnJyb5lXyAqlhE4lBaEzjSF8NnaA8rLx89f
+ EhwaHhEVFRMTGxsTExUVER4aIgn09/UBmyuiKqjOxtqKCc8UbPpAE8i+zWUkdZan2OKD
+ owBlQpoClIubp49fQFBIeFRMXEJSckoaWWpKclJCXGxURBhn8/b0cHdzdXVxdnYi3dnb
+ 2VhbWpiZGBnocbKzPJhf5zLBWWeRp0RJmWDxkaZc3Dy8ARUaER2XkJyWnim9nJ2Tk5ub
+ k519WZqZnpaSlMDYggL9/f2Y6ry9PD0I0dkJbJbmpsZEBp2d+3owwjpDslJnKcEQGQEJ
+ QdSUvyQkPDouMSU963JOXkFhUUlJ6fXrpSUlRYUFV3OvSDMuEVt0ZHhYKFOdJDCAEH28
+ sSqc7G2tLECmq31BQw36p1ie3GPAgrLIWRe0dSl8gLJ3dHb1YJpC+GITUi5lXckrKCop
+ u1FZXVNbB6utqa68UVZSdI2xpaUkJyKqsdFRUVGREYQYJPH38/F0c3awtTI3MdSHy9TO
+ n/0qMC545ixdfaLiUN6+F5mmYhG+zCu5BUWl5ZU1dQ2NTS2y2zBZS1Njw83a6gqwwW/Z
+ 0qyM9EukuuSkxAQgwoEhEn9fb3cXBxtLM7hMS1P9q8C4t86Rs/QMjInKydXD29c/MBia
+ IqgMaU5+YUl5ZW19Y/Pt1o7Orq573d33uro6O1rvyJrAVkVs1wqu5pHqrlyWSjMz0tNS
+ kyG88JBAP293J3trc5OvBmNBBJaWjr6RqQVRefpcDAwOi4yJT0y5lCnNvnqtpKyi5mZj
+ y532u/d67j/oHxiEDfQ/6Ovp7upou9NCbNUVN8rKSHXFRUDMhwMvZ14CWkRIoK+nq6ON
+ pamh3GMnkhiTPGHpwllWdqDy9ZeERsTEJ6WmZ13JhafKKqrrbjUDqvv+g4HhkbHxiUnY
+ xPjY6PBgf18vY5MhqPU3meqqqyrBWFpSWJB7OSMtMTY82B8us+Vgaud/O3Mi7XOs8wzL
+ 3Nre2cPHPygsKi4pNUOaDaGXElRD8+02QPUPjoxNPJyemZmbm5+fm5uZmZ6aHB8bHhwg
+ ts6OttY7t2UyWUtzU9Othpt11ZXlJYVXszNTE6JCA309nOwYGK3K0ydZk4giViLHsnFw
+ 9fKThEXFJ18SolddV9/Ycrutk0GNT07NzM0/WVhcYra48OTx/MwjxjY08KCvt6eHVHf3
+ bmdHO4TX3FhfU3G96OqV9OTYcImfh7OdJWlMg2lfZSTJXWfPq1/QMTA2t3F08/YPiYxL
+ TpfmFhQzRzXJWjvudvc+gKcABaalZysrq2vMVldWni0tLnC2CQR1eAiqG+iH7u739HTd
+ bb/T3FBbUXotNys1PiLIz8PJ1sLYQOeCOkXyBFynfzunpqmtz7B8AkKjE9JAVVJOkoKj
+ unr6+geHxybgqSeLS8sra+svNja3tmFbmxsb62urK8uMbRZBnXo4OTExMT4+NjYyDAfe
+ 7+5sbWmoKS/Ok6YlRAYhlDbmxnraGmqUxVSAiVHUMzKzdnDzCQyLTc7Izi8ur65vkrV1
+ 3uvtGxgeZeF7vLC0/HztxcbW9svd3T1mu7svt7c3BbanC3AcqW52Zmbm0fTUw4mxkcG+
+ ns7WprqKkvzLafEREl83B2szLEqNEziMuBBFXQNTK3tXb8LKzCm8XnWz6XZHF6IHR0Hn
+ cwS1wqB2dl/t779+8xb25vX+/qu93R1yHPltZfkZye7p08UFEt7szNTE2GDfvfaW+qpS
+ gMWFB3i72Fka62trqp1VGchTp347q6aBKFrYOXv5hwIrr6i85pasvev+AEXv0ey8ED54
+ iqCAdPDuPbN3BwyOscFvGy/WSXarq8+fg3Hp6cLjuemJkYGeDllDVclVaUpMyEVEkhym
+ TktS6S7J3IW1aGhm4+ThFxJNWDfqmlrv9g4Mj0NSjxeeLq08X1uXQxHTh4+/M/v44cP7
+ 9+/kbC8RVahuaxOIPLhPn8xOjQ32dsrqK4vzMhIjJd6u9uQw1YH8lRajhraBiaW9q48k
+ MjEjB1jNbff6iGqeorcqD99rchRj+vQH2adPoPtIaNxviOor6G4XtgPErY311eXF+enx
+ wd6OlrobhdlpsaEXPRytzQx0VAfy11O/nYO6jOAuT/+wuLTswvK65vbu/pHJmfnFZ1h8
+ G5uk81f7r9++hafgqE+f/viP3AAnsDE4Eh3sNYS3T8LbXF9Zmn80PtDT3lRz/WpmYmSg
+ t4utuRELpPIFSarX0NI3hrt8g6KSpfnXa5raugdGp2YXlp6vsejt7ZOmhPDBUwT1JzOG
+ J/qNHCfI7t27A3jw9f6r3e2N50vzU2P9XXcaKoqyU2OCfd0okLQilXJRGNU0dQzMrJ08
+ /MPiL+UWVza03usfnZpbXF7bYDqHo0RNia7iVPSTO06MqaC6jx+58A7e7hPY07mHw/c7
+ mmtK8zLiw/w9nKxNDUhgp5UlMHCxMFrYunhL4K6C8jrZ3b6Rh3OLK+tbO3uIHmfi8eMB
+ PKRirzgafjLNMcRPovLevt7bfrGyMDM+cO9O/Y0CaRIC6UwrUhNcyhYkyYuH0c0vJDYt
+ p7iqsa1naGJ2YWV9exfhI53T4oOnBFV9RsV/lbMdvqBV8fE9PLa1hkjCYU1VCGR0kI+r
+ nYWR7gXKYEoSBbhoNZpSGMMTMq6W1cm6HoxNP3m2trW7DyrGBB8I33cs1HFvsv/+Dwb2
+ cgMOg8JktaW5l2JD/EhgelrqKrgge00dJC9n78DIJOm1iobWnqHJuaermzv7b99/gKO+
+ GknEBNofv384eE0Om5sY7L5zs+wqE5ijlYk+MqtSf9Fy1NQ1Mrd18QmKSskuqm7q6BuZ
+ ery8vr335t0HgUr8pqP//vfor3/9DWCfEMlX2+vPEMjetoaKgqzE8ABPUfjKFuSp02fV
+ kL0skCWCY9JySmpa7j4Ym1lY2SB3MSzF7/vvZ6b42TGvyWFQGAVyerSvo6my8HIyUj6E
+ zxakai5kLzdfyD63FPIamJhZfL65+/rgw++I4eHXfcb05V/l/wsP5P4OE9iDzubq4uyU
+ KAkyq5mhjooExv0lcF3Ku864ZiGv3dcIowLXlzGO+0RAI4G9e727ubqITNHVUlOSnYbM
+ yhYkJQolCexv5oLAwLW1+nR2YqBLVleamxYbwjI+JQplCewzLh7Hv/rrOJ8ofY87jIT/
+ 7s0eLcjJwe7bddfz0uNC/dxZolCewAQu0j3pq6RW1tU/Dn1t7O4r6kspw7EfMjC2IN/s
+ bSOzPhzqaa1HokjATiRPFF8OJPKEGuUJO1efoOjU7JLq5k5xPR68P9TXsV+t4k2QHUkU
+ Pa0NNwoyE8P9WaLQ0jinbOf+VcirbHtMuVJUhfw1Or2w8uIlyxNIQewPV4Fw7MecC4ni
+ 1faL5cdTI/fbb1VckyZHBnrhzKoqURCXBo4TNk5egZHJ0sKKW+29wyyvvnr7/iMl++/n
+ Ygns0RgSWFXRFZ4ozA11lO/ch/ujZ0B4YlbBDdqHHs4vrVG+/ygP5LEOUfEm8xcS6wES
+ 2HPaIe82V5fkpMUiUdir3LmF84SJlQMdv2jfvn1vYGJuaXXrSAJTgXDsxwIX7ZCbYqJQ
+ XJC0Q35R+Oz8paVHiRXnnEt5pYoLEhvR98YRRwokClqQk0Pdd+rL8jMTwoUFqVz4dF6l
+ DdKObZBYkE2dfWOP5Bvkd3OJO/djvnNfkyZFBJxE+PxAYYgDBc6rWJCVjR33R6efLL94
+ qSj8YwOl4k1aMEgUbOd+sfyEdu7GyqLLydgh6chKO6SSnYg9d9CCpANYMh3A2mhBPlvf
+ Ji5R+CoQjv1YgYt2brYgsXOzI6utuaqjNEsU2vTc4RkQISzI4b8syGO/WMWbnIuOhrQg
+ F2lBYufOke/cyndIlii06CDtiYN0Zn55/Z3uoUkkii3FRKEC4diPD7mwIMGFEwUdpWnn
+ RqIwVrFzC4nC1MqRDviZ+WU3fxAXYUFf/CgtJora0jwc8eUnCiVHaXkC+6FcDOoYrrpv
+ 5iqvpwePzxP+sYFS8uZRrn3FOH6dv8Q4FhCXqPtvXI8iFHsaZ3lCOElz3fONiOlLZRxF
+ 3fMNElxCnviGfH9IxeTF8urLFyssfzWJeUJ4tFVyYuX6ErjEPCHPXyLXn38qCZrCR4pQ
+ grs+CPsQ5ftbQl6lJw8VpQCFPMEOFHiwVcir38NFj9y8FEDpCwd8lCjK8QQp7EMs33+5
+ FMC4WCGA8qq0gB64h6cU4qjwpHbUG4e/HfeES1SojX18j+PE9tqzx9iGOluQJvDEjdqc
+ FS/pfPk88Ysil3gAE3WvcAA7hDjBK2JiVL9/ABZVdBZnJgZxjq7kJTCqZaJCofwgLS+c
+ sHzP1iPP9+IB7AQOU2QVoVBH/IDa6/4eVcDmH46Qu3DMSYwI9MK2LVR0vnj+4v7CPsTz
+ fQbyPR0MZ/FERJUAtnHzb/rspyLK4WsFKJQP3719wwpzChVD7EJ+7g5CGJWcC4mLCmB0
+ YL0YGpeRd71WhgrFowVWOTkAGFW+xJoOL70dEh4CsVfsA1YNpprmAQqZey+3qMI6PTbQ
+ 3dZYXZqHCivqAHYWCCMdc74se5ELB1Z3VpjDwbDjPglsdWPn1ZsDeUmclyj5T5QD5aiH
+ aETFysAcCk0HFH431lCRnhqjwm9tWcHlVLhLXpFW9pzGuNTZQRp132gcDLEg7w2Mz6Ay
+ t7nzipcxUbA/YlSsO6wgcjJFKlT04ardl1sbaytLC6jgo7XQTIXyS/HhVJAW3KUsjODi
+ B2l2YI1Mysovq2uBwyZnF5bXNl/y9gb1XA6owkw/Dw7eUWlaLOOz2B2BOoCqXlGN/AVR
+ zT+aGOnvbm+uqyjKzUiMCkKLCOrSuaCqCckL0qzdgfp9fHpucVVDaxcVpAG2sfVyZ3fv
+ FRpCikbNIVYN5mykPwVRvUHlHh0j9BSIaubh2FBfF7WuinIzk6NZI8bciKlLqbt++YUd
+ pNHvsHJw8w2OTpEWlNU2tfUMjFEBn3eqtrdfym1nZwfdDN65EthYVFEZZx0ZIX7rayvP
+ noJqany4v6fzTmNtOWHFhPp7iY0rlT1bxgWBUaU8IDwhPaeoApHsGRhFw4M6e6tr6+sv
+ REPfZ4Oaj8yNrKtGcDB0Eqi9BlFR/J4vw1Wz05NjwwO9XW0tDdVlhTkZybFhAWgPIYq6
+ F7AYVbiLCx9tPjNrR3c4DH2r4oqbLe3dD1iD6AnaVs+eLS8vr8iNSNEZ3UbTYY85DmFF
+ 64V3/DY30O9bWnw8hx7f6FB/b1e7rBHtx4LsjOQYwkL/EV2Yk3SSSWAolaPPZ4s+X1hs
+ qvRqSQUaal3UUJucnpmdn3/8+IloCzCQ8m4W2NA6Yj1SdKpYh3QV8XuC+E3AVX09d9tA
+ VVVWhHZtYnQoYdmYoV+rqUr0VNg/0hf1kYTHpUrzim/U3pJ1dN3vH0L7f/LhlGjT09OP
+ Hs3MUuf9Keu0rbOoUm8PzUd4ikQ1O/1wfGTwQW9XR2vLLVAV52dnpMRHhvgTljl1RVl/
+ W8mezfsNEBgao1AYuu7uvpKIuNSsvKIyati2d2GEY2BwaHh4eESw0dGxsQnq4M7OU2dS
+ 3oJffc663POzj1j87t/rbMMcSm1lWVF+dlZaYgzGAbwQRGBR2/0E7W1y2BlqJGMcwMLW
+ ycNXEk4Nbmq732yUtbZ3dnX39PT29t7n1tfXB1JMdkxMTqGT+xgjC09Z71iYCuDx62q/
+ 3dxQV32jFNMTWWlJmDgJ8PVwtrc2IyxBXF/esoX2jNh410Vv1I7AwmIS+UBAFY3jyG63
+ tra2kbWTdWA4hyZhBliIpzDiMTsHm2VTFKMkKh6/agxO0LRJamJsJCZ0vFwxbmJmJGCd
+ dN7kDAYVqJdsamnr5O4TIA5Q0PhSdW3dzfoGwW7dutXY1Nxym7kRkwKDw6MYiZmg2QQM
+ TwxxKFkTpjnKigvysrMwnROD6RzMDTnb21iYGuphBoyG0040BoNAUiTVNAUwN++LfOAk
+ C1MwhcUl18vKy2+QVZBVVlXX1NXfapLdaetAiPswQoQZogEaNsGUTitEVVfFpl+kcFVc
+ VHgwqDxcMAFGc1YkeQzznQyLL0lMnBCYiYWNgwsf0Inlo0w5eXlX8/MLBLtWWFRUcr28
+ orqWsfGRq3ts4qqNJq7qED+46kpGGrkqFNNfXpj+ook5I31hmOnEWOQwmtAhMIWBppAI
+ DMklpaRdSs/glpmZmZVFs4V5+YXFNE1Ue5ONqMloVqiZT1qVlVzLy5amp9DgV3DgRWFa
+ Tj7H9zXeYjmMg9HskJGpMJbGxi8jo2Ji4+Li4xO4JSbSLCYmH7M5mzjSRxN9FWWlmOjL
+ lmakJcVFs0E5Lw9MF8rnHhHDrx8v5B7DwJyOfGCOjasGSjBAGxoGC2cWERkVHYupzFSa
+ Vsu9ykcgS8UJSIJC/CJDgwKgKldnBztry++bE2WhxNw4ZkR19Q1pwJCNYmLk2NfX7+JF
+ f9ECAiVBIaHhkZjuQ4gzaGQUM6M5OdlXMFyIidH4mMgwHj8XR3KVmbHh0blalWleyF7i
+ PwQmH8jUxzi0BaZE7R2dXFzd3N09RPP09MJo9EV/wBFbPI3YprIRW0zYxtMUazBJneJn
+ K7gKE/CKc8gq06kIJP4LMJr2xUymBptpx5i9BcbHbTHQbu8AcyRzcsLgNia3vTGRHEiO
+ w0hydAwsOiqSJpIDMC3N4sdVpc+gMLeNUfxvntuWD/yCjO4A8HF7MwsLSzIrZtbWmL23
+ d+BT5eS4QIkkKBgWhCFpNsHt6oz4WVkgfgY0sk3XP3D7A5dmkLS+2leCz8hlFEzymSZN
+ bevRjQljZibMTE1xV4HcSCFGhMWRdx8fDJXTVLkDoLjUxfgJrvp2KsCRywQyzG7zKya4
+ YKLHTJ/MAKTGwq0FOE5+RQA3BMCEGwKY0yapk6gO4weob/WV6DKBjJx2nq7kaGpewA0Y
+ uWnj4gm5kW55mFvCcRAgGW5UWFuyWwsK8eOi+i5PiepXcBpdDgDceTWYumB0c4PcyG7F
+ IMIIK91BMTfHZQBTdgOFLnmw9ceH2n8UFOOD1yme4pUv3GzhhlsuDBRuZGz8yo4hu7KD
+ ALMbO/zehFxUCn/vj3nJ2YiOGd0HIqO7QfIQK1xx+uyGEy2/H+qqo38U4Jjr8CVy424k
+ NqY/8U4YXc2hu0N0JexvpjrKyH4TOXmIj16hw1UmdtGKu+o7198x363yLcGHcv1RbMkO
+ bxz+C1AC9ZH48guQLNJ4X+Xf9Q/8BxRXuf0D3/fzK3564KcHfnrgf9ID/wdx3oFfCmVu
+ ZHN0cmVhbQplbmRvYmoKMjQgMCBvYmoKNTkzOAplbmRvYmoKMjcgMCBvYmoKPDwgL0xl
+ bmd0aCAyOCAwIFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0aCAy
+ NDQgL0hlaWdodCAxNTIgL0NvbG9yU3BhY2UKL0RldmljZUdyYXkgL0ludGVycG9sYXRl
+ IHRydWUgL0JpdHNQZXJDb21wb25lbnQgOCAvRmlsdGVyIC9GbGF0ZURlY29kZSA+Pgpz
+ dHJlYW0KeAHtnf9TUukXx60MBAER+SICBhISCgFmgmIuha35hUp3MUaLUtycCL9kpjS2
+ ai4Taaum5oRjUTrKGI7Z5q7m1k7/2uc8F2wT1D47+8tl73N+aGQcmPN63uc5b+61+5yU
+ FBx4BfAK4BXAK/DfWoFDSRb/YvUR6eEvcSQp4ku6h1H2/ww+hgucqalHky5SUyFxhP8P
+ uAl9ARdgaTQ6PS0WDJLHTp50Oo0GqQM4gf3/qI2ICWAa0DIYzHQIFovFToKANFG2TAYj
+ LY0O3AT2t2ucIAaFARjhstgcTgaXm5k0weVmcDhsQGcyYtioxA/UGnUtKGpaWhozncXh
+ ACwvi88XCIRCURKEUCgQ8PlZvMxMLofDSmempdFAa1ThB0CjsgZiOhCzATiLLxCJsnNy
+ ciRSqVRG+oAkJZBstkgk4GcBNhuoocQR9f7QMeQ0BhBn8vhCkThHKsuVyxV5ecqkiLw8
+ hVyeK5PmiEVCPi8TqBkxqfeDhr0MKoPILA6XxxeJJbJjcqVSla8+odFoClAUkjaI9CDN
+ E+p8lVIpPyaTiEV8HpfDAqmR0vvt6RgyEhmIpblypUqtKdTq9HqD0WgsIn1Akga9Xqct
+ 1KhVSnmuFKiR1DHoPbc0VDZSOZ2dwRNkS3IVx9Uard5QVHzaZDKXlu2EhYSxk1tZqdlk
+ Ol1cZNBrNerjilxJtoCXEYXeZ0uDzNCwCWSxTK5UF5w0nioxl5VXWK3nbCgqSR1Eiues
+ 1oryMnPJKePJArVSLhNHoWlHobr3EBrJTEtjgspCsUyh0uiMxWZLxVnb91XVNbV1dXb7
+ RZKH3V5XV1tTXfW97WyFxVxs1GlUCplYCEoz02ipewqNZKYzWByeQCzLyy/UF5vLrbaq
+ Gvul+h8cjsYrziSIK40Oxw/1l+w1VTZrublYX5ifh5TmsBj0vYUmZE6H9gXIaq3RZLGe
+ r7bXO5xNV103WlrdEG2kDpRha8sN19Ump6PeXn3eajEZtWqAhkaWTgidUNyEzEw2ly+S
+ KvIB+Yztgr2hsdnV0nbzlsfr7ejs7CJ5dHZ2eL2eWzfbWlzNjQ32C7YzAJ2vkIr4XDZz
+ T6EPod2czuGJJHJVodFUUVlz2dF83d3u6eju6b3X1+9Lgujvu9fb093haXdfb3Zcrqms
+ MBkLVXKJiBcVOqGLHTp8lM5kQ2XnKjX6kjOVtfXOa63t3u67/fcHBoeGHyZFDA8NDtzv
+ v9vtbW+95qyvrTxTotcoc6G6kdCJnRs6GCGzVKHWFVtsNfVOV5unq9f3YGjE/yjweHQs
+ CWL0ceCRf2Toga+3y9PmctbX2CzFOjVUNxIauljchiZKm8UFmY8XGM3WC5edrp9u3+kf
+ GPYHxsYnJp9OTU2TPqamnk5OjI8F/MMD/Xdu/+RyXr5gNRsLjoPQXBbqYnHFDcyotIUS
+ eb6uuPy83XGt7XaPb/CXwJPJqWezz4PB4BzpA5J8PvtsavJJ4JdBX8/ttmsO+/nyYl2+
+ XCJExb0HMyrtLJFMqTGYrNUNza2eO75B/+j49Gxw/kUo9OrVq9ckD0gxFHoxH5ydHh/1
+ D/rueFqbG6qtJoNGKRNloeJO0Blt5wy++JhKe8piszdeb+/qG/SPTc4E50MLi0tLy8vL
+ YZIHpLi0tLgQmg/OTI75B/u62q832m2WU1rVMTE/A23ouNpGLYyVKciRq0+WVFTVN7m9
+ vQMjo5PP5l4uLIVX3kQikVXSByT5ZiW8tPBy7tnk6MhAr9fdVF9VUXJSLc8RZLISm9jh
+ IzQGbGdpnsZgttb86Grv8g0HxmfmQovhldW1t+vr6+9IH5Dk27XVlfBiaG5mPDDs62p3
+ /VhjNRs0eVLY0AxafOOGbyRM+EIiUxYUldnqrrR47j7wP5kOvlwMR9bWf3u/kSTx/rf1
+ tUh48WVw+on/wV1Py5U6W1lRAWxoHocJjXu3WaG2zcnKzlVpoWtfanJ39A0FJmbnF5Yj
+ a+82/thEsUXyIJL8Y+PdWmR5YX52IjDU1+FuugSdW6vKzc7ioMadwJzOgRaWrzsN2/nq
+ ze77I2NTwdDSCiBvbm0nTWxtAvTKUig4NTZyv/vmVdjQp3X50MQ46Xswo7YNLUxv+q66
+ wXWrZ8D/68z8Qnh1fWPzw/bHjx8/JUFAmtsfNjfWV8ML8zO/+gd6brkaqr8z6aGJocad
+ oDNYFReYT+hN0MJueHp/fjQx+2IRZP59a5sA/ov0gVT5uL31Owi9+GJ24tHPvZ4b0MRM
+ +hPAzEUGHVfbiFkgUWgMpWdrHS3ee4OByeehpTdv329++PPTV7ifSRhfpffpzw+b79++
+ WQo9nwwM3vO2OGrPlho0Colgb2YWMOdpjKXn6hpbvX1Dj5/Cdo4AM8gc+1AS4n5JKZYi
+ CA3MEdjQTx8P9XlbG+vOlRo1ecAMBp2oM4uwZyOyKndH//AowQzbeYf5y8eT9AeCGjFv
+ rBPMo8P9HW5kVsAMBr0vs7IAmO2I+SG07VfLkb+ZSUr6VVoIOsa8/Aoa90PEbAfmAuW3
+ mZ3uTl8881efTdof45l9nW7nv2AmLeeuxOJ0xsz79bDofk6s7V2rSeIXu/fzwTrDHUC4
+ lBRK/+PMuy6gKckMtwzYmbFLSXu0tqfnXi+vwhXGNnwlIXE570oNmhj487vV5ddz02MP
+ Y7VNXExmsuNvlBw6chRuGQBzYZGl8qKzrQu8CpjDwLwFzLs+l9QvgHkLmMNR5q4258VK
+ S1EhXEDDTYO4m0OYGeuMa5vUu/nzZ7yfcQ/DfTsFexX2KuxV2KtItwLYn7E/Y3/G/ozv
+ GeD7JKQzp7iEsFdhr8Jehb0KexX2qjhrIN1L7FXYq7BXYa/CXoW9inTmFJcQ9irsVdir
+ sFdhr8JeFWcNpHuJvQp7FfYq7FXYq7BXkc6c4hLCXoW9CnsV9irsVdir4qyBdC+xV33L
+ q6j3TBl+XjLhmW/S7dt9EvrGc7G7nhFNoYbOCWd1HPQscJI8MYmfc995Lhaf4fB3fe/a
+ z9Q6qwPOoaHWmSwUPHuHimcsUe8srVQKnpmWSqfg2XhUPAORgmddUvFMUwqeXQsPulPu
+ jGJ0yBLlzqKm5JnjMDaBYmfLp1BwhkAKFWdFUHMmCIz4odjslxQKzviBDU29WU5UnNlF
+ CE2x2WzATL0ZfEjo6OBB6sxaTKHiTE1U3cSAXArNTk3ZgabSjFwCOio1dWYhA3S0vqk0
+ 8xr+UElQw7ZG2NSYbY7+OouooyPdqTLDPkqNsIH7SCoInmyRCrPr0URzGPq8+z/NILQD
+ A95AgKM3E/jwQWSPaK7oX5T9gXgH/xK9PZniYBr8W7wCeAXwCuAVSL4V+B8rHBE5CmVu
+ ZHN0cmVhbQplbmRvYmoKMjggMCBvYmoKMjQ5MAplbmRvYmoKMjkgMCBvYmoKPDwgL0xl
+ bmd0aCAzMCAwIFIgL04gMSAvQWx0ZXJuYXRlIC9EZXZpY2VHcmF5IC9GaWx0ZXIgL0Zs
+ YXRlRGVjb2RlID4+CnN0cmVhbQp4AYVST0gUURz+zTYShIhBhXiIdwoJlSmsrKDadnVZ
+ lW1bldKiGGffuqOzM9Ob2TXFkwRdojx1D6JjdOzQoZuXosCsS9cgqSAIPHXo+83s6iiE
+ b3k73/v9/X7fe0RtnabvOylBVHNDlSulp25OTYuDHylFHdROWKYV+OlicYyx67mSv7vX
+ 1mfS2LLex7V2+/Y9tZVlYCHqLba3EPohkWYAH5mfKGWAs8Adlq/YPgE8WA6sGvAjogMP
+ mrkw09GcdKWyLZFT5qIoKq9iO0mu+/m5xr6LtYmD/lyPZtaOvbPqqtFM1LT3RKG8D65E
+ Gc9fVPZsNRSnDeOcSEMaKfKu1d8rTMcRkSsQSgZSNWS5n2pOnXXgdRi7XbqT4/j2EKU+
+ yWCoibXpspkdhX0AdirL7BDwBejxsmIP54F7Yf9bUcOTwCdhP2SHedatH/YXrlPge4Q9
+ NeDOFK7F8dqKH14tAUP3VCNojHNNxNPXOXOkiO8x1BmY90Y5pgsxd5aqEzeAO2EfWapm
+ CrFd+67qJe57AnfT4zvRmzkLXKAcSXKxFdkU0DwJWBR9i7BJDjw+zh5V4HeomMAcuYnc
+ zSj3HtURG2ejUoFWeo1Xxk/jufHF+GVsGM+Afqx213t8/+njFXXXtj48+Y163DmuvZ0b
+ VWFWcWUL3f/HMoSP2Sc5psHToVlYa9h25A+azEywDCjEfwU+l/qSE1Xc1e7tuEUSzFA+
+ LGwluktUbinU6j2DSqwcK9gAdnCSxCxaHLhTa7o5eHfYInpt+U1XsuuG/vr2evva8h5t
+ yqgpKBPNs0RmlLFbo+TdeNv9ZpERnzg6vue9ilrJ/klFED+FOVoq8hRV9FZQ1sRvZw5+
+ G7Z+XD+l5/VB/TwJPa2f0a/ooxG+DHRJz8JzUR+jSfCwaSHiEqCKgzPUTlRjjQPiKfHy
+ tFtkkf0PQBn9ZgplbmRzdHJlYW0KZW5kb2JqCjMwIDAgb2JqCjcwNAplbmRvYmoKMTcg
+ MCBvYmoKWyAvSUNDQmFzZWQgMjkgMCBSIF0KZW5kb2JqCjMxIDAgb2JqCjw8IC9MZW5n
+ dGggMzIgMCBSIC9OIDMgL0FsdGVybmF0ZSAvRGV2aWNlUkdCIC9GaWx0ZXIgL0ZsYXRl
+ RGVjb2RlID4+CnN0cmVhbQp4Ae1aZVRVXbde+zRw6K7Dobu7OwQEpKS7W0pAQkrKQEJS
+ KRMlRAQEfOlGBREsBERQQUVRkJa70dfvvXd84/t177/rHmPv9ey55ppzsiew5ljPBECw
+ 0DUkJAABAAgMCg8119ci2tjaEbHPAQ6wAXrADDhc3cNCNM3MjGGV/3B9nwLQwdSE6IGt
+ /6D0n8TUobBDACAzWIHO+xf2OMBuv3DUAT4eHhIO65w+wO4+rvA8VA5jkVBLc20YjwKA
+ w3v/xCTPDrDbT0y9cIBdXUO9AWD+AusTXV29YcxC9Qu7HWCJAxzp7g3bZ4FjwNAEefgG
+ wSLYB0bNwzPMHQC+y7COh0eYeyAA/DgAEFqBgcHwvODBNxFwDwmF1wrCN+A5+HbwCF9O
+ rwGQPQQAauEfWXAyALczACCU/CMTOAbHJgZAXe0/sm/mP78nxPAozEta6qc5CK8FAHpm
+ f/8bHwDYHAD2zu/v71Tu7+9VAYCcBqAzwD0iNPKnLkAdDGhACigBHZxBAuAGAkAUSAF5
+ oAw0gC4wBKbAEtgCJ+AOfEAgCAXHQSxIBKdAFsgG+aAYlIHL4AaoBQ2gGbSDLtAPRsAY
+ mAQvwBxYBMvgC1gHOxAEYSE8RAMxQQSIFxKGJCEFSA3ShYwgc8gWcoG8oEAoAoqFkqFM
+ KAcqgiqg61A91AJ1QoPQGPQMmoOWoFVoG4FAkCHoEGwIXoQYQh6hgTBEWCAcEF6IEEQ0
+ IhlxBlGAqEDcRNxFdCCGEU8Qs4hlxBpiH0mKpEcSkcJIeaQW8jDSFumJDEHGItORechy
+ 5C3kPWQf8jFyBvkBuYlCoahRBJQIShGlh7JEuaKCUbGoTFQh6iqqEdWNGkfNolZQu2gy
+ NAtaAC2P1kdboz3R4egUdC66Cn0H3YOeQL9Bf8MgMXQYHowsRhdjjfHGRGEyMMWYm5j7
+ mIeYOcxXLBJLj+XHKmKNsU7YEGwy9gL2OrYN+xD7GruGw+FYceI4LZw1zg8Xj8vBXcW1
+ 4h7i3uA2SPAknCRyJEYkLiQRJJkk5SR3SUZI5ki+k+JJuUgVSU1JPUljSXNIb5B2kj4l
+ XSFDk7GTyZAZkbmTnSDLJbtJ1kP2kuwbHo/nwavirfFB+DR8Bb4VP4H/RI4hJ5IrkVuS
+ B5Gnk1eSt5M/JV+lwFPwU2hROFJEUeRS1FEMU7ylRFASKJUorSlDKc9S3qQcpFyggqgI
+ VMpUNlSRVLlUt6keUn2kJqUWoNaj9qBOpq6g7qSepf5Bw06jQmNPE0NTTHOP5jnNFi0z
+ rSKtLW0MbTFtG+1L2l06djo1Ome6RLpKul66RXosvSC9EX0gfTZ9A/0k/QYDC4MqgwtD
+ MsM1hmGGFUYaRllGW8Y4xkrGfsZlJkomGSZbpjimKqZBpk/MtMwKzE7MKczVzGPM31nY
+ WbRZ/FiyWZpZZlgxrKKslqyxrFWsI6zf2FjZtNkC2PLY7rO9Zadgl2d3Yc9kv8P+ioAh
+ SBDsCCmEWsIzDiSHKIcNRzJHLcdzIoooQbQnphHvEGc4STnlOd05z3G2cy5x0XNpcYVw
+ XeQa5trk5uW24E7kruN+xYPnUeLx5Sng6edZ5+XhteRN5r3DO89Hw6fFF8pXxTfBj+SX
+ 4ffkv8A/wL8pICRgL3BG4C+BL4JcglaCaYL3BD8KcQiZC6UKtQh9ECYImwufEm4VXhHh
+ ErEWyRTpEFkTFRR1Es0VHRTdE5MW8xW7JPZEnExcU/y4eK34ggSrhLlEhkSXxKakhKS3
+ ZJnkUylKKQOpk1ItUqvSQtLu0qXSkzKUMgYySTLtMt9lJWT9ZK/IzsqxyFnJZcuNyGPk
+ teTj5e/JrytIKgQqVCu8VeRWdFG8qPhCiVHJUilH6ZEyubKRcobygApGRUclWaVbFVLV
+ UE1Q7VD9oaamFq/2l9oPdXX1BPVODaChqZGk0auJ1tTXTNcc1sJrmWid15rQZtC20S7R
+ ntHh1PHUua7zUVdCN1y3RXdXT0MvVW9Yn0LfQr9If8aA28DXoM5g/ZDyocRDA4YUhlaG
+ JYbzRkJGx4xajIGxgXG28bPDxMM+h28f3jbRMjltMmlKMPU2vW26Y6Zrds7s+RGeI0FH
+ 7pmjzE3Ni80XLSQtYi0GLeksXSxrLLes9KxyrGatRaxjrAeO0h11O1p/9IeNsU2xzZKt
+ gu0p20k7Hrtwux57Wnt3+wYHpIOFQ5XDmqOOY77jWyd5pwynF84izvHOYy5cLuEuA67M
+ rgGuHW40bp5u99zx7i7ujR44DweP255oTzvPOi+Ul61XnTfK28673gfj4+DT4Evi6+zb
+ 5Efu5+HX7k/r7+/fE8AaEBYwEsgdGBs4GSQWlBY0F6wUnBv8KUQ/pCJk55j1sfpQslCv
+ 0K4wtrCosIlw8fCs8HcR2hHlEbuRtpFNx2mPhxx/GCUclRH1Llo3uioGEeMS03GCcCLu
+ xHSsSmxJ7E6cfVxbPGt8bPx0gmrCpYT9ky4nuxO5E1MT3yUdSrqZTJEckjyRIpdSlLKb
+ 6pLac4r/VNapz2mWaS3p7OmJ6W8zjDNuZzJkxmbOZxlk1Z6mO33i9PwZgzN1ZxnPxp9d
+ PHf43N1s9uzU7JXz1uc7cgRyzuds53rkPsiTz6vIJ8uPyJ+7YHjhbgGxIKtgo9Ct8GGR
+ UtHVYpri+OIPJUdLekslS8su4i9GX3x3yepST5lkWXk5ZXlc+ccK+4qRSqXK6iqWqsyq
+ 7ct+l19eMb7SflXsatk1qmtJ19aue15/dsPwRnu1eHXlTfqb6Td3bgXfelNjXTNSq157
+ p06g7mI9dX1a/e7tY7ffNTg2TNw5dKejUa6x5i7P3ZImmqaMZqg5unm1xbfl9T27e49b
+ jVp729Tamtsl2qvv89y/9BfzX7kdFB0ZnajOhM7trsiu1e7A7qUer575Xufe6T7bvql+
+ i/7xAZOB0UHDwaEh/aH+Yd3h3hHtke5RrdGuB5oPuh5qPex+pP2oZ0xnrH9cf3zwseHj
+ 0QmTibEnFk+mJm0mX045Tc0/9Xy69Czw2erziOfbLxJeIl+mT1NM575ifnVphmemelZy
+ tnlOba7vtfHriXm7+fk3fm++LsQsIhaz3tK+LX3H+67uvcL77iXjpalll+XlDxEf9j9m
+ fmL4VLEistLyWefz2BeHL0urEV8RX899Y/tWvSa/1rdusf76e/D3HxunN1k3q7cUt4a2
+ bbff70Tt4naL9gT3Wn8Y/ZjeD/pTC/ypBf7UAn9qgT+1wJ9a4E8t8KcW+HMu8Odc4M+5
+ wJ9zgT/nAn/OBf6cC/z/PRcIcQ11/VkLIOEnwssLgK/XACC3BYB2DAAy5P92/heP8qva
+ AEiYFDoglhAwl0QHeIEKsAPxMKvwEmKDwqBJhD5iCOmGokKNoMswWdh8XCPJezJx/Eny
+ BUo7qhEaOdpr9JQMgYytTFss4qymbM7sTgQLDgOiCqcYF5GbnoeMF8sH+Lb4vwqsCL4V
+ WhR+LfJMdEJsTHxEok+yQ6pZul7mpuxVuXL5IoU8xTNKCcqeKuqqzKpf1YbUqzQSNV20
+ lLXZtHd1ZnQ79Cr0TxkEHrI0VDbiMsYZfz08bdJnWmtWeCTFPNTCw9LGytza6KiOjYqt
+ jJ2oPb8D0ZHFidGZ3oXGlcqNxp3Og9GT1YvLW8hHzlfDz9jfNsA20DBILpg7hCZk/9jH
+ 0OdhA+GNEWWRZ49HR3lEH4lRPsEXSxG7Gfc6fjih8WRpYkpSVHJ+SkfquzSadPWMwMyL
+ WSOnd89KnfPMLjs/lUuep5efdKGjYKdIsTi6pLV045JU2dHygIqUyktVdy6PXlm4unOd
+ 7oZ4tfFN31spNZW1XXVvbiMb+O8YNgbcPdd0p3my5dO9/Taadu778n8Zdth3+nfFdmf2
+ 5PVW9t3srx+4O9g81DzcNNI42vCg5mHVowtjp8bDHjtNGDyRnGSY3Jmae9r1rPJ58gv3
+ lzrTPK9Qr97PDM/Wz+W/jp33fHN4QWKRZvHr2yfvmt+XL+Usn/6Q//HWpxefCV8Sv5J/
+ 61/v2NjZrtwb3t//mX8SmEnkh5knF5hhagTLkCCc/z4ENyIPSYW8jDJEY9EzmHHsFG6P
+ VIEsmxyiiKHcpk6jpaJLpd9itGEqYp5gWWPDspOybxOWOV4RRznbuGq4y3kKeXP40vjj
+ BEIFvYVchG1FDovqiqmLy0jwS3JIUUsjpTdlPsm+lnsiP6DQqnhVKVX5qIqwyp7qI7Uq
+ 9RgNc00BLaTWjHarToFuuJ61vrwBi8HeoVnDbqNrxucOh5vYmWqaCRyhPbJn/tHileWY
+ VZf1naOXbQpsM+3i7Y85+Di6O9k7W7pYuFq4HXG39LD1dPby9Q7zifPN9Mv0jw7wCDQN
+ Ug0WCGE4hji2EvoyrD+8IeJSZPrx41HO0UYxMicIsdjY1bjp+L6EupNViY1J48krqRSn
+ JNIs0qMyLmb2ZX09w3HW7Fxi9t3zS7mcefb5Fy5MFNIUWRSfKxkr3b1EKNOFfweyK5ur
+ Zq4grwpfs7qeeKO2+vktbI18rV9dcf14A/aOUmPI3WtNsy3U99Rb/dsK2nvvf+lg6dTq
+ CuzO62npfd2PHhAYNBoKGs4eaRidfLD9iH1Mdlz1sdqE2hOVSZUp5afyz2SeS7wQesk1
+ zfqKegY9sz27PPfq9ch8+5vqhYLFq3De95Z4ls0+nPhY9enRyu4XiVXfr1XfFtelvqdu
+ zGzpbNfvcu5d2Mf/zD8EMDATyQbEYObRFSSB6+AJhIFMoEvQOsIFMYl0ghm6G+hAjB5W
+ EadBYkUaS1aDX6bgobSmSqeupRmkfUQ3RN/MkMvozMTDtMB8jcWXVYD1A1sdeyRBDeZ1
+ BohZnKZcDFwvuEt5nHm5eRf4LvO7CRAEXggWCFkKUwoPiiSKKomuihWKK4q/kIiRZJFs
+ lbKX2pO+JKMpMy+bIscvNyQfoECpcFvRSnFDqUhZVXlWJUmVV3VQLVCdTr1LI0xTWHNe
+ q1jbXIdEp0v3hJ6c3qp+nUHwIdFDnwxvGx03VjqMODxqUmDqYSZ5BBx5ZF5i4W4pZPnZ
+ qsk6/qieDd7miW2pnZu9iP2aw33HdCdzZw7nZZcm11Q3S3ce9zWPPs98L1dvce9dnyHf
+ Qj9vf7kAZMDjwKqgsGDdEIaQxWNNoelhduEiESDiSeT14zFR5tFSMYwnkCdWY2fiHsV3
+ J9w9WZN4I+l6cnXKrdSGU21p/enjGa8zv54GZ6jOcp6TyTY475ATknsqrzK/68J8IbpI
+ vNi+JKO08+JWmXR5WMXdyq3Lmleyrj6/zn8jonr0Fm9NXO1kvfjtrIbFRs275U0/Wpzu
+ dbZxtafcX+ow6mzsZu5J6n3fbzrQPiQ4fGrkzQOFh1mPFse1H9c/EZ5sfGrznP0l6hVx
+ Nmaeb1F1Cflpa738IP+/+PSDPQEjB0BJAwA28wBYlAJwpgCmzxMAYCQFwIwcAEtFAL31
+ AtCbpwCS7f7X/iEJrEAkyAX1MAe9CPYgBkgM0oOcoeNQNswnd0PT0CbMHksizGC+OAfR
+ jJhBYpEyMBtcgpxC0aLMUXmoZ2h2tAf6Jnodo4k5h5nBSmKTsM9wkrhM3CKJNkkVKZrU
+ n3ScTJGsCk+NT8B/Ifckf0MRSLFFmUHFTlVPrUM9QxNJS0NbR2dGt0qfy6DAMMuYwSTH
+ NM+cw6LLss1az+bNTmCfJGRyaHHsEVs5Y7hUuPa5+3jO8FrysfMt8zcLJAuaC3ELrQn3
+ iRSK+olpiDOIf5KYkByWGpAekOmTHZEbl38J83NbyjgVoqqSmqV6hEaBZpfWkg6Trp7e
+ Cf0Gg1eHZgynjCaMHx0eNhkw7TPrOdJjPmDRa9lnNWQ9eHTUZtz2qd2M/YLDB8c1px8u
+ OFdaN4K7uIe6p43XOe9xXwp4X8oJmAxiDfYKqT+2FaYTfjZi+rhoVGz0gxNsscfiuhNo
+ T/on9iYTUqJSJ9M00lszxbPqzwifvZEtfP5OrmrewAW7grWizBLh0slLJ8ulKz5U3bji
+ d038+m711K2W2qr6wob8xvNNZS23W/vb33eQdcn2uPedHxga2hgVe+gwlvt44Mm3p/LP
+ E19OzPDNRc63LCy+Q7/fW176eGvF8fPaatDX4TXadePv3htRm7Fb3tv6O4w7M7ulezp7
+ H2Em42D/EIM7FRJABegEr8AmRAuJwB0GTnBfwRnoCvQX9BT6giCFOwe04P8lCYhyRB/i
+ E5IBqYs8jqxFfkAJofxQtahvaCV0EnoYw4DxwDRisVg7bB3Mybvh7pOwkcSTzJHqk9aT
+ sZCdIlvHe+NfkB8hH6NwpvhMmUzFStVAbUS9RJNKy0vbT+dPT0l/l8GREcfYxOTFTM88
+ xJLAKs+6ynaT3YfATZjluEh05uSGeeTb3DE8+ry0vDN8tfwJAiaCBMGvQr3CBSL+ompi
+ dGIfxLskqiSLpQqli2QKZcvkLsvXK7QpPlCaVV5XpVITUDfU8NPM1WrVXtKl09PXjzO4
+ dajdsMOo33j08LjJU9MZs7dHPptvWexbYa2pjjLYEG0F7GTsVR30HM3gHcnL5ZhrrFu6
+ e4nHNc8+rw0fAV8Lv1T/toCVIJ5g55CiY+NhZOG6EScjO47vRivFRJ24G7sZL5MQerI5
+ cTdZMyU1dSSNMT0woyuLcDrmzNQ5uezCHESuX97EBZ2Ce0VCxRWlhIulZWzlZZW8Vbeu
+ yFy9f13vxsubWTXmdYT6lYbexrym0BaLVpl29r8oOva6Nno2+7YHSYcZRiUe6o75PD79
+ xGoK+bTzefJL9ekfMx1zWfNGC1SLD9+lLKkvr32sWNH5/GY14RvDWsV3wY36Lent27uy
+ ezd/5l8DHAOloBsswrsGL6QNuUIJUCnUBj2HthCsCDWEOyIL0YR4i2RBWiDzkbMoUVQc
+ agIthE6Gqwo1TAUWhz2GncGZ4XpJVEnaSNVJ+8nMyObwEeQU5DUU3pS8lB+oGqmTaCxp
+ RehwdMv0YwxtjDVMVcyXWMpZr7BVs18jXOQoJBZwFnOVc1/jaeBt5RvifyawILghjBVh
+ FhWCKw5LiSDJfKlu6TVZPjlH+WKFKSU2ZUeV66qf1dU0MjVntcV1UnRf6EsbnD303cjJ
+ +IGJsmnNEW7zcksmq4Kj9DYldrz2tY7KTiMuDq6f3bM8CV5VPty+hf70AdlBuODkkO3Q
+ wLDZiMORnVFi0aUnsLGRca8TDE+2JYkml6VSn0pK+w5XjQun7c88OKeWXZPDkZuRtwr/
+ vXYXcRUnlSxc1L5UVrZTcbSy4TL+iiecMbobYdUjtzhqwmqH6jlvxzRMNgrdTW1606Jx
+ r7R1o936fnMHTWdo1+Memd4LfesDToMdw8SRtNGVh0cetY/zPc6eWJu0nRp5Zvx84KXJ
+ 9JMZj9l3rwPmlxbsFnvf8b9PXHrwgeyj8ifXlfjPp76kraZ89fmmu8awNr9e8d1yA7dx
+ ZVNzc3rLcWtm23n70Y7UTv7O5q79btnu7B7Hnste+d7cD84fNj/O/Oj+sbEvsu+yn7//
+ s3781YN1sH8AUu3ggOBQorG2zs/X/7tHYECE+9/WaOARHxRgctDbxQDf7z1cdYzgkQ2+
+ f4QE/OyDg3UgFs8gKwtYdoBFgtxMTP/Gal6heuYwhtdCZiHhWgeYCcZeIeFmln/L42N8
+ tE1gjIfleZ5hur/tlPu5GsI9aIACljeERphbwZgHxp1hkRa6MKaC8UKMj+XRv3XWPDx1
+ /pYjEF6+enC/2YEOgsY3/NCBLzoYc/kHGx3EAPtCyAEjEAA8QQTc8eUJguCeMGOgDXT+
+ fooCL7g+C4X3Wk8QBvzBWxgHwiuC4TXBMCb+raf9bxK9n+u84XX/0yIR7i8Lhr399vnL
+ GxH2+dumL/CA8W+5K+zjYO4gujBn36R/fP7WOLD3MxqJmxJLEru/Y0LxoaRQsigtlCpK
+ DaUIiCgGFAsQRcmgFFCaKHWUMjynCPTAAmzZ+3eMB/YDG7wiC4Ojlax94NmDn93t9yyw
+ /qnt+6/3f4sA+D782PzxdwRw/+TPnkD4SwMMnIPSpAPUXfPl5MH4369wz6jwg3ft4JDo
+ UF9vn3CiJtw16SlCPBTkLiZClJKQUAT/BY1sEFMKZW5kc3RyZWFtCmVuZG9iagozMiAw
+ IG9iago2MDMwCmVuZG9iagoyMCAwIG9iagpbIC9JQ0NCYXNlZCAzMSAwIFIgXQplbmRv
+ YmoKMzMgMCBvYmoKPDwgL0xlbmd0aCAzNCAwIFIgL04gMyAvQWx0ZXJuYXRlIC9EZXZp
+ Y2VSR0IgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBhVTPaxNBFP42bqnQ
+ Ighaaw6yeJAiSVmraEXUNv0RYmsM2x+2RZBkM0nWbjbr7ia1pYjk4tEq3kXtoQf/gB56
+ 8GQvSoVaRSjeqyhioRct8c1uTLal6sDOfvPeN+99b3bfAA1y0jT1gATkDcdSohFpbHxC
+ avyIAI6iCUE0JVXb7E4kBkGDc/l759h6D4FbVsN7+3eyd62a0raaB4T9QOBHmtkqsO8X
+ cQpZEgKIPN+hKcd0CN/j2PLsjzlOeXjBtQ8rPcRZInxANS3Of024U80l00CDSDiU9XFS
+ PpzXi5TXHQdpbmbGyBC9T5Cmu8zuq2KhnE72DpC9nfR+TrPePsIhwgsZrT9GuI2e9YzV
+ P+Jh4aTmxIY9HBg19PhgFbcaqfg1whRfEE0nolRx2S4N8Ziu/VbySoJwkDjKZGGAc1pI
+ T9dMbvi6hwV9JtcTr+J3VlHheY8TZ97U3e9F2gKvMA4dDBoMmg1IUBBFBGGYsFBAhjwa
+ MTSycj8jqwYbk3sydSRqu3RiRLFBezbcPbdRpN08/igicZRDtQiS/EH+Kq/JT+V5+ctc
+ sNhW95Stm5q68uA7xeWZuRoe19PI43NNXnyV1HaTV0eWrHl6vJrsGj/sV5cx5oI1j8Rz
+ sPvxLV+VzJcpjBTF41Xz6kuEdVoxN9+fbH87PeIuzy611nOtiYs3VpuXZ/1qSPvuqryT
+ 5lX5T1718fxnzcRj4ikxJnaK5yGJl8Uu8ZLYS6sL4mBtxwidlYYp0m2R+iTVYGCavPUv
+ XT9beL1Gfwz1UZQZzNJUifd/wipkNJ25Dm/6j9vH/Bfk94rnnygCL2zgyJm6bVNx7xCh
+ ZaVuc64CF7/RffC2bmujfjj8BFg8qxatUjWfILwBHHaHeh7oKZjTlpbNOVKHLJ+TuunK
+ YlLMUNtDUlLXJddlSxazmVVi6XbYmdMdbhyhOUL3xKdKZZP6r/ERsP2wUvn5rFLZfk4a
+ 1oGX+m/AvP1FCmVuZHN0cmVhbQplbmRvYmoKMzQgMCBvYmoKNzM3CmVuZG9iago4IDAg
+ b2JqClsgL0lDQ0Jhc2VkIDMzIDAgUiBdCmVuZG9iagozNiAwIG9iago8PCAvTGVuZ3Ro
+ IDM3IDAgUiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGdmkuvHjdyhvf9
+ K3ppL9xustm3ZaJckAESZGIBWQRZOGfkjAbSKJY8AfLv87xkVZHnJgWBIZ+P1WSxbqwb
+ +ev8+/nXeeW//Tzmc9vmz+/mf53/PP/45kuaH77Mqf735WH+YV32Wf+Gib/MP/7zu88P
+ 7/7rt7/8/GH6/B5UOQnZOqejzGlLy7WVebvz/PBx/vEfPu7z33yqO+5XnVWOmFTuazmO
+ 0yYek03Md50IlpT3pdzHvK9l2aCtIjwd4da25U/KednXlJl4LGW/89SmXj71hb3Xc9ng
+ vU08fOLzvUvKy32ehvFrm5e0LykfzvgLm+dzq9LZ131Z82Y4X9h8W+82Ma2DhG6nsnO+
+ pbRs+wbnkHml8yuc5+tYEtIuu0vypY2RZJt0LEdxCl/aOG/LccFs2a/lvKHgVZE719t9
+ DJJ8aXPjuqx5CTG+tLczXbCL81yfMY3xVYNM15xPBIQpleK6xlrN0K5mkenY57Re2OwB
+ ExM2m9KTKYgtXzDM323bkUwxdrG5iuzHf3n34eff3v/3uzefPnz6/P7ju98+v3/Q8ViX
+ 87pWNn/+gxOGqJe8H8dcznXZTqT4kdMhMd0XsGtO5V7WfSvTXvKS+TWnG8PdE4eCo5b3
+ +WHOq85cBrIjN83J+7nc93HPO8uTzqIgRwZpWzWx6sZgCqzve2HOusPZuVx7Kpyii+N0
+ bvPGITkOTmy5YDofF7ttBRu++FjOsuzbdk2alddzn0tCHTCTz3MpJ9IsGUAl8eRorOxR
+ QJ3We845LffODFSdL37kBJI7lSnWpOtc0n1hYSuy22/cEuhK4UeBUshCbc/k9zD/MaDT
+ INVfcGq/49+fmpt781O1kHX+6Q0eLNXBD/ojf4glB2LOc+V8GhSTd3Y2xaAPqLvL2RUj
+ fTSuXTHpQrua44qZEtZ0HRhdKKavcsWk82LOPSgmSwB3xghdMblgDdgNCg3FZE5kOThA
+ oZgtXUvmEIRiNtTQbMcVs4H6QrSmmGnbYCth564YsNmaUMy2obyCNkMx+d7ljgbFhPxG
+ xcwOxdx/IjgQefAfXxA/Z2JQR+Yo7NVsOApo5a/fspXpKs8/EB22whn/Ia3TW2LD36WF
+ WDC//WX+t/m7v/pe8SvP3332H//xPYcQwHv7+1t8+dmnGGT67n++n/99fvu7+W/f1tgV
+ BvINigoUbZvO7uwETU7QG9/kk+3/0QHx4y/25c9PKH1oM6fvgtDfnAlHxpL/D8G4++M4
+ blR4PRfhP75zCv/whCAnFMr7rp4/rMuV12PPk/9A7A0i9aa9ZQi7zvBxJnm8w6Kdgz7M
+ CeeC25SXa9OmehqwYVzOcmxkLgHINYsgqA0gsQVuIeIQaRn+5biVoRjmaU/VoeNWfHsH
+ DEQ6CETl4DRWTL4OlzyinpIDqlTZHkRPQd8GxKJpd860u+0V3Ac5LrRngq0nrkl7cjEi
+ 7V/GE9Ydnqkl6QTjA7tWHNKVMjnIhZvue9mOLOE2aWclbPKkHUImI0jXSCZd2tbtQLOm
+ 65xAwxxXiI+7PhwyqMNBJqHJ0YbISE+dFhOiQ1yor4zxqTHD+OmK6Cy7IkIoTySJGibX
+ jc9pbg+vstzbXnBx/FrXbb8Idzoj+L2a92bA2bKCG5PesQkDiRQSgEJ8CJiTuxNdC64x
+ 6N9xlZxz8psBxKG7SZU7GhIKsmzyBe1UMwUl3Z2a9v2DIuxzAjErXJ3Srkdx1CbmmkWT
+ QCiMNvwBGjhxWBylTKq3Hzv+yXXX8nbyrwG0KblQsmQCUSwl+7GdJht2TgwwcuI7Q6Ai
+ UistqioKqQYBX4dxK1e2RCCdaQOGDIl57IQPUmLdIWVd0glRvq4SLLLQwp7lS467yt4g
+ RHZ8JjzEOuqOa7urAgI70ljJ9CR/o6BBprQFncM6BEMKxX6OHfdhkEYBmGKd8ffwmofw
+ mTrcx07cbSlRpSOvID5J8EISDoFH4yjWSXUmCQIFyaesrkNIPhF0l4SO55qOpPPocpZd
+ lPvE47gkBohx5OuqBI3vrNQW7MgrIE7BM/4emil48IooFj96OJsKbuCx33QI5u0OzkHu
+ JgtGLRcYXlKJLVjEqXnSokP3yG8WjAdni6gDLfFm9JvFxmAx9+8QHTULYw7yg9XR2knz
+ naWtFnwMEofTZzz5PhxN40de33EEy0ZISM59pAtpCF9Uby7dr0avSTWuirQevRwyaMFB
+ LuJMBm+pgUUvYiBYBi1scijgFZY2Z8NwSUMGLWxWq3v08nHXgkMGLTjIxdPRmrx8564F
+ g4QWfEZH0WjtK5SVG/WGtbPsWgihWPTy8agFh309enG0WvQqSl/utdW0zecHSCIwZx0w
+ Z6BQeqQ1gtdEJJN5j8Gr4Acom5vbqDGwEFVo0+APbCcbIwUnp0Gm0evH3q+mRbZ4UwKw
+ 4kp7/HIQCIMXh4W5b9S3RNkYU4KjCtLQUTs4Z4qGwDLle1PYD1583HlxyMhL7D1EsGmM
+ YDqMayLGDH5bgiTTUESxGNMh7rd9Xc2HzG8XuiBk4o3oGsFgAU+ehwgm93DslIeiO7Cj
+ W2raaiQ1clRtq8qNSPRonXnpjt39tlPQI5/TyX6veInw8ByI+yLGDJLIN+2MlU5L0OoQ
+ FOMRzNdJeyaJTD+GanuMYGTD13ESY3ydjuimxsUgiWoZartEBBsgFsF8XY18Hq8MO+sC
+ 4hQ84++VCNYrM+xDLcRaxrTMEpnIukbIB5pfeL2Dut5STQDk7CqGyCxW/ofndQANK2yX
+ BtMTyLfGsYJipbZH8baxRmeXVHkgpLAx+wStNlZjy6hvkHqaKqmvrggJ2IwPyIQoWctP
+ A20IBySQZoQYgCy50Yoc2xRE0iQAloA0IQ1om6yn2LmNkdofX9DHy9bsa1vmepKXOucG
+ qfIzvTnIBao8iIYUfTfTktI1+c+uBYc8nfF0HCtqB0w4ut6SPBm9AMzDCEn80Byn1cdd
+ bw55OsPGtM4ahm65Dhn05iBXgRMSOlEbFTo4WT7F+e16CyGFObgYn8heegtd+pyvR0m2
+ pb150rj3+v0jIOxk3XqxLlLyQotL1Zi1S5zcnchE65gun1sZ3ThOhMJkgNjjvFOaOhol
+ jxcx2fbCWg2gVUaRgxRdAmj7Y2avmKOt7iWub+GQgRsDQVc9VljOsZxEnqA80/O9zxon
+ fQ7db9rM180ck4mKh0P1jQsuAJ2ZAI3MOEVDpFTZvdWTm1Uv0Ygo6YZZ8U+hocqO7jjd
+ dSD1xKv6C8imOarr2rqqAhrcJ0XSTjZzUcPDa0C2hU6uGPF1OO5z1ZXHgB390mnVfk6B
+ QcAkDyM6h3Vss5dLDTPH3iGNAjD5OufvtUgZM3Uojv1Sly7okCJIswZJOATKjKNYJ46M
+ 70wulE56AAFRE+U8KZtjHdrkGoBLhUESMo6Lq8BOwQAxjnydJOh8O/bay66yGSiwdQOd
+ tez/aq0nM+NiYCLcSx4qXakJNMK0CfGQxUUTQ+UE9RO3OitpxACotyHxGcfYf782C+nj
+ UX0eNzE3tjJseK9Oy1T4jQScsv5l1pcRLvlWbuoXHU3dFGFudaJSCzEamzUA90DKYUjG
+ jb1dnMfImO2oEMUosxrdfNcqw9dcSaMs10rOqdaoy3nS0IWi64QqlABw4auI0tTAhcir
+ v2PWlMmMu5x1sVJVF4rNXOIFLbpNfDQavnAh1ixDK7qcNRrkXNGZ6PpmDoCWkDOUXYOc
+ g9mQs0Th2tTvUc4aP4tE5H9Dt5E0nswXzeuGEyIxbTyNCi6HSMm6yUt9kmkdE+EOiAM9
+ mIHuHnWVOoA27gXxoR3LSceiBi/fyQA6906Oz6me24FB4yumY/Nwr2ygpMh5MUgVpPHi
+ ILfgvHPndZw45lADrn5dVa05v3m/xa/mOJaD9kGNXcZLdkDnJUADL5Nv/zQKUVlsOyov
+ 3M1tCXLEhG5IgCi1pTerq1rk1yH4uJ1P0qKv0u4qWrl2JNEjD+AaeIDAxkpt1tdxR3lc
+ ud4kBnaUm5T2+/4xDhptlSSk3sLFxTRXvxX3NEB8/1jXqXxFkT6zXpBeOVVVVilIBUaV
+ SWGAmBR8VdWcSYFsSXRxYe1yyTuGeVOXhRRwApJ5veh2KcgsTOq2v4+NRrmOWOVS6Lg7
+ pO2PpEzDA5Vj9OnlmQK3rtJqdmJ1WuGvMuie7ztEebel2QaKsqxQ0JCIE4ks3y9kXsLS
+ s3eHPJ1hYy7mn6+oDzrkNR0rJT9lxVCnqUwf830bc849v39lxrPvWJhLwHDilqxOo0fU
+ tvFkUT2ESkgASGobvx3S+JFPlkIJ3SYkUnkr/1yysbPJfqzTfM5LibFe+PhaZT2qWLve
+ HDLozUEuUFFC4Rt1GqTVLH/Qm0P6kjbj6bhrWvEJSmhcxRyyF8r4QW+KnWN97eOuN4d4
+ XfZkXCOuMHS9+Yyut5jkKlC0FSFRGRitwmJacn673kJIoTcXo8m+5t6Nll5f+5xn0fHx
+ XZwXQIUE6dDtjyIt0ZPHLQLUkG71iEGcUDUX8yrv4vZFdkyZMFRoE0UGhQ/v5bymodhT
+ s7MXaAGQBFqBFqChpuF4VnJeskI9nfC1XDdQACqkGBsGkDQbG6QvdYpTrb7ieStUuAJ4
+ poUwa1R0EPfkuNfAgdHTwjoOfK1vY4CqyMaGz0GEvc4M+h7dwinVUcUDl3SNb2qnxlGt
+ zCTDKylKeWU2QKweiXWSYqtHwJWpPmoF3SColMrmVALgdYxuRbh+fFSZSa+09sRtq8zA
+ FBCrK8Z1Xo907B0SFDzl75uVmUybC7dHldmGGtKl/MAkgbsIiEki1nVJoC0exuRafpsk
+ 9HSIZEC229bVpHbj+VZVoFXAMo1rp75xSZASB8QkoQPs64zv+mKsYXdJDBT4OufPe5j3
+ Qd+CRjXH8yQrwv6+PEw//v2XNP/nF/wIkizEN16zyTYUYfVIRENMW8n8xcM4DXk8p+dZ
+ PJpU5zuG66Hcs31TBsOb076OR44dpwZyg7ajhvKkctS8KNQwkyeRZPD+rOGxsZ6namX7
+ GhTEUlEXaDV4yQgUUmKSZYfOrYYDtxoaR+qnVI4ag5k3ZA+TfyMLqpJwKWV1HRynBgO3
+ Gg7caujcKuMRHuevbtJHRkFwK+oeMdIUnThL9yTuac7rdZrpUG/o9oOevT7VjhjHF2Pn
+ opj2mMoQpC9S65BHivgsLiNsFY5Wls39UEXpI2ZrOyJ/+8pVjux9I+NyENflejxq6OgJ
+ jVvxbQ8yfGUlsKJ9TYf1hWHlsymwEdW05xRDKbcrcKRrbNybeGFALrom6rDGZ76UatMB
+ 81UR6RpKj3HOp48HPh0kPjs6+By30rcgw/msBFY+9atpT+d/VzmqK0fiGkexFVWTQ7BP
+ 5eE8SYxJmwomLaLdwLMKzp0DqHcKDSKQB+jQtWE6MF7Hgknj1HyjavEas8aJsRnYLQ2n
+ RCCJSbrj0VXvZmiZUQEzjyp96wA5eR2LcRkbtTGO5JWixglqpUWXDgVILWV0eoOvBoI0
+ kw7Hk8ODx3IAdRDW90g6vHY+90tOzqVzcU+lpqmrwcaDdAwySsdAwbmjDYBtXdN4E5iT
+ 16VjPIV0bNws5dGbT9x4nnDjv/anuLqoVP+hFmP16aeaFhzptzLm4RFo7WWQZT19cvnd
+ P336w7s5fT+//dOzZ5ybnupjcdUh/5+QP3kd2ZDnl5HrzlflBH/tpTgPV4P66RvUtxes
+ bYOtb/D7/wXbk9hFCmVuZHN0cmVhbQplbmRvYmoKMzcgMCBvYmoKNDI1NwplbmRvYmoK
+ MzUgMCBvYmoKPDwgL1R5cGUgL1BhZ2UgL1BhcmVudCA0IDAgUiAvUmVzb3VyY2VzIDM4
+ IDAgUiAvQ29udGVudHMgMzYgMCBSIC9NZWRpYUJveApbMCAwIDU3NiA3MzNdID4+CmVu
+ ZG9iagozOCAwIG9iago8PCAvUHJvY1NldCBbIC9QREYgL1RleHQgL0ltYWdlQiAvSW1h
+ Z2VDIC9JbWFnZUkgXSAvQ29sb3JTcGFjZSA8PCAvQ3MyIDE3IDAgUgovQ3MxIDggMCBS
+ ID4+IC9FeHRHU3RhdGUgPDwgL0dzMiA1NSAwIFIgL0dzMSA1NiAwIFIgPj4gL0ZvbnQg
+ PDwgL0YxLjAgMTggMCBSCj4+IC9YT2JqZWN0IDw8IC9JbTkgNDcgMCBSIC9JbTUgMzkg
+ MCBSIC9JbTEyIDUzIDAgUiAvSW0xMSA1MSAwIFIgL0ltNiA0MSAwIFIKL0ltMTAgNDkg
+ MCBSIC9JbTggNDUgMCBSIC9JbTcgNDMgMCBSID4+ID4+CmVuZG9iago0NyAwIG9iago8
+ PCAvTGVuZ3RoIDQ4IDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL1dp
+ ZHRoIDU4IC9IZWlnaHQgNjggL0ludGVycG9sYXRlCnRydWUgL0NvbG9yU3BhY2UgMjAg
+ MCBSIC9JbnRlbnQgL1BlcmNlcHR1YWwgL1NNYXNrIDU3IDAgUiAvQml0c1BlckNvbXBv
+ bmVudAo4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Ae3QAQ0AAADCoPdP
+ bQ8HESgMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBg4HlgLjgAAQplbmRzdHJlYW0KZW5kb2JqCjQ4IDAgb2JqCjc0CmVuZG9iagozOSAw
+ IG9iago8PCAvTGVuZ3RoIDQwIDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1h
+ Z2UgL1dpZHRoIDQyMCAvSGVpZ2h0IDMyOCAvSW50ZXJwb2xhdGUKdHJ1ZSAvQ29sb3JT
+ cGFjZSAyMCAwIFIgL0ludGVudCAvUGVyY2VwdHVhbCAvU01hc2sgNTkgMCBSIC9CaXRz
+ UGVyQ29tcG9uZW50CjggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7dAB
+ DQAAAMKg909tDwcRKAwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBp4HBk66AAEKZW5kc3RyZWFtCmVuZG9i
+ ago0MCAwIG9iagoxODI1CmVuZG9iago1MyAwIG9iago8PCAvTGVuZ3RoIDU0IDAgUiAv
+ VHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRoIDE3NiAvSGVpZ2h0IDEz
+ NCAvSW50ZXJwb2xhdGUKdHJ1ZSAvQ29sb3JTcGFjZSAyMCAwIFIgL0ludGVudCAvUGVy
+ Y2VwdHVhbCAvU01hc2sgNjEgMCBSIC9CaXRzUGVyQ29tcG9uZW50CjggL0ZpbHRlciAv
+ RmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7dAxAQAAAMKg9U9tB2+IQGHAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDgHxgUbwABCmVu
+ ZHN0cmVhbQplbmRvYmoKNTQgMCBvYmoKMzMyCmVuZG9iago1MSAwIG9iago8PCAvTGVu
+ Z3RoIDUyIDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRoIDE3
+ NiAvSGVpZ2h0IDMzMCAvSW50ZXJwb2xhdGUKdHJ1ZSAvQ29sb3JTcGFjZSAyMCAwIFIg
+ L0ludGVudCAvUGVyY2VwdHVhbCAvU01hc2sgNjMgMCBSIC9CaXRzUGVyQ29tcG9uZW50
+ CjggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7dAxAQAAAMKg9U9tCj+I
+ QGHAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAwGtgqL4A
+ AQplbmRzdHJlYW0KZW5kb2JqCjUyIDAgb2JqCjc4MwplbmRvYmoKNDEgMCBvYmoKPDwg
+ L0xlbmd0aCA0MiAwIFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0
+ aCAxMTYgL0hlaWdodCA5MiAvSW50ZXJwb2xhdGUKdHJ1ZSAvQ29sb3JTcGFjZSAyMCAw
+ IFIgL0ludGVudCAvUGVyY2VwdHVhbCAvU01hc2sgNjUgMCBSIC9CaXRzUGVyQ29tcG9u
+ ZW50CjggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7dCBAAAAAMOg+VNf
+ 4AiFUGHAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgIE/MH0QAAEKZW5k
+ c3RyZWFtCmVuZG9iago0MiAwIG9iagoxNjMKZW5kb2JqCjQ5IDAgb2JqCjw8IC9MZW5n
+ dGggNTAgMCBSIC9UeXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lkdGggMTg0
+ IC9IZWlnaHQgMjM2IC9JbnRlcnBvbGF0ZQp0cnVlIC9Db2xvclNwYWNlIDIwIDAgUiAv
+ SW50ZW50IC9QZXJjZXB0dWFsIC9TTWFzayA2NyAwIFIgL0JpdHNQZXJDb21wb25lbnQK
+ OCAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAHt0IEAAAAAw6D5Ux/khVBh
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGPgaGPzvAAEKZW5kc3RyZWFtCmVuZG9iago1MCAwIG9iago1OTAKZW5kb2JqCjQ1
+ IDAgb2JqCjw8IC9MZW5ndGggNDYgMCBSIC9UeXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9J
+ bWFnZSAvV2lkdGggNjAgL0hlaWdodCA2MCAvSW50ZXJwb2xhdGUKdHJ1ZSAvQ29sb3JT
+ cGFjZSAyMCAwIFIgL0ludGVudCAvUGVyY2VwdHVhbCAvU01hc2sgNjkgMCBSIC9CaXRz
+ UGVyQ29tcG9uZW50CjggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7dAB
+ DQAAAMKg909tDwcRKAwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBp4HBiowAAEKZW5kc3RyZWFtCmVuZG9iago0NiAwIG9iago3MAplbmRvYmoK
+ NDMgMCBvYmoKPDwgL0xlbmd0aCA0NCAwIFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUg
+ L0ltYWdlIC9XaWR0aCA1OCAvSGVpZ2h0IDY4IC9JbnRlcnBvbGF0ZQp0cnVlIC9Db2xv
+ clNwYWNlIDIwIDAgUiAvSW50ZW50IC9QZXJjZXB0dWFsIC9TTWFzayA3MSAwIFIgL0Jp
+ dHNQZXJDb21wb25lbnQKOCAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAHt
+ 0AENAAAAwqD3T20PBxEoDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYOB5YC44AAEKZW5kc3RyZWFtCmVuZG9iago0NCAwIG9iago3NApl
+ bmRvYmoKNjEgMCBvYmoKPDwgL0xlbmd0aCA2MiAwIFIgL1R5cGUgL1hPYmplY3QgL1N1
+ YnR5cGUgL0ltYWdlIC9XaWR0aCAxNzYgL0hlaWdodCAxMzQgL0NvbG9yU3BhY2UKL0Rl
+ dmljZUdyYXkgL0ludGVycG9sYXRlIHRydWUgL0JpdHNQZXJDb21wb25lbnQgOCAvRmls
+ dGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAHtXGlTG0sShGebQwgk0H3fo/tCSIDB
+ xuD9/79pM6u7Z0ajC0yPsCOoD4BiN0r5ytlZfVTVwcGnfUbgMwKfEXh3BA5Ds3dDW3ZA
+ nP+FbPyO5W/9s08u1C9fvnzV9s2SGX9wraLxbswqrkSqIR5ZN+3461cF+j1RFrQAS5dH
+ x8fHJyEZXB/xOxTkP0Ws0DKywAqkp6eRyFkIFomcnsK9YEaUwYw/QswVxtAeCVYijUbP
+ z88vLBtcRqNwHhHMEmQifuti08H99g1oTwE2SqCxWDwev7RqcBiLwfU5MBPyMVnx9hAT
+ rgQXaM/OgDVGnFeJRCJp2eDyCq7jAH1+dgbEYDIRv4kTGi6oIGgB9gpAU6l0OmPd0ulU
+ KpkEaEAWxFh7bwRs4J6cRBDbGMGm0plsNpc3VrBgxlc+l81m0ilCJuIIQ/w2wIoMRwhu
+ lGiTqUwGUAvFUqlUplUsmTiD02Ihn89lMqkkEUdBCg34lYvOg3t+ESfabL4ApNVqtVav
+ 1xtWDQ5rcFwulQr5LBHHEeK3AfbBjV0mkkBbLFWqwNlsOWJta6b8tZqNRr1aKRWBOJm4
+ jL0NMMn79RvJcB67TKaBtlytNZpOu9Pt9nr9fn9g0eCu1+t2O22n2ahVy0CcTrqAXycS
+ DK8LN5MrlKr1ptPp9gfD0Xg8nkwmU4sGd3A6Gg763Y7TrFdLhVzGBUxV20lhgfvtWEU3
+ ky9Wag2n0xsMx8B5PZvdWLfZ7Ho6nYyHg17HadQqxbwGjMzxGsCHzBPHJ0KGTL5UqTfb
+ 3T7RAup8vlgsbq0aHM7nNzczIu532816paQBI9VB1XYFWLMhEr24TAJutd5q9waCdg6c
+ d3d395YNLuF4LogHvXYLnCDgi2gEqrY7wAivkPfiMpHOFSv1Vqc3HCO2i9u7+++0B8sm
+ Tu/vbhdAPB72Oq16pZhLJy4vRNV2BVi0QdhwlcoWCBdcmN7Mb++A9PHxRyj2+Pjw/fsd
+ YgzAfQIuZFNXUDUyYseSU+HVbCjXmoA7ub5ZAC2x/oQ9WTb6hOtHIF7cXE8AuFkr+xmx
+ jcEqvKdnF/FEGuRttnuEi+A+AOzT06+Q7OkJkB8QYgLutZugcDoRByN2BdiENwY2FCsN
+ pzsYA+49gvuTUJ9DMvr+iRDfA/B40HUalSIZoZfclgAzs0F6RRvKtRbgTgkXsQXWF2W/
+ rZp2+vz8CzEm4CkAtzQjdIA35gwd3nOEN1esNtr90fRmQbgI7YtVmCvOXp4Z4u/3i5vp
+ qN9uVIs5LjmlaRsDTLxueOtOdziZYak9Am7IaAn/BYAfsehmk2HXqaslxwBvljSutqOT
+ SFTYW212hLzgroL7v1BNAQaHhcKdZtVl8GZJk/CeQByQ2coML8n78OOJ0Q0VrDhnhJ9+
+ PJDCJsCQCGjwxgAfYrWdnDITZ4sqvPM7kvcZ//H7wPv7mRS+m0MjJMDMyqcnyBkbCCx0
+ ODsX7a2tDS95Zt90LJYDXBMNRpI7AiHWKoRvtRUqEIfx9fyWi43SQJf2gXoelX+IBJbc
+ LQIMiagUuO3ZsuKEDrLacqUqtHcCLSN7SQdjWi6t/jK+8RsqDAYvbibQ4GqJkoacsYkQ
+ Lh2wj6w7PWgvwqtWm3JpFeWSMwOZK44SMR31nDr2lYn4FkJQfKEO2PeCDhQzaC9Xm6u9
+ S19h9YOLV624BVecIYRsg9cQWNE3esGtQ7XpiZlLB6sIA84MYEUIkTQlwVCIDYqm6GvU
+ Ya90ePH+CX2E0AqxicDAe6TokC832qCDFl/jKxARyx91gKkQWoLbDZ2TqWhrFNjdO2QL
+ VdB3onObS1/LAAPuPLwqx01A4Goh6yraKoEFL/cOombMxaIOH4BXFGLoKpoQeAWvpm+M
+ B4ua0zPJwt2ZBeJh/aMJsOzSmDJ6jhCYm8p1Cqzoi+Ume53+mDtJv5pZBxhwaPBqRZuN
+ +7KpNAq8QuDD/3CON+rb9pLbfpabqxBYcCbFuSkZCry64A7NVh3q2+i4W8k90TeIlwqM
+ BVd0F9xKfNVyu7jkSajZdZOxwRv41wvhoyKExFel5C4yRi7FPSUzRnDBAa8cLdK5Eg6a
+ arnpkwU9hQAw4NIQ+NcvbiGw4HDsLOXSasuzgjeQ3cYzZAv/wS3gPISPHl4e4+YzIxDx
+ tQIheLlX/yB58BOYGW6xJBCrgqbkTF08IBurva9vcxZCQAMuTXwpaGoPvC0je3h5thiY
+ k6ZZbnvkr7tFG/gEbWUH4ZNf7h6CeAOxCOWjCrAWYAia7CDkTLRGgIFX3ZTI0Vh2D3IW
+ YrrAyS0UgAGn8kW/FV6eMYbmkMwzXDBhmN2Z2qwvy+/+8XoCnIUAqzPnsgD7d2dIF3I0
+ NmfNveKVM6cI8AgJQ5051yQMP97WMl6e5AP/dKF85K0B2Mf1pvGaM/IGvN5ZXqc3uYkS
+ L6EADDjVePUZWRKcOdOvJuRAOpb0ps/ye46vwssEty0hr8VrLib3ygfcq4IPr8arThf+
+ e9+9x1ffA+sNxPoNj8QXF+v6NPRX4eWGJ7hB+8QbWP27P7r6EOTDxvjiNC986Mpp02x/
+ P4y/XTkhb+Ev8arjhdKzf0AfcFvC49CMV9Ufqb+3Rn/1HfCa9Xbs5bel/cOe+bAmH0fW
+ 5rfjU/c26i/Du2H/wKchvZ/8W/ZneIVbf6D3X5eoy2q8yePt4iP367yA2HRh4j9fqOud
+ j8frv+AJni985zc+Xvwl5zf9prX2/GZu1+V8rG6rP/A8f4s3re3nY4MXrwGO3D/s9To1
+ cF8ib3DOlheBf+1+50Bv0Lzr9Q++P1u+YA+mtwPi9Se4qS8h8yJj9/bqvf8PfgvMHN+m
+ I/cBY016U3hZueO9FnqCRjehm6D1X5eI/G64fjg48ARYnrOCghY6YAVX42XRxtKDVlB+
+ idcVCF74oXJHCo32duHn4ZWyo5nImdTNSQnEyntAUCD2+7wZkDPWmPjeh1avfxnfpQcB
+ 9wZt3+9D6jkAFQXLtw8r8RWB8HZo+34g8ujg1hzJA/363Rnv/hBf7wEO78cgsLtDo7dw
+ BWIZL4rQdhZAqAV3rou5WL0jD5x7epA1eKXKz6NvUheYrNKBAqFftHDFgytKKJp68Nau
+ Qg2w+Q59GNL0zevXrJXXAPLBK4+S+pL9EsKEVz1ekA5Lm/VV+V0icF6Xcy2/eIcYYBNe
+ PAbocg0WdBn1XbmMYnglY4AQpiDGI4RRtPCWnIFrNg+kg6omWP9YaPDyyducOUUh7kz9
+ Gc/0rtlTCtel7279gSWqqiDRPWuuWW6KwF4Fj9NnrbK/vs8P2fdFNv6UikT8+4EO8tSC
+ 5Obt1TcWfKpyWl6qyiWPu+JACHGoigZt4PP78LnmXhJPm1xt+q0bV30b6yd9CsGKORRQ
+ BgPsug7jj6Xwukc3uSpZSweXEO6KU+XVeyqoRchNKQzCa1Yb9mYb6YCUrFKGKgDWAfZK
+ PsMIqvFJgijtxc6X1anqpkRVe67Uaih90CmDBdaoKmCOY9FcoKrLzzyrf8s7rLy7SYOA
+ FHtuL68mXlXArgPsoFtEHjLkYsqTYas4lbMXDVfK7XuOF16utg30lZShalR1e0tHGhpw
+ UAaHvQYMe/LrekL7BRIbuwPIBrxz6waXbdXrJAX2EDgVqfahAkvu2TCCQrQHdozQnq33
+ uMAlDd0iaMghXCy2ellqq9nfsqMFjiuO7VlxaDDqujTgW2l3YquT+Lb8A27RPoSGJ/SU
+ CVx2i6SvuJOU/iGzutb9ZoDRI6A6ckoG8Bw9OQ/STMZuKtvGHjV0lN1LQ9mgC21QHXto
+ gNvZYYgVJ8eMKFpjUXlUQ4cWKMF2PXTrPaADjsYvsGPK3wPa3+5Vwx46DHU7WSyqtHfL
+ ajMMZqUJGIGGPQLuDkboKZuzwVB1GEpHoM0f92wvnKOXbIToAi7b9cAGpLYd7JUVJwGO
+ gBFsiARgh+2m02t0m0qrKfotrRq7VwH25prNhV0HcHU7pOp12hFepcE4eIpGpHOIsLTz
+ jsZTNsiiQ5YtshYNDuF2Np2ORwNp6C0XcmiZVu2mW7XXLD9ZctAI9uUAMBZdy+myAVk6
+ kK/Rg2zTrq+l+5jtx12nhaWm4Yo2bOwcMlgVg8EIihoAJ1JZtCBX0Y3e6fbQiD4cscfb
+ qo3Q3D3o99je3UAPfT6bQm8s1tor26U9CnOYAtv9EeIyuv2bjnTQd2E9a0Zv0j0PsHUM
+ KWA3usDlhILdzccqzIfSdaqmP8SvkulMTgYU1DihoNlq6SEFarTAe3/CXZPTCWoyniCX
+ SXOggp4AgY3D5p1DkBGcUMBFx4kKRIxhFeUKBjVUqzWrJi4rZY6sIFpMU+BSQ3RlwoYf
+ 1Za/mTUA+FjGgcSBWA/YkAkbmIdh14oFM14jcclpFZETM8FkC8Tl/0kBxqIjiS9k2goG
+ mHCCCcydO2LhD/rD9BI9viR+IVzQM21eRwYFHICx8xFOcPSOHhCjRsSkrVoKw2Hc8TBR
+ NW0F973bdr3LsfUAK05wWpAM4JEJPFdXHMJjzeBOpu/o8TuYGKS5sDOvBUFTJQBYxjG5
+ A44w4QiGmUSWTNxxwJM73uhPpgXpCJMTBjFmMsmsq6jMkMLMJ1sGhxyhhZlXHHml0b5W
+ yAIxZogFsR7QhQldgG3b4BRQ1XguUbE/RAvwhwoxgwxiHIUzAo3Dz46Wxp+9RRhWQswY
+ /yez8Ag6LON0OeRfprR3oBXwKsgatQA3Y/ds/IZDGL3D3g/WhBuehBvKr/Wf4t58l/3f
+ 4t7CD/vIPj1+RuAzAp8R+Hci8H+sBrlXCmVuZHN0cmVhbQplbmRvYmoKNjIgMCBvYmoK
+ MzU2NwplbmRvYmoKNjUgMCBvYmoKPDwgL0xlbmd0aCA2NiAwIFIgL1R5cGUgL1hPYmpl
+ Y3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0aCAxMTYgL0hlaWdodCA5MiAvQ29sb3JTcGFj
+ ZQovRGV2aWNlR3JheSAvSW50ZXJwb2xhdGUgdHJ1ZSAvQml0c1BlckNvbXBvbmVudCA4
+ IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Ae2a+1dSWRvHTUtF7goqIgrK
+ CCSC5AXFhaI5mIpaBmPF6IiOpualhcNQCy+85kjqpMbS0lJMpTDvkZdqmvX+a++zz8Es
+ LuVMs2DWu/r+Amfv7fn4fZ5nbzh7Exb2Td8i8H8cgTNf1D9mHpHCPygigD4MCEfjvwbu
+ oUVEnD179twpBMMiIjD83+RiQMAhVmRUVPSxCD467omOiopEo3HwX8biQOQuEmgEQgwR
+ RAKR/Qr1oBExBEJ0NAKDYfD7l7Aog8hhJPAARyJTKFQqjUb/jGg0KpVCIQM6BrgIi1FP
+ m1pkEojgkEAkAg5YsXEMBpMZHx+f4FfQwWQyGHGxdDoNwEQiAblF1FNaxYnnoqJjiCQK
+ FeGAxEpKSmKzk5OTOX4EzWw2DGAlJMQjMJVCIsZER+FeT1PFOBJ5JFNosQxmQmISm8NJ
+ 5XJ5vLT0gErj8bjcVA6HnZSYwGTE0sAseMWtfim+KK4QViCSEBGAnBQuL52fkSEQikSi
+ 87gyP8jTAF1CQUYGP53HTeEAFlFJQIUAfzm+HmQMESOyklO4wBOeF4slUmm2DHTBj1B7
+ tlQqEYvPC4HLTUlmYVQIMA79rNNjJIlCZ8SzklN5/AwR4GQ5uflyeUGh4kRFoJMrRWGB
+ XJ6fmyMDsCiDz0tNZsUz6BTSKaAYMiqaSKbSGQnsFB5fmCnJzsmTK4qUxSpVadlFpHIv
+ YY1lpSpVsbJIIc/LyZZkCvm8FHYCg04lE1FSIbwBnQIyAnIJyFgmi8NNF2RKZXkFRcWq
+ i9+rL1VWVWs0NTU1tT6CRo2muqrykvr7i6riooI8mTRTkM7lsJixCBp5Ds2ZQNAzHiQt
+ Lj6Jk5YhksjyFcrS8ooqTd3l+qs63Q8N1wKo4Qed7mr95TpNVUV5qVKRL5OIMtI4SfFx
+ NA80EBOQZyOjY8hUQKakC8TZeYriMnVV7RVdw3V9U1Nzc0tLK9LPnwhramlpbm5q0l9v
+ 0F2prVKXFSvyssWC9BSAUsmQU1gdAkDRLIkikKixCCnMuiBXlqmr67TX9E2G1vaOzq7u
+ 7p6e3t7ePi9BU09Pd3dXZ0d7q6FJf01bV60uU8ovZAkRNJZKImAp9RtcFFmoHwqdCUiR
+ JLewpLwSiI2Gto5bvbeN/SbTr+Y7AWT+1WTqN97uvdXRZmgEamV5SWGuRARQJp2C6iiA
+ 0TNgEyEZLE66UJKrUKk19UBs7+o1msx3LYNDw1brfwLIah0eGrTcNZuMvV3tQK3XqFWK
+ XIkwncOCKUOMhtr1F1zMJoFEYyQk8wRZgKyo0d5obuvq6zdbhqwjo2M22/3xiQAav2+z
+ jY2OWIcs5v6+rrbmG9qaCoBmCXjJCQwaiq5fox6bkExuhvhCoaqiVqdv6egx3rFY742N
+ TzyYmp6eefjQ7lcPH85MT089mBgfu2e13DH2dLTodbUVqsIL4gwupDSg0fBwKCAyjcGC
+ ZGbLS9Q1uh9bO/tMluFR2+TUjH127tHjedCCH6H2x4/mZu0zU5O20WGLqa+z9UddjbpE
+ ng0pZTFoZDAaHu5TRSi0kM1YFFlJrrJco9W3dt42D4zYJqftc/MLTxeXHA7H8vLyMx9B
+ I3QtLT5dmJ+zT0/aRgbMtztb9VpNuTJXgqKLGfUTXAhtJMomK4WfKVOUVtbfMAByaHR8
+ yj63sOh4trK65nQ+B73wEWp1OtdWV545Fhfm7FPjo0MANdyoryxVyDL5yCiJEOmnis5A
+ aGMo9Hg2TyDNL1bXXWu+2QfIienZ+cXlVecL1/rLDUybPsLbX667XjhXlxfnZ6cnANp3
+ s/lanbo4XyrgsePplBgIrk/lYqGlMhI5/PMyRVm1trGtxzQIyLknjpXnro3Nre3tnd3d
+ 3T2/go6d7e2tzQ3X8xXHkzmADpp62hq11WUK2Xk+J5FBhekS4ZNQLLSwHHAzsvKUYNPQ
+ ZbSMjANyec21sbWzt/fK/fqzcr/a29vZ2nCtLQN0fMRi7DKAUWVeFpQuk44F16uIIJ0o
+ tAnJaaLsAlWVtrG9zzxsm5p9sux0be7suV/vHxziOvKRp+Ng/7V7b2fT5Vx+MjtlGzb3
+ tTdqq1QF2aK05AQUXJ+EonQSKXGJKXxxTlF5Ldjst4xO2ucda+tbu+79w8OjN2+/oDdH
+ h4f77t2t9TXHvH1y1NIPRmvLi3LE/JTEOArRN6HAjCZSGRBaSZ6y4oq+rddstU0/Wlxx
+ be66Dw4B+O4P0PsAQn3v3r59c3jg3t10rSw+mrZZzb1t+isVyjwJBBdLqHcRnYHZSaIz
+ 2TyhVK6q1DZ1GC33Ju0Ly86NHffBEQCPYX/60XEfYI8O3DsbzuUF++Q9i7GjSVupkkuF
+ PDYkFIrIq3DDIyIJZEhnukimuKhpMNwyDY1NzS2uurb2Xh++fQd39WL9F+TVBIPevT18
+ vbflWl2cmxobMt0yNGguKmSidEgomRDpXbjAjIFFiMPPhHTWXW/tMVvvz8w7nC+33Qdv
+ vJAId6KPwAj65sC9/dLpmJ+5bzX3tF6vg4Rm8jmwFMX4MlHZQgl9J85Vqi/r2/vujkzY
+ F54939gFmxDYj+785wkPvfu45/37P8Do7sbzZwv2iZG7fe36y2plrvg7VESocD+dLDBV
+ iBQGKxVmZ/Gl+sabRsvo77NPVyC0+0fAPL7xp7iTq+N+YB7tQ3BXns7+Pmox3mysv1QM
+ MzSVxYDC9WXiZSuQyksqrzZ1Ggd+e4DSub13cASh9dzzBOL9zjMAgnt0sLeNEvrgtwFj
+ Z9PVyhK5VIAXbiAmXrY/df0yCCW0tLa+/Qql84vIDyFGCX21vb62BEU0+EvXT3jhBmDC
+ 9KQxkmCqwCqka4ayhdm5hEro8APT29un1/j/BcxDVERLMEOhcJt1sBLBZEli0GDF9c4n
+ YjKTeLDylVZ7mI+hbHfcqISw+32K8L3CBqEicu9A4T72MKtLYfXjJTEDMtkepqEb+QQm
+ rAjHTF+IdwuC4swND7PboMOZ7H8XMwSxDXYNncXnZ1DniocZ3DUhFGtfCNb4UHyWheAz
+ OxTfTULyHSwk3zWD/506LATPDmH+npEG/v4z0sBpnpFC8SwYmmfe4D/bh4VgDyMsFHs1
+ odiTOjYazL03YAZ/jxGqKOh7qcho0PeMseii7fgg7o0DE1Ia5DMABIWUBvWsIwyHwjlA
+ EM90TqBBPLsKC8UZHeYUDlyDeRYJuymoeuFcOZhnrgDFqcE8W8atYl6Dd4aOoGAVqMH8
+ rQDaI8OxKLNB+k0Egnqw4Ddov/3AsWAXM4z9igTh/cvTDS9ovOdPv/4F3ezz+nrGtzt8
+ i8C/OAL/Aw64tQYKZW5kc3RyZWFtCmVuZG9iago2NiAwIG9iagoyNDc4CmVuZG9iago2
+ MyAwIG9iago8PCAvTGVuZ3RoIDY0IDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAv
+ SW1hZ2UgL1dpZHRoIDE3NiAvSGVpZ2h0IDMzMCAvQ29sb3JTcGFjZQovRGV2aWNlR3Jh
+ eSAvSW50ZXJwb2xhdGUgdHJ1ZSAvQml0c1BlckNvbXBvbmVudCA4IC9GaWx0ZXIgL0Zs
+ YXRlRGVjb2RlID4+CnN0cmVhbQp4Ae2deVcay9PHE01cQVwQFUQRZBMQRBSXG6Pmyft/
+ S8+3qtcZZiPONPg79h8u59zbfKxUV9fSXf3t29f4ksCXBL4kkIIEvmcyUgDzT0GcKxkO
+ mt//mf/6u0ZdXV39IcbPVIacDNMKSaTCLORKpJJxLdUhJ/3xQ0B/VMqSlmHX1tbXNzIY
+ 6+tra8AGMon5Q8SMuwrJghWkm5tbW1vbqQ5MuLmJqZmZiT8ATEuMaQG7SaC5XD6f30lx
+ YLpcDhNvgXkdUhbE/7jSFC5oAZsj0EJhd3d3L7WByQoFTJsH8xaIPwTMuFCF9Y1Nhi0A
+ dH//4KCY4jg42N/f29sFM5A3WcSkxf9i2wgXmgvare38TgGsID0slY5SHaXSYbF4AObC
+ Tp60gkT8T8C01ATudg60+8UiSI9Pyjwq5cqHR7ki5jo5PjoqFYv7IGYRM/D8iw64qyRd
+ Ei5oD4m1clqtVs8wzlMZNBMmPK2UwXwIYhIxSRgqMa9GEO4PgVvYOwBtuVKtntdqF/V6
+ vZHawGQXtdp5tVopg/hgryCAyUrMCfxd4UIXiqXj8ilgAdpsYbRTGzRbs9GoA/m0fFwq
+ QidYwgCej5eVdw2GYWd3v3h0UqnWLhqXrXan273q9fqpjV7vqtvttFuXjYtatXJyVNzf
+ 3YGZWKM1NxcwxPvzJ3DzBeCWq+cXjVan2+sProfD0egmtTEaDYfXg36v22k1Ls6rZQBD
+ JTY3SIXn4WXxrm8Ad49wa41mu9sfDEc349vbSarj9nZ8MxoO+t12s1EjYNJhrLn5BEzi
+ XdvYyu0o3M5V/xq0k8nd/f00xXF/fzeZgPi6f9VRwDu5LWjEPAIW4iXlPSidnJ7Xm53e
+ YAjau/vpw8NjquPhYQrk8c1w0Os06+enJ6UDUuH5BGyLt3ImcSd30+nj09PTc6oDEz5O
+ p3cTCXxWgUbMLeDv2NnWhXihvJftq8FwPLkH7fN/v1If/z2D+H4yHg6u2pdQYSPgpCtO
+ iReL7bhy3mh1+4T7QLQvL79THi8vv0D8QMD9bqtxXjnGkptPg4kXxgHaC9tw0QTuzWT6
+ 8ATa368ZjN8gfnqYQiX63eYFbARpMExE4hVH6iCMw3Gl1mj3rm9Iuv/9Au3b29v7O76k
+ NHiu19ffBHw/ubnutRs1EjBpMExaMoUQ6rCdh3EQ4h3d3k0Z9+39Twbj/Y2Bp3e3IyFg
+ aDBscGKTxuqA1QbbC+1t90gbnp4h3Wxw//xh4Ocn0ggI+JxNBJm0hAoh1aGwf3hSrUF7
+ R7fQhl8vr2+Q7f/RSE/Garq315df0AgWcK16crhPKy6pQqysYG/DasNOfFZvXUF7oQ3A
+ fQft37/8ESl+oRlJwi//kYCvr1r1M+zKtOLWfq6sJIg8jTrQauv0hxAvaQN0F7hpA/OM
+ UAmo8DMEPOx35IpLrBBaHUonZMwGSryZ4NK/GETw548S8IBM2klpDoUAL9QB1oHVoTcc
+ 3yntpblTVV9eD5oXGnw3HvZYIYSFSGTRyDXT1qFDq+1RqQOpbXqLTczES0EqxCOtuI62
+ EGTRYhVYqG9uh63DJasD85J1EOM9xaHmhD5AgR+x4gZdOBGwEDu5ZBZNqG++wJuFsg5i
+ ufHkKcLyVEoIYs9gC4E9uXRQyCezaEJ9hTVrtKC+0viqrS0rXmmCSYEb2qIlUGCyvqy+
+ wpqNJlOhDtnzCoUQCkw+xPZmEgtMvtlmrrBHm5tQX+9enJ18wUtbhlRgOJWswDELjpbb
+ xhbCYvJ1SH2lq5OVeN/1xNLpoS2OFBiBMhQ41oWYsb4Zq6/htRSYtuSEFlguN+mbSevL
+ zkP6xkyoljIQxPvMFlj7aBtrsQuO1Zd8yePT2mWnP+NKpq2+tnylAvc7l7VTseDIp4xW
+ YLncpC8pfDNyfZUU0udVCiy9dljgblP6lPELzrdbsPMAX5KcMx4Z4OqpX8mnJBdCLLhE
+ O4Z/uSlXXU+aAbAShVxwt/O4PP7lNiFnJ9PlZiswL7jJqJ98wX1f4UQJLzf46lhu2e5u
+ 9M9l5CtdHvLZ9YKLDpLFctvZOzzWuxvF8VkuNwWswmS5wx0fIqqPXXC8u+Wwu3FscT3O
+ fHezBSx3uDEMhIkxIg2aNA+ceUCoyc5Z1uZByRcxHBuIezIQdc6jxbqUcrlxaNxocajJ
+ kbzWsQzMg+G1DERCl3LGPNByy9g8eHkpxkhuIBZhHmzeeQ2EMQ/wHmQon7l5UMBeA3Ga
+ xEAo8yAyUY7Mg+LlmBNZnjsyECYrFWUgOJEqE5NkHpB6yN48aF5pIIwHsStc9lAPjc2Z
+ lSpx4T3YBtgyENplj8r6GfNQPmu0+xRrOjBnRr7M+3jPBoJiZMSckS47zANlJkVwobyH
+ zM2Zl5eTJibJQ1nK0DS715xRps/j7WSyWfCk0rk2SZ5kHk+YOZPbmxNeTgNTTJ/AoBHv
+ FrwdnznL1juzFpwqZNgGLSqEY/Orcw/SnHGmOrNgSPybKRf49bcnJFI5iDCDZpnfOlJn
+ rsyZWXDw0LiOQSGR5aGF8ApzlpeFi96Qqm7ZezuWPlAZQ/Ny0o/qWqE5CMv8oo7F5teB
+ d+bn1R5arAEONL+m7CZULZuvfoOWyADPml9PajIbUjGrzctJyiQGeGHmVy24OT3KEPOb
+ bTBkyzfQoww3wGx+dXAszG+GlQtbv4wBplI9PMokIbJlfpGqZvPrwvslbs0rQuRblUNj
+ D/hHcI5yUd6vzeszwJy0DvOApfmVwXxvhNyZo+3CyFd7wAmqRGa7oGMPLrcLL6/eMMRB
+ iNANLma7+GOvj7R/VvqrPeAEG4Z3u5jJTaaN6J3P3jCoLJsgR/mdKm+qdCGSD3wKRv3t
+ 3g9I+Tf5ISxfVYXTOdXVwIhIbG/CW7/s6uRD9t46/ekWr0xBiLJ3RNVwgdtbEK9OmYRt
+ cJ7tDdsFJ0tcRBeWfHEuhiMMbBixOWDmNckdii5cbW9avioH7N3gglNStB0vILkjFq5a
+ 1CEbXEBEJLYLfW4H25uJhugUjJg3q6/4AP4QyTsZxZ7jMdub22RUgHxlzjo6JWV4eTsW
+ yR0HyahZXpGSiivCxWzHWSmCmlcoMEcYyVJoC92OlYHw8EYXDcO248yTZ7ZCCN5EG7LY
+ jqm0SbULx9uxkq8dwcWk/ATvTLJP7exKz7L6rgywVeSMPgWhtmORnES0Kc5UL4oXEWd0
+ zUXxculYug+/sj2pYf9bafm+coQc70Awb7D7kP32xvrLHyOLyPEOhBXNU6lbJlP5JIxj
+ XpGi9Ba9Zx0In7vj1n0w8lUOhH0qBhH9DK9yd8SpdYrmXbo7s7zS4Sny1YaAFLBxH2bd
+ HZf6IDIQokgf5fBYvJR98Lg7rnm1wxORsja8s+7ZwngjMiZR7hl4bVOZzc/aYTeHIORV
+ l8Aap3HP6NaFt7a5EN6BfRNjtiZreOmgJ9+6sO8MZSNTe1bbARYlAevYZwCvzO4I92xA
+ 7oO77A5xyw1ZZnjuxromyzddZjI8wj0LdCddLDdtgK2abKRDKXhn3EnKRi2KVzlogaf8
+ iNfUuj3upFNeuvnkP8QTlJFi98wUWzgbJYstC+B9uLuNKbloXr4X4Cm2OOb1llzETa3Z
+ jBTz6ms4y8MrjlkH8NKd2MW569o+BGf8Zh1Kn7vu2p00vNoBjnbYve66c/d3ltfO+M06
+ 7Mpdl7cKl4x39syGdCfV2RLwmmKhW/sgHHYcmossGRr3F+FFy1ssdM8rSobiIlzwIT+L
+ dyHhhVd/4wMMw7uY8CKENzTACOSVZ3dc64MKMKIy1hHhEN/htT3rbH4mRxCS8WSAwwOi
+ GN5sEL2zzssrisdHfGnePprKf7V36kx+C+Ct6d4K/oDIDt9EuKnPci2CN/ZMl6cagHBT
+ hW8IqxbDe3cz8Nwz9AVwHl4cJlgGXj4EzBeREWCE8FrhMV/MWox8OSCKDJApfNtEvyh/
+ tWWBvNdRh6wl7/7y8apOBd4MsOANDufJijsYYmXbFa2IgJ54TTjvqb65tQ9BvFuzAf0S
+ 8loVrUBetGBS+oDDMKb65li+KmFCCQhVgYvkRVOYZeHFNU7ZO8gf0EMfWL7ioukS8crW
+ NnG8dNhIpaPc2gckILhdV3RCiuVrrorYh6Oc668/IRV0C07yyq4w3nSUc/nSETT0ZrLv
+ /QfqQ0g6asG8gbcMhXxFizbfWfAF6wPOWHMjk5n92E73UfpMHe5bEO9E6UMcL1Xnl4TX
+ XHqa0V+TTl1KXn9C1ZtO5XSf1AfuyeXAPWNPm5a2PLExGUUlVBUvOk7i6ptKT3JTOZf6
+ K3npxAYfoeRulKJNgW+9SX3w8lJHROfyVQlrSgAn4EWPQS3fhfPiBISwZ0H6aw7/Kn1Y
+ Et5t6u04qw+fiBfpSftw9TLK15OA+OKd32IrU2TbB7HeWH8/u3ztJplLp7/+gpYoBwRe
+ DljofqH04Yt3/vXl/z+i1lu8fHV5czH6QF1BIq6MyHKWKceaxkYL4eUCp+AVvYt9Jz6/
+ eP3aGf+7rb//m/K17e9nWG82rz5dvZD1puKhr/0ifh0l/S/s9fY/KN+v+CKpIsj/Lkof
+ /D0VvuKhOYWL/3we+X5b/vj4U+cfWL50PFU8crBk8Rt3up+Vr+C185MLz0fF5vvQdn2Z
+ 8n2hTcVU/pd5r1gfPkW+WvDa9Qvn/pnKr/va6vr0l9vw68a/Vr1lOXhn6i2Gl3oxWbyO
+ z3OZ+kXSepa/d5TL+gUOUap6i67HxtXfPhGvegXls9S71bMXy8Qb3ITSf75k8fXjBOc1
+ 7OtOS3HeKLwNu5IvuhN8lvNG1nm5ZTlvFHmey+ZV3R/4eqHb8yX6QmTc+TOL93OcR8Sz
+ Q0Gtfx3vb1q+pqt5wAVOrDc6/ytf+TLyXfD5X+vlrxn/7POdV0YzvKU9D+6rz3/W8/bi
+ naTluB8QeZ/B89CM57q/W/tgdWSK6gFs7rcs130c9S5VwH2c2Vb84j7ZIuQrW2b+8/0s
+ BxcE5r1PRq9uqjduvc1I4T844qUP4gYQLN/o+3oBvLIbnmteepaKWqgm4y1/svumul2Q
+ 7hW/GPnSqz4ov4U82jFT8F6G+9LmaWFfef7bN8EbmAB22w8E643fEIg8/gBfLbwgsAS8
+ M8cRDa9IAHveZnCvv1TeNOnJgOOTgvdT9asQ75oGXsBwul/4G+LJd0694QXkqy4QfaZ+
+ K3aCx7pA5Fa+1H8nUT8bK6Bfgn5BkekH1gd6RzgwoHcp32ThvOJVAacJ6MHq1J5ZvJH9
+ rlTA6Q+QwUvjPfMhPoevm+Ld5th+YiYg+iT92nTA+Wn64ZkAQ72lZhqCZK4OlPgivTPh
+ RacRHr4pB80XEDkMMMAqeZOEFzbvYgKMQN5Qd93DO/MWoAuDZvM+JWjAPhtg6BOJTgyw
+ h1fezqJwaDfsDUOvw+7cAfbzxvXT1Sdi5ImC5e9X7K3Qe25M44/P2qAp+frd38BqNznD
+ 2gGmCpx83Wnp+21rB83jUOJvdyFf/hjVftJyJzd++k9rSPkGOZTYd3g40AcPb2R1yPAG
+ OpQ8UcbAQip2N5BIdxIbBlW0Ap4fkgLOGFd9CrsPid47sB1Kf8Ni/PEueSk7Se2K9YNJ
+ /uw66QN4Qx20BfDGPqAlN2TxOK+vQXj2CizVl7Nn8dlfIV+VsdYZVWfPv3H3PhaK6OYY
+ 335dOWjBGUon8tXub9zlAJIuhs/hkQ4EHVHlke2CUx8is6m3se4OeMMdCJrNDW9i90Hy
+ qoyUerBjce99tcIPG0l9CG955Uy+VrYkohmT4VUZKecP5Ej9tXhj36sL25DlVE70N/l2
+ zBucdiAavgyEo/XmyT5Eb8exG3KmBkL9G7J8ubgZnS0hDfZtyCN+fd7RA2WGV2RLqFio
+ szszxTex3uyInlsWWyVDmi9LBbZ5n+jucV80Kw6N5oV87TtlfKbWzXPjPveBel1Zd6X9
+ d7OEdPHVutPgP2PtSr6B25u/d4kC1hEySkToiTemBy0X+V5zOaS3nMVrlVx0ScCFw6P0
+ V0XHJtoM6OVo85qepHymS/VQdaMPbH6pd+qN7p2aCzg7qXhnIzjdA9ghL4oXCaI3Yl5g
+ BCf0wbO9afP7MyjaFLw6InL8wLRSX/LW+ao/bRcRyWqhEfaGgUtlnpRqtgph8/JZgojW
+ D4KVvyoDLJp0OdwwfLy8XYRe1TPAIiLSl0bcGWDFK1pl3o3lVafgqyIe3iADnP0L05LX
+ 8tZjowuihnytQ9Z8SNWNARa8yvzCnEW1gjbynTXAj27e0LJ4ObkTmzwTzIEG2IEHrNR3
+ Hm+diI3H7jYlZXhx9CxB7U1pBHgX4gF7eJN6vwStDDBqWuQBs0F7yf6NU8UrvF9tzoI7
+ DSrhMq88JCVuaTnzKDXv7FNfwbUWxbwggyZ45zZn7KFFpSAyCjmVeG3zEJd8EBI2BoJf
+ nXEU0hteyzsLfWlG6QJ9tz00hPSOPB6bF97Z7TBBMK/lq18pI49ybF07pVmzSUEoXhkc
+ jymYtxoTeBoj2tLFzzpE5mucjgyE5jXmIS73q7ClgZDX4IzHo6bMRMBycumdCW8n9OKb
+ IhXfvR6P9xoGTZsFr5LF/OZBLzhVhHNiIAwvmQfKncXn+pSUhYHIqz5+TgyEzcvmQQVv
+ +e0Nf19Exam+s8djHQt34UEo3hDvIco8sIGwQyK888Q5tCxDIsmrl1uiXJQSMBsIfaqA
+ Fpwnx5PBglPi5eVGuZ2+590h371Nxam+e0KMdn90e4+QKNMQw/Dycrv1LLfQ3I7hpRyP
+ riLzDueOF8uNd7ewtn2K0nz/zjucfgjjmh6myjYJrOQrU6k31+IZCZV7iF5uYsGhargH
+ l712iYe0slZghavVl2J57G57hahUqhGwWXB88VTsGPIcMM2d9g7n4eVY0363O+ggl2Gl
+ n4wLTA9b9jLfMQwvX8ui1FnEtTcvq+Qll1J1islcgRWvT33Fs7whlTebmhYcJaUsF00k
+ eeTE6WqEnlQ7O1J91StfcctNLjh1U7YjLTAfg0AnKbqLnO6Qk9KrTnB2YH11ITaicuEV
+ sLDARdFqjpMQZIFxvvzv378pE2M6mvQPzvWR+iL1MIezI6iFy6POmQiLhlZoOMdDUxNw
+ qoPnpGsBeMSHCi3dpoktEqgvGQjrYCLOFYgtWShE+sAC94+tDiaUXw2rtNj68G1FHPST
+ PvDVkH00IWBIOFXhYjKakdWBxUuXIPWp9Z8rMc6OTyFoi2t2ScAP7PNAg3mkt+DUfFwX
+ QiQ/6ps31OjNi3jrAGSjEEeUNemxgDlvnR6odya9Fw97OhRi65CYV/holKZkAcvKtz47
+ 5/24D/4m82a4UkjivRCZB4RCOFWdiJe2ZHoMDndzjk9rEPD1DbfHQ6n+9e3t/f0txUGz
+ vfLWhisXN9cQr1htOW6RmQxXKAQ1V0C3TxYwaQSdLXgBcfrj9wtd2IQtGwrxHh3QE9j0
+ BOAcvGv02h4EDA1uXQ2GY5LwM4hffqc8XkD7TDXN8XBw1cKhHXQAKUC8ydWBVtwPcTac
+ biPXLttXgxGAp49EnPoA7eMUuKPBVRueb7lE4sVqS2gdyKaRhZACPqqc1Zud3gAqcTd9
+ eHx6enpOdWDCx4fpHZRh0Os062eURp1XvOCVAkb/zJNTaAQDj0E8fXh4THU8PExBO2Zc
+ aMPpSekAZ6JYvEnV1xIwXd+DRgD4qn89uhlPJnf399MUx/393QS0o+v+VafVgDZQf4o5
+ tZd5ScCIk7HkGLjZ7vYHQxDfTlIet6AdDvrddlPiFpCGIu2dQ7xKg3Edo7BPwOf1y1an
+ 2wPycDS6SXGMRkPA9rqd1mX9nKS7X4A2zGUcaMEJDV7bAPAugE8q1dpFo9lqd7tXvV6v
+ n9rAZFfdbrvVbFzUqpUT4JLyAndO8bKASSO2ALxXLB2XT6vntXrjstnCaKc2aLbmZaNe
+ O6+elo9LxT3gbpE2JN4rWLpCwKs/BXBh7+Dw6LhcqZ6d12oX9XojxVGvX9Rq52fVSvn4
+ 6PBgD8pAuNja5tJeqRESGItuvwjik3LltFqtnp2dpzbOzjDhaaV8Atri/h6W2r/ifvvO
+ RhgS3tzO7RBxsXREzDQqKQ2eDKxHpSLR7uSgu5AuKW9C10Gpg9AIGDUG3s6DmJAPDwGd
+ 7igdHhIsaPPbGndubZAagX0ZGzNWXS6/g4UH5oODYqrj4ACsWGY7+Rx0AZaBdPefcNmo
+ rayyiEHMyDuFwi5hpzZ2dwuFHYYlWtKFf8c1wGvrGxubQN7O5fJ5SDq9gelyOUy8tQla
+ CPdDuADGomMRrxHyxubmFlGnOra2NsEKWE07/1Izq46BmRiKvL5O0KkPTAtWKdt/sQwG
+ l8wEiXhldfUHFJnGWspDzPrjxyop7odp2U4IZDATNQ3xGR//KmajeYkVsB9RBZ+UWcw8
+ bSZfUmQ14Jg0k2E+4eunLwl8SeBLAl8SWFYJ/D8JHJ20CmVuZHN0cmVhbQplbmRvYmoK
+ NjQgMCBvYmoKNjI4NgplbmRvYmoKNjcgMCBvYmoKPDwgL0xlbmd0aCA2OCAwIFIgL1R5
+ cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0aCAxODQgL0hlaWdodCAyMzYg
+ L0NvbG9yU3BhY2UKL0RldmljZUdyYXkgL0ludGVycG9sYXRlIHRydWUgL0JpdHNQZXJD
+ b21wb25lbnQgOCAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAHtXWlXIjkU
+ 1V5AZd9EQRRBQWRXcN+me+b//6W5772kKgUUFFpVUOeYDz3OGSfcvty8LS/Jzs73+Gbg
+ m4FvBjbAwG6AI5C/DuH9Efygj/EPv8b8E+OXjN/+DTUjTc7E+ARdgSbAgjUWxJCpf/0S
+ 7F+HLuoAaEwci8Xje8GNeDwWw6cI9C8iZ9g/GTRB3t8/ODhIBDEw7/4+PiEu0CGYrwid
+ liKhjgE0ICcSyWQylUr7PlKpVDIJOgCeoUMvXwGuYDNqYCbAmUw2m835PTBnJpNOA32C
+ kZNaiPLPmRbAZrL39sA0QGcAOJ8vFIr+j0Ihn8/lsoQ9kdgntXweuIId39sn1BlgBuLS
+ 4WE5iHF4WCoWC3mCniLO40L5JxgX2NDIAaPOF4tAfHR8XOFR9W3IfJXj46NyuUTQM+kk
+ UQ7gn9E4WZJftCAPEuA6XywBc6V6UqvVTjHOfBw03ynmPalUjgl6PkeUE3BanOtK3IKd
+ TGdzhLpSrdXO6vXzRqPR9Hs0Gufn9fpZrVatHJVLBVD+WeCkkt+/43sJwM4XgfoEoAH4
+ 8rKF0fZ30JSXF81mA9BPKkeHxXxWgLM5XIdxqASmBCJJpnOFUrlycgrQl632Vadz3e12
+ e/4OzHjd6Vy1WxfN8zo4LxPwJEmFJL4Wbha3wD48qtTqjYvWVafb6w+Gw9FoNPZ3YMbh
+ cNDvdTvtVvP8rFYpl4Tx2LoSJ5XEYADT2cLhUfW03gTqXn84Gt/c3k6CGLc34/Fo2O91
+ 2pfNeq1yxMD398iMr0G4qGQ/kcrmSwIbXAM1ME/v7u7u/R6YczqZ3AB57/qqRcAhlUwq
+ sa5SgBt0HyQzuWIZImm2Or3BEKin9/cPD48BjIcHUDGd3I6H/W5HAc+RxEkpnglnukkl
+ BuzRDVA/PD49PT0HMDDt0+MDkN+MBj0GfnxYgFHZX2tpEt0wgakMVHLCbBPZhPr55TWo
+ 8fL89Hh/J8AvG2dVSDyTWotwdjlsS6CS08ZlpwfY03ugfn19e3t7D2Jg3tdXQj69HQ26
+ VxfnJPGcJtybKRR1Y1EWDo9r9Yt2d8CwwfXb+0dw4/3t9UWA96/bzfrJ8bqEk+3e24fH
+ KZarZ1iT/RHYBtmE+p/gxscHkD8/3k9uhpB449Qg3NPKnKEbKrmZ3D8CNlD/+fM3qPHn
+ zz8fHwJ8PIRS6jUinEyKRxvOq1KMCdF9PRgr2P8EB1rI+EPAnx7ubkd9B+HeTCFkAtsN
+ Y0LqpkV5O314AtsM+1+MABhX04Lyt5en+ymUAsJPyKSAcEQpHoSijCDb7lNF99PL68cH
+ 2KbpAxx///75eGeJj4lwmJRCFk7Tm+/ZpVVJrpJs98UV6L4D3e8C+7//goL9H0399y8I
+ h1KIcJiU6pEyhV6EwjJhI1ipNUTdRDdU8u+/PHlAyGluIfwFNgWEX57Xjg89C8W5Ktsw
+ JkrdlkoCkLcxNxNOCu+2msoUslBWuR4tk3yJV2V/xMZEyQRUB4KaJuWvUSscJkVWpmeh
+ AHcMoUm2gEDQkglMt2ED//g/bDZoZcKkKKFUPAuFI1iOBGG8SSa0KpUR5Nn9B80zauRk
+ w8UUmkJBvrZcKCJv+PjSEUITuHglE8vnBATbcsQw4WQKWSgIUrxaFJE3hVSV2rllTd4/
+ /rH4CAq4+gDBrYRi+fqV2YPIWzmddldbE0veQaG2+IbrEaGMh9ccXInrWeUyKWPg2IQS
+ hqveaHKHiAp062UZHG7rE8T13N2S6zmrchQOS7hc4CxvOEttBRFSwemEjVv5+l6HYhTL
+ Ei5bmCxv21lCJsBtWMEA6dZ8w9UrSzgwXeZyVz8rb45NDCsYJG4NXAROMUrXFviKmHBO
+ 3pQwhCMTa2VSMPv6BEs4I/BlsSzj3oy8TdzrCnzWeocpb0hQmXBT4NqCx2HB3RemkneW
+ 6w+troTeYcnbwm0L/LqFegQKQKijLBX47g+U13RwQtZb8uEwrDeteNtlSprpiGWXeR5z
+ WSI4kYQ4rGXpxE0FCcSypudxX5iE2/Y6lMiL19FEBGoGLcLNEIWzY1Q4USh0F/jMsuTg
+ JCyvw5QsWZh7y3FzzrChZWkLhUMr8jzeFqZjWbZDX5Y2biu0Eo9ZREUZZSvXKsqPH45g
+ cHZZBq1uJ25ZmI6Q0G1hirdMczAo5sQRDAaPW1lClfMgyYRBsUNC11AWuKniQwW288vO
+ gL2lVHx4wYSG2w4J+whlpb65xKCY5gSpfPjmxBaKhLLTm5lQdrGnN718M3wvT1+ndhRi
+ UO7IoKBMuMLTK9xSrt+EObFxzxkUKm+6GRSYQTO3nDUnf8PTN4fgcwbFDbcyJ1KI5egE
+ myN2dBICbEsnUkRRBsUqy7oYcG1OpDJomRNdOgkDt8MQShFldYTCuGmfgUs+Yk6kXh+W
+ GbQErlKH6RgGZaUhpIK9VdG0koYQSj7GN2kZFMrp7QiFt2BdIqtZMziZqWgaswf3o4Wb
+ ilbYoZoxhIsM+BaYQUsnktMTbl2LcI+sKBq0tv+uerNmMDiOzZk132TAtSG0th0WG8Jd
+ ozSooqqwzSD+BgLcEVkZRcJFEaHTfA/GVGIj860pMGkJ7udZ3H1HROiG20gudTS4Edwc
+ ET47DDj1oixMMReZ75BKmsbXp75dbcApIlxhwHm/VXYaKIqlkmaoSbGA16rUkezQWZSd
+ N4RiBnkj7bSxmSiWkFu4bQNu16wW6cQ23xVsy3NS7NhIM77LIH80cHNrBBlw2ajnWpsb
+ 36pZpq3Md3i1Qc2Fxq0i8MlIOx63CNxRhNiU27F14tnx2FlDFTtSc7VBzUfQ/zT5Joc5
+ NnenFjnM7XCXmnDvDlO5SxRP0HZiFyFCdjvzuFc5TMK9wF1ahilogej5RSjCN1qW0Ihi
+ 7gbOO3p2l1bRR3YAwy36CHIlcMNhcqaWd6slKzevNuY35S61Tv6qfg4u/Szd5NkONz+H
+ +3aVo5/JLs0sjZp8tPwC/yc+iz9PlawoU2NHT02+CwJCHZ6omj0aCux+ma3ArTbVZh39
+ svBkU7gpQJlIZkydhAsDFAM39SdJdqnCk43gdglQ3Pnmvqqtw+22V7IsrALfgS9H6wP0
+ umS+eROzbTcSzgcoRhWCGn0cVYiN4fYQWNnhIDUoOcPBDeHWXRHG3tQCvmeqJ9xhr4rI
+ G8a9dLNbhYO6+G1VIRBXUXOpJb/gf1B+x1kCl0MaaA+bDaycuB3F7w3jXh7ICm7dyLYt
+ uLnyw633qq3Nhe8twU3CZJ3YAXhJDvP8XKQTO23AmQapDlLaEL5ONG5u8JXEQeOe7Vbi
+ 8NtOG7YI94ATHuBe2IQyi5urbNyuvmm+dYVwCW57U8qsDm5YJxo3jsQsqMgy31b/tCNN
+ +8btyWmJIdA9EVNK1HSCuSDhMfimKjKlO7qKvBG+HbjtEzFzFdmZtDiauLucXm4N30iM
+ 9QkkV775+Mv24H6AviWhl5NTS3DTboNO53mTezP6lsLPF3DzISlPlsCfX1L2ZA3c0lQw
+ y3cUcVMn8tbgXliwsstsJt8bxf3BrRx6XRYWF9q2CzcFsqpJdjlulKt008w28B1l3Cj8
+ 6NYZ94LsFvIdVdye9L0TUX1vGW7a4PiIoB1k3NKKp+2gSyveYp1QXLU1/pKuXFgjHowq
+ 7s3UIaDvWZ2s4BvH5iOYN6Cpd5tw476fYcdLnsa4o5TP01kSu5stOvm8jRvn/Tdfr3LU
+ T7zVfbYCN9e/uY7spT5oNdtHq65p1L+3r46c8VT/3p79hpV1e6O9KlL7JPF96GTBIZiN
+ 1KvW2ZfaGtwUxqr9NFyY42EfkO6ZmWsfDJ9vCzffCLW04x51e+hE4+5HZp97ts00Kn0F
+ ke3jsE/vRK1vxrwaYrbfJ7xGDqxJVNnIntAtKHTZwoo+JbonbHG7Pc/jT1F+9SwO3OjD
+ Q8M991e5nKGPfh/e/LGMjfCNMpv0PS4/mCF8p/SVLXpjiq8+2RRuRznWpV9zptDGG8b6
+ PrmwcUPiumzPJzDdy8jo3qSClZFgmokDz7N6RfnzG/RhGLr/e3UfNSeYmej1rTsuh4jU
+ OQEjcbAa2qjBioY/IvAwi/o4j21hOzsqIIzcOZjZgBB3EvExXfn7b4ZvPi+1tM10Z2dZ
+ QBiiTjRNFJ54aEdm3HaAMtNIvUHcK8Iqwu0eWBEJHpaUH79i8k3HGzycY9S45wOUDeBW
+ 4Qkf/PdwbjR653S3xNFrnXg+F00GXK4rN64RicQ59K04yCh8G1Uf3dW77Ny/UUGJzj0L
+ bg5TRSh+GDkPc1h8a7ezwl1uiePRy1K7y5VuZ87xhH1JpXwXJm6+b2bV8XkLN2eYdF2Y
+ eZKRpvPwJX/9VzRuaT7xdE+OkWHS1itvqdEjGaFG4BZu614iXM9Pt64vbMKTw4GLDHgk
+ 7oFabMBDPUEvfC8w3ws3pSy+DQNOR+uicc+ZnTnQDRHOo4zEw9dX3coZtLxNM2hdSzR/
+ GFD4nonAN2EITdyGGSzyMyUrcFuGkEo/umQVMt/KDHq+N9FRsqIXPvRZgbBxkxnEax/Y
+ m19yRkBksiORrLXXvYkSiuiEzQlw06MZHu4FNUoo/OYEGRTzUv6Vq+rrv2DglmTesQc4
+ e6bO4nv5RZVfh7VqBoEteySEm6Iqy5zMn3XVuGEI7VLEJi4GNXE7zIn7bXiEfaZ2ryOU
+ sK4tN+7i4BbqNe51tmvg1PQTukFRfFNNk5el0eqzoFVTy2SHF6Z96DUy95aLQaHNQG4u
+ cB7+Jy5Wrasv/ndT3rIsVyZpwrljYUboXn4VoehNtbAXpuZbvLznZckGxfL09GoQd3OE
+ l/Io3IuW5YITuvaylIVpd/1wCG56zGAFrunmLRIu2TuurnLzloSfN0vUwuRngyLyrood
+ gqOYjGeaQg1lNd+WvI0axNJnPpTAI/lukCM3DlXgmu5PyHuBwKPxLpaxyyMCV68ahlD8
+ UXSrhgJchEcXV+GKYW/vkGFhOiy4lTtY037Rl7v+7w6ZSK7jOO+/a9rruZ+j+s4eWXAz
+ d4jKu4ZW7hC1dyRF4FZjsvUgoxz4olbZgAaOZXEjLnIG9RyjeT/l3L0+swqP6jupOxF9
+ l5YEDksYvXeAWSjSuUkb9fzMNco/W//usggleu9cQyjUwq5bZYVwfg7dqqMEZFHYxfPl
+ 2Z96V5xww/XQWTU8YXwRmXfcSSi/9+jMQLFMD7njUV26hQsP0L/jBfrgxsfHu+wR43Fu
+ xzPubvX6RSbcILzdHYwB/PH5hZF/BDWA+gUN31O8Pn+NR8VPjvGKO3b/vL2GTn+HXSb8
+ gAmvnDboCXoGDspf397e3oMYmPf19VlgD7pXF9i0lCsH48jQlmXEJunKFOL2MDoVA6UQ
+ 8Mn9w+MTOA9qvBDqu8nNaNDrXDbOqkfr0k2E/ySFs0mp1Bj4YHQzmRLyp6fnAAamfXp8
+ uJ8K7FYTBy7xGFaaek5A9/LQ22BcTAo5TVw7rIAT5dP7+4eHxwDGw8P9PVDfjof9bodg
+ s0pwgNu7ukXhIBw2PJWFUqqnxHi3NxwB+WR6d3eHz/B3YM7pZHIzHg1711cKNhZlYm89
+ upEesw2HUmDEBfhVp9cH8ptbYA9g3N6Mgbrf67QviW2Im1SCt8eWv1tsaIR/ZJMSQ3iV
+ zgE4pNK4aF2B8/5gOByNRmN/B2YcDgf9XrfTbjXPzyAShi0q8a5uIN/lpRkX4KVy5eS0
+ 3mhettpXnc51t9vt+Tsw43Wnc9VuXTTP67UqtA22Ie51VULASSm/43uJZDqbL5aPKie1
+ M0BvXl62MNr+Dpry8qLZbNTPaieVo0Mb9s81jIloRpTCjGdzxRKQV2uAXj9vNADf59Fo
+ nJ/XARpcH5VLhVwmnSC2cfvGWioh5FAKwpQYgCfSmVyekB9Xqie1Wu0U48zHQfOdYt6T
+ SuW4XC4V87l06tOwRSkKeIqRFw/LwH5c4VH1bch8lePjIwJdyIPsJCwJ2IbHWZtuYhwS
+ /0Ua308kCHkuXygWS4dAH8A4PCwVCXQ2Q2QL7E+ohJSigcf2oBUgT2eywJ4vAL3vo1DI
+ 53MEGqiJ7NhvGO5Psa2AE+UQOXGeBPR0JpPNAr7PA3NmCHMqSVyzRr4AmxlnrTDyA7Ce
+ TCZTBN/nkQLiZCKROGDUIJvY3vUcTrE6HH+QVWHkTPre/v4BoQ9gYN59ME0KwYJksr8A
+ G4wTcCDHAv0di8WhmMBGPB4T0IL6S7BpdVrQCTvDj/k/ZGrog0BDIl9FzapR0H/8xPgl
+ Qz7Hlz/VjDQ5YfYLtOgd0FkxPHNwf9DHOBaYT/9C8wY1fIL4Pc03A98MfDOwLgP/A0/0
+ sP0KZW5kc3RyZWFtCmVuZG9iago2OCAwIG9iago0NzAzCmVuZG9iago1OSAwIG9iago8
+ PCAvTGVuZ3RoIDYwIDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL1dp
+ ZHRoIDQyMCAvSGVpZ2h0IDMyOCAvQ29sb3JTcGFjZQovRGV2aWNlR3JheSAvSW50ZXJw
+ b2xhdGUgdHJ1ZSAvQml0c1BlckNvbXBvbmVudCA4IC9GaWx0ZXIgL0ZsYXRlRGVjb2Rl
+ ID4+CnN0cmVhbQp4Ae19519USbf1PM8kc84iUZIkQZCcBMlKFhQEFEWSIFEQJCeRjCRB
+ VEAx50l37v29/9q79q46p08DotLoBE59gE40p2v1TmuvqvruO33oM6DPgD4D+gzoM6DP
+ gD4D+gzoM6DPgD4D+gzoM6DPgD4D+gzoM6DPgD4DJs7AfzTDxLfS/3wVZ4Bg+e8yg55f
+ xX+nv9WXzICKzffff/8Dxo8LBz2I574XAOpYfcnkmv5aCQ9jQ8j89NNPP//887oFAw/h
+ CUaOwGKodKMyffY//Q7CsxE8BA4js379hg0b5djEQ97ZsGHD+vVAjsDCqxWkdOf36Wle
+ 8SskPgQPLGfdOoADNDZt3rxly5atW7duw9hOg25s27oVj27ZvHnTpo0bgRVBxUAJi9Jx
+ WjEKy/whAwT7IesBPEBnE7ABMtu379ixcxeN3ZpB93fu3LGDEANamwkpBSjh+XSYlpnt
+ FTxlBBDhQ/AAHGCze8/evXv37d9/AOOgMujOgf379+GpPbsBFkEFpCRQP5PjowClw7QC
+ LJb+E0KILYgMiPCB8QCe3YTNgYNmhw4dMrewxLCysrKmgd9WdN/CHE+ZHTxwAFgBKiC1
+ DRYFgxJ+T4dp6en+8keFCZGLW7duA/k34EPGw+iYAxhrG5vDtnZ29vYODg6OcuCmvZ2d
+ ne1hGxtrwGUBqAipPbt2MU6byO8hPLHT+49eP305Ktq/UBBCDFovANq5i/AxO2RhaWVj
+ Y2tn7+B4xMnZ2cXVDeMohrs7/cQdV1cXZ2enI46OQOuwjbWlpTmA2g+cYE9b4fbImhSf
+ p/2X+u0vmgGBkDQhsqCdu/buY3ysbezsHBydnF3dAMoxT0+v494YPj6+NHx8fHDn+HEv
+ T89jgMzN1dn5iKODnS2AsgBO+/buhjkRTNKYKDJ90XXpL1ZngEie7wkhmBBSBAGQuSXw
+ sQc8QOeYp5e3j6+ff0BgUHBwSEhIaOgJHqGhuBMcFBgY4O/n6+N93POYhzuQcoJJHbaG
+ PcGcANM2xCYYE7k8HSV10r/oBmcKP0iEtm2HiztgZm4J9+bo5OIGeI77+PkHBoWEnggL
+ j4iIjIqOjomJjY2jERsbGxMTHR0VGRERHhYWGhIcGODnC6QAlAtwsrWxsiCYdu2EMVFk
+ EijpcemL4MGLjRHasWvv/oOHLK0P2zs6ux718PT29Q8MDgU4UdGxcafi4xOSkpJTUlIx
+ zmDQ75Tk5KTEhPj4U3Gx0VERJ8NOhAQFAig4PzfnIw52gMnsAGITuzzFlnSUvgglhujH
+ H39et2HTlm2EkJm5lY2do7ObO+zHPzDkRHgE0AE2yaln0s9mZGRmZWXnYFzggRvZWVnn
+ MzPOnU1PS01JSgRUMVER4SdCAv2BE8Nka2N56OA+oLQNtsTZg+7wvgwiBCJycxs2Ig4R
+ QhbWtvZHXNyPHfcNCA4FPnGnE5JS085mnM/KuZB76XLelfyCgsKiomI5iooKCwryr+Rd
+ vpR7ISfrfMa59DMpSQmn46IjCSc/hskRxmR+cD/Z0mZkD9LhfdFlruUXU81KRoRUAXGI
+ EYIJeXj5BASfOBkVezox+Ux6BqGTd6WgsPhqaWlZeXlFZRVGNQ+6VVlRXl5WWnq1uKgg
+ P+9Sbk72+Yz0M8mJwCkiTMDkesT+sESJcjwk4sgdPtPffebL/rUgkp8TuQLc3O59B82t
+ bYHQMW+/wNCTUXHxSamET+7l/MLiktLyiqrq6zW1dXX1NxsaGhqVgdsNN+vr6mpraqqr
+ KsqvlV4tKrhyOTcnKyM9NTmeYQrw9fJwc3IglPbtRo4Hh8em9LHZR1uDLmzx4Cf+tWAs
+ /cEwE/BzHIng5g4csjzs4Ozm6e0fHBYZC4DOZmZfBD5XS8srqwHOzYbG5ubWtrb2jk6M
+ Ljlws6Ojva2ttbm5qeFm3Y2a61UVZaXFhfl5uTnnz6UlJwCmE0F+3oyS5aEDe3dt37KJ
+ ohKl4YtqJQWcRd1E2UYUuOFVS3+gf9+jCkQbN2+FEZlZ2tg7wYYCQsKj4hJS0zOzc/MK
+ ioHP9do6oNPa1t7Zdav7dk9vb18/jQEedKuvr7e353b3ra7ODkBFSNVeryoHTldgTufO
+ JMXHRoYFM0p2NpZmZEqISotAkvDIfhW1RLTNRG4jii7i91Rjfbar/GfDJiFav3HLtp17
+ DhyysnV09fD2DwmPPpV05lzWRQB0raK6pq6hqaWto6v7dm9v/8Dg0NDwnZGR0dGxsbFx
+ HmNjo6MjIyN3hoeGBgf6+3p7um8BqZamhrra6sqyEoIpMz01IS4KKB13d3W0tYIp7dy+
+ BamDJigJfAQ83K+ihhV1rDTD0EVkLp2B+tfbk3B0gIj8nIWNvfNRT7+gsKhTSWkZ2bn5
+ sKDq2vrG5rbOW92wnMGhOyOj4+MTdycnJ6fu3ZvWjHv3pvDg3Ynx8bGRkeGhwf6+nu6u
+ zraWxps3rleWXS3Iu5h1LjURKAX5eR51trexOEj+TuR3wiDoJ7Wr1H4VN6zQExHdROoi
+ ijYidxHRm0K7l/g/wulfDZMGIvi5w2REgSci4xLPZORcKrhaVlVT39jS3gl8BgDP2Phd
+ QDN9/8HDhw9nZmfntGN2dmYGDz+4Pz0NsCaA1J2hgf7e7q6O1uaGG9crSouv5GZnAKWI
+ 0EBvD5gS/J0ISpQ50Dxr+4ncTtR0E9FOpCYitxG3c2tKaSKKXu+/GSbO6H5mK9p3yNLu
+ iJunX3B4THwqIVRSXn2jARbU3dsPfMYnJqcInZnZuUePH8/Pzz95+vTpM3U8ffrkCR58
+ /PjR3NwsoCKkJsZHgVPf7VsdrU31NVVlxfm52edS42NOBvt5ujnZWR3av3vH1k0bRU+d
+ ogyR7dwOkf0qdBP3oWOlGfv3idYUaKW10pvSQLT/kJWds/vxgNDIU0npWbkFV8uv1zW2
+ MkAjYxOT96YfPCR0AM2zZ8+fv3hJ4xXG69ev6dcrfuDF8+fPnj0FWI/n5mYA1L3JibGR
+ YcDU1Q5jYpSy0pNORYYGHHd3trM+dGDPDtSz1LTg1ED0E7eDzEU7EdgcRDNRdBPRTrSk
+ YUFtRHQR0fFd2JsSKeK/LtUDRN+DXKBYtO+QNSDyDgyLhhFdyCsuq65rbOu83Td4BwBN
+ 3wc+gAfoAJxXr9+8efP27dt37969VwfuvH2Lx98AsZcvXzwnpB7Doh5MT90dHxka6O3u
+ bGGU8i5kpMZHh8HfOTvYmHPmQJ1ayg3g4LZSPxHtEDR70a9CN9FW6SZSF1G2EdFFBFQA
+ StObQtdD6U3902FC6oTBmSh+U+kKckFAZO/s4RMUHptIRlRadaOhtfN2/9DIOAE09wj4
+ AB5C5y0B8+HDL7/88uuCgYc+fMCTDNbrVwTUk/lHsCfANHZnsI9Qqq0qLciFKcWeDPY9
+ 5urImQO1lmjAwXE/8eAhc7QTD1O/ytBNRA8Rw9XFhbqI6PlSE9G4N4VqS9BL/8QEglBB
+ TF08KIlSYpE1QRQcEZd0NievuLzmZgshNDoxNU0APX0GfAQ8Hxia3377/fff/zAeeOT3
+ 334j3Biqd7Aq4PTsKcxp5sH0JIypr7uj+WZNeXFezrnkUxEhCErIHJCEo7W0g/USe2BA
+ hyys0A5BOxGdXk03kTqKaCNSF9EDXUQXNBHt7YAT7MnQmyIS8Mcf8EHl1/CfUBUp4Cyq
+ 1ylAYyBGg+bevmv/IYLINyTiVErGhfySyhtN7d19QOjeg5k5Buj1m7cwHsBD4BA0/4Px
+ 54JBjzFswIqRev/+LVzfy+fPABOMiVFqa7xRWZp/MSP1dGSovxcyB2v0LEhORAHIDN0Q
+ GzuHI+j2Ur/KG93EQHQT0T+Ug9qI3EX08vQAUEpvimCi3hQ3eoXL+yegJOExqte16l8h
+ OAXNDYaOITpGEKVmXCwora5v7uwdHJmYejDzaB4W9PrNO4EPocPY/O8yA8AxVAzULx/g
+ +WBOsKa5mftAaaCns6W++lpB7vkz8dEnKHNwsCVjMIPYyALtKtFPBDxAJziEu4loJqKb
+ SAM30EZEayo0JCjAz8ebeoiyN3XoALoeIAEVlMiW/t5WJHybIv8lWfaiep1Kd9b8oHI1
+ t7F3IYhOp2bmFpbVNLTd6hsen7zPCL2CBcGAfhP4/PmnROf/PjIU8BSgYFCA6c1rOD2g
+ ND05NtzX3dZQU150KSstgTKHY6BZEVwwDlNDHv1EL2+/gKCQsJMR0THUTUxUu4kpKclJ
+ 6ExxFzEyAu1e2ZtyOeKA3hS6HnuhmkA7ntMHLmz/tigxQIZ6UAhMNepfofvl4p0UC/vB
+ 0DkaICoHRN39IxOIQ/PP2IQEQOTaGICPgGP0sESKDYr83gc4vVeE0sPpiZGB7vbG2vLi
+ y1npicgc/LxgCyQmQnoAB+dF/cSwiKiYOIAjuonn0U3kdmK2aCNSFzE5Kf5UbDR6iMHU
+ m/Jwc3ZE14MavXB5jJJsTv0tbUkAROI4qf8lfSmJso3Uv6JkJ9EcFAvWdo6oXEMiyYqK
+ ymsbO24Pjk7en4WXe/XmHZkQObjPx0cFi4GCPf3xB2D6Bcb06sXT+dn7k6ODPR1NNyqK
+ 87LTk4h08CXdAwYCkK9/UGh4JPDhdmJWtugmFqCbiHZiYSG1EfPQmkIXMfMceh5GvSkn
+ MiZKQIASeTyJ0t/OlCh9o2SNANLU61QRKupfTc1ORQhCgIPzUS+G6DxB1NTRMzQ29XDu
+ yfOXCEO//AofJy1InXzNjf+3YGieopsGmARKL58/mXs4NTbU29lcV3kV6V3K6ehwuCw/
+ 6L8oABFApxNT0s5lAp68/AKjbiJ1ESvKy9CaKi4syLt0kXtTSaI3Feh3/BiMCYQ6tT0o
+ LnE3Hg7v75U7qCYkCJUtir50H+p1RGRV/St1v5aWXIQ4OLl5eAeERsWnCog6e4fG7z18
+ 9PTF67cKQotd3AJkjO8a4yRggjERSm9fv3j66OG9cQapqiT/QsaZROr/nYAGDHqWaDR8
+ qZ8IfAqKS66VV1YZuonoIYou4g10ESvR8EVvCj1EtTcV7I9+vIuK0t+yG08Ifc/aOLIg
+ rtelvhTyX636F/W6qNihBSZRlocXaO7o+DPSihiix89gRB/Yy7GTM5p2Y0SWvGf0eg1K
+ H969efnsMUAaJkvicvZsamJ8HJRfpDbihu+Fy/lFJdcqqmpuoJ3YZOgmUkdRdhEbG+rr
+ CCilN5WGTm9UeEiAj0DJwow0E3B4RD38fUyJEaKKFOpFSOiZUBH6X2uS/zpCwSjVv9D/
+ csXuRlpgd4iy0BCPiE1Iy7rEjk6FiI1IhCHtjC8JyaIHtX9BtwkmBKbfYUoE0gxA6utq
+ qb9eVpR3AZaQmpICGVja2cwsAIRuCPCpbwA6HWiIGLqJ1EZUuojtbWgiKr2pSznngfSp
+ 6JOIbYyStQW68TsN3fi/QxquRQjKq+07d6MeBKGCcgOmwvJfD0X9C/mvqNhJC+zrFwhN
+ Cbp56VmXiyld6CFHR1b0/hdKFciItPO9CIyPP6D9M4ESZQ+//SpAmgZIt5CDV5QUoJkO
+ 1RdyN4pARQRQHfBBO+Q2+lUDQ0PD6B2OyiHaiIP9/WgidqGHKHpTJYV56HqkJcXHUAbi
+ 6e4sWogsP1JM6a9OHThTEDYEifaOXWBUUA/a2KLcgL7UAwUhBKaK+hfyX67Zg0kLHBp2
+ MjLmVBI6EeB/lHSBIYKfW2xE//dxSJZ+RgOUNCUDSHf6u9ub6qrLS0hGlIcEoYgtCACh
+ n3i7l9uJY9xNnEI3Ee1E/JhCZwpdxLFRNBEH+mRvqu565bXigkto9CYzSj6ebmghWsLh
+ kSlxgvdXpw5sREjl4OXYyUFfSgJgECpUbpC+FPJfg/oXnl9U7FS9x0I1l4yOeC7zPyKj
+ e0RWpECkmeT/+2KE/t//M/pz4e9UkFAogXNA9w8JwLVr18pI0cIAdff0Dw6LduI0+Fzu
+ Jop2omgjoot4j5qI1EMUvambtVXlMKYL59NT0JwKCUBhfMTOGpy6RtjyV+Z3lCooGm1y
+ cjAhFgBDX0r4kL6U5L+nNepf6H5J+AsxMIpEpLm5eUXXquqaO5F0TyKjE47OFD+nMSot
+ ShIkGZOm744SyQp/VXejtvZGXT0ULbAgAHRnFO1eQgfIoGE1/4S6iTxEG/HR3OzMw/vU
+ QxS9qVvtLQ11aPRScEtPRjZPhbGzw2GYEnqImyl1WFJ99I38nzQiqQAmhCwhAHYigPyA
+ z8lI1pempKafPcfqX67XoftFxU4jO+ciq34qwXN39QKiB3NPXrx+98uvi0KRZtq/8KYG
+ JQUkyu6omh2/Q22l9rbWlpaWNmQI3T19g8Oj4+gnPpxR24mGbqKmiziPnofSmxqmN2lD
+ o7eSUMpMSzoVFRYIhwdTomJJaiYov/tGoBj/G8WImBplaRxLtI8dB0Bh0P/GJ6ZAXwr5
+ 78VcVf1bhIGCnUdhEZUh0Cw0t3f3D49T6QqIPqBwNcoWvhCVRS9XYSKQkN1xCk7EELeV
+ em93Y/QgQ0B+MH73nugnPlX6VbKbiB6i0kYElQ76z9CbAp/e39PVhrZHZWnh5ZyM1ITY
+ iBB/omulsAUF7U+chBvP3re4pxgRAhFptA+AeLNzdIEJ+QefIIAUfekVhOOS0muK+lfo
+ fitoVFZVc5rb1kU8N0rXJ89Rui6EaAWByBgmFSNKwikFZ5CePJq5f+8uSVNoQAwGRQva
+ VbNz1E98CapQthM13URDF5F6Hobe1MTocH/vrfbm+pqK0oJL2WdT0OgN8jnG7SnWTLAk
+ 9i+wJIJIyui37YQC2ALEGxDyCST1YjxSgfM5lM1CXwr5bw15fFL/ynHzZn39TdxvbG5h
+ Ucnw2OT0DNiFV4BIpHTKxBpP90rvKe/GddJvBBKxd+hX3GO5F+VvULTAxT1+IvqJ6PZy
+ O9Gom6h0EdHwpZ6H2psirOE3b7U1118vv3rl4vk0yI9C/LyOoj0FzcROCkrg7745SMLP
+ kYyejYjEi87unr6QaKPeST1LABVSNgt9KdXrcPhC/Uv1Ogt/2+k+NKeQZQ1TO2/2sSCA
+ vgZEhhSPvB3KpA/v0a+AuyJlyn0aEBzNQTIBC6JuiKFfZdRNVLqIRr2p50/nH81Soxco
+ dbU11lVdK2ImEFHJm/wdaSYgiaXM4RuDRBD9+CMSbpKXUn/BHhptH3AGMfGsXswrvHqt
+ shr63yboSzu7yOH39gn5ryL85fuDCAJjE1PQLFArQnB0mmC0UrtZ9HcGQ4K3Y5Bk74/E
+ XiJ/QwgSAFG/l/tV6BfCOy4YahNR9qbewOk9eTz7EM2pO/09na0NtZUl6CGmUeeDNBOH
+ LYXa8puDxBDxciGKROgvHGGNNhBKTs/MuUwC4Os3bgIfoS+lep3VvyT/he6XhL80RrlK
+ JFXJ/FOV6Ka0W07poqle+QMGkATh8At10imoyEGSljfU8RUAKe0q5UqUPxdc+v+KHqLo
+ TcFvwiSpHX93bLgfmgkimS5nn00mf4f8DmpLTu++MUhKKIKfYxm9g7O7F8SL0UDo/IW8
+ wpLyqtqbTa3QZ0OdLeS/Rurfe6jYeaB8h5fhMI0ZEr2IrwOR6u1gFdxTgjRF6B2QpUGe
+ J1IE2fFVAFKBWXiDTUvbm3r98vlToHTv7sgQwlJDbQWR6qnxUWjHIygJSey3dXcMEUIR
+ VjrsIe0ijMgnkDTa6ZlAqLQCBXtLe9ftXuAzSvpSIf+F+lfKf3FjhgbfR5X49Bk7GTDd
+ v2sro5UbzdJ/KWZaAQmuCqH/PenykFUbQtAnAVLfBmhLuNHoBUrweA+mxu/03wapzpoJ
+ 0Y6H2tLqEOmWvyVIKkTbdrIYAfJS/xCQ19BoA6HKmvomytUGhhR9KaIx1eus/lUr9ic8
+ SA7MXkaoFox51KVneuWPSmsgkGhuqT/7K6XTMruWMYhtZKHhSCbK+GFhTXin37kdT0nI
+ I2gmwF8QX4t2PDq9seGUOWhA+jbFrIBIrHQ4aAExAmT0YdGnU85mXyqADdU3t3X1kHoR
+ 1Qb5MSn/NdTrUvfLZbtQnULXqHoZ+uByKlaOxtJ/acBIQQkwiSEVYSJHMEZiwXsZPWmM
+ EqWKKI3vjY8QX3uj8uqVnLNJcSeDfDyc7a2lJX2bYlYLkZmlLYkRgk/GJqadv5gPjTYQ
+ utVLyfTkNMRxUl+qyH+5Vhc/oAXmwXpgqkToWyx1C2IaFszNatzVggRbEiIvluRpNGFG
+ IODOgn+88GmCSfF4yB4QltiURBMRQQmZQ/BCkL42K6SBaB9CkdNRL3/I6JPPZl8mZrSJ
+ ELozRowKDEijL2X5L4lIxYB7UQY9INyM6EZIK1owNatyV51f/v7T5KpDeUR9ibix5L9d
+ 8Br6U4ESuvFEBc4hKqE/1Xrz+rWCixkppyKCfT2Eu9u2WdBCXxekBRApMvrMi/klFTXQ
+ aPcAIZjQLATAqDZUfSkLTKnmkIOEv+qgx1Rt1tdydGK21elVMDH6rT5LN5aEx/Cg9rUK
+ Slwbw5QekUasn4R8ZYW5mamnI0IYJKTgBNLXrmU1EEFdyisdwmMgo79UeK26rrkDzOjY
+ XUjjmFEx6EsZHFaYKt9bqtgNA48qc6V+dMNsrOYt9e3FDeW/Kl8Mw9Of/KeGl9ItiRJ1
+ 45HhMas+MnC7vbGmnECCJcHd2aGY3bl1E63B/ZqEAyD6Xq50EBptn+CTiowe8tLeoZG7
+ 94AQcmkJkOLEVAzUWVnqhvZzf3KSVvYC7b9Y7vZnvLvRn0uQBM3E/m5ybAhCvtryIgmS
+ u5MtQNqB1uzPIMG/nrfDykjDeiF7Fw9frHRgGT16dB23+++MT4F2gzTu9Zv3EI1o0gB8
+ BKOPZLhDH85wz3DrMyZpJS8x/IPlbn3mOxu9hUSJTenViyePHk6RRkwFKcjb/YitxYHd
+ VCZRcve1QJIQbeYlXUKjrcjoWyCMGyXu+gnTbmBUKE+TPszos3zenc+cpS9+2Wf89y95
+ T6O3A0qUO6Ad/+71S0XIxyBlpMSdDPQ+6mhjvn/XdvCrX8/bcTBat2Hztl17D1nZOxvJ
+ 6LvZiIRGG5wXm5BwcEYf47PvfMlEfclrP+MCvuTt6LWGt2RTYsaWhXwzkB8hB69FTEIK
+ Hhbo5eZogzJp26YNFJK+iiHJfGHT1p17zbB2ldYLnWZ1aU1j++2BkbvUAHpOGm0NQobr
+ V24ZfSjlwcW/v3SiPvf1i//Tgkc+9400r9O8gzAlKeSbFyDBkgounkuKCfP3dLG3MkPe
+ sHH91/J25Olo2d2OvQctkdFh1R0gEtLFHvg5ktG/RO9FarTpO6W5eL6p+Vz/ppvaj7kk
+ SDVlBTlnE6ND/Si5O7CHQ9JXye3UfGHPAQtbJ3fvYCzpOn+puPwGVnQNsRYBRkRuTpJu
+ CxH6N6Gy6LMYYBIg/fEb5EevnpElDfV2NFwvvZKTHh8Z4uN+5DCHJHi7r5A2KMEIKyPN
+ bRyPegeejOPFKAIirYxe0AWGq/5kObjoE//zHtB8WnIg1OuVIGEFQE97Q3VJXhbKpMDj
+ bo7Wh76at2NPt2HTNqzSt3F08woMj0vOwGIUgmh4fHpmgYxec824+c+b8xVcsfqRFZBY
+ tzz/8N7YYHdbfVXxpcyUOApJKGXZ261+2qB4uh3IF+xdPP3DYpIyLhaW10qIKBTBz8n2
+ j9bNreDT/jP/RMWIWQck4VIS+3BqdKC7pa68EHlDdKivuxN5u21EN6yytxOeDjsp7DmA
+ fMHDLzQ68eyFgrKaJljRxDRnC4aVDpqrXSM2xN8qzccWQUmA9Ojh5Eh/VzPlDenxEUHe
+ 8HbI7aiSRdqwmho74elQGSEYHUG+EBmfnpNfWtPYgXSBIBKaK20TVVzxP9MkVnzVKkyG
+ mPTy6dz9u3c4b0BIIm9Hud3u7ZtXO20gM8KeMVQZWTu4HQ88eSo1K6+kuqEdi1GmZ1SI
+ uGhVr3Mt2ZCCqvrhBUi04OnFkzkkd7fb6iuLczOSokN83Y9QJbuVDWkVC9n/QO1Ie8aw
+ p0Mwik3OvFRcVd92e3D8ngoR53PqRa6NREHBRvlt+PgMEkliXz+fn7k3NnCr+UY5e7tA
+ L1d7ThvQpVjFiMSebj1yuv3mh4+4+4ZEJ55DvlDX0j0wOiWWdC1ejKJc9Rr7vRikt6+w
+ vHNypK+z8Xpp3vmU2DA/D04biG1YRUZImhFyOvJ0QRHxaTn5ZTXNXf0jWIzykfVCawwb
+ 9eMagUTicqwcREiaGOqBtyu6eDYhMtjbzcGK8u/VjEgyYdi+m3K6Y/5hcannKRh19N65
+ e39uyfVC6hWvwRsqSDK5o5A0P8vervbaFU4bjjnbIv/euolSu1WKSDAjkTCgenX3CYlO
+ OpdbXIlghHwBi1F47apxLFqDyGg+8gKQEJLY21FuV4W0ITFKa0irlH5rzcjVK/DkafJ0
+ tc23BsamZuaf05KuBeuF1ma6YEDJCCTF202PD3a3IG3IPoP8+5jzYXNO7VYra5BmRCTQ
+ EXe/EzHJmZfh6Tr7EIweozBatKRrrUOk6SjB3Qm+4fk8pw0N1VcvCUOyp4i0ef3Pq+Ts
+ qCWxYfP2PQet7DlhSL9YWFEnPB0FIyKAcC3Kl8fwdVrDt5TJgBYFpNCvH5Dbzd1HkdRa
+ JwwJqZ0NqFWQDTCkVeAaRFK3ddc+88NOHn5IGLKulFJON4rKyBCMlKtaw8BoP7oyHQQS
+ e7sX8zNTI/2dMKTcc4mRQcddiWzYtlpZw3//q5iRg5t3cFQiEoaqm+3I6R7A06HpakQA
+ aa9zbd+WKAlv9wvShkfIv7tbb5TlZ6XGnvB1R9t8L6ffq5DZUcYAFkhjRkgYWroHKacT
+ no4YIHlFaxsW40+vgvTn/1CRxIbU10mpHajVQE9nWwuk36vj7P4DM1q/efvug5b2bEYZ
+ MCORMCCnoy1j9GBkjI1yT3F35O1+I0MCbTfY3Vx7Le98cnQI17G7t8PZmc4HCTPashNJ
+ nYhG2fnlN1q6qTR6+hI5HXs65XL0jE4BCL+VSRFpAxkSUrve9vqKwpy0uDA/YlahiNyw
+ CpkdJd7rNzHF4Ho8KJKiEefdKI2QMCyojDRXqN/UggRDegtGaHpsoKvpeknuuQRydnbS
+ 2ZkckDhjgBRI1EZI6vLLbrTCjO7PUWlk5Ol0WBbOgDAlMiREpNfPHj+4i/T7RtmVLOns
+ OLMzOftWMoYDFnYunoER8WdlNNKakTTqhReo31csiSPSB5k1dNysLMwB1+CHzM5sL8pY
+ cHamVUjs6lC/mlk7HvUJjUnJunINSZ0wo3fGCYOOyaIZkN9eNqRf3pGzGydndzX3bPzJ
+ AE/ig3auQkD6DyXeyBjMDzsfCwg/nX6hqPJmRy9YIBGNiEpVYuOiK9QfUBIHYoQ0zu5a
+ XmZSVJAXyliRfZsYkKg42rQNTQnQQMFRSRmXQTHcotoISR3MyACRDsjSM8DfYNXZicyu
+ vCArNYazbwQkVEimYcSubst2ZAyO7r6ggbILyuvaeu+ATH1OSZ3GjJa+Qv1R4WVgSL8j
+ s3sye28UfFBV0QXOviEQ2oMK6cfvTeohoYAVrs7WWWYM1Y2dYOpmn6A24qRO93TLfw9V
+ jODsRBl7q5kDUrj/MeJVdyBpMI1W1bg6b/T2zudxxjBx/9Gz17I2khgtf6Fr+FkFoz+B
+ 0Rtk3+DsWmpLL2dwhWTLSYNpiZ3M6vaawdWB8T6TU1gJNlXJGIgF0iH61PdPggQ+iLLv
+ h5N3etrqyq6cT4oM8nKhKnbLRjANJiTfxNVxVgdXF0DF0dXrTV0DY3rG8ClgNM8rhvQ/
+ v314+3J+hukgJA1cxdpbHgCt+vOPJmEkKG9kda7Hg9nV3Wi9PTTxgF2dwYw0V6TfXDwD
+ hJIhaaAmEqpYkdgBI07sTLAjDkdowKKA9T0Rm5pTUKG6OmQMSuK9+Kr0R7QzwJaExO5X
+ rmLHOLHLSY0N9TnqaHVQJN+mYPTDTxuYq3Py8EcBCzq1saufXd27X0hnIuxYez367cUz
+ IDBC0sD9CdCqjdXFF87EUZ/PGqIGJN8mFEgiHO3aL7i6RCpgwQPJrE51dYsvSn/EaAZU
+ jETyPXCr6XrxRaMCyTSM1m3ctotIBmTeyVn5soBlHkh3dUZALHPHgNFr7vNxgZR+SrCq
+ JtsREUEcjtx9T8SlIvOmBuwUFbDMA/E/X+bi9KfkDGCi0Iwlxu7R/fHBVcXov9//hC45
+ iCB0YEU4QuYNrg5SE/BAsjjSgfjUDGjt6BH65auLEaUM4LyZCEpgPtUQjvSs7lPYKM9r
+ MSJNA+LR1dx02UEy1df99wdUsJQyuHoFRSWdv1JW19YzLNoSlHnz/9YlDAoUH/stpol9
+ HRN26CBVr1rOwITqViVlSMkS1RE6sMynKjzQxy5Nf1zOgMSI6qNXJGno72ysMuTeJA0y
+ IfcmjNA7ogrWhyrYImi2iPN++hLVkQxHOhKfmgEJETUnUMPK5gR4BqphHaxkA2nFNSz1
+ YJHWCUL1VPrF4molZXgPyZZwdZ+6Qv15FSOSBj2BoLiv42ZFQXYKSewEXwc7MgEjJa07
+ 5h8OQrWkppmUDIKsk+FIx+ATMyAgotRb4b172+rK87OSooJJ803NclN4b6TeYIJIykD9
+ PaR1tSBUofKmFqySMnziCvWnDRihf/Rcqreu5WUkspxYEZ2s2I6gfqTU28IOGEUmZuZR
+ Woc2OVgGEKp6dfR53z/V1al92O7mGqggIQzCQjFWqprS45Opt6UdBKpIvfPL69vQ30Na
+ B4xEyvB5l7mWX6WakdAzzAk9Q/EFLo+OSIGdCb1ywohSbzvB1iH17gATNENMkEzr1vLs
+ f85nlwjxIiQZjljxXZCN9hGldQc59TZBc/LfH2hNi2RUU7KJrRNyE0696f9/znWu5dco
+ VqTo6x4JOYPQ1/EyMV7dYgLtTZogsN5WWBoWEqOWR1DWMVunY/Tpb5+KEa1uEaL8fqlT
+ jYBOlSUn1CpfuXaLMdp90IpUxChhi6sg26IGHxhVmdZ9+irX9CsMEJFMVShOxOKWVdN7
+ S4y4UR535gI1YUlv8uyVmnqvaQQ++eFViDSLxIbEIjFs7cQVLK2INWndBFFBWL9nDYnq
+ CcZIQzOIEvaTl7mWXyAh4qXlCxZbnhWLLWmvE1psuXJX950xRsZUEGO0lhH45GfXQiTX
+ WmLRMq3+x6JlFjOsxjo+xohEQWxHF4uvN93iDh8kqiIeffI61/ALDBDxqcFyzTI4b95F
+ w7D438S9t3Q7Wul3TAFI7KyK/Rkgf6TFR1j7j000eIUY9kc7hNVHpq4rN8YIOcPCeLTS
+ j/Bv/ztjiJDT/fIOCy1pXQvtoXGJNoOU26PRhp0mZN7fUTzaiPYRcm+ZMyzM6/7tc73S
+ z6dihI0raH9idXc0JHVl+dlnTmHNhNgdDWZk2oZBBow+Uh+t9DP82/9OwUhChNKIdxkc
+ 7mm7iR00ziVGkRlhc2K5y+CKSW/8IWOk8wxf/o3SYEQbQdKOTuTp+jubakrF3sQwIyyZ
+ wCbfpm4ySBhp+LoCVtfx8jDiVOlCvvzy18RfSIyMPB3tcYKEofBCutysk8yIMwYTqiPY
+ kcJ7u3oHQ6WqSE503vtTXzQVIwQj3k/12aMHvMV3dcnlTMOmt8KMVt4nJx+pSrdcWLql
+ URKrPb5PXe3afF6LEeV0YvPobnXz6ONuvMPgKpgRMNJIIBMzuA8r5HU6Rst++QRGcHUL
+ zKgKeXdyzAk/9cgJRCPTzOg7oWfYewh6BiziOwc9A62aMNYz6CFpCbQUjAx5N0Uj2kyV
+ TpzA+TqrZkbfQbsl5N5HhNz7qtyagdYrK5oTHaPlMVKTOuxch2ik2YJ9dU5uUfR1RNiF
+ xaVd0DaQFA2kntsth5HIGJQd2CtoB3bURkfp4BacE7sau3uzlhh7nCiN2AJsQ6MIGqTo
+ BFa9xDWu9YfY13E4otN1XjyZxZ5ogmJIO30Sx02IM/lW5bgJVe8NYRBWLGuXiPFqWOF2
+ 1zogS3x+DUac1T2k3W7V+nV1z9ZB8m1Y20JLLUXSYLyqfIlrXOsPSYyUXaPFiSBgUy9n
+ JuNEEOIYDuAk39U5bYK2gNQuWebdGcQaMUW9hctZ64gs/vwqRtyUUApYnMiXkRx7Ahjx
+ GVVUHa3C+aNy6T/2ruMuH621VAISOzu5AklHaQFMCkYGkmG4t70B1RHZkTg1kXMGPpHP
+ JCrou+9E0qAo7JKzrmDNcs/wXbHplrquXLekBRCJ7R9pP7QFRFDe+VQcW66ciL15AxI7
+ kzclBka0FQ0W8pEqPyHjkrJ5nVgQq6y21O1oAUhaO3r78hkdmogTqmpKr2Sn8Tm+TrY4
+ bHnHVjra0mRvR1s6iT00UMWGncImkLyzN63kI1m+ipEOkjFICkZYukd9iXlx+ugNOlo+
+ KTYsgAzJHKcmbtm4GiCJgIRWLEtVUzj7vj1MhxjQ1mj6DoPG0Kj3VIxID/QaB1RByUBn
+ LZfmwZCiQvyOudhb49TE1QGJd1PdyhudeGF5S8alEsO+W0aGpMckFSDckBjJY3VePn30
+ AA2+W811FcW5mTgQO9gHR8tbrRZIFJCUDYPg7NKQ2dXjNBCsQVq4VacOkgYkBSNOGt6+
+ QmuCT5ZvxDG+FzOS404GeburIK0zNSYpO0cLZxedfD4PWQMfB0LnGBhtwK6DZACJMeIF
+ LZAEkZgBWQPOw267WV2af+FckgKSGbu7dT/RWWImZOAUkNAv328h9lPFuuUqHJVIG0Gy
+ IVHaoBRJeuKggqRixGeIkSHNTt+Ft2utryrNz9GAtBd0A6hVAmnlwhODs6MyNhbHU12r
+ NRiS8dFHOkgKSApG3OMjQ3r2GN5uuK+rxRgkS7O9u7ahTDItA2dnh7N7sZgPpyVGJPBR
+ BjhzlE7iw2GJ8HZaS9L9nUBJxYiafL++f/v6BbzdPRWkC+eUmGR5cO9OpUxauSGxs9uy
+ UxwJwue8wZBwouW9Wd4gTYAkrol+Kt+ktf1bi9HviEjwdk8ESHB3FJNk4iBqWZRJpnk7
+ GBKfUMVbqgZFJpy9WISTYXuw0SAf3kvnJRpbkg6TcoABkgZSqRJIbyRIdxCTkDgUMEiB
+ 3kePHLbgWpa6fSsPSfLcFj6iCueOxqZQatdodO7oQpB0lKRfERjB2xFI5O6mJ0b6u9sa
+ rl9jkMIhbMChfPsoJDG7umJvB2cnDh7F3sSISPHpOQV0jhi8HZ/fS4fDLgJpraMkMZKG
+ xJZEMQmJw90RpOAM0rmkGFDgrvZWZghJlNuZZEjiHGw+wNc3NDqJzuO7yafDztIhyypI
+ ag6uhyUFIwZJurt3yO7m5+5Pjg7eBkilBTlnE6ND/UA44AhSUwWr5OzIkOg8eRfPgHCc
+ JJZXeh1F0vAEDrZkkH77448/FwSltW1JKkYEEsUk+LsPHJTmHiggXclOj48M9qYjSOHt
+ IPyGIa3Y2VH6jTqWUjvHo97BkeTtymqaOvvu3L0/N//81dv3dF45+zutKa1llAwYqSBx
+ esc5+NQYLOlmVQnE+adIgAKtHTf8TClkFUPadQBkg4cfvN25i4XlN3DQMkCanX/26s37
+ D7/ClBaitIbTbw1GvJJPMSX4O2QOU6CFWusri3NZs4r1fFi6LAxp5WQDDAmEEHQNOK/c
+ 1TMgLC4l81JxRV0LgTQNkF6+QVD6jUyJHJ5qSzpGClTS4XESLjp+IMEhWlWWUEi1ncmG
+ tB5kA9IGRzfvoIhTqVmXiysBUt+diemZx09fvBb+ztiU1jBG/NEVhOi3iEq/04I+0ano
+ M0i5lKVIpiki2ZA2bEHaYGHr5O4TEhl/JivvKoM0PH7v4aMnz438nbw4HSMNSmxKSB0Y
+ pDnsAdDTTkv65MpYZUmfSVnD9z8ibSBvZ2mHkBQSFZ/GIDV39g6NTz1E5oCDyw1BSVzb
+ WsdIpRvEdAhTkktjp8eERH/B0lhT6G9OG9ZvQm5nZmXv4om8IcEA0tjkgzkKSgIkQw6u
+ Y2SMkgKSXGJOGn1aYh4VjE1prHA0CB8Ua0rWQGkDiiQKSQ6unv4nohPSs/IQk8iSGCRy
+ d2oOzt8cHSOaAWN/9+cffxhv1ZDNmzuJk8uhiVw5Z0dCO+Httu/eb468QQWp4oYA6SGq
+ WRRKlIKrhqRjJGdAhYksiSV3L+axPTGOQaq+yieX48w3eVaVCRtCCpB+Xr+R8gYCyUux
+ JAESJQ5POQUXxaxuR9ovqIoRpXe0WwMdg3Qfe5600MnlKTF0VhWdg2Tqqdj/+S+8HYG0
+ Y88Bi8MGkJDdNXf1gRaa4ZCkbfppL3Nt39aCBGKId7LDuXx9HXRQbPrpcH8PPoTU5FOx
+ GaR1GzZtVUAKCItOTM/OK6mqb+3uH0He8OSFIFgVZ7e2cVnw6RWYyNsJQ+LzW2pwCGli
+ ZKA44JK2STMlILG3A28HkHbuPWB5+Ijb8cCw2KSzOfngV9tvD42jU/GMIhKcHSyaLmnB
+ Va7xuxIk9nYwpOePH97Ftie0T1qKeiq2yScuy7xhw+ZtO1EmoZb1DjoZl5KRW8TUHRkS
+ ItJ76ex0jBZ9JVWQaMN8caiB9lRs03eRJtIc3o6Tu83bdqFMQi3rKwiHEuNuEhNCOkaL
+ MFKycDqEVByeSIdVYTf2s6u0Gzs3NhSQtmzftR9lkptXALxdRi5x4Lf6R6egFHr1ljp+
+ CEg6RstgxKdiG041yFQDkqknLktLUpM78na+IIXSEZGEvgEH+8LZ6RgtRkc8Ip2d5nSQ
+ EXE6iObEZVOTBnZ331PeAL4BhgQKPJAo8LySanRlqeFHAUnH6GMYKZwDOTs6ZWeWy1g6
+ cVmchCRP8105G8TOjkISGRITd9ZwdoHonJ/XMfo4KsbPCEuSAYlPFOuiE8VwUiyd5mtm
+ 6sl8AiPO7VDJMrkqMVLsaFL3dcaILL4nvR1KJDqFlE9PbKbTE3FSrAdRdmAaTNpHWjEk
+ CFDYjg7Bjo4HRpw+k3WF4hGqWD1nWIzKwkcYJYnRI3SRcMxO6SUkdv7HiGkgNsiUvb4Z
+ I0k2IPumlqy7IkAhcfGolNsZxMULr0+/jxkgkBgjeVxVSy2Yhng6e4KPQloVjChnALO6
+ B0Iu52N+J2JIbQdtMYgGCLleiBpW5xk+/nWUGOGcnefzxDS03sCRYgnySLEdWzaYbkcy
+ ZZDKBuHqILZr7MRCCm040uujj6HEGP2vejQf2KAyA0Y7CaOVi+ykq5M9c8WMSMZVBIWQ
+ VBa/YtGqLGF1vm4pnBZghAKpLI+KWHnOjskYyWhENIP54SOQQ0bEp2VfgRkZqiMNXadj
+ 9HkYlV+RGFlg13xTMRLF0QbWcMniiIR2lehNDJJAXzJBCu2tY7QURpQ0/K/B12ntaHUw
+ orxbqoMgPEHCcO5iQXktBKsa1lvvlS8JjfqgMUYiHmmOITUtHpEZKTmd4OoSBFcHdf44
+ 5KrPXzOhSopicrp6/0iFxegGJsZgR+ggrWpeJ4SQRNVB0EDBCOUr0UCUd99D/UpcndHy
+ WKNL0+/IGSCMJPGN3Ps25958YNUq1EcGiR0xDF6BJ8HUXS6mRvkA2hJMebN0SxZHuh0t
+ +a3EtBgw4jMuwTPwcb44aWfvDtN4BsXT7dgDqaqLp39YbDJasEi7b1EwMhIFSVen5wxL
+ oGTA6PWzRyQNoiYfq05Wga/TLnChxlF04tkLmnzhBS2dkIuQ+DrwY4lLXPMPaTECpzpw
+ q+l68UU+ctnRxlTeG2ZEim+xUMyNK6Oc/GvgUrlvpCiCjNfFrnlAlpgAgRE3y7k30Um9
+ iTN8OJ+1OHJ55cIgMiPm6djTiQWXyBfaecHlvBRt6RAtgYrxQ4SRpscHzXdlIR2LTaeK
+ Hdi1zRTxlkwYthHB4OROS/kMVKrxwmX+ovAP44vT72EGxOQgrQOl+nKejn5rr4d4Kzka
+ snxSE7PATnbqvviXupLPDDmddxAviSWlCaV0Kr+gaB/FleigLJ4BFSMS2Km0t6o5ARX0
+ 8w8rplQRjWizE6yIxcaq/rQjjbqRBrJuoXzUQrT48vRHMAOMESlVqQ0r0zqResv20QZs
+ d/LFBiT+QEajHbyy3CdE2aLBsCGNUe2qZ3Qf+0JKjNSUYaCrsRppHVrl7jL1Xnn7CK5O
+ 7hmE0ijw5Ok0dasT3thJK8Sny/jYJa75xwVGJPgWsiCI8hVZEBZO7N5ugpZYa0buvqEx
+ yZmXS9DX6xMSBhRGmkVHOkQf/SYyQsjqmAl6gZThjiKvo5V8SsqwQukWzOgnWlbOG53Q
+ jkEXCivqQNPx1lscjPRY9FFkDE8oGNHiFgpHQnGCdRPUKbejzsRGpAwrxIg3o+FjJxzd
+ fWBGtPNWU1c/qUygYCAi1UDS6Y7OAIrxLQEREaq///KODsYe66dwJJgguf5oxSmDcHW8
+ gTR2yz9JZkQ72GGX70fYLl/bedUdnTEsRvcUM+LqCIstqTq6WVGQkxp3wgcKSKzjo3C0
+ wrROZgx7lL2JM2lvYt4J8omqHdZ5VCM8lrqjYCRc3eMHd4e4MXE+KToY5/OZGo6YBsIm
+ g4edjvmH0x7fFfVtvXQyCDbLJzMyeLqlrk1/TMwAY8SLloWrGx/oaoJI9Rw3j2zNORyt
+ eBkfUXVy19vjQVFJYq/8fmyoCjNCTmdovOpZ9zLfR40ZfXjDrq6v4yYyb3XtvylLljmr
+ 27x9rzwEKTW7QBywI8+cUFYb8TUsc41r/SnFjFDAUlaH/p5wdbywxQH7DG4zKRzx+Tr7
+ zA87HwtAxoBdIBs6sSRsRpqRwdPpOd3Hv4iKGYmFlkpWp7o6nC9Px4qtNPPmY0HEBt/H
+ g6OSkDFgE/ah8ftzlNSpi/ZwDR+/wDX/jEAI9Su2ZxB8KgrY9npkdQZXZ8rKfxy2vH7T
+ 9j0HrR2P+oTGkqtDxkCnglBtpEkY1jwQy0yAihHxQLSDBh27jCUTeZlJ0egdIaszydWJ
+ Q8uJTnXiw5Zx4ARWsoxSxvAWSZ2q1NLN6JMYKWbEO9GgvVcFPhXrlaWMGK5upetaqDrC
+ cW/7zPlQkAScP4qDW+Dq+PxRw2HLuqtbBiKluUfdPTIjkTHUleVnpcae4CV8WHpEfYkV
+ EkF8bOJWPm8C5/gqxybKc1sMZrTcFa7559SEAdEIHdgns/dG+zsbeUOnyCA+dZnb5Cve
+ vY4w2rSNTnvjcJSjOQ+bDxKTrnbN47DMBGii0e+/IPEGx8BbnIiMgfcKAp+KrG6FRNB3
+ yrnyWLbnZ3Su/EtkdaAYdIyWQYeekhNETQlO6siMQKc21ZRcljt1WmETdpM2GARG6JJz
+ yuAffvpsbgm4ukEZjlRX94nLXNNPq1YkopFiRvUVhTlp2HILO96a72O1yYpd3XdIvflA
+ vsPOngER8eqR5Y/pGDFgxFewpjH41IdXMfqTKAaORmxGMvGWW9fhUJCVZgzfidRbSesS
+ M/LKbrT2DIvqiDJvHaPlMZIIifJVJnUUjciM0k9z4g2OgURbK87qCCN50rKLV1Bk0nk6
+ DVtWsEgZ9I2BlkfIKBrJXTopqUM0ghmBqqMdIM1wkgGfrbNCRZDEaNd+HPVGTBAO8cXZ
+ oyOTOGgZx1rKlOFT17mWn9d4OtrtFrUR7e3dVgcaCGbETXLoUzeZtv862ZGmPCqouAmM
+ iFB9q6Z1axmDT3x2FSJ5nK/c7LbxesllooEUMyKOYeXhiH0dYWTv6k0lLDDq6NMx+gQ0
+ 8mklGLEYiBMGEN5Y0NJaV16ApI6ikZ0FmdH6lXMM5CAVO9Ix+jxcNK/SQiS3I35MIm9s
+ dUubr4NNldHIRDNSMaJ4JOxI93UaHJa5uQAi5N10uPzYwK3m2rL87NRT4f5gU5HUmWxG
+ Iq8TOQMa5XrOsAwoC55SMALdLc4tf4ldvSeQd9/E0UfnEugMA4dVOFVH+rotO/db2Om5
+ 9wIMPnVXYsQQIafDMRO0nAVkKvLurJQ47Iemnk6Fg0dXnHgzRuAZFtawd7nDp9ewy8Fk
+ MCPwdHxcy5NZau21UMKQDjUQFFt0FMgWHIVtSlJHGH0GF6Q3jxaDZYCIDy2ns6nm7t8d
+ hu5RHHsU6ktrJfbxsaMmmhHx3ktxqnPQ1hFfJ3nvxde4xh/RQETBiKpXyun66fiwK1mp
+ ceEBnnQQCAhvE4/vJR+p9yZW8m0zgoiD0fP5mXtjA+zpLvCho26O1of2Ut/ItNqIMTLu
+ 8WXrPb7PwEwLkRKMqHpFTseeLuaEIWEw7RRsggi73GJBOZNBblQgManKxLdsTujObjFm
+ CyCijsTTuQd37/R2Nl5HTgdPF0iejhIG0whvRogwWkJzwk2+V9jLW2/ELkZI03ml1utv
+ BJEIRl2oXimnw/HKR3G8sunnlEuMUMSKJp9Bu0UyVdZusaBBGpKe2yloGVuRyBfmH97D
+ KYmtdRVFueeS6JhyJ1sQdauSMBBOLMk30kDKDhI7O33RhAKN+K0ARFtlkBUBonevn4MD
+ Gh+iA7CvXs5E9co53cE9O4SnM4HwVuyIEruNUksMNohXH3UPYhtiXUtsDA/dWxIioukm
+ hkGlUjA6c5qqV+HpNq1fhYSBcELSIESQUpMPoWoD1itPoc3HYmK1RtKVqhqMNFb04gmK
+ V+QLTTXX8ikYhfi4H6EjylfN03HS8BNVsWJtS2wqaNW6VixYxkrL11KUr4Skxd+rNfaI
+ akYGiN4QRCheu+iA8oscjI45o3rlnA6l0Sp4OiUgCWcHSUMirRFTFN8LDGltW5IKkDYW
+ vXmBrBsQ3WqhfCEjOTbM39PV3sqMcrr1P5lK1CnxiJkGUnxjraWHXxjWWiqLxJQly/jS
+ KNe3xuxG+3GVKcBvjRVRYQSIkNJVFl/KTI07KYLRPnSNVoEEMmBE2zNsRmZnhf2csBFN
+ 5uXS65ql/7wESQdpyXSBrOjh5OhAd1t91VUUr6cjgryPIhhx2k1yrdXxdBSQKLOjtf9Y
+ OhFw8nR6TiEEXLyFBvZzkiti1zhIxkYkSlck3ezoCKKbVSV5WWmcLzjZKsFo1TydCEg/
+ k1YVWcNR2tHJsBUNNoxWTrJc2yAZMIKfQ9uV2IW3r5EuPGArulldeiU7PSEqxM8D+cJB
+ COo2rlbaLd0dr1qmleW0MxoMiSNSC9VItLR8wY7Ra5JvMIKIKlf09N6+eq5A1ACIctIT
+ wC94uoh8gSqj1fN0wMmwp5M0JGwCWUX7dNJOJ2IbDeNtOtdUfmfAh5MFQS788v7Nq+fz
+ lHTD0QEiFEaJ0SeQ0jlYH0K+sBm911WFSJZIqiHhDL6sK9doxyDN2WFrFSQtQpzPsZ/7
+ QDQq2IW7yOja4Ojyc84mxYQFeBG/gOKVmkarGYzI36mGxFt1BkcmnL2AtEEeBfJcnFJu
+ DJI2Kf0X316IEBsRQtE7Yrpnpico6aZYZIDIHK3XrwEReFXsHE27o9GWtx5+J2KTMy9d
+ xenKPXR62NrdldgIIWFERKJSKHrx9NHDe+PDfV0t9VUKRGDpDlsIiIimW620WyYNqiGh
+ RrJ3xTkGp3DUhDg+DKfC4oi3xRuw4/r/xfYjPpoWI07nKFkAz01+bu7B1PhQb2dzHZJu
+ xKKYMKpdARGR3audLwiUeAt2HGcpj0oMicKRLQVltc10nCXOkl8apH85RksghIwbRvT6
+ xbPHs9OTo4M9Hc03Kq/mZRNEAcfdjjBEW1c9pTMypA1btu+msxLh7eisxKJyedrEx0Ba
+ FVPSTsWSt7/aV2HJ/7bUg9KG2M3BiJByP+RQ1N5YW158OSstIZrThcOWB/buAERI6UzU
+ 0ymoGP9WjwTZa0beDhvl8xFiyBsGhCVR4iB3J1arWfo8ps3gUjOy8DHT/sPH/nrhf/no
+ fQKIUgUgRG4Okejx7P3J8aG+W60NNWWFuefPxCPpRkYHKwKRuomy7q8CkUjtcHivONHy
+ qHdQxGns8X21qr4NR+vA3eHECWys+tsfvFOaFqSPzcHnPf7RmdE88Xnv9KWv0vyD5W4y
+ QApC79+8pkj0ECn3YA+FotKC3MzU+CiUrlqIVjvrNlgTHTtKJ07sPmCB4wx8QiLj03BE
+ FZI7CdLzV2/f8wFItP+tBqUvnRzt65ebHfU57R+s3m317T92gz4lxp8MEOIQSiIg9OTR
+ DIxoGFVRI0LRlZyMlFMRIQSRjWJFXBitcD8TAxpL36IaiY5627EXx4Lg+N6Q6IR0HGpZ
+ TSCNTN6fmyfGgc7X+eNPQknz0VY4cZp3WPbmCt9++T8z/o+MxqIffwIf8nG/wcmhIiKE
+ Hs8+mJoYGeztbLlZg1CUnZ4UFxHse8zVwcYcGR05uq8Jkert+Dh5ezoyMToxPUeA1D9y
+ FwfyAaR38HfyFCQTUTKeJHFPztKCp5af7BU+a/gfCjRAhDBRxh88fhcAvX+LOMQI3bs7
+ OtTX3d7Efu58WkJMeKCPh7O9EUSrXRhpbIrShh/XbRBnlTu44tgJARKOe7vVf2di+uGj
+ py+kvxNRySSUDJOEW8o8aX9rXrBCHJb5M/XNxX8UBiNR+R3jNxq//vrrL3Bx7wDQy+fP
+ 5h/NPrh3d2y4/7YworycjFRkCwHe7s521of27/4GVgSw4O3EwZZ8aqKbV0BYDFlSSVVd
+ SxeOtpx6yP6O8jvFlLQo4WMvMykLn1InyQAQf5Hph4qU8qKFf2z6feWd6V9JgIALQCFY
+ MD5gvH///h3weU0APZmfmxEI9XS2NdygZCGL/FyIn5ebk50VINq+RTq6r2hFZFBKSELe
+ gKMtJUjZeVcr65o7e4dGJ+/PPn5G+R1l4YtN6XMxUuZH/GZAhJcR7uWP//kfFSflpaaD
+ suAd5BszRAg5HHNgMgzLu7dv377hAXhevnj2FADNPpyemhgd7u/pamuqqy4rFkYUHoRQ
+ 5HjY0mwf0aioi74CA6RxdHyTvR2f4rsHyZ2j2/EAcndZecUVtY3ttwdG4O/mniAqUYK3
+ NEr47AtmY+FdZdrFb833+A/hYn5HUoIvAHCi5+SrF76JifeVa8A/gBExQsKnvXlNsGC8
+ ePHi+fNnz2A/84/mZh7evzc5PjLECNVfL7+aT0Z0KjKU/JyDjcXBvQwRGkaoi75SRmeA
+ SoK0aesOARLcXXRCWtalovKahrZbfcNjZEqISsgdKA2XtqTMpPLRl4VJfRFuMEKcOlFo
+ Fm4Gv34jnICSASQTMVn45/IaCCKJ0HvKCgANcHn69AmQmZ9//PjR3Nws8JmemhwfHR7s
+ u93Z1lRfU1FacCn7XGp8THgwUm4nhKIDe3Zu27xx3TeCiLwd5w2bkNwdsIQlefmfiI5P
+ zcwtuFZd39zZMzgycY+ikkSJbUkzlZr5Xzgt8r7mFQIhmiQOzsL9v4O3+fALwSS/AMof
+ fOT9VvaweFMJEVFwQEg4NcYFwNB4cH96+t7k5MTYyPBgf8+tjtbGuusVpYWXczLOJMZF
+ wIg8yM9xtiAgAtP91a2I7EnkDRsYJHJ3nn6hkadTMy7kl1TeaGzr7h8am5yeeYQ0/DXb
+ EqEkvvCLjGmx11Pmm3+zDQEhWBAFAooAr2m8gSdFwFN9qfyjlYGx9F/Jt8QV8Bfkg0Do
+ yWNEHVjN9L2pqcnJybt3JybGx0ZHhocG+nq6O9uaG25Ul5cU5uVkws1FhwX5eh51spd+
+ jrOFVW67Gpzbolv/EXmDBMnG0dXTLyQiLulsdl5xec3Nls6egZHxqfszjxCWhMcT33iR
+ ixmBYMBowcN0lxGClyOEKLl9TX6GAsDzF3hfAb/RabRLz/YKHlUvhsyIbBj8wSviD2aB
+ D6yGcBkZuTM8PDQ0NNjf39vT3dUBgOpqqsquFlwGQsmno8ND/I+7uzjaWrKfo2yBKtev
+ nNBpoIK3I76BQNqD7M7B5ZhPUHhsYlpWbkFpFUzpVu8QHN6DWaAEj0c5nnRMS8LEoUmd
+ FnmDAFIiAX2JXwk/gwjw+PH8/NNnL15S7qjwTvKPVgDHUn+iXou4BNENev70MUg48mp3
+ hgYH+vt6e3t7bt/u7r7V1dne1tx4EwCVlxZdyc3JSANCJ0MCvI8hEsGI9u3asVUJRd8O
+ Ig5JEiQkDuY29s7u3oFhCEoZOTCl6/XNHXB4o3cJJcQl6fKMYFrC66kzI6tV5lgQhqSb
+ eYrkSQaBh7Nzjxl9kZWs+soa9Ur4WyK73kSTUuI20Nd7u7urs6O9ra2ttbWluamxob6u
+ prqyrLQ4//KFrHNnkgihQB/Po84OiEQHKJ8Tfu5bWhEZlMGSduzef8jKzumolz/5u3Qy
+ pcrahtbO2/3DQOn+zNz80+dwTQggMswj0RPmhG+pOhvKDbIeDM52hZNDu+zlcwLo4QNE
+ AQSBycmp6fsPCSUyJbIkvJ3y90uZxZc9prwTfjNEvHaItCPoqY4M9d2+1dnW2tzUAGDq
+ 6m7U1tRcr6osBz6FVy5dyMpIT0mIg5djhBxtrcyBEBmR4ue+SbZg8HcqSFu279pnZmmL
+ zME3KFyYUtG1qrrGts4eoDQxJaZTwqSkY9oaVKCi/ORK1VAwMsXylAr46cm742MIAnfu
+ jIyMT0yhCoOJEkiiYWWY2i+DZNGrDW+ESyJlAitNoR2ZHB3q57yg7kZNdVVlRXl52bXS
+ 0pKrxYUFeZcu5gCg1MTTMRFhwf6wIRdHO2sLs/17drIRccr9Lf2cxIlB+nHdenQqdu09
+ aIGg5O4dEBoJUzp/MR8ODyh19fQPjYxPTj+AMT15RjAh0Iu0mbIILkNBTwIWGkxU0oPM
+ UYo87jWiEHIpKuDHRhCeKQr09vYPMvhchXHDSuPtDFnIotn/rAeMIOJNFUgMDO3IxMhA
+ T2cr5QXl10qKiwoK8q/k5V2+lJt7IScr81x6anLCqZjI8NBAP+9jR50d7WyEm5NGhHzu
+ L4BIuLsfcKrvxi3bUCiZW9s5IQkPhimlnIXDKwFKTW2dt/uGRsbu4ls/K2BCbOK8mQwK
+ iQQqUQwChhgEoinpYcLnHdJsShOIpRRxAGGgs7O9va29o7O7t3947C4I3CfUsBLeTnV3
+ y1bHy+JkwEcklYoVoe09BXkP2kF1SK2L8vNyL+ZkZ53PzMg4dzY9/UxqclL86djoiLDQ
+ IH8fLw83FaEd27Zs3CDq1m9UFRn8nMaSANK6jZu3UVCCv3PxgClFxCYgd7jEKDW2Yj4H
+ hmFM9+5TpEdC9vzly1cEFFeiHz6AmyRYMARLSWwY6iDk2URSUrILHvkOCviujtbmxoab
+ 9fU3Gxpb2m/1Ir9HqfxECvsowqlTvCwQH31S/XO6gbejuowdHUE0BnkPtYOQWiPsnE1P
+ TUlOSkxIiI8/fSouNjoS+IQE+vl4HTvqcsTe1tqCUgUgtAnMwk+kRf1LjIhhQp0ExoFy
+ cOnvyJR8A8Pg8M5k5FwGStU3Gprbu3r6Bu+MjiPUw+k9egy3RxUOIwWs3r5ThmApmaN8
+ DgOicpE4sNHhgd7ujtYmZLcUBioqq67jXZE5gmXn/vy7X8Q5ZgaQMMkfheKjT2gwouCo
+ gejB5NiQbHtfQvGTmhR/Ki4mOioyIiLiZHjYidCQIODj7elx1MWJnJy5mYIQ5Qrg5/4q
+ IxK2JEGioIRK6RCYIRd3L7/gsOhTSWlkS1fLqmrr4fLgnAZhTXfJnGBPj+bnnzwFUs9f
+ ACvt4BoVHDLwmXkIkmVi9A6xlO2oD69XlpciPhcWFhWXllfdaGjt6gWfQSC9UfIGI5C+
+ BCUNPHSTEBKlK2IRS+qhwGq6UXH1ygWUp/Fx0RHhsJugwMDAAH9/P18fby/g4+YMgA5b
+ Iwztkzb0t0AIOInMAUFp89YdSB0QlY64enj7h4QzStm5+cWlFdfrGpoBE6xpaGSUcELq
+ /HBmDiaFanT+yZMnT2ngtyQpAQ/SbKRxBFAvUimwlFUyDlzIuXAxN6/gKhVhaIWMTT6c
+ e4r2PJI7ysA1/u6LLMkII3obwT+pC1MGb7c3ou2dl3MuJT42Iiwk0B92c9zL09PzmIe7
+ +1E3F+cjjvZ2NlaWhw4e2Lt713bycusRiIhY+OvcnAxJSuYg/N3OPYhKNvZObse8Axil
+ M+eyLuYVlpRX1TBMt27DnAgnADUFpB6AlJyZmVXGDNGUIClRBU2MgwQbZICIYqkQ9SHS
+ J4yzGVnwo6VVdc0dPYNjU+j8EkhIHLQkuDLrH/Vs8gnldepviZDkf5RVD+0NNeVFl6hj
+ F0m5tdcxAOPq4uzs7OR0xNHB3s7WxtrSggDas2vH9q0KQhyIvnFNpAKjvaEEJTIlZOEH
+ DlkddnA+6kkoRcUlpqZn5lzKL4J3Ipha2zu7gdPA0PAdQmriLhWkU/fEECwlc2FgW/p7
+ qVpsbmQTKsy7SOVHUiJidHxCUirS+ytXK2qbNCCR0GUpkJazJxUY5QYBJAgokppqVj1I
+ kVxCNJoN3p7urmw3dra2hw/b2FhbWVqYA5/9AGgnTGgzcjnEIZEq/B0QIrTI31F+h9Rh
+ 287d+w6aW9k6Ekr+wWGRsfEITFkXLsPnlSPW1wOnts4uANXXPzA4RFhhjNKgG3dAUoIL
+ A0d5q7O9lUnKcpjQpZzzFKjjkD+dPBkRGR2XkHqOSCc0FaUlvXhNQhfZqjAOSzT/S1iT
+ AovmNwMELyelpq+eoyyanrgDCVbD9WtCJHci0NsTubW9LfwakDE/hGEGePYBH7agzRvJ
+ yYlM4a9NFbR2JEDi/A6mhARvz34zC2ugBI/nF3QiIvpUQko6w1R09RrMCTg1AaiOzq5b
+ 3bd7UJH29fXT6BMspeAoW5oa6m8QSVlcQCaUhkAddTKMw3RgcCgMFKQTNRXR+R0cRUxC
+ nUT+TkVpMUwLcdJgwzcNJsQsO0l85klSPwypaX11acFFiOQioUxw5+qH7Wb/vn17Mfbs
+ 3rVr5w4YEFwcAGIT+nvEISOYyN/BlH4C68AOj1FycHbzOO4bGBIWGXMaPg9RBMG+qORa
+ eWV1zY06VDnNgKqtvb2jo5NGRwfqU1BhKILq62qvUzVfBICykesmnoqOOBEc4Od9HFHa
+ y9svMORkTMKZ87mF6PwySELYRwwroyTowIUofPw+4wMfxyZEfRBqRDCHOipWPZTmXziX
+ TOIRT7cjoLIpdSNgdu7csWP79u3btm1lfDawBXGy/bcyIQUqRulHcnigHRCWBEpOru6e
+ mNLQ8MiYUwnJZ85mZl3IzcsvLAZQFVXVNTW1dXWoSW820LiJ8rSurrbmenVVRVnpVeCT
+ SyQlfFxsJFhKCgMI0y4urm4eXqjBuPNbWIb2fDcJ+2YeP4UpMUrcnf1cmAQ8Gg6X+yCw
+ IUhNp8bh59qbaNUDlnfFnQz28XChpipSt53bt28FMBibN2+C+QCedeTiBEB/S4QIKWlK
+ IiwhD99vZm5lYweX5+Hl4x8UGh4RHReflJpGWdnFS3lXCoqKr5aWlpWXoygVo4JYylKq
+ gQquXM4lEiwtJfF0bNRJUCwEkPMRJFB2dvaOTsjuwQyi84v2/HUC6Q5RDtydN/SqDOz6
+ RwxIhYdCkCL6IaUpyeRmSGo61NsFST1ybkhNY8MDIR4hHSNXP5sJGIz16xkdgufHH6hc
+ /YsLVsVmPvJb4/CQPOzYtWffQWTitg5OLkcBExxU2MmomLj4xORUpM/ns3Iu5F66nHcl
+ v6CgAIVpYSF+g6UESUkcZUb6mRQkCSAp4eN8j4MDA8VCcRoDb+kMZjAk4lRKxsWC0up6
+ CPugGRNEOPeqZEvx4+S6dG5SNKfgg0yOOVyw7PchwgLL3dFcV32tMBcLU7C8i3SMEMnt
+ YY4HyPz88080AA7D87fHR8BmhBIS8T3IxC3ImJxcj3rA6QUEAafI6NhT8YlJKalpgCoj
+ 83xWVlY2DfwmlvJseho4yoTTcTFRKBaD/H2PH3N3dXIAxUL1B8bBQ5SRuHr6ol2VDA0F
+ F0q3YUqThl7Vu4XkumDW1Z9EsROPKyh2weEKgIjDpW4rELoNlrumoiT/opCaHj/qZCdE
+ cujYsVv7AYZDg4yHzOfvkmd/xIaUh+HwRPJAcWnr9p1weTAm68OAycXNneJ9QGBIaNjJ
+ iKjo2LhT8fEJiUlJyckpNJKTk8BSxoMKI44y/ERIEJIEFIuuSKQOWyFOo/5AoN4N4M0s
+ uT0ffBIaipw8FErQjPUOQkMBW3o8T02Q18zZMrkOva9CrTMsAhoSAjOPSxS7hsOdU2Ry
+ QKixrupa0eXss8lQyWHt0BFb7HshdIwyt1aw+aegsxAlyh42k8vbvRdffUtrGzsHR2dX
+ N/djXt4+ACoISIWFR0RERkUbBrGUkqP09wUJ5u4GktKeOLCD+5FIIb/dtm07AS/a86Sh
+ QA5+uagMmrGObnRBRK8KHVo06DXkukqtM7+uUOzEsDM8kEqoHC6ZEFj2bkKourz4ysXM
+ tMTYk6SSQ7ZwcK8ikvt7Rx0Fi4//VmzpZ2Tim2BMiEwEk4WlzWHCycXtqPsxz+PePr5+
+ /gGBgUHBwSFyBIOlDFA4SiRxSBKIpASNvE9QLEihNm3aQvTt/kPWdkJDQTl4QUlFTUNL
+ Zzfode5VgV1ncp24dbRBBLcOSOQAz84UO+tNSdFIHC6EpsThopMIBqqjpQEIXYVe+2zK
+ 6WiEIg8XSE2xAo90jN9W3vPxeTbtGRmXUC+xMQmY9h8wM7e0Ak72jkecYVFH3QGVp5fX
+ cW9lHPcCS3lMcJROjg4gwUBSAqC9oFiIA0MStW7depjn1h2795GGwv14wImo0yngHNCd
+ v0Eoca8KLcUHRK6jC0LkuuDWX2FAmUe/WAkMHTDJTSE1hZQFLKGWw2WZ3NWCS1j0kBAb
+ QRossTDlXwQRACaUODDBmMjnEUy79+47cNAM9mRtc9gWSDkecXJ2dnF1dVOGK7GUKkdp
+ ZUnFvIEDQ4FIidTPwJ3aVdBQ2B3h9I6781eKy4ASelW3+9BSHJtgXQqAIqSIW38KtJQh
+ hcBSBkwkLnHsksNtb2kkmVwxIXSGKFToR1C4ckJHEqx/hxUJG1RQ+hGzCpjg9LYhkuze
+ u3c//N4hc0tLK2sbwgoFjzJw21blKM0OcDFPHAtqEVnBI5P6kdkM7imiW+V6zDcI5Sx1
+ 5/OBEnpVrR23evoGhu6MjBG5Ps3kOrj1Oe2YnSWKXcqAScmicrgtjfW11SyTywZCkJoG
+ E/sDDZbZPmXtEMjsf0gC9znOcCFMMKdtsCcCah9yaDPwkeYWFlTyyGHBLKXkKHfDw8HF
+ MUkpODBOckE5sYZCCl0QlKAZQ3f+nKFX1drR1Q3OlgjbsXEm10GtT2vGPdKA3Z0YJ7kp
+ wQPFnORwa6vRBqF2+DkioCA1hV77iJ01Fa6KSu5fBRHBqIWJzWnzFlBF23fs5CQaWO3f
+ TzWPHPvBHxs4SuBDMUiSlAQQShDhQqGh0AhduDufmHouKxe9qjI0QW42tbQBJybXhwS3
+ Pjo2BrxojI0xx04U+wDLgEkH3NJs4HBzs1kmFxUGhCA1tYfCBxosyEcUldznfD//Wa+R
+ 80pOCrEEbm/jJgC1lbLoHTt2AizNECTlNqLCJAkmODABEH9uoMSNEMocqKUouvNBYVFo
+ WJw9n3PpSlFJWWV1bd3NRibXb3V3g1sX1PoAD+bYQbf3QAYMnRHgaWwATVhVYeBwk4RM
+ DgjBzVmx1JQ0WKKv+i9ydNovEsOEqWWcGChCatNmYAW0DENylBs1HOVikpLeTHSrqKUI
+ YR91549DQ4FeVTIav4CpEM0qSa43Nbe0Qu1F1HqXGMyxE8MuZcCAB0oJ4tgVDjcuimRy
+ x4GQo621+cF9f7GQUTuTX/W2cFP//Z7CyY/IzoDUuvXrQUoCEMNgkpIYZGOOcsFXl0GS
+ aiQSulB33kP0quISUtLOnc/JvQycqAsCcr32Rh3kXg0NjRhNTfiB2zdvsg5YyIBLigug
+ mLtg4HBPUDfc3c3JASIsSE13bTcIGf+z4FK+6pz9JW9uAIqQIqwAFsMFXAAMxiKOcqlJ
+ IX8nm1Ug2Lk7D5TQsQgJo5YiSFtBrueDXC8pvQZuvbIKo5oHblRCCAwdcElxcWF+3uXc
+ C9lQzKVpOVyWyYGAMtuPXGHrXy5k/OZgSaAwzRhIpgVcBBndIZaSabBlOUolKFGltBP8
+ urnVYXvZqyKY4k4TTiDXs3Mu5gpuvbCoqFiOoiJw7Pl5AIfUpqDY00goYeBwSa7AMjkQ
+ UCxkZAr1LxUyfnOQ+B8CKRGlBCCan/zMpy5KgKT0fffsB0qiV0UtxeATaFap5Po54taz
+ czAu8MANcOyg2CEyEjJg6BkjqBGvcrhMETIBJURYfwMh46cm5O/4PAH8vez7UheEe1V2
+ DkeIXff29YfoQZLr0BElJoFZT8U4g0G/oQMmiv10HNABxR4WEgzBnMrh2gqlqSqT0xFa
+ 8RdAmhL3fRkl0atyOOLs5o5mFZHrwSDXwyEkArceExMbG8cjNjYGTDsodpIBh4DHhZ7x
+ OGjCJThcqs4Uic+Kr3NN/yGbEgldiMBDr2o39arQUrRFN91ZIdf9ABW4dTDroaEneISG
+ 4o5CsZPY1IPgkRyuhcLhqjI57n8vlbis6bn//A8PU2LiFigpvSrAZE7NKpVc9zjm6XWc
+ uHUfH18aPj4+uEM6YMiAj7pBBkzw2B0Gxw4O16Bj1MrkPv+K9FcungEFJeooil4VsetE
+ rlMXBO0qmJTk1o8eRTfEHT8BDAmMQLE7Ejq2NoCH7MeYwxUUIb4Eug0tnvYvfESiBNWY
+ YNeJC9wjyHXQtSq37uAAvMRwcLAnfZGGYmcd8GIOlwDSEfpCPJZ+uYxLahMEpC1wMpDr
+ 5kytW1lZWfPADdDsoNhZBcwyYMCDHshSHO7S/1F/9MtngFCiwMSsLdgl4mwN5Lrk1g8q
+ g0l2ptj3KDJgcLiSY1/E4X751eh/8ZEZMMCEPM9ArkPpK7n13ZpBTDsodpIBEzqsZyTB
+ HOlM//46xo/MwD/iYQETm5PognAbRHLrUBShGUKo0BA6YAaHO1QMj47PN4GZYTKQ68TU
+ ErkuiXVSFZE4mwfJgOl5weISTwh/uSxJ+E0+wdr4J5IHJL6WiFrBrRMa2sEMO8uAFXR0
+ eL7110MlbAW3TmAZjYUMu55if2uElP/HFDq5sKXHZzHsynvpv7/+DDAg8sfX/2/6f9Bn
+ QJ8BfQb0GdBnQJ8BfQb0GdBnQJ8BfQb0GdBnQJ8BfQb0GdBnQJ+BNTAD/x+w9nU8CmVu
+ ZHN0cmVhbQplbmRvYmoKNjAgMCBvYmoKMjMxNDAKZW5kb2JqCjY5IDAgb2JqCjw8IC9M
+ ZW5ndGggNzAgMCBSIC9UeXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lkdGgg
+ NjAgL0hlaWdodCA2MCAvQ29sb3JTcGFjZQovRGV2aWNlR3JheSAvSW50ZXJwb2xhdGUg
+ dHJ1ZSAvQml0c1BlckNvbXBvbmVudCA4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0
+ cmVhbQp4Ae2W2VbiWhCGFZEpE4FAIJAQCFMQRAQEI2MziaRFoHFC+/0fo6t2RHsdIva5
+ POt0XUhg+eWv2sNfdXDwN/7DK3BI4l8WgIzjt4Cvf/aGN+7o6MhJAh7wNX+AE0HAjiFc
+ GPjgdCL+FY0ogi632wPh9eJfN7zAiep76XfS4/VRFEVDwIeP4Ki9B7ZQl8fjo2iG5Tg/
+ BMeyDEV5PW7Q3gNbqNvjpWjWzweCAokAz3MsDbQLEnd8tuCHWKrb40NSCIXFSBQiIoaF
+ IM8xFgzKtrsFsoiCKB8MiVJMlhVFkeW4FBWFgJ+Fsl3HWLMNjBkjynC8IEpxRU1pWjqt
+ aUlVjkXDQZ6lLdiePTp2QcKARmJKUsvmdb1Q0PVcRlNlSRR4lvK6cb1sdSFjLyQsROKq
+ ltWLp+WzSuWsXDrJZ1KKBZOsbYShWpeHAlSMq+l8sVypXTQg6tXKaSGrARzkIGsQ3mVh
+ kVGWC4qxRFovVerNq3an2223jEbtrJhLyVIIsva47FnnMcqGJEXLl84bV93+YDQejwa9
+ tlE/O8km46LgZ3xuWOqdgg9JyiAbV7PFSqPVG06mM9OcTceDrlEr6+mEFEZhYHeSPnRA
+ ygwvRGVNL9eM3mhqzu8Wi7vb2fWg0zwvonCQs08ayvX4WD4sqZmTSqMznH5frNYQy7k5
+ +daql3VNjgp+2mtXMLIUGxDjyWypavQm5t2Ph8enp8f75fxm1GlUTjIJWC0seDdniw2K
+ cipfrrcG0/nq/mnzstk8rpfmuHcJSatY8OcsF4xguRft4c18/bh5/fn68vywvL3uG9VS
+ Vo3tZ4UtO7sj7M/XzcNqPv1m1JAVAyz1ac7cO3vzxoLuCnUJu1/393ofnjcvL6TeSc/4
+ ul6yzrlSzehPzMX64en5+fF+NZ+Nus0v19naXzhWze5werv4sb6/X6/uzOtB6wL2V/l0
+ f/Fc+fBcKbDQ9av++Ob7fLFcLubmdNi9rJZye84VnmdyjeBwwHlu90fXcJxNczoZ9Ix6
+ ubD/PH/cI/20CpcBr9F4POx3jIsKHGc5sucewf310X5BjKlp/fT8wmh1er1et33VrFeK
+ ebj8YdhdMA4703E4wK7QN8ByMnrxrFpvNC+bjUbtvFzMaQnwDbi+9r5xAAXDTaK5QCgK
+ ppMrlNCuwLBOi3pWS8SI2UF3sLm+B8CiT4LFBkKReCKVyeqFEwg9n9WSlk/SXpTdvUbI
+ WtYOMPiznEhq6Uwmk9ZSqhInLrnHn1EYXZaYezgixWUlAaHIMUkMba3dXpYIHx1bTcUf
+ ELAdSRBRUQwJ0M2gpYCz21aL3ke6CjYzioFuhm0wFBKEYID3f/RBu2qJbyLshAWDxs2w
+ LOfneZ40YBpFSQv9FLWUYWKAeQHaPk0zDION3weTA4wNZObY8eaPH0D5bd4g04YX4n3g
+ gN3ZceYPEp6sOceJcw4Zc6xJh0wqX6Fb2vE+XsF8hMl+KbrN4B9jHXL7s92C20/4/7fY
+ /vL383+2Ar8A99SnXQplbmRzdHJlYW0KZW5kb2JqCjcwIDAgb2JqCjExMzAKZW5kb2Jq
+ CjU3IDAgb2JqCjw8IC9MZW5ndGggNTggMCBSIC9UeXBlIC9YT2JqZWN0IC9TdWJ0eXBl
+ IC9JbWFnZSAvV2lkdGggNTggL0hlaWdodCA2OCAvQ29sb3JTcGFjZQovRGV2aWNlR3Jh
+ eSAvSW50ZXJwb2xhdGUgdHJ1ZSAvQml0c1BlckNvbXBvbmVudCA4IC9GaWx0ZXIgL0Zs
+ YXRlRGVjb2RlID4+CnN0cmVhbQp4Ae2W7VcpbRTGK+VtGIZhmPEyGm8jmohETZGOKEWi
+ hCOlxMmp5///9Oz71jrnLEad8+151jr7Q1nl57rube69r6Wlv/X/6cDyr/W7toFZmSn4
+ 0+f0FFOpVldX16Dgl0qFPuczFnMqxKjVag2UWo1wDH/IIpuIU2u0Wq0OF7zQAL0Kwh+g
+ ACIOMD1BEAaD0WgwEIReh1iMLjrsFFRrdXrCQJImMyoTSRoR+yGKQCSoJ4ykmbJYaVRW
+ C2UGFmQ/UF1GVjVa0DNbaBvDOJxOp4Ox26yUiST0CIWjKvkFSQwaTRRtZ1jO5UblYp0M
+ bTGTBj0YVimTP0ALzbAuD+8ToNZ9vJtz2K0UCYbVyqLgdU2t1RtNFpuD8/iEYCgsimI4
+ 6Bd4t3OKapRFl8GrVm8A0OnihaAYjUlQm9FIyM+7WbvVbCSQqMJBsSRBUrTDzQfEqBRP
+ JlM7qWRiKyYGfKBqIQ06JDrXImQWvJpph4sPRKREaje7L8vyXia9LUWCgNJwVK2SXTCr
+ 1hImC8MhMLm7f5gvHB8XjnJyJilFAjzHWE3KdpdX1jR6I0U7PYIoJTMHR8VS+ezstFQs
+ HGS2N0XBA6JGnUbhoMgsQVoYly8YTWQOCqXKRe3ysnZRKRXkdDwa5Fk4qV6zNtcibNZg
+ xpJbablQPr9sXN/cXDcuz0tHe0kpLLix3TXVbHOB1OiMlJ3lg9FkNl+6qN+0O91u5/a6
+ Xike7sY3/GDXjFs001x8TDDrXheltFys1FudXv/+vt/rXNfKIBoDuzbKgJo7T0JnrQ6P
+ fyOeyZdr153+4Gk4fHzotRvnX+QdKezjGGiRegFJs14wu1eoXLXvBsPxeDwaPny9qZVy
+ u1siHNRC6uApmtWE1kKD4JibKbl40ezeD8eTyeRl9Nhv18v5bHxDcDuguQtIysbyIWnn
+ oFi96Q1Gk9e3t8m34X2ncVbIJqJ+t8MKX4uyJmXjfGEpfViqte4ex5O3t7fXyfNDt1kp
+ 7G1H/Z6PSDsmc4h8AvIfIEeDH6Tzc82TWqs31fz+ApqN39D8ec6vg+eX76+vk/Gw37k6
+ PcomUIdAU7lDBO5tLCl/OW92+k+jb5OX8fOg17os5zPxCP5WlMgVeOBNtNMbiG5nC6f1
+ Vu/h6Xk0Gj72u9fV4mF6S1x34SdhvreIJK2MWxDju7mTarPdux88Dgb9r6165VhObYZ4
+ zr7gGVrV6EkKLllYSsmF01rzttu7u+t1W41qKQ9fZ9DL2szKz+2qGu6KjQW7iUyuWKk1
+ W7ft9u1No3p6LINZaBANQ2H+li3hm22C8QUjIbWXL55V61fN5lW9elbMZZOxkM/FWNEg
+ mrvZU5JEFzSwEU/v54vlyvlF9bxSLub3d7YiATBLKc6EJXRBdfDMO9zroWg8vZcrfDkp
+ lU6Khdw+DJPQOpg1G9BVmZ0JQMKghnFrYz1COBZPZfYPcvl87lDO7iRiYcGLxhCYVSRV
+ SNRkZVivEI5K26l0JpvN7O4kt6JhAYYmbTbqFUYC3FZYSDBwYVQznBctBymeSGwn4lJs
+ IyTwLgce1Oq1ldmLDSQa8hodWg8M6/H5g2IkCrUhhgPrXs5hg+UAkgpmEYlO+o66vT4h
+ EIQKoFXGMjaLCS0kpeXwLgpr0EBSVrsDFqiXR+V1c2j1Agj7SHl/TkUBJdCytzNOluNc
+ HAsrG617lBQWSb77hWQCAYOy0LTNzjCQEmgrRAwDBhdIAokjBg41KJxQFlQUjiZ67TTW
+ zD0GcEpUKLrhIIUCkZGcltGAo9R7Cpu+cf4nQiHZoOwG8LQgReH4hmLjIsl31ffgh5If
+ LpT6cIr6CPzJorT5o34jamL/OKiCayiUbafp9qOc+eupZ1I1Cua//vvz14j4Q+TzD/37
+ jv9oB/4FrsTo5QplbmRzdHJlYW0KZW5kb2JqCjU4IDAgb2JqCjE0MTgKZW5kb2JqCjcx
+ IDAgb2JqCjw8IC9MZW5ndGggNzIgMCBSIC9UeXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9J
+ bWFnZSAvV2lkdGggNTggL0hlaWdodCA2OCAvQ29sb3JTcGFjZQovRGV2aWNlR3JheSAv
+ SW50ZXJwb2xhdGUgdHJ1ZSAvQml0c1BlckNvbXBvbmVudCA4IC9GaWx0ZXIgL0ZsYXRl
+ RGVjb2RlID4+CnN0cmVhbQp4Ae2WWVfqWBCFVWYS5kAYZAxEApExiqK5FwRREEFQEEER
+ RVGUK/3/n7rOAVd3S1D7rXutWy8Y9WNX1anU2Ssrv+P/0YHVv8e3UwZo7Z8Bv/kGPcNk
+ MrlcroCAD5kMfc9XMOaAUiiUSqUKQqnEOII/ZREoQ5hKrVZrcMAPKqDlwH6CYhBzGi1B
+ kKROR5IEodWo1cBi2WXlIkWFQqXWEIRObzAYURj0OpLQIl0sK41iEBLVAmc0WSgcFrPJ
+ oCcJDcgCuiThVVSjSk2QwFFWmrY7HHY7baMswIIsoFCrlChIzkGTxUo7XetuFOtOB221
+ mPTkJyhIKpRqLak3UbRj3ePzMxABv8/tctDUHIV8JURXQXIOOt0+JrQR5jguzIYYn9uJ
+ UY0a5btIziQJpOj0BFguysfi8XiMj4bZgNeFUEKjgrNZFEWkWqszWgBk2GgsmRa2treE
+ dDIW3WAQatQRSFSKlCvVhN5sA3CDTwiZ7L4oivvZjJDc5Bivk7YYSCy6kO7qmkKl0Rkp
+ u9vP8ontrJgrFIqFQu5HNpPaDDMepxXyVUuli5KFKm1ObygS39rLFUrlykmlfFTMi5kU
+ v+F30xSIKiXSxaTBQrsD4c30bu6wXK2fNRr105PSgZhJRkNeENVpVYrFQtdkSg1ppBze
+ YCSZEYvlerPVvrxsnZ9Vj/J7QiwcWKcts3Q/FromV2p0kKyP3Uxn8+Xa+WW3d33d67Qa
+ 1dLPnWQ06HFQRhIVukiqtHozvR4Ix7fFYrXZ6fUHd3eDfq99VinsCZusD6WLCpUgCT2U
+ yUSSO7mjers3GD6ORg/3/W6rVvqRiXOQrkmvVUmR0FrK4Qnx6exBpXl1OxyNx+Pn0X2/
+ 0yjnd5MRxk2bMflxFtbgUAzQIJYX9ovVVu9uNJ5MJq/jx0H3/KSQTfNBjx1aJNHcGYka
+ tCUenrb7w+fXX9Ppr5fR/XWrWtwX+JDXQRlgFhaOBZFGyunbiG2Lpdpl/2E8mU6nb5Pn
+ 4U2rdihCi75F1juY/GM6RWT7a9KANbew5nA8eQPN1yfQPAVN/lNNRLKbAtTZuhk+vUze
+ 3ibj0V3vogoHyodgFJbWOe/tXuHkojd4fH6ZvL48DW+vmpWDbCoadC/rrRzO02L3BKMp
+ GL5mp3//+PT8PHoYXLfrx7mdJLf8POV4+twMl8j8LNVa3f7d8GE4HNx0mtVDcTse9rts
+ S6dPCxPv8m/EhP1CpdHq3vRvb/u9zkW9nIdBwHOLX9DFuUXvitXpC/Gp3Vyp2mh1rrrd
+ Tvu8XimKmQQka8cNknhXZEo1CS3yMByshIPjar150bo4b9Qqh7ldJOmCsUXr5OPYrsy2
+ CbxmPpaHV7tQqlRr9drpyXExlxXiHANnAmVKjO3KGowfFGqF1cfF0rtivlg6Oj4uFQ9+
+ ZLcS0XdJqT2Edx8Ji8jlC3FxIbMn5nL5XE7c2xEA9EOVsIakVsIKXA5o35pgbQIaSwqZ
+ nWw2uwPrNh5hA24HXpogubASgJTBwiUNZqvD7QtyfCyRTKVTyUSM50J+t9NmNsB1Jrnj
+ oUVIFK4HG6AMy0V4iGgkzKIryWZBl4NSalGvoHRBlNAj1OXxM0EWRZDxeVwOAOFEVNKS
+ KF0QxShcvOserw+FF+5emjIDCCeC7vuPE4Sekb+AqxdUTZSNdjhdEE50ZVMmgw47hSUg
+ FgWfgAyGyUxZbTSEzQo2wTi3GMgTSUkCiSwGSpjUG4wmkxmFCeyFDtka7IikQdQjjM4N
+ kX4W2A7NrdQy8B1F5g2ZMBzauQX7hn1DssAi54cDm0bELanxvfC/zCbyqLOY+dTV5anO
+ 4LkvlkFgbztzt8ts27vg/BM5cUjuPdDjh//44hER/xL54ht///m/3YE/AaAs6M0KZW5k
+ c3RyZWFtCmVuZG9iago3MiAwIG9iagoxNDA3CmVuZG9iago1NSAwIG9iago8PCAvVHlw
+ ZSAvRXh0R1N0YXRlIC9jYSAxID4+CmVuZG9iago1NiAwIG9iago8PCAvVHlwZSAvRXh0
+ R1N0YXRlIC9jYSAwLjM1ID4+CmVuZG9iago3NCAwIG9iago8PCAvTGVuZ3RoIDc1IDAg
+ UiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGdmsuOJTdyhvf5FOldC3Cn
+ Msm8bi3ZsLXyTDcwi4EXg5oSLKF62tOS/fz+4kqeOqdLttBoVDIOGYz4GYwIBvn38Q/j
+ 38eZf9uxj0et45fn8U/j38Zvv/tlGZ9+GRf998vT+H6etlH+dx1/HL/99+cvT8//9et/
+ /+Vl+PITrK5dua1lLOs6lnpM+3HW8enT+O2/fVrq+P1nnfGSKedxh/28jmvdYex9VvoM
+ IhXCSJ91GcsyT+uyH+O67lMtyxF9t+BXbdq60bdO83oW+l5T2fc6ON89+ra5y77dz30n
+ X0G2Wubp2IKViPiqW9lrdgvpshvQKsTnuJynditTCW4PMBE4lmu7xlKOW2B01gbMsgAO
+ GAsmIdwDTBYw2esMv3UGky3xa5j4stVxqfRdd1m77YbvEUp32lyiTSmXa/xIlbVOy846
+ l3JOC6YQYiY4TZtaBOpSzwDwgSq1bNNSYYcm11qvYOeaLOMPGOzP47d/fH75y68//c/z
+ d59fPn/56dPzr19+ehqxULXr7z7oeszjh++ws0Ub7+UPG0AY1qVMtTLLul/TKfYGbVun
+ /USRpL2MH1iOmQ7zvpX7j4FdUwTIo9gmgEmZW/OF5jpdx7w3WgXLsp+swHnyszRYDoXN
+ m4vxksH8uu3TMR9Hx2nzyXSqaLgg3hxeGHhNc7kQLrqUDeiDnTZ2n4rB8ls0+8bQN8bo
+ aBKPMouMc23alIFHD87wNP4nfW/Q+vFuccQwpNO6z+YHDNJsNkiHpAlO2PNUt6UoaLKA
+ 5kSseSzWNEjXY5/KVWpCOqynTyaQZsMgzWYHadJE/WRHY1hjKkMqm9bRxbhpeMeQ2CAN
+ bUDfVzGVvQEnIM1fP6nFsgWKuPZ5xEA780drwDXzkV3wTx9HEBPH9Z6/7yvKjx/x4/+y
+ TDOb5uOP45/Hd999I5GhjO8+f8MO4O/fXv19/mawDk/R89fo+uWb8T/Gjz+M//xR3drt
+ PpSlxhcBoAQdvnHnOBIwlLbtvQhSX9+DouJSMJjLuRzx/TLgjWz32Y8LYWo994kJdvy0
+ NBZmYrx8Y3Ayq35v27TJ3gkGw7pJz0V465fPqd+MWWKVrNuCVSQLaShvxixYiH7z5dT2
+ pb+7TMKTHilsTqBapr66p7IFho83lPQoq7heUEYH+2aOwEcJg6heiL+mujRCV/lmTwc+
+ 5TgcxGSgSCpv+UIunVOpHT7FuqFaY6EN4W362zyivX4N+RW/J+b0SGEDH9Os6SsbJFvD
+ 27sD+8MWyYnuNgapQV1nyThyewyxPT48h9XHvvir74/84WYXhEWzF6aLkLPN8zBP81y3
+ kwkkoFRC07URhsIr4RHLPl0z6ULS8BOElmUn4UpaKYsmUeygY7oufgqK6dU18ZbzfB4d
+ k3T+OZVTWMsmUvR6EV/+QNDH9hc9cWcZKFOlpHUqJS0VwGeGxK4kjkzikeusUch1dlxK
+ +OI2VVA6laIXIbNTKQUwkxEXqc5UUqZ9Jidbd/bJMVd2lGh3bWIdoLrQY5BMaD9qoyDm
+ Ps1VEuEYJ6LXqZ6HOALcx3Lgm5PCZrvOtcIpxh3btFYmlnHBnWU+j7MTIAkhZY4aSLom
+ SdhXZ80oJ+Tsd7o9PfYn8HL+ZN/TWi7JnhIFSQfOg7w75ework2ME9sKnSUPus6COo3C
+ xljIZROFspEt7yfZaMcdy1hKQShfBjEVCEgUUnajXOmCFzbWSYjZfdQQMjLX21mgbtqT
+ ZfQIVDmj2Df5Rr00Ag1GqLIA4dStYRFIvz0C6XeEj2DgcQfeHotAQOZ0b1jwFZrtGaGQ
+ wWcE0oZHoPbNl8eiRoOnDHSvbd8eLtsEqqXOrV+agpxI5dp/xQMga0QgwSciUKpnBFE9
+ nPqgDY9A+u0RyL49AjUGKrXy1i/DRwOOZMOBj0UgUS0jkDUsArXvR19Pg1IDc2ESEahN
+ oHFW8DGVHB9vtQg0PMjP6kIGlhFIosJcxo8SS1uSxulo5uSI238Vi9798fnpmfMQ0ebj
+ z29kXKccYyXXvy7buGy3TY7TTqvAJQbf5Y16bNLMvIpvlb3NeMkmwEMOsgChhLuR+IBx
+ m3dPNh9rxFn4vGa8edPIks93//r88vL5H8c/dRoRdy1fFQcgrD1ck4E+QIuqQsHrUlZI
+ sJz15y8vf/2Hb4ZAKqLyb+WZYiX1WKkUaCrVmoC2RFbkHRazSLLZg/MjiaVAVvdNBrOm
+ 1lyVF4Otibs4jmslc0371v5EBxmMb7LBeo72puRXuEXJV50i1QDpHcysaVNJlqW/WvPr
+ jexoEsssjBtq6pOTGh643AaO5V0d4VFqKlbhozZiUQepNXtIjRIYUlwBpQBtP7TWEk0K
+ MPBKSK86FcU/Ib2kP8ul4llD9lhrymKmdt7bQEtm1rSpEilrOqTaIH1VsF91VIlFRPuV
+ I5npk5O6uiaTNjzVVyHt1+ZLHp31llUKS5U4gq5vpbTD3Ynv96a0sXnIZ19XTCSvVceT
+ m4fqSzMXCZSnHSm8Q1U3GsZGLFDFY/N4MzaPN93eO162X3wqbUjGYYLYb4QGzjD95imY
+ c9s8/KzN2Dx9k2jQ/XbTkEiqv8Xm8WZsnjYp3Sg73oBjIaOD59HmUXdsmoQ5qJ4DBwmz
+ /wapUQJDN7Zo6mZ4Gr1phsp6COBDDXtvvGw7OKSxeVx8a/aQGkWVb8wci9gTN82vNxqk
+ ut1lFkPY9WmQmroukzU6SI3QNs/DQDxrEbffPA/jy/ubaDx0hZO3o7EktNgYKVNuzsf8
+ W2x8tU0fxcZW53zAvwXIoUsnfitAZirRAuQBsHI85Z/WP2dUIfJsHGYWCne4dBb9XFDM
+ nU+ZF6m3Ue3k+LWxalTw8UoLPCpnBQ1oZYHLvJ+EF8kw6EI2v19kGvXAf5/kO0LZrplK
+ aA7CRo+1wEYsYeMnSf0PYxwHKNzgvJBxVg4BFDjIF+hFcKVyJwVfZCLzIYs7zwUJcSGF
+ Cj6TnagjOqyLSygXHWU/hsrHxm8kIBzUZ9SprNJMCgWFM/0umuYo6szlpHwikXmnzAs6
+ 61RmToJ1tUxuIDjdIKi2+or2VQ/g/Y6L0nXdqXA09Il3YNvQJ0Pj8Eeq1tBHFMlFAn0Q
+ 4ewGRoE+zoQcglDSox+DEn0GcRUj5aJAHzdnp6tEn4PoybqK+w308btgBWqJPt7mwHI6
+ 9C9MRyV09NkznIN3GeXo41aojayU5xv6OSrRxyQrlw8d+iclknMWfAz9QLBH32nYtCTE
+ bIHHVVXbzPfOYniVuiMNJkDSfZeNfv/9hy7Hbfs4Em9Kc1S2bUFlict0UkgIyqtSadYq
+ ZuKwdjPR2sAWIxorKjMgrUWQu3E/wvIH/v98dyiQFA5rvhGnzaMbExsk0UmROYgphWLL
+ 7TivzsX9zsPjx8ZMGHgoztxScomm4SBlwwUNNfHJHub1CRo2oNNWuoerkm32pqrWORYi
+ Zvcc3pudhrfd+zLC4xyJ2xm/FtTjAEiKder5SgmSMbKLL46FWUrV30lFoiTL7rYRTK4H
+ jSS0yqn3iMNrY6pRv00qTfxDE0sJL6NwQgq2vBIk1bTbzOAYFCp+cup54lgbXZTwdrPv
+ rlq85PimaJNBoWkyalO28SuSLO7XrEvsOLtbDaUDP6osiZMRKE0bkFlqCYpXVuRgEF1y
+ /ZIQFxGxolZBSfCt+TQ0sbTC0oFvPRLKLCx1lFvwuegSwqvfXzU78ONOpPVgV2muHOB7
+ MarJ6MvdgR9ovuVCRSwMCK++F68VdEnK+wf1d1bSrqfeOqz4vdRv1d+pxHf190XqiIfU
+ b6JajCVwS7+eF0XGoLETqb8fPFdo/bToSHKiZWhrSIlavwCOgjvh30e1UnjwJjB6cZwh
+ KUPQxDE3akihaUEriUS4aD1Xgr4+z2g6UG7OG+aQJmnkhla11tsBbUg9SnXwWwWCaGie
+ Nw+pQ1KehpQ2aTc6pBQWXLPCvpBMkafJzTcuY7+u8ROsOAzJKxFQpMCOAKRpG8hne5+4
+ CZEOPkYkpqB7iKPUUi9PS4JCZVdqvTxCWIjcNk7q2FWKSY23lrHJ7nLyRggJfRRJzUK+
+ eFLnZrbg3SiSDMn8d5o9qq9rUSR6rlq/nxfJqh0DWYWT9wCBQWu7LjmGJQgMrOjPXWuj
+ aNWfoltioDcTO1WVhoFdaJAy+uS4NbnhUIJj0I8Kje0+Q3gnBS8O4vL2xMZxRSX3GWj2
+ f6muLxwu7MVKM/wyk/IiT78ly8ILDt5y5C4ll/eBUnG55FKgUcje9aFR0jAMfwdAnpD9
+ sDEeFmBbwRwXpwNDAqzOKSDnkmrc0144ilXua+StT/RbqCaYPsG8UUIEeHmvJlZQ1KaV
+ +z2ljRNnGu8eoh+8HIgmVWAasjf4JIjeUx+dRdRqY5W6rZ0YJU2gtVVKUmK9SrVkPs6h
+ UThJ2POytiJizErrVkl2AS9qwDiYE1KkE6crsxO91nBWqZPEQ2eVeCQtMCNeGvOhozRX
+ HWuZYt33uqOIx2jjXEWxFLeLAKLZToLVZHc3Dq9ulbLf22cWKaSaBcLFtoHcevelgd//
+ HETfiwzvfs9zEMoA3G5wB8W6cz9xiuOTe26etum7EKW9Ou9QXpeKhBQk9CpOSgkUEMTt
+ 71qQKLMXJOTKuJBuSTUCv0Gd7JBqBEUcrUYUfJIeNuVARzFCb42uhR5kuVqM0FseSh2W
+ 90oxQsfoqdZrEZKX11l+EWOWWkTB1R51lfOx1yI0SFA1wPnJfpRahNyfLGUhwyCX0lpE
+ oT5w6UkX/6G1iMKHykc+JqUIpOAsbgdmL0WIpCePIzlCWyliyEGcl7USIV1WXn5w/vJK
+ hPilYwdBrQN00OlZ+BZOTmlfueGzfhppRDU5FzrscqUVsHMtSdokISRgJ4UkaAsUATuH
+ +Wk+6RGwC+HapQoBRWtAOYZftAQkWSbJAvs9YF+JxPoSMmHXuCQm0WCXB1pcoQNGwL5S
+ GJi1vOOwkzRLnZExATsv91hZGUSaphUgycTJX7Euhx1v44MCdk3WT7mnDtjF0dA/YU/o
+ OtiT9mg7t8SvEFbFhkg39fGKJLT3V4dv1x/+n3dhFXjt2efJAVpeAH/iIa/RKGc7jYMb
+ gZSoz2oGbQUSG8kOxO2eY0eBgfDiEOK9NFFWGrxyJEuBeVFJSe7yClVGhgwsV/IKWdkM
+ TqPATUWAJQO1oEk50OQK7o2CmblcQWtyBQUb8l73FOrryZ2CpusTNPVFikSTKtAK2Rt+
+ Yh731Ef7UqJy9uSlUbx0TYyS1q1T0hJt2bInbyuHjuKvZts6YfHOv1un9cQHylPLXCdi
+ tEoxNBmcwpo3WYPWrVOMbEgGd4o9vnIpQ4d30u573VFw5I1G6VNfBosMwd+RgOLWk2g1
+ 2R1njct3VHbJWwfhimsxG/Rnmrah9YXY/Ya+uX3on20+uH3wAr74jHh3dnvu5VkF9WE9
+ 9xaklBuf65SqLg+TgAAPQ7hhG9O0iyaJazth0ZrifSJVs9shOZ3tvDFrQ+WOYJO6ZfJ2
+ iuCe00cvOS42KtM+MnHBJzuR/BCfkjvNXnJpmmQSGqq8xvImyYblQEmgXLxUSv2u9CqV
+ 4LXKAEclKZ3kSbuRXKb9NGjtLyqzVSKJnXHJQYgDgrdcB/gZ95ypfvDikEopgAOjEZib
+ C+MFz+OjmJtrBXIlO+VyeLt6CskkEUFElmGaaixSgxCRlTfB8uLihBdWOXsjhIgkKDEK
+ y652yHXWjUAOy+zc08awJuPjfCF7rnoDunDOTykk4V6uk9sgxyAITZkc1WEgwZJ4Kqvs
+ qHBTwELLvY5DJ4n1eYFuYkDpo3J9QXoWGHQEV6Yf5SpzFHbWgUGbPTDoZJTl/8P/AtTC
+ TaoKZW5kc3RyZWFtCmVuZG9iago3NSAwIG9iago0MzU1CmVuZG9iago3MyAwIG9iago8
+ PCAvVHlwZSAvUGFnZSAvUGFyZW50IDQgMCBSIC9SZXNvdXJjZXMgNzYgMCBSIC9Db250
+ ZW50cyA3NCAwIFIgL01lZGlhQm94ClswIDAgNTc2IDczM10gPj4KZW5kb2JqCjc2IDAg
+ b2JqCjw8IC9Qcm9jU2V0IFsgL1BERiAvVGV4dCAvSW1hZ2VCIC9JbWFnZUMgL0ltYWdl
+ SSBdIC9Db2xvclNwYWNlIDw8IC9DczIgMTcgMCBSCi9DczEgOCAwIFIgPj4gL0ZvbnQg
+ PDwgL0YxLjAgMTggMCBSID4+IC9YT2JqZWN0IDw8IC9JbTE1IDgxIDAgUiAvSW0xNCA3
+ OSAwIFIKL0ltMyAxMyAwIFIgL0ltMTcgODUgMCBSIC9JbTEzIDc3IDAgUiAvSW0xNiA4
+ MyAwIFIgPj4gPj4KZW5kb2JqCjgxIDAgb2JqCjw8IC9MZW5ndGggODIgMCBSIC9UeXBl
+ IC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lkdGggNjYgL0hlaWdodCA4MiAvSW50
+ ZXJwb2xhdGUKdHJ1ZSAvQ29sb3JTcGFjZSAyMCAwIFIgL0ludGVudCAvUGVyY2VwdHVh
+ bCAvU01hc2sgODcgMCBSIC9CaXRzUGVyQ29tcG9uZW50CjggL0ZpbHRlciAvRmxhdGVE
+ ZWNvZGUgPj4Kc3RyZWFtCngB7dCBAAAAAMOg+VMf5IVQYcCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ vgYGP2wAAQplbmRzdHJlYW0KZW5kb2JqCjgyIDAgb2JqCjkzCmVuZG9iago3OSAwIG9i
+ ago8PCAvTGVuZ3RoIDgwIDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2Ug
+ L1dpZHRoIDE4MCAvSGVpZ2h0IDEyMiAvSW50ZXJwb2xhdGUKdHJ1ZSAvQ29sb3JTcGFj
+ ZSAyMCAwIFIgL0ludGVudCAvUGVyY2VwdHVhbCAvU01hc2sgODkgMCBSIC9CaXRzUGVy
+ Q29tcG9uZW50CjggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7dAxAQAA
+ AMKg9U9tCj+IQGHAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgy8BgYBZwABCmVu
+ ZHN0cmVhbQplbmRvYmoKODAgMCBvYmoKMzExCmVuZG9iago4NSAwIG9iago8PCAvTGVu
+ Z3RoIDg2IDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRoIDE5
+ MiAvSGVpZ2h0IDg2IC9JbnRlcnBvbGF0ZQp0cnVlIC9Db2xvclNwYWNlIDIwIDAgUiAv
+ SW50ZW50IC9QZXJjZXB0dWFsIC9TTWFzayA5MSAwIFIgL0JpdHNQZXJDb21wb25lbnQK
+ OCAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAHt0IEAAAAAw6D5Ux/khVBh
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMvA8MwYAAAQplbmRzdHJlYW0KZW5kb2JqCjg2IDAgb2JqCjIzOAplbmRv
+ YmoKNzcgMCBvYmoKPDwgL0xlbmd0aCA3OCAwIFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5
+ cGUgL0ltYWdlIC9XaWR0aCAxOTIgL0hlaWdodCA4NCAvSW50ZXJwb2xhdGUKdHJ1ZSAv
+ Q29sb3JTcGFjZSAyMCAwIFIgL0ludGVudCAvUGVyY2VwdHVhbCAvU01hc2sgOTMgMCBS
+ IC9CaXRzUGVyQ29tcG9uZW50CjggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFt
+ CngB7dAxAQAAAMKg9U9tDQ+IQGHAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAwMvAAL0AAAEKZW5kc3RyZWFtCmVuZG9iago3
+ OCAwIG9iagoyMzUKZW5kb2JqCjgzIDAgb2JqCjw8IC9MZW5ndGggODQgMCBSIC9UeXBl
+ IC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lkdGggNzIgL0hlaWdodCA3MCAvSW50
+ ZXJwb2xhdGUKdHJ1ZSAvQ29sb3JTcGFjZSAyMCAwIFIgL0ludGVudCAvUGVyY2VwdHVh
+ bCAvU01hc2sgOTUgMCBSIC9CaXRzUGVyQ29tcG9uZW50CjggL0ZpbHRlciAvRmxhdGVE
+ ZWNvZGUgPj4Kc3RyZWFtCngB7dAxAQAAAMKg9U9tDQ+IQGHAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDgd2A7
+ EAABCmVuZHN0cmVhbQplbmRvYmoKODQgMCBvYmoKODkKZW5kb2JqCjk1IDAgb2JqCjw8
+ IC9MZW5ndGggOTYgMCBSIC9UeXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lk
+ dGggNzIgL0hlaWdodCA3MCAvQ29sb3JTcGFjZQovRGV2aWNlR3JheSAvSW50ZXJwb2xh
+ dGUgdHJ1ZSAvQml0c1BlckNvbXBvbmVudCA4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+
+ CnN0cmVhbQp4Ae2X6VNaSRTFTVzYBH0CPsAniywqi8gEMAgkiKKQiCgZNIrigtFgVBwd
+ 1Eii0SxUHJdsVKmxTJn4h87tfqhjBEKq5qP9SVR+dfr07XtPFxXdrBsHfnLg1n/XT38r
+ 8CMQbv+84HcFfjvzbzSjuLikpPR8lZQUFyPub6AwpRghyhgMJr0YjDL4XIJQBZIQBZQA
+ g8lksdkcerHZLCYTsRCqEBJyhaawOJxyLo9XgRaPxyvncAAFJKzpVz4hMVgLm8PlVRBE
+ FV+AFr+KICp4XA4bkbCk/CCEKS1lMBGFqBIIq0mRWCwRi0UkKRRUEZjEwJLynhzGlDFZ
+ nHJEIUUSqlYqQ0taS0lEpICPSCwkCUzKregCw6sEipiqlSuUKrVGo1GrlHVyKSUhBVWV
+ PAxCbucCZTBsDo/gV4spqUKpadDq9AaDQa/XNmhUChklrhYQvHI2KMoDugXelDHZsCcB
+ KalVqOq1eqPpjhmtOyajQVuvUkhB0gUohyCQU1IK3iBMjUyp0TaZzC02u8PpdDrsthaz
+ qUlXr5RTIhqETi07CMlhYIyIkqsaDSaLzXHf3e7phNXuvu+wWUyGRjUN4rAY4HVWDmBK
+ yphYDSVXa43mu842j/ehP9Db1xvwP/R62pw2s1GrUWBFHGxRNhCWwy6v5JM1crWu2dLq
+ 8vj8wdDA4FA4PDgQCvb4PC67tVmnkVOkoJLLZuYQBO4gOVXVEplK22x1uLu6g/3hyFh0
+ cnIyOhYJDwT9XrfD2qxVyyXVVTwQBEV0/ehpOVxCIK5VNhotDrcvEBqKRKdis3Pzc7Mz
+ U9HRoVDA1+6wGhuVUrGAQIKyOX0rI4esUWgM5laEGR6fehZfTCyvLCcW47PTE8P9AZ/b
+ bjbUKyiSX4EFXTcIOAxWeaVALFVpTXddXYCJxuaXVpIv1zfW15OrS/FYdKQ/4HXZTDqV
+ TIIEMUqznNjt26VMNo8Ak+ubzM6O7j/D0Vg8sba+9TaVSr3d2kgmFmaiwyG/x2lpQoKQ
+ Q7CxawZB8TA5FXwRuANyfH2D40/jy8nNt+93dvd2d7bfbb5YXoiNDwV9bTaTVlkrEsDG
+ cnFgWxKZWn/H3t4dikzNJZKbqZ39T1/SXz7t76S2XiTmpyL9/g6HWa+RSwSV5ejErusp
+ KWNxCSHalsXZ1Ts4PrP4/FVq52P64PDo8CD9cTe1ubY4MzHU13XPaqxX1FQTXFYODptL
+ VFN1jc0tLl9w+Mlc4uWb7Q/pw+OTk5Pjw/SHf96sL89PjTx64Lrb3KikSILHZly/Gui4
+ 2LwqEtlja3sYikwvrL5K7X4+OP52+v302/HB573U5urC00io292KDAKj83O0plawZzT2
+ 1/PN9/vpo5PTH2c/Tk+O0vvvt9YWY2P93e2tf+iAwwfO9YO/1IM5/WOxxbUt4Hw9+X52
+ dvb929f0h+2tJHAG/IijqhUVxhmNLWbXM1Convz+jF7x5/q+iuB6wXmRmfN6NPxk/hfn
+ ld1nxDmvH+s9qJ8JqB8oQ6ifo69H5/XzLDrU571vNTbkqR+4F7ieNXqzvcMP9TyfSG5d
+ rec4qmcPXc/CXPV89X4Fh8Zj8eUXm++2d/f293bR/VpZiE2c3y9p3vuFCrFGge67pxu1
+ jYVEcuM1vu+vN5LLcN9H8H2HbeW+73T/gXZI9x9voH8EGsfSanJ949UG9J+/of9EBuj+
+ o87Tf4CD2zNJKeoNZrvb19s/PDE9G19KrKyuJJYWoB+ODPT62u1m3H7y9EOYXnDy5/25
+ HRpreDQ6PTM7H5+fnZmOjoVRf3bS/VmYsz8XXc4LmF5oXnj9wYFwZDw6+WQyOo7mRY+3
+ 3dli0qnlNbgbZp8XRbAx6KxcmF+UXKNrttpdngc9wdBjGF/hocehYOBBJ8wvE/Sw/PML
+ DR56nooohQbmqQ3mqa+7J9DX1xfo6fZ1utE81WkU0FMJNL6yjh3oj3iCnc93NZ7vTpe7
+ o7Ozq7Ozw+1y2qymJpjvNCb3fAcOzhsotkBQUNbrjJA3Wu1O5z2n094KecNI5w0hDi65
+ 8wYWdJF/pApVg86A8o/FYsH5R9egrpPW/Dr/IEEXQQrymEyh0jRq9XpDE8pjjRpVnQwl
+ u4sYlWUIZqZHBgQeoXwooaTyOiWKhxAQM/lQiPIhinUFBk1IvXwhKcZ5VS6X47wqJoV8
+ oqKQvIrODLZG5+cKlJ9JyM8SCQRoOj8Dhc0sID/TIMjzTJzEIc/TcR4H+kqUwnF4zpNV
+ L+YrKEKSMAlCPXpeVOIHBpdDvwqQNbktvuAU4fcOPJro907muQOM33zvoMLGmq69vzKP
+ poJeTecFgEiQX6+8B/Ej7ncoGHb5Pi2mH5TIlUIecJcOXf4EX7xcl7+++enGgf/bgX8B
+ Qse7wwplbmRzdHJlYW0KZW5kb2JqCjk2IDAgb2JqCjE3ODEKZW5kb2JqCjg5IDAgb2Jq
+ Cjw8IC9MZW5ndGggOTAgMCBSIC9UeXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAv
+ V2lkdGggMTgwIC9IZWlnaHQgMTIyIC9Db2xvclNwYWNlCi9EZXZpY2VHcmF5IC9JbnRl
+ cnBvbGF0ZSB0cnVlIC9CaXRzUGVyQ29tcG9uZW50IDggL0ZpbHRlciAvRmxhdGVEZWNv
+ ZGUgPj4Kc3RyZWFtCngB7Zz5N1tbG8eVXkQiAwkioonkIoYQs1jRGG4UQasxtC7LUIqK
+ dHGJriipumK4NWShtCo116ypoe3tXf3X3mefJKWGos25veddeX5xVtWzP+u7vs+zzz5n
+ 7+Pk5AiHAg4FHArgpMAV3MNu4IjU+Uu44BRfBnBG4/0IvJXWxeXq1au//AsBw7i4YPjf
+ yY0BAy5idXVzc7cFye5hy+zu5uaKRrOAXxrbAozUdQVaEsmDDEGB8MQlUGY0ggeJ5O6O
+ wEFw0PtS2MjBSGFX4AVciieVSqPR6Qwcg06n0ahUT0D3AG6EjVFf1NpIZCAGhUlkMuAC
+ q5c3k8li+fj4+OISkJjFYjK9vRgMOoCTySSkNqK+oNQW4l/c3D3IFCoN4QIp29/fn8MJ
+ CAjg4hCQlsOBAdi+vj4InEalkD3c3SxaX6SLWJCRxp5UuheT5evnz+Fyr/F4fH6QALcI
+ 4vN5vGtcLsffz5fF9KKD2KC1Rerz/IF8AbYAYgoiBmBuII8vEAYHh4SKRKIwS4TbLawJ
+ IXVoSHCwUMDnBXIBG1FTgBoMcr4/rMgeZIyYHRDIA97QsIgIcVRUtAQiBodAeaOjosQR
+ EWGhwM0LDGBj1GAQC/Q3lbYhU6gMpg874BpfGCwCXElsXEJiYlKy9DBS7BCH2aTJSYmJ
+ CXGxEgAXBQv51wLYPkwGlXIBaAzZzZ3sSWMwfTmBfGFouDg6Nj5RmiJLlcvT0jNQZNo5
+ sKTpaXJ5qixFmhgfGy0ODxXyAzm+TAbNk4xMDfY4U2lAdgEvA7IXi83lCULCoyTxSSmp
+ 8ozfFDeyc3KVyry8vHy7ByRVKnNzsm8ofsuQp6YkxUuiwkMEPC6b5YWgXX9BPe8s6CtW
+ ZLq3jz83KFgkliRIZWmZWTnKgpuFt4uKiktKcYqS4qKi24U3C5Q5WZlpMmmCRCwKDuL6
+ +3jTrdBnMQPyVVd3D08aIAcKQiKi46Wp6Yqc/FtFJXfKKioqK6ura1Dcs2tgKaurKysr
+ KsrulBTdys9RpKdK46MjQgSBAE3zBE/D7HIGNOpybiQKzQshh0bGJMrSFbkFqtKyiqqa
+ uvqGxqYmtbq5uVlj54CUanVTU2NDfV1NVUVZqaogV5EuS4yJDEXQXjQKCbP0qeZAzoD6
+ ozJYgCwSxyVfz8wG4vKq2voHzQ9bWtva2rUdOIW2va2tteVh84P62qpyoM7OvJ4cJxYB
+ NItBRXV4htBXQGaEzGRzBaHiOKlcoSwE4rrG5pY27SPd465uvf4JTqHXd3c91j3StrU0
+ N9YBdaFSIZfGiUMFXDa0PLI79I7TzIHJTKLQmb4B/JBIQM7KU92trG3UtGp1Xfqe3j6D
+ oX9gEKcY6DcY+np79F06baumsbbyriovC6AjQ/gBvkw6csepQltlBjPzgiNikuVZ+UVl
+ 1fXqlg6d/mnfwOCz4ZGR0bExIy4xNjY6MjL8bHCg76le19Girq8uK8rPkifHRATzwNJn
+ Cu3sDAXoSWeywczRidcVeUW/1zRo2nTdvYah4VHj+MTk8ymIaRwC5X0+OTFuHB0eMvR2
+ 69o0DTW/F+UpridGg6XZTLonCO3sfKIKkTXAzV7IGeI4WaZSVVbT8FDb2WMYGjFOTE2/
+ nHk1OztrMple2z0gKaR+NfNyemrCODJk6OnUPmyoKVMpM2VxYuQOTOhTzAHWcEVuZgcK
+ wyXStOzCu1WA3NU7MGycmJ6ZfT03v7C4uASxbPdAWRcXF+bnXs/OTE8Yhwd6uwC66m5h
+ dppUEi5EQlNIrqdU4RWwhgeV4cPhh0QlpCoKSivvawB5cGR8asY0v7i88mZ1DYt1u4cl
+ 7+qbleXFedPM1PjIIEBr7leWFihSE6JC+BwfBtUDzHGic2DWoDH9uMIwiTQ9V1Veq257
+ DMgTL2bnllbW1jc2N7e2t7d3cAlIvLW5ubG+trI0N/tiAqAft6lry1W56VJJmJDrx6RB
+ u3M5YWjMGjCd8IIj42Ugc1Vji65nAJBNCytrG1s7O2/N73AN89udna2NtZUFE0AP9Oha
+ GqtAaFl8JLQOFgMzx7EiBDsja/gGBImik+Q5qvI6jbbbMDz+wrS4sr61Y363u7dviQO7
+ hzXx3u47887W+sqi6cX4sKFbq6krV+XIk6JFQQG+yBwnDI3sTKZ6+wUKI2JTMvNB5lZd
+ 75Bxanbhzca2eXd//+D9B5zj/cH+/q55e+PNwuyUcahX1wpC52emxEYIA/28qeSThgZm
+ dzKNCdYQx8uybpXVNmv1hpHJmbmV9W3z3j4Af/wb4hNOgXJ//PDh/f6eeXt9ZW5mcsSg
+ 1zbXlt3KksWLwRyYoY8X4RXozhQGi8MPjUqUZ6sq6lt0T4eM06bFtS3z3gEA22D/wSFs
+ uQH7YM+8tbZomjYOPdW11FeosuWJUaF8DhgaivBY43B2cSV5gp0FIok0Q1lS9aCtq294
+ YmZ+ZWPn3f6Hj5D1GOtnO8SxlDDIxw/773Y2VuZnJob7utoeVJUoM6QSkQAM7UlyPd44
+ gNkDJkGuMBzsXHCnRq3V949OzS6ubpr33h9DtgPtkRRHwBH0+z3z5uri7NRov16rrrlT
+ AIYOF3JhKvQ4yYzaBpTgrxFxMsXNsjrNo55B4/Tr5bVtkBmMcSTzP0cGtMPl0cyfPv0N
+ Qm+vLb+eNg72PNLUld1UyOIifkVFiBrH180OWh2ZymRDd05IvVFYfr9F1/vX+Ms5sMbu
+ ATDbEtuB8dQUtvzAfLAL5ph7Of5Xr67lfnnhjdQE6NBsJjSOk8yWthGCSvB2RUNr55/P
+ kJ033+4dgDWsOU8dzy7/aB0AzHGw93YTGfrZn52tDRW3URGGWBrHCWZodXRodaht5Kgq
+ G//oMgxPvlpYBWawM+7Inz/boMHQbzdXF15NDhu6/mishFkFGgcw02H2Pu4NxMzy58Ms
+ mJZbVAltwzDyHEpwy7z/hdkugp6ZxAINRbhv3oIifD5igMZRWZSbBjMh3591JjMHZu7k
+ dGVxVVN7dz9ihu6MShDLd+ZodvoFNggqQtShgbm/u72pqliZngyzN+cMZgrciAZh7bm4
+ ukmrH0Ctzto2UDo7kX0jDRrF2jhQsxvQa5uqi7EGHQS3ozCpnPQGMNumFNSegdm0dMj8
+ jbHs9qtD5iUTxqyusU0q32KGm+eMvNIadceTwbGfyzw2+KRDXVOaBxNhmCDgAszN/w3m
+ Zgez3Ux8JNFXfkbe+CGdjyTG9dLWN6AGz2VGt/xY37DW4HE/4wp6JPk5zF/dQDuYjwh3
+ yctL6QxLK1imcAVhMVh/Rt6A2+eldbRKgan7kkN/93+HiRCtVNaX0A20rQZjwgRcWKgc
+ X1zBchAtrbiC8Bi06r6nsTAvA/MBMH83w6X/EJgPgBm76X/SobmHVt4x4Rgz6diC0MF8
+ aXUP/8Ch86EWeF45dMZT3cPcDp0PtcDz6v9f51PmbtPPm7vhyei5c7fjXvS7HX+p+zoC
+ 6uxEDOZjz3K/vbb6d+6g7buGdTCfVaI/pjOhnn1ZXlsR6Rnj4bPc9v/Cs9z2c5/lwnN+
+ wj0zJ+a7CaK9A7pKwHdthHynScB3x0R8R0/AvRBE3HNCyL09hNxDRby9ak4E3BPodNre
+ y86ft/ey8yJ7L6EICbfHlZh7iYm3Z9uJgHvjnYh4BoGIZz1sQhPpTA0wE+/sElQh4c6I
+ IaEJdxYPcwc6pkmgM4/ADJYm2NlSBA2WJtQZXicLNJwvJdBZ6UNoAp1JdyLi2X9MafiQ
+ BZG+sQBvhlD3gO+FEOlbFgBtoSbSN0MsUmNaE+fbLAgapAZqIn0DB73vtGAjZxPkW0MI
+ 2ooNehPmm04WbJAbExz7OhTCxyes6eEHGs869I//QMnwjR9ndGRwKOBQwKHAGQr8D2Xh
+ +WEKZW5kc3RyZWFtCmVuZG9iago5MCAwIG9iagoyODk2CmVuZG9iago4NyAwIG9iago8
+ PCAvTGVuZ3RoIDg4IDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL1dp
+ ZHRoIDY2IC9IZWlnaHQgODIgL0NvbG9yU3BhY2UKL0RldmljZUdyYXkgL0ludGVycG9s
+ YXRlIHRydWUgL0JpdHNQZXJDb21wb25lbnQgOCAvRmlsdGVyIC9GbGF0ZURlY29kZSA+
+ PgpzdHJlYW0KeAHtWOlfUlsX1sqBeR48gEwCgiiiKKLihBMOoZiKoVwSxVByyjEKUzGH
+ nLK4mRZlWdb9K+/aB+g1PXR778d77/rCgd9vPzzrWXuv/ayTlvZf/CsUSE9Pv3E54Hv6
+ ryeeWHzz5s1b8YAnHO3XQPDlsDYDIjMZ8HzrFkL5a4z4eliemZWdnU1KBDxmZQLIL2Cg
+ 3OHv0XIyhUKl0vCgUikUMoDEMX5GAxGIrydRqDQ6g8mKB5NJp9MQRiZOIzUEDpCRkZUN
+ 6+kMFpvL5fFR8LhcDosJGCREAzJJWRRgAAng65ksLk8gxDCRSCwSYZhQwOeymXQqGcmR
+ GuI7AI3B4vKFmCRXKpPLFXK5TCoRY0I+h0WnUoAF6ElMIgFAptBZHJ5QJJEp8tRqTX5+
+ vkatUsqlEkzAZTFoOESKPEBESIFMpbO4AkwiU6q1BfoiA0RRoV6rUclzRQgCEkF5EJFI
+ vwQgksJ6vcFoKis3m8vLTCXFhTqNUoog6FRSdsYtQgSkYhYJUuAKxbK8fH2xyVxZba2p
+ ra2xVleaTUa9VinDISgpSCAKWdkJAJXOUGquqm1obG5pbW1pbmyoqTKXFGmVUkzAYdLI
+ 2YRppAOFbAoNZ6AuKC6rrLW1tt/u6nY6ux2dbS22GosJIHIxPpsOJAjSwCmQqAyOQCRT
+ FxjN1fUtHV13+gfcbvddV5/T0dZUV1laqFFIhFwmjZSVcV0IoJCJcuBj0jxdsdlqszt6
+ B4a8w74Rn8/rcfd1dzTVmo06lQzjs4AEpHG1V6TfABlpTK5QotQayqpt9q6+wXuj98eD
+ weBEYPTekMvZbqs2FeUrxAIOgxABdAQKbJSD3lTZYO/q9/gCD6Zn5+bmZqeD932efkdr
+ XYVRl5ebw2VSSZnXOKAkSFQmNyc3T2esqGt19HtGJqbnlx6FQqHlxYeTAd/gnQ5blUmv
+ lmE8Fo0EUl7JAiVBBhVEMk2RydrU2Tvkm5hdDK2srq2vPX2yPDd53+vqaqkpN6A02HRy
+ 1jUEPAkGB1RAFOxO93BgZim8trG1vb31bD28/DA4OtjTVg9pKCUCDp1CjABJYDJ1oam6
+ 6Xa/d2xqMRzZer5/cLD/fCsSXpwOePs7bZWleiQEFOM6B5CBxuKLFfkGM6IwEpx/vL69
+ 9+Llq1dHh3tba6G5oG/A0Ww1FYIQXFSMKzqAkCADRwBJlFTaOvq8gZnl1a39o+jxm+Pj
+ 6IvdZ+HFKf+gsxWEQAhMIgSoJYObI4VSWpsdd33B+fDG3tHrk7fv3p0eRw+2Vx/N3vf0
+ 2OvMBo0c4zGpBBwAgcnDZBqDudbuHPJPL61uH0ZPYx/OPsROj492I4/nAt7e9rqK4nyF
+ iMciQID9RIVaKrTFFfXtvd7Aw8eR3ZdvYmefzj+dxU6ie8/C8xP3+joaLEatQswnRgAh
+ kQxGkME1DElsHvx+enb+5cvn87O3vx9sriwGh/s7bJVGrZIQ4cbNTBJsaUleQWlVk2PA
+ NwlJvDiOffx88fXi88fY8eH26tIDnwvK+RMEMp0tzFXhQrr9U8trO0dv3p9ffPv29eJT
+ 7PgFAcKPnRJOBRQzgdDt9s+E1ndfnn44v/jjj29JhEmf67atsgRtSjgYGTeJEKCYhWXW
+ lu7BsZlQZPfV6dnnrwjhPM7hrxDQhsIRalqcQ2Ozocje30awtjgH/xYCroMUKQlZgA6w
+ HZI6/GIWl5TscvunH60/PzpBtfifklereUXJ5H7Ql1Y3Oe6OTC2t7sB++PTl69eLL7Af
+ iKr5Y49COyq+J+Fodrp8wYUV2JNvYU9efIE9+fpg6ynakz/ZUenxcyFWaI2WBjjc43NP
+ NvZencTOzs/PP74/je5vhueDiXNBvKtxBDibcrzB9HjGZh6t7bx4fRo7Ozt7/xadzSdz
+ 43A26yuKtQoR4cm6gfcH1OTKrM1d7pEHC+Fney+PT9/FYm/fRA931kLQH+6g/pAvF6Xo
+ D1kUtK3haIEQ/d7AbGht++Dl6zcnJ8fRo73NlaVkj9Kk6lGoy7EEYiU0iDp7z+Do5EI4
+ snNwFI1GXx3tb68/ng/67nb9pE+moWJQWdCk1EWQhsMFjXJpZWNn7+Dw8GBvZ2NlaSbg
+ dXU2VpXqVdIcok4LCLgQKA1jZUN7z6AvOLu8Etnc2Xm+sxl5Gpp74B/qbYcWBUdTCPfF
+ 9W4fv7PYAjFUo9zafLvP4w8+XA6vrkcikdVwaH4qMDzQ3VprNmgVEuI7K3lvYlJVgdFS
+ b+92ef3B2YVHj8PhJ6Gl+enxEU9vZyNcFxoZFJNGcOshAwJ3NwdIwMVZbWt3Dnj9E1Oz
+ 8wsLC3Ozk4GR31zd9nqLsUAlheuC6O5GQmSRwQPl5CqRAWnqcLo8vrHx4OTUZHB8zOcZ
+ 6OlospYbtCADLuS12z8t4WHiBsJYUdPU3t3n/m14xO/3j/q8g66ezuY6Swm6/EEGQgeC
+ +ygybmLkan1JRQ3YoB6wUUMez6Db1dvd0VJfBRZGKcnhIhkIfFQa2EncSPFyJAqNHlmx
+ 5rbbXc47vb13nI5Oe1NdVZlBlyfF+MgEEXk5SAOUIFHpbB4mUajBj1qs9Y0t9rb29jZ7
+ c2O91WIygA8Tg6tFfpLADQICMpRkKoPNxyRyta7IWG6prqmrh6irqbaUlxQhACEPnByY
+ QUJjjUhAHjQGGxIBW1wAtrrcXGGxWMzlphKDXquSSXJ4bGTNCSmkxUmAL0YQQlGuQpWv
+ 0xuKjRDFBjD3aqVMDABMfDwgpHAZAo0HYimMFxqtVqfTafM1KqUsVyQEADyHWynmCyQm
+ 2Ht8wuDwACNXJlcoUSjQkJMTH1BIuLO/4oGSXRcGNTTowZwFYxJgCDGRWIJCLIJBiwdD
+ EprVYNxLRQHPIz4rwqSERj0eXxAPmPY4LAYa1BAAqPDjZZGkAJ9QUqgIokGmxMdNNofD
+ YbNZLCasjw+LaO5NCQAQgAE0AAMfeWn0RNBg6IVhEwZnfG6+9KfXH3EaibGbRCLD6AwD
+ M5lEujx4X1/1wy+IRpwITP5ZyYB/BwFwAj9J4TtQAgS9fICFKOAp/gYitYbfVycerr4B
+ Qbz+r5cgSUD06iQRyZ/++/wHK/An+CZq0wplbmRzdHJlYW0KZW5kb2JqCjg4IDAgb2Jq
+ CjIzMTEKZW5kb2JqCjkxIDAgb2JqCjw8IC9MZW5ndGggOTIgMCBSIC9UeXBlIC9YT2Jq
+ ZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lkdGggMTkyIC9IZWlnaHQgODYgL0NvbG9yU3Bh
+ Y2UKL0RldmljZUdyYXkgL0ludGVycG9sYXRlIHRydWUgL0JpdHNQZXJDb21wb25lbnQg
+ OCAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAHtW/lTWvcWd0mUfZNFFBSE
+ cQmIoiiK0eASrIqaqlQj1XGJRq1KqkOxJVFjbag6SmQkxcRIjCak7ivGNJ33r73zvWDj
+ uLymL8K8+8bPLzj+8D2fzzmfc+7l3kNIyBWuMnCVgasM/I9nIDSouLRkINZhfyE8CPgr
+ WBiK/SVC/MzDw69du3Y9yICQ4eGYlP9SA0YeqCPeEZGRhGMQA4rjKITIyAgU2SfiH0vw
+ kUdZjwDmRCKJDKAAqAEHioKikYhEAgGJgEJAHf6RBOR4lPkI4A7UKVQajU5nMJhBAoNB
+ p9NoVJBBAg1IAqbgc1sBJR/YQ+aJZDJQB96sKDabw+FyubyAA4JwOGx2FIvJZIAIMpmI
+ qoAUfGYJfOyvRxJIZAqNjqgDa35MTExsrEAgEAYYECI2FoLxeTwuEkGnUcgkQqSvBp8z
+ jXz0Ue6pNAaLzeFFx8QKhfEikVicIAkKEsRikSheKIyNieZx2CwGFAFq4CvB33kIeQes
+ A+wpiD2QF8aJxBJpYmJSckpKyg0fZAGB/3AIk5yUmCiViEVxQpCAFFBAAZjo7z3kp08i
+ Y+z5gjgRcE++IZcr0tLSlYCMAAPFSE9LU8jlN5JBgyhOwMcUgIl8Av5jBY7pU2hMNpcv
+ iBdLE1OAujJTla1W5+RqPiHvkvHpZE1ujlqdrcpUgoiURKk4XsDnspk0ymcIwOhHEshU
+ OpPNi40TS5NlivTMLLUmL79Aqy0sKkYoCSCwAEWFWm1Bfp5GnZWZrpAlS8VxsTw2k04l
+ oyYAC11YAaAfDt4H+iwOXyiSJMnSlFk5eQXa4tu6r8rKK/T6ysrKqoACAuj1FeVlX+lu
+ F2sL8nKylGmyJIlIyOewkICI62iOXiQg1E+fEcWNESYkpiiU2Zr8wpLScn31nZpag+Gb
+ +oYgoP4bg6G25k61vry0pDBfk61UpCQmCGO4UQy/gIv4A/1rEQQSlQ704yRJ8vQsTUGR
+ rrzqa0P9XWNzc0tLW1s7wr2AATu+ra2lpbnZeLfe8HVVua6oQJOVLk+SxIEAOhV6AK5k
+ FwhAkzOSSKGzEP3k1Ax1fpGuorquwdjc2t7Z1d3T29vX19/fbwog4Pi+vt7enu6uzvbW
+ ZmNDXXWFrihfnZGajASw6BQi1gLnGgi5B3qXxuQA/RSFKvdWSRmwb2rt6Pqu/8HAoNn8
+ g2UoCLD8YDYPDjzo/66ro7UJFJSV3MpVKVJAAIdJQz18QQFCIf2IPpsvlCQrVBqtTl8D
+ 7Dt7+gfMlh+tj4ZHRkcfBwGjoyPDj6w/WswD/T2doKBGr9NqVIpkiZAPY5RMgBl0noGw
+ 9BMpDDZPIE5KBfqllXWNLR09pkGLdXh0bPyJzfbrxGQQMPGrzfZkfGx02GoZNPV0tDTW
+ VZaCgNQksYDHZiAHnVsAf/rB/KJEeUautrTKYGzr6hsYso7+/GRicnrGbn86O+sIOGZn
+ n9rtM9OTE09+HrUODfR1tRkNVaXa3Ax5ogha4MIChIVB81IZbD6YP119S1dp+La922S2
+ jozbpmaeOuacz35zAeYDDBTjt2fOOcfTmSnb+IjVbOpu/9ZQqbulTocW4LMZVChAWNiZ
+ Dkb2AfezkHsUqvwSfZ2xvfuB5eGYbcrucLrmXyy8XFxcdLvdrwIKCABhXi68mHc5HfYp
+ 29hDy4PudmOdviRfpUAOwgpwjoHAPhHI/fw4qUypKSyraWwF+sPjEzMO5/zC4qul18sr
+ K28AbwMKFGFlZfn10qvFhXmnY2ZifBgEtDbWlBVqlDIpKgCFGHFOB4eCfUg0JjcW0p+d
+ r6tuaLlvAvqT9jnXgvv1ylvPu99XMawFFL4Yv7/zvF157V5wzdknQYDpfktDtS4/GwoQ
+ y2XSSGCgMxMIsw+dHS2U3FBqiirqmjr6zA+BvvP54tIbz+ra+sbG5tbW1nbAAUE2NzbW
+ 11Y9b5YWnztBwENzX0dTXUWRRnlDIoxm02GEhp9pAMw+cOkSJaaqUPpbewasYxNA373s
+ WV3f3N7e2d0LGnZ3trc311c9y24QMDFmHehpRQVQpcII4jAxA51qYLA/sg9PkADDR1te
+ 29RpsozYpueeu1c8a5vbu3v7B14fDgMKf5CD/b3d7c01z4r7+dy0bcRi6myqLdfCCEoQ
+ 8JCBzjQAsj+ZFhUtlMoyNMWV9S09g9bxKYdrcdmzvrW77/Uevj8KIt4fer37u1vrnuVF
+ l2Nq3DrY01JfWazJkEmF0VE08tkGAP4EMp0dE4/Z547xXj+k3+5cWPKsbe0eeIH8hz8A
+ H4MAFOfD0dF778Hu1ppnacFphwL03zPewQwUH4M1wOkGRvwpDLB/UppaW1bbfP/7n8Ym
+ HS73yurmzv4hkD8m/meAcRwHJBzu72yurrhdjsmxn76/31xbplWnJUEDMCiEMwMoFK5e
+ FCYX2T+nsMIA9nn0y7TzxZJnfXvPe/QBTj3F+1+XjFPHQ8APR9697XXP0gvn9C+PwECG
+ isIc1ABcJvAPPzVAQ8MjiFQmD5uexfqGtl7zsM3+7OXyu42dg8MjyP6J8y+Z+YnjTgT5
+ +PGPo8ODnY13yy+f2W3D5t62Bn0xNkF5TCox4jT/MMSfBfxlGXklVXfb+yyPJ2Zdi2Cf
+ Xe97SP+Jk/88EfCS/zwZBQrw3rsLBlp0zU48tvS1360qycuQSYQ8FuJ/6gKA+MPNj1Aq
+ z7x5u7rxnmno8aRj3v1mdQvs8yn9l8z33OP8IlABvHtbq2/c847Jx0Ome43Vt29myqXA
+ n3YufxLwj5PKVTd11cYO0xC07/yrY/7+M8+Nd+n/PBbg5/8K+I8NmTqM1bqbKrk0DviT
+ zss/3vnj3T+47l+8z0/cX7/wfv+A//s3nN8/4/v7SwjOvz+G4P37O96fn+D/+RW+nx+G
+ 4Pz5bQjen5/j/f3FcQHw+v4I+OP7/R10MK7fn6IC4Pr9NeYgtP6A0/0B4A8tgOP9DSQA
+ WgC3+zMhPgGww4HT/aVPAnC6PxaC9/09rAKwvIrX/Ul4rYemEOwO43V/FQT4FOB1f9hX
+ AqwG+NzfRgKgBKAAr/vz6OW2TwLqBBz+fgEJ8EuAOuDy9yM+CVAGrBDYL1GQlMDDHwo+
+ UGw/jS//QIcFD1/O9+qEqwxcZeAqA1cZ+L/OwL8B18g0uAplbmRzdHJlYW0KZW5kb2Jq
+ CjkyIDAgb2JqCjIzNDcKZW5kb2JqCjkzIDAgb2JqCjw8IC9MZW5ndGggOTQgMCBSIC9U
+ eXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lkdGggMTkyIC9IZWlnaHQgODQg
+ L0NvbG9yU3BhY2UKL0RldmljZUdyYXkgL0ludGVycG9sYXRlIHRydWUgL0JpdHNQZXJD
+ b21wb25lbnQgOCAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAHtW/lTWmcX
+ dklU9kUWUVAQxiUgiqIoRoNLsCpqqlKNVMclGrUqqQ7FlkSNtaHqKJGRFBMDMZqQuq8Y
+ 03T6r33nvWDjuHxNvwjz3RmfX3D84T3Pc85zzr3cewgJucJVBq4ycJWB//MMhAYVl5YM
+ xDrsb4QHAX8HC0Oxv0SIn3l4+LVr164HGRAyPByT8j9qwMgDdcQ7IjIy6hiEgOI4SlRk
+ ZASK7BPxryX4yKOsRwBzAoFIApABlIADRUHRiARCVBQSAYWAOvwrCcjxKPMRwB2okylU
+ Ko1GpzOCBDqdRqNSKSCDCBqQBEzB57YCSj6wh8wTSCSgDryZ0SwWm83hcLgBBwRhs1ms
+ aCaDQQcRJBIBVQEp+MwS+Nhfj4wikshUGqIOrHmxsbFxcXw+XxBgQIi4OAjG43I5SASN
+ SiYRoyJ9NficaeSjj3JPodKZLDY3JjZOIEgQCkWiRHFQkCgSCYUJAkFcbAyXzWLSoQhQ
+ A18J/slDyDtgHWBPRuyBvCBeKBJLkpKSU1JTU2/4IA0I/IdDmJTkpCSJWCSMF4AEpIAM
+ CsBE/+whP30iCWPP48cLgXvKDZlMnp6eoQBkBhgoRkZ6ulwmu5ECGoTxfB6mAEzkE/Bf
+ K3BMn0xlsDg8foJIkpQK1BVZyhyVKjdP/Qn5l4xPJ6vzclWqHGWWAkSkJklECXweh8Wg
+ kj9DAEY/MopEoTFY3Lh4kSRFKs/Iylap8wsKNZqi4hKE0gACC1BcpNEUFuSrVdlZGXJp
+ ikQUH8dlMWgUEmoCsNCFFQD64eB9oM9k8wRCcbI0XZGdm1+oKbmt/aq8olKnq6qqqg4o
+ IIBOV1lR/pX2dommMD83W5EuTRYLBTw2EwmIuI7m6EUCQv306dGcWEFiUqpckaMuKCot
+ q9DV3Kmt0+u/aWgMAhq+0evrau/U6CrKSosK1DkKeWpSoiCWE033C7iIP9C/FhFFpNCA
+ frw4WZaRrS4s1lZUf61vuGtoaWltbW/vQLgXMGDHt7e3tra0GO426L+urtAWF6qzM2TJ
+ 4ngQQKNAD8CV7AIBaHJGEsg0JqKfkpapKijWVtbUNxpa2jq6unt6+/r6+wcGBowBBBzf
+ 39/X19vT3dXR1mJorK+p1BYXqDLTUpAAJo1MwFrgXAMh90DvUhlsoJ8qV+bdKi0H9s1t
+ nd3fDTwYHDKZfjAPBwHmH0ymocEHA991d7Y1g4Ly0lt5SnkqCGAzqKiHLyhAKKQf0Wfx
+ BOIUuVKt0epqgX1X78Cgyfyj5dHI6NjY4yBgbGx05JHlR7NpcKC3CxTU6rQatVKeIhbw
+ YIySomAGnWcgLP0EMp3F5YuS04B+WVV9U2tnr3HIbBkZG594YrX+OjkVBEz+arU+mRgf
+ G7GYh4y9na1N9VVlICAtWcTnsujIQecWwJ9+ML8wSZaZpymr1hvau/sHhy1jPz+ZnJqZ
+ tdmezs3ZA465uac22+zM1OSTn8csw4P93e0GfXWZJi9TliSEFriwAGFh0LwUOosH5s9Q
+ 3dJW6b/t6DGaLKMT1unZp/Z5x7PfnICFAAPF+O2ZY97+dHbaOjFqMRl7Or7VV2lvqTKg
+ BXgsOgUKEBZ2poORfcD9TOQeubKgVFdv6Oh5YH44bp222R3OhReLL10ul9vtfhVQQAAI
+ 83LxxYLTYbdNW8cfmh/0dBjqdaUFSjlyEFaAcwwE9olA7ufFS6QKdVF5bVMb0B+ZmJy1
+ OxYWXa+WXi+vrLwBvA0oUISVleXXS69ciwsO++zkxAgIaGuqLS9SK6QSVAAyIeKcDg4F
+ +xCpDE4cpD+nQFvT2HrfCPSnbPPORffrlbeed7+vYlgLKHwxfn/nebvy2r3onLdNgQDj
+ /dbGGm1BDhQgjsOgEsFAZyYQZh8aK0YgvqFQF1fWN3f2mx4Cfcdz19Ibz+ra+sbG5tbW
+ 1nbAAUE2NzbW11Y9b5Zczx0g4KGpv7O5vrJYrbghFsSwaDBCw880AGYfuHQJk9KUKP1t
+ vYOW8Umg7172rK5vbm/v7O4FDbs729ub66ueZTcImBy3DPa2oQIo02AEsRmYgU41MNgf
+ 2YfLT4Tho6moa+4ymketM/PP3Suetc3t3b39A68PhwGFP8jB/t7u9uaaZ8X9fH7GOmo2
+ djXXVWhgBCXyuchAZxoA2Z9EjY4RSKSZ6pKqhtbeIcvEtN3pWvasb+3ue72H74+CiPeH
+ Xu/+7ta6Z9nltE9PWIZ6WxuqStSZUokgJppKOtsAwD+KRGPFJmD2uWO4NwDptzkWlzxr
+ W7sHXiD/4Q/AxyAAxflwdPTee7C7teZZWnTYoAAD9wx3MAMlxGINcLqBEX8yHeyfnK7S
+ lNe13P/+p/Epu9O9srq5s38I5I+J/xlgHMcBCYf7O5urK26nfWr8p+/vt9SVa1TpydAA
+ dHLUmQEUClcvMoOD7J9bVKkH+zz6ZcbxYsmzvr3nPfoAp57i/dcl49TxEPDDkXdve92z
+ 9MIx88sjMJC+sigXNQCHAfzDTw3Q0PAIAoXBxaZnia6xvc80YrU9e7n8bmPn4PAIsn/i
+ /EtmfuK4E0E+fvzj6PBgZ+Pd8stnNuuIqa+9UVeCTVAug0KIOM0/DPFnAn9pZn5p9d2O
+ fvPjyTmnC+yz630P6T9x8p8nAl7ynyejQAHee3fBQC7n3ORjc3/H3erS/EypWMBlIv6n
+ LgCIP9z8CCSyrJu3a5ruGYcfT9kX3G9Wt8A+n9J/yXzPPc4vAhXAu7e1+sa9YJ96PGy8
+ 11Rz+2aWTAL8qefyJwL/eIlMeVNbY+g0DkP7Lrw65u8/89x4l/7PYwF+/q+A//iwsdNQ
+ o72plEnigT/xvPzjnT/e/YPr/sX7/MT99Qvv9w/4v3/D+f0zvr+/hOD8+2MI3r+/4/35
+ Cf6fX+H7+WEIzp/fhuD9+Tne318cFwCv74+AP77f30EH4/r9KSoArt9fYw5C6w843R8A
+ /tACON7fQAKgBXC7PxPiEwA7HDjdX/okAKf7YyF439/DKgDLq3jdn4TXemgKwe4wXvdX
+ QYBPAV73h30lwGqAz/1tJABKAArwuj+PXm77JKBOwOHvF5AAvwSoAy5/P+KTAGXACoH9
+ EgVJCTz8oeADxfbT+PIPdFjw8OV8r064ysBVBq4yEOAM/Ae/JzS4CmVuZHN0cmVhbQpl
+ bmRvYmoKOTQgMCBvYmoKMjM0MwplbmRvYmoKOTggMCBvYmoKPDwgL0xlbmd0aCA5OSAw
+ IFIgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBzZxLjyTHccfv9SnquDyw
+ We+uOtqkLVgny1xAB8EHYbA0KcxyxSXlz+/fPx6ZWd09sytZIIjFbGdk5SNemRkR+fip
+ /0P/Uz/wb71u/XWe+4/v+j/2P/Zfff3z2D/93I/27+en/svhsvb6awp+13/1n+8+Pr37
+ 6y9/+/Nz9/EHmhr32Zob16Ufj8n+nt73X/3H+3Hvv/lg3U3DYmW2rZ+nK01O49BHoYNC
+ nXC6L7TuFG2K3ba1rPR+U6I7NUSJad4+0ca0X+9KjNPkTNp72ljXvXM8piFpuikxwjyj
+ +qUSy7aUEl3wZYT9EsVx7adphNjl0P/R0Pioq+Ho13mphYbSVoMxhZZdfL5FaRutv3EW
+ 51RguU6XqZSbsrGm3Dxt9+USs3W39hbkOq+XZYSOzYXWoQBbFpsOKzYv/Xwdvdh1uYzL
+ HAhKB0y4s7gx9PzMIHbM29RP1+0yHfMUAig6Vbse9+myooUTbHSCH3Q8qhlEOQ/TZVuW
+ aO163/F4neHIMFFyuVzpONp80HGheRqivQcdF4qnlY4/i2KGiDr+NMXjkaJ70HFSPA3D
+ Z1I8wZvXKS6sXraXKS4dr6M6Dv69xuppnR9S3IyxdUO+r44xlVhyWkEiOcbquKDEuB+B
+ z8NxOh8HGow6tYVsdmpQsUJj0tW2czXt1Sy3rZf9irZNBeUZVaOlr/7r3fOff/nhf999
+ /eH5w8cf3r/75eMPTz0zKUK6LsOmKXfftmk+mIeZhadpZhysjAOaPMZh7t8zxV4vxz7u
+ 3XRF64f9Ms+gM89o9j7vcOG4XGfG3DwZJb3Yu14psUyXeR01CMbLddxV57iM07F0ylmG
+ +Vrq0ORlPUZIWZDNxsQ+X4fLeB1Gqz2vMHJeFg1NetyHy7Br+FFqvZA/dtMGFterSkHB
+ MMLYkeIjQpzHnUmADGiD08DbZb4eyA9ahpnZa6KvXTyQSm4oFM1t5KzQG5WmZbwM9E6R
+ 8TIeu2R7ZYiz1Eyai3bNCHfMe+q/7+5z3/ffwe3f8/cXXwe//tYkOfTffq0lzoAv9aMF
+ kzkmm+iW7eqUV6n0yzZUqSyMPuhDfimVZdSiimRTKofG576aDFwqx4z2DPA+pZJ1qlT2
+ 4zLNw16lsiCwbWEZSql0y8oUKo2pUgE3ZjfWmiqVFWFcd3ieUlmH4yyVdVoux3Yg0pTK
+ OkPUPsHplEpWKlJZQWcfUMsilQWtXUctESGVyjykUnJBsbD0WxYF7BKm4J/hPaOhkcW0
+ Q8mBMjMINBf961tGzjAwcb996kdfvb/kl7/Ltl1RzqV/ywr976gNEn37Xf/mm2++/aJ/
+ +5f+3956P7J/OqRs/IAjJNDZ7VDPX/3u57n/n59tZF9ZMVFvRuJyMGMyzgU99+twhWZW
+ DIErU9C0MryYAUkjfw0PS7F+78xFtTjtlZa0GtdegJ77eUVDjo3xDjjPWmCnaCMgazvS
+ 0WdWMmQ0HyXWTyj7TyKTf61OZxkZKpUyQQ1lAkXDwippNEDlwthzypZjd3qTESsampQp
+ XSkTVCmDF6iyKOuyDafG24509FkoEzIt1k+9FCZz5hF96yolBre0eIaomcFXK5VJ51hN
+ /S2Njs2NpDTh8jEpcqjS5HBDlWeEXKKtgNRLR1WTZvZfKHPUTpTAO+T2YC6KUt0yCvFK
+ r8Ot7KyASQ9bxOiSJGczFF2qzFEyjopmLihTpdehSq/DDb2eEdKKtgKKXgKK/gu9jmvS
+ 65BLU6Mcc2xk/CwIE8fhMmnAIa1n5gzosAEHOFkXGhgacgGx+DPT+hfmNalsVuowjGp7
+ pJ/62hngc48pOzLsmMzxlrQ6eQPWhtpVwrvrSlG6rq0AvCS1UmhhIa10AXUNXfro2GtY
+ GPZGC/NooWtlOjWKkxkra1TwqVO6oUtgpUsQNGQDSlq7JLK7pEt4nVC+lQ6WaKViAmqo
+ EBgy2Ffh2gWE+VKks7Hii6FJxbQi85Q26YYKfSpUMMmOJoloQG1Yu0p4d1WQIFKoEFaP
+ pKPFpBRasG4qXYIaugSGdBZmfnVo0pEBEHR1crBO0ll21oegS+mGLoGFLjy4SXRlA+vG
+ eql2lRfdFemAyAnlG+nMOGiVCqBWx/TR8Z7nrRk7M+t7SmceWc1FX0oHNyqpwG45USGw
+ UiGIitmAktauEtFdUiG8ChXC6pF0ZH3VQnjuDV1AVTrdDBh0HdiOwt6lw8qedC143Wfp
+ zFXrsKgomJ11AitdgmgyG1DS2hVd0V2hC0SylR6smPa1TsnCxd7HUrlLuL0xyd7AIdho
+ GPOSNV6p537ErzpkHgJ2Ix1ueKqW4YCURKnV1MlSV0wqzPxadWWIqEX9PqkTEigFY0jl
+ WAnJVxNZMZoz7VO7AbfZm82Z5CQ6XWlNeAchMvUKTY8XND6P6IiTrNQzVAbJAkXROOEp
+ OEUANslZts0MnsJdEpNqVUYPJHejjSJ1QqIhWaBaXqOipaUBkTj/KLtTxyywDTqFZCEa
+ hATJTtNrJu0IuvhcYc22Nqxcu21jKH053xixf+rf/MsXitVN/Zu/foEuNb/PX3QG/xD5
+ T1nwz5n4JT99iCI/ftH/d//2924SN9bGGbXHhvaMsTTtoM0icmNpf/3h/V8//Pjux1+K
+ vd1lvPFe+0sOwwAWrjhPrgtKNeovEFF364o77KKGf7iIof4EuVSaPNyVG/WfkJnUn1/v
+ hMRzVVjltxUtreUiEucfz6Zj04VEp2kNRIOQ0AWn6WX1v46p/qRa9Qc07cbLruq/54jH
+ DQ6S5Tef1X8arqb++jWSlWjUXyBklYqk1ZyrP4mAm+xupGNX/0Snqj+ISv35SfUn+d4m
+ vpc8OtMxD83hzP321L+g9uuqPy5uqD+pVv0BTf0xJqr6M4W4+hMACV1YWHzO6r8QlpH6
+ 69d0QYlG/QUi6FLR0qELajfgNnulY1f/QKdRfxCV+vOT6k9SMZdmgimhFUpO7Bw4yUo1
+ 6i9Q6k8EIykSIIW2bOK7PuIVbLlRf21PMPtP/Lr6k2jVH1AtZ0VLx4hX3DjgJhtvXANI
+ OYlOUX8hGoQEyU7Tp2Z/YiS/1dm/ovbPVf/HUc9lQ36sIysBShJm5k0HwUGmhdXcO0zV
+ HeNJFsoxjjMBQqIq8gVXWdwWRZmIJC3aGeCP6OaimD4xHbYWyCG8eWWFUM5KQLVW6wja
+ Et0iirvuBCwHvs0L1saqtpEwnWG68ktUCVxkh9AFXrHC3RNRzJUw67gRmSQGe9kP9o5W
+ xsQ2QAXoX2yJZDBYgJhqfNuvBFrldA872xrT9VB0jYzlIseXnYtt3OGF18F8nNgZu2JV
+ rgPesaK22j3aFDxeUcVtl+rdcVCKeJeLS/14GJaSI8FIoxBDOyWgKDr7ai4BGUzDjllb
+ JIAlFcQVCYyMqxVWVAnILlsIalcJlGpVAiPsvR6EMIsERqRLZ1UChLFdQxoJjIRUd4Iq
+ VQIaovOBnIoEJsJDriZFAvJujhE1SQlMWJnaEUgJRJ1GAmIJkWuFmkMC8u1mbbDdc/Ak
+ geQrEnhtVpg03SqO8FkRzu7G7noU4Xzgb7QW18LGwYrfrNCZwgGW1jyH9tmU6hkKI2kQ
+ LTK8DIBJNl/qg+3cUsfShMy0xVAbkC5425Z6wouiT0s/k0brZdl7xtI0wbdoGwmU9MNU
+ fDec1GaDbO3AqCz02uJUoZcGhkqwkFioTfzxdOVP5xkiXSou0o0PLFCFPyO7n1qqrBCj
+ 3ZmYDGZH3fmDgeUbJNanpRv++EeRNmYTDtjusNHs/ZDblRSFm++Gk/OnIFv444RUeqW+
+ QEHg62oLRUyWFlk0xX3BmrvR19edGXdu0mO5dWa6N5/tzNwi98kF7QbNN/fuTDk+UYbS
+ fQJ3RuxbLeQbg8vSVXlY7xTdt3FDZLEOLqaZMriIxYTyEKhFqUzDUnnYuXblYXHw3T8J
+ 0NON8niGjYtoojPA2o7BY+maW1Px3XCKwZXIpvIElda3kRTKEwS+OrgOKajzZ1SauESZ
+ OyzDxw0B0TK4WAQLf/wkhQ+uicMLp8FF5NGOtDBwPWUyiXTDH/8okksTDoj3Rj/mn9I1
+ t6acP45TDK5ENvmDbyUqxR+nMfnj+Z8xuCbbRfyNDq4GuX/m4GK25R/jCGcV7hFx0uEV
+ GSYaNQ4qtEkkwqQeBTzutxKWm4i48VmVCbTYyZcAF76yr6DK+qqDOGxeK1IdbelAjTYe
+ rKsAEpEAqawxp/EYOXjQbWMJWlf4LPHVwJeBLBgY4+GoXlfpyU6T3JY5ZnO0GY+GnnwO
+ Z+lIpAkqk6UBNiyNHOfSiA0oLgXTRrbkr9rV8q+yEG3/MkC+Bv+DpfhVKuAsDSBZ6qCE
+ mdRFAeeT9pmtsQC9q+RU9Nx+61qAEeygY4zUAyz0ZKdJrnHQAejDkG4y4NYDC842V21/
+ Va5fNeFOKyHbbzdrC0vg1xmda4JyFscjOGe/77JAWQN/8aLdm49t/C5DbGXYEFQv4wSs
+ Z1ugQ2vYxsO0boZNN5v1VNQswRg2DpZhk6APm9qWD4TOuyrDxhEpw2ZGmu2wmU9jEFvf
+ h6TGCdxvwVeALFiGjder9ESnBCpsGjkxRzI+ZTwaNjLKvVBoRrI0tKZhaeQ4l8qwCRBE
+ GHPgawx35UXzA0xNL+KJgeAsLcPGEQmQyslSz+mc+DJsAsxhcwJfBoKlWICGMb2YZCo9
+ 2WmSa/oWQGVpZDBsdCDqfL6jDpt5lXudns/tsLmJMP+p+38Mm/40bDhBen84Qv4rbqhc
+ 1IEAA4Nn3PENR0LyOu52PRQ/zmmAmKfOqwydnVlhCxmfH1o47zOOzAXUxT8diIfKTzqI
+ R2gC0vKyEDRQMc5Paa/pewqe65q7PnBSaeCk0kM8o4Jcgn0niFA7k+E/TLiqtTPcAuxK
+ HeVqO2vqal7Lg1EPuzMHgnAAiIkhI/+rMasHKpCIBPPbSshRnavculQKs9R3kPV7mPYy
+ ad5+tjdy8CTb09HjJCJKdZ/E3oUqr/5YJhNMClWHypjjFSKkFRaPkAN2brK1CIy84GGR
+ qwIlzupGhlH382XIMp8Kk51pnQrtiM44xsD5Olei2pnKRd1PcUHTzEGYCsFAnDwUzpBw
+ 1OGYtNem8BoLvIuUA77MVAv+BHLfZhJelN1dggDahlkIkmHyEgPhcMHM1gyB2s0i0fiO
+ D2qbyF/U5lJDY4zTIWOgZv2N2nRYOZ5R+4MEYuGKEUoV7mqDbWFG91jJKjMIe42r7VkU
+ Zugk7WBxbjWTzePqEC8EOTEjCMfNIVriiKi6M0jbUI5wg1xT+zt0/+Whnf1hexBqCuZn
+ fzoSGozO/lAM9oBcIE1/TW1Rce+mlhzs7JnzTvTb6bCdrMKZWB8wBysEM/9zMm3RMSzP
+ 0Brkn1mwZQaXDM7J2QrnBbrJ4PPXM0Tf2ZisXfUVMAd+3EzJzjmAIPsgcXOI+oHro6/n
+ b5VOL0tfVw7V2gFeb5oT5qKrdh0Zk+FG/QKLTuo7DN+SEdlgMMr5GmyzlfGUI2vjpXlX
+ xnrIhYMgigtUuTjcyMUzknULBrdZeJHRLYt5kYW3Dtfi+nqGqlwWzXtVLsQPwMWEnkqx
+ EE+tcnGoyuXR15ALbalmkQt+suBGLlE52F67zgzDrcgl6CxygW/JiJRLMCqk4FArF895
+ H2uKZpl1WTnxoBmBw9CstBouLB/XVSFtHSvRUe1ZMUaWqcwRCizDw+jHfVWo6o4d2+Zo
+ blEmkDzYUCh06Aj8hZi6yngraJAdSps47uI9ZYbVcnRKlmbFexzvNwBMxYIWnSveMcUq
+ LZlTaeEQoRdK1Be8ZvDkUHEMBDtlOHA2u9LCMhbH1JOWhZPicIRNgqClZFTWZhb2caUl
+ u/f5XQdbzfKadbJ60I4K082OWWNEsDQrhzmbSZuuWMmGjf2jmqP9jAG/NGupd+Y7mS/o
+ N6eOdRq+5mD+DRxwEdKqR0usvbudPMzWqcfJyo2rSDPysv4TrjjWWnQ8cmiclrLtyGn6
+ r/WCtpdOSyUXbBCAl9apwEIiAKvKBQZGyQkuaEqwWpULHIVCsQYd2U0uLPIkDp3tDy6g
+ ElgT49XO/AaPyeOIyKxTu86FhLvE8VQraa5t15zsP7mQWOIefnpVs5CC9oKQhyIdzHIB
+ EW7QTLNKUDP815Rmn+L4UcmwPecKyZYtELcZbAOjNjVONBW9YJwoxsE64btR1NTivel4
+ kAwG7Qv5p2imZOguSX7WFlmm2eU6p0spvpjFnU0ySn1XvHQoIhMXXZRjULXwS15vKcPm
+ aOEgUlRvlWzAZMrCjBhMcZZy1UV8CAYvZrJVSLu/g/gfwuCYHWWdg0pXDgpqOCgwGbYg
+ iCDXWMoJafG+fq7M1pc2vyll9l75FmTgEKTIRGRykPSJg8Bpcr6wYvjtCBYDbmHg8Ka/
+ tug+T2aJPAR3cNWx5CVC88iisbE5XDK0fYaRykCoWTt3RTDMazOwXefd5UJYVwFTB4OF
+ iIFtnKoEsyy7UJGXCL2kFVmQJmneHaroIbOYtgsWmVcQXUZWDSiqGdwHOuR+VGLYxodg
+ rP5spuPakh1mT2ISrsRkjpaMBzjahKE1o2MJ51ABG8XGARYGzeLyNlEk3Cy4whytWRwv
+ V6WaDOg8cLrI8WrGf6zGhfMhM2qM7yC6So5u2tlt2VKPBUlLlFCIxpHtzhqFALL/yGmx
+ bKpxJUO+lq59eePMzpHjCNDSLXUvrRqlJANViLl3HHhICGC20J6jmhlQGPSUahJdUL1g
+ TIOYlDVz8F/gjKTp9RijLEBapCofpBZwXQ5q9l9zgp5TNaeaprLx5ENFIPnQoPn6uiHd
+ SKub+2VoRfoQgjCF0ugVmCYzN9h81isZimd1LfRSmt7S/1l1yq5CcdY3O9Qlo4oLaWqm
+ l3bzpc1vqKEU7Ych7M2lBbpmZyVDRw3TyvNLGAUqxJamxIr0a0i39rTz8N70tJhqWuGM
+ p8JnXQxq+SwwmULczGf6kkEUqnJQtyiaL4X/ym9LKTRWykGELVjJZw7LMd6Ds0pT0yHO
+ +J+/3JRKaiyalHz25oKtS3SGEc/AwNHk5J3aL5BJKKFCbPBZlzUKn5WGzwTvzXO3b59Y
+ g9IjmAjW6IZytfQjR7HotNGzUOLG7QvmbMZryUBtmbNPXgsHoq6t19IpDs0FJJnR4bVk
+ hqgOryWzWks/u3+0BJ28FgJBCiBXWpbIaWjJrER94TwLeDZeCxMOi+nJa2Gigl6VCQ9M
+ W4WwDREELSWj0pJZZ6+l4FhWIHMi6cG9Fq7X2pIgItxrgJFaEYDTa6k56bVkLfWeXgvu
+ rq0ITQ42wdlrIZRg653qeeucM8OPbb2WAlcca62wzhFuth05HIXK/mu9oO2l9Sc9Am4X
+ 7r4gFC4sNGLrQcGzyUmvJWtVLtASdszZa0GGtiBVrwWW2WrXcEFqodUupZBw47U0tZLm
+ pbRdc7L/5ELS9nd5LVw5Q63TGhbU2NyAxWuROW32b9rVmNPMDQXC0Kpeiy5nn70WDrIV
+ r4W0aoadK6ixuQWmrVmaqRlm0rgH0nH9uyl6TstQcNdHeKr9hPIsb9rcRmTiAv2tze3c
+ ebyuJP4EVSoHWVecD+lq6MBfuCU6X3nyWvwOa/mMlV45qIvUZ6+Fi3VFTkpXDgpqOCgw
+ yc1mMoNzc6KwfpbZ7pzRlzbdlMKkqhxMMqrXIppbbrQcdO5oSmIb7HGcK4xoxIltePZa
+ Spa6D6+l5CWy2nE5eS12gvrstejczdlr4bz1yWtJWJaieyiZ03otpfNHS4asjay8QsyN
+ 15JZrdeSeQ3nMa5br0WnfW+8Fp3TOnst64Dlim+QXkvClZjMab2W0nkT6Tp5LezZ3Hkt
+ 4uTJa6kZTETmtWS11mvRNf2z16I5xx2LUg+H5MZrkWzPXkvmVK+FaaBWCx+lNp7WeiJQ
+ vZZEk/HweIQXr4WB6vN4471JCCevJTNMCMaHUk1DKXwUPW1w9lpWneI+eS0rDsmN16Ij
+ a2evpckJr+VULbyW2njyoSKQXkuD5qe9lhznXIatsx5xY82xJcAiMKc1veZxXjd4Keqp
+ Lisc7ayznp4luVk3eDyorE6k66w3AdVZj/PiNWxRmilTBL3U+YyXJ8p4u02XUtzOt/3g
+ XDeSjBKrMSJz3YDgdtZz7txrlR+N8mjdssgfSdoENRwUmBzUyxundWPBFK0c5BGOhoN6
+ 7yLYnUsQcaDSC+nKQS4DtxwUmAwrzdQMuwkX3FCf7Zc2XTkoPOu6UcgoHDQig4NKtxwU
+ fOdpcAGx2R/JqVbXAm7Xjcxq143MC2TRGFyDNtqlBxYU7TqpCmvBKdo14Se10a6ANdfl
+ uhEl2qm2wfFeK9p1Y2EEaN3QEQjmRcXTMst4GYtgyaucZyuhXTf0eoKvGyzUvsIveJin
+ dYPXyDCcm3Uj4UpM5jTEcHPccQwBlR2SMl/ypsL9usHe/3ndiAzQy3Ujq0mFYr6cOGdy
+ s27w6NfNusFLMlo3TAYeQpJszbcpUZ4mJ+ZLPUBTlptcN6JxVomSkwjkfFmo++S6wQCw
+ dUPCLNEmhGD2f4l2lYzkQ1YzPczYli7pEO2CW5mz6VBJE+1CUXRd5xzt4h7Ted1gfz1z
+ nA+Is6kWVC+l8eQDV59i4Uo+NGi26waD9PYqOtEuJlMejEJjRl3bIcXIpF+bqgSOXH/S
+ +S/LcICHeDyb+30qTQFsIZsJa1VGq7Voo1adWIQdKaocMVbApmJnac3VkTj/eLa/atGg
+ U1sD0SDkqfs+ky+ZgipJeDJIJtWSrLilOuflFmHKPXLiNOwAO8kLB7uc5IXwa/AkEgu7
+ MCJZv8ZXJZ77RJLdbq7201hWVJrmjDYlAj5l22V7chKd2pooCEI0PReaJPGbw3blnJue
+ ZbJ3GX5758nPqGk54czdzRNP2laMm+c3x2n/8asaenOs6IJSjS4IlPgnTRF289wA211S
+ iliB64IegAplCV2YOB4gXdCv6YISVRcsX01ERclezZkuKLHZPbtzNocPuMnaoJOaxXax
+ 6YJ+QheUfKT+snNQlaWMeKUakgWaxhPeiwGNlnLoKdTfHsCyAizJ4gnjI9WfzQNTf9sM
+ VickGpIFgr2elDJmKk1zrv4kIFnwKdveeVBOolNIFqJBSJDsNKX6dw/eErNXyfQSxmvq
+ f3viVA8vdC89vOAHtV+6q9Q/uqvUPX54QaetCmqfVP+CJA986Ymzf/imEizUa4o2FRLR
+ s4BPClSgqb8OuRX1t9dSLJsLsqH+es9PR4JSF9hsBpD6W1BVnZBodEEgYrWHAFVRaZpz
+ 9ScRsEZByfZ3WSiY6BRdEKJBSKq/0XRv0KX6cwDXZ38dxW3VH9C0mxhUUX8uUYX668KW
+ k2yP5Z3UnzNRRrJ+bcQr0ZAsELKyoqe1rFjmwE+n5gPybDq2Ea839QydQrLwlvrzk+pP
+ 0u1yzf4vqr/Oq/xG1b+g9uupv56n5BYvh87ec8mO3Q1Lc6mMsI2pvGcQ6sFgKRc4BehQ
+ HI9m8EGrg+Z2T/sNBxqLBiaMaW4h2QVvpbg0Rp+eqxOtGY61Ymxl0lxeksi2sbb8g/p5
+ lPLvjpOdkq3Ilg6MEPZKk15pTYUeLRXSE5Xgj365qAcNnq78UYMiD1QX4kjoOLdgDdBh
+ TueP5u7kDyuJn0ws/JHrY/zhHUulnD+ebvjjGSK+NGGAte30ez/kcgIqOeWp+G5Xupw/
+ BdnCHyeE/4PG4E8QWAfWozcq7SVQf0/wtaF1Y7P8Wrdgee+IN9DEWkPuk4PrBs1/fG2B
+ mbjyqTpKVcXB2nG1mbhqYSPNhg8ebwwqNtpiSGH1ae5rhhQzqQ0om2klMgIylC6yFGjj
+ JKoGIFPbs3cdGmAhwVaP3/hC/64gBa3aKAhbX/zm4IEIPMj7ZaYMHQ6wxMCxA+xV6wFt
+ nHAXyyZ2APaX5TdYNsf0nXqi9MGenFB4LsKo16+wFi+0thZEAY28UlU0LvYKXqZuf2OA
+ 0H8Mj0QrG8UyE69gK79JvdKfMTA4TvnqinOjb7/msCio/TMGxU+P7hMR2kJtOBOEuYHh
+ u2NLcJJJ2hqGKpa1XSLyo6y8/2Fl5KXJBTInNeqRZ1G7Co62z/yozuv3LUqNxQ9egR1X
+ hBw7kLXoagHtyJ4OVAVmtU69ZfHgKo8sLSwpUc8EVKk3MG4OZZMR3jsRG0HeQENvEsOz
+ Bo2mzucS63E3u8NUqPNAaAEtYtv0ErE6iU/yeu2svhOrpyIaYgXeEov7fyvZ2AktxLKo
+ WpEzxbXiZ1LMVKJI44libW1iwibF2ppQkTNzs+JnkD0T9bJ39HX0mylHrOLl9Au2aWbE
+ pSJOheEH2EqURexehbT8mU121bELI5Yh8+RU43WavawdP2dGTgR4WsFpiwzOOEdGtm41
+ /i4yCbIZw0ovmXEik5klC8CdlKahgZsVY1viDSKt/GeRyC2DbJmnQ12+HHZxlnMcwpCr
+ Letl5VTe11+8RpArd2E4nKTxqlDyoYdzBLIq6DkRvVokUCcjNn0iTqtnNQvMd5aS/Mpp
+ EJ7j1LGpqMqJytqsHUOW9qhTO6OtIztoo17m0ZFt3dGyT95Owh3XMOilfA0calUQrM0C
+ KBj82sCthXnaryXcXvqr2AMW0nCR9dJoge3CcoHYbjC2FMI5IFwJt9PDtVPAlnBeBiuk
+ RTsFLreHjS2BQyUcBGuzAE92i+UUC+R5c3tutFmrdKlGshRX761Xm0BwQ7+c75fpuwvs
+ z3FxPS+0l3vrtw9Rdm+yyEsPUd5hRQTmUUiQXegD85HA63iD4JvfffzwN57KzIff//B/
+ gQ+PogplbmRzdHJlYW0KZW5kb2JqCjk5IDAgb2JqCjgwMjgKZW5kb2JqCjk3IDAgb2Jq
+ Cjw8IC9UeXBlIC9QYWdlIC9QYXJlbnQgNCAwIFIgL1Jlc291cmNlcyAxMDAgMCBSIC9D
+ b250ZW50cyA5OCAwIFIgL01lZGlhQm94ClswIDAgNTc2IDczM10gPj4KZW5kb2JqCjEw
+ MCAwIG9iago8PCAvUHJvY1NldCBbIC9QREYgL1RleHQgL0ltYWdlQiAvSW1hZ2VDIC9J
+ bWFnZUkgXSAvQ29sb3JTcGFjZSA8PCAvQ3MyIDE3IDAgUgovQ3MxIDggMCBSID4+IC9F
+ eHRHU3RhdGUgPDwgL0dzMiA1NSAwIFIgL0dzMyAxMTMgMCBSID4+IC9Gb250IDw8IC9G
+ MS4wIDE4IDAgUgo+PiAvWE9iamVjdCA8PCAvSW03IDQzIDAgUiAvSW05IDQ3IDAgUiAv
+ SW0yMiAxMDkgMCBSIC9JbTE5IDEwMyAwIFIgL0ltMjAgMTA1IDAgUgovSW0yMyAxMTEg
+ MCBSIC9JbTYgNDEgMCBSIC9JbTIxIDEwNyAwIFIgL0ltOCA0NSAwIFIgL0ltMTggMTAx
+ IDAgUiA+PiA+PgplbmRvYmoKMTAzIDAgb2JqCjw8IC9MZW5ndGggMTA0IDAgUiAvVHlw
+ ZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRoIDQwOCAvSGVpZ2h0IDEzMiAv
+ SW50ZXJwb2xhdGUKdHJ1ZSAvQ29sb3JTcGFjZSAyMCAwIFIgL0ludGVudCAvUGVyY2Vw
+ dHVhbCAvU01hc2sgMTE0IDAgUiAvQml0c1BlckNvbXBvbmVudAo4IC9GaWx0ZXIgL0Zs
+ YXRlRGVjb2RlID4+CnN0cmVhbQp4Ae3QMQEAAADCoPVPbQdviEBhwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg4B8Ydz4AAQplbmRzdHJlYW0KZW5kb2Jq
+ CjEwNCAwIG9iago3MjgKZW5kb2JqCjEwMSAwIG9iago8PCAvTGVuZ3RoIDEwMiAwIFIg
+ L1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0aCAzNjYgL0hlaWdodCAz
+ MDggL0ludGVycG9sYXRlCnRydWUgL0NvbG9yU3BhY2UgMjAgMCBSIC9JbnRlbnQgL1Bl
+ cmNlcHR1YWwgL1NNYXNrIDExNiAwIFIgL0JpdHNQZXJDb21wb25lbnQKOCAvRmlsdGVy
+ IC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAHt0AENAAAAwqD3T20PBxEoDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw
+ YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA
+ AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMDAz8AAKVMAAQplbmRzdHJl
+ YW0KZW5kb2JqCjEwMiAwIG9iagoxNDk4CmVuZG9iagoxMTEgMCBvYmoKPDwgL0xlbmd0
+ aCAxMTIgMCBSIC9UeXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lkdGggMjU0
+ IC9IZWlnaHQgMTMyIC9JbnRlcnBvbGF0ZQp0cnVlIC9Db2xvclNwYWNlIDIwIDAgUiAv
+ SW50ZW50IC9QZXJjZXB0dWFsIC9TTWFzayAxMTggMCBSIC9CaXRzUGVyQ29tcG9uZW50
+ CjggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7dABDQAAAMKg909tDwcR
+ KAwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDgeWCI9wABCmVuZHN0cmVhbQplbmRv
+ YmoKMTEyIDAgb2JqCjQ2MQplbmRvYmoKMTA1IDAgb2JqCjw8IC9MZW5ndGggMTA2IDAg
+ UiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRoIDI0NCAvSGVpZ2h0
+ IDExNiAvSW50ZXJwb2xhdGUKdHJ1ZSAvQ29sb3JTcGFjZSAyMCAwIFIgL0ludGVudCAv
+ UGVyY2VwdHVhbCAvU01hc2sgMTIwIDAgUiAvQml0c1BlckNvbXBvbmVudAo4IC9GaWx0
+ ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Ae3QgQAAAADDoPlT3+AEhVBhwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDDwBgZLvwABCmVuZHN0cmVhbQplbmRvYmoKMTA2IDAgb2JqCjM5NAplbmRvYmoK
+ MTA3IDAgb2JqCjw8IC9MZW5ndGggMTA4IDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlw
+ ZSAvSW1hZ2UgL1dpZHRoIDI2NiAvSGVpZ2h0IDE5NCAvSW50ZXJwb2xhdGUKdHJ1ZSAv
+ Q29sb3JTcGFjZSAyMCAwIFIgL0ludGVudCAvUGVyY2VwdHVhbCAvU01hc2sgMTIyIDAg
+ UiAvQml0c1BlckNvbXBvbmVudAo4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVh
+ bQp4Ae3QMQEAAADCoPVP7WkJiEBhwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGPjAAFzaAAEKZW5kc3RyZWFtCmVu
+ ZG9iagoxMDggMCBvYmoKNjk5CmVuZG9iagoxMDkgMCBvYmoKPDwgL0xlbmd0aCAxMTAg
+ MCBSIC9UeXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lkdGggMTIyIC9IZWln
+ aHQgMjcwIC9JbnRlcnBvbGF0ZQp0cnVlIC9Db2xvclNwYWNlIDIwIDAgUiAvSW50ZW50
+ IC9QZXJjZXB0dWFsIC9TTWFzayAxMjQgMCBSIC9CaXRzUGVyQ29tcG9uZW50CjggL0Zp
+ bHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7dABDQAAAMKg90/t7AERKAwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgIEPDIITAAEKZW5kc3RyZWFtCmVuZG9iagoxMTAgMCBvYmoK
+ NDU0CmVuZG9iagoxMTYgMCBvYmoKPDwgL0xlbmd0aCAxMTcgMCBSIC9UeXBlIC9YT2Jq
+ ZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lkdGggMzY2IC9IZWlnaHQgMzA4IC9Db2xvclNw
+ YWNlCi9EZXZpY2VHcmF5IC9JbnRlcnBvbGF0ZSB0cnVlIC9CaXRzUGVyQ29tcG9uZW50
+ IDggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7b13X1TZ8j187wRnzBmR
+ oOQcJEkWJEcRJEqOipIkKIggCEqWoAgYEBQFc574+36et/asqr3POd2ADjY6Vxv2H9A0
+ 3U2fRfXaVatqV/3nP+trHYF1BNYRWEdgHYF1BNYRWEdgHYF1BNYRWEdgHYF1BNYRWEfg
+ W0fgv9r6Qbv532/9bX9n74+Q/UGuH/WXcjc95Du7qm/v7SowA+KffvpZrg3Kkj//9NNP
+ P/7IsK9DbvC/UCINnAnVDRt++eVXWht1Ft/x6y+/bNiARyiYr0P+uZALpAXQDPPGjZs2
+ bd68ecuWLVu3bt3GCze24mfcu2nTRuDOmANysvJ1Wlkx4hJqMukNsOeNgBkYb9u2ffuO
+ nbR2ycU/7NixHdhvZdCB+S+wcoH4uomvBHDeEIk9GGkCets2oLxr9+49e/buNTHZp7tM
+ TPbu2bNn966dOwl0YE5WzoiTia9b+KcB14UaNr0FBg2gAbPJPtP9ZmZm5hYWlrrLwtzc
+ zGy/6b59QB2YA3KB+Drgn8aZfqtgDasG1FsJ6d179hLO5haWBw5aWVnb2Nhi2YlFN22s
+ raysDlhaWgD0ffsAOSNOJq4Avm7gywJPWDOD/PqrgHoXIW1mbml50Mra1tbewcHRydnZ
+ xcXV1dWNlquri4uzs7OTo4O9HaF+kCA3BeK7dsLEGXBwOBhlHe8leCtYw6xBINtBHyb7
+ 9ptbHgDQdg6Ozs6ubu4enp6HvLy8vX2U5e3l5XXI09PDzc3F2cnBwc7WGmYOGzdhwLds
+ ZgNfx3sJ1v+hWBE7o8B6x05YNYz6oDUs2tnFzR0oe/v6Hfb3DwgMCgoODg6hFRwcFBQU
+ GODv7+fr4+0FzF0BORA/aGluRoDvIAMnQlnHWx9vadgbYNdbt8GsyaoBtYOTi5vHIS9f
+ P/+AoODQ0LDw8KORkZFRUdFiRUVFRkYcDQ8/EhoSFOh/2NeHIAfiDPj+feDw7Yy35BP9
+ P7l2fxKETVhvYazNLA4Q1K7unl6+hwOCQo4A5aiY2Lj4hMSk5ORjKco6lpyUlJgQHxcT
+ HRkRHhYaHATIvTzdXZ0JcAuzfXtVvNfNW7EuNmwikU1btu2AXZtZHrSxd3Rx9/T28w8K
+ DTsaGR0bn5h0LCU1LT0jIys7Ozsn5yStnJzs7KzMjPQTaakpx5IS4oF5+JGQIH9f70Pu
+ Lk72tlaWZqbAG3yy8VdJJ8qfXLvfCeyffmYS2b6TsLaydXB2g1UD6vDImLjE5JS0ExlZ
+ Obl5BQVFRSWlpWVl5WKVlZaWFBcVFuTnnszOzADmSQlxQDw0yN/P29MNBg68Yd87tm0B
+ fQv2XrswiysXLMKGvXO3yX6Lg4T1IR+GOjYhKSUtI/tkXgFQLq84XXmmqqq6plZdNTXV
+ VWfPVJ6qKCstLizIzcnKSEtJio9hwH293F0E3nuIvsm8yRlcFm4E+VjYp3mJn5Z/5LJP
+ /37uVMDevHU7SMT8gI09sPb1Dw6LjElITk3POplfWFJWAZhras/VNzQ1nb/Q3NzcIhZu
+ XTjf1NhQX1dbXVV5ugKQ5+VkpR9PTgDgIQF+Xh6Et8V+E9AJvBOwyWLfWwNZXzVnZYse
+ bFyYE9g//4ztcdsOGLallZ0TsA4ICY+KTzqenpVbUAykq2rq6pvON7e0Xmprv9zR2dl5
+ 5cqVrq4ufO3s7Ljc3t7WerH5QlNjfV1NVWVFaVFBbnb68aT46KOhgX5e7s4ONgfM9u3Z
+ qbKJCqC0Zk04V1RzUm+xjE/AZbCJsrcRYx+wcXDx9PEPCY+OP5aWeRJQnz5bc66hqfni
+ pfbLnVe6r17r6ent6+/vH+CFG/19vT0917q7rnRebmttaW5qqKs+e7qsuOBkZlpKQkxE
+ aKDvITcnOyvL/Xt3gU0U8maqAGlIQVcI56Sab6KF7ySbQzTXIDcKIwdX/oj9Eb7Izj2m
+ FjBsd6/DQbDrY2lZuUWlp87W1gPptsudXVd7evsHBoeuDw+PjI7prNHRkeHh60OD/X2E
+ eWf7pYsXmuprAXhRXnZ6SmLM0VB/H08XBxtLM5PdO0DevwjXm+iZcxRC0CVFV5PNt5Fs
+ TqI5oS4gZ2JRPxTfD03rv1OA/dPPDPbe/ZbWMGzfwCORcclpWXlF5ZXV55qaW9sJ6f7B
+ oeGRsbGb4+O3JiYnJ6embos1NYWfJm6N37wxNgrMB/p6rnZ1tLc2N52rrqwozgfeCdHh
+ QYe93JxsDzKb8F4JiuCkm5TOSdDdvoOEc0U2h3wLacvoBFzwCMDeCMsG2DYObl6Hg8Nj
+ klIzc4F1Tf35i+2d3T19A0PDYzfGb01O3r5z5+696en792dmZmZpzczcvz89PX3v7p07
+ U5MT4zcBOSHe3dneeqGh9mxFSX72ieS4yNAAHw9nOytzSd4wVyyRpADSSFDsIuFcyOam
+ phBvId+Sam5kAi6D/Qtx9l4zS1tHNy//0Mj4lPSThWWVtQ0XWi93XesbHB69MT4BoO9N
+ 35+ZffBwbm7u0aPHtObpy6NHuOPhAwB/f/runduAfGzk+mDfta6OS82NwLs4LzM1Eebt
+ 6+lib2VhCvLexgwBht6sCbpC0WXd/MABiLeQb4VoTpr5TtYThb71PQsuOmDvt7R1cvcJ
+ OBKVmJqVX3q6uv5Ca0d3z8B1QD15++70fcL50eP5+YUnT7GeqYt+evJkYX7+8aO5hwQ5
+ EB+/MXp9oLe7sw14nykrzDmRHHs05PAhVwdrkDdcb6QbQNKUDpKCLpRzKwjntiSb29vb
+ 2dnhFqnmBzQBl/UtCIqS9b8Lt5BdAeWL2KeEZQuwg8AiaTmF5WfrzgPr3sHhMYZ69sHc
+ o/l5wPzs+YsXL16+evXqtbZevXr5Evc+f/YUmD+em3swAxufHB8bHuq7Crzrq08V52Wk
+ xEeG+nu5OdoeMDcl8ZsW2AOCrpkQdO1JOIdszqo5dHOo5iSa27KAa04CLvSWbcjCKYLi
+ R4Ik/U3pf/QTACYngJcWRFDiUdkgbZ08fIPCY4+l5xafqm5oae/qGRy+cWvq7vTsw7nH
+ QPoZwfz69Zs3b9/xes9L3H779g3Qf/WSIQfiD2en796euDky1Nfd0dpUd6asIDs1MepI
+ gLc7yBvKCXJqyG5yloIFXSdnVzcP1s19fHxp+UC+9SLRnARce9IToW+RYs4CrlRcvkm8
+ JdB6tTcUOXB5CNzsrTt2mZgdEGDHpWTklVbWNrV2XusfHrt1+97Mg7nHC0AaQDPM7z98
+ +I3W7+riH3/78P79u3eE+asXL549XZgnC78zCbx7u9qb66sqinLSkmKYvCmSJ06mvJuV
+ jRB0Pb18fA8L3TwkJDQ0FLo5q+YQzUnAdYFkbmNlCQsnQRExkqpwfVt8Iixaqb2RpTcU
+ N9AS+xSrUAdsnWHZR+NSMvNLz5xrbu/qHRq7NXVv5uGjeYKakX4PnH///Y8//lxm/fHH
+ H78D9g8E+evXLwE4LHx2+s7EjeH+qx0XG2tOFeemJwNuPy8oVXZEyWBpZCmEoOsP5RyK
+ bkQkVPMYWtHRUaSaH9EVcO1g4WamoH1WuBRF8ZvBm6FWim8kuFx7Q1EEl+DQPrXbhGIa
+ Z08BdkFZVX3z5e7+4ZuTd2cewqyfM9TvGWiC+a+//sb6fzqLfv7rr7/olwQ5EIeNv3zx
+ 9Mk88L49PjrU09naVFtZkpuREhdBkQ6l1ByJpZGl8IbKCOkcynkcFF1d2TwJ+m1cTJQQ
+ cP18DnmQYk4GruBN+yWY8ZuAW0BNIYRInnNJiAwheI9S9ilT8wMc05BlZxWUVzW0dFwb
+ HB2/Pf3g0cLTF69ev31HUMOiCWcN5P+TS7uHQJeIA3BQyrMnjx/O3J28cb2vq+1CXWVp
+ fmZKfFQYtG/KY1J6k7IULOhCZjwO4TwTsvnJXCzo5tnQb0+kHYdmHkd6YnAACbgujnbW
+ B0Ao5NbQfvmNuIOENVk1RxCwZwrVOILg2huKIky4BGc/MjRWdo5uh/yCI+IF2Bc7e4bG
+ Ju7MzM0T1u/AHwy1grSC8pLvAnZGnEz8/bs3r188W3g0Oz01Ptzf3d58jvfKpJiII8GB
+ /v6U3oRRH42MiSdBF8p5fkFRMXTz8gqs8vIyUs0hmrOAm5wQG3X0SDD+TR6uTvaEN7mR
+ 30qCgtwPtUwBfi0DrVN7YyEWQoiDVjZ2ji4e3v4hiGnYslsJ7Ml7s4+egEPIrMmqJdRL
+ EF58ByOuAA68X714Ov/w/u3xEYK7vqocnjeEqsij4WFhYUi8RcclJENlzMkrLC6tOAVF
+ l3TzOiyI51DNIZqXk4B7Mis99VhibBRSFIdh4Iw3J4S+hQSFxJoIhIwazAy3FiUherU3
+ iB6w7Gif8vAiZST+uAr2jcnpB4+fvgCHfBBYE4iLgf3YzyrgMPD3716/fDY/N3Pn1ujA
+ 1cstDdUVRbkQBpPi4+PikN+EUZOgW1RaUXm2uhbCOenmLRdptUA1b2pqOEeaOSRzCLgZ
+ qclIURwJIt53skOUtG8PSYrsnSxWzP89L1vBWlTfAGpRfEMlIUrtDVXf8EIogX3KD1J2
+ TGJqNnE2WTaBDRZ5/Ums/z91LYWdACcDB94w7+cLDPfgtY6L2CtLC3KR3ElLTU1LS8/M
+ Ju0cgm4dBN2WVgjnJJtDNSfdnFTzS0LArTl7urwEzzuRkhQbGRYMvF0dOQGno5j/TzZL
+ 5mtOMEJB3Q6rhlGDmcnZoghC1t6g3oaXN3m52KeiIPllF1ZUNRBnC7Bfvnn32+/EIQSd
+ LqAqyro3dB9AtxW8Yd5vBdwTY+SanD9XdQqphjzaCSnzVg6o65suQDon5Zx1cyGbD7Bq
+ frX7Cgm4zRBwq06XF+fnZKQmxUWGB/t7U0LoIKJSNm84Jx/Nv31FM1ex/pUrnaj6BlCj
+ zImcLU9RexNAtTfKCoGXGxmNFE1GblFFdaNm2QLsFWLNuC8CnPGGef/24e1rWPfsXcBN
+ gU5jLagBeyB2w9OVVaSdt7Z3QNCFzDg0PEy6+Q1a+D46PDwkBFzoiQC85kwFPhiZaVAU
+ w6Dgujvbk+hC+bdPpju/GtxEIuyGUJXCzj0mpkido0zBmd1aGDHX3hyNiEDxjVhR0TGo
+ WziWmpFdUHK6BgEkb5DgbAL7D2HY+ijqGvSS2/oPJbzhEQJusu5Z8gQR6LQ2N9ZjB6Tt
+ kBJC0M6FoDsK5ZyEc1U2F6K5joDb3FhXdbq0EHiDT5AQ8oToclCRcJdJd341mMULA2w4
+ IkicbwaH7DHZbw6zFmUK5NaGUQQRG0+1Nyi+EQslOKnwvpAOqzhTp4A9SxvkMmAvAXf5
+ O3QgB9x/A25BJrP3JsdHBnu6O9qQwMSiFCeghqB7fWQM0vmUEM412ZxF89uTt6AnDg/2
+ QzFva2mqr64sK8zNOJ4UczQEdOJsr59/+/cyO8QisiIEKS/C2hq+nfshn8OB7NbGJSi1
+ N5lUfCMXFYjAJzhTU9/chmj9Brl+DPbviy17eWyXu1fDm+H+47f32CqfwPG+fWtseKAH
+ ybSODiSSr3BCSAi6kM6Fcg7dfJ4WZPM5Es1npknAvXUTgPddvdLeeh54lxbkQFJEmOQL
+ CZfSyyhWofwbSrH+LbhVwwaJ7N5L8aG9k6unF/yNsIhoFN8chw1nA9rCoqJiFN8oqwxu
+ 7tnqOuQNOq72DzPYT8gbWQL2/y2H60fuWwI3eSaIK+/fZR0WWWOsPkq9Se0c0hdkRhbO
+ nz17TuvZM1LNhYA7O33vzuStGyND/T1dl4E3+KQgG3QSEeLv5Y78G7PJvwo3gY26Mgh6
+ stQJVQqe3oeDQo9Gx3HxTW4+Igil9ga0WU2rpqa27hx8gpZLpGWPjE9NU1Dz+u373/78
+ k5wRFbaPwPqRu9WnsXPy15/sCCLOIZkKiYaxEWSNkUim1BvSFNDOWdCFcg7hXJXNoZoL
+ zZwF3Pv3kKIYuz7Q09V+sakOkiJEl4SoI2BvsImFKVxB7JX/lnWrLMIVIRZWto6uqFII
+ ouobhMWI1UrKTlVWVaP2ppFqb6j4BuRJXy+CPTuuXO0dGEa0jqDmyfNXAPsPfbA/x7DF
+ f0AFHNQt4H794unCY+jeIIbJCaxJTr0R1CToQiMQiu47HdlcV8ClZ9Ing/BuaaythGJO
+ Em6wHyeE9u9Frcq/BLdC2VykICpCEIsD6zhU32TnFSJWq2IPQNbeUPGNXFe6yM3tR5J3
+ fAqaH0kj7Gj/pWPZH7HgT96tog3X+28Oc96+fvn86fyjh7NIGt+7R5nkGU5TsKCLsJUE
+ GV3dnH6AnCgE3Of4T83N3r87Bbz7r1FCSJi3SAiheILh3iSs++s6IwCbfRGqK9u7nypC
+ 3Lz8GOvUjJMFJQQ1ubVtHEFw7Q0V3/Rh4RsXiOBDPXlnepZ1KAE2eEQB7JOofuKX8vn4
+ t3FUiSgeqiDJ3nMPsZBJBlMr2jlL56pyzuItqYlSwIW+BcUcAu4DxnuonxJCCEvzs1LB
+ JgHecAUtzRDoKNb9NeGWYHNdGYpTqdTJNyA0IpaqFAq5+uZ8C/taPbQxce3NqLIomLhJ
+ +XTQ59zjJ89IG6EQUgfsz2cR5T+gwi2CeKHCPqfND0vkOF++1gRdoZzjnyMWi+aKZP6O
+ BEX6aABvdiSvsHkXUkIoLNAHe+UBMxMJ91dVvDWwUVdmftAWhk0VIYnHM04Wlp6uouqb
+ y1eo+OY6IrUbsvYGBTdiIZggP3cGWHPiAJwNfXW1PCLxFnADPNK9f+c0A+V1xHopcm+L
+ BV35mdIwZ8mcBFxBRXMPZELosk5CyNfDmeEWjuDXhFuUOnERH+dgPHwCUBFyLD2ngKoU
+ mrj6hniZSkKmRO0Nim+UNYMaHKpcwIf6+YvXb6CwEtiaaSt2ath3PbhBC8zDlC+mLVFQ
+ ta52Lj8M2jdp5QCcnqzgTYo5JYQunQeb5GUciz2KWpV/B24NbK4rcz3kx0UKWfklp6rO
+ odLpyjXeAm9N3kFJiKy9QfGNuiiawMf6GSXE3kH1U5QoccmGgaw9i1+FMEMqjSH77QMh
+ To4H7YkEtRS+1G1Cw1rc4mfLDwfjTY77HUoIcYaCEkJxCtzwTKiq86tJVBJsra7MPzQi
+ 7lj6ySJUhMCuu3r6r4/evDV15x6KbyiCkLU3VHEjFkUTXLogsObUAS5QXrOGm2G39ABj
+ TvidksXAWaaTZZ5iMcR6PxPeChkBbySE4LhTQgiSOTIUBVkp8RFBTCbkmWzmivyvkqxk
+ P5uqb3aJujJv/9CohOPIm1fWNDS3XwHWqL4hqIkryIJl7Q3Kb+SSH2t2wPhTzbqfcrWG
+ Yaw9S76OwAuSNwGuLjXPqfw1/q48We9ODW9KCGG7hHnfGh3s6bzYUFVRkHU8Htbt4WRr
+ uX/PTtQs0wGIrwC3CjaK+FAQ4u4TGBadBKW6/Oy581QRwlij+uYRim+ei9obosvFCx9r
+ Kl4QH2uKIaVpKxdu+HcFMoYbX0R2Hgl63OA/pP4t5ZE6LpB6F27wC0jfBuZNcendSZbM
+ G6srCrIZbndHG0vTPTu2ktv9FXbKRWBTqVNMcnpuEZc6dfcNjY5P3oVZM9Si+EapveFP
+ s/pF/Vgvyj8ajrL2TAUyBe9F35Vfy+/a83Br0e/wzL8hKUIxZ9nlEUTFG9d7r7Q2Ae6s
+ lLjwIB83B2uLfbvhdkOh+vLGDdJGYRmVp+6XpU6xxzJyS0Sp0wAqQu7cf4CI5RmXKWAH
+ JPslA15usbkJKNSr1Lt2A39QX4xu6EGt9xv+Ybk/ofMoerbYLt+TeT9+MD11c7hPgTs2
+ PNDbzcHK3GTX16FuFew9VDEpSp0yqNTpAomnY7dEdMjOBnu1zBT8GcanmD7KOkvDQefy
+ lrv6z75P5/U+ffNjr6zzLIKb6ITSy5TNR22QAnfmsZiwAC9X+4NmYqf80lzCPPLrpq07
+ 9pha2ji5Lyl1ukeROLCmzLnc/xSq1LDVu6VzXbj5sav/zPv1X/SjP33qVbUn0dtluD+I
+ bD6KJwjuxqry/IzkmCP+h5xpp1So+wtG8IK0N23ZvmefhbWju09QOIr4KG1+kUqdYNjQ
+ 856pWIMoGFjtjf/jrU9d/2f87h//Dj3gn15PexEBN4u4L+EK3r/DcDdUlealJ0WF+nk6
+ 2VhK6v6ifgnxCHy/7bv2mVs5uHkHhscKsDm5OHGXS50QsGjxiuJpaO/8k7f+CYCV/v6T
+ f4R/uZJX0l6FzZuEAFE8Qdbd23mx/kxpblpCZJCvRt1fkksorOEd0sTMyt7VKyAshsFG
+ 2rz3OqdgFkSpkxIbKvGK9rY/cWsl17/ix3zi74hfreSVdF9EmDeKJ7hW5f7tm9d7OprP
+ VRbDDwwP9HK1O2gGr3sThZRfyulWSHvnHrgjzof8j8QkZ+SXVTHYN6e41OkVyXkycb4E
+ 65Vc4Tf2GA1wATf2yrevQCbTUzeGei43154qzEoBdUMxIS6hGOeLOd2CR7bQDmnr7Hk4
+ NCopPa+MSp16hwE2ZQWohk8xbO2N8q1vDMYVvh2di1DhfvPqGTyTybHBq+1NNdgpk6JC
+ fN3JDaQI/os53WTaxCNM2u6+wZGJabmlZ+svgkZu3gbY2B7B2MsY9gqv7Bt9mAq4Bjfq
+ DB/cmxzt74ZjAuqOP0pccgB+CcU4X4hLyLTh/CFgP2jv5h10ND41p7iyvqWzh8CeA9g6
+ dWXqW6Qb3yiMK31b6rUocL978/Lp49m7t4b7sFNWFmUzlzjZWOyjGOcLGbfkke3MI4f8
+ w2JTsotO1zVfRhEf0cgzmVvUkTzE21zpRX2zj1PRprAUjjc8E4Q5j2bujF/vuXyhtqIg
+ IykymPwSxDhfbKP8Lx3fZR6xdvTwC41OziioqDnffnVwbFKATVlzPTHvu7dqaQDLwv0E
+ O+XYYHdbE3NJeIAXb5RfyrjZtMEjewSPRCScyC2tarrUPQCwHxCNGC3YhLkCuLTuD+9e
+ PZ9/eG9ipP8KcUnWsehQ2ihV4151QAnTpi1y9z74I8Qjx3OKz9S3XukfuXV3dv4jFZPf
+ LDl8/hvThZvLDIm6BZfUlOedSMBG6UJeIBn36vdJxbT3mlk5uPuGRCVnFpyqbe7oGR6/
+ 85Eivs+/om/6GTpwk0QF6n4yd39qbKC7teFMMTbKUD8PYdxwS1Yd4QjT5i3SxSvwaEJa
+ bll1U/tV7JD356iID262Pmd/09AZ8uY0uOVO+Rxu4C1E8M3YKNMTI4K+nHEL096208Tc
+ 2tHz8JGYlGzika7+UeyQC8+Xq5g05IK+7efow/3h7Uv4JbdvDl1tazxbkqMaN3zuDatN
+ K6imfcDO1TsoMgn+iOARkPazV28/LKqY/LZhM/TdSbhppxRcggh+cqSvs6WOjTuQ3ZJd
+ 21gtWdU+SdrfJjZtJ0/aIk/CH2kDj9yeQeU1uyPkZyv/fUMv51t/ngY3vG74Jc+wUZJx
+ N1WVEHPDLYE4tWPV+6TwtbdDjbJz8wmGaReePtfS2T8ieYQc7TUAto4fCOqGHIiNchoB
+ PDF3/omE8IBDzjYWJju3bvxldVTy3x9g2luJtcm041LJ1W6/dh3+yGPiEbFDGrtla163
+ qKH9DcY9L4y7EW7JsahgHze7A6bCCVyF7kp75K+bt+82BWuTaWcWVtZf7OpHXAN/BDyi
+ W1b2vasin2QzxaDwQQaXCOOeAHM315bnpsWFHfZ0RISzYwu53IYTN+2RG0mOsnKUpl19
+ vh2u9t0H8/BH9MvcP/luv/9fqtTNGyUx9+0bg92t9ZWFGUkRtE9a7INYsiqvhE2bw0gX
+ dkhg2q1dA2NwtRFEvgePaKT9/eP5D1egwk3M/frFwkP43D2Xz1eVwgkM8XWzl1RieIDD
+ 7h+SCAgjPfyOsEOyxLSVz9g/vNfv/9cq2jBunMp8+ggBZf+VltqKvLT4MH+iEumVGEol
+ QBvu3659FrbOXoERiRkFp88Ra7Np8xapmbZRszabimJWxNyI359jnxwfunqpobJIUInw
+ SjYYTtxij9yzH0kE31CEkSVwSHquq6xNEbt8D9+/6a7gCsS1Uojz+wd2AieGe4lKslOi
+ g31c7SyRVNhkuA/Ie+SWnXvZ/QuPP5FfUQtfmxySpy/JtNcY2IrXDeOGOKVDJblpsUf8
+ EODs34N0sMHKFDvbIBJLWwrak7OKzjQijISvzQ6Jrve3AsMwgofoMDf2SaKSm0PklRSk
+ x4f7ezqRD7gKtCWRmB10cPcLjT2eW1ZzoaN3ZIJ9bT3TNn7SFraiTyXCK2lvOluUyT4g
+ ETd53AbGNz/8uOHXLRRHOh8KCE9ILzhd39o9CIUEYSR8bY21jcBsV3YJqnGDSqAEsjTV
+ caG6lMJJb1fkFHZt3WjoNql4JEwkUceyi8/KPXLhxWv42muNtfkfwnjTPknE/XhG+IDl
+ ucehTAmPm+Ibg1xA0DaidngkTCSpueW1zZ2ka/Meyael5f96ZYZhHI8ScMMrkcSNcPLc
+ qfy0OLlNbtsMp8QgtIm2VY9EJRLskc8QtFMYKcA2DhRXehXSuP8irWT+gfS4C07QNknx
+ DTslhqHNGgk8Ehcv8kiYSIZv3X24AD1KI5KVvk1jeRzBTT4gPG65TTaeKcqA6urpZL0K
+ p0TQNuQ/EdqcLKtp7uyTRII9cm2athRfKZx8+xIi9wSkkqaqYnJKoHGb7yWnxCClRNI2
+ aSSHw+LT8ivOXSSPBMI2EYmyRxqLya74OgSV0DYpnJLejvNVJVlJkUEkA7ILaBjaCm3D
+ /zuamFFU2dB2bYiidj2PZMXv0lgeqKFN0eTkKDRuuIDJQNtFom2Qww1vG9K2QtvQSM5f
+ 7h3m0ObtB5VIjAXDlV/HIrTHkC6rIYc7yJuKeHZuNTC8QSJh0zZB2yExKSfLyP8bm7z/
+ 6ClCG9UjWfm7NJpHEtzS4WbRVaItwhvkJg0KJmmTVLztI3FpeRXnOJCU/p+kbaOB8DMu
+ ZCnatVowaTjaiG0okYAcWXh8ekFlwyVSpFTa5k/UZ7xJY3koX/eyti2YxFDbptjGxNyG
+ EglJmUUUtg/fuvcQ2d+1TNtCdlXR5jIH4u3I1fH2f3/8WXeTLK2+0NGHMhIK29cybbNp
+ K7xNRSV9nSRLrdYnIZeEtG1U7YREK5vklNwk/16TUTuRoQ7aS/xtKbka4m/ruCShMam5
+ FXUXuwYQ25BIQmH7GqVtAfb/UfbmLRVMIZYkgTsjMQL1UtbmBqcTyCXZRgIgsu1xafmn
+ oG0P3eS0DUQSGbYby8638uuQpq3oJHfHr19ra0RJSYJI3nDW3TDbJgdQuiQn4JKISBKS
+ 1FreJFUikYrrOKXKTkMDDDtMNfMGa4AkbpMDiPq/8ISMojOqS8KR5NokEoVH2CV5/ezx
+ zO0bA10X6yryUmNDOQ28m5PuBiiujDbS7VIlqWq63MNxu3BJ1jjaVFHy6ukcZBIK3MtO
+ pkSjWkqUOBiUuyEFUHG3I5OyoJIgAcwOIAuAaxltrpmnghKuTWunGm7hAJJMYlheUqJN
+ VVJIJWTD3ZbiNqkk7JKsfGsxlkfqEolIlIliqcKMxKMBh5zgkhiacye0hQJIpSTZpUgl
+ aJrUmkRbYk0l3HrVO6BtqinWNkkDKhzUUNLVOxj59lJWAPWCG2Ox2BVehwI2F8xzBTcO
+ qVJlWrVekathp/g0tH2Co1JyoLdeQbklSklE4gZ/e4Xv0kgepgs2mfZrcTqhm6ouM2Xm
+ hmnboLMgumhHE9otaxptHbDpcIIoupQnb1BRLDLuhh9OWIR2+dpGWxdscYhPFBRfY4+E
+ /T9Uy3NsY1CebB1tHQpUweYtUj1UhmL5i+dOFUAkkSdBDC4oXoT22mYSFW3yR8SBSa6V
+ J9MuPXkc9cTskeCUk4HnbjS04ZPwLgkPcK3ukgrafKKMGwvQYeBRMu3T1BJGZBJkGwcD
+ 4vb/AG3V3yYPkP3tteoBSrQBtpjNxU0zbg4J006No1M31ujlZfjpVBFL4sQNl6UJtEeV
+ jPtai25UtJUmDqhJo9OSLdK0cQxE7pEG+X//+Y9e5A6dhBJlXJamRu5ryOHW0KYeumjl
+ JXs4EGuzaSNqR5s6w7sKCLT3KkngYqrdoWMJT18qOsmaQ5tZmzp5PV94OM2mXcesjXPX
+ 9tylztA9EkwvFFczaydRlyZT7jhw/ZZKLum/reMiGflNYdvskKDlpS5roycgIhv0FBBN
+ 6gxudURoq7mb9MLKxjY0E+ByYjV3Y+QYa5enoq10OkLDy/4u2cYLyjb3y1hVMxhRKqVU
+ uOLMzaVuPk7GxdsiL6m9HSO/xWgLIkErbjQ6QgPGng50BFzUxcvAPZKYhI4B71aOgcjC
+ NCULvMZy7rpoK0SCPkc44n48Fu4f75Gra7+IehI6dI16El8UXeLQjZSlnqoi4Nphbom2
+ 2gmGWqZ14aCk1g9QdHL9wbAjN7Dt/6oFxd5BFN5otVJrr8RVQVs2lUKf4pF+NJWCRILW
+ oopHQj28VoE2JyYtZB2gPHVDdYBrr3xbD23Zn66DuhylJyJq5y7F2zdvXE0LbnK4N+9A
+ HxgucYBTslyN6xrxAlW0uYPXPHUpRttctLqkboAC7VX2hAbaXL/NrUmofluUpqnZG1kJ
+ uCbwlmiT/IcG80B7nNEWto0xQ6KP66qGOgmnBB2leJv82JGytYk2OYDU6ZLby3tAkuLg
+ ZjUTy/TO3STJ45Lj9xYdl1yLaD9QJKkizE4I47E3q55YRprrFhA39abTegosOQq8FuDW
+ eFuqJAgl0TT3LM1hiaCJZVYwbjmxzJCaS3IBReyuxDdr+Zi7irZsUUxdXK+1U3f5TIzQ
+ 8vdywRyWVc721G3hQCUlWpsjHJjUjifQOzHywF2e/kAqQeitNDoB7c5b62HcJxIjQ/xo
+ DguGTaIFt+HULXoB0skbyIAJaOHF3emogSu1J1FPA68BuBXb5pwkBFf0374xdA1Tb04X
+ YcgQRqkqwyZXAbfSegddztF6J1W03kGdK++TbNyKF2jsxi3RRiUJUwnNBZnAGJZLNGwy
+ M0VOP8SwSWVAnAG1aUTc3J9ObSuFAKd76AZauKrGvUbgVtBmKnn7ioybB5a1NlSV5Wfw
+ 9EPeKVcz2xPETWevRcfc8HgEOCgG7EMCB8YNaYpbHa0NuBltUUuCaJKGTT6YnsQErY4W
+ UHdeRhJGaHm5YNjkqmZ76rYDxLkydJVvJOMm5uYOdfod/I2YTnTQpnllNPQGk2vHBkHd
+ 5zCO7wSmHx6mGe9iCraBc4IVKoEyRfsk9QNs7uhFQxjRM1e/HTS9I2P1TRS05YghnsY3
+ e2diFAPLMI6v5GQaOyaYgo0gx+AZWkQlCHCojas797osPtPQynNuxHyKJTOFjBVvXbT/
+ AJe8odGeM5g6PnC1/UJdZXFOGjsmDkoEb9iwSaYSbr+I49cw7rzymgvUWpQ2ymWnChmp
+ fQu0Qdxk3DwGW4W7G0EO+4E0bJLnBNPMcYOywXKfFKNuQqOPZRVVoo9/H7iE5wotM8SJ
+ 35fREYqG9mK4R/q7287X0NBxOSfYlPwSw/IKorW8HOMUALcEjfyxUerMzJLDblTXxKjR
+ JuNW4SY/EGQCuOF2Lxk2aZBx/wCXW/SWd3DDXEmav0Lz4IbEPDjdSYe6eBurbYsR8SAT
+ OSf4CeAeH0YIz/oUDZt0oQo1gwffgEqQwQFzwy3xxIDaRbMOPzLF03jRVqwbcMMRfC7g
+ 7kU9oBg2ifEJqylR40lOG+GWYAKLKzbK+LSTJWfEHE9lQq0YmopePJp1Gx3aSi9o4kmN
+ TeB3Y2KZIgfmp1NlscxRGjjaUzFuEwwWx0y4yESMOzwrBgLTjFoxEHjxjFrjQ1sXbh3X
+ hAQqlE0NdF9qPEu1JUekcVNtiSE6tzRuMTcV85cxyjO/HMOur/QNj38UbiNHW5g3ph/S
+ UCceEEcztLjcIcgLnYrl4BtDqh3YuMUsTzsXL38e5F5R3XSpS4Fbl7ulp2SEaNMlyauT
+ dEJ18zQgjmdo6R8JobNlhh0Jwbzrn3neNXGJm3dgeFxKdmFFDeDux4TJ+2IGM1qfk9yt
+ MLfxo81sQrkFom4+E9KiHXcS8xMMohLorpgLt3HL9t37LKwd3X2DIuJTs4tO1Z5v68b0
+ 1Dszc0+ev3qrhDnGbdtLrVs5pTrOh0IwII5aOVAtN7UqNuwoH4a503zxHTTy2skDXndC
+ GgaM112gMcwT9xDDQ37VH3xopLbNl6XSCT7KSOXoDYhTB98YfkyVjZu4ZCfcQFtn7JRR
+ SSdyyQ/s0EaMs3GrVLIm0AaZcHcB/SPYyslJdM4wsOs5cwnBbWJ20M7lEIKc5Iy8sqoG
+ dkzkcGC9aXzGjLbOXgm42bjpyJPSXiA6RBnHZ+jgG2yUPzF179pHO6VXQHhsShZGqOqM
+ dAdz8z4pPmdGjTYuTrIJcQmYWx18w60z5EHVVQy+Ybh/3bRlh7ZTIqasREzZS5Ovwdxv
+ 9ObxGTvaGtzUhlsOvqEZWrJ3GvWYX8UoFuISUPdWUDeGunv6U5ADfWrx6GuFuI0ebQk3
+ rhcD4nRaHhVrXc+pV7Eh8Q3KpoQbSPKUCfI4bj5BUjCRs6/n4QQSca81tLFRUjsv7nlJ
+ Xc9r0BdGnVhmWIMpAhto67iBzocopMwqOl3XDCqhzMKiobVrxbZlH25uVTc2cAUTsHUH
+ 3xg6ikUaN4eUFON4+AkqqW1G1zqRNqNtUh3uZPxoKzsleyXaxDIefIMOUzwfblVoU0aY
+ vUAWA6N4sPsFgfa8VvDA2/UaQvv//UV9eHCkD93T2hrkfLjVDb5RqWQx2qLeQWWStcPb
+ im1T+9wPb5XBN008+EZnGh+RsCFLEDehbS6Y5Fhm4ek6ZIRHJu5xdcna2iXp08sfY25W
+ rA2+oWl8q2tWzP8cQpuYBB435czCYlE5RROZebanKFTTVMC1wCQSbhD34sE36Hpkg44O
+ ho4ZIrilEqiTMkP6vQmzPblOTY1u1kYsKa2JLpbRRkdXajKP2YdyzNAq2p4LsJVN0txK
+ cUlOoUyNRrtTaYmeS2K0BWqLPrO6aOuNGVrVUKdFpu3iFRgen3qyBOlJJpKHC88hueoE
+ N2sQbRrqJMYM6Q5QMCQ1KcFWvW1PxduG/0dFao8WyyTraK9mYBmxNiUUtu3ca4ZZ495I
+ 33DRlBK3UySpE9sYa+nlIh4RTonC21+QSdQtEtkbCtvhkFDYTqwt5e3f9KqLl7wv47xD
+ l7e/3C6peH+Qt+Fr+yJ3IwvUBmm0+wJJUkLdNvIs8CKbIbCFT6I/imWVHiCZNhKTKo8k
+ gEd4i+TIRqe0mP8+vix6W0b6I18tMcmisZ6ri25Y3EbSnbLACo9QYTFnErBF4giOrHRd
+ i2hz5K709Mfgm4SjOiNryXn+zCWL09SYnRIJtfBHhm7evs9nFOD9aXEkIW6kxqx/WcK0
+ Fw++SV/lOGZ1i9x/wN4V/kjCidwyRJHdTNqUR9DPt68RrBWZBBqgNvwag2/StME3Bimu
+ St2lIpAcx9Gy+tYr/aMkR8H5W1S5s8bQVge736DB7pigsMrBN1wwv2UnHXVCoxLyR2TI
+ rn/4RuHstUEjiuLK7jblbqbQi7ultjw3JSaUBt+Y7tq2yZCCEnZISPujLVIeBuHsryRt
+ HHjXOzapT27G+5OwLs5LSlFq8cTaDQaUpoFINmzcAu+PT/HxQaf6i+CRSZwIlvqITr3l
+ WrFsjbYpmaDNdRc5dykBfj7a0rTRFxBjhpRDfDI/puV+lbBmzZC2ijYPrFhAogyz+PTq
+ SVB2+fmilDDtxQdUB8em7s9BjKIdUtey145pc+aGS9Nk9Q42yXokgXVcEoPQpj4OO8kh
+ 0Tt8fe/hPHhkEdjGy9JLrkzxtnk63CPeJJuxSR6nTRLTQQycxcengbdjqKc9HBJuLMBd
+ M27P4DAwV+zAtBV3ZMlbMuI7FLRB25yVHOntOF9Fg8Zx0MkW5fIGTYdjIlncNIO6nsum
+ GcQjaxhsUeNK9Q00QhUZ96SIwENKVvLzC9O4BSO7fwgjI5Nx8hqmPYjxwNwQhuYDq2gb
+ sSEvvTTFtKno8tnj2dsc25zKP6HE7TsM2iSZSMQe6XdEa3ZETQG5k5dm2kvfkRHfIz7O
+ XFCMc0588IaGeurQ9mYDyrdVIuE9MlFp5DW1TCMvI8Z26aVJ01aL5dH6EpOvi7OQlPR2
+ AW3TUM/PP5oAtEVnKTtXTOJbrknd2mVtWeAqDoKQ/3e6IJ0nXytDPT+7nli3ASMRSTlN
+ meQ5LHBI9HrULf3/G/E9qmmTR6IQCfw/ZRazmHz92Y3TiLYRtZvrNReloe48ZVKt115D
+ QQ3ZkMraOHXz+gUHkkwk8P+Chf9n2HQ4vca5ybJx7q0ljXPXFNoCa+VE2aunNGZcIRJM
+ B3amJg7oB/P5/p+YVLHLlGcnRKd8tCn0GkVbGeo5gdDmAjwSSSRm4mzqZ9M2Jgz9snkb
+ Akk0uzwSKxuejyGOVIhE/J+NmKGXuTSFR2hkhZhXy6XbZ4rYI+FAkkZoGSJJUTN/5BEc
+ 0RM6Pr2gsv7SVZ558/z1e4ps5IdqmbdkxHepaFOjeeyR99EdurMFMxQ4tBFjxsn/++xN
+ klwS3iRJkUrMKJLTs6iPqzrPCX/ciKFdemkq2GzaNGho/Dr2yKqSHE7b2PMhEGqa9pm5
+ dhSksUtiYgFpOygyCS2h1clwPKtM2PbSN2TE98hPM+2RwrQf8egbHuqpO6/WACIhtNHC
+ C4kEnumewxM99WdMrjHDls4fOyTE2jhwc4/Gg2Cm+8lUnXm16C362UTCA4bEOCcfqK0n
+ EduIKeNrcZyT+MAqPKKaNpTtAcSRlYU0052dbYPn1YrhWaYHoG2HxhzP5RksY9D/4JKo
+ m6QR08bSS5NEonRvEHOGaPJNGSYf0sAyK/O9QiP5fNOGu41RZbsl2qm5Fedaobau0cFw
+ gF4jbepMQg4JJW0osqksykyOwggtZV6tYb0XBdoHUUiC3vJiDB/F7ewASmF7qQEY7T0a
+ 2tT1XJ18SEOdxFBPdRafAaxNQw/Ztim4IbRP1bd2Dy1C22ihXebCdHjkT0wHfgFfW7I2
+ Ipso6nEk3T9D9sh1tPURV8EmHkFbEmWC1vlqYu1wDBmiOhLDRzHr87ZgEpW3BZPovyEj
+ /kmhEXa1eVYFNUtDPRrNqwVrS9NGisyQOJJCIfZJlF1S+CSUk4TeqgbuRoyv3qXpgi23
+ SDQCFL3SMNFJGcUsTdsAj4RiyQ0bF41PHVBFqTU1rFYHbMEj6NuAblIjapNLmukJ1ja4
+ 7SJsm8enUlEa8mTRKTlllLlBlRRPF1JEKT0LMNofFLRRYsD+iNgioWujgWuJznDgbYb2
+ lWe0ZeTuAp0keS0Pq5VoE9hQo95jyCTxCA2ZXDRA1WDWpmOS+sNqq5raezDLCcc/dIbV
+ rgWpRDNtgE0Tb54vYDbwKI0q48bboX4ejlbI2QiHxCDWFmjTsFqRlszAsNq2a0PjmL/C
+ M93Xjr6tgQ3Slv4ITSq72tZURVskNZWn1sRoS2eoQ0JMImYeonTb43BYXFo+hTccunPu
+ Rq3cMVq2lhemA7Y2hY94RBufqgyr/cWwaSDAGksZVitlKS5wGJuU2yRS7sr7MGq8lYvk
+ HVKQNoTWCR55WFmcnRILOcrZhhoToxzNsDBSQVu4gELg5nSCJO43OLanGrdRZ290wVZI
+ m+KawW7BIxie+kWmXlN4w9skTZgMpFSZnDJOutQ73XmeRmzbi8CmFAJmU2BYAvsjYgyz
+ OybVYotcpWlT8kamgUHc8Wn5FXUtlE8QVKJbK2WkcCtQ82wKckcIbOomPz6sDAIBjxzC
+ 5NR9vEX+/INB6p8gEtomUeIgYveQmJScUmQme4bV8h2tWMo43cBlwH7z8inGuYO0u2jI
+ zUn4I+ARDMzas5MmUxika0usySkhzZUykzjiFJEEKmGvhNI3a2FYrYq2iGp4KDDGUvAU
+ kDYMcMrD0JUQX+YR2iLh/a3GtCVxw+NGRQlRSR55JTTPEwEOjjhp3S3pfRkdmywFGzHk
+ PMKaMTTuPy8GXvNcSeIRgwcdqqYt0GYqsXNDIvhYdvHZRvRJ47pLxbhVN9C44FahVjib
+ xnjSbLLpKeyQHc11GLyHicABNCwL465p8N5qvD/GXBRwq0fK0mmeJ4wbTWBg3HBLdI+C
+ GJd1a2irNCIHAt+83tPZUs9DJY8G+VBcw/7IqnmEiPtHvXmeORjqLowbB28WnykzHrg1
+ qBXLprlk2vTli3KSe7Cvh6M1Zl1v37xxtVskGzcfvOF5nmhMF5GYjtYkzNzqeUldv8Ro
+ 4NbQhmFDYxUz9zAv9T58vz7M3Ksqww4phgHzdNpV+yOCveXJGzrmjj7QmMFXchYDJo38
+ LLAe2HCzSfbDcNp5BezGKsyTTKbxnS62B+D8kaq9Wn9EEjcFOHyGDyI3jBvMLftA0/lU
+ Yzx6rYe1MrzzNYONIe59Xa1N1RUFmTzEnTxtQdqrdLWFacMrQYDDHbwU44bPTT0cJphL
+ FndL+/65RMMa+V5OHsAZ4RHuD6cZbExKpcG0seGB3tghzUmM+jKkTYiDSmDc23dTCy8e
+ MMndcolL0JyOpjgtbir1/QKuAzRuSqzF3E6E6w/g+hFnC7DjwuGOiB2SPO0vwiOMNsaU
+ SeOWvXewUaKn6E2aUaYD9/fvd+uizVhje+QB16+eP3k0e2/yxvVeBrsw+zgCdl93Rxva
+ IYWnvbogUiESxbiJuZXG28QlGHzNAxOWhftbN29dWJe9TVgzY/NA2hdP5+dm7iKC7Ols
+ bQSNAOwI+H5OtpYU1iBi/0KkLaiEZvBh1A16uHLPNOrhSu2JRzANRIyEA5nodTsyBO1l
+ r1r/zi8jDei/5nI/KVgTibx78+r508cP79+5NTp4reNiQxU4W4AN4W//XpJZvyTYqnHL
+ vqLUxyu/vBot6gawUyoT+BY1l6Jr+Bxslrvmpfd9zit+/LFLX1fvHgE13L4/fsds1DcQ
+ WBfmZqenMNr66uWW+qpybJBk2Z7O8P0YbAprvhSPKMxNk5hFr0sMvs5EjCOGlH0K7s/A
+ W+96P/rDxxH8jN8sfnVGV/fL33//BQ+bscaY5WdPyLAnx673dbc3nztTmp+ZEgfOVsH+
+ gjukJG92S2Q/aAy+Do87zi2K26+hAaOAG343uSY6/TPERa0IhcXX//GfV/Ry//Ag7dX1
+ If6b1l8EtIAaHPL65XMw9uy9qfHRwZ7OS021laV5Gcdiw4N8PciyTYTv96XcEWWn1OlR
+ zGOz0H4b4zzPNV++NjQ2eXf2EU1PpV6ugrw132SFbKJdv7ili4L+7/4ByBX8Wns9+VdU
+ hAnlP//4Azb9228f3r97+/rVi2eE9fSdiRvEIhcba04V56Ynx+iA/SV9PwVs1qbksFpL
+ G0xPxZzxtNwShhvTU+/Ooin0yzcYn7p40Li4tE9joF0+3dIFWr2tPeTTL7WS3yqvxS8u
+ OIMh/p1ABswf3r9/9+7tG0D94ukTxnpyfGSw50pbc31VRWFOWlJMWKCPu5Ow7C0bEbCv
+ Ll2jYazdEsNuaPA1j+AT01NLz8C6rw6O0mxgmusu2IR9E13zxvV9HAbl4vm7Aq/8SNM3
+ 5S75uI+/0Ep/I1+IXhdYC9JgkN/RegucX79+9fLFc0D9iOx6cnx0qK/7ciuxSH5WakLU
+ EX9vN0dbS7O9u7Z9JbCFcfPcLLTyp+mpodFJ6bmlsO72q/0jcq77K2HeS+lkZWgzsEyd
+ /JnmL3/9pSCu/FtWiuryj1NehcEWWyGxBhkzQH718uWLFy+eP3v6dAFQP5ghrMeu91/r
+ vHQBhl2Um5ESHxnq7+XmYMOunwK2gXVomi0vvSUaFYuJh/auXv5HCO4SGsXc3T98c2p6
+ 9tHCM2HeRCdsk8ql0fdPXzweII2NrQ3cyeuPPwA5AU6/lK+2/Aut9F75Ing5NmywBwga
+ tAGUCeSnTxYW5ucfP5p7OAuopyZujg71X7vS3tIIwy7IBouEB/kdcnWwtjQl10/SyFcA
+ G2qJHFa7WwyrxWxghrv2/KWu3utjk8wmz1+9fgfnZFm8lwIuL52/MdhkbGKTAnu+f/8B
+ PIrXIrw1uFeK6/KPU9EmEsGfEpshgH4iUJ57+GB2dub+9D1APT42zFhfbKo7y4YNFgmE
+ 52dvZWEKjZWUKOLsrwE2cYkcMInRWTwbGNZ94mTx6dqm1s6ewVGwCcwb7P1G4i0gUkxS
+ XKaEQBdmfawRT/Au9fbNmzdv377DSwm8CW7lWcvjuKJ75UuQaQNsxC7S8WBrJpSn7929
+ c2dqcmL8JqAe6O3ubG9pOld1qiQfhh0bEeLvhf3xoPm+rw62Qt001h0TJjGKmcgkLaeo
+ orqh5fLV/uEbk3fuP3z8BHQi8V6OUBTEdL+T3ZIkgTAZtgYnFx9s4s+Xr16/efsOFs6f
+ FTxGPmlFuC77ID2wZaD4DLvhw1myZqA8OXFr/OaNsdHh60P9vVe7Ll9qBtanSwty0lPi
+ o8KCfMEiNgfM9u3eAW3ka1o2iPy/RN3YKeGYmAq4Q6MSUrMLys/WN7d19Q6Njk/dm52b
+ V/Bm93s5A9dFWnh8kkM/ENTwvJhBQaLPnr949Rp4L4J7WSD/+U7tz/L/llhEBC+0G05N
+ Auax0ZHh4aGhwf7+3mvdVy63XbzQUFt1qrTgZMbxxJijIf7eHmAR7I+7tguwEa5/HRrh
+ XRNcwnBvE3BjqwyNjE/JzC+tBJt0kHlP3JkWeBNKbJQU8DDrqqapXbUO1DJMfkWe1wK2
+ qUdzc48ezy88fcZ4K468fOo/I7vMI7Q/q4BNUfnC44cz927D8xgdHhoc6O/t6bna3X2l
+ 83J7a8v5xrrqyooSYJ0KEgkFY8PxEyyyZROEqC8dQS5xTBjuX2h+KqzbysH1kF9wRNyx
+ jNyiiqr65vYrPYMjNycF3k9fvCRCIcDFNicRZ9bQvojogjZG2q5eUjxB/gAY9P79mdnZ
+ uUfzT58TMzHcq+MSFW28DBW8vwfYMlK8OXp9sL8H5tzZ0d5+qfViS/P5xvraqjMVpUV5
+ 2RnHk2IjjwT5ebmTYYNF2Bkh1e8LClFLkFas+6efBdzYKu1dPH2DwmOS0rILys7AvC93
+ 94FOGO/HC4AJvPsOQAnE4VmQ78zus/guJAmCGrsVpDZIEo/n4HmBQW9PTU3dvnN3evYh
+ bbzSj8c/TIVsqYOzjDlrd2nPo88TF7wz2A8hWo+PDPX3dHdebmsFyk2NDfV1tTVVZ04D
+ 6vyTmWkpibGRYUGHvT1cHGDYpswicEb+DbClY0JwY6s0t7Jz9vAJOBKVcDwzt/hUVf2F
+ S51X+wXeMw9B4AJw3ugAOVu5Frews0dIs8P7ElLbPMcTxKA3xrBujN8SH5SnrAroDeb6
+ mP+u4at7SwdrPbCR+rpzC9HL1c721ubzDfVA+eyZylMV5aUlRQW52ZknUpLioyOOAGtP
+ V0dbGLYJfBGwCO+PX92yybyF242tcsfufWYHbB3hmoRExCWfyCkAezc0t3VeA943J27f
+ vU88QIAL1+Id3Gfyn3UWJAkRxAHqpwsw6/t3b8PJZQYdGBgYHBoewwfl/oNHT55BhKH5
+ RRqXEIC6gH7ytg7abNl//vYBlo3UF0TrkYGezraWJhBH5SlCubAgPzc3JzvjRCqgjokM
+ Dwn08wLWdkQie2h73Cgp+yvujzq8wnCTZ7J9l4mZpQ3IG2wSnXCc2PtsbVNLe+e1vqGR
+ G2SXDPjCUyAOFn8Ndw4OtLZYkiBFAlDDrFmSuDEyNNCHjaoLq/ta78Dw2C248XMLDPei
+ JvYrQ1sHaRmv/gmwqeBd5Bn7u+FR11WdLi8pzM/NzspIP5GWmnIsKTE+NioiPDTI39fL
+ w8XRzvoASASM/a8atsbdG37dtGX7rr37Qd7OHt7+oRGxYO/84oqquqaWts7u3sHhsZsT
+ U3fu3Z99ABOHjZM79+Lly1fqIpeaXD14IAT1XXIMhgf7rnV1tre1tl682HqpnV/nJhRd
+ wP1q6cyAFZi3HtbMIrRBSrApz9h7pQ0SyKnSwtzsjLTjKcmJCfFxMTFRkUfDQ4MDAbWn
+ m7ODrRWwBokohv0v7I/61k2O4KYtcE32mR8EmxzyCwqLik85kV1Qcgp4N1/q6O7pBxHc
+ nJjEVkeIE+QLCwBdWzJWJkXiLtQfmDVtVmDQpsb6+nPn6hvwOtgHro9NQBSgMX9KndBn
+ 7JW6aINERCEO1YbAsu9OcFKXtL0C2g6T4mOjIyPCw46EhgQHBfj7+QBqFyd78LWCtcrY
+ /w6LSMil370Re+VusIk1m3dIeExCSnpOQQn4pOFCKwxTAD4OE797D5DPPng4h/WIF92C
+ JIFY+S4ii/Eb8MH6rl4hqMGgZytPnz5deba6rpHcyiEJ92vUCS1Nfn6MsHVxptsSa1kb
+ ooItMgSZacnE0UdCggL9/f18fb29Dnm6uzo72ttaHwRfk11v20xYk5P9r2yPOsZNW+WP
+ 7AmCvPeaWsC8XT19A0IjYhJTMgjvMzX1MMzLVwD44PUR9i7Iobt3b3p6Gp40Fm6QInGb
+ FYkRcne7xWZ1Fq5XMfaqwqKSstNV586zBkMCOkbraHDrmPdy9L0Yaom1YBGk0BfmZu5M
+ jCGD3oIMelHOiWPx0UdDgwL8ALOnp7ubm6uzs6ODna0VoN6/D3wtsEZAQyTyrxq24G4E
+ 8T+pbMLm7eblF8h4p2fnFQGo2vrzLUS913r74V0A8pvj47cmJtUFRYJiZVYkrjGDNNZV
+ VZaXFOTlZGdmZGRm5eBlKmsbL3ZcG+B8xRPATWQikp+6eDO4ipEvQVqza9L8REwzg3KF
+ AZlBJyH1aGjgYZ9DHm4uzk6ODvZ2trY2QNqCoN6za8e2rWTX/zOsATg0EyiCG34lNoF5
+ mx+0cXB29/ILAt4JKWlZuTDwSgDe1Nzadrmz+2pPX//A0ND14eGRUbmgSFznWBkhXAcz
+ SA1iN7FZHUtOSko+dvxEVh4HqZevDowI60aYo2omuqHOMgirdxGFsOZFWL+DDPMUJzlu
+ j4/0X21vrj9bhtoQCKkIFWk/tLe1sbY6eMDS0sIcSBPUMOst/2usyb6ZvCmupM3SBM6J
+ rYOLB+F9NCY+OTUjO6+wlAFvPN8M96Kjs6v76rWent6+vn6svj4oEteuSkXiAuLks6fL
+ ivJzMmiziomOioyMiolLxDZQSJIX8hUj46SfP3upL58vMXAVY3GDkQbUpGWTOPAGWC+Q
+ m31zGJ6fLFeIjwj1p/DF3sbqgKW5mdl+030ENJDewVBvZL4Gh/zrhM00Ir8I8ibz3rod
+ zomZpZWtI+EdGBoeGZuYkkaAl5SfOlNVe66h6UIzXLq29ssdHZ28Ojout7ddolgZSFef
+ OVVeXJCbJWK3cPIJgkPoVZJSswoo+clw377/EMlPmDdrgqrYtQhg9UeJtJJ6lFI2VCiu
+ DentajtfJ8oVjgb7HXJzgkttYWa6zwQw7961aychvRVWDag3YG/83/C1LtrMJj/+DPOG
+ Lwg6YbwdXNy9fP2DjhyNjksiwHMLsNtVVJ6tqq2rr29sajp/4UIz1oUL55vg6J1TFAnE
+ yemp7BeEBMEp8PH28T0cEExeZUZeqczGjSvZOMKbCEXNoQlgdc2Z7oEYA5umBA2pAygN
+ gV2T4idqQ5DVPa2UK3i6OFD4YrJnN6O8bRsBTUirUP8v9kY9rOkHzbxBJ7v3mpJ9Ozi7
+ eXr7BYaERUTHJYJ8M7JP5jHkpyorz1RVVVVX19RUV+PGmcrTHCuzInE8OSE2UsRu7BS4
+ uXl6kZdDCmNJZe35tq6+6zcm785wukKI3qrYxRqXQFyirFODIxMUJOUC69np2xMkjKA2
+ pPpU0ckTXK6AQhwri/1w87AfAuXNmzZtBNCMNFv1NwE1w63hDTqReNs7uXp4+RwODDly
+ NDImPjE5JS09MzsnNw9eXVFxSSmvkuIiuHl5uTlZqiLBYTIFFHAK7OwdnPApOQyFMTk9
+ V2bjoHdRGA95keRcReziTLGu2EW3KY0MRUYKMayaC80LdTiyNqS8EM5I9JEAKldAOoZD
+ RTLnX3/5ZQPIA/RB/EEe37/v8i0xa+UOwI0UA9EJ0fdu8InFQWs7GDgBHhAUGgbE4+KT
+ klOOp6Wlk2OXlU0rC05eeloaKxIxrEgE+Hl7urtQQAGv4MBBK2t24knQPXGy6FQNPEEl
+ XfHw8TyyDJrYJYQukaUnjLHUGhxKBSHFS6UhpHndHBnq7b58UdSGHE/QyhV2IfclOBoo
+ //Tjjwz0t4U0I06+IHxvgfe2nbv27NtvbmllY+cIwA95+/oD8SPhEZHRMbHx8QmJSfDt
+ sPANikR8LCkSYaxIeB9yd3WCJHEQbsF+U9P9ZhYHrO2c3SHoIvmZXcjpCmTjOF0x82Du
+ McuLUNBfi2yxJnbRLa0Gh5AWeUcSB4ZRhyNqQ4q5NgRZXS5XEEIqedQCZbbob8ikFdOm
+ 7/p479i1xwQGfsDKFhbu6uYJxP38A4OCQ4+EhYcfjYiUK+JoeHhYaCgpEr5QJBAnO3CY
+ vB9x8p7de/bsxT+NJBhk4zj5WXamDtk4pCtGoHYhzUBiF3QX0rpY7ILGKJeowXkuqhaQ
+ TH8we5/qFZBEpxz6peaGGqU2BM6Ii4OVhU4G/Ru0Zl2kxW0N741wv0Eoe/aZEuA2tg6O
+ zi5uHp5eXj6+fof9/QMCg+QKDPD3PwzvQyoSgBrqD8ducL6w6ENCgi7BjeRnRl7J6Wok
+ mzuv9rHsfVuKXY8hdj0hseuZskj2EjU4UGJmkUyHuniL6hUgDnRcam6sPVOOoieENGFU
+ G2KHQ0p7dqDg/csdnFkKzxe/R8Eb7jcIfNsOAbi55UEgbk+Qu7q5e3h6HvJS1yFPTw93
+ qUhQnGxO6g/FbuwXbMFrQNC1tObk59FYpCsKkY1rBN7dvQPXR26w2DU9jeQliV1Quh7L
+ RQlkUYMDKYaFmBvITwh58UJD7ZmK4rwsqg1BSOPuzFldWa7wv41ePvM/QnizePIL4h0C
+ C4Cb7NtvZm55wAqQw8twcHRyxnLBou9QJBAq06bIioSEmt1ceAa86VKuWSY/E1Mz84oh
+ LzZCzu261jcACwfik1N3SGCE1DWjLEXxui1qcCgTBKivUGlIfU1lRXF+NkQo1IYgpGFn
+ RKkN+a7Axv9GwRvyiQCc6ACIY8szt7SEm2FlbW1jK5aNjbW1FUkSrEgggmOrFrEb+V8b
+ yMlh/VwkP8Emx05k5ws592J7Z5cQu0YBudC6KG18m5LHkL0mbqk1OAP9PVeRn0C9ApRc
+ iAN52SdSEqLDRW2INTKN3yvY9FnQBxwcDhOHjQNywtzMzNzcQi5zKBIsSSiKxNbN0gUj
+ B+wnRfECefNeeTgY2biU9OyC4orK6nONFy6S2HUNYteg1LoobyzW6MgIBK+hgf4+FC1Q
+ Jugii+ZUGpKblXYsAYJfANeGoJyPUuicI/jeLJvAxhJ4k0sI8wSHE6lsB+S7gPmevXtN
+ TAD8vn34thcwQ5JArMyBsqpISB9M6uecrrBxcPH0CYDcBZ0Kcm7pqbM15xogdrW1d17p
+ BubQukjq6h/gr6R4QfDq4hocIN1wrqaqEvIiSkMgDkDIDvT1cnO2h2GTM/LvFOIIbL7K
+ VwacffANQFyBfNu27dt3AHZl7YDrsZwiQU4YvYKEWyQ/7ZzcvHxJPoecm3myoKjsFPRc
+ KXa1tUNh7Oy8IhZuQfCiGpzmC1Bi6gjpMkheSDtSaUh4SIAv6nAcbKg2ZDecEUqh4x/8
+ jTrXK/v/MF4/gBEEBQNyMnMYOtZWLPpOP7MiwZGyiJPxPPEHCG+ddMUBIZ8Hhh6Njk+C
+ 8H0yvwjyIpJpELsaSOuC0tVCSypeXINTXVVJiaDC/JNZBHVc9NEjyKEfAtZUGyJidVJT
+ v3ewGTFp4sTBjPkvsHP9pSoSIoRTkJZ4S7ixV+7W5POAkHBoL0JezC8sKi2rOF155mwV
+ lK5auWqgeJ2tRA1OGYAuICEmLQWSV3REGEpDvEUOnWtDYNhczmcUYEvEyS8ELfDGR6jr
+ rU8qEsQmnB1S5XMp50L5hth17HhaRmb2ydz8AmhdULrKysrLy8vKcAuKF9XgnETCDbUh
+ SQlxlOANRirMy8OVc+hmlGtETobTX2CR75pGhG1qXwUPM+oCeEX04btU8tCeIG8p5E3y
+ uY6cS/q5ELsSko6lpKadIK0rOztHLKF4oQYHxSFJCcgDRUIggGYOqJEKs7M+aCGwlkVP
+ ZNhGBbaGIsGuu7TfLH9LwM3ZIVU+t4cSC+mb5EUhdsWx1pV87FgKr2MkeSWS4MXFIRBi
+ /A/7eiHB6+xoZ8PiAFx75HU5/wWsv+/9cXncDLyXfZPFcq4tpG8Wuw5D7AoB5qx1RUVF
+ 04pCSjMSihfV4KA45DApXkilOzkAakqFIWKlHLqaazRSuzYUb3YFVfmc5dyD1rb2Uuzy
+ 9vVVtK5guaB6QfEiwQvFIR7QFpGdIMmLso5IhVFiV8N6HWz9/wubN3xBTldAqWIpFtIL
+ iV1O0BchMLLW5e3tw8vbG7oXFC/U4KA4xAE1ONacSuesI5eGrGOtj7D+TxreQs4lwE1Z
+ 7ILqYie1LhcXV7lI8mLBy46LQ0iIMUXBwm6RdQTUkGHI4zTWzVEfPAN+kniDT1jOhdhF
+ 8qKpmZmFJSRdVeuys0ORExYULxa8QB6iBgepdAi5pMMgcPy2ErsGoPH1n6LgLbQXFruA
+ +F4pdkHqstSWhQUpXlSDA2mRhBiWzCnBy1Cvm/UK/l2Et9BeEJKS2AXdRYpdpHWR1KUs
+ HcELSoyowZGVIezyrW+NK8BbR84lEUDqi5rWtYuW0LygeEnBS63BEQSyztYrAVo+BqER
+ WbiO2LWJxC4pdZHcRUsKXqI4hGpDSCCgOGZ9Y/wMrMVDGXBCnPXFDVLr2qgtoXxJxUsC
+ vY70Z+OsPUHYOFu5UBihdW0QS1G9uAYHBr1u0hpsq7kFyIlXeEHn0pZyJxn0+o64GoiX
+ eS5humQt87j1u9YRWEdgHYF1BNYRWEdgHYF1BNYRWEdgHYF1BNYRWEdgHYF1BL45BP5/
+ SZwOvQplbmRzdHJlYW0KZW5kb2JqCjExNyAwIG9iagoyMDExNQplbmRvYmoKMTE0IDAg
+ b2JqCjw8IC9MZW5ndGggMTE1IDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1h
+ Z2UgL1dpZHRoIDQwOCAvSGVpZ2h0IDEzMiAvQ29sb3JTcGFjZQovRGV2aWNlR3JheSAv
+ SW50ZXJwb2xhdGUgdHJ1ZSAvQml0c1BlckNvbXBvbmVudCA4IC9GaWx0ZXIgL0ZsYXRl
+ RGVjb2RlID4+CnN0cmVhbQp4Ae2d+V+SW9fG63S0VJwHFEFAEBwYxCAURUnCRBEQBQeU
+ cMihnKdTmkdL6zl13vd/fq617xtQMxOFzvM57PVDCSiy19frWmtvbvZ+8IAHzwDPAM8A
+ zwDPAM8AzwDPwL8iAw95PHz4P0OSYPx2NR7lVlwd/m+UlH+MUBIIIPyOyOORl0eJQD4E
+ Ur+ejsiEgDAa+fmPKZ7kdrAc5OezjBAeovPr2CSYMCTgQSwKCgoRRbkelISCAkrI48eE
+ B3B+FRtWTZhMoBEGBDAkkuLikmSU5l4kx15SXCyRICMMz2PSjsAmu/XmAhRiAoFIiEdp
+ WVk5ogJRmbtBw6c0lJWVIifFoFMI6ZBusoyG+i5UlLy8fIEJkJQCSEVlVVVVdU1NjTQR
+ tbkWiYFLkYVqZKMSgIhOscCG0LBqk4UmTZQKoDwmoUjABEgIiFRaWyeTyerr5XK5IpcD
+ 46+vRybqaqVSwgM4YCMh2TDVUK3JsJ8lqcC+GJQyMAESEKkHjAalSqVSq9WNjY2aXA2M
+ HRlAHpQNCoW8nugATkV5GUMDQyPRZJgMc7DfmVSKiopLysorq6qltYSkQaUCCm2TTqfT
+ 65sRLbkaNHi9Hnlo0mo0jSpVA8GplVZXVQINDI2JRiCToSkniQVlhQwM/lUKpdRI62Ry
+ hRJItDodULS2GQxGo8lkvhrt/+a4OlizyWQ0GgxtrS0tzTqdFnCUCrmsTloD1ZTCz5Jk
+ MmJmIpU8gQqkQkqRN6jUmiYgaTUYTeZ2i6XjqdVqtdmeIey5GDRwmw05eNphsbSbTUZD
+ K+A0adSqBjmphkTDyAhudn8yzMLyklTgX7J6BYSi07e0GUCkw2p7Zu/scji6e3qcFL25
+ GWzsPT3dDkdXp/2ZzdoBOoa2Fr0OslHUy+BnKTKszNzLzBIWxhysrLyqplamUKo1EIrB
+ ZLZYbfZOR7fT2edy9bvd7hcej2cgdwOjf4Es9LtcfU5nt6PTbrNazCYDZKNRKxWy2poE
+ mXzWANxHMgwLiaWwCHVFoNKo1QFKe4fV3uVw9gKIZ+Cl1zs07PON+P2BVARzI1IDDvj9
+ Iz7f8JDX+3LAAzy9TkeX3drRDjQ6baNIprSkqJBaM0jm7mDEeg+xFJdQXZHBwJqaW41m
+ QHH09LqAZHDINxIIjIZCY+PhcDgSmUBM5l7QsCMRZGB8LBQaDQRGfEODgOPq7XEAjdnY
+ 2twEO4ObVZajNyt4Ikrmbl4mYGFiKauoAhUlqLSZLASl77l7wDvsCwRDY+HIxOTUdDQ6
+ MzM7G8vlmJ2dmYlGp6cmJyLhsVAw4Bv2Drif9xEai6kNZKAZaVVFmSAZapnvNP8nLORh
+ 6I1hYXVyRgVFxe5wugDF5w+GxiOTU9GZ2direHxufn4BsUjxOteCjZqGPz8/F4+/is3O
+ RKcmI+OhoN8HNC4nkTEzMvI6lBl0ZgkvS1sxVFowZyEPK2ViUWn1pJXO7r5+z+CwPzgW
+ BpPZWHwOMJaWlpdXVineULzNtWCjZuNfWV5eWlpcWJiLx2bBJjwW9A8Pevr7ujtJM3ot
+ mVlVRanoZekXmQQWFPyyShKLRtdiBJWePpJKIBSenJ6JxecXXi8tA8ba2tr6xsYmi63c
+ DGHwGxvryMWb1dXlpdcL8/HYzPRkOBQg0fT1gIyxRadRQjKVzMtQZNIFk8RCHobKotY2
+ G8xWezdRGQmOR6YABTJZWX27tr65ubW9s7Ozu7u3t5/bsbe3u4tMbG9tbq6vvV1dgXCA
+ ZioyHhwhMt12q9nQrFWTZOBlhVT90wQjmlihBN2xtL6hUddqsjxz9PaDyuj4ZHQ2Pr+4
+ BJlsbG4BCGAc/PGO4j3FYS4GGznLwR8HyAfwbG1uQDhLi/Px2ejk+CjI9Pc6nllMrbrG
+ hnqAKU2CuX2NYVjQiKG0VNfKVRo9xNLpdHm8viCoQCpLK4CytbO7t38AGoeHR0dHHz4c
+ I/7M3aDhf/iATBwevn/37mB/b3dnC2hWliAakAn6vB6XsxOS0WtU8tpqFBmayZBibgtG
+ VAtV/Oo6hUqLymJz9Lpf+gJjE9HYHKTCoBATEPlAME5OT08/8kAWTpCNY+A5JDYMDUQz
+ F4tOjAV8L929DhuqDMp/HYEpEq3sdmAuYKmpU6ibWkwd9h6IxR+KTMfii8ura5vbu4Dy
+ /ugISE6Ix6dPZ2fnPM7Pz84+fUI+iM7x0dF7QrO9uba6vBiPTUdCfkimx95hamlSK+pq
+ 0gQDLI/QIJOJ1aDi61rJw/oHyMJm4GCgsrO3DygfwAREGI/Pn798+fIfHsjC58/093kG
+ OmDzAWj293ZABm42Q2Y20E9e1qpD9ScwVPxvN8FEK8awSBiWRl2b2QoPGxwJRaKxeYHK
+ Aezr+M9TxgRECMdfiK88KA2UDkYHbE6hmsN3BwKZ+Vg0EhoZhJdZzW26RgaGFf9Ht1kr
+ A5bf854USEqotgBLu83R98IbGINYFlfebmzvHbyDVE4EKGDCeHy7EH/nYlwY/zf8eRKd
+ LxAO0JxANCCzvfF2ZRGSGQt4X/Q5bO0EBjWmRFLwhJaXf1r7hVasoKikHFjUDIvLMxQI
+ T5FY1rd294kKpHJ+Tjr56yt7QQKJ/+MhJILl5CsJ58v5OYkGZPZ3t9ZXl+ZjU+HAkMfF
+ wKDGVJeXFBXcqikTXAxYqmoTWAaGg+Hp2MLy282d/XeHROXsHO4FodALwEthPP6fB2WA
+ 5QI5odSQbKCaMyJz+G5/Z/Pt8kJsOhwcHkiAqcUEk5qynwqGXIxqflmVVK5qQsl3uAaG
+ RyNReNja1u7B+yOBiqgUkQknciUDBEdgQ6oRyBy9P9jdWoOXRSOjBAbFv0kll1aVUe3/
+ mZOJLoaaL5Vh3pLC8np1fXvv3eEx6sr55yQV+v1XXhK/KWRAQMNEQ2RQZ44P3+1tr6++
+ ToHBPEYmrSiV/NzJki5WLWvQNJuedvV5hoNQy+vVDXgYiYU5GBkYt6+b/wQJDEQjkIGb
+ wcxQZXY2GJjgsKev66mpWdMgoxLzMydjcnlSVEzFpVFv6OjsfTEUDAPLm42dg/cf/kRh
+ QV3hVG4mknj0MhmUmT8/vD/Y2XgDxYSDQy96OzsM+kYFSgzm/Tevx5BcHhdISiul9Spd
+ m8XudHsDDMsmYTn5eEblHlhErXAPSyC4/n8GhmkGZebL57OPJwRmk4EJeN1Ou6VNp6qX
+ VjInu6H0k1zyn1CLDBdDcel+Pugfn361CBM7oNKCyiJQ4R3Y9SC+u1eUDNwMZOBlKDJQ
+ zOriq+lx/+Dzbqu5JelkNyxgMrkUStCLKdR649Mu14AvNBlbELCcfhI9jIvlu/T/+I7L
+ kjn/dCqAWYhNhnwDrq6nRr1agZ5MUvj4hl5ZlAuWxZRN5GIvhkYnZhdW1nf23x+fcCw/
+ zv4Nj1wFc3L8fn9nfWVhdmJ06AU5WZMSC2VU+iGY69eVBblg6oKi32yydvcPorjMLa1t
+ 7aO2MCypNoyXlhtYXHooBeYbisz5J9SY/a21pbloODDY3201NVPpxyTmx4J5iAstUF0g
+ FxXk0tk34BubevX6zeYeGuSPZGKERfg1l34zv3FzBkQyyB6B+Yh2eQ+1/9XUmG+grxOC
+ UQmCQUt2/SqZ0IwJcjHbetzeIFwMxeUPwoKSz/uwm/P/w0dTkmHF/8+jP1D74WRBr7vH
+ ZhYEQ5PLR9caGdkYNWOiXFwDI+PR+NLaNooLGmSO5Ydp//kDl8CcfUSJ2V5bikfHRwZc
+ omBocvmDyg8bQ5OMuQurLj3uodHJ2OIqXIyKi9AgcxP7OYNrvyNpZWiXqcTAyVYXY5Oj
+ Q+4eVmEwh2GV/zojIxsrxFRfptS2UnUZQdFfXsPMhRUXmk1yLNcm/TZ3psCwEoNZzNoy
+ Sv8IVZhWrVKGST+r/Nd0ZIKNVdBU34hmzEtyoaL/4RQuxrHcJvs3fM8FMJ/PTkkwb0gw
+ XrRkRpr0U6t8bYERbQxNMqb6z5weH6suOwdU9C8Ulxt+NX/opgwwMLSOCSdDTwbBUIXx
+ eZzPMOlHq/wjI3v4G5bGirEEQ3PKLtdgIIJmLCUXvnx8U9Jv81gCzNf/iIJBSxYJDLq6
+ 2NyyurwYHdk1nfJDoRsTbcw9FJpizRhVFyYXQYi3eQH8e67NQNLJmGAOWUs2FRpyi0Ym
+ dGTfF36hvFA3RjZGTfI8VmD+ODr5RNWFL4pdm+t07hS5/P0Ngvl0gjnM+so8tcpkZI0K
+ aeUPCgx1yViyrGvQtFrsrpeBCBYsYWPHp+dfaEbJ5ZIOg2u/NyWYL+enx9QqL8QigZcu
+ u6VV01CHxUtaI7vakFHZF8uLocPxHN3Yq6W3W/vMxiAXjuXaVKd3ZwLMV6r8h/tbb5de
+ oSN77ugwYPGSCgy4XDUyKvuFmOwLXbJ7eGw6jslL0sY4l/QQXPvdKS6Cka0tx6fHhsUC
+ U1NeghnMtVywZimVq/Umm9ODSeX8ysYuTV5gY1wu1+Y57TsTYP76QlOY3Q0UmPCIx2kz
+ 6dVymsFczwWLY8my7w8LXfIxFpITXNJ+GfwHrmaAgfn7219YVhYKzGzYf6nwf68XapNL
+ K2lW2W7vfRmYoMk+LVmeUzfGnu/qL+G3086AyIUKDBYvaco/EXjZa2+nmSUtkeU9+q6+
+ MC5VtUI7NhicjL2+UvbTfhH8B77PAIGhTlks/K9jk8FBoSFjM/7rubA2mRYtXawdwxI/
+ W4T5+o3L5fsM3+0elkmByxHNLKkhw1p/q1ZolH/MRamlVRivMNvH4hibVdKz3e118J+6
+ kgFKJZtZYomM3oSZCnlpJUarZBOY23GhRUvO5Upi73nzIhdauuRc7pnQDP14Jrhsc71k
+ iEbqaS5yScfHGnjdTyUx818RFqov9BbMret+USnvkzOP4tIzEpa0+2Q+r7yUwyzcICwi
+ l9vOK3+ji5T4OkwWYFx4SpFLOuswWE/m65YXUpiNLxkW6CW9dUu+zp8NFheeM4El8Ybl
+ 7db5+ftiF1KYlS9TXG7/vtgD/j5yVlhceNIEFlrmv/X7yA/4dRcXUpiNL0Us6V53wa9T
+ ygaMC8+Zkouwyi/M9n96nRK/ru9CDrPxJeOCCy7Tva5PuJyfXwebDSZ4zgSWdK+DFQsM
+ v248O1ySLpaUyy2vGycu/HMW2YEiqgUzSrgYfZQvnc9Z8M8lZQvKRSzpfy6Jf44va1xE
+ E2MfssC2F+l9jo8ZWQGuvaCPifPPvWYQ0iUs9M5LWp97fQAj458TzyCOxFMlS/4dPyfO
+ 91VIZDKT/6fEwrDcYV+FB3wfkkwCEZ4rhYX2VMJnkVFc0tyHBEZGrTLftyeDdK5iudO+
+ PXyfqwwSYU/FsLCdLu+zz5UgGL4vXKboXBbL3feFAxfWkvF9FDNCRhSLuMPlffZRZIJJ
+ 7tjH9x29D57LVO6376ggGGGHS75P732osOXjxG6w99+nlwTD97W+FxD6YdJKRve1fpBy
+ MizHiNvz833g0wAl2heWwjK6D3zCye5wbgJ7Rbn+D1TC3IttAJvJcxOYk/FzRlh+0/iH
+ 5JGIrJwz8oCfy3OP44WyeC4PORk/x4oOPbpDZPEcKyr97AReOo6Pn/uW5mF2WTz37RIY
+ HJrEz0m8/fmPWT0nUQTDzxVN74zU7J8rmlQMP4f3tmcK/5pzeKkpYzWmkJ9bncZR3Nk/
+ tzoFhp/zfrtz63/NOe9wMlExBdSW0VHvKq2+zWSxdnb39XsGh/3BsfDkVHQ2Fp9bwIHv
+ S8vLK6sUbyje5lqwUbPxrywvL+F494W5eGw2OjUZHgv6hwc9/X3dnVaLqU2Pg5FxyDsd
+ wFsgHo18dZ+eq/v1fX+bzWPyHj8pIi+rqZMrG5ua28wWq93hdLkHvD5/MDQeAZuZ2dir
+ eHxufoFikeJ1rgUbNRv//Fw8/io2OwMmkfFQ0O/zDrhdTofdajG3NTc1KuV1NTgaUVKE
+ k8SxW/J3u1p9T+GaewjM7wBTCC9jkmFkoBm7o6fvOdAM+wLB0Fg4MjE5NR2NzszMzsZy
+ OWZnZ2ai0empyYlIeCwUDPiGAeV5Xw9RMTEqTCxlJUXsgPe7YmFdGcDkP4GXlZRXVpOZ
+ QTOtRnMHoel1uT0D3iHfSCAwGgqNjYfD4UhkAjGZe0HDjkSQgfGxUGg0EBjxDXkHPG5X
+ L0HpMBtboRWysOrK8hLRw+6ORSgyj/IEyZTCzGplCmWjVtdiMLUDTZfD2evqB5yXXu/Q
+ sM834vcHUhHMjUgNOOD3j/h8w0Ne70sg6Xf1Oh1dgNJuMrTotI1KhawWFlYqiIV5WPql
+ JWlqVP1FyUhKykQyao2umdBYrDZ7p6Pb6exzAY/b/cLj8QzkbmD0L5CFfperz+nsdnTa
+ bVYLQWnWadQilTJUFlbwSSz3wAI+AINlTEimAPUfZOBm9bAzjU7f0mYwt1s6rLZn9s4u
+ h6O7p8dJ0Zubwcbe09PtcHR12p/ZrB2WdrOhrUWv08DA6uFgVeUCFaHg363iJ/VCYATJ
+ JMmgztTK5A0qtaYJsmkzGE2gY+l4arVabbZnCHsuBg3cZkMOnnZYQMRkBJNmXZNGrWqQ
+ y2qpriSp4Czk+4pF4JMwM0EzpeUVVTXSOplcoYRstDrAaWltMxiMRpPJfDXa/81xdbBm
+ k8loNBjaWluARKeFUJQKuaxOWlNVgbpCDvY4Py9jVIgNMzN0ZkQGvVlZeSX8rFZWL1c0
+ qABHo23S6XR6fXMzGOVsYPR6PfLQpNUAiapBIa8npVSRVIqLUlTub2GCXBgYkQzcDNMZ
+ SQnQVFRV10hr6wiOokGpUqnUanVjIyDlaGDsyADyoGxQEJK6WmlNNZRSVgKpFD6hiSRp
+ JTMWdg0ZEg1DU1oONgSH6Mhk9fVyORDlcGD89fXIBIgQEjCBfREUZmBZocL4MM2ga8ZM
+ k6EpLikpLQOcyirCUwNAYtTmWiQGLkUWAKSqEkjKwKSYQcFKGKAwraT+zjP6FXUAmM8Q
+ GhgaZFMkARzQAR4AQlTmbtDwKQ1lRISQkFCo1Of9ng0DuwL2AhrGhuAUSSTFxEeM0tyL
+ xNDBo1gCIkDCmPwiKIKdMTSCbKAbCAfSKShE4PXkdlASCAhkQjoRhYJSf7+5/RVp3HAT
+ vwmO9tsj5ml4Afngg6BXlMPBcpBPQBgSqii/kEkCl8iG6AAPFR0eUAiKCavx/wiTBBus
+ 0iTx0F+HGHhluRSJYSf/Z1lJ5ugf/oK9mFz/5x9mwH89zwDPAM8AzwDPAM8AzwDPQMYy
+ 8F/hj+H6CmVuZHN0cmVhbQplbmRvYmoKMTE1IDAgb2JqCjUzOTUKZW5kb2JqCjEyMCAw
+ IG9iago8PCAvTGVuZ3RoIDEyMSAwIFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0lt
+ YWdlIC9XaWR0aCAyNDQgL0hlaWdodCAxMTYgL0NvbG9yU3BhY2UKL0RldmljZUdyYXkg
+ L0ludGVycG9sYXRlIHRydWUgL0JpdHNQZXJDb21wb25lbnQgOCAvRmlsdGVyIC9GbGF0
+ ZURlY29kZSA+PgpzdHJlYW0KeAHtnPlXUlsbx01LRZBBQUXEQLgqDijO4sJwuJiKWoZD
+ eXWppKmJtPQqtjAl84rDDZWlpmWSc85GDtXtrv61++wDZDn39v5w7PD9xVasdXg++/s8
+ z95nc852cXHKOQLOEXCOgHMEfskRuIJ7/d+GHZG6fpUbTvU1QFcU78/A22nd3K5evXrt
+ EgjCdHPD8P9HbgwYcBGru4eHp0Mk3MkRmaeHhzuK1gb+w9g2YOSuO9CSSF5kEAXkjUuh
+ yFCEXiSSpycCB8PB7x/CRhWMHHYHXsCleFOpNBqdzsCx6HQajUr1BnQv4EbYGPVFSxuZ
+ DMTgMIlMBlxg9fFlMlksPz8/f1wKAmOxmExfHwaDDuBkMgm5jagvaLWN+JqHpxeZQqUh
+ XCBlBwYGcjhBQUFcHArC4nAgQLa/vx8Cp1EpZC9PD5vXF+niNmTksTeV7sNk+QcEcrjc
+ 6zwenx8iwK1C+Hwe7zqXywkM8GcxfehgNnhts/q8/EZ5DWkNxBREDMDcYB5fIAwNDQsX
+ iUQRNkXiRvaAILTwsNBQoYDPC+YCNqKmADUk+Pn5bUf2ImPE7KBgHvCGR0RFiWNiYiWg
+ OBwKxRUbEyOOiooIB25ecBAbo4YEt0Gf6bQDmUJlMP3YQdf5wlAR4EriE5KSk1NSpYdK
+ w4EOo5GmpiQnJyXESwBcFCrkXw9i+zEZVMoFoDFkD0+yN43B9OcE84XhkeLY+MRkaZos
+ XS7PyMxCysaZsKAyM+TydFmaNDkxPlYcGS7kB3P8mQyaNxkVNaT3qU4DshvUMiD7sNhc
+ niAsMkaSmJKWLs/6XXEzNy9fqSwoKCjEnSAopTI/L/em4vcseXpaSqIkJjJMwOOyWT4I
+ 2v0amrNOg75iR6b7+gVyQ0JFYkmSVJaRnZOnLLpVfKekpLSsHKcqKy0puVN8q0iZl5Od
+ IZMmScSi0BBuoJ8v3Q59GjMgX3X39PKmAXKwICwqNlGanqnIK7xdUna3oqqqurq2Vo10
+ H1fCQqqtra6uqqq4W1ZyuzBPkZkuTYyNChMEAzTNG2oaVienQKNZyoNEofkg5PDouGRZ
+ piK/SFVeUVWjrm9obGpu1mhaWlq0OBOEpNE0Nzc1NtSra6oqylVF+YpMWXJcdDiC9qFR
+ SFhJn5jcKLOhf1EZLEAWiRNSb2TnAnFlTV3Dw5ZHrW3t7R26TpxK19He3tb6qOVhQ11N
+ JVDnZt9ITRCLAJrFoKI+dorRV8BmhMxkcwXh4gSpXKEsBuL6ppbWdt1j/ZPuHoPhKU5l
+ MPR0P9E/1rW3tjTVA3WxUiGXJojDBVw2TFlkT+jdJyU3ZjOJQmf6B/HDogE5p0B1r7qu
+ Sdum03cbevv6jcaBwSGcanDAaOzv6zV063Vt2qa66nuqghyAjg7jB/kz6Si7TzTabjMU
+ My80Ki5VnlNYUlHboGnt1Bue9Q8OPTeNjIyOjZlxqbGx0ZER0/Ohwf5nBn1nq6ahtqKk
+ MEeeGhcVyoOSPtVoV1doYN50JhuKOTb5hqKg5A91o7Zd39NnHDaNmscnJl9MgaZxKBTX
+ i8mJcfOoadjY16Nv1zaq/ygpUNxIjoWSZjPp3mC0q+uxLoZSG6rZB2W2OEGWrVRVqBsf
+ 6bp6jcMj5omp6Vczr2dnZy0WyxvcCYKC0F7PvJqemjCPDBt7u3SPGtUVKmW2LEGMshsz
+ +oTkhtR2R9XMDhZGSqQZucX3agC5u2/QZJ6Ynpl9Mze/sLi4BFrGnVBUi4sL83NvZmem
+ J8ymwb5ugK65V5ybIZVECpHRFJL7CV3sCqS2F5Xhx+GHxSSlK4rKqx9oAXloZHxqxjK/
+ uLzydnUN0zruZItr9e3K8uK8ZWZqfGQIoLUPqsuLFOlJMWF8jh+D6gXJfaxzY6lNYwZw
+ hRESaWa+qrJO0/4EkCdezs4traytb2xubm1vb+/gUhDY1ubmxvraytLc7MsJgH7Srqmr
+ VOVnSiURQm4AkwbTlduxgsZSG5YjvNDoRBnYXNPUqu8dBGTLwsraxtbOzjvre1zL+m5n
+ Z2tjbWXBAtCDvfrWphowWpYYDa2bxcCS+0gTg3JGqe0fFCKKTZHnqSrrtboeo2n8pWVx
+ ZX1rx/p+d2/fpgPcyR7Y3u57687W+sqi5eW4ydij09ZXqvLkKbGikCB/lNzHChqVM5nq
+ GxAsjIpPyy4Em9v0fcPmqdmFtxvb1t39/YMPH3GuDwf7+7vW7Y23C7NT5uE+fRsYXZid
+ Fh8lDA7wpZKPFzQwe5JpTEhtcaIs53ZFXYvOYByZnJlbWd+27u0D8Kd/QJ9xKhTbp48f
+ P+zvWbfXV+ZmJkeMBl1LXcXtHFmiGJIbK+ijTewKzM4UBovDD49Jlueqqhpa9c+GzdOW
+ xbUt694BADtg/8WhHLEB9sGedWtt0TJtHn6mb22oUuXKk2PC+RwoaGhiRxq3q5s7yRvK
+ WSCSSLOUZTUP27v7TRMz8ysbO+/3P36Cqx5h/YIDHQkJgvz0cf/9zsbK/MyEqb+7/WFN
+ mTJLKhEJoKC9Se5HGzcwe8EijCuMhHIuuqvW6AwDo1Ozi6ub1r0PR5BxQPtNCN+AI+gP
+ e9bN1cXZqdEBg06jvlsEBR0p5MJSzOs4M2rb0MJ+i0qQKW5V1Gsf9w6Zp98sr22DzZDY
+ 31z532++EAf//Dayz5//AaO315bfTJuHeh9r6ytuKWQJUb+hJoYa9/eTFUxVZCqTDbNz
+ UvrN4soHrfq+v8dfzUFq7x4As+PCOGA8MQRHfMB8sAvJPfdq/O8+feuDyuKb6UkwQ7OZ
+ 0LiPM9vadhhqYXeqGtu6/nqOynnz3d4BpLb9mid+Hy7+0x4gJPfB3rtNVNDP/+pqa6y6
+ g5pYmK1xH2OGqYoOUxVq23mq6qY/u42mydcLq8AM5Yx75C9fHNBQ0O82VxdeT5qM3X82
+ VcOqBBo3MNNh9Xk0txEzK5APq7CM/JJqaNvGkRfQwras+1+ZcWHoqUHYoKGJ7Vu3oIm9
+ GDFC464uyc+AlRg/kHUqMwdWnqmZytKa5o6eAcQMszNqYdj1Tv02nHyABYmaGJqhgXmg
+ p6O5plSZmQqrT84pzBS4kQzBpufS2madYRBNVfa2jS6HE7IzwkBR2hs3mqwGDbrm2lJs
+ gg6B20lYlBzPbWB2LEnQ9AzMlqVD5jO+CzcfHTIvWTBmjdqxKDmLGW6eswrK1ZrOp0Nj
+ l5t5bOhpp0ZdXgALsQhB0AWYW34N5hYn8yn1bM9tp8+fL0HTtjVSR9+GHobq+czcRlsG
+ WN8+xWfctOZzAjmH+bsbaCdzufpoPZ8zvLj5+Id8hq0h2CbhCiLisPkZMcPt89I62iWB
+ pSduoM4JBBZiaKdkfQndQDvqOS5CwIWNkqObQ7AdhraGuILIOLTreV9rY14G5gNgPueb
+ cPQxMB8AM7Zp8LRTex/tfMZFYsykIxtiTmanz79wbp/QwyyXt4fBDve5Pcy5JiHG/ExA
+ n12IwXxkT//se4zLsRL7bm/o3Puq83x2MuNorfldKD/nM6H2AG0/PxNpr/dwT7/jV9jT
+ 7zh3Tx9+ryLcbzfE/I2OaL/FXiXgb+6EfLaCgM/QEPFZKQI+E0fEZx8J+YwrIZ9lJt4z
+ 6y4EfDfB5aR3ULou7zsoXRd5BwWaGOHeNSLmO2XEe3fQhYDviLoQ8V1gIr7z7TCaSO/2
+ AzPxznCALka4szqQ0YQ7kwXLbnTcEIHO3gFmKGmCnbGEoKGkCXWWlosNGs5ZItCZaYfQ
+ BDobz4WIZyBiTsOBpkQ66xKerEHdG86tJdKZpgBtoybS2bU2qzGviXNGMYIGq4GaSGdR
+ o+flbNiosgly5jiCtmOD34Q5W96GDXZjhmOn1CN8fMoeHvxB8dpD//k/6GL41s8zOq/g
+ HAHnCDhHwDkCuByB/wDj6ks9CmVuZHN0cmVhbQplbmRvYmoKMTIxIDAgb2JqCjI5MDcK
+ ZW5kb2JqCjEyNCAwIG9iago8PCAvTGVuZ3RoIDEyNSAwIFIgL1R5cGUgL1hPYmplY3Qg
+ L1N1YnR5cGUgL0ltYWdlIC9XaWR0aCAxMjIgL0hlaWdodCAyNzAgL0NvbG9yU3BhY2UK
+ L0RldmljZUdyYXkgL0ludGVycG9sYXRlIHRydWUgL0JpdHNQZXJDb21wb25lbnQgOCAv
+ RmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAHtnf8/k+sfx0VhNvuijWamzXYw
+ NCZfMo9p5EwYSlPK4YFFyKwHR6vHiiWnhRO1B0XJElK+t0J1Oo/+tc/7urdJN/fo1Gf3
+ D13vX+y+r8v93PvLdb1ufrjeAQHYcAR+8Qgc2Kf9tDAhXuCWBfm0rWmB6Ld+5Ct4mEFB
+ Bw8ePLRvg8lBQcSX+I90AgtQRAwOCQn1GoPCvOOhISHB6Hfc+O+Gu7HI02BgMhhhTDAW
+ WLgPQ+NoXhiDERqK8OA8+P5dcJRZ5G0wUAHKCmezORwul7encbkcDpsdDl8gDOgITrD3
+ m3LkMHDBWwaTCVAgRhzm8wWCyMjIKB8GwwIBn384gsfjAp7JZCDPEXufbru5h0JCw5gs
+ NgdBgSeMjo4WiWJiYsSUBoMiEUwTRkVFIjyHzWKGhYa4/d5PpbvByN9wNjeCL4g6Ei0S
+ i49KJFJpnGwPi5NKJZKjYrEo+kiUgB/BBcfBb7fbe0UcRRoCDVwW4gJWHCuRyuTx8QmJ
+ CoUiyW3JJPPchgmJCfHxcplUEisGOGKzgA0h3zviHnAYk+AKY2IlQE1MSklRpqamqcDS
+ KQ2NpqWmKlNSkhKBLomNERJsCLkb7dNrL5jF5vEjhTFHpfJ4BUBVxzOysrNP5Ki/Wu6W
+ fb2nzjmRnZ2VcVwFeEW8XHo0RhjJ57FZ+0AT4JBQZjiHx48SxUrlicnKtOOZ2epcTZ5W
+ m19wClnhrkYMFeRrtXmaXHV25vE0ZXKiXBoriuLzOOFMlGwIOKXXAA6CHAM4QiAUS2QJ
+ yamqzBO5edpTv+tOF5eU6vVlZWXlFAZDen1pSfFp3e+ntHm5JzJVqckJMolYKIhA6OBD
+ aHVRoQ94wNzDkdHiuHiFUpWl1uQXFpXoK85UnquqOn+h2qddOF9Vda7yTIW+pKgwX6PO
+ UikV8XHi6MjDXA+aigzgg8GhYeEcAMfKElLSMtV5BbqS8rNVFy7W1NXV1zc2GpFd3sWI
+ gcbG+vq6upqLF6rOlpfoCvLUmWkpCbJYQHPCIdewp1Cg0XoKYbA4EQiceCw9W1OgK60w
+ VNfUNRibW1rb2ttNpo6ODvOuBgMmU3t7W2tLs7GhrqbaUFGqK9Bkpx9LROgIDotBpHrX
+ cKNYQ3WxeQIAK5QZOScLi4Fb29DUcrXjWmdXd/d1yw2fZrne3d3Vea3jaktTQy2wiwtP
+ 5mQoFYAW8NioyiicPgAuIzBfKJYlKjPUWp2+ErjNbR2d3Zab1ts9vTbbHZ9ms/X23Lbe
+ tHR3drQ1A7tSr9OqM5SJMrEQFhczFOp7t3ATLjNYXH5UjDThGICLygyX6pvazF0Wa4+t
+ r/+e3X5/YNCnDdy32+/199l6rJYuc1tT/SVDWRGgjyVIY6L4XBTvXZ32uAxJlsSnpOdo
+ i8qrahpbTJ03rLa79wYGHwyPjDx89Mjhwx49ejgyMvxgcODeXZv1RqeppbGmqrxIm5Oe
+ Ei+BVFM6HRgI5RXO5QshyWnZJ3VlVX8YW83d1t5++9DwQ8fo2OMn42ATlIZGnzweG3U8
+ HB6y9/dau82txj+qynQns9Mg1UI+NxycDgzcUWMo2JDlCBRrZYamUG+oMbZes9zqsw+N
+ OMbGJ55NPp+amnI6nS8oDIZgwvPJZxPjY46RIXvfLcu1VmONQV+oyVCieBNO7xJuCHYw
+ yrIwVp6sUucXV15qAHBP/8CwY2xicurF9MuZ2dk5sFcUhsZmZ2deTr+YmpwYcwwP9PcA
+ uuFSZXG+WpUsR06zGMG71NgBCHYYmxcpkiakZuXpKqrrr5gBPDgyOj7pfDn7av71mwXC
+ FinMPfrm9fyr2ZfOyfHRkUFAm6/UV1fo8rJSE6SiSB47DMK9o7qJYHP4R8TyJJW6oNRQ
+ 22Tqvg3gsadT03PzC4tLy8srq6uraz4MhleWl5cWF+bnpqeejgH6drepqdZQWqBWJcnF
+ R/gcWFhBOxJNBBs2EUn8sUwNuNzQ1mntGwCwc2Z+YWllbe2t690+zPV2bW1laWF+xgno
+ gT5rZ1sDOK3JPAblLeAR4SaVGKQZBTsqJk6RdkJbYqhtNlt67cOjT52z84sra65379c3
+ 3LZJYZ7h9ffvXGsri/Ozzqejw/Zei7m51lCiPZGmiIuJQuHekWiUZib78JFYecrx3MJy
+ cLnL2j/kGJ+aeb206nq/sbH54eO+7MPmxsZ71+rS65mpccdQv7ULnC4vzD2eIo89cpjN
+ 3JloIIcyOXwItjJTU3S2pqnDYrOPPJ6cnl9cda1vAPbTP2CffRqa8enjxw8b667Vxfnp
+ yccjdpulo6nmbJEmUwnhJhJNLrEDsJpZPIFImpiarS021LV0Wu8OOSacswsrrvVNwHqR
+ /1KadwbAN9ddKwuzzgnH0F1rZ0udoVibnZooFUGiocRIxR0YFMwIhzTLFCr1Kf2Fhqvd
+ PfeGxyZfzi+tvdv4+AmeSiJ+2TLSAEz99HHj3drS/MvJseF7Pd1XGy7oT6lVChkkOpwR
+ TC5uIIfBBiaWJ0OaKy4aTRbb/YfjU7Nvll3rH0jgLea2D9vwCP1h3bX8ZnZq/OF9m8Vk
+ vFgBiU6Wi2EbC9tJRqUNBfZbSoZGd6am2Xyzb9Ax8eLVwiq4DKHe9uR/twG3Pm4f//z5
+ H3B6deHViwnHYN9Nc3PNGZ0mI+U3VGKouL9dVrComGy+EFZzVt7pytorndb+v0efTUOw
+ 328C2fvgLdKuH7yzgLz5HsI9/Wz0735r55XaytN5WbCihXwo7p1kd2knoAI7V9fadeuv
+ ByjNy2/XNyHYnmfuytt20zMNwr25/nYZJfrBX7e6WuvOoRJLcBf3DjIsKi4sKlTaJYb6
+ tj977MOPn8+8ATKkeZ/gL1+8aEj02+U3M88fD9t7/myrh70EihvIXNg/ydFGZEG0FHaw
+ /NKqeiht+8gTKLAV18YWeZtzlB/daCixDdcKlNiTETsUd31VaT7sYtJoASVZBHtnToH+
+ fEP79d77iAyrGRUY8TxK2jcDxFRUYmhFA/l+7/X2hvP6ghzYP0UUZBZIZByxnM83tlts
+ A2hReUobPe6b5/u4QHM9xY2W1YDN0t54nljQcSCUsJXsjDaQvRsJWs5Ads59JftgkYa+
+ kuecBNlk9G4lvsggzqfKqo2mG3cGH/0M8qPBOzdMxuoy2MSSZDH7IHf8THIHJlNUmCfP
+ 5GiTimiPS29tQ4WhPPuMNnoxIGrbH+RvBPqXJMPLELySiGVJ6cR6RnkGeZ5bRG8ksHnu
+ kVjSMGxi6K1kcQ4JtDfP6UkyMbyUkF+H4DUMvQyJZcnp6M3zstlNfgXkTSCTnrznJZA3
+ gUy8Gty5Yb6M3j7Tkwkyg/Qihsk42rjC9lxRaAJeVXgnwbtnAFYMrBhYMbBiUEQAqyRW
+ SaySWCXxX7H4L3cKiSDdxoqBFQMrBlYMrBhYMUjSQHGJFQMrBlYMrBhYMbBiUEgE6TZW
+ DKwYWDGwYmDFwIpBkgaKS6wYWDGwYmDFwIqBFYNCIki3sWJgxcCKgRUDKwZWDJI0UFxi
+ xcCKgRUDKwZWDKwYFBJBuo0VAysGVgysGFgxsGKQpIHiEisGVgysGFgxsGJgxaCQCNJt
+ rBhYMbBiYMXAioEVgyQNFJdYMbBi7FSMXc7Scv7oWVpwtuieZ2nhM9OM/9cT6r45Jy7A
+ n9EmnWnq+2y87zmv7ZtzH/c8lW8vn38FMg1nXboPCvb/+Z5fzzS9/vPONL2+55mmcIIs
+ Tee40nl2LT3n9R6k7YxiGs9lpu0savrO36btzHH6zlmn8Wx5Gs/Tp6uHQABtfRMCdusV
+ cetHe0Xc2k+vCCgxmvpj0NkThK4+KAG09X4JoK/fDX09frxO+7+vEZDp6uUENUZT/yrk
+ NE09u4h4owZpfu9TBmRINS292RAaUk1DP7oANxr6s/m9B99XtN/7DgbQ12uR8Boaavq/
+ vyT83wZVOPQQ9X9PTUC72f7vI+p2m/Db371TERrcBrb/+8Wi/9K54Sjjfu2Ri9AeOPju
+ 577Abji4TjhPdBhGX8KXeSbBD/Rbngf8+A/0sP3Yj5PwE3AEcAT+YwT+B80fnkoKZW5k
+ c3RyZWFtCmVuZG9iagoxMjUgMCBvYmoKMzAyNgplbmRvYmoKMTIyIDAgb2JqCjw8IC9M
+ ZW5ndGggMTIzIDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRo
+ IDI2NiAvSGVpZ2h0IDE5NCAvQ29sb3JTcGFjZQovRGV2aWNlR3JheSAvSW50ZXJwb2xh
+ dGUgdHJ1ZSAvQml0c1BlckNvbXBvbmVudCA4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+
+ CnN0cmVhbQp4Ae1991sU2db13AkGFFHJSM4ZyTlLRnJuQHKQDCIgSlCCIEhQTCgK5hxG
+ nbn3vu/z/Wvf2vtUVVcDzts4jvbM4/nBrm6b7jqrd1j71D61fvjh+/iOwHcEviPwHYHv
+ CHxH4DsC3xH4jsDfF4F/0fhxy+CX/76z2tmZKwj8hPEzj19++UUc4BUJHLxrZx/7N3u3
+ ZAaEAGb/y65du3bz2CMe8Jxe/vlnCZB/KBrCFgACQ7B7z549e/caGRnt0w4jo7178fKe
+ 3QyIgOOfZxtsDQIFgLCXANhvbHwAw0QadHzA2Hg//scIgOwm8/iZneUfZBoKDLsIBcIA
+ ABw8dOjwYVNTM+0wNT186NChgyYABHhIaDAY/xAsCAdyCsAAWwAKJsDAzMzcwtLS0sra
+ 2tpGDGtrKyu8YmFuRoAAjv1kG2QaAoy/WUjcerqMA2LDrj17AAOhYGpmbmmJ+R+xs7Oz
+ d3BwlIeDg72dne0RGxtrS0vAQWgYS2D8A7CQcYA5MAyHgYIVYeDg6OTs4uLq5k7Dw8OD
+ H91cXVycnRwdCA8roHEYYMAyyDD+7lgwEL/8InA4eAgwWNvY2Ts6ubi6e3h6efv4+vr5
+ +fsH0PD39/P19fXx9vJ0d3d1cXK0tztibWkBMMgwtFhILAMphT5bNfiVrSZpIK9QgEB8
+ YHs4eNjMwopgcHFz9/T29QsICAwMDgkJCQ0LC8cICwsLDQkJDgo8GgBIvD3d3VycHAgM
+ uImJGgtl8lpiRqxM4WRAxEBmrzoNAoIMwmj/AeBgaX2EYPDw8vUPAAZh4ZFR0TGxsXHx
+ 8fEJCQnx8XFxsbEx0VGR4WEhwYFH/QkNgGFrY2muxYJJFzNTYmAKMQMBYUoGH5LSrkGh
+ QdYrDMLY5BBwsLV3cnX38g0IBAhRMbHxCUnJx1JT09LTM8RIT0tNTTmWnJQQHxsTFREW
+ EhgAMNxcHO1srGQs4CSYMgPAxExiZuBngpPJlIzsxlBMg51YNohDphbWtg7Obp4+/oEh
+ 4ZExcQnJKWkZmdnHc3Lz8gsKCgpp4DE/LzcnOzszIzUlOTEuJiqcwPByV7Cg4IkZ01AR
+ MyZkxMnUlEzmpyoD/aqHHLTkQEZ8Eo6xD45hbnnE3snN0zcgKCwyJj4pJT0zOze/sLik
+ rLxCU1lVLY2qKo2moqyspLggPzc7Mz01OSEWYBz18xZYWJgR5zIGCWVqSsTsEIgZMTP8
+ exgURKJkRFCZhMBRvr5haAM5xTFRX4FIGe1jx7Cxc3QFDsHhUXFJKRnZuQXFpeWa6hO1
+ 9Q2NTc0tLa1itDQ3NTXW19WcqNaUlxYX5GZnpCbHx0SEBPozFkdEWsX8mZsKZmZFzExL
+ yZBpCC3mp9+AkUkoSPPnOEakWiIQ5BiOLu4+wCE6PjktK7egpLwSIDS1nGzv6Orq7u3t
+ 7ROjt7enu6uzva21pam+9kRlRUlhXnZGSmJsZCiw8HB1tLclymWBQdQUxMwWxAzMjAYo
+ mZ2tRMmAhgDj67IQEQ9EZcXzR4GJOEb11YEDIBAWVkfsnd29/APDouKT07Pzi8sqa+qb
+ Wts7u3tP9Q8MDp0ZHj57jsfZs8PDZ4YGB/pP9XZ3trc21ddUV5QU5GSmJsVGAQsfD1dn
+ cAw7WwxMG8yUiZlgZu5aSga0LJB4CQwj8pKvw8gEDLTUQCCIMCYXmAfhxJw4nVy9fAND
+ o+IIh5KK6rqm1o7u3v7BM8Mjo2Pj5ycmJianeExOTkxcOD8+NnJu+Mxgf19358nm+hpN
+ WWFuFmERFkTB083FxRkD3BS81MsLxAzMjIagZB5EyUBQbayIkZkc0GLx18YLongUESQU
+ RH3JcQwYUH1lZUOJ08MnICQiNikN9qA5Ud/S3tV3eujsyPiFianpmdlLc/Pz85d54GDu
+ 0uzszPTUxIXxkbNnBk71dLQ21laVFUlYBINjgIJiEDf1DzgaGARmFkoDBC04MDAgwM8H
+ DBW2AzDA1Zmqy3bx12EhcKD0QIUV6ks2AlFgCjdmOunpExAUHp2QkplbXFENHHr6h86O
+ nZ+cnr00f3lhaXn5ytUVZVy9emV5eXHh8vyl2enJC2Pnzpzu7TrZJGGRHBcNjhEUyCMo
+ BJwkgolZbByGipIRGgwGGQacZL9g6kQw/pI8KuEAc0BhZYyAwPWlFYUx8mJ7dmOik0ic
+ CBAZOYVl1fXNwOHMyPjkxdl5gLCycv3GzVurq6u3pYHDWzdv3Li+cnV5aWH+0szUhdHh
+ wT4Fi7TkBHCMqEgMgiA+ITH5WAqYWVp6Who4maBk0VHhobAdgOHiaH/EGliwj+zmcPEX
+ QEHxgesJSpMMgwUqK1sYgSgwqcJEfQU6icTJjlGiqW1q7wYO56cAw/LKtRu3Vu+srd29
+ t76+sbFxn8bGxvr6+r27a2u3V28BjuXF+dnpibGzChZIJGkpyclJGARBekZWNhEzYmZE
+ yXKPC0qWEAvbCQYL8XB1krAwxqIPQueXZxdqHLDcgLiIgGDngPrSjcKYtw9VmCgtgkLC
+ IqLjk1Kz4BgnGlq7Tg0SDpeXrl6/uXrn7vr6/QcPHj56/PjxE2ng8PGjhw8e3F9fv7sG
+ NFaWF+YuTozJdlFeXJAHBpqVlZ0NCPILiopLyyo0YGZVVZWVGk05KFkhKFlG2rFEOBLo
+ qY8nYUFMnV3ky5sFOYZMH1FPmFsiLjo6u8IIfDiMiThG9VVMXCIRiMKyqrrm9t6Bs+OT
+ s/PLKzdW1+6tEwZPnj579vzFi5fa8eLF82fPnj4hPDbura3evHZFYDHQ23myqe5EJc0W
+ o4QgqKquqatvaGpqbm5pJkrWAA4CSlZSlJ+TlX4sUWQbYGFnYwkXgVns/uUXIp1fLljI
+ jiHoI9XZBIOXj5+oLyPgxPDiOKqvUtIys/OKQCCa2uAYoxMX55cIB8Dw+Omz5y9fvnr9
+ BuMtxrt37+gBz16/fvUSeDx9/OjBxt07t64tL1yanhgdHujram9prK+tqTlxoqYG5LSp
+ ubWtvbOruwfMjClZV0c7UbKaak1ZMbGQ5Lio8OAAHw9ULdYWMAtkVOEhXwgK9gzkzb2I
+ D0yb7MAfUWYHBoeGR0XHxiUkshOnpmXAjVFblJRX1TS2dvUNnjs/fWnhCuMAGF68BAhv
+ 3/3666/v33/Qjvfv8co7APL65cvnzx4/3Lh356aMxWB/b1d720kQ85Nt7R2dXT19/acH
+ wUrEkChZV0dbS2PdCU1ZUV52WnJ8VHgQmLqzPZkFecgXDBYAgiMl1VWm5mQPrh7efkeD
+ wyKjYxNQY1MYQ4FJFWYh3FhTRXyys3dgGI5xefnaLdjDY4YBILz/8PHjx99++101fvvt
+ N7z2AXi8e/Pm1QvC4u7tm4gXsIvxkeHB0/2nQMxP9RM5HT47Mjp+/gKYGQ2Jkg0NEF5g
+ IdXlxfnZ6bCL0EBfT1eYhflheMgeziFfglkIz9i9Z99+WnAADi4eVGdHRMclHktDZZWH
+ MFZSVlZOcawaNtzY3AoiNTBMjrG4cuP2vfuPnr549eYto/Db7//G+I/OoFf+/TvwABrv
+ YBkCC46dM1MT46MjIyDmI4KcTk5fnBXMDJQMnIwo2fkx4AUw2prrqyuARVpSbERIAMwC
+ 0cL04AEKFmDffz5WEBCgUvAMFNpcV3lTPRGbcCw9Kye/qKScwlhtPcexllYqsHpPgU+O
+ TVycW7hyfXVt4+GT5y/fvPv1w0dC4T//+e9///s/mwde+w+jQWCwXSBe3EbsXLw8N3tx
+ mnn5tCCnC4tLy1eYmTElWyJKNiOM51R3e0v9iYrivKzUhOgwmIWLwxHykC8EBQNBa5KI
+ EDAIJzcvP+AQl5SamVNQXKaphidQGIMPd6PCJDceGj43en6ScJAc4+Xrt4QDYJBB+F/d
+ IYBhNH7/+BF2QT7CsfPGypWlhYXLl8HNFxYWl5evgpMIZgZGxpyMKNniArGQ8XND/T3A
+ orq8KDcjOS4i2N/L1dH2i0EhAYE1SQBxxMHFw/doSGRsMuhCUZnmRF1jSxtsAPMfQBw7
+ gwKT3HhiCnxy8cq1m3fIMZ6/evPuvcCBZ6wLgvKM/4/A+P3jB2Dx8vlTYIGkCr51jZn5
+ tes3QMxu32FiBmoGRiZRsps3rl0FC5mZOj9yBlg011WVFmSnJkSFwkOc7Kxkq/hzyZSC
+ JVapCQhzaztHNy//4PDYxNSsvOLy6tpGxIPe/gHYAObPcWxyavrizOwc+OTV67du3914
+ +PiZMIjfYQ80V2Xi2x3QG8hLfvv4/te3wALx4sH6vbW1O0zMBTnduC+IGREymZLdW7uz
+ euPalSUYxgVg0d3WWFNRlJOeFBMe6PvFoJCBMEGIsHN29zkaGkV1VVE56uw2wDA4PDJ2
+ fgJhbEbEMdgw3Bi1xeqdexuUMWSD2BaH/0dDBxOBBVwEWLx++eLZE4BBlJy4uSCnRMye
+ C2KmUDIQ1LsAY2X58uz0+ZHBvs7W+sqSvMzkWILC2c6arAIZ5M9QLE6fsAiTwxY29vCM
+ wPDYpPTjBWXVoI/dpwDD+ATi2Pw8hTERx2DDN1eJVt+HPSBSUoSQDEI1ZYZA+kf1Mg4V
+ s/jwK+ziFQzj6ZMn9PM/EeRUxcyIoL0RlAyA3V9fE1hMjQ+f7mlrrC4ryEqJiwjy9XAW
+ DgJe8fkJBEHi51/27JWA8PQLjog7lplXjLoK9HHoHGBAYbVIYQw+LCpM2DDqq/sPHj0B
+ DoiU7z9uBUKNwxY4CAqKFlJOBRjKIHYqETNiZu8VSgaC+uzJowfrd2/fWFman5kYGerr
+ aKqpKMxOjY8MEg5y0NhoD5djn0U2GQikzwNsEV7+IVEJqdkwCKqrgMPkzBziwTXYAMKY
+ iGMwYrbhJ8/ApGAPcsrA9JSffhscdFwE7+VoASwQO0E+iY4TO2dy+kHFzLSU7C1YCIfY
+ u6s3ri5cgln0d7XWaYqOp8bDKtydbC1NTfYTrfjxx89EgqIl0qc5XMMrAECk5RRpapra
+ ewe5rkJ6QDyADUjzJxt+ygXWS/BqgQNRCIoRfwwE0FHeQA7CZkFsC2DQb4/BEICSqJkZ
+ KIj0JnIlGMbjB/CRa8vzFy+cG+hurdcUExSIFY5HLA8zrfg8/6AgwUCYWdsxEInpucWV
+ 9a1d/cNjEzPzS1cBA+LBA1FfUhyjQPaKKyzAAF7NVIo5hHae25qEeFF+E0FBWDDZAvcU
+ Q8ZAh5nJ76IQK9GQ9Tswi9mJkcGek/WVgCIuPNDb1cHGnKLmLlqu2LFViCBhZHzQzMrO
+ 2ROuASBKqhpO9gygrppbBA5rFBYRDwDAq9dShfmObFiqLtgedJLGH8CwxSwEGISGGCDo
+ Cgg6mMm+RDTk1fOnjzbWbq0sXpocHew9Wa8pyk6JDQvwckHURKig/PE5SPwEjr3fxNTS
+ 1snDL5iAKK1uhGeMTMwyjV6nsPji5SspjKHApDiGYopLLJw+nTr/vvKJ/zEQmz1EMg1M
+ nwY/o3/kD5Mf6TWKsaAhH8hH4CL3Vq8vz00JKAqzkmNC/D0oVHymUZBJkG8gWjq6+wZF
+ JsAiAETfmbGpucWVm3dQXz5FdqBwwPUlCkxRYio/oXz28in/7/8FhBoK/BFNcdNQPkr3
+ gN4lUzKYxZOH67dvLM8Dip7W2vKCjKSoYIQK8g/kj50bxb8ogRoZHzKztnf1DgyPT80h
+ IE4Nj0/PL19fvUs0WsoOchiTK8xP/oT/NxKbsNCd7x89k7BAiP31HYrZRwgWDEV3S01Z
+ blpC+FH2D+QPihQ7CxRMLvfug29QtAyLTTleXNXQ3gcgLl+5AYN48oxwYLYg3EBrvsrv
+ uPnUvyAS+KhNn05m8V9kEoROeMijDUAxNzlyurOpuvh4SmyIP/KHxWcZBZsEEqjFEUd3
+ v5Do5KxCTX1b35nxi5ev3lzbeCSVE0gOCAbS1Ded2pan+gCxeX5bPkR6Qf4s1f/LZoFo
+ QcFi4871pdmJs/3t9ZqCzKSoQB9Xeyszk/2UPnYWM3/8kcLlQfINn8DIxIz8irrW3iFY
+ BIC4j7pKr/pSdZ44lM/+Dx91/+QTz7SfoPMGMguOnGwV67evLc6Mn+lthX+kxoUFeDix
+ UVD62Il7kHNQuLS0dfYMCItLzS2taekeHJ2ev3Jz7cHj569U5cSWYK7vpLXzUR3pTG37
+ J6p341D9HsksECxgFQ/XV1cuT48OdME/spOjgnxckUlN9u00ZsIkdpFJ2Di4+QZHJ2cX
+ VzV1nh6ZnF++AYt4jnpCWXBQnwkd657n13mmPQdhFgzF0wd3by7PTZw91VZfnpcWF+rv
+ QenDmGLmDtxDZRJeR8MT0vMr6ttODU/MLgkgsPKy/YLD15n41m/ZAgVixYvH9+9ch38M
+ djdXF2clRQYifYBzg13tDImfJZNw9w2JOXa85ERLz9D4zMK12+uPn716qwChPYNvZA0S
+ KKrzkKziw7vXyKWrV+cnz/W31yFSxIb4ujlYS+6hf6BAlNhtxFGCTCKjQNPQcXpkav7q
+ 6r2HnwJi6w/1dV9RwBBQfHz/9uXTB2tsFF1NVYUZCeEBnk5HzA9x9tAbCeEcJkgcbmQS
+ OaU1rb3DF2YRJB48ffnmV9k1lC//NtFhE9LK2RAU4BW/vn7+aP3WlfmJs32tNSWImbJ7
+ 7CRQgEzs2msMLuHkGcAm0dg5MDq9sALfeAEgfuNCW/nmbxIkN8GAp9rzART/+fdvMIon
+ 9+9cW5gePd1RX56bEgP3sLdC8bGTQPGvHymFEr30CYpKzi4hk5i4tHzzLnzj3QcBhCp5
+ bj2rb/SKDAbxCjKKZw/v3liePT/U1VRZgOzhh+KDA4X+IZPJBFKoo7t/aFxaPkUJmMS1
+ 2xuPhW8Qq5S/9RtNevuvlU+KjAKk4sVjipkTw72t1UUUKCiPHgSj0BsJ2Tlsnb2ORiRm
+ FVe39AxfUJmEwQKhuAhFCnaPjdsrl6dGTp2sKc5KjDjq5QyauR/cSl9CASQoc1jZufoE
+ Rx/LKatr7x+ZvrwCk6Ao8e//aC1i+1/mW74qWQWM4vcP7zh7LEyP9LfXloqQabtTJBAm
+ TMg5/EJj4RyNXYPjRKoeUJT4/d8wCen7vuWUP/Xd4tQIiY/vXj17sHZj8eLY6fb6suNI
+ Ht7gVmCZO7AJ1Bz7D5qLzJFZVN2CeDl3ZXX90XODNwnZP0SgYCSWZsYGOurLco5FBe0Y
+ iR9/ohxqaeviFYjMUVrbBudACr3/5OXb978ZuElIyfQPkdild5wAmyCCaefqGxyTklte
+ 3zkwNrMonOPj74gSBuwbMqv4Qt7BAdPU2gFLNLGp+Zqm7qHzs8s37z16Rs6hRIlPOeo3
+ fF36ifBASFDEZGqlGzGN9c8dzKs4YPqHxWcUcJhAyUH8kp3DcE1CQUJk0TcvH3MWPfe5
+ WZSRIF5FVDuz+ERr37kpyqEIEx8M2jlUQAhmhcJj9cocmFWLYFaeO2RWAgmkDsGrajhg
+ Xrtz/+lL5FA5THxDH/jkV6uQoBKMkiix7XFm2+lYq9kp2yYk9h+yAMMMjETqqGs/PXpx
+ 4TqzCaJV/H2fPJtv+R8yEttUYBVigWKHFZiMhEiiZfXtSurggPl3QAILu1LZsYKlmlMn
+ a0tBrJhO0KKV3st3/yJiRXTCG3TieFl9x8D4zNKNuw+evf57IAGTEOsTzx7eu7l86QKF
+ CW3ZwQuZeq7UEBIgVnYu3ijJCYnBvxsSMAmqv7BmdYMWMqkoT4/HOj8FTCrA9F3m394m
+ ECf+NjYhOwdyKNdfWKihdUx3eR1T/1JUREyOE7CJ7eKEgaxT6cZnKWJKzvHmOa9OTJ7t
+ O1lTmnMsmi548PXynSxP6OSOWjl3PH31Tskd+FLdszCEZwoScI4PyKGqMJH9Wav8nDuo
+ FN3CJ3SYleFBIZBQciiFiaVZChNVhZkJtE6D1QnqJtnBkhWWJ2SOmVFEHHNyfmWVlu7U
+ bNvwrEJGgsLE+zdYz8Ui/8Wxwa5GTYG0yA8k9uqfRH9gjinXHekFVc09YnniMS9PKBWY
+ ASNBa/xYxNyQVrYbNEgdfLljhzbxA2pRrGxb0cWO2NQ8sWS1fIMWtnGpQ7V2Z2jBQrEJ
+ GQlOHVjj1+TrIKF/W428PoE1flrGrG8/jZUaFB7KSo28QmFgZqGLBFKHggR5B8UJ6kXc
+ ycVysWYlCo+k7OKa1r6zE1SW8+rd77rtlYZkF5uRYDoxOtDZWFmQmRhJq5hWpmgboAYj
+ PRkFXe6gjgFHjwBaoKhswoou+DZdCqTlu81QGEIC5XPQRYLixPWFi5Q7qIEimpiVjRkn
+ D73dQwqZ4qpoSi6v8tPlYRjF61+3XgIzmHSqi8TLJ5xFz2u7ajwl99DfKIAEXylHr1lg
+ ZBKu/DR3D43PLl5fu/9Ee1lUWc40nGChg8RbdNXcwwVi6hpAq1VGInXV2FvvrD+Vr4Ht
+ R7e2o4d/WFxaXkV9ez8oxZWbd8WlcslBlLhpKO6hIEF8AhwTIfPaAhGK5uqSnFS06nqi
+ P5Vipv77G/i6qImZFbrN6AoxGcXg+MWFFfgH2ie4s4iuCMpQGBoSdKWcmmrIPZYvob9I
+ 6r8LQi8JNRjx/gb9YqZwD6lrIB5GUdfWh/6Jpet3NqjJinZ1id5D8SsYIBKgVnAPLGOi
+ GB0bRH9qKfrvwgO8nFGEmezbq7dRCPegFkQ3XzYK7jeb4sa7Jy9ea9usDBEJrPCjQxXu
+ 8VoYxdwEIkVDZZFIH9R1RpxCz3UrbcMZWkmoB7GsphV9VuQf9x5SV43ujibDsglCAu7B
+ nYhsFNyUWVuen5EQQW011J8Ko9CzaZncQ+lLjUrMLNDUo2Vb8g8pVGhphcEhgUCBruV3
+ FCnu3rwyPzVCTZkl1LSMZhLqT9WfaMI9uDEV/UUe/qHUtF3d1EX9mNSYqviHHDMNDwlh
+ FG9fPZealodF0JSI5k6alsk92CisiFNEJKTnldVSs7KUP6izRgRNDhQGhoRwD9qAK3Xq
+ gmgO9XDTciz3p+6oIpWMgjgFOjLRwF5U2QBSgWYr9KaSUVCkkAt0w0OCIoWAApkU/kFN
+ /Y2VhVL1Idbw9FzXJaPYJTY1OHsFhMuN22PoHiBS8RKkgpFgSmGASAgokD8k/ziPXqta
+ 7k/ltjNa4f5ZzxVuNgpsdDHnzu2oJA6a/Wcn5pYpUkjuIQUKQ0MC7sH5A1Hz7SsmFdTJ
+ TiUpL11Rs5Wxkd5dmWwU3IpI3fySUUgdy0Sv4B5KV6bBIaGFAqGCljP5+k9rDV8J80GL
+ 0Y66MrVGgUiBdn5Eika0809hRXNdalmmPEoh0/CQkKEgVkGL/djeMIK1q4o89WUPfRcp
+ RKTYj+pDpA/sdUE/P7uHVIgpIdMAkZA3qP/2AaRbVOdD3dS+jfVM5VKYfqXHDz/wnnLe
+ 7EI9y4Joyt3bHCgMGwkyC1rkFkaBnn5q39ZeHt1hVyaxK9oJRuyKtv209p45z+2IhokE
+ bFMUQtK/VICQUYj2bfQY1al7EXfpmUZ/wGI/FvGMgAQtU6iQoI5+g0VCFwt139nM+EAn
+ ro/SVUHe8bL3M5CATchlGLwD3MpQ44QUr7R2QUahNLJjQbMRDSVo6cf1UbRRII3q2zwg
+ 1R7YFAduxTug2hEx56/ckra7GFwWVSK3ggUj8eb5I+qjoJZ+DScP3tywAyTEbmoTU+QO
+ b+yTzCysbMTGH/RvowvvGfiEtvBQzsBgDmQoZCTWb4FRnOn+PCQoTOxGqy61b/NeMLGG
+ N7N4/c596mQnJAyMY+r8EAzGF0JCFOa8YzQcS3jltITH+13kLVCGVoF9Ggl4B214aVS8
+ YydxQt4xSpuIaQWvqKqpC1ugyDmwrIsFPCVMGAzHVCMhTGJTxGyowCaoYBEx9c4dnEOZ
+ TThJmQMLFLRqxVW5cA7DtQkpTqj62Be3dPTr28eOsmPXHnBtySSyiqqo6phWVR20PCHW
+ +dW/hWEca5EQ+12ofUC3e1t/jknxkmgVEUxe0609uY1JGDYSzDHRUvJ4Y5XaMvtaTxDb
+ 5m2jtEChXwUmnIPLL+rKhEmoo4TYRCybhOHFCa1JcN1B20bnLgz3NFcVZMSH7bBnGc5B
+ KZQW75hpy4mDL5grq5jCJAwNCQkHlGBoUKXOM6pFqS2zQUkdO1if4MvltNtFXCQuwtL2
+ 4BjWc7F3VqzSaKOE4axPSDFKiwQ1qEpbGzhMUAEm9yzrS7ap+sKmOOx2oQ4jNA7w0gRd
+ I8Ya5uYN9oYRJZWzUHxD6ll+hEvml3hrQ3EmbZWkO3Lg2o+epajudupCaiaBSaDDiDdK
+ brqln3IOBnGgAEEXiuV99rhi3tmoyVdvJNYPCQoTvBWMu9il7dRzovaSKw4pSOCLDQIA
+ +SS0QAiTkDp1RUO/tlNX365Muhoot9/FpOZW1Ivt1Hew7+eNxC61QBgUEhIQFC6pi0K0
+ scv9qaquTH2XtjlgSi2ZcenUaUWb4mhng7x3VgFC/i0M41EHCLQs050X5NtxbGpj1291
+ gtv5D5rb8F0XMour6V4DvClu895Zg7IH7YIVrWFyU6Zo1N1yixa+QqzXOo3Y2CD3IZbU
+ nDw1Im2KEw3LBmkRsj2IdW1qocB1H+61mjh3qr2uHKs0vBUM9yXR/7Y9QEK1i5ia73DX
+ BWwFkzfFGSISukBQgxFfC5RarZqqi7Jwfy/uydxB08AP/xL7qbXbfgbGLm6zi9iQfGML
+ ENRKwp1Ws9j/dJIvisp3cqJ+fv3ChBYJLE1Qv3KHsimOt3jIJmEYUVKchYIExQi5p+bB
+ vVtX0UhyukN7oZzbdPVtLsIKv8omNiOhbBnFdxsKFAoM8rUvVccZunS7W06U5IiOGu69
+ 28ENQ7VIiO2Bqm0/2s2z9PUGAoUWCWERBAT6MfkugBeG+07Wleeni1tDUuvdTu4CKCKm
+ he59F0Q3P1Zy5bUqA0FCC4PWIpA2nj++j4vk1HnXgc67rGS6Xahox9yBScA7eCuYsgEK
+ 3fy07Yc32fPtBuRI8e2NYhMOUowQQGi7zUSLrrytQc8WRCIchARvgPLANZ+MwurmnjN0
+ yx5c8sFOSd7XoDqBb+khqtNggwChogZEAgJtRVfn0ZZKHVZ56ehA9Hahtm267bbevfx0
+ TVQuysUtKBo7UYqihV21r0F7DgaCBCIEGQS1V7FF3L119fL0+FDvyboK9a109e9KZQ4q
+ V2Dy3Ytq206hhV3a1yDd7E0LxTcLnOpTUAFBt0y9vwYgLo6f6Wur1xRmK7dXpnC5E5OA
+ TeAGLXSrGvmOVryvgTa7SFfJtW2p0tl8fcNQwyD30OCOwmhIpdvowjUAxHBfe0MV3Uf3
+ 82+5zWv8KMGku5zRvga6F6J8cXjTUg2f1HZY6Jzt9k+2+7PtXtv+r/lVMgdyDHHH7Vcv
+ nj7ErZWvEBCn2hurinNS41W3YQep0m9RWyrQpNU7ZV+Dcn9M7jZTlu+UFMJntHkCf3Dy
+ 6v/a/GfbPlf/geqYQSAYJBzIIHBzfrrd9jRZRGN1CW4yHUm35rex2NnWDgkJChR0ucOW
+ 6vL4dPRYUccA96XSki6r1Wy64T6fn2oWqvP940PV33zqcMsHSAiQLfD911nlQrkb/eq1
+ pblpxAgGIj2BmIQi17CDvCGFTHHTVGv5PrpY3B6Af6BvG/fR5d0u298/Vkswtpz9J1/4
+ 1Py1r6v/VAaBIGARAyHpQII4LJS0fufmysLs5OhQb3sDLCI9MSrEj9VMPk/CQ7osKu6t
+ jCvlvK9hcEy+yfSrN7jpOIs50Xmpz1NGQuc1kerlKWz5E/lvtDPffKR8mvgMBoHuev87
+ qYhJomokhsOqFdeXL0PMhKQaqgQQ/p4s6wKNtF2foQvG99uGTgNadFGPcotuW69043Fx
+ v23e5CHt/dEFQzlvPlABQPep1z7Vvm3zxDc/l9/JfysLVSjKcnAKCJm8gOogVF2gZLII
+ zyAlE2hW5KQlRIX4e7pIUj87S6BKoJDbJ3hfw7HsYrSw42b0uAf7jbX1h6xtJWPBs5PP
+ dtOjdPJkyAhqGNuJT2yeuc5z7QfSZylRQVgCqQ1C/4bEF6ETxUo/ULcZHTrV2VxLki4y
+ ELzRh8jljvKGFCikfQ2kYnJUV6AAAniQdYJchSL8Jv3U2pMWRwIGCQJSCiS9QAGH+Avt
+ H+hMXueJ8h4GAnCS0gtEBhUQIBD1COpP0A5j9aep8bMDve1NJ8pJEywy2M/TxZ53PAlx
+ G327USWDoAeQK9GOaeOIzWAkWlFa3cRaDXNL1yBiQlJfAgtwTpKwUdk9I8AnTlmevJlE
+ PYR6pCLuwX+gTFNn8uonyjvweZQs8VlQ1CNhHzgEQCCZrPV1KILdvH51iVWwhk7BM6pK
+ 8zOPQfrJz8PF7s8Bwe2YOkImGXkkZNI3NDo5u3D1BsmeQceEhBHhJKxjIxk+I0IRgW2B
+ QSCdyF+hJkpDyH0I3RtMTpno9pRd+98MhCBPlCVeEgoAYQNKtXcgJHcN2pPzs6wS193W
+ VKMphmAeyYEha1iTa3y2RchGIcRtXCBuE52UAatoaIOmy4WLEJElKTyW/FLETEjIhExf
+ HsIUSCyTDPn1K9KzYiErgAHsyI50odiSQ7Q4SL3HKsk04RAAAVp5JC44P3txclxWyysj
+ z4gOPeoDiTgBBPZz7JRJKA5CiVQoP1mz8hNBUVLFgkfjU7MLy5AFvAsZOEnghn5roe1C
+ jsADqk2MghAvewaFXRaGIl2od5Lyx2Yo1IahgkHCQdavIRk9CKHBIQgE0k+8NDM9eX70
+ rI6CYmRIgJebo62QDRRAfEaQYDgIClIDQxeFgCIxPQeqaM0dfTALaMkCi9ta0SMhW8Z6
+ R6R5RN5ApkBxnbyZRJdpsEQSAgypoGxnFpg/RQk1DEp5hXpblpm8B3E8OARMgVQ3J0n0
+ feg0afXWn9AU52WnJkIzELES6leyfiIs4nOBQKRA0KRQAakfB6EHlppdWH6iEQJxkFEl
+ LCAwLAlhkQyY0MAiFajXwhlYWliENBLixoBA932yIynYfoKnbocDDEItPXod6pFsChPj
+ YyNnzwz293V3tDbVCaXV5DgYhI8Q4NUqrX42EJQ+KH8I1UBA4R8cGZ+SlV9ayZrThAWJ
+ b0viaJB4lHTR4AY8nkpy0xzSYMhiQLD8LotGwUdUZqGOnGocEEgoZSD/0AIMFHyesDQv
+ ZIohHMmmQOq8vd2d7a3QZa4qY/Xd+KiwQD9oi0KU+fDBL6O+K0IFoDAlAUVPv6DwWAjT
+ Q0iygWWGRy+wIDvAIEF2aJGTVtyDhzxwgLgOS7gtefPy0uIiycWuQLccPgUBLVlvU+ap
+ umgwBhKToswJx4Ag3qP7Qq557iIkitkUerraT7Y2NdRCzbukIDcLiszR4UEQFhV6syZQ
+ ZGaRvM93DREpJCiMyUHsnKElGRadQOKiGkhPd/aePkNakhBRXFqGFCwUFEk/cO0uDxzc
+ EbL0HNLmZmdnZi7OCO1RFu0W4lEqbraFj1AiRh6iPCwCBNFpWcIbMvcwhY42gFBXU11Z
+ UVpcAP321CStSrfNF1Xphn8IoVXWF3Vy9w4IiYhNTs8uKNXUNLR29JC+KAlrXiJJSYgD
+ k6akPCAVe1UJaRPnx8fHxsZYj/YSfEoId7P8KKURohdMxImUi8G5mAss5pOizFxbvX4F
+ ktUXRodPkxo1C5VXlLGKfWZ6anJCTGRYUABkqZ1Iopt0qffu+VLK7QoUEN+1snV08YRZ
+ RMUfyzgOLE7UN0tiq+MXJiAZfWmetIKXoDS6vLy0tLiwME8hDeLSCGnDQ4ODAwMks31u
+ jHxKiO0JKVaIRG7V7obMGlKxlIchM0r2ADp9dXH+IiTdT/d2tDbWsXh9Qe7xrIy0lOTE
+ +Jio8JBAfx9PNyf7I1ZkEMIzPqfWUKiE6kCGAskUgsz2zjCLoPDoBMKiuEIR4D1zdmQM
+ cExNs/jsLMbMxenpSVjC6DkOaT1dXZ0dHZBt7j01ADOanGVhe+IjSDmy3h6r7UmK7op2
+ KNjIcyEeirIC4qGTY8MDwKGhphKq9bnZZAqJCbExURFhIYEBvl7usAdbawuzQ2wQLNq+
+ 86JLNX/VoQQFeMVBUwtIEUN5NiAkPAYa3dl5EGWuJlHmzu5eaFKfgR7xCDyAxxhUxskS
+ +vsQ0tpam5sa6jEamvDm3v6hEXAz8FRwdojusQYjK1CSiqg0SE5WULKnXF8p5dW5wb6u
+ 1sYaTWkhxYXkhLjYqIjw0ODAo/6+3h5uLo52R6zBIZA7KVRy8fknsqcKBxwSFOAVe/YZ
+ C+F26HRDnzo8Oj5ZJdQNne6ubmhUs0j1IMYAKc/3diG7NTfW15yo0mgqyssrNJXVtQ2t
+ 7RCsHTmPHEx8ZG19Q9LllNSFhcSsojH88MEG0UlZZHiovwtlRWVpQU4mYAAKYSFBRwP8
+ fL293AGDg52NFezhIDsGDOJLeYaEiIBCCFSbWlgdcXAGFgHB4VGxiUK8vbS8ErLlDdAt
+ Pwnh8o5OjI6O9raTsIT6WoBQVlJcWJCXm5ubl18IifMT9S3tPf1nBE8FFreh1SrJLUNt
+ mAcJDxMrRZWJPIz66sqiJDzNItxlhTkZKYmxiAtBZApeHu6uLk6O9nY21pbmpodMDuxH
+ pJRw+GIGwWBAqhsUi9Tb2SysbQUWgaER0XGJx9Iys3MLikrKKkjLvqa2jrygvr6utqam
+ ukpTjuyWl5OdmZGeSiM9A+8tISw6ek8Pj14gbnZlhWTIkX2hP84a1CRFrWiRQ66c6isW
+ I6dAKYTZM1MTYyNDgwL8fMgUnGELdkdsrCzNzQ4fOmC8z0jG4UtFCJWTyB5ihGhxGJET
+ WLh6ePsdDQ6LiI5NSE5Jy8g+nptfUFhcXFJaxqO0pJgNASCkHktOgDvTiE9ITkWsLeEc
+ 3IvYeWFqZu4yaTpD0voWROlvi4Ej1JgAQeThGQjUo8ykQCnKiqTYSE4T7mwKR2ALQMH0
+ MJuD0R7YAwWIvwAHESzILBAt9jMW1rb2Ti7uXr7+R4NDw6Ni4hKSklPwi2dmZWcf55Gd
+ nUWGcAzZLTaaYloIRmh4BFwqhXOwipuBjlwGOyNCIo+rV68so8i8PH9JkOrhQYjTtzTU
+ aEoKstOT46JCA/28kSYc2BQszGALCA7wCpjDbuEXf6LgUpnANofkIQic5CKMBeKFnaOz
+ q7uXj19AINCIjIqJjUtISExKlkZSIhkCQAgLQWAP8Pfz9fX1CzgaFBqBvJORQ9ysUeJm
+ Y+eRf2dmL83Nz89fpoHHuUuzKDKnJi5wHu7v7WprRplZUnA8I5nKCn/QaU4TFmamDILx
+ /n0SDBwn/zIcCBpAocLikJk5nITB8PTCFAODgkPCwsMjIqOkERkRDkPg7Obj5enh7u7m
+ 5u7u4eXjHxgCLFIEFvUtxM0GwLdGiY9MTExOTmFMTk5MXDgPRnZumKrMns62lsZaKjOP
+ ZxxLkMoKRzsbSwvYgskBCYQ9u2ENfz0MbCWMxS+SXZgcOmxmYQUwHJxcXDFFb19f/4CA
+ o4GBgUEYeDgagOQGENzdKLA7OjjYOziyFfkdBWVnLEqIm7W0dYBv9RP/HB4+e47G2bPD
+ gABFZh9Xmc0NtdWasqI8+AVwCA7w8YA9gE6LNAGHECD88jNlTVjDl80X2zgIzELBYo/R
+ PuMDBw+ZmllYWh8BGo7OLq5u7h6eXl5e3jxwAENgEBzsbI/Y2Fhj2NjY2jtSeAEW5COC
+ m9XUN7W0tnd0dfX09vb20cBjTze4SFtrC+fhitKi/OPgDygzg7msIBwOH6Q0ARRgCQQC
+ ofB1YBBmIfvIbgQMBuMw3MTK2uaIHeBwdHJydpGGs5OTo4M9gcCB3YwH3moDmspYgKcS
+ N8svKinXVJ+orW9obGpuaWnl0dLcBFJaR4yM8nDu8cy0Y6BRYcDBy80ZZYW5KdgTWANo
+ pITBVwRBthIJCziJAMPkEEwDtkF42ByxtbW1w8AD2YGVlN0OHTQxOXDA5CDeivAiYSG4
+ GRIw8m9xSVm5RlNZVS1GVSU4aVlpcVFBvigtiE1SXeHp5uzAZYWKPX0DDBQs1GAY7dtv
+ zHM8DDzMzS0ACQ0LC3NzM0rxCGkc0/bR2H/gAMKLjEUAEkkU6Mix1IxM8BFQ0IKCgsLC
+ QvwLBHJzsrOQh1OSE+LBJkODjvp5e7gSDigr5PIKHvE1ooI88W0eRcBAViWKsWevEeZo
+ jN/c5CB+dWWwHciBfQ8PvBPhhbEAT/X08UNWDY+KBuNKAh6paenpGTTS09NSU1PARQAC
+ 5+FAZpMuVGZygODy6ktXFdvMU6+XGAxKqwINwAE89u3fv9+YBw7w1Egb2PE+fifxEfYR
+ WyQdiY4g/0ZGRcfExsbFi0GMNCYKhIzJCEoLT3dXZ1FmIlCqygq9TvWvfxPyFcXrn35m
+ OHbthnnQ2IshjpDh1YH9J8KNQq0xsDBD0pHoiI+ff0BgYDA4aGiYGKGgpMFBRMh8CQU3
+ pGGwSfAHKjP/qvLqTwImofEjZsmA8E8v/4OXRHLj9CZQIywkH9HSEXdPL28fcFA/f3+Q
+ EvwDRurj7QUyIlWZDIOoK0TCoIz5J0/9r/hzwMHWwXP9SQw6pkH/J38nvUvYBeKsTEeI
+ nDlS9gUh0Q43UBEUmagykYSoyjSFOXCZyYnzm0dKeUqfeKRZq8fWt2mxUNERS6Jcdnb2
+ 9g6gJDxASO2RipGI5TwMUr2P+INEqLXobv2Ov8srMhagI3ICPoz0S8nXimmoDYa1tRUg
+ sNDmYa4yqdqWCPXfZbZ/fJ6MhXASSsCcf5F9Dx82BSORhqnpYVAREDJBRiRSLaLOP8Ee
+ ZIQIC5FyZDrCeBwgSsIDRwQBJ2IqsDgDSYWF/CH/lEcBhqAjBAdyrxEzEqKiRESMRCqW
+ 8jCnIISgf8r0deeBiVFyYZZBrAuERDV2MRX5BkWm7kl+tWcSGoQHERL1wCsElG4e/mon
+ 9o2+iDOvmLbqX371G53R96/9jsB3BL4j8B2B7wh8R+A7At8R+I7Al0Hg/wOxLUKpCmVu
+ ZHN0cmVhbQplbmRvYmoKMTIzIDAgb2JqCjEyNjM3CmVuZG9iagoxMTggMCBvYmoKPDwg
+ L0xlbmd0aCAxMTkgMCBSIC9UeXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lk
+ dGggMjU0IC9IZWlnaHQgMTMyIC9Db2xvclNwYWNlCi9EZXZpY2VHcmF5IC9JbnRlcnBv
+ bGF0ZSB0cnVlIC9CaXRzUGVyQ29tcG9uZW50IDggL0ZpbHRlciAvRmxhdGVEZWNvZGUg
+ Pj4Kc3RyZWFtCngB7Z2JVxVJsodttVVAQBZBNtkEAVlENkVQBEQRFAVZlF0ERUEUQUFF
+ xK3tnrHbnteLM223M//p+0VEZlbW3airvIHzIM7h3lpv5RcRGRmZVZVs27YlWxrY0sCW
+ BrY0sKWBEBr4ZuNJiNKu1S6C3u6SHesrrrJs307lWytW1+9obtDu3Lnz240mKNPOHTtY
+ GWuuAUEnbqLetWs3ZM8GEhRn165dVDbogFSwhi7A3s7k4AZzRERkZGTUhpLIyIgIssZu
+ UoE4wdoogNhhdZgc5BFEvTc6OkZJ7LqLLkn03r1RUVCCaIA94Ov5mV3QiXxvTExs7L64
+ uLj4+PiEjSIoC0oUty82JiZ6bxQrgBzgqyuAYd+zJxImjwF4fEJi4v6kpGQlB9ZZVDGS
+ kvYnJiYmQAUxMawAVAHi/xrzK/hdxA50Igf2gZTU1LT09PSMDSPp6WlpqakpB5KhgwQo
+ AB4QsWe32P+L+anC76TqTuz74gg9JRXQmVlZWdnZOTm5G0NycnKys7OyMg9mpKelHkje
+ nxgfFwsHiNjzNeY3ho8g9nigp6ZlHMzKzs09lJeff7igoKBwg0hBweHD+fl5h3JzsjIz
+ 0kkBCeCPiqQWYCfVflfi4mmF4b/9Fobfy+wHUoGecyj/cGHhkeLiktLSMluO/tfFvnpZ
+ aUlx8ZGiwoL8vNzsrIy0FOaPdszvidg6iODh9Xtg+Ni4xCSwE3pBUXFJ2dHyYxWVlVVV
+ 1dXVNRtAUIyqysrKivLystLiI4WH83KzDqanJifG74vZC/NL8LPIPCxq+MgoMnwysecd
+ LiouKz9WWV1zvLb2ZF095NRGECpIXd3J2hPHa6oqy8tKjhTm52YfTEtJSoxD7afgR7Hf
+ A7NziLI8vD4uISklPTMnr+BI6dGKqprauvrTDWeamprPnm3ZKHL2bHNTU+OZhlP1tSdq
+ oIBi8GdlkPlj4f3h41vwbPhDYC+vrKmtb2hsbjnXeqGt/eKlSx1KLq+b6BJcutje3tZ6
+ vuVsU8OpuhPVFUeJPzM9JSlhXwwqf5jWN/Co8gfSMnPzi8B+/OTpxrPnWtsvdVzp7Lra
+ 3d3T09vb27fugkL09HR3X+3svNwBFbQ0NdTX1lSUFRccgvmTEuI0vud2H/A7EPAio2Pj
+ 96ekZ+UWFJdV1pw83dTS2t5xpau7t+9af//A4ODQhpHBgf7+69f6eq52Xr7Ydq75TH1t
+ VXlpYX7OQXg/4XPo81j1Nfxegs/IyissKa+uPdXY0nrxcld33/WBoeGR0RtjY2M3ScbX
+ WagMKMuN0ZGRocH+a73dnR3t55sb6moqy47A+x18r5HvG2R4sLzAZ+cVllXU1DWcbW2/
+ fLX3+sDwyNjN8YlbtycnJ++Q3F1noTKgLJO3b02Mj42ODPX3gb+tpekUzF9ckJuZxtan
+ hs8bPlf63RFRMXGwfHZ+UVnl8frGlraOrt7+oZGx8VuTd+5OTd+bIbm/EYRLcm96auru
+ 5O2JsdHhgb7uKxdbmxtOVjN+anLCvugoZL07vDR77PcMn3hA4E+cajp/sbP72uDI2MTk
+ 3al7Mw9mZx/Ozc1vHJmbezg7++D+zPTU5K3xG8P9fV0w/5m6mvISWB/4sdGRe3ahy7d6
+ 1YffI+LB8onJ6Vl5sHzt6ebWS119/cQ+de/+7MP5+UePFxYWFhcXnxh5KmLW/4sLKMci
+ ivP40fzc7IOZ6Tu3x0eHrndfaW9pBD6c/2BqUnzsXop8q/s++z3C/b6E5DQEPIa/0HH1
+ 2uDo+OTUzIOH848XFp88ffrs2dLS840iS0tLz6D9JwsLj+ZmwT8xNtzf09l+rrEe+Idz
+ MlL2I/Cj6q9ufDI9+X18UmpmbmFp5YnTzRc6uq8PjU3cuQf2hcWnz5aeLy+/WBF5KfJK
+ i1oP8qVOCv71peetvHix/Pz5EhTweH52ZmpyfGSgt/PiucY61P387IwDiVz1VzW+4/cp
+ GTkFJceOn2L44bHbUzOz8wtPnj1/DvCXr169JnlD8tZfeHvwDz7X9eF3rPpN93bXKT4r
+ r16+XFlZhgIWH889mJ6cGB3sg/XPnKw6WpSXlYaqT76/mvG/QccOjd0+VPrs/OLymvqm
+ Vlh++Obk1P25x4tPny+DHNRv337H8o7ke5IfWHjxe94a9EPO9Pu0jpdfoU9ro98Jrg1v
+ 37558/r1q5UX4F+A+e9M3CD8lobayrJCVH32/dXivjY9+f2hoqPVdY3nL10l+OkH8wtP
+ l5ZXXoEcl2VkAf4b5O+20AYS2f2DrJhVtTXolz7c+Q56qNrBunr3DqV6+4b5ny0+ejhz
+ d2J0oPdK29nTJ46VoOqT70fuQeALFfbF9NFxiSkZuQWllbUN5y52XRsam5yG1z99vvKS
+ 2GFrui6KR8zvWX50RDaE/LR1JcshDzc7/c5TKtJqgAbegn956cljxu/vuXyhCZHvSF5W
+ anI8Mt7QxmfTR0TFUryH3x8/dba9s28Idf7B/OKz5zA8sTO5xf2TdzE6ev/eLNoLwX7J
+ PubHH4021AIrBYpAwb5/B/6XL54/Bf6diZH+7o7zjSfJ9zNSEuNWMz6bPopMfzC3sKyq
+ rqn1cs/AjVuAX3i2vPL6DbOzzfnCKBSV98OHDz9bgtUgEgzO2c4n+v6Ws9teYo04ioAK
+ mJ/wX60w/uTN4WtdqPonjhXnZ6Uj8JHxQ7T527d/u4tNTyGvAn5/6Wr/yMTdmTmGh+HJ
+ 4X3NTuj/sMQqvCzSPrVRqcWmoGW12Tnc+TneprXpex5pwFYA8cP8b4D/5NHs9O2xwd4r
+ 8P3qoyrwoeYHD/vk+Eh04vanHjxUeLSmvrkNfn9zcuYh1Xl4PZzeXdml5G54ZhVah0GW
+ 3CrQSPSt9vieoNb9ztNa8KWH/Rn/9asXS4vzD6YmRsn3z9RWlORns/GR727f7oxguZbg
+ +MhxUeth+pLK2jPnO7rJ72cfPUGdh9treBPq2Gxi+P/R4k9Ae+ytCsb+snbT0b/8Qp8s
+ 1h5zAuuNNeBje/H+79+h7i8/W5ibuTM+fK2z/Wx9zdHCQwdVzQ9qfErzYHqu9TA9Qt41
+ +P39+YWlF8Hgf/pA8CjnL0ZUsdWX2ayALBr3Ih/PR/9qCTbQDveh7FkfPih+4/oq+sH6
+ qPtU9cn3B3o6Ws/UVpbkI+VB2CfjB270JObFxHPAr6g909rRMzg2eW/2Mfs9gr24vbI8
+ ojaZHvCEbhX4Vw1sb1PLvEvpxf5yUf/miH2a9geliZ9/Fn6r5lv4b9j379+dGEHgY+NT
+ 2N9HCV9w+l0RSPMOZCDgV8P0XddHJqbuzz9Z0pWef97l9wTP6FLi3/HlQKttv5Pwst6l
+ 9aO/1XYcQ4d+dERO1KdpvSpnCIH/7jv4/tOFh/cmxwZ7uOYj7KclUWcnWNzjmIcxjVS0
+ 9cdONJwX0yPkLb98zZXehn9vLA94LrUuMwEo0Zv0NzaTFgyNXhBqjf1PR+REdZpzIlcH
+ akjI+y3jv9fWF99/QoFvBDW/ub66rDAngxq9YK7PET8qBjEvp6AUbX0b1/oH8wh5HO/d
+ fm/oCV7bC8XWoPLNHP+C8ILep5VjvtUOHETH/sFC33KePu2j1gIpDQoIjv/DD2j2tPEH
+ ujvONRwvP3IoE9l+dGQQ16eIT46PTKeovOZ0yyUE/Nv3Zsn0b7ixc5setudK/wvgqXzE
+ ZzgZltYUigZya8Fg4WT72E+fPskJSg1yllEsORDxO/gm8DnGR9xfQat3/+74cF/nhaaT
+ iHvZEvfg+q6WTla+2Y6IHxOXRI5fUdvYegVt/Z3784tU66mxE3gT83TII9Mzu0a1Oaj4
+ nz79+acPDyvH0ZDREQ6jo//6668/Rcx59KOWBzE/4/v4vhSSWn3UfA77t0b7r15sOVVD
+ 6e6BxKCuT9VeOX5ZVX2zxDwJ+P6mtx2f4VE2y15CTSQQwCgaprPtqk+xjqSjHeEfsFxB
+ dACn+R3m1/h+NZ+Snu/eIuyjzZ8cG+rtON9wAn2dzFQk+xG7A7V5nOqQ4yPiH4XjI9MZ
+ m6Qcl9p6tHYuv0cvRWyPgC+md8OLDZkbJJ8/axyGgSeQR1giGqKDcOTnz5//jT9eUOfh
+ ND5aKetfVAkIn3yfje/j+kSPsE/5rsS9NnZ9jvrIdgO0eVztKcvNyis+hsYejj+OTIdi
+ nhPwnatQtf/AzR3Ta3iFRJSaGDCg0Wv0TSyiB/Wpdiruf5NgmZRgTuMjtQo0Poz/888U
+ 9p1ySc0H/vcS95Dx3OjvvnhWR31p8/wqvqr2lOqUVJ5sauPGnhwfzZ2/6cn2AegdeCk2
+ MQBeYBwWQmEtWCpSB9LB//nPf+gLwufbKqALcFvAxjeub9GrwAfjU9wT1+9B1K8pL8pF
+ trtvL41x+NOrao/hPKQ6LRcR8SfvPSTHf/udjnnWRVwhn0I2e6XQG7tz4YmGOBjF2NK9
+ QAcSLWMDXtP743O1+YOMD9cPTs/GJ9enJn+47wqy3WPFGORAmxcRKNnloBercvyGcx29
+ iPgzOuJLrbfgA9vemN6yPKg0DDFy1XajY03YldFD0/9JUTMUvTa+uD6S/Vuj17varYof
+ qMXn1j4uMTUz70j5Car2wxMY1eBqrx3fh57aex31AtqeaBUX2V6M7/i/pQM2vHb51enR
+ 9gW3/XvBJ9d/9eIZZ7sDVPGrygpy0rmnEyDsbd+5OyJat/ZI9CjHR7WXVIdtb8PrmP8P
+ d8wP5PlMJooISE5K0Doi79c1hc5Tp2k9IVxIvaecUnu+T9RDKbl5+ptU/MV5avN6OtDi
+ Y4xDWnz/fEeCHvp32YdLK+ua26/2I9Hjav/mnWrugtD/Sqmeb8XX4UwZ34fiL71bY6n9
+ ipe/qOXz0Za0e8rxFb1fzKdSEj5Ffa74SPeG+i6fR7JbRJ18Cnt+2R7okevEJ1PQq6pH
+ movOLVr7pReU6Pmbnvu3dqZLqapqjjm7M5GP220nbDOvxHwV+bUGnAN9qXEEHUvwfAnd
+ 4P2Kjr9ve88mMvRI9x7Nck+n9QyG9zjf2RuxKzB9bAL3bmtOtVhBT7d3LtOb3j31bznR
+ 51Td4VcZq4NmLbENhUc+rX1mUdwD+wWd65T8vIJ3Qr6rvbfwucVXYa+tqbYCvVwd9H2a
+ vG+owYvlvj0yvfOXrVxHBT03van4gq86OpSIah/QGY3hcZJ3ouAKLHFCHwlSrRPeIZ5u
+ cVNLLxGPE30a8qEhDjvTlVKK8SnsUScf+c5VV9D3a/CJnjt4h4rKjzcg5CPoPaABPcp1
+ 6Md84I3xeXTD6eCrvotYSTEQkuKU7f6fareV0fsfQ+AQznJNJ8+nl6NKqelfO0G/ua6y
+ 9DDGNuNjIpHp+9h++w7u3uoGj/r2GM5EpvcGuU4gejG+VH01uoP+N4pGQqXUPsApvYuF
+ KMiIjji7eRub2NmrerjETUIZvu7gB4bnuKeCPmd7g92XrCbPv8FnepPlX0CDh8FcafA4
+ 6Pmanu7GUEeH8GF+5qdBHohWgisSMB8DifkEhLQUUHi3xpVjidsMDdHoDnVxQtMj6KOP
+ P3OHmzw70/ft51Cyw30c7ty3dfWP3pomenTwgtC78HlQl0xCYhQAMNuWxGlIwljgMSBW
+ rPy+oIeCpzZPNXlEfxOdXNXFT06gfk5IevRx+kdvT9O4Tgh6g0/mp6FdGdZWClDDXUQM
+ DdCXg8449gerwt5glhmaXZ1/l8ZB1QC3jOoFCHnspob+CcZ3bg71mXSHxvaC0KuBnSZO
+ dqYxoIk+Djf3/o6PLbiXIM7v3M2hYWoUkEoKDxD7usnJf9mB6ZMgVWXhb2G1PhmZPnj4
+ l36dNU0j+n4D2q4ywvjudOfcaUn2VqNH/1aneqHpFT5VfogUSzsBldiMdjpezja16OxF
+ OiWgsL01N41lglzYYXm7b2/xh6bf4XNHQ+o92947vcYHv74XJzqQGxxkWwecljQ8QQp4
+ QFx7o6Ar1ZKWCR0uRxKUnYN+CNuHoK+o9ej5xvmpJKQACEpHJQU+AYaktxmDLjM8swu3
+ IWf2IIZHwULbfi2iHjuaVH7iJxEFaHxN70Q8bfzflOmdOxSB+Q285e10HVwVYnm67+KX
+ RD2+j4PhbE8tnrogl4NKpITsT/gwvsQ9iXom5KtAZ9d46CIwvEpqqK47RucLhkRX2Q53
+ 8ry1eJTrhZXtWNpW5cEXaQD4Nr2T1ukmjx3A+dB6YAXoFe0UfM/GgZcrWZcOssjtPQ3r
+ esx2ws50/a4rJdP4sD2P9gJe57Hc7EsYBLtZ0HoQcDSBvIHWSB80dkf0pFdcwe+qgTcI
+ vRnXXC3TDbuXE/iqKgOC8TW9Hu7Uqa6pAUJvfTK0s45V544V+31Y8Mj1MKrrsZcTdg83
+ CD3j62EPPeZjd/Ak8ZOOkEQEB9h3CfxifK713uHV4E4YPVwa2wljdCMYvOsuD9HD5rr/
+ bvqvnPxbHzouct8QK7RLgoTGJ9t7dnsOerB9GKMbYY5seaTX8DzEIb18HQX8vlkdzlZR
+ gB67DIsetV46OWGMbOEOrvdRzVXoud7/zqa3x7j0OAcxmgENGawz2J9kD607A9cU9bzb
+ 3tDT7Qwvo5rbwhzRDknP9f5XDPaS48staff4FpHrQSwz7sPqUFvpXp/C5/G7gIOXwcpA
+ 8BL0uMHzMKINemrwPd/NCHZlrvcOvYbn4Wk9sutw+y9ZWuI7dv/8+Dvfq6UWL4zmDj28
+ 8O5myLAmPaOKYc1V72SFQQ8gwNOtCY3G0HqFvnkAF1vtbX/xADboYXy0+N7plenDupPF
+ TR6e2vF4F/OL6F34LlL3CnkK3+hG1f/4Ueg9V3yGl6Dn/S5mmHewQ9L/RNkO13vUXbao
+ y/Nl3NoNbNbkSPYTqvpCL3ctvIU9ZXq5keX5DrYZ2fP09EJoelR85Ho66hEZQwmiqeyG
+ 2FpQ8FxNHHp4vlfbO6bnp7Y8P72Ah3S9P7nihf63jx8p5n/yqc6gt0K+RU6Lhh7LQh9e
+ vdfwYT65si28p5ZC0KsHG7iXw02eg89mB7q09sYJXOHus/YTbvR01PMa8w19eE8tbVMV
+ 3+MTa6vTs+urVFdzcpNOeQwLr3HDrxp/4wdOtVctnlfHN/DhPrEW3tOKwenNHT4Mb6Ab
+ q3q4bm4ktVoFtiKgJKMA9vs/MP5vsh0vQY/p8ZICPaUe5tOK6skdb0+qBsenMQ4a4YDx
+ fbr4nMnr+1Ky4qMGlQLq5g7wkuxwc+8h2xF6el4tzCdVueLjYU2PTykHpzfGZ3x7dMu3
+ B0vrqn8nulAOQY5C92sJ/stMz0/oh/OUMiq+PKjr7Qn1UPR8k4NHOMj8NFajuHkAg4ct
+ ZMmtDtW3VZVCP6NgHsxa3fTa7yng64eUvT6hDnp5foNeR1v97QQv+PB+8JMGjNCqErNN
+ buooVbAzSPcehneeSgsDHklu2G8nkOuH8WZKSHptfX5xgxWgkWmYlsXZwEusCsdL6M4H
+ DWxpy3vo3xrLf9GbKez6YbyV5AGfBnfN7U0em6dbcXRTSr7VjU/s0boQf+DKgU08oquG
+ tUJcTnYRvbyT9kVvJYX5RlqI4mAIjsZgZWRfaYChadlXRBEBHEKNZqsRzRCXs+i//I20
+ beG9jRiiOJpe39jyBVb3u1ybWQmWDtStajOYHeJymv6r3kYk10fc8/Imqt9jPL5lU/x0
+ awuottDNLhF7q6UIVSl4i76Hs2qmo7we0f6L30T1/hayelyfA43vh1GE1gBVgtXE1odo
+ ArqRu1f4GfWTvldy1ult7K99C1mMzy8krvoGOr/2rV4B9//ichk10J1uh8HZLEuyE5/+
+ GtIn4ef8r6G2cEHoA2/gsuG/9A100MuEK6vPPiAzLjizJOglUxZZ0GUOVXwco43oqxg5
+ zfWb+kLu7zWZfYCNv9vLzBNq6gnX9A/uFT1rhLuYWFM7/Lar2Sv8WOl490/7r63JzBPG
+ +DT7wuqzjvjM/GGtWtOF+E5K4uzy3aNn87Dg6BB1gvXrARbXZNYRxvcy44yecmYlhASZ
+ Pyb4Zj1vDaZ00Yvq4BBX4V1rM+MM6HnWlXWbbWjZJd7mM1q72YYs3199pilrqqm1mVrq
+ qb+s+sNrOdMUGV9mW8K0ius1y9gjFu+zmM2t2Sxj4vvrOcPcA0e8zGC3pjPMbSPf37yz
+ C4rvm8kVN9vMkgZ/U84qSr6PZo+tvwlnlLXwaYpFTCO9qWYTduFvvpmkt23uWcQN/qac
+ QR6+z0nfJv3vAQpf/QOBTfefI/C+Hll/s/7XEMJX/JvyP8YYfGQ+m/C/BTnmp/+as+n+
+ UxS9rMvuv0n/S5jmR/yj/xW26f5DnPAj/tH/iYMGNtt/ByR+VABSAKkAOmAlkCI2jPxf
+ /mdI5hcViA5YEUoZ6/l/QU05ZAEm8nnHVJd8Lb/pKhtM1hJv67e2NLClgS0NbGng/6MG
+ /hdFjOTjCmVuZHN0cmVhbQplbmRvYmoKMTE5IDAgb2JqCjYyNjkKZW5kb2JqCjExMyAw
+ IG9iago8PCAvVHlwZSAvRXh0R1N0YXRlIC9jYSAwLjc0ID4+CmVuZG9iagoxMjcgMCBv
+ YmoKPDwgL0xlbmd0aCAxMjggMCBSIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVh
+ bQp4AY1Yy24cOQy86yt0tA/u6N3d1012gc0pDwM5BHvwTiaIAztObGe/f4sSSalnPE5g
+ GK2S1BRJlUrs+WHf2h/W4S/Pxc4x2vu9/WC/2RcvH7zdPVhf/x529sJN2dL/MPGzffFm
+ f7/bf3/8eXVj7q9hKuRUzQW3WF+8jctqd7f2xd+3IdlXd3W5EEqdk1br5zzFEmxyQaZl
+ TDPk1VPTYh6nVWs+hCNrZZFpxfCiw7Qwr1PwNg2zxLVhlriWHRLRInjG2DjrOWMx/Y6x
+ YVYz9uLd/ubq8fq//cu7m7v769v94/31ziLjbpqXUNxqpKE9FpvmF2/z6uytjSt2Dq0b
+ tNZpnV2pMLlk85JbRwPe7LAdySYfMbu23DK5sKb+KvWSRXq2Vah1g+0sbSZBPweT5FWA
+ ahGzuXX4bCMZHpOd0N0So4b8l4h29ou2b+1nsPQ1/r823r58Xxnh7PuX4JGv4IIeRHDs
+ JYwYnyKnhVpDWghW99M8xJLBz9odAyWRJsSQat6MZjSGtaaFni0t1BrSQpBik1cZOJpd
+ u53hp2Ae8Vi/pcWLW5IWSw5TWugpaUHb3Nr3OCDgRXCFjho1V5eWmZgRfJmWDJ6llCgP
+ eZ18KqVCJAPHcp3npUIc4anExaQ4Tyv8YGxTJDnYdRziBPPDy34eDAP0ZU0CvLHBOeQY
+ B5igX0rTArajmNfpuPkhLxsKYRPPDoR4at91UoAqDUET7EEbghJkWHMLqiXBRhc2QUeH
+ 00RJkYxFXzRoQ6AHbQkOQROUoMROx20dxkb8kKAtObmJZ1e3G7oNpj6A69jkIQdhwWZS
+ Ig34/8el9U00L/C8yNg3h+22yV5C6P7yE86ZvfxsP9qzV+ek/MGe3Z2DP3jeSsfVuWkj
+ 1zzyjZ9vrmTKvTQeZc5OeqTje33JnOk7YuXx3P5jL1/bPy9BYrmNSOSWgpvKgZ4lFpBm
+ S+Z5Bu07mRFT31ebAGVf0wwTI5lL3OxrylCytBjd15TdYBhg2FcaG/aVoOwj2xFsEq+j
+ 4+yH7is5qftK4ASZjU4KuWzIDDgETaMSdChhQ+ZQVgra6Djke0PmsMQeNIEhaIJD0ASV
+ rGxHguR1ZNyKHxo0ObmJp5PZnCJzS+QRmX2eci4FwnZA5rPLc3P5tfHp8GAMtsBp51CN
+ XEKShzMCefQ+BhwiNWvqGTm7+34NVotlYSqp7eJCKmtvkOw6PwUw12ZPt3LA7i+AhiCS
+ icLEu7UOBtzKkGtc0y7WTdGOtJZK1d4BbSLh5ddNwlaIZUtgWJcgLpKVpDpC7vuuod3M
+ yK7VdVAMCBZH9GVyehPQCarqJBMCXbrqG8EeNSGNKQSOSdIQ4jZqExLnhZMWcOq65XZA
+ Jds0NkRNUKJiM0Yxr6OYHdGoq5tqGD53rlbhNQfCC3uOdpy37YiwYZ5iXJdjwn40Z29+
+ sqb+y88bfop8PoiefuGBvXRAe7f6SQfpBCujy5NHIpiVcU4oGhhCSpYAAs51kJWiGCGD
+ dEh4ojVErbaD8jpRTS03Vsq6lbEgAoi9rLgUaTSsuG5QpAu3GQr3GxQv9E1Q0ojV6vAp
+ SuqkRkl1rFGSfa581QiFkr2DqdI7mJISMvFMLBsCKJYk1Y2S6jhBDlmJ3WJU4jNsfERB
+ wMkij7vVYz4eFALg2rTS5gofDVUDflq4SqbWBQqFBWXZqHZaEbw/5KRycCcVgd77QlOh
+ 72l21qMzrQWaSbf77Oc1JijsRjPh9aAeGbCrByFVj4ydoYusdyBrKH3GjnYVdsnFDcRq
+ DOLUsk0OOcFBPQBVLXJoZkQtMq2DbVbMjqh6VDfVMKr0UwRVYfX1+019I9ijJiRBGg9K
+ 1HtANRNXB3kjM3DHtqpHog4ou9UygX5ToL6g4kkdJyhRiRnFvI5gcURehmfDTUHgQDMP
+ OEqUr5rJ6TzSTPAzxBTBT3O6YtWS8lFbH0ZRHIuAzYLHJTIdNVcCPnj19tfzcET2x4Hl
+ ZqvBT7K81bB6hIkhqGFVgyvLRZBoUOVGWN47mH1DhxR8IuEoBtkyag5ieV+3slxlhUZZ
+ kITkChvHBTaKd0GqPorMEThFcV2aGNFDrmzp1w4NakDCLO0ITL3ewRSXjBFvJWTwnyiu
+ 6zaKa8gERYPloLDo0iokHw2KF/pm9VFC/jW/VYMrv4/pdhHjFNOCi/CYbvpBpqTu9H4n
+ AqwM1EmfflkfMDfxQ9YaaqFQlphzpnJGtYh++xsVGLBrEQ2q0mR8WmwVGN8eWwXO7cta
+ tCjjNwrVIgLjuoCDFmG0KzCbEe3JtA7e7bg5IlpUf78cA/oNBUbxM0TtAXvUhCRq4/Eh
+ sVFgjytlo8B+5h8vuGr1KPw0agI9aoRYf1OTWp2gRCVmOm7rKGZHJGpT3ZR7h8DvKnBL
+ 55EC+3lCPYRtOVTgM2isfAw9qbAnDBZ8YKWQn5T0ZyX2oMwdaYz6wU2NxnTD6LlvNFZV
+ INj1hpCqidBYOozQSzosjkjdcqn5iLndcqVxX7fSWFTDVMY3RREroqlMYoV8mKTmqz6K
+ 3gCc5LAuTVveJdYS7CETkoCUw9KBXyI3v/PhNyvmsIRMxNSQG4dlXeawhAz+gu4sonIS
+ BPJJYSgnSUKGj72yJ4efJ3CX2IFv+mlvxk/74CC2kX6VPlDbs3f7q097kE/4/PZ/RnAO
+ rwplbmRzdHJlYW0KZW5kb2JqCjEyOCAwIG9iagoxOTg4CmVuZG9iagoxMjYgMCBvYmoK
+ PDwgL1R5cGUgL1BhZ2UgL1BhcmVudCA0IDAgUiAvUmVzb3VyY2VzIDEyOSAwIFIgL0Nv
+ bnRlbnRzIDEyNyAwIFIgL01lZGlhQm94ClswIDAgNTc2IDczM10gPj4KZW5kb2JqCjEy
+ OSAwIG9iago8PCAvUHJvY1NldCBbIC9QREYgL1RleHQgL0ltYWdlQiAvSW1hZ2VDIC9J
+ bWFnZUkgXSAvQ29sb3JTcGFjZSA8PCAvQ3MyIDE3IDAgUgovQ3MxIDggMCBSID4+IC9G
+ b250IDw8IC9GMS4wIDE4IDAgUiA+PiAvWE9iamVjdCA8PCAvSW0yNSAxMzIgMCBSIC9J
+ bTI2IDEzNCAwIFIKL0ltMjQgMTMwIDAgUiA+PiA+PgplbmRvYmoKMTMyIDAgb2JqCjw8
+ IC9MZW5ndGggMTMzIDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL1dp
+ ZHRoIDQ1MiAvSGVpZ2h0IDk4IC9JbnRlcnBvbGF0ZQp0cnVlIC9Db2xvclNwYWNlIDIw
+ IDAgUiAvSW50ZW50IC9QZXJjZXB0dWFsIC9TTWFzayAxMzYgMCBSIC9CaXRzUGVyQ29t
+ cG9uZW50CjggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7dAxAQAAAMKg
+ 9U/tbwaIQGHAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAwA8MBzYAAQplbmRzdHJlYW0KZW5kb2JqCjEz
+ MyAwIG9iago2MDMKZW5kb2JqCjEzNCAwIG9iago8PCAvTGVuZ3RoIDEzNSAwIFIgL1R5
+ cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0aCAyNDQgL0hlaWdodCA5OCAv
+ SW50ZXJwb2xhdGUKdHJ1ZSAvQ29sb3JTcGFjZSAyMCAwIFIgL0ludGVudCAvUGVyY2Vw
+ dHVhbCAvU01hc2sgMTM4IDAgUiAvQml0c1BlckNvbXBvbmVudAo4IC9GaWx0ZXIgL0Zs
+ YXRlRGVjb2RlID4+CnN0cmVhbQp4Ae3QMQEAAADCoPVP7WkJiEBhwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwY+MBhHAAEK
+ ZW5kc3RyZWFtCmVuZG9iagoxMzUgMCBvYmoKMzM2CmVuZG9iagoxMzAgMCBvYmoKPDwg
+ L0xlbmd0aCAxMzEgMCBSIC9UeXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lk
+ dGggNTA4IC9IZWlnaHQgNDE2IC9JbnRlcnBvbGF0ZQp0cnVlIC9Db2xvclNwYWNlIDIw
+ IDAgUiAvSW50ZW50IC9QZXJjZXB0dWFsIC9TTWFzayAxNDAgMCBSIC9CaXRzUGVyQ29t
+ cG9uZW50CjggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7dAxAQAAAMKg
+ 9U9tCU+IQGHAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY
+ MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA
+ gAEDBgwYMGDAgAEDBgwYMPAcGK0HAAEKZW5kc3RyZWFtCmVuZG9iagoxMzEgMCBvYmoK
+ Mjc4OAplbmRvYmoKMTM4IDAgb2JqCjw8IC9MZW5ndGggMTM5IDAgUiAvVHlwZSAvWE9i
+ amVjdCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRoIDI0NCAvSGVpZ2h0IDk4IC9Db2xvclNw
+ YWNlCi9EZXZpY2VHcmF5IC9JbnRlcnBvbGF0ZSB0cnVlIC9CaXRzUGVyQ29tcG9uZW50
+ IDggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7Zz3X5JfG8dtaS5cuEAU
+ wUzUAicuDMUR7pErC3HkRC0N84lcac4UxdyGC8OFC1Oz7/fVv/Zc5wYU03rsO4LH2+sX
+ rR841/t8Ptd1jjfn3CYmV3E1A1czcDUDVzNwyWfgmjHFvzrXCPS6XtwwdOjlch0l9w/T
+ a2mB8ubNm7eMKyAjyAtNwD/HrZEX0QKrqamZ2W1dmBsydEncNjMzNYXMEDnG/fflxhS+
+ geEiWHMLC0sIKwhrQwdKAiVjYWEOmZkBOHD/fWxUwAjYFHjNgdbKmkCwsbG1tTOWsLW1
+ IRAI1sCOwDFuwP4bta0jBmALhGsDrPYORCLR0dHJycnZ0AE5ODpCNg72dnaAbg3cgA1q
+ Y2L/JYsjV4PGILG5pRWBYGtnTyQCqIsriUQmu0FQDBuQAZlMJpFcXZydnYhEeztbpLc5
+ EhtR/wWtT4gtLK0B2AF4XUlkCsWDSqV60mh0YwgazZNK9XCnUMgkV+B2QNggto76F6VG
+ toY6NgNTW9sAsLMLyQ1waXQvb++7Pj4MCF9N+P3+0I6MkvDxuet9x4tOo3oAt4sTqK2h
+ vnXrl6XW2hpcjYgdnUlu7lSal/ddhq+//30mk8UKgAg0aKAMAlgsJvOev78v4643cFPI
+ rs6ODoja/LbW4BeXGiEjkaGOgdiFRPEAYIbfPSYrMCg4lM0OCw+P0I/I3xf6w0aEh4ex
+ 2SHBQQEspr8fw9vL04NCwqitwOAaqS8IjUoZeheITLC1B40pVDoA32cFBrPDI6I40Vxu
+ TGwsD0WcwQIbnhcbG8N9EM2JighjBwey7vn53KFTgZpob6ORGvn7QtCAjNr1bQsQmagl
+ 9mcFhYRFcrixvPiEh/yk5JSUlNTU1DQDBgwPSaQkJ/EfJsTzYh5wIsJCApn+DG861c3V
+ iWhHAKnB3xeExpDB19Y29o4uZA/Q+F5AMDsyOiYugZ+cmp6Zlf0oJyc3Ly/f0JGXl5uT
+ 8yg7KyM9NZmfwONyItjBLKCmuZOdiXY2Vpbg74tBa5Chedk6OIGt7zD8A4LDONy4xOS0
+ zOzc/MeFTwVCYXFJKYoygwU2fElJsbBI8LTwcX5OdkZqUiKPGxUG1D5eVIqro72t9UWh
+ sVoGlTFfu9O9/ZhAHBPPT83MyS8UCEvLyiurqmtEotraurq6esMFjF5bKxLVVFdVlJeV
+ CAWF+TmZqfx4bhQ7iOnrTYOqdrgotD4ymUoHW7MjufFJ6dl5hYKSZ5XVovrnDY0vxU1N
+ r5oNH6+amsQvGxue14uqK8qKBYW5WWn8OG5kaIC/D90DWpkG+n81MmyR0qrsBr5mBodH
+ 8/hp2flPhGWVovqGl03NryUtra1t7R3GEO1tra1vJK+bm16+qKupLBMW5mWlPuRxwoLu
+ M7yoUNQI2hR2Jz9t3lDM0LGhlonOblRvP1ZIJDchJSvvibC8uq5B3Cxpbe/o7Oru6ent
+ 6+s3fPT19vb0vOvq7GhrkTSLX9RWPRMW5mYmJ3Ajgpm+dwAa7A3dG3bfP4HGnH3bQocc
+ EMrh8dMfPRY+q6pvfCVp7ejq7u0fGBySSoeHR0Zkho6RkeFhqXRwcKC/t7uro/V1U0Nd
+ VVlRQXZaYkxkCEsDbQNL1s+b9zXYi5iZW9k4OJNB5QA2h5eUkfe0tLK2oVnS3tnT/35o
+ WDb6YWx8YmISYsqwgVKYmBgf+yCTSYfe93V3tkleNYgqip/kpPN5UaEImuRkb2NpbvYz
+ d2udTbB3IlHvIOS45Kx8wbOa502S9q7egaGR0bGJqemZ2Y9yuXwOYt6QgRKAPD7OzkxP
+ ToyNDg8N9HS1ScT11WWCvMwkHgegvTxIjnYEVNI/3pogmbFViuROZ7Aw5AJhuaixubWz
+ 571UNjY5MyufW1hYXFIoFMsQnwwYaPxlyGNpcWFhTj47PTkmkw70vG1tbhCVF+UDdFQI
+ k0GnuBLtoKTB3T+oaCQzONuW6EKh+TBDonjJWQXCijqxpKO7Xyobn5qVLywqlpXKldXV
+ NSzWDRmaFFZXV5SflhWLC/LZqXHZUP+79tcva8uF+Zl8XmTw/buebs4O4O4f926QGXo2
+ wR4V873giNgkQK6sF7952zMoG5v6OL+oUK6sra2rVKrNza2trW1DB+SwualSbayvrSo/
+ KRbnZqfGRt73dEjEdaB0Bj8mItDfG0oauftHQmtktrYjurp7+QWEcx9m5Asr6ptaOvuk
+ o5Oz80vLSuDdBNSd3V21scTu7s729taman1Nubw4NzMpG+x9i6AFeemJD9gscLcL0dYK
+ hL5+/bw/sBAzJrMbODs0OiEtV1BeJ27p7JeOTcsXllfWVJuAq1bvfd7XxoEhQ5fE5z21
+ GsA3N9aUigX51AdpH0DXPnuakxrPCQF3k53tkdDnr9FgbTNzkJnkccc/KIKX8uhJmUgs
+ Qcgzc0vKNdXW9q4acA8ODg+/GE8cHh4c7O/vqXcx6iX59BiCbqwpLcxKio0I9PNyd8WE
+ Pr+LncjMYLK5DzMLSqobJB19gDyvWFnf3FbvATDAHh19RfGH4QOlcXR09OXL4cH+573d
+ bdW6UjE3PTbU0/GfF1XC/PSE6FCmjycZKtoCrdFnzY11MGjarkjmyLjU3KKK583tPUNj
+ 0/OK1Y2tXfX+Aeh7pMf6p2HjeM4BHLD3P6t3tjZWFPKp0cHutlf15YKcFB4mtAvR5gfm
+ vnb9lpkFwc6J7OkDMvOzCktF4pZ3g6NTcsWKahtcfagDPov67ffF2cER+9eviHpvd2tD
+ uSSflA10vXlZU1qQkRgdev8uFTYm1uam55n7GtbBHFwoXn6BUM25RVUNr9/2j0zIl5Qb
+ gAyuxjQ+NebvQz0z0qk8EPURknp3a125ODsu7etofl4hyEmODQ/wpVOgi4G5z9mWoHIG
+ a5NgbQ7hJGY+Lq0Vt4KzZxY+rW3tImTM1XpDnUnjd/+HXi6Y1l++gNKba8vz0x8G37WI
+ RSUF6QlRwf7eHq5ac58paNiQQNd2ItMYrDBu0iNBxQuQWTYpV6yqdvb2jUtk3eyepgZ/
+ 7+9tq1aW5BPDIHR9+dMsPpfN9EHmtkKr1ffMaKWygD0YhY6snZpfXCNu6R4EmZXr22qo
+ ZaSy3hB/6oY16E/9hJC/wd7qrfVPCzMf3ne9aawS5qaAuRl0N2dNQZ9lRhsSrGsHcxIy
+ Csvqmjv6hjUyg7O/QzYoqf7getQAffTlYG8HhP44Lu1paxKVFqTHRwb5e1FcHKCgb56j
+ MzDboHK+H/qAn/UUrN05IJueh2pWg7P1VdYf0wh+P8ZGjexwH1X03KSsH5m7MDORE3IP
+ FTTB8pwmBkvVbUtbRxK2UiXlFFU1vnmHWXtjew+T+fijjcPWJ5N9khhy9756e125MDP6
+ vkvSUCnI5j9gM2G1wprYmcaNliorOyc3GiMgPDYlV1gDXVs6/nFpRbXz+RCtUtqPPhnL
+ iH7T5oaYD6CLwXI1Ntjd0lhVlJOEmpgnydEWdiXnMUPbdnaj+wagFlYiamrrHZ6QK9Y2
+ d/cPwdrGjPzt2zH00eHnHdUqVtCt4hptE6PB9hMa94+YKXRfaNtp+aW1rzr6RqCF6cpZ
+ 86lGpO3pVDTpQReDglatKuQT0MTEouI82H4GMGhuGPON75+VXLuBlmdsqYqMSysohbbd
+ PzI5t4wxf9XKfHoco/oXBq1h3lwD5uFeaNwlGmb6FfPxMg09TKMzrryNMeOth+FvrcLj
+ ngQx43Hvibu/MfD3t6QJDp8ZmJx+NpSh92xo/dI+G8LjM0BcPutF30pe6mf6x/vsk19w
+ +N2NCfYdnRW+vqPD53ex6GgFvr5zR+bG29kKYMbfGRokNPoyA9oYbs5KYUJj7v7uTNyL
+ S3wmTufuM2cf69DZx67/h7OPtb969hGYkbvPOeNafXnPuOrcrTvYe3yWufjynmVGQkPv
+ xvoYHODGx5l1jbu10Di5m2ByChqWLO0dlITLfAcFQcONMjNc3TXSQePqTpkJHu8OImhY
+ pnF1RxSenGBLlv5dYHT5+VLfBdZCa6TGzZ1vTGnwN67u9gM08jdIjb3RAB/vcED+PqbG
+ y7s60DNggEZag8Px8k4WfWr8vHsHo9aJjb1zCA/vWNJQY9g4epcWotb0M1TceHlnmoYa
+ caNOfhIwAYaNk1Tg2iuELtF/5ScawGjiXyG8+tCrGbiagasZuJoBo5qB/wJQn0jECmVu
+ ZHN0cmVhbQplbmRvYmoKMTM5IDAgb2JqCjMxMjUKZW5kb2JqCjE0MCAwIG9iago8PCAv
+ TGVuZ3RoIDE0MSAwIFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0
+ aCA1MDggL0hlaWdodCA0MTYgL0NvbG9yU3BhY2UKL0RldmljZUdyYXkgL0ludGVycG9s
+ YXRlIHRydWUgL0JpdHNQZXJDb21wb25lbnQgOCAvRmlsdGVyIC9GbGF0ZURlY29kZSA+
+ PgpzdHJlYW0KeAHt2/s31HvUB/BCbsMMGjTGyBjHvXHJJdMaIWeEQYlSDsvlEHJpcTS1
+ poPkNOFEWRQlElLuKVSn1vOvPfsz6ILS6bT2s1vP/vxwbtXsPe/X93P5fn3Pnj08OAFO
+ gBPgBDgBToAT4AQ4AU7g/20Ce3n8JAn8sEtUfF+bD8OWB+kEPkDZCLf/chFsqNva2tnZ
+ 7ePx0yQAXLa21svgO/2t8MAuvrG9g4Pj5nDiQTSBTSFHBwd7obZ+Afxr/nV4MdvtQd3J
+ yVkCwwWGKw/CCQghIeXs5OToKC4AWABg/v8rfrHDixlvD+7A7uIqlcpkbm7uPMgn4OYm
+ k0mlrnAJOIO/4Lfqf+vWLyY9yMOMd5JIgB3MPfbL5Z6eXl5e3jwIJwBAnp5y+X4Pd3c3
+ uAAkEicx+4X+N079dfl9Do7OEhepTLCDuMLHx0ep9PX1VfEgmwDwKJUApfD29hIXgEzq
+ InF2dFif+99y6l+nF3PeVermIff0PuCjVKkO+vur1QEaHsQTCFCr/f0PqlRKnwPennIP
+ N5j8MPfXp/5u675Y72G5B3kXIQ/wKj9/tSYwKCg4JDQ0NGx9hPMglsAGDBCFBAcFBWrU
+ /n4q4Bf6LqAPC//u6/4GvbPEKq/w9fMH95CwiAhtZGRUNIwYHmQTED5RkZHaiIiwEPD3
+ 9/NVWPVh4V/H/+rM36R3kbrLvRS+B9WBQaHAHn04Nj4h4Uii7uM4yoNMAh9VdIlHEhLi
+ Yw9HwwUQGhSoPuir8JK7S12+Ad9K7+AocZW5y72VfurAkHBt1OG4BN1RfVJyckrqcTHS
+ eJBMwIqTmpKcnKQ/qkuIOxylDQ8JVPspveXuMleJ2PRh2f/izAd6W9jrgd7DU6Hy1wSH
+ R0bHHTmalHz8V8OJjMwsozE7OzuHB9EEAMdozMrMOGH49Xhy0tEjcdGR4cEaf5XC00Pg
+ 2+8T93pfwt+7Qe+238tHFRAUqo2O1+lT0tIzjbkn804XFJw5W8iDdAJnzxQUnM47mWvM
+ TE9L0evio7WhQQEqH6/9bhv4X7IHejt7R2dXGdD7aYIjouJ0SamGzJxTBWfPFZWUlJaW
+ l1eI8TsPgglYacrLS0tLSorOnS04lZNpSE3SxUVFBGv8AF/mCns+POX5Ar64u3NwcpF5
+ CPqQQzEJ+lRDVm5+YVFJWUVVdU1tXV19fUNDQyMPkgkATX19XV1tTXVVRVlJUWF+bpYh
+ VZ8QcyhE4HvIXJysW/6Oi75Y8eGcJ3X3BPpQbWzisbQMkC8uq6y+2HCpqbml5bLpCg/S
+ CZgut7Q0N11quFhdWVYM+hlpxxJjtaGA7+kuFee9L0z8vTDtBb1codKEaGN1yQZjHshX
+ 1TY0tZiumv9sbWtvv86DdALt7W2tf5qvmlqaGmqrQD/PaEjWxWpDNCoF3OpJHOGsv9Oi
+ b532Ti5ucm9fdfAhoE/Pzj9fWlnb2Gwyt7Z3dN60WG51dfMgnUDXLYvlZmdHe6vZ1NxY
+ W1l6Pj87HfAPBat9veVuYtXfceJvTHvY7P2DImISk9NzCorKq+ubrpjbb9zs6r7d29d3
+ 5+7dfh6EE7h7905fX+/t7q6bN9rNV5rqq8uLCnLSkxNjIoL8Ycv/4sS3sYGDnqubXAGb
+ fVTCMUN2wW8VNY0t5rZOS0/vnf6BwXv3h2AM8yCbgPC5f29woP9Ob4+ls83c0lhT8VtB
+ tuFYQhRs+Qq5mytMfBubbac9seTDbu8hVnxtrD7NmF9UUXPJdK3D0tPXPzg0/HDk0ejo
+ 6NjY2GMeRBMAHCB6NPJweGiwv6/H0nHNdKmmoijfmKaP1YpV3zrxd1j0Ycm3F7u9wi8w
+ PFqXkpF3vgzoWzu7evsHh0dGH48/mZicnILxlAfRBITO5OTEk/HHoyPDg/29XZ2tgF92
+ Pi8jRRcdHigmvouT/Q6nvb2w5DtL3b2U6uDI+CRDbmHphUag7+4bGBoZezL5dPrZ8xnr
+ mOVBNIF1n+fPpp9OPhkbGRro6wb8xgulhbmGpPjIYLXSy13qDIv+tpO+dcmXyQ+oAsOi
+ dalZ+cWV9S1/Av3gg9HxqemZ2bn5+YXFxcUlHoQTAKCF+fm52ZnpqfHRB4OA/2dLfWVx
+ flaqLjosUHVALoPbPNttG751yYfHOv5Bh+L0MO3LapvMHV1APzYxPTO3sLT0Yvklj58g
+ geUXS0sLczPTE2OA39Vhbqotg4mvjzsER31Pd+uiv+WwB9u9WPK9fQNCo44kZ+YXVzWa
+ 2iy9Aw/GJqdnF5aWX75aWV0fazyIJrABtPLq5fLSwuz05NiDgV5Lm6mxqjg/M/lIVGiA
+ r7dY9Ldt+GK7l0j3H/ALjDh8NC0Hpn2zubOnf2h04tnc4vKr1dW11294/BQJvF5bXX21
+ vDj3bGJ0qL+n09wMEz8n7ejhiEC/A/ulku0bPtg7SmRyWPK1cfr0U0WVDaZ2S9+9kfHp
+ 2cXllVWAf/sPjHc8SCcgjN6+efN6dWV5cXZ6fORen6Xd1FBZdCpdH6eFRd+64W897O2F
+ u3sXd0+lOiQyITkjv6S6yXyjp394bHJmYXllDeA3v/J7HmQT2DQC/rWV5YWZybHh/p4b
+ 5qbqkvyM5ITIELUSNnw47G056NvY2ju5wnavCY3WHTeeLbvY0nqzd3DkyfTc0svVN2/h
+ U7d84//hQSaBLTSA9fbN6sulueknI4O9N1tbLpadNR7XRYdqYMN3dbLfetAHe2d4qKcK
+ DIftPvdcRb2p/dadodHJ5/PLK6+30JP5ztzIJwl8cgEI/Ncry/PPJ0eH7txqN9VXnMuF
+ DT88UAWP9py324tjPhz1fomI1RtOFlU1Xu3o7h9+/HRmEaY9LPiffPL7TwryP5JJ4FOh
+ d+/+gYm/OPP08XB/d8fVxqqikwZ9bMQv4rAnDvqf3+TBLZ5EKlfA3X180om84gtN5s6/
+ Bx6Ow5L/ag3sNz+YzDflRnZMYNMJ7NdewaI//nDg705z04XivBNJ8XCHr5DDQX+7/fox
+ P1gc9U6X1DRf++u22O7nX6yswZK/8Zk71uP/SCiBDShY9NdWXsyLDf/2X9eaa0pOi8Ne
+ 8PpBf5s93OK5wS2eOOZn5pfW/tFq6b33aOI52MN2z/SEeL/eyiY+bPgv5p9PPLrXa2n9
+ o7YUnu7AQR/s3eCp7tY1X9h7+qjhqV5KVkEpHPMtfffhqLewvPrB/utF+VdpJLCOD4e9
+ 1eUFOOzd77PAQb+0ICsFnuypfTy/aK+EJ7qJqcYzZXWX224Je7i7F0c96+fR+GrcxW4J
+ WLHEYU/c4YP9rbbLdWVnjKmJ8FRX+QV7F/gBboD19v5MeZ2pvUvc4m0c88XH7VaSf51K
+ AkJr46AvbvK62k115WesN/gB8GNceLizfc0H+81HO+L2HuzHpj7aU/li3MfuCXy0nxqz
+ 2tdXbD7c+Zo9/PD+eHZhRf2V69132X73mEn+js/s73Zfv1JfUZgND/bCNL7fYN/A9iRV
+ v62pbfYNbP9tyf38v4vtf37D7/0GP9b+e7vgP/d/k8DmOR/OemK//+qaL17dsJ7zN856
+ W/f7/5tvwFW/N4Fd7D/7AT7bf2/KNP8c29N0wejqX9nDK1vw2o5KExZjvb8Xaz78+H5q
+ Vry1A490MfrlGj8uAXiwJ97cmZ0SP8Df3O9jwjQqeHFn60tb8LqeeGVLpQmPEW/p/t64
+ bv8U7NfA/sc1xZ+EkwDYr4G99eWN61cafxdv6saEW+2dtrywx/Y4JGhV2B4tanKF2J4c
+ CVpDbI8WNblCbE+OBK0htkeLmlwhtidHgtYQ26NFTa4Q25MjQWuI7dGiJleI7cmRoDXE
+ 9mhRkyvE9uRI0Bpie7SoyRVie3IkaA2xPVrU5AqxPTkStIbYHi1qcoXYnhwJWkNsjxY1
+ uUJsT44ErSG2R4uaXCG2J0eC1hDbo0VNrhDbkyNBa4jt0aImV4jtyZGgNcT2aFGTK8T2
+ 5EjQGmJ7tKjJFWJ7ciRoDbE9WtTkCrE9ORK0htgeLWpyhdieHAlaQ2yPFjW5QmxPjgSt
+ IbZHi5pcIbYnR4LWENujRU2uENuTI0FriO3RoiZXiO3JkaA1xPZoUZMrxPbkSNAaYnu0
+ qMkVYntyJGgNsT1a1OQKsT05ErSG2B4tanKF2J4cCVpDbI8WNblCbE+OBK0htkeLmlwh
+ tidHgtYQ26NFTa4Q25MjQWuI7dGiJleI7cmRoDXE9mhRkyvE9uRI0Bpie7SoyRVie3Ik
+ aA2xPVrU5AqxPTkStIbYHi1qcoXYnhwJWkNsjxY1uUJsT44ErSG2R4uaXCG2J0eC1hDb
+ o0VNrhDbkyNBa4jt0aImV4jtyZGgNcT2aFGTK8T25EjQGmJ7tKjJFWJ7ciRoDbE9WtTk
+ CrE9ORK0htgeLWpyhdieHAlaQ2yPFjW5QmxPjgStIbZHi5pcIbYnR4LWENujRU2uENuT
+ I0FriO3RoiZXiO3JkaA1xPZoUZMrxPbkSNAaYnu0qMkVYntyJGgNsT1a1OQKsT05ErSG
+ 2B4tanKF2J4cCVpDbI8WNblCbE+OBK0htkeLmlwhtidHgtYQ26NFTa4Q25MjQWuI7dGi
+ JleI7cmRoDXE9mhRkyvE9uRI0Bpie7SoyRVie3IkaA2xPVrU5AqxPTkStIbYHi1qcoXY
+ nhwJWkNsjxY1uUJsT44ErSG2R4uaXCG2J0eC1hDbo0VNrhDbkyNBa4jt0aImV4jtyZGg
+ NcT2aFGTK8T25EjQGmJ7tKjJFWJ7ciRoDbE9WtTkCrE9ORK0htgeLWpyhdieHAlaQ2yP
+ FjW5QmxPjgStIbZHi5pcIbYnR4LWENujRU2uENuTI0FriO3RoiZXiO3JkaA1xPZoUZMr
+ xPbkSNAaYnu0qMkVYntyJGgNsT1a1OQKsT05ErSG2B4tanKF2J4cCVpDbI8WNblCbE+O
+ BK0htkeLmlwhtidHgtYQ26NFTa4Q25MjQWuI7dGiJleI7cmRoDXE9mhRkyvE9uRI0Bpi
+ e7SoyRVie3IkaA2xPVrU5AqxPTkStIbYHi1qcoXYnhwJWkNsjxY1uUJsT44ErSG2R4ua
+ XCG2J0eC1hDbo0VNrhDbkyNBa4jt0aImV4jtyZGgNcT2aFGTK8T25EjQGmJ7tKjJFWJ7
+ ciRoDbE9WtTkCrE9ORK0htgeLWpyhdieHAlaQ2yPFjW5QmxPjgStIbZHi5pcIbYnR4LW
+ ENujRU2uENuTI0FriO3RoiZXiO3JkaA1xPZoUZMrxPbkSNAaYnu0qMkVYntyJGgNsT1a
+ 1OQKsT05ErSG2B4tanKF2J4cCVpDbI8WNblCbE+OBK0htkeLmlwhtidHgtYQ26NFTa4Q
+ 25MjQWuI7dGiJleI7cmRoDXE9mhRkyvE9uRI0Bpie7SoyRVie3IkaA2xPVrU5AqxPTkS
+ tIbYHi1qcoXYnhwJWkNsjxY1uUJsT44ErSG2R4uaXCG2J0eC1hDbo0VNrhDbkyNBa4jt
+ 0aImV4jtyZGgNcT2aFGTK8T25EjQGmJ7tKjJFWJ7ciRoDbE9WtTkCrE9ORK0htgeLWpy
+ hdieHAlaQ2yPFjW5QmxPjgStIbZHi5pcIbYnR4LWENujRU2uENuTI0FriO3RoiZXiO3J
+ kaA1xPZoUZMrxPbkSNAaYnu0qMkVYntyJGgNsT1a1OQKsT05ErSG2B4tanKF2J4cCVpD
+ bI8WNblCbE+OBK0htkeLmlwhtidHgtYQ26NFTa4Q25MjQWuI7dGiJleI7cmRoDXE9mhR
+ kyvE9uRI0Bpie7SoyRVie3IkaA2xPVrU5AqxPTkStIbYHi1qcoXYnhwJWkNsjxY1uUJs
+ T44ErSG2R4uaXCG2J0eC1hDbo0VNrhDbkyNBa4jt0aImV4jtyZGgNcT2aFGTK8T25EjQ
+ GmJ7tKjJFWJ7ciRoDbE9WtTkCrE9ORK0htgeLWpyhdieHAlaQ2yPFjW5QmxPjgStIbZH
+ i5pcIbYnR4LWENujRU2uENuTI0FriO3RoiZXiO3JkaA1xPZoUZMrxPbkSNAaYnu0qMkV
+ YntyJGgNsT1a1OQKsT05ErSG2B4tanKF2J4cCVpDbI8WNblCbE+OBK0htkeLmlwhtidH
+ gtYQ26NFTa4Q25MjQWuI7dGiJleI7cmRoDXE9mhRkyvE9uRI0Bpie7SoyRVie3IkaA39
+ O3tHV3dvlSYsRnc8u7Ci4cr17v7hsanZpZerb969f4/WMxf6IQm8B/vVl0uzU2PD/d3X
+ rzRUFGYf18WEaVTe7q6O+2z37vlk7LXZ5+ji7uWrCYv+YH93aGxqZhHs/3nH9j9EBO9D
+ 3r/7B+wXZ6bGhu5+sI8O0/h6ubs47rNhezwK9Epsjx45mYL/xn4Pr/lk3H5EI7vYf7Lb
+ wz/uYs+nvR8hgvUZ7+Go99X9nu2xKNDrsD165GQK/jf7eri///Qej9d8MrDf0Mg2+3rr
+ /f3He7yd1/xQuL83nq2oN7V33fnk/p7tvyFyMr/lM/s7Xe2m+oqzxuO66NDN+/ud7JUB
+ Vvsz5XWXhf3o5OazHfg0Mt+MG9klAcDaPOtNjg6B/eW68jNW+wDl+rOdbfYSN0+wj0pM
+ NZ4pq7vcdqvvPtgvLFuf64mP26Ui/zKRBISV1X55YWZy9H7frbbLdWVnjKmJUaEBSk83
+ CTzX28neRx0adSQlq6D0YkurRdg/B/vXb+GBvhhEvhu38dUE1q3evX29urzwXNhbWlsu
+ lhZkpRyJClX7fNFe7uMfEpmQnJlfWvtHq6X33qOJ5/MvVj7YM/5XQ6fxi+v078F+5cX8
+ 84lH93otrX/UluZnJidEhvj7yHea93aOEhnYB4N9xumSmuZrf90eHHkyDfZrb99tTHzG
+ p+H7lS426d+9XQP76Scjg7f/utZcU3I6A+yDwV4mcbTbuubbOUikcoV/0KH4pBN5xRea
+ zJ1/Dzwcn55berUmfpC3Mb5SlX+JQAKbTvBYb+3V0tz0+MOBvzvNTReK804kxR8K8lfI
+ pRKHHeydpfsP+P0SEas3nCyqarzaAT/Af/x046D/AV98OIHvyC1sS2CTXfz93cYj3aeP
+ 4cf3HVcbq4pOGvSxEb/4Hdgvdd5ub2vvLPXwVgWGHz6alntO3ODfEjd5z+eXxYb/YdUX
+ n7ytLP8HAgkImY0BXLDdL8/DUW/ozi1xe38uN+3o4fBAlbeH1Nneduuab2vvBC/u+GrW
+ H+6UwUH/Zq/Y8OfEmztb8EUJAt+WW9hIYNP8E3rx1s6c2O57b8Ixv2zz0Q68tuO0zX6v
+ rXhxx1OpFgf9jPyS6ibzjR54a0vc4a+svXn7D1xL1rGlDv8roQQ2jf55+2ZtRdzdwxtb
+ PTfMTdUl+eKoF6JWeorXdj5/ZWvPHvHSlvWgH6SN06efKqpsMLVb+u6NjE/PLi6vrL5+
+ A/wwNj+d/04zAWH09s2b16sry4uz0+Mj9/os7aaGyqJT6fo4bdD6MX/LK1tWezjow2Ev
+ MAI2/JzCstpmc2dP/9DoxLO5xeVXq6trwM/jZ0jg9drq6qvlxblnE6ND/T2d5ubassIc
+ 2O4jAsVRT+Kwg72dg7MUNnx4qnsEnu4UVzWa2iy9Aw/GJqdnF5aWX75aWV0fazyIJrAB
+ tPLq5fLSwuz05NiDgV5Lm6mxqhie7MBTvQBfb3frMf+zVzXh+a6Nnb0TbPg+cIcfpzfk
+ wsRvMnd09Q0+GJuYnplbWFp6sfySx0+QwPKLpaWFuZnpibEHg31dHeYmmPa5Bn0c3N37
+ wHbvZL/19h7s4bAHG/4BVSC8pp2alV9cWd9yrbMb8EfHp6ZnZufm5xcWFxeXeBBOAIAW
+ 5ufnZmemp8ZHgb6781pLfWVxflaqLjosUHVAPNXbt/UWb33Dh0XfS6kOjoxPgolfeqHR
+ 1Ar4A0MjY08mn04/ez5jHbM8iCaw7vP82fTTySdjI0MDQN9qarxQCtM+KT4yWA0/wIUl
+ f9t2L+zFou8mV/gFhkfrUjLyzpfVXAL8rt7+weGR0cfjTyYmJ6dgPOVBNAGhMzk58WT8
+ 8ejI8GB/bxfQX6opO5+XkaKLDg/0U8jdrEv+1u0e7MWiD4/2fNXB2lh9mjG/qALwr3VY
+ evr6B4eGH448Gh0dHRsbe8yDaAKAA0SPRh4ODw329/VYOq4BfUVRvjFNH6sNVvvCQz3r
+ kr/Nfo+NzT4HJ1cx8TWhUQnHDNkFv1XUNLaY2zotPb13+gcG790fgjHMg2wCwuf+vcGB
+ /ju9PZbONnNLY03FbwXZhmMJUaEaMe1dnWDJ3/JEV7zHAYu+deJ7wVE/IiYxOT2noKi8
+ ur7pirn9xs2u7tu9fX137t7t50E4gbt37/T19d7u7rp5o918pam+uryoICc9OTEmAg75
+ XtZpb/f5/4y3/gaPWPQdxI4vVv1Dsbrk9Oz886WVtY3NJnNre0fnTYvlVlc3D9IJdN2y
+ WG52drS3mk3NjbWVpefzs9OTdbGHxIovdnsHOOVvX/I/THx3uUKlCdECvsGYV1hcVlXb
+ 0NRiumr+s7Wtvf06D9IJtLe3tf5pvmpqaWqorSorLswzGoBeG6JRKeTuYrffcdoLe5j4
+ cNyDBzyw5WtjE4+lZeTmg35l9cWGS03NLS2XTVd4kE7AdLmlpbnpUsPF6kqQz8/NSDuW
+ GKuFzR4e6wD9l6Y9PN6BHR9WfZmHF+CHHIpJ0KcaskC/qKSsoqq6praurr6+oaGhkQfJ
+ BICmvr6urramuqqirKQI5LMMqfqEmEMhQO/lIRMrvt1OJ731056tnb2js6tsv8APjoiK
+ 0yWlGjJzThWcPVdUUlJaWl5eIcbvPAgmYKUpLy8tLSkpOne24FROpiE1SRcXFREs6PfL
+ XJ0d7e123u038PfZO0pc3QBfFRAUqo2O1+lT0tIzjbkn804XFJw5W8iDdAJnzxQUnM47
+ mWvMTE9L0evio7WhQQEqoHdzlTjaf+GgZz3r77WBLV/gyzw8FSp/TXB4ZHTckaNJycd/
+ NZzIyMwyGrOzs3N4EE0AcIzGrMyME4ZfjycnHT0SFx0ZHqzxVyk8PWQb9Dse8jfv88SW
+ L/Dd5d5KP3VgSLg26nBcgu6oPik5OSX1uBhpPEgmYMVJTUlOTtIf1SXEHY7ShocEqv2U
+ 3nJ3QW/d7He6v1unF2d9wIc930XqLvdS+B5UBwaFRmgjow/HxickHEnUfRxHeZBJ4KOK
+ LvFIQkJ87OHoSG1EaFCg+qCvwgtu7lxgrxfnvK/Rf8SXSN085N4KXz9/TWBQSFgEXACR
+ UdEwYniQTUD4REUCe0RYSFCgxt/PV+Et93CTSr6Jfs/ejZnvJHGx6h/wUfn5q8E/KDgk
+ NDQ0bH2E8yCWwAYMEIUEB4G72t9P5XPAKu8icdqY9V+f9rD2iwOf2PSdJK5C39P7gI9S
+ pTro769WB2h4EE8gQK329z+oUikB3lPMeVeQh63edrcF/8OBD/BB3xnmvszdY7/cy9tb
+ 4ePjo1T6+vqqeJBNAHiUSoBSeHt7yfd7uMukLrDcO+z7ZnqY+etT317MfZj8Ujd3cQHI
+ PT29vOAq4EE3AQDy9JQLdnc3KUx5MefhkCcm/a7r/SfHfbHww4nf0clZInGBC0Amc4Nr
+ gAf1BNzcZDJgd5FInJ0cYZ+3yu9ywN9k31j3YeqDvuB3AH9xAcAlAMOVB+EEhJCQcnYC
+ d5jx++zEnP8Xk37jKhArv42tmP3iAoArYGM48SCawKaQo4NgFzP+u+A/mf3WC0CsADx+
+ lgTsYLoL9u+Y8Z8t/3thWD/G+hdbHqQT+Cgl3D6D/C//Ij6Mx8+QwH9R5j/LCXACnAAn
+ wAlwApwAJ8AJcAI/eQL/C5pZEV0KZW5kc3RyZWFtCmVuZG9iagoxNDEgMCBvYmoKNzMw
+ NAplbmRvYmoKMTM2IDAgb2JqCjw8IC9MZW5ndGggMTM3IDAgUiAvVHlwZSAvWE9iamVj
+ dCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRoIDQ1MiAvSGVpZ2h0IDk4IC9Db2xvclNwYWNl
+ Ci9EZXZpY2VHcmF5IC9JbnRlcnBvbGF0ZSB0cnVlIC9CaXRzUGVyQ29tcG9uZW50IDgg
+ L0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7Z37P1T7v8erXS7jfr/nFiIM
+ okHkPjWaEJEiuZSoYYpEuZdyyS3lligRIaLa1f6esx/7Xzuv92cNDWY0BnXO2Z/3D/aa
+ NZb59Hru1/vzXmvW+rz37ePBFeAKcAW4AlwBrgBXgCvAFfj/pcB+Hroq8L8KPA36wPr4
+ g4d2BdZLxZD/Pp5r7Gi8Bw8ePMRjWwpAsoNQTmBKLH8pylV6hI4N28DAwNDQ0EgtjHlo
+ UEBNICMjKAbdSD9iyVD+IpAqfgI9QodxGRuLRCITFqYszHhoU0AQSBBLJDI2JqyAqUZy
+ b0EK/OA+fCKjB3YmJqamZmbm5uYWFhaWlpZWPHRRAEpZWEA0czMzU/AUEUq4klmSHLlH
+ iVWoXFT84D2iB3YAZ2VlbW1jY4uws7OzRzjw0KoA6WMPnUguGxtrALcETIaSSJIjkVoZ
+ xl2eIBlAlj8NkDwFfBYED+jsiJmjk5MzwsXFxRXhxkOLAqSOK1QisZwcHR0cABQwrQWS
+ psyRjOMuY1QBpPwJ/8F+5ubAB3qA5whuhOywuwfC09PLy8ubx9YKQCNPT6jl7n7Yzc0V
+ OJ0cHUBSAIncCj+qYdyNanWNIDMg0qcluc8eznN2ATuAA7UjPr6+fn5Hj/qzCFiLYzyY
+ AmuCBAQIEh318/P19fU54u3t5ekBlkDp5OAAkGRIMxOT3cRIBGkONKAMygzI+AEf6HkR
+ Oz9//4BjgYFBwWKxOCQkVIgwHhoVUMkTEgKxgoOCAgOP+fsf9fP18fYGSTdXZ2dHcLS2
+ +oFRNTXuwIx0AQYEkUONGUBrWztkT+Ln5U30AgIDg8Xgdjw8POKERCKJjIyKit4cJ//N
+ sVmOqKioSIh1IiI8/HhYaKhYHASUIHkEIA+7wY/2ZEe4UWRkRCUOpka969QfBEUmlEJt
+ 7BycnF0ZP8JH9I6Hn5BERkWfjIk9FRcXH5+QkJiYpIpkHhsUWFUmKTExIT4+Pu5UbGxM
+ dHSURBIRHhYaIiaQxNHdzcUZGMmNppRTd0BRlUVZEjWzQAkDB8KA8J//sUBxSFh4hCQq
+ OiY2Lj4hMSlZKj19RiZLPXtWjjhHkcZjswIkDCkkP5sqk8nOnJamJCclEsyT0ZEnwo+H
+ ioMDwdHby4Mw2tnCjDuhqE7QHATtHMiB3j5+/oHB4CeJjI49FZ+YlCI9IzsrP5eenpGZ
+ mXUhOzs7J+fixYu5PLQrAH1yINSFrMzM8xnpaXJ5quy0NDkpIQ4g4chQcdAxf98jhNHJ
+ AWZESmVeZOca25oWKY2ikjFEIQOCtvawoIcXARSHhp8Av7iEJNADvPOZF7Iv5l7Ky8sv
+ KLhaWFhYVFxcIsQ1HhsUUAlTXFxUVFh4taDgSn7e5VwAzcrMSANJaUpS/KkYcAwLCQZG
+ b8/DrjCjjUDRYNvTolCMGqCSQRa1tXdycfPw9mUAJdExcQnJUtnZc+mgl3s570pBYVHJ
+ teulN8rKy2/eUigUFRUVlQglj00KkC6VFRUQSXHrZnl5WWnp9ZJi0MzPy72YnXU+XZ56
+ BhxjT0ZGHA8JCjjq4+XuJlBERsUZ40G6eqOjFVkeRTFKtaiVjb2jy2HPI34BQSHHJdGx
+ 8fDf2bSMTODLLygsvlZaVn5LUaFU3qmqqr5bU1Nz715tbR2PrRSorb13r6bm7t3qqju3
+ lZUKxc1yoCwqLMi7dPFCZrpcdjo54RQwhokDYUYPULS1tjRHjWooWFEniKsmRBq1tLYT
+ CB4LDo2IjIlLksrk6eCXd4XwgZ7ydlV1zb26uvv19Q2NTU1NzS0tLa08tlagpaW5uamp
+ saG+/sH9utqau1V3gPJmWWlJUUE+OJ5POwuMsdGS8JA1ilYWmBZRodJphg4QBYSGRmRC
+ WwfMg0f8jonDTkTHJqQQwJxL+VeLr9+4qVDeqa6prXtQ39jU3Nr6qK3t8ZP29vaOjs7O
+ zi4eWygAgTo6INWTx21tjx62tjQ3NdTfrwNJZeWt8tIS+DE3+3xaqjQpPiYyPDTI39fL
+ 3dXRzgZWNMbZIvLpzyESQhQzmAnJhK7u3r4BRPBUkjQ1LTP70pXCktJyhbLq7r26+oam
+ FsB70t7R2fW0u6entw/R3//s2bMBHloVgDzP+vuhVG9PT8/Trq7O9vbHbQ9bm5sIZNXt
+ yltl14uB8UKGXJYSHxtJXvTxpIRqZW4q0g2igBDFjGBCTx//oFAieFqefiE3HwBvVtyu
+ Br/G5ta2x+2dXd1A1w9oz18MDg4NDQ+PCDHKQ7MCKn2Gh4cGBwdfPB8YAM6e7qddHU/a
+ HrU2NTyoralSKsqvFxVczslMk0kTQFEc6OftAStaI5/SpPgzJzKEVI8SQhd3b7/AkPAo
+ IpiRfamgCA68XV37oAH8nnQAX18/sRsaGRl9OTb26tX4+ATFa4o3PDQpwLRhKo2Pvxob
+ ezk6MgKaLwaewZZPO9sfg2M97Ki8daOkMC83Kz01JT5GEhbs7wsr2ttY6gRxP10eNTKm
+ qdDR1cPHPzhMEpsgBcHLBSU3bimr7j1obHn0uL2ruxf4QA/wXo1PvH4zOTn5dmpqmuId
+ ixkeGhQQtGEyTU29fTs5+eb1xARgvhwZZiCJYxvDeKei/Hphfm5Wmiw5LjoiBFY87Oyg
+ E0TYkBDChXZObp6+x8Th0XHJsnR4sKRMcbumrqH54eOOpz19Ay8Gh0eJHuCB3LuZmdnZ
+ 9+/n5ubmV2OBhyYFVuWZn5t7/352dnbm3fT01FtCOQ6QQ4MwZHcXYXxQW6W8WVqUfzFT
+ fjoxVhIW5O/t7uJgS0402LI6ZQhRzjCEXr6BoSdiEk6fy8yFBxV3au43tba1d/X0DwwO
+ j4y9mngN502/AzuAW1j4sIhYWlr6yGKZhzYFmD4QivT68GEBUOcYyqnJNwLHFwN9PV3t
+ j5rr66qVN68X5mVnpKbERYeL/Y94qEHUWpwik+KLQpoLndy8/AKRR5NgwrzCUnjwQdPD
+ J11wIBkQ/Bg+0CN2Sx8x4JWVlU+fPvPQUYFPnz6trEC2jx9Bk1C+n52Znn5LHEeGXjzr
+ fdrR1tJQV11ZXlKQmymXxp+MEAf4ACLSqchoi7qGbAiEZpgLGcLIUylnyYTlyrv3mx7C
+ gs9eEMA3b2G/9wzfEsEjcl++/Pnnn1/V4hsPDQqoCfQVgn35AukAEyiXCOQcOE5NvgbG
+ wYG+blCsr61SlBblZaefSYyJCAFEZ3trC1Oc7P+h7SyRbGgoMrW0cXD19A0Mi4qTyrMu
+ wYRVdY2tT7p6BwZHxsYBcGZ2DvaD+Yge4NHAvn37/v37Xzy2oQAEA2VoB5YgSSAXFxfg
+ x3dTkxOvRoef9/d0tDXX1yjLS67kZMiSYk4gnbo721mZC1OixmwKG7JMam3v7IG5MDJO
+ eu5CXlFZ5d0HzW2dPURwYnLq3ezcwuIi4wfrMXhs3P9B/Jcq/pvHVgqoVCLFmHTEEiQJ
+ 5PIy/AiMSKrjL4ef93W3P2ysq7p1vSD3PCBGiP293ZxsrYRsqoXhH4eMRMikToe9A0Il
+ p6TyC3nF5cp7Da3t3f0g+Hpymjnw4/Knz+Q+WA9jYOg2DflvHpoV2KgUgAoov6s4rsCO
+ C/PMjC+HB/q62prvVytKrwJi4snwID9PVwcbCxNjg0MHDmi6brqfzYYWNg5uXkfFEbHJ
+ 8iwgvF3b+Kizd2AYHgTBBTiQAWT8CN/qmDSPWLX3n39zbKmMSj4VSMbx8+cVuHH+/czU
+ m/HRwWfd7a31dysAMUMWHx0WiCkR2RRljeYZkc2GZlZ2lEmPRyemZl4uAsKmtq6+wdFx
+ EMQkuLxCDvwG//3gp2GM/2ZkP/23a9BLIAmQyGvfkVaRVGFGUHw9NjzQI0AsyEmXxklC
+ kE0dbS0wIx7UVNXAhoeMTMiG3v4hkvjT6bmFZUpC2D849npqZu7DEiy4BlD42I3j+ek/
+ gP+CSoGNyv3NBGUY4UZMjisfF+dnpyfHR573drTWVyuu5V+QJ8WEB/qSEc1EVJpuTqaU
+ So1VNgw/mSzPLiitrGkEwqGxN9OzC4urBOFA9nkbRsHpbEuBDeqxl2oYv3798nn544f5
+ mbcToy9621vvV90svpwpi48kIzrYoDTVwvCQoYm5tYOrl79YEi/LvFxyq7r+YVff0Njk
+ u7kPH1fIg8ihwhS4fgjbGj3/5TUF1qtIrwSMyKkw45dPy7Di1MTo85725jrljas555LJ
+ iO7OtpamxhqTKaZDpFJbx8NHjoVFJ8GGN27XtbT3DsKFczDhF4HgZguujYhv6KPAJo6k
+ MNWq3zEvriwtAOLIwNO2xhpFSV6mLE4iPurpYs+SqYYJkRiaWtqiogmKiJVmXC5RIJN2
+ D4xOTL9fXIYJv8OD9PfXfag+o+bHbFBgnaIqM1J9AyuuLM3PTr4a6utsvX+77Gq2PCk6
+ NEBIpoaHNDFk06G9i5BKs66UKutaO/qGXr2dXQBClkY3Evz77w2j4S/1VGADRvIKKH4H
+ xMX5d29ePu953HhXUZybnoJk6uPuRJWpFoYiTIduOL+PSpTnFJZX1bc9HRh9/W5+aeXL
+ 17/+2mhCPUfLD9OiwHqMqxA/L3+YfTs+1NfRUlt5PS/z9KmIYFSmtpYaixqUpYaMIU2H
+ yWm5xYqapic9g2OTZEMkUkKo9jFaBsJ370ABNXlZdQMnfvvz09L8NGbErof379woyJLF
+ 04SIswtTTYWpwNDG8bBP4PGYlPRLJRX3mtv7hsan3i+ufPn213/WI+RJdAestjx0DSQ5
+ Edn088f5GSTT7rb6qvKr2akJOLugokYrQxNzxjA8Vpp++VplbUtH3/AEitIVzIbqNtxy
+ DPzNHSqgBhFG/Pp5eWF2cuxFT1tDdXlh9lli6OWKwtTYYPNJPvmQM9yh/rtx+A4ZigQf
+ 8ly6Gyz0/BtqCPXKpbym0VP43TlsDR9tCIXp9mqafbhcys8tdgeGXn9lHUEVQpQ02zm3
+ IIa45M3P8fUCsNOD1gNkl031Osfn19p2SkLP4zcAXCWoz7U2Pa950wj0HDw/7J9/NgJU
+ EdTvmvf+A3p/98QZ6vd/4yZ+DCBdKdXzuyf+HbB+IPQ7ajO+1S8PGUG9vwPm92Lox0Of
+ ozYxxLkELq6pLKjvvRj7+D1R+sDY9jGb6KkMKADc2T1R+yiZCjdF8XsTt01G+wEamP3Y
+ xdxH/iMD0iSIL+/X7k2c3P69iXSrPr9H+Ie+e7Klgrb2n12/R5jfq7+m7R5u7OW9+kim
+ 656ZwQMX/JkZ9kTEnvzYk2dmwJDNiPzZNQ1Pne3Orr1/do0ZkT9DquNToDv7tb16hpQZ
+ kZam2emz3NqeY+b76cFfxB4+yy1A5GsqaFoNYXf26bymAp4A1m9NhX2UTfnaJhoWJdml
+ Xdtb26RIr7VNyIi0rAJfY0jTAkG7sE/nNYbK9F9jSIAoLFFDC+5pXuurhq/1pXklr5/v
+ HRFieA/X+qJsCifyNfe0rpm30zfWrbnXvSdr7gkQD2IVaL725RYLWO7grV+w9uUqRANa
+ ypuvQbv1arL6vbv3a9AColDZ8LWgt1rRWf/3Nq8FfWPX14LGY94EEe1lUJ/yNdk3rayu
+ /45fuCa7AFH33gg5vDfChi4Iml+qeiOUoDnCL+iNoMqnZEWhwwXvUaK96cg23/llPUrI
+ iqsJFRR5r6DNfX/02aN7ryBqT7LTXkG09gkgsmmRus3wnl0bGnDp8fInPbvQI2i3e3at
+ p8h75+nb/+/39s5jFIWMKkyMvIelxsaU29j5G3pYrlKklIpLN8ipvJesXt1xf2sv2XUU
+ eU9n792IX9/TmSiyIhVmpMbAvLe6lrbpOu3+Xb3VGUUBI0uqQo91EZqsm5mbW1iiz7o1
+ OnVT2NnZ2SMceGhVgPSxh04klw3aqVtRI25zM7RUp57qQlN1VSNnjSsFCzD0/7mfzhkP
+ /EGTIzjCkMYiImlqBpbmFhbACZ48dFAASlkAnQoeowd81MCZ8dO/h7NOcAWOQl49ZMBI
+ GhkzliYUphRmPLQqwASC6ShEImNYD+ZDg0qGjxrGgt+eGHADXRVHciRZEqYkmPDljzDm
+ oUGBH/pgC4pBN5IP5mP0fhE+NZqrJIGSYAo0aUg8dFIAkoGdAI/o/Qr3qeFT36RPpxSg
+ FgSVhxYF1HTCJqn3G+Gpg1RtsxHxH7oooEE9vosrwBXgCnAFuAJcAa4AV4Ar8H9bgf8B
+ OzHHxAplbmRzdHJlYW0KZW5kb2JqCjEzNyAwIG9iago0NjE0CmVuZG9iagoxNDMgMCBv
+ YmoKPDwgL0xlbmd0aCAxNDQgMCBSIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVh
+ bQp4AaVZTW8euQ2+z6/QMT5kMvqeudZpgS566K4N9FD0sHCd1gt73XXS/f19HlKkJo7t
+ HIogeCWOSJGP+CX5t/Bj+C1s+Fd7Cz3n8HQb/hZ+DR8uP8dw8zlE+ff5Jrzf1hr4/7Tw
+ U/jw19unm9v/fPnvz/fL0x1ExdhEXMsh9i20LYWbh/Dhzw+ph4+PstuzJbkez5cstiSm
+ KmJKObDzELQ/F1R3XbRnW3LYEhglxmHFsYWy50WFZFuQD1mQExes27aVUGJfU+1lCMub
+ ry26tmBtWnuvWHqsvZrM6AtdaEp93dpRQm1c+abQlI51L1jaE/Z/Q6hrCnlrKpA+jEqu
+ wDNNm+x/9PiGVFe1pAhVAcTrUlVV2t/X0tMzqR9+ur3/+cvd77eXj/ePT3cPt1+e7m4C
+ 3GNb+75vJb8wgIfxhFrdl4eQWuMo3IfUt/Xom04TEG81K0EmBa6DNSCnJqs5iuuWgImx
+ Li12lYjfsQtG9yHuVVdyQdzjZNVJ42ohN/tdbD6+YH/KAaupNYXSK9UiyPm3jx/CJ4TU
+ D0sMv2iQXV6JV23h6pLxI5P3/GE04ggoBBYqKhicQMEMxi/9EDuSILHj3GQQNxpJcGKM
+ htlAk/FFkPmrkHB0D/MGJJzSLmeVCSSq4ZRtFPvVL9heEJlKuUxqorYYHqA8hCskBWQb
+ 5InPMBp+cAIhpT203FeJhj9ch5gGPCm8R+jl0mFECdfIMH9K6wb0rj+Fv4d3V7cXTFgp
+ vPvVBv+0we3Fop+eLsI/wvUP4Y/XqoHku++7aIl2GBgtp9PgB8Jd4kBZJvBdPY+M9KTn
+ kfv+tYuG3MvC88DvOA+OTi7KKYF2Vpkw4SkZI6Pgd+Fe+qVgf3VRV8sPhArzRPhrR8Ix
+ XfR0COKJDHGuzXEfrsjRyXpOaXBOOAiNP07oMUKum1lfi3jjYgEaWAHEelYC3QWjs/WY
+ inmDdUy2YWOumwQmfp9/wf5qvavl1lNhs8isBw3p53semY+i1eiZR6a8tl72k0MiytUh
+ f5reNxzzxl30zr797qSXXHOBa6bcgQTTZ9zTVhktNKE2hMg4Fh2fDkYJPIPaMrL11oA8
+ JnWnEeqxPWOszlka6Of8GUqjuTwgHemeMob7O576kcfkImQisoczynhS5+hGDlB10gMz
+ ZecGasi092z7pGK06Eo7VJ295NSWXmOrjp+OJ36LEghZRA0f0GCC2mv4pcr2RPFLQIsg
+ A1hLA0SU+CHEFXNqq+MTfkogJC5CJiJb8dN9QF18FHSk31Unxc+V9QNSQ7i3jgS/Yd6k
+ zpHhp6s1LMT3drQ+O52wlZibOCFP/dgDym5uC1rIbxOIYI1l8Th0GTvN70VaRWQj8SDO
+ pDdL4RpKn2pAbmvOGRuPGoDSrzXg3eXjw0P4y+O/7m4uwvUvkuOXU05jYSmIpf9b+DKE
+ e8PMAnJsuUPjI/WekLeJUNqQ89HbxYJ+sBUEK4BYMxvcymK8oaE80r7UjOavI9un2BDl
+ NQZ4nDpahISt7aFmJNBY4CcYxKNBAgZbrlko24HiLEwLti3sEBOk5LrmDV/Q2a5J5ea1
+ ZzRjqcArY6YifT0yThR8yA5HJamuMcW0cFHekTIL1D7ajmSf0a6K/tBdIgGEmFqnJ6wJ
+ n0JCRtw3GFOOhgFSY0J1KI12GlOEFjvKFZegnWROrmtnH143DNqB0HmGHR3zGQ1Z+2WX
+ G+sSwBPTTrgn9oUDdwyYXtFFGu5L2pgUAYXhHmHWtrNWGe6kHK1ADA+AuDuT4R6Pvrbj
+ yIjYgXvajjW1irWGO45DnWLiDt3WHbjIIsE95YwzJqgD9yVlXsfAY7hTCxQGojxwTwgQ
+ 4MmTUNyxeDAZ7lxS95QWx50XASxz3B27E+5Oe6laourx0oUmlmFG934rzGJaW+sH3Eb7
+ uBnDHz9eXXwTX8xAR66lbtgDAZHrvieNMHDK/a3w/gSvQ8u8GY1N5JYP9muTRt/uAAcn
+ jYYXGiD45ObDMyoN/u8U+kGFvyNejLbwkI6MVF8QXCppUnQ/8R9bZXrdi/+aZoP6hgeP
+ lQkX1F7goie7EoIFkRNZfMyuBJfbO2LM7ULg857INDPscsrJLqe5XVOS2eX7kW/Y5Xp9
+ ZZdT1UPoEOzuARqaEPhoKXD6jKwDa4BsRwEBEh03fZ/Dr7dccD7GAlftpUp+wpWGFbXA
+ 5UEBz4Y4axB3ogAatrPlxIaTTnB00Ez2oCxzd6Qd5TMNYatLL31FK0mdRAEo7YSv7ULy
+ fSUjDWvSDvwasrcDQMhSRcofgKQDd13eiA2AhByZKp4IiL7un5CCasngMRVPlGHIZBOX
+ EABMNvgGJHN3A8A1PAGQcENsvVOnocAg+CmduFjeX4/XjHSKp5Glop2WpxEAMWihymMM
+ Hmfg104DYC3BUVLZVnQ1qHLYO/GlIhUksVzq4hSoXNOKwpJPq3h9OBAG1SU5xfYjn66a
+ eolfuxZT21fO11ZGDFB7Ea9I1WpriPBxaCDxOmkozT3Bh82uCKfqEq/DLvAphSXd7DKa
+ a4xVJsns8v2mXcH0Qi5EHXUtXFvpyixeIRwFg1gjq9QRr9Cgo3mqSD5oMKC4EoBY5DEg
+ OoxpR60bEcsGgk3G3tBZMGJRIntm/zMpaCQiCk8dbNLAICb2HTSXDZQGxbYHqMpnOsJa
+ l45+BeUNLbMpMAhTycn1yokOa9AjoSq0yheqAUFEXekSskYokZUDNdiYChqcEbNDg4hT
+ xSsYHVkhWE6UYQoKzWQbBqPnG7INgrn9gGAxHZkiDIKI1iHywAyCSTAlh2XgehazuHWe
+ a6zlfJ4QapHUWKchMsohN3evDZWNX5e2SqsnfIQuwfc5q0VOgcpWiZ3mVW1KGnVO4lP2
+ I9+oka6X+LZrNrV98YRnJSfs6B2kxho34wVJRmJ20tBYJWnTR1dATNE74JJndhmFR2F2
+ Oc01xg1qSDIbbD96v9NMr6/sOmnLY5sxKxncQquhTsJjmef5ZiDBVdkTOgWv2agz8A/n
+ Y2SjxxLVWVgxlASA3mdk/pERQBiZf+SDwSUlHdcOF20EhrbsLmXwQMZGPoCK3EpKCtN6
+ YY2hPrb3pLCmnSwD27dHyjuj2yKxlbO2gwMDia7C+4hhEBFSaDZYR8cOElul4ulx6iHR
+ VXEHM1VPBJZ/PM4wIYBLzGFbgxuvi1YMEO1wFdldMcAKJASqODGIzBVIW6e9J8U0HGzQ
+ kMd/ut764zELI1pkeegFJpjlHS+7vGSiz7h/kU/R483G+eDSmS/Cb/Kxy+d1S/igLG6K
+ 4neDF+8ieEN5eUthNVVZ6qQrMm3BuW0R5epVK8euCQ808A2qoZuyW3ltz7OZGXGGgnvi
+ 1NfNVzccuvLNJuMFfkKb6KnQQZV9vfmxAl3gLwk9K7e2xgPdJ5sEaX58HZJ57nhW8PJf
+ oINeVjBg84NedFDgRvA5tkhoa22VFfrikiZl7Ac+p5leknBcM6O+et02fXlR6BVhPe0K
+ CSUcxUQSqUlEJQde+Guh25WQEPSyYnY5ZdoVnGYaL1OS2eD7nexyvc52QTPXFke+zEQq
+ ZVXuEKhtTeuCFF+5QxDahvznFAzQILDQsozjzwNyq6iaDqQc84bCewU+YBVbIlwfnSDl
+ mHcj3kOVi30FKSoZzwg6551G9jYWXoSoIDEaYhGteFChNmwz5G7kFNNvsn2bRjUqdSUg
+ QhXMWvHNXrlYlIx0OChLQr5Hl8jWxvnQvcBCUWzoIVcEPPa6qpMwzJHLCLiYfNXiKdnm
+ dBPu7SxDwYkAb7Q7UrUjsJworp+zfS/axwWZLg3XRCJdkBSZ5ka0//g/qRNB4gplbmRz
+ dHJlYW0KZW5kb2JqCjE0NCAwIG9iagoyODQ5CmVuZG9iagoxNDIgMCBvYmoKPDwgL1R5
+ cGUgL1BhZ2UgL1BhcmVudCA0IDAgUiAvUmVzb3VyY2VzIDE0NSAwIFIgL0NvbnRlbnRz
+ IDE0MyAwIFIgL01lZGlhQm94ClswIDAgNTc2IDczM10gPj4KZW5kb2JqCjE0NSAwIG9i
+ ago8PCAvUHJvY1NldCBbIC9QREYgL1RleHQgL0ltYWdlQiAvSW1hZ2VDIC9JbWFnZUkg
+ XSAvQ29sb3JTcGFjZSA8PCAvQ3MyIDE3IDAgUgovQ3MxIDggMCBSID4+IC9Gb250IDw8
+ IC9GMi4wIDE5IDAgUiAvRjEuMCAxOCAwIFIgPj4gL1hPYmplY3QgPDwgL0ltMjggMTQ4
+ IDAgUgovSW0zMSAxNTQgMCBSIC9JbTI3IDE0NiAwIFIgL0ltMzIgMTU2IDAgUiAvSW0z
+ IDEzIDAgUiAvSW0yOSAxNTAgMCBSIC9JbTMwCjE1MiAwIFIgPj4gPj4KZW5kb2JqCjE1
+ NCAwIG9iago8PCAvTGVuZ3RoIDE1NSAwIFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUg
+ L0ltYWdlIC9XaWR0aCA2OCAvSGVpZ2h0IDY4IC9JbnRlcnBvbGF0ZQp0cnVlIC9Db2xv
+ clNwYWNlIDIwIDAgUiAvSW50ZW50IC9QZXJjZXB0dWFsIC9TTWFzayAxNTggMCBSIC9C
+ aXRzUGVyQ29tcG9uZW50CjggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB
+ 7dABDQAAAMKg909tDwcRKAwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED
+ BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDgYWA2MAABCmVuZHN0cmVhbQplbmRvYmoKMTU1
+ IDAgb2JqCjgzCmVuZG9iagoxNTIgMCBvYmoKPDwgL0xlbmd0aCAxNTMgMCBSIC9UeXBl
+ IC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lkdGggNzggL0hlaWdodCA2NCAvSW50
+ ZXJwb2xhdGUKdHJ1ZSAvQ29sb3JTcGFjZSAyMCAwIFIgL0ludGVudCAvUGVyY2VwdHVh
+ bCAvU01hc2sgMTYwIDAgUiAvQml0c1BlckNvbXBvbmVudAo4IC9GaWx0ZXIgL0ZsYXRl
+ RGVjb2RlID4+CnN0cmVhbQp4Ae3QMQEAAADCoPVP7WkJiEBhwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg4AMD
+ OoAAAQplbmRzdHJlYW0KZW5kb2JqCjE1MyAwIG9iago4OQplbmRvYmoKMTU2IDAgb2Jq
+ Cjw8IC9MZW5ndGggMTU3IDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2Ug
+ L1dpZHRoIDc4IC9IZWlnaHQgNjQgL0ludGVycG9sYXRlCnRydWUgL0NvbG9yU3BhY2Ug
+ MjAgMCBSIC9JbnRlbnQgL1BlcmNlcHR1YWwgL1NNYXNrIDE2MiAwIFIgL0JpdHNQZXJD
+ b21wb25lbnQKOCAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAHt0DEBAAAA
+ wqD1T+1pCYhAYcCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG
+ DBgwYMCAAQMGDBgwYMCAAQMGDBgwYOADAzqAAAEKZW5kc3RyZWFtCmVuZG9iagoxNTcg
+ MCBvYmoKODkKZW5kb2JqCjE0NiAwIG9iago8PCAvTGVuZ3RoIDE0NyAwIFIgL1R5cGUg
+ L1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0aCAyMzIgL0hlaWdodCAxMjYgL0lu
+ dGVycG9sYXRlCnRydWUgL0NvbG9yU3BhY2UgMjAgMCBSIC9JbnRlbnQgL1BlcmNlcHR1
+ YWwgL1NNYXNrIDE2NCAwIFIgL0JpdHNQZXJDb21wb25lbnQKOCAvRmlsdGVyIC9GbGF0
+ ZURlY29kZSA+PgpzdHJlYW0KeAHt0IEAAAAAw6D5Ux/khVBhwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwMDLwABWnwABCmVuZHN0cmVhbQplbmRvYmoKMTQ3IDAgb2JqCjQwNQplbmRv
+ YmoKMTQ4IDAgb2JqCjw8IC9MZW5ndGggMTQ5IDAgUiAvVHlwZSAvWE9iamVjdCAvU3Vi
+ dHlwZSAvSW1hZ2UgL1dpZHRoIDIzMiAvSGVpZ2h0IDI1MCAvSW50ZXJwb2xhdGUKdHJ1
+ ZSAvQ29sb3JTcGFjZSAyMCAwIFIgL0ludGVudCAvUGVyY2VwdHVhbCAvU01hc2sgMTY2
+ IDAgUiAvQml0c1BlckNvbXBvbmVudAo4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0
+ cmVhbQp4Ae3QMQEAAADCoPVPbQsviEBhwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBg4Dcwp84AAQplbmRzdHJlYW0KZW5kb2JqCjE0OSAwIG9iago3
+ ODIKZW5kb2JqCjE1MCAwIG9iago8PCAvTGVuZ3RoIDE1MSAwIFIgL1R5cGUgL1hPYmpl
+ Y3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0aCAyMzIgL0hlaWdodCAxMTYgL0ludGVycG9s
+ YXRlCnRydWUgL0NvbG9yU3BhY2UgMjAgMCBSIC9JbnRlbnQgL1BlcmNlcHR1YWwgL1NN
+ YXNrIDE2OCAwIFIgL0JpdHNQZXJDb21wb25lbnQKOCAvRmlsdGVyIC9GbGF0ZURlY29k
+ ZSA+PgpzdHJlYW0KeAHt0IEAAAAAw6D5Ux/khVBhwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg
+ wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM
+ GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB
+ AwYMGDBgwIABAwYMGDBgwIABAwYMGPgaGDtvAAEKZW5kc3RyZWFtCmVuZG9iagoxNTEg
+ MCBvYmoKMzc0CmVuZG9iagoxNjIgMCBvYmoKPDwgL0xlbmd0aCAxNjMgMCBSIC9UeXBl
+ IC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lkdGggNzggL0hlaWdodCA2NCAvQ29s
+ b3JTcGFjZQovRGV2aWNlR3JheSAvSW50ZXJwb2xhdGUgdHJ1ZSAvQml0c1BlckNvbXBv
+ bmVudCA4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Ae2XaVtaSROGNVGR
+ fTtw4CCLgGyCiGJQUMGgKIqDGxGFGAwENyKKcWXGlbig0eiMiYlmfutbfUAzryKZzOfU
+ B+Rwwe1TXd1dT5WU/IpfK/BfV6AU4sk/A31Q+l9oec7Tp0/L7gIeSPZPEkkUcMohKioq
+ KGTAG3gsKyOR/xqYQ5UBqoJSWVlJpdJoNDodXqhUeKQA8t8D8yxAAQgoDCbrNphMBlCp
+ eSDk/MMlRKsOGYIqKp0OIDaXy+PxyeBxuRw2i8XIA8tgDX+QL8ByLBqdASQeHxMIcVwk
+ EotFIhwXCjA+l8sGIAhECReXl4MhXUwWh4sJcBFBVEmlMrlcLpNJpVUEIcIFfC6H5FX8
+ AIdg5eWUStDF4WFCEZAU1UqVukaj0dTUqFVKhRyIIiHGAx4NySuijoRVIGFsLoaLJVKF
+ Uq3R6Q1Go9FkMhprDXqtBohSiViIcdlMOrUY7g7G4vAFIolModLoa01mS0Oj1drUZLU2
+ WurNRoNOo1JICZGAx7nFFa5sKSoAKGNx+TghBZbBZG6w2lrsjjYyHPZmm9ViNuoRTyzk
+ c1hIXVnhSoC0snIKgmE4IVNq9CaL1WZvc3a4uzye7m6Pp9Pd4Wyz26z1Jr1GKSVwhIO1
+ A1yBkwvSYMeSMIlcpTPWW5tbXW6Pt6/fPzA4ODjg9/t6ezzPnQ6b1WzUqmQIx6RXVkAl
+ CuSKpFXSmBxIU67W1zXYWl2dXp9/KBAcC4XC4VBobDQw5Pf1dLocNotJBzghjw2VBXEP
+ aUgaypMnJOQqvdna0u729g8Fxl5GXkffxCHeRCdfhccCg74ed3tzYx3CCbiQa0FxpUga
+ ylMsVenMVrvL4xt8EXoVjc8k5pMLi4sLyfnETPz1xHhgoK/LZbeatEqpCOMyQVyBVEuf
+ lFdQGWw+XlWtNQGsu394bCI6lUimltfWN9LpjfXV5VRybio6ERzyeVwtDUaNQoLz2SCu
+ QKqQaCWNxRUQippaS4vL81sgFInPLbxbS2/u7O5lMnu725vptXfJ2TeR8WGfx2mzGNQo
+ VyaNAuLuVTWXKEiTKnXmprYu33AoMvU2tZre3ts/zB4fH2ezB+93t9KrqUQ8Mj7U5261
+ 1mmrq3A+rFxBGiTKwQg5ktbhHQxG4m+X1jZ397MnZx/PLy7Oz05Pjt7v/LEGuFfBgR5X
+ s8WgkokxDgOl+kBbOQUSFUoU2jpra1d/4GVsLgWwg+Oz8z8vP33+/Onyz/PT7MHOH6uL
+ s9HwiM/tsMLKoVSpDxcOigAV5UGierPN2TMQjEwnl9M7ALu4vPry9fr669Xny4vT7P5O
+ enk+/mrU72l7ZtZBqlwWLNz9HZej8UVSlcHS7OodCkVnF9c2M0cfzi+vvl7ffPt2c/3l
+ 6q/zD4d7m6sLM5Pjg16XrV6vkuI8tHAPaFBSOhsTy9S1DfbnfSPhWGJpfft99uzi05fr
+ b39D3FxfIXGZrbXUXDQ01EsunFSUK8O904A2CKLJa4yNdrcv8PJNYmlje/87DcSRtPdb
+ 66lELDzc19GC9ogIgx1X/rQQjSxpnpbXdgrLBpne3FxDppcXH45y2nK0WjUUtQgNaYNM
+ fSPhKCrp3uEJVOEzlOHrF1SFs+ODXbKokGlOWxFabt1gu/UOjU/OQE23M4CDHYLiL9hy
+ J4eZrY3l5HRkDKrQbIEqFMmUjUFN9fXkDpmIJ1Krv29nDrInp2cfP348O/twkj3Y20qv
+ LM7FJkb93e02M6rp41Vg3R4sT/9IaHIqkVqBQ5rZPzjKZrNHhwf7mZ3NjZVFdLSGfZ35
+ o0XukPtVuN29EoUGyvDcO/Ai/HoqsfBudeP3ze0dMrY20+srS8m5+GQo4O/J3SKE8LHd
+ S6Ex4QqRqfX1z9o7++Byi8Rm4EJ6t7y6RsbK8tJiMjEdi4QCA73utiZIFEoKJ6vgWaCg
+ Uy+qqtYYG1pcXb3+QPBlJBqfnk28nU8mk/PzbxOz0/FoJBwc8fd2tjdb4JjCHcKmFzyn
+ ZWSLERIyla7Oane6vb6BkeB4eAJu8mgsFotGo68jE+Hx0ZEBdJe3NJq0KqmYvMsfdgay
+ LdAYZI9R6esaoce4u3v7/UPDgRfBXIy+CAxDm+n1uKFvNdz1GUj0wW1Z8o/+p1ChXtrc
+ 6uzo9PR4+3z9v6Ho9/n6vD0ed0c79MB6o04lJ3AMtVS4kO7fbyXk5UtlQJsRQTvV1tZB
+ b25xtDldz93uThRut7vD5WxztEDDrzNoVXIJjkHPItv9vWNaAjTUnGmkoZHIlTU6ZEEa
+ m2zgHOx2h8MBr+AcnoEbMZsMuppq6M4Ag376SAdExqEy54/AhoA9AndkMpstFksDGRZw
+ NWaT0aDXqJVycA452CNOBMSRPoQJrgasm1SuUKpqNFqdXm8w1NbWGgwGvV6n1dSA55KB
+ SRLyQRnpQwq0U5QqyvXOCuKERApE5AbvQlmtIP2gGCcNIb2YISRxkCwNbCpyvEJcJCYI
+ SRVY1VxUVUkIQiwCFDKrYN+KuUvk7cGogrNHPGTG+RgmEAjBRudCKBQIMIzPQ9acCcKg
+ AEWMOYmDoQNmjvygwOZwuP8XHOTxybEBsYrBYOlAHaoFOcTACEOH4YPBYN4FPMBHMNTc
+ jjRoAnmw17536jwPDVgwXcEghIKaj9xTJQUNR2je+gELUUneE3L0g98UDDS4IVRRXXcK
+ YQZF380F/PB73H4If392UIXvPxJ3//fXm18r8JMr8D969u46CmVuZHN0cmVhbQplbmRv
+ YmoKMTYzIDAgb2JqCjIwMzgKZW5kb2JqCjE2MCAwIG9iago8PCAvTGVuZ3RoIDE2MSAw
+ IFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0aCA3OCAvSGVpZ2h0
+ IDY0IC9Db2xvclNwYWNlCi9EZXZpY2VHcmF5IC9JbnRlcnBvbGF0ZSB0cnVlIC9CaXRz
+ UGVyQ29tcG9uZW50IDggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7Zfp
+ X5JpF8c1Fdlk33dB2QQRxRBMxUFxg8ENUyFDcUiTJDVz4RnTdFzIfcY2q791fteNWYlU
+ z6vnxdN5cQvI58vvnHNdZykq+mX/PxEoLmT/XQhAufPFSr6yL5/ewZd+gpojgVBaWlbA
+ SkvxbwL+EZBi5UC08nJ6zhg5u3pHLy+n4WdA/AHvilVWRgOIwWSyWCw2m11xbWw2PmEx
+ mQw6nRBLv8sjsBL4BxRA7AoOh8vj8b8xHo/L4VQAyqTTr3gF3KVg0EVYFRwuny8QikRi
+ sUQivTKJRCwWiYQCPpAVOR6RdzuOKCPCCIsHkkQqkysUSpVKnTOVSqlUKOQyqUQk5PPA
+ Y9DLy8oI7pbkUjAEjMUGCyhw1FqdrlJvuDZ9pU6nVasUcgAFPA7kFcQVk5iVMyCML5TI
+ FCDpDdVGk9lisVqtNTV4WCxmk7HaoNdp1AqZRMjnsFnAwdl8cZAGGJ1VweWLpAq1Tl9l
+ tFhtdofD6XTWU+Z01jkcdpvVYqzSa9UKqQg4oq70Fl8hDQlgUjClVl9trrE7nA2Nd90e
+ L6yZPLxN7ruuBqfDbjVXV2o+42gIXZ64YkijM9gcvkim1BpMNbVOl9vT3NLma/f7/R0d
+ HXj6232tLc0et8tZazUatEqijsUg4vJolDQWYFKlzmCxO11Nza3tHYHunr5g6HdioWCw
+ r6c74G9vbXa76mxmgxbqkAo6Da7eyCpxlM5k84RShdZgqW1w3/P5u3pD4cGhyMhozu6P
+ RIYGwsGegL+t2V1vNxs0ComAy4a4knxaKY0OaRKFxmCudXnb/D3B/uH747GJ+FQiMT09
+ nUgkJuMTsfH7w/3Bbn+rp8FuMqjlYvhKz3e1+A5OB5snkqkqjbZ6T1tnb3h49EE8kZx5
+ nHoyn06n5+dTqcczyUQ8Njoc7u1obXLajDqVVMilXL0ROEJjVvDFCk2Vpe5uS0ffwEg0
+ Pj2TSi88W15Zpez58tLC/NzMdDwa6e/1tzQ6LAaNXMSvgKs30wAaHBUgBUZbg/e3nv6R
+ 2GQy9XRpZf0/G5tbxDZfbGTWni+l55KT0Ui42+ch4hQSPoeZTyNJYHGEUrXe7Ghs6QwN
+ RycfpRafZza2dnb3DrLZ7MH+3u721sb68kIqGR8fCnbcc9WaKlVSAQlcyQ1PKRpXJFMb
+ LHXutu7+0YlkanEls7mzlz08Pjk9PT05OTrM7m2/yDxfmJueGAl3tbrhqloq/A5Nrqmq
+ cXraewfHJ2fTy4DtH56c/X1B7J/zs+PD/Z0X68vpmfjYQI+vyWk1qGUipOF2bTyRXFtt
+ q/f+FhyOJeYWVze2ATu/ePP23fv3796+uTg/ebX38s+VhdlEdLC33eO0ViEN36EpQGvw
+ +oORB9OppbXNv7LH5xdv319++PDh8vLd24vzo4OdF2uLc4nYUB9oNd+lcSltOdofqaX1
+ zd1XJ+ev311+/PTp08cPl6CdZP8CLTV9Tbvd02KSU9AQt5yn0LYObde0TxTtOJvTBk+v
+ 4nZrFnLnTYicWp1Nvt7BaOLxwurGzsHRGfH040dIg6dnR/vbGytPZ6fGkQV33XVOC51e
+ td7ioE5IfAY53dqDqxdIwuXle5KF4+zuVmZ5PvnwfjjQctdhps7bLaeXulm49EqdqdZ1
+ rzOENFBJBe7sn4vXb968vvj77DhLpfRxIjYc9De7yF0Q42ahJN04vSiWNHLrkVRy4HoG
+ RuPJJ0urGy93s0cnp+fn52enx4cHu1t/ri6mkg9H+7tJ2EhKeWxS4PLqG6lI3OurFSRX
+ 68niamZze3c/++rwVTa7v4ubsAJYfHzw+mLlknCTVkRVS1LfdEScr+v3SDSOa/9sFVf1
+ 5c7OzvbLzY3M6jNcetzSUKDNDWla4ijCllctixA4uApxqkqT3eX1dYWGxiYSKEmLy6tr
+ mUxmfW1leTE99ygxMToYDPg89YiaskB5KwINXYb0BTmKrwO4QBAl7mEiOZuaTy8sLDxN
+ z6dmk1MT45H+vk6fFwVEj0sKabilN5NAaCWk+nIEEtIYHC4PanlocGTsQXxqOpl89Cj5
+ R2LqYWwsMkDqeFNDLUol/CRN5jZaEenO6KdUn6my1Najz3T2BMODkdGxaCwWi0bHRiOD
+ 4WB3h6/Z7bzuMZCWdz5IgnPtOdcDtQazrc7VhL4V6OkLhfsHYP3hYB8aIPqVy2EzQZlU
+ yKsoJA00MjowKJxCozeSnur2tqA7dwYCXV2BQKe/va3Fi15qtxj1FAx+UoPDjdNGvYU4
+ 0u6BQ1NV6wwmq91Rj4bvvddCWTMmB1e9w2YxGnRquUSIzkw1+vwc5FxFImgExxOKZUpN
+ pcFoIcNIfYPL1djowgRS57DXUCyFTCyAmww6md9u3KrPQnMTHHDUaCNXUoOSGZOSzW63
+ 22yYjkwYj3RqpVwi4nMBKzi9XfkKdWTsogZCqUyh0pBpsKraCKuuwuRGZkEZNQpSwxaU
+ FZIGIFFHpjgyE2LAFAOICVOt0cI0apAUMqlYhDGVDS9p1FBewM9rdaVkwGdCH5fM0WIM
+ 0TK5XC6TSaUSMSZePpdiwUtqhP4cplv/Qh2RBx6DBYEcTPgCgZAygYCQgMK+gHWh8Dj+
+ FfjLBkIWkNzawLkyalGgUBSrwGz/FQwvr3hYQ8hKQ2dgqQEVDwZ2mNwSQ3T9FIsi54Dw
+ GEajYeMihhdkv/rxgvWtuC9AxJAsg5/tavX7eVXfcLGDkqx8ZeSTb77y682vCPwPI/Av
+ EYzuZwplbmRzdHJlYW0KZW5kb2JqCjE2MSAwIG9iagoyMDQ5CmVuZG9iagoxNjQgMCBv
+ YmoKPDwgL0xlbmd0aCAxNjUgMCBSIC9UeXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFn
+ ZSAvV2lkdGggMjMyIC9IZWlnaHQgMTI2IC9Db2xvclNwYWNlCi9EZXZpY2VHcmF5IC9J
+ bnRlcnBvbGF0ZSB0cnVlIC9CaXRzUGVyQ29tcG9uZW50IDggL0ZpbHRlciAvRmxhdGVE
+ ZWNvZGUgPj4Kc3RyZWFtCngB7Z37M1trF8eVFpE7CSKiieQgaIi7mGioE0XQarRah3Ep
+ RUU6HKKTllQdcTmNyqC0KlVU3TUt2p6e6b/2rmcnKXWLvj0z2c3O+kVGZvazPvu71nou
+ +9lPvLw85rkDnjvguQOeO4CrO3AGl/af3SJE5/3NfHBk35zyRj7+DLCd0Mfn7Nmz53Bq
+ 4JqPD4b8f7JikICI+Hz9/PwdRsKFObzx9/PzRR7aYH8Y1QaJVPQFQhIpgAxGAaPixpA3
+ yKsAEsnfH8GCsKDrD6GijERK+gIjIFKoNBqdzmAwcWYMBp1Oo1EBNwBYESpGetpURWIC
+ JShJIpMBEfgCg1gsNjs4ODgENwbOsNksVlAgk8kAWDKZhFRFpKeU1EZ5zs8/gEyh0REi
+ 0HHCwsK43PDwcB5ODFzhcsEpTkhIMIKl0yjkAH8/m6anqb42TKQllcYIZLFDQsO4PN55
+ Pl8giBTiyiIFAj7/PI/HDQsNYbMCGSAqaGqT1FnsopiFkAVKCqIESF4EXyAURUVFx4jF
+ 4libxbnU7E6AOzHRUVEioYAfwQNUREoBUghe57FrxwwgY5Sc8Ag+MMbExsdLEhISpWBJ
+ ODHkS2JCgiQ+PjYGWPkR4RyMFILXBnqiog5MCo3JCuaEnxeIosSAKE1OSUtPz8iU7VmW
+ i2zPA1lmRnp6WkqyFGDFUSLB+XBOMItJo5wCFMP08ydT6UxWCDdCIIqJkyQmp6bLsuTZ
+ CkVO7iVkeTgwzJHcHIUiW54lS09NTpTExYgEEdwQFpNOJaMkhdA9VlHA9IHcBMxANofH
+ F0bHJUhTM7KyFZd+V14uKCxSqYqLi0twYeCISlVUWHBZ+fslRXZWRqo0IS5ayOdx2IEI
+ 1Pcc6l+OAz1jx2QEBYfxIqPEEmmaTJ6Tl1+oKr1Sdq28/PqNChzZjevl5dfKrpSqCvPz
+ cuSyNKlEHBXJCwsOYthBj+MEzLO+/gFUOmBGCKPjE1Nl2bnKwpKr5TduVlZX19TU1dUj
+ u+1yw9yoq6upqa6uvHmj/GpJoTI3W5aaGB8tjABQOhVyFEYMx4CiHsWPRKEHIsyYC0np
+ 8lxlUam6orK6tr6xqbmltVWjaWtr0+LAwA2NprW1pbmpsb62urJCXVqkzJWnJ12IQaCB
+ dAoJS9EjAxdFLdQgGpMNmGJJSubFvAKgrKptaLrbdq+9o7OzS9eNI9N1dXZ2tN9ru9vU
+ UFsFpAV5FzNTJGIAZTNpqBYdI+gZkBNhsjg8YYwkRaZQqsqAsrGlrb1Td1//sKfXYHiE
+ IzMYense6u/rOtvbWhqBtEylVMhSJDFCHge6F7I/1NyjAheTk0RhsELCBdEXADO/WH2r
+ pqFF26HT9xj6+geMxsGhYRzZ0KDRONDfZ+jR6zq0LQ01t9TF+QB6IVoQHsJioMg9UlC7
+ nJCc/Kj4pExFfkl5ZV2Tpr1bb3g8MDT8xDQ6+nRszIwbGxt7OjpqejI8NPDYoO9u1zTV
+ VZaX5Csyk+Kj+JCixwrq7Q1FiMpgcSA5E9MvKovL/6hv1nbqe/uNI6an5vGJyWdTYNM4
+ MeTLs8mJcfNT04ixv1ffqW2u/6O8WHkxPRFSlMNiUEFQb+9DlQiFLWRnIIpaSYo8T6Wu
+ rG++p3vQZxwZNU9MTb+YeTk7O2uxWF7hwsARcOflzIvpqQnz6Iix74HuXnN9pVqVJ0+R
+ oMjFBD0icCFsfVF2ciJEcVJZTkHZrVrA7OkfMpknpmdmX829nl9YWAR7gwtDniwszL+e
+ ezU7Mz1hNg319wBo7a2yghyZNE6EBKWQfI+oRGcgbANozGCuIDohLVtZWlFzRwuYw6Pj
+ UzOW1wtvlt4ur2C2iguz+bL8dunNwmvLzNT46DCAau/UVJQqs9MSogXcYCYtAAL3UMXF
+ wpbOCuWJYqWy3CJ1VYOm8yFgTjyfnVtcWlldW1/f2Nzc3MKNgTMb6+trqytLi3OzzycA
+ 9GGnpqFKXZQrk8aKeKEsOnQtPocSFAtbGCLwoy6kykHO2pZ2fd8QYFrml1bWNra23lnf
+ 486s77a2NtZWluYtADrUp29vqQVB5akXoOSymVjgHihEkJ4obEPCI8WJGYpCdVWjVtdr
+ NI0/tywsrW5sWd9/2N6x2S4uzO7M9of31q2N1aUFy/Nxk7FXp22sUhcqMhLFkeEhKHAP
+ JShKTzItKDRCFJ+clVcCcnbo+0fMU7Pzb9c2rR92dnY/fsKhfdzd2flg3Vx7Oz87ZR7p
+ 13eAoCV5WcnxoojQIBr5cIICpz+ZzoKwlaTK869WNrTpDMbRyZm5pdVN6/YOQH7+B+wL
+ jgz58/nTp48729bN1aW5mclRo0HX1lB5NV+eKoHAxRL0YCE6A70nhcnmCmIS0hUF6uqm
+ dv3jEfO0ZWFlw7q9C5AOwH9xYg5/AHV327qxsmCZNo881rc3VasLFOkJMQIuJCgUogMF
+ 19vHl0SF9BSKpbJLqhu1dzt7BkwTM6+X1rbe73z6DFc9wPfVRXbADXDs86ed91trS69n
+ JkwDPZ13a2+oLsmkYiEkKJXke7DgAmcADIZ4ojhIz9Kb9RqdYfDp1OzC8rp1++MBTBcR
+ 7mt2HywC/bhtXV9emJ16OmjQaepvlkKCxol4MCQKOMyJyi2Uod/iU+TKK5WN2vt9w+bp
+ V29WNkFOCNp9V/53X4Mu+rjfmy9f/gFBN1fevJo2D/fd1zZWXlHKU+J/Q4UIFdzvOxbo
+ Vsg0Fgd6z7Tsy2VVd9r1/X+Pv5iDsP2wC5yOC7uI68hmHT4B5+4HCNy5F+N/9+vb71SV
+ Xc5Ogx6Uw4KCe5jTVm6jURm6Vt3c8eCvJyg9199t70LY2q95ZHsu+6fdKQjc3e136yhB
+ n/z1oKO5+hoqRNG2gnuIE7oVBnQrqNwWqmta/uwxmiZfzi8DJ6QnLjG/fnWAQoK+W1+e
+ fzlpMvb82VIDIwUouMDJgJHfwbhFnOwwAYyGcorKa6DcGkefQRnasO5843SZcMc2bAOF
+ QrRj3YBC9GzUCAW3prwoB0ZEgjD2sZxcGPVl5qqu17Z29Q4iTug9URnCrndsay78AnMM
+ FSLUgwLnYG9Xa+11VW4mjPy4x3BSYFIWiXWf1+tadYYh1K3Yyy26nAtpTmgaeWYvuKhj
+ GTLoWuuuYx1oJEzNYKBwOG6B0zFMQN0ncFoW9zhPaMulX+1xLlowTk29Y6BwEidMPi8V
+ V9Rruh8Nj/16nGPDj7o19RXFMCCKFYafgrPt1+Vs83DC0AimZVh+2uOWqHq6tNQ4adxR
+ b6EOofw8MW7RNPskPZ005dKvnXB+NwH1cGLTMpwOEmxh9EN6wrIJLCfwhLFJWP+J6hBM
+ PxdX0WoCDPtcGphOGocBEVpRWF1EE1BHfibFCnmwoHBw4QSWh9CyCU8Yl4RW+25rbZxv
+ gHMXOJ205OKvgXMXOLGJ9qNu7W204pcUh3GSDiwQeTg9ero4Wvea98Qt1ZOfnnq7lxA4
+ ++TJT09+esZDOEvKfe548pPI+XnEvMzya83L4Im203mZZ90Ee76yL+tx9/GH1hMIoqez
+ 9VvcibjPISd6Hnhuf/K6Jn5XiL57juR0/daZnh7OfQHkko8/p6fbPxe0bQdz9+e8e8/t
+ u37V5/ZdTp/bw34TQuzDIM6+GiLskzpLkH1vhNnHSJB9qUTZZ0yQfeNEeQ+AMO91EOY9
+ HWK8d+VFkPfovI56L/LBr/Ve5IPTvBcJhYgQ77kS571lYryH7kWQcwW8iHJOBFHO/XAI
+ 6u7nuAAnMc7lgUpEiHOWkKCEODcLi1x03Jubn4MGnJCiBDjXDoFCirr9OYVeNlA4287N
+ z53cA3Xzc0S9iHIuLKYoHNrs7uf8wu4MVHXhDG53P7cZQG2k7n4Ot01STFP3PlcdgYKk
+ QOru5+SjPVQ2VJSpbvy7BwjUjgq6uvXvWNhQQVZMWOwXMRAyfszuEvxBPtrd/fk/6GL4
+ s5/n8lzBcwc8d8BzBzx34D+9A/8DxqE/GgplbmRzdHJlYW0KZW5kb2JqCjE2NSAwIG9i
+ agoyOTY3CmVuZG9iagoxNTggMCBvYmoKPDwgL0xlbmd0aCAxNTkgMCBSIC9UeXBlIC9Y
+ T2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lkdGggNjggL0hlaWdodCA2OCAvQ29sb3JT
+ cGFjZQovRGV2aWNlR3JheSAvSW50ZXJwb2xhdGUgdHJ1ZSAvQml0c1BlckNvbXBvbmVu
+ dCA4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Ae2X6VuSaRTGVWLfF3nZ
+ XlYBCRRQFEFFFIVAFCPcFReK3IKicDCT0aJsKGO0/uA5z/NqNeOLOvN1Oh/0urjgd933
+ Oc9yPy0tv+r/2IHW7/Wf3MOv2/5e8Mm/IVG/ZzDuQTGZTPSPwUDEO2MwgYF+zGKxqWKx
+ EAlh7kRBBBDAZLE5HA6XRxWXw2EjzN0oqAsMUMDmcPl8gVAoQiUUCvg8LsIgym1SsAhE
+ 4PEFIrFEKpVBSaVSiUgk4AOF0nJjcykE0iAUSaRyRbuSQKVsV8gBgyiXUppPCCGYTDYH
+ NEhkCiWh1mh1JEnqtBo1oVQAhc8DKdhPMwiFQCLEUgWh1pIGo8lssVjMJqOe1KiAAlIo
+ SFM3rTAQJiBEEnm7Sqs3Wqy2TgeqTluH2UhqCIVMLMQQaCy9EJBxj8nGCKWGNFpsDleX
+ 2+P1ej3uLqfDZjHq1O0yCYag6dBCQAbqhUiiIDR6MxA8PT6/PxAY8Pf7vG6Xw2oiNUpQ
+ woPGMugZSAaLwxNK5ITGYLG7PD5/cHgkPDo6Gg4NBft73U6bGUMEPA7zXlsbnQ4sgysQ
+ y5SAcHT1+AdHItEH8cRkIh6bGAsF+7wuu4VUt0tFqCX0QrAMvkjartFbHN29gVAkNpl6
+ mM5kMumZ6UR0bNjf47KbSZVCCm5ACE1DsAxwolCRZntXbzA8kUhl5pdWVrOry4tz6el4
+ JDTgddmMOkIuFnBZTDozrTAUaKiM0Bptrp5AOJpMzy+v5x7n8/nHm9nluZnE+LDfe7/D
+ oAE3IIRB0xBgsLgCiUJNWhwef2gimV7M5p7u7hWKhb2d/ObqwsNEZKivu9NMghA+h0Vn
+ prWNyeaJpEokwzcYSaQX157sFEvl/f3yq1JhO5edn4mPBrxOKxIi5LLpGLA4wIqcwDJG
+ Yqn5bH7vRfngsFo9OqyUizu51dnp6HBft92kI2QiHptJ01TEQFYMVldvMJLMrOR2X/z2
+ 5vhtrVY7qR6Wi9ubS+l4eMB730KqkBkm4/pgUDuEMFijvbtvOJpaWN8q7r85eX9ar/9x
+ Wjs+LBfy2dmp8cFel9WgVkgQ43pTKYZSZ+50+8Px9HJu7+Xr4/f1z1++nH3+WKtWStsb
+ CylkxmaEhgg4rOsMGAu0VIba4R0YTWRW84X9o3cfzxrnF+eNz6cnh6/2csvpByN+d6dJ
+ q4SmwmD+udp/MO57g2PJ2ezTYqX6vt44//r14vysXjsqF56sPIqH/W6HWdeUgUaLdAAj
+ kpxb23pe+f3Dp8bFt2/fLhr1WnW/mF8FxoDnJsaVF8yY/Ynx9fwLYhQww38nhsMbGJuc
+ zeaLv1Vr9bM/Ly4uGmcf370pP3u8DMO9vR9SQmeGlR6OP1p5vFc+PDn9dNZoNM7qH45f
+ l3ZzSw9joX63Hc+FSzOXlsvZak12d38oNrO4sf2iUn13Wv/0+VP9w9uj/eLW+vz0xJCv
+ C2arkAiarg+BBNYYbJeh8Skw8+zlQfVt7fT0Q+3kqAIyVjKTY8EeZ4dercDr9NpsW/B+
+ EStUehhMYDSeXlzfKryqvKkenxxXDyulvfzaQioGy8MBG1cGRxntWsd7TkboTJ2w2CeS
+ meXNrWelcuXg9UGl/GIvv76UnowM+uAU0sDyoN9zeO+jDWOwOr2BcCw1u7yR3y08L5VK
+ z59tP1lfykxFQzBZ2HLQDrRMr+85dAZx+GI5CLF3+QbH4gBZy+W3tne2t/Kb2cVHU7Fw
+ sAdkaJWUFVoGmIFDCB/J7v6hsQfTcBhm1zc21tdWl+bSyWg46EPHGMhAVq5vOdg+0FQW
+ ly9GB6rV6ekfGo1OptKz8wsLC3OzcCRPAMLtsODjtMlR2NICZkAIHOyEzmhzevqCoUg0
+ npxOpVJTyThcDQFAdBi1+Fhvdr+gywE6IpLC7WC03Xf3wjUXjoxPRCfGx8LDwX5vF0aA
+ EyyDph3IzOWVDRCdsaPT5e7tHwgODg0PDQb9fT1up91i0BKQH5pfc8gMA124AqREa0DX
+ vtvb44Pq9Xq64co26yE9AIILMabZvY8g4AZDCBweOh1Ol6vL5XI67FYqgCBE82sfzOAA
+ QkHkSpWWNJosHVabzWbtsJgMEGHa5ZCmKAR9N9DheAWBDAJxTKXRkXqDwWgw6EmtBgUy
+ SEG3Ib5DuFSoaycIlVqj0ahVAMDBECIdyi/NVSAhoAQnQx6ES7EU0iUuOURU8WVAvTEV
+ IjMUBAdtiMkQksViiUQiFkNU5oONq6CMv3rDH1CC4iGK61we/6ogaV+F5BuNXIK/Pxvg
+ 0QCxnyo2fjncLfJjDkVBj4cfRb08bs37Pxm8ekUxLgv8Qd32YPgJ8N3TFQn9Gur6V359
+ 8qsDd+nAXzYBYhsKZW5kc3RyZWFtCmVuZG9iagoxNTkgMCBvYmoKMTc2MQplbmRvYmoK
+ MTY4IDAgb2JqCjw8IC9MZW5ndGggMTY5IDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlw
+ ZSAvSW1hZ2UgL1dpZHRoIDIzMiAvSGVpZ2h0IDExNiAvQ29sb3JTcGFjZQovRGV2aWNl
+ R3JheSAvSW50ZXJwb2xhdGUgdHJ1ZSAvQml0c1BlckNvbXBvbmVudCA4IC9GaWx0ZXIg
+ L0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Ae2c/U9SbRjHNVHkHRQBeXmggy+8hHSSQqUC
+ BqNMTfOlqNRhWAvDKCeTZS84KyYrk9L5sjJzaVNj2pg6l+35157rYM9aCvk8P3Hk3N+f
+ 2M4P5/7c3+t7naM795WTg4R2AO0A2gG0A5ndgdwjqP+1Y8B37JfyjoR+rfcYLP8/4O4x
+ AhuNln/kRKPBwgnkw1CTlHuIBXR64Z4YpNfPhdLpBWANwB5C+pMyP78AEBlMJovFYrPZ
+ nCMgWCYslslkFBYSrH8mJTDzoFoBEhDZHC6Xx+cLjoj4fB6XywFaJqDukaYp3iQmeElQ
+ crg8gaCoWCgsKRGJxKSXSFRSIhQWFwkEPC6HIAVPoXhTgxJuEmYSlHxgFIklpVKpTC5X
+ kF5yuUwqLZWIRcDKT5KCpQRoisabxIRgsthACZBAqFCqVMcx9REQdlylUiqAFlCBlM0i
+ YpoaNJfIJp0BZgqKRRIpMGLq8opKjVar0+lJLZ1Oq9VUVpSrMWCVSkTFArCUQSe60UFD
+ wU7ALGRxeAKhWKpQYWUVWt0Jg9GI4/gpkguWaDQaTui0FWWYSiEVCwU8DjiaT0tRuWAn
+ tCBmElOmxMo1eoMRrz59xlxbB7KQWMT6as1nTlfjRoNeU44pZUlQJjSjFIbmgp2FTDZX
+ IJTIlOpKfRVuMtdazlltdofD4SS1YIF2m/WcpdZswqv0lWqlTCIUcNnMQjB0f+Hu2ckC
+ TLFMVaY14KYai9XudF2sb2hsukxyNTU21F90Oe1WS40JN2jLVISjXFYqQwlOqFo+YCrL
+ tMZq81mb48KlpubWto6rbtLrakdba3PTpQsO21lztVFbRpQunwOGHihcKNuCQha3SCRV
+ qrVVpjqrs77xSrv7Zle355bX20tqeb23PN1dN93tVxrrndY6U5VWrZSKighDDxRu7jF4
+ poCdEgVWaaius7kaWjqud3m8d3z3/P33A6TW/X7/Pd8dr6frekdLg8tWV22oxBQSMBSe
+ LfsDSpQtpFMkVZXrcbPV1djq7uy57fMHBgaDQyGSayg4OBDw+273dLpbG11WM64vV0lF
+ REKhcH9/JUpy8orFCkxTZTrrBMxur6//YTA0/ORpeITkCj99MhwKPuz3ebsB1HnWVKXB
+ FOJiXkrOAgabLyxVlunxGlt9i7u7ty8QDD0Jj76IjEVJrrHIi9Hwk1Aw0Nfb7W6pt9Xg
+ +jJlqZDPZhQc8JNWwOAQZVthMFkcTR2d3r4HweHw80j09ZuJtyTXxJvX0cjz8HDwQZ+3
+ s6PJYTEZKojC5TCgEe2rWxqdyS0SyzGN0Xz+wpXrPXcDweGRl9Hx2OTUzMwsqTUzMzUZ
+ G4++HBkOBu72XL9y4bzZqMHk4iIuk56Ck8WFeKp1eK39UnvXbT9gRl5NTE7PvZ//uEBq
+ fZx/Pzc9OfEqAqD+213tl+y1uE4NAeWyUnBCuxWW/lV+ohrK1u3xPQw9e/kqNjX7YWHx
+ 89IyqbX0eXHhw+xU7NXLZ6GHPo8bCrf6RPlfpUJouAf8hMcKT0jE8/Q5V/MNrz/4eDQ6
+ MTU3/2npy8rqGqm1uvJl6dP83NREdPRx0O+90ew6d5oIqJBouPvzCZx84Kw0mq0XW7vu
+ BELhyPjk7Pzi8upafH2D1FqPr60uL87PTo5HwqHAna7Wi1azsRI4+Sk52fwS6XFoQ7b6
+ tm7fwKPRaGz6A2DGN74lSK5vG3EA/TAdi44+GvB1t9XboBEdl5bw2an8ZAtKZJj2ZK29
+ ocPTN/j4xet3cwtLK/GNxObWNqm1tZnYiK8sLcy9e/3i8WCfp6PBXntSi8lKBGk4RXJM
+ i9c5Gq/e8gefRsan3i9++bqe2NzeIbm2NxPrX78svp8ajzwN+m9dbXTU4VpMLkrPCY8V
+ 4Lzm7R8Kj72Znv+8Ev8GmN93Sa3vO9ub3+Irn+en34yFh/q91whOnfpQzia3935oJBqb
+ +bi0up7YAswfpNbu952txPrq0seZWHQkdN8LD5Z0nPBnWSFbIJIn/UzB+TeJ9ePPnL/9
+ 5yQ3Lx9eb+F1SH/K4rzs7g2An29nF5bXNhLbO7s/SEwJS/uxu7Od2FhbXph9C34Get2X
+ nZZTenghghfc/DzEifwkZ/2iukX5RP2WnNkkVoXyifKJ8onymekdQH0I9SHUhzKdwvT3
+ R/lE+UT5TJ+PTF9B+UT5RPnMdArT3x/lE+UT5TN9PjJ9BeUT5RPlM9MpTH9/lE+UT5TP
+ 9PnI9BWUT5TPbM8nRb6TyjmEM1u+e/uNkwLfMVLju1SKfGdMke/GqXIOgBrnOmgUOadD
+ o1Pk3BVVztFR5FxkHkXOuRLnsylxbpka59CpMleAOnMiqDL3gxjLk/1zXHIoMpcHOKky
+ Z4kac7MIQ6kwBw04icrN/rl2e6DZP6cwhypzJ/dAs3+OaE4SNDkxNbvnwsKknp8TcIlR
+ xlk855cYSZQkPZbtc5uTw5coMYc7SfovLhAfLf1aPfqFdgDtANoBtAOZ2YF/AMsrp4UK
+ ZW5kc3RyZWFtCmVuZG9iagoxNjkgMCBvYmoKMTg2MwplbmRvYmoKMTY2IDAgb2JqCjw8
+ IC9MZW5ndGggMTY3IDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL1dp
+ ZHRoIDIzMiAvSGVpZ2h0IDI1MCAvQ29sb3JTcGFjZQovRGV2aWNlR3JheSAvSW50ZXJw
+ b2xhdGUgdHJ1ZSAvQml0c1BlckNvbXBvbmVudCA4IC9GaWx0ZXIgL0ZsYXRlRGVjb2Rl
+ ID4+CnN0cmVhbQp4Ae2d+VeSW/fAS01FlEFBRMBAuAoOOOSIC0PzYipqGQ7l1eVwNTXR
+ ll6jFqVkXnG4OS01LZOcImcjh8Z1/7V3nwc0csjuvd/v8tz3PfuHOuXqefaHvT/7nOfp
+ B86dI0E+AfIJkE+AfAJYfQLnsYz/s48I0bkdhDtGcZCUG8rxnwA7Cd3dPTw8LmAakJq7
+ O4X8N1kpSEBEfJ5eXt77QcMi9rPx9vLyRBk6YP8yqgMSVdETCGk0HzqEL4QfNoGyQVn5
+ 0Gje3ggWCgt1/UuoyEhUSU9gBERfPwaDyWSx2JgFi8VkMhh+gOsDrAiVIv1RVVExgRIq
+ SaPTARH4/AM4HC43MDCQh01AMlwuhxPgz2azAJZOp6GqItIfLKmD8oKXtw/dl8FEiEDH
+ Dw4OFgiEQqEIk4BUBAJIis/jBSJYJsOX7uPt5ajpj0xfByaqpR+D5c/h8oKCBSLRRbFY
+ IgmVYhWhEolYfFEkEgQH8bgcfxYUFWrqKOlpvYt6FloWKH0RJUCKQsQSqSwsLFyuUCgi
+ HBF5puFMAtKRh4eFyaQScYgIUBGpL5BC857eu05MHzpFyReGiIFRHhEVpYyJiY2DiMck
+ UC6xMTHKqKgIObCKQ4R8ihSa1wH63YruY/oy2JxAvvCiRBamAMS4SwlJyckpqaqvkXZG
+ 8TUDVWpKcnJSwqU4gFWEySQXhfxADpvh+wOgFKaXN92PyebwBCESmTxSGXspMVmVpk7X
+ aDIyr6DIwiCoRDIzNJp0dZoqOfFSrDJSLpOECHgcNtOPjiSF1j2xooDpDm4Cpj+XLxJL
+ wyNj4hJT0tI1V37WXs3JzdPp8vPzC7AISESny8vNuar9+YomPS0lMS4mMlwqFvG5/gjU
+ 8wLaX04CPe/EZAUEBotCwxTKuCSVOiMrO1dXeK3oRnFxSWkZRlFaUlx8o+haoS43OytD
+ rUqKUyrCQkXBgQEsJ+hJnIDp4ent48cEzBBpeFRsoio9U5tbcL249GZ5ZWVVVU1NLYpf
+ zzyoNGpqqqoqK8tvlhZfL8jVZqarEmOjwqUhAMr0A0fhxHACKNpRvGi+TH+EKY+OT1Zn
+ avMK9WXlldW19Q2NTc3NBkNLS0srBgFpGAzNzU2NDfW11ZXlZfrCPG2mOjk+Wo5A/Zm+
+ NErRYxsXdS3MIAabC5gKZULq5awcoKyormu403K3rb2j457xPkZhvNfR0d52t+VOQ111
+ BZDmZF1OTVAqAJTLZqBZdEJBz0M5ESaHL5LKlQkqjVZXBJT1TS1tHcYHpkedXWbzY4zC
+ bO7qfGR6YOxoa2mqB9IinVajSlDKpSI+bC90b5i5xzUuVU6aL4vDE0rCowEzO19/q6qu
+ qbXdaOo0d/f0Wix9/QMYRX+fxdLb023uNBnbW5vqqm7p87MBNDpcIuRxWKhzjy2os5wg
+ pzgsKj5Vk11QXF7TYGi7bzI/6e0feDo0PDwyOjqGTYyOjgwPDz0d6O99YjbdbzM01JQX
+ F2RrUuOjwsSg6IkFdXODIeTH4vBBztjky9r84l9qG1s7TF09lsGhkbHxiclnUxDTmATK
+ 5dnkxPjYyNCgpafL1NHaWPtLcb72cnIsKMrnsPygoG5uRyYRaluw0x91rTJBnaXTl9c2
+ 3jU+7LYMDo9NTE2/mHk5OztrtVpfYRGQCKTzcubF9NTE2PCgpfuh8W5jbblel6VOUKLO
+ pQp6TONC23oiO/khssg4VUZO0a1qwOzs6R8am5iemX01N7+wuLgE8RqLQJksLi7Mz72a
+ nZmeGBvq7+kE0OpbRTkZqrhIGSqoL83zmEl0HtrWh8EOFEjCY5LStYVlVbdbAXNgeHxq
+ xjq/+Nr2ZnmFilUswpHL8hvb68V568zU+PAAgLberior1KYnxYRLBIFshg807pGJS7Ut
+ kxMkkkXEqTLz9BV1ho5HgDnxfHZuybayura+vrG5ubmFTUAyG+vra6srtqW52ecTAPqo
+ w1BXoc/LVMVFyERBHCZsLe5HBKXaFo4I4rDoRDWUs7qpzdTdD5jWBdvK2sbW1lv7O+zC
+ /nZra2NtxbZgBdD+blNbUzUUVJ0YDSOXy6Ya99AgAj1R2/KEoYrYFE2uvqK+1dhlGRp/
+ bl20rW5s2d9t7+w6Yg+LcCazs/3OvrWxalu0Ph8fsnQZW+sr9LmalFhFqJCHGveIoEhP
+ OiMgKEQWdSktqwDK2W7qGRybml14s7Zp397d3Xv/AcN4v7e7u23fXHuzMDs1NthjaoeC
+ FmSlXYqShQQFMOhHBQVObzqTA22rTFRnXy+vazGaLcOTM3O21U37zi5AfvwE8RmjQPl8
+ /PDh/e6OfXPVNjczOWwxG1vqyq9nqxOV0LiUoIcH0XnYPX3ZXIFEHpOsydFXNrSZngyO
+ TVsXVzbsO3sAuQ/4BZPYzwdQ93bsGyuL1umxwSemtoZKfY4mOUYuEYCgMIgODVw3d0+a
+ H+gpVcSpruhKq+90dPYOTczM29a23u1++AhXPcT35xnFoTQgsY8fdt9trdnmZyaGejs7
+ 7lSX6q6o4hRSENSP5nl44AKnDxyGRLJI0LPwZq3BaO4bmZpdXF6377w/hHlGhC63dYFF
+ oO937OvLi7NTI31mo6H2ZiEIGikTwZHI5ygnGrcwhn6KSlBrr5XXtz7oHhibfvV6ZRPK
+ CU3rcuUvLjc8o6VrNp8/f4KCbq68fjU9NtD9oLW+/JpWnRD1ExpEaOB+u7HAtkJncPiw
+ eyalXy2quN1m6vlj/MUctO32HnDuX/iMuI697X5OwLm3DY0792L8jx5T2+2KoqvpSbCD
+ 8jkwcI9yOsZtOBpDNyob2x/+/hTpuf52Zw/a1nnNY+93Zn/pTAoad2/n7ToS9OnvD9sb
+ K2+gQRTuGLhHOGFbYcG2gsZtrr6q6bdOy9Dky4Vl4AQ9scT88899UBD07frywsvJIUvn
+ b01VcFKAgQucLDj5He5bxMkNlsBpKCOvuArGrWX4GYyhDfvuAeeZFe7EGztAYRDt2jdg
+ ED0btsDArSrOy4ATkSSYeyKnAE59qZm6kurme119iBN2TzSGqOudeLcz/AGVGBpEaAcF
+ zr6ue83VJbrMVDj5CU7g9IWHslBq+yypaTaa+9G24hy36HJnSPOdW6PMnAMXbSz9ZmNz
+ TQm1gYbCoxkcFI72LXDuHxPQ9gmc1qWvnN+515n+6CvnkpXiNNTuHxS+xwkPn1fyy2oN
+ 9x8PjP77OEcHHt831Jblw4EoQir8Ac6Wfy9nC+GEoxE8llF+Ovv2f7WeZzpqTrn5/ryF
+ OYT8/G7fosfs79XzlFud6Y9P4fzmAZRwUo9lmB4SHG30l+oJr03gdYJIGhFP7Z9oDsHj
+ 59IqepsAx74zbcxTbg4HIvRGYXUJPYDu+xkfIRXBC4XDL07g9RB6bSKSRsajt32/tjo4
+ XwPnHnCecqcz/jFw7gEn9aD9+H7rr+iNX3wkxUk79IKIcJJ6nnG3fr096Vs/4ieZt1+F
+ wGxF/CR+kvMQZlK6pEP8JH4SP12EwGxJ/CR+Ej8xk9IlHeIn8ZP46SIEZkviJ/GT+ImZ
+ lC7pED+Jn8RPFyEwWxI/iZ/ET8ykdEmH+En8JH66CIHZkvhJ/CR+YialSzrET+In8dNF
+ CMyWxE/iJ/ETMyld0iF+Ej+Jny5CYLYkfhI/iZ+YSemSDvGT+En8dBECsyXxk/hJ/MRM
+ Spd0iJ/ET+KnixCYLYmfxE/iJ2ZSuqRD/CR+Ej9dhMBsSfwkfhI/MZPSJR3iJ/GT+Oki
+ BGZL4ifxk/iJmZQu6RA/iZ/ETxchMFsSP4mfxE/MpHRJh/hJ/CR+ugiB2ZL4SfwkfmIm
+ pUs6xE/iJ/HTRQjMlsRP4ifxEzMpXdIhfhI/iZ8uQmC2JH4SP4mfmEnpkg7xk/hJ/HQR
+ ArMl8ZP4SfzETEqXdIifxE/ip4sQmC2Jn//Lfh7zve/Wf9f3vlt/4Hvf3S54+7IDhdKI
+ uIPvtx+dsi6tbML323/C+4vfv3z+BN9vv7myZJ0aPfh++7gIqTCQ7et9we38OZc4Tzj/
+ q+p57r+3ni5dC8tTOL98wWzPPEjny5dT/CSc+WW1LfcfD7jO2//Wehr+vZyG2rL8K6qv
+ +8rxfauA/VNXWmswmvtHXPbPf0k9R/rNRkNtqQ44Ffv753GcglCKs6Sm+R7inF3cPyeA
+ 7QfmY7WAxPbn0OLsFHDea64poThDBY5zwhFOOosLnLGpmbqS6uZ7XX3Dz4Bzw07tn+hy
+ WPE5k0F5UZz2jZXF2WfDfV33mqtLdJmpsYpQAZdFh/PQcZzBEkVsSkZecdWdjk4L4lwG
+ zvcfP1OXwxDUkdfnj+937RvLiNPS2XGnqjgvIyVWIQk+kZMTLJbHJGty9VVNv3VahiZf
+ Liyvv9054MQO1IH5BTh33q4vL7ycHLJ0/tZUpc/VJMfIxcGc4+rp4U1nAmc4cObcqGxs
+ f/j704mZeRtw7n387CwoZqD7mJ8/7gGnbX5m4unvD9sbK2/kAGc4cDLp3h6H+9bDi87g
+ 8MVh0UnpV4sqbreZev4YfzFnW9va3kMPLM7AydH9nOBxZW97a80292L8jx5T2+2Koqvp
+ SdFhYj6HQfc6htOHERAU8lNUglp7rby+9UH3wNj0q9fOgXsAii5+9rD7iOj3z87Hstev
+ 4PGz+0Frffk1rToh6qeQoACGz1FOd08fhj9PJIu8lJZVeBNtoH1oY1letyNBDzoXXRkr
+ TkgN9LSvwxiaGulD2+fNwqy0S5EyEc+f4ePpfrhv3T1pfmyeUOo4KFTDwO0dQoKubcGT
+ 9iHQs4RF93YJhAlP2dC2oOdQL4zb6v1jAo/tRzvCed4dvVDgCiRo4OboKxvaTE8Gx6at
+ aAfd2fvw8RNckAqXe5zpcj+fTx8/7O2g3RPemgw+MbU1VOrRGJJLBFz0OsH9m9cJ586h
+ FwrUwA1TJqqzr5fXtRjNluHJmTnb6qZ9Z/f9B0CF2L86Dr+jfD5++PB+d8e+uWqbm5kc
+ tpiNLXXl17PVicowx7g99NqE4oSBC4NIFgWCFpRVN7WbegbHpmYX3qxt2rd3d/cAFb94
+ v7e7u23fXHuzMDs1Nthjam+qLisAPaNkaAzRvY7h9PDyYYCgcPJLgZNCRX2rscsyNP7c
+ umhb3diyv9ve2XXEHhbhTGZn+519a2PVtmh9Pj5k6TK21lfAKQFOQ6FCHpsat4f69pyb
+ hycNBA2GHTRRrS2EgraZuvuHJ55bF2wraxtbW2/t77AL+9utrY21FduC9fnEcH+3qQ3K
+ WahVJ8LuGQx60jwPb5/w4gQGEQgaJJLBq83MPH1FnaHjYc8AgM7OLdlWVtfW1zc2Nze3
+ sAlIZmN9fW11xbY0NwuYAz0POwx1Ffq8THj4lImC0GnowuFtxSEoNG6gQBIek5QOBa26
+ 3WrsBNDxqRnr/OJr25vlFSpWsQhHLstvbK8X560zU+OA2WlsvV0F5UxPigmXwEMZtO0R
+ PREnalwWhx8ii4xTZeQU3apuvAug/UNjE9Mzs6/m5hcWF5cgXmMRKJPFxYX5uVezM9MT
+ Y0P9gHm3sfpWUU6GKi5SFsLnsKi2PawncKLGhSORUBKuTFBn6fTltQD6sNsyODw2MTX9
+ Yubl7Oys1Wp9hUVAIpDOy5kX01MTY8ODlu6HgFlbrtdlqROU4RIhHIaotj3Cec7N7YIX
+ zQ8VVKqITb6szS/+pbaxtcPU1WMZHBoZG5+YfDYFMY1JoFyeTU6Mj40MDVp6ukwdrY21
+ vxTnay8nxyqkqJx+NGjbQ6c+9MwNjUsVNBBGblR8qia7oLi8psHQdt9kftLbP/B0aHh4
+ ZHR0DJsYHR0ZHh56OtDf+8Rsut9maKgpLy7I1qTGR8GwDaTK6fHtf6443iygxvVChqLO
+ jU5QabLz9beq6ppa242mTnN3T6/F0tc/gFH091ksvT3d5k6Tsb21qa7qlj4/W6NKiEZd
+ i+z0gml7tG0PCsrm8EVSuRJAtbqisorq+qaWtg7jA9Ojzi6z+TFGYTZ3dT4yPTB2tLU0
+ 1VdXlBXptICplEtFfA4b2XlsOREnFBRGERwWQFFlQurlrJxCPZDWNdxpudvW3tFxz3gf
+ ozDe6+hob7vbcqehDij1hTlZl1MTlCAnHBEA86RywlEBDIXOZfoHAqg8Oj5ZnanNA9Ly
+ yura+obGpuZmg6GlpaUVg4A0DIbm5qbGhvra6spyoMzTZqqT46PlgBnoz0Rd63HcFHJM
+ IncPT28fP2YAAg2Pik1UpWdqcwuuF5feLK+srKqqqalF8euZB5VGTU1VVWVl+c3S4usF
+ udrMdFVibFQ4wgxg+vl4e3ocb6cT9IKnN92PBaCi0DCFMi5Jpc7Iys7VFV4rulFcXFJa
+ hlGUlhQX3yi6VqjLzc7KUKuS4pSKsFARYLL86N6eJwwhauaedwNFESjTn8sXiaXhkTFx
+ iSlp6ZorP2uv5uTm6XT5+fkFWAQkotPl5eZc1f58RZOelpIYFxMZLhWL+Fx/phPz2GG7
+ v7cgRREom8MThEhk8khl7KXEZFWaOl2jyci8giILg6ASyczQaNLVaarkxEuxyki5TBIi
+ 4HHYCJOS87g9xYGJZi6AgqO+DDYnkC+8KJGFKaKUMXGXEpKSk1NSVV8j7Yziawaq1JTk
+ 5KSES3ExyihFmExyUcgPhA3FF9xEM+h7mF9B6QyWP4fHF4aIpbIweUQUwMbExkHEYxIo
+ l9gYQIyKkIfJpOIQIZ/H8Wcx6D+Eee68s6I0ui9FGhQsChFLgDUsXK5QKCIcEXmm4UwC
+ 0pGHhwGjRBwiCg6iKH3pNGc1v19O6F80jJCkNLofIuXygoIFItFFsVgiCZViFaESiVh8
+ USQSACQX1dIPKEFN99Oa9mAYASiQ+kBNmWz/AE4gj8cPDg4WCIRCoQiTgFQEAkiKz+MF
+ cgL82UyGL7Ss14UfxoSKOkrqiWoKRWWw2AiWw+UGBgIxLgHJcLkchMhmMaCUqJYwgFAx
+ T+1Zl7GLmhcmrzfNh073BVgmkwW8eAWLxWQCoi+d7kPzBi8pylMG7T6is3ehpECKUL2A
+ FcECLoQfNoGyQVn50IARKnnBA9XyLxTTSYy6180dVRXBAq0zaFjEfjbeXggRVfJvQbpU
+ lYJFlcUzPKCMCPFvVPKbFj4PQV2G+sUdo/iaFcrxm6T/yR/QxfCLf0JE/i35BMgnQD4B
+ 8gn8P3wC/wGf6cVWCmVuZHN0cmVhbQplbmRvYmoKMTY3IDAgb2JqCjUzNTYKZW5kb2Jq
+ CjQgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdIC9D
+ b3VudCA2IC9LaWRzIFsgMyAwIFIgMzUgMCBSIDczIDAgUgo5NyAwIFIgMTI2IDAgUiAx
+ NDIgMCBSIF0gPj4KZW5kb2JqCjE3MCAwIG9iago8PCAvVHlwZSAvQ2F0YWxvZyAvT3V0
+ bGluZXMgMiAwIFIgL1BhZ2VzIDQgMCBSIC9WZXJzaW9uIC8xLjQgPj4KZW5kb2JqCjIg
+ MCBvYmoKPDwgL0xhc3QgMTcxIDAgUiAvRmlyc3QgMTcyIDAgUiA+PgplbmRvYmoKMTcy
+ IDAgb2JqCjw8IC9QYXJlbnQgMTczIDAgUiAvVGl0bGUgKENhbnZhcyAxKSAvQ291bnQg
+ MCAvRGVzdCBbIDMgMCBSIC9YWVogMCA3MzMgMCBdCi9OZXh0IDE3NCAwIFIgPj4KZW5k
+ b2JqCjE3NCAwIG9iago8PCAvUGFyZW50IDE3NSAwIFIgL1ByZXYgMTc2IDAgUiAvQ291
+ bnQgMCAvVGl0bGUgKENhbnZhcyAzKSAvRGVzdCBbIDM1IDAgUgovWFlaIDAgNzMzIDAg
+ XSAvTmV4dCAxNzcgMCBSID4+CmVuZG9iagoxNzcgMCBvYmoKPDwgL1BhcmVudCAxNzgg
+ MCBSIC9QcmV2IDE3OSAwIFIgL0NvdW50IDAgL1RpdGxlIChDYW52YXMgNikgL0Rlc3Qg
+ WyA3MyAwIFIKL1hZWiAwIDczMyAwIF0gL05leHQgMTgwIDAgUiA+PgplbmRvYmoKMTgw
+ IDAgb2JqCjw8IC9QYXJlbnQgMTgxIDAgUiAvUHJldiAxODIgMCBSIC9Db3VudCAwIC9U
+ aXRsZSAoQ2FudmFzIDQpIC9EZXN0IFsgOTcgMCBSCi9YWVogMCA3MzMgMCBdIC9OZXh0
+ IDE4MyAwIFIgPj4KZW5kb2JqCjE4MyAwIG9iago8PCAvUGFyZW50IDE4NCAwIFIgL1By
+ ZXYgMTg1IDAgUiAvQ291bnQgMCAvVGl0bGUgKENhbnZhcyA1KSAvRGVzdCBbIDEyNiAw
+ IFIKL1hZWiAwIDczMyAwIF0gL05leHQgMTg2IDAgUiA+PgplbmRvYmoKMTg2IDAgb2Jq
+ Cjw8IC9QYXJlbnQgMTg3IDAgUiAvUHJldiAxODggMCBSIC9Db3VudCAwIC9EZXN0IFsg
+ MTQyIDAgUiAvWFlaIDAgNzMzIDAgXSAvVGl0bGUKKENhbnZhcyAyKSA+PgplbmRvYmoK
+ MTg4IDAgb2JqCjw8IC9QYXJlbnQgMTg0IDAgUiA+PgplbmRvYmoKMTg3IDAgb2JqCjw8
+ ID4+CmVuZG9iagoxODUgMCBvYmoKPDwgL1BhcmVudCAxODEgMCBSID4+CmVuZG9iagox
+ ODQgMCBvYmoKPDwgPj4KZW5kb2JqCjE4MiAwIG9iago8PCAvUGFyZW50IDE3OCAwIFIg
+ Pj4KZW5kb2JqCjE4MSAwIG9iago8PCA+PgplbmRvYmoKMTc5IDAgb2JqCjw8IC9QYXJl
+ bnQgMTc1IDAgUiA+PgplbmRvYmoKMTc4IDAgb2JqCjw8ID4+CmVuZG9iagoxNzYgMCBv
+ YmoKPDwgL1BhcmVudCAxNzMgMCBSID4+CmVuZG9iagoxNzUgMCBvYmoKPDwgPj4KZW5k
+ b2JqCjE3MyAwIG9iago8PCA+PgplbmRvYmoKMTcxIDAgb2JqCjw8IC9QYXJlbnQgMTg3
+ IDAgUiAvUHJldiAxODggMCBSIC9Db3VudCAwIC9EZXN0IFsgMTQyIDAgUiAvWFlaIDAg
+ NzMzIDAgXSAvVGl0bGUKKENhbnZhcyAyKSA+PgplbmRvYmoKMTg5IDAgb2JqCjw8IC9M
+ ZW5ndGggMTkwIDAgUiAvTGVuZ3RoMSA3OTUyIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+
+ CnN0cmVhbQp4Ab1Ze3hTVbZf+7yT9JGkaZtnk/Q0SdP0XSgN7dBQklIerYUiNEoxfUGL
+ VEuBKszArVoVCjKKoo44o+hcecn00PJJkKuXcWCq8xIdxcf1u+qIjp93Os6dC34zYJu7
+ zkmptN+MH3/4zdlZe++11z57r/3ba6+9z87Gnk3tkAh9QEP9Tc3dq0F5Mgox+ai1q7k7
+ zus/wnR7a+9GR5xnswHodau713TFeeERALVtzbrNE++n9CG/rKO9uS0uh68xLe3AgjhP
+ ZmCa1dG18c44rz+Oae6621sn5CkdyBu7mu+c6B8+QN5xW3NXe7x+RgKmWd23b9gY521v
+ YVrW3dM+UZ80on6vA8FSDdwOKrgVeKBAi6EJgP9cbQMGpbIcn7ZczcO3JFdcAp2g8LfU
+ /lBJf+n8j/N/a//ao3lI+DsWqK7Wl1POO+4FSCAoH9U8NClR3sNIE4UGXxQWIFUizUTy
+ +eYaoY88Bw8iPY1EQyfZCZuRdiD9CImZzB1C7iTZOcQIgRfJZjCThQENY19mMNmNao39
+ zSjhjv/E/p7xk1PEhLP3MTENJYJqrpo8TZ6CNrCTfwcX2QI1kE2eGPaus0dQdAi6kfqQ
+ aCUm5NBQRrH9ZZILLobgO27IYMgL9j8W5dk/LYpSZMj+iifKYPLzDOQCyfbTtp/Y/9O2
+ xv4y0pG46LAXa7xgP2RbZ384I0qeGLLvsUUJvvNQPNlkw1dfsHd5H7W3FSnyxY9GqSND
+ dj/Klwc09tIyp32m7YK9wBMVCPJ5tsX2nKLf2rPwRazmwEZdAZ3danvYPhtFGbaQZzbS
+ KXKY7IMcsm/ItdD+ImZxuMMLvGWPRsn3h2uyi1xRsiVQWpP9qLfG4/Iutru81R4P5pe/
+ yvfzN/Nz+WLex2fzbt7JW3iDoBe0QpKQIKgFQeCj5PmhSjt3ihyBSoTlyLDACWyU/AwL
+ mVPkqFJ49ITACJQAgiEa+wiNl4AhSo4c18o5zLzAKTkuSo4Ox4uOBuyMnGMUgZaS8xhh
+ DBQRKFgIEnkgysG9ab2Vxkr9HJ2/OvjPoogiuRr7/vljJDbp0UUNjdJhW1gqljMxW/hq
+ dePVzD9NN25CUXuVz7do6ebh3u61q0PtYigihtqRItLO3g6j1NficBxb2y0LHBLtjrS0
+ dshpc7vULbYHpbVi0HGsV3lvmni1LO4Vg8dgdWhZ47HVgfbgUG+gNyQ2B8PDLVU9TVP6
+ 2jHZV0/VP+irSm6sR+6rRXlvWl9NsrhF7qtJ7qtJ7qsl0KL0JQ8+1NlQtWEjWqcj1LnI
+ IWU3SAuW3NQoOZrDwSh5DguDm4A9DVr2Jchm+8DMFIAdIPYe0vtyOn5j7DN2BLTjXbH/
+ pctxUk/KRI1XVsBpeAD2wSBwcBDz2bAKHofXyFpc2yvhOJwnGZCPvpeBKCyG35BY7A1Y
+ DT/F+hvhFdgLxyAB3+mCVJTuJq7YFuQDmG+B/tgzkAVlcB+8BH5sdTeMxg7FhlG6FG6E
+ w3AE3/81EaljTErsZ7ELIMASbLMfJW/EFscGQQ+5UAX1WNoPLxMX/X6sA4xQjto9CU/B
+ fvg5/IncTY7HOmK9sXOxj9FUjWCFBgxbyXHyMT3I3Bd7MvZFbByRyIYc7DUCD8Oz2P4g
+ htPoWkPkVrKRPEz2UgHqbuo4cy+bPj6GOHhhPoYa9MrbEYGTcAb+Cn8nX1JGWktvpM/G
+ Zsb+D332IhylPJJ26MVwP4bdOKZThCOFZB6pJ1vJI2Qv+T2VQ91INVJ3UHdSn9F19Ep6
+ M/17ZgMzxO5iH+c045dip2IjsbchHWxwM/TANhzdK3AOLsJlQmNbVuIi5aSKrMLQR/ZR
+ J8l+cpKqJ6fJOeow+ZB8Qr4kVyiWSqBSKR+1kXqYOkK9Qv2O7qT30j+iP6QvMXNYit3P
+ fsq5+P8abxnfMf67WHns49jf0MUK4MSZqYI6uAWacbTdMAP+DUdxFMMgztoZOAuvKeET
+ YoVR+BuiAERPzKSY1GKoIzeQ1aST/IS8iOFlRZevKJwISkXpqHTKSjVQLVQX1Ue9TfXR
+ FjqHXkjfRA9ieJU+T1+hrzAsk8KkMvOZBbCL6WKewPAcc5AZYl5n/ewcto5dzvaxO9hd
+ dCv7Bnue28bt5oa4L7m/oFtczN/O78LZeQ1t9udoy988DMlC7YvhNmglQdICj+Js7CfN
+ MIDW1Ua2I17dkB1rorfR86lCtIaX4ftorU/AVthBr4T9sXfpw/AOWso6bLIPDjBVYGMf
+ w9m5GwrRiiZCwJvjzfa4XVliptOBLt9qMZuM6WmphhS9TpuYoFGrBJ5jGZoikBsSqyMO
+ yR2RGLdYU5Mn82IzFjRfUxDBpeyQqqfWkRzye80omlIzgDVXT6sZiNcMTNYkWkcFVOTl
+ OkKiQ/ptUHREyU1LGjH/QFAMO6RRJV+r5B9U8omYdzrxBUfI2BF0SCTiCEnVvR0DoUgw
+ L5ecDCAc6rxc2XEEQCM3LMG85q3oYGGeXCMkmcVgSDKJmEcZ7Qo1t0n1SxpDQYvTGcYy
+ LFraiH3k5XZKqCfsTGgT23ZGA9ASkXPNKxslujksURG5LZ1PSheDUvqWT43fsFdzoV3X
+ CCXKVd3cPlAtBSI7EVyZjchc8y7kFjU4sFnq3nCjRO6dUELWcS1qKqsb3xNckbUOSSVW
+ iR0DayMILixtHDIHzIrzlaC+ccgUMClMXu5J47ZyJ47+ZN7cvLlyWu40bounf7wnXv7m
+ aTk1bjvzEaaLlk4CQGQExAWop+RoVToRUdkyOWovg4HWMsQJnzDBYXaiPvMkCm2Gdkms
+ a0Gz1NdwVY2OYFy5yNrgkMpkVjahqjDWjwxoZ+NMYX2t6Bi4hLt1RBz909SS5okSzqW9
+ BLJQnuhJW5FI89V8r7xZunDUHUaxQ57fXmVOkReNoWsKkJehkXWWDLiB1zc6JUcYC/A0
+ mbsoCqr6xmOE7A5HSezeKARtJ/GMSt+yCsW5sql1BrF/ZPJysSDHibn8XEc19lwt24pj
+ wDGwoG3AUe3oQGNiXEqKgvaBcAEi2NCIOMEy7DEQtkxm28Ph2dhOgdwOvoLVB8LYwtqJ
+ FjBVigrGsFJhLm6mtLu+cUmj1Be0SIFgGGcBzfd0faN0Gi03HMZaRZOaosZbO40TOhej
+ zkU5KC+Jt4Jnlz5sIjwwILfZ0Cg6pdMDA5YBeb3F+SiB6QWBiYIoyFVkyKOkrx7fxUR0
+ WpQ5cIpOVCssYzoDTfqqReGZ/dsRLp3UG9+chdqWKgiXfUcI+68H4dnXhXD5pKZTEK5A
+ nctlhL/3r0N4zhSEK78d4cCk3qjkXNQ2oCBc9R0hPO96EA5eF8KhSU2nIFyNOodkhOf/
+ 6xCumYLwgm9HeOGk3qjkItR2oYLw4u8I4drrQbjuuhC+YVLTKQjXo843yAgv+dchvHQK
+ wg3fjvCySb1RyRtR22UKwsu/I4RXXA/CjdeFcHhS0ykI34Q6h2WEb55EOGCR4Fo/3DfN
+ 7cJ37phXXgM5npRYPVQxG+BJ/OY6zi6HCH5YlyNfhlRDRqAf037qMOzAcg1Wv3rPk4Bf
+ H1uQr8TvJvzsvo6HwnP8tz8MsNhq/OEnq8avkeQbo/ijVpIZ8AIJ4LfEbuoyfYb+K1PH
+ PMLm4IG+CoA5h9+WNN5RVcbvjYQC3NyRBG0U4BySzGOe/iAKDBJgnv8AXsQ3AJb7XsRW
+ WEwLi0p0Tp0HqYrZHf36D+xLl+dFmdoreAeBNZ7EftLZc9iPA54MzM/W16Q0prQnbkpk
+ OxM2J1BuIVmbmJqsURlT9YkaxqFdQXJoteNXliyO6JOLtHbSRtMqh7FMZc60FzlMzszf
+ O1tr8Bah7mLtaJ32q9pRnd5fMHpxzA+Vo6OVY5/p0v0Ei/R+v05fVDhvc8BsymAEm8vK
+ 2ueCmTfOJRmMZS4xCRjh7RjBL/G77oIm0uQqSRVBX1KMJ36OTyKp4ozSSlI6q3TmDLeY
+ yXO8SEZHRsYHL759dnRFf8Q/FNxQn5WWven+A4EsdujcOeY1wn88uLa/r+mubT8cXH9D
+ pmtudcuDPwjdjRjgVQ17J2KtAg88EtDziQtIDRsmjWwn22a4kxXSTuEHpgksxBqoEp0O
+ d0S/Xr/JQOsz7AZrKu3MSDMwbn2WKwNUKgufoaHcVovgcKXaXWl0UXKnxewV3C6P2pTt
+ Pe/cu1rBpqJ2rEJG5+LoWxigsqKicgxxqhir8E8AJCPUhED5igpJEynGYXrcolNHO4vl
+ bx6OzyB2kpaelp4q5pMC4laEIj1/17M931s9bh6hDh7ser2rZfkKlqc1+vyL6gQmgW/z
+ bxkvH6Gt3Xt+7M8YV1P7i1aN9R8sEXv6zi7zVhucKRXLLz1YZBkbQEwisbeZr9hPoQC/
+ wcYDq7zJHtHtLk2a6ZzvbnFvSbojS3WrYExKd1HhpI6kw5m0Oml2ZlammmasxvsMBQU+
+ 62wDzcz2qQopdZKgy8q0ZxcW6oyu9AWCK9tcbHfpFoCrwFRU/LRz7Y4Jc7kYN5iLo4iE
+ Xuf3ywSVlaOVcoEWDSndnz9W0rReMZva7HydHQTKTbnzXJzL7KZzwQd5+UrC5gg+Ykux
+ +8CSavQRk5HkMT5QeTQ+4tKQfMzzXowy9FYUpmGElubzabVob9oKJavEsunJtoc4lxTL
+ luZxK1DPnJFVUsykijLqmVyqIT1NmYtUAyM6PO5ZhGTwM1ovd68cWrT4mZFfLNlF9Ff+
+ SOadSi66+X3piZvKz/1u75Jd4z/+n/E/79tHU7Xk/a11exxznr6zpNiVlztz5Ylfjn94
+ qbdywyMt64odhQWZ5WvOXHxz184/M+i2KMCbBPocUwdmsMCBQMEBE3nceFA4bKQXCrp9
+ Bpo2cDYzn2gzaCy8xZKu9egJ7aF0Zpvak26y4vUqP+zs2frN+qyoHfX7ZXyvAVrBdwaY
+ BFdCqtoNSSlaN9HrkrW8CTkWaCchFENr0hLdkKzHSGXk3IQhnFNerDKCMobx2KcsXUhL
+ RyuVV2mqAZEsnVWShBw1UwslPHX+k/RBbc+25xcWbt/TfY9pMOMvp968TPRvWZk66Z3W
+ ew52Pb3/gx13vH2WlHyG1yCzWcSgLPY+Pcq+gn7cBncEimclzU9akXSAOWRhXYKBSrZp
+ QbDZ+BQ1ZUvXsPkp+VqvTm+2azzoauz3O3uqrh3+2IUL6JlkK9P5df64RzJaVWogxKjB
+ sVkxAhPlBrVFcOMA8acYhV4eiOJ7uFTAdagr0Ykz5WHBzBn6kq/27N+6/7kt2w+RgYbC
+ 7x19pvL524fHL3/53+SWz9957de/OPcrataMjEWU7fKcva2NJO/yF2QFeuCa2PuMGW9m
+ rHiL5yIJgc2PCT8yH7DTbBKVzBpSk/TJqYZAQsAgeM1kkeYFeoT8kh6xvCu8pzpvf1f8
+ PP1zUTOiG9FTKwXWmZX8RJoty8/xfJrTZuXVtjSNi3/MesB6wvqOlXGlJaPHNakTeF2S
+ J9nmYc2erHzeYzK5PW85n2uKAzR2QXHgb43FvTUuSH9B06SdoK+S12QcsmoQGZbGay/C
+ MpzdrdPqtSlag5bhElyZliw37i02N8mwqdJ5N2hSk9wkMUk0O7GIxUgwol0lajFSlqGy
+ BJVlmOPLuYusb4L1TU1oQhhSnRlEXomyAaHL5xBtHRqR4v4yOZ5Qx8+Xleq1X3/JPvjY
+ A8sKDcf4G4qWbp679NXxL4jxD8SuyV549AcHWSIy82+9ccm6hc88e7apdH75Q/n1Vi0R
+ 8e6PIlXj7k3Vdw8PEPnPJbS1fjwqlE/sw6UBK/8pg8cEjlar0tPNWN/L07hQVIedLXGr
+ qqg9M1Zxpi7UHvwMkaqorB0tKkxB09Dh7tV/Ah8m58p59qXfXG2bHsX5NuFqXhUoOsGN
+ cBTDGTiPoZfbyLOGBMpg1NpYHjijRm3mzWZI8KrMVpJv9JrAZLHiHz7D33Q8MV3xtVyB
+ Fo3uk8jzI++eKSWpcxA6hBB1kbcSecvEXVQnkv4jiw93XKjPPWEr3BbwLizLsxwnB5iC
+ x1ctfWrFM2NLqGdbKtoS06pmru8cex2VxeHvQGD2MPNBBzcE3B7anTiLns8wSYKWSlLp
+ VAkeQVZZpxbMKURee2DSp0RJCFXdphgWbn5oWTI+tZVnxs6gDSlHAlnRCTVxW5P9BYfq
+ 7TiS+tNbWaNNa9Fu33OcKThZuo+iX6apwZ6xx2Vd0CnSXzAFgHMRyK8iZwkFa6CD6qDX
+ cPcz29kDcJAS8GaZCjEL2fuYHewI8yorLMjekM0LUaIadq6RdcK/MqKx7uNovA4mSu45
+ QdNdeopQ+P/OPYEMjuvSY08sx9CEsBTN0YD3jGoBDYAepF4ksoX0D5NBzmSqu2isHfvo
+ ozGTYgBG3Ncr0yv0Ewcevjbfp627UMvHE9+iJZsDLsqrp2kGvHqOw7UzpXH0sYMsfNOu
+ 3z/m909rmeW1PvzhGQGXSdP6FBUpQTv+gGQQ39nxdafHNzEFXz9Od1x5AxGiZIPGfyba
+ 8f78Hz3yqRi9F5RCtXIXvxj/B7gRwlhK8J+B+NmYw/9KYXl1qG5uva+mfV1v+8bO1mal
+ xtUWZ2AmgFSPFEHqRupDehDpaSQJ6TTSudjEg3mYzBM8h0/ll07jG6bxrdP4tmm8MtZr
+ 2u+cJr9tGt8zje+V+f8HvcgUDQplbmRzdHJlYW0KZW5kb2JqCjE5MCAwIG9iago0OTU4
+ CmVuZG9iagoxOTEgMCBvYmoKPDwgL1R5cGUgL0ZvbnREZXNjcmlwdG9yIC9Bc2NlbnQg
+ NzcwIC9DYXBIZWlnaHQgNjg0IC9EZXNjZW50IC0yMzAgL0ZsYWdzIDMyCi9Gb250QkJv
+ eCBbLTk1MSAtNDgxIDE0NDUgMTEyMl0gL0ZvbnROYW1lIC9WRkVOQVArSGVsdmV0aWNh
+ IC9JdGFsaWNBbmdsZSAwCi9TdGVtViAwIC9NYXhXaWR0aCAxNTAwIC9YSGVpZ2h0IDUx
+ MyAvRm9udEZpbGUyIDE4OSAwIFIgPj4KZW5kb2JqCjE5MiAwIG9iagpbIDU1NiAwIDAg
+ MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCA3MjIgNjY3IDAgMCAwIDAgMCAw
+ IDAgMCAwIDAgMCAwCjAgMCAwIDUwMCA1NTYgNTU2IDAgMCAwIDIyMiAwIDAgMCAwIDU1
+ NiAwIDAgMCAzMzMgMCAwIDAgNTAwIF0KZW5kb2JqCjE5IDAgb2JqCjw8IC9UeXBlIC9G
+ b250IC9TdWJ0eXBlIC9UcnVlVHlwZSAvQmFzZUZvbnQgL1ZGRU5BUCtIZWx2ZXRpY2Eg
+ L0ZvbnREZXNjcmlwdG9yCjE5MSAwIFIgL1dpZHRocyAxOTIgMCBSIC9GaXJzdENoYXIg
+ NjMgL0xhc3RDaGFyIDExOCAvRW5jb2RpbmcgL01hY1JvbWFuRW5jb2RpbmcKPj4KZW5k
+ b2JqCjE5MyAwIG9iago8PCAvTGVuZ3RoIDE5NCAwIFIgL0xlbmd0aDEgMTQyMTYgL0Zp
+ bHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBvXsJdBRV1vB7tXf1kl7Sa5buTnen
+ s29kawhJJSQkEAIhEEgwkQRIJiBgQAybOAhqIO7OKIh844aKOM40QbHRD39+BhUV5nPB
+ ERF1HAFhMG4TBQ1d/d9XHSLkmzPHc/4505Vbb6t677777rvbq6xYfmMH0qL1iEb1c9q7
+ O5Hyy69HiC6ev6S9O1o2rYL0yPyeFa5omU2B9ts7u3+1JFoWggiJ3l8tXj38fuxWhJzx
+ XR3tC6Lt6BKkhV1QES3jfEi9XUtWkH7hZzwGtx2Lr58/3B5bCeWZS9pXDY+PTkLZtbR9
+ SQek8MuH8VFK9/U3rFCKaMzzkK7oXt4x/DxuAvz+B2GoTUWLkAotRgKikB6uFoT4s6IX
+ MdBK2gHKMxsfnRtT8j0yCEp3j/uz1pPMa+7//vHCyUt+9c2qifCcSnmeNMA7XKqcipAG
+ Q/tH6ptHWkgr+aWGUEN6CNUAlALkA6Sl7xakl/C9KLZ1UFJhJ4PUzuP2r17BWUD/M8o9
+ iLMkjRap5m8scc7fuLEmtVyFa1ERg5ETVyGvklb2e591hnBpv9cDyfhoQvUXJUAJSaoi
+ rzNcNM95qSgkYCnOedH7G+cFgB+8Zc7vvbnOd+C5t4uqnUfLob3f+VZaiILkTW+IwVKM
+ 87D3FucLRanO54vGOfv9UNfv3F0OyV7njqJbnE/cqtQ8nqYkj3lDeFu/81GS7HU+Av0/
+ uFFpeCD64oZo0n2rMtD1e5Rk6Z4Q9exe5xJvsnMevIgltbPVu9jZ4g04Z5aHsK/fWUde
+ 2+uc4j/qrCVD9zul6ECF0d4LvArGedFhM7wvO1OiIySRpyWT0+Wd4kyA/jMefdCZ4b3W
+ WZ4WwjtfrElJ89b4HywM4UFlDJIAoiRZGk3m+/fjp1E1SsVzkA8/tKcmFXDG9/Y7N0Ky
+ bU9NSpEvRJ+VjM49/hr/rQCFAD6AxhCeKWXwW/gFfCM/hk/nU/lk3s0n8nF8rGAU9IJO
+ 0AiiIAicwAiUgITYUOSvUjrholhOTxKOIXdGyespkocb3BGFBQpNRiEO3WbpKbOVGUsN
+ gYmV/+TWplS2Vab//LP9nE234YTgg7UzmoK7EpqDeSQTSWi+ov3/J9tRAW/XNqze07D6
+ /KyqDk9Vm6eqA6AteEdPly24fp7Ltfv8atLgCtLJbfPmd5G0vSO42tNRGTzvqXTtblDe
+ G9U8izQ3eCp3o1lVM5t2z5I6KvsbpIYqT3tl8576qpqpV421eWSsmqp/MlYV6ayGjFWv
+ vDdqrKmkuZ6MNZWMNZWMVS/VK2Olp1ctnFGB2APIwB5EmewWlMBUoASEIicAPiKpPCPy
+ Nfs2EiPhyAANkg0nEfh0CMeiPyIevYhuBmnzLtqFVciDBnAe+hAn4DR0HMnoI/Q35EB3
+ oEfhXoXO4h9AypzDKfBMIdqAfoceiXSjblQG11nMIjMqRuciayOHIz+iCtSHDmEem3BC
+ ZB/KRr1wbUPbsYaaF9mNbGgKWglSfQN6A52I9Ef+Dv0XotPYgLOZcZGPgcFYqAmgzWgX
+ ehG7sQen4Wsip6HeBji2oF2RukgPvPc1PJWNpqK1MNpn2ImTcTrehj+hByLrI3fD3OKh
+ rRHNh2sJugVtRdvRc8pT85h41gz9V6JaaLsbHUFn0XcgcFNxBV5FvU//nf6GGcdsixwC
+ PBphvDb0CKaBKl7ciBfgbvwcfh7/Cf9AFVHtdIB+n+lmHgPcGtEm9Bjaj15H76GP0Xk0
+ gH5CYcwATqV4Gl6L/wve+xs1hmql1lF3Uieor+lc+hOGZ+5gb2NfjjCR9yM/Ac6JKA2N
+ g50+HTWhDrg60VJ0I/o1uhXzaAvajf4E2H6KPsUi1uNsnIur8Ux8Db4Or0b34R34JXwS
+ n8Jn8DnAzkQ5KQ+VTfXAeBuozdRzVD+1jxqgDfQKeh19gP6E/oExM63MAbg+ZTPZFVw8
+ V8tPl38rfxrJjNwb2QbrYoHLC1oqE5ViBqi4BN0KK7kZaLYd7UDPoj+gftQfGcIBdAi9
+ A3h9hr5GF2DF4uFy4zxcjOvxdMBwMV6Cf423Aoa78F7A8mX8MvoAf4CH4JKRnVJRmdQ1
+ VDu1Gq5taCv1nkIfDe2mU+hMupaeEfmWfo7eTX/H+Jg5zDJmLdPHbGUeYePZ8exsdg7b
+ zT7A7mXfYv/Cfs0OcglcL7eDe557jxf4fH4rL+MkwMWFfeh59Apw3YN0N5S9aAK+FVZ1
+ FjoC3DuAXkVD6Ed0AD2NE5BMk9VMjjyGQpFNsJr70Qv0TagE3Uf9hpocKaN30iqcF7kA
+ feXAel2+kJSWmuJP9nk9SW6XMzEhPs5ht1kt5liT0aCP0Wk1alEl8BzL0BRGGVWeiW2u
+ YHJbkEn21NRkkrKnHSrar6hoC7qgauLVzwRd5L12aLrqSQme7Bz1pBR9Uhp5EutdJagk
+ M8NV5XEFj1Z6XCE8Z3oT5O+q9DS7ggNKvk7J36vktZB3u+EFV5Wtq9IVxG2uquDEnq6+
+ qrbKzAy8TwJlIGZmoH0ISUhNOg6iCe3rQLiiCeSJqqDDU1kVtHsgD220r6p9QbB+elNV
+ ZZzb3ZyZEcQT5nvmBZGnIhiTPvw6eQ+EoK+hCcbOzFgYBPzRHZoFngV3hCQ0r43k2lua
+ gnR7c5BqI2MY0oNWT2XQuua07efi5VzVnVc0BinfxPaOvolBqe0OIDoptpFS+51Qqp3h
+ gm6p25qbgvg2QI4goeAenUVUTfjaFrmCKk+Fp6tvURvQHNU39TskR5WnrbI5iBqa+u2S
+ XSlkZuyz3TzODUTZl1meWU7ScW7bzdH0i43R+ncPkNR286G/QlrbMEIXTMb2TAI0g675
+ MAjQAnAtJreOYtQ3vxjIB79mDLNcCPhMCFLASrQvyPomtQfXzxhGo72rchi5RZX9KrtD
+ 0UsVzfB8W59+LCwgPK/3uPq+R7CynoEvr65pH67hfPrvEWkk6z/CQkHcfjnfQ/SnD1RS
+ l83TRZavR1lqKHtsVVdUQJnorUwwODNqQ0hV37Qb47ubQzhyWwhVJuwDBUPPvRaa0wnD
+ LayE4aCQkQEVaW7IAQYTYaCJhDNcfa6+SQv6XBNdXcBSjE9JoaGjrzkbCDajCciCZja5
+ g1Jz3Ei2o7l5LPSTRfqBV+DxvmboYdFwD5AqVdlheCg7oxZmlVzfNL0puL4yLihVNgPR
+ gYkP1DcFDwD/NjfDUzkjmALG6xbahnHOBZxz0qA9L9oLmDXroYvmvj7S54wmjzt4oK8v
+ ro/sumgZLOTRFdJwRQiRRwiFQ3h9PbwLiccdp5Dc7XEDWs2EpmOAgS8zEJj1/5rCBSN4
+ w5uFgG2BQuGifxOFi38JhQO/iMJjRzC9isLjAOexhMIl/zkKj7+KwqX/msJlI3gDkhJg
+ W6ZQuPzfROGKX0LhCb+IwpUjmF5F4SrAuZJQeOJ/jsLVV1G45l9TeNII3oDkZMB2kkLh
+ 2n8Thaf8EgrX/SIKTx3B9CoKTwOcpxIK1//nKDz9Kgo3/GsKzxjBG5CcCdjOUCjc+G+i
+ 8KxfQuHZv4jCTSOYXkXhZsC5iVB4zgiFpbggulIOrx8ldtG/XTBfcwXJ2dfRNioA7vMu
+ 9BmkPcwN6G4ACaAQ2vIBWgC2s7PQk1wANZLnmc/Rdm4X2gL5LVD/BKRPQNoI9W7+LpQI
+ 746D/FpIqyEtgzQb0gqAXhhjM5Q3QHoHn4DWk7rhtnV0AtoAbRWAixnq1kHeAWAGmy4a
+ f4IgEuLAZkbIheYMu/5QGPWjR8oMeEzcSOl/Z3ioEkDJi5Cqoe/oT4t0KAayEGNABmRE
+ JqU6Ntp41d0M/ogVvEA71DpQHHh4CLzdROQE/NwIPFvwD73Ih5KRX3mPROIgIAfXUvQU
+ OoFn4RNUF3WCzqHn0acYG1PKHGI1bAN7kJvH3c8vFyzCUuGkqlD1plgp3i0eVDepV2lc
+ mm7Na1qvdql2UFequ1/3Q8zd4O1tQwh8j4MQmeRRqeRmuQSw6Rk+gUYiyyTQNOVQcXwC
+ RnZBtcu9uAQCHlMHS+rCJVP1P5TU6cMlqKwkXEIgN2eMwW3wA2xjnghdOsoe/Kk0xDQM
+ /YFgToFHhSgHux/oqkITpCSKRYhp5lNUotpqdQjdqnhEMzSDu5FdVHe7b4kOVHc6EFiX
+ fVO2TT/4PYQUKs+gurLwV2WBQG6OyW2gPTTc3Z/hwPQHZvA4Tf4Lu1/uC9dTwUsn5E9h
+ lXvkJ8FPS4PI3zjJib4SBUa7jE1hxBgYUiXSc7huxNh1Md3uX4/MayAQUAaqQ2UDg4ZA
+ YCA3x1qKizwwrViO12FPz6zp3HM435tbcE/cgK27A4aVK39bOHYcjHc3xEN5dheMlycl
+ prIBltLiIypGo1HvQapilyZH06YJahhNTLVO33PIdqz11JEBVFY2eDQ3B7WaCgqLlKuA
+ 0PHu3sJZhT6TekA+SZ89yGlMAX+53/TTLPosjCMB7dzsbuCUTVI7H4uZOD7+eiPNJNix
+ xdaJ25h53K8cW/AD1FbHU1iN7Hp7vr0gnom3MxSTGCNKJjbxMbcmMZ6hdfweyw1OTOnm
+ x9zkfFrvxt3u9e573Y+6g+633d+4ebenOmlqFNdlp+oGgTr6wQGDNYDKwmUDH0MGt+bm
+ tC5Dyy7jnp/sSeI53g1ldx5jjuW5GKzDvNvsriwb//mrY5s7527IjmPl83zJcuw5g/Vt
+ Zfcuv25aHLX6knP7Lfc9ftf4ucta1rQXr9m3/MPIu4+tm9E5fUpl5hDhIYwKIyeVeeeg
+ nr0qF96ahHNCWJBKMqyJPp/6h+s1n2oojSbDJCWyjJSh9fl4/fVufmOq5k7LfOtNaH7q
+ 0/qcnBzq0Zxgzts53+QwOXnVuT/PbmAwfEY/cGzAGMiGxS8jaWs4MB6Y76ge2AC14mU4
+ 1moZk1dYkO9P9pDlKiDT5axktkWleEweuMgw+TziKlMelz/Zj6fG52+euW5Fxd13FM1t
+ b+qYS8k/MG5PbfG27rcjU3Ly/ZOWRH6Sj6wq4/H+2YGFNyy+JyfuCGVPWz+ja/11i9sb
+ a8YUfvDC+qai2AkdfwzJ59647jlgMZACiN0Je5YC+aNGJ6XruijsZ1PEYq5IVcN1iavE
+ Tcwmbhv9ALOV20U/yezkQjgkHsaHxeP0cdGMeY6jkKBSwU3EPEvFiqLPCMVYlvUZoY0X
+ 0khcVFSDg8/BRmEFtRa2jFpkODaEY/tVNAXJXtGu6bhxuS29Z6p+0FYXDgTgzxCwK/vH
+ BjS0ltSVlZQYA4FsEA9sb1b6On0tuCDMgbggc6i5N8s2XEFDBX2o2QBPwl+vvqSEB8jN
+ wa1Ac7caAjBuCKC4MZWNe0LP4hZKlPvnhj/rlF+hXoJ4SyWe/lMpzpbfUSjSEvmAXct+
+ rcjSFVLqbPG3/G8F+hqqOa4poZNZiTezz8T2My+KrzGvq09QH8V+bPs07qJNbw1hteRx
+ CIJDU+6kaWO5Q+W0FFmFImci73DHFCXaXe6H3M/NUuRf3QBIvzpDAJhFYZUSwiuERwjG
+ RuB8l9VidScDkyRR5ljgGGAPN4fcwBEG3PI/z2MLXvH7ubx8JDF75pM7Dx793eON2U6c
+ myK/KEfkg3v3Uvcys9/ZO7i5b1Fhm/ztxYsXFgWWfyu/e+Qo7qAdsOrbYf3XwmxVoENm
+ SHkrjZgX/Lxf02RcZFzL3En3MX3GrfRWZqvxOVpLpZlVaRbKLHBFeocd+8x2mz2EXXvc
+ DcOTCZPJEDk0cHkK2OAGlAlzF8JELEaznqdSoRK/juNPzMq+69391zzcVlfc86jcH76N
+ WsscvFT6Qc8Tn30rJ47ZtDSCVsgnjsgDgB/Zs08CrhTk1SibnNS8BGpVhWrhpIbThxB+
+ G70EekeAipfgCaSkNMRxa9NzcjHI9ssX88mlQepIOJ/OGXqCCTD75dcjSL5NvkAGgYhl
+ 5EP2j+xZ0JsedJtUe1j4SPjJ8aObSaVS3AFTra3ZvNX9mv1gwkWVyiQak445dWkxMUam
+ 3OOkjYJYblV5TEaTUUuD3i3yxCX9Pkbv8PFFcXavL4R/vcf93OorVv0oaIUBg9EayAbJ
+ oKx+mbL8YT3UQtUw20YX36An4qLIXeA2ePwczxGZYNATBkFWzKz1bJrS2n/64u8efs0q
+ P0t1HnE2V6/plz96+U+vvoorsR032sOr6B+2lLjlf8jfyd/8bc99P1w6F1qYXvvWETwP
+ dx4/Ln/+Pv4OyAZ0vqzH1ahAihfTaJqlKLUgsIKPd2gptQ/ZNdoD7obhqSj6G7Q4aO+y
+ kkB2OKq8L5N7G86lJJwn/zl8gD0Y/jOV91MpdX94qTIO8B6zC8jOolQpBlFUOSvQDp6C
+ /jk+hOOBrZ6NUgvY6gwqqwuXKboaut6O86kTQ9+xB4eq5QtKX1vghC8F+jKiA9K9KsQL
+ goo1WAS7KhX5hXSV15BmLOILhBJVsXER6jCsRjcaNqPbDdvQg4ad6CnD6+iCcFEVzwqi
+ yiLYVAxvdPAO0WoENjBkG8fzZWKZcY1xn2qv8XWjLoaPESkxxmhQCYjV8RRtFHlaZ0CU
+ TqCFWJBuFEP7KWOMVuePsZsInUCqAYXs+pMnbeESfdT8AHlWVgKLj0FYQWIAQwQtA8UA
+ cgpYNb+wAIRVrMVM2BYzS/DL8meUfE5+Xz5PyZ/hA1hDjCL6dPrDaUPpzPtpD6dfigNy
+ rCY8DLRgK9lXFZtytpQtULMpiuJ4zKcZMaZAJIs0puB0SxQxJ1B+1qGBPa+yqzX/a1HB
+ aiEaDBAlspcBuavvXXdIMTHcWMEMkNuCJ1C12CkfCT8FOM4DLIYY9qdSxjp0DpAAfJ4A
+ fNSwNgJYsaVS/Ba8haM0aQyjo9NigGZCkclhprU+nT3WHMIJV0gTYhlGxQkIxahMTPYA
+ PUBtIoZkIMuY6ROrlwBJnEtW41z54vfy6/KfqQ2fYIFpmydPXXSDHD4e/oo9eOpr4JMo
+ LssAFxEi1E1SmssTZzOzflNyGoYQd1oq5U8QElxJJs6axBVZ42brHRnI70uxp2eEcOJo
+ zE4dCh+CxQMiERIRwR0OgB0D23ZY6IHULrRYE7EZ7L1ECKuDyreaiTDPxlk4ij9+G7d2
+ 5bc05y346OmxOcWL1nQ2CpoM+Tkdp4Glmr9JPii/R73HHJRX2NJuuj3LEZ5YWbxp9sK3
+ 0lK3PDy/wxuI8+UmlpZvvuva8CswKyK/TrA60FlZcAr0hLRIiIGTzWS72h5jdVuTOzUd
+ 2oVJpzPVqfpUc4oj2T/WXOzYZ37TfNL8bsZ503nLj6afLD9mxuiQQZ1kc/qsgi9Jp2Zs
+ WcfSbcfiy7NjaaY8XZVtezDbYJ0mPJjiyHUWGmajwix7Tq5CnxGlNqioNWL2XlZroBGI
+ jUfoBawEMCzdQCkQpUbsoGwMpCnIR7CowyqPMwPJnBieMceCzkMFGK/VpdbuXVJ5iyRt
+ 3n6m6QHswtZzeJIgHxcW11y38u6Jmb+Rn268VX5LPiP/Vd5LTcevd+RdY8taNynFn+jJ
+ H9/54WuYu3D+tmJf26xpfodnfMqErlfflL/H/BkmBWSfG2TSW0BJHhVLGsyl8RQjqGBL
+ oxBu6qd8YLM0SSoOPJgDbmKvgAdTNxgOX7bzy4jvAquvXMxbcrX8plzFHpSHhiYw++FE
+ BYMtgfjroX8jXiR9JzIsq9Jw+slMFVuj2cT0sn2aTdremNv1HzIfsB9p/qI3WMD7jGXt
+ WmsMC/wAjg0DO5lnweLitYLOpqNUNOmF4wQ1Z+CNVtGqtmlW06uZHraH6zG8RL/EPM++
+ wL1Bv8G8xr7GfUh/yPyF/Qt3jj7HnGHPcM4meg7TyM7mZhsW0guZTraT61J3GtQEK7vG
+ on9B/bLhtPq04YL4vfofBrVapOzEvuNVBiNlN/qMsKWIADQwrEo0sogy6DWgKVRqWmQ5
+ DbgECBto8Cb0tI4iglF8BYcQj+G8HECHQ3uNdlPH6Z/tvlOnwlGbr46oRSIVo4kNNhiI
+ SyuRl4r1V9uwao3+UK8+fV00R5hp2TLUClW6qwAali/DJmuRya3cwAgE8w93/Ckt/Slc
+ 9cfMzFdxQG6XT/Tn5/fLf5OvZQ9eev78GXo63P9GN4KEvRYnyJ9fehyWDH40Ghf5hClm
+ 5oJ3HkBj0T3StHFUQeFqvBkzxxNx8j/OpH3h0WlZOK01OdLhzItJzkrOSiMVTJw6Kc6S
+ MdbJp4nqjDz1WFMdqssaW5BWmuwocdTFZQp1BfZxJf+N7cCDNfgPaNhQiO6kU4bA0dOn
+ h22E8NEoXQJkO0VplD68m3Q4BoNxoFiKhUX+y37FiBsFG8kQCxIJxFAWVsyIJNhxYFOa
+ qE/iinKkOf6K6WNbHqafm5Y0vnVOR1qiKA+oqoGAe+64g6Lj4+U3tSI9rq5lxW//78ON
+ T3ZTRoNZpdFb/Q2Tyhff87UY4yiaMCbPV3ZPy73V1a/KmvzJxSnaNPdYn5RZ8MzDb8zJ
+ NeNjhI4UWhv5nNnOHgB97UIVkk/lUuuMGmT3Gnm16PKyavOtlCMpwSk6tX613Z201V0/
+ ddgWGDw1rBUGwMwsM0RFCTISNykJ3CQz2Xww7zHGqG8FLiShBv3MP775oLchNyCfw/GF
+ 5XUrfWsSAw89PDbxpl8zc+Q3v5fl/kJX/Wb2QHhwSkrepRX9962Ycu9dtSvvDEXxrY6c
+ YPJh3UlkZalU9ZBlp4XqjceTzE3GLuMqcbUxZH7ddNgs2CiOSXiX8SY6eItO1Ohf1Hhj
+ 1Yn6whgnKky0JjhcQqHV7nT1umuG5zNs/4cHFUE5QDQuWIFKqjA1+C2KAUimoXiMYP7z
+ nNtFFejRGBCUmNYL7pyOewvi48fctWCmCnvEmbfLP8o/XsTGb49i1ibHUS+Pz624Z8rN
+ qyZtWjxrw4qXcfGPYBEWh87hHcpalAFPd8Ba6GF206SMsxrw6swJlJ5GVq+e58QEr6g2
+ 0w6Tk3PSfsbhdBRq7YnOre6aqmEeJQsSHjwFQp14u9FVAf+L2AnIYiXCsADCHUmIoHx5
+ WZRVodZsy8Fu+fz47Sv+jzyE8Qcv3txR2rDuxpWrmZbZdZTwk7SlvQkXfIetWLq0/Pl7
+ Ds/K33/nlhdgH2aD/z4W1gNcIbDVn5UmTRR6Y7fgh8CvxCqW07OOWnaifpLrdnxbTK9T
+ pC201WQxWWuEKZYp1kmOFkuLdY7jJP6IOZfwheuCSz8ZT9RvYjfqGXBHH5DGTNPN1V2v
+ o3W6OM6b5Oatxow4tYWmkuhC69qkxDbNeogOOLyUU/dAot3jBVJc5k7CnK3gz50ayI6S
+ 42jUpm8Fuzhq3iEIaYD2B8MALt49rP+UVQUSGfRoHMZvL9Hhl/m112w6US2Z1FTYwrWP
+ m9FUlGjFHvWcOy+9LR/EztOx9IqbFi278Xzn0vb1tXftqEjNi8tpX/AI1oBxEQefp8GP
+ RhVyBXMt0EkL9kAOmiPp+xJBaLDenGzeyPm03tQQLpNc8a4MW0wO5TQ6ff6cDJMjL/7W
+ uExVYYY9N++KZY6KIkMAlhokUfho2UCgDGZHLFfc6o1GMIbZ1AiTA08FQhjuJK//8iTH
+ E9kEjmxBvnFMEbW/b+PSBwOJrrEPqsd3SdhcvUZ+6h35og4XauKylmzLT0rNbtz07tB3
+ n1zz9y1PPvz4XbVL507uo5fb02/4r6Ef3rsutOOJPIv/VxXbJ070lGP/pX/gWiXoiuFr
+ DMRcy+4Hj7ZM8rGUn2rSdemYWKsRabxWXs+LQiHrsJv0fgP4r6+464fZOOrIgPcKthzI
+ FUWiKtYbMDCJ0iRxijFugOgMPeHJgsxY+eNE/5JlN8qncHzpE3OYayfWjL/l/vB6aktT
+ 4ZQtd4b72f3hC3Nro/JjMzhWu9i3YEV4iCAmTUFTcAtqgU9hdoNq4HhRsTE4P+bBtOi/
+ jJISHFVilWVlZXXRwBFsJuIg4F3yp7BzFGDgsyJ55RCEpDF8fYGYJTB3NfpG6peoiewx
+ 6jTFxIBf08huZu8R7la9yr4pfMh/CjFdtcDZuGw6m0lhM7kiupibQtdwrXQzt4heyK1i
+ NjFb6Af4Z+g/Mru4nfxeOsS8BlaEo5abzM9iNzEbhUPsYYEYFB/zJwQ1q1IRO0Sthm/m
+ eMjCNx0i5aLpt4wMA000xXCUSmRoTuQh0s05tFj0I7VLnaOW1IwaPMped/3nRJ5calVC
+ wl9BFIE4SETJWQO9dVnpjBLzWdN8CBmhLhCI6dULJLwDC7WsFfYWBHCxWwVeE29wb8A2
+ PB+3yxvxnfJOeahHPsvuv3QGb5Pnhhfgd9fKzxBa3QE3EvuikU8yUQiLLDH0/NjOsCNL
+ UBe17QCZ3BwlbrFT/hwnEGsAw9daiNvOzIEvgQ6W16Ei0GrwaSDcLQA+gIUQwV8EMfnV
+ kK6BdDOkfZA+BOlDkD4DsA/gC1gtHTzvhq+KaIjbayFenwkRfXL3Ab84odcE0JQCeC3Z
+ wNVWeIeDr8NUOAbeMKA6FAu5RNCkCRDjT4STALD+sQf6q4dv1IbV5iGItgYGL88GjKmy
+ krqoTa4wOhHUcJnpYV6HfXyZ7aNZt5koVYhHWknK3nNnIEsvUvLJ2OTOnkyr/Fmsd+Ga
+ NCswpLkge8at6+pKXcUzmhYzc4onBmYULQpPp/aWpkyZlz8pvJLa3J4xbVpmc7ibkR5p
+ 9EpFY+rbMjNh/mTftoOsIucZtVImi83Yh4twk7pLzWGjnlN5QWDqGNHKFlpjKIfdQPzr
+ q3bwIaKJoj4H8M6AEt2HQJriRStb+Mq5+Om+D+ST1rSe+wrjYQ+binKbehcyLbuPhpOo
+ LbOyZq4t7wj3A4ozfRVEsIAsBRtgO9MBq0XOW+qkFCuNBc0mzSY9bdXaYjq1NOu1xfJq
+ r05tswlUodXhEAoNdrsjhHv2jKiIqGdkiEaGS4hXuxwtXzYsPhWt6FVcHfCDXMiMqfO3
+ 375uXW/vOipL/lL+Aq4vcSyobzuODb/3Rv+OHbt379jR3yk/ixu/+RLPkZ/6kpKAluvk
+ Gcw24E0tcMVkKdVqEsR4B+V18Q5O9JrUdp2gtWkL9Y4kzhnntPnt/9TGUjSYotHBzIoq
+ dBCDwyIenHAjUVeK1UV0vMIg9IobbgGrqqOkYeW6BKySw0c2zMrOlM9gQ1b+3I3UIwd/
+ M3XVK3WZoYeoAHhoX4OP9m65typ8mP36serUSUDmqAyjhpgWiBZM3odoXL2HitFC2Lla
+ spt4LacRXVQOJVG0mURadGq/RokbLNjjru+8zOvHog5ZK2zbMtBPx4joBEME1C7BfgRZ
+ 6mO1KS5N+/txbogf6Cty69czLRjDMQnVXbYxfIGpeGVJygSCEwVr/xF8Z9eO0lEGulma
+ ptJzyXYtrWLcanWtOEld7a501aR+QAsJSS6NyFjSGYsjI8PIMxkp6oyMGLPoSrDUJfHm
+ TL7O58jSoIS6mExUl27PzLrCEhyEEIJi2ypxQcVJViz+kvBR/VElsHBt67W4lbjDwycH
+ PsVhhm15lcOsbORYiBAmg788X5VYcM/M+SkpcmTflCkDHxzB2CR/ztmzl7VOS0uL7Gqc
+ +e0lOfI9fHTYMsUVyMvLsdvHZ1VVrt/y4ROHi1xjx/pzLdbilOkNax8/+uFOGjYCRubI
+ 36lVbBfs08l79RkxTk2G4SW8DDG4RbLwqIXDnA2WJoYbZFR+dD+sky2EdXvcbWR5jpWc
+ CpcMlpD1+QoOxiCaP1AG9gQE9pSzqjFmj4FEuQuLzDwHwQCDeSt27N6dNFuboOt9c3IO
+ veQtnCO//Vb4wATw4t5n+brcTuoRwu+Rs0wjyA47yMYpUpZocVjSLMWWWXwHzzlA43AW
+ nVZkwRZ3aEW/w6Z2xONCmz0u/mf1T/alMVAXPqbQnFjhIPKB2uAvAUIQoSBsA3YsObkD
+ R6PA4MOPWfzL7y+Ezzrl84zLMmHdzO9mZuMvmYrw9a3ZM3qkhdT0oVe2sXmmkow/tL1M
+ 3ZcAtHOAjJsN3yNz6HfSND83k1vAPcm9AN8/clhPVUPTGmoFvZLhqvEm1MtuYZ9mX2QP
+ 01/gC1hFuxjGbwQdS7kw9huhC45i4V8MOJoSBYgN4BDW9NMs7BTNXsbOdxB62688ULHr
+ XyOONHGljVE3mhyigEIdOT+BPJkzHMJBFJJcJtoHwduV8nvyaix9zlQMvcJUXDoJ9DbL
+ 1Uw90NuEYtGHUrdfnCV2ig+IO8T3RFD8mOPieYM2k3dpx/O52lq+lSdSfCW/WguRjEJt
+ r2qTeqs6pOZiYzWClnJpNH4jBBc4nnIKgh/Oj0hWK5o1apXA8SrkpDJMTn1MLG8BxtJp
+ 1RqY4x5oECGVNKb7BXuH2fJMlMN6ICRzynYJ/CgCw0dIIAjqToVPgdJTIpkg2DAEM1mw
+ KCCQ8OqYYQKQPIlQZV8mAoSeyGmcH7vjgBoU2K7JfrzbmzbFYU9n5G48/qvP4LSob/HN
+ +5OzsvCGdyhKNBoWa5jll07S3qG35TcfwDQHh/YUESLw5Tn5evmf/eA/U0C/MGAXxMKX
+ BuT7YnJanwIxynTFbs9FY1ABaPwiiDlUgk6fCF9D18A/GtTCV+NT0TTQ89NRA5oB31vP
+ QrPhK+lm8l8zwG1GAPLjyPcLlVXTqqc1pNd0LO7pWLFwfntmxfWLF5CnLv9+Dxni7h4G
+ OA5wFuAiPAD/ZINtAPDlAC4GqAFoAugCWAWwCWArwE6AEMBhgOMAZwEuwuQFABtACkAx
+ QA1AE0AXwCqATQBbAXYChAAOAxwHOAtwEQgjANgAUiLDP8ALjeQxaLiry+5R5YxR5dxR
+ 5bxR5TGjyuWjyopKuGL8ylHtVaPK1aPKNaPKU0aV60aVp44q148qN4wqzxhVnjmqPHtU
+ uX1Ued6o8vxRZWCaq+iv8PQV9PjVqPauUeWFo8rXjSovHlVW/mftiv7J6dGV63/9qHL3
+ qPLyUeUbRpVXjCrfOKrcM6oMhywI/T+wEgRRCmVuZHN0cmVhbQplbmRvYmoKMTk0IDAg
+ b2JqCjk2MzgKZW5kb2JqCjE5NSAwIG9iago8PCAvVHlwZSAvRm9udERlc2NyaXB0b3Ig
+ L0FzY2VudCA3NzAgL0NhcEhlaWdodCA3MjAgL0Rlc2NlbnQgLTIzMCAvRmxhZ3MgMzIK
+ L0ZvbnRCQm94IFstMTAxOCAtNDgxIDE0MzYgMTE1OV0gL0ZvbnROYW1lIC9ERU9HT1Ir
+ SGVsdmV0aWNhLUJvbGQgL0l0YWxpY0FuZ2xlCjAgL1N0ZW1WIDAgL01heFdpZHRoIDE1
+ MDAgL1hIZWlnaHQgNjQ0IC9Gb250RmlsZTIgMTkzIDAgUiA+PgplbmRvYmoKMTk2IDAg
+ b2JqClsgMjc4IDMzMyAwIDAgMCAwIDAgMCAwIDAgMCAwIDI3OCAwIDAgMCAwIDU1NiA1
+ NTYgNTU2IDAgMCAwIDAgMCAwIDAgMCAwIDAKMCAwIDAgNzIyIDAgNzIyIDcyMiA2Njcg
+ MCA3NzggNzIyIDAgMCAwIDYxMSA4MzMgNzIyIDAgNjY3IDAgNzIyIDY2NyA2MTEgMAow
+ IDk0NCAwIDAgMCAwIDAgMCAwIDAgMCA1NTYgNjExIDU1NiA2MTEgNTU2IDAgNjExIDYx
+ MSAyNzggMCA1NTYgMjc4IDg4OSA2MTEKNjExIDYxMSAwIDM4OSA1NTYgMzMzIDYxMSA1
+ NTYgMCAwIDU1NiBdCmVuZG9iagoxOCAwIG9iago8PCAvVHlwZSAvRm9udCAvU3VidHlw
+ ZSAvVHJ1ZVR5cGUgL0Jhc2VGb250IC9ERU9HT1IrSGVsdmV0aWNhLUJvbGQgL0ZvbnRE
+ ZXNjcmlwdG9yCjE5NSAwIFIgL1dpZHRocyAxOTYgMCBSIC9GaXJzdENoYXIgMzIgL0xh
+ c3RDaGFyIDEyMSAvRW5jb2RpbmcgL01hY1JvbWFuRW5jb2RpbmcKPj4KZW5kb2JqCjE5
+ NyAwIG9iagooVW50aXRsZWQpCmVuZG9iagoxOTggMCBvYmoKKE1hYyBPUyBYIDEwLjYg
+ UXVhcnR6IFBERkNvbnRleHQpCmVuZG9iagoxOTkgMCBvYmoKKFdpbGxpYW0gT3R0ZSkK
+ ZW5kb2JqCjIwMCAwIG9iagooT21uaUdyYWZmbGUgUHJvZmVzc2lvbmFsKQplbmRvYmoK
+ MjAxIDAgb2JqCihEOjIwMDkwOTE2MDQwMzEwWjAwJzAwJykKZW5kb2JqCjEgMCBvYmoK
+ PDwgL1RpdGxlIDE5NyAwIFIgL0F1dGhvciAxOTkgMCBSIC9Qcm9kdWNlciAxOTggMCBS
+ IC9DcmVhdG9yIDIwMCAwIFIgL0NyZWF0aW9uRGF0ZQoyMDEgMCBSIC9Nb2REYXRlIDIw
+ MSAwIFIgPj4KZW5kb2JqCnhyZWYKMCAyMDIKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAw
+ MjQyNTQ4IDAwMDAwIG4gCjAwMDAyMjUwNjEgMDAwMDAgbiAKMDAwMDAwMjI3OCAwMDAw
+ MCBuIAowMDAwMjI0ODYwIDAwMDAwIG4gCjAwMDAwMDAwMjIgMDAwMDAgbiAKMDAwMDAw
+ MjI1OCAwMDAwMCBuIAowMDAwMDAyMzgyIDAwMDAwIG4gCjAwMDAwMzYyMDYgMDAwMDAg
+ biAKMDAwMDAwNDE5OCAwMDAwMCBuIAowMDAwMDA0OTI3IDAwMDAwIG4gCjAwMDAwMDI1
+ OTIgMDAwMDAgbiAKMDAwMDAwMzE2NCAwMDAwMCBuIAowMDAwMDAzMTg0IDAwMDAwIG4g
+ CjAwMDAwMDM2NTkgMDAwMDAgbiAKMDAwMDAwMzY3OSAwMDAwMCBuIAowMDAwMDA0MTc4
+ IDAwMDAwIG4gCjAwMDAwMjkxMTggMDAwMDAgbiAKMDAwMDI0MjE2OCAwMDAwMCBuIAow
+ MDAwMjMxNzI0IDAwMDAwIG4gCjAwMDAwMzUzMDkgMDAwMDAgbiAKMDAwMDAwNDk0NyAw
+ MDAwMCBuIAowMDAwMDEyODkwIDAwMDAwIG4gCjAwMDAwMTk0MzYgMDAwMDAgbiAKMDAw
+ MDAyNTU2NiAwMDAwMCBuIAowMDAwMDEyOTExIDAwMDAwIG4gCjAwMDAwMTk0MTUgMDAw
+ MDAgbiAKMDAwMDAyNTU4NyAwMDAwMCBuIAowMDAwMDI4MjY5IDAwMDAwIG4gCjAwMDAw
+ MjgyOTAgMDAwMDAgbiAKMDAwMDAyOTA5OCAwMDAwMCBuIAowMDAwMDI5MTU1IDAwMDAw
+ IG4gCjAwMDAwMzUyODggMDAwMDAgbiAKMDAwMDAzNTM0NiAwMDAwMCBuIAowMDAwMDM2
+ MTg2IDAwMDAwIG4gCjAwMDAwNDA1OTYgMDAwMDAgbiAKMDAwMDAzNjI0MiAwMDAwMCBu
+ IAowMDAwMDQwNTc1IDAwMDAwIG4gCjAwMDAwNDA3MDMgMDAwMDAgbiAKMDAwMDA0MTMw
+ NiAwMDAwMCBuIAowMDAwMDQzMzUyIDAwMDAwIG4gCjAwMDAwNDQ5NzAgMDAwMDAgbiAK
+ MDAwMDA0NTM1MyAwMDAwMCBuIAowMDAwMDQ2NTEyIDAwMDAwIG4gCjAwMDAwNDY4MDUg
+ MDAwMDAgbiAKMDAwMDA0NjIwNCAwMDAwMCBuIAowMDAwMDQ2NDkzIDAwMDAwIG4gCjAw
+ MDAwNDA5OTQgMDAwMDAgbiAKMDAwMDA0MTI4NyAwMDAwMCBuIAowMDAwMDQ1MzczIDAw
+ MDAwIG4gCjAwMDAwNDYxODQgMDAwMDAgbiAKMDAwMDA0Mzk0NiAwMDAwMCBuIAowMDAw
+ MDQ0OTUwIDAwMDAwIG4gCjAwMDAwNDMzNzMgMDAwMDAgbiAKMDAwMDA0MzkyNiAwMDAw
+ MCBuIAowMDAwMDkyNjUxIDAwMDAwIG4gCjAwMDAwOTI2OTYgMDAwMDAgbiAKMDAwMDA4
+ OTQwNCAwMDAwMCBuIAowMDAwMDkxMDEyIDAwMDAwIG4gCjAwMDAwNjQ3MDkgMDAwMDAg
+ biAKMDAwMDA4ODA0MSAwMDAwMCBuIAowMDAwMDQ2ODI0IDAwMDAwIG4gCjAwMDAwNTA1
+ ODMgMDAwMDAgbiAKMDAwMDA1MzI5NCAwMDAwMCBuIAowMDAwMDU5NzcyIDAwMDAwIG4g
+ CjAwMDAwNTA2MDQgMDAwMDAgbiAKMDAwMDA1MzI3MyAwMDAwMCBuIAowMDAwMDU5Nzkz
+ IDAwMDAwIG4gCjAwMDAwNjQ2ODggMDAwMDAgbiAKMDAwMDA4ODA2MyAwMDAwMCBuIAow
+ MDAwMDg5MzgzIDAwMDAwIG4gCjAwMDAwOTEwMzMgMDAwMDAgbiAKMDAwMDA5MjYzMCAw
+ MDAwMCBuIAowMDAwMDk3MTk2IDAwMDAwIG4gCjAwMDAwOTI3NDQgMDAwMDAgbiAKMDAw
+ MDA5NzE3NSAwMDAwMCBuIAowMDAwMDk3MzAzIDAwMDAwIG4gCjAwMDAwOTg4OTIgMDAw
+ MDAgbiAKMDAwMDA5OTM0NyAwMDAwMCBuIAowMDAwMDk3ODYyIDAwMDAwIG4gCjAwMDAw
+ OTgzOTQgMDAwMDAgbiAKMDAwMDA5NzUzMSAwMDAwMCBuIAowMDAwMDk3ODQzIDAwMDAw
+ IG4gCjAwMDAwOTkzNjcgMDAwMDAgbiAKMDAwMDA5OTY3NSAwMDAwMCBuIAowMDAwMDk4
+ NDE0IDAwMDAwIG4gCjAwMDAwOTg4NzIgMDAwMDAgbiAKMDAwMDEwNDc5NSAwMDAwMCBu
+ IAowMDAwMTA3Mjk2IDAwMDAwIG4gCjAwMDAxMDE2ODYgMDAwMDAgbiAKMDAwMDEwNDc3
+ NCAwMDAwMCBuIAowMDAwMTA3MzE3IDAwMDAwIG4gCjAwMDAxMDk4NTUgMDAwMDAgbiAK
+ MDAwMDEwOTg3NiAwMDAwMCBuIAowMDAwMTEyNDEwIDAwMDAwIG4gCjAwMDAwOTk2OTQg
+ MDAwMDAgbiAKMDAwMDEwMTY2NSAwMDAwMCBuIAowMDAwMTIwNTU2IDAwMDAwIG4gCjAw
+ MDAxMTI0MzEgMDAwMDAgbiAKMDAwMDEyMDUzNSAwMDAwMCBuIAowMDAwMTIwNjY0IDAw
+ MDAwIG4gCjAwMDAxMjE5NjMgMDAwMDAgbiAKMDAwMDEyMzY4NSAwMDAwMCBuIAowMDAw
+ MTIwOTkwIDAwMDAwIG4gCjAwMDAxMjE5NDIgMDAwMDAgbiAKMDAwMDEyNDQxMyAwMDAw
+ MCBuIAowMDAwMTI1MDMxIDAwMDAwIG4gCjAwMDAxMjUwNTIgMDAwMDAgbiAKMDAwMDEy
+ NTk3NSAwMDAwMCBuIAowMDAwMTI1OTk2IDAwMDAwIG4gCjAwMDAxMjY2NzQgMDAwMDAg
+ biAKMDAwMDEyMzcwNyAwMDAwMCBuIAowMDAwMTI0MzkyIDAwMDAwIG4gCjAwMDAxNzgz
+ NDIgMDAwMDAgbiAKMDAwMDE0NzAyNyAwMDAwMCBuIAowMDAwMTUyNjE2IDAwMDAwIG4g
+ CjAwMDAxMjY2OTUgMDAwMDAgbiAKMDAwMDE0NzAwNCAwMDAwMCBuIAowMDAwMTcxODU3
+ IDAwMDAwIG4gCjAwMDAxNzgzMjAgMDAwMDAgbiAKMDAwMDE1MjYzOCAwMDAwMCBuIAow
+ MDAwMTU1NzM5IDAwMDAwIG4gCjAwMDAxNTkwMDMgMDAwMDAgbiAKMDAwMDE3MTgzNCAw
+ MDAwMCBuIAowMDAwMTU1NzYxIDAwMDAwIG4gCjAwMDAxNTg5ODEgMDAwMDAgbiAKMDAw
+ MDE4MDQ3OSAwMDAwMCBuIAowMDAwMTc4MzkxIDAwMDAwIG4gCjAwMDAxODA0NTcgMDAw
+ MDAgbiAKMDAwMDE4MDU4OSAwMDAwMCBuIAowMDAwMTgyMjEwIDAwMDAwIG4gCjAwMDAx
+ ODUyMjIgMDAwMDAgbiAKMDAwMDE4MDc4MyAwMDAwMCBuIAowMDAwMTgxNjA5IDAwMDAw
+ IG4gCjAwMDAxODE2MzAgMDAwMDAgbiAKMDAwMDE4MjE4OSAwMDAwMCBuIAowMDAwMTk2
+ MTA0IDAwMDAwIG4gCjAwMDAyMDA5MTEgMDAwMDAgbiAKMDAwMDE4NTI0NCAwMDAwMCBu
+ IAowMDAwMTg4NTYyIDAwMDAwIG4gCjAwMDAxODg1ODQgMDAwMDAgbiAKMDAwMDE5NjA4
+ MiAwMDAwMCBuIAowMDAwMjAzODgyIDAwMDAwIG4gCjAwMDAyMDA5MzMgMDAwMDAgbiAK
+ MDAwMDIwMzg2MCAwMDAwMCBuIAowMDAwMjAzOTkyIDAwMDAwIG4gCjAwMDAyMDUyNDAg
+ MDAwMDAgbiAKMDAwMDIwNTg2OSAwMDAwMCBuIAowMDAwMjA1ODkwIDAwMDAwIG4gCjAw
+ MDAyMDY4OTYgMDAwMDAgbiAKMDAwMDIwNjkxNyAwMDAwMCBuIAowMDAwMjA3NTE1IDAw
+ MDAwIG4gCjAwMDAyMDQ1NzggMDAwMDAgbiAKMDAwMDIwNDg4OSAwMDAwMCBuIAowMDAw
+ MjA0MjUzIDAwMDAwIG4gCjAwMDAyMDQ1NTggMDAwMDAgbiAKMDAwMDIwNDkwOSAwMDAw
+ MCBuIAowMDAwMjA1MjIwIDAwMDAwIG4gCjAwMDAyMTUyMzQgMDAwMDAgbiAKMDAwMDIx
+ NzE4NyAwMDAwMCBuIAowMDAwMjA5Nzg4IDAwMDAwIG4gCjAwMDAyMTIwMjkgMDAwMDAg
+ biAKMDAwMDIwNzUzNiAwMDAwMCBuIAowMDAwMjA5NzY2IDAwMDAwIG4gCjAwMDAyMTIw
+ NTEgMDAwMDAgbiAKMDAwMDIxNTIxMiAwMDAwMCBuIAowMDAwMjE5Mjg4IDAwMDAwIG4g
+ CjAwMDAyMjQ4MzggMDAwMDAgbiAKMDAwMDIxNzIwOSAwMDAwMCBuIAowMDAwMjE5MjY2
+ IDAwMDAwIG4gCjAwMDAyMjQ5ODAgMDAwMDAgbiAKMDAwMDIyNjE2MSAwMDAwMCBuIAow
+ MDAwMjI1MTExIDAwMDAwIG4gCjAwMDAyMjYxMzggMDAwMDAgbiAKMDAwMDIyNTIyMCAw
+ MDAwMCBuIAowMDAwMjI2MTE1IDAwMDAwIG4gCjAwMDAyMjYwNzYgMDAwMDAgbiAKMDAw
+ MDIyNTM0NCAwMDAwMCBuIAowMDAwMjI2MDUzIDAwMDAwIG4gCjAwMDAyMjYwMTQgMDAw
+ MDAgbiAKMDAwMDIyNTQ2OCAwMDAwMCBuIAowMDAwMjI1OTkxIDAwMDAwIG4gCjAwMDAy
+ MjU5NTIgMDAwMDAgbiAKMDAwMDIyNTU5MiAwMDAwMCBuIAowMDAwMjI1OTI5IDAwMDAw
+ IG4gCjAwMDAyMjU4OTAgMDAwMDAgbiAKMDAwMDIyNTcxNyAwMDAwMCBuIAowMDAwMjI1
+ ODY3IDAwMDAwIG4gCjAwMDAyMjU4MjggMDAwMDAgbiAKMDAwMDIyNjI3MiAwMDAwMCBu
+ IAowMDAwMjMxMzIyIDAwMDAwIG4gCjAwMDAyMzEzNDQgMDAwMDAgbiAKMDAwMDIzMTU3
+ MSAwMDAwMCBuIAowMDAwMjMxOTAxIDAwMDAwIG4gCjAwMDAyNDE2MzIgMDAwMDAgbiAK
+ MDAwMDI0MTY1NCAwMDAwMCBuIAowMDAwMjQxODg3IDAwMDAwIG4gCjAwMDAyNDIzNTAg
+ MDAwMDAgbiAKMDAwMDI0MjM3OCAwMDAwMCBuIAowMDAwMjQyNDI5IDAwMDAwIG4gCjAw
+ MDAyNDI0NjEgMDAwMDAgbiAKMDAwMDI0MjUwNSAwMDAwMCBuIAp0cmFpbGVyCjw8IC9T
+ aXplIDIwMiAvUm9vdCAxNzAgMCBSIC9JbmZvIDEgMCBSIC9JRCBbIDxiNzRhNGMwYzVm
+ NTRhNDUzZTJkYjIwZWZiNjhhYmE0OT4KPGI3NGE0YzBjNWY1NGE0NTNlMmRiMjBlZmI2
+ OGFiYTQ5PiBdID4+CnN0YXJ0eHJlZgoyNDI2NzQKJSVFT0YKMyAwIG9iago8PC9UeXBl
+ IC9QYWdlIC9Db250ZW50cyA1IDAgUiAvTWVkaWFCb3ggWzAgMCA1NzYgNzMzXSAvUGFy
+ ZW50IDQgMCBSIC9SZXNvdXJjZXMgNyAwIFIgPj4KZW5kb2JqCjM1IDAgb2JqCjw8L1R5
+ cGUgL1BhZ2UgL0NvbnRlbnRzIDM2IDAgUiAvTWVkaWFCb3ggWzAgMCA1NzYgNzMzXSAv
+ UGFyZW50IDQgMCBSIC9SZXNvdXJjZXMgMzggMCBSID4+CmVuZG9iago3MyAwIG9iago8
+ PC9UeXBlIC9QYWdlIC9Db250ZW50cyA3NCAwIFIgL01lZGlhQm94IFswIDAgNTc2IDcz
+ M10gL1BhcmVudCA0IDAgUiAvUmVzb3VyY2VzIDc2IDAgUiA+PgplbmRvYmoKOTcgMCBv
+ YmoKPDwvVHlwZSAvUGFnZSAvQ29udGVudHMgOTggMCBSIC9NZWRpYUJveCBbMCAwIDU3
+ NiA3MzNdIC9QYXJlbnQgNCAwIFIgL1Jlc291cmNlcyAxMDAgMCBSID4+CmVuZG9iagox
+ MjYgMCBvYmoKPDwvVHlwZSAvUGFnZSAvQ29udGVudHMgMTI3IDAgUiAvTWVkaWFCb3gg
+ WzAgMCA1NzYgNzMzXSAvUGFyZW50IDQgMCBSIC9SZXNvdXJjZXMgMTI5IDAgUiA+Pgpl
+ bmRvYmoKMTQyIDAgb2JqCjw8L1R5cGUgL1BhZ2UgL0NvbnRlbnRzIDE0MyAwIFIgL01l
+ ZGlhQm94IFswIDAgNTc2IDczM10gL1BhcmVudCA0IDAgUiAvUmVzb3VyY2VzIDE0NSAw
+ IFIgPj4KZW5kb2JqCjEgMCBvYmoKPDwvQXV0aG9yIChXaWxsaWFtIE90dGUpL0NyZWF0
+ aW9uRGF0ZSAoRDoyMDA5MDkxMDE4MzcwMFopL0NyZWF0b3IgKE9tbmlHcmFmZmxlIFBy
+ b2Zlc3Npb25hbCA1LjIpL01vZERhdGUgKEQ6MjAwOTA5MTUyMjE3MDBaKS9Qcm9kdWNl
+ ciAxOTggMCBSIC9UaXRsZSAoQ29ubmVjdG9ycyk+PgplbmRvYmoKeHJlZgoxIDEKMDAw
+ MDI0NzUxNiAwMDAwMCBuIAozIDEKMDAwMDI0Njg3NiAwMDAwMCBuIAozNSAxCjAwMDAy
+ NDY5NzkgMDAwMDAgbiAKNzMgMQowMDAwMjQ3MDg1IDAwMDAwIG4gCjk3IDEKMDAwMDI0
+ NzE5MSAwMDAwMCBuIAoxMjYgMQowMDAwMjQ3Mjk4IDAwMDAwIG4gCjE0MiAxCjAwMDAy
+ NDc0MDcgMDAwMDAgbiAKdHJhaWxlcgo8PC9JRCBbPGI3NGE0YzBjNWY1NGE0NTNlMmRi
+ MjBlZmI2OGFiYTQ5PiA8Yjc0YTRjMGM1ZjU0YTQ1M2UyZGIyMGVmYjY4YWJhNDk+XSAv
+ SW5mbyAxIDAgUiAvUHJldiAyNDI2NzQgL1Jvb3QgMTcwIDAgUiAvU2l6ZSAyMDI+Pgpz
+ dGFydHhyZWYKMjQ3Njk1CiUlRU9GCg==
+ </data>
+ <key>QuickLookThumbnail</key>
+ <data>
+ TU0AKgAAB9CAP+BP8AQWDQeEQmFQuGQ2HQ+IRGJROJwOCRSMQdzxsAN6PRmQSEAAqSAA
+ WScAAWVSKHRaWRReTEAB6aAABTeXzmFvmeAB+z8AC6hTqFS6iQ9i0kABemUenQt7VGg0
+ OnwWjVWFUli0um1isPewAAW2OvVevQetVwLw58gBlq1aAAEDMYgADvx+gB/gkIQVzOcA
+ AMHAu7AUCAAHB4PgAH4eKWB72KyVizWeC2mmWuGvwANVcLcAOJ7vAAPcKB6UvUBSl9wU
+ BPTSBQYDKgikNgDHY+w2MW2WB5aEZiu8CiZDJb3Kb/iZelZnl8Xd5Oq5XLWkK9ebTjny
+ F2d0ADjwb6Bdu0uvzAADemQz+8vj3AAF/GcyQFSaUBT8eKL9udPz/I6j5sQEAAcwKADr
+ gq/iXupBSJn3B8AG8AD8AoABywuuQEAQAAJQ7Cb8waikGRChh9RMABvm+bcDgABMOBOE
+ TOmEYQABOHQdQiAAJx3HUeRIlrlR+hcTH1FEUgACxzmwAAInkd6Cn0CLOnbCQVgaIgAH
+ 2KoURzBEOQ9ISERHEKeLbFJvgADE1AACE2oKVhWIKJAqM6WRHgAFYbDKgoSAZLMII9CQ
+ LUHJgIylMMxue9x8AAcFHAADNIsYB4HoNJ4AGGdqCh6EjOlEU08C8LUSxPQNIUlSlKxD
+ RKzuMcNXgADVZMQBwHIoatcTwFYVohMsjTRWQNVpWzt1Yp0iAAbtlAADlmgABtoIpM4A
+ FfaoADlbCKV9aYN27Z9ouBYyXpiXlfgALN0AABl1pCjbAEfeAAEVeaQ18aV7gA7p2AAJ
+ N+v0hbfnngQAHOdrAHSfB1yyfMig+CDFgMlZVlQVcCQNG8cIOqJ7AA/zOJ4zhvHHTR8H
+ yvKDnuelNBiFwS46fp/AAAOZvgBUN2gBrstWg5gZ6ABR6AAA3DQMy5H5Ir/Lyf4Fz8Co
+ Mtu34KqaAeqTFIIAH9rIAGKaRjYIAZ0oKBAAwmEILL0fyCHecx3RaB8XHWamwiAEYfWY
+ CzbmSZptAAdx6AKgoBxcfR8s4BwJWEm4BqsgkHyKe5600AQCPqg4An8euZHycYACKIIZ
+ 47CBymcZSUnseaUn8zgMAivuybIdh5dRncsn/mJunotoUB8IUkKasx1eCABnn+ajAgCw
+ BqGvjh/HuvIPBVFx0Hts4XBRKWPMCbKCgcfuzm+dVbAgB2yGoZhygAEQYBCwIBRcfp3n
+ AAB4gODkOARRh7UYkYFr6BIBzckFHAN0aQAAbgrAOAAdA2hroEAczEZY0RyGMAcZwd4/
+ QDHZgSBSDJjAPsuA1AkAA6R2ttHMBM24MQbA3L01cd8LwAC1GeaACYIh4gAF6K4brfR+
+ IuBsDuBI1h2qdCmE0xbKWOD2Ga6gIwNQkAAFWLJ0rkzWjXF+8YBQG4EjzZO4s0g1B6Ix
+ AsO11AJATMcGqPMIAAAyhUOQQYaw0BewGBesIDoEz6jtGaMQ9A+GyD3HLAVJZnBdi9gm
+ C0ERfQPA/CeAAJwIEXDYHGOYAA9gMAdAADIHYPYWnjIMOmUAABsj/h2ml2hGDfjeF03w
+ KANwoAAF8McwAEQLgmZ0cQeg8zSABHsNVGoG1bAbHg2EBIBoAkhHmPVjgzB4mRCCFAKc
+ nT9mlLCLIZZcQEgqZyAd/4AB8v6TYBVKTWWYjrHEOouw93AA0AmbQCThwACsFo6UBgEg
+ Tnom4zJmh7mOHxVsAUA0CWZtknIAAeo9IbuEHoXYAheQKAOSKDMFz7B2DmfQOkZMfAQg
+ UL6AIAJqx9D8NaBNShCB4j0oWO8e5bR8zwA+DUHKGUNojUXAodzYR6j7Y4AqfI3B3Q7A
+ IAEw4KgKpcHEN8cRx6ZMdP+OodbbR4DyUY1kgj/2yDiHJOgeY9nGj8ZiBAB6fgIANcWB
+ 8DiFQD1pXUuygZCHgzoHCNp7YFgKATAAPQqQ8xyOcAaAwwjS2cgXBEp1Wqtq0wiIMuIl
+ g8rGAAHNY8AAH7JItASi4l6uJfK7V4SBB5rVTHOTaX05MnjlsCdQOS1AAAQWrspZYjNm
+ FdWbIlZ1HKg2zqGUOZaxRT6UULHHb+yNkz6EKM4AAdTqEkJSGqjNPAPm7EPeyqZCiXwJ
+ H8t2V4et2TQjiqSTQ1B8TCAAGcL4go5KkgASilNKqVyChajeQW6JH0d12vmiS65wGNgA
+ VeOEAAHb/VrT9PFOIAE5p1TunlPYAE+k+KAqa0KBzsKIaumFlBYb9gAW6fUBo0EigAU4
+ p5UAK1RYMLytOwqSFCYUsThPFRCKaqOfksFYZnVcgpxsjlnBasWkJvukKmtsBm5BAAMj
+ IgAAgZHAAEPJWGFvY7YBizJxDBp5TAAI3K1TDOWSMWIXLmUUgWkOJkQZC+TvEqcBl6pY
+ Mc1YztHNM4BabbT6bJmgg9pgAZqLrm08hzTh50IQcY3i/znnCM0Qgzg7RwvoTSYsCdiN
+ DTeLaXaABTtAHSKfj0kWhCFKaFCGgPZKQog8YIO0DAAATV9SyNorYBgcAvAAwOu43B5A
+ ABQDNXgPQcz3InpW95TtMEh00Qkzl2S8wJUYPEfmcx8EEARQ0goD7wj9M4PihaPbwkZ1
+ 5oI5ewc/Z/Ojr0o+vyQbc26Qa7LmQX7p20cQXu7bgmL3K9m/IMt6brOAtMbO+SRklzRc
+ PQNh97bl4ETogIAADwEAAAMAAAABACcAAAEBAAMAAAABAC8AAAECAAMAAAAEAAAIigED
+ AAMAAAABAAUAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAESAAMAAAABAAEAAAEVAAMA
+ AAABAAQAAAEWAAMAAAABAC8AAAEXAAQAAAABAAAHyAEcAAMAAAABAAEAAAE9AAMAAAAB
+ AAIAAAFSAAMAAAABAAEAAAFTAAMAAAAEAAAIkodzAAcAACmYAAAImgAAAAAACAAIAAgA
+ CAABAAEAAQABAAApmGFwcGwCAAAAbW50clJHQiBYWVogB9kACAAcABUAGQAfYWNzcEFQ
+ UEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1hcHBsAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARclhZWgAAAVAAAAAU
+ Z1hZWgAAAWQAAAAUYlhZWgAAAXgAAAAUd3RwdAAAAYwAAAAUY2hhZAAAAaAAAAAsclRS
+ QwAAAcwAAAgMZ1RSQwAACdgAAAgMYlRSQwAAEeQAAAgMYWFyZwAAGfAAAAAgYWFnZwAA
+ GhAAAAAgYWFiZwAAGjAAAAAgdmNndAAAGlAAAAYSbmRpbgAAIGQAAAY+ZGVzYwAAJqQA
+ AABkZHNjbQAAJwgAAAJCbW1vZAAAKUwAAAAoY3BydAAAKXQAAAAkWFlaIAAAAAAAAF7h
+ AAA1SQAABORYWVogAAAAAAAAb4MAALGJAAAem1hZWiAAAAAAAAAocQAAGS4AAK+uWFla
+ IAAAAAAAAPNSAAEAAAABFs9zZjMyAAAAAAABDEIAAAXe///zJgAAB5IAAP2R///7ov//
+ /aMAAAPcAADAbGN1cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAA
+ RQBKAE8AVABZAF4AYwBoAG0AcgB3AHwAgQCGAIsAkACVAJoAnwCkAKkArgCyALcAvADB
+ AMYAywDQANUA2gDgAOUA6gDwAPUA+wEBAQcBDAESARgBHgElASsBMQE4AT4BRQFLAVIB
+ WQFgAWYBbQF1AXwBgwGKAZIBmQGhAagBsAG4AcAByAHQAdgB4AHpAfEB+gICAgsCFAIc
+ AiUCLgI3AkACSgJTAlwCZgJwAnkCgwKNApcCoQKrArUCvwLKAtQC3wLqAvQC/wMKAxUD
+ IAMrAzcDQgNNA1kDZQNwA3wDiAOUA6ADrAO5A8UD0gPeA+sD+AQEBBEEHgQsBDkERgRU
+ BGEEbwR8BIoEmASmBLQEwgTRBN8E7gT8BQsFGgUoBTcFRwVWBWUFdAWEBZMFowWzBcMF
+ 0wXjBfMGAwYUBiQGNQZFBlYGZwZ4BokGmgarBr0GzgbgBvIHAwcVBycHOQdMB14HcAeD
+ B5YHqAe7B84H4Qf0CAgIGwgvCEIIVghqCH4IkgimCLoIzgjjCPcJDAkhCTYJSwlgCXUJ
+ igmgCbUJywngCfYKDAoiCjkKTwplCnwKkgqpCsAK1wruCwULHQs0C0sLYwt7C5MLqwvD
+ C9sL8wwMDCQMPQxWDG4MhwyhDLoM0wztDQYNIA06DVQNbg2IDaINvA3XDfEODA4nDkIO
+ XQ54DpMOrw7KDuYPAg8eDzoPVg9yD44Pqw/ID+QQARAeEDsQWBB2EJMQsRDOEOwRChEo
+ EUYRZBGDEaERwBHfEf4SHRI8ElsSehKaErkS2RL5ExkTORNZE3oTmhO7E9sT/BQdFD4U
+ XxSBFKIUxBTlFQcVKRVLFW0VkBWyFdUV9xYaFj0WYBaDFqcWyhbuFxIXNRdZF30XohfG
+ F+oYDxg0GFkYfRijGMgY7RkTGTgZXhmEGaoZ0Bn2Gh0aQxpqGpAatxreGwYbLRtUG3wb
+ oxvLG/McGxxDHGwclBy9HOYdDh03HWAdih2zHd0eBh4wHloehB6uHtgfAx8tH1gfgx+u
+ H9kgBCAwIFsghyCzIN4hCiE3IWMhjyG8IekiFSJCInAinSLKIvgjJSNTI4EjryPdJAwk
+ OiRpJJckxiT1JSQlVCWDJbMl4iYSJkImciajJtMnAyc0J2UnlifHJ/goKihbKI0ovijw
+ KSIpVSmHKbkp7CofKlIqhSq4KusrHitSK4YruivuLCIsViyKLL8s9C0pLV4tky3ILf0u
+ My5pLp4u1C8LL0Evdy+uL+QwGzBSMIkwwTD4MTAxZzGfMdcyDzJIMoAyuDLxMyozYzOc
+ M9U0DzRINII0vDT2NTA1ajWlNd82GjZVNpA2yzcGN0I3fje5N/U4MThtOKo45jkjOWA5
+ nTnaOhc6VDqSOs87DTtLO4k7xzwGPEQ8gzzCPQE9QD1/Pb89/j4+Pn4+vj7+Pz8/fz/A
+ QABAQUCCQMRBBUFHQYhBykIMQk5CkULTQxZDWEObQ95EIURlRKhE7EUwRXRFuEX8RkBG
+ hUbKRw5HU0eZR95II0hpSK9I9Uk7SYFJx0oOSlVKm0riSypLcUu4TABMSEyQTNhNIE1o
+ TbFN+k5CToxO1U8eT2dPsU/7UEVQj1DZUSRRblG5UgRST1KaUuVTMVN8U8hUFFRgVK1U
+ +VVGVZJV31YsVnpWx1cUV2JXsFf+WExYmljpWThZhlnVWiRadFrDWxNbY1uyXANcU1yj
+ XPRdRF2VXeZeN16JXtpfLF9+X9BgImB0YMdhGWFsYb9iEmJlYrljDGNgY7RkCGRcZLFl
+ BWVaZa9mBGZZZq9nBGdaZ7BoBmhcaLJpCWlfabZqDWpkarxrE2tra8NsG2xzbMttI218
+ bdVuLm6HbuBvOm+Tb+1wR3ChcPtxVnGwcgtyZnLBcxxzeHPTdC90i3TndUN1oHX8dll2
+ tncTd3B3zngreIl453lFeaN6Anpger97Hnt9e9x8PHybfPt9W327fht+fH7cfz1/nn//
+ gGCAwoEjgYWB54JJgquDDoNwg9OENoSZhPyFYIXDhieGi4bvh1SHuIgdiIGI5olMibGK
+ Fop8iuKLSIuujBSMe4zijUiNr44Xjn6O5Y9Nj7WQHZCFkO6RVpG/kiiSkZL6k2STzZQ3
+ lKGVC5V1leCWSpa1lyCXi5f3mGKYzpk6maaaEpp+muubV5vEnDGcn50MnXmd555VnsOf
+ MZ+goA+gfaDsoVuhy6I6oqqjGqOKo/qkaqTbpUylvKYupp+nEKeCp/SoZajYqUqpvKov
+ qqKrFauIq/usb6zjrVaty64/rrOvKK+dsBGwh7D8sXGx57JdstOzSbO/tDa0rbUktZu2
+ EraJtwG3ebfxuGm44blaudK6S7rEuz67t7wwvKq9JL2evhm+k78Ov4nABMB/wPrBdsHx
+ wm3C6cNmw+LEX8TcxVnF1sZTxtHHTsfMyErIyclHycbKRcrEy0PLwsxCzMHNQc3BzkLO
+ ws9Dz8PQRNDG0UfRyNJK0szTTtPQ1FPU1tVY1dvWXtbi12XX6dht2PHZddn62n/bA9uI
+ 3A7ck90Z3Z7eJN6q3zHft+A+4MXhTOHT4lri4uNq4/LkeuUC5YvmE+ac5yXnr+g46MLp
+ TOnW6mDq6ut16//siu0W7aHuLO6470Tv0PBc8OnxdfIC8o/zHPOq9Df0xfVT9eH2b/b+
+ 94z4G/iq+Tn5yfpZ+uj7ePwI/Jn9Kf26/kv+3P9uY3VydgAAAAAAAAQAAAAABQAKAA8A
+ FAAZAB4AIwAoAC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQ
+ AJUAmgCfAKQAqQCuALIAtwC8AMEAxgDLANAA1QDaAOAA5QDqAPAA9QD7AQEBBwEMARIB
+ GAEeASUBKwExATgBPgFFAUsBUgFZAWABZgFtAXUBfAGDAYoBkgGZAaEBqAGwAbgBwAHI
+ AdAB2AHgAekB8QH6AgICCwIUAhwCJQIuAjcCQAJKAlMCXAJmAnACeQKDAo0ClwKhAqsC
+ tQK/AsoC1ALfAuoC9AL/AwoDFQMgAysDNwNCA00DWQNlA3ADfAOIA5QDoAOsA7kDxQPS
+ A94D6wP4BAQEEQQeBCwEOQRGBFQEYQRvBHwEigSYBKYEtATCBNEE3wTuBPwFCwUaBSgF
+ NwVHBVYFZQV0BYQFkwWjBbMFwwXTBeMF8wYDBhQGJAY1BkUGVgZnBngGiQaaBqsGvQbO
+ BuAG8gcDBxUHJwc5B0wHXgdwB4MHlgeoB7sHzgfhB/QICAgbCC8IQghWCGoIfgiSCKYI
+ ugjOCOMI9wkMCSEJNglLCWAJdQmKCaAJtQnLCeAJ9goMCiIKOQpPCmUKfAqSCqkKwArX
+ Cu4LBQsdCzQLSwtjC3sLkwurC8ML2wvzDAwMJAw9DFYMbgyHDKEMugzTDO0NBg0gDToN
+ VA1uDYgNog28DdcN8Q4MDicOQg5dDngOkw6vDsoO5g8CDx4POg9WD3IPjg+rD8gP5BAB
+ EB4QOxBYEHYQkxCxEM4Q7BEKESgRRhFkEYMRoRHAEd8R/hIdEjwSWxJ6EpoSuRLZEvkT
+ GRM5E1kTehOaE7sT2xP8FB0UPhRfFIEUohTEFOUVBxUpFUsVbRWQFbIV1RX3FhoWPRZg
+ FoMWpxbKFu4XEhc1F1kXfReiF8YX6hgPGDQYWRh9GKMYyBjtGRMZOBleGYQZqhnQGfYa
+ HRpDGmoakBq3Gt4bBhstG1QbfBujG8sb8xwbHEMcbByUHL0c5h0OHTcdYB2KHbMd3R4G
+ HjAeWh6EHq4e2B8DHy0fWB+DH64f2SAEIDAgWyCHILMg3iEKITchYyGPIbwh6SIVIkIi
+ cCKdIsoi+CMlI1MjgSOvI90kDCQ6JGkklyTGJPUlJCVUJYMlsyXiJhImQiZyJqMm0ycD
+ JzQnZSeWJ8cn+CgqKFsojSi+KPApIilVKYcpuSnsKh8qUiqFKrgq6yseK1Irhiu6K+4s
+ IixWLIosvyz0LSktXi2TLcgt/S4zLmkuni7ULwsvQS93L64v5DAbMFIwiTDBMPgxMDFn
+ MZ8x1zIPMkgygDK4MvEzKjNjM5wz1TQPNEg0gjS8NPY1MDVqNaU13zYaNlU2kDbLNwY3
+ Qjd+N7k39TgxOG04qjjmOSM5YDmdOdo6FzpUOpI6zzsNO0s7iTvHPAY8RDyDPMI9AT1A
+ PX89vz3+Pj4+fj6+Pv4/Pz9/P8BAAEBBQIJAxEEFQUdBiEHKQgxCTkKRQtNDFkNYQ5tD
+ 3kQhRGVEqETsRTBFdEW4RfxGQEaFRspHDkdTR5lH3kgjSGlIr0j1STtJgUnHSg5KVUqb
+ SuJLKktxS7hMAExITJBM2E0gTWhNsU36TkJOjE7VTx5PZ0+xT/tQRVCPUNlRJFFuUblS
+ BFJPUppS5VMxU3xTyFQUVGBUrVT5VUZVklXfVixWelbHVxRXYlewV/5YTFiaWOlZOFmG
+ WdVaJFp0WsNbE1tjW7JcA1xTXKNc9F1EXZVd5l43Xole2l8sX35f0GAiYHRgx2EZYWxh
+ v2ISYmViuWMMY2BjtGQIZFxksWUFZVplr2YEZllmr2cEZ1pnsGgGaFxosmkJaV9ptmoN
+ amRqvGsTa2trw2wbbHNsy20jbXxt1W4ubodu4G86b5Nv7XBHcKFw+3FWcbByC3JmcsFz
+ HHN4c9N0L3SLdOd1Q3Wgdfx2WXa2dxN3cHfOeCt4iXjneUV5o3oCemB6v3see3173Hw8
+ fJt8+31bfbt+G358ftx/PX+ef/+AYIDCgSOBhYHngkmCq4MOg3CD04Q2hJmE/IVghcOG
+ J4aLhu+HVIe4iB2IgYjmiUyJsYoWinyK4otIi66MFIx7jOKNSI2vjheOfo7lj02PtZAd
+ kIWQ7pFWkb+SKJKRkvqTZJPNlDeUoZULlXWV4JZKlrWXIJeLl/eYYpjOmTqZppoSmn6a
+ 65tXm8ScMZyfnQydeZ3nnlWew58xn6CgD6B9oOyhW6HLojqiqqMao4qj+qRqpNulTKW8
+ pi6mn6cQp4Kn9KhlqNipSqm8qi+qoqsVq4ir+6xvrOOtVq3Lrj+us68or52wEbCHsPyx
+ cbHnsl2y07NJs7+0NrSttSS1m7YStom3Abd5t/G4abjhuVq50rpLusS7Pru3vDC8qr0k
+ vZ6+Gb6Tvw6/icAEwH/A+sF2wfHCbcLpw2bD4sRfxNzFWcXWxlPG0cdOx8zISsjJyUfJ
+ xspFysTLQ8vCzELMwc1BzcHOQs7Cz0PPw9BE0MbRR9HI0krSzNNO09DUU9TW1VjV29Ze
+ 1uLXZdfp2G3Y8dl12fraf9sD24jcDtyT3Rndnt4k3qrfMd+34D7gxeFM4dPiWuLi42rj
+ 8uR65QLli+YT5pznJeev6DjowulM6dbqYOrq63Xr/+yK7Rbtoe4s7rjvRO/Q8Fzw6fF1
+ 8gLyj/Mc86r0N/TF9VP14fZv9v73jPgb+Kr5OfnJ+ln66Pt4/Aj8mf0p/br+S/7c/25j
+ dXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgALQAyADcAOwBAAEUASgBPAFQAWQBe
+ AGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACpAK4AsgC3ALwAwQDGAMsA0ADVANoA
+ 4ADlAOoA8AD1APsBAQEHAQwBEgEYAR4BJQErATEBOAE+AUUBSwFSAVkBYAFmAW0BdQF8
+ AYMBigGSAZkBoQGoAbABuAHAAcgB0AHYAeAB6QHxAfoCAgILAhQCHAIlAi4CNwJAAkoC
+ UwJcAmYCcAJ5AoMCjQKXAqECqwK1Ar8CygLUAt8C6gL0Av8DCgMVAyADKwM3A0IDTQNZ
+ A2UDcAN8A4gDlAOgA6wDuQPFA9ID3gPrA/gEBAQRBB4ELAQ5BEYEVARhBG8EfASKBJgE
+ pgS0BMIE0QTfBO4E/AULBRoFKAU3BUcFVgVlBXQFhAWTBaMFswXDBdMF4wXzBgMGFAYk
+ BjUGRQZWBmcGeAaJBpoGqwa9Bs4G4AbyBwMHFQcnBzkHTAdeB3AHgweWB6gHuwfOB+EH
+ 9AgICBsILwhCCFYIagh+CJIIpgi6CM4I4wj3CQwJIQk2CUsJYAl1CYoJoAm1CcsJ4An2
+ CgwKIgo5Ck8KZQp8CpIKqQrACtcK7gsFCx0LNAtLC2MLewuTC6sLwwvbC/MMDAwkDD0M
+ VgxuDIcMoQy6DNMM7Q0GDSANOg1UDW4NiA2iDbwN1w3xDgwOJw5CDl0OeA6TDq8Oyg7m
+ DwIPHg86D1YPcg+OD6sPyA/kEAEQHhA7EFgQdhCTELEQzhDsEQoRKBFGEWQRgxGhEcAR
+ 3xH+Eh0SPBJbEnoSmhK5EtkS+RMZEzkTWRN6E5oTuxPbE/wUHRQ+FF8UgRSiFMQU5RUH
+ FSkVSxVtFZAVshXVFfcWGhY9FmAWgxanFsoW7hcSFzUXWRd9F6IXxhfqGA8YNBhZGH0Y
+ oxjIGO0ZExk4GV4ZhBmqGdAZ9hodGkMaahqQGrca3hsGGy0bVBt8G6MbyxvzHBscQxxs
+ HJQcvRzmHQ4dNx1gHYodsx3dHgYeMB5aHoQerh7YHwMfLR9YH4Mfrh/ZIAQgMCBbIIcg
+ syDeIQohNyFjIY8hvCHpIhUiQiJwIp0iyiL4IyUjUyOBI68j3SQMJDokaSSXJMYk9SUk
+ JVQlgyWzJeImEiZCJnImoybTJwMnNCdlJ5Ynxyf4KCooWyiNKL4o8CkiKVUphym5Kewq
+ HypSKoUquCrrKx4rUiuGK7or7iwiLFYsiiy/LPQtKS1eLZMtyC39LjMuaS6eLtQvCy9B
+ L3cvri/kMBswUjCJMMEw+DEwMWcxnzHXMg8ySDKAMrgy8TMqM2MznDPVNA80SDSCNLw0
+ 9jUwNWo1pTXfNho2VTaQNss3BjdCN343uTf1ODE4bTiqOOY5IzlgOZ052joXOlQ6kjrP
+ Ow07SzuJO8c8BjxEPIM8wj0BPUA9fz2/Pf4+Pj5+Pr4+/j8/P38/wEAAQEFAgkDEQQVB
+ R0GIQcpCDEJOQpFC00MWQ1hDm0PeRCFEZUSoROxFMEV0RbhF/EZARoVGykcOR1NHmUfe
+ SCNIaUivSPVJO0mBScdKDkpVSptK4ksqS3FLuEwATEhMkEzYTSBNaE2xTfpOQk6MTtVP
+ Hk9nT7FP+1BFUI9Q2VEkUW5RuVIEUk9SmlLlUzFTfFPIVBRUYFStVPlVRlWSVd9WLFZ6
+ VsdXFFdiV7BX/lhMWJpY6Vk4WYZZ1VokWnRaw1sTW2NbslwDXFNco1z0XURdlV3mXjde
+ iV7aXyxffl/QYCJgdGDHYRlhbGG/YhJiZWK5YwxjYGO0ZAhkXGSxZQVlWmWvZgRmWWav
+ ZwRnWmewaAZoXGiyaQlpX2m2ag1qZGq8axNra2vDbBtsc2zLbSNtfG3Vbi5uh27gbzpv
+ k2/tcEdwoXD7cVZxsHILcmZywXMcc3hz03QvdIt053VDdaB1/HZZdrZ3E3dwd854K3iJ
+ eOd5RXmjegJ6YHq/ex57fXvcfDx8m3z7fVt9u34bfnx+3H89f55//4BggMKBI4GFgeeC
+ SYKrgw6DcIPThDaEmYT8hWCFw4YnhouG74dUh7iIHYiBiOaJTImxihaKfIrii0iLrowU
+ jHuM4o1Ija+OF45+juWPTY+1kB2QhZDukVaRv5IokpGS+pNkk82UN5ShlQuVdZXglkqW
+ tZcgl4uX95himM6ZOpmmmhKafprrm1ebxJwxnJ+dDJ15neeeVZ7DnzGfoKAPoH2g7KFb
+ ocuiOqKqoxqjiqP6pGqk26VMpbymLqafpxCngqf0qGWo2KlKqbyqL6qiqxWriKv7rG+s
+ 461WrcuuP66zryivnbARsIew/LFxseeyXbLTs0mzv7Q2tK21JLWbthK2ibcBt3m38bhp
+ uOG5WrnSuku6xLs+u7e8MLyqvSS9nr4ZvpO/Dr+JwATAf8D6wXbB8cJtwunDZsPixF/E
+ 3MVZxdbGU8bRx07HzMhKyMnJR8nGykXKxMtDy8LMQszBzUHNwc5CzsLPQ8/D0ETQxtFH
+ 0cjSStLM007T0NRT1NbVWNXb1l7W4tdl1+nYbdjx2XXZ+tp/2wPbiNwO3JPdGd2e3iTe
+ qt8x37fgPuDF4Uzh0+Ja4uLjauPy5HrlAuWL5hPmnOcl56/oOOjC6Uzp1upg6urrdev/
+ 7IrtFu2h7izuuO9E79DwXPDp8XXyAvKP8xzzqvQ39MX1U/Xh9m/2/veM+Bv4qvk5+cn6
+ Wfro+3j8CPyZ/Sn9uv5L/tz/bnBhcmEAAAAAAAMAAAACZmYAAPKnAAANWQAAE9AAAAsD
+ cGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACwNwYXJhAAAAAAADAAAAAmZmAADy
+ pwAADVkAABPQAAALA3ZjZ3QAAAAAAAAAAAADAQAAAgAAAAIACAAUACUAPABaAH4AqQDb
+ ARwBcwHVAkcCyQNiBBAEywWfBosHlQi0CegLLwyADeQPWhDLEjYTpxUPFm0Xuhj5Gi8b
+ TxxfHV4eUx9IIDwhLiIgIxUkCyUHJgAm+SfyKO4p5irlK+Es2C3TLtAvyzDFMb8ytzOw
+ NKs1pjagN5k4lDmNOn87ZTw/PRk98j7JP6NAgUFgQjtDHEP8RN5Fv0ahR4ZIbUlUSjtL
+ IkwITPJN3E7FT65QmFGEUnJTZFRYVVJWS1dEWDxZNFotWydcIF0aXhdfFWASYRBiEmMU
+ ZBdlG2YiZypoNmlAakxrWWxZbUpuNm8jcBJw/3Hsctlzx3S0dZ92jnd5eGR5UXo7eyZ8
+ Dnz4feF+yn+0gJyBhIJ4g5WEv4XnhxKIP4ltip2Ly4z8jjKPZZCfkdaTDZRGlYKWv5f7
+ mTmaeZu6nPeeMp9XoGyhhKKeo7OkzKXkpvuoFKkvqkyraayEraKuwa/jsQOyJ7NKtGy1
+ j7azt9W47bn/uxK8I703vkq/W8BrwXzCisOUxKLFq8awx7XIt8m3yrbLtMyyza3Oo8+W
+ 0IbRc9Je00jUMdUW1fvW4NfB2KLZg9pj20TcJN0E3ejeyt+w4JXhfOJl403kMOUS5fLm
+ 1Oe36KDpkuqM65XsrO3a7x7wgfIN88b1v/f7+qL9yv//AAAAAgAJABUAJwBAAGAAhgC0
+ AOoBKQFzAcUCIwKUAxADpARKBQcF3gbRB9YI/Qo4C5ANAQ56D/oRhxMQFIUV+RdYGJkZ
+ 0xr0HAcdCh36Huof3SDMIbsirSOgJJglkiaHJ30ocilnKmArWSxNLUUuPy80MCcxHzIR
+ MwMz+DTtNeE21DfHOLo5pjqFO1c8Kzz9Pc8+oz96QFJBKEIDQt5DukSXRXRGVkc3SBpI
+ /UnfSsJLp0yPTXROWk9BUChRE1H9UuxT3VTQVcFWs1ekWJdZilp+W3FcaF1jXltfVGBT
+ YVNiUWNUZFllX2ZpZ3NofWmKaopreWxkbU9uPW8ocBZxAnHucttzxnSydZ52iHd3eF95
+ S3o0ex58B3zxfdx+xX+vgKOBtILRg+6FDoYwh1OIeImdisWL8o0fjlCPgZC1kemTIZRb
+ lZaW05gSmVOaj5vQnPyeHp9FoGyhkKK3o96lA6Yrp1WogamuqtmsB603rmqvmrDRsgez
+ OrRwtae237gRuT+6a7uXvMS98L8awELBbcKUw7jE4cYFxyjIS8luypDLsszVzfrPHdA1
+ 0T3SPtM+1DzVPNY71zfYNNkw2irbItwb3RHeBd763+rg3eHL4rzjquSX5abm1Of96STq
+ UOt77KPtz+788DDxafKj8+X1MvaF9975RPqw/CH9lv8M//8AAAABAAYADwAcAC4ARQBh
+ AIIAqADUAQYBTgGeAfUCYALVA14D+ASpBW0GRgc5CEAJVQp8C60M6g4kD1YQiBGuEsgT
+ zxTJFbcWkxdfGCQY5BmnGmkbKBvrHK8ddh4+HwMfxyCLIU8iFiLaI5wkXyUjJeQmpCdi
+ KB4o2imXKlQrDyvILIEtOi3xLpgvOS/aMHoxGjG6Mlsy/TOeNEE04jWENic2yTdsOA84
+ sTlVOfc6mTs9O988gj0lPcg+bT8UP8FAc0ErQeJCmkNSRAlEwUV7RjZG8UevSG9JLUnt
+ SrFLd0w6TQJNzE6XT2RQMVEAUc9Sm1NjVCpU71W2Vn5XRlgMWNRZnFpiWyxb9Fy9XYhe
+ Ul8fX+pgtmGFYlRjJGP0ZMVllWZhZy9n/GjJaZhqZ2s2bANs0m2jbnNvRXAWcOVxtnKI
+ c1p0LHUAddR2qHd6eFJ5MnoXewN78Xzefc9+wn+1gK2BqYKog6qErIWyhruHxojRieGK
+ 8owAjRCOIY80kEiRXJJwk4aUopXBluKYBZkvmlubiZzAnfmfM6BzobWi+aRBpYum2agn
+ qXWqzKwlrX2u1bAvsYuy5bRBtaC2/rheucC7IryEvem/S8C0whnDgsToxk/HvMkpyobL
+ 4804zovP5dFD0rDUK9W011jZHdsE3SDfeuIm5T3pA+359aD//wAAbmRpbgAAAAAAAAY2
+ AACbsgAAWOIAAFOcAACNlwAAKH8AABcKAABQDQAAVDkAAeZmAAHj1wABNcIAAwEAAAIA
+ AAAxAFUAdgCTALAAywDlAP0BFgEuAUYBXwF3AZABqAHCAdwB+AIUAjECUAJwApICtwLe
+ AwcDNANlA5sD1gQTBFIElATYBR0FZAWrBfUGQQaPBt4HMQeCB9gIMQiKCOUJQwmjCgUK
+ awrRCzkLowwRDH8M8A1lDeMObQ75D4kQHRCwEUQR3hJ2ExITrxRQFPEVkxY4Ft8XiRg2
+ GOIZkhpFGvobsBxnHR4d1R6KH0If/SC6IXoiPCL/I8UkjSVUJh0m6ie3KIMpUiojKvQr
+ xSyYLWouQC8WL+0w0zHKMsczxzTFNcs20TfbOOY5+TsIPCA9Oj5UP3VAl0HBQulEGEVG
+ RntHskjdSd5K1kvTTM9Nyk7HT8VQw1HDUsdTxFTFVclWyFfMWNFZ11reW+Rc6130Xv5g
+ CGETYh5jL2Q/ZVhmj2fRaQ5qTGuSbNVuG29mcLBx+XNEdI513HcteHx5zXscfHF9wn8T
+ gGuBxIMehHiF1YdAiLqKL4uwjSuOqZArkbOTPZTHllqX9JmKmyuc1Z6AoDOh66OppWqn
+ L6j8qtasuK6jsJiylbSRtp+4sbrGvOi/C8E1w2PFkcfJyffMLs5c0JPSx9Tz1zfZgdvT
+ 3ibgduK45OXnBej96unsrO5d7/TxbvLK9BP1TPZn93j4fPln+kf7F/ve/Jz9RP3s/tz/
+ /wAAAC4AWQB/AKEAwADdAPgBEwEsAUUBXgF1AY0BpQG+AdcB8AIKAiUCQgJgAn8CoALF
+ Au0DFgNFA3cDrgPrBCoEagSuBPMFOgWCBcoGFgZkBrQHBwdaB68ICAhiCL0JHAl+CeAK
+ RwqwCxoLhgv1DGcM2g1RDdAOXw7vD4MQGxCyEUsR6RKFEyUTxhRrFQ8VtRZdFwgXthhm
+ GRUZyRp/Gzcb8RyrHWgeIx7fH50gXyEjIekisSN6JEclEyXeJq4nfyhOKR4p8irEK5cs
+ ay0+LhQu6y/BMKMxmjKYM5k0mDWfNqQ3sDi7Oc063zv1PRA+KD9KQGpBk0K6Q+lFFEZH
+ R31IrEm8Sr9LxkzMTdFO10/eUOZR71L5U/9VB1YQVxZYIFkoWjRbPVxGXVBeW19mYHFh
+ fGKIY5tkp2XFZvdoKGlTaoVru2zubiRvX3CZcdFzC3RFdYB2v3f8eTp6eHu1fPh+NH9y
+ gLeB/INBhIWFy4cXiG2JwYsejHqN1o82kJiSApNqlNOWRJe5mSqaoZwenZyfHKCfoiWj
+ rKU0pr2oRqnbq4utUq8esO6yxLSUtnK4U7o0vB2+Dr/9wffD+MX6yArKFswwzkXQaNKM
+ 1FXWA9fA2YPbP9z+3r/gi+JL5BDlzueE6T/q9Oyh7kTv4/F/8xb0ofYp97D5M/qx/DX9
+ q///AAAAQABxAJwAwgDlAQYBJQFDAWEBfwGcAbsB2QH5AhsCPgJjAosCtgLmAxoDUwOV
+ A98ELQR9BNMFKgWDBd4GPgahBwgHcQfeCFAIxAk9CbsKPwrGC1AL4Ax1DQ4NrQ5nDyUP
+ 6xC0EYISVBMsFAgU6hXQFrsXrRijGZ4aoBulHKodpx6dH5gglyGaIqAjpySyJbomySfY
+ KOQp9ysHLBktKi4/L1QwbjGVMsIz9DUmNl03mjjWOhw7XTyoPe8/PkCKQd9DL0SERdpH
+ M0iOSfZLXkzNTjtPrVEjUqBUGFWXVxVYm1olW65dO17LYFxh72OLZR5mo2gjaZhrFWyQ
+ bghvg3D6cm1z33VNdsB4Lnmcewd8dn3hf0qAu4Itg5+FEYaCh/aJbYrkjFuNzY8+kK2S
+ H5OJlPGWWpfCmSKagpvknUOen5/7oVeisqQMpWWmvagUqXOqy6wfrXOuybAhsXqy1bQq
+ tYW247hAuZy697xWvbe/EsBywdLDNMSWxfXHXsi/yiDLh8zuzlHPvNEm0pDT9NVZ1svY
+ TNnH207c1N5k3+fhbOLp5FrlxOcn6IHpzesL7DvtYe5+74bwh/GE8mjzRfQW9OL1ofZU
+ 9wj3pfhB+Nz5Xfne+l/6z/sy+5X7+Pxb/J/83/0f/WD9oP3g/iH+WP6N/sL+9/8s/2D/
+ lf/K//8AAGRlc2MAAAAAAAAACkNvbG9yIExDRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAABtbHVjAAAAAAAAABIAAAAMbmxOTAAAABYAAADoZGFESwAAABwAAAD+cGxQTAAA
+ ABIAAAEaZW5VUwAAABIAAAEsbmJOTwAAABIAAAE+ZnJGUgAAABYAAAFQcHRCUgAAABgA
+ AAFmcHRQVAAAABYAAAF+emhDTgAAAAwAAAGUZXNFUwAAABIAAAGgamFKUAAAAA4AAAGy
+ cnVSVQAAACQAAAHAc3ZTRQAAABAAAAHkemhUVwAAAA4AAAH0ZGVERQAAABAAAAICZmlG
+ SQAAABAAAAISaXRJVAAAABQAAAIia29LUgAAAAwAAAI2AEsAbABlAHUAcgBlAG4ALQBM
+ AEMARABMAEMARAAtAGYAYQByAHYAZQBzAGsA5gByAG0ASwBvAGwAbwByACAATABDAEQA
+ QwBvAGwAbwByACAATABDAEQARgBhAHIAZwBlAC0ATABDAEQATABDAEQAIABjAG8AdQBs
+ AGUAdQByAEwAQwBEACAAQwBvAGwAbwByAGkAZABvAEwAQwBEACAAYQAgAEMAbwByAGUA
+ c19pgnIAIABMAEMARABMAEMARAAgAGMAbwBsAG8AcjCrMOkw/AAgAEwAQwBEBCYEMgQ1
+ BEIEPQQ+BDkAIAQWBBoALQQ0BDgEQQQ/BDsENQQ5AEYA5AByAGcALQBMAEMARF9pgnJt
+ smZ2mG95OlZoAEYAYQByAGIALQBMAEMARABWAOQAcgBpAC0ATABDAEQATABDAEQAIABj
+ AG8AbABvAHIAac7st+wAIABMAEMARAAAbW1vZAAAAAAAAAYQAACcggAAAADCrfCAAAAA
+ AAAAAAAAAAAAAAAAAHRleHQAAAAAQ29weXJpZ2h0IEFwcGxlLCBJbmMuLCAyMDA5AA==
+ </data>
+ <key>ReadOnly</key>
+ <string>NO</string>
+ <key>Sheets</key>
+ <array>
+ <dict>
+ <key>ActiveLayerIndex</key>
+ <integer>0</integer>
+ <key>AutoAdjust</key>
+ <true/>
+ <key>BackgroundGraphic</key>
+ <dict>
+ <key>Bounds</key>
+ <string>{{0, 0}, {576, 733}}</string>
+ <key>Class</key>
+ <string>SolidGraphic</string>
+ <key>ID</key>
+ <integer>2</integer>
+ <key>Style</key>
+ <dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>CanvasOrigin</key>
+ <string>{0, 0}</string>
+ <key>ColumnAlign</key>
+ <integer>1</integer>
+ <key>ColumnSpacing</key>
+ <real>36</real>
+ <key>DisplayScale</key>
+ <string>1 0/72 in = 1.0000 in</string>
+ <key>GraphicsList</key>
+ <array>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>ID</key>
+ <integer>20</integer>
+ <key>Points</key>
+ <array>
+ <string>{245, 123}</string>
+ <string>{245, 177}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>4</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>13</integer>
+ </dict>
+ <key>ID</key>
+ <integer>19</integer>
+ <key>Points</key>
+ <array>
+ <string>{245, 123}</string>
+ <string>{301.493, 181.107}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>4</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>12</integer>
+ </dict>
+ <key>ID</key>
+ <integer>18</integer>
+ <key>Points</key>
+ <array>
+ <string>{245, 123}</string>
+ <string>{186.476, 179.942}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>4</integer>
+ <key>Info</key>
+ <integer>1</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>ID</key>
+ <integer>16</integer>
+ <key>Points</key>
+ <array>
+ <string>{245, 267}</string>
+ <string>{245, 213}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>HeadArrow</key>
+ <string>0</string>
+ <key>TailArrow</key>
+ <string>FilledArrow</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>5</integer>
+ <key>Info</key>
+ <integer>2</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>13</integer>
+ </dict>
+ <key>ID</key>
+ <integer>15</integer>
+ <key>Points</key>
+ <array>
+ <string>{245, 267}</string>
+ <string>{299.649, 210.79}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>HeadArrow</key>
+ <string>0</string>
+ <key>TailArrow</key>
+ <string>FilledArrow</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>5</integer>
+ <key>Info</key>
+ <integer>2</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>12</integer>
+ </dict>
+ <key>ID</key>
+ <integer>14</integer>
+ <key>Points</key>
+ <array>
+ <string>{245, 267}</string>
+ <string>{185.517, 209.124}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>HeadArrow</key>
+ <string>0</string>
+ <key>TailArrow</key>
+ <string>FilledArrow</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>5</integer>
+ <key>Info</key>
+ <integer>2</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{284, 177}, {62, 36}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>13</integer>
+ <key>Shape</key>
+ <string>Cloud</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.699617</string>
+ <key>g</key>
+ <string>0.746989</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 TENA}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{144, 177}, {54, 36}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>12</integer>
+ <key>Shape</key>
+ <string>Cloud</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.745487</string>
+ <key>g</key>
+ <string>1</string>
+ <key>r</key>
+ <string>0.775886</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 DDS}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{231.5, 135.5}, {27, 29}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FitText</key>
+ <string>YES</string>
+ <key>Flow</key>
+ <string>Resize</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0.0823203</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ <key>ID</key>
+ <integer>11</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Pad</key>
+ <integer>0</integer>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;\red255\green21\blue0;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs48 \cf2 ??}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>Wrap</key>
+ <string>NO</string>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{231.5, 225.5}, {27, 29}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FitText</key>
+ <string>YES</string>
+ <key>Flow</key>
+ <string>Resize</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0.0823203</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ <key>ID</key>
+ <integer>10</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Pad</key>
+ <integer>0</integer>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;\red255\green21\blue0;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs48 \cf2 ??}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>Wrap</key>
+ <string>NO</string>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{198, 177}, {86, 36}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>9</integer>
+ <key>Shape</key>
+ <string>Cloud</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>1</string>
+ <key>g</key>
+ <string>0.775503</string>
+ <key>r</key>
+ <string>0.711787</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Sockets}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{195, 267}, {100, 54}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>5</integer>
+ <key>Magnets</key>
+ <array>
+ <string>{0, 1}</string>
+ <string>{0, -1}</string>
+ <string>{1, 0}</string>
+ <string>{-1, 0}</string>
+ </array>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.826087</string>
+ <key>g</key>
+ <string>0.826087</string>
+ <key>r</key>
+ <string>0.826087</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>5</real>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Receiver}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{195, 69}, {100, 54}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>4</integer>
+ <key>Magnets</key>
+ <array>
+ <string>{0, 1}</string>
+ <string>{0, -1}</string>
+ <string>{1, 0}</string>
+ <string>{-1, 0}</string>
+ </array>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.826087</string>
+ <key>g</key>
+ <string>0.826087</string>
+ <key>r</key>
+ <string>0.826087</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>5</real>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Sender}</string>
+ </dict>
+ </dict>
+ </array>
+ <key>GridInfo</key>
+ <dict/>
+ <key>HPages</key>
+ <integer>1</integer>
+ <key>KeepToScale</key>
+ <false/>
+ <key>Layers</key>
+ <array>
+ <dict>
+ <key>Lock</key>
+ <string>NO</string>
+ <key>Name</key>
+ <string>Layer 1</string>
+ <key>Print</key>
+ <string>YES</string>
+ <key>View</key>
+ <string>YES</string>
+ </dict>
+ </array>
+ <key>LayoutInfo</key>
+ <dict>
+ <key>Animate</key>
+ <string>NO</string>
+ <key>circoMinDist</key>
+ <real>18</real>
+ <key>circoSeparation</key>
+ <real>0.0</real>
+ <key>layoutEngine</key>
+ <string>dot</string>
+ <key>neatoSeparation</key>
+ <real>0.0</real>
+ <key>twopiSeparation</key>
+ <real>0.0</real>
+ </dict>
+ <key>Orientation</key>
+ <integer>2</integer>
+ <key>PrintOnePage</key>
+ <false/>
+ <key>RowAlign</key>
+ <integer>1</integer>
+ <key>RowSpacing</key>
+ <real>36</real>
+ <key>SheetTitle</key>
+ <string>Canvas 1</string>
+ <key>UniqueID</key>
+ <integer>1</integer>
+ <key>VPages</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>ActiveLayerIndex</key>
+ <integer>0</integer>
+ <key>AutoAdjust</key>
+ <true/>
+ <key>BackgroundGraphic</key>
+ <dict>
+ <key>Bounds</key>
+ <string>{{0, 0}, {576, 733}}</string>
+ <key>Class</key>
+ <string>SolidGraphic</string>
+ <key>ID</key>
+ <integer>2</integer>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>GradientColor</key>
+ <dict>
+ <key>w</key>
+ <string>0.666667</string>
+ </dict>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>CanvasOrigin</key>
+ <string>{0, 0}</string>
+ <key>ColumnAlign</key>
+ <integer>1</integer>
+ <key>ColumnSpacing</key>
+ <real>36</real>
+ <key>DisplayScale</key>
+ <string>1 0/72 in = 1.0000 in</string>
+ <key>GraphicsList</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{282.334, 323.356}, {41, 14}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FitText</key>
+ <string>YES</string>
+ <key>Flow</key>
+ <string>Resize</string>
+ <key>ID</key>
+ <integer>82</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Pad</key>
+ <integer>0</integer>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Node 3}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>Wrap</key>
+ <string>NO</string>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{294.667, 220}, {41, 14}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FitText</key>
+ <string>YES</string>
+ <key>Flow</key>
+ <string>Resize</string>
+ <key>ID</key>
+ <integer>81</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Pad</key>
+ <integer>0</integer>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Node 2}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>Wrap</key>
+ <string>NO</string>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{131.5, 242.822}, {41, 14}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FitText</key>
+ <string>YES</string>
+ <key>Flow</key>
+ <string>Resize</string>
+ <key>ID</key>
+ <integer>80</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Pad</key>
+ <integer>0</integer>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Node 1}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>Wrap</key>
+ <string>NO</string>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{294.667, 337.356}, {66, 44.333}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>79</integer>
+ <key>Shape</key>
+ <string>RoundRect</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>a</key>
+ <string>0.35</string>
+ <key>b</key>
+ <string>0.717934</string>
+ <key>g</key>
+ <string>1</string>
+ <key>r</key>
+ <string>0.968026</string>
+ </dict>
+ </dict>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{119, 179}, {66, 142.023}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>78</integer>
+ <key>Shape</key>
+ <string>RoundRect</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>a</key>
+ <string>0.35</string>
+ <key>b</key>
+ <string>0.717934</string>
+ <key>g</key>
+ <string>1</string>
+ <key>r</key>
+ <string>0.968026</string>
+ </dict>
+ </dict>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{282.334, 179}, {69.416, 96}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>77</integer>
+ <key>Shape</key>
+ <string>RoundRect</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>a</key>
+ <string>0.35</string>
+ <key>b</key>
+ <string>0.717934</string>
+ <key>g</key>
+ <string>1</string>
+ <key>r</key>
+ <string>0.968026</string>
+ </dict>
+ </dict>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{322.467, 305.116}, {7.58634, 7.81393}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>74</integer>
+ <key>Rotation</key>
+ <real>90</real>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{320.834, 303.38}, {6.33799, 11.2868}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>75</integer>
+ <key>Rotation</key>
+ <real>180</real>
+ <key>Shape</key>
+ <string>AndGate</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.0035882</string>
+ <key>g</key>
+ <string>0.93545</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>TextRelativeArea</key>
+ <string>{{0, 0.1}, {1, 0.8}}</string>
+ </dict>
+ </array>
+ <key>ID</key>
+ <integer>73</integer>
+ <key>Rotation</key>
+ <real>90</real>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{284.834, 297.023}, {36, 24}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>76</integer>
+ <key>Rotation</key>
+ <real>180</real>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.820652</string>
+ <key>g</key>
+ <string>0.820652</string>
+ <key>r</key>
+ <string>0.820652</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{334.8, 251.093}, {7.58634, 7.81393}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>69</integer>
+ <key>Rotation</key>
+ <real>90</real>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{333.167, 249.357}, {6.33799, 11.2868}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>70</integer>
+ <key>Rotation</key>
+ <real>180</real>
+ <key>Shape</key>
+ <string>AndGate</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.0035882</string>
+ <key>g</key>
+ <string>0.93545</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>TextRelativeArea</key>
+ <string>{{0, 0.1}, {1, 0.8}}</string>
+ </dict>
+ </array>
+ <key>ID</key>
+ <integer>68</integer>
+ <key>Rotation</key>
+ <real>90</real>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{297.167, 243}, {36, 24}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>71</integer>
+ <key>Rotation</key>
+ <real>180</real>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.820652</string>
+ <key>g</key>
+ <string>0.820652</string>
+ <key>r</key>
+ <string>0.820652</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{322.467, 197.069}, {7.58634, 7.81393}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>64</integer>
+ <key>Rotation</key>
+ <real>90</real>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{320.834, 195.333}, {6.33799, 11.2868}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>65</integer>
+ <key>Rotation</key>
+ <real>180</real>
+ <key>Shape</key>
+ <string>AndGate</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.0035882</string>
+ <key>g</key>
+ <string>0.93545</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>TextRelativeArea</key>
+ <string>{{0, 0.1}, {1, 0.8}}</string>
+ </dict>
+ </array>
+ <key>ID</key>
+ <integer>63</integer>
+ <key>Rotation</key>
+ <real>90</real>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{284.834, 188.977}, {36, 24}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>66</integer>
+ <key>Rotation</key>
+ <real>180</real>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.820652</string>
+ <key>g</key>
+ <string>0.820652</string>
+ <key>r</key>
+ <string>0.820652</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{133.615, 294.76}, {7.58633, 7.81393}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>56</integer>
+ <key>Rotation</key>
+ <real>270</real>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{136.496, 293.023}, {6.33799, 11.2868}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>57</integer>
+ <key>Shape</key>
+ <string>AndGate</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.0035882</string>
+ <key>g</key>
+ <string>0.93545</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>TextRelativeArea</key>
+ <string>{{0, 0.1}, {1, 0.8}}</string>
+ </dict>
+ </array>
+ <key>ID</key>
+ <integer>55</integer>
+ <key>Rotation</key>
+ <real>270</real>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{142.834, 286.667}, {36, 24}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>54</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.820652</string>
+ <key>g</key>
+ <string>0.820652</string>
+ <key>r</key>
+ <string>0.820652</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{133.615, 203.427}, {7.58633, 7.81393}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>52</integer>
+ <key>Rotation</key>
+ <real>270</real>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{136.496, 201.69}, {6.33799, 11.2868}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>53</integer>
+ <key>Shape</key>
+ <string>AndGate</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.0035882</string>
+ <key>g</key>
+ <string>0.93545</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>TextRelativeArea</key>
+ <string>{{0, 0.1}, {1, 0.8}}</string>
+ </dict>
+ </array>
+ <key>ID</key>
+ <integer>51</integer>
+ <key>Rotation</key>
+ <real>270</real>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{142.834, 195.333}, {36, 24}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>4</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.820652</string>
+ <key>g</key>
+ <string>0.820652</string>
+ <key>r</key>
+ <string>0.820652</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{142.834, 184}, {187.333, 142}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>9</integer>
+ <key>Shape</key>
+ <string>Cloud</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.788043</string>
+ <key>g</key>
+ <string>0.788043</string>
+ <key>r</key>
+ <string>0.788043</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Arbitrary\
+Communication\
+Medium}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ </array>
+ <key>GridInfo</key>
+ <dict/>
+ <key>HPages</key>
+ <integer>1</integer>
+ <key>KeepToScale</key>
+ <false/>
+ <key>Layers</key>
+ <array>
+ <dict>
+ <key>Lock</key>
+ <string>NO</string>
+ <key>Name</key>
+ <string>Layer 1</string>
+ <key>Print</key>
+ <string>YES</string>
+ <key>View</key>
+ <string>YES</string>
+ </dict>
+ </array>
+ <key>LayoutInfo</key>
+ <dict>
+ <key>Animate</key>
+ <string>NO</string>
+ <key>circoMinDist</key>
+ <real>18</real>
+ <key>circoSeparation</key>
+ <real>0.0</real>
+ <key>layoutEngine</key>
+ <string>dot</string>
+ <key>neatoSeparation</key>
+ <real>0.0</real>
+ <key>twopiSeparation</key>
+ <real>0.0</real>
+ </dict>
+ <key>Orientation</key>
+ <integer>2</integer>
+ <key>PrintOnePage</key>
+ <false/>
+ <key>RowAlign</key>
+ <integer>1</integer>
+ <key>RowSpacing</key>
+ <real>36</real>
+ <key>SheetTitle</key>
+ <string>Canvas 3</string>
+ <key>UniqueID</key>
+ <integer>3</integer>
+ <key>VPages</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>ActiveLayerIndex</key>
+ <integer>0</integer>
+ <key>AutoAdjust</key>
+ <true/>
+ <key>BackgroundGraphic</key>
+ <dict>
+ <key>Bounds</key>
+ <string>{{0, 0}, {576, 733}}</string>
+ <key>Class</key>
+ <string>SolidGraphic</string>
+ <key>ID</key>
+ <integer>2</integer>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>GradientColor</key>
+ <dict>
+ <key>w</key>
+ <string>0.666667</string>
+ </dict>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>CanvasOrigin</key>
+ <string>{0, 0}</string>
+ <key>ColumnAlign</key>
+ <integer>1</integer>
+ <key>ColumnSpacing</key>
+ <real>36</real>
+ <key>DisplayScale</key>
+ <string>1 0/72 in = 1.0000 in</string>
+ <key>GraphicsList</key>
+ <array>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{336.633, 463.554}, {12.531, 13.5351}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>113</integer>
+ <key>Rotation</key>
+ <real>90</real>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{333.5, 461}, {10.9785, 18.6434}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>114</integer>
+ <key>Rotation</key>
+ <real>180</real>
+ <key>Shape</key>
+ <string>AndGate</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.0035882</string>
+ <key>g</key>
+ <string>0.93545</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>TextRelativeArea</key>
+ <string>{{0, 0.1}, {1, 0.8}}</string>
+ </dict>
+ </array>
+ <key>ID</key>
+ <integer>112</integer>
+ <key>Rotation</key>
+ <real>90</real>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{354.166, 450.822}, {68, 39}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>110</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.820652</string>
+ <key>g</key>
+ <string>0.820652</string>
+ <key>r</key>
+ <string>0.820652</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Receiver}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{209.5, 453}, {54, 36}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>105</integer>
+ <key>Shape</key>
+ <string>Cloud</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>1</string>
+ <key>g</key>
+ <string>1</string>
+ <key>r</key>
+ <string>0.728395</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 DDS}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>100</integer>
+ </dict>
+ <key>ID</key>
+ <integer>103</integer>
+ <key>Points</key>
+ <array>
+ <string>{116.02, 471}</string>
+ <string>{124.131, 471}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>HeadArrow</key>
+ <string>0</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>98</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{144.646, 461.678}, {74, 20}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>102</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.820652</string>
+ <key>g</key>
+ <string>0.820652</string>
+ <key>r</key>
+ <string>0.820652</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Connector}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{125.133, 464.232}, {12.531, 13.5351}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>100</integer>
+ <key>Rotation</key>
+ <real>90</real>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{122, 461.678}, {10.9785, 18.6434}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>101</integer>
+ <key>Rotation</key>
+ <real>180</real>
+ <key>Shape</key>
+ <string>AndGate</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.0035882</string>
+ <key>g</key>
+ <string>0.93545</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>TextRelativeArea</key>
+ <string>{{0, 0.1}, {1, 0.8}}</string>
+ </dict>
+ </array>
+ <key>ID</key>
+ <integer>99</integer>
+ <key>Rotation</key>
+ <real>90</real>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{47.5196, 451.5}, {68, 39}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>98</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.820652</string>
+ <key>g</key>
+ <string>0.820652</string>
+ <key>r</key>
+ <string>0.820652</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Sender}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>86</integer>
+ </dict>
+ <key>ID</key>
+ <integer>91</integer>
+ <key>Points</key>
+ <array>
+ <string>{250.82, 377.75}</string>
+ <string>{274, 377.75}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>9</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>9</integer>
+ </dict>
+ <key>ID</key>
+ <integer>90</integer>
+ <key>Points</key>
+ <array>
+ <string>{182, 377.75}</string>
+ <string>{202.747, 377.75}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>82</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{199.5, 359.75}, {54, 36}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>9</integer>
+ <key>Shape</key>
+ <string>Cloud</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>1</string>
+ <key>g</key>
+ <string>1</string>
+ <key>r</key>
+ <string>0.728395</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 DDS}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{189.5, 335.75}, {74, 14}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FitText</key>
+ <string>YES</string>
+ <key>Flow</key>
+ <string>Resize</string>
+ <key>ID</key>
+ <integer>89</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Pad</key>
+ <integer>0</integer>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Hello, World!}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>Wrap</key>
+ <string>NO</string>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{274.5, 358.25}, {68, 39}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>86</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.820652</string>
+ <key>g</key>
+ <string>0.820652</string>
+ <key>r</key>
+ <string>0.820652</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Receiver}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{113.5, 358.25}, {68, 39}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>82</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.820652</string>
+ <key>g</key>
+ <string>0.820652</string>
+ <key>r</key>
+ <string>0.820652</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Sender}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{191, 220}, {74, 14}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FitText</key>
+ <string>YES</string>
+ <key>Flow</key>
+ <string>Resize</string>
+ <key>ID</key>
+ <integer>80</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Pad</key>
+ <integer>0</integer>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Hello, World!}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>Wrap</key>
+ <string>NO</string>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>ID</key>
+ <integer>79</integer>
+ <key>Points</key>
+ <array>
+ <string>{234.167, 261.5}</string>
+ <string>{276.52, 261.5}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>HeadArrow</key>
+ <string>0</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>74</integer>
+ </dict>
+ <key>ID</key>
+ <integer>78</integer>
+ <key>Points</key>
+ <array>
+ <string>{183.5, 262}</string>
+ <string>{223.548, 261.999}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>HeadArrow</key>
+ <string>0</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>76</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{276, 242.5}, {68, 39}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>77</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.820652</string>
+ <key>g</key>
+ <string>0.820652</string>
+ <key>r</key>
+ <string>0.820652</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Receiver}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{224.55, 255.232}, {12.531, 13.5351}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>74</integer>
+ <key>Rotation</key>
+ <real>90</real>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{221.417, 252.678}, {10.9785, 18.6434}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>75</integer>
+ <key>Rotation</key>
+ <real>180</real>
+ <key>Shape</key>
+ <string>AndGate</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.0035882</string>
+ <key>g</key>
+ <string>0.93545</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>TextRelativeArea</key>
+ <string>{{0, 0.1}, {1, 0.8}}</string>
+ </dict>
+ </array>
+ <key>ID</key>
+ <integer>73</integer>
+ <key>Rotation</key>
+ <real>90</real>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{115, 242.5}, {68, 39}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>76</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.820652</string>
+ <key>g</key>
+ <string>0.820652</string>
+ <key>r</key>
+ <string>0.820652</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Sender}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>ID</key>
+ <integer>104</integer>
+ <key>Points</key>
+ <array>
+ <string>{133, 470.5}</string>
+ <string>{149.166, 470.5}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>HeadArrow</key>
+ <string>0</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{255, 460.322}, {74, 20}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>106</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.820652</string>
+ <key>g</key>
+ <string>0.820652</string>
+ <key>r</key>
+ <string>0.820652</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Connector}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>ID</key>
+ <integer>111</integer>
+ <key>Points</key>
+ <array>
+ <string>{312.333, 469.822}</string>
+ <string>{354.686, 469.822}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>HeadArrow</key>
+ <string>0</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ </dict>
+ </array>
+ <key>GridInfo</key>
+ <dict/>
+ <key>HPages</key>
+ <integer>1</integer>
+ <key>KeepToScale</key>
+ <false/>
+ <key>Layers</key>
+ <array>
+ <dict>
+ <key>Lock</key>
+ <string>NO</string>
+ <key>Name</key>
+ <string>Layer 1</string>
+ <key>Print</key>
+ <string>YES</string>
+ <key>View</key>
+ <string>YES</string>
+ </dict>
+ </array>
+ <key>LayoutInfo</key>
+ <dict>
+ <key>Animate</key>
+ <string>NO</string>
+ <key>circoMinDist</key>
+ <real>18</real>
+ <key>circoSeparation</key>
+ <real>0.0</real>
+ <key>layoutEngine</key>
+ <string>dot</string>
+ <key>neatoSeparation</key>
+ <real>0.0</real>
+ <key>twopiSeparation</key>
+ <real>0.0</real>
+ </dict>
+ <key>Orientation</key>
+ <integer>2</integer>
+ <key>PrintOnePage</key>
+ <false/>
+ <key>RowAlign</key>
+ <integer>1</integer>
+ <key>RowSpacing</key>
+ <real>36</real>
+ <key>SheetTitle</key>
+ <string>Canvas 6</string>
+ <key>UniqueID</key>
+ <integer>6</integer>
+ <key>VPages</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>ActiveLayerIndex</key>
+ <integer>0</integer>
+ <key>AutoAdjust</key>
+ <true/>
+ <key>BackgroundGraphic</key>
+ <dict>
+ <key>Bounds</key>
+ <string>{{0, 0}, {576, 733}}</string>
+ <key>Class</key>
+ <string>SolidGraphic</string>
+ <key>ID</key>
+ <integer>2</integer>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>GradientColor</key>
+ <dict>
+ <key>w</key>
+ <string>0.666667</string>
+ </dict>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>CanvasOrigin</key>
+ <string>{0, 0}</string>
+ <key>ColumnAlign</key>
+ <integer>1</integer>
+ <key>ColumnSpacing</key>
+ <real>36</real>
+ <key>DisplayScale</key>
+ <string>1 0/72 in = 1.0000 in</string>
+ <key>GraphicsList</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{376.875, 353}, {104.75, 44}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>119</integer>
+ <key>Shape</key>
+ <string>RoundRect</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>a</key>
+ <string>0.74</string>
+ <key>b</key>
+ <string>0.721469</string>
+ <key>g</key>
+ <string>0.780909</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Colocation\
+Group}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>107</integer>
+ </dict>
+ <key>ID</key>
+ <integer>112</integer>
+ <key>Points</key>
+ <array>
+ <string>{392.25, 486}</string>
+ <string>{409.5, 486}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>89</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>106</integer>
+ </dict>
+ <key>ID</key>
+ <integer>111</integer>
+ <key>Points</key>
+ <array>
+ <string>{392.25, 437.5}</string>
+ <string>{409.5, 437.5}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>79</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>94</integer>
+ </dict>
+ <key>ID</key>
+ <integer>110</integer>
+ <key>Points</key>
+ <array>
+ <string>{167.5, 511}</string>
+ <string>{183.75, 511}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>105</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>99</integer>
+ </dict>
+ <key>ID</key>
+ <integer>109</integer>
+ <key>Points</key>
+ <array>
+ <string>{167.5, 460}</string>
+ <string>{183.75, 460}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>104</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>84</integer>
+ </dict>
+ <key>ID</key>
+ <integer>108</integer>
+ <key>Points</key>
+ <array>
+ <string>{167.5, 409}</string>
+ <string>{183.75, 409}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>103</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{410, 468}, {100, 36}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>107</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.820652</string>
+ <key>g</key>
+ <string>0.820652</string>
+ <key>r</key>
+ <string>0.820652</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Application\
+Component}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{410, 419.5}, {100, 36}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>106</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.820652</string>
+ <key>g</key>
+ <string>0.820652</string>
+ <key>r</key>
+ <string>0.820652</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Application\
+Component}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{67, 493}, {100, 36}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>105</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.820652</string>
+ <key>g</key>
+ <string>0.820652</string>
+ <key>r</key>
+ <string>0.820652</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Application\
+Component}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{67, 442}, {100, 36}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>104</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.820652</string>
+ <key>g</key>
+ <string>0.820652</string>
+ <key>r</key>
+ <string>0.820652</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Application\
+Component}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{67, 391}, {100, 36}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>103</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.820652</string>
+ <key>g</key>
+ <string>0.820652</string>
+ <key>r</key>
+ <string>0.820652</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Application\
+Component}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{184.364, 456.093}, {7.58634, 7.81393}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>99</integer>
+ <key>Rotation</key>
+ <real>270</real>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{187.245, 454.356}, {6.33799, 11.2868}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>100</integer>
+ <key>Shape</key>
+ <string>AndGate</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.0035882</string>
+ <key>g</key>
+ <string>0.93545</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>TextRelativeArea</key>
+ <string>{{0, 0.1}, {1, 0.8}}</string>
+ </dict>
+ </array>
+ <key>ID</key>
+ <integer>98</integer>
+ <key>Rotation</key>
+ <real>270</real>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{193.583, 448}, {36, 24}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>101</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.820652</string>
+ <key>g</key>
+ <string>0.820652</string>
+ <key>r</key>
+ <string>0.820652</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ </dict>
+ </array>
+ <key>ID</key>
+ <integer>97</integer>
+ <key>Rotation</key>
+ <real>180</real>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{184.364, 507.093}, {7.58634, 7.81393}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>94</integer>
+ <key>Rotation</key>
+ <real>270</real>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{187.245, 505.356}, {6.33799, 11.2868}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>95</integer>
+ <key>Shape</key>
+ <string>AndGate</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.0035882</string>
+ <key>g</key>
+ <string>0.93545</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>TextRelativeArea</key>
+ <string>{{0, 0.1}, {1, 0.8}}</string>
+ </dict>
+ </array>
+ <key>ID</key>
+ <integer>93</integer>
+ <key>Rotation</key>
+ <real>270</real>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{193.583, 499}, {36, 24}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>96</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.820652</string>
+ <key>g</key>
+ <string>0.820652</string>
+ <key>r</key>
+ <string>0.820652</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ </dict>
+ </array>
+ <key>ID</key>
+ <integer>92</integer>
+ <key>Rotation</key>
+ <real>180</real>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{384.05, 482.093}, {7.58634, 7.81393}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>89</integer>
+ <key>Rotation</key>
+ <real>90</real>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{382.417, 480.357}, {6.33799, 11.2868}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>90</integer>
+ <key>Rotation</key>
+ <real>180</real>
+ <key>Shape</key>
+ <string>AndGate</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.0035882</string>
+ <key>g</key>
+ <string>0.93545</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>TextRelativeArea</key>
+ <string>{{0, 0.1}, {1, 0.8}}</string>
+ </dict>
+ </array>
+ <key>ID</key>
+ <integer>88</integer>
+ <key>Rotation</key>
+ <real>90</real>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{346.417, 474}, {36, 24}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>91</integer>
+ <key>Rotation</key>
+ <real>180</real>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.820652</string>
+ <key>g</key>
+ <string>0.820652</string>
+ <key>r</key>
+ <string>0.820652</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ </dict>
+ </array>
+ <key>ID</key>
+ <integer>87</integer>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{184.364, 405.093}, {7.58634, 7.81393}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>84</integer>
+ <key>Rotation</key>
+ <real>270</real>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{187.245, 403.356}, {6.33799, 11.2868}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>85</integer>
+ <key>Shape</key>
+ <string>AndGate</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.0035882</string>
+ <key>g</key>
+ <string>0.93545</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>TextRelativeArea</key>
+ <string>{{0, 0.1}, {1, 0.8}}</string>
+ </dict>
+ </array>
+ <key>ID</key>
+ <integer>83</integer>
+ <key>Rotation</key>
+ <real>270</real>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{193.583, 397}, {36, 24}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>86</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.820652</string>
+ <key>g</key>
+ <string>0.820652</string>
+ <key>r</key>
+ <string>0.820652</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ </dict>
+ </array>
+ <key>ID</key>
+ <integer>82</integer>
+ <key>Rotation</key>
+ <real>180</real>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{384.05, 433.593}, {7.58634, 7.81393}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>79</integer>
+ <key>Rotation</key>
+ <real>90</real>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{382.417, 431.857}, {6.33799, 11.2868}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>80</integer>
+ <key>Rotation</key>
+ <real>180</real>
+ <key>Shape</key>
+ <string>AndGate</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.0035882</string>
+ <key>g</key>
+ <string>0.93545</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>TextRelativeArea</key>
+ <string>{{0, 0.1}, {1, 0.8}}</string>
+ </dict>
+ </array>
+ <key>ID</key>
+ <integer>78</integer>
+ <key>Rotation</key>
+ <real>90</real>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{346.417, 425.5}, {36, 24}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>81</integer>
+ <key>Rotation</key>
+ <real>180</real>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.820652</string>
+ <key>g</key>
+ <string>0.820652</string>
+ <key>r</key>
+ <string>0.820652</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ </dict>
+ </array>
+ <key>ID</key>
+ <integer>77</integer>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>11</integer>
+ </dict>
+ <key>ID</key>
+ <integer>27</integer>
+ <key>Points</key>
+ <array>
+ <string>{376.99, 193.157}</string>
+ <string>{419.615, 202.022}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>21</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>10</integer>
+ </dict>
+ <key>ID</key>
+ <integer>26</integer>
+ <key>Points</key>
+ <array>
+ <string>{376.99, 184.843}</string>
+ <string>{419.615, 175.978}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>21</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>15</integer>
+ </dict>
+ <key>ID</key>
+ <integer>25</integer>
+ <key>Points</key>
+ <array>
+ <string>{149.03, 217.943}</string>
+ <string>{198.039, 197.377}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>6</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>15</integer>
+ </dict>
+ <key>ID</key>
+ <integer>24</integer>
+ <key>Points</key>
+ <array>
+ <string>{156.5, 189}</string>
+ <string>{198, 189}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>5</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>15</integer>
+ </dict>
+ <key>ID</key>
+ <integer>22</integer>
+ <key>Points</key>
+ <array>
+ <string>{149.03, 160.057}</string>
+ <string>{198.039, 180.623}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>4</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{327, 182}, {60, 14}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FitText</key>
+ <string>YES</string>
+ <key>Flow</key>
+ <string>Resize</string>
+ <key>ID</key>
+ <integer>20</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Pad</key>
+ <integer>0</integer>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Connector}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>TextRotation</key>
+ <real>90</real>
+ <key>Wrap</key>
+ <string>NO</string>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{337.5, 132.75}, {39, 112.5}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>21</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ <key>TextRotation</key>
+ <real>90</real>
+ </dict>
+ </array>
+ <key>ID</key>
+ <integer>19</integer>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{188, 182}, {60, 14}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FitText</key>
+ <string>YES</string>
+ <key>Flow</key>
+ <string>Resize</string>
+ <key>ID</key>
+ <integer>16</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Pad</key>
+ <integer>0</integer>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Connector}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>TextRotation</key>
+ <real>90</real>
+ <key>Wrap</key>
+ <string>NO</string>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{198.5, 132.75}, {39, 112.5}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>15</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ <key>TextRotation</key>
+ <real>90</real>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{420, 194.5}, {100, 36}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>11</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.820652</string>
+ <key>g</key>
+ <string>0.820652</string>
+ <key>r</key>
+ <string>0.820652</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Application\
+Component}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{420, 147.5}, {100, 36}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>10</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.820652</string>
+ <key>g</key>
+ <string>0.820652</string>
+ <key>r</key>
+ <string>0.820652</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Application\
+Component}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{232.5, 151.5}, {111, 75}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>9</integer>
+ <key>Shape</key>
+ <string>Cloud</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>1</string>
+ <key>g</key>
+ <string>0.866239</string>
+ <key>r</key>
+ <string>0.674065</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 DDS}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{56, 218}, {100, 36}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>6</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.820652</string>
+ <key>g</key>
+ <string>0.820652</string>
+ <key>r</key>
+ <string>0.820652</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Application\
+Component}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{56, 171}, {100, 36}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>5</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.820652</string>
+ <key>g</key>
+ <string>0.820652</string>
+ <key>r</key>
+ <string>0.820652</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Application\
+Component}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{56, 124}, {100, 36}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>4</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.820652</string>
+ <key>g</key>
+ <string>0.820652</string>
+ <key>r</key>
+ <string>0.820652</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Application\
+Component}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{56, 387}, {181.5, 44}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>114</integer>
+ <key>Shape</key>
+ <string>RoundRect</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>a</key>
+ <string>0.74</string>
+ <key>b</key>
+ <string>0.721469</string>
+ <key>g</key>
+ <string>0.780909</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{56, 438}, {181.5, 44}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>115</integer>
+ <key>Shape</key>
+ <string>RoundRect</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>a</key>
+ <string>0.74</string>
+ <key>b</key>
+ <string>0.721469</string>
+ <key>g</key>
+ <string>0.780909</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{56, 489}, {181.5, 44}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>116</integer>
+ <key>Shape</key>
+ <string>RoundRect</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>a</key>
+ <string>0.74</string>
+ <key>b</key>
+ <string>0.721469</string>
+ <key>g</key>
+ <string>0.780909</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{338.5, 415.5}, {181.5, 44}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>117</integer>
+ <key>Shape</key>
+ <string>RoundRect</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>a</key>
+ <string>0.74</string>
+ <key>b</key>
+ <string>0.721469</string>
+ <key>g</key>
+ <string>0.780909</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{338.5, 464}, {181.5, 44}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>118</integer>
+ <key>Shape</key>
+ <string>RoundRect</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>a</key>
+ <string>0.74</string>
+ <key>b</key>
+ <string>0.721469</string>
+ <key>g</key>
+ <string>0.780909</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{203, 394}, {160.583, 132}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>102</integer>
+ <key>Shape</key>
+ <string>Cloud</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>1</string>
+ <key>g</key>
+ <string>0.866239</string>
+ <key>r</key>
+ <string>0.674065</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 DDS}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ </array>
+ <key>GridInfo</key>
+ <dict/>
+ <key>HPages</key>
+ <integer>1</integer>
+ <key>KeepToScale</key>
+ <false/>
+ <key>Layers</key>
+ <array>
+ <dict>
+ <key>Lock</key>
+ <string>NO</string>
+ <key>Name</key>
+ <string>Layer 1</string>
+ <key>Print</key>
+ <string>YES</string>
+ <key>View</key>
+ <string>YES</string>
+ </dict>
+ </array>
+ <key>LayoutInfo</key>
+ <dict>
+ <key>Animate</key>
+ <string>NO</string>
+ <key>circoMinDist</key>
+ <real>18</real>
+ <key>circoSeparation</key>
+ <real>0.0</real>
+ <key>layoutEngine</key>
+ <string>dot</string>
+ <key>neatoSeparation</key>
+ <real>0.0</real>
+ <key>twopiSeparation</key>
+ <real>0.0</real>
+ </dict>
+ <key>Orientation</key>
+ <integer>2</integer>
+ <key>PrintOnePage</key>
+ <false/>
+ <key>RowAlign</key>
+ <integer>1</integer>
+ <key>RowSpacing</key>
+ <real>36</real>
+ <key>SheetTitle</key>
+ <string>Canvas 4</string>
+ <key>UniqueID</key>
+ <integer>4</integer>
+ <key>VPages</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>ActiveLayerIndex</key>
+ <integer>0</integer>
+ <key>AutoAdjust</key>
+ <true/>
+ <key>BackgroundGraphic</key>
+ <dict>
+ <key>Bounds</key>
+ <string>{{0, 0}, {576, 733}}</string>
+ <key>Class</key>
+ <string>SolidGraphic</string>
+ <key>ID</key>
+ <integer>2</integer>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>GradientColor</key>
+ <dict>
+ <key>w</key>
+ <string>0.666667</string>
+ </dict>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>CanvasOrigin</key>
+ <string>{0, 0}</string>
+ <key>ColumnAlign</key>
+ <integer>1</integer>
+ <key>ColumnSpacing</key>
+ <real>36</real>
+ <key>DisplayScale</key>
+ <string>1 0/72 in = 1.0000 in</string>
+ <key>GraphicsList</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{290.21, 157}, {99.4286, 27}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>12</integer>
+ <key>Shape</key>
+ <string>RoundRect</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.683555</string>
+ <key>g</key>
+ <string>1</string>
+ <key>r</key>
+ <string>0.950192</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Reader}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{186.362, 157}, {99.4286, 27}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>11</integer>
+ <key>Shape</key>
+ <string>RoundRect</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.683555</string>
+ <key>g</key>
+ <string>1</string>
+ <key>r</key>
+ <string>0.950192</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Writer}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{290.21, 190}, {99.4286, 27}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>10</integer>
+ <key>Shape</key>
+ <string>RoundRect</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>1</string>
+ <key>g</key>
+ <string>0.717934</string>
+ <key>r</key>
+ <string>0.968026</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 DataReader}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{186.362, 190}, {99.4286, 27}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>9</integer>
+ <key>Shape</key>
+ <string>RoundRect</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>1</string>
+ <key>g</key>
+ <string>0.717934</string>
+ <key>r</key>
+ <string>0.968026</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 DataWriter}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{290.21, 223}, {99.4286, 27}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>8</integer>
+ <key>Shape</key>
+ <string>RoundRect</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.802469</string>
+ <key>g</key>
+ <string>0.802469</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs23\fsmilli11800 \cf0 Subscriber}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{186.362, 223}, {99.4286, 27}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>7</integer>
+ <key>Shape</key>
+ <string>RoundRect</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.802469</string>
+ <key>g</key>
+ <string>0.802469</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Publisher}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{186.362, 256}, {203.276, 27}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>6</integer>
+ <key>Shape</key>
+ <string>RoundRect</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>1</string>
+ <key>g</key>
+ <string>0.976367</string>
+ <key>r</key>
+ <string>0.788676</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Topic}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{186.362, 289}, {203.276, 27}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>5</integer>
+ <key>Shape</key>
+ <string>RoundRect</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.790487</string>
+ <key>g</key>
+ <string>1</string>
+ <key>r</key>
+ <string>0.720649</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 DomainParticipant}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{172, 143}, {232, 186}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>4</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.782609</string>
+ <key>g</key>
+ <string>0.782609</string>
+ <key>r</key>
+ <string>0.782609</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ </dict>
+ </array>
+ <key>GridInfo</key>
+ <dict/>
+ <key>HPages</key>
+ <integer>1</integer>
+ <key>KeepToScale</key>
+ <false/>
+ <key>Layers</key>
+ <array>
+ <dict>
+ <key>Lock</key>
+ <string>NO</string>
+ <key>Name</key>
+ <string>Layer 1</string>
+ <key>Print</key>
+ <string>YES</string>
+ <key>View</key>
+ <string>YES</string>
+ </dict>
+ </array>
+ <key>LayoutInfo</key>
+ <dict>
+ <key>Animate</key>
+ <string>NO</string>
+ <key>circoMinDist</key>
+ <real>18</real>
+ <key>circoSeparation</key>
+ <real>0.0</real>
+ <key>layoutEngine</key>
+ <string>dot</string>
+ <key>neatoSeparation</key>
+ <real>0.0</real>
+ <key>twopiSeparation</key>
+ <real>0.0</real>
+ </dict>
+ <key>Orientation</key>
+ <integer>2</integer>
+ <key>PrintOnePage</key>
+ <false/>
+ <key>RowAlign</key>
+ <integer>1</integer>
+ <key>RowSpacing</key>
+ <real>36</real>
+ <key>SheetTitle</key>
+ <string>Canvas 5</string>
+ <key>UniqueID</key>
+ <integer>5</integer>
+ <key>VPages</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>ActiveLayerIndex</key>
+ <integer>0</integer>
+ <key>AutoAdjust</key>
+ <true/>
+ <key>BackgroundGraphic</key>
+ <dict>
+ <key>Bounds</key>
+ <string>{{0, 0}, {576, 733}}</string>
+ <key>Class</key>
+ <string>SolidGraphic</string>
+ <key>ID</key>
+ <integer>2</integer>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>GradientColor</key>
+ <dict>
+ <key>w</key>
+ <string>0.666667</string>
+ </dict>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>CanvasOrigin</key>
+ <string>{0, 0}</string>
+ <key>ColumnAlign</key>
+ <integer>1</integer>
+ <key>ColumnSpacing</key>
+ <real>36</real>
+ <key>DisplayScale</key>
+ <string>1 0/72 in = 1.0000 in</string>
+ <key>GraphicsList</key>
+ <array>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>ID</key>
+ <integer>57</integer>
+ <key>Points</key>
+ <array>
+ <string>{246.035, 300.249}</string>
+ <string>{246.386, 316.499}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>HeadArrow</key>
+ <string>0</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{240.845, 288.528}, {11.3795, 11.7209}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>52</integer>
+ <key>Rotation</key>
+ <real>180</real>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{241.781, 282.538}, {9.50698, 16.9302}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>53</integer>
+ <key>Rotation</key>
+ <real>270</real>
+ <key>Shape</key>
+ <string>AndGate</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.0035882</string>
+ <key>g</key>
+ <string>0.93545</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>TextRelativeArea</key>
+ <string>{{0, 0.1}, {1, 0.8}}</string>
+ </dict>
+ </array>
+ <key>ID</key>
+ <integer>51</integer>
+ <key>Rotation</key>
+ <real>180</real>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>ID</key>
+ <integer>50</integer>
+ <key>Points</key>
+ <array>
+ <string>{246.035, 268.375}</string>
+ <string>{246.386, 284.625}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>HeadArrow</key>
+ <string>0</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>ID</key>
+ <integer>49</integer>
+ <key>Points</key>
+ <array>
+ <string>{208.965, 301.749}</string>
+ <string>{209.316, 318}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>HeadArrow</key>
+ <string>0</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>ID</key>
+ <integer>48</integer>
+ <key>Points</key>
+ <array>
+ <string>{208.965, 269.25}</string>
+ <string>{209.316, 285.5}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>HeadArrow</key>
+ <string>0</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>ID</key>
+ <integer>47</integer>
+ <key>Points</key>
+ <array>
+ <string>{246.035, 147.75}</string>
+ <string>{246.386, 164.001}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>HeadArrow</key>
+ <string>0</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>ID</key>
+ <integer>46</integer>
+ <key>Points</key>
+ <array>
+ <string>{208.965, 148.499}</string>
+ <string>{209.316, 164.75}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>HeadArrow</key>
+ <string>0</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>ID</key>
+ <integer>45</integer>
+ <key>Points</key>
+ <array>
+ <string>{208.965, 116}</string>
+ <string>{209.316, 132.251}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>HeadArrow</key>
+ <string>0</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>ID</key>
+ <integer>44</integer>
+ <key>Points</key>
+ <array>
+ <string>{246.035, 116}</string>
+ <string>{246.386, 132.251}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>HeadArrow</key>
+ <string>0</string>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{203.776, 136.029}, {11.3795, 11.7209}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>41</integer>
+ <key>Rotation</key>
+ <real>180</real>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{204.712, 130.039}, {9.50698, 16.9302}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>42</integer>
+ <key>Rotation</key>
+ <real>270</real>
+ <key>Shape</key>
+ <string>AndGate</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.0035882</string>
+ <key>g</key>
+ <string>0.93545</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>TextRelativeArea</key>
+ <string>{{0, 0.1}, {1, 0.8}}</string>
+ </dict>
+ </array>
+ <key>ID</key>
+ <integer>40</integer>
+ <key>Rotation</key>
+ <real>180</real>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{240.844, 133.75}, {11.3795, 11.7209}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>38</integer>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{241.781, 134.531}, {9.50698, 16.9302}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>39</integer>
+ <key>Rotation</key>
+ <real>90</real>
+ <key>Shape</key>
+ <string>AndGate</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.0035882</string>
+ <key>g</key>
+ <string>0.93545</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>TextRelativeArea</key>
+ <string>{{0, 0.1}, {1, 0.8}}</string>
+ </dict>
+ </array>
+ <key>ID</key>
+ <integer>37</integer>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{203.775, 286.25}, {11.3795, 11.7209}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>35</integer>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{204.712, 287.031}, {9.50698, 16.9302}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>36</integer>
+ <key>Rotation</key>
+ <real>90</real>
+ <key>Shape</key>
+ <string>AndGate</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.0035882</string>
+ <key>g</key>
+ <string>0.93545</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>TextRelativeArea</key>
+ <string>{{0, 0.1}, {1, 0.8}}</string>
+ </dict>
+ </array>
+ <key>ID</key>
+ <integer>34</integer>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{201, 199}, {54, 36}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>10</integer>
+ <key>Shape</key>
+ <string>Cloud</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>1</string>
+ <key>g</key>
+ <string>0.927724</string>
+ <key>r</key>
+ <string>0.789037</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 DDS}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{191.5, 247}, {73, 14}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FitText</key>
+ <string>YES</string>
+ <key>Flow</key>
+ <string>Resize</string>
+ <key>ID</key>
+ <integer>9</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Pad</key>
+ <integer>0</integer>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Comm Logic}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>Wrap</key>
+ <string>NO</string>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{191.5, 176}, {73, 14}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FitText</key>
+ <string>YES</string>
+ <key>Flow</key>
+ <string>Resize</string>
+ <key>ID</key>
+ <integer>8</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Pad</key>
+ <integer>0</integer>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\b\fs24 \cf0 Comm Logic}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>Wrap</key>
+ <string>NO</string>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{181, 199}, {94, 36}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>1</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.764136</string>
+ <key>g</key>
+ <string>0.787758</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ </dict>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{181, 165.5}, {94, 103}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>7</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.718205</string>
+ <key>g</key>
+ <string>1</string>
+ <key>r</key>
+ <string>0.72379</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{181, 318}, {94, 41}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>6</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.788043</string>
+ <key>g</key>
+ <string>0.788043</string>
+ <key>r</key>
+ <string>0.788043</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 Receiver}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{181, 75}, {94, 41}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>4</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.788043</string>
+ <key>g</key>
+ <string>0.788043</string>
+ <key>r</key>
+ <string>0.788043</string>
+ </dict>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1038
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
+
+\f0\fs24 \cf0 Sender}</string>
+ </dict>
+ </dict>
+ </array>
+ <key>GridInfo</key>
+ <dict/>
+ <key>HPages</key>
+ <integer>1</integer>
+ <key>KeepToScale</key>
+ <false/>
+ <key>Layers</key>
+ <array>
+ <dict>
+ <key>Lock</key>
+ <string>NO</string>
+ <key>Name</key>
+ <string>Layer 1</string>
+ <key>Print</key>
+ <string>YES</string>
+ <key>View</key>
+ <string>YES</string>
+ </dict>
+ </array>
+ <key>LayoutInfo</key>
+ <dict>
+ <key>Animate</key>
+ <string>NO</string>
+ <key>circoMinDist</key>
+ <real>18</real>
+ <key>circoSeparation</key>
+ <real>0.0</real>
+ <key>layoutEngine</key>
+ <string>dot</string>
+ <key>neatoSeparation</key>
+ <real>0.0</real>
+ <key>twopiSeparation</key>
+ <real>0.0</real>
+ </dict>
+ <key>Orientation</key>
+ <integer>2</integer>
+ <key>PrintOnePage</key>
+ <false/>
+ <key>RowAlign</key>
+ <integer>1</integer>
+ <key>RowSpacing</key>
+ <real>36</real>
+ <key>SheetTitle</key>
+ <string>Canvas 2</string>
+ <key>UniqueID</key>
+ <integer>2</integer>
+ <key>VPages</key>
+ <integer>1</integer>
+ </dict>
+ </array>
+ <key>SmartAlignmentGuidesActive</key>
+ <string>YES</string>
+ <key>SmartDistanceGuidesActive</key>
+ <string>YES</string>
+ <key>UseEntirePage</key>
+ <false/>
+ <key>WindowInfo</key>
+ <dict>
+ <key>CurrentSheet</key>
+ <integer>2</integer>
+ <key>ExpandedCanvases</key>
+ <array>
+ <dict>
+ <key>name</key>
+ <string>Canvas 1</string>
+ </dict>
+ </array>
+ <key>Frame</key>
+ <string>{{131, 41}, {710, 837}}</string>
+ <key>ListView</key>
+ <true/>
+ <key>OutlineWidth</key>
+ <integer>142</integer>
+ <key>RightSidebar</key>
+ <false/>
+ <key>ShowRuler</key>
+ <true/>
+ <key>Sidebar</key>
+ <true/>
+ <key>SidebarWidth</key>
+ <integer>120</integer>
+ <key>VisibleRegion</key>
+ <string>{{0, 0}, {561, 668}}</string>
+ <key>Zoom</key>
+ <real>1</real>
+ <key>ZoomValues</key>
+ <array>
+ <array>
+ <string>Canvas 1</string>
+ <real>1</real>
+ <real>1</real>
+ </array>
+ <array>
+ <string>Canvas 2</string>
+ <real>1</real>
+ <real>1</real>
+ </array>
+ <array>
+ <string>Canvas 3</string>
+ <real>1</real>
+ <real>1</real>
+ </array>
+ <array>
+ <string>Canvas 4</string>
+ <real>1</real>
+ <real>1</real>
+ </array>
+ <array>
+ <string>Canvas 5</string>
+ <real>1</real>
+ <real>1</real>
+ </array>
+ <array>
+ <string>Canvas 6</string>
+ <real>1</real>
+ <real>1</real>
+ </array>
+ </array>
+ </dict>
+ <key>saveQuickLookFiles</key>
+ <string>YES</string>
+</dict>
+</plist>
diff --git a/modules/CIAO/docs/EnvVars.html b/modules/CIAO/docs/EnvVars.html
new file mode 100644
index 00000000000..a088f793de0
--- /dev/null
+++ b/modules/CIAO/docs/EnvVars.html
@@ -0,0 +1,35 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<!-- $Id$ -->
+ <title>Environment Variables used by CIAO</title>
+</head>
+<body>
+<h1>Environment Variables used by CIAO</h1>
+<ul>
+<!-- <li><b><code></code></b><p> --> <li><b><code>CIAO_DEBUG_LEVEL</code></b>:
+An interger value accessible using <code>CIAO::debug_level()</code>
+call. Currently, CIAO follow the following usage conventions:<br>
+ <br>
+ <ul>
+ <li> 20 &lt; debug_level &#8804; 20: Generate CIAO internal debug
+messages </li>
+ <li> 10 &lt; debug_level &#8804; 20: Generate CIAO tools debug messages
+ </li>
+ <li> 0 &lt; debug_level &#8804; 10: Generate component-level debug
+messages </li>
+ </ul>
+ <p> </p>
+ </li>
+ <li><b><code>CIAO_DUMP_SAMPLE_HISTORY</code></b>: This environment
+variable was added for lack of component configuration support. Set it
+to 1 to turn on the dumping of performance samples to stdout in some
+performance test components.</li>
+</ul>
+<hr>
+<address>Nanbor Wang</address>
+<!-- hhmts start -->
+Last modified: Sun Nov 30 20:29:14 Mountain Standard Time 2003
+<!-- hhmts end -->
+</body>
+</html>
diff --git a/modules/CIAO/docs/OMG-CCM-Tutorial.ppt b/modules/CIAO/docs/OMG-CCM-Tutorial.ppt
new file mode 100644
index 00000000000..b5cdff0b43a
--- /dev/null
+++ b/modules/CIAO/docs/OMG-CCM-Tutorial.ppt
Binary files differ
diff --git a/modules/CIAO/docs/Porting_Hints.txt b/modules/CIAO/docs/Porting_Hints.txt
new file mode 100644
index 00000000000..feed93d2eb7
--- /dev/null
+++ b/modules/CIAO/docs/Porting_Hints.txt
@@ -0,0 +1,55 @@
+Porting applications to the refactored DAnCE:
+
+1) ciao_client_dnc base projects should be changed to ccm_stub
+2) ciao_component_dnc should be changed to ciao_executor
+3) ciao_servant_dnc should be changed to ciao_servant
+4) Executor implementations now require that the configuration_complete
+ operation be implemented.
+5) ciao_{pre,post}activate are no longer invoked.
+
+It should be noted that this new version of CIAO/DAnCE no longer supports
+implicitly homed components. Components must either be explicitly homed
+(ie, an explicitly deployed home instance combined with a component instance
+that specifically identifies that home), or unhomed. In the unhomed case,
+a factory method that instantiates the component executor must be added
+to the _exec header and source files.
+
+
+Porting the plan
+===================
+There are a number of changes to the plan structure to better comply with
+the specification.
+
+1) idref refrences must now be made using an attribute xmi:idref instead
+ of using element content, i.e.,
+
+ <artifact>Receiver_Stub</artifact>
+
+ should be transformed into
+
+ <artifact xmi:idref="Receiver_Stub" />
+
+2) Entrypoint information is now listed in the execParameters for the
+ monolithicImplementation instead of the implementationArtifact elements.
+ Furthermore, the container (servant) and executor artifacts must be
+ explicitly identified. The following execParameters must be present
+ on all monolithic implementations for homes and unhomed components:
+
+ . "home factory" - contains the executor entrypoint for homes
+ . "component factory" - contains the executory entrypoint for unhomed
+ components
+ . "edu.vanderbilt.dre.CIAO.ServantEntrypoint" - contains the container
+ (servant) entrypoint for both homes and unhomed components
+ . "edu.vanderbilt.dre.CIAO.ServantArtifact" - Identifies the name
+ element of the artifact that implements the container (servant)
+ . "edu.vanderbilt.dre.CIAO.ExecutorArtifact" - Identifies the name
+ element of the artifact that implements the executor.
+
+3) IOR output configProperties have changed:
+ . "RegisterNaming" is now edu.vanderbilt.dre.DAnCE.RegisterNaming
+ . "ComponentIOR" is now edu.vanderbilt.dre.DAnCE.InstanceIOR
+
+4) Connection endpoints must now include the <provider> element after the <portName> element.
+. SimplexReceptacle, MultiplexReceptacle, EventEmitter, and EventPublisher should be false
+. Facet and EventConsumer should be true
+
diff --git a/modules/CIAO/docs/Purify.html b/modules/CIAO/docs/Purify.html
new file mode 100644
index 00000000000..fff258db120
--- /dev/null
+++ b/modules/CIAO/docs/Purify.html
@@ -0,0 +1,72 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+ <head>
+ <title>Using Rational Purify with CIAO</title>
+ <!-- $Id$ -->
+ </head>
+ <body>
+ <h1>Using Rational Purify with CIAO</h1>
+ <p>This document is about using Purify with Visual Studio 7.1 to track down
+ memory leaks and other bugs in CIAO applications. For the Linux/Unix
+ environment, Valgrind is a better-suited tool - see Will Otte's documentation
+ on using Valgrind with CIAO in this directory.</p>
+ <p>Purify can be run from within Visual Studio, or standalone. The executable is
+ c:\Program Files\Rational\PurifyPlus\purifyw.exe. Typing this will bring up the
+ same Purify window you see if you run it from within Visual Studio. You can
+ install Purify from the web by going to <A href="file://\\Atlantis\software\RationSuiteEnterprise-v2003-06-12">
+ \\Atlantis\software\RationSuiteEnterprise-v2003-06-12</A> &nbsp;and clicking
+ on <code>C57BPML.zip</code>. This will install a whole bunch of Rational stuff
+ by default, so you will probaby want to deselect everything but PurifyPlus,
+ although Quantify is a good bottleneck-finder when you're trying to improve
+ performance, so that might be worth installing and playing with as well. During
+ the installation process, you'll be prompted for a mode of licensing. Select
+ the use of a license server, and then you'll be prompted for its address. Use <code>
+ rational.vuse.vanderbilt.edu</code>.</p>
+ <p>The option to exclude all modules in Windows directories will probably be set
+ by default, but if you notice memory leaks reported for Windows stuff, you
+ might want to double check this and turn it off. From the PurifyPlus menu bar
+ item in Visual Studio, it's at <b>PurifyPlus-&gt;Purify-&gt;Settings-&gt;DefaultSettings-&gt;PowerCheck</b>.
+ When run for the first time, Purify will instrument all libraries linked to the
+ executable. Select <b>PurifyPlus-&gt;Purify-&gt;Run</b>, and a window will pop
+ up prompting you for the executable name, command line options, and working
+ directory.</p>
+ <p>Purify's output will appear in the Visual Studio text editing window. This
+ output can be saved to the given filename. The type of error reported is
+ indicated by a 3-letter code - the most common are UMR (Unitialized Memory
+ Read), FMM (Freeing Mismatched Memory), and MLK (Memory Leak). Each of these
+ can be expanded to show the call stack. The depth of the call stack can be
+ modified in Settings if it's not deep enough. FMM messages will show both
+ allocation and deallocation call stacks.</p>
+ Quite often in CIAO, we will want to Purify a process that is spawned by
+ another process, and therefore not directly runnable in Purify. This is fairly
+ easy to do, but it must be done from the command line. If the name of the child
+ process we want to instrument is <code>child.exe</code>, then it can be
+ instrumented by typing
+ <br>
+ <code>purifyw /Run=no /Replace=yes child.exe</code><br>
+ This will rename the original executable as <code>child.exe.Original</code>,
+ and the new instrumented executable will be <code>child.exe</code>. Now when
+ you run the parent process under Purify, you'll see one window opened up in
+ Visual Studio's text editor for this process, and when the child process is
+ spawned, a second window will open. A couple of caveats to make this work
+ smoothly:
+ <ul>
+ <li>
+ Instrumented executables run 2 to 5 times slower than uninstrumented ones, so
+ any timeouts in the code should be extended accordingly. For example, if an
+ instrumented NodeApplication is spawned by NodeManager, add <code>-d 15</code> or
+ <code>-d 20</code>
+ to NodeManager's command line.
+ <li>
+ If an instrumented process is simply killed, there will probably be many
+ spurious error messages, mostly related to ORB resources that were not cleaned
+ up by a graceful shutdown. All processes tested with Purify should have a
+ graceful shutdown built in to eliminate these bogus memory leak messages.
+ </li>
+ </ul>
+ <hr>
+ <address>Jeff Parsons</address>
+ <!-- hhmts start --> Last modified: Oct&nbsp;3 2005
+ <!-- hhmts end -->
+ </body>
+</html>
diff --git a/modules/CIAO/docs/RT-Extension.html b/modules/CIAO/docs/RT-Extension.html
new file mode 100644
index 00000000000..3414a30b78e
--- /dev/null
+++ b/modules/CIAO/docs/RT-Extension.html
@@ -0,0 +1,132 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<!-- $Id$ -->
+<html> <head>
+<title>Using the Real-time Extension in CIAO</title>
+</head>
+
+<body>
+<h1>Using the Real-time Extension in CIAO</h1>
+
+<!-- ============================================================ -->
+<h3>Abstract</H3>
+
+The real-time extension support in CIAO enables application developers
+to deploy real-time applications by specifying real-time
+configurations as XML descriptors without modifying the component
+implementation. In fact, embedding the real-time configuration
+policies in component implementations decrease the reusability of the
+software components.
+
+Different types of real-time policy can be applied at different
+stage of the component development lifecycle, e.g.,
+<ul>
+ <li>Component implementation
+ <li>Component packaging
+ <li>Application composition
+ <li>Target platform configuration
+ <li>Deployment configuration
+</ul>
+
+Real-time policies can also be applied to various scope in an
+applications, e.g., many real-time policies can be associate with some
+or all of the following ORB mechanisms:
+<ul>
+ <li>ORBs
+ <li>POAs
+ <li>Threads
+ <li>Object references
+</ul>
+
+<!-- ============================================================ -->
+<h3>CIAO's Real-time Extension</h3>
+
+CIAO extends CCM's assembly descriptor to support the specifications
+of real-time policies. This mechanism allows you to allocate
+resources that are global to a RTComponentServer and to define real-time
+policies required by a component installation. Currently, CIAO
+support configuration of certain real-time policies at the POA level,
+i.e., in CCM's terminology, the container level. These policies
+include:
+
+<ol>
+ <li>Priority Model Policy
+ <li>Threadpool Policy
+ <li>Banded Connection Policy
+</ol>
+
+The kind of resources that are global to a RT component server that CIAO
+real-time extension specifies include:
+
+<ol>
+ <li>Threadpool
+ <li>Threadpool with lanes
+ <li>Connection bands
+</ol>
+
+<!-- ============================================================ -->
+<h3>Using the CIAO Real-time Extension</h3>
+
+Application developers can define the aforementioned Real-Time
+extension Descriptor (.rtd file) that CIAO defines to allocate
+resources and specify real-time policies. The Document Type
+Definition (DTD) for the real-time extension description is defined in
+this <a href="XML/ciao_rt_cad_ext.dtd">file</a>. Each .RTD file
+specifies the required resources and the policy definitions within a
+RTComponentServer.
+
+A RTComponentServer can be associated to a .RTD file. This is done by
+using the "extension" element with "class" attributed set to
+"RT-CAD-EXT", within a processcollocation or hostcollocation element.
+Here is an example:
+<code><pre>
+
+ &lt;processcollocation&gt;
+ .
+ .
+ .
+ &lt;extension class="RT-CAD-EXT" origin="CIAO"&gt;somefile.rtd&lt;/extension&gt;
+ .
+ &lt;/processcollocation&gt;
+</pre></code>
+
+Each .RTD file contains the two major subelements:
+<ul>
+ <li>&lt;rtresources&gt;: defines all the RT resources the assciating
+ RTComponentServer should provide.
+ <li>&lt;rtpolicysets&gt;: defines named collections of policies
+ (&lt;rtpolicyset&gt;) that apply to component installations in
+ the RTComponentServer.
+</ul>
+
+The &lt;rtpolicyset&gt;'s defined in the .RTD file can be associated
+to a component installation, i.e., a component placement within the
+RTComponentServer to which the .RTD file is associated. For example,
+
+<code><pre>
+ &lt;homeplacement&gt;
+ .
+ .
+ ,
+ &lt;extension class="RT-POLICY-SET"
+ origin="CIAO"&gt;A_POLICY_NAME&lt;/extension&gt;
+ .
+ &lt;/homeplacement&gt;
+</pre></code>
+
+<h3>Future Addition</h3>
+
+As mentioned earlier, RT policies can be applied at various stages of
+component-based deployment lifecycle and at different scope. For
+example, applying RTpolicies at the ORB level, or at the object
+reference level of a component receptacle. These extensions involve
+at least, extending the "appropriate" XML descriptor definition and
+extending the CIAO runtime, including core and/or the CIDL generated
+code to configure the policies. How other RT-related policies can be
+added will be reviewed in my thesis available shortly.
+
+<hr>
+<address>Nanbor Wang</address>
+<!-- hhmts start -->
+Last modified: Sun Nov 30 19:23:25 Mountain Standard Time 2003
+<!-- hhmts end -->
+</body> </html>
diff --git a/modules/CIAO/docs/TODO.html b/modules/CIAO/docs/TODO.html
new file mode 100644
index 00000000000..e1007725715
--- /dev/null
+++ b/modules/CIAO/docs/TODO.html
@@ -0,0 +1,240 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"><p>
+<!-- $Id$ -->
+<html> <head>
+<title>Component-Integrated ACE ORB - TODO list</title>
+</head>
+
+<body>
+<h1>Component-Integrated ACE ORB (CIAO) - TODO list</h1>
+
+The following is a prioritized list of things (with the highest
+priority items first) that the DOC group is working on. The expected
+date of accomplishments are also added as ETA (expected time of
+accomplishment) :
+
+<h3>Things to do:</h3>
+<ul>
+ <li> Integrate TAO's real-time event channel within the
+ container. Components can use this feature to communicate using
+ <CODE>eventtype</CODE>s a pub-sub mode. The code is available in a
+ branch and it needs to be integrated in to the main-trunk. (ETA -
+ 2004/08)
+ </li> <p>
+
+ <li> Allow components (i.e., assemblies) to be connected using the
+ NameService (ETA - 2004/08) </li> <p>
+
+ <li> Allow non-component enabled clients to access reference to a
+ component or an assembly using NameService (ETA - 2004/08) </li> <p>
+
+ <li>Allowing components to set attributes, atleast attributes of
+ basic types. As a first step we need to implement the
+ <CODE>StandardConfigurator</CODE> interface. The servant for the
+ <CODE> StandardConfigurator</CODE> interface should be implemented
+ and activated by the servant for the component. DAnCE can extract
+ the reference from the servant and use it to set attributes (ETA -
+ 2004/08)</li><p>
+
+<li>Now that we have supports for ccm_{activate,passivate,remove}, we
+ need to rethink how a container manages the lifecycle of all the
+ components/homes it hosts so all the servants related to a
+ component get destroyed "properly". The aforementioned
+ SessionComponent operations will also depend on the proper
+ lifecycle management. <p>
+
+ This includes making sure all components' appropriate
+ ccm_passivate and ccm_remove operations are called when the
+ ComponentServer is closing down.<p> (ETA - 2004/08) </li>
+
+ <li> Migrate RT features from RTComponentServer to DAnCE
+ (ETA - 2004/10) </li> <p>
+
+ <li> Static configuration of components using DAnCE (ETA - 2004/12)
+ </li> <p>
+
+ <li>We need a set of tests to make sure most (and later
+ all) of the data types are function correctly.
+ More importantly, we need to make sure all the
+ component keywords are supported okay. (ETA - 2004/07)<p>
+
+ <li>The naming convention used in <a
+ href="new_component.html">creating new component
+ instructions</a> and that used in <a
+ href="templates/">templates</a> do not match. (Files containing
+ glue code are named *_svnt.* and *GS.* respectively.) We need
+ to address that.(ETA - 07/2004) <p> </li>
+
+ <li> Retire the old assembly and deployment framework (ETA -
+ 2004/10)<p> </li>
+
+ <li>We need to review the implementation of servant glue code and
+ container implementations to make sure that they are
+ thread-safe, if the container calls for it. Currently, these
+ states are changed only by the deployment framework which always
+ runs in single thread, so it's not a serious problem. However,
+ it's perfectly legal to dynamically configure connnections, which
+ will be the case if we want to add new components or remove
+ components from the assembly.(ETA - 2004/09)<p>
+
+ <li> Add support for creating a thread pool within the the component
+ server. We don't have support for this, which has made our users
+ resort to spawning threads within the components, which breaks
+ portability of the executor code. (ETA - 2004/09) </li> <p>
+
+ <li> At present components in an assembly have no way of knowing
+ whether the assembly is complete or not. This becomes important when
+ there are hierarchical assemblies, and the assembly at a higher
+ level needs to pass on attrbute information to the assembly at a
+ lower level. The spec talks about <CODE> configuration_complete ()
+ </CODE> whose semantics are a bit unclear. We may have to use this
+ to inform the components that the configuration is infact
+ complete. (ETA - 2004/09)</li><p>
+
+
+<li> Need to develop tools that would allow components to be added
+ dynamically to an existing assembly and remove components
+ dynamically from an existing assembly (ETA - 2004/12) <li> <p>.
+
+<li>The CCM_Core libraries need to be refactored so regular CIAO
+ users no longer need to link to CIAO_Server but to
+ CIAO_Container library instead. Currently, the session
+ container implementation is throwing exceptions from the
+ deployment modules when it fails to install a home. But these
+ feature should really be implmented in the Deployment::Container
+ interface instead. (ETA - 2004/12)<p>
+
+<li>HomeRegistrar related files from the CCM_Core projects have
+ been removed. We need to move them into a new directory when we
+ get to a new HomeFinder/HomeRegistrar implementation. Notice
+ that the deployment framework will need to use the HomeRegistrar
+ interface to register components/homes. (ETA - 2004/12)<p>
+
+<li>We should add support for the unclassified container and use the
+ property file of some sort to configure the empty container.<p>
+
+ Process component (which have 1:1 servant to OID mapping) might
+ be useful too (no need to support PSS in this case?)<p>
+
+ Persistent object references/IDs can be useful for statically
+ configured DRE systems as they eliminate the initial handshakes
+ in a multi-process system and enable each process to start up
+ independently. (ETA - Not known) <p>
+
+ <li>The new <code>generate_component_mpc.pl</code> script should
+ invoke the <code>generate_export_file.pl</code> automatically
+ and created the necessary export files instead of only printing
+ out the hints on how to do that. (ETA - Not known)<p>
+
+ <li>We need a ConfigValues parser for extracting common name-value
+ info out of a ConfigValues sequence. This would be needed if
+ components have to set complex user defined types as attributes.
+ (ETA - not known). </li><p>
+
+ <li><b>Container Factory</b>: We need to provide a container factory
+ interface to decide what kind of container we need to use. Hmm,
+ isn't this the job of <code>ComponentServer</code> interface?
+ (ETA - not known)</li><p>
+
+ <li><b>ComponentInstallation</b>: This is a simple interface that
+ provides (UUID, Location) mappings. Both UUID and Location are
+ of string type. Since ACE supports UUID implementation, we can
+ probably use that to generate a UUID. Location should be URI, but
+ let's just map that to locations in filesystem (pathnames) for
+ now. So we will most likely need to provide more downloading
+ mechanisms in the future, e.g., http, ftp, etc. <p>
+
+ ComponentInstallation is the interface assembly mechanism used
+ to interact with the deployment mechanism. We are free to
+ implement the deployment mechanism (i.e., shipping of code to
+ various locations of application domains) the way we like but
+ the assembly mechanism depends on this interface to determine
+ where to fetch a specific implementation.<p>
+
+ One thing that we really need is an installation tool set which
+ can be used to manage remote installation, by parsing various
+ XML descriptors and either push or pull the right implmentation
+ for a certain host in the list of hosts the component need to be
+ installed. According to the CCM spec., ComponentInstallation
+ interface implementation can retrieve a implementation (DLL) on
+ an on-demand basis. Therefore, there is probably no need to
+ push the appropriate DLL over right away when we feed some
+ descriptors into the installation tool. The tool, however,
+ should accurately extract the correct OS/compiler information
+ and inform the ComponentInstallation impl which and where to
+ fetch the right implmentation for the host it is running on. (ETA - not
+ known)<p>
+ <li> This is a set of the to-do associated with the DAnCE implementation.
+ <p>
+ <ul>
+ <li>We need to put the ComponentServer layer back in. In the current
+ implementation we use NodeApplication as both the Session Container
+ and the ComponentServer. We need to seperate the two
+ entities so we can hook any Container with the
+ ComponentServer. This change is essential to the RT
+ configuration and for the future of CIAO.<p>
+
+ <li>Bala added ciao_[pre|post]_activate to the Session Component to
+ force the order of actions upon start-up, but this will not
+ work with the new DnC framework. We need to change the DnC framework
+ a bit to make this feature available again.<p>
+
+ <li>We need to work on the Resource Management process in
+ DAnCE. Right now this part of the DnC spec is omitted in our
+ implementation.<p>
+
+ <li>We need to work on the packaging process more so we can ship
+ binaries around when the dll/so is not available in the
+ local node.<p>
+ </ul>
+
+</ul>
+
+<h3>Cool ideas</h3>
+<ul>
+ <li>Currently, developing a component will create 3 DLLs, one for
+ the client side stuff, one for the servant glue code, and one
+ for the executors. We need to figure out a way to automate
+ these stuff. MPC is a good starting point to generate scripts
+ to create project templates.<p>
+
+ <li>Management of <code>ComponentInstallation</code> can be done
+ using a CORBAscript of some sort as this involve mostly
+ registering and unregistering of locations of component
+ implementations.<p>
+</ul>
+
+<h3>Finished Work</h3>
+<ul>
+ <li>The exception returned from CIAO_Daemon when it fails to
+ locate a DLL is quite useless to say the least. It needs
+ fixing.<p>
+
+ CIAO now provides more meaningful error message now.<p>
+
+ <li>We should create a new workspace/target in TAO such as CIAO_ONLY
+ to simplify the process of using CIAO. Currently, you have to
+ checkout the README file in CIAO_ROOT to figure out what TAO
+ modules are required by CIAO.<p>
+
+ A new target "CIAO_Core" is now available in ACE's top level
+ Makefile.<p>
+
+ <li>We need better debug info and a way to control how different
+ level of debug info are generated in CIAO.<p> Some preliminary
+ support using the <a href="EnvVars.html">environment
+ variable</a> <code>CIAO_DEBUG_LEVEL</code> has been added.<P>
+
+ <li>Miminal implementation of CIDL compiler.<p>
+
+ <li>CCM core workspace now contains 3 different DLLs:
+ <UL>
+ <li>CCM_Client - Needed by CCM-awared client
+ <li>CCM_Container - Needed by executors and servers
+ <li>CCM_Server - Needed by servers and CIAO tools
+ </UL><p>
+
+ <li>A SessionContainer implementation.<p>
+
+</ul>
+
+</body> </html>
diff --git a/modules/CIAO/docs/Trace.html b/modules/CIAO/docs/Trace.html
new file mode 100644
index 00000000000..001cddd007e
--- /dev/null
+++ b/modules/CIAO/docs/Trace.html
@@ -0,0 +1,32 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<!-- $Id$ -->
+ <title>CIAO Logging facility</title>
+</head>
+<body>
+<h1>CIAO Logging Facility
+</h1>
+Based on the various logging techniques provided by ACE mechanism, CIAO
+has introduced some new logging macros to assist CIAO developers in
+diagnosing CIAO codes.<br>
+<ul>
+ <li><span style="font-weight: bold;">CIAO_TRACE<br>
+ </span>&nbsp;&nbsp;&nbsp; By placing CIAO_TRACE at the beginning of
+a CIAO function or method, you can get the tracing message of when
+these functions are entered and when they are exited at runtime. To
+enable this feature, however, you need to set CIAO_NTRACE to 0 in
+$ACE_ROOT\ace\config.h. CIAO_TRACE works in a identical way as
+ACE_TRACE. The only distinction is that CIAO_TRACE will output the the
+tracing messages for CIAO projects only while dumping the excessive
+messages from ACE on top of which CIAO is built. <br>
+ </li>
+</ul>
+<hr>
+<address>Ming Xiong<br>
+Last modified: Thur Aug 12:50 am 2005
+</address>
+<!-- hhmts start -->
+<!-- hhmts end -->
+</body>
+</html>
diff --git a/modules/CIAO/docs/XML/ciao_rt_cad_ext.dtd b/modules/CIAO/docs/XML/ciao_rt_cad_ext.dtd
new file mode 100644
index 00000000000..7877afe2151
--- /dev/null
+++ b/modules/CIAO/docs/XML/ciao_rt_cad_ext.dtd
@@ -0,0 +1,93 @@
+<!--
+ $Id$
+
+ DTD for CIAO ComponentAssembly real-time extension.
+ The extension for this type of XML document should be .RTD
+
+ A component server can be associated to one conforming XML
+ descriptor file of this DTD via the <extension> tag under
+ <hostcollocation>, <processcollocation> as
+
+ <extension class="RT-CAD-EXT"
+ origin="CIAO">pathname_to_xml_file.xml</extension>
+
+ The root element is <rtcad-ext>.
+
+ The <extension> tag under <homeplacement> element can be used to
+ specify the <rtpolicyset> named in this file (using rtpolicyset's
+ id attribute.) For example,
+
+ <extension class="RT-POLICY-SET"
+ origin="CIAO">IDREF_of_some_rtpolicyset</extension>
+
+-->
+
+<!ELEMENT rtcad_ext ( rtresources?, rtpolicyset+ ) >
+
+<!-- RT Resources grammar definitions -->
+
+<!ELEMENT rtresources (threadpool | threadpoolwithlanes | connectionbands)* >
+
+<!ELEMENT threadpool EMPTY>
+<!ATTLIST threadpool
+ id ID #REQUIRED
+ stacksize CDATA #REQUIRED
+ static_threads CDATA #REQUIRED
+ dynamic_threads CDATA #REQUIRED
+ priority CDATA #REQUIRED
+ buffering (yes | no) #REQUIRED
+ max_buffer CDATA #REQUIRED
+ buffer_size CDATA #REQUIRED >
+
+<!ELEMENT threadpoolwithlanes (lane+) >
+<!ATTLIST threadpoolwithlanes
+ id ID #REQUIRED
+ stacksize CDATA #REQUIRED
+ borrowing (yes | no) #REQUIRED
+ buffering (yes | no) #REQUIRED
+ max_buffer CDATA #REQUIRED
+ buffer_size CDATA #REQUIRED >
+
+<!ELEMENT lane EMPTY>
+<!ATTLIST lane
+ priority CDATA #REQUIRED
+ static_threads CDATA #REQUIRED
+ dynamic_threads CDATA #REQUIRED >
+
+<!ELEMENT connectionbands (band+) >
+<!ATTLIST connectionbands
+ id ID #REQUIRED >
+
+<!ELEMENT band EMPTY>
+<!ATTLIST band
+ low CDATA #REQUIRED
+ high CDATA #REQUIRED >
+
+<!-- RT Policy_Set grammar definitions -->
+<!-- Each type of policy in rtpoliyset can only appear once -->
+<!ELEMENT rtpolicyset (priority_model_policy,
+ threadpool_policy,
+ banded_connection_policy)+ >
+<!ATTLIST rtpolicyset
+ id ID #REQUIRED>
+
+<!ELEMENT priority_model_policy EMPTY>
+<!ATTLIST priority_model_policy
+ type (server_declared | client_propagated) #REQUIRED
+ priority CDATA #REQUIRED>
+
+<!ELEMENT threadpool_policy EMPTY>
+<!--
+ "idref" must be previously defined by the id attribute of
+ either <threadpool> or <threadpoollanes> element
+-->
+<!ATTLIST threadpool_policy
+ idref IDREF #REQUIRED>
+
+<!ELEMENT banded_connection_policy EMPTY>
+<!--
+ "idref" must be previously defined by the id attribute of
+ <connectionbands> element.
+-->
+<!ATTLIST banded_connection_policy
+ idref IDREF #REQUIRED> \ No newline at end of file
diff --git a/modules/CIAO/docs/XML/componentassembly.dtd b/modules/CIAO/docs/XML/componentassembly.dtd
new file mode 100644
index 00000000000..d61fb47505f
--- /dev/null
+++ b/modules/CIAO/docs/XML/componentassembly.dtd
@@ -0,0 +1,367 @@
+<!-- DTD for Component Assembly Descriptor. The root element
+ is <componentassembly>. Elements are listed
+ alphabetically.
+ -->
+
+<!-- Simple xml link attributes based on W3C WD-xlink-19980303.
+ May change slightly when XLL is finalized.
+ -->
+<!ENTITY % simple-link-attributes "
+ xml:link CDATA #FIXED 'SIMPLE'
+ href CDATA #REQUIRED
+" >
+
+<!ELEMENT componentassembly
+ ( description?
+ , componentfiles
+ , partitioning
+ , connections?
+ , extension*
+ ) >
+<!ATTLIST componentassembly
+ id ID #REQUIRED
+ derivedfrom CDATA #IMPLIED >
+
+<!-- If file not available locally, then download via codebase link -->
+<!ELEMENT codebase EMPTY >
+<!ATTLIST codebase
+ filename CDATA #IMPLIED
+ %simple-link-attributes; >
+
+<!ELEMENT componentfile
+ ( fileinarchive
+ | codebase
+ | link
+ ) >
+<!ATTLIST componentfile
+ id ID #REQUIRED
+ type CDATA #IMPLIED >
+
+<!ELEMENT componentfileref EMPTY >
+<!ATTLIST componentfileref
+ idref CDATA #REQUIRED >
+
+<!ELEMENT componentfiles
+ ( componentfile+
+ ) >
+
+<!ELEMENT componentimplref EMPTY >
+<!ATTLIST componentimplref
+ idref CDATA #REQUIRED >
+
+<!ELEMENT componentinstantiation
+ ( usagename?
+ , componentproperties?
+ , registercomponent*
+ , extension*
+ ) >
+<!ATTLIST componentinstantiation
+ id ID #REQUIRED >
+
+<!ELEMENT componentinstantiationref EMPTY >
+<!ATTLIST componentinstantiationref
+ idref CDATA #REQUIRED >
+
+<!ELEMENT componentproperties
+ ( fileinarchive
+ | codebase
+ ) >
+
+<!ELEMENT componentsupportedinterface
+ ( componentinstantiationref
+ | findby
+ )>
+
+<!ELEMENT connectevent
+ ( ( consumesport
+ | existinginterface
+ )
+ , ( emitsport
+ | publishesport
+ )
+ ) >
+<!ATTLIST connectevent
+ id ID #IMPLIED >
+
+<!ELEMENT connecthomes
+ ( proxyhome
+ , destinationhome
+ ) >
+<!ATTLIST connecthomes
+ id ID #IMPLIED >
+
+<!ELEMENT connectinterface
+ ( usesport
+ , ( providesport
+ | componentsupportedinterface
+ | existinginterface
+ | homeinterface
+ )
+ ) >
+<!ATTLIST connectinterface
+ id ID #IMPLIED >
+
+<!ELEMENT connections
+ ( connectinterface
+ | connectevent
+ | connecthomes
+ | extension
+ )* >
+
+<!ELEMENT consumesidentifier ( #PCDATA ) >
+
+<!ELEMENT consumesport
+ ( consumesidentifier
+ , ( componentinstantiationref
+ | findby
+ )
+ )>
+
+<!ELEMENT description ( #PCDATA ) >
+
+<!ELEMENT destination ( #PCDATA ) >
+
+<!ELEMENT destinationhome
+ ( homeplacementref
+ | findby
+ ) >
+
+<!ELEMENT emitsidentifier ( #PCDATA ) >
+
+<!ELEMENT emitsport
+ ( emitsidentifier
+ , ( componentinstantiationref
+ | findby
+ )
+ )>
+
+<!ELEMENT executableplacement
+ ( usagename?
+ , componentfileref
+ , componentimplref?
+ , invocation?
+ , destination?
+ , extension*
+ ) >
+<!ATTLIST executableplacement
+ id ID #REQUIRED
+ cardinality CDATA "1" >
+
+<!ELEMENT existinginterface
+ ( findby )>
+
+<!-- The "extension" element is used for vendor-specific extensions -->
+<!ELEMENT extension (#PCDATA) >
+<!ATTLIST extension
+ class CDATA #REQUIRED
+ origin CDATA #REQUIRED
+ id ID #IMPLIED
+ extra CDATA #IMPLIED
+ html-form CDATA #IMPLIED >
+
+<!-- The "fileinarchive" element is used to specify a file in the archive.
+ If the file is independent of an archive then link is used to point to
+ the archive in which the file may be found.
+ -->
+<!ELEMENT fileinarchive
+ ( link? ) >
+<!ATTLIST fileinarchive
+ name CDATA #REQUIRED >
+
+<!ELEMENT findby
+ ( namingservice
+ | stringifiedobjectref
+ | traderquery
+ | homefinder
+ | extension
+ ) >
+
+<!ELEMENT homefinder EMPTY >
+<!ATTLIST homefinder
+ name CDATA #REQUIRED >
+
+<!ELEMENT homeinterface
+ ( homeplacementref
+ | findby
+ )>
+
+<!ELEMENT homeplacement
+ ( usagename?
+ , componentfileref
+ , componentimplref?
+ , homeproperties?
+ , componentproperties?
+ , registerwithhomefinder*
+ , registerwithnaming*
+ , registerwithtrader*
+ , componentinstantiation*
+ , destination?
+ , extension*
+ ) >
+<!ATTLIST homeplacement
+ id ID #REQUIRED
+ cardinality CDATA "1" >
+
+<!ELEMENT homeplacementref EMPTY >
+<!ATTLIST homeplacementref
+ idref CDATA #REQUIRED >
+
+<!ELEMENT homeproperties
+ ( fileinarchive
+ | codebase
+ ) >
+
+<!ELEMENT hostcollocation
+ ( usagename?
+ , impltype?
+ , ( homeplacement
+ | executableplacement
+ | processcollocation
+ | extension
+ )+
+ , destination?
+ ) >
+<!ATTLIST hostcollocation
+ id ID #IMPLIED
+ cardinality CDATA "1" >
+
+<!ELEMENT impltype EMPTY >
+<!ATTLIST impltype
+ language CDATA #REQUIRED
+ version CDATA #IMPLIED >
+
+<!ELEMENT invocation EMPTY >
+<!ATTLIST invocation
+ args CDATA #REQUIRED >
+
+<!ELEMENT link ( #PCDATA ) >
+<!ATTLIST link
+ %simple-link-attributes; >
+
+<!ELEMENT namingservice EMPTY >
+<!ATTLIST namingservice
+ name CDATA #REQUIRED >
+
+<!ELEMENT partitioning
+ ( homeplacement
+ | executableplacement
+ | processcollocation
+ | hostcollocation
+ | extension
+ )* >
+
+<!ELEMENT processcollocation
+ ( usagename?
+ , impltype?
+ , ( homeplacement
+ | extension
+ )+
+ , destination?
+ ) >
+<!ATTLIST processcollocation
+ id ID #IMPLIED
+ cardinality CDATA "1" >
+
+<!ELEMENT providesidentifier ( #PCDATA ) >
+
+<!ELEMENT providesport
+ ( providesidentifier
+ , ( componentinstantiationref
+ | findby
+ )
+ ) >
+
+<!ELEMENT proxyhome
+ ( homeplacementref
+ | findby
+ ) >
+
+<!ELEMENT publishesidentifier ( #PCDATA ) >
+
+<!ELEMENT publishesport
+ ( publishesidentifier
+ , ( componentinstantiationref
+ | findby
+ )
+ ) >
+
+<!ELEMENT registercomponent
+ ( ( providesidentifier
+ | consumesidentifier
+ )?
+ , ( registerwithnaming
+ | registerwithtrader
+ )+
+ ) >
+
+<!ELEMENT registerwithhomefinder EMPTY >
+<!ATTLIST registerwithhomefinder
+ name CDATA #REQUIRED >
+
+<!ELEMENT registerwithnaming EMPTY >
+<!ATTLIST registerwithnaming
+ name CDATA #IMPLIED >
+
+<!ELEMENT registerwithtrader
+ ( traderexport ) >
+<!ATTLIST registerwithtrader
+ tradername CDATA #IMPLIED >
+
+<!-- DEVNOTE: is tradername necessary? -->
+<!-- DEVNOTE: Should trader properties be specified in component file?
+ And in assembly file? -->
+
+<!ELEMENT stringifiedobjectref ( #PCDATA ) >
+
+<!ELEMENT traderconstraint ( #PCDATA ) >
+
+<!ELEMENT traderexport
+ ( traderservicetypename
+ , traderproperties
+ ) >
+
+<!ELEMENT traderpolicy
+ ( traderpolicyname
+ , traderpolicyvalue
+ ) >
+
+<!ELEMENT traderpolicyname ( #PCDATA ) >
+
+<!ELEMENT traderpolicyvalue ( #PCDATA ) >
+
+<!ELEMENT traderpreference ( #PCDATA ) >
+
+<!ELEMENT traderproperties
+ ( traderproperty+ ) >
+
+<!ELEMENT traderproperty
+ ( traderpropertyname
+ , traderpropertyvalue
+ ) >
+
+<!ELEMENT traderpropertyname ( #PCDATA ) >
+
+<!ELEMENT traderpropertyvalue ( #PCDATA ) >
+
+<!ELEMENT traderquery
+ ( traderservicetypename
+ , traderconstraint
+ , traderpreference?
+ , traderpolicy*
+ , traderspecifiedprop*
+ ) >
+
+<!ELEMENT traderservicetypename ( #PCDATA ) >
+
+<!ELEMENT traderspecifiedprop ( #PCDATA ) >
+
+<!ELEMENT usagename ( #PCDATA ) >
+
+<!ELEMENT usesidentifier ( #PCDATA ) >
+
+<!ELEMENT usesport
+ ( usesidentifier
+ , ( componentinstantiationref
+ | findby
+ )
+ ) >
diff --git a/modules/CIAO/docs/XML/corbacomponent.dtd b/modules/CIAO/docs/XML/corbacomponent.dtd
new file mode 100644
index 00000000000..fd5ec98f377
--- /dev/null
+++ b/modules/CIAO/docs/XML/corbacomponent.dtd
@@ -0,0 +1,316 @@
+<!-- DTD for CORBA Component Descriptor. The root element is
+ <corbacomponent>. Elements are listed alphabetically.
+-->
+
+<!-- Simple xml link attributes based on W3C WD-xlink-19980303.
+ May change when XLL is finalized. -->
+
+<!ENTITY % simple-link-attributes "
+ xml:link CDATA #FIXED 'SIMPLE'
+ href CDATA #REQUIRED
+">
+
+<!ELEMENT accessmode EMPTY>
+<!ATTLIST accessmode
+ mode (READ_ONLY|READ_WRITE) #REQUIRED >
+
+<!ELEMENT componentfeatures
+ ( inheritscomponent?
+ , supportsinterface*
+ , ports
+ , operationpolicies?
+ , extension*
+ ) >
+<!ATTLIST componentfeatures
+ name CDATA #REQUIRED
+ repid CDATA #REQUIRED >
+
+<!ELEMENT componentkind
+ ( service
+ | session
+ | process
+ | entity
+ | unclassified
+ ) >
+
+<!ELEMENT componentproperties
+ ( fileinarchive
+ ) >
+
+<!ELEMENT componentrepid EMPTY >
+<!ATTLIST componentrepid
+ repid CDATA #IMPLIED >
+
+<!ELEMENT containermanagedpersistence
+ ( storagehome
+ , pssimplementation?
+ , accessmode
+ , psstransaction
+ , params?
+ ) >
+
+<!ELEMENT configurationcomplete EMPTY >
+<!ATTLIST configurationcomplete
+ set ( true | false ) #REQUIRED >
+
+<!ELEMENT consumes
+ ( eventpolicy
+ , extension* ) >
+<!ATTLIST consumes
+ consumesname CDATA #REQUIRED
+ eventtype CDATA #REQUIRED >
+
+<!ELEMENT corbacomponent
+ ( corbaversion
+ , cormponentrepid
+ , homerepid
+ , componentkind
+ , interop?
+ , transaction?
+ , security?
+ , threading
+ , configurationcomplete
+ , extendedpoapolicy*
+ , repository?
+ , segment*
+ , componentproperties?
+ , homeproperties?
+ , homefeatures+
+ , componentfeatures+
+ , interface*
+ , extension*
+ ) >
+
+<!ELEMENT corbaversion (#PCDATA) >
+
+<!ELEMENT description ( #PCDATA ) >
+
+<!ELEMENT emits
+ ( eventpolicy
+ , extension* ) >
+<!ATTLIST emits
+ emitsname CDATA #REQUIRED
+ eventtype CDATA #REQUIRED >
+
+<!ELEMENT entity
+ ( servant ) >
+
+<!ELEMENT eventpolicy EMPTY>
+<!ATTLIST eventpolicy
+ policy ( normal | default | transaction ) #IMPLIED>
+
+<!ELEMENT extendedpoapolicy EMPTY>
+<!ATTLIST extendedpoapolicy
+ name CDATA #REQUIRED
+ value CDATA #REQUIRED >
+
+<!-- The "extension" element is used for vendor-specific extensions -->
+<!ELEMENT extension (#PCDATA) >
+<!ATTLIST extension
+ class CDATA #REQUIRED
+ origin CDATA #REQUIRED
+ id ID #IMPLIED
+ extra CDATA #IMPLIED
+ html-form CDATA #IMPLIED >
+
+<!-- The "fileinarchive" element is used to specify a file in the
+ archive. If the file is in another archive then link is used to
+ point to the archive in which the file may be found.
+ -->
+<!ELEMENT fileinarchive
+ ( link? ) >
+<!ATTLIST fileinarchive
+ name CDATA #REQUIRED >
+
+<!ELEMENT homefeatures
+ ( inheritshome?
+ , operationpolicies?
+ , extension* ) >
+<!ATTLIST homefeatures
+ name CDATA #REQUIRED
+ repid CDATA #REQUIRED >
+
+<!ELEMENT homeproperties
+ ( fileinarchive
+ ) >
+
+<!ELEMENT homerepid EMPTY >
+<!ATTLIST homerepid
+ repid CDATA #IMPLIED >
+
+<!ELEMENT inheritscomponent EMPTY>
+<!ATTLIST inheritscomponent
+ repid CDATA #REQUIRED>
+
+<!ELEMENT inheritshome EMPTY>
+<!ATTLIST inheritshome
+ repid CDATA #REQUIRED>
+
+<!ELEMENT inheritsinterface EMPTY>
+<!ATTLIST inheritsinterface
+ repid CDATA #REQUIRED>
+
+<!ELEMENT ins EMPTY>
+<!ATTLIST ins
+ name CDATA #REQUIRED >
+
+<!ELEMENT interface
+ ( inheritsinterface*
+ , operationpolicies? ) >
+<!ATTLIST interface
+ name CDATA #REQUIRED
+ repid CDATA #REQUIRED >
+
+<!ELEMENT interop EMPTY>
+<!ATTLIST interop
+ type CDATA #REQUIRED
+ direction ( hasview | isview ) #REQUIRED
+ descriptor CDATA #REQUIRED >
+
+<!ELEMENT link ( #PCDATA ) >
+<!ATTLIST link
+ %simple-link-attributes; >
+
+<!ELEMENT objref EMPTY>
+<!ATTLIST objref
+ string CDATA #REQUIRED >
+
+<!ELEMENT operation
+ ( transaction?
+ , requiredrights? ) >
+<!ATTLIST operation
+ name CDATA #REQUIRED >
+
+<!-- an operation name of "*" specifies all operations in the current
+scope -->
+<!ELEMENT operationpolicies
+ ( operation+ ) >
+
+<!ELEMENT param EMPTY >
+<!ATTLIST param
+ name CDATA #REQUIRED
+ value CDATA #REQUIRED >
+
+<!ELEMENT params (param+) >
+
+<!ELEMENT poapolicies EMPTY>
+<!ATTLIST poapolicies
+ thread (ORB_CTRL_MODEL | SINGLE_THREAD_SAFE ) #REQUIRED
+ lifespan (TRANSIENT | PERSISTENT ) #REQUIRED
+ iduniqueness (UNIQUE_ID | MULTIPLE_ID) #REQUIRED
+ idassignment (USER_ID | SYSTEM_ID) #REQUIRED
+ servantretention (RETAIN | NON_RETAIN) #REQUIRED
+ requestprocessing (USE_ACTIVE_OBJECT_MAP_ONLY
+ |USE_DEFAULT_SERVANT
+ |USE_SERVANT_MANAGER) #REQUIRED
+ implicitactivation (IMPLICIT_ACTIVATION
+ |NON_IMPLICIT_ACTIVATION) #REQUIRED >
+
+<!ELEMENT ports
+ ( uses
+ | provides
+ | emits
+ | publishes
+ | consumes
+ )* >
+
+<!ELEMENT process
+ ( servant ) >
+
+<!ELEMENT provides
+ ( operationpolicies?
+ , extension* ) >
+<!ATTLIST provides
+ providesname CDATA #REQUIRED
+ repid CDATA #REQUIRED
+ facettag CDATA #REQUIRED >
+
+<!ELEMENT pssimplementation EMPTY>
+<!ATTLIST pssimplementation
+ id CDATA #REQUIRED >
+
+<!ELEMENT psstransaction (psstransactionisolationlevel?) >
+<!ATTLIST psstransaction
+ policy (TRANSACTIONAL|NON_TRANSACTIONAL) #REQUIRED >
+
+<!ELEMENT psstransactionisolationlevel EMPTY>
+<!ATTLIST psstransactionisolationlevel
+ level (READ_UNCOMMITTED|READ_COMMITTED|REPEATABLE_READ|SERIALIZABLE)
+ #REQUIRED >
+
+<!ELEMENT publishes
+ ( eventpolicy
+ , extension* ) >
+<!ATTLIST publishes
+ publishesname CDATA #REQUIRED
+ eventtype CDATA #REQUIRED >
+
+<!ELEMENT repository
+ ( ins
+ | objref
+ | link
+ ) >
+<!ATTLIST repository
+ type CDATA #IMPLIED >
+
+<!ELEMENT requiredrights
+ ( right* ) >
+
+<!ELEMENT right
+ ( description? ) >
+<!ATTLIST right
+ name CDATA #REQUIRED >
+
+<!ELEMENT security
+ ( requiredrights? ) >
+<!ATTLIST security
+ rightsfamily CDATA #REQUIRED
+ rightscombinator (secallrights | secanyrights) #REQUIRED >
+
+<!ELEMENT segment
+ ( segmentmember+
+ , containermanagedpersistence?
+ , extension*
+ ) >
+<!ATTLIST segment
+ name CDATA #REQUIRED
+ segmenttag CDATA #REQUIRED >
+
+<!ELEMENT segmentmember EMPTY>
+<!ATTLIST segmentmember
+ facettag CDATA #REQUIRED >
+
+<!ELEMENT servant EMPTY >
+<!ATTLIST servant
+ lifetime (component|method|transaction|container) #REQUIRED >
+
+<!ELEMENT service EMPTY >
+
+<!ELEMENT session
+ ( servant ) >
+
+<!ELEMENT storagehome EMPTY>
+<!ATTLIST storagehome
+ id CDATA #REQUIRED >
+
+<!ELEMENT supportsinterface
+ ( operationpolicies?
+ , extension* ) >
+<!ATTLIST supportsinterface
+ repid CDATA #REQUIRED >
+
+<!ELEMENT threading EMPTY>
+<!ATTLIST threading
+ policy ( serialize | multithread ) #REQUIRED >
+
+<!ELEMENT transaction EMPTY >
+<!ATTLIST transaction
+ use (self-managed|not-supported|required|supports|requiresnew|
+ mandatory|never) #REQUIRED >
+<!ELEMENT unclassified
+ ( poapolicies ) >
+
+<!ELEMENT uses ( extension* ) >
+<!ATTLIST uses
+ usesname CDATA #REQUIRED
+ repid CDATA #REQUIRED >
diff --git a/modules/CIAO/docs/XML/properties.dtd b/modules/CIAO/docs/XML/properties.dtd
new file mode 100644
index 00000000000..adfe8699fb7
--- /dev/null
+++ b/modules/CIAO/docs/XML/properties.dtd
@@ -0,0 +1,87 @@
+<!-- DTD for CORBA Component property file. The root element
+ is <properties>. Elements are listed alphabetically.
+-->
+
+<!ELEMENT choice ( #PCDATA ) >
+
+<!ELEMENT choices ( choice | range )+ ) >
+
+<!ELEMENT defaultvalue ( #PCDATA ) >
+
+<!ELEMENT description ( #PCDATA ) >
+
+<!ELEMENT value ( #PCDATA ) >
+
+<!ELEMENT properties
+ ( description?
+ , ( simple
+ | sequence
+ | struct
+ | valuetype
+ )*
+ ) >
+
+<!ELEMENT range (value, value) >
+
+<!ELEMENT simple
+ ( description?
+ , value
+ , choices?
+ , defaultvalue?
+ ) >
+<!ATTLIST simple
+ name CDATA #IMPLIED
+ type ( boolean
+ | char
+ | double
+ | float
+ | short
+ | long
+ | objref
+ | octet
+ | string
+ | ulong
+ | ushort
+ | longlong
+ | ulonglong
+ | wchar
+ | wstring
+ | fixed
+ ) #REQUIRED >
+
+<!ELEMENT sequence
+ ( description?
+ , ( simple*
+ | struct*
+ | sequence*
+ | valuetype*
+ )
+ ) >
+<!ATTLIST sequence
+ name CDATA #IMPLIED
+ type CDATA #REQUIRED >
+
+<!ELEMENT struct
+ ( description?
+ , ( simple
+ | sequence
+ | struct
+ | valuetype
+ )*
+ ) >
+<!ATTLIST struct
+ name CDATA #IMPLIED
+ type CDATA #REQUIRED >
+
+<!ELEMENT valuetype
+ ( description?
+ , ( simple
+ | sequence
+ | struct
+ | valuetype
+ )*
+ ) >
+<!ATTLIST valuetype
+ name CDATA #IMPLIED
+ type CDATA #REQUIRED
+ primarykey (true | false) "false" >
diff --git a/modules/CIAO/docs/XML/softpkg.dtd b/modules/CIAO/docs/XML/softpkg.dtd
new file mode 100644
index 00000000000..ee87b811cc6
--- /dev/null
+++ b/modules/CIAO/docs/XML/softpkg.dtd
@@ -0,0 +1,220 @@
+<!-- DTD for softpkg. Used to describe CORBA Component
+ implementations. The root element is <softpkg>.
+ Elements are listed alphabetically.
+ -->
+<!-- Revision $Id$ -->
+<!-- Simple xml link attributes based on W3C WD-xlink-19980303.
+ May change when XLL is finalized. -->
+
+<!ENTITY % simple-link-attributes "
+ xml:link CDATA #FIXED 'SIMPLE'
+ href CDATA #REQUIRED
+">
+
+<!ELEMENT author
+ ( name
+ | company
+ | webpage
+ )* >
+
+<!ELEMENT code
+ ( ( codebase
+ | fileinarchive
+ | link
+ )
+ , entrypoint?
+ , usage?
+ ) >
+<!ATTLIST code
+ type CDATA #IMPLIED >
+
+<!-- If file not available locally, then download via codebase link -->
+<!ELEMENT codebase EMPTY >
+<!ATTLIST codebase
+ filename CDATA #IMPLIED
+ %simple-link-attributes; >
+
+<!ELEMENT compiler EMPTY >
+<!ATTLIST compiler
+ name CDATA #REQUIRED
+ version CDATA #IMPLIED >
+
+<!ELEMENT company ( #PCDATA ) >
+
+<!ELEMENT dependency
+ ( softpkgref
+ | codebase
+ | fileinarchive
+ | localfile
+ | name
+ | valuetypefactory
+ ) >
+<!ATTLIST dependency
+ type CDATA #IMPLIED
+ action (assert | install) "assert">
+
+<!ELEMENT description ( #PCDATA ) >
+
+<!ELEMENT descriptor
+ ( link
+ | fileinarchive
+ ) >
+<!ATTLIST descriptor
+ type CDATA #IMPLIED>
+
+<!ELEMENT entrypoint ( #PCDATA) >
+
+<!-- The "extension" element is used for vendor-specific extensions -->
+<!ELEMENT extension (#PCDATA) >
+<!ATTLIST extension
+ class CDATA #REQUIRED
+ origin CDATA #REQUIRED
+ id ID #IMPLIED
+ extra CDATA #IMPLIED
+ html-form CDATA #IMPLIED >
+
+<!-- The "fileinarchive" element is used to specify a file in the archive.
+ If the file is in another archive then link is used to point to
+ the archive in which the file may be found.
+ -->
+<!ELEMENT fileinarchive
+ ( link? ) >
+<!ATTLIST fileinarchive
+ name CDATA #REQUIRED >
+
+<!ELEMENT idl
+ ( link
+ | fileinarchive
+ | repository
+ ) >
+<!ATTLIST idl
+ id CDATA #REQUIRED
+ homeid CDATA #REQUIRED >
+
+<!ELEMENT implementation
+ ( description
+ | code
+ | compiler
+ | dependency
+ | descriptor
+ | extension
+ | programminglanguage
+ | humanlanguage
+ | os
+ | propertyfile
+ | processor
+ | runtime
+ )* >
+<!ATTLIST implementation
+ id ID #IMPLIED
+ variation CDATA #IMPLIED >
+
+<!ELEMENT implref EMPTY >
+<!ATTLIST implref
+ idref CDATA #REQUIRED >
+
+<!ELEMENT ins EMPTY >
+<!ATTLIST inc
+ name CDATA #REQUIRED >
+
+<!ELEMENT humanlanguage EMPTY >
+<!ATTLIST humanlanguage
+ name CDATA #REQUIRED >
+
+<!ELEMENT license ( #PCDATA ) >
+<!ATTLIST license
+ %simple-link-attributes; >
+
+<!ELEMENT link ( #PCDATA ) >
+<!ATTLIST link
+ %simple-link-attributes; >
+
+<!-- A file that should be available in the local environment -->
+<!ELEMENT localfile EMPTY >
+<!ATTLIST localfile
+ name CDATA #REQUIRED >
+
+<!ELEMENT name ( #PCDATA ) >
+
+<!ELEMENT objref EMPTY >
+<!ATTLIST objref
+ string CDATA #REQUIRED >
+
+<!ELEMENT os EMPTY >
+<!ATTLIST os
+ name CDATA #REQUIRED
+ version CDATA #IMPLIED>
+
+<!ELEMENT pkgtype ( #PCDATA ) >
+<!ATTLIST pkgtype
+ version CDATA #IMPLIED >
+
+<!ELEMENT processor EMPTY >
+<!ATTLIST processor
+ name CDATA #REQUIRED >
+
+<!ELEMENT programminglanguage EMPTY>
+<!ATTLIST programminglanguage
+ name CDATA #REQUIRED
+ version CDATA #IMPLIED >
+
+<!ELEMENT propertyfile
+ ( fileinarchive
+ | link) >
+<!ATTLIST propertyfile
+ type CDATA #IMPLIED >
+
+<!ELEMENT repository
+ ( ins
+ | objref
+ | link
+ ) >
+<!ATTLIST repository
+ type CDATA #IMPLIED >
+
+<!ELEMENT runtime EMPTY >
+<!ATTLIST runtime
+ name CDATA #REQUIRED
+ version CDATA #IMPLIED>
+
+<!ELEMENT softpkg
+ ( title
+ | pkgtype
+ | author
+ | description?
+ | license
+ | idl
+ | propertyfile
+ | dependency
+ | descriptor
+ | implementation
+ | extension
+ )* >
+<!ATTLIST softpkg
+ name ID #REQUIRED
+ version CDATA #IMPLIED >
+
+<!ELEMENT softpkgref
+ ( ( fileinarchive
+ | link
+ )
+ , implref?
+ ) >
+
+<!ELEMENT title ( #PCDATA ) >
+
+<!ELEMENT usage ( #PCDATA ) >
+
+<!ELEMENT valuetypefactory
+ ( codebase
+ | fileinarchive
+ | link
+ ) >
+<!ATTLIST valuetypefactory
+ repid CDATA #REQUIRED
+ valueentrypoint CDATA #IMPLIED
+ factoryentrypoint CDATA #IMPLIED >
+
+<!ELEMENT webpage ( #PCDATA ) >
+<!ATTLIST webpage
+ %simple-link-attributes; >
diff --git a/modules/CIAO/docs/com-impl.html b/modules/CIAO/docs/com-impl.html
new file mode 100644
index 00000000000..ed5948ab9cf
--- /dev/null
+++ b/modules/CIAO/docs/com-impl.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<!-- $Id$ -->
+<html> <head>
+<title>Implementing a CCM Component</title>
+</head>
+
+<body>
+<h1>Implementing a CCM Component</h1>
+
+This document explains how to implement a single component. At this
+moment, CIAO lacks a CIDL compiler, and we depends on manually
+generating the servant glue code for containers and local executor
+interface. Check out this <a href="new_components.html">page</a> to
+find how all files are generate4d in CIAO.
+The following figure shows how this is done:<p>
+
+
+<img src="imgs/File-Gen-Existing.png"><p>
+
+And when we have a working CIDL (or, CCIDL "CIAO's Component
+Implementation Definition Language") compiler, the file will be
+generated using a CIDL file (which is rather simple.) This figure
+depicts the "Right Way" [TM] this should be done:<p>
+
+<img src="imgs/File-Gen-Future.png"><p>
+
+Checkout a <a href="../tools/CCIDL/README">list of things to do</a> for implementing CIDL compiler.<p>
+
+I think it is debatable whether we should merge the "Servant DLL" and
+"Component Implementation DLL" into one DLL. Me think not. My
+approach, however, creates some complication on requireing a mechanism
+to locate the servant code (and DLL) from component implementation.
+
+
+<h2>Libraries Dependencies</h2> Implementing a component creates 3
+DLL's as shown in the above figure. Both "Servant DLL" and "Component
+Implementation DLL" depend on the "Client DLL". "Servant DLL" and
+"Component Implementation DLL" are not mutually dependent, however.
+All the generated DLLs depends on other TAO and CIAO common
+libraries. Here's a break down of which libraries depends on which
+other libraries:
+
+<ul>
+ <li><b>Client DLL</b>: ace.lib tao.lib TAO_IFR_Client.lib
+ CIAO_Clientd.lib
+ <li><b>Servant DLL</b>: ace.lib tao.lib <b>Client DLL</b>
+ TAO_IFR_Client.lib TAO_PortableServer.lib TAO_Security.lib
+ CIAO_Container.lib CIAO_Client.lib
+ <li><b>Component Implementation DLL</b>: ace.lib tao.lib
+ <b>Client DLL</b> TAO_IFR_Client.lib TAO_Security.lib
+ CIAO_Container.lib
+</ul>
+
+ <!--#include virtual="/~nanbor/signature.html" -->
+<!-- <hr> -->
+<!-- <\!-- hhmts start -\-> -->
+<!-- Last modified: Tue Dec 10 22:41:50 Central Standard Time 2002 -->
+<!-- <\!-- hhmts end -\-> -->
+<!-- <address>Nanbor Wang &lt;nanbor@cs.wustl.edu&gt;</address> -->
+</body> </html>
diff --git a/modules/CIAO/docs/fm/CIAO.fm b/modules/CIAO/docs/fm/CIAO.fm
new file mode 100644
index 00000000000..2d9f30978b4
--- /dev/null
+++ b/modules/CIAO/docs/fm/CIAO.fm
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Component_Container_and_CORBA.eps b/modules/CIAO/docs/fm/images/CIAO_Component_Container_and_CORBA.eps
new file mode 100644
index 00000000000..199356e471f
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Component_Container_and_CORBA.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Component_Container_and_CORBA.sxd b/modules/CIAO/docs/fm/images/CIAO_Component_Container_and_CORBA.sxd
new file mode 100644
index 00000000000..c9274592024
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Component_Container_and_CORBA.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Components_Administrator_Highlight.eps b/modules/CIAO/docs/fm/images/CIAO_Components_Administrator_Highlight.eps
new file mode 100644
index 00000000000..d15f7622a60
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Components_Administrator_Highlight.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Components_Administrator_Highlight.sxd b/modules/CIAO/docs/fm/images/CIAO_Components_Administrator_Highlight.sxd
new file mode 100644
index 00000000000..434e9c640ad
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Components_Administrator_Highlight.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Components_Messenger_Highlight.eps b/modules/CIAO/docs/fm/images/CIAO_Components_Messenger_Highlight.eps
new file mode 100644
index 00000000000..a59c4c51367
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Components_Messenger_Highlight.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Components_Messenger_Highlight.sxd b/modules/CIAO/docs/fm/images/CIAO_Components_Messenger_Highlight.sxd
new file mode 100644
index 00000000000..39f15ee32c3
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Components_Messenger_Highlight.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Components_Messenger_Runnable_Highlight.eps b/modules/CIAO/docs/fm/images/CIAO_Components_Messenger_Runnable_Highlight.eps
new file mode 100644
index 00000000000..e381ccee506
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Components_Messenger_Runnable_Highlight.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Components_Messenger_Runnable_Highlight.sxd b/modules/CIAO/docs/fm/images/CIAO_Components_Messenger_Runnable_Highlight.sxd
new file mode 100644
index 00000000000..e31cea90d52
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Components_Messenger_Runnable_Highlight.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Components_Receiver_Highlight.eps b/modules/CIAO/docs/fm/images/CIAO_Components_Receiver_Highlight.eps
new file mode 100644
index 00000000000..9f45c415037
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Components_Receiver_Highlight.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Components_Receiver_Highlight.sxd b/modules/CIAO/docs/fm/images/CIAO_Components_Receiver_Highlight.sxd
new file mode 100644
index 00000000000..61beec7cae2
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Components_Receiver_Highlight.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Descriptors_Administrator.eps b/modules/CIAO/docs/fm/images/CIAO_Descriptors_Administrator.eps
new file mode 100644
index 00000000000..520d868bdf9
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Descriptors_Administrator.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Descriptors_Administrator.sxd b/modules/CIAO/docs/fm/images/CIAO_Descriptors_Administrator.sxd
new file mode 100644
index 00000000000..b7075b1d398
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Descriptors_Administrator.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Descriptors_Application.eps b/modules/CIAO/docs/fm/images/CIAO_Descriptors_Application.eps
new file mode 100644
index 00000000000..f291c21aa79
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Descriptors_Application.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Descriptors_Application.sxd b/modules/CIAO/docs/fm/images/CIAO_Descriptors_Application.sxd
new file mode 100644
index 00000000000..fe3745e5fc9
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Descriptors_Application.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Descriptors_Messenger.eps b/modules/CIAO/docs/fm/images/CIAO_Descriptors_Messenger.eps
new file mode 100644
index 00000000000..c1e997bf8f8
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Descriptors_Messenger.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Descriptors_Messenger.sxd b/modules/CIAO/docs/fm/images/CIAO_Descriptors_Messenger.sxd
new file mode 100644
index 00000000000..ee5286986b0
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Descriptors_Messenger.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Descriptors_Messenger_Assembly.eps b/modules/CIAO/docs/fm/images/CIAO_Descriptors_Messenger_Assembly.eps
new file mode 100644
index 00000000000..924c5e62d11
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Descriptors_Messenger_Assembly.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Descriptors_Messenger_Assembly.sxd b/modules/CIAO/docs/fm/images/CIAO_Descriptors_Messenger_Assembly.sxd
new file mode 100644
index 00000000000..fc4c07c269a
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Descriptors_Messenger_Assembly.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Descriptors_Receiver.eps b/modules/CIAO/docs/fm/images/CIAO_Descriptors_Receiver.eps
new file mode 100644
index 00000000000..ff3c3b74733
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Descriptors_Receiver.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Descriptors_Receiver.sxd b/modules/CIAO/docs/fm/images/CIAO_Descriptors_Receiver.sxd
new file mode 100644
index 00000000000..67555eb68a4
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Descriptors_Receiver.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Generic_Component_Diagram.eps b/modules/CIAO/docs/fm/images/CIAO_Generic_Component_Diagram.eps
new file mode 100644
index 00000000000..9999c12552e
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Generic_Component_Diagram.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Generic_Component_Diagram.sxd b/modules/CIAO/docs/fm/images/CIAO_Generic_Component_Diagram.sxd
new file mode 100644
index 00000000000..9b0cb8c21f2
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Generic_Component_Diagram.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_IDL3_to_IDL2_Files.eps b/modules/CIAO/docs/fm/images/CIAO_IDL3_to_IDL2_Files.eps
new file mode 100644
index 00000000000..4d541937873
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_IDL3_to_IDL2_Files.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_IDL3_to_IDL2_Files.sxd b/modules/CIAO/docs/fm/images/CIAO_IDL3_to_IDL2_Files.sxd
new file mode 100644
index 00000000000..861f5a15cdb
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_IDL3_to_IDL2_Files.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_IDL_CIDL_Files.eps b/modules/CIAO/docs/fm/images/CIAO_IDL_CIDL_Files.eps
new file mode 100644
index 00000000000..6df8ae5272e
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_IDL_CIDL_Files.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_IDL_CIDL_Files.sxd b/modules/CIAO/docs/fm/images/CIAO_IDL_CIDL_Files.sxd
new file mode 100644
index 00000000000..8c1f626ed6c
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_IDL_CIDL_Files.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_IDL_CIDL_Files_CIDL_Highlight.eps b/modules/CIAO/docs/fm/images/CIAO_IDL_CIDL_Files_CIDL_Highlight.eps
new file mode 100644
index 00000000000..dc77e8e97ec
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_IDL_CIDL_Files_CIDL_Highlight.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_IDL_CIDL_Files_CIDL_Highlight.sxd b/modules/CIAO/docs/fm/images/CIAO_IDL_CIDL_Files_CIDL_Highlight.sxd
new file mode 100644
index 00000000000..aab58862aca
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_IDL_CIDL_Files_CIDL_Highlight.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_MessengerHome_Class_Diagram.eps b/modules/CIAO/docs/fm/images/CIAO_MessengerHome_Class_Diagram.eps
new file mode 100644
index 00000000000..1fec26375aa
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_MessengerHome_Class_Diagram.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_MessengerHome_Class_Diagram.sxd b/modules/CIAO/docs/fm/images/CIAO_MessengerHome_Class_Diagram.sxd
new file mode 100644
index 00000000000..b641b2cd3c9
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_MessengerHome_Class_Diagram.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Messenger_Class_Diagram.eps b/modules/CIAO/docs/fm/images/CIAO_Messenger_Class_Diagram.eps
new file mode 100644
index 00000000000..b68053dd664
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Messenger_Class_Diagram.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Messenger_Class_Diagram.sxd b/modules/CIAO/docs/fm/images/CIAO_Messenger_Class_Diagram.sxd
new file mode 100644
index 00000000000..287fc0c97bc
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Messenger_Class_Diagram.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Messenger_Component_Diagram.eps b/modules/CIAO/docs/fm/images/CIAO_Messenger_Component_Diagram.eps
new file mode 100644
index 00000000000..0eb8ae53773
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Messenger_Component_Diagram.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Messenger_Component_Diagram.sxd b/modules/CIAO/docs/fm/images/CIAO_Messenger_Component_Diagram.sxd
new file mode 100644
index 00000000000..34dc595d299
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Messenger_Component_Diagram.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram.eps b/modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram.eps
new file mode 100644
index 00000000000..4beae29323f
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram.sxd b/modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram.sxd
new file mode 100644
index 00000000000..4a28077f309
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_All_Connections_Highlight.eps b/modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_All_Connections_Highlight.eps
new file mode 100644
index 00000000000..785b42673da
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_All_Connections_Highlight.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_All_Connections_Highlight.sxd b/modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_All_Connections_Highlight.sxd
new file mode 100644
index 00000000000..0b4f235a918
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_All_Connections_Highlight.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_All_Nodes_Highlight.eps b/modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_All_Nodes_Highlight.eps
new file mode 100644
index 00000000000..16b34a2ce5e
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_All_Nodes_Highlight.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_All_Nodes_Highlight.sxd b/modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_All_Nodes_Highlight.sxd
new file mode 100644
index 00000000000..ec31dff72fd
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_All_Nodes_Highlight.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_Connection_Highlight.eps b/modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_Connection_Highlight.eps
new file mode 100644
index 00000000000..a4d12ef666d
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_Connection_Highlight.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_Connection_Highlight.sxd b/modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_Connection_Highlight.sxd
new file mode 100644
index 00000000000..109aa0d33fc
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_Connection_Highlight.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_Node_Highlight.eps b/modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_Node_Highlight.eps
new file mode 100644
index 00000000000..fe802ede9b8
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_Node_Highlight.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_Node_Highlight.sxd b/modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_Node_Highlight.sxd
new file mode 100644
index 00000000000..e273d767461
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_Node_Highlight.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Messenger_IDL_Generated_Class_Diagram.eps b/modules/CIAO/docs/fm/images/CIAO_Messenger_IDL_Generated_Class_Diagram.eps
new file mode 100644
index 00000000000..52336bee092
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Messenger_IDL_Generated_Class_Diagram.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Messenger_IDL_Generated_Class_Diagram.sxd b/modules/CIAO/docs/fm/images/CIAO_Messenger_IDL_Generated_Class_Diagram.sxd
new file mode 100644
index 00000000000..374744638e8
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Messenger_IDL_Generated_Class_Diagram.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Messenger_Interaction_Diagram.eps b/modules/CIAO/docs/fm/images/CIAO_Messenger_Interaction_Diagram.eps
new file mode 100644
index 00000000000..dcfe7db00a8
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Messenger_Interaction_Diagram.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Messenger_Interaction_Diagram.sxd b/modules/CIAO/docs/fm/images/CIAO_Messenger_Interaction_Diagram.sxd
new file mode 100644
index 00000000000..bb39ca53a27
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Messenger_Interaction_Diagram.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Roadmap_01.eps b/modules/CIAO/docs/fm/images/CIAO_Roadmap_01.eps
new file mode 100644
index 00000000000..9b1f7e7337c
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Roadmap_01.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Roadmap_01.sxd b/modules/CIAO/docs/fm/images/CIAO_Roadmap_01.sxd
new file mode 100644
index 00000000000..8227c8d1ca1
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Roadmap_01.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Roadmap_02.eps b/modules/CIAO/docs/fm/images/CIAO_Roadmap_02.eps
new file mode 100644
index 00000000000..166f1fbdb3c
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Roadmap_02.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Roadmap_02.sxd b/modules/CIAO/docs/fm/images/CIAO_Roadmap_02.sxd
new file mode 100644
index 00000000000..499b12e8023
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Roadmap_02.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Roadmap_03.eps b/modules/CIAO/docs/fm/images/CIAO_Roadmap_03.eps
new file mode 100644
index 00000000000..e91f91330b7
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Roadmap_03.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Roadmap_03.sxd b/modules/CIAO/docs/fm/images/CIAO_Roadmap_03.sxd
new file mode 100644
index 00000000000..710fbf2b247
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Roadmap_03.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Roadmap_04.eps b/modules/CIAO/docs/fm/images/CIAO_Roadmap_04.eps
new file mode 100644
index 00000000000..8b5b1a6b01c
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Roadmap_04.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Roadmap_04.sxd b/modules/CIAO/docs/fm/images/CIAO_Roadmap_04.sxd
new file mode 100644
index 00000000000..f163a28db22
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Roadmap_04.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Roadmap_05.eps b/modules/CIAO/docs/fm/images/CIAO_Roadmap_05.eps
new file mode 100644
index 00000000000..4fe79d1f1b6
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Roadmap_05.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Roadmap_05.sxd b/modules/CIAO/docs/fm/images/CIAO_Roadmap_05.sxd
new file mode 100644
index 00000000000..7a2add97011
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Roadmap_05.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Roadmap_06.eps b/modules/CIAO/docs/fm/images/CIAO_Roadmap_06.eps
new file mode 100644
index 00000000000..5564282e65b
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Roadmap_06.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Roadmap_06.sxd b/modules/CIAO/docs/fm/images/CIAO_Roadmap_06.sxd
new file mode 100644
index 00000000000..8121ceb64b7
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Roadmap_06.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Roadmap_07.eps b/modules/CIAO/docs/fm/images/CIAO_Roadmap_07.eps
new file mode 100644
index 00000000000..5e279f30297
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Roadmap_07.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Roadmap_07.sxd b/modules/CIAO/docs/fm/images/CIAO_Roadmap_07.sxd
new file mode 100644
index 00000000000..884efe0ea5e
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Roadmap_07.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Roadmap_08.eps b/modules/CIAO/docs/fm/images/CIAO_Roadmap_08.eps
new file mode 100644
index 00000000000..d56e2626795
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Roadmap_08.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Roadmap_08.sxd b/modules/CIAO/docs/fm/images/CIAO_Roadmap_08.sxd
new file mode 100644
index 00000000000..7e53c97fdbb
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Roadmap_08.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Roadmap_09.eps b/modules/CIAO/docs/fm/images/CIAO_Roadmap_09.eps
new file mode 100644
index 00000000000..06272f3d65d
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Roadmap_09.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Roadmap_09.sxd b/modules/CIAO/docs/fm/images/CIAO_Roadmap_09.sxd
new file mode 100644
index 00000000000..f43524d5eb8
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Roadmap_09.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Roadmap_Overview.eps b/modules/CIAO/docs/fm/images/CIAO_Roadmap_Overview.eps
new file mode 100644
index 00000000000..65ae8c9de46
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Roadmap_Overview.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Roadmap_Overview.sxd b/modules/CIAO/docs/fm/images/CIAO_Roadmap_Overview.sxd
new file mode 100644
index 00000000000..7d7eaebd5a1
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Roadmap_Overview.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Runnable_Class_Diagram.eps b/modules/CIAO/docs/fm/images/CIAO_Runnable_Class_Diagram.eps
new file mode 100644
index 00000000000..a27d4af7d68
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Runnable_Class_Diagram.eps
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/CIAO_Runnable_Class_Diagram.sxd b/modules/CIAO/docs/fm/images/CIAO_Runnable_Class_Diagram.sxd
new file mode 100644
index 00000000000..c15bd72becc
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/CIAO_Runnable_Class_Diagram.sxd
Binary files differ
diff --git a/modules/CIAO/docs/fm/images/OCILOGO_bw_book.eps b/modules/CIAO/docs/fm/images/OCILOGO_bw_book.eps
new file mode 100644
index 00000000000..708fd10aae9
--- /dev/null
+++ b/modules/CIAO/docs/fm/images/OCILOGO_bw_book.eps
Binary files differ
diff --git a/modules/CIAO/docs/generate_component_mpc.html b/modules/CIAO/docs/generate_component_mpc.html
new file mode 100644
index 00000000000..101f0734d0f
--- /dev/null
+++ b/modules/CIAO/docs/generate_component_mpc.html
@@ -0,0 +1,84 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+ <head>
+ <title>TAO IDL compiler User's Guide</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <meta name="GENERATOR" content="Mozilla/4.5 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
+ <!-- $Id$ -->
+ </head>
+ <body text="#000000" bgcolor="#ffffff" link="#0000ff" vlink="#cc0000">
+ <hr>
+ <h3>Using The generate_component_mpc.pl Script</h3>
+ This document describes the options and usage of the Perl script <tt>generate_component_mpc.pl</tt>
+ in the <tt>$(CIAO_ROOT)/bin</tt> directory.
+ <HR>
+ <P>
+ <h4>Assumptions</h4>
+ This script is useful for generating MPC files for relatively simple component
+ applications. The string name passed to the script should be the name of the <em>single</em>
+ IDL file for that build (without the extension). The names of export files, preprocessor
+ macros, and library names in the generated MPC file will all be constructed
+ from this string. It is also assumed that the IDL file for a component build
+ will contain a single component declaration.
+ <P>
+ Judicious use of the script options in the table below will generate a build
+ that keeps to a minimum both the code generated from IDL and the number of
+ linked libraries from the middleware.
+ <P>
+ <HR>
+ <h4><A NAME="options">Script Options</A></h4>
+ <table BORDER="2" CELLSPACING="2" CELLPADDING="0">
+ <tr>
+ <th>
+ Option</th>
+ <th>
+ Description</th>
+ <th>
+ Remark</th>
+ </tr>
+ <tr>
+ <a NAME="h">
+ <td><tt>-h</tt></td>
+ <td>The compiler prints out the options that are given below and exits clean
+ </td>
+ <td>&nbsp;</td>
+ </tr>
+ <tr>
+ </A> <a NAME="p">
+ <td><tt>-p</tt><i> string</i></td>
+ <td>Indicates another make/project that this one depends on</td>
+ <td>Used as a project name prefix unless overridden by <tt>-u</tt> option</td>
+ </tr>
+ <tr>
+ </A> <a name="l">
+ <td><tt>-l</tt><i> string</i></td>
+ </TD>
+ <td>Path to the dependent name value of <tt>-p</tt></td>
+ <td>Needed only if the dependent make/project isn't already in the search path</td>
+ </tr>
+ <tr>
+ </A> <a name="n">
+ <td><tt>-n</tt></td>
+ <td>Non-component make/project</td>
+ <td>Generates a <tt>*_stub</tt> and <tt>*_skel</tt> pair of builds, instead of the
+ default <tt>*_stub</tt>, <tt>*_svnt</tt> and <tt>*_exec</tt> builds.</td>
+ </tr>
+ <tr>
+ </A> <a name="c">
+ <td><tt>-c</tt></td>
+ <td>Create a client make/project</td>
+ <td>Generates a build for a "driver" executable. Assumes there is a single C++
+ source file named <tt>client.cpp</tt></td>
+ </tr>
+ <tr>
+ </A> <a name="u">
+ <td><tt>-u</tt></TT><i> string</i></td>
+ <td>Unique project name prefix</td>
+ <td>Occasionally needed since MPC doesn't accept duplicate project names anywhere
+ in the tree over which it is proecessing. This option overrides the value of
+ the <tt>-p</tt> option, if present</td>
+ </tr>
+ </table>
+ </A>
+ </body>
+</html>
diff --git a/modules/CIAO/docs/imgs/CCM-v5.vsd b/modules/CIAO/docs/imgs/CCM-v5.vsd
new file mode 100644
index 00000000000..7f4d7539050
--- /dev/null
+++ b/modules/CIAO/docs/imgs/CCM-v5.vsd
Binary files differ
diff --git a/modules/CIAO/docs/imgs/CCM.vsd b/modules/CIAO/docs/imgs/CCM.vsd
new file mode 100644
index 00000000000..239a4e7943d
--- /dev/null
+++ b/modules/CIAO/docs/imgs/CCM.vsd
Binary files differ
diff --git a/modules/CIAO/docs/imgs/DAnCE-Dynamic.png b/modules/CIAO/docs/imgs/DAnCE-Dynamic.png
new file mode 100644
index 00000000000..2e9917e1520
--- /dev/null
+++ b/modules/CIAO/docs/imgs/DAnCE-Dynamic.png
Binary files differ
diff --git a/modules/CIAO/docs/imgs/DAnCE-Dynamic.sxd b/modules/CIAO/docs/imgs/DAnCE-Dynamic.sxd
new file mode 100644
index 00000000000..b795c5ae049
--- /dev/null
+++ b/modules/CIAO/docs/imgs/DAnCE-Dynamic.sxd
Binary files differ
diff --git a/modules/CIAO/docs/imgs/File-Gen-Existing.png b/modules/CIAO/docs/imgs/File-Gen-Existing.png
new file mode 100644
index 00000000000..8deb5d32fd3
--- /dev/null
+++ b/modules/CIAO/docs/imgs/File-Gen-Existing.png
Binary files differ
diff --git a/modules/CIAO/docs/imgs/File-Gen-Future.png b/modules/CIAO/docs/imgs/File-Gen-Future.png
new file mode 100644
index 00000000000..1daef691bdf
--- /dev/null
+++ b/modules/CIAO/docs/imgs/File-Gen-Future.png
Binary files differ
diff --git a/modules/CIAO/docs/imgs/File_Generation_Flow.vsd b/modules/CIAO/docs/imgs/File_Generation_Flow.vsd
new file mode 100644
index 00000000000..ef6332d49ac
--- /dev/null
+++ b/modules/CIAO/docs/imgs/File_Generation_Flow.vsd
Binary files differ
diff --git a/modules/CIAO/docs/imgs/IDL-CIDL-classes.vsd b/modules/CIAO/docs/imgs/IDL-CIDL-classes.vsd
new file mode 100644
index 00000000000..0986aa78d70
--- /dev/null
+++ b/modules/CIAO/docs/imgs/IDL-CIDL-classes.vsd
Binary files differ
diff --git a/modules/CIAO/docs/imgs/basic-container.png b/modules/CIAO/docs/imgs/basic-container.png
new file mode 100644
index 00000000000..9df767b45a2
--- /dev/null
+++ b/modules/CIAO/docs/imgs/basic-container.png
Binary files differ
diff --git a/modules/CIAO/docs/imgs/ciao-dynamic1.jpg b/modules/CIAO/docs/imgs/ciao-dynamic1.jpg
new file mode 100644
index 00000000000..a385ad30848
--- /dev/null
+++ b/modules/CIAO/docs/imgs/ciao-dynamic1.jpg
Binary files differ
diff --git a/modules/CIAO/docs/imgs/ciao-dynamic2.jpg b/modules/CIAO/docs/imgs/ciao-dynamic2.jpg
new file mode 100644
index 00000000000..e0a705b9d3a
--- /dev/null
+++ b/modules/CIAO/docs/imgs/ciao-dynamic2.jpg
Binary files differ
diff --git a/modules/CIAO/docs/imgs/ciao-static-vs-dynamic.jpg b/modules/CIAO/docs/imgs/ciao-static-vs-dynamic.jpg
new file mode 100644
index 00000000000..b876b7a82cb
--- /dev/null
+++ b/modules/CIAO/docs/imgs/ciao-static-vs-dynamic.jpg
Binary files differ
diff --git a/modules/CIAO/docs/imgs/ciao-static1.jpg b/modules/CIAO/docs/imgs/ciao-static1.jpg
new file mode 100644
index 00000000000..313084ff34d
--- /dev/null
+++ b/modules/CIAO/docs/imgs/ciao-static1.jpg
Binary files differ
diff --git a/modules/CIAO/docs/imgs/ciao-static2.jpg b/modules/CIAO/docs/imgs/ciao-static2.jpg
new file mode 100644
index 00000000000..86ded87f448
--- /dev/null
+++ b/modules/CIAO/docs/imgs/ciao-static2.jpg
Binary files differ
diff --git a/modules/CIAO/docs/imgs/component-basic.png b/modules/CIAO/docs/imgs/component-basic.png
new file mode 100644
index 00000000000..520dc9c4cca
--- /dev/null
+++ b/modules/CIAO/docs/imgs/component-basic.png
Binary files differ
diff --git a/modules/CIAO/docs/imgs/dance_arch.jpg b/modules/CIAO/docs/imgs/dance_arch.jpg
new file mode 100644
index 00000000000..3c91b912213
--- /dev/null
+++ b/modules/CIAO/docs/imgs/dance_arch.jpg
Binary files differ
diff --git a/modules/CIAO/docs/imgs/dance_arch.vsd b/modules/CIAO/docs/imgs/dance_arch.vsd
new file mode 100644
index 00000000000..cfe75fca9c6
--- /dev/null
+++ b/modules/CIAO/docs/imgs/dance_arch.vsd
Binary files differ
diff --git a/modules/CIAO/docs/imgs/deployment.png b/modules/CIAO/docs/imgs/deployment.png
new file mode 100644
index 00000000000..4cd8c6be646
--- /dev/null
+++ b/modules/CIAO/docs/imgs/deployment.png
Binary files differ
diff --git a/modules/CIAO/docs/imgs/extended-container.png b/modules/CIAO/docs/imgs/extended-container.png
new file mode 100644
index 00000000000..39977e6eb83
--- /dev/null
+++ b/modules/CIAO/docs/imgs/extended-container.png
Binary files differ
diff --git a/modules/CIAO/docs/imgs/home-config.png b/modules/CIAO/docs/imgs/home-config.png
new file mode 100644
index 00000000000..aebf5e62751
--- /dev/null
+++ b/modules/CIAO/docs/imgs/home-config.png
Binary files differ
diff --git a/modules/CIAO/docs/imgs/static_dance_arch.jpg b/modules/CIAO/docs/imgs/static_dance_arch.jpg
new file mode 100644
index 00000000000..b12694ce348
--- /dev/null
+++ b/modules/CIAO/docs/imgs/static_dance_arch.jpg
Binary files differ
diff --git a/modules/CIAO/docs/imgs/static_dance_arch.vsd b/modules/CIAO/docs/imgs/static_dance_arch.vsd
new file mode 100644
index 00000000000..1ca1f50f69d
--- /dev/null
+++ b/modules/CIAO/docs/imgs/static_dance_arch.vsd
Binary files differ
diff --git a/modules/CIAO/docs/imgs/static_dance_impl.jpg b/modules/CIAO/docs/imgs/static_dance_impl.jpg
new file mode 100644
index 00000000000..cd2f9f0dc81
--- /dev/null
+++ b/modules/CIAO/docs/imgs/static_dance_impl.jpg
Binary files differ
diff --git a/modules/CIAO/docs/imgs/static_dance_impl.vsd b/modules/CIAO/docs/imgs/static_dance_impl.vsd
new file mode 100644
index 00000000000..6c21e6139d4
--- /dev/null
+++ b/modules/CIAO/docs/imgs/static_dance_impl.vsd
Binary files differ
diff --git a/modules/CIAO/docs/index.html b/modules/CIAO/docs/index.html
new file mode 100644
index 00000000000..9aa2b9969aa
--- /dev/null
+++ b/modules/CIAO/docs/index.html
@@ -0,0 +1,168 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<!-- $Id$ -->
+ <title>CIAO - Component-Integrated ACE ORB</title>
+</head>
+<body>
+<h1>CIAO - Component-Integrated ACE ORB</h1>
+<h2>Introduction</h2>
+CIAO is TAO's implementation of <a
+ href="http://www.omg.org/cgi-bin/doc?formal/02-06-65"> CORBA Component
+Model (CCM)</a> specially optimized for distributed real-time embedded
+(DRE) systems.
+This page contains links to other documents and resources for building
+and using CIAO.<br>
+<br>
+<hr>
+<h2>The CIAO Project</h2>
+<ul>
+ <li>The main <a href="http://www.cs.wustl.edu/%7Eschmidt/CIAO.html">
+CIAO project page</a>.</li>
+ <li><a href="../CIAO-INSTALL.html">Installation instructions</a> for
+CIAO<br>
+ </li>
+ <li>CIAO <a href="releasenotes/index.html">Status (aka. release
+notes.)</a></li>
+ <li>CIAO <a href="EnvVars.html">Environment Variables</a> <br>
+ </li>
+ <li>CIAO <a href="Trace.html">Logging Facility</a><br>
+ </li>
+ <li>CIAO <a href="../NEWS">NEWS</a></li>
+</ul>
+<hr>
+<ul>
+</ul>
+<ul>
+ <p><!--
+
+ <li>This <a href="new_components.html">page on implementing new
+
+ component</a> explains all the user-defined and tool-generated
+
+ files when implementing a component.<p>
+
+
+
+ <li>The <a href="ConfigValues.html">Configuration Name/Value
+
+ lists</a> lists all the configuration values that CIAO will pass
+
+ into vaious CCM mechanisms. The information shown in this page
+
+ is not visible to CIAO end-users, which include modeling tool
+
+ developers. The information that matters for most users is how
+
+ these configurations are represented in various XML
+
+ descriptors and CIDL specifications.<p>
+
+-->
+ </p>
+</ul>
+<h2>CCM-defined Interface Diagrams</h2>
+Here is a set of UML diagrams that we use to figure out the
+relationship among all the different interfaces in CCM. You can
+browse the related part from the following list:
+<ul>
+ <li><a href="imgs/component-basic.png"> Basic component interfaces </a></li>
+ <li><a href="imgs/home-config.png"> Home and configuration interfaces
+ </a></li>
+ <li><a href="imgs/basic-container.png"> Basic container interfaces </a></li>
+ <li><a href="imgs/extended-container.png"> Extended container
+interfaces </a></li>
+ <li><a href="imgs/DAnCE-Dynamic.png"> Deployment and configuration
+(DAnCE) interfaces </a></li>
+</ul>
+All these diagrams are generated from the <a href="imgs/CCM.vsd">CCM.vsd
+Visio file</a> (The same file in Visio V.5 format is <a
+ href="imgs/CCM-v5.vsd">here</a>.) and OpenOffice source file
+ <a href="imgs/DAnCE-Dynamic.sxd">DAnCE-Dynamic.sxd</a> <br>
+<br>
+<hr>
+<h2>CIAO's D&C Framework (<a href="http://www.dre.vanderbilt.edu/Doxygen/Current/html/tao/ciao/dance/index.html">DAnCE</a>) part-by-part</h2>
+DAnCE's implementation is based on the OMG's Deployment and Configuration
+Specification version [ptc/2003-07-08]. Here is a list of the major
+actors of CIAO runtime that a user should be aware of.
+<ul>
+ <li><strong>NodeManager:</strong>
+A daemon process responsible for managing NodeApplications that reside
+in the same physical node.</li>
+ <p> </p>
+ <li><strong>NodeApplicationManager:</strong>
+A infrastructure component responsible for deploying&nbsp;
+locality-constrained applications onto a node. A NodeApplicationManager
+is usually created by NodeManager.<br>
+ </li>
+ <p> </p>
+ <li><strong>NodeApplication:</strong>
+A component server instance spawned by NodeApplicationManager. <br>
+ </li>
+ <p> </p>
+ <li><strong>ExecutionManager:</strong>
+Infrastructure component responsible for executing an component-based
+DRE application based on the information from DeploymentPlan.</li>
+ <p> </p>
+ <li><strong>DomainApplicationManager</strong>:
+Domain-oriented auxiliary component created and used by
+ExecutionManager to deploy the component-based DRE application at the
+domain level. <br>
+ <br>
+ </li>
+ <li><strong>PlanLauncher</strong></strong>:
+Executor component responsible for parsing the XML-based
+deploymentplan and passing the plan to ExecutionManager for execution.<br>
+ <br>
+To understand the runtime inter-relationships of various CIAO actors,
+you may click <a href="imgs/DAnCE-Dynamic.png">here</a> to see a
+sequence diagram that gives you a clear representation of what's
+happening when you start a DAnCE-based DRE application. Special thanks
+to <a href="mailto:Friedhelm.wolf@gmx.de">Friedhelm Wolf</a> who
+initiated and contributed most part of this
+diagram.<br>
+ <br>
+ </li>
+</ul>
+<hr>
+<h2>CIAO CCM tutorials</h2>
+There are several tutorials to help you understand CIAO and CCM:
+<ul>
+ <li> <a
+ href="http://www.cs.wustl.edu/%7Eschmidt/OMG-CCM-Tutorial.ppt">Tutorial
+on the CORBA Component Model (CCM)</a>. This tutorial presents an
+overview of the CORBA Component Model (CCM),
+describing its key features and illustrating how to write CCM
+applications in C++.
+ <p> </p>
+ </li>
+ <li><a href="../examples/Hello"><code>$(CIAO_ROOT)/DAnCE/examples/Hello.</code></a>
+This example illustrates how to build and deploy a CIAO based
+application <a href="../examples/Hello/step-by-step.html">step-by-step</a>.
+There is
+also a detailed documentation explaining this example avalable in both <a
+ href="http://www.dre.vanderbilt.edu/%7Edengg/CCM/CCM_Hello_example.pdf">PDF</a>
+and <a
+ href="http://www.dre.vanderbilt.edu/%7Edengg/CCM/CCM_Hello_example.ppt">
+PowerPoint</a> format.<br>
+ <br>
+ </li>
+ <li><a href="./tutorials/Quoter/Simple">$(CIAO_ROOT)/docs/tutorials/Quoter/Simple</a>.
+This example illustrates the implementation of the "famous" Quoter
+example in the CIAO world. Please refer to <a
+ href="tutorials/Quoter/Simple/README.html">README</a> for more
+information.&nbsp; </li> <P>
+
+<li><a
+href="./tutorials/CoSMIC/">$(CIAO_ROOT)/docs/tutorials/COSMIC/</a>.
+This is a step-by-step tutorial on how to use CoSMIC to
+generate deployment descriptors requied by the above <a
+href="./tutorials/Quoter/Simple">Quoter</a> example </li>
+
+</ul>
+<!--#include virtual="/~nanbor/signature.html" --><!-- <hr> --><!-- <\!-- hhmts start -\-> --><!-- Last modified: Mon Nov 04 07:55:22 Central Standard Time 2002 --><!-- <\!-- hhmts end -\-> -->
+<!-- <address>Nanbor Wang &lt;nanbor@cs.wustl.edu&gt;</address> --><!-- LocalWords: CCM UML vsd Visio
+
+ -->
+</body>
+</html>
diff --git a/modules/CIAO/docs/new_components.html b/modules/CIAO/docs/new_components.html
new file mode 100644
index 00000000000..db10fca2103
--- /dev/null
+++ b/modules/CIAO/docs/new_components.html
@@ -0,0 +1,129 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<!-- $Id$ -->
+<html> <head>
+<title>Procedures to prepare a new component implementation</title>
+</head>
+
+<body>
+<h1>Preparing a new component implementation</h1>
+
+I am documenting the steps required to prepare a component implementation.
+Personally, I prefer to set up a directory to contain only <b>one</b>
+component implementation. I believe the procedures outlined below
+will work if you have multiple component implementation in the same
+IDL files. The purpose of this document is to record the procedures
+and steps on how these files relate to each others and how they come
+about during the development process.<p>
+
+Assuming we need to create a new component called
+<code><b>Orc</b></code>. Below is the list of files you'll need to
+deal with. Our goal is to greatly reduce the number of files you need
+to deal with manually...
+
+<ol>
+ <li><font color="red"><code><b>Orc</b>.idl</code></font> - This is
+ the IDL file that contains the component and component home
+ definitions.<p>
+
+ As you will eventually create 3 DLLs (or shared objects), you
+ will also need 3 sets of different export macros files as
+ following.<p>
+
+ <li><code><b>Orc</b>_stub_export.h</code> - This file is generated
+ using the following command:<p>
+
+ <code>generate_export_file.pl <b>ORC</b>_STUB &gt; <b>Orc</b>_stub_export.h</code><p>
+
+ This file makes macros like <code><b>ORC</b>_STUB_Export</code>
+ and friends available. They are usually controlled by
+ <code><b>ORC</b>_STUB_BUILD_DLL</code><p>
+
+ <li><code><b>Orc</b>_svnt_export.h</code> - This file is generated
+ using the following command:<p>
+
+ <code>generate_export_file.pl <b>ORC</b>_SVNT &gt; <b>Orc</b>_svnt_export.h</code><p>
+
+ This file makes macros like <code><b>ORC</b>_SVNT_Export</code>
+ and friends available. They are usually controlled by
+ <code><b>ORC</b>_SVNT_BUILD_DLL</code><p>
+
+ <li><code><b>Orc</b>_exec_export.h</code> - This file is generated
+ using the following command:<p>
+
+ <code>generate_export_file.pl <b>ORC</b>_EXEC &gt; <b>Orc</b>_exec_export.h</code><p>
+
+ This file makes macros like <code><b>ORC</b>_EXEC_Export</code>
+ and friends available. They are usually controlled by
+ <code><b>ORC</b>_EXEC_BUILD_DLL</code><p>
+
+ <li><code><b>Orc</b>E.idl</code> - Component Executor equivalent
+ interface definitions. This file should be generated
+ automatically by the CIDL compiler as illustrated in this
+ <a href="com-impl.html">file</a> but we currently are still
+ working on the implementation of the CIDL compiler. Therefore,
+ you still need to create this file manually.<p>
+
+ <li><font color="red"><code><b>Orc</b>EI.idl</code></font> -
+ Optional Component Executor implementation interface
+ definitions. Often time, when you implement a non-trivial
+ monolithic component implementation, you are required to define
+ the monolithic local executor interface which often inherits
+ from the component monolithic executor interface and all the
+ provided interfaces. The actually executor implementation will
+ inherit from this user defined interface instead of the default
+ executor mapping defined in <code><b>Orc</b>E.idl</code>. You
+ will need to do the same when you wish to support non-vanilla
+ component interface, such as
+ <code>Components::SessionComponent</code>, and/or
+ <code>Components::SessionSynchronization</code>.<p>
+
+ Ideally, it would be perfect if we can auto-generate this
+ optional IDL file using CIDL compiler. However, I'm not sure
+ the plan CIDL language contains enough information that's
+ required to generate this file.<p>
+
+ <li><font color="red"><code><b>Orc</b>_exec.*</code></font> - These
+ are files containing the actually component implementation that
+ you have to write manually. It, however, depends on the
+ equivalent executor IDL definition (that will be) generated by
+ the CIDL files.<p>
+
+ <li><code><b>Orb</b>_svnt.*</code> - These are files containing the
+ servant glue code that bridge a container to the component
+ executor that you implement. Like the component executor
+ mapping IDL file, these files should be generated by the CIDL
+ compiler but are currently generated manually.<p>
+
+ <li><code><b>Orc</b>.csd</code> - Component Softpkg Descriptor. We
+ need some kind of tool to generate this file automatically. It
+ is currently being generated manually, however.<p>
+
+
+ <li><code><b>Orc</b>.ssd</code> - Servant Softpkg Descriptor. This
+ is a CIAO extension descriptor file which uses the same softpkg
+ DTD as described in CCM spec. CIAO requires this file because
+ CIAO separates the executors into a completely separate DLL.
+ Like <code><b>Orc</b>.csd</code>, this file should be generated
+ automatically through some tool, but it is currently manually
+ crafted.<p>
+
+ <li><code><b>Orc</b>.ccd</code> - CORBA Component Descriptor. This
+ file is currently being generated manually thou a template
+ should really be generated by CIAO's CIDL compiler.<p>
+
+ <li><font color="red"><code><b>Orc</b>.mpc</code></font> - Makefile
+ Project Creator definition file. There is a perl script to
+ generate a minimal MPC definition at
+ <code>$(CIAO_ROOT)/bin/generate_component_mpc.pl</code> so
+ people can use it to implement the simplest component
+ implementation outlined in this file.<p>
+
+</ol>
+
+
+<hr>
+<address></address>
+<!-- hhmts start -->
+Last modified: Fri Mar 21 16:06:48 Central Standard Time 2003
+<!-- hhmts end -->
+</body> </html>
diff --git a/modules/CIAO/docs/releasenotes/dance.html b/modules/CIAO/docs/releasenotes/dance.html
new file mode 100644
index 00000000000..6980860b3c8
--- /dev/null
+++ b/modules/CIAO/docs/releasenotes/dance.html
@@ -0,0 +1,229 @@
+<?xml version="1.0" encoding="iso-8859-1" ?>
+<!-- $Id$ -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <title>Deployment And Configuration Engine (DAnCE) Release Notes</title>
+ </head>
+
+ <body>
+ <h1>Deployment And Configuration Engine (DAnCE) Release Notes</h1>
+
+ <p><b>D</b>eployment <b>An</b>d <b>C</b>onfiguration <b>E</b>ngine
+ <b>(DAnCE)</b> is an implementation of the run-time infrastructure as
+ defined by the final adopted <a
+ href="http://www.omg.org/cgi-bin/doc?ptc/2003-07-08">OMG Deployment &amp;
+ Configuration (D&amp;C) specification (ptc/2003-07-08)</a>, which deals with the
+ configuration and deployment of component-based applications. Currently
+ DAnCE only supports the deployment &amp; configuration of CORBA
+ Component Model (CCM)-based applications, though we are interested in
+ generalizing it for other component models in future work. DAnCE uses
+ XML descriptors to drive the deployment it performs. One way to
+ generate these descriptors is using the <b>Co</b>mponent
+ <b>S</b>ynthesis using <b>M</b>odel-<b>I</b>ntegrated <b>C</b>omputing
+ (<a href="http://www.dre.vanderbilt.edu/cosmic">CoSMIC</a>) tool-suite.
+ DAnCE currently uses <b>C</b>omponent <b>I</b>ntegrated <b>A</b>CE
+ <b>O</b>RB (<a href="http://www.dre.vanderbilt.edu/CIAO">CIAO</a>) as
+ the underlying CCM implementation in the current release, though again
+ we are interested in generalizing it for other CCM implementations in
+ future work.
+ </p>
+
+ <h3>D&amp;C XML Schema Handling</h3>
+
+ <p> The XML handlers shipped with DAnCE are capable of handling almost
+ all elements that are defined in the D&amp;C schema. In this context,
+ handling refers to reading the XML tags and converting them to the
+ equivalent in-memory IDL-based data structures defined by the
+ specifications. DAnCE supports the following types of descriptors
+ specified in the D&amp;C specification:</p>
+ <ul>
+ <li>
+ <p>
+ <b>CORBA Component Descriptor(.ccd)</b> &ndash;
+ Contains information about component interfaces including
+ component ports.
+ </p>
+ </li>
+ <li>
+ <p>
+ <b>Component Implementation Descriptor(.cid)</b>
+ &ndash; Contains information about component implementations
+ which might be either monolithic or assembly based. In the case
+ of assembly based implementations, this descriptor also captures
+ the dependencies and the connections among components
+ </p>
+ </li>
+ <li>
+ <p>
+ <b>Implementation Artifact Descriptor(.iad)</b>
+ &ndash; Contains information about implementation artifacts
+ in-cluding dependencies between such artifacts
+ </p>
+ </li>
+ <li>
+ <p>
+ <b>Component Package Descriptor(.cpd)</b> &ndash;
+ Contains information about grouping of multiple imple-mentations
+ of the same component interface into component packages
+ </p>
+ </li>
+ <li>
+ <p>
+ <b>Package Configuration Descriptor(.pcd)</b>
+ &ndash; Contains information about specific configurations of
+ such component packages
+ </p>
+ </li>
+ <li>
+ <p>
+ <b>Component Domain Descriptor(.cdd)</b> &ndash;
+ Contains information about the target environment in which the
+ component-based application will be deployed
+ </p>
+ </li>
+ <li>
+ <p>
+ <b>TopLevel Package Descriptor(.tpd)</b> &ndash; Contains
+ information identifying the top-level element in a component
+ package descriptor which might include information about multiple
+ elements
+ </p>
+ </li>
+
+ <li>
+ <p>
+ <b>Component Deployment Plan(.cdp)</b> &ndash; Contains
+ information that actually drives the deployment including
+ information about individual components that represent the
+ leaf-nodes in case of a hierarchical assembly, connections
+ between components, and assignment of components to nodes etc.
+ </p>
+ </li>
+ </ul>
+ <p> For all the above elements, DAnCE supports proxying of the elements
+ as defined by XMI, i.e, DAnCE supports both parsing of the elements
+ inline and reference through <b><code>href</code></b> attribute. Some
+ D&amp;C schema elements are however not handled, including:</p>
+ <ul>
+ <li>
+ <p>
+ <b>Deployment:Any</b> &ndash; This is a complex
+ element that is composed of many sub-elements. Currently, DAnCE
+ only parses a subset of the sub-elements of
+ <b><code>Deployment:Any</code></b>. Specifically, DAnCE supports all the
+ basic data types defined as part of <b><code>Deployment:Any</code></b>,
+ and doesn't understand any complex types.
+ </p>
+ </li>
+ <li>
+ <p>
+ <b>xmi:Extension</b> &ndash; This element allows the
+ augmention of the standard D&amp;C schema with user-defined
+ elements. Currently DAnCE doesn't support user-defined extensions
+ to the schema.
+ </p>
+ </li>
+ <li>
+ <p>
+ <b>Deployment:Requirement</b> &ndash; This element is
+ allows the description of requirements of component-based
+ applications. Since handling this description requires interaction
+ with the <b><code>TargetManager</code></b> interface (which is not yet
+ supported), support for <b><code>Deployment:Requirement</code></b> is not
+ present.
+ </p>
+ </li>
+ <li>
+ <p>
+ <b>Deployment:ComponentPropertyDescriptioncode></b> &ndash;
+ This element is used to specify default values for attributes of
+ component. DAnCE doesn't support setting the values for attributes
+ of components using this tag.
+ </p>
+ </li>
+ <li>
+ <p>
+ <b>Deployment:ComponentExternalPortEndpoint,
+ Deployment:ExternalReferenceEndpoint</b> &ndash; These
+ elements are used to specify connections between ports of
+ components in one assembly with ports of components in a different
+ assembly, or connections between component ports and external
+ connection endpoints. These features are needed to support
+ assemblies of components. DAnCE doesn't support yet hierarchical
+ assemblies, i.e., creation of assemblies which can themselves
+ contain sub-assemblies.
+ </p>
+ </li>
+ <li>
+ <p>
+ <b>Deployment:PlanPropertyMapping</b> &ndash; This
+ element is used to delegate property mapping between a component's
+ external properties to properties of subcomponents that actually
+ implement the behavior of the larger component. Since DAnCE doesn't
+ support hierarchical assemblies, this tag is not yet supported.
+ </p>
+ </li>
+ </ul>
+ <p> We plan to support these features in future versions of DAnCE.
+ </p>
+ <hr />
+ <h3> D&amp;C Management Interfaces</h3>
+
+ <p> The D&amp;C specification defines a set of standard CORBA
+ interfaces that are used to perform the deployment of component-based
+ applications. These interfaces depend on the in-memory IDL data
+ structures that are built by DAnCE's XML handlers. Below we outline the
+ list of interfaces defined by the specification and the level of
+ support for each interface in DAnCE:</p>
+ <ul>
+ <li>
+ <p>
+ <b>RepositoryManager</b> &ndash; Only the
+ <b><code>installPackage()</code></b> and <b><code>findPackageByName()</code></b>
+ operations of this interface are implemented.
+ </p>
+ </li>
+ <li>
+ <p>
+ <b>TargetManager</b> &ndash; This interface has not
+ been implemented at all. Implementation of this interface is
+ planned for the future.
+ </p>
+ </li>
+ <li>
+ <p>
+ <b>ExecutionManager</b> &ndash; All operations defined
+ in this interface are implemented.
+ </p>
+ </li>
+ <li>
+ <p>
+ <b>DomainApplicationManager, DomainApplication</b>
+ &ndash; All operations except <b><code>getApplications()</code></b>
+ operation of DomainApplicationManager are implemented.
+ </p>
+ </li>
+ <li>
+ <p>
+ <b>NodeManager </b>&ndash; All operations except <strong><code>joinDomain()</code></strong> and <strong><code>leaveDomain()</code></strong> operations of NodeManager are implemented. </p>
+ </li>
+ <li>
+ <p><b> NodeApplicationManager, NodeApplication</b> &ndash; All operations defined in these interfaces are
+ implemented. </p>
+ </li>
+ </ul>
+ <p>
+ We plan to finish implementing the unsupported features in future versions of DAnCE.
+ </p>
+ <p>
+ <a href="http://validator.w3.org/check?uri=referer">
+ <img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!"
+ height="31" width="88" />
+ </a>
+ </p>
+ <address>
+ Last modified $Date$ by $Author$
+ </address>
+ </body>
+</html>
diff --git a/modules/CIAO/docs/releasenotes/index.html b/modules/CIAO/docs/releasenotes/index.html
new file mode 100644
index 00000000000..887a2c8b2f6
--- /dev/null
+++ b/modules/CIAO/docs/releasenotes/index.html
@@ -0,0 +1,119 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <meta name="GENERATOR" content="Mozilla/4.79 [en] (Windows NT 5.0; U) [Netscape]">
+ <title>CIAO Release Information and TODO List</title>
+</head>
+<body text="#000000" bgcolor="#FFFFFF">
+<!-- $Id$ -->
+<center>
+<hr></center>
+
+<center>
+<h3>
+Release Information for the Component Integrated ACE ORB (CIAO)</h3></center>
+This document contains information on the following topics related to the
+<a href="../../VERSION">current
+release</a> of <a href="http://www.dre.vanderbilt.edu/CIAO">CIAO</a>:
+
+<table BORDER=0 CELLSPACING=0 CELLPADDING=10 >
+<tr>
+<td VALIGN=TOP>
+<b></b>
+<br>
+<ul>
+<li>
+<a href="../index.html">Introduction</a></li>
+<li>
+<a href="#status">Current Status of CIAO</a></li>
+<li>
+<a href="dance.html">Status of DAnCE</a></li>
+<li>
+<a href="../TODO.html">TODO list</a></li>
+</ul>
+</td>
+</table>
+
+
+<hr>
+<h2>Current Status</h2><a name="status">
+<ol>
+<li>The first cut of the new <a
+ href="http://www.omg.org/cgi-bin/doc?ptc/2003-07-02"> DnC </a>
+ specification implementation, which we call DAnCE is available in
+ this distribution. DAnCE is housed under <CODE> $CIAO_ROOT
+ </CODE>. We plan to enhance DAnCE in the next few months. We believe
+ DAnCE will replace existing tool sets in <CODE>
+ $CIAO_ROOT/tools</CODE>. There are a few features in
+ <CODE>$CIAO_ROOT/tools</CODE> that are missing in the DAnCE
+ implementation. Please see <a href="../TODO.html"> TODO </a> file
+ for more details. We plan to implement them soon and use DAnCE
+ continuously.
+
+ <li> The first cut of DAnCE includes two parts:
+ <ul>
+ <li>
+ A modeling tool chain , <a href="http://www.dre.vanderbilt.edu/CoSMIC/">
+ CoSMIC</a>, which is capable of describing the Assembly/Component
+ using <a
+ href="http://www.isis.vanderbilt.edu/Projects/gme/default.html">
+ GME</a> as the development bed. The artifacts generated from the
+ CoSMIC are a set of XML descriptors.
+
+ <!-- Tao, I realy don't understand what this means - Bala -->
+ <li>This run-time infrastructure that performs the actual deployment
+ and configuration, with a superset of the capabilities described in
+ OMG DnC specification with CIAO extension. </a>.<p><p>
+
+ </ul>
+ <!-- Tao, can you please see whether this is needed -->
+ In the new DnC run-time framework we have migrated all the
+ functionalities present in the old CIAO runtime except the
+ Real-Time configuration and Static Configuration, which are
+ developed by Washington University in St. Louis. Currently,
+ the two CIAO runtime co-exist in our source and the component
+ implementation could be used with both framework without much
+ change. (For the change that one has to go through please
+ read <a href="./switch.html">this</a>.)<p>
+
+
+
+ <li> Two operations <CODE> ciao_preactivate ()</CODE> and
+ <CODE>ciao_postactivate ()</CODE> have been added to the
+ <CODE>SessionComponent</CODE> interface. This implies that component
+ developers have to implement those operations within the
+ executor. We plan to get around this, i.e., users having to
+ implement these two operations, in the next month or so. <p>
+
+ <li> The CIDL Compiler has been eliminated, all CIAO code is now
+ generated by the IDL compiler.<p>
+
+ <li> CIAO doesn't yet support features that help integrating CORBA
+ components with Enterprise Java Beans (EJB).<p>
+
+ <li> Test to demonstrate composition of applications with real-time
+ behavior using CIAO's real-time extension was added. Please see
+ ACE_wrappers/TAO/CIAO/tests/RTCCM/Priority_Test.<p>
+
+ <li> The CIAO static configurator tool has been enhanced to support
+ processing of RTCORBA policy related information. Please see
+ ACE_wrappers/TAO/CIAO/docs/static_ciao_index.html.<p>
+
+ <li> To further interoperability with non-component-aware clients, there
+ are files in the $CIAO_ROOT/tools/IDL3_to_IDL2 directory that can be
+ compiled into an executable called tao_idl3_to_idl2. This executable
+ takes an IDL file (on the command line) containing IDL3 declarations
+ and outputs an IDL file with the IDL3 declarations converted to
+ equivalent IDL2. IDL2 declarations in the input file are unchanged.
+ See the README file in that directory for more information.<p>
+
+</ol>
+
+
+
+<b>Email: </b><a href="mailto:"</a<ADDRESS>ciao-users@cse.wustl.edu</ADDRESS>
+</body> </html>
+
+<!-- LocalWords: TODOs CCM IDL CCIDL CIDL backend idl
+ -->
diff --git a/modules/CIAO/docs/releasenotes/switch.html b/modules/CIAO/docs/releasenotes/switch.html
new file mode 100644
index 00000000000..1120239b6ec
--- /dev/null
+++ b/modules/CIAO/docs/releasenotes/switch.html
@@ -0,0 +1,35 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<!-- $Id$ -->
+<html> <head>
+<title>Migrating the component implementation</title>
+</head>
+
+<body>
+<h3>When switching from the old CIAO runtime to the new one</h1>
+
+<ul>
+ There are only one thing needs to be done to migrate the component
+ implementation from the old runtime to the new runtime.
+ <br><br>
+ Find all the component MPC files in your component implementation
+ source directories and make the following changes.
+
+ for every project in your MPC files which inherites from any of
+ the following MPC template (base project): <code> ciao_client, ciao_component,
+ ciao_servant, ciao_server,</code> replace them with <code> ciao_client_dnc,
+ ciao_component_dnc, ciao_servant_dnc, ciao_server_dnc</code>. Then
+ generate your makefile/solution/project files using either
+ <code>mwc.pl</code> or <code>mpc.pl</code> and build (rebuild) your
+ binaries.<br>
+
+ A couple examples of the component implementation are at:
+ <code>$CIAO_ROOT/DAnCE/tests</code>.
+</ul>
+
+<h3>When switching from the new CIAO runtime to the old one</h3>
+ <ul>
+ Reverse the above changes.
+ </ul>
+
+ <b>Email: </b><a href="mailto:"</a<ADDRESS>ciao-users@cse.wustl.edu</ADDRESS>
+</body> </html>
diff --git a/modules/CIAO/docs/schema/06-04-02.xsd b/modules/CIAO/docs/schema/06-04-02.xsd
new file mode 100644
index 00000000000..60b5c0ce54c
--- /dev/null
+++ b/modules/CIAO/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/docs/schema/Basic_Deployment_Data.xsd b/modules/CIAO/docs/schema/Basic_Deployment_Data.xsd
new file mode 100644
index 00000000000..ddcc349a42f
--- /dev/null
+++ b/modules/CIAO/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/docs/schema/CIAOEvents.xsd b/modules/CIAO/docs/schema/CIAOEvents.xsd
new file mode 100644
index 00000000000..645d7a6e530
--- /dev/null
+++ b/modules/CIAO/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/docs/schema/CIAOServerResources.xsd b/modules/CIAO/docs/schema/CIAOServerResources.xsd
new file mode 100644
index 00000000000..7a62a0e6eab
--- /dev/null
+++ b/modules/CIAO/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/docs/schema/Deployment.xsd b/modules/CIAO/docs/schema/Deployment.xsd
new file mode 100644
index 00000000000..591aa588d74
--- /dev/null
+++ b/modules/CIAO/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/docs/schema/Modified_Deployment.xsd b/modules/CIAO/docs/schema/Modified_Deployment.xsd
new file mode 100644
index 00000000000..65f5eb81d1e
--- /dev/null
+++ b/modules/CIAO/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/docs/schema/README.html b/modules/CIAO/docs/schema/README.html
new file mode 100644
index 00000000000..d810c8a6065
--- /dev/null
+++ b/modules/CIAO/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/docs/schema/SANet_Network.xsd b/modules/CIAO/docs/schema/SANet_Network.xsd
new file mode 100644
index 00000000000..d614528b481
--- /dev/null
+++ b/modules/CIAO/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/docs/schema/ServerResourceUsage.txt b/modules/CIAO/docs/schema/ServerResourceUsage.txt
new file mode 100644
index 00000000000..d8fc47ca7b3
--- /dev/null
+++ b/modules/CIAO/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/docs/schema/Spec_Defined_Deployment.xsd b/modules/CIAO/docs/schema/Spec_Defined_Deployment.xsd
new file mode 100644
index 00000000000..a59a47f1360
--- /dev/null
+++ b/modules/CIAO/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/docs/schema/Spec_Defined_XMI.xsd b/modules/CIAO/docs/schema/Spec_Defined_XMI.xsd
new file mode 100644
index 00000000000..eac893f37c8
--- /dev/null
+++ b/modules/CIAO/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/docs/schema/Task_Map.xsd b/modules/CIAO/docs/schema/Task_Map.xsd
new file mode 100644
index 00000000000..2138f082d48
--- /dev/null
+++ b/modules/CIAO/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/docs/schema/XMI.xsd b/modules/CIAO/docs/schema/XMI.xsd
new file mode 100644
index 00000000000..afb17f9d3b5
--- /dev/null
+++ b/modules/CIAO/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/docs/schema/ccd.xsd b/modules/CIAO/docs/schema/ccd.xsd
new file mode 100644
index 00000000000..fcdac711b5a
--- /dev/null
+++ b/modules/CIAO/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/docs/schema/cdd.xsd b/modules/CIAO/docs/schema/cdd.xsd
new file mode 100644
index 00000000000..3fe64120bfd
--- /dev/null
+++ b/modules/CIAO/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/docs/schema/cdp.xsd b/modules/CIAO/docs/schema/cdp.xsd
new file mode 100644
index 00000000000..882d460736c
--- /dev/null
+++ b/modules/CIAO/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/docs/schema/ciaopolicy.xsd b/modules/CIAO/docs/schema/ciaopolicy.xsd
new file mode 100644
index 00000000000..93a7415c4b4
--- /dev/null
+++ b/modules/CIAO/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/docs/schema/cid.xsd b/modules/CIAO/docs/schema/cid.xsd
new file mode 100644
index 00000000000..62cdc75e7c5
--- /dev/null
+++ b/modules/CIAO/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/docs/schema/cpd.xsd b/modules/CIAO/docs/schema/cpd.xsd
new file mode 100644
index 00000000000..b4313af65bf
--- /dev/null
+++ b/modules/CIAO/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/docs/schema/iad.xsd b/modules/CIAO/docs/schema/iad.xsd
new file mode 100644
index 00000000000..2f910b5d333
--- /dev/null
+++ b/modules/CIAO/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/docs/schema/pcd.xsd b/modules/CIAO/docs/schema/pcd.xsd
new file mode 100644
index 00000000000..5c7772f7d85
--- /dev/null
+++ b/modules/CIAO/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/docs/schema/toplevel.xsd b/modules/CIAO/docs/schema/toplevel.xsd
new file mode 100644
index 00000000000..83e2feb999d
--- /dev/null
+++ b/modules/CIAO/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/docs/schema/unused_06-04-02.xsd b/modules/CIAO/docs/schema/unused_06-04-02.xsd
new file mode 100644
index 00000000000..7d379ee7561
--- /dev/null
+++ b/modules/CIAO/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/docs/schema/unused_elements.xsd b/modules/CIAO/docs/schema/unused_elements.xsd
new file mode 100644
index 00000000000..c1200b088e9
--- /dev/null
+++ b/modules/CIAO/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/docs/schema/xsc-banner.cpp b/modules/CIAO/docs/schema/xsc-banner.cpp
new file mode 100644
index 00000000000..ecd90a877a6
--- /dev/null
+++ b/modules/CIAO/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/docs/schema/xsc-banner.h b/modules/CIAO/docs/schema/xsc-banner.h
new file mode 100644
index 00000000000..30370e90f40
--- /dev/null
+++ b/modules/CIAO/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/docs/static_ciao_contents.html b/modules/CIAO/docs/static_ciao_contents.html
new file mode 100755
index 00000000000..d043e4c0aee
--- /dev/null
+++ b/modules/CIAO/docs/static_ciao_contents.html
@@ -0,0 +1,359 @@
+<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+ <meta http-equiv="Content-Type"
+ content="text/html; charset=iso-8859-1">
+ <meta name="Author" content="Venkita Subramonian">
+ <meta name="GENERATOR"
+ content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
+ <title>CIAO Static Configuration</title>
+ <base target="main"><!-- $Id$ -->
+</head>
+<body>
+<center>
+<h2>CIAO Static Configuration Support for Real-Time Platforms</h2>
+</center>
+<h3>
+<a name="intro"></a>1. Introduction</h3>
+The dynamic packaging, assembly, and deployment mechanisms currently
+available
+in CIAO are useful for application domains where component metadata is
+less likely to be known a priori, where implementation upgrades may
+need
+to be performed on-line, and where platform features like loading and
+unloading
+dynamic libraries are both available and useful.&nbsp; Furthermore, the
+new CCM Deployment and Configuration specification describes a wider
+range
+of configuration capabilities, opening up the question of alternative
+component
+configuration strategies more generally and requiring that any solution
+we devise can be migrated to that new configuration approach.
+<p>Therefore, we have incorporated support for component configuration
+in CIAO on platforms like VxWorks, as a set of optional strategies and
+optimizations to the existing CIAO configuration capabilities.&nbsp; By
+supporting both dynamic and static styles of configuration in CIAO, we
+will both (1) be able to realize our short term goals in making CIAO
+available
+on VxWorks for use in the Boeing PCES/MoBIES OEP, and (2) set a
+precedent
+for availability of static configuration capabilities more generally,
+so
+that DRE systems are well-supported within the new Deployment and
+Configuration
+specification implementation for CIAO as well.
+</p>
+<p>The fundamental intuition in understanding our approach is that in
+DRE
+systems the stages of the overall system lifecycle are similar to those
+in more dynamic conventional component-oriented client-server
+applications.&nbsp;
+However, in DRE systems several phases of the system lifecycle are
+compressed
+into the compile-time and system-initialization phases, so that (1) for
+testing and verification purposes the set of components in an
+application
+can be identified and analyzed before run-time, and (2) overheads for
+run-time
+operation following initialization are reduced and made more
+predictable.
+Furthermore, due to the nuances of the platforms traditionally used for
+deploying DRE systems, not all features of conventional platforms are
+available.
+Our approach therefore avoids certain mechanisms that are either
+unavailable
+or too costly in terms of performance.
+</p>
+<p>We follow these intuitions in our approach, taking the existing
+configuration
+phases in CIAO and pushing several of them earlier in the configuration
+lifecycle.&nbsp; We ensure that our approach can be realized in the
+context
+of the platforms on which the Boeing PCES/MoBIES OEP will be deployed,
+notably VxWorks, by re-factoring the configuration mechanisms and
+retargeting
+them to use only the services available on the target real-time
+platforms.
+<br>
+&nbsp;
+</p>
+<h3><a name="currentarch"></a>2. Current CIAO Configuration Architecture</h3>
+<center>
+<p><br>
+<img src="imgs/ciao-dynamic1.jpg" height="462" width="774"></p>
+<p><b>Figure 1. Current configuration process in CIAO</b></p>
+</center>
+<p>The first stage of the CIAO system lifecycle occurs off-line, when
+component
+package (.csd) and assembly (.cad) files are generated by a modeling
+tool
+or other prior stage of the tool chain.&nbsp; These files contain an
+abstract
+specification of the configuration that is to be achieved by CIAO in
+each
+particular deployment environment .
+</p>
+<p>CIAO interprets these .csd and .cad files, and creates and
+configures
+the components, their run-time server environments, and QoS properties
+within the supporting ORB and other related infrastructure.&nbsp;
+Currently,
+CIAO runs several daemon processes for each deployment environment: one
+or more Component Installation / Server Activation (CISA) daemons on
+each
+machine where components can be deployed, an additional Assembly
+Manager
+daemon and an Assembly Deployer process used by the system developer.
+</p>
+<p>The Assembly Manager stores an internal table with the target
+platform
+availability information .&nbsp;&nbsp;&nbsp; The Assembly Deployer
+tells
+the Assembly Manager which assemblies of components (each assembly is
+defined
+in a separate .cad file) should be deployed on which target
+machines.&nbsp;
+The Assembly Manager parses the XML structures in the .cad file, and
+generates
+its own internal data structure (<b>Figure 2</b>) as an intermediate
+representation
+of that assembly.
+</p>
+<p>The Assembly Manager then traverses (<b>Figure 2</b>) this
+intermediate
+representation, instructing each CISA daemon to install and configure
+specific
+component servers and containers, to create specific homes, and to
+instantiate
+specific component instances.&nbsp;&nbsp;&nbsp; Each CISA daemon has
+additional
+information about the component implementations available on that
+endsystem
+&#8211; each component UUID is mapped to a disk path for the .dll or .so file
+within which a factory method for its home factory is defined.
+</p>
+<center>
+<p><img src="imgs/ciao-dynamic2.jpg" height="384" width="699"></p>
+<p><b>Figure 2. Intermediate representation of configuration information</b></p>
+</center>
+<p>The following steps are optional, and will only be performed if they
+are explicitly specified in the assembly definition itself.&nbsp; For
+the
+sake of discussion, we consider the case where all the steps are in
+fact
+specified.&nbsp; The Assembly Manager will tell the CISA daemon the
+UUIDs
+of the components to be installed in that component server, and the
+CISA
+daemon will look up and load the appropriate dynamic library, invoke
+the
+home factory method to create the home, and then invoke the home&#8217;s
+component
+creation method.&nbsp; After all the component instances and homes have
+been created and references to them have been obtained, the assembly
+manager
+will then make all the connections between ports and receptacles,
+facets,
+and event sources and sinks by invoking connect and subscribe methods
+on
+the receiving end component.
+</p>
+<p>QoS-specific metadata like priorities can be configured by a .cad
+file
+extension called a real-time descriptor (.rtcad) file.&nbsp; The
+Assembly
+Manager will read the .rtcad file and will parse and associate
+real-time
+policies with the appropriate component instances.&nbsp;&nbsp; One
+implication
+of this mechanism is that the Assembly Manager will maintain QoS
+meta-data
+within its intermediate representation, alongside the conventional CCM
+meta-data.
+</p>
+<p>Furthermore, when the Assembly Manager interacts with the CISA
+daemon(s)
+on each endsystem, commands to configure particular component and
+component
+server run-time infrastructure QoS properties are passed from the
+Assembly
+Manager to the CISA daemon.&nbsp; The ORB (and as a future extension
+the
+ORB Services) of the endsystem on which the components are installed is
+currently configured via the ACE Service Configurator.&nbsp; The CISA
+daemon
+maps different service configurations (as defined in particular
+svc.conf
+files) to logical names used in the component assembly descriptors.
+</p>
+<p>The logical configuration names are encoded within the .cad file as
+an extension of the conventional .cad file format using the &#8220;extension&#8221;
+element of the existing .cad file XML DTD.&nbsp; The Assembly Manager
+passes
+a component server creation command, containing a logical configuration
+name, which the CISA daemon maps to a particular svc.conf file when it
+creates a new component server.&nbsp; The CISA daemon adds a command
+line
+flag to the execution command line used to spawn the new component
+server,
+which causes that configuration file to be parsed and applied during
+startup
+of the component server itself.
+</p>
+<h3><a name="staticapproach"></a>3. Static Configuration Approach</h3>
+In the static configuration approach (<b>Figure 3</b>),
+configurations&nbsp;
+XML files are translated in a code generation step just before compile
+time (managed by the same project/Makefile processes that do the
+compilation)
+into C++ header and source files that are then compiled and linked with
+the main application.
+<center>
+<p><img src="imgs/ciao-static1.jpg" height="523" width="800"></p>
+<p><b>Figure 3. Static Configuration in CIAO</b></p>
+</center>
+<p>First, one of the generated files is a C++ header file, so that it
+can
+be included directly by C++ source files.&nbsp; There is no additional
+parsing required to import a number of static constants and identifiers
+it declares and defines, so that those constants end up being compiled
+directly into C++ code.&nbsp; Second, where enumeration of information
+is needed, the header file contains simple homogeneous C++ arrays so
+that
+C++ source code can iterate over those arrays with minimal
+overhead.&nbsp;
+Third, it declares information so that later information depends on
+earlier
+information (<b>Figure 4</b>), and the components are directly
+configured
+within that header file.
+</p>
+<center>
+<p><img src="imgs/ciao-static2.jpg" height="476" width="816"></p>
+<p><b>Figure 4. All XML files are parsed offline and stored as
+cross-referenced
+tables in Static_Assembly_Config.h</b></p>
+</center>
+<p>The major issues that we addressed in developing a re-factored
+version
+of the CIAO configuration mechanisms are as follows:
+</p>
+<p>1. XML parsing is too expensive to be performed during system
+initialization,
+so that all such parsing has been moved off-line to before
+compile-time,
+and the resulting information is linked statically into the application
+itself.
+</p>
+<p>2. Each endsystem boots and initializes in a single process address
+space, so that any remaining inter-process communication between
+daemons
+is replaced by direct interactions between objects, or at most between
+threads.
+</p>
+<p>3. Dynamic link libraries are unavailable on VxWorks, so an
+alternative
+mechanism for obtaining the home factory method entry point is needed.
+We gather this information from the XML files and statically generate a
+map containing&nbsp; the entry point function names and the entry point
+function pointers. This information will be used by the CIAO container
+implementation instead of trying to load a dll and then finding the
+entry
+point in the dll.
+</p>
+<h4>Moving XML Parsing Earlier</h4>
+We first focused on taking the XML parsing stage off-line.&nbsp; Since
+the time required to do this by CIAO is currently reasonable as an
+off-line
+activity, we simply created (<b>Figure 4</b>) a stripped-down version
+of
+the Assembly Manager (reusing the existing class libraries the Assembly
+Manager uses) that after it performs the XML parsing and generation of
+its intermediate representation, emits a C++ header file containing
+that
+intermediate representation.
+<h4>Combining Configuration Daemons at Run-Time</h4>
+The intermediate representation is included in a configuration engine
+(CIAO::Static_Configurator)
+that consists of a simple reader for the intermediate representation,
+again
+derived from the code currently used in the Assembly Manager, which
+will
+dispatch to the configuration code used by the CISA daemons in the
+dynamic
+case.&nbsp; The configuration engine will be invoked from the
+application&#8217;s
+main entry point prior to starting execution of the application itself.
+<h4>Eliminating Dynamic Library Loading</h4>
+All code will need to be known a priori, and linked statically into the
+application.&nbsp; If alternative configurations must be supported
+statically,
+then those separate configurations can be alternative selections chosen
+during the build process.&nbsp; If alternative configurations must be
+selected
+adaptively at run-time then all the code for each possible
+configuration
+must be linked in statically, and appropriate mechanisms used to
+re-target
+a logical name dynamically to each particular configuration (e.g.,
+different
+configurations for different system modes).
+<br>
+&nbsp;
+<br>
+&nbsp;
+<br>
+<br>
+<center>
+<p><img src="imgs/ciao-static-vs-dynamic.jpg" height="384" width="735"><br>
+<b>Figure 5. CIAO Dynamic vs Static Configuration</b></p>
+</center>
+<h3>
+<a name="status"></a><b>4. Status of CIAO Static Configuration</b></h3>
+The initial version of the CIAO static configurator is available under
+$CIAO_ROOT/tools/static_configurator.
+<p>To run the static configurator,
+</p>
+<p><b><tt>Static_Assembly_Parser -a &lt;.cad file&gt;</tt></b>
+</p>
+<p>This will generate three files -
+</p>
+<p><b><tt>Static_CCM_App.cpp</tt></b> - this file contains the main
+program
+which instantiates the component server and invokes the static
+configuration
+engine to create containers, homes, etc.
+</p>
+<p><b><tt>Static_CCM_App.mpc</tt></b> - this file contains the
+necessary
+files for building the static application. You have to manually change
+this file so as to include files that are not known to the static
+configurator.
+</p>
+<p><b><tt>Static_Assembly_Config.h</tt></b> - this file contains the
+C++
+intermediate representation of all the information in the .cad, .csd
+and
+.ssd XML files.
+</p>
+<p><a name="Example"></a><b>Example</b> - An <a
+ href="static_config_example.html">example</a>
+run is shown using the <a href="../examples/OEP/BasicSP">BasicSP</a>
+scenario.
+</p>
+<h3><a name="futurework"></a><b>5. Future work</b></h3>
+<p>The current implementation does not have support for multiple
+component
+servers running on multiple processors. Multiprocessor scenario
+involves
+coordination and synchronization among the component servers running on
+different processors. There has to be some kind of a mediator which
+determines
+that all components are instantiated before connections can be made
+among
+them.<br>
+<br>
+&nbsp;
+</p>
+</body>
+</html>
diff --git a/modules/CIAO/docs/static_ciao_index.html b/modules/CIAO/docs/static_ciao_index.html
new file mode 100755
index 00000000000..627e07c65ca
--- /dev/null
+++ b/modules/CIAO/docs/static_ciao_index.html
@@ -0,0 +1,23 @@
+<html>
+
+<head>
+<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<title>New Page 1</title>
+<!-- $Id$ -->
+
+</head>
+
+<frameset cols="294,*">
+ <frame name="contents" target="main" src="static_ciao_toc.html">
+ <frame name="main" src="static_ciao_contents.html" target="main">
+ <noframes>
+ <body>
+
+ <p>This page uses frames, but your browser doesn't support them.</p>
+
+ </body>
+ </noframes>
+</frameset>
+
+</html>
diff --git a/modules/CIAO/docs/static_ciao_toc.html b/modules/CIAO/docs/static_ciao_toc.html
new file mode 100755
index 00000000000..35adb51ec1c
--- /dev/null
+++ b/modules/CIAO/docs/static_ciao_toc.html
@@ -0,0 +1,26 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <meta name="Author" content="Venkita Subramonian">
+ <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
+ <title>CIAO Static Configuration</title>
+ <base target="contents">
+<!-- $Id$ -->
+</head>
+<body>
+<h3 align="center">CIAO Static Configuration Documentation </h3>
+
+<ol>
+
+<li><a target="main" href="static_ciao_contents.html#intro">Introduction</a></li>
+<li><a target="main" href="static_ciao_contents.html#currentarch">Current CIAO Configuration
+Architecture</a></li>
+<li><a target="main" href="static_ciao_contents.html#staticapproach">Static Configuration
+Approach</a></li>
+<li><a target="main" href="static_ciao_contents.html#status">Status of CIAO Static Configuration</a><br>
+<a target="main" href="static_ciao_contents.html#Example">Example</a></li>
+<li><a target="main" href="static_ciao_contents.html#futurework">Future work</a></li>
+</ol>
+</body>
+</html>
diff --git a/modules/CIAO/docs/static_config_example.html b/modules/CIAO/docs/static_config_example.html
new file mode 100644
index 00000000000..5e8c806e2cd
--- /dev/null
+++ b/modules/CIAO/docs/static_config_example.html
@@ -0,0 +1,1353 @@
+<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+ <meta http-equiv="Content-Type"
+ content="text/html; charset=iso-8859-1">
+ <meta name="Author" content="Venkita Subramonian">
+ <meta name="GENERATOR"
+ content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
+ <title>BasicSP example using CIAO Static Configurator</title>
+<!-- $Id$ -->
+</head>
+<body>
+This example illustrates
+how to use the CIAO static configurator for building applications
+statically.
+For an example using RTCORBA policies, see <a
+ href="static_config_rtexample.html">BasicSP with RTCORBA extensions</a>.
+From the <a href="../examples/OEP/BasicSP">BasicSP</a> directory do
+the
+following.
+<p><b><tt>&gt; cd descriptors</tt></b>
+<br>
+<b><tt>&gt; $CIAO_ROOT/tools/static_configurator/Static_Assembly_Parser
+-a BasicSP.cad</tt></b>
+</p>
+<p>The following files are generated -
+</p>
+<p><a href="#Static_Assembly_Config.h">Static_Assembly_Config.h</a>
+<br>
+<a href="#Static_CCM_App.cpp">Static_CCM_App.cpp</a>
+<br>
+<a href="#Static_CCM_App.mpc">Static_CCM_App.mpc</a>
+</p>
+<p><a href="#Static_Assembly_Config.h">Static_Assembly_Config.h</a>
+contains
+the intermediate representation of all the parsed component and
+assembly
+information obtained from the XML files. <a href="#Static_CCM_App.cpp">Static_CCM_App.cpp</a>&nbsp;
+contains the main driver application. Here a runtime <a
+ href="#static%20config%20engine">static
+configuration engine</a> is used to create containers, homes,
+components,
+etc and then establish necessary connections between the components. In
+the BasicSP example, an external controller&nbsp; (see <tt><a
+ href="../examples/OEP/BasicSP/README">$CIAO_ROOT/examples/OEP/BasicSP/README</a></tt>)
+is used to start or stop a pulser. The generated main driver
+application
+(Static_CCM_App.cpp) is <a href="#Modified%20Static_CCM_App.cpp">modified</a>
+to add code to trigger the pulser object on. The generated .mpc file is
+<a href="#Modified%20Static_CCM_App.mpc">modified</a>
+to add all other necessary files so that the application can be built
+statically.
+Note that the static configurator only generates only certain file
+names
+in the .mpc file. These filenames are obtained from the XML descriptor
+files. All other necessary files have to be added manually as
+indicated.
+</p>
+<p>Now the static build files can be generated by running the mpc
+utility.
+</p>
+<p><b><tt>&gt; cd ..</tt></b>
+<br>
+<b><tt>&gt; $ACE_ROOT/bin/mpc -static Static_CCM_App.mpc</tt></b>
+</p>
+<p><a name="Static_Assembly_Config.h"></a><b><u>Static_Assembly_Config.h</u></b>
+<br>
+<tt><font color="#3333ff">#include "Static_Assembly.h"</font></tt>
+</p>
+<p><tt><font color="#3333ff">#include "CCM_ContainerC.h"</font></tt>
+<br>
+<tt><font color="#3333ff">#include "Container_Base.h"</font></tt>
+</p>
+<p><tt><font color="#3333ff">//Containers</font></tt>
+<br>
+<tt><font color="#3333ff">CIAO::Static_Config::ContainerAttributes
+containers_table_[]=</font></tt>
+<br>
+<tt><font color="#3333ff">{</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{"", 0}</font></tt>
+<br>
+<tt><font color="#3333ff">};</font></tt>
+<br>
+&nbsp;
+</p>
+<p><tt><font color="#3333ff">extern "C"
+::Components::HomeExecutorBase_ptr
+createECHome_Impl (void);</font></tt>
+<br>
+<tt><font color="#3333ff">extern "C" ::PortableServer::Servant
+createECHome_Servant</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp; (::Components::HomeExecutorBase_ptr
+p,</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp; ::CIAO::Session_Container *c</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp; ACE_ENV_ARG_DECL_WITH_DEFAULTS);</font></tt>
+<br>
+<tt><font color="#3333ff">extern "C" ::Components::HomeExecutorBase_ptr
+createBMDeviceHome_Impl (void);</font></tt>
+<br>
+<tt><font color="#3333ff">extern "C" ::PortableServer::Servant
+createBMDeviceHome_Servant</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp; (::Components::HomeExecutorBase_ptr
+p,</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp; ::CIAO::Session_Container *c</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp; ACE_ENV_ARG_DECL_WITH_DEFAULTS);</font></tt>
+<br>
+<tt><font color="#3333ff">extern "C" ::Components::HomeExecutorBase_ptr
+createBMClosedEDHome_Impl (void);</font></tt>
+<br>
+<tt><font color="#3333ff">extern "C" ::PortableServer::Servant
+createBMClosedEDHome_Servant</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp; (::Components::HomeExecutorBase_ptr
+p,</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp; ::CIAO::Session_Container *c</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp; ACE_ENV_ARG_DECL_WITH_DEFAULTS);</font></tt>
+<br>
+<tt><font color="#3333ff">extern "C" ::Components::HomeExecutorBase_ptr
+createBMDisplayHome_Impl (void);</font></tt>
+<br>
+<tt><font color="#3333ff">extern "C" ::PortableServer::Servant
+createBMDisplayHome_Servant</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp; (::Components::HomeExecutorBase_ptr
+p,</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp; ::CIAO::Session_Container *c</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp; ACE_ENV_ARG_DECL_WITH_DEFAULTS);</font></tt>
+<br>
+<tt><font color="#3333ff">//Homes</font></tt>
+<br>
+<tt><font color="#3333ff">CIAO::Static_Config::HomeAttributes
+homes_table_[]=</font></tt>
+<br>
+<tt><font color="#3333ff">{</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{"a_ECHome",
+"DCE:3148F760-F2ED-4204-A775-6B972C10E8CB",
+"createECHome_Impl", createECHome_Impl,
+"DCE:75309233-0E0A-4cfb-B186-3E99F69B1D40",
+"createECHome_Servant", createECHome_Servant, 0, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{"a_BMDeviceHome",
+"DCE:82C2B032-37F0-4315-A59F-7020D3264E4D",
+"createBMDeviceHome_Impl", createBMDeviceHome_Impl,
+"DCE:93D254CF-9538-44e8-BB98-AABCD134ADD3",
+"createBMDeviceHome_Servant", createBMDeviceHome_Servant, 0, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{"a_BMClosedEDHome",
+"DCE:8E6C468D-A39F-46b4-962B-265F1AA8D538",
+"createBMClosedEDHome_Impl", createBMClosedEDHome_Impl,
+"DCE:CDC06FCA-50FC-43ca-8ECC-BEFBD33FEE78",
+"createBMClosedEDHome_Servant", createBMClosedEDHome_Servant, 0, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{"a_BMDisplayHome",
+"DCE:8E92655E-CA07-46C8-B127-0F0872A8CC29",
+"createBMDisplayHome_Impl", createBMDisplayHome_Impl,
+"DCE:D7984625-8561-431d-9927-4E498B317C02",
+"createBMDisplayHome_Servant", createBMDisplayHome_Servant, 0, 0 }</font></tt>
+<br>
+<tt><font color="#3333ff">};</font></tt>
+<br>
+&nbsp;
+</p>
+<p><tt><font color="#3333ff">//Components</font></tt>
+<br>
+<tt><font color="#3333ff">CIAO::Static_Config::ComponentAttributes
+components_table_[]=</font></tt>
+<br>
+<tt><font color="#3333ff">{</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{"a_EC", 0, 0, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{"a_BMDevice", -1, -1, 1 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{"a_BMClosedED", -1, -1, 2 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{"a_BMDisplay", -1, -1, 3 }</font></tt>
+<br>
+<tt><font color="#3333ff">};</font></tt>
+<br>
+&nbsp;
+</p>
+<p><tt><font color="#3333ff">//Component Registrations</font></tt>
+<br>
+<tt><font color="#3333ff">CIAO::Assembly_Placement::componentinstantiation::Register_Info
+component_registrations_table_[]=</font></tt>
+<br>
+<tt><font color="#3333ff">{</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Placement::componentinstantiation::COMPONENT,
+CIAO::Assembly_Placement::componentinstantiation::IORFILE, "", "ec.ior"
+}</font></tt>
+<br>
+<tt><font color="#3333ff">};</font></tt>
+<br>
+&nbsp;
+</p>
+<p><tt><font color="#3333ff">//Connections</font></tt>
+<br>
+<tt><font color="#3333ff">CIAO::Static_Config::ConnectionAttributes
+connections_table_[]=</font></tt>
+<br>
+<tt><font color="#3333ff">{</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::PUBLISHER_CONSUMER,
+"", "timeout", 0, 1, 0, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::PUBLISHER_CONSUMER,
+"", "data_available", 3, 4, 0, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::PUBLISHER_CONSUMER,
+"", "out_avail", 6, 7, 0, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::INTERFACE,
+"", "datain", 9, 10, 0, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::INTERFACE,
+"", "comp_data", 12, 13, 0, 0 }</font></tt>
+<br>
+<tt><font color="#3333ff">};</font></tt>
+<br>
+&nbsp;
+</p>
+<p><tt><font color="#3333ff">//Resolver Infos</font></tt>
+<br>
+<tt><font color="#3333ff">CIAO::Static_Config::ResolveInfoAttributes
+resolvers_table_[]=</font></tt>
+<br>
+<tt><font color="#3333ff">{</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::COMP_IDREF,
+"a_EC", -1, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::CONSUMER,
+"timeout", 2, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::COMP_IDREF,
+"a_BMDevice", -1, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::COMP_IDREF,
+"a_BMDevice", -1, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::CONSUMER,
+"in_avail", 5, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::COMP_IDREF,
+"a_BMClosedED", -1, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::COMP_IDREF,
+"a_BMClosedED", -1, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::CONSUMER,
+"data_ready", 8, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::COMP_IDREF,
+"a_BMDisplay", -1, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::COMP_IDREF,
+"a_BMClosedED", -1, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::PROVIDER,
+"data_read", 11, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::COMP_IDREF,
+"a_BMDevice", -1, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::COMP_IDREF,
+"a_BMDisplay", -1, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::PROVIDER,
+"dataout", 14, 0 },</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;{CIAO::Assembly_Connection::COMP_IDREF,
+"a_BMClosedED", -1, 0 }</font></tt>
+<br>
+<tt><font color="#3333ff">};</font></tt>
+</p>
+<p><a name="Static_CCM_App.cpp"></a><b><u>Static_CCM_App.cpp</u></b>
+<br>
+<tt><font color="#3333ff">#include "ComponentServer_Impl.h"</font></tt>
+<br>
+<tt><font color="#3333ff">#include "CIAO_ServersC.h"</font></tt>
+<br>
+<tt><font color="#3333ff">#include "Server_init.h"</font></tt>
+<br>
+<tt><font color="#3333ff">#include "Static_Configurator.h"</font></tt>
+<br>
+<tt><font color="#3333ff">#include "ace/SString.h"</font></tt>
+<br>
+<tt><font color="#3333ff">#include "ace/Get_Opt.h"</font></tt>
+</p>
+<p><tt><font color="#3333ff">#include "Static_Assembly_Config.h"</font></tt>
+</p>
+<p><tt><font color="#3333ff">char *ior_file_name_ = "comp_serv.ior";</font></tt>
+</p>
+<p><tt><font color="#3333ff">int</font></tt>
+<br>
+<tt><font color="#3333ff">parse_args (int argc, char *argv[])</font></tt>
+<br>
+<tt><font color="#3333ff">{</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp; ACE_Get_Opt get_opts (argc, argv,
+"k:o:");</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp; int c;</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp; while ((c = get_opts ()) != -1)</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp; switch (c)</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
+'o':&nbsp;
+// get the file name to write to</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ior_file_name_
+= get_opts.opt_arg ();</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case
+'?':&nbsp;
+// display help for use of the server.</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default:</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ERROR_RETURN ((LM_ERROR,</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"usage:&nbsp; %s\n"</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"-o &lt;ior_output_file&gt;\n"</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"\n",</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+argv [0]),</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+-1);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp; return 0;</font></tt>
+<br>
+<tt><font color="#3333ff">}</font></tt>
+<br>
+&nbsp;
+</p>
+<p><tt><font color="#3333ff">int</font></tt>
+<br>
+<tt><font color="#3333ff">main (int argc, char *argv[])</font></tt>
+<br>
+<tt><font color="#3333ff">{</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp; ACE_TRY_NEW_ENV</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp; {</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Initialize
+orb</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CORBA::ORB_var
+orb = CORBA::ORB_init (argc,</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+argv,</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+0</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CIAO::Server_init
+(orb.in ());</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
+(parse_args
+(argc, argv) != 0)</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+return -1;</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Get
+reference
+to Root POA.</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CORBA::Object_var
+obj</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+= orb-&gt;resolve_initial_references ("RootPOA"</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+PortableServer::POA_var
+poa</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+= PortableServer::POA::_narrow (obj.in ()</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Activate
+POA manager</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+PortableServer::POAManager_var
+mgr</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+= poa-&gt;the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+mgr-&gt;activate
+(ACE_ENV_SINGLE_ARG_PARAMETER);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CIAO::ComponentServer_Impl
+*comserv_servant;</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CIAO::Static_Configurator
+configurator;</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int
+containers_table_size
+=</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+sizeof
+(containers_table_)/sizeof(CIAO::Static_Config::ContainerAttributes);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int
+homes_table_size
+=</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+sizeof (homes_table_)/sizeof(CIAO::Static_Config::HomeAttributes);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int
+components_table_size
+=</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+sizeof
+(components_table_)/sizeof(CIAO::Static_Config::ComponentAttributes);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int
+component_registrations_table_size
+=</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+sizeof
+(component_registrations_table_)/sizeof(CIAO::Assembly_Placement::componentinstantiation::Register_Info);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int
+connections_table_size
+=</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+sizeof
+(connections_table_)/sizeof(CIAO::Static_Config::ConnectionAttributes);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int
+resolvers_table_size
+=</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+sizeof
+(resolvers_table_)/sizeof(CIAO::Static_Config::ResolveInfoAttributes);</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CIAO::HOMECREATOR_FUNCPTR_MAP
+home_creator_fptr_map;</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CIAO::HOMESERVANTCREATOR_FUNCPTR_MAP
+homesvnt_creator_fptr_map;</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CIAO::Static_Config_EntryPoints_Maps
+maps;</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+maps.home_creator_funcptr_map_
+= &amp;home_creator_fptr_map;</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+maps.home_servant_creator_funcptr_map_
+= &amp;homesvnt_creator_fptr_map;</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i=0;</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (i=0;
+i&lt;homes_table_size; ++i)</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+{</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+home_creator_fptr_map.bind (homes_table_[i].executor_entrypt_,</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+homes_table_[i].executor_fptr_);</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+homesvnt_creator_fptr_map.bind (homes_table_[i].servant_entrypt_,</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+homes_table_[i].servant_fptr_);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+}</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_NEW_RETURN
+(comserv_servant,</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CIAO::ComponentServer_Impl (orb.in (),</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+poa.in (),</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+1,</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+&amp;maps),</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+-1);</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+PortableServer::ServantBase_var
+safe_servant (comserv_servant);</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Components::ConfigValues
+configs;</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+comserv_servant-&gt;init
+(configs</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //
+Configuring
+ComponentServer.</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+PortableServer::ObjectId_var
+cs_oid</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+= poa-&gt;activate_object (comserv_servant</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; obj =
+poa-&gt;id_to_reference
+(cs_oid.in ()</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Components::Deployment::ComponentServer_var
+comserv_obj =</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Components::Deployment::ComponentServer::_narrow (obj.in ()</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
+(CORBA::is_nil
+(comserv_obj.in ()))</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ERROR_RETURN ((LM_ERROR, "Unable to activate ComponentServer
+object\n"),
+-1);</font></tt>
+<br>
+&nbsp;
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Components::Deployment::ServerActivator_var
+activator;</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Components::ConfigValues_var
+config = new Components::ConfigValues;</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+comserv_servant-&gt;set_objref
+(activator.in (),</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+config,</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+comserv_obj.in ()</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</font></tt>
+</p>
+<p><a name="static config engine"></a><tt><font color="#ff0000">configurator.configure
+(orb.in (),</font></tt>
+<br>
+<tt><font color="#ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+comserv_obj.in (),</font></tt>
+<br>
+<tt><font color="#ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+containers_table_,</font></tt>
+<br>
+<tt><font color="#ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+containers_table_size,</font></tt>
+<br>
+<tt><font color="#ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+homes_table_,</font></tt>
+<br>
+<tt><font color="#ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+homes_table_size,</font></tt>
+<br>
+<tt><font color="#ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+components_table_,</font></tt>
+<br>
+<tt><font color="#ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+components_table_size,</font></tt>
+<br>
+<tt><font color="#ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+component_registrations_table_,</font></tt>
+<br>
+<tt><font color="#ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+component_registrations_table_size,</font></tt>
+<br>
+<tt><font color="#ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+connections_table_,</font></tt>
+<br>
+<tt><font color="#ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+connections_table_size,</font></tt>
+<br>
+<tt><font color="#ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+resolvers_table_,</font></tt>
+<br>
+<tt><font color="#ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+resolvers_table_size);</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CORBA::String_var
+str = orb-&gt;object_to_string (comserv_obj.in ()</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CIAO::Utility::write_IOR
+(ior_file_name_, str.in ());</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_DEBUG
+((LM_INFO, "ComponentServer IOR: %s\n", str.in ()));</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_DEBUG
+((LM_DEBUG,</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"Running ComponentServer...\n"));</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Run the
+main event loop for the ORB.</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; orb-&gt;run
+(ACE_ENV_SINGLE_ARG_PARAMETER);</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp; }</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp; ACE_CATCHANY</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp; {</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_PRINT_EXCEPTION
+(ACE_ANY_EXCEPTION,</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"server::main \n");</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 1;</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp; }</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp; ACE_ENDTRY;</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp; return 0;</font></tt>
+<br>
+<tt><font color="#3333ff">}</font></tt>
+</p>
+<p><a name="Static_CCM_App.mpc"></a><b><u>Static_CCM_App.mpc</u></b>
+<br>
+<tt><font color="#3333ff">project(Static_CCM_App) : ciao_server,
+ciao_client,
+rtcorba, rtportableserver, iortable, acexml {</font></tt>
+<br>
+<tt><font color="#3333ff">includes +=
+$(ACE_ROOT)/TAO/CIAO/tools/Assembly_Deployer</font></tt>
+<br>
+<tt><font color="#3333ff">includes +=
+$(ACE_ROOT)/TAO/CIAO/tools/static_configurator</font></tt>
+<br>
+<tt><font color="#3333ff">libs += CIAO_XML_Helpers Static_Configurator</font></tt>
+<br>
+<tt><font color="#3333ff">after += CIAO_XML_Helpers Static_Configurator</font></tt>
+<br>
+&nbsp;
+</p>
+<p><tt><font color="#3333ff">libs += EC_exec</font></tt>
+<br>
+<tt><font color="#3333ff">after += EC_exec</font></tt>
+<br>
+<tt><font color="#3333ff">libs += EC_svnt</font></tt>
+<br>
+<tt><font color="#3333ff">after += EC_svnt</font></tt>
+<br>
+<tt><font color="#3333ff">libs += BMDevice_exec</font></tt>
+<br>
+<tt><font color="#3333ff">after += BMDevice_exec</font></tt>
+<br>
+<tt><font color="#3333ff">libs += BMDevice_svnt</font></tt>
+<br>
+<tt><font color="#3333ff">after += BMDevice_svnt</font></tt>
+<br>
+<tt><font color="#3333ff">libs += BMClosedED_exec</font></tt>
+<br>
+<tt><font color="#3333ff">after += BMClosedED_exec</font></tt>
+<br>
+<tt><font color="#3333ff">libs += BMClosedED_svnt</font></tt>
+<br>
+<tt><font color="#3333ff">after += BMClosedED_svnt</font></tt>
+<br>
+<tt><font color="#3333ff">libs += BMDisplay_exec</font></tt>
+<br>
+<tt><font color="#3333ff">after += BMDisplay_exec</font></tt>
+<br>
+<tt><font color="#3333ff">libs += BMDisplay_svnt</font></tt>
+<br>
+<tt><font color="#3333ff">after += BMDisplay_svnt</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp; Source_Files {</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Static_CCM_App.cpp</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp; }</font></tt>
+</p>
+<p><tt><font color="#3333ff">&nbsp;&nbsp;&nbsp; IDL_Files {</font></tt>
+<br>
+<tt><font color="#3333ff">&nbsp;&nbsp;&nbsp; }</font></tt>
+<br>
+<tt><font color="#3333ff">}</font></tt>
+</p>
+<p><a name="Modified Static_CCM_App.cpp"></a><b><u>Modified
+Static_CCM_App.cpp</u></b> <br>
+</p>
+<p><small><span style="font-weight: bold;">(Highlighted text is
+manually added to the
+generated .cpp file)<br>
+<br>
+</span></small><tt>#include "ComponentServer_Impl.h"</tt>
+<br>
+<tt>#include "CIAO_ServersC.h"</tt>
+<br>
+<tt>#include "Server_init.h"</tt>
+<br>
+<tt>#include "Static_Configurator.h"</tt>
+<br>
+<tt>#include "ace/SString.h"</tt>
+<br>
+<tt>#include "ace/Get_Opt.h"</tt>
+</p>
+<p><tt>#include "Static_Assembly_Config.h"</tt>
+</p>
+<p><tt>char *ior_file_name_ = "comp_serv.ior";</tt>
+<br>
+<b><tt><font color="#990000">int rate = 2;</font></tt></b>
+</p>
+<p><tt>int</tt>
+<br>
+<tt>parse_args (int argc, char *argv[])</tt>
+<br>
+<tt>{</tt>
+<br>
+<tt>&nbsp; ACE_Get_Opt get_opts (argc, argv, "k:o:");</tt>
+<br>
+<tt>&nbsp; int c;</tt>
+</p>
+<p><tt>&nbsp; while ((c = get_opts ()) != -1)</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp; switch (c)</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 'o':&nbsp; // get the file
+name to write to</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ior_file_name_ =
+get_opts.opt_arg
+();</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case '?':&nbsp; // display help
+for
+use of the server.</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default:</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_ERROR_RETURN
+((LM_ERROR,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"usage:&nbsp; %s\n"</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"-o &lt;ior_output_file&gt;\n"</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"\n",</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+argv [0]),</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+-1);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</tt>
+</p>
+<p><tt>&nbsp; return 0;</tt>
+<br>
+<tt>}</tt>
+<br>
+&nbsp;
+</p>
+<p><tt>int</tt>
+<br>
+<tt>main (int argc, char *argv[])</tt>
+<br>
+<tt>{</tt>
+<br>
+<tt>&nbsp; ACE_TRY_NEW_ENV</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp; {</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Initialize orb</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CORBA::ORB_var orb = CORBA::ORB_init
+(argc,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+argv,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+0</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CIAO::Server_init (orb.in ());</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (parse_args (argc, argv) != 0)</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return -1;</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Get reference to Root POA.</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CORBA::Object_var obj</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
+orb-&gt;resolve_initial_references
+("RootPOA"</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PortableServer::POA_var poa</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
+PortableServer::POA::_narrow
+(obj.in ()</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Activate POA manager</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PortableServer::POAManager_var mgr</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = poa-&gt;the_POAManager
+(ACE_ENV_SINGLE_ARG_PARAMETER);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mgr-&gt;activate
+(ACE_ENV_SINGLE_ARG_PARAMETER);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CIAO::ComponentServer_Impl
+*comserv_servant;</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CIAO::Static_Configurator
+configurator;</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int containers_table_size =</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sizeof
+(containers_table_)/sizeof(CIAO::Static_Config::ContainerAttributes);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int homes_table_size =</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sizeof
+(homes_table_)/sizeof(CIAO::Static_Config::HomeAttributes);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int components_table_size =</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sizeof
+(components_table_)/sizeof(CIAO::Static_Config::ComponentAttributes);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int
+component_registrations_table_size
+=</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sizeof
+(component_registrations_table_)/sizeof(CIAO::Assembly_Placement::componentinstantiation::Register_Info);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int connections_table_size =</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sizeof
+(connections_table_)/sizeof(CIAO::Static_Config::ConnectionAttributes);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int resolvers_table_size =</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sizeof
+(resolvers_table_)/sizeof(CIAO::Static_Config::ResolveInfoAttributes);</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CIAO::HOMECREATOR_FUNCPTR_MAP
+home_creator_fptr_map;</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CIAO::HOMESERVANTCREATOR_FUNCPTR_MAP
+homesvnt_creator_fptr_map;</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CIAO::Static_Config_EntryPoints_Maps
+maps;</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maps.home_creator_funcptr_map_ =
+&amp;home_creator_fptr_map;</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+maps.home_servant_creator_funcptr_map_
+= &amp;homesvnt_creator_fptr_map;</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i=0;</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (i=0; i&lt;homes_table_size;
+++i)</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+home_creator_fptr_map.bind
+(homes_table_[i].executor_entrypt_,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+homes_table_[i].executor_fptr_);</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+homesvnt_creator_fptr_map.bind
+(homes_table_[i].servant_entrypt_,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+homes_table_[i].servant_fptr_);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_NEW_RETURN (comserv_servant,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CIAO::ComponentServer_Impl (orb.in (),</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+poa.in (),</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+1,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+&amp;maps),</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+-1);</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PortableServer::ServantBase_var
+safe_servant
+(comserv_servant);</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Components::ConfigValues configs;</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; comserv_servant-&gt;init (configs</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Configuring ComponentServer.</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PortableServer::ObjectId_var cs_oid</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
+poa-&gt;activate_object
+(comserv_servant</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; obj = poa-&gt;id_to_reference
+(cs_oid.in
+()</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Components::Deployment::ComponentServer_var
+comserv_obj =</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Components::Deployment::ComponentServer::_narrow
+(obj.in ()</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (CORBA::is_nil (comserv_obj.in
+()))</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_ERROR_RETURN
+((LM_ERROR,
+"Unable to activate ComponentServer object\n"), -1);</tt>
+<br>
+&nbsp;
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Components::Deployment::ServerActivator_var
+activator;</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Components::ConfigValues_var config
+= new Components::ConfigValues;</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; comserv_servant-&gt;set_objref
+(activator.in
+(),</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+config,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+comserv_obj.in ()</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK;</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; configurator.configure (orb.in (),</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+comserv_obj.in (),</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+containers_table_,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+containers_table_size,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+homes_table_,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+homes_table_size,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+components_table_,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+components_table_size,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+component_registrations_table_,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+component_registrations_table_size,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+connections_table_,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+connections_table_size,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+resolvers_table_,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+resolvers_table_size);</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CORBA::String_var str =
+orb-&gt;object_to_string
+(comserv_obj.in ()</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CIAO::Utility::write_IOR
+(ior_file_name_,
+str.in ());</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_DEBUG ((LM_INFO,
+"ComponentServer
+IOR: %s\n", str.in ()));</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_DEBUG ((LM_DEBUG,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"Running ComponentServer...\n"));</tt>
+</p>
+<p><b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CORBA::Object_var
+pulser_obj</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+= orb-&gt;string_to_object ("file://ec.ior"</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</font></tt></b>
+</p>
+<p><b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+BasicSP::EC_var
+pulser</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+= BasicSP::EC::_narrow (pulser_obj.in ()</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</font></tt></b>
+</p>
+<p><b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
+(CORBA::is_nil
+(pulser.in ()))</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ERROR_RETURN ((LM_ERROR, "Unable to acquire 'EC' objref\n"), -1);</font></tt></b>
+</p>
+<p><b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+pulser-&gt;hertz
+(rate</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</font></tt></b>
+</p>
+<p><b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_DEBUG
+((LM_DEBUG, "Start up the Event services\n"));</font></tt></b>
+</p>
+<p><b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+pulser-&gt;start
+(ACE_ENV_SINGLE_ARG_PARAMETER);</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</font></tt></b>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Run the main event loop for
+the
+ORB.</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; orb-&gt;run
+(ACE_ENV_SINGLE_ARG_PARAMETER);</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_TRY_CHECK</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp; }</tt>
+<br>
+<tt>&nbsp; ACE_CATCHANY</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp; {</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_PRINT_EXCEPTION
+(ACE_ANY_EXCEPTION,</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"server::main \n");</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 1;</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp; }</tt>
+<br>
+<tt>&nbsp; ACE_ENDTRY;</tt>
+</p>
+<p><tt>&nbsp; return 0;</tt>
+<br>
+<tt>}</tt>
+</p>
+<p><a name="Modified Static_CCM_App.mpc"></a><b><u>Modified
+Static_CCM_App.mpc</u></b> <br>
+</p>
+<p><small><span style="font-weight: bold;">(Highlighted text is
+manually added to the
+generated .cpp file)<br>
+<br>
+</span></small><tt>project(Static_CCM_App) : ciao_server, ciao_client,
+rtcorba,
+rtportableserver,
+iortable, acexml {</tt>
+<br>
+<tt>includes += $(ACE_ROOT)/TAO/CIAO/tools/Assembly_Deployer</tt>
+<br>
+<tt>includes += $(ACE_ROOT)/TAO/CIAO/tools/static_configurator</tt>
+<br>
+<tt>libs += CIAO_XML_Helpers Static_Configurator</tt>
+<br>
+<tt>after += CIAO_XML_Helpers Static_Configurator</tt>
+</p>
+<p><b><tt><font color="#990000">libs += BasicSP_stub BasicSP_svnt</font></tt></b>
+<br>
+<b><tt><font color="#990000">after += BasicSP_stub BasicSP_svnt</font></tt></b>
+<br>
+<tt>libs += EC_exec</tt>
+<br>
+<tt>after += EC_exec</tt>
+<br>
+<tt>libs += EC_svnt <b><font color="#990000">EC_stub</font></b></tt>
+<br>
+<tt>after += EC_svnt <b><font color="#990000">EC_stub</font></b></tt>
+<br>
+<tt>libs += BMDevice_exec</tt>
+<br>
+<tt>after += BMDevice_exec</tt>
+<br>
+<tt>libs += BMDevice_svnt <b><font color="#990000">BMDevice_stub</font></b></tt>
+<br>
+<tt>after += BMDevice_svnt <b><font color="#990000">BMDevice_stub</font></b></tt>
+<br>
+<tt>libs += BMClosedED_exec</tt>
+<br>
+<tt>after += BMClosedED_exec</tt>
+<br>
+<tt>libs += BMClosedED_svnt <b><font color="#990000">BMClosedED_stub</font></b></tt>
+<br>
+<tt>after += BMClosedED_svnt <b><font color="#990000">BMClosedED_stub</font></b></tt>
+<br>
+<tt>libs += BMDisplay_exec</tt>
+<br>
+<tt>after += BMDisplay_exec</tt>
+<br>
+<tt>libs += BMDisplay_svnt <b><font color="#990000">BMDisplay_stub</font></b></tt>
+<br>
+<tt>after += BMDisplay_svnt <b><font color="#990000">BMDisplay_stub</font></b></tt>
+</p>
+<p><tt>&nbsp;&nbsp; Source_Files {</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Static_CCM_App.cpp</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp; }</tt>
+</p>
+<p><tt>&nbsp;&nbsp;&nbsp; IDL_Files {</tt>
+<br>
+<tt>&nbsp;&nbsp;&nbsp; }</tt>
+<br>
+<tt>}</tt>
+<br>
+&nbsp;
+</p>
+</body>
+</html>
diff --git a/modules/CIAO/docs/static_config_rtexample.html b/modules/CIAO/docs/static_config_rtexample.html
new file mode 100644
index 00000000000..2e87e5aabe1
--- /dev/null
+++ b/modules/CIAO/docs/static_config_rtexample.html
@@ -0,0 +1,1079 @@
+<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+ <meta http-equiv="Content-Type"
+ content="text/html; charset=iso-8859-1">
+ <meta name="Author" content="Venkita Subramonian">
+ <meta name="GENERATOR"
+ content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
+ <title>BasicSP example using CIAO Static Configurator</title>
+<!-- $Id$ -->
+</head>
+<body>
+This example illustrates
+how to use the CIAO static configurator to build applications using
+RTCORBA policies statically.
+From the <a href="../examples/OEP/BasicSP">BasicSP</a> directory do
+the
+following.
+<p><b><tt>&gt; cd descriptors</tt></b>
+<br>
+<b><tt>&gt; $CIAO_ROOT/tools/static_configurator/Static_Assembly_Parser
+-a BasicSP-rt.cad</tt></b>
+</p>
+<p>The following files are generated -
+</p>
+<p><a href="#Static_Assembly_Config.h">Static_Assembly_Config.h</a>
+<br>
+<a href="#Modified%20Static_CCM_App.cpp">Static_CCM_App.cpp</a>
+<br>
+<a href="#Modified%20Static_CCM_App.mpc">Static_CCM_App.mpc</a>
+</p>
+<p><a href="#Static_Assembly_Config.h">Static_Assembly_Config.h</a>
+contains
+the intermediate representation of all the parsed component and
+assembly
+information obtained from the XML files. <a href="#Static_CCM_App.cpp">Static_CCM_App.cpp</a>&nbsp;
+contains the main driver application. Here a runtime <a
+ href="#static_config_engine">static
+configuration engine</a> is used to create containers, homes,
+components,
+etc and then establish necessary connections between the components.
+The configuration engine is also used to <a href="#rtconfig">configure</a>
+the containers and RTORB with the appropriate RTCORBA policies
+specified declaratively in the .rtcad file. In
+the BasicSP example, an external controller&nbsp; (see <tt><a
+ href="../examples/OEP/BasicSP/README">$CIAO_ROOT/examples/OEP/BasicSP/README</a></tt>)
+is used to start or stop a pulser. The generated main driver
+application
+(Static_CCM_App.cpp) is <a href="#Modified%20Static_CCM_App.cpp">modified</a>
+to add code to trigger the pulser object on. The generated .mpc file is
+<a href="#Modified%20Static_CCM_App.mpc">modified</a>
+to add all other necessary files so that the application can be built
+statically.
+Note that the static configurator only generates only certain file
+names
+in the .mpc file. These filenames are obtained from the XML descriptor
+files. All other necessary files have to be added manually as
+indicated.
+</p>
+<p>Now the static build files can be generated by running the mpc
+utility.
+</p>
+<p><b><tt>&gt; cd ..</tt></b>
+<br>
+<b><tt>&gt; $ACE_ROOT/bin/mpc -static Static_CCM_App.mpc</tt></b>
+</p>
+<p><a name="Static_Assembly_Config.h"></a><b><u>Static_Assembly_Config.h</u></b>
+<br>
+<span style="font-family: monospace;">#include "Static_Assembly.h"</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">#include "CCM_ContainerC.h"</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">#include "Container_Base.h"</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">//Containers</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">CIAO::Static_Config::ContainerAttributes
+containers_table_[]= </span><br style="font-family: monospace;">
+<span style="font-family: monospace;">{</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {"POLICY_1",
+0},</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {"", 0}</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">};</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">extern "C"
+::Components::HomeExecutorBase_ptr createECHome_Impl (void);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">extern "C"
+::PortableServer::Servant createECHome_Servant </span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; (::Components::HomeExecutorBase_ptr p,</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; ::CIAO::Session_Container *c</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; ACE_ENV_ARG_DECL_WITH_DEFAULTS);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">extern "C"
+::Components::HomeExecutorBase_ptr createBMDeviceHome_Impl (void);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">extern "C"
+::PortableServer::Servant createBMDeviceHome_Servant </span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; (::Components::HomeExecutorBase_ptr p,</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; ::CIAO::Session_Container *c</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; ACE_ENV_ARG_DECL_WITH_DEFAULTS);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">extern "C"
+::Components::HomeExecutorBase_ptr createBMClosedEDHome_Impl (void);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">extern "C"
+::PortableServer::Servant createBMClosedEDHome_Servant </span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; (::Components::HomeExecutorBase_ptr p,</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; ::CIAO::Session_Container *c</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; ACE_ENV_ARG_DECL_WITH_DEFAULTS);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">extern "C"
+::Components::HomeExecutorBase_ptr createBMDisplayHome_Impl (void);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">extern "C"
+::PortableServer::Servant createBMDisplayHome_Servant </span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; (::Components::HomeExecutorBase_ptr p,</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; ::CIAO::Session_Container *c</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; ACE_ENV_ARG_DECL_WITH_DEFAULTS);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">//Homes</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">CIAO::Static_Config::HomeAttributes
+homes_table_[]= </span><br style="font-family: monospace;">
+<span style="font-family: monospace;">{</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {"a_ECHome",
+"DCE:3148F760-F2ED-4204-A775-6B972C10E8CB", "createECHome_Impl",
+createECHome_Impl, "DCE:75309233-0E0A-4cfb-B186-3E99F69B1D40",
+"createECHome_Servant", createECHome_Servant, 0, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{"a_BMDeviceHome", "DCE:82C2B032-37F0-4315-A59F-7020D3264E4D",
+"createBMDeviceHome_Impl", createBMDeviceHome_Impl,
+"DCE:93D254CF-9538-44e8-BB98-AABCD134ADD3",
+"createBMDeviceHome_Servant", createBMDeviceHome_Servant, 0, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{"a_BMClosedEDHome", "DCE:8E6C468D-A39F-46b4-962B-265F1AA8D538",
+"createBMClosedEDHome_Impl", createBMClosedEDHome_Impl,
+"DCE:CDC06FCA-50FC-43ca-8ECC-BEFBD33FEE78",
+"createBMClosedEDHome_Servant", createBMClosedEDHome_Servant, 0, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{"a_BMDisplayHome", "DCE:8E92655E-CA07-46C8-B127-0F0872A8CC29",
+"createBMDisplayHome_Impl", createBMDisplayHome_Impl,
+"DCE:D7984625-8561-431d-9927-4E498B317C02",
+"createBMDisplayHome_Servant", createBMDisplayHome_Servant, 1, 0 }</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">};</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">//Components</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">CIAO::Static_Config::ComponentAttributes
+components_table_[]= </span><br style="font-family: monospace;">
+<span style="font-family: monospace;">{</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {"a_EC", 0, 0,
+0 },</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {"a_BMDevice",
+-1, -1, 1 },</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{"a_BMClosedED", -1, -1, 2 },</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{"a_BMDisplay", -1, -1, 3 }</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">};</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">//Component Registrations</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">CIAO::Assembly_Placement::componentinstantiation::Register_Info
+component_registrations_table_[]= </span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">{</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Placement::componentinstantiation::COMPONENT,
+CIAO::Assembly_Placement::componentinstantiation::IORFILE, "", "ec.ior"
+}</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">};</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">//Connections</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">CIAO::Static_Config::ConnectionAttributes
+connections_table_[]= </span><br style="font-family: monospace;">
+<span style="font-family: monospace;">{</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::PUBLISHER_CONSUMER, "", "timeout", 0, 1, 0,
+0 },</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::PUBLISHER_CONSUMER, "", "data_available",
+3, 4, 0, 0 },</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::PUBLISHER_CONSUMER, "", "out_avail", 6, 7,
+0, 0 },</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::INTERFACE, "", "datain", 9, 10, 0, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::INTERFACE, "", "comp_data", 12, 13, 0, 0 }</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">};</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">//Resolver Infos</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">CIAO::Static_Config::ResolveInfoAttributes
+resolvers_table_[]= </span><br style="font-family: monospace;">
+<span style="font-family: monospace;">{</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::COMP_IDREF, "a_EC", -1, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::CONSUMER, "timeout", 2, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::COMP_IDREF, "a_BMDevice", -1, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::COMP_IDREF, "a_BMDevice", -1, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::CONSUMER, "in_avail", 5, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::COMP_IDREF, "a_BMClosedED", -1, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::COMP_IDREF, "a_BMClosedED", -1, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::CONSUMER, "data_ready", 8, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::COMP_IDREF, "a_BMDisplay", -1, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::COMP_IDREF, "a_BMClosedED", -1, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::PROVIDER, "data_read", 11, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::COMP_IDREF, "a_BMDevice", -1, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::COMP_IDREF, "a_BMDisplay", -1, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::PROVIDER, "dataout", 14, 0 },</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{CIAO::Assembly_Connection::COMP_IDREF, "a_BMClosedED", -1, 0 }</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">};</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">//Thread Pool</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">CIAO::Static_Config::ThreadPoolAttributes
+thread_pool_table_[]= </span><br style="font-family: monospace;">
+<span style="font-family: monospace;">{</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{"common_pool", 0, 10, 20, 1, 0, 0, 0},</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{"high_prio_pool", 0, 2, 2, 3, 0, 0, 0}</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">};</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">//Lanes</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">CIAO::Static_Config::LaneAttributes
+lane_table_[]= </span><br style="font-family: monospace;">
+<span style="font-family: monospace;">{</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {1, 100, 300},</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {2, 2, 2},</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {3, 1, 2},</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {1, 10, 30},</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {2, 3, 3},</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {3, 1, 2}</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">};</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">//ThreadPoolLanes</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">CIAO::Static_Config::ThreadPoolLanesAttributes
+thread_pool_lanes_table_[]= </span><br style="font-family: monospace;">
+<span style="font-family: monospace;">{</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{"shared_pool", 0, 0, 2, 0, 0, 0, 0},</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {"laned_pool",
+0, 3, 5, 0, 0, 0, 0}</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">};</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">//Bands</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">CIAO::Static_Config::BandAttributes
+band_table_[]= </span><br style="font-family: monospace;">
+<span style="font-family: monospace;">{</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {1, 1},</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {2, 2},</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {3, 3000}</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">};</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">//PriorityBands</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">CIAO::Static_Config::PriorityBandsAttributes
+priority_band_table_[]= </span><br style="font-family: monospace;">
+<span style="font-family: monospace;">{</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{"common_conn", 0, 2}</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">};</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">//Policy Configs</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">CIAO::Static_Config::PolicyConfigAttributes
+policy_config_table_[]= </span><br style="font-family: monospace;">
+<span style="font-family: monospace;">{</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{RTCORBA::PRIORITY_MODEL_POLICY_TYPE, "", RTCORBA::SERVER_DECLARED, 2},</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{RTCORBA::THREADPOOL_POLICY_TYPE, "shared_pool", /*dummy variable*/
+RTCORBA::CLIENT_PROPAGATED, 0},</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{RTCORBA::PRIORITY_BANDED_CONNECTION_POLICY_TYPE, "common_conn",
+/*dummy variable*/ RTCORBA::CLIENT_PROPAGATED, 0},</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{RTCORBA::THREADPOOL_POLICY_TYPE, "common_pool", /*dummy variable*/
+RTCORBA::CLIENT_PROPAGATED, 0},</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;
+{RTCORBA::PRIORITY_MODEL_POLICY_TYPE, "", RTCORBA::CLIENT_PROPAGATED, 2}</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">};</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">//Policy Set</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">CIAO::Static_Config::PolicySetAttributes&nbsp;
+policy_set_table_[]= </span><br style="font-family: monospace;">
+<span style="font-family: monospace;">{</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {"POLICY_1",
+0, 2},</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {"POLICY_2",
+3, 4}</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">};</span><br>
+<br>
+<tt><font color="#3333ff"></font></tt></p>
+<tt><font color="#3333ff"></font></tt><a
+ name="Modified Static_CCM_App.cpp"></a><b><u>Modified
+Static_CCM_App.cpp</u></b> <br>
+<p><span style="font-family: monospace;"></span><small><span
+ style="font-weight: bold;">(Highlighted text is manually added to the
+generated .cpp file)</span></small></p>
+<p><span style="font-family: monospace;">#include "RTServer_Impl.h"</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">#include "CIAO_ServersC.h"</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">#include "Server_init.h"</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">#include "Static_Configurator.h"</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">#include "ace/SString.h"</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">#include "ace/Get_Opt.h"</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">#include
+"Static_Assembly_Config.h"</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">#include
+"tao/RTPortableServer/RTPortableServer.h"</span><br
+ style="font-family: monospace;">
+<span
+ style="font-family: monospace; color: rgb(153, 0, 0); font-weight: bold;">#include
+"EC/ECC.h"</span><br
+ style="font-family: monospace; color: rgb(153, 0, 0); font-weight: bold;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">char *ior_file_name_ =
+"comp_serv.ior"; </span><br style="font-family: monospace;">
+<span
+ style="font-family: monospace; color: rgb(153, 0, 0); font-weight: bold;">int
+rate = 2;</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">int</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">parse_args (int argc, char
+*argv[])</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">{</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp; ACE_Get_Opt get_opts
+(argc, argv, "k:o:");</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp; int c;</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp; while ((c = get_opts ())
+!= -1)</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; switch (c)</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; {</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; case
+'o':&nbsp; // get the file name to write to</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;
+ior_file_name_ = get_opts.opt_arg ();</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp; break;</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; case
+'?':&nbsp; // display help for use of the server.</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; default:</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ERROR_RETURN ((LM_ERROR,</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"usage:&nbsp; %s\n"</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"-o &lt;ior_output_file&gt;\n"</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"\n",</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+argv [0]),</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+-1);</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp; }</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp; return 0;</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">}</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">int</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">main (int argc, char *argv[])</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">{</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;ACE_TRY_NEW_ENV</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;{</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp; //
+Initialize orb</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;
+CORBA::ORB_var orb = CORBA::ORB_init (argc,</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+argv</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</span><br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</span><br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;
+CIAO::Server_init (orb.in ());</span><br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp; if
+(parse_args (argc, argv) != 0)</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+return -1;</span><br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //
+Get reference to Root POA.</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CORBA::Object_var object =</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+orb-&gt;resolve_initial_references ("RootPOA"</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;
+PortableServer::POA_var root_poa =</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;
+PortableServer::POA::_narrow (object.in ()</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; &nbsp;
+&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; ACE_ENV_ARG_PARAMETER);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp; // Get
+reference to RTORB.</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+object =</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+orb-&gt;resolve_initial_references ("RTORB"</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</span><br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+RTCORBA::RTORB_var rt_orb =</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+RTCORBA::RTORB::_narrow (object.in ()</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</span><br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //
+Activate POA manager</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+PortableServer::POAManager_var poa_manager =</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+root_poa-&gt;the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</span><small><span style="font-weight: bold;">(Highlighted
+files are manually added to the generated mpc file)</span></small><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+poa_manager-&gt;activate (ACE_ENV_SINGLE_ARG_PARAMETER);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</span><br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CIAO::RTServer::RTComponentServer_Impl *comserv_servant;</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CIAO::Static_Configurator configurator;</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+int containers_table_size =</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+sizeof
+(containers_table_)/sizeof(CIAO::Static_Config::ContainerAttributes);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+int homes_table_size =</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+sizeof (homes_table_)/sizeof(CIAO::Static_Config::HomeAttributes);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+int components_table_size =</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+sizeof
+(components_table_)/sizeof(CIAO::Static_Config::ComponentAttributes);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+int component_registrations_table_size =</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+sizeof
+(component_registrations_table_)/sizeof(CIAO::Assembly_Placement::componentinstantiation::Register_Info);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+int connections_table_size =</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+sizeof
+(connections_table_)/sizeof(CIAO::Static_Config::ConnectionAttributes);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+int resolvers_table_size =</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+sizeof
+(resolvers_table_)/sizeof(CIAO::Static_Config::ResolveInfoAttributes);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+int thread_pool_table_size=</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+sizeof(thread_pool_table_)/sizeof(CIAO::Static_Config::ThreadPoolAttributes);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+int thread_pool_lanes_table_size=</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+sizeof(thread_pool_lanes_table_)/sizeof(CIAO::Static_Config::ThreadPoolLanesAttributes);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+int priority_band_table_size=</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+sizeof(priority_band_table_)/sizeof(CIAO::Static_Config::PriorityBandsAttributes);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+int policy_set_table_size=</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+sizeof(policy_set_table_)/sizeof(CIAO::Static_Config::PolicySetAttributes);</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CIAO::HOMECREATOR_FUNCPTR_MAP home_creator_fptr_map;</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CIAO::HOMESERVANTCREATOR_FUNCPTR_MAP homesvnt_creator_fptr_map;</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CIAO::Static_Config_EntryPoints_Maps maps;</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+maps.home_creator_funcptr_map_ = &amp;home_creator_fptr_map;</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+maps.home_servant_creator_funcptr_map_ = &amp;homesvnt_creator_fptr_map;</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+int i=0;</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+for (i=0; i&lt;homes_table_size; ++i)</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+{</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+home_creator_fptr_map.bind (homes_table_[i].executor_entrypt_,</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+homes_table_[i].executor_fptr_);</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+homesvnt_creator_fptr_map.bind (homes_table_[i].servant_entrypt_,</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+homes_table_[i].servant_fptr_);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+}</span><br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_NEW_RETURN (comserv_servant,</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CIAO::RTServer::RTComponentServer_Impl (orb.in (),</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+rt_orb.in (),</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+root_poa.in (),</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+1, </span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+&amp;maps), </span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+-1);</span><br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+PortableServer::ServantBase_var safe_servant
+(comserv_servant);&nbsp;&nbsp; </span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Components::ConfigValues configs;</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+<span style="color: rgb(255, 0, 0);"><a name="rtconfig"></a>configurator.config_rt_info(configs,
+</span></span><br style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+thread_pool_table_, </span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+thread_pool_table_size,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+lane_table_,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+thread_pool_lanes_table_,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+thread_pool_lanes_table_size,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+band_table_,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+priority_band_table_,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+priority_band_table_size,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+policy_config_table_,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+policy_set_table_,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+policy_set_table_size);</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;
+comserv_servant-&gt;init (configs</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp; //
+Configuring ComponentServer.</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;
+PortableServer::ObjectId_var cs_oid</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+= root_poa-&gt;activate_object (comserv_servant</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK; </span><br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp; object =
+root_poa-&gt;id_to_reference (cs_oid.in ()</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</span><br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;
+Components::Deployment::ComponentServer_var comserv_obj =</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Components::Deployment::ComponentServer::_narrow (object.in ()</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</span><br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp; if
+(CORBA::is_nil (comserv_obj.in ()))</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ERROR_RETURN ((LM_ERROR,</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"Unable to activate RTComponentServer object\n"),</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+-1);</span><br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Components::Deployment::ServerActivator_var activator;</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //
+We are just storing the original configuration here.</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //
+Currently, we don't really use this ConfigValues direclty.</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Components::ConfigValues_var more_config = new Components::ConfigValues;</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+comserv_servant-&gt;set_objref (activator.in (),</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+more_config.in (),</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+comserv_obj.in ()</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</span><br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</span><br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+<a name="static_config_engine"></a><span style="color: rgb(255, 0, 0);">configurator.configure
+(orb.in (),</span></span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+comserv_obj.in (),</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+containers_table_,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+containers_table_size,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+homes_table_,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+homes_table_size,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+components_table_,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+components_table_size,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+component_registrations_table_,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+component_registrations_table_size,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+connections_table_,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+connections_table_size,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+resolvers_table_,</span><br
+ style="font-family: monospace; color: rgb(255, 0, 0);">
+<span style="font-family: monospace; color: rgb(255, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+resolvers_table_size);</span><br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CORBA::String_var str = orb-&gt;object_to_string (comserv_obj.in ()</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</span><br style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CIAO::Utility::write_IOR (ior_file_name_, str.in ());</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_DEBUG ((LM_INFO, "RTComponentServer IOR: %s\n", str.in ()));</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_DEBUG ((LM_DEBUG,</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"Running RTComponentServer...\n"));</span><br
+ style="font-family: monospace;">
+</p>
+<p><b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+CORBA::Object_var
+pulser_obj</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+= orb-&gt;string_to_object ("file://ec.ior"</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</font></tt></b>
+</p>
+<p><b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+BasicSP::EC_var
+pulser</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+= BasicSP::EC::_narrow (pulser_obj.in ()</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</font></tt></b>
+</p>
+<p><b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
+(CORBA::is_nil
+(pulser.in ()))</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ERROR_RETURN ((LM_ERROR, "Unable to acquire 'EC' objref\n"), -1);</font></tt></b>
+</p>
+<p><b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+pulser-&gt;hertz
+(rate</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_ENV_ARG_PARAMETER);</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</font></tt></b>
+</p>
+<p><b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_DEBUG
+((LM_DEBUG, "Start up the Event services\n"));</font></tt></b>
+</p>
+<p><b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+pulser-&gt;start
+(ACE_ENV_SINGLE_ARG_PARAMETER);</font></tt></b>
+<br>
+<b><tt><font color="#990000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK;</font></tt></b>
+</p>
+<p><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //
+Run the main event loop for the ORB.</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+orb-&gt;run (ACE_ENV_SINGLE_ARG_PARAMETER);</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_TRY_CHECK</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; }</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp; ACE_CATCHANY</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp; {</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+"server::main&nbsp;&nbsp;&nbsp; \n");</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+return 1;</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp; }</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp; ACE_ENDTRY;</span><br
+ style="font-family: monospace;">
+<br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp; return 0;</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">}</span><br>
+<tt></tt></p>
+<a name="Modified Static_CCM_App.mpc"></a><b><u>Modified
+Static_CCM_App.mpc</u></b>
+<br>
+<small><span style="font-weight: bold;"><br>
+(Highlighted files are manually added to the generated mpc file)</span></small><br>
+<tt></tt><span style="font-family: monospace;"><br>
+project(Static_CCM_App) :&nbsp; ciao_server, ciao_client, rtcorba,
+rtportableserver, iortable, acexml{</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">includes +=
+$(ACE_ROOT)/TAO/CIAO/tools/Assembly_Deployer</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">includes +=
+$(ACE_ROOT)/TAO/CIAO/tools/static_configurator</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">includes +=
+$(ACE_ROOT)/TAO/CIAO/tools/RTComponentServer</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">libs += RTComponent_Server
+CIAO_XML_Helpers&nbsp; Static_Configurator</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">after += RTComponent_Server
+CIAO_XML_Helpers&nbsp; Static_Configurator</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;</span><br
+ style="font-family: monospace;">
+<span
+ style="font-family: monospace; color: rgb(153, 0, 0); font-weight: bold;">libs
++= BasicSP_stub&nbsp; BasicSP_svnt</span><br
+ style="font-family: monospace; color: rgb(153, 0, 0); font-weight: bold;">
+<span
+ style="font-family: monospace; color: rgb(153, 0, 0); font-weight: bold;">after
++= BasicSP_stub&nbsp; BasicSP_svnt</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">libs += EC_exec</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">after += EC_exec</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">libs += EC_svnt <span
+ style="font-weight: bold; color: rgb(153, 0, 0);">EC_stub</span></span><br
+ style="font-family: monospace; font-weight: bold; color: rgb(153, 0, 0);">
+<span style="font-family: monospace;">after += EC_svnt<span
+ style="font-weight: bold; color: rgb(153, 0, 0);"> EC_stub</span></span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">libs += BMDevice_exec</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">after += BMDevice_exec</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">libs += BMDevice_svnt <span
+ style="font-weight: bold; color: rgb(153, 0, 0);">BMDevice_stub</span></span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">after += BMDevice_svnt&nbsp; <span
+ style="font-weight: bold; color: rgb(153, 0, 0);">BMDevice_stub</span></span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">libs += BMClosedED_exec</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">after += BMClosedED_exec</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">libs += BMClosedED_svnt <span
+ style="font-weight: bold; color: rgb(153, 0, 0);">BMClosedED_stub</span></span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">after += BMClosedED_svnt <span
+ style="font-weight: bold; color: rgb(153, 0, 0);">BMClosedED_stub</span></span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">libs += BMDisplay_exec</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">after += BMDisplay_exec</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">libs += BMDisplay_svnt <span
+ style="font-weight: bold; color: rgb(153, 0, 0);">BMDisplay_stub</span></span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">after += BMDisplay_svnt <span
+ style="font-weight: bold; color: rgb(153, 0, 0);">BMDisplay_stub</span></span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp; Source_Files {</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+Static_CCM_App.cpp</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; }</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; IDL_Files {</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; }</span><br
+ style="font-family: monospace;">
+<span style="font-family: monospace;">}</span><br>
+<br>
+</body>
+</html>
diff --git a/modules/CIAO/docs/static_dance.html b/modules/CIAO/docs/static_dance.html
new file mode 100644
index 00000000000..3bd6433e133
--- /dev/null
+++ b/modules/CIAO/docs/static_dance.html
@@ -0,0 +1,214 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+ <meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8">
+ <title></title>
+<!-- $Id$ -->
+ <meta name="GENERATOR" content="OpenOffice.org 1.1.2 (Linux)">
+ <meta name="CREATED" content="20041128;11452700">
+ <meta name="CHANGED" content="20041210;11524200">
+ <style>
+ <!--
+ @page { size: 8.5in 11in; margin-left: 1.25in; margin-right: 1.25in; margin-top: 1in; margin-bottom: 1in }
+ P { margin-bottom: 0.08in }
+ H2.western { font-family: "Times New Roman", serif }
+ H2.cjk { font-family: "Arial Unicode MS" }
+ H2.ctl { font-family: "Tahoma" }
+ H3.western { font-family: "Times New Roman", serif }
+ H3.cjk { font-family: "Arial Unicode MS" }
+ H3.ctl { font-family: "Tahoma" }
+ -->
+ </style>
+</head>
+<body dir="ltr" lang="en-US">
+<h2 class="western" align="center">CIAO Static Configuration Support
+with DanCE for Real-Time Platforms </h2>
+<h3 class="western">1. Introduction</h3>
+<p>The dynamic packaging, assembly, and deployment mechanisms
+currently available in CIAO are useful for application domains where
+component metadata is less likely to be known a priori, where
+implementation upgrades may need to be performed on-line, and where
+platform features like loading and unloading dynamic libraries are
+both available and useful. We have already incorporated <a
+ href="http://www.cs.wustl.edu/%7Eschmidt/ACE_wrappers/TAO/CIAO/docs/static_ciao_index.html">static
+configuration support</a> for component configuration in CIAO on
+platforms like VxWorks, as a set of optional strategies and
+optimizations to the existing CIAO configuration capabilities (). In
+this white paper, we discuss implementation details for extending the
+static configuration capabilities as part of the new DanCE (D&amp;C
+support available with CIAO) framework.</p>
+<p>The fundamental intuition in understanding our approach is that in
+DRE systems the stages of the overall system lifecycle are similar to
+those in more dynamic conventional component-oriented client-server
+applications.However, in DRE systems several phases of the system
+lifecycle are compressed into the compile-time and
+system-initialization phases, so that (1) for testing and
+verification purposes the set of components in an application can be
+identified and analyzed before run-time, and (2) overheads for
+run-time operation following initialization are reduced and made more
+predictable. Furthermore, due to the nuances of the platforms
+traditionally used for deploying DRE systems, not all features of
+conventional platforms are available. Our approach therefore avoids
+certain mechanisms that are either unavailable or too costly in terms
+of performance. We follow these intuitions in our approach, taking
+the existing configuration phases in CIAO and pushing several of them
+earlier in the configuration lifecycle.</p>
+<h3 class="western">2. Current D&amp;C in CIAO with DanCE</h3>
+<p><img src="imgs/dance_arch.jpg" name="Graphic2"
+ style="border: 0px solid ; width: 600px; height: 400px;" alt=""
+ align="left"><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br><b>Figure 1.</b> <b>Current D&amp;C process using DAnCE</b></p>
+One of the key concerns while supporting the static configuration
+within the DAnCE framework is to reuse the existing components in the
+DAnCE framework as much as possible. Figure 1 shows the current D&amp;C
+process using the DAnCE framework. This is the standard D&amp;C
+process as specified in the CCM D&amp;C specification.As seen from
+the figure, there are multiple processes (Executor, ExecutionManager,
+NodeManagers and NodeApplications) that are involved.
+<h3 class="western">3. Static Configuration with DanCE</h3>
+<p><img src="imgs/static_dance_arch.jpg" name="Graphic3"
+ style="border: 0px solid ; width: 800px; height: 800px;" alt=""
+ align="left"><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br>
+</p>
+<p><br><b>Figure 2.</b> <b>Static D&amp;C in DAnCE</b></p>
+<p>Figure 2 shows the static configuration approach in DAnCE. Here,
+the flattened deployment plan (.cdp) is parsed offline by an offline
+parser ($CIAO_ROOT/StaticConfigurator/StaticDAnCEParser) using the
+same XML parser classes that the dynamic configuration uses. The
+output of the parser is a C++ plan.h file, which contains the function
+entry points for home and home servant creation. The assumption here
+is that all the necessary (component implementations and other)
+libraries are statically linked to the driver application (see a
+template in
+$CIAO_ROOT/DAnCE/StaticConfigurator/StaticDAnCEApp.cpp.tmpl). </p>
+<p>The driver application is essentially a NodeManager which can be
+used to do deployment just the same as in DAnCE. To achieve maximum
+reusability of the existing classes in the DAnCE framework, we use
+the class hierarchy shown in Figure 3. </p>
+<br>
+<b></b>
+<p style="page-break-before: always;" align="left"><img
+ src="imgs/static_dance_impl.jpg" name="Graphic1"
+ style="border: 0px solid ; width: 700px; height: 700px;" alt=""
+ align="left"><br clear="left">
+<b>Figure 3. New class hierarchy to accommodate static configuration
+within DAnCE<br>
+</b></p>
+<h3 class="western">3.Example</h3>
+<p>To run the static version of Hello example, do the following,<br>
+</p>
+<ol>
+ <li>Build ACE+TAO+CIAO statically</li>
+ <li>Build $CIAO_ROOT/examples/Hello&nbsp;</li>
+ <li>Generate the static function entrypoints (plan.h)<br>
+ <span style="font-family: monospace;">&gt; cd
+$CIAO_ROOT/examples/Hello/descriptors</span><span
+ style="font-family: monospace;"><br>
+&gt; <span style="font-family: &quot;times new roman&quot;,serif;"><span
+ style="font-weight: bold;"></span></span>$CIAO_ROOT/DAnCE/StaticConfigurator/StaticDAnCEParser
+-p flattened_deploymentplan_without_ns.cdp</span><br>
+ <span style="font-family: monospace;">&gt; cp plan.h <span
+ style="font-weight: bold;"></span>$CIAO_ROOT/DAnCE/StaticConfigurator/</span><br>
+ </li>
+ <li>Build the static NodeManager for Hello example<span
+ style="font-family: monospace;"><br>
+&gt; cd $CIAO_ROOT/DAnCE/StaticConfigurator</span><br
+ style="font-family: monospace;">
+ <span style="font-family: monospace;"></span><span
+ style="font-family: monospace;">&gt; cp StaticDAnCEApp.cpp.tmpl
+StaticDAnCEApp.cpp</span><br style="font-family: monospace;">
+ <span style="font-family: monospace;">&gt; cp
+StaticDAnCEApp.mpc.tmpl StaticDAnCEApp.mpc<br>
+&gt; $ACE_ROOT/bin/mwc.pl<br>
+&gt; make<br>
+ </span></li>
+ <li>Run the static node managers. Note that the <span
+ style="font-family: monospace;">ORBEndpoint</span> values should
+correspond to the ones in&nbsp;<span style="font-family: monospace;">
+$CIAO_ROOT/examples/Hello/descriptors/TestNodeManagerMap.dat </span><br>
+&gt; <span style="font-family: monospace;">cd
+$CIAO_ROOT/DAnCE/StaticConfigurator<br>
+&gt; ./StaticDAnCEApp -ORBEndpoint iiop://localhost:60001 &amp;<br>
+ </span><span style="font-family: monospace;">&gt; ./StaticDAnCEApp
+-ORBEndpoint iiop://localhost:60002 &amp;</span><br>
+ </li>
+ <li>Do the deployment. This is just the same as the non-static
+version of DAnCE except that we have the NodeManagers already running
+and need not spawn node managers. To accomplish this, change&nbsp; <span
+ style="font-family: monospace;">$CIAO_ROOT/examples/Hello/descriptors/run_test_without_ns.pl
+to <span style="font-weight: bold;">*not*</span> run the node manager
+daemons.<br>
+ </span><span style="font-family: monospace;">&gt; cd
+$CIAO_ROOT/examples/Hello/descriptors<br>
+&gt; ./</span><span style="font-family: monospace;">run_test_without_ns.pl</span></li>
+</ol>
+<br>
+<p></p>
+</body>
+</html>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/01.html b/modules/CIAO/docs/tutorials/Quoter/Simple/01.html
new file mode 100644
index 00000000000..2e168f6556d
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/01.html
@@ -0,0 +1,374 @@
+<!-- $Id$ -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>Getting Started</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ <style type="text/css">
+/*<![CDATA[*/
+ <!--
+ @font-face {
+ font-family:Tahoma;
+ panose-1:2 11 6 4 3 5 4 4 2 4;
+ }
+ h3 {
+ font-size:13.5pt;
+ font-family:"Times New Roman";
+ font-weight:bold;
+ }
+ a:link, span.MsoHyperlink {
+ color:#000FFF;
+ text-decoration:underline;
+ text-underline:single;
+ }
+ a:visited, span.MsoHyperlinkFollowed {
+ color:#FF0F0F;
+ text-decoration:underline;
+ text-underline:single;
+ }
+ p {
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+ }
+ address {
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+ font-style:italic;
+ }
+ code {
+ font-family:"Courier New";
+ }
+ p.MsoAcetate, li.MsoAcetate, div.MsoAcetate {
+ font-size:8.0pt;
+ font-family:Tahoma;
+ }
+ div.Section1 {
+ page:Section1
+ }
+ -->
+ /*]]>*/
+ </style><!-- 01.html,v 1.3 2006/02/10 14:34:35 mxiong Exp -->
+
+ <style type="text/css">
+/*<![CDATA[*/
+ body {
+ background-color: #FFFFFF;
+ }
+ :link { color: #000FFF }
+ :visited { color: #FF0F0F }
+ address.c50 {LINE-HEIGHT: 150%}
+ address.c49 {LINE-HEIGHT:150%}
+ div.c48 {LINE-HEIGHT: 150%; TEXT-ALIGN: center; text-align: center}
+ hr.c47 {text-align: center}
+ p.c46 {LINE-HEIGHT: 150%; TEXT-ALIGN: center; text-align: center}
+ p.c45 {LINE-HEIGHT:150%}
+ p.c44 {MARGIN-LEFT:1.75in;TEXT-INDENT:-0.75in;LINE-HEIGHT:150%;}
+ p.c43 {MARGIN-LEFT:0.5in;TEXT-INDENT:1.25in;LINE-HEIGHT:150%}
+ span.c42 {COLOR:black; FONT-FAMILY:'Courier New'}
+ span.c41 {LINE-HEIGHT:150%;FONT-FAMILY:'Times New Roman';}
+ p.c40 {LINE-HEIGHT: 150%; TEXT-INDENT: 0.5in; font-weight: bold}
+ p.c39 {MARGIN-LEFT: 1.25in; TEXT-INDENT: -0.25in; LINE-HEIGHT: 150%;}
+ span.c38 {COLOR: black; FONT-FAMILY: 'Courier New';}
+ span.c37 {FONT-SIZE: 10pt; COLOR: black; LINE-HEIGHT: 150%}
+ span.c36 {COLOR: black; FONT-FAMILY: Symbol;}
+ span.c35 {FONT: 7pt 'Times New Roman'}
+ p.c34 {MARGIN-LEFT:1.5in;LINE-HEIGHT:150%}
+ p.c33 {MARGIN-LEFT: 1.25in; LINE-HEIGHT: 150%}
+ span.c32 {COLOR: black;}
+ p.c31 {MARGIN-LEFT:1.25in;LINE-HEIGHT:150%}
+ span.c30 {font-family: Times New Roman}
+ span.c29 {font-family: Courier; font-size: 80%}
+ p.c28 {MARGIN-LEFT: 0.5in; TEXT-INDENT: 1.25in; LINE-HEIGHT: 150%}
+ span.c27 {COLOR: black; FONT-FAMILY: 'Courier New'}
+ p.c26 {MARGIN-LEFT:1.25in;TEXT-INDENT:-0.25in;LINE-HEIGHT:150%;}
+ span.c25 {FONT-SIZE: 10pt;COLOR: black;LINE-HEIGHT: 150%}
+ span.c24 {COLOR:black;LINE-HEIGHT:150%;FONT-FAMILY:'Times New Roman';}
+ span.c23 {FONT-SIZE:10pt; COLOR:black; LINE-HEIGHT:150%}
+ p.c22 {TEXT-INDENT:0.5in;LINE-HEIGHT:150%}
+ p.c21 {MARGIN-LEFT:0.75in;LINE-HEIGHT:150%}
+ span.c20 {COLOR:black;}
+ p.c19 {MARGIN-LEFT:0.5in;TEXT-INDENT:0.5in;LINE-HEIGHT:150%}
+ span.c18 {COLOR:black; FONT-FAMILY:'Courier New';}
+ p.c17 {MARGIN-LEFT:0.75in;TEXT-INDENT:-0.25in;LINE-HEIGHT:150%;}
+ span.c16 {FONT-SIZE:10pt;COLOR:black;LINE-HEIGHT:150%}
+ span.c15 {COLOR:black;FONT-FAMILY:Symbol;}
+ p.c14 {LINE-HEIGHT: 150%; font-weight: bold}
+ h3.c13 {MARGIN:0in 0in 0pt 1.5in; TEXT-INDENT:-0.25in; LINE-HEIGHT:150%;}
+ span.c12 {FONT-WEIGHT:normal; FONT-SIZE:12pt; COLOR:black; LINE-HEIGHT:150%;}
+ h3.c11 {MARGIN:0in 0in 0pt 0.75in; TEXT-INDENT:-0.25in; LINE-HEIGHT:150%;}
+ span.c10 {FONT-WEIGHT:normal; FONT-SIZE:12pt; COLOR:black; LINE-HEIGHT:150%; FONT-FAMILY:Symbol;}
+ h3.c9 {MARGIN:0in 0in 0pt; TEXT-INDENT:0.5in; LINE-HEIGHT:150%}
+ span.c8 {FONT-SIZE:12pt;COLOR:black;LINE-HEIGHT:150%}
+ p.c7 {MARGIN:0in 0in 0pt 0.75in; TEXT-INDENT:-0.25in; LINE-HEIGHT:150%;}
+ span.c6 {FONT-FAMILY:Symbol;}
+ span.c5 {FONT:7pt 'Times New Roman'}
+ span.c4 {FONT-WEIGHT:normal;FONT-SIZE:12pt;COLOR:black;LINE-HEIGHT:150%;}
+ h3.c3 {MARGIN:0in 0in 0pt; LINE-HEIGHT:150%}
+ h3.c2 {LINE-HEIGHT: 150%; MARGIN: 0in 0in 0pt; TEXT-ALIGN: center; text-align: center}
+ span.c1 {COLOR:black}
+ /*]]>*/
+ </style>
+</head>
+
+<body lang="EN-US" xml:lang="EN-US">
+ <h3 class="Section1 c2"><span class='c1'>Step 1: Define your
+ interfaces and component types</span></h3>
+
+ <h3 class="Section1 c2"><span class='c1'><img width="447" height=
+ "350" id="_x0000_i1025" src="images/step1.jpg" name=
+ "_x0000_i1025" /></span></h3>
+
+ <h3 class="Section1 c3"><span class='c1'>&nbsp;</span></h3>
+
+ <h3 class="Section1 c3"><span class='c4'>Please make sure to read
+ the following article to under the Stock Quoter system
+ architecture before delving further into the
+ tutorial:</span></h3>
+
+ <p class="Section1 c7"><span class='c6'>&middot;<span class=
+ "c5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span> <a href=
+ "http://www.cuj.com/documents/s=9152/cujexp0404vinoski/">The
+ CORBA Component Model, Part 2: Defining Components with the IDL
+ 3.x Types</a></p>
+
+ <h3 class="Section1 c3"><span class='c4'>&nbsp;</span></h3>
+
+ <h3 class="Section1 c3"><span class='c8'>Directory
+ Structure:</span></h3>
+
+ <h3 class="Section1 c3"><span class='c4'>The tutorial relies on
+ the following directory structure. Create Quoter and all its
+ subdirectories as shown below. We will describe the purpose of
+ these directories later in the tutorial.</span></h3>
+
+ <h3 class="Section1 c9"><span class='c4'>Quoter</span></h3>
+
+ <h3 class="Section1 c3"><span class=
+ 'c4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ |---- descriptors</span></h3>
+
+ <h3 class="Section1 c3"><span class=
+ 'c4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ |---- Stock_Base</span></h3>
+
+ <h3 class="Section1 c3"><span class=
+ 'c4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ |---- Distributor</span></h3>
+
+ <h3 class="Section1 c3"><span class=
+ 'c4'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ |---- Broker</span></h3>
+
+ <h3 class="Section1 c3"><span class='c4'>&nbsp;</span></h3>
+
+ <h3 class="Section1 c3"><span class=
+ 'c8'>Preliminaries:</span></h3>
+
+ <h3 class="Section1 c11"><span class='c10'>&middot;<span class=
+ "c5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span>
+ <span class='c4'>We use the Make Project Creator (MPC) throughout
+ this tutorial. Understanding MPC will aid you in understanding
+ this tutorial. For more information on MPC please look at the
+ following:</span></h3>
+
+ <h3 class="Section1 c13"><span class='c12'>1.<span class=
+ "c5">&nbsp;&nbsp;&nbsp;&nbsp;</span></span> <span class='c4'>MPC
+ <a href="../../../../../../MPC/docs/html/MakeProjectCreator.html">Chapter</a>.</span></h3>
+
+ <h3 class="Section1 c13"><span class='c12'>2.<span class=
+ "c5">&nbsp;&nbsp;&nbsp;&nbsp;</span></span> <span class=
+ 'c4'>$ACE_ROOT/MPC/<a href="../../../../../../MPC/docs/README">README</a></span></h3>
+
+ <p class='c14'><span class='c1'>Interface Design:</span></p>
+
+ <p class='c17'><span class='c15'>&middot;<span class=
+ "c5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span>
+ <span class='c1'>In the <i>Quoter/Stock_Base</i> sub-directory,
+ place an idl file</span> <code><i><span class=
+ 'c16'>Stock_Base.idl</span></i></code> <span class='c1'>that you
+ could copy from <a href="Stock_Base/Stock_Base.idl">here</a> .
+ This file defines the interfaces and events that will be used by
+ both StockDistributor and StockBroker components. We put together
+ the common interface definitions so the base library can be
+ shared by both components, reducing the footprint of "real"
+ components.</span></p>
+
+ <p class='c17'><span class='c15'>&middot;<span class=
+ "c5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span>
+ <span class='c1'>Next, we need to create a Make Project Creator
+ (MPC) file to generate the make files for us. From the
+ <i>Quoter/Stock_Base</i> subdirectory, type the following
+ command:</span></p>
+
+ <p class='c19'><span class="c18">generate_component_mpc.pl
+ &ndash;n Stock_Base</span></p>
+
+ <p class='c21'><span class='c20'>The command above will generate
+ a <i>Stock_Base.mpc</i> file that contains two projects
+ <i>Stock_Base_stub</i> and <i>Stock_Base_skel</i> for the Stub
+ and Servant code respectively. The MPC file should look like
+ <a href="Stock_Base/Stock_Base.mpc">this</a>.<br/>
+ Mind that "libout" and "libpaths" are added. This is done to make
+ the compilation of this example easier and at runtime, all deliveralbes
+ are in one directory. Beware that you need to add this
+ directory to your system path when running the executables (see page 4).
+ </span></p>
+
+ <p class='c14'><span class='c1'>Component Design:</span></p>
+
+ <p class='c22'><b><span class=
+ 'c1'>Distributor:</span></b><span class=
+ 'c1'>&nbsp;&nbsp;&nbsp;</span></p>
+
+ <p class='c26'><span class='c15'>&middot;<span class=
+ "c5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span>
+ <span class='c1'>In the</span> <code><i><span class=
+ 'c23'>Quoter/Distributor</span></i></code> <code><span class=
+ "c24">sub-directory</span></code><span class='c1'>, place an idl
+ file</span> <code><i><span class=
+ 'c25'>StockDistributor.idl</span></i></code> <span class=
+ 'c1'>that looks like <a href=
+ "Distributor/StockDistributor.idl">this</a>. This file defines
+ the StockDistributor component interfaces.</span></p>
+
+ <p class='c26'><span class='c15'>&middot;<span class=
+ "c5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span>
+ <span class='c1'>Next, we need to create a Make Project Creator
+ (MPC) file to generate the make files for us. From the
+ <i>Quoter/Distributor</i> <span>&nbsp;</span>sub-directory, type
+ the following command</span></p>
+
+ <p class="c28"><span class="c27">generate_component_mpc.pl -p
+ Stock_Base -c StockDistributorDriver StockDistributor</span></p>
+
+ <p class='c31'><span class='c20'>The command above takes a few
+ optional parameters. The -p option indicates that the <span class=
+ "c29">StockDistributor</span> component has a dependency on
+ <span class="c29">Stock_Base</span>, the -c option
+ causes the script to generate MPC files for a simple driver
+ program. In this tutorial, we use a simple driver program to
+ demonstrate how a non-CCM applications can interact with
+ component applications.</span></span></p>
+
+ <p class="c33"><span class="c32">The command above will generate
+ a <i>StockDistributor.mpc</i> file that contains&nbsp;several
+ projects that will build the Stub, Servant, and Executor code
+ respectively.
+ <p class="c39">&middot;&nbsp;&nbsp;&nbsp;&nbsp;
+ <span class="c32">Next we write a simple driver program
+ (<code><i><span class=
+ "c37">StockDistributorDriver.cpp)</span></i></code> that will
+ control the <span class="c29">StockDistributor</span> component.
+ The simple driver program controls when the <span class=
+ "c29">StockDistributor</span> component publishes stock quotes,
+ the rates of publication, and when publication of stock quotes
+ stops. The simple driver program should look
+ like&nbsp;</span><span class="c32"><a href=
+ "Distributor/StockDistributorDriver.cpp">this</a>.</span></span></p>
+
+ <p class='c26'><span class='c15'>&middot;<span class=
+ "c5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span>
+ <span class='c20'>The generated</span> <span class='c20'>MPC file
+ should look like <a href=
+ "Distributor/StockDistributor.mpc">this</a>. Both "libout" and "libpaths"
+ are added again.
+ </span></p>
+
+ <p class='c40'><span class='c1'>Broker:</span></p>
+
+ <p class='c26'><span class='c15'>&middot;<span class=
+ "c5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span>
+ <span class='c1'>In the</span> <code><i><span class=
+ 'c23'>Quoter/Broker</span></i></code> <span class=
+ 'c1'><code><span class="c41">sub-directory,</span></code> place
+ an idl file</span> <code><i><span class=
+ 'c16'>StockBroker.id</span></i></code><code><span class=
+ 'c23'>l</span></code> <span class='c1'>that looks like <a href=
+ "Broker/StockBroker.idl">this</a>. This file defines the
+ StockBroker component interface.</span></p>
+
+ <p class='c26'><span class='c15'>&middot;<span class=
+ "c5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span>
+ <span class='c1'>Next, we need to create a Make Project Creator
+ (MPC) file to generate the make files for us. From the
+ <i>Quoter/Broker</i> sub-directory, type the following
+ command:</span></p>
+
+ <p class='c43'><span class="c42"><span class=
+ "c27">generate_component_mpc.pl -p Stock_Base -c
+ StockBrokerDriver StockBroker</span></span></p>
+
+ <p class='c31'><span class='c20'><span class="c32">The command
+ above takes a few optional parameter. The -p option states that
+ the <span class="c29">StockBroker</span> component has a
+ dependency on <span class="c29">Stock_Base</span><span class="c32">, the
+ -c option causes the script to generates make files for a simple
+ driver program. In this tutorial, we use a simple driver program
+ to demonstrate how a non-CCM applications can interact with
+ Components.</span></span></span></span></p>
+
+ <p class="c33"><span class="c32"><span class="c32">The command
+ above will generate a <i>StockBroker.mpc</i> file that
+ contains&nbsp;several projects that will build the Stub, Servant,
+ and Executor code respectively.
+
+ <p class="c39"><span class="c36">&middot;<span class=
+ "c35">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span>
+ <span class="c32">Next we write a simple driver program
+ (<code><i><span class=
+ "c37">StockBrokerDriver.cpp)</span></i></code> that would control
+ the <span class="c29">StockBroker</span> component. The simple
+ driver program controls what stocks the <span class=
+ "c29">StockBroker</span> component subscribes to. The simple
+ driver program should look like&nbsp;</span><span class=
+ "c32"><a href="Broker/StockBrokerDriver.cpp">this</a>.</span></p>
+
+ <p class='c44'><span class='c15'>&middot;<span class=
+ "c5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span>
+ <span class='c20'><span class="c32">The generated</span>
+ <span class="c32">MPC file should look like</span> <a href=
+ "Broker/StockBroker.mpc">this</a>. Both "libout" and "libpaths"
+ are added again.</span></p>
+
+ <p class='c45'><span class='c1'><br />
+ <b>Note:</b></span></p>
+
+ <p class='c45'><span class='c1'>To understand the meaning of
+ different parameters passed to</span> <span class=
+ "c42">generate_component_mpc.pl</span><span class='c20'>click
+ <a href="../../../generate_component_mpc.html">here</a> or type
+ the</span> <span class='c1'>following command:</span></p>
+
+ <p class='c45'><span class="c42">generate_component_mpc.pl
+ -h</span><span class='c1'><br />
+ <br /></span></p>
+
+ <p class='c46'><span class='c1'><a href=
+ "index.html">Previous</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="02.html">Next</a></span></p>
+
+ <div class='c48'>
+ <hr class="c47" size="2" width="100%" />
+ </div>
+
+ <div class="Section1">
+ <address class='c49'>
+ <span class='c1'><a href=
+ "mailto:ming.xiong@vanderbilt.edu">Ming
+ Xiong<br /></a></span> <a href=
+ "mailto:abdullah.sowayan@lmco.com">Abdullah Sowayan</a>
+ </address>
+
+ <address class="c50">
+ &nbsp;
+ </address>
+
+ <address class="c50">
+ $Id$
+ </address>
+ </div>
+</body>
+</html>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/02.html b/modules/CIAO/docs/tutorials/Quoter/Simple/02.html
new file mode 100644
index 00000000000..071398d657e
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/02.html
@@ -0,0 +1,198 @@
+<!-- $Id$ -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <meta name="generator" content=
+ "HTML Tidy for Mac OS X (vers 31 October 2006 - Apple Inc. build 13), see www.w3.org" />
+
+ <title>Getting Started</title>
+ <meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+ <style type="text/css">
+/*<![CDATA[*/
+ <!--
+ h3 {
+ font-size:13.5pt;
+ font-family:"Times New Roman";
+ }
+ a:link, span.MsoHyperlink {
+ color:#000FFF;
+ text-decoration:underline;
+ text-underline:single;
+ }
+ a:visited, span.MsoHyperlinkFollowed {
+ color:#FF0F0F;
+ text-decoration:underline;
+ text-underline:single;
+ }
+ address {
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+ }
+ code {
+ font-family:"Courier New";
+ }
+ div.Section1 {
+ page:Section1
+ }
+ -->
+ /*]]>*/
+ </style><!-- 01.html,v 1.3 2006/02/10 14:34:35 mxiong Exp -->
+
+ <style type="text/css">
+/*<![CDATA[*/
+ body {
+ background-color: #FFFFFF;
+ }
+ :link { color: #000FFF }
+ :visited { color: #FF0F0F }
+ div.c18 {TEXT-ALIGN: center; text-align: center}
+ hr.c17 {text-align: center}
+ p.c16 {TEXT-ALIGN: center; text-align: center}
+ p.c15 {MARGIN-BOTTOM:12pt}
+ span.c14 {COLOR: black}
+ p.c13 {LINE-HEIGHT:150%}
+ p.c12 {MARGIN:0in 0in 12pt 1.25in}
+ p.c11 {MARGIN:0in 0in 12pt 1.5in}
+ span.c10 {COLOR:black; FONT-FAMILY:'Courier New';}
+ p.c9 {MARGIN:0in 0in 12pt 1.25in;TEXT-INDENT:-0.25in;}
+ span.c8 {COLOR:black;}
+ span.c7 {COLOR:black;FONT-FAMILY:Symbol;}
+ span.c6 {FONT:7pt 'Times New Roman'}
+ p.c5 {MARGIN: 0in 0in 12pt 0.5in; font-weight: bold}
+ p.c4 {MARGIN-BOTTOM: 12pt; font-weight: bold}
+ h3.c3 {TEXT-ALIGN: center; text-align: center}
+ h3.c2 {LINE-HEIGHT: 150%; MARGIN: 0in 0in 0pt; TEXT-ALIGN: center; text-align: center}
+ span.c1 {COLOR:black}
+ /*]]>*/
+ </style>
+</head>
+
+<body lang="EN-US" xml:lang="EN-US">
+ <div class="Section1">
+ <h3 class='c2'><span class='c1'>Step 2: Implement your
+ components</span></h3>
+
+ <h3 class='c3'><span class='c1'><img width="634" height="376"
+ id="_x0000_i1025" src="images/step2.jpg" name=
+ "_x0000_i1025" /></span></h3>
+
+ <p class='c4'><span class='c1'>Generating the executor files:</span></p>
+
+ <p class='c5'><span class='c1'>Distributor:</span></p>
+
+ <p class='c9'><span class='c7'>&middot;<span class=
+ "c6">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span>
+ <span class='c8'>The MPC files we generated earlier
+ automatically invoke the TAO IDL compiler to generate the
+ servant and Component Implementation Framework (CIF) for us. To reduce the amount
+ of work and typing we need to do, we will next instruct the
+ TAO IDL compiler to generate an empty StockDistributor Executor
+ implementation (Object implementation in the figure above). In
+ the <i>Quoter/Distributor</i> sub-directory, type the
+ following:</span></p>
+
+ <p class='c11'><span class="c10">tao_idl -I%TAO_ROOT%
+ -I%TAO_ROOT%/tao -I%CIAO_ROOT% -I%CIAO_ROOT%/ccm -I%CIAO_ROOT%/ciao
+ -Gex StockDistributor.idl</span></p>
+
+ <p class='c12'><span class='c1'>The above command will generate
+ a <i>StockDistributor_exec.h</i> and
+ <i>StockDistributor_exec.cpp</i> files. These generated files
+ greatly reduced the amount of work we do. We&rsquo;ll edit
+ those files later in the tutorial to insert our business logic
+ in the Distributor component.</span></p>
+
+ <p class='c5'><span class='c1'>Broker:</span></p>
+
+ <p class='c9'><span class='c7'>&middot;<span class=
+ "c6">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span>
+ <span class='c8'>The MPC files we generated earlier
+ automatically invoked the TAO IDL compiler to generate the
+ servants, and the CIF for us. To reduce the amount
+ of work and typing we need to do, we will next instruct the
+ TAO IDL compiler to generate an empty StockBroker Executor
+ implementation (Object implementation in the figure above). In
+ the <i>Quoter/Broker</i> sub-directory, type the
+ following:</span></p>
+
+ <p class='c11'><span class="c10">tao_idl -I%TAO_ROOT%
+ -I%TAO_ROOT%/tao -I%CIAO_ROOT% -I%CIAO_ROOT%/ccm -I%CIAO_ROOT%/ciao
+ -Gex StockBroker.idl</span></p>
+
+ <p class='c12'><span class='c1'>The above command will generate
+ a <i>StockBroker_exec.h</i> and <i>StockBroker_exec.cpp</i>
+ files. These generated files greatly reduced the amount of work
+ we do. We&rsquo;ll edit those files later in the tutorial to
+ insert our business logic in the Broker component.</span></p>
+
+ <p class='c13'><span class='c1'><br />
+ <b>Note:</b></span></p>
+
+ <p class='c13'><span class='c1'>To understand the meaning of
+ different parameters passed to the TAO IDL compiler, type the following
+ command:</span></p>
+
+ <p class='c15'><span class="c10">tao_idl -?</span><span class=
+ 'c14'><br />
+ <br />
+ <br /></span></p>
+
+ <p class='c4'><span class='c1'>Implement the
+ Components:</span></p>
+
+ <p class='c5'><span class='c1'>Distributor:</span></p>
+
+ <p class='c9'><span class='c7'>&middot;<span class=
+ "c6">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span>
+ <span class='c8'>The TAO IDL compiler generated an empty</span>
+ <i><span class='c1'>StockDistributor_exec.h</span></i>
+ <span class='c1'>and <i>StockDistributor_exec.cpp</i> files for
+ us. You should now add your business logic to the executors.
+ Look into <i><a href=
+ "Distributor/StockDistributor_exec.h">StockDistributor_exec.h</a></i>
+ and <i><a href=
+ "Distributor/StockDistributor_exec.cpp">StockDistributor_exec.cpp</a></i>
+ to see how we implemented this.</span></p>
+
+ <p class='c5'><span class='c1'>Broker:</span></p>
+
+ <p class='c9'><span class='c7'>&middot;<span class=
+ "c6">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span>
+ <span class='c8'>The TAO IDL compiler generated an empty</span>
+ <i><span class='c1'>StockBroker_exec.h</span></i> <span class=
+ 'c1'>and <i>StockBroker_exec.cpp</i> files for us. You should
+ now add your business logic to the executors. Look into
+ <i><a href=
+ "Broker/StockBroker_exec.h">StockBroker_exec.h</a></i> and
+ <i><a href=
+ "Broker/StockBroker_exec.cpp">StockBroker_exec.cpp</a></i> to
+ see how we implemented this.</span></p>
+
+ <p class='c16'><span class='c1'><a href=
+ "01.html">Previous</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <a href="03.html">Next</a></span></p>
+
+ <div class='c18'>
+ <hr class="c17" size="2" width="100%" />
+ </div>
+
+ <address>
+ <span class='c1'><a href=
+ "mailto:ming.xiong@vanderbilt.edu">Ming
+ Xiong<br /></a></span> <a href=
+ "mailto:abdullah.sowayan@lmco.com">Abdullah Sowayan</a>
+ </address>
+
+ <address>
+ &nbsp;
+ </address>
+
+ <address>
+ $Id$
+ </address>
+ </div>
+</body>
+</html>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/03.html b/modules/CIAO/docs/tutorials/Quoter/Simple/03.html
new file mode 100644
index 00000000000..d8795ab2533
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/03.html
@@ -0,0 +1,543 @@
+<!-- $Id$ -->
+<html xmlns="http://www.w3.org/TR/REC-html40">
+<head>
+<title>Getting Started</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<style>
+<!--
+h3 {
+ font-size:13.5pt;
+ font-family:"Times New Roman";
+ font-weight:bold;
+}
+a:link, span.MsoHyperlink {
+ color:#000FFF;
+ text-decoration:underline;
+ text-underline:single;
+}
+a:visited, span.MsoHyperlinkFollowed {
+ color:#FF0F0F;
+ text-decoration:underline;
+ text-underline:single;
+}
+p {
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+}
+address {
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+ font-style:italic;
+}
+code {
+ font-family:"Courier New";
+}
+kbd {
+ font-family:"Courier New";
+}
+pre {
+ tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
+ font-size:10.0pt;
+ font-family:"Courier New";
+}
+div.Section1 {
+ page:Section1
+}
+-->
+</style>
+<!-- $Id$ -->
+</head>
+<body bgcolor="#FFFFFF" lang="EN-US" link="#000fff" vlink="#ff0f0f">
+<div class="Section1">
+ <h3 align="center" style='TEXT-ALIGN:center'><span style='COLOR:black'>Step 3:
+ Package your components</span></h3>
+ <h3 align="center" style='TEXT-ALIGN:center'><span style='COLOR:black'><img width="572" height="358" id="_x0000_i1025" src="images/step3.jpg"> </span></h3>
+ <p><b>Brief Introduction to CosMIC:</b></p>
+ <p>The Component Synthesis
+ using Model Integrated Computing (CoSMIC) project is a MDA toolset being
+ developed by the Institute for Software Integrated Systems (ISIS) at
+ <st1:place w:st="on">
+ <st1:PlaceName w:st="on">
+ Vanderbilt
+ <st1:PlaceType w:st="on">
+ University
+
+ to:</p>
+ <p style='MARGIN-LEFT:39pt;TEXT-INDENT:-0.25in;'>1.<span style="FONT:7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp; </span><i>Model and</i> <i>analyze </i>distributed real-time and embedded
+ application functionality and QoS requirements.</p>
+ <p style='MARGIN-LEFT:39pt;TEXT-INDENT:-0.25in;'>2.<span style="FONT:7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp; </span><i>Synthesize</i> CCM-specific deployment metadata required to deliver
+ end-to-end QoS to DRE applications.</p>
+ <p>The CoSMIC toolsuite
+ provides modeling of DRE systems, their QoS requirements, and QoS adaptation
+ policies used for DRE application QoS management. The component behavior, their
+ interactions, and QoS requirements are modeled using a domain specific modeling
+ language that adheres to <span style='COLOR:black'>the <a href="http://www.omg.org/cgi-bin/doc?ptc/2003-07-08">OMG
+ Deployment &amp; Configuration (D&amp;C) specification (ptc/2003-07-08)</a></span>.
+ CoSMIC enables modeling the standards-based CCM components. </p>
+ <p>Hand-writing the required
+ XML descriptors to configure our components is tedious and error prone. We
+ therefore utilize CosMIC (we specifically use a subset of CosMIC called PICML,
+ which stands for Platform-Independent Component Modeling Language) to generate
+ the bulk of descriptors for us.</p>
+ <p>For more information on
+ CosMIC, please refer to the following article:</p>
+ <p><a href="http://www.cs.wustl.edu/~schmidt/PDF/mamad2003.pdf">CoSMIC:
+ An MDA Generative Tool for Distributed Real-time and Embedded Applications</a>.</p>
+ <div align="center" style='TEXT-ALIGN:center'><span style='COLOR:black'>
+ <hr size="2" width="100%" align="center">
+ </span></div>
+ <p><b><span style='COLOR:black'>Importing IDL to PICML</span></b><span style='COLOR:black'><br>
+ <br>
+ &nbsp;&nbsp; To quick start our Stock Quoter modeling process in GME, CoSMIC
+ introduces <em>idl_to_picml</em> , which is an executable program that imports
+ the IDL files you just created into PICML.</span></p>
+ <ol start="1" type="1">
+ <li style='COLOR:black;'> Make sure <code> <span style='FONT-SIZE:10pt'>%COSMIC_ROOT%\bin</span></code> is included in
+ the PATH variable, e.g., c:\Program Files\ISIS\CoSMIC\bin.
+ <li style='COLOR:black;'> Open a command prompt, run VCVARS32.BAT from the MSVC .NET folder if you
+ haven't done so. It will set the environment for using Microsoft Visual Studio
+ .NET tools so that <i>idl_to_picml</i> works properly.<br>
+ in my machine, VCVARS32.bat is in C:\Program Files\Microsoft Visual Studio .NET
+ 2003\Vc7\bin
+ <li style='COLOR:black;'> In the same command prompt, change directory to <code> <span style='FONT-SIZE:10pt'>Quoter\Simple</span></code>, and type the
+ following command:<br>
+ &nbsp;&nbsp; &gt; <kbd> <span style='FONT-SIZE:10pt'> idl_to_picml -I%CIAO_ROOT% -x Quoter -r .&nbsp;</span></kbd><br>
+ <em>idl_to_picml</em> will parse your IDL files and generated a <code> <span style='FONT-SIZE:10pt'>Quoter.xme</span></code> file in the <code>
+ <span style='FONT-SIZE:10pt'>Quoter</span></code> directory. Note that if
+ -x option is not used, the default xme file name will be <code> <span style='FONT-SIZE:10pt'>PICML_default_xme_file.xme.</span></code><br>
+ <span style='COLOR:black;'>When this command is run a second time, be sure to delete all E.idl files first!</span><br>
+ <br>
+ <LI style="COLOR: black; "> Start GME, select <strong>File-&gt;Import xml..</strong>, and choose the xme
+ file just generated. You should be able to see an imported PICML model similar
+ to the one shown in Figure 2. </LI>
+ </ol>
+ <p align="center" style='TEXT-ALIGN:center'><span style='COLOR:black'><img border="0" id="_x0000_i1027" src="images/fig2.jpg"><br>
+ <br>
+ Figure 2</span></p>
+ <p><span style='COLOR:black'>&nbsp; In the Browser of the generated model, the <em>PredefinedTypes</em> folder contains a bunch of atomic datatype elements that will be referenced by
+ other modeling parts later. You don't have to worry about them for now. The
+ models in <em>InterfaceDefinitions</em> folder are the PICML representations
+ of the IDL files you just imported. Double-click to open <em>StockBroker</em>, it
+ will show you a white, document-like entity which represents a
+ &lt;&lt;FileRef&gt;&gt; instance and a yellow box-shaped entity representing a
+ &lt;&lt;Package&gt;&gt; instance. Their equivalent representations in IDL files
+ are "#include" and "module" respectively. Figure 3 gives
+ you a clear view of GME representation of all the 3 idl files created. We will
+ cover the other folders in the next section.</span></p>
+ <p align="center" style='MARGIN-BOTTOM:12pt;TEXT-ALIGN:center'><span style='COLOR:black'><img border="1" id="_x0000_i1028" src="images/fig3.jpg"><br>
+ <br>
+ Figure 3</span></p>
+ <p style='MARGIN-BOTTOM:12pt'><span style='COLOR:black'>Now
+ we are ready to model the rest of the Stock Quoter systems.<br>
+ <br>
+ <br>
+ </span></p>
+ <div align="center" style='TEXT-ALIGN:center'><span style='COLOR:black'>
+ <hr size="2" width="100%" align="center">
+ </span></div>
+ <h3>Building Stock Quoter system in PICML<span style='COLOR:black'> </span></h3>
+ <p><span style='COLOR:black'>This section describes modeling the Quoter
+ application using PICML. If you have trouble producing a functioning model from
+ this tutorial, please see the, <a href="Model/Quoter.xme">pre-built Quoter model</a> which is provided for your reference. This model contains all
+ elements created as part of this tutorial.</span></p>
+ <p><strong><span style='COLOR:black'>Note:</span></strong><span style='COLOR:black'> To import an XML file in GME, select <em>File-&gt;Import
+ XML..</em> from GME and choose your XML model</span></p>
+ <p><span style='COLOR:black'>The PICML paradigm is designed for the <a href="http://www.omg.org/cgi-bin/doc?ptc/2003-07-08">OMG
+ Deployment &amp; Configuration (D&amp;C) specification (ptc/2003-07-08)</a>, so the modeling process
+ is straightforward if you are familiar with the specification. Please see the <a href="../../../releasenotes/dance.html">DAnCE
+ project</a> for more
+ information.&nbsp;For those who hate specification (including me, :-)), an <a href="http://www.cs.wustl.edu/%7Eschmidt/PDF/DAnCE.pdf">overview
+ of D&amp;C</a> and as well as a <a href="http://www.cs.wustl.edu/%7Eschmidt/OMG-CCM-Tutorial.ppt">tutorial of D&amp;C
+ and CCM</a> can help to reduce the learning curve. In addition, it is
+ also helpful to read through documentation which originally came from the TAO's Developer's Guide 1.4a (CIAO
+ and CCM) which thoroughly describes the various descriptors required for a
+ component (*.iad, *.ccd, *.cid, etc). This chapter is available <a href="../../../CIAO.pdf">here.</a></span></p>
+ <h3><span style='COLOR:black'>Table of Contents</span></h3>
+ <ul type="disc">
+ <li style='COLOR:black;'> <a href="#1">ImplementationArtifacts</a>
+ <li style='COLOR:black;'> <a href="#2">ComponentImplementations</a>
+ <li style='COLOR:black;'> <a href="#3">ComponentPackages</a>
+ <li style='COLOR:black;'> <a href="#4">PackageConfiguration</a>
+ <li style='COLOR:black;'> <a href="#5">TopLevelPackage</a>
+ <li style='COLOR:black;'> <a href="#6">Targets</a>
+ <li style='COLOR:black;'> <a href="#7">DeploymentPlan</a></li>
+ </ul>
+ <div align="center" style='TEXT-ALIGN:center'><span style='COLOR:black'>
+ <hr size="2" width="100%" align="center">
+ </span></div>
+ <p><span style='COLOR:black'>The complete PICML Quoter model consists of
+ modeling elements distributed across various folders. If you used <em>idl_to_picml</em> to generate the initial model, you will see that it has created all these
+ folders and some of the tedious boilerplate modeling for us. The rest of the
+ section will explain the purpose of each folder as well as the modeling
+ entities contained in these folders. We will also show how to model some of the
+ folders that have to be done by hand.</span></p>
+ <p><b><span style='BACKGROUND:silver;COLOR:red;FONT-VARIANT:small-caps;'>Important:</span></b><span style='BACKGROUND:silver;COLOR:black;'> The interpreters that generate deployment
+ artifacts expect very strict constraints in the model. When you finish your
+ model, and any time you wish to generate anything, it is a good idea to check
+ constraints by clicking on <em>File-&gt;Check-&gt;Check All</em> in GME. This
+ will help you find many logic errors in your model.</span><span style='COLOR:black'> </span></p>
+ <h3><span style='COLOR:black'>ImplementationArtifacts</span></h3>
+ <p><span style='COLOR:black'>This folder contains implementation artifacts
+ associated with components. <em>idl_to_picml</em> has created these artifacts
+ for us, with their dependency relationships correctly captured. In order to match the current DAnCE specification, both execPoints
+ should be removed. Figure 4 shows the Implementation Artifacts for <em>StockBroker</em>.</span>
+ </p>
+
+ <p align="center" style='MARGIN-BOTTOM:12pt;TEXT-ALIGN:center'><span style='COLOR:black'><img border="0" id="_x0000_i1031" src="images/fig4.jpg"><br>
+ Figure 4.</span></p>
+ <div align="center" style='TEXT-ALIGN:center'><a name="1"></a><span style='COLOR:black'>
+ <hr size="2" width="100%" align="center">
+ </span></div>
+ <h3><span style='COLOR:black'>ComponentImplementation<a name="2"></a></span></h3>
+ <p><span style='COLOR:black'>This folder contains models that describe the implementations
+ of component interfaces. In the Quoter example, we will have two monolithic
+ component implementations - named <em>StockDistributorImplementation</em> and <em>StockBrokerImplementation</em> - and an assembly component implementation named <em>StockQuoter</em>, which is
+ an assembly of <em>StockDistributorImplementation</em> and <em>StockBrokerImplementaion</em>. <em>idl_to_picml</em> has created the monolithic component implementations for
+ us, as shown in figure 5 for example, but we have to change this model in order to meet the DAnCE specification.</span></p>
+ <p align="center" style='TEXT-ALIGN:center'><span style='COLOR:black'><img border="0" id="_x0000_i1033" src="images/fig5.jpg"><br>
+ Figure 5</span>
+ </p>
+
+ <p><span style='COLOR:black'>First thing we need to do is delete the following attributes.
+ <ul>
+ <li>StockBroker_stubRef</li>
+ <li>StockBroker_svntRef</li>
+ <li>StockBroker_execRef</li>
+ <li>ComponentIOR</li>
+ </ul>
+ After that we need to create a reference to the artifacts.
+ <ol>
+ <li>Drag a &lt;&lt;ComponentImplementationArtifact&gt;&gt; and a
+ &lt;&lt;ComponentServantArtifact&gt;&gt; from the Part browser to the modeling window.
+ </li>
+ <li>These two parts need to be linked to the StockBroker_exec and StockBroker_svnt artifacts in
+ <code><span style='FONT-SIZE:10pt'>Quoter/ImplementationArtifacts/StockBrokerArtifacts</span></code>.
+ This can be established by expanding the tree view and drag StockBroker_exec to the
+ &lt;&lt;ComponentImplementationArtifact&gt;&gt; and StockBroker_svnt to
+ &lt;&lt;ComponentServantArtifact&gt;&gt; on the window. On succes,
+ the &lt;&lt;ComponentImplementationArtifact&gt;&gt; icon should change into a
+ &lt;&lt;ImplementationArtifactReference&gt;&gt; icon.
+ </li>
+ <li>Now we should define which entry point is used. Since this tutorial is about unhomed components and the
+ in the IDL we used homed component, we should create an entry point in code in order to support unhomed component.
+ This can be done by:
+ <ol>
+ <li>Opening StockBroker_exec.h and add an entry point in the extern "C" section. This function should return
+ a <code>::Components::EnterpriseComponent_ptr</code> instead of a <code>::Components::HomeExecutorBase_ptr</code>. See
+ <a href="Broker/StockBroker_exec.h">StockBroker_exec.h</a> for more details.
+ </li>
+ <li>Opening StockBroker_exec.cpp and implement the extern "C" function. See
+ <a href="Broker/StockBroker_exec.cpp">StockBroker_exec.cpp</a> for more details.
+ </li>
+ <li>Now we should turn back to the model to configure this entry point. This should be done
+ by selecting the <em>ComponentImplemtationArtifact</em> and specify this new extern "C" function
+ (<code>create_Stock_StockBrokerComp_Impl</code>) in the attribute window.<br>
+ </li>
+ </ol>
+ The same has to be done for the <em>ComponentServantArtifact</em>. Mind that the entry point in code should be
+ implemented in the right namespace (<code>CIAO_Stock_StockBroker_Impl</code>). In this case the function is called
+ "create_Stock_StockBroker_Servant". See <a href="Broker/StockBroker_svnt.h">StockBroker_exec.h</a> and
+ <a href="Broker/StockBroker_svnt.cpp">StockBroker_exec.cpp</a> for more details.
+ </li>
+ <li>Connect <em>ComponentServantArtifact</em> and <em>ComponentImplementationArtifact</em> to
+ <em>StockBrokerMonolithicImpl</em>. To connect two items, one should switch to connect mode by clicking
+ <img border="0" width="16" height="16" id="_x0000_i1035" src="Icons/AddConnMode.gif" />. First click
+ <em>StockBrokerMonolithicImpl</em> and then <em>ComponentServantArtifact</em>.
+ </li>
+ </ol>
+ Don't forget to perform the previous steps for StockDistributor!<br/>
+ The result of these actions is shown in figure 5a.</span>
+ </p>
+ <p align="center" style='TEXT-ALIGN:center'><span style='COLOR:black'><img border="0" id="_x0000_i1033" src="images/fig5a.jpg"><br>
+ <br/>
+ Figure 5a</span>
+ </p>
+
+
+ We also need to specify the connections between a <em>StockDistributorImplementation</em> and a <em>StockBrokerImplementaion</em> in
+ order to construct a Quoter system. Therefore we need to create the mentioned
+ StockQuoter component assemby</span></p>
+
+ <p><span style='COLOR:black'>Assembly components provide a boundary for the composition
+ of monolithic components and even other assemblies. Assembly components do not
+ provide actual implementations for their interface, it is a virtual component
+ that delegates its ports and attributes to one or more of the entities it
+ contains. There are slight differences between modeling an assembly and
+ modeling a monolithic component. Since the assembly is a virtual component, it
+ is not necessary to model a </span><code><span style='FONT-SIZE:10pt;
+ COLOR:black'>MonolithicImplementation</span></code><span style='COLOR:black'>.
+ Instead, <em>instances</em> of other components are placed within the assembly
+ and connected. Let's try to assemble the <em>StockQuoter</em>.</span></p>
+ <ol start="1" type="1">
+ <li style='COLOR:black;'> Right click the <em>ComponentImplementations</em> folder, choose <strong>Insert
+ Model-&gt;ComponentImplementationContainer</strong>, rename it as
+ "StockQuoterImplementation" in the Attribute Panel. Double click to open it.
+ </li>
+ <li style='COLOR:black;'> From the Part Browser, drag a &lt;&lt;ComponentAssembly&gt;&gt; to the modeling
+ window, name it "StockQuoter". Double click to open it.
+ </li>
+ <li style='COLOR:black;'> Now we will create two instances for interfaces <em>StockBroker</em> and <em>StockDistributor</em>.
+ To do that, expand the folder <em> <span style="FONT-SIZE:10pt;
+ FONT-FAMILY:'Courier New'">InterfaceDefinitions</span></em>, then expand the
+ <em><span style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New'">InterfaceDefinitions/StockBroker</span></em>, then
+ <em><span style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New'">InterfaceDefinitions/StockBroker/Stock</span></em> until the interface definition of <em>StockBroker</em> shows.
+ While expanding the tree, always keep the "StockQuoter" &lt;&lt;ComponentAssembly&gt;&gt; window open.
+ Then press the ALT key and drag <code> <span style='FONT-SIZE:10pt'>Quoter/InterfaceDefinitions/Broker/Stock/StockBroker</span></code>
+ in the browser to the "StockQuoter" &lt;&lt;ComponentAssembly&gt;&gt; window'
+ Repeat the same steps for <code> <span style='FONT-SIZE:10pt'>Quoter/InterfaceDefinitions/Distributor/Stock/StockDistributor</span></code>,
+ and you will see two instances of component interfaces have been created as
+ shown in Figure 6 (the black line in the figure only indicates .mapping)
+ </li>
+ </ol>
+ <p align="center" style='TEXT-ALIGN:center'><span style='COLOR:black'><img border="0" id="_x0000_i1034" src="images/fig6.jpg"><br>
+ <br>
+ Figure 6</span></p>
+ <ol start="4" type="1">
+ <li style='COLOR:black;'> Create an &lt;&lt;PublishConnector&gt;&gt; by dragging it from the "Part browser" onto the "StockQuoter" window.
+ </li>
+ <li style='COLOR:black;'> Now assemble the components together according to <a href="images/fig1.jpg">Figure
+ 1</a> (make sure you change to connect mode <img border="0" width="16" height="16" id="_x0000_i1035" src="Icons/AddConnMode.gif" />)
+ and the resulting assembly model should look like Figure 7. Note that to create connections between StockDistributor.notify_out and StockBroker.notify_in,
+ you will need the intermediate connector &lt;&lt;PublishConnector&gt;&gt;.
+ </li>
+ <li style='COLOR:black;'>In one of the previous steps we've removed ComponentIOR. With ComponentIOR one could
+ configure the name of the IOR file. This is still needed. In this step we need to create them again. This can
+ be done by dragging two &lt;&lt;Property&gt;&gt; items from the part browser onto the window;
+ one for StockBroker and one for StockDistributor. The following steps should be taken in order
+ to configure both properties correct:
+ <ol>
+ <li>Double click on one of them. An empty window appears and the part browser only has one part, called "DataType". Drag this part onto the empty window.
+ </li>
+ <li>In the tree window, browse to <code> <span style='FONT-SIZE:10pt'>Quoter/PredefinedTypes</span></code>
+ </li>
+ <li>Drag tree item "String" onto the "DataType" item.
+ </li>
+ <li>Go back to the previous window and repeat these steps for the other &lt;&lt;Property&gt;&gt;.
+ </li>
+ </ol>
+ Now it's time to configure the name and value of both &lt;&lt;Property&gt;&gt; items.
+ <ul>
+ <li>The name of each &lt;&lt;Property&gt;&gt; should be "edu.vanderbilt.dre.DAnCE.InstanceIOR"
+ </li>
+ <li>One of the values should be "StockBroker.ior"; the other one should be "StockDistributor.ior"
+ </li>
+ </ul>
+ </li>
+ </ol>
+ <p align="center" style='TEXT-ALIGN:center'><span style='COLOR:black'>
+ <img border="0" id="_x0000_i1036" src="images/fig7.jpg" />
+ <br><br>
+ Figure 7</span></p>
+
+ <div align="center" style='TEXT-ALIGN:center'><span style='COLOR:black'>
+ <hr size="2" width="100%" align="center">
+ </span></div>
+ <h3><a name="3"></a><span style='COLOR:black'>ComponentPackage</span></h3>
+ <p><span style='COLOR:black'>This folder contains deployable component packages. Every instance in an assembly should have a corresponding
+ monolithic implementation and packaged in a ComponentPackage. To create a package for <em>StockBroker</em>.instance</span></p>
+ <ol start="1" type="1">
+ <li style='COLOR:black;'> Right click folder <em>ComponentPackage</em>s , insert a
+ &lt;&lt;PackageContainer&gt;&gt;, name it "Broker". Double click to open it.
+ <li style='COLOR:black;'> From the PartBrowser, add the following:
+ <ul type="circle">
+ <li style='COLOR:black;'> a &lt;&lt;ComponentPackage&gt;&gt; named "Broker";
+ <li style='COLOR:black;'> a &lt;&lt;ComponentImplementationReference&gt;&gt; named "ComponentImplBrokerRef";
+ <li style='COLOR:black;'> a &lt;&lt;ComponentRef&gt;&gt; named "ComponentBrokerRef";</li>
+ </ul>
+ <li style='COLOR:black;'>Now we need to create references for "ComponentImplBrokerRef" and "ComponentBrokerRef".
+ To create a reference in GME, simply drag the tree node in the Browser "into" the reference model.<br/>
+ We need to refer &lt;&lt;ComponentImplementationReference&gt;&gt; "ComponentImplBrokerRef" to
+ <code><span style='FONT-SIZE:10pt'>Quoter/ComponentImplementations/StockBrokerImplementation/StockBrokerMonolithicImpl</span></code>
+ and &lt;&lt;ComponentRef&gt;&gt; "ComponentBrokerRef" to <code><span style='FONT-SIZE:10pt'>Quoter/InterfaceDefinitions/StockBroker/Stock/StockBroker</span></code>.<br/>
+ For example, you should drag the tree node <code><span style='FONT-SIZE:10pt'>Quoter/ComponentImplementations/StockBroker</span></code>Implementation/StockBrokerMonolithicImpl
+ into &lt;&lt;ComponentImplementationReference&gt;&gt; "ComponentImplBrokerRef".<br/> Check GME manual(tutorials) for more information.
+ <li style='COLOR:black;'> Switch to Connect Mode and create two connections according to the following relationship.
+ <ul type="circle">
+ <li style='COLOR:black;'> &lt;&lt;ComponentImplementationReference&gt;&gt; "ComponentImplBrokerRef" implements
+ &lt;&lt;ComponentPackage&gt;&gt; "Broker"
+ </li>
+ <li style='COLOR:black;'> &lt;&lt;ComponentPackage&gt;&gt; "Broker" realizes
+ &lt;&lt;ComponentRef&gt;&gt; "ComponentBrokerRef".
+ </li>
+ </ul>
+ <br/>
+ <br/>
+ The model you built should resemble Figure 8.
+ <br />
+ <br />
+ <p align="center" style='MARGIN-BOTTOM:12pt;MARGIN-LEFT:0.5in;TEXT-ALIGN:center;'><span style='COLOR:black'><img border="0" id="_x0000_i1038" src="images/fig8.jpg">
+ <br><br>
+ Figure 8</span>
+ </p>
+ <p>Now create a StockDistributor following the same steps.</p>
+ </li>
+
+ <li style='LIST-STYLE-POSITION:outside;COLOR:black;'>
+ We will also need to create a component package for the assembly component StockQuoter. Remember assembly component is a virtual component, it does not "realize" a
+ certain interface, so different from the Broker and Distributor packages, the StockQuoter does not need a &lt;&lt;ComponentRef&gt;&gt;. To create this model:<br/>
+
+ <ol>
+ <li>Insert a &lt;&lt;ComponentPackage&gt;&gt; named "StockQuoter"
+ </li>
+ <li>Add a &lt;&lt;ComponentImplementationReference&gt;&gt; named "ComponentImplStockQuoterRef", refer it to
+ <code><span style='FONT-SIZE:10pt'>Quoter/ComponentImplementations/StockQuoterImplementation/StockQuoter</span></code>
+ </li>
+ <li>Switch to connect mode and connect &lt;&lt;ComponentImplementationReference&gt;&gt; "ComponentImplStockQuoterRef" with
+ &lt;&lt;ComponentPackage&gt;&gt; "StockQuoter", as in Figure 9.
+ <p align="center" style='MARGIN-BOTTOM:12pt;TEXT-ALIGN:center'><span style='COLOR:black'><img border="0" id="_x0000_i1039" src="images/fig9.jpg">
+ <br><br>
+ Figure 9</span>
+ </p>
+ </li>
+ </ol>
+ </ol>
+ <div align="center" style='TEXT-ALIGN:center'><span style='COLOR:black'>
+ <hr size="2" width="100%" align="center">
+ </span></div>
+ <h3><a name="4"></a><span style='COLOR:black'>InterfaceDefinitions</span></h3>
+ <p><span style='COLOR:black'>
+ <ol>
+ <li>Nagivate to <code><span style='FONT-SIZE:10pt'>
+ Quoter/InterfaceDefinitions/StockBroker/Stock</span></code> and double click it.
+ </li>
+ <li>Switch to connect mode and connect <em>StockBrokerHome</em> and
+ <em>StockBroker</em> with each other.
+ </li>
+ </ol></span>
+ Do the same for Distributor.
+ </p>
+
+ <div align="center" style='TEXT-ALIGN:center'><span style='COLOR:black'>
+ <hr size="2" width="100%" align="center">
+ </span></div>
+ <h3><a name="4"></a><span style='COLOR:black'>PackageConfiguration</span></h3>
+ <p><span style='COLOR:black'>This folder contains just one
+ model capturing specific configuration of Component packages.</span></p>
+ <ol start="1" type="1">
+ <li style='COLOR:black;'> In the folder <em>PackageConfiguratio</em>n, and create a
+ &lt;&lt;PackageConfigurationContainer&gt;&gt;, name it "Default", double click to open
+ it.
+ <li style='COLOR:black;'> Add a &lt;&lt;PackageConfiguration&gt;&gt; named "default" and a
+ &lt;&lt;ComponentPackageReference&gt;&gt;, name it "StockQuoter", connect
+ "Default" to "StockQuoter"
+ <li style='COLOR:black;'> Refer &lt;&lt;ComponentPackageReference&gt;&gt; StockQuoter to
+ &lt;&lt;ComponentPackage&gt;&gt; <code> <span style='FONT-SIZE:10pt'>Quoter/ComponentPackage/StockQuoter/StockQuoter</span></code><span style="FONT-SIZE:10pt;FONT-FAMILY:'Courier New'"><br>
+ <code>(Not &lt;&lt;ComponentImplementationReference&gt;&gt;</code></span> <code> <span style='FONT-SIZE:10pt'>Quoter/ComponentPackage/StockQuoter/ComponentImplStockQuoterRef!)&nbsp;</span></code></li>
+ </ol>
+ <div align="center" style='TEXT-ALIGN:center'><span style='COLOR:black'>
+ <hr size="2" width="100%" align="center">
+ </span></div>
+ <h3><a name="5"></a><span style='COLOR:black'>ToplevelPackage</span></h3>
+ <p><span style='COLOR:black'>This folder contains one model
+ capturing information about the top-level element that will be fed to the
+ application.</span></p>
+ <ol start="1" type="1">
+ <li style='COLOR:black;'> In the folder <em>ToplevelPackages</em>, create a
+ &lt;&lt;ToplevelPackageContainer&gt;&gt; and name it "Default". Double click to
+ open it.
+ <li style='COLOR:black;'> Add a &lt;&lt;ToplevelPackage&gt;&gt; named "ToplevelPackage" and a
+ &lt;&lt;PackageConfigurationReference&gt;&gt;, name it "Default", connect
+ "ToplevelPackage" to "Default"
+ <li style='COLOR:black;'> Refer "Default" to <code><span style='FONT-SIZE:10pt'>Quoter/PackageConfiguration/Default/Default</span></code></li>
+ </ol>
+ <div align="center" style='TEXT-ALIGN:center'><span style='COLOR:black'>
+ <hr size="2" width="100%" align="center">
+ </span></div>
+ <h3><a name="6"></a><span style='COLOR:black'>Targets</span></h3>
+ <p><span style='COLOR:black'>This folder contains
+ domain-specific models capturing information about the target environment in
+ which component-based application will be deployed. In this Quoter example, we
+ can either deploy the two components into ONE host, or into TWO different host.
+ We will deploy the Quoter into two different host.</span></p>
+ <ol start="1" type="1">
+ <li style='COLOR:black;'> In the folder <i>Targets</i>, insert a new &lt;&lt;Domain&gt;&gt; named
+ "Domain"; double click to open it.
+ <li style='COLOR:black;'> From the Part Browser, add two &lt;&lt;Node&gt;&gt;s, named "Broker" and
+ "Distributor" respectively.</li>
+ </ol>
+ <p><span style='COLOR:black'><br>
+ Now we are ready to deploy our Components to the actual physical environment.</span></p>
+ <div align="center" style='TEXT-ALIGN:center'><span style='COLOR:black'>
+ <hr size="2" width="100%" align="center">
+ </span></div>
+ <h3><a name="7"></a><span style='COLOR:black'>DeploymentPlan</span></h3>
+ <p><span style='COLOR:black'>This folder contains a plan model
+ that captures information about the assignment of component to nodes.</span></p>
+ <ol start="1" type="1">
+ <li style='COLOR:black;'> In the folder <em>DeploymentPlan</em>, insert a model
+ &lt;&lt;DeploymentPlan&gt;&gt;; name it "Plan". Double click to open it.
+ <li style='COLOR:black;'> From the PartBrowser, add the following:
+ <ul type="circle">
+ <li style='COLOR:black;'> Two &lt;&lt;NodeReference&gt;&gt; named "Node_Broker" and "Node_Distributor"
+ respectively, refering to <code> <span style='FONT-SIZE:10pt'>Quoter/Targets/Domain/Broker</span></code> and
+ <code><span style='FONT-SIZE:10pt'>Quoter/Targets/Domain/Distributor</span></code> respectively.<br/>
+ A &lt;&lt;CollationGroup&gt;&gt;, named "DefaultGroup", is added automatically when adding a &lt;&lt;NodeReference&gt;&gt;.
+ </li>
+ <li style='COLOR:black;'> Two &lt;&lt;ComponentRef&gt;&gt; named "StockBroker" and "StockDistributor"
+ respectively, refering to <code> <span style='FONT-SIZE:10pt'>Quoter/ComponentImplementations/StockQuoterImplementation/StockQuoter/StockBroker</span></code>
+ and <code><span style='FONT-SIZE:10pt'>Quoter/ComponentImplementations/StockQuoterImplementation/StockQuoter/StockDistributor</span></code> respectively.<br/>
+ Note that the &lt;&lt;ComponentRef&gt;&gt; in DeploymentPlan is not referring to the interface, but rather the actual instance of the implementation.
+ </li>
+ </ul>
+ <p>The model should look like this:</p>
+ </ol>
+ <p align="center" style='MARGIN-BOTTOM:12pt;MARGIN-LEFT:0.5in;TEXT-ALIGN:center;'><span style='COLOR:black'><img border="0" id="_x0000_i1044" src="images/fig10.jpg"><br>
+ <br>
+ Figure 10.</span></p>
+ <ol start="4" type="1">
+ <li style='MARGIN-BOTTOM:12pt;COLOR:black;'> Now we need to associate &lt;&lt;ComponentRef&gt;&gt; StockBroker to the
+ &lt;&lt;CollocationGroup&gt;&gt; running on the &lt;&lt;NodeReference&gt;&gt; Node_Broker, and &lt;&lt;ComponentRef&gt;&gt; StockDistributor to the
+ &lt;&lt;CollocationGroup&gt;&gt; running on the &lt;&lt;NodeReference&gt;&gt; Node_Distributor. To do that, switch the Edit Mode Bar to Set Mode
+ (<img border="0" width="16" height="16" id="_x0000_i1045" src="Icons/SetMode.gif">), and move the cursor to the &lt;&lt;CollocationGroup&gt;&gt; running on
+ &lt;&lt;NodeReference&gt;&gt; Node_Distributor, right-click on it. You will find the cursor is changed to set mode cursor, and only the &lt;&lt;CollocationGroup&gt;&gt;
+ you clicked in is highlighted, as shown in Figure 11.
+ </li>
+ </ol>
+ <p align="center" style='MARGIN-BOTTOM:12pt;TEXT-ALIGN:center'><span style='COLOR:black'><img border="0" id="_x0000_i1046" src="images/fig11.jpg">
+ <!-- 01.html,v 1.3 2006/02/10 14:34:35 mxiong Exp -->
+ <br><br>
+ Figure 11</span>
+ </p>
+ <p><span style='COLOR:black'>Now move your cursor to &lt;&lt;ComponentRef&gt;&gt;&nbsp; StockDistributor, and left-click it, so that
+ it looks like Figure 12.</span>
+ </p>
+ <p align="center" style='MARGIN-BOTTOM:12pt;TEXT-ALIGN:center'><span style='COLOR:black'><img border="0" id="_x0000_i1047" src="images/fig12.jpg"> &nbsp;<br>
+ <br>
+ Figure 12</span>
+ </p>
+ <p style='MARGIN-BOTTOM:12pt'><span style='COLOR:black'>This operation associates <em>StockDistributor</em> component to the
+ &lt;&lt;CollocationGroup&gt;&gt; running on <em>Distributor</em> node. To do the same with Broker, just right-click on the associate
+ &lt;&lt;CollocationGroup&gt;&gt;, and left-click on StockBroker &lt;&lt;CollocationGroup&gt;&gt; which is then highlighted.</span>
+ </p>
+ <div align="center" style='TEXT-ALIGN:center'><span style='COLOR:black'>
+ <hr size="2" width="100%" align="center">
+ </span></div>
+ <p><a name="8"></a><span style='COLOR:black'>Up to this point, we are basically
+ done with the modeling part. Before we generate anything from this model
+ though, please <b>DO</b> remember to check the constraints of the model as we
+ mentioned earlier.</span></p>
+ <p><span style='COLOR:black'>After we are done with the modeling, the
+ Deploymentplan interpreter that comes along with PICML will help us
+ to generate a Plan.cdp file. Please make sure you generate
+ this file to Quoter/descriptors. Note that to get the example working</span><span style="COLOR:black; FONT-FAMILY:'Courier New'">,</span><span style='COLOR:black'>a
+ Node Map file (NodeMap.dat) in Quoter/descriptors should be created to map logical nodes to NodeManager object
+ references,e.g:</span></p>
+ <pre wrap=""><span style='COLOR:black'>DistributorNode corbaloc:iiop:localhost:30000/NodeManager</span></pre>
+ <pre><span
+style='COLOR:black'>BrokerNode&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; corbaloc:iiop:localhost:40000/NodeManager</span></pre>
+ <pre><span
+style='COLOR:black'>&nbsp;</span></pre>
+ <pre><span style='COLOR:black'>&nbsp;</span></pre>
+ <p align="center" style='TEXT-ALIGN:center;'><span style='COLOR:black'><a href="02.html">Previous</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="04.html">Next</a> </span></p>
+ <div align="center" style='TEXT-ALIGN:center;'><span style='COLOR:black'>
+ <hr size="2" width="100%" align="center">
+ </span></div>
+ <address>
+ <span style='COLOR:black'><a href="mailto:ming.xiong@vanderbilt.edu">Ming
+ Xiong<br>
+ </a> </span><a href="mailto:abdullah.sowayan@lmco.com">Abdullah Sowayan</a>
+ </address>
+ <P><SPAN style="COLOR: black"> $Id$ </SPAN>&nbsp;</P>
+</div>
+</body>
+</html>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/04.html b/modules/CIAO/docs/tutorials/Quoter/Simple/04.html
new file mode 100644
index 00000000000..345b6649d89
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/04.html
@@ -0,0 +1,162 @@
+<!-- $Id$ -->
+<html xmlns="http://www.w3.org/TR/REC-html40">
+<head>
+<title>Building a Stock Quoter with TAO - A Tutorial</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<style>
+<!--
+@font-face {
+font-family:Wingdings;
+panose-1:5 0 0 0 0 0 0 0 0 0;
+}
+h3 {
+ font-size:13.5pt;
+ font-family:"Times New Roman";
+ font-weight:bold;
+}
+a:link, span.MsoHyperlink {
+ color:#000FFF;
+ text-decoration:underline;
+ text-underline:single;
+}
+a:visited, span.MsoHyperlinkFollowed {
+ color:#FF0F0F;
+ text-decoration:underline;
+ text-underline:single;
+}
+p {
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+}
+address {
+ font-size:12.0pt;
+ font-family:"Times New Roman";
+ font-style:italic;
+}
+code {
+ font-family:"Courier New";
+}
+div.Section1 {
+ page:Section1
+}
+-->
+</style>
+<!-- $Id$ -->
+</head>
+<body bgcolor="#FFFFFF" lang="EN-US" link="#000fff" vlink="#ff0f0f">
+<h3 align="center" style='TEXT-ALIGN:center' class="Section1"><span style='COLOR:black'>Step 6:
+ System Deployment</span></h3>
+<h3 align="center" style='TEXT-ALIGN:center' class="Section1"><span style='COLOR:black'><img width="432" height="223" id="_x0000_i1025" src="images/step6.jpg"> </span></h3>
+<p><span style='COLOR:black'>Now that we have all the
+ components and driver programs successfully built, along with the Deploymentplan
+ generated by PICML, we will be able to run our application. Remember to add this tutorials library path to your system path in order to run the executable without
+ problems (see page 1 of this tutorial).<br>
+ <br>
+ From different command prompts in </span><code><span style='FONT-SIZE:10pt;
+COLOR:black'>%CIAO_ROOT%/docs/tutorials/Quoter/Simple/descriptors</span></code><span style='COLOR:black'> directory: </span></p>
+<DIV class="Section1">
+ <UL type="disc">
+ <li style='COLOR:black;'> Start NodeManagers (NodeDameon) by running:</li>
+ </UL>
+</DIV>
+<P style="COLOR: black; ">&nbsp;<FONT face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;
+ %DANCE_ROOT%/bin/dance_node_manager -ORBListenendpoints iiop://localhost:30000 -s
+ %CIAO_ROOT%/bin/ciao_componentserver -n Distributor=StockDistributor.ior</FONT></P>
+<P style="COLOR: black; "><FONT face="Courier New" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%DANCE_ROOT%/bin/dance_node_manager
+ -ORBListenendpoints iiop://localhost:40000 -s %CIAO_ROOT%/bin/ciao_componentserver -n Broker=StockBroker.ior</FONT></P>
+<UL type="disc">
+ <li style='COLOR:black;'> Start the execution manager:</li>
+</UL>
+<P style="COLOR: black; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ &nbsp;&nbsp;&nbsp; <code> <span style='FONT-SIZE:10pt'>
+ %DANCE_ROOT%/bin/dance_execution_manager -eEM.ior --node-map NodeMap.dat</span></code>&nbsp; </P>
+<p><span style='COLOR:black'>The </span><code><span style='FONT-SIZE:10pt;
+COLOR:black'>NodeMap.dat</span></code><span style='COLOR:black'> file describes
+ the deployment daemons CIAO's Execution_Manager will contact to instantiate
+ ComponentServer's, home's, and component instances. Each line specify the name
+ of a installation "destination" and the corresponding IOR for the
+ CIAO_Daemon.</span></p>
+<ul type="square">
+ <li style='COLOR:black;'> <em>NOTE</em>: As one can see, we use the "NodeMap.dat" file to instruct the
+ Execution Manager how to find the endpoint of each individual NodeManager
+ (i.e., Node Daemon) where component(s) will be deployed, so this is
+ non-standard. We plan to use Naming Service to do this in the future.</li>
+</ul>
+<ul type="disc">
+ <li style='COLOR:black;'> Start the DaNCE Repository Manager by running <code> <span style='FONT-SIZE:10pt'>
+ %DANCE_ROOT%/bin/dance_plan_launcher -x Plan.cdp -k file://EM.ior</span></code>
+ <li style='COLOR:black;'> By now the components should be successfully deployed. You may run the driver
+ program to start the application. e.g. you can try the following
+ :
+ <UL>
+ <LI style="COLOR: black; "> Instruct the StockDistributor component to start publishing stock quotes:</LI>
+ </UL>
+ </li>
+</ul>
+<P style="MARGIN-BOTTOM: 12pt"><span style='COLOR:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
+ <code><span style='FONT-SIZE:10pt;COLOR:black'>%CIAO_ROOT%/docs/tutorials/Quoter/Simple/Distributor/StockDistributorDriver.exe -o</span>
+ </code>
+</P>
+<UL dir="ltr" style="MARGIN-RIGHT: 0px">
+ <UL dir="ltr" style="MARGIN-RIGHT: 0px">
+ <LI> <span style='COLOR:black'>Instruct the StockBroker
+ to subscribe to MSFT stock
+ publications: </span></LI>
+ </UL>
+</UL>
+<P><SPAN style="COLOR: black">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><code><span style='FONT-SIZE:
+10pt;COLOR:
+black'>%CIAO_ROOT%/docs/tutorials/Quoter/Simple/Broker/StockBrokerDriver.exe
+ -s MSFT</span></code></P>
+<UL dir="ltr" style="MARGIN-RIGHT: 0px">
+ <UL dir="ltr" style="MARGIN-RIGHT: 0px">
+ <LI> <CODE> <SPAN style="FONT-SIZE: 10pt; COLOR: black"> <SPAN style="COLOR: black"> <FONT face="Times New Roman"><FONT size="3">Instruct the StockBroker to subscribe
+ to&nbsp;IBM stock publications</FONT>:</FONT></SPAN> </SPAN></CODE></LI>
+ </UL>
+</UL>
+<P><span style='COLOR:black'> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><code><span style='FONT-SIZE:
+10pt;COLOR:
+black'>%CIAO_ROOT%/docs/tutorials/Quoter/Simple/Broker/StockBrokerDriver.exe -s IBM</span></code></P>
+<UL dir="ltr" style="MARGIN-RIGHT: 0px">
+ <UL dir="ltr" style="MARGIN-RIGHT: 0px">
+ <LI> <CODE> </CODE><span style='COLOR:black'><SPAN style="COLOR: black">Instruct the StockBroker to unsubscribe to MSFT stock
+ publications:</SPAN> </span></LI>
+ </UL>
+</UL>
+<SPAN style="COLOR: black">
+<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><code><span style='FONT-SIZE:
+10pt;COLOR:
+black'>%CIAO_ROOT%/docs/tutorials/Quoter/Simple/Broker/StockBrokerDriver.exe
+ -u MSFT</span></code><span style='COLOR:black'></P>
+<UL>
+ <UL>
+ <LI> <SPAN style="COLOR: black"> <SPAN style="COLOR: black">Instruct the
+ StockDistributor component to stop publishing stock
+ quotes:</SPAN></LI>
+ </UL>
+</UL>
+</span>
+<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><code><span style='FONT-SIZE:
+10pt;COLOR:
+black'>%CIAO_ROOT%/docs/tutorials/Quoter/Simple/Distributor/StockDistributorDriver.exe
+ &#8211;f</span></code><code><span style='FONT-SIZE:10pt'> </span></code></P>
+<UL>
+ <DIV style="MARGIN-BOTTOM: 12pt">
+ <LI style="COLOR: black; "> <FONT color="#ff0000"><EM>NOTE</EM>: Windows uses %VARIABLE% to fetch the values of
+ environment variables. Linux/Unix uses $VARIABLE to fetch the values of
+ environment variables. As such, if you're running this tutorial on Linux/Unix
+ operating system, change the above commands to use $VARIABLE instead of
+ %VARIABLE% when you run the programs.</FONT></SPAN></CODE></LI>
+ </DIV>
+</UL>
+<p align="center" style='TEXT-ALIGN:center'><span style='COLOR:black'><a href="03.html">Previous</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>
+<div align="center" style='TEXT-ALIGN:center'><span style='COLOR:black'>
+ <hr size="2" width="100%" align="center">
+ </span></div>
+<address>
+<span style='COLOR:black'><a href="mailto:ming.xiong@vanderbilt.edu">Ming Xiong<br>
+</a> </span><a href="mailto:abdullah.sowayan@lmco.com">Abdullah Sowayan</a>
+</address>
+<P><SPAN style="COLOR: black">$Id$</SPAN></P>
+</body>
+</html>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/StockBroker.idl b/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/StockBroker.idl
new file mode 100644
index 00000000000..24b23230d84
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/StockBroker.idl
@@ -0,0 +1,40 @@
+//$Id$
+
+#ifndef STOCKBROKER_IDL
+#define STOCKBROKER_IDL
+
+#include "../Stock_Base/Stock_Base.idl"
+
+module Stock
+{
+ interface StockSubscriber {
+ /// subscribe to an interested stock
+ void stock_subscribe (in string stock_name)
+ raises (Invalid_Stock);
+ /// unsubscribe to an stock
+ void stock_unsubscribe (in string stock_name)
+ raises (Invalid_Stock);
+ };
+
+ /**
+ * @class StockBroker
+ *
+ * @brief component
+ */
+ component StockBroker supports StockSubscriber
+ {
+ consumes StockName notify_in;
+ uses StockQuoter read_quoter;
+ };
+
+ /**
+ * @class StockBrokerHome
+ *
+ * @brief home for StockBroker component
+ */
+ home StockBrokerHome manages StockBroker
+ {
+ };
+};
+
+#endif /* STOCKBROKER_IDL */
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/StockBroker.mpc b/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/StockBroker.mpc
new file mode 100644
index 00000000000..8fd485977da
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/StockBroker.mpc
@@ -0,0 +1,153 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p Stock_Base -c StockBrokerDriver StockBroker -l ../lib -o ../lib"
+
+project(Stock_Base_StockBroker_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=STOCKBROKER_STUB_Export \
+ -Wb,stub_export_include=StockBroker_stub_export.h \
+ -Wb,skel_export_macro=STOCKBROKER_SVNT_Export \
+ -Wb,skel_export_include=StockBroker_svnt_export.h \
+ -Wb,exec_export_macro=STOCKBROKER_EXEC_Export \
+ -Wb,exec_export_include=StockBroker_exec_export.h
+
+ IDL_Files {
+ StockBroker.idl
+ }
+}
+
+project(Stock_Base_StockBroker_lem_gen) : ciaoidldefaults {
+ after += Stock_Base_StockBroker_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=STOCKBROKER_LEM_STUB_Export \
+ -Wb,stub_export_include=StockBroker_lem_stub_export.h \
+ -SS -Gxhst
+
+ IDL_Files {
+ StockBrokerE.idl
+ }
+}
+
+project(Stock_Base_StockBroker_lem_stub) : ccm_svnt {
+ after += Stock_Base_StockBroker_lem_gen Stock_Base_StockBroker_stub Stock_Base_stub
+ libs += Stock_Base_stub StockBroker_stub
+ libpaths += ../lib
+ libout = ../lib
+ sharedname = StockBroker_lem_stub
+ dynamicflags = STOCKBROKER_LEM_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ StockBrokerEC.cpp
+ }
+
+ Header_Files {
+ StockBrokerEC.h
+ StockBroker_lem_stub_export.h
+ }
+
+ Inline_Files {
+ StockBrokerEC.inl
+ }
+}
+
+project(Stock_Base_StockBroker_stub) : ccm_stub {
+ after += Stock_Base_StockBroker_idl_gen Stock_Base_stub
+ libs += Stock_Base_stub
+ libpaths += ../lib
+ libout = ../lib
+ sharedname = StockBroker_stub
+ dynamicflags = STOCKBROKER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ StockBrokerC.cpp
+ }
+
+ Header_Files {
+ StockBrokerC.h
+ StockBroker_stub_export.h
+ }
+
+ Inline_Files {
+ StockBrokerC.inl
+ }
+}
+
+project(Stock_Base_StockBroker_exec) : ciao_executor {
+ after += Stock_Base_StockBroker_lem_stub Stock_Base_StockBroker_stub
+ sharedname = StockBroker_exec
+ libs += StockBroker_stub StockBroker_lem_stub Stock_Base_stub
+ libpaths += ../lib
+ libout = ../lib
+ dynamicflags = STOCKBROKER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ StockBroker_exec.cpp
+ }
+
+ Header_Files {
+ StockBroker_exec.h
+ StockBroker_exec_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+
+project(Stock_Base_StockBroker_svnt) : ciao_servant {
+ after += Stock_Base_skel Stock_Base_StockBroker_lem_stub
+ sharedname = StockBroker_svnt
+ libs += StockBroker_stub StockBroker_lem_stub \
+ Stock_Base_skel \
+ Stock_Base_stub
+ libpaths += ../lib
+ libout = ../lib
+ dynamicflags = STOCKBROKER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ StockBrokerS.cpp
+ StockBroker_svnt.cpp
+ }
+
+ Header_Files {
+ StockBrokerS.h
+ StockBroker_svnt.h
+ StockBroker_svnt_export.h
+ }
+
+ Inline_Files {
+ StockBrokerS.inl
+ }
+}
+
+project (Stock_Base_StockBrokerDriver) : ccm_stub, valuetype {
+ exename = StockBrokerDriver
+ after += Stock_Base_StockBroker_stub
+ libs += StockBroker_stub Stock_Base_stub
+ libpaths += ../lib
+ libout = ../lib
+ IDL_Files {
+ }
+
+ Source_Files {
+ StockBrokerDriver.cpp
+ }
+
+ Header_Files {
+ }
+
+ Inline_Files {
+ }
+}
+
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/StockBrokerDriver.cpp b/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/StockBrokerDriver.cpp
new file mode 100644
index 00000000000..80fdee813d1
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/StockBrokerDriver.cpp
@@ -0,0 +1,110 @@
+//$Id$
+/*
+ * @file StockBrokerDriver.cpp
+ *
+ * @author Ming Xiong <mxiong@dre.vanderbilt.edu>
+ */
+
+#include "StockBrokerC.h"
+#include "ace/streams.h"
+#include "ace/Get_Opt.h"
+
+const ACE_TCHAR *broker_ior = ACE_TEXT ("file://StockBroker.ior");
+const ACE_TCHAR *subscribe_name = 0;
+const ACE_TCHAR *unsubscribe_name = 0;
+
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("k:s:u:"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ {
+ switch (c)
+ {
+ case 'k':
+ broker_ior = get_opts.opt_arg ();
+ break;
+
+ case 's':
+ subscribe_name = get_opts.opt_arg ();
+ break;
+
+ case 'u':
+ unsubscribe_name = get_opts.opt_arg ();
+ break;
+
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s\n"
+ "-k <Broker IOR> (default is file://StockBroker.ior)\n"
+ "-s <stock name you wish to subscribe>\n"
+ "-u <stock name you wish to unsubscribe>\n"
+ "\n",
+ argv [0]),
+ -1);
+ }
+ }
+
+ return 0;
+}
+
+int ACE_TMAIN (int argc, ACE_TCHAR* argv[])
+{
+ try
+ {
+ // initialize the ORB
+ CORBA::ORB_var orb =
+ CORBA::ORB_init (argc, argv);
+
+
+ if (parse_args (argc, argv) != 0)
+ return -1;
+
+ // create the factory object reference of StockBrokerHome
+ CORBA::Object_var broker_obj =
+ orb->string_to_object (broker_ior);
+
+ // downcast the object reference to the appropriate type
+ Stock::StockBroker_var broker =
+ Stock::StockBroker::_narrow (broker_obj.in ());
+
+ if (CORBA::is_nil (broker.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Unable to acquire 'Broker' objref\n"),
+ -1);
+ }
+
+
+ if (subscribe_name != 0)
+ {
+ broker->stock_subscribe (ACE_TEXT_ALWAYS_CHAR (subscribe_name));
+
+ ACE_DEBUG ((LM_DEBUG, "Subscribe successful!\n"));
+ }
+
+ if (unsubscribe_name != 0)
+ {
+ broker->stock_unsubscribe (ACE_TEXT_ALWAYS_CHAR (unsubscribe_name));
+
+ ACE_DEBUG ((LM_DEBUG, "Unsubscribe successful!\n"));
+ }
+
+ // Finally destroy the ORB
+ orb->destroy ();
+
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Who is the culprit\n");
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Uncaught CORBA exception\n"),
+ 1);
+ }
+
+ return 0;
+}
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/StockBroker_exec.cpp b/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/StockBroker_exec.cpp
new file mode 100644
index 00000000000..f884a78e45c
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/StockBroker_exec.cpp
@@ -0,0 +1,213 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#include "StockBroker_exec.h"
+
+namespace CIAO_Stock_StockBroker_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: StockBroker_exec_i
+ //==================================================================
+
+ StockBroker_exec_i::StockBroker_exec_i (void)
+ {
+ }
+
+ StockBroker_exec_i::~StockBroker_exec_i (void)
+ {
+ }
+
+
+ // Supported or inherited operations.
+
+ void
+ StockBroker_exec_i::stock_subscribe (
+ const char * stock_name)
+ {
+ if ((ACE_OS::strcmp (stock_name, "MSFT") == 0) ||
+ (ACE_OS::strcmp (stock_name, "IBM") == 0))
+ {
+ std::set<std::string>::iterator iter =
+ this->subscribed_stock_list_.find (stock_name);
+
+ if (iter == this->subscribed_stock_list_.end ())
+ {
+ this->subscribed_stock_list_.insert (stock_name);
+ }
+ }
+ else
+ {
+ throw Stock::Invalid_Stock ();
+ }
+ }
+
+ void
+ StockBroker_exec_i::stock_unsubscribe (
+ const char * stock_name)
+ {
+ if ((ACE_OS::strcmp (stock_name, "MSFT") == 0) ||
+ (ACE_OS::strcmp (stock_name, "IBM") == 0))
+ {
+ std::set<std::string>::iterator iter =
+ this->subscribed_stock_list_.find (stock_name);
+ if (iter != this->subscribed_stock_list_.end ())
+ {
+ this->subscribed_stock_list_.erase (iter);
+ }
+ }
+ else
+ {
+ throw Stock::Invalid_Stock ();
+ }
+
+ }
+
+
+ void
+ StockBroker_exec_i::push_notify_in (
+ Stock::StockName *ev)
+ {
+
+ ACE_DEBUG ((LM_INFO,
+ "Broker - Got message from Distributor\n"));
+
+ CORBA::String_var stock_name = CORBA::string_dup (ev->name ());
+
+ // Retrieve stock information if the stock name is in the
+ // subscribed_stock_list
+ if (this->subscribed_stock_list_.find (stock_name.in ()) !=
+ this->subscribed_stock_list_.end ())
+ {
+ Stock::StockQuoter_var quoter_obj =
+ this->context_->get_connection_read_quoter ();
+
+ if (CORBA::is_nil (quoter_obj.in ()))
+ {
+ throw CORBA::BAD_PARAM ();
+ }
+
+ Stock::StockInfo_var info =
+ quoter_obj->get_stock_info (stock_name.in ());
+
+ ACE_DEBUG ((LM_DEBUG, "Quoter - Current value of %s is %d\n",
+ stock_name.in (),
+ info->last));
+ }
+ }
+
+ // Operations from Components::SessionComponent
+
+ void
+ StockBroker_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::Stock::CCM_StockBroker_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ StockBroker_exec_i::configuration_complete ()
+ {
+ }
+
+ void
+ StockBroker_exec_i::ccm_activate ()
+ {
+ }
+
+ void
+ StockBroker_exec_i::ccm_passivate ()
+ {
+ }
+
+ void
+ StockBroker_exec_i::ccm_remove ()
+ {
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: StockBrokerHome_exec_i
+ //==================================================================
+
+ StockBrokerHome_exec_i::StockBrokerHome_exec_i (void)
+ {
+ }
+
+ StockBrokerHome_exec_i::~StockBrokerHome_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ StockBrokerHome_exec_i::create ()
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ StockBroker_exec_i,
+ CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" STOCKBROKER_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Stock_StockBrokerComp_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ StockBroker_exec_i,
+ ::Components::EnterpriseComponent::_nil ());
+
+ return retval;
+ }
+
+ extern "C" STOCKBROKER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Stock_StockBrokerHome_Impl (void)
+ {
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ StockBrokerHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/StockBroker_exec.h b/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/StockBroker_exec.h
new file mode 100644
index 00000000000..2ff9e2a03e3
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Broker/StockBroker_exec.h
@@ -0,0 +1,131 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#ifndef CIAO_STOCKBROKER_EXEC_H
+#define CIAO_STOCKBROKER_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "StockBrokerEC.h"
+
+#include <set>
+#include <string>
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "StockBroker_exec_export.h"
+#include "tao/LocalObject.h"
+
+//namespace CIAO_Stock_StockDistributor_Impl
+//namespace CIDL_StockDistributor_Impl
+namespace CIAO_Stock_StockBroker_Impl
+{
+
+ /**
+ * @class StockBroker_exec_i
+ *
+ * @brief Executor implementation
+ *
+ * This class implements Stock::StockBroker component
+ */
+ class STOCKBROKER_EXEC_Export StockBroker_exec_i
+ : public virtual StockBroker_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ StockBroker_exec_i (void);
+ virtual ~StockBroker_exec_i (void);
+
+
+ // Supported or inherited operations.
+
+ virtual void
+ stock_subscribe (const char * stock_name);
+
+ virtual void
+ stock_unsubscribe (const char * stock_name);
+
+ // Attribute operations.
+
+ // Port operations.
+
+ virtual void
+ push_notify_in (::Stock::StockName *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:
+ ::Stock::CCM_StockBroker_Context_var context_;
+ std::set<std::string> subscribed_stock_list_;
+ };
+
+
+ /**
+ * @class StockBrokerHome_exec_i
+ *
+ * @brief Executor implementation
+ *
+ * This class implements Stock::StockBrokerHome component
+ */
+ class STOCKBROKER_EXEC_Export StockBrokerHome_exec_i
+ : public virtual StockBrokerHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ StockBrokerHome_exec_i (void);
+ virtual ~StockBrokerHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+
+ extern "C" STOCKBROKER_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Stock_StockBrokerComp_Impl (void);
+ extern "C" STOCKBROKER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Stock_StockBrokerHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_STOCKBROKER_EXEC_H */
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/StockDistributor.idl b/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/StockDistributor.idl
new file mode 100644
index 00000000000..046ffea9f15
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/StockDistributor.idl
@@ -0,0 +1,47 @@
+//$Id$
+
+#ifndef STOCKDISTRIBUTOR_IDL
+#define STOCKDISTRIBUTOR_IDL
+
+#include "../Stock_Base/Stock_Base.idl"
+#include "../Stock_Base/Stock_BaseE.idl"
+
+module Stock
+{
+ /**
+ * @class Trigger
+ *
+ * @brief supported interface
+ */
+ interface Trigger {
+ /// Start the real-time monitoring service
+ void start ();
+ /// Stop the real-time monitoring service
+ void stop ();
+ };
+
+
+ /**
+ * @class StockDistributor
+ *
+ * @brief component
+ */
+ component StockDistributor supports Trigger
+ {
+ publishes StockName notify_out;
+ provides StockQuoter push_quoter;
+ attribute long rate;
+ };
+
+
+ /**
+ * @class StockDistributorHome
+ *
+ * @brief home for StockDistributor component
+ */
+ home StockDistributorHome manages StockDistributor
+ {
+ };
+};
+
+#endif /* STOCKDISTRIBUTOR_IDL */
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/StockDistributor.mpc b/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/StockDistributor.mpc
new file mode 100644
index 00000000000..89cf05dc011
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/StockDistributor.mpc
@@ -0,0 +1,155 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p Stock_Base -c StockDistributorDriver StockDistributor -l ../lib -o ../lib"
+
+project(Stock_Base_StockDistributor_idl_gen) : componentidldefaults {
+ after += Stock_Base_idl_gen
+ custom_only = 1
+ idlflags += \
+ -Wb,stub_export_macro=STOCKDISTRIBUTOR_STUB_Export \
+ -Wb,stub_export_include=StockDistributor_stub_export.h \
+ -Wb,skel_export_macro=STOCKDISTRIBUTOR_SVNT_Export \
+ -Wb,skel_export_include=StockDistributor_svnt_export.h \
+ -Wb,exec_export_macro=STOCKDISTRIBUTOR_EXEC_Export \
+ -Wb,exec_export_include=StockDistributor_exec_export.h
+
+ IDL_Files {
+ StockDistributor.idl
+ }
+}
+
+project(Stock_Base_StockDistributor_lem_gen) : ciaoidldefaults {
+ after += Stock_Base_StockDistributor_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=STOCKDISTRIBUTOR_LEM_STUB_Export \
+ -Wb,stub_export_include=StockDistributor_lem_stub_export.h \
+ -SS -Gxhst
+
+ IDL_Files {
+ StockDistributorE.idl
+ }
+}
+
+project(Stock_Base_StockDistributor_lem_stub) : ccm_svnt {
+ after += Stock_Base_StockDistributor_lem_gen Stock_Base_StockDistributor_stub Stock_Base_stub
+ libs += Stock_Base_stub StockDistributor_stub
+ libpaths += ../lib
+ libout = ../lib
+ sharedname = StockDistributor_lem_stub
+ dynamicflags = STOCKDISTRIBUTOR_LEM_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ StockDistributorEC.cpp
+ }
+
+ Header_Files {
+ StockDistributorEC.h
+ StockDistributor_lem_stub_export.h
+ }
+
+ Inline_Files {
+ StockDistributorEC.inl
+ }
+}
+
+project(Stock_Base_StockDistributor_stub) : ccm_stub {
+ after += Stock_Base_StockDistributor_idl_gen Stock_Base_stub
+ libs += Stock_Base_stub
+ libpaths += ../lib
+ libout = ../lib
+ sharedname = StockDistributor_stub
+ dynamicflags = STOCKDISTRIBUTOR_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ StockDistributorC.cpp
+ }
+
+ Header_Files {
+ StockDistributorC.h
+ StockDistributor_stub_export.h
+ }
+
+ Inline_Files {
+ StockDistributorC.inl
+ }
+}
+
+project(Stock_Base_StockDistributor_exec) : ciao_executor {
+ after += Stock_Base_StockDistributor_lem_stub Stock_Base_StockDistributor_stub
+ sharedname = StockDistributor_exec
+ libs += StockDistributor_stub StockDistributor_lem_stub Stock_Base_stub
+ libpaths += ../lib
+ libout = ../lib
+ dynamicflags = STOCKDISTRIBUTOR_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ StockDistributor_exec.cpp
+ }
+
+ Header_Files {
+ StockDistributor_exec.h
+ StockDistributor_exec_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+
+project(Stock_Base_StockDistributor_svnt) : ciao_servant {
+ after += Stock_Base_skel Stock_Base_StockDistributor_lem_stub
+ sharedname = StockDistributor_svnt
+ libs += StockDistributor_stub StockDistributor_lem_stub \
+ Stock_Base_skel \
+ Stock_Base_stub
+ libpaths += ../lib
+ libout = ../lib
+ dynamicflags = STOCKDISTRIBUTOR_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ StockDistributorS.cpp
+ StockDistributor_svnt.cpp
+ }
+
+ Header_Files {
+ StockDistributorS.h
+ StockDistributor_svnt.h
+ StockDistributor_svnt_export.h
+ }
+
+ Inline_Files {
+ StockDistributorS.inl
+ }
+}
+
+project (Stock_Base_StockDistributorDriver) : ccm_stub, valuetype {
+ exename = StockDistributorDriver
+ after += Stock_Base_StockDistributor_stub
+ libs += StockDistributor_stub Stock_Base_stub
+ libpaths += ../lib
+ libout = ../lib
+ IDL_Files {
+ }
+
+ Source_Files {
+ StockDistributorDriver.cpp
+ }
+
+ Header_Files {
+ }
+
+ Inline_Files {
+ }
+}
+
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/StockDistributorDriver.cpp b/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/StockDistributorDriver.cpp
new file mode 100644
index 00000000000..98eb6362d38
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/StockDistributorDriver.cpp
@@ -0,0 +1,115 @@
+//$Id$
+/*
+ * @file StockDistributorDriver.cpp
+ *
+ * @author Ming Xiong <mxiong@dre.vanderbilt.edu>
+ */
+
+
+#include "StockDistributorC.h"
+#include "ace/streams.h"
+#include "ace/Get_Opt.h"
+
+const ACE_TCHAR *distributor_ior = ACE_TEXT ("file://StockDistributor.ior");
+int rate = 2;
+int turn_on = 1;
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("k:r:of"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ {
+ switch (c)
+ {
+ case 'k':
+ distributor_ior = get_opts.opt_arg ();
+ break;
+
+ case 'o':
+ turn_on = 1;
+ break;
+
+ case 'f':
+ turn_on = 0;
+ break;
+
+ case 'r':
+ rate = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s\n"
+ "-o (Start the distribution service)\n"
+ "-f (Stop the distribution service)\n"
+ "-k <Distributor IOR> (default is file://StockDistributor.ior)\n"
+ "-r <broadcast frequency in Hertz> (default is 2)\n"
+ "\n",
+ argv [0]),
+ -1);
+ }
+ }
+
+ return 0;
+}
+
+
+int ACE_TMAIN (int argc, ACE_TCHAR* argv[])
+{
+ try
+ {
+ // initialize the ORB
+ CORBA::ORB_var orb =
+ CORBA::ORB_init (argc, argv);
+
+ if (parse_args (argc, argv) != 0)
+ {
+ return -1;
+ }
+
+ // create the factory object reference,
+ CORBA::Object_var distributor_obj =
+ orb->string_to_object (distributor_ior);
+
+ // downcast the object reference to the appropriate type
+ Stock::StockDistributor_var distributor =
+ Stock::StockDistributor::_narrow (distributor_obj.in ());
+
+ if (CORBA::is_nil (distributor.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Unable to acquire 'Distributor' objref\n"),
+ -1);
+ }
+
+ if (turn_on)
+ {
+ distributor->rate (rate);
+
+ ACE_DEBUG ((LM_DEBUG, "Start up the Distribution service\n"));
+
+ distributor->start ();
+ }
+ else
+ {
+ ACE_DEBUG ((LM_DEBUG, "Stop the Distribution service\n"));
+
+ distributor->stop ();
+ }
+
+ orb->destroy ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Who is the culprit\n");
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Uncaught CORBA exception\n"),
+ 1);
+ }
+
+ return 0;
+}
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/StockDistributor_exec.cpp b/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/StockDistributor_exec.cpp
new file mode 100644
index 00000000000..07c212155f3
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/StockDistributor_exec.cpp
@@ -0,0 +1,347 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#include "StockDistributor_exec.h"
+#include "ace/Reactor.h"
+
+namespace CIAO_Stock_StockDistributor_Impl
+{
+
+ // initialze the stock values
+ CORBA::Long
+ StockDistributor_exec_i::ibm_ = 100;
+
+ CORBA::Long
+ StockDistributor_exec_i::msft_ = 101;
+
+ //==================================================================
+ // C L A S S: pulse_Generator
+ //==================================================================
+
+ pulse_Generator::pulse_Generator (StockDistributor_exec_i *callback)
+ : active_ (0),
+ pulse_callback_ (callback)
+ {
+ // initialize the reactor
+ this->reactor (ACE_Reactor::instance ());
+ }
+
+ pulse_Generator::~pulse_Generator ()
+ {
+ }
+
+ int
+ pulse_Generator::open_h ()
+ {
+ // convert the task into a active object that runs in separate thread
+ return this->activate ();
+ }
+
+ int
+ pulse_Generator::close_h ()
+ {
+ this->reactor ()->end_reactor_event_loop ();
+
+ // wait for all threads in the task to exit before it returns
+ return this->wait ();
+ }
+
+ int
+ pulse_Generator::start (CORBA::Long hertz)
+ {
+ // return if not valid
+ if (hertz == 0 || this->active_ != 0)
+ {
+ return -1;
+ }
+
+ // calculate the interval time
+ long usec = 1000000 / hertz;
+
+ if (this->reactor ()->schedule_timer (this,
+ 0,
+ ACE_Time_Value (0, usec),
+ ACE_Time_Value (0, usec)) == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Unable to setup Timer\n"),
+ -1);
+
+ }
+
+ this->active_ = 1;
+ return 0;
+ }
+
+ int
+ pulse_Generator::stop (void)
+ {
+ // return if not valid.
+ if (this->active_ == 0)
+ {
+ return -1;
+ }
+ // cancle the timer
+ this->reactor ()->cancel_timer (this);
+ this->active_ = 0;
+ return 0;
+ }
+
+ int
+ pulse_Generator::active (void)
+ {
+ return this->active_;
+ }
+
+ int
+ pulse_Generator::handle_close (ACE_HANDLE handle,
+ ACE_Reactor_Mask close_mask)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("[%x] handle = %d, close_mask = %d\n"),
+ this,
+ handle,
+ close_mask));
+ return 0;
+ }
+
+ int
+ pulse_Generator::handle_timeout (const ACE_Time_Value &,
+ const void *)
+ {
+ // Notify the subscribers
+ this->pulse_callback_->push_notify_out ();
+ return 0;
+ }
+
+ int
+ pulse_Generator::svc (void)
+ {
+ // define the owner of the reactor thread
+ this->reactor ()->owner (ACE_OS::thr_self ());
+
+ // run event loop to wait for event, and then dispatch them to corresponding handlers
+ this->reactor ()->run_reactor_event_loop ();
+
+ return 0;
+ }
+
+
+
+ //==================================================================
+ // Facet Executor Implementation Class: StockQuoter_exec_i
+ //==================================================================
+
+ ::Stock::StockInfo *
+ StockQuoter_exec_i::get_stock_info (const char *stock_name)
+ {
+ if (ACE_OS::strcmp (stock_name, "MSFT") == 0)
+ {
+ Stock::StockInfo_var info = new Stock::StockInfo;
+ info->name = CORBA::string_dup ("MSFT");
+ info->high = 10000;
+ info->low = 0;
+ info->last = this->distributor_.msft_; // retrieve the current stock value
+ return info._retn ();
+ }
+ else if (ACE_OS::strcmp (stock_name, "IBM") == 0)
+ {
+ Stock::StockInfo_var info = new Stock::StockInfo;
+ info->name = CORBA::string_dup ("IBM");
+ info->high = 10000;
+ info->low = 0;
+ info->last = this->distributor_.ibm_; // retrieve the current stock value
+ return info._retn ();
+ }
+ else
+ {
+ throw Stock::Invalid_Stock ();
+ }
+ }
+
+ //==================================================================
+ // Component Executor Implementation Class: StockDistributor_exec_i
+ //==================================================================
+
+ StockDistributor_exec_i::StockDistributor_exec_i (void)
+ : rate_ (0), pulser_ (this)
+ {
+ }
+
+ StockDistributor_exec_i::~StockDistributor_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ void
+ StockDistributor_exec_i::start ()
+ {
+ if (this->rate_ == 0 || this->pulser_.active())
+ {
+ throw CORBA::BAD_PARAM ();
+ }
+
+ this->pulser_.start (this->rate_);
+ }
+
+ void
+ StockDistributor_exec_i::stop ()
+ {
+ if (! this->pulser_.active ())
+ {
+ throw CORBA::BAD_INV_ORDER ();
+ }
+
+ this->pulser_.stop ();
+ }
+
+ // Attribute operations.
+
+ ::CORBA::Long
+ StockDistributor_exec_i::rate ()
+ {
+ return this->rate_;
+ }
+
+ void
+ StockDistributor_exec_i::rate (
+ ::CORBA::Long rate)
+ {
+ this->rate_ = rate;
+ }
+
+ // Port operations.
+
+ ::Stock::CCM_StockQuoter_ptr
+ StockDistributor_exec_i::get_push_quoter ()
+ {
+ return new StockQuoter_exec_i (*this);
+ }
+
+ void
+ StockDistributor_exec_i::push_notify_out ()
+ {
+ ++this->msft_;
+ ++this->ibm_;
+
+ Stock::StockName_var ev_msft = new OBV_Stock::StockName;
+ ev_msft->name (CORBA::string_dup ("MSFT"));
+ this->context_->push_notify_out (ev_msft.in ());
+
+ Stock::StockName_var ev_ibm = new OBV_Stock::StockName;
+ ev_ibm->name (CORBA::string_dup ("IBM"));
+ this->context_->push_notify_out (ev_ibm.in ());
+ }
+
+ // Operations from Components::SessionComponent
+
+ void
+ StockDistributor_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::Stock::CCM_StockDistributor_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ StockDistributor_exec_i::configuration_complete ()
+ {
+ }
+
+ void
+ StockDistributor_exec_i::ccm_activate ()
+ {
+ // Start the active object
+ this->pulser_.open_h ();
+ }
+
+ void
+ StockDistributor_exec_i::ccm_passivate ()
+ {
+ // Deactivate the active object
+ this->pulser_.close_h ();
+ }
+
+ void
+ StockDistributor_exec_i::ccm_remove ()
+ {
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: StockDistributorHome_exec_i
+ //==================================================================
+
+ StockDistributorHome_exec_i::StockDistributorHome_exec_i (void)
+ {
+ }
+
+ StockDistributorHome_exec_i::~StockDistributorHome_exec_i (void)
+ {
+ }
+
+ ::Components::EnterpriseComponent_ptr
+ StockDistributorHome_exec_i::create ()
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ StockDistributor_exec_i,
+ CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" STOCKDISTRIBUTOR_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Stock_StockDistributorComp_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ StockDistributor_exec_i,
+ ::Components::EnterpriseComponent::_nil ());
+
+ return retval;
+ }
+
+ extern "C" STOCKDISTRIBUTOR_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Stock_StockDistributorHome_Impl (void)
+ {
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ StockDistributorHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/StockDistributor_exec.h b/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/StockDistributor_exec.h
new file mode 100644
index 00000000000..de159bca4eb
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Distributor/StockDistributor_exec.h
@@ -0,0 +1,242 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#ifndef CIAO_STOCKDISTRIBUTOR_EXEC_H
+#define CIAO_STOCKDISTRIBUTOR_EXEC_H
+
+#include /**/ "ace/pre.h"
+#include "ace/Thread_Manager.h"
+#include "ace/Task.h"
+
+#include "StockDistributorEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "StockDistributor_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Stock_StockDistributor_Impl
+//namespace CIDL_StockDistributor_Impl
+{
+ class StockDistributor_exec_i;
+
+ /**
+ * @class StockQuoter_exec_i
+ *
+ * @brief Executor implementation
+ *
+ * This class implements Stock::StockQuoter interface. We use this interface
+ * to acquire the information of the stock
+ */
+ class STOCKDISTRIBUTOR_EXEC_Export StockQuoter_exec_i
+ : public virtual ::Stock::CCM_StockQuoter,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ StockQuoter_exec_i (StockDistributor_exec_i &distributor)
+ : distributor_ (distributor)
+ {
+ }
+
+ // Operations from ::Stock::StockQuoter
+
+ virtual ::Stock::StockInfo *
+ get_stock_info (const char * stock_name);
+
+ /// User defined
+
+ private:
+ /// Maintains a handle to the distributor so that the quoter can refer to it for latest quote
+ StockDistributor_exec_i &distributor_;
+ };
+
+ class StockDistributor_exec_i;
+
+ /**
+ * @class pulse generator
+ *
+ * @brief an active object used by StockDistributor to perform periodical pulse generation
+ *
+ */
+ class pulse_Generator : public ACE_Task_Base
+ {
+ public:
+ pulse_Generator (StockDistributor_exec_i *callback);
+
+ ~pulse_Generator ();
+
+ /// Hook method that performs application-defined initialization activities
+ int open_h (void);
+
+ /// Hook method that performs application-defined destruction activites
+ int close_h (void);
+
+ /// appliation-defined method for starting the pulse-generation service
+ int start (CORBA::Long hertz);
+
+ /// application-defined method for stopping the pulse-generation service
+ int stop (void);
+
+ /// Indicate whether the current object is active
+ int active (void);
+
+ /// Handle the timeout.
+ virtual int handle_timeout (const ACE_Time_Value &tv,
+ const void *arg);
+
+ /// Called when timer handler is removed.
+ virtual int handle_close (ACE_HANDLE handle,
+ ACE_Reactor_Mask close_mask);
+
+ /// Hook methods implemnting the task's service processing,
+ /// invoked by all threads activated by activate () method
+ virtual int svc (void);
+
+ private:
+ /// Tracking whether we are actively generating pulse or not.
+ int active_;
+
+ /// Maintains a handle that actually process the event
+ StockDistributor_exec_i *pulse_callback_;
+
+ };
+
+
+ /**
+ * @class StockDistributor_exec_i
+ *
+ * @brief Executor implementation
+ *
+ * This class implements Stock::StockDistributor component
+ */
+ class STOCKDISTRIBUTOR_EXEC_Export StockDistributor_exec_i
+ : public virtual StockDistributor_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ StockDistributor_exec_i (void);
+ virtual ~StockDistributor_exec_i (void);
+
+ // Supported or inherited operations.
+
+ virtual void
+ start ();
+
+ virtual void
+ stop ();
+
+ // Attribute operations.
+
+ virtual ::CORBA::Long
+ rate ();
+
+ virtual void
+ rate (::CORBA::Long);
+
+ // Port operations.
+
+ virtual ::Stock::CCM_StockQuoter_ptr
+ get_push_quoter ();
+
+ // 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:
+ ::Stock::CCM_StockDistributor_Context_var context_;
+
+ /// User defined members
+ public:
+
+ /// push event to all subscribers
+ void push_notify_out ();
+
+ private:
+ /// pulse generation rate
+ CORBA::Long rate_;
+
+ /// pulser object
+ pulse_Generator pulser_;
+
+ /// "real-time" stock value
+ static CORBA::Long msft_;
+
+ /// "real-tiime" stock value
+ static CORBA::Long ibm_;
+
+ friend class StockQuoter_exec_i;
+ };
+
+
+ /**
+ * @class StockDistributorHome_exec_i
+ *
+ * @brief Executor implementation
+ *
+ * This class implements Stock::StockDistributorHome
+ */
+ class STOCKDISTRIBUTOR_EXEC_Export StockDistributorHome_exec_i
+ : public virtual StockDistributorHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ StockDistributorHome_exec_i (void);
+ virtual ~StockDistributorHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" STOCKDISTRIBUTOR_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Stock_StockDistributorComp_Impl (void);
+ extern "C" STOCKDISTRIBUTOR_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Stock_StockDistributorHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_STOCKDISTRIBUTOR_EXEC_H */
+
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Icons/AddConnMode.gif b/modules/CIAO/docs/tutorials/Quoter/Simple/Icons/AddConnMode.gif
new file mode 100644
index 00000000000..3604d32946d
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Icons/AddConnMode.gif
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Icons/SetMode.gif b/modules/CIAO/docs/tutorials/Quoter/Simple/Icons/SetMode.gif
new file mode 100644
index 00000000000..6dcad861f07
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Icons/SetMode.gif
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Model/Quoter.xme b/modules/CIAO/docs/tutorials/Quoter/Simple/Model/Quoter.xme
new file mode 100644
index 00000000000..3ddd7a278bd
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Model/Quoter.xme
@@ -0,0 +1,1963 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE project SYSTEM "mga.dtd">
+
+<project guid="{8A93AFDA-3549-4255-9EF6-A3867650B536}" cdate="Wed Jun 17 09:03:38 2009" mdate="Wed Jun 17 09:03:38 2009" version="" metaguid="{CDCDB657-AAD7-4917-941A-E63B013136B7}" metaversion="" metaname="PICML">
+ <name>Quoter</name>
+ <comment></comment>
+ <author></author>
+ <folder id="id-006a-00000001" relid="0x1" childrelidcntr="0x2" kind="RootFolder" guid="{6BC78ED2-0419-439e-A10D-B60A1C8920AB}">
+ <name>Quoter</name>
+ <folder id="id-006a-00000002" relid="0x2" childrelidcntr="0x3" kind="InterfaceDefinitions" guid="{8E5034A7-25B8-4ccc-B4AA-BB3CE62F2F5E}">
+ <name>InterfaceDefinitions</name>
+ <model id="id-0065-00000001" kind="File" guid="{67245E9C-04DC-47b1-94C4-AFEA2A2A807B}" relid="0x1" childrelidcntr="0x2">
+ <name>StockBroker</name>
+ <attribute kind="PrefixTag">
+ <value></value>
+ </attribute>
+ <attribute kind="path">
+ <value></value>
+ </attribute>
+ <model id="id-0065-00000002" kind="Package" role="Package" guid="{27EEA834-EC7C-48f6-A8C2-2ED4C68FE286}" relid="0x3" childrelidcntr="0x6">
+ <name>Stock</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>377,230</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="PrefixTag">
+ <value></value>
+ </attribute>
+ <attribute kind="SpecifyIdTag">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag">
+ <value></value>
+ </attribute>
+ <model id="id-0065-00000003" kind="Object" role="Object" guid="{DDF50EEE-BE13-4cfe-BCFB-1836C86B5867}" relid="0x1" childrelidcntr="0x2">
+ <name>StockSubscriber</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>62,27</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="PrefixTag">
+ <value></value>
+ </attribute>
+ <attribute kind="SpecifyIdTag">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag">
+ <value></value>
+ </attribute>
+ <attribute kind="abstract" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="local" status="meta">
+ <value>false</value>
+ </attribute>
+ <model id="id-0065-00000004" kind="TwowayOperation" role="TwowayOperation" guid="{6FF62DFD-E7F5-4c94-93DA-1730500D00AD}" relid="0x1" childrelidcntr="0x2">
+ <name>stock_subscribe</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>334,201</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag">
+ <value></value>
+ </attribute>
+ <reference id="id-0067-0000000f" kind="InParameter" role="InParameter" guid="{16C69DDD-E366-4e38-8CE1-C06866E259B8}" relid="0x1" referred="id-0066-00000003">
+ <name>stock_name</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>334,201</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-00000010" kind="ExceptionRef" role="ExceptionRef" guid="{DCB1A5F3-2875-4c48-B7BD-FF11685DF909}" relid="0x2" referred="id-0065-00000012">
+ <name>ExceptionRef</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>700,434</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ </model>
+ <model id="id-0065-00000005" kind="TwowayOperation" role="TwowayOperation" guid="{34BCF95A-57C2-47be-B806-934CA2E766E7}" relid="0x2" childrelidcntr="0x2">
+ <name>stock_unsubscribe</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>700,434</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag">
+ <value></value>
+ </attribute>
+ <reference id="id-0067-00000011" kind="InParameter" role="InParameter" guid="{8C6C70F7-725E-4cc5-98E2-53ACD67DF44E}" relid="0x1" referred="id-0066-00000003">
+ <name>stock_name</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>334,201</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-00000012" kind="ExceptionRef" role="ExceptionRef" guid="{6E9CC803-1C0F-4900-8216-7FA0322FE397}" relid="0x2" referred="id-0065-00000012">
+ <name>ExceptionRef</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>700,434</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ </model>
+ </model>
+ <model id="id-0065-00000006" kind="Component" role="Component" guid="{93EF0D88-1CF5-476a-8826-0BE5AE1BA4B9}" relid="0x5" childrelidcntr="0x3">
+ <name>StockBroker</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>168,105</value>
+ </regnode>
+ </regnode>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>350,91</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag">
+ <value></value>
+ </attribute>
+ <attribute kind="UUID">
+ <value>E103B6A4-3420-4A9E-B0E0-E8ED0EBD5B55</value>
+ </attribute>
+ <attribute kind="VersionTag">
+ <value></value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ <reference id="id-0067-00000001" kind="Supports" role="Supports" guid="{FEDE19C3-AEE9-44a2-8F33-737564BBF340}" relid="0x1" referred="id-0065-00000003">
+ <name>Supports</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>243,143</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-00000013" kind="RequiredRequestPort" role="RequiredRequestPort" guid="{F077EDB5-3E3F-408b-A1B9-883A6919B75B}" relid="0x2" referred="id-0065-00000014">
+ <name>read_quoter</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>518,318</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag">
+ <value></value>
+ </attribute>
+ <attribute kind="exclusiveProvider" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="exclusiveUser" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="multiple_connections">
+ <value>false</value>
+ </attribute>
+ <attribute kind="optional" status="meta">
+ <value>false</value>
+ </attribute>
+ </reference>
+ <reference id="id-0067-00000014" kind="InEventPort" role="InEventPort" guid="{684BF329-8B57-4c24-AFE5-68E4E92BD563}" relid="0x3" referred="id-0065-00000016">
+ <name>notify_in</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>793,493</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag">
+ <value></value>
+ </attribute>
+ <attribute kind="exclusiveProvider" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="exclusiveUser" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="optional" status="meta">
+ <value>false</value>
+ </attribute>
+ </reference>
+ </model>
+ <model id="id-0065-00000007" kind="ComponentFactory" role="ComponentFactory" guid="{64B12EF3-D83F-4efa-B10A-BA783E0550F1}" relid="0x3" childrelidcntr="0x1">
+ <name>StockBrokerHome</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>440,279</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag">
+ <value></value>
+ </attribute>
+ </model>
+ <connection id="id-0068-0000002d" kind="ManagesComponent" role="ManagesComponent" guid="{51622E13-CD5D-461e-8E89-3509085CD31F}" relid="0x6">
+ <name>ManagesComponent</name>
+ <connpoint role="dst" target="id-0065-00000006"/>
+ <connpoint role="src" target="id-0065-00000007"/>
+ </connection>
+ </model>
+ <reference id="id-0067-00000015" kind="FileRef" role="FileRef" guid="{2A6ADF8B-62C3-45ce-B2C2-9704C47604D4}" relid="0x1" referred="id-0065-00000010">
+ <name>FileRef</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>153,90</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ </model>
+ <model id="id-0065-00000008" kind="File" guid="{A36208EA-7458-4309-8CC3-A1764C9733C3}" relid="0x2" childrelidcntr="0x3">
+ <name>StockDistributor</name>
+ <attribute kind="PrefixTag">
+ <value></value>
+ </attribute>
+ <attribute kind="path">
+ <value></value>
+ </attribute>
+ <model id="id-0065-00000009" kind="Package" role="Package" guid="{D0F34206-BB6F-422d-A7F5-6F51DF089C31}" relid="0x2" childrelidcntr="0x6">
+ <name>Stock</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>700,434</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="PrefixTag">
+ <value></value>
+ </attribute>
+ <attribute kind="SpecifyIdTag">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag">
+ <value></value>
+ </attribute>
+ <model id="id-0065-0000000a" kind="Object" role="Object" guid="{7B170229-1844-43ad-B95C-21EC7C1CDB07}" relid="0x1" childrelidcntr="0x2">
+ <name>Trigger</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>62,34</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="PrefixTag">
+ <value></value>
+ </attribute>
+ <attribute kind="SpecifyIdTag">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag">
+ <value></value>
+ </attribute>
+ <attribute kind="abstract" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="local" status="meta">
+ <value>false</value>
+ </attribute>
+ <model id="id-0065-0000000b" kind="TwowayOperation" role="TwowayOperation" guid="{1D7A6E18-50C6-40b1-BDE5-370226BB1D03}" relid="0x1" childrelidcntr="0x0">
+ <name>start</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>334,201</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag">
+ <value></value>
+ </attribute>
+ </model>
+ <model id="id-0065-0000000c" kind="TwowayOperation" role="TwowayOperation" guid="{C4367314-50F2-4aa6-BA62-C396D4915F96}" relid="0x2" childrelidcntr="0x0">
+ <name>stop</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>700,434</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag">
+ <value></value>
+ </attribute>
+ </model>
+ </model>
+ <model id="id-0065-0000000d" kind="Component" role="Component" guid="{58335FFB-C9BD-40aa-83C6-A960ECFEF531}" relid="0x5" childrelidcntr="0x4">
+ <name>StockDistributor</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>168,147</value>
+ </regnode>
+ </regnode>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>112,91</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag">
+ <value></value>
+ </attribute>
+ <attribute kind="UUID">
+ <value>5A918076-BA28-438E-8DC3-7BC56110C411</value>
+ </attribute>
+ <attribute kind="VersionTag">
+ <value></value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ <model id="id-0065-0000000e" kind="Attribute" role="Attribute" guid="{4B700D25-867E-411b-A825-59629E4B881C}" relid="0x4" childrelidcntr="0x1">
+ <name>rate</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>848,528</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag">
+ <value></value>
+ </attribute>
+ <reference id="id-0067-00000016" kind="AttributeMember" role="AttributeMember" guid="{BCD91514-3DDF-4e47-96C2-7BF061647753}" relid="0x1" referred="id-0066-00000007">
+ <name>AttributeMember</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>518,318</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ </model>
+ <reference id="id-0067-00000002" kind="Supports" role="Supports" guid="{798B2AFF-23F5-47af-B77F-50AF42C04F7A}" relid="0x1" referred="id-0065-0000000a">
+ <name>Supports</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>188,108</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-00000017" kind="ProvidedRequestPort" role="ProvidedRequestPort" guid="{BA2E4ACB-98C9-434c-AEBC-2B4C0C29863E}" relid="0x2" referred="id-0065-00000014">
+ <name>push_quoter</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>408,248</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag">
+ <value></value>
+ </attribute>
+ <attribute kind="exclusiveProvider" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="exclusiveUser" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="optional" status="meta">
+ <value>false</value>
+ </attribute>
+ </reference>
+ <reference id="id-0067-00000018" kind="OutEventPort" role="OutEventPort" guid="{1C51C321-CE5E-4931-97D8-5A4A21F3FC3D}" relid="0x3" referred="id-0065-00000016">
+ <name>notify_out</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>628,388</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag">
+ <value></value>
+ </attribute>
+ <attribute kind="exclusiveProvider" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="exclusiveUser" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="optional" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="out_event_port_type" status="meta">
+ <value>DirectConnect</value>
+ </attribute>
+ <attribute kind="single_destination">
+ <value>false</value>
+ </attribute>
+ </reference>
+ </model>
+ <model id="id-0065-0000000f" kind="ComponentFactory" role="ComponentFactory" guid="{1F6E3301-215A-4bb2-87A5-3D7FA1DB439B}" relid="0x3" childrelidcntr="0x0">
+ <name>StockDistributorHome</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>440,321</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag">
+ <value></value>
+ </attribute>
+ </model>
+ <connection id="id-0068-0000002e" kind="ManagesComponent" role="ManagesComponent" guid="{D25EB1FE-23EC-4c6d-9916-1E6988B0BBD6}" relid="0x6">
+ <name>ManagesComponent</name>
+ <connpoint role="dst" target="id-0065-0000000d"/>
+ <connpoint role="src" target="id-0065-0000000f"/>
+ </connection>
+ </model>
+ <reference id="id-0067-00000019" kind="FileRef" role="FileRef" guid="{BEE82928-D7A0-47d5-BB74-69A8A0A40220}" relid="0x1" referred="id-0065-00000010">
+ <name>FileRef</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>334,201</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ </model>
+ <model id="id-0065-00000010" kind="File" guid="{520FE0C4-00B3-4fde-90EA-DFEE35CD6CBF}" relid="0x3" childrelidcntr="0x1">
+ <name>Stock_Base</name>
+ <attribute kind="PrefixTag">
+ <value></value>
+ </attribute>
+ <attribute kind="path">
+ <value></value>
+ </attribute>
+ <model id="id-0065-00000011" kind="Package" role="Package" guid="{8B5C1B05-E097-4369-ABDC-25379FE12A65}" relid="0x1" childrelidcntr="0x5">
+ <name>Stock</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>518,318</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="PrefixTag">
+ <value></value>
+ </attribute>
+ <attribute kind="SpecifyIdTag">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag">
+ <value></value>
+ </attribute>
+ <model id="id-0065-00000012" kind="Exception" role="Exception" guid="{1ACD0C40-DF42-44f1-B474-8D34421E7BE4}" relid="0x1" childrelidcntr="0x0">
+ <name>Invalid_Stock</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>151,84</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag">
+ <value></value>
+ </attribute>
+ </model>
+ <model id="id-0065-00000013" kind="Aggregate" role="Aggregate" guid="{A4C573E4-8C77-4c34-B737-6A36C0F0CDC7}" relid="0x3" childrelidcntr="0x4">
+ <name>StockInfo</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>517,316</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag">
+ <value></value>
+ </attribute>
+ <reference id="id-0067-0000001b" kind="Member" role="Member" guid="{FB2DC97F-09F1-46ce-AA87-79861D8D6997}" relid="0x1" referred="id-0066-00000003">
+ <name>name</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>188,108</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-0000001c" kind="Member" role="Member" guid="{088590BA-352E-41aa-AFBC-7110E839D701}" relid="0x2" referred="id-0066-00000007">
+ <name>high</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>408,248</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-0000001d" kind="Member" role="Member" guid="{9927E2B8-0F00-4d99-BDD5-A5F1DA4C7F68}" relid="0x3" referred="id-0066-00000007">
+ <name>low</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>628,388</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-0000001e" kind="Member" role="Member" guid="{38FC2743-E085-4353-A4F9-3F8B74E0D990}" relid="0x4" referred="id-0066-00000007">
+ <name>last</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>848,528</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ </model>
+ <model id="id-0065-00000014" kind="Object" role="Object" guid="{7B88C1F2-8D4A-419d-82F0-C1569A9BBBEE}" relid="0x4" childrelidcntr="0x1">
+ <name>StockQuoter</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>700,432</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="PrefixTag">
+ <value></value>
+ </attribute>
+ <attribute kind="SpecifyIdTag">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag">
+ <value></value>
+ </attribute>
+ <attribute kind="abstract" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="local" status="meta">
+ <value>false</value>
+ </attribute>
+ <model id="id-0065-00000015" kind="TwowayOperation" role="TwowayOperation" guid="{6ADA08CE-C9D6-4eb2-9E82-B5F29554A13F}" relid="0x1" childrelidcntr="0x3">
+ <name>get_stock_info</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>518,318</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag">
+ <value></value>
+ </attribute>
+ <reference id="id-0067-00000003" kind="ReturnType" role="ReturnType" guid="{E422733F-FDCB-4a84-8BC2-649475077114}" relid="0x1" referred="id-0065-00000013">
+ <name>ReturnType</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>243,143</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-00000004" kind="ExceptionRef" role="ExceptionRef" guid="{530E04D0-8791-488c-90DF-9158D51E46D3}" relid="0x3" referred="id-0065-00000012">
+ <name>ExceptionRef</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>793,493</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-0000001f" kind="InParameter" role="InParameter" guid="{4FFFEADC-D975-4704-9310-707EFE538D4C}" relid="0x2" referred="id-0066-00000003">
+ <name>stock_name</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>518,318</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ </model>
+ </model>
+ <model id="id-0065-00000016" kind="Event" role="Event" guid="{EA5BAB52-2F49-4a65-A79D-874AA003C4AD}" relid="0x5" childrelidcntr="0x1">
+ <name>StockName</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>883,548</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="PrefixTag">
+ <value></value>
+ </attribute>
+ <attribute kind="SpecifyIdTag">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag">
+ <value></value>
+ </attribute>
+ <attribute kind="abstract" status="meta">
+ <value>false</value>
+ </attribute>
+ <reference id="id-0067-00000020" kind="Member" role="Member" guid="{0A935DC6-B836-469c-B041-BB1362D03CC8}" relid="0x1" referred="id-0066-00000003">
+ <name>name</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>518,318</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ </model>
+ <reference id="id-0067-0000001a" kind="Collection" role="Collection" guid="{5961EC08-837F-41fc-A7A0-A0E88C993330}" relid="0x2" referred="id-0066-0000000b">
+ <name>ImageBlob</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>334,200</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag">
+ <value></value>
+ </attribute>
+ <attribute kind="bound" status="meta">
+ <value></value>
+ </attribute>
+ </reference>
+ </model>
+ </model>
+ </folder>
+ <folder id="id-006a-00000003" relid="0x1" childrelidcntr="0xb" kind="PredefinedTypes" guid="{87EC8BBD-A4E7-4fd4-8F65-4146FE3EC768}">
+ <name>PredefinedTypes</name>
+ <atom id="id-0066-00000001" kind="TypeKind" guid="{297C2D4A-3433-46f3-8DB4-7CD880EBA320}" relid="0xb">
+ <name>TypeKind</name>
+ </atom>
+ <atom id="id-0066-00000002" kind="TypeEncoding" guid="{89361487-74BB-42fa-8264-72A2CF795ACC}" relid="0xa">
+ <name>TypeEncoding</name>
+ </atom>
+ <atom id="id-0066-00000003" kind="String" guid="{5FEE88E4-8A21-4f36-B2E8-F830C2010EF4}" relid="0x9">
+ <name>String</name>
+ </atom>
+ <atom id="id-0066-00000004" kind="Boolean" guid="{156B95B2-2EB3-4924-BC0A-DC7167BED0C5}" relid="0x8">
+ <name>Boolean</name>
+ </atom>
+ <atom id="id-0066-00000005" kind="ShortInteger" guid="{FC335F1C-F63F-4226-B2C1-13621387FFD5}" relid="0x7">
+ <name>ShortInteger</name>
+ </atom>
+ <atom id="id-0066-00000006" kind="RealNumber" guid="{82079DC1-96A2-47a8-92BE-62A3497A2D32}" relid="0x6">
+ <name>RealNumber</name>
+ </atom>
+ <atom id="id-0066-00000007" kind="LongInteger" guid="{BEC38288-EDD4-4720-9498-E9E29F2E4B8D}" relid="0x5">
+ <name>LongInteger</name>
+ </atom>
+ <atom id="id-0066-00000008" kind="GenericValueObject" guid="{9FA202F6-53A8-479b-9690-F2A6E1032C96}" relid="0x4">
+ <name>GenericValueObject</name>
+ </atom>
+ <atom id="id-0066-00000009" kind="GenericValue" guid="{DFDAF028-FFC7-4506-974D-8D24DED55A9E}" relid="0x3">
+ <name>GenericValue</name>
+ </atom>
+ <atom id="id-0066-0000000a" kind="GenericObject" guid="{3A051B5B-038A-4b87-B730-41D3104B1E50}" relid="0x2">
+ <name>GenericObject</name>
+ </atom>
+ <atom id="id-0066-0000000b" kind="Byte" guid="{3B9311B6-0C3A-4bb2-A595-97CFDD45C25A}" relid="0x1">
+ <name>Byte</name>
+ </atom>
+ </folder>
+ <folder id="id-006a-00000004" relid="0x3" childrelidcntr="0x1" kind="ComponentImplementations" guid="{3BE8FBA4-A222-4271-B1CC-A4063186C3D2}">
+ <name>ComponentImplementations</name>
+ <model id="id-0065-00000017" kind="ComponentImplementationContainer" guid="{5B96579C-F797-4ea2-82B3-5A30ED5AEE31}" relid="0x1" childrelidcntr="0x2d">
+ <name>StockBrokerImplementation</name>
+ <atom id="id-0066-0000000c" kind="MonolithicImplementation" role="MonolithicImplementation" guid="{0D645EA4-7829-4037-A013-AA9D228C221B}" relid="0x1">
+ <name>StockBrokerMonolithicImpl</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>258,132</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="UUID">
+ <value>85DC22EC-BA18-4D47-8096-A5C6BB519AB5</value>
+ </attribute>
+ <attribute kind="defaultVersion" status="meta">
+ <value>0.0.0.0</value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ </atom>
+ <reference id="id-0067-00000006" kind="ComponentRef" role="ComponentRef" guid="{D5518303-00DC-40bc-87BB-2ED57709AF7E}" relid="0x9" referred="id-0065-00000006">
+ <name>StockBrokerRef</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>217,224</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-00000057" kind="ComponentServantArtifact" role="ComponentServantArtifact" guid="{6E0BD299-0612-42cc-B4E8-CCB14555EDC1}" relid="0x26" referred="id-0066-0000000f">
+ <name>ComponentServantArtifact</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>340,32</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="EntryPoint">
+ <value>create_Stock_StockBroker_Servant</value>
+ </attribute>
+ </reference>
+ <reference id="id-0067-00000058" kind="ComponentImplementationArtifact" role="ComponentImplementationArtifact" guid="{6D9B2B1D-4E38-427c-9584-27FF62705DEC}" relid="0x27" referred="id-0066-00000010">
+ <name>ComponentImplementationArtifact</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>165,32</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="EntryPoint">
+ <value>create_Stock_StockBrokerComp_Impl</value>
+ </attribute>
+ </reference>
+ <connection id="id-0068-00000007" kind="Implements" role="Implements" guid="{079474AF-755B-471d-9DA6-C8BAEBB35A8A}" relid="0xb">
+ <name>Implements</name>
+ <connpoint role="src" target="id-0066-0000000c"/>
+ <connpoint role="dst" target="id-0067-00000006"/>
+ </connection>
+ <connection id="id-0068-0000003c" kind="MonolithprimaryArtifact" role="MonolithprimaryArtifact" guid="{8EC77E60-0285-4650-ACA7-B1A7A96BEF06}" relid="0x29">
+ <name>MonolithprimaryArtifact</name>
+ <connpoint role="src" target="id-0066-0000000c"/>
+ <connpoint role="dst" target="id-0067-00000058"/>
+ </connection>
+ <connection id="id-0068-0000003e" kind="MonolithprimaryArtifact" role="MonolithprimaryArtifact" guid="{1F68123C-DA75-4c00-8E12-A594854EC9A0}" relid="0x2b">
+ <name>MonolithprimaryArtifact</name>
+ <regnode name="autorouterPref" isopaque="yes">
+ <value>s</value>
+ </regnode>
+ <connpoint role="src" target="id-0066-0000000c"/>
+ <connpoint role="dst" target="id-0067-00000057"/>
+ </connection>
+ </model>
+ <model id="id-0065-00000019" kind="ComponentImplementationContainer" guid="{A9B3E74A-19FA-4146-9889-822DED4DF951}" relid="0x2" childrelidcntr="0x2e">
+ <name>StockDistributorImplementation</name>
+ <atom id="id-0066-0000000d" kind="MonolithicImplementation" role="MonolithicImplementation" guid="{E386A5A9-2397-4314-88D7-1BBD4D0F8867}" relid="0x1">
+ <name>StockDistributorMonolithicImpl</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>461,153</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="UUID">
+ <value>6FFDC88F-5ED1-4DDC-8B44-5D8310E59C68</value>
+ </attribute>
+ <attribute kind="defaultVersion" status="meta">
+ <value>0.0.0.0</value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ </atom>
+ <reference id="id-0067-00000008" kind="ComponentRef" role="ComponentRef" guid="{E114B558-3DEF-4370-A7B2-ADA52EE5A41B}" relid="0x9" referred="id-0065-0000000d">
+ <name>StockDistributorRef</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>420,287</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-00000059" kind="ComponentServantArtifact" role="ComponentServantArtifact" guid="{A904946F-26F9-4136-B97E-DB1F67ED816F}" relid="0x26" referred="id-0066-00000012">
+ <name>ComponentServantArtifact</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>550,67</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="EntryPoint">
+ <value>create_Stock_StockDistributor_Servant</value>
+ </attribute>
+ </reference>
+ <reference id="id-0067-0000005a" kind="ComponentImplementationArtifact" role="ComponentImplementationArtifact" guid="{2B59E908-0774-47ea-B7A2-6FD7039AA4C4}" relid="0x27" referred="id-0066-00000013">
+ <name>ComponentImplementationArtifact</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>368,67</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="EntryPoint">
+ <value>create_Stock_StockDistributorComp_Impl</value>
+ </attribute>
+ </reference>
+ <connection id="id-0068-0000000c" kind="Implements" role="Implements" guid="{EAB2DE4D-FDD5-41d6-91E8-5BB4588F1EF4}" relid="0xb">
+ <name>Implements</name>
+ <connpoint role="src" target="id-0066-0000000d"/>
+ <connpoint role="dst" target="id-0067-00000008"/>
+ </connection>
+ <connection id="id-0068-00000042" kind="MonolithprimaryArtifact" role="MonolithprimaryArtifact" guid="{F107E562-4A62-4b92-BC67-B321886046E4}" relid="0x2b">
+ <name>MonolithprimaryArtifact</name>
+ <regnode name="autorouterPref" isopaque="yes">
+ <value>Ns</value>
+ </regnode>
+ <connpoint role="src" target="id-0066-0000000d"/>
+ <connpoint role="dst" target="id-0067-00000059"/>
+ </connection>
+ <connection id="id-0068-00000043" kind="MonolithprimaryArtifact" role="MonolithprimaryArtifact" guid="{82A41BE5-9DCF-47c4-ABB4-42639C64C103}" relid="0x2c">
+ <name>MonolithprimaryArtifact</name>
+ <regnode name="autorouterPref" isopaque="yes">
+ <value>Ns</value>
+ </regnode>
+ <connpoint role="src" target="id-0066-0000000d"/>
+ <connpoint role="dst" target="id-0067-0000005a"/>
+ </connection>
+ </model>
+ <model id="id-0065-00000023" kind="ComponentImplementationContainer" guid="{5377003E-9CD3-4c90-AE45-5CA4135E5820}" relid="0x1" childrelidcntr="0x1">
+ <name>StockQuoterImplementation</name>
+ <model id="id-0065-00000024" kind="ComponentAssembly" role="ComponentAssembly" guid="{FA3FE2D1-D9D9-44f1-A6B3-EF89DB2444DC}" relid="0x1" childrelidcntr="0xc">
+ <name>StockQuoter</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>205,72</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="UUID">
+ <value>DB8977E3-FD57-458F-9AAE-BC0866B8AFFA</value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ <model id="id-0065-00000025" kind="Component" role="Component" guid="{40A2E128-D05D-464a-98D3-59DB5145C137}" derivedfrom="id-0065-0000000d" isinstance="yes" isprimary="yes" relid="0x3" childrelidcntr="0x0">
+ <name>StockDistributor</name>
+ <regnode name="PartRegs">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>84,49</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag" status="inherited">
+ <value></value>
+ </attribute>
+ <attribute kind="UUID">
+ <value>C509158E-BAD6-4B89-A565-0F0DED710EEB</value>
+ </attribute>
+ <attribute kind="VersionTag" status="inherited">
+ <value></value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ <model id="id-0065-00000026" kind="Attribute" role="Attribute" guid="{6C16BC17-1781-4bf3-A8B8-1A2FBCC651A1}" derivedfrom="id-0065-0000000e" isinstance="yes" isprimary="no" childrelidcntr="0x0">
+ <name>rate</name>
+ <attribute kind="SpecifyIdTag" status="inherited">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="inherited">
+ <value></value>
+ </attribute>
+ <reference id="id-0067-00000027" kind="AttributeMember" role="AttributeMember" guid="{04752F42-A438-44b9-A701-5011096A8000}" derivedfrom="id-0067-00000016" isinstance="yes" isprimary="no" referred="id-0066-00000007" isbound="yes">
+ <name>AttributeMember</name>
+ </reference>
+ </model>
+ <reference id="id-0067-00000028" kind="ProvidedRequestPort" role="ProvidedRequestPort" guid="{23958B2F-6BDC-46d7-BDC8-6038F6ABE2A5}" derivedfrom="id-0067-00000017" isinstance="yes" isprimary="no" referred="id-0065-00000014" isbound="yes">
+ <name>push_quoter</name>
+ <attribute kind="SpecifyIdTag" status="inherited">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="inherited">
+ <value></value>
+ </attribute>
+ <attribute kind="exclusiveProvider" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="exclusiveUser" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="optional" status="meta">
+ <value>false</value>
+ </attribute>
+ </reference>
+ <reference id="id-0067-00000029" kind="Supports" role="Supports" guid="{CC3E9E23-7D74-40ce-B5FA-758259B971D9}" derivedfrom="id-0067-00000002" isinstance="yes" isprimary="no" referred="id-0065-0000000a" isbound="yes">
+ <name>Supports</name>
+ </reference>
+ <reference id="id-0067-0000002a" kind="OutEventPort" role="OutEventPort" guid="{2AB5A3ED-7FFA-4eba-8E25-C2CDC9996EBD}" derivedfrom="id-0067-00000018" isinstance="yes" isprimary="no" referred="id-0065-00000016" isbound="yes">
+ <name>notify_out</name>
+ <attribute kind="SpecifyIdTag" status="inherited">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="inherited">
+ <value></value>
+ </attribute>
+ <attribute kind="exclusiveProvider" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="exclusiveUser" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="optional" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="out_event_port_type" status="meta">
+ <value>DirectConnect</value>
+ </attribute>
+ <attribute kind="single_destination" status="inherited">
+ <value>false</value>
+ </attribute>
+ </reference>
+ </model>
+ <model id="id-0065-00000027" kind="Component" role="Component" guid="{C929C132-65DF-40e5-AF72-A1A5A500E151}" derivedfrom="id-0065-00000006" isinstance="yes" isprimary="yes" relid="0x4" childrelidcntr="0x0">
+ <name>StockBroker</name>
+ <regnode name="PartRegs">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>364,49</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag" status="inherited">
+ <value></value>
+ </attribute>
+ <attribute kind="UUID">
+ <value>F96FBCAA-4AD8-4C7D-BCEC-1392A63D08A5</value>
+ </attribute>
+ <attribute kind="VersionTag" status="inherited">
+ <value></value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ <reference id="id-0067-0000002b" kind="Supports" role="Supports" guid="{A527AFA3-C6A9-46be-8845-B1D9A7BFD756}" derivedfrom="id-0067-00000001" isinstance="yes" isprimary="no" referred="id-0065-00000003" isbound="yes">
+ <name>Supports</name>
+ </reference>
+ <reference id="id-0067-0000002c" kind="InEventPort" role="InEventPort" guid="{063AF958-661E-4942-8240-97D5ADBBEE96}" derivedfrom="id-0067-00000014" isinstance="yes" isprimary="no" referred="id-0065-00000016" isbound="yes">
+ <name>notify_in</name>
+ <attribute kind="SpecifyIdTag" status="inherited">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="inherited">
+ <value></value>
+ </attribute>
+ <attribute kind="exclusiveProvider" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="exclusiveUser" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="optional" status="meta">
+ <value>false</value>
+ </attribute>
+ </reference>
+ <reference id="id-0067-0000002d" kind="RequiredRequestPort" role="RequiredRequestPort" guid="{6502536F-6BF9-4d17-A18C-FD473D84E4C3}" derivedfrom="id-0067-00000013" isinstance="yes" isprimary="no" referred="id-0065-00000014" isbound="yes">
+ <name>read_quoter</name>
+ <attribute kind="SpecifyIdTag" status="inherited">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="inherited">
+ <value></value>
+ </attribute>
+ <attribute kind="exclusiveProvider" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="exclusiveUser" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="multiple_connections" status="inherited">
+ <value>false</value>
+ </attribute>
+ <attribute kind="optional" status="meta">
+ <value>false</value>
+ </attribute>
+ </reference>
+ </model>
+ <model id="id-0065-00000033" kind="Property" role="Property" guid="{094E69FF-9AAC-4910-962E-DE911388DECD}" relid="0x9" childrelidcntr="0x1">
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>125,244</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="DataValue">
+ <value>StockDistributor.ior</value>
+ </attribute>
+ <reference id="id-0067-0000005b" kind="DataType" role="DataType" guid="{A19D26DA-6C7C-4a94-BFCE-0DDDD3C3502A}" relid="0x1" referred="id-0066-00000003">
+ <name>DataType</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>303,219</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ </model>
+ <model id="id-0065-00000034" kind="Property" role="Property" guid="{D8DBED02-A5CE-437c-8722-775C0059CE0A}" relid="0xa" childrelidcntr="0x1">
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>405,244</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="DataValue">
+ <value>StockBroker.ior</value>
+ </attribute>
+ <reference id="id-0067-0000005c" kind="DataType" role="DataType" guid="{5AD1B6E1-ED63-40b6-88F9-C08797B21C2D}" relid="0x1" referred="id-0066-00000003">
+ <name>DataType</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>429,142</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ </model>
+ <atom id="id-0066-00000014" kind="PublishConnector" role="PublishConnector" guid="{CC7C2401-9978-4a42-81F9-2CAA77AB51FF}" relid="0x5">
+ <name>PublishConnector</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>301,133</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </atom>
+ <connection id="id-0068-00000017" kind="publish" role="publish" guid="{515A5E57-46A4-48c5-85EB-DD8F0E8432DC}" relid="0x6">
+ <name>publish</name>
+ <connpoint role="dst" target="id-0066-00000014"/>
+ <connpoint role="src" target="id-0067-0000002a"/>
+ </connection>
+ <connection id="id-0068-00000018" kind="deliverTo" role="deliverTo" guid="{F7E7DBDB-CC28-48e7-8D70-C97C69CE385C}" relid="0x7">
+ <name>deliverTo</name>
+ <connpoint role="src" target="id-0066-00000014"/>
+ <connpoint role="dst" target="id-0067-0000002c"/>
+ </connection>
+ <connection id="id-0068-00000019" kind="invoke" role="invoke" guid="{D5E54FC6-5280-4d77-B6BF-BCC47235F48A}" relid="0x8">
+ <name>invoke</name>
+ <connpoint role="dst" target="id-0067-00000028"/>
+ <connpoint role="src" target="id-0067-0000002d"/>
+ </connection>
+ <connection id="id-0068-00000044" kind="AssemblyConfigProperty" role="AssemblyConfigProperty" guid="{F72D81B9-ABEA-458a-92F4-44F4A4C72886}" relid="0xb">
+ <name>AssemblyConfigProperty</name>
+ <connpoint role="src" target="id-0065-00000027"/>
+ <connpoint role="dst" target="id-0065-00000034"/>
+ </connection>
+ <connection id="id-0068-00000045" kind="AssemblyConfigProperty" role="AssemblyConfigProperty" guid="{5B71259D-2E45-472d-95E9-DD5143973B27}" relid="0xc">
+ <name>AssemblyConfigProperty</name>
+ <connpoint role="src" target="id-0065-00000025"/>
+ <connpoint role="dst" target="id-0065-00000033"/>
+ </connection>
+ </model>
+ </model>
+ </folder>
+ <folder id="id-006a-00000005" relid="0x4" childrelidcntr="0x0" kind="ImplementationArtifacts" guid="{FA1B6CAA-31B6-4f82-894C-6E2CA015A49D}">
+ <name>ImplementationArtifacts</name>
+ <model id="id-0065-0000001b" kind="ArtifactContainer" guid="{C7280229-CE74-4e24-AED4-C133231A62D8}" relid="0x1" childrelidcntr="0xb">
+ <name>StockBrokerArtifacts</name>
+ <atom id="id-0066-0000000e" kind="ImplementationArtifact" role="ImplementationArtifact" guid="{907F2C05-A9C3-48f3-9CAF-31D003A575D8}" relid="0x1">
+ <name>StockBroker_stub</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>174,48</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="UUID">
+ <value>CD1ED550-2120-4815-9F0C-A57B299F2C53</value>
+ </attribute>
+ <attribute kind="architecture" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="artifactVersion" status="meta">
+ <value>0.0.0.0</value>
+ </attribute>
+ <attribute kind="configuration" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="label">
+ <value></value>
+ </attribute>
+ <attribute kind="location">
+ <value>StockBroker_stub</value>
+ </attribute>
+ <attribute kind="operatingSystem" status="meta">
+ <value></value>
+ </attribute>
+ </atom>
+ <atom id="id-0066-0000000f" kind="ImplementationArtifact" role="ImplementationArtifact" guid="{40144B7B-3922-4390-B66A-443C21B6F51F}" relid="0x3">
+ <name>StockBroker_svnt</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>363,146</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="UUID">
+ <value>066D04A2-BB7B-40FB-BD67-50EE59CC20F8</value>
+ </attribute>
+ <attribute kind="architecture" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="artifactVersion" status="meta">
+ <value>0.0.0.0</value>
+ </attribute>
+ <attribute kind="configuration" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="label">
+ <value></value>
+ </attribute>
+ <attribute kind="location">
+ <value>StockBroker_svnt</value>
+ </attribute>
+ <attribute kind="operatingSystem" status="meta">
+ <value></value>
+ </attribute>
+ </atom>
+ <atom id="id-0066-00000010" kind="ImplementationArtifact" role="ImplementationArtifact" guid="{530D2B29-9F25-4e1c-9DB9-CC3AD2F40B58}" relid="0x5">
+ <name>StockBroker_exec</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>538,258</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="UUID">
+ <value>A07CBC4A-91E2-4FDF-A70A-8604ABA8954C</value>
+ </attribute>
+ <attribute kind="architecture" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="artifactVersion" status="meta">
+ <value>0.0.0.0</value>
+ </attribute>
+ <attribute kind="configuration" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="label">
+ <value></value>
+ </attribute>
+ <attribute kind="location">
+ <value>StockBroker_exec</value>
+ </attribute>
+ <attribute kind="operatingSystem" status="meta">
+ <value></value>
+ </attribute>
+ </atom>
+ <connection id="id-0068-0000000e" kind="ArtifactDependency" role="ArtifactDependency" guid="{4AE29519-E10B-4624-AE8A-B7210445116C}" relid="0x8">
+ <name>ArtifactDependency</name>
+ <connpoint role="dst" target="id-0066-0000000e"/>
+ <connpoint role="src" target="id-0066-0000000f"/>
+ </connection>
+ <connection id="id-0068-00000010" kind="ArtifactDependency" role="ArtifactDependency" guid="{2C7DEC47-1B79-4674-BC1B-E388E945070C}" relid="0x9">
+ <name>ArtifactDependency</name>
+ <connpoint role="dst" target="id-0066-0000000f"/>
+ <connpoint role="src" target="id-0066-00000010"/>
+ </connection>
+ <connection id="id-0068-00000011" kind="ArtifactDependency" role="ArtifactDependency" guid="{F3BF7E0B-FB5A-407c-82F8-0ACAAEE82F7E}" relid="0xa">
+ <name>ArtifactDependency</name>
+ <connpoint role="dst" target="id-0066-0000000e"/>
+ <connpoint role="src" target="id-0066-00000010"/>
+ </connection>
+ </model>
+ <model id="id-0065-0000001e" kind="ArtifactContainer" guid="{89A72D9A-ED9B-43b3-BF6D-4BC04E59F4D8}" relid="0x2" childrelidcntr="0xa">
+ <name>StockDistributorArtifacts</name>
+ <atom id="id-0066-00000011" kind="ImplementationArtifact" role="ImplementationArtifact" guid="{05CE8F3C-2E25-419f-BFC9-E290B25F3B3C}" relid="0x1">
+ <name>StockDistributor_stub</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>151,84</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="UUID">
+ <value>C2E2F668-5B72-43C5-AA3B-FBB907307748</value>
+ </attribute>
+ <attribute kind="architecture" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="artifactVersion" status="meta">
+ <value>0.0.0.0</value>
+ </attribute>
+ <attribute kind="configuration" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="label">
+ <value></value>
+ </attribute>
+ <attribute kind="location">
+ <value>StockDistributor_stub</value>
+ </attribute>
+ <attribute kind="operatingSystem" status="meta">
+ <value></value>
+ </attribute>
+ </atom>
+ <atom id="id-0066-00000012" kind="ImplementationArtifact" role="ImplementationArtifact" guid="{8493525C-3E7F-4593-A5F7-FF8AB4E8D19A}" relid="0x3">
+ <name>StockDistributor_svnt</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>517,316</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="UUID">
+ <value>AE2EC978-93A9-4C38-91EC-E59E68AB02FD</value>
+ </attribute>
+ <attribute kind="architecture" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="artifactVersion" status="meta">
+ <value>0.0.0.0</value>
+ </attribute>
+ <attribute kind="configuration" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="label">
+ <value></value>
+ </attribute>
+ <attribute kind="location">
+ <value>StockDistributor_svnt</value>
+ </attribute>
+ <attribute kind="operatingSystem" status="meta">
+ <value></value>
+ </attribute>
+ </atom>
+ <atom id="id-0066-00000013" kind="ImplementationArtifact" role="ImplementationArtifact" guid="{EA826EEA-5B5C-4fb0-B4D0-6679CD4FD22B}" relid="0x5">
+ <name>StockDistributor_exec</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>883,548</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="UUID">
+ <value>078C56CA-1D5C-4EDD-9638-49A7BCB19BC4</value>
+ </attribute>
+ <attribute kind="architecture" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="artifactVersion" status="meta">
+ <value>0.0.0.0</value>
+ </attribute>
+ <attribute kind="configuration" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="label">
+ <value></value>
+ </attribute>
+ <attribute kind="location">
+ <value>StockDistributor_exec</value>
+ </attribute>
+ <attribute kind="operatingSystem" status="meta">
+ <value></value>
+ </attribute>
+ </atom>
+ <connection id="id-0068-00000013" kind="ArtifactDependency" role="ArtifactDependency" guid="{93B114F0-7ACB-4d9d-876C-8F09F2D9950A}" relid="0x8">
+ <name>ArtifactDependency</name>
+ <connpoint role="dst" target="id-0066-00000011"/>
+ <connpoint role="src" target="id-0066-00000012"/>
+ </connection>
+ <connection id="id-0068-00000015" kind="ArtifactDependency" role="ArtifactDependency" guid="{BCD89A0C-4C85-4ff5-8BF6-969E61039B10}" relid="0x9">
+ <name>ArtifactDependency</name>
+ <connpoint role="dst" target="id-0066-00000012"/>
+ <connpoint role="src" target="id-0066-00000013"/>
+ </connection>
+ <connection id="id-0068-00000016" kind="ArtifactDependency" role="ArtifactDependency" guid="{AB7F8CF6-1DB6-4f01-BB64-B24A8112E249}" relid="0xa">
+ <name>ArtifactDependency</name>
+ <connpoint role="dst" target="id-0066-00000011"/>
+ <connpoint role="src" target="id-0066-00000013"/>
+ </connection>
+ </model>
+ </folder>
+ <folder id="id-006a-00000006" relid="0x5" childrelidcntr="0x0" kind="ComponentTypes" guid="{B04658FD-5CEB-4a93-A846-E6121F559B64}">
+ <name>ComponentTypes</name>
+ <model id="id-0065-00000021" kind="ComponentContainer" guid="{49BEF516-2A84-4ec4-8848-320742276DC1}" relid="0x1" childrelidcntr="0x1">
+ <name>StockBrokerContainer</name>
+ <reference id="id-0067-0000000d" kind="ComponentRef" role="ComponentRef" guid="{F9EFCD7E-F191-4af9-BA66-8BE354E3BC4F}" relid="0x1" referred="id-0065-00000006">
+ <name>StockBrokerRef</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>518,318</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ </model>
+ <model id="id-0065-00000022" kind="ComponentContainer" guid="{B5F88689-61C7-4b97-96C1-E12AF234E2E9}" relid="0x2" childrelidcntr="0x1">
+ <name>StockDistributorContainer</name>
+ <reference id="id-0067-0000000e" kind="ComponentRef" role="ComponentRef" guid="{1B0E6F22-F407-40e1-9DFB-55DD56EC5B84}" relid="0x1" referred="id-0065-0000000d">
+ <name>StockDistributorRef</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>518,318</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ </model>
+ </folder>
+ <folder id="id-006a-00000007" relid="0x6" childrelidcntr="0x1" kind="PackageConfigurations" guid="{CC714326-456A-4027-8A1A-9170E31799DB}">
+ <name>PackageConfigurations</name>
+ <model id="id-0065-0000002d" kind="PackageConfigurationContainer" guid="{DE3F0704-D986-4769-B5BF-79C66B2F7AB6}" relid="0x1" childrelidcntr="0x3">
+ <name>Default</name>
+ <atom id="id-0066-00000019" kind="PackageConfiguration" role="PackageConfiguration" guid="{F2D4E9FA-0B9B-466e-8156-BDA1CBE46EFD}" relid="0x1">
+ <name>Default</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>90,62</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="UUID">
+ <value>EC3C35BF-5F73-4D1B-BB46-E3D548D19A86</value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ </atom>
+ <reference id="id-0067-00000036" kind="ComponentPackageReference" role="ComponentPackageReference" guid="{195BA79D-256C-4fe6-AB40-D0C92CA1390E}" relid="0x2" referred="id-0066-00000018">
+ <name>StockQuoter</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>237,62</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="requiredName" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="requiredType" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="requiredUUID" status="meta">
+ <value></value>
+ </attribute>
+ </reference>
+ <connection id="id-0068-00000020" kind="PackageConfReference" role="PackageConfReference" guid="{58416BC0-B6FC-4463-AE93-519FC081C744}" relid="0x3">
+ <name>PackageConfReference</name>
+ <regnode name="autorouterPref" isopaque="yes">
+ <value>E</value>
+ </regnode>
+ <connpoint role="src" target="id-0066-00000019"/>
+ <connpoint role="dst" target="id-0067-00000036"/>
+ </connection>
+ </model>
+ </folder>
+ <folder id="id-006a-00000008" relid="0x7" childrelidcntr="0x5" kind="ComponentPackages" guid="{C6162A4F-E255-4ea3-81C5-F83F3BDF8735}">
+ <name>ComponentPackages</name>
+ <model id="id-0065-00000028" kind="PackageContainer" guid="{75A50238-B0CC-4191-B68E-03D55CFDC141}" relid="0x1" childrelidcntr="0x7">
+ <name>Broker</name>
+ <atom id="id-0066-00000015" kind="ComponentPackage" role="ComponentPackage" guid="{A047A9A8-38E7-49bb-B394-5DA922AD4045}" relid="0x1">
+ <name>Broker</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>328,90</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="UUID">
+ <value>E80D987B-C868-4200-A025-D6BDE84CB394</value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ </atom>
+ <reference id="id-0067-0000002e" kind="ComponentImplementationReference" role="ComponentImplementationReference" guid="{DF877580-792A-4942-9E28-8AE7BCC60B68}" relid="0x2" referred="id-0066-0000000c">
+ <name>ComponentImplBrokerRef</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>72,72</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-0000002f" kind="ComponentRef" role="ComponentRef" guid="{CDD9D3B4-64AA-4cf5-B768-5C38FE7035D2}" relid="0x3" referred="id-0065-00000006">
+ <name>ComponentBrokerRef</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>483,70</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <regnode name="porticon" isopaque="yes">
+ <value></value>
+ </regnode>
+ </reference>
+ <connection id="id-0068-0000001a" kind="Implementation" role="Implementation" guid="{89225695-7F8A-42d5-9512-D47C8E18BF44}" relid="0x4">
+ <name>Implementation</name>
+ <connpoint role="src" target="id-0066-00000015"/>
+ <connpoint role="dst" target="id-0067-0000002e"/>
+ </connection>
+ <connection id="id-0068-0000001c" kind="PackageInterface" role="PackageInterface" guid="{794A7078-6966-44c1-BD6C-507F0E4DE27C}" relid="0x6">
+ <name>PackageInterface</name>
+ <regnode name="autorouterPref" isopaque="yes">
+ <value>Ew</value>
+ </regnode>
+ <connpoint role="src" target="id-0066-00000015"/>
+ <connpoint role="dst" target="id-0067-0000002f"/>
+ </connection>
+ </model>
+ <model id="id-0065-0000002a" kind="PackageContainer" guid="{FEFF6BA5-81B6-4d23-B541-4E9E9EC28A5C}" relid="0x3" childrelidcntr="0x5">
+ <name>Distributor</name>
+ <atom id="id-0066-00000016" kind="ComponentPackage" role="ComponentPackage" guid="{E39F7259-29EB-4075-BFB8-4F1EF88F1297}" relid="0x2">
+ <name>Distributor</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>363,69</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="UUID">
+ <value>7BA5A01F-734A-4D7F-BBD1-12E334E22B6E</value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ </atom>
+ <reference id="id-0067-00000031" kind="ComponentImplementationReference" role="ComponentImplementationReference" guid="{47D10719-E72A-4335-9297-62D56EDB6BA2}" relid="0x1" referred="id-0066-0000000d">
+ <name>ComponentImplDistributorRef</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>47,47</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-00000032" kind="ComponentRef" role="ComponentRef" guid="{9933BD13-5927-4f89-A3EC-4D4605E9BDE4}" relid="0x3" referred="id-0065-0000000d">
+ <name>ComponentDistributorRef</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>499,51</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <connection id="id-0068-0000001d" kind="Implementation" role="Implementation" guid="{C7E5B6D7-6521-4664-A1EA-DDBC57AC7742}" relid="0x4">
+ <name>Implementation</name>
+ <regnode name="autorouterPref" isopaque="yes">
+ <value>We</value>
+ </regnode>
+ <connpoint role="src" target="id-0066-00000016"/>
+ <connpoint role="dst" target="id-0067-00000031"/>
+ </connection>
+ <connection id="id-0068-0000001e" kind="PackageInterface" role="PackageInterface" guid="{89D42DE4-F90C-4902-9828-EE869177B79A}" relid="0x5">
+ <name>PackageInterface</name>
+ <regnode name="autorouterPref" isopaque="yes">
+ <value>Ew</value>
+ </regnode>
+ <connpoint role="src" target="id-0066-00000016"/>
+ <connpoint role="dst" target="id-0067-00000032"/>
+ </connection>
+ </model>
+ <model id="id-0065-0000002c" kind="PackageContainer" guid="{38CB4E2F-519D-44f7-947E-CFF1B922C1C4}" relid="0x5" childrelidcntr="0x3">
+ <name>StockQuoter</name>
+ <atom id="id-0066-00000018" kind="ComponentPackage" role="ComponentPackage" guid="{9E5E4F69-E5C6-400d-A4BC-A8418C6626CC}" relid="0x2">
+ <name>StockQuoter</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>447,97</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="UUID">
+ <value>940CEDE9-E370-48ED-BD5B-1DAC37C4A42F</value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ </atom>
+ <reference id="id-0067-00000035" kind="ComponentImplementationReference" role="ComponentImplementationReference" guid="{4BE862FA-A4EB-495e-8BDE-93E850480F66}" relid="0x1" referred="id-0065-00000024">
+ <name>ComponentImplStockQuoterRef</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>138,75</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <connection id="id-0068-0000001f" kind="Implementation" role="Implementation" guid="{635D33F7-8331-49ba-AEB8-696272612DE8}" relid="0x3">
+ <name>Implementation</name>
+ <regnode name="autorouterPref" isopaque="yes">
+ <value>We</value>
+ </regnode>
+ <connpoint role="src" target="id-0066-00000018"/>
+ <connpoint role="dst" target="id-0067-00000035"/>
+ </connection>
+ </model>
+ </folder>
+ <folder id="id-006a-00000009" relid="0x8" childrelidcntr="0x1" kind="DeploymentPlans" guid="{C42888D7-DFAA-4db6-8268-28FDB02CFB02}">
+ <name>DeploymentPlans</name>
+ <model id="id-0065-00000032" kind="DeploymentPlan" guid="{045C633B-BC8C-44a5-8718-D2300F8D5F10}" relid="0x1" childrelidcntr="0xa">
+ <name>Plan</name>
+ <attribute kind="UUID">
+ <value>2F84C225-11DA-4863-B9C1-5FBAEEADFDA6</value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ <reference id="id-0067-00000038" kind="NodeReference" role="NodeReference" guid="{40E103B1-38C5-43b1-BC44-BBBA02D42DDF}" relid="0x3" referred="id-0065-00000030">
+ <name>Node_Broker</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="NodeMapping" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>74,60</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-00000039" kind="NodeReference" role="NodeReference" guid="{E37E5745-2D18-4ed6-81CD-728A63C4B30D}" relid="0x6" referred="id-0065-00000031">
+ <name>Node_Distributor</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="NodeMapping" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>207,60</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-0000003a" kind="ComponentRef" role="ComponentRef" guid="{5D7F93E8-D4AD-4e50-87B4-082BB4260A7C}" relid="0x9" referred="id-0065-00000027">
+ <name>StockBroker</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="NodeMapping" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>408,51</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-0000003b" kind="ComponentRef" role="ComponentRef" guid="{A701D8BC-FE21-4d6e-9F20-81C51AE8236F}" relid="0xa" referred="id-0065-00000025">
+ <name>StockDistributor</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="NodeMapping" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>406,168</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <connection id="id-0068-00000022" kind="InstanceMapping" role="InstanceMapping" guid="{20E44A1F-D0EF-4c4e-877C-93E03D9CD3E3}" relid="0x5">
+ <name></name>
+ <connpoint role="dst" target="id-0067-00000038"/>
+ <connpoint role="src" target="id-0069-00000003"/>
+ </connection>
+ <connection id="id-0068-00000023" kind="InstanceMapping" role="InstanceMapping" guid="{AADF2272-F485-432c-8AA4-D5C4C20CD3E3}" relid="0x8">
+ <name></name>
+ <connpoint role="dst" target="id-0067-00000039"/>
+ <connpoint role="src" target="id-0069-00000004"/>
+ </connection>
+ <set id="id-0069-00000003" kind="CollocationGroup" role="CollocationGroup" guid="{51653652-5DED-40b1-9FCB-E87CD2E6F650}" relid="0x4" members="id-0067-0000003a">
+ <name>DefaultGroup</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="NodeMapping" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>76,195</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </set>
+ <set id="id-0069-00000004" kind="CollocationGroup" role="CollocationGroup" guid="{24473364-3F59-4261-B92C-4BA7CFD808A1}" relid="0x7" members="id-0067-0000003b">
+ <name>DefaultGroup</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="NodeMapping" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>209,195</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </set>
+ </model>
+ </folder>
+ <folder id="id-006a-0000000a" relid="0x9" childrelidcntr="0x1" kind="Targets" guid="{A912DB14-7140-44dc-8EE2-830566156765}">
+ <name>Targets</name>
+ <model id="id-0065-0000002f" kind="Domain" guid="{55A73B03-6D86-4bfa-A2DC-36C79825D35E}" relid="0x1" childrelidcntr="0x2">
+ <name>Domain</name>
+ <attribute kind="UUID">
+ <value>62AD326C-7A22-44CD-95B9-31496DCFD9AE</value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ <model id="id-0065-00000030" kind="Node" role="Node" guid="{1CA29708-59C3-461d-BF52-196DEEBF8426}" relid="0x1" childrelidcntr="0x0">
+ <name>Broker</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Target" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>125,69</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="architecture" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="operatingSystem" status="meta">
+ <value></value>
+ </attribute>
+ </model>
+ <model id="id-0065-00000031" kind="Node" role="Node" guid="{E1EE7A13-20D6-4f1d-8EDA-8DB2C9F19945}" relid="0x2" childrelidcntr="0x0">
+ <name>Distributor</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Target" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>128,149</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="architecture" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="operatingSystem" status="meta">
+ <value></value>
+ </attribute>
+ </model>
+ </model>
+ </folder>
+ <folder id="id-006a-0000000b" relid="0xa" childrelidcntr="0x1" kind="TopLevelPackages" guid="{DF23DC42-FE08-4b1a-8C5E-B7A5F51F88BD}">
+ <name>TopLevelPackages</name>
+ <model id="id-0065-0000002e" kind="TopLevelPackageContainer" guid="{3B3E38EC-E3F0-486b-AF82-6D09356CB9C7}" relid="0x1" childrelidcntr="0x3">
+ <name>Default</name>
+ <atom id="id-0066-0000001a" kind="TopLevelPackage" role="TopLevelPackage" guid="{C39161DA-F093-41ca-808C-A2CCDF298DB0}" relid="0x1">
+ <name>TopLevelPackage</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>100,114</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </atom>
+ <reference id="id-0067-00000037" kind="PackageConfigurationReference" role="PackageConfigurationReference" guid="{936DDDE7-BBDC-4451-BF2C-C72412E1A4ED}" relid="0x2" referred="id-0066-00000019">
+ <name>Default</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>254,114</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <connection id="id-0068-00000021" kind="package" role="package" guid="{D1573F3C-D8DF-424c-858C-7D0B1B6D2BA1}" relid="0x3">
+ <name>package</name>
+ <connpoint role="src" target="id-0066-0000001a"/>
+ <connpoint role="dst" target="id-0067-00000037"/>
+ </connection>
+ </model>
+ </folder>
+ <folder id="id-006a-0000000c" relid="0xb" childrelidcntr="0x0" kind="ComponentBuild" guid="{BE775384-F24C-4599-A7AF-533D94EE78F2}">
+ <name>ComponentBuild</name>
+ </folder>
+ <regnode name="ConstraintManagerSettings" status="undefined">
+ <value></value>
+ <regnode name="ModelDepth" isopaque="yes">
+ <value>0</value>
+ </regnode>
+ <regnode name="ShortCircuitIterators" isopaque="yes">
+ <value>yes</value>
+ </regnode>
+ <regnode name="ShortCircuitLogicalOperators" isopaque="yes">
+ <value>yes</value>
+ </regnode>
+ <regnode name="Tracking" isopaque="yes">
+ <value>yes</value>
+ </regnode>
+ <regnode name="ViolationCount" isopaque="yes">
+ <value>-2</value>
+ </regnode>
+ </regnode>
+ </folder>
+</project>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/README.html b/modules/CIAO/docs/tutorials/Quoter/Simple/README.html
new file mode 100644
index 00000000000..85e38e81150
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/README.html
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<!--//$Id$ -->
+</head>
+<body>
+<b><font size="5">Quoter example README</font></b>
+<p>To download the source codes of this example please refer to the SVN
+repository at <code>$CIAO_ROOT\docs\tutorials\Quoter\Simple</code>
+</p>
+<hr>
+<h2>Example Description</h2>
+<div align="left">
+<font face="Times New Roman" size="3">The <b>StockDistributor</b>
+component would be monitoring a real-time stock database. When the
+values of particular stocks change, it pushes a CCM <b>eventtype</b>
+that contains the stock's name via a CCM event source to the
+corresponding CCM </font>
+</div>
+<div align="left">
+<font face="Times New Roman" size="3">event sink implemented by one or
+more <b>StockBroker</b> components. If these components are interested
+in the stock they can obtain more information about it by invoking a
+request/response operation via their CCM receptacle on a CCM facet
+exported by the <b>StockDistributor</b> component. The diagram of this
+example is shown in fig 1.</font>
+</div>
+<p align="center"><img alt="" src="images/quoter.jpg"
+ style="width: 362px; height: 212px;"><br>
+figure 1<br>
+</p>
+<h2 align="justify"><span style="font-weight: 400;"><font size="3"></font></span><span
+ style="font-weight: 400;"><font size="3">This example
+is based on a series of&nbsp;</font> <a
+ href="http://www.cs.wustl.edu/%7Eschmidt/report-doc.html"><font
+ size="3">CORBA Component Model</font></a><font size="3"> columns
+written by <a href="http://www.cs.wustl.edu/%7Eschmidt/">Douglas
+Schmidt</a> and <a href="http://www.iona.com/hyplan/vinoski/">Steve
+Vinoski</a>, and has been consistently used as a example for <a
+ href="http://www.cs.wustl.edu/%7Eschmidt/TAO.html">TAO</a>. Please
+refer to <a
+ href="../../../../../docs/tutorials/Quoter/index.html">TAO
+online tutorial</a> for details. <br>
+</font></span></h2>
+<h2>The files you will find</h2>
+<li>The interfaces, data types and exceptions shared by the components
+of
+this
+application are specified in the <a href="Stock_Base/Stock_Base.idl"><code>Stock_Base.idl</code></a>.<code></code>The
+lib
+generated
+from Stock_Base.idl is linked to all the components of this example.</li>
+<li>&nbsp;mpc files for each of the components are available in the
+components
+directories. We use the&nbsp; <a
+ href="http://downloads.ociweb.com/MPC/MakeProjectCreator.pdf">MPC</a>
+to
+generate makefiles and Visual C++ project/solutions files for all <a
+ href="http://www.cs.wustl.edu/%7Eschmidt/ACE.html">ACE</a>, <a
+ href="http://www.cs.wustl.edu/%7Eschmidt/TAO.html">TAO</a> and <a
+ href="http://www.cs.wustl.edu/%7Eschmidt/CIAO.html">CIAO</a>
+libraries. </li>
+<li>&nbsp;idl and cidl files for each component are placed in
+components directory.
+</li>
+<li>&nbsp;The <code>_exec.h</code> and <code>_exec.cpp</code> files
+are the actual
+implementation of the components.</li>
+<hr>
+<h3><font size="5">Make</font></h3>
+Navigate to&nbsp; the directory <code>$CIAO_ROOT/docs/tutorials/Quoter/Simple</code>
+and do:<br>
+<code>$ACE_ROOT/bin/mwc.pl -type gnuace</code> (use different -type option
+if you are using a
+compiler/IDE other than GNU make) <br>
+For example, use <code>%ACE_ROOT%/bin/mwc.pl -type vc71</code> if you
+are using
+Visual C++ 7.1 IDE.<br>
+<br>
+Then build/make the generated project/make files. Correct errors in the
+source codes if necessary.<br>
+<hr>
+<h3><font size="5">Assemble</font></h3>
+<p>Now we can step forward to build the assembly. </p>
+<li>In the descriptor subdirectory, you'll find a XML descriptor file
+that
+describes your <em>deployment plan</em>, the
+flattened_deploymentplan.cdp. This file declaratively specifies how the
+component assembly is
+constructed.
+Specifically, it defines the component types, component instances,
+component
+connections and implementation artifact descriptions. <br>
+</li>
+<dd>
+&nbsp;<li>Please make sure that the Modified_Deployment.xsd and XMI.xsd
+files
+are in the Display/descriptors directory. The former file could be
+found in $CIAO_ROOT/docs/schema
+directory. <br>
+ <br>
+Note: Creating the deployment plan descriptor is a tedious and
+error-prone job,
+you can download <a href="http://www.dre.vanderbilt.edu/cosmic">CoSMIC</a>
+to
+assist you in this step. Please refer to <a
+ href="http://www.dre.vanderbilt.edu/%7Emxiong/tutorial">this tutorial</a>
+to see how you can use CoSMIC to automatically generate the descriptor
+file.
+ <p></p>
+ <hr></li>
+</dd>
+<h2>Running the program </h2>
+&gt;From different shells in&nbsp;<code>$CIAO_ROOT/docs/tutorials/Quoter/Simple/</code><code>descriptors/</code>
+directory:
+<ul>
+ <li>Start NodeManagers (NodeDameon) by running runNodeDaemon.pl </li>
+ <li>Start the execution manager
+$CIAO_ROOT/DAnCE/ExecutionManager/Execution_Manager -o ior -i
+Stock.dat&nbsp; </li>
+</ul>
+<p>The Stock.dat file describes the deployment daemons CIAO's
+Execution_Manager
+will contact to instantiate ComponentServer's, home's, and component
+instances.
+Each line specify the name of a installation "destination" and the
+corresponding corbaloc IOR for the CIAO_Daemon.</p>
+<ul type="square">
+ <li><em>NOTE</em>: As one can see, we use the "Stock.dat" file to
+instruct the Execution_Manager how to find the endpoint of each
+individual NodeManager (i.e., Node Daemon) where component(s) will be
+deployed, so this is non-standard. We plan to use Naming Service to do
+this in the future. </li>
+</ul>
+<ul>
+ <li> Start the plan_launcher by running
+$CIAO_ROOT/DAnCE/Plan_Launcher/plan_launcher -p
+flattened_deploymentplan.cdp -k file://ior</li>
+ <li>By now the components should be successfully deployed. You may
+run the driver program to start the application. Open a new shell, keep
+in the /Quoter/descriptors directory,&nbsp; and try the following
+commands, see what happens in the component server<br>
+ </li>
+</ul>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Start the distributor
+service at a frequency of&nbsp; 3 hertz:<br>
+&nbsp; &nbsp; &nbsp;&nbsp; <span style="color: rgb(51, 102, 255);">../Distributor/Distributor.exe
+-o&nbsp;&nbsp; -r3</span><br>
+<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Use the broker program to
+subscribe to MSFT stock<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span
+ style="color: rgb(51, 102, 255);">../Broker/Broker.exe -s MSFT</span><br>
+<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Subscribe to IBM stock<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; <span
+ style="color: rgb(51, 102, 255);">../Broker/Broker.exe -s IBM</span><br>
+<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Unsubscribe to MSFT stock<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span
+ style="color: rgb(51, 102, 255);">../Broker/Broker -u MSFT</span><br>
+<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Turn off the distribution
+service:<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span
+ style="color: rgb(51, 102, 255);">../Distributor/Distributor -f </span><br>
+<br>
+Please contact mxiong@dre.vanderbilt.edu if you have any questions.
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
+</body>
+</html>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.idl b/modules/CIAO/docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.idl
new file mode 100644
index 00000000000..41277386efa
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.idl
@@ -0,0 +1,46 @@
+//$Id$
+
+#ifndef STOCK_BASE_IDL
+#define STOCK_BASE_IDL
+
+#include <Components.idl>
+
+module Stock
+{
+ exception Invalid_Stock {};
+ typedef sequence<octet> ImageBlob;
+
+ /**
+ * @struct StockInfo
+ */
+ struct StockInfo {
+ string name;
+ long high;
+ long low;
+ long last;
+ };
+
+ /**
+ * @interface: StockQuoter
+ *
+ * @brief: component facet
+ */
+ interface StockQuoter {
+ /// Returns the current stock info
+ StockInfo get_stock_info (in string stock_name)
+ raises (Invalid_Stock);
+ };
+
+
+ /**
+ * @event StockName
+ *
+ * @brief component event
+ */
+ eventtype StockName {
+ // Name of the stock.
+ public string name;
+ };
+};
+
+#endif /* STOCK_BASE_IDL */
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.mpc b/modules/CIAO/docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.mpc
new file mode 100644
index 00000000000..f364aca58ba
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/Stock_Base/Stock_Base.mpc
@@ -0,0 +1,83 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Stock_Base -l ../lib -o ../lib"
+
+project(Stock_Base_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=STOCK_BASE_STUB_Export \
+ -Wb,stub_export_include=Stock_Base_stub_export.h \
+ -Wb,skel_export_macro=STOCK_BASE_SKEL_Export \
+ -Wb,skel_export_include=Stock_Base_skel_export.h \
+ -Wb,exec_export_macro=STOCK_BASE_EXEC_Export \
+ -Wb,exec_export_include=Stock_Base_exec_export.h
+
+ IDL_Files {
+ Stock_Base.idl
+ }
+}
+
+project(Stock_Base_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ after += Stock_Base_idl_gen
+ idlflags += \
+ -Wb,export_macro=STOCK_BASE_EXEC_Export \
+ -Wb,export_include=Stock_Base_exec_export.h
+
+ IDL_Files {
+ Stock_BaseE.idl
+ }
+}
+
+project(Stock_Base_stub) : ccm_stub {
+ after += Stock_Base_lem_gen
+ libs +=
+ libpaths += ../lib
+ libout = ../lib
+ sharedname = Stock_Base_stub
+ dynamicflags = STOCK_BASE_STUB_BUILD_DLL STOCK_BASE_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Stock_BaseC.cpp
+ Stock_BaseEC.cpp
+ }
+
+ Header_Files {
+ Stock_BaseC.h
+ Stock_Base_stub_export.h
+ }
+
+ Inline_Files {
+ Stock_BaseC.inl
+ }
+}
+
+
+project(Stock_Base_skel) : ciao_executor {
+ after += Stock_Base_stub Stock_Base_lem_stub
+ sharedname = Stock_Base_skel
+ libs += Stock_Base_stub
+
+ libpaths += ../lib
+ libout = ../lib
+ dynamicflags = STOCK_BASE_SKEL_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Stock_BaseS.cpp
+ }
+
+ Header_Files {
+ Stock_BaseS.h
+ Stock_Base_skel_export.h
+ }
+
+ Inline_Files {
+ Stock_BaseS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Broker.cpd b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Broker.cpd
new file mode 100644
index 00000000000..e4ca7227682
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Broker.cpd
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:componentPackageDescription 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>656C40ED-88A4-4F00-BBFA-FC7738658B16</UUID>
+
+ <realizes href="StockBroker.ccd"/>
+
+ <implementation>
+ <name>MyQuoter.ComponentImplementations.StockBrokerImplementation.StockBrokerMonolithicImpl</name>
+ <referencedImplementation href="StockBrokerMonolithicImpl.cid"/>
+ </implementation>
+
+</Deployment:componentPackageDescription>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Default.pcd b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Default.pcd
new file mode 100644
index 00000000000..9145f77bd4a
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Default.pcd
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:packageConfiguration 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>54077757-B4AF-443C-BA8D-9B5B68E1D1E0</UUID>
+
+</Deployment:packageConfiguration>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Distributor.cpd b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Distributor.cpd
new file mode 100644
index 00000000000..addceeb3627
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Distributor.cpd
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:componentPackageDescription 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>4C5B7889-7AD7-425E-B565-D885746ECF0A</UUID>
+
+ <realizes href="StockDistributor.ccd"/>
+
+ <implementation>
+ <name>MyQuoter.ComponentImplementations.StockDistributorImplementation.StockDistributorMonolithicImpl</name>
+ <referencedImplementation href="StockDistributorMonolithicImpl.cid"/>
+ </implementation>
+
+</Deployment:componentPackageDescription>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Domain.cdd b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Domain.cdd
new file mode 100644
index 00000000000..a1942b2ebf2
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Domain.cdd
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:domain 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>AD80D377-9AD2-488F-87CD-C490858EA393</UUID>
+
+ <node>
+ <name>Broker</name>
+ </node>
+
+ <node>
+ <name>Distributor</name>
+ </node>
+
+</Deployment:domain>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/NodeMap.dat b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/NodeMap.dat
new file mode 100644
index 00000000000..3cb183c790c
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/NodeMap.dat
@@ -0,0 +1,3 @@
+Distributor corbaloc:iiop:localhost:30000/Distributor.NodeManager
+
+Broker corbaloc:iiop:localhost:40000/Broker.NodeManager \ No newline at end of file
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Plan.cdp b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Plan.cdp
new file mode 100644
index 00000000000..4a633c49601
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/Plan.cdp
@@ -0,0 +1,248 @@
+<?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>6D382DAE-9024-4C4D-B91B-A0F9176AFACF</UUID>
+
+ <implementation xmi:id="_9A1A0A25-6C91-4BD3-971B-257A2614531C">
+ <name>Quoter.ComponentImplementations.StockBrokerImplementation.StockBrokerMonolithicImpl</name>
+ <source/>
+ <artifact xmi:idref="_8314E4CE-EE5F-4EF1-8D7A-EDAA4C18E70C"/>
+ <artifact xmi:idref="_6C99E1A6-14DA-43DF-A0AD-7AC397F90899"/>
+ <execParameter>
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Stock_StockBrokerComp_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Quoter.ImplementationArtifacts.StockBrokerArtifacts.StockBroker_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Stock_StockBroker_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Quoter.ImplementationArtifacts.StockBrokerArtifacts.StockBroker_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="_F436EF3D-3D93-4D47-9742-EAB68547A060">
+ <name>Quoter.ComponentImplementations.StockDistributorImplementation.StockDistributorMonolithicImpl</name>
+ <source/>
+ <artifact xmi:idref="_F8E73326-0724-48CF-AD27-2271E9C57D09"/>
+ <artifact xmi:idref="_4583C8AD-7711-4C96-8FD5-CE2FAE6F89ED"/>
+ <execParameter>
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Stock_StockDistributorComp_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Quoter.ImplementationArtifacts.StockDistributorArtifacts.StockDistributor_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Stock_StockDistributor_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Quoter.ImplementationArtifacts.StockDistributorArtifacts.StockDistributor_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <instance xmi:id="Quoter.ComponentImplementations.StockQuoterImplementation.StockQuoter.StockBroker">
+ <name>Quoter.ComponentImplementations.StockQuoterImplementation.StockQuoter.StockBroker</name>
+ <node>Broker</node>
+ <source/>
+ <implementation xmi:idref="_9A1A0A25-6C91-4BD3-971B-257A2614531C"/>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>StockBroker.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="Quoter.ComponentImplementations.StockQuoterImplementation.StockQuoter.StockDistributor">
+ <name>Quoter.ComponentImplementations.StockQuoterImplementation.StockQuoter.StockDistributor</name>
+ <node>Distributor</node>
+ <source/>
+ <implementation xmi:idref="_F436EF3D-3D93-4D47-9742-EAB68547A060"/>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>StockDistributor.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>Quoter.ComponentImplementations.StockQuoterImplementation.StockQuoter.StockBroker:read_quoter-Quoter.ComponentImplementations.StockQuoterImplementation.StockQuoter.StockDistributor:push_quoter</name>
+ <internalEndpoint>
+ <portName>read_quoter</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Quoter.ComponentImplementations.StockQuoterImplementation.StockQuoter.StockBroker"/>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>push_quoter</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Quoter.ComponentImplementations.StockQuoterImplementation.StockQuoter.StockDistributor"/>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>Quoter.ComponentImplementations.StockQuoterImplementation.StockQuoter.StockDistributor:notify_out-Quoter.ComponentImplementations.StockQuoterImplementation.StockQuoter.StockBroker:notify_in</name>
+ <internalEndpoint>
+ <portName>notify_out</portName>
+ <provider>false</provider>
+ <kind>EventPublisher</kind>
+ <instance xmi:idref="Quoter.ComponentImplementations.StockQuoterImplementation.StockQuoter.StockDistributor"/>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>notify_in</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance xmi:idref="Quoter.ComponentImplementations.StockQuoterImplementation.StockQuoter.StockBroker"/>
+ </internalEndpoint>
+ </connection>
+
+ <artifact xmi:id="_6C99E1A6-14DA-43DF-A0AD-7AC397F90899">
+ <name>Quoter.ImplementationArtifacts.StockBrokerArtifacts.StockBroker_svnt</name>
+ <source/>
+ <node/>
+ <location>StockBroker_svnt</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Stock_StockBrokerHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact xmi:id="_8314E4CE-EE5F-4EF1-8D7A-EDAA4C18E70C">
+ <name>Quoter.ImplementationArtifacts.StockBrokerArtifacts.StockBroker_exec</name>
+ <source/>
+ <node/>
+ <location>StockBroker_exec</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Stock_StockBrokerHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact xmi:id="_4583C8AD-7711-4C96-8FD5-CE2FAE6F89ED">
+ <name>Quoter.ImplementationArtifacts.StockDistributorArtifacts.StockDistributor_svnt</name>
+ <source/>
+ <node/>
+ <location>StockDistributor_svnt</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Stock_StockDistributorHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact xmi:id="_F8E73326-0724-48CF-AD27-2271E9C57D09">
+ <name>Quoter.ImplementationArtifacts.StockDistributorArtifacts.StockDistributor_exec</name>
+ <source/>
+ <node/>
+ <location>StockDistributor_exec</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Stock_StockDistributorHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+</Deployment:DeploymentPlan>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockBroker.ccd b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockBroker.ccd
new file mode 100644
index 00000000000..f4d1f099069
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockBroker.ccd
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:componentInterfaceDescription 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>58E736A4-F9F5-44CF-AA0F-83A280F907A6</UUID>
+
+ <specificType>IDL:Stock/StockBroker:1.0</specificType>
+
+ <supportedType>IDL:Stock/StockBroker:1.0</supportedType>
+
+ <supportedType>IDL:Stock/StockSubscriber:1.0</supportedType>
+
+ <supportedType>IDL:omg.org/Components/Navigation:1.0</supportedType>
+
+ <supportedType>IDL:omg.org/Components/Receptacles:1.0</supportedType>
+
+ <supportedType>IDL:omg.org/Components/Events:1.0</supportedType>
+
+ <supportedType>IDL:omg.org/Components/CCMObject:1.0</supportedType>
+
+ <supportedType>IDL:omg.org/CORBA/Object:1.0</supportedType>
+
+ <idlFile>Broker.idl</idlFile>
+
+ <port>
+ <name>notify_in</name>
+ <specificType>IDL:Stock/StockNameConsumer:1.0</specificType>
+ <supportedType>IDL:Stock/StockNameConsumer:1.0</supportedType>
+ <supportedType>IDL:omg.org/Components/EventConsumerBase:1.0</supportedType>
+ <supportedType>IDL:omg.org/CORBA/Object:1.0</supportedType>
+ <provider>false</provider>
+ <exclusiveProvider>false</exclusiveProvider>
+ <exclusiveUser>false</exclusiveUser>
+ <optional>false</optional>
+ <kind>EventConsumer</kind>
+ </port>
+
+ <port>
+ <name>read_quoter</name>
+ <specificType>IDL:Stock/StockQuoter:1.0</specificType>
+ <supportedType>IDL:Stock/StockQuoter:1.0</supportedType>
+ <supportedType>IDL:omg.org/CORBA/Object:1.0</supportedType>
+ <provider>false</provider>
+ <exclusiveProvider>false</exclusiveProvider>
+ <exclusiveUser>false</exclusiveUser>
+ <optional>false</optional>
+ <kind>SimplexReceptacle</kind>
+ </port>
+
+</Deployment:componentInterfaceDescription>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockBrokerMonolithicImpl.cid b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockBrokerMonolithicImpl.cid
new file mode 100644
index 00000000000..08ca7d0f453
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockBrokerMonolithicImpl.cid
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:componentImplementationDescription 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>7205655C-4CBD-42BE-A0F1-870705A77D77</UUID>
+
+ <implements href="StockBroker.ccd"/>
+
+ <monolithicImpl>
+ <primaryArtifact>
+ <name>MyQuoter.ImplementationArtifacts.StockBrokerArtifacts.StockBroker_stub</name>
+ <referencedArtifact href="StockBroker_stub.iad"/>
+ </primaryArtifact>
+ <primaryArtifact>
+ <name>MyQuoter.ImplementationArtifacts.StockBrokerArtifacts.StockBroker_svnt</name>
+ <referencedArtifact href="StockBroker_svnt.iad"/>
+ </primaryArtifact>
+ <primaryArtifact>
+ <name>MyQuoter.ImplementationArtifacts.StockBrokerArtifacts.StockBroker_exec</name>
+ <referencedArtifact href="StockBroker_exec.iad"/>
+ </primaryArtifact>
+ </monolithicImpl>
+
+ <configProperty>
+ <name>ComponentIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>StockBroker.ior</string>
+ </value>
+ </value>
+ </configProperty>
+
+</Deployment:componentImplementationDescription>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockBroker_exec.iad b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockBroker_exec.iad
new file mode 100644
index 00000000000..790c9e9263a
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockBroker_exec.iad
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:implementationArtifactDescription 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>32859990-B97C-4195-BA0E-60DA9930C5FB</UUID>
+
+ <location>StockBroker_exec</location>
+
+ <dependsOn>
+ <name>MyQuoter.ImplementationArtifacts.StockBrokerArtifacts.StockBroker_svnt</name>
+ <referencedArtifact href="StockBroker_svnt.iad"/>
+ </dependsOn>
+
+ <dependsOn>
+ <name>MyQuoter.ImplementationArtifacts.StockBrokerArtifacts.StockBroker_stub</name>
+ <referencedArtifact href="StockBroker_stub.iad"/>
+ </dependsOn>
+
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Stock_StockBrokerHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <name>architecture</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>x86</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <name>artifactVersion</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>0.0.0.0</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <name>configuration</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Release</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <name>operatingSystem</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Linux</string>
+ </value>
+ </value>
+ </execParameter>
+
+</Deployment:implementationArtifactDescription>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockBroker_stub.iad b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockBroker_stub.iad
new file mode 100644
index 00000000000..e2eb6f48383
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockBroker_stub.iad
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:implementationArtifactDescription 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>C964CED0-3DFD-4D87-9AB2-0FB76C672D6E</UUID>
+
+ <location>StockBroker_stub</location>
+
+ <execParameter>
+ <name>architecture</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>x86</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <name>artifactVersion</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>0.0.0.0</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <name>configuration</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Release</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <name>operatingSystem</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Linux</string>
+ </value>
+ </value>
+ </execParameter>
+
+</Deployment:implementationArtifactDescription>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockBroker_svnt.iad b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockBroker_svnt.iad
new file mode 100644
index 00000000000..dde70409dc0
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockBroker_svnt.iad
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:implementationArtifactDescription 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>28F23672-EB7E-41DD-8F12-77B9FC9175C2</UUID>
+
+ <location>StockBroker_svnt</location>
+
+ <dependsOn>
+ <name>MyQuoter.ImplementationArtifacts.StockBrokerArtifacts.StockBroker_stub</name>
+ <referencedArtifact href="StockBroker_stub.iad"/>
+ </dependsOn>
+
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Stock_StockBrokerHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <name>architecture</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>x86</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <name>artifactVersion</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>0.0.0.0</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <name>configuration</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Release</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <name>operatingSystem</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Linux</string>
+ </value>
+ </value>
+ </execParameter>
+
+</Deployment:implementationArtifactDescription>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockDistributor.ccd b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockDistributor.ccd
new file mode 100644
index 00000000000..ccb97ed3691
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockDistributor.ccd
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:componentInterfaceDescription 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>B124B4A8-F51C-4F63-9A08-35256C9A9259</UUID>
+
+ <specificType>IDL:Stock/StockDistributor:1.0</specificType>
+
+ <supportedType>IDL:Stock/StockDistributor:1.0</supportedType>
+
+ <supportedType>IDL:Stock/Trigger:1.0</supportedType>
+
+ <supportedType>IDL:omg.org/Components/Navigation:1.0</supportedType>
+
+ <supportedType>IDL:omg.org/Components/Receptacles:1.0</supportedType>
+
+ <supportedType>IDL:omg.org/Components/Events:1.0</supportedType>
+
+ <supportedType>IDL:omg.org/Components/CCMObject:1.0</supportedType>
+
+ <supportedType>IDL:omg.org/CORBA/Object:1.0</supportedType>
+
+ <idlFile>Distributor.idl</idlFile>
+
+ <port>
+ <name>notify_out</name>
+ <specificType>IDL:Stock/StockNameConsumer:1.0</specificType>
+ <supportedType>IDL:Stock/StockNameConsumer:1.0</supportedType>
+ <supportedType>IDL:omg.org/Components/EventConsumerBase:1.0</supportedType>
+ <supportedType>IDL:omg.org/CORBA/Object:1.0</supportedType>
+ <provider>true</provider>
+ <exclusiveProvider>false</exclusiveProvider>
+ <exclusiveUser>false</exclusiveUser>
+ <optional>false</optional>
+ <kind>EventPublisher</kind>
+ </port>
+
+ <port>
+ <name>push_quoter</name>
+ <specificType>IDL:Stock/StockQuoter:1.0</specificType>
+ <supportedType>IDL:Stock/StockQuoter:1.0</supportedType>
+ <supportedType>IDL:omg.org/CORBA/Object:1.0</supportedType>
+ <provider>true</provider>
+ <exclusiveProvider>false</exclusiveProvider>
+ <exclusiveUser>false</exclusiveUser>
+ <optional>false</optional>
+ <kind>Facet</kind>
+ </port>
+
+</Deployment:componentInterfaceDescription>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockDistributorMonolithicImpl.cid b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockDistributorMonolithicImpl.cid
new file mode 100644
index 00000000000..d462449f1fc
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockDistributorMonolithicImpl.cid
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:componentImplementationDescription 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>8F7FE6F8-1AF2-4490-90BE-EC41863033FC</UUID>
+
+ <implements href="StockDistributor.ccd"/>
+
+ <monolithicImpl>
+ <primaryArtifact>
+ <name>MyQuoter.ImplementationArtifacts.StockDistributorArtifacts.StockDistributor_stub</name>
+ <referencedArtifact href="StockDistributor_stub.iad"/>
+ </primaryArtifact>
+ <primaryArtifact>
+ <name>MyQuoter.ImplementationArtifacts.StockDistributorArtifacts.StockDistributor_svnt</name>
+ <referencedArtifact href="StockDistributor_svnt.iad"/>
+ </primaryArtifact>
+ <primaryArtifact>
+ <name>MyQuoter.ImplementationArtifacts.StockDistributorArtifacts.StockDistributor_exec</name>
+ <referencedArtifact href="StockDistributor_exec.iad"/>
+ </primaryArtifact>
+ </monolithicImpl>
+
+ <configProperty>
+ <name>ComponentIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>StockDistributor.ior</string>
+ </value>
+ </value>
+ </configProperty>
+
+</Deployment:componentImplementationDescription>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockDistributor_exec.iad b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockDistributor_exec.iad
new file mode 100644
index 00000000000..1cfcbbe62f7
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockDistributor_exec.iad
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:implementationArtifactDescription 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>00F15FA6-FA09-460E-9670-D878F508BA4D</UUID>
+
+ <location>StockDistributor_exec</location>
+
+ <dependsOn>
+ <name>MyQuoter.ImplementationArtifacts.StockDistributorArtifacts.StockDistributor_svnt</name>
+ <referencedArtifact href="StockDistributor_svnt.iad"/>
+ </dependsOn>
+
+ <dependsOn>
+ <name>MyQuoter.ImplementationArtifacts.StockDistributorArtifacts.StockDistributor_stub</name>
+ <referencedArtifact href="StockDistributor_stub.iad"/>
+ </dependsOn>
+
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Stock_StockDistributorHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <name>architecture</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>x86</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <name>artifactVersion</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>0.0.0.0</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <name>configuration</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Release</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <name>operatingSystem</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Linux</string>
+ </value>
+ </value>
+ </execParameter>
+
+</Deployment:implementationArtifactDescription>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockDistributor_stub.iad b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockDistributor_stub.iad
new file mode 100644
index 00000000000..c359b2ca929
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockDistributor_stub.iad
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:implementationArtifactDescription 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>2DCEC213-F447-421C-A27A-D6222EFB9A38</UUID>
+
+ <location>StockDistributor_stub</location>
+
+ <execParameter>
+ <name>architecture</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>x86</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <name>artifactVersion</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>0.0.0.0</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <name>configuration</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Release</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <name>operatingSystem</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Linux</string>
+ </value>
+ </value>
+ </execParameter>
+
+</Deployment:implementationArtifactDescription>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockDistributor_svnt.iad b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockDistributor_svnt.iad
new file mode 100644
index 00000000000..3952c4eb237
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockDistributor_svnt.iad
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:implementationArtifactDescription 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>5CDF934B-8D0F-4012-89A1-811D2E9C0D63</UUID>
+
+ <location>StockDistributor_svnt</location>
+
+ <dependsOn>
+ <name>MyQuoter.ImplementationArtifacts.StockDistributorArtifacts.StockDistributor_stub</name>
+ <referencedArtifact href="StockDistributor_stub.iad"/>
+ </dependsOn>
+
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Stock_StockDistributorHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <name>architecture</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>x86</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <name>artifactVersion</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>0.0.0.0</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <name>configuration</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Release</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <execParameter>
+ <name>operatingSystem</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Linux</string>
+ </value>
+ </value>
+ </execParameter>
+
+</Deployment:implementationArtifactDescription>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockQuoter.cid b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockQuoter.cid
new file mode 100644
index 00000000000..f5cb6076255
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockQuoter.cid
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:componentImplementationDescription 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>EBE916A6-E4E5-469C-A8EE-EDDFCA4B9CE3</UUID>
+
+ <assemblyImpl>
+ <instance id="_94A1586C-2E9A-4FFD-8D75-7FC5A54F6B71">
+ <name>MyQuoter.ComponentImplementations.StockQuoterImplementation.StockQuoter.StockBroker</name>
+ <basePackage href="Broker.cpd"/>
+ </instance>
+ <instance id="_2DBE2452-FDE3-4399-9210-509CAC49139A">
+ <name>MyQuoter.ComponentImplementations.StockQuoterImplementation.StockQuoter.StockDistributor</name>
+ <basePackage href="Distributor.cpd"/>
+ </instance>
+ <connection>
+ <name>read_quoter_push_quoter</name>
+ <internalEndpoint>
+ <portName>read_quoter</portName>
+ <instance>_94A1586C-2E9A-4FFD-8D75-7FC5A54F6B71</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>push_quoter</portName>
+ <instance>_2DBE2452-FDE3-4399-9210-509CAC49139A</instance>
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>notify_out_notify_in</name>
+ <internalEndpoint>
+ <portName>notify_out</portName>
+ <instance>_2DBE2452-FDE3-4399-9210-509CAC49139A</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>notify_in</portName>
+ <instance>_94A1586C-2E9A-4FFD-8D75-7FC5A54F6B71</instance>
+ </internalEndpoint>
+ </connection>
+ </assemblyImpl>
+
+</Deployment:componentImplementationDescription>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockQuoter.cpd b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockQuoter.cpd
new file mode 100644
index 00000000000..f84439ad25b
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/StockQuoter.cpd
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:componentPackageDescription 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>B6A364E4-7014-4B8F-8CB5-E6EDE243E2F7</UUID>
+
+ <implementation>
+ <name>MyQuoter.ComponentImplementations.StockQuoterImplementation.StockQuoter</name>
+ <referencedImplementation href="StockQuoter.cid"/>
+ </implementation>
+
+</Deployment:componentPackageDescription>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/TopLevelPackage.tpd b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/TopLevelPackage.tpd
new file mode 100644
index 00000000000..ca9b5a6fc09
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/TopLevelPackage.tpd
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:topLevelPackageDescription 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">
+
+ <basePackage href="Default.pcd"/>
+
+</Deployment:topLevelPackageDescription>
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/XMI.xsd b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/XMI.xsd
new file mode 100644
index 00000000000..f4adac91934
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/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/docs/tutorials/Quoter/Simple/descriptors/runNodeDaemons.pl b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/runNodeDaemons.pl
new file mode 100755
index 00000000000..9c611330383
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/descriptors/runNodeDaemons.pl
@@ -0,0 +1,41 @@
+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");
+
+#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;
+
+$CIAO_ROOT=$ENV{'CIAO_ROOT'};
+$DANCE_ROOT=$ENV{'DANCE_ROOT'};
+
+$SV1 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager",
+ "-ORBEndpoint iiop://localhost:30000 -s $CIAO_ROOT/DAnCE/NodeApplication/NodeApplication -d 1000");
+
+$SV2 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager",
+ "-ORBEndpoint iiop://localhost:40000 -s $CIAO_ROOT/DAnCE/NodeApplication/NodeApplication -d 1000");
+
+$SV1->Spawn ();
+$SV2->Spawn ();
+
+sleep (99999999999);
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig1.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig1.jpg
new file mode 100644
index 00000000000..a8550fe1176
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig1.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig10.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig10.jpg
new file mode 100644
index 00000000000..b156af58db4
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig10.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig11.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig11.jpg
new file mode 100644
index 00000000000..148abd4830d
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig11.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig12.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig12.jpg
new file mode 100644
index 00000000000..e1f58c525b6
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig12.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig2.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig2.jpg
new file mode 100644
index 00000000000..c971b69c29b
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig2.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig3.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig3.jpg
new file mode 100644
index 00000000000..2d67b365a0b
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig3.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig4.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig4.jpg
new file mode 100644
index 00000000000..bd07ff1f38e
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig4.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig5.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig5.jpg
new file mode 100644
index 00000000000..6f9498be6f8
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig5.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig5a.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig5a.jpg
new file mode 100644
index 00000000000..d7f2e9c276c
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig5a.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig6.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig6.jpg
new file mode 100644
index 00000000000..724c40c00f8
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig6.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig7.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig7.jpg
new file mode 100644
index 00000000000..44f1dfb009f
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig7.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig8.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig8.jpg
new file mode 100644
index 00000000000..ffb3d89640d
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig8.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig9.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig9.jpg
new file mode 100644
index 00000000000..594cc1c3eb7
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/fig9.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/quoter.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/quoter.jpg
new file mode 100644
index 00000000000..2f3edd11329
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/quoter.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/step1.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/step1.jpg
new file mode 100644
index 00000000000..b0346ee841b
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/step1.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/step2.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/step2.jpg
new file mode 100644
index 00000000000..a4526901307
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/step2.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/step3.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/step3.jpg
new file mode 100644
index 00000000000..d7687394851
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/step3.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/step6.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/step6.jpg
new file mode 100644
index 00000000000..e1e3b28055d
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/step6.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/images/steps.jpg b/modules/CIAO/docs/tutorials/Quoter/Simple/images/steps.jpg
new file mode 100644
index 00000000000..ddccdc2b373
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/images/steps.jpg
Binary files differ
diff --git a/modules/CIAO/docs/tutorials/Quoter/Simple/index.html b/modules/CIAO/docs/tutorials/Quoter/Simple/index.html
new file mode 100644
index 00000000000..ce61b3673ef
--- /dev/null
+++ b/modules/CIAO/docs/tutorials/Quoter/Simple/index.html
@@ -0,0 +1,351 @@
+<!-- $Id$ -->
+<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office"
+ xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:p="urn:schemas-microsoft-com:office:powerpoint"
+ xmlns:oa="urn:schemas-microsoft-com:office:activation" xmlns="http://www.w3.org/TR/REC-html40">
+ <head>
+ <title>Building a Stock Quoter with TAO - A Tutorial</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <meta name="ProgId" content="Word.Document">
+ <meta name="Generator" content="Microsoft Word 11">
+ <meta name="Originator" content="Microsoft Word 11">
+ <link rel="File-List" href="index_files/filelist.xml">
+ <link rel="Edit-Time-Data" href="index_files/editdata.mso"> <!--[if !mso]>
+<STYLE>
+v\:* {behavior:url(#default#VML);}
+o\:* {behavior:url(#default#VML);}
+w\:* {behavior:url(#default#VML);}
+.shape {behavior:url(#default#VML);}
+</STYLE>
+<![endif]--> <!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+ <o:Author>Abdullah Sowayan</o:Author>
+ <o:LastAuthor>Abdullah Sowayan</o:LastAuthor>
+ <o:Revision>14</o:Revision>
+ <o:TotalTime>65</o:TotalTime>
+ <o:Created>2006-10-06T22:35:00Z</o:Created>
+ <o:LastSaved>2007-03-08T01:23:00Z</o:LastSaved>
+ <o:Pages>1</o:Pages>
+ <o:Words>849</o:Words>
+ <o:Characters>4845</o:Characters>
+ <o:Company>Maritime Systems &amp; Sensors</o:Company>
+ <o:Lines>40</o:Lines>
+ <o:Paragraphs>11</o:Paragraphs>
+ <o:CharactersWithSpaces>5683</o:CharactersWithSpaces>
+ <o:Version>11.5606</o:Version>
+ </o:DocumentProperties>
+</xml><![endif]--> <!--[if gte mso 9]><xml>
+ <w:WordDocument>
+ <w:ValidateAgainstSchemas/>
+ <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
+ <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
+ <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
+ <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
+ </w:WordDocument>
+</xml><![endif]--> <!--[if gte mso 9]><xml>
+ <w:LatentStyles DefLockedState="false" LatentStyleCount="156">
+ </w:LatentStyles>
+</xml><![endif]-->
+ <style> <!-- /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";}
+ h3 {mso-margin-top-alt:auto; margin-right:0in; mso-margin-bottom-alt:auto; margin-left:0in; mso-pagination:widow-orphan; mso-outline-level:3; font-size:13.5pt; font-family:"Times New Roman"; font-weight:bold;}
+ a:link, span.MsoHyperlink {color:#000FFF; text-decoration:underline; text-underline:single;}
+ a:visited, span.MsoHyperlinkFollowed {color:#FF0F0F; text-decoration:underline; text-underline:single;}
+ p {mso-margin-top-alt:auto; margin-right:0in; mso-margin-bottom-alt:auto; margin-left:0in; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";}
+ address {margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Times New Roman"; font-style:italic;}
+ code {font-family:"Courier New"; mso-ascii-font-family:"Courier New"; mso-fareast-font-family:"Times New Roman"; mso-hansi-font-family:"Courier New"; mso-bidi-font-family:"Courier New";}
+ span.intbody {mso-style-name:intbody;}
+ @page Section1 {size:8.5in 11.0in; margin:1.0in 1.25in 1.0in 1.25in; mso-header-margin:.5in; mso-footer-margin:.5in; mso-paper-source:0;}
+ div.Section1 {page:Section1;}
+ /* List Definitions */ @list l0 {mso-list-id:137387275; mso-list-type:hybrid; mso-list-template-ids:-1837205732 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
+ @list l0:level1 {mso-level-number-format:bullet; mso-level-text:\F0B7; mso-level-tab-stop:.75in; mso-level-number-position:left; margin-left:.75in; text-indent:-.25in; font-family:Symbol;}
+ @list l0:level2 {mso-level-tab-stop:1.0in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l0:level3 {mso-level-tab-stop:1.5in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l0:level4 {mso-level-tab-stop:2.0in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l0:level5 {mso-level-tab-stop:2.5in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l0:level6 {mso-level-tab-stop:3.0in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l0:level7 {mso-level-tab-stop:3.5in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l0:level8 {mso-level-tab-stop:4.0in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l0:level9 {mso-level-tab-stop:4.5in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l1 {mso-list-id:271979655; mso-list-template-ids:-2025148996;}
+ @list l1:level1 {mso-level-number-format:bullet; mso-level-text:\F0B7; mso-level-tab-stop:.75in; mso-level-number-position:left; margin-left:.75in; text-indent:-.25in; font-family:Symbol;}
+ @list l1:level2 {mso-level-tab-stop:1.0in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l1:level3 {mso-level-tab-stop:1.5in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l1:level4 {mso-level-tab-stop:2.0in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l1:level5 {mso-level-tab-stop:2.5in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l1:level6 {mso-level-tab-stop:3.0in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l1:level7 {mso-level-tab-stop:3.5in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l1:level8 {mso-level-tab-stop:4.0in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l1:level9 {mso-level-tab-stop:4.5in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l2 {mso-list-id:398870737; mso-list-type:hybrid; mso-list-template-ids:-1758177826 -1301365556 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
+ @list l2:level1 {mso-level-tab-stop:.5in; mso-level-number-position:left; text-indent:-.25in; mso-ansi-font-weight:bold;}
+ @list l2:level2 {mso-level-number-format:alpha-lower; mso-level-tab-stop:1.0in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l2:level3 {mso-level-tab-stop:1.5in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l2:level4 {mso-level-tab-stop:2.0in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l2:level5 {mso-level-tab-stop:2.5in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l2:level6 {mso-level-tab-stop:3.0in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l2:level7 {mso-level-tab-stop:3.5in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l2:level8 {mso-level-tab-stop:4.0in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l2:level9 {mso-level-tab-stop:4.5in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l3 {mso-list-id:1284144513; mso-list-type:hybrid; mso-list-template-ids:120510300 -1301365556 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
+ @list l3:level1 {mso-level-tab-stop:.5in; mso-level-number-position:left; text-indent:-.25in; mso-ansi-font-weight:bold;}
+ @list l3:level2 {mso-level-tab-stop:1.0in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l3:level3 {mso-level-tab-stop:1.5in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l3:level4 {mso-level-tab-stop:2.0in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l3:level5 {mso-level-tab-stop:2.5in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l3:level6 {mso-level-tab-stop:3.0in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l3:level7 {mso-level-tab-stop:3.5in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l3:level8 {mso-level-tab-stop:4.0in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l3:level9 {mso-level-tab-stop:4.5in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l4 {mso-list-id:1734621206; mso-list-type:hybrid; mso-list-template-ids:-1370594096 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
+ @list l4:level1 {mso-level-number-format:bullet; mso-level-text:\F0B7; mso-level-tab-stop:.75in; mso-level-number-position:left; margin-left:.75in; text-indent:-.25in; font-family:Symbol;}
+ @list l4:level2 {mso-level-tab-stop:1.0in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l4:level3 {mso-level-tab-stop:1.5in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l4:level4 {mso-level-tab-stop:2.0in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l4:level5 {mso-level-tab-stop:2.5in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l4:level6 {mso-level-tab-stop:3.0in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l4:level7 {mso-level-tab-stop:3.5in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l4:level8 {mso-level-tab-stop:4.0in; mso-level-number-position:left; text-indent:-.25in;}
+ @list l4:level9 {mso-level-tab-stop:4.5in; mso-level-number-position:left; text-indent:-.25in;}
+ ol {margin-bottom:0in;}
+ ul {margin-bottom:0in;}
+ --></style>
+ <!--[if gte mso 10]>
+<style>
+ /* Style Definitions */
+ table.MsoNormalTable
+ {mso-style-name:"Table Normal";
+ mso-tstyle-rowband-size:0;
+ mso-tstyle-colband-size:0;
+ mso-style-noshow:yes;
+ mso-style-parent:"";
+ mso-padding-alt:0in 5.4pt 0in 5.4pt;
+ mso-para-margin:0in;
+ mso-para-margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:"Times New Roman";
+ mso-ansi-language:#0400;
+ mso-fareast-language:#0400;
+ mso-bidi-language:#0400;}
+</style>
+<![endif]--> <!-- index.html,v 1.3 2006/05/06 02:29:31 schmidt Exp --> <!--[if gte mso 9]><xml>
+ <o:shapedefaults v:ext="edit" spidmax="8194"/>
+</xml><![endif]--> <!--[if gte mso 9]><xml>
+ <o:shapelayout v:ext="edit">
+ <o:idmap v:ext="edit" data="1"/>
+ </o:shapelayout></xml><![endif]-->
+ </head>
+ <body bgcolor="white" lang="EN-US" link="#000fff" vlink="#ff0f0f" style='tab-interval:
+.5in'>
+ <h3 align="center" style='MARGIN:0in 0in 0pt;LINE-HEIGHT:150%;TEXT-ALIGN:center' class="Section1"><span style='COLOR:black'>Building a Stock Quoter with CIAO,
+CoSMIC, and DAnCE - A Tutorial<o:p></o:p></span></h3>
+ <h3 align="center" style='MARGIN:0in 0in 0pt;LINE-HEIGHT:150%;TEXT-ALIGN:center' class="Section1"><span style='COLOR:black'><o:p>&nbsp;</o:p>
+ </span></h3>
+ <p style='MARGIN:0in 0in 0pt;LINE-HEIGHT:150%' class="Section1"><span style='COLOR:black'>This tutorial provides a step-by-step lesson on developing
+component-based distributed applications using <a href="http://www.dre.vanderbilt.edu/cosmic/">CoSMIC</a> modeling toolkit and the
+<a href="http://www.cs.wustl.edu/%7Eschmidt/CIAO.html">CIAO DAnCE</a>
+framework. The example application used in this tutorial is a Stock Quoter that
+consists of two components; the <i>StockDistributor</i> and the <i>StockBroker</i>.
+The <i>StockDistributor</i> notifies one or more stock brokers whenever a stock
+price changes. Upon receiving the notification, the <i>StockBroker</i> fetches
+information about a particular stock from the <i>StockDistributor</i>. The
+figure bellow shows the application diagram. This Stock Quoter application is
+based on a series of <a href="http://www.cs.wustl.edu/%7Eschmidt/report-doc.html">CORBA component
+ model</a>
+columns written by <a href="http://www.cs.wustl.edu/%7Eschmidt/">Doug Schmidt</a>
+and <a href="http://www.iona.com/hyplan/vinoski/">Steve Vinoski</a> for <a href="http://www.cuj.com">C/C++
+ Users Journal</a> and has consistently been
+used as an example for <a href="http://www.cs.wustl.edu/%7Eschmidt/TAO.html">TAO</a>.<o:p></o:p></span></p>
+ <p style='MARGIN:0in 0in 0pt;LINE-HEIGHT:150%' class="Section1"><span style='COLOR:black'><o:p>&nbsp;</o:p>
+ </span></p>
+ <p class="MsoNormal" align="center" style='LINE-HEIGHT:150%;TEXT-ALIGN:center'><span style='COLOR:black'><img border="0" width="434" height="232" id="_x0000_i1025" src="images/fig1.jpg"><br>
+Stock Quoter application Diagram <o:p></o:p></span></p>
+ <p class="MsoNormal" style='LINE-HEIGHT:150%'><span style='COLOR:black'><o:p>&nbsp;</o:p>
+ </span></p>
+ <p style='MARGIN:0in 0in 0pt;LINE-HEIGHT:150%' class="Section1"><span style='COLOR:black'>This is a step-by-step tutorial that will walk you through
+the development and deployment phases of a CCM application (Stock Quoter). This
+tutorial assumes that you have read and understood the following articles that
+describe the example:<o:p></o:p></span></p>
+ <p style='MARGIN:0in 0in 0pt 0.75in;TEXT-INDENT:-0.25in;LINE-HEIGHT:150%;mso-list:l0 level1 lfo1;tab-stops:list .75in'
+ class="Section1"><![if !supportLists]><span style='FONT-FAMILY:Symbol;
+mso-fareast-font-family:Symbol;
+mso-bidi-font-family:Symbol'><span style='mso-list:Ignore'>&middot;<span style="FONT:7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>
+ </span><![endif]><a href="http://www.cuj.com/documents/s=9039/cujexp0402vinoski/">The
+ CORBA Component Model, Part 1: Evolving Towards Component Middleware</a></p>
+ <p style='MARGIN:0in 0in 0pt 0.75in;TEXT-INDENT:-0.25in;LINE-HEIGHT:150%;mso-list:l0 level1 lfo1;tab-stops:list .75in'
+ class="Section1"><![if !supportLists]><span style='FONT-FAMILY:Symbol;
+mso-fareast-font-family:Symbol;
+mso-bidi-font-family:Symbol'><span style='mso-list:Ignore'>&middot;<span style="FONT:7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>
+ </span><![endif]><a href="http://www.cuj.com/documents/s=9152/cujexp0404vinoski/">The
+ CORBA Component Model, Part 2: Defining Components with the IDL 3.x Types</a></p>
+ <p style='MARGIN:0in 0in 0pt 0.75in;TEXT-INDENT:-0.25in;LINE-HEIGHT:150%;mso-list:l0 level1 lfo1;tab-stops:list .75in'
+ class="Section1"><![if !supportLists]><span style='FONT-FAMILY:Symbol;
+mso-fareast-font-family:Symbol;
+mso-bidi-font-family:Symbol'><span style='mso-list:Ignore'>&middot;<span style="FONT:7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>
+ </span><![endif]><a href="http://www.cuj.com/documents/s=9301/cujexp0409vinoski/">The
+ CORBA Component Model, Part 3: The CCM Container Architecture and Component
+ Implementation Framework</a></p>
+ <p style='MARGIN:0in 0in 0pt 0.75in;TEXT-INDENT:-0.25in;LINE-HEIGHT:150%;mso-list:l0 level1 lfo1;tab-stops:list .75in'
+ class="Section1"><![if !supportLists]><span style='FONT-FAMILY:Symbol;
+mso-fareast-font-family:Symbol;
+mso-bidi-font-family:Symbol'><span style='mso-list:Ignore'>&middot;<span style="FONT:7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>
+ </span><![endif]><a href="http://www.cuj.com/documents/s=9360/cujexp0410vinoski/">The
+ CORBA Component Model Part 4: The CORBA Component Model Part 4: Implementing
+ Components with CCM</a></p>
+ <p style='MARGIN:0in 0in 0pt;LINE-HEIGHT:150%' class="Section1"><span style='COLOR:black'><o:p>&nbsp;</o:p>
+ </span></p>
+ <p style='MARGIN:0in 0in 0pt;LINE-HEIGHT:150%' class="Section1"><span style='COLOR:black'><span style='mso-spacerun:yes'>&nbsp;</span>In addition to
+the articles above, reading and understanding the resources below will greatly
+help you follow through this tutorial:<o:p></o:p></span></p>
+ <p style='MARGIN:0in 0in 0pt 0.75in;TEXT-INDENT:-0.25in;LINE-HEIGHT:150%;mso-list:l4 level1 lfo2;tab-stops:list .75in'
+ class="Section1"><![if !supportLists]><span style='COLOR:black;
+FONT-FAMILY:Symbol;
+mso-fareast-font-family:Symbol;
+mso-bidi-font-family:Symbol'><span style='mso-list:Ignore'>&middot;<span style="FONT:7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>
+ </span><![endif]><a href="http://www.cs.wustl.edu/~schmidt/PDF/DAnCE.pdf">DAnCE: A
+ QoS-enabled Component Deployment and Conguration Engine</a><span style='COLOR:black'><o:p></o:p>
+ </span></p>
+ <p style='MARGIN:0in 0in 0pt 0.75in;TEXT-INDENT:-0.25in;LINE-HEIGHT:150%;mso-list:l4 level1 lfo2;tab-stops:list .75in'
+ class="Section1"><![if !supportLists]><span style='FONT-FAMILY:Symbol;
+mso-fareast-font-family:Symbol;
+mso-bidi-font-family:Symbol'><span style='mso-list:Ignore'>&middot;<span style="FONT:7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>
+ </span><![endif]>TAO&#8217;s Developer&#8217;s Guide Version 1.4a. Chapter
+ 32&nbsp;: CIAO and CCM.</p>
+ <p style='MARGIN:0in 0in 0pt;LINE-HEIGHT:150%' class="Section1"><span style='COLOR:black'><o:p>&nbsp;</o:p>
+ </span></p>
+ <p class="MsoNormal" style='LINE-HEIGHT:150%'><b><span style='FONT-SIZE:14pt;
+COLOR:black;
+LINE-HEIGHT:150%'>Prerequisites:</span></b><b><span style='FONT-SIZE:13.5pt;COLOR:black;LINE-HEIGHT:150%'><br>
+ </span></b><span style='COLOR:black'>&nbsp;Before you start, you need the
+following: <o:p></o:p></span></p>
+ <p class="MsoNormal" style='MARGIN-LEFT:0.75in;TEXT-INDENT:-0.25in;LINE-HEIGHT:150%;mso-list:l1 level1 lfo3;tab-stops:list .75in'><![if
+ !supportLists]><span style='COLOR:black;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span style='mso-list:Ignore'>&middot;<span style="FONT:7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>
+ </span><![endif]><b><span style='COLOR:black'>ACE+TAO+CIAO (Component Integraated ACE ORB).</span></b><span style='COLOR:black'> ACE + TAO + CIAO provide the CCM infrastructure necessary
+to enable the CCM-based distributed component interaction. You can click <a href="http://download.dre.vanderbilt.edu">here</a> to download the latest ACE +
+TAO + CIAO and click <a href="http://www.cs.wustl.edu/%7Eschmidt/ACE_wrappers/TAO/CIAO/CIAO-INSTALL.html">here</a>
+for information on how to build ACE+TAO+CIAO.<o:p></o:p></span></p>
+ <p class="MsoNormal" style='MARGIN-LEFT:0.75in;TEXT-INDENT:-0.25in;LINE-HEIGHT:150%;mso-list:l1 level1 lfo3;tab-stops:list .75in'><![if
+ !supportLists]><span style='COLOR:black;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span style='mso-list:Ignore'>&middot;<span style="FONT:7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>
+ </span><![endif]><b><span style='COLOR:black'>Generic Modeling Environment (GME).</span></b><span style='COLOR:black'> GME is a configurable toolkit for creating domain-specific
+modeling and program synthesis environments. It provides the execution
+environment for CoSMIC toolkits. Click <a href="http://www.isis.vanderbilt.edu/Projects/gme/download.html">here</a> to
+download GME.<o:p></o:p></span></p>
+ <p class="MsoNormal" style='MARGIN-LEFT:0.75in;TEXT-INDENT:-0.25in;LINE-HEIGHT:150%;mso-list:l1 level1 lfo3;tab-stops:list .75in'><![if
+ !supportLists]><span style='COLOR:black;FONT-FAMILY:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span style='mso-list:Ignore'>&middot;<span style="FONT:7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>
+ </span><![endif]><b><span style='COLOR:black'>CoSMIC toolkit.</span></b><span style='COLOR:black'> Click <a href="http://www.dre.vanderbilt.edu/cosmic/">here</a> to download the latest
+CoSMIC release.<o:p></o:p></span></p>
+ <blockquote style='MARGIN-TOP:5pt;MARGIN-BOTTOM:5pt' class="Section1">
+ <div style='MARGIN-LEFT:-0.5in'>
+ <div class="MsoNormal" align="center" style='LINE-HEIGHT:150%;TEXT-ALIGN:center'><span style='COLOR:black'>
+ <hr size="2" width="100%" align="center">
+ </span></div>
+ </div>
+ <p class="MsoNormal" style='MARGIN-LEFT:-0.5in;LINE-HEIGHT:150%'><strong><span style='COLOR:black'>Note:</span></strong><strong><span style='FONT-WEIGHT:normal'><o:p></o:p>
+ </span></strong></p>
+ <p class="MsoNormal" style='MARGIN-LEFT:0in;TEXT-INDENT:-0.25in;LINE-HEIGHT:150%;mso-list:l3 level1 lfo4;tab-stops:list 0in .5in'><![if
+ !supportLists]><b style='mso-bidi-font-weight:normal'><span style='mso-list:Ignore'>1.<span style="FONT:7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp; </span></span></b><![endif]><span style='COLOR:black'>Usually you should download the latest GME, but it is possible
+that CoSMIC hasn't been updated yet to support the very latest GME..The
+installation process of CoSMIC will tell you which version it is
+expecting.&nbsp; So <span class="intbody">please make sure the GME version you
+are using is the version required by CoSMIC. A different version of </span>GME
+may result in undefined errors. </span></p>
+ <p class="MsoNormal" style='MARGIN-LEFT:0in;TEXT-INDENT:-0.25in;LINE-HEIGHT:150%;mso-list:l3 level1 lfo4;tab-stops:list 0in .5in'><![if
+ !supportLists]><b style='mso-bidi-font-weight:normal'><span style='COLOR:black'><span style='mso-list:Ignore'>2.<span style="FONT:7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>
+ </span></b><![endif]><span style='COLOR:black'>Make sure you
+install GME first before you start with CoSMIC toolkits.<o:p></o:p></span></p>
+ <div style='MARGIN-LEFT:-0.5in'>
+ <div class="MsoNormal" align="center" style='LINE-HEIGHT:150%;TEXT-ALIGN:center'><span style='COLOR:black'>
+ <hr size="2" width="100%" align="center">
+ </span></div>
+ </div>
+ </blockquote>
+ <p class="MsoNormal" style='LINE-HEIGHT:150%'><span style='COLOR:black'><o:p>&nbsp;</o:p>
+ </span></p>
+ <p class="MsoNormal" style='LINE-HEIGHT:150%'><b style='mso-bidi-font-weight:
+normal'><span style='FONT-SIZE:14pt;COLOR:black;LINE-HEIGHT:150%'>Steps for
+Developing the Stock Quoter Application:<o:p></o:p></span></b></p>
+ <p class="MsoNormal" style='LINE-HEIGHT:150%'><b style='mso-bidi-font-weight:
+normal'><span style='FONT-SIZE:14pt;COLOR:black;LINE-HEIGHT:150%'><o:p>&nbsp;</o:p>
+ </span></b></p>
+ <p class="MsoNormal" align="center" style='LINE-HEIGHT:150%;TEXT-ALIGN:center'><b style='mso-bidi-font-weight:normal'><span style='FONT-SIZE:14pt;COLOR:black;LINE-HEIGHT:150%'><img border="0" width="960" height="521" id="_x0000_i1028" src="images/steps.jpg"><o:p></o:p>
+ </span></b></p>
+ <p class="MsoNormal" align="center" style='LINE-HEIGHT:150%;TEXT-ALIGN:center'><span style='COLOR:black'>Steps for Developing Stock Quoter Application<o:p></o:p></span></p>
+ <p class="MsoNormal" style='LINE-HEIGHT:150%'><span style='COLOR:black'><o:p>&nbsp;</o:p>
+ </span></p>
+ <p class="MsoNormal" style='LINE-HEIGHT:150%'><span style='COLOR:black'>Listed
+below are the steps for developing the Stock Quoter application. Each link is a
+step-by-step tutorial of the specific step.</span><b style='mso-bidi-font-weight:
+normal'><span style='FONT-SIZE:14pt;COLOR:black;LINE-HEIGHT:150%'><o:p></o:p>
+ </span></b></p>
+ <DIV class="Section1">
+ <OL style="MARGIN-TOP: 0in" type="1" start="1">
+ <li class="MsoNormal" style='COLOR:black;LINE-HEIGHT:150%;mso-list:l2 level1 lfo5;tab-stops:list .5in'>
+ <b><a href="01.html">Define your interfaces and component types</a>:</b><o:p></o:p>
+ <ol style='MARGIN-TOP:0in' start="1" type="a">
+ <li class="MsoNormal" style='COLOR:black;LINE-HEIGHT:150%;mso-list:l2 level2 lfo5;tab-stops:list 1.0in'>
+ <b>Define your interfaces using IDL 2.x features</b>, e.g., use the familiar
+ CORBA types (such as
+ <span style='mso-bidi-font-weight:
+ bold'>struct</span>,
+ <span style='mso-bidi-font-weight:bold'>sequence</span>,
+ <span style='mso-bidi-font-weight:bold'>long</span>,
+ <span style='mso-bidi-font-weight:bold'>Object</span>,
+ <span style='mso-bidi-font-weight:
+ bold'>interface</span>,
+ <span style='mso-bidi-font-weight:bold'>raises</span>, etc.) to define your
+ interfaces &amp; exceptions.<o:p></o:p>
+ <li class="MsoNormal" style='COLOR:black;LINE-HEIGHT:150%;mso-list:l2 level2 lfo5;tab-stops:list 1.0in'>
+ <b>Define your component types using IDL 3.x features</b>, e.g., use the new
+ CCM keywords (such as
+ <span style='mso-bidi-font-weight:bold'>component</span>,
+ <span style='mso-bidi-font-weight:bold'>provides</span>,
+ <span style='mso-bidi-font-weight:bold'>uses</span>,
+ <span style='mso-bidi-font-weight:
+ bold'>publishes</span>,
+ <span style='mso-bidi-font-weight:bold'>emits</span>, &amp;
+ <span style='mso-bidi-font-weight:bold'>consumes</span>) to group the IDL 2.x
+ types together to form components.<b><o:p></o:p></b></li>
+ </ol>
+ <li class="MsoNormal" style='COLOR:black;LINE-HEIGHT:150%;mso-list:l2 level1 lfo5;tab-stops:list .5in'>
+ <b><a href="02.html">Implement your components</a></b>, e.g., using C++ or Java
+ &amp; the Component Implementation Definition Language (CIDL), which generates
+ component servants, executor interfaces, associated metadata, &amp;
+ compositions.<b><o:p></o:p></b>
+ <li class="MsoNormal" style='COLOR:black;LINE-HEIGHT:150%;mso-list:l2 level1 lfo5;tab-stops:list .5in'>
+ <b style='mso-bidi-font-weight:normal'><a href="03.html">Package your components</a></b>,
+ <span style='COLOR:red'>
+ <FONT color="#000000">Bundle component implementations with metadata giving their
+ default properties and their component descriptors into component packages. </FONT>
+ </span>
+ <LI class="MsoNormal" style="COLOR: black; LINE-HEIGHT: 150%; mso-list: l2 level1 lfo5; tab-stops: list .5in">
+ <b><a href="03.html">Assemble your components</a></b>, e.g., group related
+ components together &amp; characterize their metadata that describes the
+ components present in the assembly.<span style='mso-bidi-font-weight:bold'><o:p></o:p>
+ </span>
+ <LI class="MsoNormal" style="COLOR: black; LINE-HEIGHT: 150%; mso-list: l2 level1 lfo5; tab-stops: list .5in">
+ <b style='mso-bidi-font-weight:normal'><a href="03.html">Plan your deployment</a></b>,
+ analyze the runtime resource requirements of assembly descriptors and prepare
+ and deploy required resources where component assemblies can be realized.
+ <LI class="MsoNormal" style="COLOR: black; LINE-HEIGHT: 150%; mso-list: l2 level1 lfo5; tab-stops: list .5in">
+ <b><a href="04.html">Deploy your components &amp; run your application</a></b>,
+ e.g., move the component assembly packages to the appropriate nodes in the
+ distributed system &amp; invoke operations on components to perform the
+ application logic.<b style='mso-bidi-font-weight:
+ normal'><o:p></o:p></b>
+ </LI>
+ </OL></DIV>
+ <div class="MsoNormal" align="center" style='LINE-HEIGHT:150%;TEXT-ALIGN:center'><span style='COLOR:black'>
+ <hr size="2" width="100%" align="center">
+ </span></div>
+ <address style='LINE-HEIGHT:150%'><a href="mailto:ming.xiong@vanderbilt.edu">Ming Xiong<br>
+ </a><a href="mailto:abdullah.sowayan@lmco.com">Abdullah Sowayan</a></address>
+ <ADDRESS style="LINE-HEIGHT: 150%">&nbsp;</ADDRESS>
+ <ADDRESS style="LINE-HEIGHT: 150%">$Id$</ADDRESS>
+ </body>
+</html>
diff --git a/modules/CIAO/docs/value_factory_registration.html b/modules/CIAO/docs/value_factory_registration.html
new file mode 100644
index 00000000000..df43175f9ca
--- /dev/null
+++ b/modules/CIAO/docs/value_factory_registration.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <meta name="Author" content="Jeff Parsons">
+ <meta name="GENERATOR" content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
+ <title>Registration of Valuetype Factories for Event Sinks</title>
+ <!-- $Id$ -->
+ </head>
+ <body>
+ <h3>Registration of Valuetype Factories for Event Sinks</h3>
+ <p>Components with one or more event sink (consumer) ports will need to have a
+ valuetype factory registered with the underlying ORB in order to correctly
+ demarshal the state of eventtypes it receives over the wire.</p>
+ <p>For the common case (eventtypes that contain only one or more state members),
+ the IDL compiler generates a concrete class with a name constructed from the
+ valuetype name and an '_init' suffix, and then generates a macro
+ in the servant constructor that registers this factory with the container's
+ ORB. However, an eventtype, like any valuetype, may also contain operation
+ and/or factory declarations. In these cases things are not so simple. For
+ example a factory declaration in an IDL valuetype or eventtype will generate a
+ pure virtual function of the same name in the associated _init class, meaning
+ that ORB factory registration for this type must be with a derived factory
+ class written by the application developer. The table below shows all possible
+ cases of IDL compiler factory generation.</p>
+ <TABLE BORDER="4" CELLSPACING="4" CELLPADDING="4" ID="Table1">
+ <TR>
+ <TD></TD>
+ <TD><b>Has Operation</b></TD>
+ <TD><b>Has No Operation</b></TD>
+ </TR>
+ <tr>
+ <td><b>Has Factory</b></td>
+ <td>ABSTRACT FACTORY</td>
+ <td>ABSTRACT FACTORY</td>
+ </tr>
+ <tr>
+ <td><b>Has No Factory</b></td>
+ <td>NO FACTORY</td>
+ <td>CONCRETE FACTORY</td>
+ </tr>
+ </TABLE>
+ <p>The IDL compiler will generate a macro to register the factory with the
+ container's ORB only in the case where a concrete factory is generated by the
+ IDL compiler, and thus no subclassing is necessary. There is also a command
+ line option for the IDL compiler, <tt>-Sfr</tt>,
+ that turns off generation of the macro in all cases.</p>
+ </body>
+</html>
diff --git a/modules/CIAO/etc/ciao.doxygen b/modules/CIAO/etc/ciao.doxygen
new file mode 100644
index 00000000000..946a9568c58
--- /dev/null
+++ b/modules/CIAO/etc/ciao.doxygen
@@ -0,0 +1,174 @@
+# Doxyfile 1.3.4
+#
+# $Id$
+#
+
+PROJECT_NAME = CIAO
+PROJECT_NUMBER = Snapshot
+OUTPUT_DIRECTORY = .
+OUTPUT_LANGUAGE = English
+DISABLE_INDEX = NO
+EXTRACT_ALL = YES
+EXTRACT_PRIVATE = YES
+EXTRACT_STATIC = YES
+HIDE_UNDOC_MEMBERS = NO
+HIDE_UNDOC_CLASSES = NO
+BRIEF_MEMBER_DESC = YES
+REPEAT_BRIEF = YES
+ALWAYS_DETAILED_SEC = NO
+FULL_PATH_NAMES = NO
+STRIP_FROM_PATH =
+INTERNAL_DOCS = YES
+CLASS_DIAGRAMS = YES
+SOURCE_BROWSER = YES
+INLINE_SOURCES = YES
+STRIP_CODE_COMMENTS = NO
+CASE_SENSE_NAMES = YES
+HIDE_SCOPE_NAMES = NO
+VERBATIM_HEADERS = YES
+SHOW_INCLUDE_FILES = YES
+JAVADOC_AUTOBRIEF = NO
+INHERIT_DOCS = YES
+INLINE_INFO = YES
+SORT_MEMBER_DOCS = YES
+DISTRIBUTE_GROUP_DOC = YES
+TAB_SIZE = 8
+ENABLED_SECTIONS =
+SHORT_NAMES = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+QUIET = YES
+WARNINGS = NO
+WARN_IF_UNDOCUMENTED = YES
+WARN_FORMAT = "$file:$line: $text"
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+INPUT = TAO/CIAO/ciao TAO/CIAO/ccm
+FILE_PATTERNS = *.cpp *.h *.i *.inl *.pidl *.txt *.idl
+RECURSIVE = YES
+EXCLUDE =
+EXCLUDE_PATTERNS =
+EXAMPLE_PATH =
+EXAMPLE_PATTERNS =
+IMAGE_PATH =
+INPUT_FILTER =
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+ALPHABETICAL_INDEX = YES
+COLS_IN_ALPHA_INDEX = 1
+IGNORE_PREFIX =
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+GENERATE_HTML = YES
+HTML_OUTPUT = html/tao/ciao/ciao
+HTML_HEADER =
+HTML_FOOTER =
+HTML_STYLESHEET =
+HTML_ALIGN_MEMBERS = YES
+GENERATE_HTMLHELP = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+GENERATE_LATEX = NO
+LATEX_OUTPUT = latex
+COMPACT_LATEX = NO
+PAPER_TYPE = a4wide
+EXTRA_PACKAGES =
+LATEX_HEADER =
+PDF_HYPERLINKS = NO
+LATEX_BATCHMODE = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+GENERATE_RTF = NO
+RTF_OUTPUT = rtf
+COMPACT_RTF = NO
+RTF_HYPERLINKS = NO
+RTF_STYLESHEET_FILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+GENERATE_MAN = NO
+MAN_OUTPUT = man
+MAN_EXTENSION = .3
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+ENABLE_PREPROCESSING = YES
+MACRO_EXPANSION = YES
+EXPAND_ONLY_PREDEF = YES
+SEARCH_INCLUDES = YES
+INCLUDE_PATH = TAO . ACEXML
+PREDEFINED = __ACE_INLINE__ \
+ ACE_TEMPLATES_REQUIRE_SOURCE \
+ ACE_BEGIN_VERSIONED_NAMESPACE_DECL \
+ ACE_END_VERSIONED_NAMESPACE_DECL \
+ ACE_INLINE
+EXPAND_AS_DEFINED = ACE_RCSID \
+ ACE_UNIMPLEMENTED_FUNC \
+ ACE_CACHE_MAP_MANAGER \
+ ACE_THROW_SPEC
+
+#---------------------------------------------------------------------------
+# Configuration::addtions related to external references
+#---------------------------------------------------------------------------
+
+TAGFILES = html/ace/ACE.tag=../../../ace \
+ html/tao/TAO.tag=../.. \
+ html/ace/ssl/ACE_SSL.tag=../../../ace/ssl \
+ html/tao/portableserver/TAO_PortableServer.tag=../../portableserver \
+ html/tao/iortable/TAO_IORTable.tag=../../iortable \
+ html/tao/rtcorba/TAO_RTCORBA.tag=../../rtcorba \
+ html/tao/security/TAO_Security.tag=../../security \
+ html/acexml/ACEXML.tag=../../../acexml \
+ html/tao/rtportableserver/TAO_RTPortableServer.tag=../../rtportableserver \
+ html/tao/cosnaming/TAO_CosNaming.tag=../../cosnaming \
+ html/tao/ifr/TAO_IFR.tag=../../ifr
+GENERATE_TAGFILE = html/tao/ciao/ciao/CIAO.tag
+ALLEXTERNALS = NO
+PERL_PATH = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz
+
+HAVE_DOT = YES
+CLASS_GRAPH = YES
+COLLABORATION_GRAPH = YES
+INCLUDE_GRAPH = YES
+INCLUDED_BY_GRAPH = YES
+GRAPHICAL_HIERARCHY = YES
+DOT_MULTI_TARGETS = YES
+# The tag DOT_PATH can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found on the path.
+DOT_PATH =
+
+#---------------------------------------------------------------------------
+# Configuration::addtions related to the search engine
+#---------------------------------------------------------------------------
+
+SEARCHENGINE = YES
+
diff --git a/modules/CIAO/etc/ciao_DAnCE.doxygen b/modules/CIAO/etc/ciao_DAnCE.doxygen
new file mode 100644
index 00000000000..615ceae6869
--- /dev/null
+++ b/modules/CIAO/etc/ciao_DAnCE.doxygen
@@ -0,0 +1,172 @@
+# Doxyfile 1.3.4
+#
+# $Id$
+#
+PROJECT_NAME = DAnCE
+PROJECT_NUMBER = Snapshot
+OUTPUT_DIRECTORY = .
+OUTPUT_LANGUAGE = English
+DISABLE_INDEX = NO
+EXTRACT_ALL = YES
+EXTRACT_PRIVATE = YES
+EXTRACT_STATIC = YES
+HIDE_UNDOC_MEMBERS = NO
+HIDE_UNDOC_CLASSES = NO
+BRIEF_MEMBER_DESC = YES
+REPEAT_BRIEF = YES
+ALWAYS_DETAILED_SEC = NO
+FULL_PATH_NAMES = NO
+STRIP_FROM_PATH =
+INTERNAL_DOCS = YES
+CLASS_DIAGRAMS = YES
+SOURCE_BROWSER = YES
+INLINE_SOURCES = YES
+STRIP_CODE_COMMENTS = NO
+CASE_SENSE_NAMES = YES
+HIDE_SCOPE_NAMES = NO
+VERBATIM_HEADERS = YES
+SHOW_INCLUDE_FILES = YES
+JAVADOC_AUTOBRIEF = NO
+INHERIT_DOCS = YES
+INLINE_INFO = YES
+SORT_MEMBER_DOCS = YES
+DISTRIBUTE_GROUP_DOC = YES
+TAB_SIZE = 8
+ENABLED_SECTIONS =
+SHORT_NAMES = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+QUIET = YES
+WARNINGS = NO
+WARN_IF_UNDOCUMENTED = YES
+WARN_FORMAT = "$file:$line: $text"
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+INPUT = TAO/CIAO/DAnCE
+FILE_PATTERNS = *.cpp *.h *.i *.inl *.pidl *.txt *.idl
+RECURSIVE = YES
+EXCLUDE = TAO/CIAO/DAnCE/examples TAO/CIAO/DAnCE/tests
+EXCLUDE_PATTERNS =
+EXAMPLE_PATH =
+EXAMPLE_PATTERNS =
+IMAGE_PATH =
+INPUT_FILTER =
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+ALPHABETICAL_INDEX = YES
+COLS_IN_ALPHA_INDEX = 1
+IGNORE_PREFIX =
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+GENERATE_HTML = YES
+HTML_OUTPUT = html/tao/ciao/dance
+HTML_HEADER =
+HTML_FOOTER =
+HTML_STYLESHEET =
+HTML_ALIGN_MEMBERS = YES
+GENERATE_HTMLHELP = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+GENERATE_LATEX = NO
+LATEX_OUTPUT = latex
+COMPACT_LATEX = NO
+PAPER_TYPE = a4wide
+EXTRA_PACKAGES =
+LATEX_HEADER =
+PDF_HYPERLINKS = NO
+LATEX_BATCHMODE = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+GENERATE_RTF = NO
+RTF_OUTPUT = rtf
+COMPACT_RTF = NO
+RTF_HYPERLINKS = NO
+RTF_STYLESHEET_FILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+GENERATE_MAN = NO
+MAN_OUTPUT = man
+MAN_EXTENSION = .3
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+ENABLE_PREPROCESSING = YES
+MACRO_EXPANSION = YES
+EXPAND_ONLY_PREDEF = YES
+SEARCH_INCLUDES = YES
+INCLUDE_PATH = TAO . ACEXML TAO/tao/IORTable
+PREDEFINED = __ACE_INLINE__ \
+ ACE_TEMPLATES_REQUIRE_SOURCE \
+ ACE_BEGIN_VERSIONED_NAMESPACE_DECL \
+ ACE_END_VERSIONED_NAMESPACE_DECL \
+ ACE_INLINE
+EXPAND_AS_DEFINED = ACE_RCSID \
+ ACE_UNIMPLEMENTED_FUNC \
+ ACE_CACHE_MAP_MANAGER \
+ ACE_THROW_SPEC
+
+#---------------------------------------------------------------------------
+# Configuration::addtions related to external references
+#---------------------------------------------------------------------------
+
+TAGFILES = html/ace/ACE.tag=../../../ace \
+ html/tao/TAO.tag=../.. \
+ html/ace/ssl/ACE_SSL.tag=../../../ace/ssl \
+ html/tao/portableserver/TAO_PortableServer.tag=../../portableserver \
+ html/tao/iortable/TAO_IORTable.tag=../../iortable \
+ html/tao/rtcorba/TAO_RTCORBA.tag=../../rtcorba \
+ html/tao/security/TAO_Security.tag=../../security \
+ html/acexml/ACEXML.tag=../../../acexml \
+ html/tao/rtportableserver/TAO_RTPortableServer.tag=../../rtportableserver \
+ html/tao/cosnaming/TAO_CosNaming.tag=../../cosnaming \
+ html/tao/ifr/TAO_IFR.tag=../../ifr
+GENERATE_TAGFILE = html/tao/ciao/DAnCE.tag
+ALLEXTERNALS = NO
+PERL_PATH = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz
+
+HAVE_DOT = YES
+CLASS_GRAPH = YES
+COLLABORATION_GRAPH = YES
+INCLUDE_GRAPH = YES
+INCLUDED_BY_GRAPH = YES
+GRAPHICAL_HIERARCHY = YES
+DOT_MULTI_TARGETS = YES
+# The tag DOT_PATH can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found on the path.
+DOT_PATH =
+
+#---------------------------------------------------------------------------
+# Configuration::addtions related to the search engine
+#---------------------------------------------------------------------------
+
+SEARCHENGINE = YES
diff --git a/modules/CIAO/etc/ciao_config_handlers.doxygen b/modules/CIAO/etc/ciao_config_handlers.doxygen
new file mode 100644
index 00000000000..610ad52e2c3
--- /dev/null
+++ b/modules/CIAO/etc/ciao_config_handlers.doxygen
@@ -0,0 +1,173 @@
+# Doxyfile 1.3.4
+#
+# $Id$
+#
+PROJECT_NAME = CONFIG_HELPERS
+PROJECT_NUMBER = Snapshot
+OUTPUT_DIRECTORY = .
+OUTPUT_LANGUAGE = English
+DISABLE_INDEX = NO
+EXTRACT_ALL = YES
+EXTRACT_PRIVATE = YES
+EXTRACT_STATIC = YES
+HIDE_UNDOC_MEMBERS = NO
+HIDE_UNDOC_CLASSES = NO
+BRIEF_MEMBER_DESC = YES
+REPEAT_BRIEF = YES
+ALWAYS_DETAILED_SEC = NO
+FULL_PATH_NAMES = NO
+STRIP_FROM_PATH =
+INTERNAL_DOCS = YES
+CLASS_DIAGRAMS = YES
+SOURCE_BROWSER = YES
+INLINE_SOURCES = YES
+STRIP_CODE_COMMENTS = NO
+CASE_SENSE_NAMES = YES
+HIDE_SCOPE_NAMES = NO
+VERBATIM_HEADERS = YES
+SHOW_INCLUDE_FILES = YES
+JAVADOC_AUTOBRIEF = NO
+INHERIT_DOCS = YES
+INLINE_INFO = YES
+SORT_MEMBER_DOCS = YES
+DISTRIBUTE_GROUP_DOC = YES
+TAB_SIZE = 8
+ENABLED_SECTIONS =
+SHORT_NAMES = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+QUIET = YES
+WARNINGS = NO
+WARN_IF_UNDOCUMENTED = YES
+WARN_FORMAT = "$file:$line: $text"
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+INPUT = TAO/CIAO/tools/Config_Handlers
+FILE_PATTERNS = *.cpp *.h *.i *.inl *.pidl *.txt *.idl
+RECURSIVE =
+EXCLUDE =
+EXCLUDE_PATTERNS =
+EXAMPLE_PATH =
+EXAMPLE_PATTERNS =
+IMAGE_PATH =
+INPUT_FILTER =
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+ALPHABETICAL_INDEX = YES
+COLS_IN_ALPHA_INDEX = 1
+IGNORE_PREFIX =
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+GENERATE_HTML = YES
+HTML_OUTPUT = html/tao/ciao/tools/config_handlers
+HTML_HEADER =
+HTML_FOOTER =
+HTML_STYLESHEET =
+HTML_ALIGN_MEMBERS = YES
+GENERATE_HTMLHELP = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+GENERATE_LATEX = NO
+LATEX_OUTPUT = latex
+COMPACT_LATEX = NO
+PAPER_TYPE = a4wide
+EXTRA_PACKAGES =
+LATEX_HEADER =
+PDF_HYPERLINKS = NO
+LATEX_BATCHMODE = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+GENERATE_RTF = NO
+RTF_OUTPUT = rtf
+COMPACT_RTF = NO
+RTF_HYPERLINKS = NO
+RTF_STYLESHEET_FILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+GENERATE_MAN = NO
+MAN_OUTPUT = man
+MAN_EXTENSION = .3
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+ENABLE_PREPROCESSING = YES
+MACRO_EXPANSION = YES
+EXPAND_ONLY_PREDEF = YES
+SEARCH_INCLUDES = YES
+INCLUDE_PATH = TAO . ACEXML TAO/tao/IORTable TAO/CIAO/tools/Config_Handlers
+PREDEFINED = __ACE_INLINE__ \
+ ACE_TEMPLATES_REQUIRE_SOURCE \
+ ACE_BEGIN_VERSIONED_NAMESPACE_DECL \
+ ACE_END_VERSIONED_NAMESPACE_DECL \
+ ACE_INLINE
+EXPAND_AS_DEFINED = ACE_RCSID \
+ ACE_UNIMPLEMENTED_FUNC \
+ ACE_CACHE_MAP_MANAGER \
+ ACE_THROW_SPEC
+
+#---------------------------------------------------------------------------
+# Configuration::addtions related to external references
+#---------------------------------------------------------------------------
+
+TAGFILES = html/ace/ACE.tag=../../../../ace \
+ html/tao/TAO.tag=../../.. \
+ html/ace/ssl/ACE_SSL.tag=../../../../ace/ssl \
+ html/tao/portableserver/TAO_PortableServer.tag=../../../portableserver \
+ html/tao/iortable/TAO_IORTable.tag=../../../iortable \
+ html/tao/rtcorba/TAO_RTCORBA.tag=../../../rtcorba \
+ html/tao/security/TAO_Security.tag=../../../security \
+ html/acexml/ACEXML.tag=../../../../acexml \
+ html/tao/rtportableserver/TAO_RTPortableServer.tag=../../../rtportableserver \
+ html/tao/cosnaming/TAO_CosNaming.tag=../../../cosnaming \
+ html/tao/ifr/TAO_IFR.tag=../../../ifr
+GENERATE_TAGFILE = html/tao/ciao/tools/Config_Handlers.tag
+ALLEXTERNALS = NO
+PERL_PATH = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz
+
+HAVE_DOT = YES
+CLASS_GRAPH = YES
+COLLABORATION_GRAPH = YES
+INCLUDE_GRAPH = YES
+INCLUDED_BY_GRAPH = YES
+GRAPHICAL_HIERARCHY = YES
+DOT_MULTI_TARGETS = YES
+# The tag DOT_PATH can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found on the path.
+DOT_PATH =
+
+#---------------------------------------------------------------------------
+# Configuration::addtions related to the search engine
+#---------------------------------------------------------------------------
+
+SEARCHENGINE = YES
+
diff --git a/modules/CIAO/etc/ciao_dds4ccm.doxygen b/modules/CIAO/etc/ciao_dds4ccm.doxygen
new file mode 100644
index 00000000000..44a89e04194
--- /dev/null
+++ b/modules/CIAO/etc/ciao_dds4ccm.doxygen
@@ -0,0 +1,172 @@
+# Doxyfile 1.3.4
+#
+# $Id$
+#
+PROJECT_NAME = DDS4CCM
+PROJECT_NUMBER = Snapshot
+OUTPUT_DIRECTORY = .
+OUTPUT_LANGUAGE = English
+DISABLE_INDEX = NO
+EXTRACT_ALL = YES
+EXTRACT_PRIVATE = YES
+EXTRACT_STATIC = YES
+HIDE_UNDOC_MEMBERS = NO
+HIDE_UNDOC_CLASSES = NO
+BRIEF_MEMBER_DESC = YES
+REPEAT_BRIEF = YES
+ALWAYS_DETAILED_SEC = NO
+FULL_PATH_NAMES = NO
+STRIP_FROM_PATH =
+INTERNAL_DOCS = YES
+CLASS_DIAGRAMS = YES
+SOURCE_BROWSER = YES
+INLINE_SOURCES = YES
+STRIP_CODE_COMMENTS = NO
+CASE_SENSE_NAMES = YES
+HIDE_SCOPE_NAMES = NO
+VERBATIM_HEADERS = YES
+SHOW_INCLUDE_FILES = YES
+JAVADOC_AUTOBRIEF = NO
+INHERIT_DOCS = YES
+INLINE_INFO = YES
+SORT_MEMBER_DOCS = YES
+DISTRIBUTE_GROUP_DOC = YES
+TAB_SIZE = 8
+ENABLED_SECTIONS =
+SHORT_NAMES = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+QUIET = YES
+WARNINGS = NO
+WARN_IF_UNDOCUMENTED = YES
+WARN_FORMAT = "$file:$line: $text"
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+INPUT = TAO/CIAO/connectors/dds4ccm
+FILE_PATTERNS = *.cpp *.h *.i *.inl *.pidl *.txt *.idl *.idl3
+RECURSIVE = YES
+EXCLUDE = TAO/CIAO/connectors/dds4ccm/examples
+EXCLUDE_PATTERNS =
+EXAMPLE_PATH =
+EXAMPLE_PATTERNS =
+IMAGE_PATH =
+INPUT_FILTER =
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+ALPHABETICAL_INDEX = YES
+COLS_IN_ALPHA_INDEX = 1
+IGNORE_PREFIX =
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+GENERATE_HTML = YES
+HTML_OUTPUT = html/tao/ciao/dds4ccm
+HTML_HEADER =
+HTML_FOOTER =
+HTML_STYLESHEET =
+HTML_ALIGN_MEMBERS = YES
+GENERATE_HTMLHELP = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+GENERATE_LATEX = NO
+LATEX_OUTPUT = latex
+COMPACT_LATEX = NO
+PAPER_TYPE = a4wide
+EXTRA_PACKAGES =
+LATEX_HEADER =
+PDF_HYPERLINKS = NO
+LATEX_BATCHMODE = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+GENERATE_RTF = NO
+RTF_OUTPUT = rtf
+COMPACT_RTF = NO
+RTF_HYPERLINKS = NO
+RTF_STYLESHEET_FILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+GENERATE_MAN = NO
+MAN_OUTPUT = man
+MAN_EXTENSION = .3
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+ENABLE_PREPROCESSING = YES
+MACRO_EXPANSION = YES
+EXPAND_ONLY_PREDEF = YES
+SEARCH_INCLUDES = YES
+INCLUDE_PATH = TAO . ACEXML TAO/tao/IORTable
+PREDEFINED = __ACE_INLINE__ \
+ ACE_TEMPLATES_REQUIRE_SOURCE \
+ ACE_BEGIN_VERSIONED_NAMESPACE_DECL \
+ ACE_END_VERSIONED_NAMESPACE_DECL \
+ ACE_INLINE
+EXPAND_AS_DEFINED = ACE_RCSID \
+ ACE_UNIMPLEMENTED_FUNC \
+ ACE_CACHE_MAP_MANAGER \
+ ACE_THROW_SPEC
+
+#---------------------------------------------------------------------------
+# Configuration::addtions related to external references
+#---------------------------------------------------------------------------
+
+TAGFILES = html/ace/ACE.tag=../../../ace \
+ html/tao/TAO.tag=../.. \
+ html/ace/ssl/ACE_SSL.tag=../../../ace/ssl \
+ html/tao/portableserver/TAO_PortableServer.tag=../../portableserver \
+ html/tao/iortable/TAO_IORTable.tag=../../iortable \
+ html/tao/rtcorba/TAO_RTCORBA.tag=../../rtcorba \
+ html/tao/security/TAO_Security.tag=../../security \
+ html/acexml/ACEXML.tag=../../../acexml \
+ html/tao/rtportableserver/TAO_RTPortableServer.tag=../../rtportableserver \
+ html/tao/cosnaming/TAO_CosNaming.tag=../../cosnaming \
+ html/tao/ifr/TAO_IFR.tag=../../ifr
+GENERATE_TAGFILE = html/tao/ciao/DAnCE.tag
+ALLEXTERNALS = NO
+PERL_PATH = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz
+
+HAVE_DOT = YES
+CLASS_GRAPH = YES
+COLLABORATION_GRAPH = YES
+INCLUDE_GRAPH = YES
+INCLUDED_BY_GRAPH = YES
+GRAPHICAL_HIERARCHY = YES
+DOT_MULTI_TARGETS = YES
+# The tag DOT_PATH can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found on the path.
+DOT_PATH =
+
+#---------------------------------------------------------------------------
+# Configuration::addtions related to the search engine
+#---------------------------------------------------------------------------
+
+SEARCHENGINE = YES
diff --git a/modules/CIAO/examples/BasicSP/BMClosedED/BMClosedED.idl b/modules/CIAO/examples/BasicSP/BMClosedED/BMClosedED.idl
new file mode 100644
index 00000000000..9ea963189fd
--- /dev/null
+++ b/modules/CIAO/examples/BasicSP/BMClosedED/BMClosedED.idl
@@ -0,0 +1,24 @@
+//$Id$
+
+#ifndef BMCLOSEDED_IDL
+#define BMCLOSEDED_IDL
+
+#include "BasicSP.idl"
+#include "BasicSPE.idl"
+
+module BasicSP
+{
+ component BMClosedED
+ {
+ provides ReadData dataout;
+ uses ReadData datain;
+ publishes DataAvailable out_avail;
+ consumes DataAvailable in_avail;
+ };
+
+ home BMClosedEDHome manages BMClosedED
+ {
+ };
+};
+
+#endif /* BMCLOSEDED_IDL */
diff --git a/modules/CIAO/examples/BasicSP/BMClosedED/BMClosedED.mpc b/modules/CIAO/examples/BasicSP/BMClosedED/BMClosedED.mpc
new file mode 100644
index 00000000000..4805a2137bd
--- /dev/null
+++ b/modules/CIAO/examples/BasicSP/BMClosedED/BMClosedED.mpc
@@ -0,0 +1,114 @@
+// $Id$
+
+project(BMClosedED_idl_gen) : componentidldefaults {
+ custom_only = 1
+ after += BasicSP_idl_gen
+ idlflags += -I $(CIAO_ROOT)/examples/BasicSP \
+ -Wb,stub_export_macro=BMCLOSEDED_STUB_Export \
+ -Wb,stub_export_include=BMClosedED_stub_export.h \
+ -Wb,skel_export_macro=BMCLOSEDED_SVNT_Export \
+ -Wb,skel_export_include=BMClosedED_svnt_export.h \
+ -Wb,exec_export_macro=BMCLOSEDED_EXEC_Export \
+ -Wb,exec_export_include=BMClosedED_exec_export.h \
+
+ IDL_Files {
+ BMClosedED.idl
+ }
+}
+
+project(BMClosedED_lem_gen) : ciaoidldefaults {
+ after += BMClosedED_idl_gen
+ custom_only = 1
+ idlflags += -Wb,export_macro=BMCLOSEDED_EXEC_Export \
+ -Wb,export_include=BMClosedED_exec_export.h \
+ -SS -I $(CIAO_ROOT)/examples/BasicSP
+
+ IDL_Files {
+ BMClosedEDE.idl
+ }
+}
+
+project(BMClosedED_stub): ccm_stub {
+ libout = ../lib
+ libpaths += ../lib
+ after += BasicSP_stub BasicSP_lem_gen BMClosedED_idl_gen
+ sharedname = BMClosedED_stub
+ includes += $(CIAO_ROOT)/examples/BasicSP
+ libs += BasicSP_stub
+ dynamicflags = BMCLOSEDED_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Header_Files {
+ BMClosedEDC.h
+ }
+
+ Source_Files {
+ BMClosedEDC.cpp
+ }
+
+ Inline_Files {
+ }
+}
+
+project(BMClosedED_exec) : ciao_executor {
+ after += BMClosedED_stub BMClosedED_lem_gen BasicSP_exec
+ sharedname = BMClosedED_exec
+ libs += BMClosedED_stub
+ libs += BasicSP_stub BasicSP_exec
+ includes += $(CIAO_ROOT)/examples/BasicSP
+ libout = ../lib
+ libpaths += ../lib
+
+ dynamicflags = BMCLOSEDED_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Header_Files {
+ BMClosedED_exec.h
+ BMClosedED_exec_export.h
+ BMClosedEDEC.h
+ }
+
+ Source_Files {
+ BMClosedED_exec.cpp
+ BMClosedEDEC.cpp
+ }
+
+ Inline_Files {
+ }
+}
+
+project(BMClosedED_svnt) : ciao_servant {
+ after += BasicSP_svnt BMClosedED_exec BasicSP_exec
+
+ includes += $(CIAO_ROOT)/examples/BasicSP
+
+ sharedname = BMClosedED_svnt
+
+ libs += BMClosedED_stub BMClosedED_exec BasicSP_exec
+ libs += BasicSP_stub BasicSP_svnt
+ libout = ../lib
+ libpaths += ../lib
+
+ dynamicflags = BMCLOSEDED_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Header_Files {
+ BMClosedED_svnt.h
+ BMClosedEDS.h
+ }
+
+ Source_Files {
+ BMClosedED_svnt.cpp
+ BMClosedEDS.cpp
+ }
+
+ Inline_Files {
+ }
+}
+
diff --git a/modules/CIAO/examples/BasicSP/BMClosedED/BMClosedED_exec.cpp b/modules/CIAO/examples/BasicSP/BMClosedED/BMClosedED_exec.cpp
new file mode 100644
index 00000000000..9b3808d8ce4
--- /dev/null
+++ b/modules/CIAO/examples/BasicSP/BMClosedED/BMClosedED_exec.cpp
@@ -0,0 +1,193 @@
+// $Id$
+
+#include "ace/SString.h"
+#include "ace/OS_NS_string.h"
+#include "BMClosedED_exec.h"
+
+#define DISPLACEMENT 256
+
+MyImpl::ReadData_Impl::ReadData_Impl (const char* name)
+ : str_ (name)
+{
+}
+
+MyImpl::ReadData_Impl::~ReadData_Impl (void)
+{
+}
+
+void
+MyImpl::ReadData_Impl::set_name (const char* name)
+{
+ this->str_ = name;
+}
+
+char *
+MyImpl::ReadData_Impl::get_data (void)
+{
+ return CORBA::string_dup (this->str_.in());
+}
+
+//=================================================
+
+/// Default constructor.
+MyImpl::BMClosedED_exec_i::BMClosedED_exec_i (void)
+ : dataout_ (new ReadData_Impl(""))
+{
+}
+
+/// Default destructor.
+MyImpl::BMClosedED_exec_i::~BMClosedED_exec_i (void)
+{
+ delete this->dataout_;
+}
+
+// Operations from HUDisplay::BMClosedED
+
+BasicSP::CCM_ReadData_ptr
+MyImpl::BMClosedED_exec_i::get_dataout (void)
+{
+ return BasicSP::CCM_ReadData::_duplicate (this->dataout_);
+}
+
+void
+MyImpl::BMClosedED_exec_i::push_in_avail (BasicSP::DataAvailable *)
+{
+
+ ACE_DEBUG ((LM_EMERGENCY,
+ "BMClosedED - Doing computations\n"));
+
+ ACE_DEBUG ((LM_EMERGENCY,
+ "BMClosedED - Doing data fetch\n"));
+
+ // Refresh position
+ BasicSP::ReadData_var dat
+ = this->context_->get_connection_datain ();
+
+ if (CORBA::is_nil (dat.in ()))
+ {
+ ACE_DEBUG ((LM_EMERGENCY,
+ "BMClosedED - got nil from get_connection\n"));
+
+ throw CORBA::BAD_INV_ORDER ();
+ }
+
+ CORBA::String_var str =
+ dat->get_data ();
+
+ ACE_DEBUG ((LM_EMERGENCY,
+ "BMClosedED - Display data is [%s]\n",
+ str.in ()));
+
+ if (ACE_OS::strcmp (str.in (), "BM DEVICE DATA") == 0)
+ {
+ this->dataout_->set_name ("BM CLOSED ED DATA");
+ }
+
+ // Notify others.
+ BasicSP::DataAvailable_var event =
+ new OBV_BasicSP::DataAvailable;
+
+ this->context_->push_out_avail (event);
+}
+
+// Operations from Components::SessionComponent
+void
+MyImpl::BMClosedED_exec_i::set_session_context (
+ Components::SessionContext_ptr ctx
+ )
+{
+ ACE_DEBUG ((LM_EMERGENCY,
+ "MyImpl::BMClosedED_exec_i::set_session_context\n"));
+
+ this->context_ =
+ BasicSP::CCM_BMClosedED_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw CORBA::INTERNAL ();
+ }
+ // Urm, we actually discard exceptions thown from this operation.
+}
+
+void
+MyImpl::BMClosedED_exec_i::configuration_complete (void)
+{
+}
+
+void
+MyImpl::BMClosedED_exec_i::ccm_activate (void)
+{
+ ACE_DEBUG ((LM_EMERGENCY,
+ "MyImpl::BMClosedED_exec_i::ccm_activate\n"));
+}
+
+void
+MyImpl::BMClosedED_exec_i::ccm_passivate (void)
+{
+ // if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_EMERGENCY,
+ "MyImpl::BMClosedED_exec_i::ccm_passivate\n"));
+}
+
+void
+MyImpl::BMClosedED_exec_i::ccm_remove (void)
+{
+ // if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_EMERGENCY,
+ "MyImpl::BMClosedED_exec_i::ccm_remove\n"));
+}
+
+extern "C" BMCLOSEDED_EXEC_Export ::Components::EnterpriseComponent_ptr
+create_BasicSP_BMClosedED_Impl (void)
+{
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_RETURN (retval,
+ MyImpl::BMClosedED_exec_i,
+ ::Components::EnterpriseComponent::_nil ());
+
+ return retval;
+}
+
+/// Default ctor.
+MyImpl::BMClosedEDHome_exec_i::BMClosedEDHome_exec_i (void)
+{
+}
+
+/// Default dtor.
+MyImpl::BMClosedEDHome_exec_i::~BMClosedEDHome_exec_i (void)
+{
+}
+
+// Explicit home operations.
+
+// Implicit home operations.
+
+::Components::EnterpriseComponent_ptr
+MyImpl::BMClosedEDHome_exec_i::create (void)
+{
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ MyImpl::BMClosedED_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+}
+
+extern "C" BMCLOSEDED_EXEC_Export ::Components::HomeExecutorBase_ptr
+create_BasicSP_BMClosedEDHome_Impl (void)
+{
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ MyImpl::BMClosedEDHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+}
diff --git a/modules/CIAO/examples/BasicSP/BMClosedED/BMClosedED_exec.h b/modules/CIAO/examples/BasicSP/BMClosedED/BMClosedED_exec.h
new file mode 100644
index 00000000000..904421ec63b
--- /dev/null
+++ b/modules/CIAO/examples/BasicSP/BMClosedED/BMClosedED_exec.h
@@ -0,0 +1,133 @@
+// $Id$
+
+//================================================================
+/**
+ * @file BMClosedED_exec.h
+ *
+ * @author Balachandran Natarajan <bala@dre.vanderbilt.edu>
+ */
+//================================================================
+
+#ifndef CIAO_BMCLOSED_EXEC_H
+#define CIAO_BMCLOSED_EXEC_H
+
+#include "BMClosedEDEC.h"
+#include "tao/LocalObject.h"
+#include "BMClosedED_exec_export.h"
+
+// The namespace name for the actual implementation classes doesn't
+// really matter. Since there may be several different
+// implementations for a component, they can very well be in different
+// namespaces.
+namespace MyImpl
+{
+ /**
+ * @class ReadData_Impl
+ *
+ * Implementation of the ReadData interface
+ */
+ class BMCLOSEDED_EXEC_Export ReadData_Impl :
+ public virtual ::BasicSP::CCM_ReadData,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ /// Constructor
+ ReadData_Impl(const char* name);
+
+ void set_name (const char* name);
+
+ virtual char *
+ get_data (void);
+
+ ~ReadData_Impl (void);
+
+ private:
+ CORBA::String_var str_;
+ };
+
+ /**
+ * @class BMClosedED_exec_i
+ *
+ * An example RateGen executor implementation class.
+ */
+ class BMCLOSEDED_EXEC_Export BMClosedED_exec_i :
+ public virtual CIAO_BasicSP_BMClosedED_Impl::BMClosedED_Exec,
+ // CIAO container implementation depends on correct reference
+ // counting of local interfaces, so we take a short cut to
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ /// Default constructor.
+ BMClosedED_exec_i (void);
+
+ /// Default destructor.
+ ~BMClosedED_exec_i (void);
+
+ // Operations from HUDisplay::BMClosedED
+
+ virtual BasicSP::CCM_ReadData_ptr
+ get_dataout ();
+
+ virtual void
+ push_in_avail (BasicSP::DataAvailable *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 ();
+ protected:
+ CORBA::String_var str_;
+
+ MyImpl::ReadData_Impl* dataout_;
+
+ /// Copmponent specific context
+ BasicSP::CCM_BMClosedED_Context_var context_;
+ };
+
+ extern "C" BMCLOSEDED_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_BasicSP_BMClosedED_Impl (void);
+
+ /**
+ * @class BMClosedEDHome_exec_i
+ *
+ * BMClosedED home executor implementation class.
+ */
+ class BMCLOSEDED_EXEC_Export BMClosedEDHome_exec_i :
+ public virtual CIAO_BasicSP_BMClosedED_Impl::BMClosedEDHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ /// Default ctor.
+ BMClosedEDHome_exec_i ();
+
+ /// Default dtor.
+ ~BMClosedEDHome_exec_i ();
+
+ // Explicit home operations.
+
+ // Implicit home operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+}
+
+// Executor DLL entry point. CIAO's deployment and assembly framework
+// invokes this function on the resulting DLL to get the home executor.
+extern "C" BMCLOSEDED_EXEC_Export ::Components::HomeExecutorBase_ptr
+create_BasicSP_BMClosedEDHome_Impl (void);
+
+#endif /* CIAO_BMCLOSED_EXEC_H*/
diff --git a/modules/CIAO/examples/BasicSP/BMClosedED/config b/modules/CIAO/examples/BasicSP/BMClosedED/config
new file mode 100644
index 00000000000..a122025755d
--- /dev/null
+++ b/modules/CIAO/examples/BasicSP/BMClosedED/config
@@ -0,0 +1 @@
+BMClosedED_exec|createBMClosedEDHome_Impl|BMClosedED_svnt|createBMClosedEDHome_Servant
diff --git a/modules/CIAO/examples/BasicSP/BMDevice/BMDevice.idl b/modules/CIAO/examples/BasicSP/BMDevice/BMDevice.idl
new file mode 100644
index 00000000000..9c14d839875
--- /dev/null
+++ b/modules/CIAO/examples/BasicSP/BMDevice/BMDevice.idl
@@ -0,0 +1,31 @@
+//$Id$
+//=============================================================================
+/**
+ * @file BMDevice.idl
+ *
+ * Definition of the BMDevice component
+ *
+ * @author Balachandran Natarajan <bala@dre.vanderbilt.edu>
+ */
+//=============================================================================
+#ifndef CIAO_BMDEVICE_IDL
+#define CIAO_BMDEVICE_IDL
+
+#include "BasicSP.idl"
+#include "BasicSPE.idl"
+
+module BasicSP
+{
+ component BMDevice
+ {
+ provides ReadData data_read;
+ publishes DataAvailable data_available;
+ consumes TimeOut timeout;
+ };
+
+ home BMDeviceHome manages BMDevice
+ {
+ };
+};
+
+#endif /*CIAO_BMDEVICE_IDL */
diff --git a/modules/CIAO/examples/BasicSP/BMDevice/BMDevice.mpc b/modules/CIAO/examples/BasicSP/BMDevice/BMDevice.mpc
new file mode 100644
index 00000000000..b3c3a377bd5
--- /dev/null
+++ b/modules/CIAO/examples/BasicSP/BMDevice/BMDevice.mpc
@@ -0,0 +1,116 @@
+// $Id$
+
+project(BMDevice_idl_gen): componentidldefaults {
+ custom_only = 1
+ after += BasicSP_idl_gen
+ idlflags += -I $(CIAO_ROOT)/examples/BasicSP \
+ -Wb,stub_export_macro=BMDEVICE_STUB_Export \
+ -Wb,stub_export_include=BMDevice_stub_export.h \
+ -Wb,skel_export_macro=BMDEVICE_SVNT_Export \
+ -Wb,skel_export_include=BMDevice_svnt_export.h \
+ -Wb,exec_export_macro=BMDEVICE_EXEC_Export \
+ -Wb,exec_export_include=BMDevice_exec_export.h \
+
+ IDL_Files {
+ BMDevice.idl
+ }
+}
+
+project(BMDevice_lem_gen) : ciaoidldefaults {
+ after += BasicSP_lem_gen BMDevice_idl_gen
+ custom_only = 1
+ idlflags += -Wb,export_macro=BMDEVICE_EXEC_Export \
+ -Wb,export_include=BMDevice_exec_export.h \
+ -SS \
+ -I $(CIAO_ROOT)/examples/BasicSP
+
+ IDL_Files {
+ BMDeviceE.idl
+ }
+}
+
+project(BMDevice_stub): ccm_stub {
+ libout = ../lib
+ libpaths += ../lib
+ after += BasicSP_stub BMDevice_idl_gen
+ sharedname = BMDevice_stub
+ includes += $(CIAO_ROOT)/examples/BasicSP
+
+ libs += BasicSP_stub
+
+ dynamicflags = BMDEVICE_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Header_Files {
+ BMDeviceC.h
+ BMDevice_stub_export.h
+ }
+
+ Source_Files {
+ BMDeviceC.cpp
+ }
+
+ Inline_Files {
+ }
+}
+
+project(BMDevice_exec) : ciao_executor {
+ after += BMDevice_stub BMDevice_lem_gen BasicSP_exec
+ sharedname = BMDevice_exec
+ libs += BMDevice_stub BasicSP_stub BasicSP_exec
+ libout = ../lib
+ libpaths += ../lib
+
+ includes += $(CIAO_ROOT)/examples/BasicSP
+
+ dynamicflags = BMDEVICE_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Header_Files {
+ BMDevice_exec.h
+ BMDevice_exec_export.h
+ BMDeviceEC.h
+ }
+
+ Source_Files {
+ BMDevice_exec.cpp
+ BMDeviceEC.cpp
+ }
+
+ Inline_Files {
+ }
+}
+
+project(BMDevice_svnt) : ciao_servant {
+ after += BasicSP_svnt BMDevice_exec BasicSP_exec
+ includes += $(CIAO_ROOT)/examples/BasicSP
+
+ sharedname = BMDevice_svnt
+
+ libs += BMDevice_stub BMDevice_exec BasicSP_exec
+ libs += BasicSP_stub BasicSP_svnt
+ dynamicflags = BMDEVICE_SVNT_BUILD_DLL
+ libout = ../lib
+ libpaths += ../lib
+
+ IDL_Files {
+ }
+
+ Header_Files {
+ BMDeviceS.h
+ BMDevice_svnt.h
+ BMDevice_svnt_export.h
+ }
+
+ Source_Files {
+ BMDeviceS.cpp
+ BMDevice_svnt.cpp
+ }
+
+ Inline_Files {
+ }
+}
diff --git a/modules/CIAO/examples/BasicSP/BMDevice/BMDevice_exec.cpp b/modules/CIAO/examples/BasicSP/BMDevice/BMDevice_exec.cpp
new file mode 100644
index 00000000000..50a84ba37af
--- /dev/null
+++ b/modules/CIAO/examples/BasicSP/BMDevice/BMDevice_exec.cpp
@@ -0,0 +1,159 @@
+// $Id$
+
+#include "BMDevice_exec.h"
+
+#define DISPLACEMENT 256
+
+MyImpl::ReadData_Impl::ReadData_Impl (const char* name)
+ : str_ (name)
+{
+}
+
+MyImpl::ReadData_Impl::~ReadData_Impl (void)
+{
+}
+
+void
+MyImpl::ReadData_Impl::set_name (const char* name)
+{
+ this->str_ = name;
+}
+
+char *
+MyImpl::ReadData_Impl::get_data (void)
+{
+ return CORBA::string_dup (this->str_.in());
+}
+
+//=================================================
+
+/// Default constructor.
+MyImpl::BMDevice_exec_i::BMDevice_exec_i (void)
+ : data_read_ (new ReadData_Impl ("BM DEVICE DATA"))
+{
+}
+
+/// Default destructor.
+MyImpl::BMDevice_exec_i::~BMDevice_exec_i (void)
+{
+ delete this->data_read_;
+}
+
+BasicSP::CCM_ReadData_ptr
+MyImpl::BMDevice_exec_i::get_data_read (void)
+{
+ return
+ BasicSP::CCM_ReadData::_duplicate (this->data_read_);
+}
+
+void
+MyImpl::BMDevice_exec_i::push_timeout (BasicSP::TimeOut *)
+{
+ // Notify others
+ BasicSP::DataAvailable_var event =
+ new OBV_BasicSP::DataAvailable;
+
+ ACE_DEBUG ((LM_EMERGENCY,
+ "BMDevice, received a timeout from EC\n"));
+
+ this->context_->push_data_available (event);
+}
+
+// Operations from Components::SessionComponent
+void
+MyImpl::BMDevice_exec_i:: set_session_context (
+ Components::SessionContext_ptr ctx)
+{
+ ACE_DEBUG ((LM_EMERGENCY,
+ "MyImpl::BMDevice_exec_i::set_session_context\n"));
+
+ this->context_ =
+ BasicSP::CCM_BMDevice_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw CORBA::INTERNAL ();
+ }
+ // Urm, we actually discard exceptions thown from this operation.
+}
+
+void
+MyImpl::BMDevice_exec_i::configuration_complete (void)
+{
+}
+
+void
+MyImpl::BMDevice_exec_i::ccm_activate (void)
+{
+ ACE_DEBUG ((LM_EMERGENCY,
+ "MyImpl::BMDevice_exec_i::ccm_activate\n"));
+}
+
+void
+MyImpl::BMDevice_exec_i::ccm_passivate (void)
+{
+ ACE_DEBUG ((LM_EMERGENCY,
+ "MyImpl::BMDevice_exec_i::ccm_passivate\n"));
+}
+
+void
+MyImpl::BMDevice_exec_i::ccm_remove (void)
+{
+ ACE_DEBUG ((LM_EMERGENCY,
+ "MyImpl::BMDevice_exec_i::ccm_remove\n"));
+}
+
+extern "C" BMDEVICE_EXEC_Export ::Components::EnterpriseComponent_ptr
+create_BasicSP_BMDevice_Impl (void)
+{
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_RETURN (retval,
+ MyImpl::BMDevice_exec_i,
+ ::Components::EnterpriseComponent::_nil ());
+
+ return retval;
+}
+
+/// Default ctor.
+MyImpl::BMDeviceHome_exec_i::BMDeviceHome_exec_i (void)
+{
+}
+
+/// Default dtor.
+MyImpl::BMDeviceHome_exec_i::~BMDeviceHome_exec_i (void)
+{
+}
+
+// Explicit home operations.
+
+// Implicit home operations.
+
+::Components::EnterpriseComponent_ptr
+MyImpl::BMDeviceHome_exec_i::create (void)
+{
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (retval,
+ MyImpl::BMDevice_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+}
+
+
+extern "C" BMDEVICE_EXEC_Export ::Components::HomeExecutorBase_ptr
+create_BasicSP_BMDeviceHome_Impl (void)
+{
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (retval,
+ MyImpl::BMDeviceHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+}
+
diff --git a/modules/CIAO/examples/BasicSP/BMDevice/BMDevice_exec.h b/modules/CIAO/examples/BasicSP/BMDevice/BMDevice_exec.h
new file mode 100644
index 00000000000..7dee3fc7c43
--- /dev/null
+++ b/modules/CIAO/examples/BasicSP/BMDevice/BMDevice_exec.h
@@ -0,0 +1,130 @@
+// $Id$
+
+// ================================================================
+/**
+ * @file BMDevice_exec.h
+ *
+ * Header file for the actual BMDevice and BMDeviceHome component
+ * implementations. These classes are the implementations of local
+ * interfaces defined in BMDeviceEI.idl.
+ *
+ * @author Balachandran Natarajan <bala@dre.vanderbilt.edu>
+ */
+// ================================================================
+
+#ifndef CIAO_BMDEVICE_EXEC_H
+#define CIAO_BMDEVICE_EXEC_H
+
+#include "BMDevice_exec_export.h"
+#include "BMDeviceEC.h"
+#include "tao/LocalObject.h"
+
+namespace MyImpl
+{
+ /**
+ * @class ReadData_Impl
+ *
+ * Implementation of the ReadData interface
+ */
+ class BMDEVICE_EXEC_Export ReadData_Impl :
+ public virtual ::BasicSP::CCM_ReadData,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ /// Constructor
+ ReadData_Impl(const char* name);
+
+ void set_name (const char* name);
+
+ virtual char *
+ get_data (void);
+
+ ~ReadData_Impl (void);
+
+ private:
+ CORBA::String_var str_;
+ };
+
+ /**
+ * @class BMDEVICE_exec_i
+ *
+ * An example RateGen executor implementation class.
+ */
+ class BMDEVICE_EXEC_Export BMDevice_exec_i :
+ public virtual CIAO_BasicSP_BMDevice_Impl::BMDevice_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ /// Default constructor.
+ BMDevice_exec_i (void);
+
+ /// Default destructor.
+ ~BMDevice_exec_i (void);
+
+ // Operations from BasicSP::BMDevice
+
+ virtual BasicSP::CCM_ReadData_ptr
+ get_data_read (void);
+
+ virtual void
+ push_timeout (BasicSP::TimeOut *ev);
+
+ // 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);
+ protected:
+
+ /// Copmponent specific context
+ BasicSP::CCM_BMDevice_Context_var context_;
+
+ private:
+ MyImpl::ReadData_Impl* data_read_;
+ };
+
+ extern "C" BMDEVICE_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_BasicSP_BMDevice_Impl (void);
+
+ /**
+ * @class BMDeviceHome_exec_i
+ *
+ * BMDevice home executor implementation class.
+ */
+ class BMDEVICE_EXEC_Export BMDeviceHome_exec_i :
+ public virtual CIAO_BasicSP_BMDevice_Impl::BMDeviceHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ /// Default ctor.
+ BMDeviceHome_exec_i (void);
+
+ /// Default dtor.
+ ~BMDeviceHome_exec_i (void);
+
+ // Explicit home operations.
+
+ // Implicit home operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create (void);
+ };
+}
+
+// Executor DLL entry point. CIAO's deployment and assembly framework
+// invokes this function on the resulting DLL to get the home executor.
+extern "C" BMDEVICE_EXEC_Export ::Components::HomeExecutorBase_ptr
+createBMDeviceHome_Impl (void);
+
+#endif /* CIAO_BMDEVICE_EXEC_H*/
diff --git a/modules/CIAO/examples/BasicSP/BMDisplay/BMDisplay.idl b/modules/CIAO/examples/BasicSP/BMDisplay/BMDisplay.idl
new file mode 100644
index 00000000000..1bcf144de33
--- /dev/null
+++ b/modules/CIAO/examples/BasicSP/BMDisplay/BMDisplay.idl
@@ -0,0 +1,21 @@
+//$Id$
+
+#ifndef BMDISPLAY_IDL
+#define BMDISPLAY_IDL
+
+#include "BasicSP.idl"
+
+module BasicSP
+{
+ component BMDisplay
+ {
+ consumes DataAvailable data_ready;
+ uses ReadData comp_data;
+ };
+
+ home BMDisplayHome manages BMDisplay
+ {
+ };
+};
+
+#endif /* BMDISPLAY_IDL */
diff --git a/modules/CIAO/examples/BasicSP/BMDisplay/BMDisplay.mpc b/modules/CIAO/examples/BasicSP/BMDisplay/BMDisplay.mpc
new file mode 100644
index 00000000000..c3e3f300173
--- /dev/null
+++ b/modules/CIAO/examples/BasicSP/BMDisplay/BMDisplay.mpc
@@ -0,0 +1,118 @@
+// $Id$
+
+project(BMDisplay_idl_gen): componentidldefaults,anytypecode {
+ custom_only = 1
+ idlflags += -I $(CIAO_ROOT)/examples/BasicSP \
+ -Wb,stub_export_macro=BMDISPLAY_STUB_Export \
+ -Wb,stub_export_include=BMDisplay_stub_export.h \
+ -Wb,skel_export_macro=BMDISPLAY_SVNT_Export \
+ -Wb,skel_export_include=BMDisplay_svnt_export.h \
+ -Wb,exec_export_macro=BMDISPLAY_EXEC_Export \
+ -Wb,exec_export_include=BMDisplay_exec_export.h \
+
+ IDL_Files {
+ BMDisplay.idl
+ }
+}
+
+project(BMDisplay_lem_gen) : ciaoidldefaults {
+ after += BasicSP_lem_gen BMDisplay_idl_gen
+ custom_only = 1
+
+ idlflags += -I $(CIAO_ROOT)/examples/BasicSP \
+ -Wb,export_macro=BMDISPLAY_EXEC_Export \
+ -Wb,export_include=BMDisplay_exec_export.h \
+ -SS
+
+ IDL_Files {
+ BMDisplayE.idl
+ }
+
+}
+
+project(BMDisplay_stub): ccm_stub {
+ after += BasicSP_stub BMDisplay_idl_gen
+ sharedname = BMDisplay_stub
+ includes += $(CIAO_ROOT)/examples/BasicSP
+ libout = ../lib
+ libpaths += ../lib
+
+ libs += BasicSP_stub
+
+ dynamicflags = BMDISPLAY_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Header_Files {
+ BMDisplayC.h
+ BMDisplay_stub_export.h
+ }
+
+ Source_Files {
+ BMDisplayC.cpp
+ }
+
+ Inline_Files {
+ }
+}
+
+project(BMDisplay_exec) : ciao_executor {
+ after += BMDisplay_stub BMDisplay_lem_gen
+
+ sharedname = BMDisplay_exec
+ libs += BMDisplay_stub
+ libs += BasicSP_stub
+ includes += $(CIAO_ROOT)/examples/BasicSP
+ libout = ../lib
+ libpaths += ../lib
+
+ dynamicflags = BMDISPLAY_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Header_Files {
+ BMDisplay_exec.h
+ BMDisplay_exec_export.h
+ BMDisplayEC.h
+ }
+
+ Source_Files {
+ BMDisplay_exec.cpp
+ BMDisplayEC.cpp
+ }
+
+ Inline_Files {
+ }
+}
+
+project(BMDisplay_svnt) : ciao_servant {
+ after += BasicSP_svnt BMDisplay_exec
+ includes += $(CIAO_ROOT)/examples/BasicSP
+
+ sharedname = BMDisplay_svnt
+
+ libs += BMDisplay_stub BMDisplay_exec
+ libs += BasicSP_stub BasicSP_svnt
+ dynamicflags = BMDISPLAY_SVNT_BUILD_DLL
+ libout = ../lib
+ libpaths += ../lib
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ BMDisplayS.cpp
+ BMDisplay_svnt.cpp
+ }
+
+ Header_Files {
+ BMDisplayS.h
+ BMDisplay_svnt.h
+ BMDisplay_svnt_export.h
+ }
+
+ Inline_Files {
+ }
+}
diff --git a/modules/CIAO/examples/BasicSP/BMDisplay/BMDisplay_exec.cpp b/modules/CIAO/examples/BasicSP/BMDisplay/BMDisplay_exec.cpp
new file mode 100644
index 00000000000..c52461c27dd
--- /dev/null
+++ b/modules/CIAO/examples/BasicSP/BMDisplay/BMDisplay_exec.cpp
@@ -0,0 +1,142 @@
+// $Id$
+
+#include "BMDisplay_exec.h"
+
+/// Default constructor.
+MyImpl::BMDisplay_exec_i::BMDisplay_exec_i ()
+{
+}
+
+/// Default destructor.
+MyImpl::BMDisplay_exec_i::~BMDisplay_exec_i ()
+{
+}
+
+// Operations from BasicSP::BMDisplay
+
+void
+MyImpl::BMDisplay_exec_i::push_data_ready (
+ BasicSP::DataAvailable *ev
+ )
+{
+ ACE_UNUSED_ARG (ev);
+
+ ACE_DEBUG ((LM_EMERGENCY,
+ "BMDisplay - Doing computations\n"));
+
+ ACE_DEBUG ((LM_EMERGENCY,
+ "BMDisplay - Doing data fetch\n"));
+ // Refresh position
+ BasicSP::ReadData_var dat
+ = this->context_->get_connection_comp_data ();
+
+ if (CORBA::is_nil (dat.in ()))
+ throw CORBA::BAD_INV_ORDER ();
+
+ CORBA::String_var str =
+ dat->get_data ();
+
+ ACE_DEBUG ((LM_EMERGENCY,
+ "BMDisplay - Display data is [%s]\n",
+ str.in ()));
+
+}
+
+// Operations from Components::SessionComponent
+void
+MyImpl::BMDisplay_exec_i::set_session_context (
+ Components::SessionContext_ptr ctx
+ )
+{
+ ACE_DEBUG ((LM_EMERGENCY,
+ "MyImpl::BMDisplay_exec_i::set_session_context\n"));
+ this->context_ =
+ BasicSP::CCM_BMDisplay_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ throw CORBA::INTERNAL ();
+ // Urm, we actually discard exceptions thown from this operation.
+}
+
+void
+MyImpl::BMDisplay_exec_i::configuration_complete (
+ )
+{
+}
+
+void
+MyImpl::BMDisplay_exec_i::ccm_activate ()
+{
+ ACE_DEBUG ((LM_EMERGENCY,
+ "MyImpl::BMDisplay_exec_i::ccm_activate\n"));
+}
+
+void
+MyImpl::BMDisplay_exec_i::ccm_passivate (
+ )
+{
+ ACE_DEBUG ((LM_EMERGENCY,
+ "MyImpl::BMDisplay_exec_i::ccm_passivate\n"));
+}
+
+void
+MyImpl::BMDisplay_exec_i::ccm_remove ()
+{
+ ACE_DEBUG ((LM_EMERGENCY,
+ "MyImpl::BMDisplay_exec_i::ccm_remove\n"));
+}
+
+extern "C" BMDISPLAY_EXEC_Export ::Components::EnterpriseComponent_ptr
+create_BasicSP_BMDisplay_Impl (void)
+{
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_RETURN (retval,
+ MyImpl::BMDisplay_exec_i,
+ ::Components::EnterpriseComponent::_nil ());
+
+ return retval;
+}
+
+/// Default ctor.
+MyImpl::BMDisplayHome_exec_impl::BMDisplayHome_exec_impl ()
+{
+}
+
+/// Default dtor.
+MyImpl::BMDisplayHome_exec_impl::~BMDisplayHome_exec_impl ()
+{
+}
+
+// Explicit home operations.
+
+// Implicit home operations.
+
+::Components::EnterpriseComponent_ptr
+MyImpl::BMDisplayHome_exec_impl::create ()
+{
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ MyImpl::BMDisplay_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+}
+
+extern "C" BMDISPLAY_EXEC_Export ::Components::HomeExecutorBase_ptr
+create_BasicSP_BMDisplayHome_Impl (void)
+{
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ MyImpl::BMDisplayHome_exec_impl,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+}
diff --git a/modules/CIAO/examples/BasicSP/BMDisplay/BMDisplay_exec.h b/modules/CIAO/examples/BasicSP/BMDisplay/BMDisplay_exec.h
new file mode 100644
index 00000000000..e52ceb879a0
--- /dev/null
+++ b/modules/CIAO/examples/BasicSP/BMDisplay/BMDisplay_exec.h
@@ -0,0 +1,96 @@
+// $Id$
+
+//==============================================================
+/**
+ * @file BMDisplay_exec.h
+ *
+ * Header file for the actual BMDisplay and BMDisplayHome component
+ * implementations.
+ *
+ * @author Balachandran Natarajan <bala@dre.vanderbilt.edu>
+ */
+//==============================================================
+#ifndef CIAO_BMDISPLAY_EXEC_H
+#define CIAO_BMDISPLAY_EXEC_H
+
+#include "BMDisplayEC.h"
+#include "tao/LocalObject.h"
+#include "BMDisplay_exec_export.h"
+
+namespace MyImpl
+{
+ /**
+ * @class BMDisplay_exec_i
+ *
+ * RateGen executor implementation class.
+ */
+ class BMDISPLAY_EXEC_Export BMDisplay_exec_i :
+ public virtual CIAO_BasicSP_BMDisplay_Impl::BMDisplay_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ /// Default constructor.
+ BMDisplay_exec_i ();
+
+ /// Default destructor.
+ ~BMDisplay_exec_i ();
+
+ // Operations from BasicSP::BMDisplay
+
+ virtual void
+ push_data_ready (BasicSP::DataAvailable *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 ();
+ protected:
+ /// Copmponent specific context
+ BasicSP::CCM_BMDisplay_Context_var context_;
+ };
+
+ extern "C" BMDISPLAY_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_BasicSP_BMDisplay_Impl (void);
+
+ /**
+ * @class BMDisplayHome_exec_impl
+ *
+ * BMDisplay home executor implementation class.
+ */
+ class BMDISPLAY_EXEC_Export BMDisplayHome_exec_impl :
+ public virtual CIAO_BasicSP_BMDisplay_Impl::BMDisplayHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ /// Default ctor.
+ BMDisplayHome_exec_impl ();
+
+ /// Default dtor.
+ ~BMDisplayHome_exec_impl ();
+
+ // Explicit home operations.
+
+ // Implicit home operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+}
+
+extern "C" BMDISPLAY_EXEC_Export ::Components::HomeExecutorBase_ptr
+createBMDisplayHome_Impl (void);
+
+#endif /* BMDISPLAY_EXEC_H */
diff --git a/modules/CIAO/examples/BasicSP/BasicSP.idl b/modules/CIAO/examples/BasicSP/BasicSP.idl
new file mode 100644
index 00000000000..0b000c9cf56
--- /dev/null
+++ b/modules/CIAO/examples/BasicSP/BasicSP.idl
@@ -0,0 +1,48 @@
+// $Id$
+//=============================================================================
+/**
+ * @file BasicSP.idl
+ *
+ * Definition of events, and common interfaces used in the BasicSP module.
+ *
+ * @author Balachandran Natarajan <bala@dre.vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef CIAO_BASIC_SP_IDL
+#define CIAO_BASIC_SP_IDL
+
+#include <Components.idl>
+
+// @@NOTE: Do we need a pragma prefix. Anyway its broken now in TAO..
+// #pragma prefix ""
+
+module BasicSP
+{
+
+ /**
+ * @NOTE: Not sure whether this is a good abstraction. Just copying
+ * the stuff from Cadena folks.
+ */
+ /**
+ * @interface ReadData
+ *
+ */
+
+ interface ReadData {
+ string get_data ();
+ };
+
+ /**
+ * @eventtype Events that represent timeouts
+ */
+ eventtype TimeOut {};
+
+ /**
+ * @eventtype Events that represent data availability
+ */
+ eventtype DataAvailable {};
+
+};
+
+#endif /*CIAO_BASIC_SP_IDL*/
diff --git a/modules/CIAO/examples/BasicSP/BasicSP.mpc b/modules/CIAO/examples/BasicSP/BasicSP.mpc
new file mode 100644
index 00000000000..177c0f373a6
--- /dev/null
+++ b/modules/CIAO/examples/BasicSP/BasicSP.mpc
@@ -0,0 +1,100 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n HUDisplay"
+
+project(BasicSP_idl_gen): componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=BASICSP_STUB_Export \
+ -Wb,stub_export_include=BasicSP_stub_export.h \
+ -Wb,skel_export_macro=BASICSP_SVNT_Export \
+ -Wb,skel_export_include=BasicSP_svnt_export.h \
+ -Wb,exec_export_macro=BASICSP_EXEC_Export \
+ -Wb,exec_export_include=BasicSP_exec_export.h
+
+ IDL_Files {
+ BasicSP.idl
+ }
+}
+
+project(BasicSP_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ after += BasicSP_idl_gen
+ idlflags += -Wb,export_macro=BASICSP_EXEC_Export \
+ -Wb,export_include=BasicSP_exec_export.h \
+ -SS
+
+ IDL_Files {
+ BasicSPE.idl
+ }
+}
+
+project(BasicSP_stub): ccm_stub {
+ after += BasicSP_lem_gen
+ sharedname = BasicSP_stub
+ dynamicflags = BASICSP_STUB_BUILD_DLL
+ includes += $(CIAO_ROOT)/examples/BasicSP
+ libout = lib
+ libpaths += lib
+
+ IDL_Files {
+ }
+ Header_Files {
+ BasicSPC.h
+ }
+ Source_Files {
+ BasicSPC.cpp
+ }
+ Inline_Files {
+ }
+}
+
+project(BasicSP_svnt) : ciao_servant {
+ after += BasicSP_exec
+ sharedname = BasicSP_svnt
+ libs += BasicSP_exec BasicSP_stub
+ includes += $(CIAO_ROOT)/examples/BasicSP
+ dynamicflags = BASICSP_SVNT_BUILD_DLL
+ libout = lib
+ libpaths += lib
+
+ IDL_Files {
+ }
+
+ Header_Files {
+ BasicSPS.h
+ BasicSP_svnt.h
+ }
+
+ Source_Files {
+ BasicSPS.cpp
+ BasicSP_svnt.cpp
+ }
+
+ Inline_Files {
+ }
+}
+
+project(BasicSP_exec) : ciao_executor {
+ after += BasicSP_stub BasicSP_lem_gen
+ sharedname = BasicSP_exec
+ libs += BasicSP_stub
+ dynamicflags = BASICSP_EXEC_BUILD_DLL
+ includes += $(CIAO_ROOT)/examples/BasicSP
+ libout = lib
+ libpaths += lib
+
+ IDL_Files {
+ }
+
+ Header_Files {
+ BasicSP_exec_export.h
+ BasicSPEC.h
+ }
+
+ Source_Files {
+ BasicSPEC.cpp
+ }
+
+ Inline_Files {
+ }
+}
+
diff --git a/modules/CIAO/examples/BasicSP/BasicSP.mwc b/modules/CIAO/examples/BasicSP/BasicSP.mwc
new file mode 100644
index 00000000000..781791601d9
--- /dev/null
+++ b/modules/CIAO/examples/BasicSP/BasicSP.mwc
@@ -0,0 +1,9 @@
+// $Id$
+
+workspace {
+ BasicSP.mpc
+ BMClosedED/BMClosedED.mpc
+ BMDevice/BMDevice.mpc
+ BMDisplay/BMDisplay.mpc
+ EC/EC.mpc
+}
diff --git a/modules/CIAO/examples/BasicSP/EC/EC.idl b/modules/CIAO/examples/BasicSP/EC/EC.idl
new file mode 100644
index 00000000000..93cce410942
--- /dev/null
+++ b/modules/CIAO/examples/BasicSP/EC/EC.idl
@@ -0,0 +1,41 @@
+// $Id$
+//=============================================================================
+/**
+ * @file EC.idl
+ *
+ * Definition of events, and common interfaces used in the BasicSP module.
+ *
+ * @author Balachandran Natarajan <bala@dre.vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef CIAO_EC_IDL
+#define CIAO_EC_IDL
+
+#include "BasicSP.idl"
+
+module BasicSP
+{
+ interface trigger
+ {
+ void start ();
+ void stop ();
+ };
+
+ component EC supports trigger
+ {
+ publishes TimeOut timeout;
+
+ /// The attribute can be configured via the home or the
+ /// component property file.
+ attribute long hertz;
+ };
+
+ home ECHome manages EC
+ {
+ // Explicit operations
+ factory new_EC (in long hertz);
+ };
+};
+
+#endif /* CIAO_EC_IDL*/
diff --git a/modules/CIAO/examples/BasicSP/EC/EC.mpc b/modules/CIAO/examples/BasicSP/EC/EC.mpc
new file mode 100644
index 00000000000..ee27913422c
--- /dev/null
+++ b/modules/CIAO/examples/BasicSP/EC/EC.mpc
@@ -0,0 +1,157 @@
+// $Id$
+
+project(EC_idl_gen): componentidldefaults {
+ custom_only = 1
+ idlflags += -I $(CIAO_ROOT)/examples/BasicSP \
+ -Wb,stub_export_macro=EC_STUB_Export \
+ -Wb,stub_export_include=EC_stub_export.h \
+ -Wb,skel_export_macro=EC_SVNT_Export \
+ -Wb,skel_export_include=EC_svnt_export.h \
+ -Wb,exec_export_macro=EC_EXEC_Export \
+ -Wb,exec_export_include=EC_exec_export.h
+
+ IDL_Files {
+ EC.idl
+ }
+}
+
+project(EC_lem_gen) : ciaoidldefaults {
+ after += BasicSP_lem_gen EC_idl_gen
+ custom_only = 1
+
+ idlflags += -Wb,export_macro=EC_EXEC_Export \
+ -Wb,export_include=EC_exec_export.h \
+ -SS \
+ -I $(CIAO_ROOT)/examples/BasicSP
+
+ IDL_Files {
+ ECE.idl
+ }
+}
+
+project(EC_stub): ccm_stub {
+ after += BasicSP_stub EC_idl_gen
+ sharedname = EC_stub
+ includes += $(CIAO_ROOT)/examples/BasicSP
+ libpaths += ..
+ libout = ../lib
+ libpaths += ../lib
+
+ libs += BasicSP_stub
+
+ dynamicflags = EC_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Header_Files {
+ ECC.h
+ EC_stub_export.h
+ }
+
+ Source_Files {
+ ECC.cpp
+ }
+
+ Inline_Files {
+ }
+}
+
+project(EC_exec) : ciao_executor {
+ after += EC_stub EC_lem_gen
+ sharedname = EC_exec
+ libs += EC_stub BasicSP_stub
+ includes += $(CIAO_ROOT)/examples/BasicSP
+ libout = ../lib
+ libpaths += ../lib
+
+ dynamicflags = EC_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Header_Files {
+ EC_exec.h
+ EC_exec_export.h
+ ECEC.h
+ }
+
+ Source_Files {
+ EC_exec.cpp
+ ECEC.cpp
+ }
+
+ Inline_Files {
+ }
+}
+
+project(EC_svnt) : ciao_servant {
+ after += BasicSP_svnt EC_exec
+ includes += $(CIAO_ROOT)/examples/BasicSP
+
+ sharedname = EC_svnt
+
+ libs += EC_stub EC_exec
+ libs += BasicSP_stub BasicSP_svnt
+ dynamicflags = EC_SVNT_BUILD_DLL
+ libout = ../lib
+ libpaths += ../lib
+
+ IDL_Files {
+ }
+
+ Header_Files {
+ ECS.h
+ EC_svnt.h
+ EC_svnt_export.h
+ }
+
+ Source_Files {
+ ECS.cpp
+ EC_svnt.cpp
+ }
+}
+
+project (EC_client) : ccm_stub {
+ after += EC_stub
+ exename = client
+ libs += EC_stub BasicSP_stub
+ includes += $(CIAO_ROOT)/examples/BasicSP
+ libout = ../lib
+ libpaths += ../lib
+
+ IDL_Files {
+ }
+
+ Header_Files {
+ }
+
+ Source_Files {
+ client.cpp
+ }
+
+ Inline_Files {
+ }
+}
+
+project (EC_controller) : ccm_stub {
+ after += EC_stub
+ exename = controller
+ includes += $(CIAO_ROOT)/examples/BasicSP
+ libs += EC_stub BasicSP_stub
+ libout = ../lib
+ libpaths += ../lib
+
+ IDL_Files {
+ }
+
+ Header_Files {
+ }
+
+ Source_Files {
+ controller.cpp
+ }
+
+ Inline_Files {
+ }
+}
diff --git a/modules/CIAO/examples/BasicSP/EC/EC_exec.cpp b/modules/CIAO/examples/BasicSP/EC/EC_exec.cpp
new file mode 100644
index 00000000000..9c903f9b2c0
--- /dev/null
+++ b/modules/CIAO/examples/BasicSP/EC/EC_exec.cpp
@@ -0,0 +1,296 @@
+// $Id$
+
+#include "EC_exec.h"
+#include "ace/Timer_Queue.h"
+#include "ace/Reactor.h"
+
+//=================================================================
+
+MyImpl::timeout_Handler::timeout_Handler (MyImpl::EC_exec_i *cb)
+ : active_ (0),
+ done_ (0),
+ tid_ (0),
+ pulse_callback_ (cb)
+{
+ // Nothing
+ this->reactor (new ACE_Reactor);
+}
+
+MyImpl::timeout_Handler::~timeout_Handler ()
+{
+ delete this->reactor ();
+ this->reactor (0);
+}
+
+int
+MyImpl::timeout_Handler::open_h ()
+{
+ return this->activate ();
+}
+
+int
+MyImpl::timeout_Handler::close_h ()
+{
+ this->done_ = 1;
+ this->reactor ()->notify ();
+
+ ACE_DEBUG ((LM_EMERGENCY, "Waiting\n"));
+ return this->wait ();
+}
+
+int
+MyImpl::timeout_Handler::start (CORBA::Long hertz)
+{
+ if (hertz == 0 || this->active_ != 0) // Not valid
+ return -1;
+
+ long usec = 1000000 / hertz;
+
+ this->tid_ = this->reactor ()->schedule_timer (this,
+ 0,
+ ACE_Time_Value (0, usec),
+ ACE_Time_Value (0, usec));
+
+ this->active_ = 1;
+ return 0;
+}
+
+int
+MyImpl::timeout_Handler::stop (void)
+{
+ if (this->active_ == 0) // Not valid.
+ return -1;
+
+ this->reactor ()->cancel_timer (this);
+
+ this->active_ = 0;
+ return 0;
+}
+
+int
+MyImpl::timeout_Handler::active (void)
+{
+ return this->active_;
+}
+
+int
+MyImpl::timeout_Handler::handle_close (ACE_HANDLE handle,
+ ACE_Reactor_Mask close_mask)
+{
+ ACE_DEBUG ((LM_EMERGENCY,
+ ACE_TEXT ("[%x] handle = %d, close_mask = %d\n"),
+ this,
+ handle,
+ close_mask));
+
+ return 0;
+}
+
+int
+MyImpl::timeout_Handler::handle_timeout (const ACE_Time_Value &,
+ const void *)
+{
+ this->pulse_callback_->pulse ();
+
+ // ACE_DEBUG ((LM_EMERGENCY,
+ // ACE_TEXT ("[%x] with count #%05d timed out at %d.%d!\n"),
+ // this,
+ // tv.sec (),
+ // tv.usec ()));
+
+ return 0;
+}
+
+int
+MyImpl::timeout_Handler::svc (void)
+{
+ this->reactor ()->owner (ACE_OS::thr_self ());
+
+ while (!this->done_)
+ this->reactor ()->handle_events ();
+
+ return 0;
+}
+
+//=================================================================
+
+MyImpl::EC_exec_i::EC_exec_i ()
+ : hertz_ (0),
+ pulser_ (this)
+{
+
+}
+
+MyImpl::EC_exec_i::EC_exec_i (CORBA::Long hz)
+ : hertz_ (hz),
+ pulser_ (this)
+{
+}
+
+MyImpl::EC_exec_i::~EC_exec_i ()
+{
+}
+
+CORBA::Long
+MyImpl::EC_exec_i::hertz ()
+{
+ return this->hertz_;
+}
+
+void
+MyImpl::EC_exec_i::hertz (CORBA::Long hertz)
+{
+ this->hertz_ = hertz;
+}
+
+// Operations from supported interface(s)
+
+void
+MyImpl::EC_exec_i::start ()
+{
+ if (this->hertz_ == 0 || this->pulser_.active())
+ throw CORBA::BAD_INV_ORDER ();
+
+ // @@ Start the rate generator
+ this->pulser_.start (this->hertz_);
+}
+
+void
+MyImpl::EC_exec_i::stop ()
+{
+ if (! this->pulser_.active ())
+ throw CORBA::BAD_INV_ORDER ();
+
+ // @@ stop the rate generator
+ this->pulser_.stop ();
+}
+
+CORBA::Boolean
+MyImpl::EC_exec_i::active ()
+{
+ return this->pulser_.active ();
+}
+
+// Operations from Components::SessionComponent
+
+void
+MyImpl::EC_exec_i::set_session_context (Components::SessionContext_ptr ctx)
+{
+ ACE_DEBUG ((LM_EMERGENCY, "MyImpl::EC_exec_i::set_session_context\n"));
+
+ this->context_ =
+ BasicSP::CCM_EC_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ throw CORBA::INTERNAL ();
+ // Urm, we actually discard exceptions thown from this operation.
+
+}
+
+void
+MyImpl::EC_exec_i::configuration_complete ()
+{
+}
+
+void
+MyImpl::EC_exec_i::ccm_activate ()
+{
+ ACE_DEBUG ((LM_EMERGENCY, "MyImpl::EC_exec_i::ccm_activate\n"));
+
+ this->pulser_.open_h ();
+}
+
+void
+MyImpl::EC_exec_i::ccm_passivate ()
+{
+ ACE_DEBUG ((LM_EMERGENCY, "MyImpl::EC_exec_i::ccm_passivate\n"));
+ this->pulser_.close_h ();
+}
+
+void
+MyImpl::EC_exec_i::ccm_remove ()
+{
+ ACE_DEBUG ((LM_EMERGENCY, "MyImpl::EC_exec_i::ccm_remove\n"));
+}
+
+void
+MyImpl::EC_exec_i::pulse (void)
+{
+ try
+ {
+ ACE_DEBUG ((LM_EMERGENCY,
+ ACE_TEXT ("Pushing BasicSP::TimeOut event!\n")));
+
+ BasicSP::TimeOut_var ev = new OBV_BasicSP::TimeOut ();
+
+ this->context_->push_timeout (ev.in ());
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Caught exception while pushing "
+ "BasicSP::TimeOut event to BMDevice");
+ }
+}
+
+extern "C" EC_EXEC_Export ::Components::EnterpriseComponent_ptr
+create_BasicSP_EC_Impl (void)
+{
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_RETURN (retval,
+ MyImpl::EC_exec_i,
+ ::Components::EnterpriseComponent::_nil ());
+
+ return retval;
+}
+
+MyImpl::ECHome_exec_i::ECHome_exec_i ()
+{
+}
+
+MyImpl::ECHome_exec_i::~ECHome_exec_i ()
+{
+}
+
+::Components::EnterpriseComponent_ptr
+MyImpl::ECHome_exec_i::new_EC (CORBA::Long hertz)
+{
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ MyImpl::EC_exec_i (hertz),
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+}
+
+::Components::EnterpriseComponent_ptr
+MyImpl::ECHome_exec_i::create ()
+{
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ MyImpl::EC_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+}
+
+extern "C" EC_EXEC_Export ::Components::HomeExecutorBase_ptr
+create_BasicSP_ECHome_Impl (void)
+{
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ MyImpl::ECHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+}
diff --git a/modules/CIAO/examples/BasicSP/EC/EC_exec.h b/modules/CIAO/examples/BasicSP/EC/EC_exec.h
new file mode 100644
index 00000000000..e42352971cd
--- /dev/null
+++ b/modules/CIAO/examples/BasicSP/EC/EC_exec.h
@@ -0,0 +1,168 @@
+// $Id$
+
+//============================================================
+/**
+ * @file EC_exec.h
+ *
+ * Header file for the actualy EC and ECHome component
+ * implementation.
+ *
+ * @author Balachandran Natarajan <bala@dre.vanderbilt.edu>
+ */
+//============================================================
+
+#ifndef EC_EXEC_H
+#define EC_EXEC_H
+
+#include "ECEC.h"
+#include "tao/LocalObject.h"
+#include "ace/Thread_Manager.h"
+#include "ace/Task.h"
+#include "EC_exec_export.h"
+
+namespace MyImpl
+{
+ // Forward decl.
+ class EC_exec_i;
+
+ /**
+ * @brief Active pulse generater
+ */
+ class timeout_Handler : public ACE_Task_Base
+ {
+ public:
+ // Default constructor
+ timeout_Handler (EC_exec_i *cb);
+ ~timeout_Handler ();
+
+ int open_h (void);
+
+ int close_h (void);
+
+ int start (CORBA::Long hertz);
+
+ int stop (void);
+
+ int active (void);
+
+ // Handle the timeout.
+ virtual int handle_timeout (const ACE_Time_Value &tv,
+ const void *arg);
+
+ // Called when <Time_Handler> is removed.
+ virtual int handle_close (ACE_HANDLE handle,
+ ACE_Reactor_Mask close_mask);
+
+ virtual int svc (void);
+
+ private:
+ /// Tracking whether we are actively generating pulse or not.
+ long active_;
+
+ /// Flag to indicate completion of this active object.
+ int done_;
+
+ /// The timer id we are waiting.
+ long tid_;
+
+ EC_exec_i *pulse_callback_;
+
+ ACE_Thread_Manager thr_mgr_;
+ };
+
+ extern "C" EC_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_BasicSP_EC_Impl (void);
+
+ /**
+ * @class EC_exec_i
+ *
+ * EC executor implementation class.
+ */
+ class EC_EXEC_Export EC_exec_i :
+ public virtual CIAO_BasicSP_EC_Impl::EC_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ /// Default constructor.
+ EC_exec_i ();
+
+ /// Initialize with a default frequency.
+ EC_exec_i (CORBA::Long hz);
+
+ /// Default destructor.
+ ~EC_exec_i ();
+
+ // Attribute operations.
+
+ virtual CORBA::Long hertz ();
+
+ virtual void hertz (CORBA::Long hertz);
+
+ // Operations from supported interface(s)
+
+ virtual void start ();
+
+ virtual void stop ();
+
+ virtual CORBA::Boolean active ();
+
+ // 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 ();
+
+ /// Helper function to be called back by timeout_Handler
+ void pulse (void);
+
+ protected:
+ /// Frequency
+ CORBA::Long hertz_;
+
+ /// Copmponent specific context
+ BasicSP::CCM_EC_Context_var context_;
+
+ /// An active object that actually trigger the generation of
+ /// periodic events.
+ timeout_Handler pulser_;
+ };
+
+ /**
+ * @class ECHome_exec_i
+ *
+ * EC home executor implementation class.
+ */
+ class EC_EXEC_Export ECHome_exec_i :
+ public virtual ::CIAO_BasicSP_EC_Impl::ECHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ /// Default ctor.
+ ECHome_exec_i ();
+
+ /// Default dtor.
+ ~ECHome_exec_i ();
+
+ // Explicit home operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ new_EC (CORBA::Long hertz);
+
+ // Implicit home operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+}
+
+extern "C" EC_EXEC_Export ::Components::HomeExecutorBase_ptr
+createECHome_Impl (void);
+
+#endif /* CIAO_ECGEN_EXEC_H */
diff --git a/modules/CIAO/examples/BasicSP/EC/README b/modules/CIAO/examples/BasicSP/EC/README
new file mode 100644
index 00000000000..7e032780ab1
--- /dev/null
+++ b/modules/CIAO/examples/BasicSP/EC/README
@@ -0,0 +1,9 @@
+/**
+
+@page EC README File
+
+ The EC component. This shouldnt be needed if we had a way to
+integrate EC sugly into CIAO. We dont at the time of writing this
+example on May 12, 2003. Hence this holy hack!
+
+*/
diff --git a/modules/CIAO/examples/BasicSP/EC/client.cpp b/modules/CIAO/examples/BasicSP/EC/client.cpp
new file mode 100644
index 00000000000..ace0a8c1209
--- /dev/null
+++ b/modules/CIAO/examples/BasicSP/EC/client.cpp
@@ -0,0 +1,62 @@
+// $Id$
+
+//==============================================================
+/**
+ * @file client.cpp
+ *
+ * This is a simple client test program that interact with the EC
+ * component implementation. This test uses the explicit factory
+ * operation in the home interface to create a EC component
+ * instance, run it for a while, and destroy the component instance.
+ */
+//==============================================================
+
+#include "ECC.h"
+#include "ace/streams.h"
+#include "ace/OS_NS_unistd.h"
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+ // Initialize orb
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ // Resolve HomeFinder interface
+
+ CORBA::Object_var obj
+ = orb->string_to_object ("file://ec.ior");
+
+ BasicSP::ECHome_var home
+ = BasicSP::ECHome::_narrow (obj.in ());
+
+ if (CORBA::is_nil (home.in ()))
+ ACE_ERROR_RETURN ((LM_ERROR, "Unable to acquire ECHome objref\n"), -1);
+
+ BasicSP::EC_var pulser
+ = home->create ();
+
+ // Place to plug in the rate
+ pulser->hertz (5);
+
+ pulser->start ();
+
+ ACE_OS::sleep (45);
+
+ pulser->stop ();
+
+ home->remove_component (pulser.in ());
+
+ orb->destroy ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Who is the culprit\n");
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Uncaught CORBA exception\n"),
+ 1);
+ }
+
+ return 0;
+}
diff --git a/modules/CIAO/examples/BasicSP/EC/controller.cpp b/modules/CIAO/examples/BasicSP/EC/controller.cpp
new file mode 100644
index 00000000000..5897abb93ee
--- /dev/null
+++ b/modules/CIAO/examples/BasicSP/EC/controller.cpp
@@ -0,0 +1,126 @@
+// $Id$
+
+/**
+ * @file controller.cpp
+ *
+ * This program interact with a EC component, and set the rate of the
+ * EC.
+ */
+
+#include "ECC.h"
+#include "ace/Get_Opt.h"
+#include "ace/streams.h"
+
+const ACE_TCHAR *rategen_ior_ = ACE_TEXT("file://rategen.ior");
+int rate = 3;
+int turn_on = 1;
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("k:r:of"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ {
+ switch (c)
+ {
+ case 'o':
+ turn_on = 1;
+ break;
+
+ case 'f':
+ turn_on = 0;
+ break;
+
+ case 'k':
+ rategen_ior_ = get_opts.opt_arg ();
+ break;
+
+ case 'r':
+ rate = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+
+ case '?': // display help for use of the server.
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s\n"
+ "-o (Turn on the rate generator)\n"
+ "-f (Turn off the rate generator)\n"
+ "-k <EC IOR> (default is file://rategen.ior)\n"
+ "-r <rate in hertz> (default is 3)\n"
+ "\n",
+ argv [0]),
+ -1);
+ break;
+ }
+ }
+
+ if (rategen_ior_ == 0)
+ {
+ rategen_ior_ = ACE_TEXT("file://ec.ior");
+ }
+
+ if (rate == 0)
+ {
+ rate = 3;
+ }
+
+ return 0;
+}
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+ // Initialize orb
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ if (parse_args (argc, argv) != 0)
+ {
+ return -1;
+ }
+
+ CORBA::Object_var obj =
+ orb->string_to_object (rategen_ior_);
+
+ BasicSP::EC_var pulser
+ = BasicSP::EC::_narrow (obj.in ());
+
+ if (CORBA::is_nil (pulser.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Unable to acquire 'EC' objref\n"),
+ -1);
+ }
+
+ pulser->hertz (rate);
+
+ if (turn_on)
+ {
+ pulser->hertz (rate);
+
+ ACE_DEBUG ((LM_EMERGENCY, "Start up the Event services\n"));
+
+ pulser->start ();
+ }
+ else
+ {
+ pulser->stop ();
+
+ ACE_DEBUG ((LM_EMERGENCY, "Stop the ES\n"));
+ }
+
+ orb->destroy ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Who is the culprit\n");
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Uncaught CORBA exception\n"),
+ 1);
+ }
+
+ return 0;
+}
diff --git a/modules/CIAO/examples/BasicSP/README.html b/modules/CIAO/examples/BasicSP/README.html
new file mode 100644
index 00000000000..9bd740215e1
--- /dev/null
+++ b/modules/CIAO/examples/BasicSP/README.html
@@ -0,0 +1,70 @@
+<HTML>
+<!-- $Id$ -->
+<BODY>
+
+This document describes how to compile/run the BasicSP (HUDisplay) example with the new DnC implementation.
+
+<H3> Installing </H3>
+
+<UL>
+ <LI> Make sure you have the latest DAnCE framework built.
+ </LI>
+
+ <LI>
+ Get the latest cidl compiler (if you did not compile from source) from:
+ <A href="http://www.dre.vanderbilt.edu/cidlc/binary/">
+ http://www.dre.vanderbilt.edu/cidlc/binary/
+ </A>
+
+ Copy the file into the <code> $CIAO_ROOT/bin </code> directory.
+ Build ACE, TAO, DAnCE before you proceed.
+
+ <br><br>
+ <em>NOTE</em>: <br>
+ While buiding DAnCE, we also suggest that you build the tests in the $CIAO_ROOT/test directory and make sure
+ all the tests run OK before you proceed to try out the BasicSP example or any other DAnCE-based
+ applications. To do this, open the file
+
+ $ACE_ROOT/bin/MakeProjectCreator/config/global.features,
+
+ then change the line from "cidl = 0" to "cidl = 1". <br><br>
+
+ After this, go back to the $CIAO_ROOT/DAnCE directory to generate your workspace/project or makefile by using MPC.<br>
+ After the DAnCE and the tests are build OK, go to the $CIAO_ROOT/DAnCE/tests/NodeApplicationTest directory and make
+ sure all the three perl scripts (run_test.pl, run_test_simple.pl and run_test_ex.pl) run successfully.
+
+ <br><br>
+ </LI>
+
+ <LI> Generate the project/make files for the <em> BasicSP </em> example directory:
+ <UL>
+ <LI> <em> linux: </em> <code> [in $CIAO_ROOT/examples/BasicSP] mwc.pl -type gnuace</code> </LI>
+ <LI> <em> windows: </em> <code> [in %CIAO_ROOT%/examples/BasicSP] mwc.pl -type vc71</code> </LI>
+ </UL>
+ </LI>
+
+
+ <LI> Build the generated solution/make files </LI>
+</UL>
+
+<H3> Running the test </H3>
+
+<UL>
+
+ <LI> Change into the $CIAO_ROOT/examples/BasicSP/descriptors directory Start NodeManagers (NodeDameon) by running <code> basicNodeDaemon.pl </code>
+
+ <LI> Start the execution manager:
+ <code>$CIAO_ROOT/DAnCE/ExecutionManager/Execution_Manager -o EM.ior -i NodeManagerMap.dat </code>
+ </LI>
+
+ <LI> Start the executor:
+ <code> $CIAO_ROOT/DAnCE/Plan_Launcher/plan_launcher -p flattern_deploymentplan.cdp -k file://EM.ior </code>
+
+ <LI> After this, components should be deployed successfully. You can run the $CIAO_ROOT/examples/BasicSP/EC/controller to start the application.
+ Please make sure that the component IOR file for the EC component is present when you run this client.
+
+ <BR/>
+ </LI>
+</UL>
+
+</BODY> </HTML>
diff --git a/modules/CIAO/examples/BasicSP/RepoMan_Usage.html b/modules/CIAO/examples/BasicSP/RepoMan_Usage.html
new file mode 100644
index 00000000000..b0854d03b96
--- /dev/null
+++ b/modules/CIAO/examples/BasicSP/RepoMan_Usage.html
@@ -0,0 +1,117 @@
+<!-- $Id$ -->
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <title>Step-By-Step instructions about how to use Repository Manager with DAnCE</title>
+</head>
+
+<body
+ text = "#000000"
+ link = "#000fff"
+ vLink= "#ff0f0f"
+ aLink = "#0000ff"
+ bgColor = "#ffffff">
+
+<hr><h2>Step-By-Step instructions about how to use Repository Manager with DAnCE</h2><hr>
+
+<P>This file explains how to run the BasicSP example using the integrated Repository Manager (RepoMan).<P>
+
+<li>Be sure to add $CIAO_ROOT/HTTP_DOWNLOADED_LIBS into your PATH environment variable. This directory include the
+downloaded component lib files.</li> <P>
+
+<li>If you want to use CORBA <em>naming service</em> to get the RepoMan object reference, then please start naming
+service with multicast mode.</li> <P>
+<PRE>
+ $TAO_ROOT/orbsvcs/Naming_Service/naming_service -m 1
+</PRE>
+
+<li>Build & start JAWS server.</li> <P>
+<OL>
+<li> Be sure to set JAWS_DOCUMENT_ROOT to the installation path of the RepoMan, i.e.,
+$CIAO_ROOT/DAnCE/RepositoryManager.</li>
+<li> Start JAWS:</li>
+<PRE>
+Change the current directory into $ACE_ROOT/apps/JAWS/server
+main
+</PRE>
+</OL>
+
+<li>Start RepoMan. Make sure you have BasicSP or BMClosedED, BMDevice, BMDisplay & EC installed in the
+RepoMan you want to use. Please refer to the README file of RepoMan to get the instructions
+about how to installed Packages into RepoMan.</li> <P>
+<OL>
+<li>Using ior file: </li>
+<PRE>
+Change the current directory into $CIAO_ROOT/DAnCE/RepositoryManager
+RepositoryManagerDaemon -o
+</PRE>
+<li>Using Naming Service:</li>
+<PRE>
+Change the current directory into $CIAO_ROOT/DAnCE/RepositoryManager
+RepositoryManagerDaemon -v [NameofRM]
+</PRE>
+</OL>
+
+<li>Change the current directory into $CIAO_ROOT/examples/BasicSP/descriptors.</li> <P>
+
+<li>Start NodeManagers.</li> <P>
+<PRE>
+ basicNodeDaemon.pl
+</PRE>
+
+<li>Start ExecutionManager.</li> <P>
+<PRE>
+ $CIAO_ROOT/DAnCE/ExecutionManager/Execution_Manager -o EM.ior -i NodeManagerMap.dat
+</PRE>
+
+<li>Start plan_launcher.</li> <P>
+<OL>
+<li>Not using RepoMan:</li>
+<PRE>
+$CIAO_ROOT/DAnCE/Plan_Launcher/plan_launcher -p flattened_deploymentplan.cdp -k file://EM.ior
+</PRE>
+
+<li>Using ior file to get RepoMan, providing the name of one composite componemt:</li>
+<PRE>
+$CIAO_ROOT/DAnCE/Plan_Launcher/plan_launcher -p flattened_deploymentplan.cdp
+-a BasicSP
+-k file://EM.ior
+-l file://$CIAO_ROOT/DAnCE/RepositoryManager/RepositoryManagerDaemon.ior
+</PRE>
+
+<li>Using naming service to get RepoMan, providing the name of one composite componemt:</li>
+<PRE>
+$CIAO_ROOT/DAnCE/Plan_Launcher/plan_launcher -p flattened_deploymentplan.cdp
+-a BasicSP
+-k file://EM.ior
+-v [NameofRM]
+</PRE>
+
+<li>Using naming service to get RepoMan, providing the names of several individual componemts:</li>
+<PRE>
+$CIAO_ROOT/DAnCE/Plan_Launcher/plan_launcher -p flattened_deploymentplan.cdp
+-a BMClosedED+BMDevice+BMDisplay+EC
+-k file://EM.ior
+-v [NameofRM]
+</PRE>
+
+<li>Using naming service to get RepoMan, providing the types of several individual componemts:</li>
+<PRE>
+$CIAO_ROOT/DAnCE/Plan_Launcher/plan_launcher -p flattened_deploymentplan.cdp
+-e IDL:BasicSP/EC:1.0+IDL:BasicSP/BMDisplay:1.0+IDL:BasicSP/BMDevice:1.0+IDL:BasicSP/BMClosedED:1.0
+-k file://EM.ior
+-v [NameofRM]
+</PRE>
+</OL>
+
+<li>Start the application.</li>
+<PRE>
+ $CIAO_ROOT/examples/BasicSP/EC/controller
+</PRE>
+
+<hr><b>Email: </b><a href="mailto:"</a<ADDRESS>shanshan.jiang@vanderbilt.edu</ADDRESS>
+
+</body>
+
+</html>
diff --git a/modules/CIAO/examples/BasicSP/descriptors/BasicSP.dat b/modules/CIAO/examples/BasicSP/descriptors/BasicSP.dat
new file mode 100644
index 00000000000..2131aeec973
--- /dev/null
+++ b/modules/CIAO/examples/BasicSP/descriptors/BasicSP.dat
@@ -0,0 +1,4 @@
+EC corbaloc:iiop:localhost:10000/EC.NodeManager
+BMDisplay corbaloc:iiop:localhost:20000/BMDisplay.NodeManager
+BMClosedED corbaloc:iiop:localhost:30000/BMClosedED.NodeManager
+BMDevice corbaloc:iiop:localhost:40000/BMDevice.NodeManager
diff --git a/modules/CIAO/examples/BasicSP/descriptors/BasicSP_Homed.cdp b/modules/CIAO/examples/BasicSP/descriptors/BasicSP_Homed.cdp
new file mode 100644
index 00000000000..cb705023256
--- /dev/null
+++ b/modules/CIAO/examples/BasicSP/descriptors/BasicSP_Homed.cdp
@@ -0,0 +1,504 @@
+<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>BasicSP_Homed</label>
+ <UUID>BasicSP_Homed</UUID>
+ <implementation xmi:id="ECHomeImplementation">
+ <name>ECHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="EC_ExecArtifact" />
+ <artifact xmi:idref="EC_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_BasicSP_ECHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_BasicSP_ECHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>EC_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>EC_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+ <implementation xmi:id="BMClosedEDHomeImplementation">
+ <name>BMClosedEDHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="BMClosedED_ExecArtifact" />
+ <artifact xmi:idref="BMClosedED_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_BasicSP_BMClosedEDHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_BasicSP_BMClosedEDHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>BMClosedED_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>BMClosedED_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+ <implementation xmi:id="BMDeviceHomeImplementation">
+ <name>BMDeviceHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="BMDevice_ExecArtifact" />
+ <artifact xmi:idref="BMDevice_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_BasicSP_BMDeviceHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_BasicSP_BMDeviceHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>BMDevice_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>BMDevice_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+ <implementation xmi:id="BMDisplayHomeImplementation">
+ <name>BMDisplayHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="BMDisplay_ExecArtifact" />
+ <artifact xmi:idref="BMDisplay_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_BasicSP_BMDisplayHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_BasicSP_BMDisplayHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>BMDisplay_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>BMDisplay_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+ <implementation xmi:id="ECComponentImplementation">
+ <name>ECComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="EC_ExecArtifact" />
+ <artifact xmi:idref="EC_SvntArtifact" />
+ <artifact xmi:idref="EC_StubArtifact" />
+ </implementation>
+ <implementation xmi:id="BMClosedEDComponentImplementation">
+ <name>BMClosedEDComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="BMClosedED_ExecArtifact" />
+ <artifact xmi:idref="BMClosedED_SvntArtifact" />
+ <artifact xmi:idref="BMClosedED_StubArtifact" />
+ </implementation>
+ <implementation xmi:id="BMDeviceComponentImplementation">
+ <name>BMDeviceComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="BMDevice_ExecArtifact" />
+ <artifact xmi:idref="BMDevice_SvntArtifact" />
+ <artifact xmi:idref="BMDevice_StubArtifact" />
+ </implementation>
+ <implementation xmi:id="BMDisplayComponentImplementation">
+ <name>BMDisplayComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="BMDisplay_ExecArtifact" />
+ <artifact xmi:idref="BMDisplay_SvntArtifact" />
+ <artifact xmi:idref="BMDisplay_StubArtifact" />
+ </implementation>
+ <instance xmi:id="ECHomeInstance">
+ <name>ECHome</name>
+ <node>EC</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ECHomeImplementation" />
+ </instance>
+ <instance xmi:id="BMClosedEDHomeInstance">
+ <name>BMClosedEDHome</name>
+ <node>BMClosedED</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="BMClosedEDHomeImplementation" />
+ </instance>
+ <instance xmi:id="BMDeviceHomeInstance">
+ <name>BMDeviceHome</name>
+ <node>BMDevice</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="BMDeviceHomeImplementation" />
+ </instance>
+ <instance xmi:id="BMDisplayHomeInstance">
+ <name>BMDisplayHome</name>
+ <node>BMDisplay</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="BMDisplayHomeImplementation" />
+ </instance>
+ <instance xmi:id="ECComponentInstance">
+ <name>ECComponent</name>
+ <node>EC</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ECComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ECHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>rategen.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+ <instance xmi:id="BMClosedEDComponentInstance">
+ <name>BMClosedEDComponent</name>
+ <node>BMClosedED</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="BMClosedEDComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>BMClosedEDHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+ <instance xmi:id="BMDeviceComponentInstance">
+ <name>BMDeviceComponent</name>
+ <node>BMDevice</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="BMDeviceComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>BMDeviceHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+ <instance xmi:id="BMDisplayComponentInstance">
+ <name>BMDisplayComponent</name>
+ <node>BMDisplay</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="BMDisplayComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>BMDisplayHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>datain_data_readBasicSP.ComponentImplementations.BasicSP.BasicSP.BMClosedEDBMDeviceComponentInstance</name>
+ <internalEndpoint>
+ <portName>datain</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="BMClosedEDComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>data_read</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="BMDeviceComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>comp_data_dataoutBMDisplayComponentInstanceBMDisplayComponentInstance</name>
+ <internalEndpoint>
+ <portName>comp_data</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="BMDisplayComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>dataout</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="BMClosedEDComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>timeout_timeoutECComponentInstanceBMDeviceComponentInstance</name>
+ <internalEndpoint>
+ <portName>timeout</portName>
+ <provider>false</provider>
+ <kind>EventPublisher</kind>
+ <instance xmi:idref="ECComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>timeout</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance xmi:idref="BMDeviceComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>data_available_in_availBMDeviceComponentInstanceBMDisplayComponentInstance</name>
+ <internalEndpoint>
+ <portName>data_available</portName>
+ <provider>false</provider>
+ <kind>EventPublisher</kind>
+ <instance xmi:idref="BMDeviceComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>in_avail</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance xmi:idref="BMClosedEDComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>out_avail_data_readyBMDisplayComponentInstanceBMDisplayComponentInstance</name>
+ <internalEndpoint>
+ <portName>out_avail</portName>
+ <provider>false</provider>
+ <kind>EventPublisher</kind>
+ <instance xmi:idref="BMClosedEDComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>data_ready</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance xmi:idref="BMDisplayComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <artifact xmi:id="BMDisplay_ExecArtifact">
+ <name>BMDisplay_exec</name>
+ <source/>
+ <node/>
+ <location>BMDisplay_exec</location>
+ </artifact>
+ <artifact xmi:id="BMDisplay_SvntArtifact">
+ <name>BMDisplay_svnt</name>
+ <source/>
+ <node/>
+ <location>BMDisplay_svnt</location>
+ </artifact>
+ <artifact xmi:id="BMDisplay_StubArtifact">
+ <name>BMDisplay_stub</name>
+ <source/>
+ <node/>
+ <location>BMDisplay_stub</location>
+ </artifact>
+ <artifact xmi:id="BMClosedED_ExecArtifact">
+ <name>BMClosedED_exec</name>
+ <source/>
+ <node/>
+ <location>BMClosedED_exec</location>
+ </artifact>
+ <artifact xmi:id="BMClosedED_SvntArtifact">
+ <name>BMClosedED_svnt</name>
+ <source/>
+ <node/>
+ <location>BMClosedED_svnt</location>
+ </artifact>
+ <artifact xmi:id="BMClosedED_StubArtifact">
+ <name>BMClosedED_stub</name>
+ <source/>
+ <node/>
+ <location>BMClosedED_stub</location>
+ </artifact>
+ <artifact xmi:id="BMDevice_ExecArtifact">
+ <name>BMDevice_exec</name>
+ <source/>
+ <node/>
+ <location>BMDevice_exec</location>
+ </artifact>
+ <artifact xmi:id="BMDevice_SvntArtifact">
+ <name>BMDevice_svnt</name>
+ <source/>
+ <node/>
+ <location>BMDevice_svnt</location>
+ </artifact>
+ <artifact xmi:id="BMDevice_StubArtifact">
+ <name>BMDevice_stub</name>
+ <source/>
+ <node/>
+ <location>BMDevice_stub</location>
+ </artifact>
+ <artifact xmi:id="EC_ExecArtifact">
+ <name>EC_exec</name>
+ <source/>
+ <node/>
+ <location>EC_exec</location>
+ </artifact>
+ <artifact xmi:id="EC_SvntArtifact">
+ <name>EC_svnt</name>
+ <source/>
+ <node/>
+ <location>EC_svnt</location>
+ </artifact>
+ <artifact xmi:id="EC_StubArtifact">
+ <name>EC_stub</name>
+ <source/>
+ <node/>
+ <location>EC_stub</location>
+ </artifact>
+</Deployment:DeploymentPlan>
diff --git a/modules/CIAO/examples/BasicSP/descriptors/BasicSP_Unhomed.cdp b/modules/CIAO/examples/BasicSP/descriptors/BasicSP_Unhomed.cdp
new file mode 100644
index 00000000000..469858ec97d
--- /dev/null
+++ b/modules/CIAO/examples/BasicSP/descriptors/BasicSP_Unhomed.cdp
@@ -0,0 +1,408 @@
+<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>BasicSP_Unhomed</label>
+ <UUID>BasicSP_Unhomed</UUID>
+
+ <implementation xmi:id="BMDisplayComponentImplementation">
+ <name>BMDisplayComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="BMDisplay_ExecArtifact" />
+ <artifact xmi:idref="BMDisplay_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_BasicSP_BMDisplay_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_BasicSP_BMDisplay_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>BMDisplay_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>BMDisplay_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="BMClosedEDComponentImplementation">
+ <name>BMClosedEDComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="BMClosedED_ExecArtifact" />
+ <artifact xmi:idref="BMClosedED_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_BasicSP_BMClosedED_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_BasicSP_BMClosedED_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>BMClosedED_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>BMClosedED_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="BMDeviceComponentImplementation">
+ <name>BMDeviceComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="BMDevice_ExecArtifact" />
+ <artifact xmi:idref="BMDevice_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_BasicSP_BMDevice_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_BasicSP_BMDevice_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>BMDevice_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>BMDevice_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="ECComponentImplementation">
+ <name>ECComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="EC_ExecArtifact" />
+ <artifact xmi:idref="EC_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_BasicSP_EC_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_BasicSP_EC_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>EC_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>EC_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+ <instance xmi:id="BMDisplayComponentInstance">
+ <name>BMDisplayComponent</name>
+ <node>BMDisplay</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="BMDisplayComponentImplementation" />
+ </instance>
+ <instance xmi:id="BMClosedEDComponentInstance">
+ <name>BMClosedEDComponent</name>
+ <node>BMClosedED</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="BMClosedEDComponentImplementation" />
+ </instance>
+ <instance xmi:id="BMDeviceComponentInstance">
+ <name>BMDeviceComponent</name>
+ <node>BMDevice</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="BMDeviceComponentImplementation" />
+ </instance>
+ <instance xmi:id="ECComponentInstance">
+ <name>ECComponent</name>
+ <node>EC</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="ECComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>rategen.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>datain_data_readBasicSP.ComponentImplementations.BasicSP.BasicSP.BMClosedEDBMDeviceComponentInstance</name>
+ <internalEndpoint>
+ <portName>datain</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="BMClosedEDComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>data_read</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="BMDeviceComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>comp_data_dataoutBMDisplayComponentInstanceBMDisplayComponentInstance</name>
+ <internalEndpoint>
+ <portName>comp_data</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="BMDisplayComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>dataout</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="BMClosedEDComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>timeout_timeoutECComponentInstanceBMDeviceComponentInstance</name>
+ <internalEndpoint>
+ <portName>timeout</portName>
+ <provider>false</provider>
+ <kind>EventPublisher</kind>
+ <instance xmi:idref="ECComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>timeout</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance xmi:idref="BMDeviceComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>data_available_in_availBMDeviceComponentInstanceBMDisplayComponentInstance</name>
+ <internalEndpoint>
+ <portName>data_available</portName>
+ <provider>false</provider>
+ <kind>EventPublisher</kind>
+ <instance xmi:idref="BMDeviceComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>in_avail</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance xmi:idref="BMClosedEDComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>out_avail_data_readyBMDisplayComponentInstanceBMDisplayComponentInstance</name>
+ <internalEndpoint>
+ <portName>out_avail</portName>
+ <provider>false</provider>
+ <kind>EventPublisher</kind>
+ <instance xmi:idref="BMClosedEDComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>data_ready</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance xmi:idref="BMDisplayComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <artifact xmi:id="BMDisplay_ExecArtifact">
+ <name>BMDisplay_exec</name>
+ <source/>
+ <node/>
+ <location>BMDisplay_exec</location>
+ </artifact>
+ <artifact xmi:id="BMDisplay_SvntArtifact">
+ <name>BMDisplay_svnt</name>
+ <source/>
+ <node/>
+ <location>BMDisplay_svnt</location>
+ </artifact>
+ <artifact xmi:id="BMDisplay_StubArtifact">
+ <name>BMDisplay_stub</name>
+ <source/>
+ <node/>
+ <location>BMDisplay_stub</location>
+ </artifact>
+ <artifact xmi:id="BMClosedED_ExecArtifact">
+ <name>BMClosedED_exec</name>
+ <source/>
+ <node/>
+ <location>BMClosedED_exec</location>
+ </artifact>
+ <artifact xmi:id="BMClosedED_SvntArtifact">
+ <name>BMClosedED_svnt</name>
+ <source/>
+ <node/>
+ <location>BMClosedED_svnt</location>
+ </artifact>
+ <artifact xmi:id="BMClosedED_StubArtifact">
+ <name>BMClosedED_stub</name>
+ <source/>
+ <node/>
+ <location>BMClosedED_stub</location>
+ </artifact>
+ <artifact xmi:id="EC_ExecArtifact">
+ <name>EC_exec</name>
+ <source/>
+ <node/>
+ <location>EC_exec</location>
+ </artifact>
+ <artifact xmi:id="EC_SvntArtifact">
+ <name>EC_svnt</name>
+ <source/>
+ <node/>
+ <location>EC_svnt</location>
+ </artifact>
+ <artifact xmi:id="EC_StubArtifact">
+ <name>EC_stub</name>
+ <source/>
+ <node/>
+ <location>EC_stub</location>
+ </artifact>
+ <artifact xmi:id="BMDevice_ExecArtifact">
+ <name>BMDevice_exec</name>
+ <source/>
+ <node/>
+ <location>BMDevice_exec</location>
+ </artifact>
+ <artifact xmi:id="BMDevice_SvntArtifact">
+ <name>BMDevice_svnt</name>
+ <source/>
+ <node/>
+ <location>BMDevice_svnt</location>
+ </artifact>
+ <artifact xmi:id="BMDevice_StubArtifact">
+ <name>BMDevice_stub</name>
+ <source/>
+ <node/>
+ <location>BMDevice_stub</location>
+ </artifact>
+</Deployment:DeploymentPlan>
diff --git a/modules/CIAO/examples/BasicSP/descriptors/run_test.pl b/modules/CIAO/examples/BasicSP/descriptors/run_test.pl
new file mode 100755
index 00000000000..1e2c88135e1
--- /dev/null
+++ b/modules/CIAO/examples/BasicSP/descriptors/run_test.pl
@@ -0,0 +1,193 @@
+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;
+
+$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
+$TAO_ROOT = "$ENV{'TAO_ROOT'}";
+$DAnCE = "$ENV{'DANCE_ROOT'}";
+$daemons_running = 0;
+$em_running = 0;
+$ns_running = 0;
+$daemons = 4;
+@ports = ( 10000, 20000, 30000, 40000 );
+@iorfiles = ( "NodeApp1.ior", "NodeApp2.ior", "NodeApp3.ior", "NodeApp4.ior" );
+@nodenames = ( "EC", "BMDisplay", "BMClosedED", "BMDevice" );
+$status = 0;
+$dat_file = "BasicSP.dat";
+$cdp_file = "BasicSP_Unhomed.cdp";
+$controller_exec = "$CIAO_ROOT/examples/BasicSP/EC/controller";
+
+PerlACE::add_lib_path ('../lib');
+
+$nsior = PerlACE::LocalFile ("ns.ior");
+
+unlink $nsior;
+
+$E = 0;
+$EM = 0;
+
+# Delete if there are any .ior files.
+sub delete_ior_files {
+ for ($i = 0; $i < $daemons; ++$i) {
+ unlink $iorfiles[$i];
+ }
+ unlink PerlACE::LocalFile ("EM.ior");
+ unlink PerlACE::LocalFile ("rategen.ior");
+ unlink PerlACE::LocalFile ("DAM.ior");
+ unlink PerlACE::LocalFile ("ns.ior");
+}
+
+sub kill_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i) {
+ $Daemons[$i]->Kill (); $Daemons[$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);
+ }
+
+}
+
+sub run_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i)
+ {
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+ $nodename = $nodenames[$i];
+ $iiop = "iiop://localhost:$port";
+ $node_app = "$CIAO_ROOT/bin/ciao_componentserver";
+
+ $d_cmd = "$DAnCE/bin/dance_node_manager";
+ $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --instance-nc corbaloc:rir:/NameService";
+ print "$d_param\n";
+ $Daemons[$i] = new PerlACE::Process ($d_cmd, $d_param);
+ $result = $Daemons[$i]->Spawn ();
+ push(@processes, $Daemons[$i]);
+
+ if (PerlACE::waitforfile_timed ($iorfile,
+ 30) == -1) {
+ print STDERR
+ "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
+ for (; $i >= 0; --$i) {
+ $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1);
+ }
+ return -1;
+ }
+ }
+ return 0;
+}
+
+if ($#ARGV == 0)
+{
+ $cdp_file = $ARGV[0];
+}
+
+delete_ior_files ();
+
+# Invoke naming service
+
+$NS = new PerlACE::Process ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 0 -ORBEndpoint iiop://localhost:60003 -o ns.ior");
+
+$NS->Spawn ();
+
+print STDERR "Starting Naming Service\n";
+
+if (PerlACE::waitforfile_timed ($nsior, $PerlACE::wait_interval_for_process_creation) == -1)
+{
+ print STDERR "ERROR: cannot find naming service IOR file\n";
+ $NS->Kill ();
+ exit 1;
+}
+
+$ns_running = 1;
+
+# Set up NamingService environment
+$ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService";
+
+
+# Invoke node daemons.
+print "Invoking node daemons\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 = new PerlACE::Process ("$DAnCE/bin/dance_execution_manager",
+ "-eEM.ior --node-map $dat_file");
+$EM->Spawn ();
+
+if (PerlACE::waitforfile_timed ("EM.ior",
+ $PerlACE::wait_interval_for_process_creation) == -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 - start the application -\n";
+$E =
+ new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher",
+ "-x $cdp_file -k file://EM.ior");
+
+$E->SpawnWaitKill (5000);
+
+if (PerlACE::waitforfile_timed (
+ "rategen.ior",
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: The ior file of receiver could not be found\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+print "Invoking the controller\n";
+$controller = new PerlACE::Process ("$controller_exec", "-o");
+$result = $controller->SpawnWaitKill (3000);
+
+if ($result != 0) {
+ print STDERR "ERROR: The controller returned $result\n";
+ $status = 1;
+}
+
+sleep 10;
+# Invoke executor - stop the application -.
+print "Invoking executor - stop the application -\n";
+$E =
+ new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher",
+ "-k file://EM.ior -x $cdp_file -q");
+$E->SpawnWaitKill (3000);
+
+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/examples/DevGuideExamples/CIAO.mwc b/modules/CIAO/examples/DevGuideExamples/CIAO.mwc
new file mode 100644
index 00000000000..dd297256b34
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/CIAO.mwc
@@ -0,0 +1,5 @@
+// -*- MPC -*-
+// $Id$
+
+workspace {
+}
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.idl b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.idl
new file mode 100644
index 00000000000..67bb016e157
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.idl
@@ -0,0 +1,24 @@
+// $Id$
+
+/**
+ * @file Administrator.idl
+ *
+ * @author Don Busch <busch_d@ociweb.com>
+ */
+
+#ifndef ADMINISTRATOR_IDL
+#define ADMINISTRATOR_IDL
+
+#include <Components.idl>
+#include "Runnable.idl"
+#include "Publication.idl"
+
+component Administrator {
+ uses multiple Runnable runnables;
+ uses multiple Publication content;
+};
+
+home AdministratorHome manages Administrator {};
+
+#endif
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.mpc b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.mpc
new file mode 100644
index 00000000000..4f7ce593400
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.mpc
@@ -0,0 +1,110 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p Messenger Administrator"
+
+project(Messenger_Administrator_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=ADMINISTRATOR_STUB_Export \
+ -Wb,stub_export_include=Administrator_stub_export.h \
+ -Wb,skel_export_macro=ADMINISTRATOR_SVNT_Export \
+ -Wb,skel_export_include=Administrator_svnt_export.h \
+ -Wb,exec_export_macro=ADMINISTRATOR_EXEC_Export \
+ -Wb,exec_export_include=Administrator_exec_export.h
+
+ IDL_Files {
+ Administrator.idl
+ }
+}
+
+project(Messenger_Administrator_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ after += Messenger_Administrator_idl_gen
+ idlflags += -Wb,export_macro=ADMINISTRATOR_EXEC_Export \
+ -Wb,export_include=Administrator_exec_export.h \
+ -SS
+
+ IDL_Files {
+ AdministratorE.idl
+ }
+}
+
+project(Messenger_Administrator_stub) : ccm_stub {
+ after += Messenger_Administrator_idl_gen Messenger_stub
+ libs += Messenger_stub
+
+ sharedname = Administrator_stub
+ dynamicflags = ADMINISTRATOR_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ AdministratorC.cpp
+ }
+
+ Header_Files {
+ AdministratorC.h
+ Administrator_stub_export.h
+ }
+
+ Inline_Files {
+ AdministratorC.inl
+ }
+}
+
+project(Messenger_Administrator_exec) : ciao_executor {
+ after += Messenger_Administrator_lem_gen Messenger_Administrator_stub
+ sharedname = Administrator_exec
+ libs += Administrator_stub Messenger_stub
+
+ dynamicflags = ADMINISTRATOR_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ AdministratorEC.cpp
+ Administrator_exec_i.cpp
+ }
+
+ Header_Files {
+ AdministratorEC.h
+ Administrator_exec_i.h
+ Administrator_exec_export.h
+ }
+
+ Inline_Files {
+ AdministratorEC.inl
+ }
+}
+
+
+project(Messenger_Administrator_svnt) : ciao_servant {
+ after += Messenger_svnt Messenger_Administrator_exec
+ sharedname = Administrator_svnt
+ libs += Administrator_exec \
+ Administrator_stub \
+ Messenger_svnt \
+ Messenger_stub
+
+ dynamicflags = ADMINISTRATOR_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ AdministratorS.cpp
+ Administrator_svnt.cpp
+ }
+
+ Header_Files {
+ AdministratorS.h
+ Administrator_svnt.h
+ Administrator_svnt_export.h
+ }
+
+ Inline_Files {
+ AdministratorS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client.cpp
new file mode 100644
index 00000000000..15378b35b78
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client.cpp
@@ -0,0 +1,120 @@
+// $Id$
+
+/**
+ * @file Administrator_Client.cpp
+ *
+ * Do NOT put this file in a project; it is included by
+ * Administrator_Client_IDL2.cpp and Administrator_Client_IDL3.cpp
+ * This file will not build on its own.
+ *
+ * @author Don Busch <busch_d@ociweb.com>
+ */
+
+#include "ace/Get_Opt.h"
+#include <iostream>
+
+const ACE_TCHAR* ior = ACE_TEXT ("file://Messenger.ior");
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, "k:");
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'k':
+ ior = get_opts.optarg;
+ break;
+
+ case '?':
+ default:
+ std::cerr << "usage: " << argv[0] << " -k <ior>" << std::endl;
+ return -1;
+ break;
+ }
+ return 0;
+}
+
+int
+svc( Runnable_ptr runnable, Publication_ptr publication )
+{
+ enum SelectionType { START=1, STOP, CHANGE_PERIOD, CHANGE_TEXT, EXIT };
+
+ bool done = false;
+ do {
+ std::cout << "\nWhat do you want to do to the Messenger(s)?" << std::endl;
+ std::cout << START << ". Start" << std::endl;
+ std::cout << STOP << ". Stop" << std::endl;
+ std::cout << CHANGE_PERIOD << ". Change Publication Period" << std::endl;
+ std::cout << CHANGE_TEXT << ". Change Publication Text" << std::endl;
+ std::cout << EXIT << ". Exit" << std::endl;
+
+ char selection_text[10];
+ std::cout << "Please enter a selection: ";
+ std::cin.getline( selection_text, sizeof(selection_text) );
+ int selection = ACE_OS::atoi(selection_text);
+
+ switch (selection) {
+ case START: {
+ runnable->start();
+ break;
+ }
+ case STOP: {
+ runnable->stop();
+ break;
+ }
+ case CHANGE_PERIOD: {
+ char period[10];
+ std::cout << "Please enter a new period in seconds: ";
+ std::cin.getline( period, sizeof( period ) );
+ publication->period( ACE_OS::atoi(period) );
+ break;
+ }
+ case CHANGE_TEXT: {
+ char buffer[1024];
+ std::cout << "Please enter new text: ";
+ std::cin.getline( buffer, sizeof(buffer) );
+ publication->text( buffer );
+ break;
+ }
+ case EXIT: {
+ done = true;
+ break;
+ }
+ default:
+ std::cout << "Please enter a valid option" << std::endl;
+ }
+ } while ( !done );
+
+ return 0;
+}
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ if (parse_args (argc, argv) != 0) {
+ return 1;
+ }
+
+ try {
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ // get Messenger object
+ CORBA::Object_var obj = orb->string_to_object(ior);
+ Messenger_var messenger = Messenger::_narrow (obj.in());
+
+ Runnable_var runnable = messenger->provide_control();
+ Publication_var publication = messenger->provide_content ();
+
+ svc( runnable.in(), publication.in() );
+
+ return 0;
+ }
+ catch(const CORBA::Exception& ex) {
+ std::cerr << "Caught CORBA::Exception: " << std::endl << ex << std::endl;
+ }
+
+ return 1;
+}
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.cpp
new file mode 100644
index 00000000000..399faa40389
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.cpp
@@ -0,0 +1,10 @@
+// $Id$
+
+/**
+ * @file Administrator_Client_IDL2.cpp
+ *
+ * @author Don Busch <busch_d@ociweb.com>
+ */
+
+#include "idl2/Messenger_IDL2C.h"
+#include "Administrator_Client.cpp"
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.mpc b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.mpc
new file mode 100644
index 00000000000..07ff70dc8e2
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.mpc
@@ -0,0 +1,48 @@
+// $Id$
+
+project(Administrator_Client_IDL2_Compile): taoidl3toidl2defaults {
+ requires += dummy_label
+ after += Messenger_idl_gen Messenger_Administrator_idl_gen
+ // ensures that only idl3-to-idl2 processing is performed
+ custom_only = 1
+
+ idl3toidl2flags += -I. -o idl2
+
+ IDL3TOIDL2_Files {
+ gendir = idl2
+ Runnable.idl
+ Publication.idl
+ Message.idl
+ History.idl
+ Administrator.idl
+ Messenger.idl
+ }
+}
+
+project(Administrator_Client_IDL2): ccm_stub, valuetype {
+ requires += dummy_label
+ after += Administrator_Client_IDL2_Compile
+
+ exename = Administrator_Client_IDL2
+ idlflags += -Sm -Iidl2 -o idl2 -SS
+
+ IDL_Files {
+ gendir = idl2
+ idl2/Runnable_IDL2.idl
+ idl2/Publication_IDL2.idl
+ idl2/Message_IDL2.idl
+ idl2/History_IDL2.idl
+ idl2/Administrator_IDL2.idl
+ idl2/Messenger_IDL2.idl
+ }
+
+ Source_Files {
+ Administrator_Client_IDL2.cpp
+ idl2/Administrator_IDL2C.cpp
+ idl2/Messenger_IDL2C.cpp
+ idl2/Publication_IDL2C.cpp
+ idl2/Runnable_IDL2C.cpp
+ idl2/History_IDL2C.cpp
+ idl2/Message_IDL2C.cpp
+ }
+}
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.cpp
new file mode 100644
index 00000000000..6e83b57165f
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.cpp
@@ -0,0 +1,10 @@
+// $Id$
+
+/**
+ * @file Administrator_Client_IDL3.cpp
+ *
+ * @author Don Busch <busch_d@ociweb.com>
+ */
+
+#include "MessengerC.h"
+#include "Administrator_Client.cpp"
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.mpc b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.mpc
new file mode 100644
index 00000000000..06cf093c861
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.mpc
@@ -0,0 +1,32 @@
+// $Id$
+
+// @file Administrator_Client_IDL3.mpc
+//
+// @author Don Busch <busch_d@ociweb.com>
+
+project(Administrator_Client_IDL3): ccm_stub, valuetype {
+ after += Messenger_stub
+ libs += Messenger_stub
+ after += Administrator_Client_IDL2_Compile
+
+ exename = Administrator_Client_IDL3
+
+ IDL_Files {
+ // IDL stubs are linked from the Messenger_stub library;
+ // this empty section prevents all of the IDL stub code from
+ // being linked into this executable as well
+ }
+
+ Header_Files {
+ // this empty section prevents all of the header files
+ // being includes in this project
+ }
+
+ Source_Files {
+ Administrator_Client_IDL3.cpp
+ }
+
+ Inline_Files {
+ }
+}
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_i.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_i.cpp
new file mode 100644
index 00000000000..cfb6b5b7e71
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_i.cpp
@@ -0,0 +1,259 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#include "Administrator_exec_i.h"
+
+// MY CODE
+#include <iostream>
+#include <string>
+
+namespace CIAO_Administrator_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: Administrator_exec_i
+ //==================================================================
+
+ Administrator_exec_i::Administrator_exec_i (void)
+ {
+ }
+
+ Administrator_exec_i::~Administrator_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ void
+ Administrator_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::CCM_Administrator_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Administrator_exec_i::ccm_activate ()
+ {
+ // Your code here.
+
+ // MY CODE
+ ACE_DEBUG((LM_INFO, ACE_TEXT("ccm_activate\n" )));
+
+ // Activate the Task
+ this->activate();
+ }
+
+ void
+ Administrator_exec_i::ccm_passivate ()
+ {
+ // Your code here.
+
+ // MY CODE
+ ACE_DEBUG((LM_INFO, ACE_TEXT("ccm_passivate\n" )));
+ }
+
+ void
+ Administrator_exec_i::ccm_remove ()
+ {
+ // Your code here.
+ ACE_DEBUG((LM_INFO, ACE_TEXT("ccm_remove\n")));
+ }
+
+ void
+ Administrator_exec_i::configuration_complete (void)
+ {
+ ACE_DEBUG ((LM_INFO, ACE_TEXT("configuration_complete\n")));
+ }
+
+ // Overridden from ACE_Task_Base
+ int
+ Administrator_exec_i::svc()
+ {
+ enum SelectionType { START=1, STOP, CHANGE_PERIOD, CHANGE_TEXT,EXIT };
+
+ bool done = false;
+ do {
+ std::cout << "\nWhat do you want to do to the Messenger(s)?" << std::endl;
+ std::cout << START << ". Start" << std::endl;
+ std::cout << STOP << ". Stop" << std::endl;
+ std::cout << CHANGE_PERIOD << ". Change Publication Period" << std::endl;
+ std::cout << CHANGE_TEXT << ". Change Publication Text" << std::endl;
+ std::cout << EXIT << ". Exit" << std::endl;
+
+ char selection_text[10];
+ std::cout << "Please enter a selection: ";
+ std::cin.getline( selection_text, sizeof(selection_text) );
+ int selection = ACE_OS::atoi(selection_text);
+
+ switch (selection) {
+ case START:
+ startPublishing();
+ break;
+ case STOP:
+ stopPublishing();
+ break;
+ case CHANGE_PERIOD:
+ changePublicationPeriod();
+ break;
+ case CHANGE_TEXT:
+ changePublicationText();
+ break;
+ case EXIT: {
+ done = true;
+ break;
+ }
+ default:
+ std::cout << "Please enter a valid option" << std::endl;
+ }
+ } while ( !done );
+
+ return 0;
+ }
+
+ void Administrator_exec_i::startPublishing()
+ {
+ // Get the attached Runnable facet(s)
+ ::Administrator::runnablesConnections_var connections =
+ this->context_->get_connections_runnables();
+
+ std::cout << "Starting Publication" << std::endl;
+ for ( CORBA::ULong i = 0; i < connections->length(); ++i ) {
+ Runnable_var runnable = (*connections)[i].objref;
+ runnable->start();
+ }
+ }
+
+ void Administrator_exec_i::stopPublishing()
+ {
+ // Get the attached Runnable facet(s)
+ ::Administrator::runnablesConnections_var connections =
+ this->context_->get_connections_runnables();
+
+ std::cout << "Stopping Publication" << std::endl;
+ for ( CORBA::ULong i = 0; i < connections->length(); ++i ) {
+ Runnable_var runnable = (*connections)[i].objref;
+ runnable->stop();
+ }
+ }
+
+ void Administrator_exec_i::changePublicationPeriod()
+ {
+ // Get the attached Publication facet(s)
+ ::Administrator::contentConnections_var contents =
+ this->context_->get_connections_content();
+
+ char period[10];
+ std::cout << "Please enter a new period in seconds: ";
+ std::cin.getline( period, sizeof( period ) );
+ for ( CORBA::ULong i = 0; i < contents->length(); ++i ) {
+ Publication_var publication = (*contents)[i].objref;
+ publication->period( ACE_OS::atoi(period) );
+ }
+ }
+
+ void Administrator_exec_i::changePublicationText()
+ {
+ // Get the attached Publication facet(s)
+ ::Administrator::contentConnections_var contents =
+ this->context_->get_connections_content();
+
+ char buffer[1024];
+ std::cout << "Please enter new text: ";
+ std::cin.getline( buffer, sizeof(buffer) );
+ for ( CORBA::ULong i = 0; i < contents->length(); ++i ) {
+ Publication_var publication = (*contents)[i].objref;
+ publication->text( buffer );
+ }
+ }
+
+ extern "C" ADMINISTRATOR_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Administrator_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_RETURN (retval,
+ Administrator_exec_i,
+ ::Components::EnterpriseComponent::_nil ());
+
+ return retval;
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: AdministratorHome_exec_i
+ //==================================================================
+
+ AdministratorHome_exec_i::AdministratorHome_exec_i (void)
+ {
+ }
+
+ AdministratorHome_exec_i::~AdministratorHome_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ AdministratorHome_exec_i::create ()
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ Administrator_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" ADMINISTRATOR_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_AdministratorHome_Impl (void)
+ {
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ AdministratorHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_i.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_i.h
new file mode 100644
index 00000000000..796395a2042
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_i.h
@@ -0,0 +1,112 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#ifndef CIAO_ADMINISTRATOR_EXEC_H
+#define CIAO_ADMINISTRATOR_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "AdministratorEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "Administrator_exec_export.h"
+#include "tao/LocalObject.h"
+
+#include "ace/Task.h"
+
+namespace CIAO_Administrator_Impl
+{
+ class ADMINISTRATOR_EXEC_Export Administrator_exec_i
+ : public virtual Administrator_Exec,
+ public virtual ::CORBA::LocalObject,
+ public virtual ACE_Task_Base
+ {
+ public:
+ Administrator_exec_i (void);
+ virtual ~Administrator_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 (void);
+
+ virtual void ccm_activate ();
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ // Overridden from ACE_Task_Base
+ int svc();
+
+ private:
+
+ void startPublishing();
+ void stopPublishing();
+ void changePublicationPeriod();
+ void changePublicationText();
+
+ ::CCM_Administrator_Context_var context_;
+ };
+
+ extern "C" ADMINISTRATOR_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Administrator_Impl (void);
+
+ class ADMINISTRATOR_EXEC_Export AdministratorHome_exec_i
+ : public virtual AdministratorHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ AdministratorHome_exec_i (void);
+ virtual ~AdministratorHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" ADMINISTRATOR_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_AdministratorHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_ADMINISTRATOR_EXEC_H */
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/History.idl b/modules/CIAO/examples/DevGuideExamples/Messenger/History.idl
new file mode 100644
index 00000000000..c83cadf03bb
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/History.idl
@@ -0,0 +1,19 @@
+// $Id$
+
+/**
+ * @file History.idl
+ *
+ * @author Don Busch <busch_d@ociweb.com>
+ */
+
+#ifndef HISTORY_IDL
+#define HISTORY_IDL
+
+#include "Message.idl"
+
+interface History {
+ Messages get_all();
+ Message get_latest();
+};
+
+#endif
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/History_exec_i.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/History_exec_i.cpp
new file mode 100644
index 00000000000..1afb8060fc2
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/History_exec_i.cpp
@@ -0,0 +1,95 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#include "History_exec_i.h"
+
+namespace CIAO_Messenger_Impl
+{
+ //==================================================================
+ // Facet Executor Implementation Class: History_exec_i
+ //==================================================================
+
+ History_exec_i::History_exec_i (void)
+ {
+ }
+
+ History_exec_i::~History_exec_i (void)
+ {
+ }
+
+ // Operations from ::History
+
+ ::Messages *
+ History_exec_i::get_all ()
+ {
+ // Your code here.
+
+ // MY CODE
+ ACE_Guard<TAO_SYNCH_MUTEX> guard(this->lock_);
+
+ ACE_DEBUG((LM_INFO, ACE_TEXT("History_i::get_all\n") ));
+
+ // create a Messages sequence, set its length
+ ::Messages* retval = new ::Messages();
+ retval->length( this->messages_.size() );
+
+ // iterate through the MessageList, copying messages into the return sequence
+ CORBA::ULong i = 0;
+ for ( MessageList::iterator messageItr = this->messages_.begin();
+ messageItr != this->messages_.end();
+ ++messageItr )
+ {
+ // because the MessageList contains Message_vars, reference counting
+ // upon assignment into the sequence is handled properly for us.
+ (*retval)[i++] = *messageItr;
+ }
+ return retval;
+ }
+
+ ::Message *
+ History_exec_i::get_latest ()
+ {
+ // Your code here.
+
+ // MY CODE
+ ACE_Guard<TAO_SYNCH_MUTEX> guard(this->lock_);
+
+ ACE_DEBUG((LM_INFO, ACE_TEXT("History_i::get_latest\n") ));
+
+ // just get the last message from the history. because the MessageList
+ // contains Message_vars, _var to _var assigmnent handles the reference
+ // counting properly for us.
+ ::Message_var retval = this->messages_.back();
+ return retval._retn();
+ }
+
+ // MY CODE
+ void
+ History_exec_i::add( ::Message* message )
+ {
+ ACE_Guard<TAO_SYNCH_MUTEX> guard(lock_);
+
+ // bump up the reference count; we don't own it.
+ // the _var in the STL list takes ownership of the "copy"
+ message->_add_ref();
+ this->messages_.push_back( message );
+ }
+}
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/History_exec_i.h b/modules/CIAO/examples/DevGuideExamples/Messenger/History_exec_i.h
new file mode 100644
index 00000000000..5563a1b033b
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/History_exec_i.h
@@ -0,0 +1,70 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#ifndef CIAO_HISTORY_EXEC_H
+#define CIAO_HISTORY_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "MessengerEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "Messenger_exec_export.h"
+#include "tao/LocalObject.h"
+
+// MY CODE
+#include <list>
+#include "ace/Thread_Mutex.h"
+
+namespace CIAO_Messenger_Impl
+{
+ class MESSENGER_EXEC_Export History_exec_i
+ : public virtual ::CCM_History,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ History_exec_i (void);
+ virtual ~History_exec_i (void);
+
+ // Operations from ::History
+
+ virtual ::Messages *get_all ();
+
+ virtual ::Message *get_latest ();
+
+ // MY CODE
+
+ void add( ::Message* message);
+
+ private:
+ TAO_SYNCH_MUTEX lock_;
+
+ typedef std::list< ::Message_var> MessageList;
+ MessageList messages_;
+ };
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_HISTORY_EXEC_H */
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Message.idl b/modules/CIAO/examples/DevGuideExamples/Messenger/Message.idl
new file mode 100644
index 00000000000..2e3aee687b0
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Message.idl
@@ -0,0 +1,21 @@
+// $Id$
+
+/**
+ * @file Message.idl
+ *
+ * @author Don Busch <busch_d@ociweb.com>
+ */
+
+#ifndef MESSAGE_IDL
+#define MESSAGE_IDL
+
+#include <Components.idl>
+
+eventtype Message {
+ public string subject;
+ public string user;
+ public string text;
+};
+typedef sequence<Message> Messages;
+
+#endif
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.idl b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.idl
new file mode 100644
index 00000000000..47033a5885c
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.idl
@@ -0,0 +1,34 @@
+// $Id$
+
+/**
+ * @file Messenger.idl
+ *
+ * @author Don Busch <busch_d@ociweb.com>
+ */
+
+#ifndef MESSENGER_IDL
+#define MESSENGER_IDL
+
+#include <Components.idl>
+#include "Runnable.idl"
+#include "RunnableE.idl"
+#include "Publication.idl"
+#include "PublicationE.idl"
+#include "Message.idl"
+#include "MessageE.idl"
+#include "History.idl"
+#include "HistoryE.idl"
+
+component Messenger {
+ attribute string subject;
+
+ provides Runnable control;
+ provides Publication content;
+
+ publishes Message message_publisher;
+ provides History message_history;
+};
+
+home MessengerHome manages Messenger {};
+
+#endif
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.mpc b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.mpc
new file mode 100644
index 00000000000..8683d5f7220
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.mpc
@@ -0,0 +1,172 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl Messenger"
+
+project(Messenge_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=MESSENGER_STUB_Export \
+ -Wb,stub_export_include=Messenger_stub_export.h \
+ -Wb,skel_export_macro=MESSENGER_SVNT_Export \
+ -Wb,skel_export_include=Messenger_svnt_export.h \
+ -Wb,exec_export_macro=MESSENGER_EXEC_Export \
+ -Wb,exec_export_include=Messenger_exec_export.h
+
+ IDL_Files {
+ Message.idl
+ }
+}
+
+project(Messenger_idl_gen) : componentidldefaults {
+ after += Messenge_idl_gen
+ custom_only = 1
+ idlflags -= -Gxhst -Gxhsk -Gxhsv -Gxhex
+ idlflags += -Wb,stub_export_macro=MESSENGER_STUB_Export \
+ -Wb,stub_export_include=Messenger_stub_export.h \
+ -Wb,skel_export_macro=MESSENGER_SVNT_Export \
+ -Wb,skel_export_include=Messenger_svnt_export.h
+ IDL_Files {
+ Runnable.idl
+ Publication.idl
+ History.idl
+ }
+}
+
+project(Messenger_messenger_idl_gen) : componentidldefaults {
+ custom_only = 1
+ after += Messenger_idl_gen
+ idlflags += -Wb,stub_export_macro=MESSENGER_STUB_Export \
+ -Wb,stub_export_include=Messenger_stub_export.h \
+ -Wb,skel_export_macro=MESSENGER_SVNT_Export \
+ -Wb,skel_export_include=Messenger_svnt_export.h
+
+ IDL_Files {
+ Messenger.idl
+ }
+}
+
+project(Messenger_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ after += Messenger_messenger_idl_gen
+ idlflags += -Wb,export_macro=MESSENGER_EXEC_Export \
+ -Wb,export_include=Messenger_exec_export.h \
+ -SS
+
+ IDL_Files {
+ MessengerE.idl
+ RunnableE.idl
+ PublicationE.idl
+ MessageE.idl
+ HistoryE.idl
+ }
+}
+
+project(Messenger_stub) : ccm_stub {
+ after += Messenger_idl_gen Messenger_idlx_gen Messenger_lem_gen
+
+ sharedname = Messenger_stub
+ dynamicflags = MESSENGER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ RunnableC.cpp
+ PublicationC.cpp
+ MessageC.cpp
+ HistoryC.cpp
+ MessengerC.cpp
+ }
+
+ Header_Files {
+ RunnableC.h
+ PublicationC.h
+ MessageC.h
+ HistoryC.h
+ MessengerC.h
+ Messenger_stub_export.h
+ }
+
+ Inline_Files {
+ RunnableC.inl
+ PublicationC.inl
+ MessageC.inl
+ HistoryC.inl
+ MessengerC.inl
+ }
+}
+
+project(Messenger_exec) : ciao_executor {
+ after += Messenger_lem_gen Messenger_stub
+ sharedname = Messenger_exec
+ libs += Messenger_stub
+
+ dynamicflags = MESSENGER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ MessengerEC.cpp
+ RunnableEC.cpp
+ PublicationEC.cpp
+ MessageEC.cpp
+ HistoryEC.cpp
+ Messenger_exec_i.cpp
+ Publication_exec_i.cpp
+ History_exec_i.cpp
+ Runnable_exec_i.cpp
+ }
+
+ Header_Files {
+ MessengerEC.h
+ Messenger_exec_i.h
+ Publication_exec_i.h
+ History_exec_i.h
+ Runnable_exec_i.h
+ Messenger_exec_export.h
+ }
+
+ Inline_Files {
+ MessengerEC.inl
+ }
+}
+
+project(Messenger_svnt) : ciao_servant {
+ after += Messenger_exec
+ sharedname = Messenger_svnt
+ libs += Messenger_exec \
+ Messenger_stub
+
+ dynamicflags = MESSENGER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ RunnableS.cpp
+ PublicationS.cpp
+ MessageS.cpp
+ HistoryS.cpp
+ MessengerS.cpp
+ Messenger_svnt.cpp
+ }
+
+ Header_Files {
+ RunnableS.h
+ PublicationS.h
+ MessageS.h
+ HistoryS.h
+ MessengerS.h
+ Messenger_svnt.h
+ Messenger_svnt_export.h
+ }
+
+ Inline_Files {
+ RunnableS.inl
+ PublicationS.inl
+ MessageS.inl
+ HistoryS.inl
+ MessengerS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_i.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_i.cpp
new file mode 100644
index 00000000000..c71b7b82504
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_i.cpp
@@ -0,0 +1,253 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#include "Messenger_exec_i.h"
+
+// MY CODE
+#include "ace/OS_NS_unistd.h"
+#include "History_exec_i.h"
+#include "Runnable_exec_i.h"
+#include "Publication_exec_i.h"
+
+namespace CIAO_Messenger_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: Messenger_exec_i
+ //==================================================================
+
+ Messenger_exec_i::Messenger_exec_i ()
+ : subject_( "Test Subject" ),
+ user_( "ciao_user" )
+ {
+ this->control_ = new Runnable_exec_i();
+ this->history_ = new History_exec_i();
+ this->content_ = new Publication_exec_i(
+ "The quick brown fox jumped over the lazy dog",
+ 2 );
+ }
+
+ Messenger_exec_i::~Messenger_exec_i (void)
+ {
+ this->control_->_remove_ref();
+ this->history_->_remove_ref();
+ this->content_->_remove_ref();
+ }
+
+ // MY CODE
+ int Messenger_exec_i::svc() {
+
+ ACE_DEBUG((LM_INFO, ACE_TEXT("svc()\n")));
+
+ while (1)
+ {
+ ACE_OS::sleep( this->content_->period() );
+
+ // get the run_lock from the Runnable executor; we have an
+ // agreement with the Runnable executor that we must posess the
+ // run_lock to publish
+ ACE_Guard<TAO_SYNCH_MUTEX> guard( this->control_->get_run_lock() );
+
+ // create a message to publish
+ ::Message_var msg = new ::OBV_Message();
+ msg->subject( this->subject() );
+ msg->text( this->content_->text() );
+ msg->user( CORBA::string_dup( this->user_.c_str() ) );
+
+ // add the message to the message history
+ this->history_->add( msg.in() );
+
+ ACE_DEBUG((LM_INFO, ACE_TEXT("Messenger_exec_i::svc: publishing message\n") ));
+
+ // publish to all interested consumers
+ this->context_->push_message_publisher( msg.in() );
+
+ ACE_DEBUG((LM_INFO,
+ ACE_TEXT("Published Message on subject %s\n User %s\n Text %s\n"),
+ msg->subject(),
+ msg->user(),
+ msg->text() ));
+ }
+
+ ACE_DEBUG((LM_INFO, ACE_TEXT("svc(): Gracefully stopping publication\n")));
+ return 0;
+ }
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ char*
+ Messenger_exec_i::subject ()
+ {
+ return CORBA::string_dup( this->subject_.c_str() );
+ }
+
+ void
+ Messenger_exec_i::subject ( const char* subject)
+ {
+ this->subject_ = CORBA::string_dup( subject );
+ }
+
+ // Port operations.
+
+ ::CCM_Runnable_ptr
+ Messenger_exec_i::get_control ()
+ {
+ // Your code here.
+
+ // MY CODE
+
+ // bump up ref count because we give up ownership when we return this
+ this->control_->_add_ref();
+ return this->control_;
+ }
+
+ ::CCM_Publication_ptr
+ Messenger_exec_i::get_content ()
+ {
+ // Your code here.
+
+ // MY CODE
+
+ // bump up ref count because we give up ownership when we return this
+ this->content_->_add_ref();
+ return this->content_;
+ }
+
+ ::CCM_History_ptr
+ Messenger_exec_i::get_message_history ()
+ {
+ // Your code here.
+
+ // MY CODE
+
+ // bump up ref count because we give up ownership when we return this
+ this->history_->_add_ref();
+ return this->history_;
+ }
+
+ // Operations from Components::SessionComponent
+
+ void
+ Messenger_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::CCM_Messenger_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Messenger_exec_i::configuration_complete ()
+ {
+ /* Your code here. */
+ }
+
+ void
+ Messenger_exec_i::ccm_activate ()
+ {
+ /* Your code here. */
+ ACE_DEBUG((LM_INFO, ACE_TEXT("Messenger_exec_i::ccm_activate\n")));
+ this->activate();
+ }
+
+ void
+ Messenger_exec_i::ccm_passivate ()
+ {
+ /* Your code here. */
+ ACE_DEBUG((LM_INFO, ACE_TEXT("Messenger_exec_i::ccm_passivate\n")));
+ }
+
+ void
+ Messenger_exec_i::ccm_remove ()
+ {
+ /* Your code here. */
+ ACE_DEBUG((LM_INFO, ACE_TEXT("Messenger_exec_i::ccm_remove\n")));
+ }
+
+
+ extern "C" MESSENGER_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Messenger_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_RETURN (retval,
+ Messenger_exec_i,
+ ::Components::EnterpriseComponent::_nil ());
+
+ return retval;
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: MessengerHome_exec_i
+ //==================================================================
+
+ MessengerHome_exec_i::MessengerHome_exec_i (void)
+ {
+ }
+
+ MessengerHome_exec_i::~MessengerHome_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ MessengerHome_exec_i::create ()
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ Messenger_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" MESSENGER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_MessengerHome_Impl (void)
+ {
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ MessengerHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_i.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_i.h
new file mode 100644
index 00000000000..50e53e211ff
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_i.h
@@ -0,0 +1,129 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#ifndef CIAO_MESSENGER_EXEC_H
+#define CIAO_MESSENGER_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "Messenger_svnt.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "Messenger_exec_export.h"
+#include "tao/LocalObject.h"
+
+// MY CODE
+#include <string>
+#include "ace/Task.h"
+
+namespace CIAO_Messenger_Impl
+{
+ class Runnable_exec_i;
+ class Publication_exec_i;
+ class History_exec_i;
+
+ class MESSENGER_EXEC_Export Messenger_exec_i
+ : public virtual Messenger_Exec,
+ public virtual ::CORBA::LocalObject,
+ public virtual ACE_Task_Base
+ {
+ public:
+ Messenger_exec_i (void);
+ virtual ~Messenger_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ virtual char *subject ();
+
+ virtual void subject (const char * subject);
+
+ // Port operations.
+
+ virtual ::CCM_Runnable_ptr get_control ();
+
+ virtual ::CCM_Publication_ptr get_content ();
+
+ virtual ::CCM_History_ptr get_message_history ();
+
+ // Operations from Components::SessionComponent
+
+ virtual void set_session_context ( ::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete (void);
+
+ virtual void ccm_activate ();
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ // MY CODE
+ virtual int svc();
+
+ private:
+ ::CCM_Messenger_Context_var context_;
+
+ // MY CODE
+ Runnable_exec_i* control_;
+ Publication_exec_i* content_;
+ History_exec_i* history_;
+
+ std::string subject_;
+ const std::string user_;
+ };
+
+ extern "C" MESSENGER_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Messenger_Impl (void);
+
+ class MESSENGER_EXEC_Export MessengerHome_exec_i
+ : public virtual MessengerHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ MessengerHome_exec_i (void);
+ virtual ~MessengerHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" MESSENGER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_MessengerHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_MESSENGER_EXEC_H */
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Publication.idl b/modules/CIAO/examples/DevGuideExamples/Messenger/Publication.idl
new file mode 100644
index 00000000000..43cf29228cc
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Publication.idl
@@ -0,0 +1,17 @@
+// $Id$
+
+/**
+ * @file Publication.idl
+ *
+ * @author Don Busch <busch_d@ociweb.com>
+ */
+
+#ifndef PUBLICATION_IDL
+#define PUBLICATION_IDL
+
+interface Publication {
+ attribute string text;
+ attribute unsigned short period;
+};
+
+#endif
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Publication_exec_i.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/Publication_exec_i.cpp
new file mode 100644
index 00000000000..4c87e597459
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Publication_exec_i.cpp
@@ -0,0 +1,81 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#include "Publication_exec_i.h"
+
+namespace CIAO_Messenger_Impl
+{
+ //==================================================================
+ // Facet Executor Implementation Class: Publication_exec_i
+ //==================================================================
+
+ Publication_exec_i::Publication_exec_i (
+ const char* text, CORBA::UShort period)
+ : text_( text ),
+ period_( period)
+ {
+ }
+
+ Publication_exec_i::~Publication_exec_i (void)
+ {
+ }
+
+ // Operations from ::Publication
+
+ char*
+ Publication_exec_i::text ()
+ {
+ ACE_Guard<TAO_SYNCH_MUTEX> guard(this->lock_);
+
+ return CORBA::string_dup( this->text_.c_str() );
+ }
+
+ void
+ Publication_exec_i::text (
+ const char* text)
+ {
+ ACE_Guard<TAO_SYNCH_MUTEX> guard(this->lock_);
+
+ this->text_ = text;
+ ACE_DEBUG((LM_INFO, ACE_TEXT("publication text changed to %C\n"), text ));
+ }
+
+ CORBA::UShort
+ Publication_exec_i::period ()
+ {
+ ACE_Guard<TAO_SYNCH_MUTEX> guard(this->lock_);
+
+ return this->period_;
+ }
+
+ void
+ Publication_exec_i::period (CORBA::UShort period)
+ {
+ ACE_Guard<TAO_SYNCH_MUTEX> guard( this->lock_ );
+
+ if ( period > 0 ) {
+ this->period_ = period;
+ ACE_DEBUG((LM_INFO, ACE_TEXT("publication period changed to %d seconds\n"), period ));
+ } else {
+ ACE_DEBUG((LM_INFO, ACE_TEXT("ignoring a negative period of %d\n"), period ));
+ }
+ }
+}
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Publication_exec_i.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Publication_exec_i.h
new file mode 100644
index 00000000000..07c43248586
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Publication_exec_i.h
@@ -0,0 +1,70 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#ifndef CIAO_PUBLICATION_EXEC_H
+#define CIAO_PUBLICATION_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "MessengerEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "Messenger_exec_export.h"
+#include "tao/LocalObject.h"
+
+// MY CODE
+#include <string>
+#include "ace/Thread_Mutex.h"
+
+namespace CIAO_Messenger_Impl
+{
+ class MESSENGER_EXEC_Export Publication_exec_i
+ : public virtual ::CCM_Publication,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Publication_exec_i (const char* text, CORBA::UShort period);
+ virtual ~Publication_exec_i (void);
+
+ // Operations from ::Publication
+
+ virtual char* text ();
+
+ virtual void text ( const char* text);
+
+ virtual CORBA::UShort period ();
+
+ virtual void period ( CORBA::UShort period);
+
+ private:
+ std::string text_;
+ CORBA::UShort period_;
+
+ TAO_SYNCH_MUTEX lock_;
+ };
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_PUBLICATION_EXEC_H */
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.idl b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.idl
new file mode 100644
index 00000000000..2d22feceb70
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.idl
@@ -0,0 +1,23 @@
+// $Id$
+
+/**
+ * @file Receiver.idl
+ *
+ * @author Don Busch <busch_d@ociweb.com>
+ */
+
+#ifndef RECEIVER_IDL
+#define RECEIVER_IDL
+
+#include <Components.idl>
+#include "Message.idl"
+#include "History.idl"
+
+component Receiver {
+ consumes Message message_consumer;
+ uses History message_history;
+};
+
+home ReceiverHome manages Receiver {};
+
+#endif
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.mpc b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.mpc
new file mode 100644
index 00000000000..daa4437a9f3
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.mpc
@@ -0,0 +1,110 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p Messenger Receiver"
+
+project(Messenger_Receiver_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=RECEIVER_STUB_Export \
+ -Wb,stub_export_include=Receiver_stub_export.h \
+ -Wb,skel_export_macro=RECEIVER_SVNT_Export \
+ -Wb,skel_export_include=Receiver_svnt_export.h \
+ -Wb,exec_export_macro=RECEIVER_EXEC_Export \
+ -Wb,exec_export_include=Receiver_exec_export.h
+
+ IDL_Files {
+ Receiver.idl
+ }
+}
+
+project(Messenger_Receiver_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ after += Messenger_Receiver_idl_gen
+ idlflags += -Wb,export_macro=RECEIVER_EXEC_Export \
+ -Wb,export_include=Receiver_exec_export.h \
+ -SS
+
+ IDL_Files {
+ ReceiverE.idl
+ }
+}
+
+project(Messenger_Receiver_stub) : ccm_stub {
+ after += Messenger_Receiver_idl_gen Messenger_stub
+ libs += Messenger_stub
+
+ sharedname = Receiver_stub
+ dynamicflags = RECEIVER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ReceiverC.cpp
+ }
+
+ Header_Files {
+ ReceiverC.h
+ Receiver_stub_export.h
+ }
+
+ Inline_Files {
+ ReceiverC.inl
+ }
+}
+
+project(Messenger_Receiver_exec) : ciao_executor {
+ after += Messenger_Receiver_lem_gen Messenger_Receiver_stub
+ sharedname = Receiver_exec
+ libs += Receiver_stub Messenger_stub
+
+ dynamicflags = RECEIVER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ReceiverEC.cpp
+ Receiver_exec_i.cpp
+ }
+
+ Header_Files {
+ ReceiverEC.h
+ Receiver_exec_i.h
+ Receiver_exec_export.h
+ }
+
+ Inline_Files {
+ ReceiverEC.inl
+ }
+}
+
+
+project(Messenger_Receiver_svnt) : ciao_servant {
+ after += Messenger_svnt Messenger_Receiver_exec
+ sharedname = Receiver_svnt
+ libs += Receiver_exec \
+ Receiver_stub \
+ Messenger_svnt \
+ Messenger_stub
+
+ dynamicflags = RECEIVER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ReceiverS.cpp
+ Receiver_svnt.cpp
+ }
+
+ Header_Files {
+ ReceiverS.h
+ Receiver_svnt.h
+ Receiver_svnt_export.h
+ }
+
+ Inline_Files {
+ ReceiverS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_i.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_i.cpp
new file mode 100644
index 00000000000..46981868492
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_i.cpp
@@ -0,0 +1,176 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#include "Receiver_exec_i.h"
+
+namespace CIAO_Receiver_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: Receiver_exec_i
+ //==================================================================
+
+ Receiver_exec_i::Receiver_exec_i (void)
+ {
+ }
+
+ Receiver_exec_i::~Receiver_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ void
+ Receiver_exec_i::push_message_consumer (::Message * ev)
+ {
+ /* Your code here. */
+
+ // MY CODE
+
+ CORBA::String_var subject = ev->subject();
+ CORBA::String_var user = ev->user();
+ CORBA::String_var text = ev->text();
+
+ ACE_DEBUG((LM_INFO,
+ ACE_TEXT("Received Message:\n Subject: %s\n User: %s\n Text: %s\n"),
+ subject.in(),
+ user.in(),
+ text.in() ));
+
+ // Use the history to (inefficiently) get the total number of messages
+ // published on this item so far
+ ::History_var history =
+ this->context_->get_connection_message_history();
+ ::Messages_var messages = history->get_all();
+ ACE_DEBUG((LM_INFO,
+ ACE_TEXT(" Subject \"%s\" has published %d messages so far\n"),
+ subject.in(),
+ messages->length() ));
+ }
+
+ // Operations from Components::SessionComponent
+
+ void
+ Receiver_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::CCM_Receiver_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Receiver_exec_i::configuration_complete ()
+ {
+ /* Your code here. */
+ ACE_DEBUG((LM_INFO, ACE_TEXT("Receiver_exec_i::configuration_complete\n")));
+ }
+
+ void
+ Receiver_exec_i::ccm_activate ()
+ {
+ // Your code here.
+ ACE_DEBUG((LM_INFO, ACE_TEXT("Receiver_exec_i::ccm_activate\n")));
+ }
+
+ void
+ Receiver_exec_i::ccm_passivate ()
+ {
+ /* Your code here. */
+ ACE_DEBUG((LM_INFO, ACE_TEXT("Receiver_exec_i::ccm_passivate\n")));
+ }
+
+ void
+ Receiver_exec_i::ccm_remove ()
+ {
+ /* Your code here. */
+ ACE_DEBUG((LM_INFO, ACE_TEXT("Receiver_exec_i::ccm_remove\n")));
+ }
+
+ extern "C" RECEIVER_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Receiver_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_RETURN (retval,
+ Receiver_exec_i,
+ ::Components::EnterpriseComponent::_nil ());
+
+ return retval;
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: ReceiverHome_exec_i
+ //==================================================================
+
+ ReceiverHome_exec_i::ReceiverHome_exec_i (void)
+ {
+ }
+
+ ReceiverHome_exec_i::~ReceiverHome_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ ReceiverHome_exec_i::create ()
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ Receiver_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" RECEIVER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_ReceiverHome_Impl (void)
+ {
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ ReceiverHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_i.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_i.h
new file mode 100644
index 00000000000..a42f79f36b7
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_i.h
@@ -0,0 +1,102 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#ifndef CIAO_RECEIVER_EXEC_H
+#define CIAO_RECEIVER_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "ReceiverEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "Receiver_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Receiver_Impl
+{
+ class RECEIVER_EXEC_Export Receiver_exec_i
+ : public virtual Receiver_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Receiver_exec_i (void);
+ virtual ~Receiver_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ virtual void push_message_consumer (::Message *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:
+ ::CCM_Receiver_Context_var context_;
+ };
+
+ extern "C" RECEIVER_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Receiver_Impl (void);
+
+ class RECEIVER_EXEC_Export ReceiverHome_exec_i
+ : public virtual ReceiverHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ ReceiverHome_exec_i (void);
+ virtual ~ReceiverHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" RECEIVER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_ReceiverHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_RECEIVER_EXEC_H */
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable.idl b/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable.idl
new file mode 100644
index 00000000000..61515b7c17a
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable.idl
@@ -0,0 +1,17 @@
+// $Id$
+
+/**
+ * @file Runnable.idl
+ *
+ * @author Don Busch <busch_d@ociweb.com>
+ */
+
+#ifndef RUNNABLE_IDL
+#define RUNNABLE_IDL
+
+interface Runnable {
+ void start();
+ void stop();
+};
+
+#endif
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable_exec_i.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable_exec_i.cpp
new file mode 100644
index 00000000000..4f02a3e7e10
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable_exec_i.cpp
@@ -0,0 +1,60 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#include "Runnable_exec_i.h"
+
+namespace CIAO_Messenger_Impl
+{
+ //==================================================================
+ // Facet Executor Implementation Class: Runnable_exec_i
+ //==================================================================
+
+ Runnable_exec_i::Runnable_exec_i ()
+ {
+ // initially in "stopped" state
+ this->stop();
+ }
+
+ Runnable_exec_i::~Runnable_exec_i (void)
+ {
+ // don't own anything
+ }
+
+ // Operations from ::Runnable
+
+ void
+ Runnable_exec_i::start ()
+ {
+ this->run_lock_.release();
+ }
+
+ void
+ Runnable_exec_i::stop ()
+ {
+ this->run_lock_.acquire();
+ }
+
+ TAO_SYNCH_MUTEX&
+ Runnable_exec_i::get_run_lock ()
+ {
+ return this->run_lock_;
+ }
+}
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable_exec_i.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable_exec_i.h
new file mode 100644
index 00000000000..c432298dfd4
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable_exec_i.h
@@ -0,0 +1,65 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#ifndef CIAO_RUNNABLE_EXEC_H
+#define CIAO_RUNNABLE_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "Messenger_svnt.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "Messenger_exec_export.h"
+
+// MY CODE
+#include "tao/LocalObject.h"
+#include "ace/Thread_Mutex.h"
+
+namespace CIAO_Messenger_Impl
+{
+ class MESSENGER_EXEC_Export Runnable_exec_i
+ : public virtual ::CCM_Runnable,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Runnable_exec_i ();
+ virtual ~Runnable_exec_i (void);
+
+ // Operations from ::Runnable
+
+ virtual void start ();
+
+ virtual void stop ();
+
+ // MY CODE
+ TAO_SYNCH_MUTEX& get_run_lock();
+
+ private:
+ TAO_SYNCH_MUTEX run_lock_;
+ };
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_RUNNABLE_EXEC_H */
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/Messenger_StaticDAnCE.mpc b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/Messenger_StaticDAnCE.mpc
new file mode 100644
index 00000000000..caae6351bbc
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/Messenger_StaticDAnCE.mpc
@@ -0,0 +1,18 @@
+// -*- MPC -*-
+// $Id$
+
+project(Messenger_StaticDAnCE) {
+ exename = Messenger_StaticDAnCE
+ requires += dummy_label
+
+ libs += Receiver_stub Administrator_stub Messenger_stub
+ libs += Receiver_svnt Administrator_svnt Messenger_svnt
+ libs += Receiver_exec Administrator_exec Messenger_exec
+ libpaths += ..
+
+ after += Receiver_exec Administrator_exec Messenger_exec
+
+ Source_Files {
+ StaticDAnCEApp.cpp
+ }
+}
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/README.txt b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/README.txt
new file mode 100644
index 00000000000..71cfbcf947f
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/README.txt
@@ -0,0 +1,35 @@
+// $Id$
+
+plan.h
+-------
+generated by running
+$CIAO_ROOT/DAnCE/StaticConfiguration/StaticDAnCEParser -p
+ ../descriptors/Application-flattened.cdp
+
+Messenger_StaticDAnCE.mpc
+-------------------------
+started with a copy of StaticDAnCEApp.mpc.tmpl from
+ $CIAO_ROOT/DAnCE/StaticConfiguration
+changed project name and exe name
+replaces example libs with libs built in the .. directory
+added the after += line
+
+StaticDAnCEApp.cpp
+------------------
+copied from StaticDAnCEApp.cpp.tmpl in $CIAO_ROOT/DAnCE/StaticConfiguration
+
+run_test.pl
+-----------
+a modified copy of the ../descriptors/run_test.pl script that uses the static
+application in place of the NodeManager to run the Messenger_Node (port 44000)
+
+To run the test on the target, start the Messenger_StaticDAnCE executable
+(with -ORBEndpoint iiop://:44000) first on the target.
+Then comment out the spawning of process NA4 in the run_test.pl script.
+Also modify the final line of ../descriptors/ApplicationNodeMap.dat to
+replace host with the hostname or IP address of the target system.
+
+Known issues:
+- During shutodwn the Execution_Manager will print out some exceptions when
+it tries to communicate with the Messenger_StaticDAnCE process that has
+already terminated.
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/StaticDAnCEApp.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/StaticDAnCEApp.cpp
new file mode 100644
index 00000000000..daf16e8cbba
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/StaticDAnCEApp.cpp
@@ -0,0 +1,102 @@
+// $Id$
+
+#include "Container_Base.h"
+#include "NodeManager/NodeManager_Impl.h"
+#include "ace/OS_NS_stdio.h"
+#include "ace/streams.h"
+#include "ace/Get_Opt.h"
+#include "tao/IORTable/IORTable.h"
+#include "tao/CDR.h"
+#include "plan.h"
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ // Initialize the ORB so that CORBA::Any will work
+ //
+ CORBA::ORB_var orb =
+ CORBA::ORB_init (argc,
+ argv);
+ try
+ {
+ // Get reference to Root POA.
+ CORBA::Object_var obj
+ = orb->resolve_initial_references ("RootPOA");
+
+ PortableServer::POA_var poa
+ = PortableServer::POA::_narrow (obj.in ());
+
+ // Activate POA manager
+ PortableServer::POAManager_var mgr
+ = poa->the_POAManager ();
+
+ mgr->activate ();
+
+ int homes_table_size =
+ sizeof (homes_table)/sizeof(HomeAttributes);
+
+ CIAO::HOMECREATOR_FUNCPTR_MAP home_creator_fptr_map;
+ CIAO::HOMESERVANTCREATOR_FUNCPTR_MAP homesvnt_creator_fptr_map;
+ CIAO::Static_Config_EntryPoints_Maps static_config_entrypoints_maps;
+ static_config_entrypoints_maps.home_creator_funcptr_map_ = &home_creator_fptr_map;
+ static_config_entrypoints_maps.home_servant_creator_funcptr_map_ = &homesvnt_creator_fptr_map;
+
+ int i=0;
+ for (i=0; i<homes_table_size; ++i)
+ {
+ home_creator_fptr_map.bind (homes_table[i].executor_entrypt_,
+ homes_table[i].executor_fptr_);
+
+ homesvnt_creator_fptr_map.bind (homes_table[i].servant_entrypt_,
+ homes_table[i].servant_fptr_);
+ }
+
+ CIAO::Static_NodeManager_Impl *static_node_manager_impl;
+ // Create and install the CIAO Daemon servant
+
+ ACE_DEBUG ((LM_DEBUG, "creating static_node_manager\n"));
+
+ static_node_manager_impl =
+ new CIAO::Static_NodeManager_Impl("NodeManager",
+ orb.in (),
+ poa.in (),
+ "", //exe location
+ "", //exe options
+ 0, //spawn delay
+ &static_config_entrypoints_maps);
+
+ static_node_manager_impl->init ();
+
+ 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 ()))
+ ACE_ERROR_RETURN ((LM_ERROR, "Nil IORTable\n"), -1);
+
+ CIAO::NodeManagerDaemon_var manager =
+ static_node_manager_impl->_this ();
+
+ CORBA::String_var str =
+ orb->object_to_string (manager.in ());
+
+ adapter->bind ("NodeManager",
+ str.in ());
+
+ // Run the main event loop for the ORB.
+ orb->run ();
+
+ poa->destroy (1, 1);
+
+ orb->destroy ();
+ }
+ catch (CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Caught CORBA Exception: ");
+ return -1;
+ }
+
+ return 0;
+}
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/plan.h b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/plan.h
new file mode 100644
index 00000000000..a5732221e75
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/plan.h
@@ -0,0 +1,47 @@
+// $Id$
+
+#include "Session_Container.h"
+
+extern "C" ::Components::HomeExecutorBase_ptr create_MessengerHome_Impl (void);
+extern "C" ::PortableServer::Servant create_MessengerHome_Servant
+ (::Components::HomeExecutorBase_ptr p,
+ ::CIAO::Session_Container *c,
+ const char*
+ );
+extern "C" ::Components::HomeExecutorBase_ptr create_ReceiverHome_Impl (void);
+extern "C" ::PortableServer::Servant create_ReceiverHome_Servant
+ (::Components::HomeExecutorBase_ptr p,
+ ::CIAO::Session_Container *c,
+ const char*
+ );
+extern "C" ::Components::HomeExecutorBase_ptr create_ReceiverHome_Impl (void);
+extern "C" ::PortableServer::Servant create_ReceiverHome_Servant
+ (::Components::HomeExecutorBase_ptr p,
+ ::CIAO::Session_Container *c,
+ const char*
+ );
+extern "C" ::Components::HomeExecutorBase_ptr create_AdministratorHome_Impl (void);
+extern "C" ::PortableServer::Servant create_AdministratorHome_Servant
+ (::Components::HomeExecutorBase_ptr p,
+ ::CIAO::Session_Container *c,
+ const char*
+ );
+struct HomeAttributes
+{
+ char const * component_instance_name_;
+ /// Specify the entrypoint to component executor DLL.
+ char const * executor_entrypt_;
+ ::CIAO::HomeFactory executor_fptr_;
+ /// Specify the entrypoint to component servant DLL.
+ char const * servant_entrypt_;
+ ::CIAO::ServantFactory servant_fptr_;
+};
+/// Homes
+HomeAttributes homes_table[]=
+{
+ {"Messenger_Instance", "create_MessengerHome_Impl", create_MessengerHome_Impl, "create_MessengerHome_Servant", create_MessengerHome_Servant},
+ {"First_Receiver_Instance", "create_ReceiverHome_Impl", create_ReceiverHome_Impl, "create_ReceiverHome_Servant", create_ReceiverHome_Servant},
+ {"Second_Receiver_Instance", "create_ReceiverHome_Impl", create_ReceiverHome_Impl, "create_ReceiverHome_Servant", create_ReceiverHome_Servant},
+ {"Administrator_Instance", "create_AdministratorHome_Impl", create_AdministratorHome_Impl, "create_AdministratorHome_Servant", create_AdministratorHome_Servant}
+};
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/run_test.pl b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/run_test.pl
new file mode 100755
index 00000000000..e7e707f253d
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/run_test.pl
@@ -0,0 +1,110 @@
+# $Id$
+
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+use Env (ACE_ROOT);
+use lib "$ACE_ROOT/bin";
+use PerlACE::Run_Test;
+
+$emior= PerlACE::LocalFile ("em.ior");
+unlink $emior;
+$plior= PerlACE::LocalFile ("pl.ior");
+unlink $plior;
+
+if (defined $ENV{'CIAO_ROOT'}) {
+ $CIAO_ROOT = $ENV{'CIAO_ROOT'};
+}
+else {
+ $CIAO_ROOT = $ACE_ROOT/TAO/CIAO;
+}
+
+$NA = new PerlACE::Process ("$CIAO_ROOT/DAnCE/NodeApplication/NodeApplication");
+$NA_cmd = $NA->Executable ();
+
+$NA1 = new PerlACE::Process ("$CIAO_ROOT/DAnCE/NodeManager/NodeManager",
+ "-ORBEndpoint iiop://localhost:11000 -s $NA_cmd");
+
+$NA2 = new PerlACE::Process ("$CIAO_ROOT/DAnCE/NodeManager/NodeManager",
+ "-ORBEndpoint iiop://localhost:22000 -s $NA_cmd");
+
+$NA3 = new PerlACE::Process ("$CIAO_ROOT/DAnCE/NodeManager/NodeManager",
+ "-ORBEndpoint iiop://localhost:33000 -s $NA_cmd");
+
+$NA4 = new PerlACE::Process ("Messenger_StaticDAnCE",
+ "-ORBEndpoint iiop://:44000");
+
+# Each Node Manager lauches a Node Application process.
+open(STDIN, "<../descriptors/admin.dat");
+$Ret1 = $NA1->Spawn ();
+if($Ret1 == -1) {
+ print STDERR "ERROR: Administrator returned <$Ret1>\n"
+}
+
+$Ret2 = $NA2->Spawn ();
+if($Ret2 == -1) {
+ print STDERR "ERROR: Receiver 1 returned <$Ret2>\n"
+}
+
+$Ret3 = $NA3->Spawn ();
+if($Ret3 == -1) {
+ print STDERR "ERROR: Receiver 2 returned <$Ret3>\n"
+}
+
+$Ret4 = $NA4->Spawn ();
+if($Ret4 == -1) {
+ print STDERR "ERROR: Messenger returned <$Ret4>\n"
+}
+
+#Start an Execution Manager
+$EM = new PerlACE::Process ("$CIAO_ROOT/DAnCE/ExecutionManager/Execution_Manager", "-o $emior -i ../descriptors/ApplicationNodeMap.dat");
+
+$Ret5 = $EM->Spawn ();
+if($Ret5 == -1) {
+ print STDERR "ERROR: Execution Manager returned <$Ret5>\n"
+}
+
+if (PerlACE::waitforfile_timed ($emior, 5) == -1) {
+ print STDERR "ERROR: cannot find file <$emior>\n";
+ $EM->Kill();
+ unlink $emior;
+ exit 1;
+}
+
+sleep(5);
+#Start the plan launcher
+$EX = new PerlACE::Process ("$CIAO_ROOT/DAnCE/Plan_Launcher/plan_launcher",
+ "-p ../descriptors/Application-flattened.cdp ".
+ "-k file://$emior -o $plior");
+
+#Stop the plan launcher
+$EX2 = new PerlACE::Process ("$CIAO_ROOT/DAnCE/Plan_Launcher/plan_launcher",
+ "-k file://$emior -i file://$plior");
+
+$Ret6 = $EX->Spawn ();
+if($Ret6 == -1) {
+ print STDERR "ERROR: plan launcher returned <$Ret6>\n"
+}
+
+sleep(10);
+
+$Ret7 = $EX2->Spawn ();
+if($Ret7 == -1) {
+ print STDERR "ERROR: plan launcher (shutdown) returned <$Ret7>\n"
+}
+
+sleep(5);
+$EX2->Kill();
+$EX->Kill();
+$EM->Kill();
+
+$NA1->Kill();
+$NA2->Kill();
+$NA3->Kill();
+$NA4->Kill();
+
+unlink $emior;
+unlink $plior;
+
+exit 0;
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.ccd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.ccd
new file mode 100644
index 00000000000..23ba49bb84c
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.ccd
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ComponentInterfaceDescription
+ 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>Administrator Component</label>
+ <specificType>IDL:Administrator:1.0</specificType>
+ <supportedType>IDL:Administrator:1.0</supportedType>
+ <idlFile>Administrator.idl</idlFile>
+
+ <port>
+ <name>runnables</name>
+ <exclusiveProvider>false</exclusiveProvider>
+ <exclusiveUser>true</exclusiveUser>
+ <optional>true</optional>
+ <provider>false</provider>
+ <supportedType>IDL:Runnable:1.0</supportedType>
+ <specificType>IDL:Runnable:1.0</specificType>
+ <kind>MultiplexReceptacle</kind>
+ </port>
+
+ <port>
+ <name>content</name>
+ <exclusiveProvider>false</exclusiveProvider>
+ <exclusiveUser>true</exclusiveUser>
+ <optional>true</optional>
+ <provider>false</provider>
+ <supportedType>IDL:Publication:1.0</supportedType>
+ <specificType>IDL:Publication:1.0</specificType>
+ <kind>MultiplexReceptacle</kind>
+ </port>
+
+ <!-- infoProperty elements are optional, and are non-functional -->
+ <infoProperty>
+ <name>comment</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>This CCD describes the Administrator's interface</string>
+ </value>
+ </value>
+ </infoProperty>
+
+</Deployment:ComponentInterfaceDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.cid b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.cid
new file mode 100644
index 00000000000..af9e9a4c677
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.cid
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ComponentImplementationDescription
+ 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>Administrator Implementation</label>
+ <implements href="Administrator.ccd"/>
+ <monolithicImpl>
+ <primaryArtifact>
+ <name>Administrator_Stub</name>
+ <referencedArtifact href="Administrator_Stub.iad"/>
+ </primaryArtifact>
+ <primaryArtifact>
+ <name>Administrator_Svnt</name>
+ <referencedArtifact href="Administrator_Svnt.iad"/>
+ </primaryArtifact>
+ <primaryArtifact>
+ <name>Administrator_Exec</name>
+ <referencedArtifact href="Administrator_Exec.iad"/>
+ </primaryArtifact>
+ </monolithicImpl>
+ <configProperty>
+ <name>ComponentIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Administrator.ior</string>
+ </value>
+ </value>
+ </configProperty>
+</Deployment:ComponentImplementationDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.cpd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.cpd
new file mode 100644
index 00000000000..972966462e6
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.cpd
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ComponentPackageDescription
+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>Administrator Component</label>
+ <realizes href="Administrator.ccd"/>
+ <implementation>
+ <name>AdministratorImpl</name>
+ <referencedImplementation href="Administrator.cid"/>
+ </implementation>
+
+</Deployment:ComponentPackageDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Exec.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Exec.iad
new file mode 100644
index 00000000000..81b7a16da7a
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Exec.iad
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ImplementationArtifactDescription
+ 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>Administrator Executor Artifact</label>
+ <location>Administrator_exec</location>
+ <dependsOn>
+ <name>ACE/TAO/CIAO</name>
+ <referencedArtifact href="Libraries.iad"/>
+ </dependsOn>
+ <dependsOn>
+ <name>Administrator_Stub</name>
+ <referencedArtifact href="Administrator_Stub.iad"/>
+ </dependsOn>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createAdministratorHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <!-- infoProperty elements are optional, and are non-functional -->
+ <infoProperty>
+ <name>comment</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>This IAD describes the Administrator's executor library</string>
+ </value>
+ </value>
+ </infoProperty>
+</Deployment:ImplementationArtifactDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Stub.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Stub.iad
new file mode 100644
index 00000000000..931fc371710
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Stub.iad
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ImplementationArtifactDescription
+ 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>Administrator Stub Artifact</label>
+ <location>Administrator_stub</location>
+ <dependsOn>
+ <name>ACE/TAO/CIAO</name>
+ <referencedArtifact href="Libraries.iad"/>
+ </dependsOn>
+ <dependsOn>
+ <name>Messenger_Stub</name>
+ <referencedArtifact href="Messenger_Stub.iad"/>
+ </dependsOn>
+
+ <!-- infoProperty elements are optional, and are non-functional -->
+ <infoProperty>
+ <name>comment</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>This IAD describes the Administrator's stub library</string>
+ </value>
+ </value>
+ </infoProperty>
+</Deployment:ImplementationArtifactDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Svnt.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Svnt.iad
new file mode 100644
index 00000000000..6774a107ef0
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Svnt.iad
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ImplementationArtifactDescription
+ 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>Administrator Servant Artifact</label>
+ <location>Administrator_svnt</location>
+ <dependsOn>
+ <name>ACE/TAO/CIAO</name>
+ <referencedArtifact href="Libraries.iad"/>
+ </dependsOn>
+ <dependsOn>
+ <name>Administrator_Stub</name>
+ <referencedArtifact href="Administrator_Stub.iad"/>
+ </dependsOn>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createAdministratorHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <!-- infoProperty elements are optional, and are non-functional -->
+ <infoProperty>
+ <name>comment</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>This IAD describes the Administrator's servant library</string>
+ </value>
+ </value>
+ </infoProperty>
+</Deployment:ImplementationArtifactDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application-flattened.cdp b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application-flattened.cdp
new file mode 100644
index 00000000000..d01ec12e2db
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application-flattened.cdp
@@ -0,0 +1,255 @@
+<?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">
+
+ <label>Messenger Deployment Plan</label>
+
+ <!-- realizes -->
+
+ <!-- implementation* -->
+
+ <implementation id="MessengerImpl"> <!-- from Messenger.cpd -->
+ <name>MessengerImpl</name>
+ <source></source>
+ <!-- from Messenger.cid -->
+ <artifact>Messenger_Stub</artifact>
+ <artifact>Messenger_Svnt</artifact>
+ <artifact>Messenger_Exec</artifact>
+ </implementation>
+
+ <implementation id="ReceiverImpl"> <!-- from Receiver.cpd -->
+ <name>ReceiverImpl</name>
+ <source></source>
+ <artifact>Receiver_Stub</artifact>
+ <artifact>Receiver_Svnt</artifact>
+ <artifact>Receiver_Exec</artifact>
+ </implementation>
+
+ <implementation id="AdministratorImpl"> <!-- from Administrator.cpd -->
+ <name>AdministratorImpl</name>
+ <source></source>
+ <artifact>Administrator_Stub</artifact>
+ <artifact>Administrator_Svnt</artifact>
+ <artifact>Administrator_Exec</artifact>
+ </implementation>
+
+ <!-- instance* -->
+
+ <instance id="Messenger_Instance_ID">
+ <name>Messenger_Instance</name>
+ <node>Messenger_Node</node>
+ <source></source>
+ <implementation>MessengerImpl</implementation>
+ </instance>
+ <instance id="First_Receiver_Instance_ID">
+ <name>First_Receiver_Instance</name>
+ <node>First_Receiver_Node</node>
+ <source></source>
+ <implementation>ReceiverImpl</implementation>
+ </instance>
+ <instance id="Second_Receiver_Instance_ID">
+ <name>Second_Receiver_Instance</name>
+ <node>Second_Receiver_Node</node>
+ <source></source>
+ <implementation>ReceiverImpl</implementation>
+ </instance>
+ <instance id="Administrator_Instance_ID">
+ <name>Administrator_Instance</name>
+ <node>Administrator_Node</node>
+ <source></source>
+ <implementation>AdministratorImpl</implementation>
+ </instance>
+
+ <!-- connection* -->
+
+ <connection>
+ <name>Messenger_to_First_Receiver_Publish</name>
+ <internalEndpoint>
+ <portName>message_publisher</portName>
+ <kind>EventPublisher</kind>
+ <instance>Messenger_Instance_ID</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>message_consumer</portName>
+ <kind>EventConsumer</kind>
+ <instance>First_Receiver_Instance_ID</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>Messenger_to_First_Receiver_History</name>
+ <internalEndpoint>
+ <portName>message_history</portName>
+ <kind>Facet</kind>
+ <instance>Messenger_Instance_ID</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>message_history</portName>
+ <kind>SimplexReceptacle</kind>
+ <instance>First_Receiver_Instance_ID</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>Messenger_to_Second_Receiver_Publish</name>
+ <internalEndpoint>
+ <portName>message_publisher</portName>
+ <kind>EventPublisher</kind>
+ <instance>Messenger_Instance_ID</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>message_consumer</portName>
+ <kind>EventConsumer</kind>
+ <instance>Second_Receiver_Instance_ID</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>Messenger_to_Second_Receiver_History</name>
+ <internalEndpoint>
+ <portName>message_history</portName>
+ <kind>Facet</kind>
+ <instance>Messenger_Instance_ID</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>message_history</portName>
+ <kind>SimplexReceptacle</kind>
+ <instance>Second_Receiver_Instance_ID</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>Messenger_to_Administrator_Control</name>
+ <internalEndpoint>
+ <portName>control</portName>
+ <kind>Facet</kind>
+ <instance>Messenger_Instance_ID</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>runnables</portName>
+ <kind>SimplexReceptacle</kind>
+ <instance>Administrator_Instance_ID</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>Messenger_to_Administrator_Content</name>
+ <internalEndpoint>
+ <portName>content</portName>
+ <kind>Facet</kind>
+ <instance>Messenger_Instance_ID</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>content</portName>
+ <kind>SimplexReceptacle</kind>
+ <instance>Administrator_Instance_ID</instance>
+ </internalEndpoint>
+ </connection>
+
+ <!-- artifact* (exec, svnt) -->
+
+ <artifact id="Messenger_Stub">
+ <name>Messenger_Stub</name>
+ <source></source>
+ <node></node>
+ <location>Messenger_stub</location>
+ </artifact>
+ <artifact id="Messenger_Svnt">
+ <name>Messenger_Svnt</name>
+ <source></source>
+ <node></node>
+ <location>Messenger_svnt</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type><kind>tk_string</kind></type>
+ <value><string>create_MessengerHome_Servant</string></value>
+ </value>
+ </execParameter>
+ </artifact>
+ <artifact id="Messenger_Exec">
+ <name>Messenger_Exec</name>
+ <source></source>
+ <node></node>
+ <location>Messenger_exec</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type><kind>tk_string</kind></type>
+ <value><string>create_MessengerHome_Impl</string></value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact id="Receiver_Stub">
+ <name>Receiver_Stub</name>
+ <source></source>
+ <node></node>
+ <location>Receiver_stub</location>
+ </artifact>
+ <artifact id="Receiver_Svnt">
+ <name>Receiver_Svnt</name>
+ <source></source>
+ <node></node>
+ <location>Receiver_svnt</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type><kind>tk_string</kind></type>
+ <value><string>create_ReceiverHome_Servant</string></value>
+ </value>
+ </execParameter>
+ </artifact>
+ <artifact id="Receiver_Exec">
+ <name>Receiver_Exec</name>
+ <source></source>
+ <node></node>
+ <location>Receiver_exec</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type><kind>tk_string</kind></type>
+ <value><string>create_ReceiverHome_Impl</string></value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact id="Administrator_Stub">
+ <name>Administrator_Stub</name>
+ <source></source>
+ <node></node>
+ <location>Administrator_stub</location>
+ </artifact>
+ <artifact id="Administrator_Svnt">
+ <name>Administrator_Svnt</name>
+ <source></source>
+ <node></node>
+ <location>Administrator_svnt</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type><kind>tk_string</kind></type>
+ <value><string>create_AdministratorHome_Servant</string></value>
+ </value>
+ </execParameter>
+ </artifact>
+ <artifact id="Administrator_Exec">
+ <name>Administrator_Exec</name>
+ <source></source>
+ <node></node>
+ <location>Administrator_exec</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type><kind>tk_string</kind></type>
+ <value><string>create_AdministratorHome_Impl</string></value>
+ </value>
+ </execParameter>
+ </artifact>
+
+
+</Deployment:deploymentPlan>
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application.cdp b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application.cdp
new file mode 100644
index 00000000000..9e774373c2f
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application.cdp
@@ -0,0 +1,25 @@
+<?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">
+ <label>Messenger Deployment Plan</label>
+ <instance xmi:id="Messenger_Instance_ID">
+ <name>Messenger_Instance</name>
+ <node>Messenger_Node</node>
+ </instance>
+ <instance xmi:id="First_Receiver_Instance_ID">
+ <name>First_Receiver_Instance</name>
+ <node>First_Receiver_Node</node>
+ </instance>
+ <instance xmi:id="Second_Receiver_Instance_ID">
+ <name>Second_Receiver_Instance</name>
+ <node>Second_Receiver_Node</node>
+ </instance>
+ <instance xmi:id="Administrator_Instance_ID">
+ <name>Administrator_Instance</name>
+ <node>Administrator_Node</node>
+ </instance>
+</Deployment:DeploymentPlan>
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application.pcd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application.pcd
new file mode 100644
index 00000000000..70635a4850b
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application.pcd
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:PackageConfiguration
+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>Messenger Application Configuration</label>
+ <basePackage href="MessengerAssembly.cpd"/>
+
+ <!-- CIAO does not yet pay attention to this -->
+ <configProperty>
+ <name>subject</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>My Subject</string>
+ </value>
+ </value>
+ </configProperty>
+</Deployment:PackageConfiguration>
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/ApplicationNodeMap.dat b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/ApplicationNodeMap.dat
new file mode 100644
index 00000000000..91fbbfd4d20
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/ApplicationNodeMap.dat
@@ -0,0 +1,5 @@
+Administrator_Node corbaloc:iiop:localhost:11000/Administrator_Node.NodeManager
+First_Receiver_Node corbaloc:iiop:localhost:22000/First_Receiver_Node.NodeManager
+Second_Receiver_Node corbaloc:iiop:localhost:33000/Second_Receiver_Node.NodeManager
+Messenger_Node corbaloc:iiop:localhost:44000/Messenger_Node.NodeManager
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Deployment.xsd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Deployment.xsd
new file mode 100644
index 00000000000..ae9bc21965d
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Deployment.xsd
@@ -0,0 +1,776 @@
+<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" schemaLocation="XMI.xsd" />
+
+
+ <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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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="UUID" type="xsd:string"/>
+ <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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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:schema>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Domain.cdd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Domain.cdd
new file mode 100644
index 00000000000..54a8c1f5a82
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Domain.cdd
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<Deployment:Domain
+ 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>Messenger Application Domain</label>
+<node>
+ <name>Messenger_Node</name>
+ <label>Messenger's Node</label>
+</node>
+<node>
+ <name>First_Receiver_Node</name>
+ <label>First Receiver's Node</label>
+</node>
+<node>
+ <name>Second_Receiver_Node</name>
+ <label>Second Receiver's Node</label>
+</node>
+<node>
+ <name>Administrator_Node</name>
+ <label>Administrator's Node</label>
+</node>
+</Deployment:Domain>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Libraries.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Libraries.iad
new file mode 100644
index 00000000000..d861613c157
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Libraries.iad
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ImplementationArtifactDescription
+ 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>ACE/TAO/CIAO Libraries</label>
+ <location>$ACE_ROOT/lib/ACE</location>
+ <location>$ACE_ROOT/lib/TAO</location>
+ <location>$ACE_ROOT/lib/CIAO_Client</location>
+</Deployment:ImplementationArtifactDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.ccd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.ccd
new file mode 100644
index 00000000000..cf79d7fb9f7
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.ccd
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ComponentInterfaceDescription
+ 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>Messenger Component</label>
+ <specificType>IDL:Messenger:1.0</specificType>
+ <idlFile>Messenger.idl</idlFile>
+
+ <property>
+ <name>subject</name>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ </property>
+
+ <port>
+ <name>control</name>
+ <exclusiveProvider>false</exclusiveProvider>
+ <exclusiveUser>false</exclusiveUser>
+ <optional>true</optional>
+ <provider>true</provider>
+ <supportedType>IDL:Runnable:1.0</supportedType>
+ <specificType>IDL:Runnable:1.0</specificType>
+ <kind>Facet</kind>
+ </port>
+
+ <port>
+ <name>content</name>
+ <exclusiveProvider>false</exclusiveProvider>
+ <exclusiveUser>false</exclusiveUser>
+ <optional>true</optional>
+ <provider>true</provider>
+ <supportedType>IDL:Publication:1.0</supportedType>
+ <specificType>IDL:Publication:1.0</specificType>
+ <kind>Facet</kind>
+ </port>
+
+ <port>
+ <name>message_publisher</name>
+ <exclusiveProvider>false</exclusiveProvider>
+ <exclusiveUser>false</exclusiveUser>
+ <optional>true</optional>
+ <provider>false</provider>
+ <supportedType>IDL:Message:1.0</supportedType>
+ <specificType>IDL:Message:1.0</specificType>
+ <kind>EventPublisher</kind>
+ </port>
+
+ <port>
+ <name>message_history</name>
+ <exclusiveProvider>false</exclusiveProvider>
+ <exclusiveUser>false</exclusiveUser>
+ <optional>true</optional>
+ <provider>true</provider>
+ <supportedType>IDL:History:1.0</supportedType>
+ <specificType>IDL:History:1.0</specificType>
+ <kind>Facet</kind>
+ </port>
+
+ <!-- Default value for subject property, can be overridden.
+ CIAO does not process this (yet)
+ -->
+ <configProperty>
+ <name>subject</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Default Subject</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <!-- infoProperty elements are optional, and are non-functional -->
+ <infoProperty>
+ <name>comment</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>This CCD describes the Messenger's interface</string>
+ </value>
+ </value>
+ </infoProperty>
+
+</Deployment:ComponentInterfaceDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.cid b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.cid
new file mode 100644
index 00000000000..c4e934f1ee2
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.cid
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ComponentImplementationDescription
+ 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>Messenger Implementation</label>
+ <implements href="Messenger.ccd"/>
+ <monolithicImpl>
+ <primaryArtifact>
+ <name>Messenger_Stub</name>
+ <referencedArtifact href="Messenger_Stub.iad"/>
+ </primaryArtifact>
+ <primaryArtifact>
+ <name>Messenger_Svnt</name>
+ <referencedArtifact href="Messenger_Svnt.iad"/>
+ </primaryArtifact>
+ <primaryArtifact>
+ <name>Messenger_Exec</name>
+ <referencedArtifact href="Messenger_Exec.iad"/>
+ </primaryArtifact>
+ </monolithicImpl>
+
+ <configProperty>
+ <name>ComponentIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Messenger.ior</string>
+ </value>
+ </value>
+ </configProperty>
+
+</Deployment:ComponentImplementationDescription>
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.cpd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.cpd
new file mode 100644
index 00000000000..ee624b9bce5
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.cpd
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ComponentPackageDescription
+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>Messenger Component</label>
+ <realizes href="Messenger.ccd"/>
+ <implementation>
+ <name>MessengerImpl</name>
+ <referencedImplementation href="Messenger.cid"/>
+ </implementation>
+
+</Deployment:ComponentPackageDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.ccd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.ccd
new file mode 100644
index 00000000000..c048d99133d
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.ccd
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ComponentInterfaceDescription
+ 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>Messenger Assembly</label>
+
+ <property>
+ <name>subject</name>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ </property>
+
+ <!-- Default value for subject property, can be overridden.
+ CIAO does not process this (yet)
+ -->
+ <configProperty>
+ <name>subject</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Default Subject</string>
+ </value>
+ </value>
+ </configProperty>
+
+</Deployment:ComponentInterfaceDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.cid b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.cid
new file mode 100644
index 00000000000..bd0bf4e56ce
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.cid
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ComponentImplementationDescription
+ 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>Messenger Assembly</label>
+ <implements href="MessengerAssembly.ccd"/>
+ <assemblyImpl>
+ <instance xmi:id="a_Messenger">
+ <name>Messenger_Instance</name>
+ <package href="Messenger.cpd"/>
+ </instance>
+ <instance xmi:id="first_Receiver">
+ <name>First_Receiver_Instance</name>
+ <package href="Receiver.cpd"/>
+ </instance>
+ <instance xmi:id="second_Receiver">
+ <name>Second_Receiver_Instance</name>
+ <package href="Receiver.cpd"/>
+ </instance>
+ <instance xmi:id="a_Administrator">
+ <name>Administrator_Instance</name>
+ <package href="Administrator.cpd"/>
+ </instance>
+
+ <connection>
+ <name>Messenger_to_First_Receiver_Publish</name>
+ <internalEndpoint>
+ <portName>message_publisher</portName>
+ <instance xmi:idref="a_Messenger"/>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>message_consumer</portName>
+ <instance xmi:idref="first_Receiver"/>
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>Messenger_to_First_Receiver_History</name>
+ <internalEndpoint>
+ <portName>message_history</portName>
+ <instance xmi:idref="a_Messenger"/>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>message_history</portName>
+ <instance xmi:idref="first_Receiver"/>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>Messenger_to_Second_Receiver_Publisher</name>
+ <internalEndpoint>
+ <portName>message_publisher</portName>
+ <instance xmi:idref="a_Messenger"/>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>message_consumer</portName>
+ <instance xmi:idref="second_Receiver"/>
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>Messenger_to_Second_Receiver_History</name>
+ <internalEndpoint>
+ <portName>message_history</portName>
+ <instance xmi:idref="a_Messenger"/>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>message_history</portName>
+ <instance xmi:idref="second_Receiver"/>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>Messenger_to_Administrator_Control</name>
+ <internalEndpoint>
+ <portName>control</portName>
+ <instance xmi:idref="a_Messenger"/>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>runnables</portName>
+ <instance xmi:idref="a_Administrator"/>
+ </internalEndpoint>
+ </connection>
+ <connection>
+ <name>Messenger_to_Administrator_Content</name>
+ <internalEndpoint>
+ <portName>content</portName>
+ <instance xmi:idref="a_Messenger"/>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>content</portName>
+ <instance xmi:idref="a_Administrator"/>
+ </internalEndpoint>
+ </connection>
+
+ <!--
+ Not sure that externalName has to match.
+ Don't know if CIAO processes this yet.
+ -->
+ <externalProperty>
+ <name>Subject Mapping</name>
+ <externalName>subject</externalName>
+ <delegatesTo>
+ <propertyName>subject</propertyName>
+ <instance xmi:idref="a_Messenger"/>
+ </delegatesTo>
+ </externalProperty>
+
+ </assemblyImpl>
+</Deployment:ComponentImplementationDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.cpd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.cpd
new file mode 100644
index 00000000000..a719ad571c9
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.cpd
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ComponentPackageDescription
+ 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>Messenger Assembly Package</label>
+ <realizes href="MessengerAssembly.ccd"/>
+ <implementation>
+ <name>Messenger Application</name>
+ <referencedImplementation href="MessengerAssembly.cid"/>
+ </implementation>
+</Deployment:ComponentPackageDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Exec.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Exec.iad
new file mode 100644
index 00000000000..0b8cef2092c
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Exec.iad
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ImplementationArtifactDescription
+ 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>Messenger Executor Artifact</label>
+ <location>Messenger_exec</location>
+ <dependsOn>
+ <name>ACE/TAO/CIAO</name>
+ <referencedArtifact href="Libraries.iad"/>
+ </dependsOn>
+ <dependsOn>
+ <name>Messenger_Stub</name>
+ <referencedArtifact href="Messenger_Stub.iad"/>
+ </dependsOn>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createMessengerHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <!-- infoProperty elements are optional, and are non-functional -->
+ <infoProperty>
+ <name>comment</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>This IAD describes the Messenger's executor library</string>
+ </value>
+ </value>
+ </infoProperty>
+</Deployment:ImplementationArtifactDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Stub.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Stub.iad
new file mode 100644
index 00000000000..50447209f50
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Stub.iad
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ImplementationArtifactDescription
+ 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>Messenger Stub Artifact</label>
+ <location>Messenger_stub</location>
+ <dependsOn>
+ <name>ACE/TAO/CIAO</name>
+ <referencedArtifact href="Libraries.iad"/>
+ </dependsOn>
+ <!-- infoProperty elements are optional, and are non-functional -->
+ <infoProperty>
+ <name>comment</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>This IAD describes the Messenger's stub library</string>
+ </value>
+ </value>
+ </infoProperty>
+</Deployment:ImplementationArtifactDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Svnt.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Svnt.iad
new file mode 100644
index 00000000000..29b83d63e53
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Svnt.iad
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ImplementationArtifactDescription
+ 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>Messenger Servant Artifact</label>
+ <location>Messenger_svnt</location>
+ <dependsOn>
+ <name>ACE/TAO/CIAO</name>
+ <referencedArtifact href="Libraries.iad"/>
+ </dependsOn>
+ <dependsOn>
+ <name>Messenger_Stub</name>
+ <referencedArtifact href="Messenger_Stub.iad"/>
+ </dependsOn>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createMessengerHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <!-- infoProperty elements are optional, and are non-functional -->
+ <infoProperty>
+ <name>comment</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>This IAD describes the Messenger's servant library</string>
+ </value>
+ </value>
+ </infoProperty>
+</Deployment:ImplementationArtifactDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/README_15a b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/README_15a
new file mode 100644
index 00000000000..ac466837dc4
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/README_15a
@@ -0,0 +1,5 @@
+Deployment has changed in CIAO 0.5a (part of TAO 1.5a), now we use the plan
+launcher, which reads a single XML file called a flattened deployment plan.
+In our example, that file is Application-flattened.cdp. All the other XML
+files in this directory are here for reference and to correspond to the 1.4a
+TAO Developer's Guide, but they are not actually used.
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.ccd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.ccd
new file mode 100644
index 00000000000..3094ae368dc
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.ccd
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ComponentInterfaceDescription
+ 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>Receiver Component</label>
+ <specificType>IDL:Receiver:1.0</specificType>
+ <supportedType>IDL:Receiver:1.0</supportedType>
+ <idlFile>Receiver.idl</idlFile>
+
+ <port>
+ <name>message_consumer</name>
+ <exclusiveProvider>false</exclusiveProvider>
+ <exclusiveUser>false</exclusiveUser>
+ <optional>false</optional>
+ <provider>true</provider>
+ <supportedType>IDL:Message:1.0</supportedType>
+ <specificType>IDL:Message:1.0</specificType>
+ <kind>EventConsumer</kind>
+ </port>
+
+ <port>
+ <name>message_history</name>
+ <exclusiveProvider>false</exclusiveProvider>
+ <exclusiveUser>true</exclusiveUser>
+ <optional>true</optional>
+ <provider>false</provider>
+ <supportedType>IDL:History:1.0</supportedType>
+ <specificType>IDL:History:1.0</specificType>
+ <kind>SimplexReceptacle</kind>
+ </port>
+
+ <!-- infoProperty elements are optional, and are non-functional -->
+ <infoProperty>
+ <name>comment</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>This CCD describes the Receiver's interface</string>
+ </value>
+ </value>
+ </infoProperty>
+
+</Deployment:ComponentInterfaceDescription>
+
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.cid b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.cid
new file mode 100644
index 00000000000..c5c85d648da
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.cid
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ComponentImplementationDescription
+ 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>Receiver Implementation</label>
+ <implements href="Receiver.ccd"/>
+ <monolithicImpl>
+ <primaryArtifact>
+ <name>Receiver_Stub</name>
+ <referencedArtifact href="Receiver_Stub.iad"/>
+ </primaryArtifact>
+ <primaryArtifact>
+ <name>Receiver_Svnt</name>
+ <referencedArtifact href="Receiver_Svnt.iad"/>
+ </primaryArtifact>
+ <primaryArtifact>
+ <name>Receiver_Exec</name>
+ <referencedArtifact href="Receiver_Exec.iad"/>
+ </primaryArtifact>
+ </monolithicImpl>
+ <configProperty>
+ <name>ComponentIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver.ior</string>
+ </value>
+ </value>
+ </configProperty>
+</Deployment:ComponentImplementationDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.cpd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.cpd
new file mode 100644
index 00000000000..8b8ff890fa2
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.cpd
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ComponentPackageDescription 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>Receiver Component</label>
+ <realizes href="Receiver.ccd"/>
+ <implementation>
+ <name>ReceiverImpl</name>
+ <referencedImplementation href="Receiver.cid"/>
+ </implementation>
+
+</Deployment:ComponentPackageDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Exec.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Exec.iad
new file mode 100644
index 00000000000..adcee103c94
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Exec.iad
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ImplementationArtifactDescription
+ 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>Receiver Executor Artifact</label>
+ <location>Receiver_exec</location>
+ <dependsOn>
+ <name>ACE/TAO/CIAO</name>
+ <referencedArtifact href="Libraries.iad"/>
+ </dependsOn>
+ <dependsOn>
+ <name>Receiver_Stub</name>
+ <referencedArtifact href="Receiver_Stub.iad"/>
+ </dependsOn>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createReceiverHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <!-- infoProperty elements are optional, and are non-functional -->
+ <infoProperty>
+ <name>comment</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>This IAD describes the Receiver's executor library</string>
+ </value>
+ </value>
+ </infoProperty>
+</Deployment:ImplementationArtifactDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Stub.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Stub.iad
new file mode 100644
index 00000000000..63d7e37cc8e
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Stub.iad
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ImplementationArtifactDescription
+ 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>Receiver Stub Artifact</label>
+ <location>Receiver_stub</location>
+ <dependsOn>
+ <name>ACE/TAO/CIAO</name>
+ <referencedArtifact href="Libraries.iad"/>
+ </dependsOn>
+ <dependsOn>
+ <name>Messenger_Stub</name>
+ <referencedArtifact href="Messenger_Stub.iad"/>
+ </dependsOn>
+ <!-- infoProperty elements are optional, and are non-functional -->
+ <infoProperty>
+ <name>comment</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>This IAD describes the Receiver's stub library</string>
+ </value>
+ </value>
+ </infoProperty>
+</Deployment:ImplementationArtifactDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Svnt.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Svnt.iad
new file mode 100644
index 00000000000..8e3bf58d965
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Svnt.iad
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:ImplementationArtifactDescription
+ 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>Receiver Servant Artifact</label>
+ <location>Receiver_svnt</location>
+ <dependsOn>
+ <name>ACE/TAO/CIAO</name>
+ <referencedArtifact href="Libraries.iad"/>
+ </dependsOn>
+ <dependsOn>
+ <name>Receiver_Stub</name>
+ <referencedArtifact href="Receiver_Stub.iad"/>
+ </dependsOn>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createReceiverHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <!-- infoProperty elements are optional, and are non-functional -->
+ <infoProperty>
+ <name>comment</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>This IAD describes the Receiver's servant library</string>
+ </value>
+ </value>
+ </infoProperty>
+</Deployment:ImplementationArtifactDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/XMI.xsd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/XMI.xsd
new file mode 100644
index 00000000000..f4adac91934
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/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/examples/DevGuideExamples/Messenger/descriptors/admin.dat b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/admin.dat
new file mode 100644
index 00000000000..f5815bb1f60
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/admin.dat
@@ -0,0 +1,7 @@
+1
+3
+1
+4
+Changing the publication text!
+2
+5
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/package.tpd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/package.tpd
new file mode 100644
index 00000000000..f481b6bd789
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/package.tpd
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:TopLevelPackageDescription
+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">
+ <package href="Application.pcd"/>
+</Deployment:TopLevelPackageDescription>
diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/run_test.pl b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/run_test.pl
new file mode 100755
index 00000000000..77b1711b3be
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/run_test.pl
@@ -0,0 +1,117 @@
+# $Id$
+
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+use Env (ACE_ROOT);
+use lib "$ACE_ROOT/bin";
+use PerlACE::Run_Test;
+
+$emior= PerlACE::LocalFile ("em.ior");
+unlink $emior;
+$plior= PerlACE::LocalFile ("pl.ior");
+unlink $plior;
+
+if (defined $ENV{'CIAO_ROOT'}) {
+ $CIAO_ROOT = $ENV{'CIAO_ROOT'};
+}
+else {
+ $CIAO_ROOT = "$ACE_ROOT/TAO/CIAO";
+}
+
+if (defined $ENV{'DANCE_ROOT'}) {
+ $DANCE_ROOT = $ENV{'DANCE_ROOT'};
+}
+else {
+ $DANCE_ROOT = "$ACE_ROOT/TAO/CIAO/DAnCE";
+}
+
+
+$NA = new PerlACE::Process ("$CIAO_ROOT/bin/ciao_componentserver");
+$NA_cmd = $NA->Executable ();
+
+$NA1 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager",
+ "-ORBEndpoint iiop://localhost:11000 -s $NA_cmd -n Administrator_Node");
+
+$NA2 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager",
+ "-ORBEndpoint iiop://localhost:22000 -s $NA_cmd -n First_Receiver_Node");
+
+$NA3 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager",
+ "-ORBEndpoint iiop://localhost:33000 -s $NA_cmd -n Second_Receiver_Node");
+
+$NA4 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager",
+ "-ORBEndpoint iiop://localhost:44000 -s $NA_cmd -n Messenger_Node");
+
+# Each Node Manager lauches a Node Application process.
+open(STDIN, "<admin.dat");
+$Ret1 = $NA1->Spawn ();
+if($Ret1 == -1) {
+ print STDERR "ERROR: Administrator returned <$Ret1>\n"
+}
+
+$Ret2 = $NA2->Spawn ();
+if($Ret2 == -1) {
+ print STDERR "ERROR: Receiver 1 returned <$Ret2>\n"
+}
+
+$Ret3 = $NA3->Spawn ();
+if($Ret3 == -1) {
+ print STDERR "ERROR: Receiver 2 returned <$Ret3>\n"
+}
+
+$Ret4 = $NA4->Spawn ();
+if($Ret4 == -1) {
+ print STDERR "ERROR: Messenger returned <$Ret4>\n"
+}
+
+#Start an Execution Manager
+$EM = new PerlACE::Process ("$DANCE_ROOT/bin/dance_execution_manager", "-e$emior --node-map ApplicationNodeMap.dat");
+
+$Ret5 = $EM->Spawn ();
+if($Ret5 == -1) {
+ print STDERR "ERROR: Execution Manager returned <$Ret5>\n"
+}
+
+if (PerlACE::waitforfile_timed ($emior, 5) == -1) {
+ print STDERR "ERROR: cannot find file <$emior>\n";
+ $EM->Kill();
+ unlink $emior;
+ exit 1;
+}
+
+sleep(5);
+#Start the plan launcher
+$EX = new PerlACE::Process ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-x Application-flattened_Unhomed.cdp -k file://$emior ");
+
+#Stop the plan launcher
+$EX2 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_plan_launcher",
+ "-k file://$emior -x Application-flattened_Unhomed.cdp");
+
+$Ret6 = $EX->Spawn ();
+if($Ret6 == -1) {
+ print STDERR "ERROR: plan launcher returned <$Ret6>\n"
+}
+
+sleep(10);
+
+$Ret7 = $EX2->Spawn ();
+if($Ret7 == -1) {
+ print STDERR "ERROR: plan launcher (shutdown) returned <$Ret7>\n"
+}
+
+sleep(5);
+
+$NA1->Kill();
+$NA2->Kill();
+$NA3->Kill();
+$NA4->Kill();
+$EX->Kill();
+$EX2->Kill();
+$EM->Kill();
+
+unlink $emior;
+unlink $plior;
+
+exit 0;
diff --git a/modules/CIAO/examples/DevGuideExamples/readme.txt b/modules/CIAO/examples/DevGuideExamples/readme.txt
new file mode 100644
index 00000000000..f6efa4d084f
--- /dev/null
+++ b/modules/CIAO/examples/DevGuideExamples/readme.txt
@@ -0,0 +1,12 @@
+"These examples were developed by and are included in this
+distribution with the permission of Object Computing, Inc. (OCI)
+for the purpose of illustrating the usage of certain features of
+The ACE ORB (TAO) as described in OCI's TAO Developer's Guide.
+They are provided as is with no warranty, expressed or implied.
+Though the examples are believed to illustrate correct usage of
+TAO, OCI does not actively maintain them in this distribution and
+does not guarantee their accuracy or their suitability for any
+particular use. OCI does provide additional distributions of TAO
+and provides commercial support for TAO. Visit
+http://www.theaceorb.com or contact sales@ociweb.com for more
+information on OCI's business model with respect to TAO." \ No newline at end of file
diff --git a/modules/CIAO/examples/Display/Display_Base/Display_Base.idl b/modules/CIAO/examples/Display/Display_Base/Display_Base.idl
new file mode 100644
index 00000000000..337d4101c2b
--- /dev/null
+++ b/modules/CIAO/examples/Display/Display_Base/Display_Base.idl
@@ -0,0 +1,46 @@
+// $Id$
+
+/**
+ * @file Display_Base.idl
+ *
+ * Definition of events, and common interfaces used in HUDisplay module.
+ *
+ * @author Nanbor Wang <nanbor@cs.wustl.edu>
+ */
+
+#ifndef HUDISPLAY_IDL
+#define HUDISPLAY_IDL
+
+#include <Components.idl>
+
+module HUDisplay
+{
+ /**
+ * @brief interface opmode defines the "operation mode" interface.
+ */
+ interface opmode
+ {
+ void start ();
+ void stop ();
+ boolean active ();
+ };
+
+ /**
+ * @brief a timed event that happens at some fix rate.
+ */
+ eventtype tick
+ {
+ // We could put a timestamp here if desired.
+ };
+
+ /**
+ * @brief interface position allows querying of a coordination.
+ */
+ interface position
+ {
+ long posx ();
+ long posy ();
+ };
+};
+
+#endif /* HUDISPLAY_IDL */
diff --git a/modules/CIAO/examples/Display/Display_Base/Display_Base.mpc b/modules/CIAO/examples/Display/Display_Base/Display_Base.mpc
new file mode 100644
index 00000000000..c25a86c9ce1
--- /dev/null
+++ b/modules/CIAO/examples/Display/Display_Base/Display_Base.mpc
@@ -0,0 +1,79 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Display_Base"
+
+project(Display_Base_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=DISPLAY_BASE_STUB_Export \
+ -Wb,stub_export_include=Display_Base_stub_export.h \
+ -Wb,skel_export_macro=DISPLAY_BASE_SKEL_Export \
+ -Wb,skel_export_include=Display_Base_skel_export.h
+
+ IDL_Files {
+ Display_Base.idl
+ }
+}
+
+project(Display_Base_lem_gen) : ciaoidldefaults {
+ after += Display_Base_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=DISPLAY_BASE_STUB_Export \
+ -Wb,stub_export_include=Display_Base_stub_export.h \
+
+ IDL_Files {
+ Display_BaseE.idl
+ }
+}
+
+project(Display_Base_stub) : ccm_stub {
+ after += Display_Base_lem_gen
+ libout = ../lib
+ libpaths += ../lib
+
+ sharedname = Display_Base_stub
+ dynamicflags = DISPLAY_BASE_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Display_BaseC.cpp
+ Display_BaseEC.cpp
+ }
+
+ Header_Files {
+ Display_BaseC.h
+ Display_Base_stub_export.h
+ }
+
+ Inline_Files {
+ Display_BaseC.inl
+ }
+}
+
+project(Display_Base_skel) : ciao_executor {
+ after += Display_Base_stub
+ sharedname = Display_Base_skel
+ libs += Display_Base_stub
+ libout = ../lib
+ libpaths += ../lib
+
+ dynamicflags = DISPLAY_BASE_SKEL_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Display_BaseS.cpp
+ }
+
+ Header_Files {
+ Display_BaseS.h
+ Display_Base_skel_export.h
+ }
+
+ Inline_Files {
+ Display_BaseS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/examples/Display/GPS/GPS.idl b/modules/CIAO/examples/Display/GPS/GPS.idl
new file mode 100644
index 00000000000..90896c6130d
--- /dev/null
+++ b/modules/CIAO/examples/Display/GPS/GPS.idl
@@ -0,0 +1,30 @@
+// $Id$
+
+/**
+ * @file GPS.idl
+ *
+ * Definition of the GPS component.
+ *
+ * @author Nanbor Wang <nanbor@cs.wustl.edu>
+ */
+#ifndef GPS_IDL
+#define GPS_IDL
+
+#include "../Display_Base/Display_Base.idl"
+#include "../Display_Base/Display_BaseE.idl"
+
+module HUDisplay
+{
+ component GPS
+ {
+ provides position MyLocation;
+ publishes tick Ready;
+ consumes tick Refresh;
+ };
+
+ home GPSHome manages GPS
+ {
+ };
+};
+
+#endif /* GPS_IDL */
diff --git a/modules/CIAO/examples/Display/GPS/GPS.mpc b/modules/CIAO/examples/Display/GPS/GPS.mpc
new file mode 100644
index 00000000000..9787c0792fe
--- /dev/null
+++ b/modules/CIAO/examples/Display/GPS/GPS.mpc
@@ -0,0 +1,117 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p Display_Base -u Display GPS"
+
+project(Display_GPS_idl_gen) : componentidldefaults {
+ after += Display_Base_idl_gen
+ custom_only = 1
+ idlflags += \
+ -Wb,stub_export_macro=GPS_STUB_Export \
+ -Wb,stub_export_include=GPS_stub_export.h \
+ -Wb,skel_export_macro=GPS_SVNT_Export \
+ -Wb,skel_export_include=GPS_svnt_export.h \
+ -Wb,exec_export_macro=GPS_EXEC_Export \
+ -Wb,exec_export_include=GPS_exec_export.h \
+
+ IDL_Files {
+ GPS.idl
+ }
+}
+
+project(Display_GPS_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ after += Display_GPS_idl_gen
+ idlflags += -Wb,export_macro=GPS_EXEC_Export \
+ -Wb,export_include=GPS_exec_export.h \
+ -SS
+
+ IDL_Files {
+ GPSE.idl
+ }
+}
+
+project(Display_GPS_stub) : ccm_stub {
+ after += Display_GPS_idl_gen Display_Base_stub
+ libs += Display_Base_stub
+ libout = ../lib
+ libpaths += ../lib
+
+ sharedname = GPS_stub
+ dynamicflags = GPS_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ GPSC.cpp
+ }
+
+ Header_Files {
+ GPSC.h
+ GPS_stub_export.h
+ }
+
+ Inline_Files {
+ GPSC.inl
+ }
+}
+
+project(Display_GPS_exec) : ciao_executor {
+ after += Display_GPS_lem_gen Display_GPS_stub Display_Base_stub
+ sharedname = GPS_exec
+ libs += GPS_stub Display_Base_stub
+ libout = ../lib
+ libpaths += ../lib
+
+ dynamicflags = GPS_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ GPSEC.cpp
+ GPS_exec.cpp
+ }
+
+ Header_Files {
+ GPSEC.h
+ GPS_exec.h
+ GPS_exec_export.h
+ }
+
+ Inline_Files {
+ GPSEC.inl
+ }
+}
+
+project(Display_GPS_svnt) : ciao_servant {
+ after += Display_Base_skel Display_GPS_exec Display_Base_stub
+ sharedname = GPS_svnt
+ libs += GPS_exec \
+ GPS_stub \
+ Display_Base_skel \
+ Display_Base_stub
+ libout = ../lib
+ libpaths += ../lib
+
+ dynamicflags = GPS_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ GPSS.cpp
+ GPS_svnt.cpp
+ }
+
+ Header_Files {
+ GPSS.h
+ GPS_svnt.h
+ GPS_svnt_export.h
+ }
+
+ Inline_Files {
+ GPSS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/examples/Display/GPS/GPSEI.idl b/modules/CIAO/examples/Display/GPS/GPSEI.idl
new file mode 100644
index 00000000000..d7604931f58
--- /dev/null
+++ b/modules/CIAO/examples/Display/GPS/GPSEI.idl
@@ -0,0 +1,33 @@
+// $Id$
+
+/**
+ * @file GPSEI.idl
+ *
+ * Definition of the GPS component implementation.
+ *
+ * @author Nanbor Wang <nanbor@cs.wustl.edu>
+ */
+
+#ifndef GPSEI_IDL
+#define GPSEI_IDL
+
+#include "GPSE.idl"
+
+module HUDisplay
+{
+ /**
+ * @interface GPS_Exec
+ *
+ * The actually GPS executor inherits from both CCM_GPS and
+ * CCM_position interfaces as a monolithic implementation.
+ */
+ local interface GPS_Exec :
+ CCM_GPS,
+ CCM_position,
+ Components::SessionComponent
+ {
+ };
+
+};
+
+#endif /* GPSEI_IDL */
diff --git a/modules/CIAO/examples/Display/GPS/GPS_exec.cpp b/modules/CIAO/examples/Display/GPS/GPS_exec.cpp
new file mode 100644
index 00000000000..af37d2709d6
--- /dev/null
+++ b/modules/CIAO/examples/Display/GPS/GPS_exec.cpp
@@ -0,0 +1,137 @@
+
+// $Id$
+
+#include "GPS_exec.h"
+
+#include "ace/OS_NS_time.h"
+
+#define DISPLACEMENT 256
+
+// Operations from HUDisplay::position
+CORBA::Long
+MyImpl::Position_Impl::posx ()
+{
+ return component_.posx();
+}
+
+CORBA::Long
+MyImpl::Position_Impl::posy ()
+{
+ return component_.posy();
+}
+
+
+/// Default constructor.
+MyImpl::GPS_exec_i::GPS_exec_i ()
+{
+ ACE_OS::srand ((u_int) ACE_OS::time ());
+ this->positionx_ = ACE_OS::rand ();
+ this->positiony_ = ACE_OS::rand ();
+}
+
+/// Default destructor.
+MyImpl::GPS_exec_i::~GPS_exec_i ()
+{
+}
+
+// Operations from HUDisplay::GPS
+ HUDisplay::CCM_position_ptr
+ MyImpl::GPS_exec_i::get_MyLocation ()
+ {
+// ACE_DEBUG ((LM_DEBUG,
+// "GPS_exec::get_MyLocation called\n"));
+ return (new Position_Impl (*this));
+ }
+
+void
+MyImpl::GPS_exec_i::push_Refresh (HUDisplay::tick *)
+{
+// ACE_DEBUG ((LM_DEBUG,
+// ACE_TEXT ("GPS: Received Refresh Event\n")));
+
+ // Refresh position
+ this->positionx_ += ACE_OS::rand () % DISPLACEMENT - (DISPLACEMENT/2);
+ this->positiony_ += ACE_OS::rand () % DISPLACEMENT - (DISPLACEMENT/2);
+
+ // Nitify others
+ HUDisplay::tick_var event = new OBV_HUDisplay::tick;
+
+ this->context_->push_Ready (event);
+}
+
+CORBA::Long
+MyImpl::GPS_exec_i::posx ()
+{
+ return this->positionx_;
+}
+
+CORBA::Long
+MyImpl::GPS_exec_i::posy ()
+{
+ return this->positiony_;
+}
+
+
+// Operations from Components::SessionComponent
+void
+MyImpl::GPS_exec_i::set_session_context (Components::SessionContext_ptr ctx)
+{
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::GPS_exec_i::set_session_context\n"));
+
+ this->context_ =
+ HUDisplay::CCM_GPS_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ throw CORBA::INTERNAL ();
+ // Urm, we actually discard exceptions thown from this operation.
+}
+
+void
+MyImpl::GPS_exec_i::configuration_complete ()
+{
+}
+
+void
+MyImpl::GPS_exec_i::ccm_activate ()
+{
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::GPS_exec_i::ccm_activate\n"));
+}
+
+void
+MyImpl::GPS_exec_i::ccm_passivate ()
+{
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::GPS_exec_i::ccm_passivate\n"));
+}
+
+void
+MyImpl::GPS_exec_i::ccm_remove ()
+{
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::GPS_exec_i::ccm_remove\n"));
+}
+
+/// Default ctor.
+MyImpl::GPSHome_exec_i::GPSHome_exec_i ()
+{
+}
+
+/// Default dtor.
+MyImpl::GPSHome_exec_i::~GPSHome_exec_i ()
+{
+}
+
+// Explicit home operations.
+
+// Implicit home operations.
+
+::Components::EnterpriseComponent_ptr
+MyImpl::GPSHome_exec_i::create ()
+{
+ return new MyImpl::GPS_exec_i;
+}
+
+
+extern "C" GPS_EXEC_Export ::Components::HomeExecutorBase_ptr
+createGPSHome_Impl (void)
+{
+ return new MyImpl::GPSHome_exec_i();
+}
diff --git a/modules/CIAO/examples/Display/GPS/GPS_exec.h b/modules/CIAO/examples/Display/GPS/GPS_exec.h
new file mode 100644
index 00000000000..f0ca86823b8
--- /dev/null
+++ b/modules/CIAO/examples/Display/GPS/GPS_exec.h
@@ -0,0 +1,111 @@
+/**
+ * @file GPS_exec.h
+ * $Id$
+ * Header file for the GPS component implementation.
+ *
+ */
+
+#ifndef GPS_EXEC_H
+#define GPS_EXEC_H
+
+#include "GPS_exec_export.h"
+#include "GPSEC.h"
+#include "ace/OS_NS_time.h"
+#include "tao/LocalObject.h"
+
+#define DISPLACEMENT 256
+
+namespace MyImpl
+{
+ /**
+ * @class GPS_exec_i
+ *
+ * GPS executor implementation class.
+ */
+ class GPS_EXEC_Export GPS_exec_i :
+ public virtual ::CIAO_HUDisplay_GPS_Impl::GPS_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+
+ public:
+ /// Default constructor.
+ GPS_exec_i ();
+
+ /// Default destructor.
+ ~GPS_exec_i ();
+
+ // Operations from HUDisplay::GPS
+ HUDisplay::CCM_position_ptr get_MyLocation ();
+
+ void push_Refresh (HUDisplay::tick *);
+
+ // Operations from HUDisplay::position
+ CORBA::Long posx ();
+
+ CORBA::Long posy ();
+
+ // Operations from Components::SessionComponent
+ void set_session_context (Components::SessionContext_ptr ctx);
+
+ void configuration_complete ();
+
+ void ccm_activate ();
+
+ void ccm_passivate ();
+
+ void ccm_remove ();
+
+ protected:
+ // Component specific context
+ HUDisplay::CCM_GPS_Context_var context_;
+
+ private:
+ CORBA::Long positionx_, positiony_;
+ };
+
+
+ /**
+ * @class GPSHome_exec_i
+ *
+ * GPS home executor implementation class.
+ */
+ class GPS_EXEC_Export GPSHome_exec_i :
+ public virtual HUDisplay::CCM_GPSHome,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ /// Default ctor.
+ GPSHome_exec_i ();
+
+ /// Default dtor.
+ ~GPSHome_exec_i ();
+
+ // Implicit home operations
+ virtual ::Components::EnterpriseComponent_ptr create ();
+ };
+
+
+ class Position_Impl : public virtual HUDisplay::CCM_position,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Position_Impl (GPS_exec_i& component)
+ : component_ (component)
+ {
+ }
+
+ // Operations from HUDisplay::position
+ CORBA::Long posx ();
+
+ CORBA::Long posy ();
+
+ private:
+ GPS_exec_i& component_;
+ };
+
+}
+
+extern "C" GPS_EXEC_Export ::Components::HomeExecutorBase_ptr
+createGPSHome_Impl (void);
+
+#endif /* GPS_EXEC_H */
diff --git a/modules/CIAO/examples/Display/GPS/GPS_tracing_exec.cpp b/modules/CIAO/examples/Display/GPS/GPS_tracing_exec.cpp
new file mode 100644
index 00000000000..9a989e12bdd
--- /dev/null
+++ b/modules/CIAO/examples/Display/GPS/GPS_tracing_exec.cpp
@@ -0,0 +1,131 @@
+// $Id$
+
+#include "GPS_tracing_exec.h"
+
+#include "ace/OS_NS_time.h"
+
+#define DISPLACEMENT 256
+
+/// Default constructor.
+MyImpl::GPS_tracing_exec_i::GPS_tracing_exec_i () : dx_(1), dy_(1)
+{
+ ACE_OS::srand ((u_int) ACE_OS::time ());
+
+ this->positionx_ = 20;
+ this->positiony_ = 25;
+}
+
+/// Default destructor.
+MyImpl::GPS_tracing_exec_i::~GPS_tracing_exec_i ()
+{
+}
+
+// Operations from HUDisplay::GPS
+
+HUDisplay::CCM_position_ptr
+MyImpl::GPS_tracing_exec_i::get_MyLocation ()
+{
+ return HUDisplay::CCM_position::_duplicate (this);
+}
+
+void
+MyImpl::GPS_tracing_exec_i::push_Refresh (HUDisplay::tick *)
+{
+ // Refresh position
+ if(this->positionx_ > 500) this->dx_ = -1;
+ if(this->positionx_ < 10) this->dx_ = 1;
+ if(this->positiony_ > 300) this->dy_ = -1;
+ if(this->positiony_ < 10) this->dy_ = 1;
+
+ this->positionx_ += this->dx_;
+ this->positiony_ += this->dy_;
+
+ // Nitify others
+ HUDisplay::tick_var event = new OBV_HUDisplay::tick;
+
+ this->context_->push_Ready (event);
+}
+
+// Operations from HUDisplay::position
+
+CORBA::Long
+MyImpl::GPS_tracing_exec_i::posx ()
+{
+ return this->positionx_;
+}
+
+CORBA::Long
+MyImpl::GPS_tracing_exec_i::posy ()
+{
+ return this->positiony_;
+}
+
+// Operations from Components::SessionComponent
+void
+MyImpl::GPS_tracing_exec_i::set_session_context (
+ Components::SessionContext_ptr ctx)
+{
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG,
+ "MyImpl::GPS_tracing_exec_i::set_session_context\n"));
+
+ this->context_ =
+ HUDisplay::CCM_GPS_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ throw CORBA::INTERNAL ();
+ // Urm, we actually discard exceptions thown from this operation.
+}
+
+void
+MyImpl::GPS_tracing_exec_i::configuraton_complete ()
+{
+}
+
+void
+MyImpl::GPS_tracing_exec_i::ccm_activate ()
+{
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::GPS_tracing_exec_i::ccm_activate\n"));
+}
+
+void
+MyImpl::GPS_tracing_exec_i::ccm_passivate ()
+{
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::GPS_tracing_exec_i::ccm_passivate\n"));
+}
+
+void
+MyImpl::GPS_tracing_exec_i::ccm_remove ()
+{
+ if (CIAO::debug_level () > 0)
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::GPS_tracing_exec_i::ccm_remove\n"));
+}
+
+/// Default ctor.
+MyImpl::GPSHome_tracing_exec_i::GPSHome_tracing_exec_i ()
+{
+}
+
+/// Default dtor.
+MyImpl::GPSHome_tracing_exec_i::~GPSHome_tracing_exec_i ()
+{
+}
+
+// Explicit home operations.
+
+// Implicit home operations.
+
+::Components::EnterpriseComponent_ptr
+MyImpl::GPSHome_tracing_exec_i::create ()
+{
+ return new MyImpl::GPS_tracing_exec_i;
+}
+
+
+extern "C" GPS_EXEC_Export ::Components::HomeExecutorBase_ptr
+createGPSHome_Tracing_Impl (void)
+{
+ return new MyImpl::GPSHome_tracing_exec_i;
+}
diff --git a/modules/CIAO/examples/Display/GPS/GPS_tracing_exec.h b/modules/CIAO/examples/Display/GPS/GPS_tracing_exec.h
new file mode 100644
index 00000000000..a03432cc42c
--- /dev/null
+++ b/modules/CIAO/examples/Display/GPS/GPS_tracing_exec.h
@@ -0,0 +1,112 @@
+// $Id$
+
+/**
+ * @file GPS_tracing_exec.h
+ *
+ * Header file for the actual GPS and GPSHome component
+ * implementations.
+ *
+ * @author Nanbor Wang <nanbor@cse.wustl.edu>
+ */
+
+#ifndef GPS_TRACING_EXEC_H
+#define GPS_TRACING_EXEC_H
+
+#include "GPSEIC.h"
+#include "tao/LocalObject.h"
+
+namespace MyImpl
+{
+ /**
+ * @class GPS_tracing_exec_i
+ *
+ * RateGen executor implementation class.
+ */
+ class GPS_EXEC_Export GPS_tracing_exec_i :
+ public virtual HUDisplay::GPS_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ /// Default constructor.
+ GPS_tracing_exec_i ();
+
+ /// Default destructor.
+ ~GPS_tracing_exec_i ();
+
+ // Operations from HUDisplay::GPS
+
+ virtual HUDisplay::CCM_position_ptr
+ get_MyLocation ();
+
+ virtual void
+ push_Refresh (HUDisplay::tick *ev);
+
+ // Operations from HUDisplay::position
+
+ virtual CORBA::Long
+ posx ();
+
+ virtual CORBA::Long
+ posy ();
+
+ // 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 ();
+ protected:
+ /// Current GPS reading.
+ CORBA::Long positionx_;
+ CORBA::Long positiony_;
+
+ /// Delta amounts to emulate the position shift of each reading.
+ int dx_;
+ int dy_;
+
+ /// Copmponent specific context
+ HUDisplay::CCM_GPS_Context_var context_;
+ };
+
+ /**
+ * @class GPSHome_tracing_exec_i
+ *
+ * GPS home executor implementation class.
+ */
+ class GPS_EXEC_Export GPSHome_tracing_exec_i :
+ public virtual HUDisplay::CCM_GPSHome,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ /// Default ctor.
+ GPSHome_tracing_exec_i ();
+
+ /// Default dtor.
+ ~GPSHome_tracing_exec_i ();
+
+ // Explicit home operations.
+
+ // Implicit home operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+}
+
+// Executor DLL entry point. CIAO's deployment and assembly framework
+// invokes this function on the resulting DLL to get the home executor.
+extern "C" GPS_EXEC_Export ::Components::HomeExecutorBase_ptr
+createGPSHome_Tracing_Impl (void);
+
+#endif /* GPS_TRACING_EXEC_H */
diff --git a/modules/CIAO/examples/Display/NavDisplay/NavDisplay.idl b/modules/CIAO/examples/Display/NavDisplay/NavDisplay.idl
new file mode 100644
index 00000000000..a786f7f9d06
--- /dev/null
+++ b/modules/CIAO/examples/Display/NavDisplay/NavDisplay.idl
@@ -0,0 +1,29 @@
+// $Id$
+
+/**
+ * @file NavDisplay.idl
+ *
+ * Definition of the navigation display component.
+ *
+ * @author Nanbor Wang <nanbor@cs.wustl.edu>
+ */
+
+#ifndef NAVDISPLAY_IDL
+#define NAVDISPLAY_IDL
+
+#include "../Display_Base/Display_Base.idl"
+
+module HUDisplay
+{
+ component NavDisplay
+ {
+ consumes tick Refresh;
+ uses position GPSLocation;
+ };
+
+ home NavDisplayHome manages NavDisplay
+ {
+ };
+};
+
+#endif /* NAVDISPLAY_IDL */
diff --git a/modules/CIAO/examples/Display/NavDisplay/NavDisplay.mpc b/modules/CIAO/examples/Display/NavDisplay/NavDisplay.mpc
new file mode 100644
index 00000000000..dc22ce5db9f
--- /dev/null
+++ b/modules/CIAO/examples/Display/NavDisplay/NavDisplay.mpc
@@ -0,0 +1,115 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p Display_Base -u Display NavDisplay"
+
+project(Display_NavDisplay_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=NAVDISPLAY_STUB_Export \
+ -Wb,stub_export_include=NavDisplay_stub_export.h \
+ -Wb,skel_export_macro=NAVDISPLAY_SVNT_Export \
+ -Wb,skel_export_include=NavDisplay_svnt_export.h \
+ -Wb,exec_export_macro=NAVDISPLAY_EXEC_Export \
+ -Wb,exec_export_include=NavDisplay_exec_export.h \
+
+ IDL_Files {
+ NavDisplay.idl
+ }
+}
+
+project(Display_NavDisplay_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ after += Display_NavDisplay_idl_gen
+ idlflags += -Wb,export_macro=NAVDISPLAY_EXEC_Export \
+ -Wb,export_include=NavDisplay_exec_export.h \
+ -SS
+
+ IDL_Files {
+ NavDisplayE.idl
+ }
+}
+
+project(Display_NavDisplay_stub) : ccm_stub {
+ after += Display_NavDisplay_idl_gen Display_Base_stub
+ libs += Display_Base_stub
+ libout = ../lib
+ libpaths += ../lib
+
+ sharedname = NavDisplay_stub
+ dynamicflags = NAVDISPLAY_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ NavDisplayC.cpp
+ }
+
+ Header_Files {
+ NavDisplayC.h
+ NavDisplay_stub_export.h
+ }
+
+ Inline_Files {
+ NavDisplayC.inl
+ }
+}
+
+project(Display_NavDisplay_exec) : ciao_executor {
+ after += Display_NavDisplay_lem_gen Display_NavDisplay_stub
+ sharedname = NavDisplay_exec
+ libs += NavDisplay_stub Display_Base_stub
+ libout = ../lib
+ libpaths += ../lib
+
+ dynamicflags = NAVDISPLAY_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ NavDisplayEC.cpp
+ NavDisplay_exec.cpp
+ }
+
+ Header_Files {
+ NavDisplayEC.h
+ NavDisplay_exec.h
+ NavDisplay_exec_export.h
+ }
+
+ Inline_Files {
+ NavDisplayEC.inl
+ }
+}
+
+project(Display_NavDisplay_svnt) : ciao_servant {
+ after += Display_Base_skel Display_NavDisplay_exec
+ sharedname = NavDisplay_svnt
+ libs += NavDisplay_exec \
+ NavDisplay_stub \
+ Display_Base_skel \
+ Display_Base_stub
+ libout = ../lib
+ libpaths += ../lib
+
+ dynamicflags = NAVDISPLAY_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ NavDisplayS.cpp
+ NavDisplay_svnt.cpp
+ }
+
+ Header_Files {
+ NavDisplayS.h
+ NavDisplay_svnt.h
+ NavDisplay_svnt_export.h
+ }
+
+ Inline_Files {
+ NavDisplayS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/examples/Display/NavDisplay/NavDisplay_exec.cpp b/modules/CIAO/examples/Display/NavDisplay/NavDisplay_exec.cpp
new file mode 100644
index 00000000000..40db3c816cc
--- /dev/null
+++ b/modules/CIAO/examples/Display/NavDisplay/NavDisplay_exec.cpp
@@ -0,0 +1,105 @@
+// $Id$
+
+#include "NavDisplay_exec.h"
+
+/// Default constructor.
+MyImpl::NavDisplay_exec_impl::NavDisplay_exec_impl (void)
+{
+}
+
+/// Default destructor.
+MyImpl::NavDisplay_exec_impl::~NavDisplay_exec_impl (void)
+{
+}
+
+// Operations from HUDisplay::NavDisplay
+
+void
+MyImpl::NavDisplay_exec_impl::push_Refresh (HUDisplay::tick *ev)
+{
+ ACE_UNUSED_ARG (ev);
+
+// ACE_DEBUG ((LM_DEBUG,
+// ACE_TEXT ("NAVDISPLAY: Received Refresh Event\n")));
+
+ // Refresh position
+ HUDisplay::position_var loc =
+ this->context_->get_connection_GPSLocation ();
+
+ if (CORBA::is_nil (loc.in ()))
+ {
+ throw CORBA::BAD_INV_ORDER ();
+ }
+
+ CORBA::Long x = loc->posx () % 500;
+
+ CORBA::Long y = loc->posy () % 300;
+
+ ACE_DEBUG ((LM_DEBUG,
+ "NAVDISPLAY: Current Location is: (%d, %d)\n",
+ x,
+ y));
+}
+
+// Operations from Components::SessionComponent
+void
+MyImpl::NavDisplay_exec_impl::set_session_context (
+ Components::SessionContext_ptr ctx)
+{
+ ACE_DEBUG ((LM_DEBUG,
+ "MyImpl::NavDisplay_exec_impl::set_session_context\n"));
+ this->context_ =
+ HUDisplay::CCM_NavDisplay_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw CORBA::INTERNAL ();
+ }
+ // Urm, we actually discard exceptions thown from this operation.
+}
+
+void
+MyImpl::NavDisplay_exec_impl::configuration_complete (void)
+{
+}
+
+void
+MyImpl::NavDisplay_exec_impl::ccm_activate (void)
+{
+ ACE_DEBUG ((LM_DEBUG,
+ "MyImpl::NavDisplay_exec_impl::ccm_activate\n"));
+}
+
+void
+MyImpl::NavDisplay_exec_impl::ccm_remove (void)
+{
+ ACE_DEBUG ((LM_DEBUG,
+ "MyImpl::NavDisplay_exec_impl::ccm_remove\n"));
+}
+
+/// Default ctor.
+MyImpl::NavDisplayHome_exec_impl::NavDisplayHome_exec_impl (void)
+{
+}
+
+/// Default dtor.
+MyImpl::NavDisplayHome_exec_impl::~NavDisplayHome_exec_impl (void)
+{
+}
+
+// Explicit home operations.
+
+// Implicit home operations.
+
+::Components::EnterpriseComponent_ptr
+MyImpl::NavDisplayHome_exec_impl::create (void)
+{
+ return new MyImpl::NavDisplay_exec_impl;
+}
+
+
+extern "C" NAVDISPLAY_EXEC_Export ::Components::HomeExecutorBase_ptr
+createNavDisplayHome_Impl (void)
+{
+ return new MyImpl::NavDisplayHome_exec_impl;
+}
diff --git a/modules/CIAO/examples/Display/NavDisplay/NavDisplay_exec.h b/modules/CIAO/examples/Display/NavDisplay/NavDisplay_exec.h
new file mode 100644
index 00000000000..8c32f5dd0e4
--- /dev/null
+++ b/modules/CIAO/examples/Display/NavDisplay/NavDisplay_exec.h
@@ -0,0 +1,92 @@
+// $Id$
+
+/**
+ * @file NavDisplay_exec.h
+ *
+ * Header file for the actual NavDisplay and NavDisplayHome component
+ * implementations.
+ *
+ * @author Nanbor Wang <nanbor@cse.wustl.edu>
+ */
+
+#ifndef NAVDISPLAY_EXEC_H
+#define NAVDISPLAY_EXEC_H
+
+#include "NavDisplayEC.h"
+#include "NavDisplay_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace MyImpl
+{
+ /**
+ * @class NavDisplay_exec_impl
+ *
+ * RateGen executor implementation class.
+ */
+ class NAVDISPLAY_EXEC_Export NavDisplay_exec_impl
+ : public virtual ::CIAO_HUDisplay_NavDisplay_Impl::NavDisplay_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ /// Default constructor.
+ NavDisplay_exec_impl (void);
+
+ /// Default destructor.
+ ~NavDisplay_exec_impl (void);
+
+ // Operations from HUDisplay::NavDisplay
+
+ virtual void
+ push_Refresh (HUDisplay::tick *ev);
+
+ // 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);
+ protected:
+ /// Copmponent specific context
+ HUDisplay::CCM_NavDisplay_Context_var context_;
+ };
+
+ /**
+ * @class NavDisplayHome_exec_impl
+ *
+ * NavDisplay home executor implementation class.
+ */
+ class NAVDISPLAY_EXEC_Export NavDisplayHome_exec_impl
+ : public virtual HUDisplay::CCM_NavDisplayHome,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ /// Default ctor.
+ NavDisplayHome_exec_impl (void);
+
+ /// Default dtor.
+ ~NavDisplayHome_exec_impl (void);
+
+ // Explicit home operations.
+
+ // Implicit home operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create (void);
+ };
+
+}
+
+extern "C" NAVDISPLAY_EXEC_Export ::Components::HomeExecutorBase_ptr
+createNavDisplayHome_Impl (void);
+
+#endif /* NAVDISPLAY_EXEC_H */
diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/AddNavUnitCmd.cpp b/modules/CIAO/examples/Display/NavDisplayGUI_exec/AddNavUnitCmd.cpp
new file mode 100644
index 00000000000..52cce23d000
--- /dev/null
+++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/AddNavUnitCmd.cpp
@@ -0,0 +1,28 @@
+// $Id$
+
+#include "AddNavUnitCmd.h"
+#include "RootPanel.h"
+#include "NavUnit.h"
+
+
+AddNavUnitCmd::AddNavUnitCmd()
+{
+}
+
+
+AddNavUnitCmd *
+AddNavUnitCmd::create(RootPanel *form, NavUnit *unit)
+{
+ AddNavUnitCmd *cmd = new AddNavUnitCmd();
+ cmd->form_ = form;
+ cmd->unit_ = unit;
+ return cmd;
+}
+
+
+int
+AddNavUnitCmd::execute(void * /* context */)
+{
+ this->form_->addUnit (this->unit_);
+ return 0;
+}
diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/AddNavUnitCmd.h b/modules/CIAO/examples/Display/NavDisplayGUI_exec/AddNavUnitCmd.h
new file mode 100644
index 00000000000..6a3930196e7
--- /dev/null
+++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/AddNavUnitCmd.h
@@ -0,0 +1,27 @@
+// $Id$
+
+#ifndef __ADDNAVUNITCMD_H
+#define __ADDNAVUNITCMD_H
+
+#include "Command.h"
+
+class RootPanel;
+class NavUnit;
+
+class AddNavUnitCmd : public CommandBase
+{
+public:
+ static AddNavUnitCmd *create(RootPanel *form, NavUnit *unit);
+
+public:
+ virtual int execute(void *context = 0);
+
+protected:
+ AddNavUnitCmd();
+
+ RootPanel *form_;
+ NavUnit *unit_;
+};
+
+
+#endif // __ADDNAVUNITCMD_H
diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/Command.h b/modules/CIAO/examples/Display/NavDisplayGUI_exec/Command.h
new file mode 100644
index 00000000000..2a259f4ec24
--- /dev/null
+++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/Command.h
@@ -0,0 +1,20 @@
+// $Id$
+
+#ifndef __COMMAND_H
+#define __COMMAND_H
+
+#include <Qt/qdatetime.h>
+
+class CommandBase
+{
+public:
+ CommandBase() {timestamp_ = QTime::currentTime();}
+ virtual ~CommandBase() {}
+
+public:
+ virtual int execute(void *context = 0) = 0;
+ QTime timestamp_;
+};
+
+
+#endif // __COMMAND_H
diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/DetailView.cpp b/modules/CIAO/examples/Display/NavDisplayGUI_exec/DetailView.cpp
new file mode 100644
index 00000000000..dccae6acd3d
--- /dev/null
+++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/DetailView.cpp
@@ -0,0 +1,168 @@
+// $Id$
+
+#include "DetailView.h"
+#include <Qt/q3table.h>
+#include <Qt/qlayout.h>
+#include <Qt/qpushbutton.h>
+#include <Qt/qtabwidget.h>
+#include <Qt/qlabel.h>
+#include <Qt/qlineedit.h>
+#include <Qt/qspinbox.h>
+
+DetailView::DetailView(QWidget *parent, const char *name)
+: QWidget(parent, name), current_unit(0)
+{
+ QGridLayout *grid = new QGridLayout(this, 8, 10);
+
+ // Create a label containing a QMovie
+ separatorlabel = new QLabel(this, "label0" );
+
+ grid->addMultiCellWidget(separatorlabel, 0, 0, 0, 9);
+
+ QLabel *sem_id_label = new QLabel("FDN:", this);
+ grid->addWidget(sem_id_label, 1, 0);
+ sem_id_val = new QLineEdit(this);
+ sem_id_val->setReadOnly(1);
+ grid->addMultiCellWidget(sem_id_val, 1, 1, 1, 7);
+
+ QLabel *descr_label = new QLabel("Description:", this);
+ grid->addWidget(descr_label, 2, 0);
+ descr_edit = new QLineEdit(this);
+ grid->addMultiCellWidget(descr_edit, 2, 2, 1, 7);
+
+ QLabel *x_label = new QLabel("X coordinate:", this);
+ grid->addWidget(x_label, 3, 0);
+ x_edit = new QSpinBox(this);
+ x_edit->setMinValue(0);
+ x_edit->setMaxValue(65535);
+ grid->addWidget(x_edit, 3, 1);
+
+ QLabel *y_label = new QLabel("Y coordinate:", this);
+ grid->addWidget(y_label, 3, 3);
+ y_edit = new QSpinBox(this);
+ y_edit->setMinValue(0);
+ y_edit->setMaxValue(65535);
+ grid->addWidget(y_edit, 3, 4);
+
+ QLabel *z_label = new QLabel("Z coordinate:", this);
+ grid->addWidget(z_label, 3, 6);
+ z_edit = new QSpinBox(this);
+ z_edit->setMinValue(0);
+ z_edit->setMaxValue(65535);
+ grid->addWidget(z_edit, 3, 7);
+
+ // Create a label containing a QMovie
+ QString path_to_movie;
+ char *ace_root = ACE_OS::getenv("ACE_ROOT");
+ if(ace_root)
+ {
+ path_to_movie += ace_root;
+ path_to_movie += "/TAO/CIAO/examples/handcrafted/Display/NavDisplayGUI_exec/trolltech.gif";
+ }
+ else
+ {
+ path_to_movie = "../NavDisplayGUI_exec/trolltech.gif";
+ }
+ movie = new QMovie(path_to_movie);
+ movielabel = new QLabel(this, "label1" );
+// movie->connectStatus(this, SLOT(movieStatus(int)));
+// movie->connectUpdate(this, SLOT(movieUpdate(const QRect&)));
+ movielabel->setFrameStyle( QFrame::Box | QFrame::Plain );
+ movielabel->setMovie(movie);
+ movielabel->setFixedSize( 128+movielabel->frameWidth()*2,
+ 64+movielabel->frameWidth()*2 );
+ grid->addMultiCellWidget(new QLabel("", this), 1, 4, 8, 8);
+ grid->addMultiCellWidget(movielabel, 1, 4, 9, 9);
+
+
+ QPushButton *apply = new QPushButton("Apply", this);
+ apply->setDefault(1);
+ grid->addWidget(apply, 7, 9);
+
+ // FUZZ: disable check_for_lack_ACE_OS
+ connect(apply, SIGNAL(clicked()), this, SLOT(apply()));
+ // FUZZ: enable check_for_lack_ACE_OS
+
+ QTabWidget *tabs = new QTabWidget(this);
+
+
+ child_list = new Q3Table(0, 6, tabs);
+ child_list->setSelectionMode(Q3Table::Single);
+ child_list->horizontalHeader()->setLabel(0, "FDN");
+ child_list->horizontalHeader()->setLabel(1, "Description");
+ child_list->horizontalHeader()->setLabel(2, "X Coordinate");
+ child_list->horizontalHeader()->setLabel(3, "Y Coordinate");
+ child_list->horizontalHeader()->setLabel(4, "Z Coordinate");
+ child_list->horizontalHeader()->setLabel(5, "Color");
+
+ parent_list = new Q3Table(0, 6, tabs);
+ parent_list->setSelectionMode(Q3Table::Single);
+ parent_list->horizontalHeader()->setLabel(0, "FDN");
+ parent_list->horizontalHeader()->setLabel(1, "Description");
+ parent_list->horizontalHeader()->setLabel(2, "X Coordinate");
+ parent_list->horizontalHeader()->setLabel(3, "Y Coordinate");
+ parent_list->horizontalHeader()->setLabel(4, "Z Coordinate");
+ parent_list->horizontalHeader()->setLabel(5, "Color");
+
+ tabs->addTab(child_list, "Property set &1");
+ tabs->addTab(parent_list, "Property set &2");
+
+ grid->addMultiCellWidget(new QLabel(this), 4, 4, 0, 9);
+ grid->addMultiCellWidget(tabs, 5, 5, 0, 9);
+}
+
+
+DetailView::~DetailView()
+{
+ delete movie;
+}
+
+
+void
+DetailView::currentNode(NavUnit *unit)
+{
+ UnitLocation loc = unit->getLocation();
+ descr_edit->setText(unit->getShortDescr());
+ this->updateLocation(loc);
+}
+
+void
+DetailView::updateLocation(const UnitLocation &loc)
+{
+ x_edit->setValue(static_cast<int>(loc.x_));
+ y_edit->setValue(static_cast<int>(loc.y_));
+ z_edit->setValue(static_cast<int>(loc.z_));
+}
+
+void
+DetailView::apply()
+{
+}
+
+
+void
+DetailView::movieUpdate( const QRect& )
+{
+ // Uncomment this to test animated icons on your window manager
+ //setIcon( movie.framePixmap() );
+}
+
+
+void
+DetailView::movieStatus( int s )
+{
+/* switch ( s )
+ {
+ case QMovie::SourceEmpty:
+ case QMovie::UnrecognizedFormat:
+ {
+ QPixmap pm("tt-logo.png");
+ movielabel->setPixmap(pm);
+ movielabel->setFixedSize(pm.size());
+ }
+ break;
+ default:
+ if ( movielabel->movie() ) // for flicker-free animation:
+ movielabel->setBackgroundMode( Qt::NoBackground );
+ }*/
+}
diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/DetailView.h b/modules/CIAO/examples/Display/NavDisplayGUI_exec/DetailView.h
new file mode 100644
index 00000000000..2f0cf44d69a
--- /dev/null
+++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/DetailView.h
@@ -0,0 +1,49 @@
+// $Id$
+
+#ifndef __DETAILVIEW_H
+#define __DETAILVIEW_H
+
+
+#include "NavUnit.h"
+#include <Qt/qwidget.h>
+#include <Qt/qmovie.h>
+#include <Qt/q3table.h>
+
+class QLabel;
+class QLineEdit;
+class QSpinBox;
+
+class DetailView : public QWidget
+{
+ Q_OBJECT
+
+public:
+ DetailView(QWidget *parent, const char *name = 0);
+ virtual ~DetailView();
+
+public slots:
+ void movieStatus(int);
+ void movieUpdate(const QRect&);
+ void currentNode(NavUnit *unit);
+ void updateLocation(const UnitLocation &loc);
+ void apply();
+
+private:
+ QLineEdit *sem_id_val;
+ QLineEdit *descr_edit;
+ QSpinBox *x_edit;
+ QSpinBox *y_edit;
+ QSpinBox *z_edit;
+ Q3Table *child_list;
+ Q3Table *parent_list;
+ QLabel *movielabel;
+ QMovie *movie;
+ QLabel *separatorlabel;
+ QMovie separator;
+
+
+ NavUnit *current_unit;
+};
+
+
+#endif // __DETAILVIEW_H
diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/MapView.cpp b/modules/CIAO/examples/Display/NavDisplayGUI_exec/MapView.cpp
new file mode 100644
index 00000000000..f1dfac65400
--- /dev/null
+++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/MapView.cpp
@@ -0,0 +1,40 @@
+// $Id$
+
+#include "MapView.h"
+#include <stdlib.h>
+
+#include "worldmap1.xpm"
+
+MapView::MapView(
+ Q3Canvas& c,
+ QWidget* parent,
+ const char* name,
+ Qt::WindowFlags f)
+ :
+ Q3CanvasView(&c, parent, name, f),
+ bg_pixmap_(worldmap1)
+{
+ viewport()->setBackgroundMode(Qt::NoBackground);
+ enableClipper(TRUE);
+ if(!bg_pixmap_.isNull())
+ {
+ resizeContents(bg_pixmap_.width(), bg_pixmap_.height());
+ }
+ else
+ resizeContents(100, 100);
+
+ canvas()->setBackgroundPixmap(bg_pixmap_);
+}
+
+void
+MapView::clear()
+{
+ /*
+ QCanvasItemList list = canvas()->allItems();
+ for(QCanvasItemList::Iterator it = list.begin(); it != list.end(); ++it)
+ {
+ if(*it)
+ delete *it;
+ }
+ */
+}
diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/MapView.h b/modules/CIAO/examples/Display/NavDisplayGUI_exec/MapView.h
new file mode 100644
index 00000000000..0e7ad045f8b
--- /dev/null
+++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/MapView.h
@@ -0,0 +1,23 @@
+// $Id$
+
+#ifndef __MAPVIEW_H
+#define __MAPVIEW_H
+
+#include <Qt/q3canvas.h>
+#include <Qt/qpixmap.h>
+
+class MapView : public Q3CanvasView
+{
+ Q_OBJECT
+
+public:
+ MapView(Q3Canvas&, QWidget* parent=0, const char* name=0, Qt::WindowFlags f=0);
+ void clear();
+
+protected:
+ QPixmap bg_pixmap_;
+};
+
+
+
+#endif // __MAPVIEW_H
diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc b/modules/CIAO/examples/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc
new file mode 100644
index 00000000000..811bf3bc45e
--- /dev/null
+++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc
@@ -0,0 +1,89 @@
+// $Id$
+
+project(Display_NavDisplayGUI_exec_moc) : ace_qt4, qt4_qt3support {
+ custom_only = 1
+ MOC_Files {
+ DetailView.h
+ MapView.h
+ NodeItem.h
+ RootPanel.h
+ }
+}
+
+project(Display_NavDisplayGUI_exec) : ciao_executor, ace_qt4, qt4_qt3support {
+ after += Display_NavDisplay_lem_gen \
+ Display_NavDisplay_stub \
+ Display_NavDisplayGUI_exec_moc
+ sharedname = NavDisplayGUI_exec
+ libs += NavDisplay_stub Display_Base_stub
+ dynamicflags = NAVDISPLAY_EXEC_BUILD_DLL QT_DLL
+ includes += ../NavDisplay
+ libout = ../lib
+ libpaths += ../lib
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ AddNavUnitCmd.cpp
+ DetailView.cpp
+ MapView.cpp
+ NavUnit.cpp
+ NodeItem.cpp
+ QuitCmd.cpp
+ RootPanel.cpp
+ UpdatePositionCmd.cpp
+ Worker.cpp
+ ../NavDisplay/NavDisplayEC.cpp
+ NavDisplayGUI_exec.cpp
+ }
+
+ Header_Files {
+ NavDisplayGUI_exec.h
+ NavDisplayGUI_exec_export.h
+ }
+
+ MOC_Files {
+ }
+
+ Source_Files {
+ DetailView_moc.cpp
+ MapView_moc.cpp
+ NodeItem_moc.cpp
+ RootPanel_moc.cpp
+ }
+}
+
+project(Display_NavDisplayGUI_svnt) : ciao_servant, ace_qt4, qt4_qt3support {
+ after += Display_Base_skel Display_NavDisplayGUI_exec
+ sharedname = NavDisplayGUI_svnt
+ includes += ../NavDisplay
+ libs += NavDisplayGUI_exec \
+ NavDisplay_stub \
+ Display_Base_skel \
+ Display_Base_stub
+ dynamicflags = NAVDISPLAY_SVNT_BUILD_DLL
+ libout = ../lib
+ libpaths += ../lib
+
+ IDL_Files {
+ }
+
+ MOC_Files {
+ }
+
+ Source_Files {
+ ../NavDisplay/NavDisplayS.cpp
+ ../NavDisplay/NavDisplay_svnt.cpp
+ }
+
+ Header_Files {
+ ../NavDisplay/NavDisplayS.h
+ ../NavDisplay/NavDisplay_svnt.h
+ ../NavDisplay/NavDisplay_svnt_export.h
+ }
+
+ Inline_Files {
+ ../NavDisplay/NavDisplayS.inl
+ }
+}
diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.cpp b/modules/CIAO/examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.cpp
new file mode 100644
index 00000000000..9a67140671f
--- /dev/null
+++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.cpp
@@ -0,0 +1,156 @@
+// $Id$
+
+#include "NavDisplayGUI_exec.h"
+#include <Qt/qapplication.h>
+#include <Qt/qevent.h>
+
+#include "UpdatePositionCmd.h"
+#include "QuitCmd.h"
+#include "AddNavUnitCmd.h"
+#include "Worker.h"
+
+static const char *argv[] =
+{
+ "NavDisplayGUI"
+};
+
+/// Default constructor.
+MyImpl::NavDisplayGUI_exec_impl::NavDisplayGUI_exec_impl (void)
+ : unit_(1, "Model T3+"), loc_(50, 20, 0)
+{
+}
+
+/// Default destructor.
+MyImpl::NavDisplayGUI_exec_impl::~NavDisplayGUI_exec_impl (void)
+{
+}
+
+// Operations from HUDisplay::NavDisplay
+
+void
+MyImpl::NavDisplayGUI_exec_impl::push_Refresh (
+ HUDisplay::tick * /* ev */)
+{
+ //ACE_DEBUG ((LM_DEBUG, "ENTER: MyImpl::NavDisplayGUI_exec_impl::push_Refresh()\n"));
+
+ // Refresh position
+ HUDisplay::position_var loc =
+ this->context_->get_connection_GPSLocation ();
+
+ CORBA::Long lx = loc->posx ();
+
+ CORBA::Long ly = loc->posy ();
+
+ mutex_.acquire ();
+
+ loc_.x_ = lx % 500;
+ loc_.y_ = ly % 300;
+
+ this->unit_.setLocation (loc_);
+
+ mutex_.release ();
+
+ //ACE_DEBUG ((LM_DEBUG, "DISPLAY: Current Location is: %d %d\n", int(attrs.x_), int(attrs.y_)));
+
+ RootPanel *root_pane = worker_->getMainWindow ();
+
+ if (root_pane != 0)
+ {
+ UpdatePositionCmd *cmd = UpdatePositionCmd::create (
+ root_pane,
+ &(this->unit_));
+ QCustomEvent *evt = new QCustomEvent (QEvent::User, cmd);
+ QApplication::postEvent (root_pane, evt);
+ }
+
+ //ACE_DEBUG ((LM_DEBUG, "LEAVE: MyImpl::NavDisplayGUI_exec_impl::push_Refresh()\n"));
+}
+
+// Operations from Components::SessionComponent
+void
+MyImpl::NavDisplayGUI_exec_impl::set_session_context (Components::SessionContext_ptr ctx)
+{
+ this->context_ =
+ HUDisplay::CCM_NavDisplay_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw CORBA::INTERNAL ();
+ }
+ // Urm, we actually discard exceptions thown from this operation.
+}
+
+void
+MyImpl::NavDisplayGUI_exec_impl::configuration_complete (void)
+{
+}
+
+void
+MyImpl::NavDisplayGUI_exec_impl::ccm_activate (void)
+{
+ worker_ = new Worker (sizeof (argv) / sizeof (argv[0]),
+ const_cast<char **> (argv));
+
+ if (worker_->activate (THR_NEW_LWP | THR_JOINABLE, 1) != 0)
+ {
+ ACE_DEBUG((LM_ERROR,
+ "Cannot activate client threads\n"));
+ throw Components::CCMException ();
+ }
+
+ worker_->waitUntillInitialized ();
+
+ AddNavUnitCmd *cmd = AddNavUnitCmd::create (
+ worker_->getMainWindow(),
+ &(this->unit_));
+ QCustomEvent *evt = new QCustomEvent (QEvent::User, cmd);
+ QApplication::postEvent (worker_->getMainWindow (), evt);
+}
+
+void
+MyImpl::NavDisplayGUI_exec_impl::ccm_passivate (void)
+{
+ RootPanel *target = worker_->getMainWindow ();
+
+ if (target != 0)
+ {
+ QuitCmd *cmd = QuitCmd::create( target);
+ QCustomEvent *evt = new QCustomEvent (QEvent::User, cmd);
+ QApplication::postEvent (target, evt);
+ worker_->thr_mgr ()->wait ();
+ }
+
+ delete worker_;
+}
+
+void
+MyImpl::NavDisplayGUI_exec_impl::ccm_remove (void)
+{
+}
+
+/// Default ctor.
+MyImpl::NavDisplayGUIHome_exec_impl::NavDisplayGUIHome_exec_impl (void)
+{
+}
+
+/// Default dtor.
+MyImpl::NavDisplayGUIHome_exec_impl::~NavDisplayGUIHome_exec_impl (void)
+{
+}
+
+// Explicit home operations.
+
+// Implicit home operations.
+
+::Components::EnterpriseComponent_ptr
+MyImpl::NavDisplayGUIHome_exec_impl::create (void)
+{
+ return new MyImpl::NavDisplayGUI_exec_impl;
+}
+
+
+extern "C" NAVDISPLAY_EXEC_Export ::Components::HomeExecutorBase_ptr
+createNavDisplayHome_Impl (void)
+{
+ return new MyImpl::NavDisplayGUIHome_exec_impl;
+}
diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.h b/modules/CIAO/examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.h
new file mode 100644
index 00000000000..ce1a35f35eb
--- /dev/null
+++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.h
@@ -0,0 +1,102 @@
+// $Id$
+
+/**
+ * @file NavDisplayGUI_exec.h
+ *
+ * Header file for the actual NavDisplay and NavDisplayHome component
+ * implementations.
+ *
+ * @author Nanbor Wang <nanbor@cse.wustl.edu>
+ */
+
+#ifndef NAVDISPLAY_EXEC_H
+#define NAVDISPLAY_EXEC_H
+
+#include "NavDisplayEC.h"
+#include "NavDisplay_exec_export.h"
+#include "ace/Synch.h"
+#include "tao/LocalObject.h"
+#include "NavUnit.h"
+
+class Worker;
+
+namespace MyImpl
+{
+ /**
+ * @class NavDisplayGUI_exec_impl
+ *
+ * RateGen executor implementation class.
+ */
+ class NAVDISPLAY_EXEC_Export NavDisplayGUI_exec_impl
+ : public virtual ::CIAO_HUDisplay_NavDisplay_Impl::NavDisplay_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ /// Default constructor.
+ NavDisplayGUI_exec_impl (void);
+
+ /// Default destructor.
+ ~NavDisplayGUI_exec_impl (void);
+
+ // Operations from HUDisplay::NavDisplay
+
+ virtual void
+ push_Refresh (HUDisplay::tick *ev);
+
+ // 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);
+ protected:
+ /// Copmponent specific context
+ HUDisplay::CCM_NavDisplay_Context_var context_;
+ Worker *worker_;
+ NavUnit unit_;
+ UnitLocation loc_;
+ TAO_SYNCH_MUTEX mutex_;
+ };
+
+ /**
+ * @class NavDisplayGUIHome_exec_impl
+ *
+ * NavDisplay home executor implementation class.
+ */
+ class NAVDISPLAY_EXEC_Export NavDisplayGUIHome_exec_impl
+ : public virtual HUDisplay::CCM_NavDisplayHome,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ /// Default ctor.
+ NavDisplayGUIHome_exec_impl (void);
+
+ /// Default dtor.
+ ~NavDisplayGUIHome_exec_impl (void);
+
+ // Explicit home operations.
+
+ // Implicit home operations.
+
+ virtual
+ ::Components::EnterpriseComponent_ptr
+ create (void);
+ };
+
+}
+
+extern "C" NAVDISPLAY_EXEC_Export
+::Components::HomeExecutorBase_ptr
+createNavDisplayHome_Impl (void);
+
+#endif /* NAVDISPLAY_EXEC_H */
diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/NavUnit.cpp b/modules/CIAO/examples/Display/NavDisplayGUI_exec/NavUnit.cpp
new file mode 100644
index 00000000000..809117728f6
--- /dev/null
+++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/NavUnit.cpp
@@ -0,0 +1,9 @@
+// $Id$
+
+#include "NavUnit.h"
+
+
+NavUnit::NavUnit(const UnitID &id, const char *short_descr)
+: id_(id), short_descr_(short_descr)
+{
+}
diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/NavUnit.h b/modules/CIAO/examples/Display/NavDisplayGUI_exec/NavUnit.h
new file mode 100644
index 00000000000..86dd2cccbd7
--- /dev/null
+++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/NavUnit.h
@@ -0,0 +1,57 @@
+// $Id$
+
+#ifndef __NAVUNIT_H
+#define __NAVUNIT_H
+
+#include "ace/SString.h"
+
+
+class UnitLocation
+{
+public:
+ UnitLocation() {x_ = y_ = z_ = 0.0;}
+ UnitLocation(
+ double x,
+ double y,
+ double z) :
+ x_(x), y_(y), z_(z) {}
+
+ UnitLocation(const UnitLocation &ul) { operator = (ul); }
+
+public:
+ UnitLocation & operator = (const UnitLocation &ul)
+ {
+ x_ = ul.x_;
+ y_ = ul.y_;
+ z_ = ul.z_;
+ return *this;
+ }
+
+public:
+ double x_, y_, z_;
+};
+
+typedef unsigned long UnitID;
+
+class NavUnit
+{
+public:
+ NavUnit(const UnitID &id, const char *short_descr);
+ virtual ~NavUnit() {}
+
+public:
+ UnitID getID() const {return id_;}
+
+ const char *getShortDescr() const {return short_descr_.c_str();}
+ void setShortDescr(const char *short_descr) {short_descr_ = short_descr;}
+
+ UnitLocation getLocation() const {return loc_;}
+ void setLocation(const UnitLocation &loc) {loc_ = loc;}
+
+protected:
+ UnitID id_;
+ ACE_CString short_descr_;
+ UnitLocation loc_;
+};
+
+#endif // __NAVUNIT_H
diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/NodeItem.cpp b/modules/CIAO/examples/Display/NavDisplayGUI_exec/NodeItem.cpp
new file mode 100644
index 00000000000..16199f13076
--- /dev/null
+++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/NodeItem.cpp
@@ -0,0 +1,64 @@
+// $Id$
+
+#include "NodeItem.h"
+#include <Qt/qbrush.h>
+
+QBrush *NodeItem::normal = new QBrush(Qt::red);
+QBrush *NodeItem::highlighted = new QBrush(Qt::green);
+
+
+NodeItem::NodeItem(Q3Canvas *canvas, NavUnit &unit)
+ : Q3CanvasEllipse(8, 8, canvas),
+ unit_(unit),
+ blink_timer(canvas),
+ is_selected_(0)
+{
+ setBrush(*normal);
+ setZ(128);
+}
+
+
+void NodeItem::moveBy(double dx, double dy, double /* dz */)
+{
+ Q3CanvasEllipse::moveBy (dx, dy);
+}
+
+
+void
+NodeItem::timerDone()
+{
+ if(selected())
+ {
+ if(brush() == *normal)
+ setBrush(*highlighted);
+ else
+ setBrush(*normal);
+
+ canvas()->update();
+ }
+}
+
+
+void
+NodeItem::setSelected(bool yes)
+{
+ is_selected_ = yes;
+
+ if(yes)
+ {
+ // FUZZ: disable check_for_lack_ACE_OS
+ connect(&blink_timer, SIGNAL(timeout()),
+ SLOT(timerDone()));
+ // FUZZ: enable check_for_lack_ACE_OS
+
+ blink_timer.start(500);
+ }
+ else
+ {
+ blink_timer.stop();
+ disconnect(SIGNAL(timeout()), this,
+ SLOT(timerDone()));
+ setBrush(*normal);
+ canvas()->update();
+ }
+}
diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/NodeItem.h b/modules/CIAO/examples/Display/NavDisplayGUI_exec/NodeItem.h
new file mode 100644
index 00000000000..b9e27a62256
--- /dev/null
+++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/NodeItem.h
@@ -0,0 +1,47 @@
+// $Id$
+
+#ifndef __NODEITEM_H
+#define __NODEITEM_H
+
+#include "NavUnit.h"
+#include <Qt/q3canvas.h>
+#include <Qt/qtimer.h>
+#include <Qt/qbrush.h>
+#include <Qt/qobject.h>
+
+class NodeItem: public QObject,
+ public Q3CanvasEllipse
+{
+ Q_OBJECT
+
+public:
+ NodeItem(Q3Canvas *canvas, NavUnit &unit);
+
+ ~NodeItem() {}
+
+ enum {
+ nodeRTTI = 1
+ };
+
+ void moveBy(double dx, double dy, double dz);
+
+ virtual int rtti() const {return nodeRTTI;}
+
+ virtual void setSelected(bool yes);
+ virtual bool selected() const {return is_selected_;}
+
+public slots:
+ void timerDone();
+
+private:
+ NavUnit &unit_;
+ QTimer blink_timer;
+ bool is_selected_;
+
+ static QBrush *normal;
+ static QBrush *highlighted;
+};
+
+
+
+#endif // __NODEITEM_H
diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/QuitCmd.cpp b/modules/CIAO/examples/Display/NavDisplayGUI_exec/QuitCmd.cpp
new file mode 100644
index 00000000000..b967c5a7e8c
--- /dev/null
+++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/QuitCmd.cpp
@@ -0,0 +1,25 @@
+// $Id$
+
+#include "QuitCmd.h"
+#include "RootPanel.h"
+
+
+QuitCmd::QuitCmd()
+{
+}
+
+
+QuitCmd *
+QuitCmd::create(RootPanel *form)
+{
+ QuitCmd *cmd = new QuitCmd ();
+ cmd->form_ = form;
+ return cmd;
+}
+
+
+int
+QuitCmd::execute (void * /* context */)
+{
+ return form_->close ();
+}
diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/QuitCmd.h b/modules/CIAO/examples/Display/NavDisplayGUI_exec/QuitCmd.h
new file mode 100644
index 00000000000..92b2b0110eb
--- /dev/null
+++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/QuitCmd.h
@@ -0,0 +1,25 @@
+// $Id$
+
+#ifndef __QUITCMD_H
+#define __QUITCMD_H
+
+#include "Command.h"
+
+class RootPanel;
+
+class QuitCmd : public CommandBase
+{
+public:
+ static QuitCmd *create(RootPanel *form);
+
+public:
+ virtual int execute(void *context = 0);
+
+protected:
+ QuitCmd();
+
+ RootPanel *form_;
+};
+
+
+#endif // __QUITCMD_H
diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/RootPanel.cpp b/modules/CIAO/examples/Display/NavDisplayGUI_exec/RootPanel.cpp
new file mode 100644
index 00000000000..1b315816efd
--- /dev/null
+++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/RootPanel.cpp
@@ -0,0 +1,88 @@
+// $Id$
+
+#include "RootPanel.h"
+#include <Qt/qmenubar.h>
+#include <Qt/qapplication.h>
+#include <Qt/qprogressdialog.h>
+#include <Qt/qsplitter.h>
+#include <stdlib.h>
+#include "NodeItem.h"
+#include "Command.h"
+
+
+RootPanel::RootPanel(Q3Canvas &c, QWidget *parent, const char *name)
+: QMainWindow(parent, name), canvas(c)
+{
+ QSplitter *s1 = new QSplitter( Qt::Vertical, this , "main" );
+ navview = new MapView(canvas, s1);
+ s1->moveToFirst(navview);
+
+ details = new DetailView(s1);
+
+ QMenuBar* menu = menuBar();
+
+ Q3PopupMenu* file = new Q3PopupMenu;
+ //file->insertItem("&Fill canvas", this, SLOT(init()), CTRL+Key_F);
+ //file->insertItem("&Erase canvas", this, SLOT(clear()), CTRL+Key_E);
+ //file->insertItem("&New view", this, SLOT(newView()), CTRL+Key_N);
+ file->insertSeparator();
+ file->insertItem("E&xit", qApp, SLOT(quit()), Qt::CTRL + Qt::Key_Q);
+ menu->insertItem("&File", file);
+
+ setCentralWidget(s1);
+}
+
+
+RootPanel::~RootPanel()
+{
+ clear();
+}
+
+
+void
+RootPanel::addUnit(NavUnit *unit)
+{
+ NodeItem *el = new NodeItem(&canvas, *unit);
+ nodeMap.bind(unit->getID(), el);
+ UnitLocation loc = unit->getLocation();
+ el->move(loc.x_, loc.y_);
+ el->show();
+ this->details->currentNode(unit);
+}
+
+void
+RootPanel::updateUnit(NavUnit *unit)
+{
+ NodeItem *el = 0;
+ nodeMap.find(unit->getID(), el);
+ UnitLocation loc = unit->getLocation();
+ el->move(loc.x_, loc.y_);
+ //canvas.update();
+
+ this->details->updateLocation(loc);
+}
+
+
+void
+RootPanel::clear()
+{
+ navview->clear();
+}
+
+void
+RootPanel::customEvent(QCustomEvent *e)
+{
+ CommandBase *cmd = (CommandBase*)(e->data());
+ cmd->execute();
+ delete cmd;
+/*
+ int elapsed = time.restart();
+ int fps = (elapsed == 0 ? 1000 : 1000 / elapsed);
+
+ if(prev_fps != fps)
+ {
+ prev_fps = fps;
+ ups->setNum(prev_fps);
+ }
+*/
+}
diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/RootPanel.h b/modules/CIAO/examples/Display/NavDisplayGUI_exec/RootPanel.h
new file mode 100644
index 00000000000..75a18d51fc3
--- /dev/null
+++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/RootPanel.h
@@ -0,0 +1,49 @@
+// $Id$
+
+#ifndef __ROOTPANEL_H
+#define __ROOTPANEL_H
+
+#define QT_GENUINE_STR
+
+#include "ace/Hash_Map_Manager.h"
+#include "ace/Null_Mutex.h"
+#include "MapView.h"
+#include "DetailView.h"
+#include <Qt/qmainwindow.h>
+#include <Qt/qevent.h>
+#include <Qt/q3popupmenu.h>
+
+class NodeItem;
+class QMouseEvent;
+
+class RootPanel : public QMainWindow
+{
+ Q_OBJECT
+
+typedef ACE_Hash_Map_Manager_Ex<ACE_UINT64,
+ NodeItem*,
+ ACE_Hash<ACE_UINT64>,
+ ACE_Equal_To<ACE_UINT64>,
+ ACE_Null_Mutex> NodeItemMap;
+
+public:
+ RootPanel(Q3Canvas&, QWidget *parent = 0, const char *name = 0);
+ ~RootPanel();
+
+public:
+ void addUnit(NavUnit* unit);
+ void updateUnit(NavUnit *unit);
+
+protected:
+ void clear();
+ virtual void customEvent(QCustomEvent *e);
+
+ Q3Canvas& canvas;
+ MapView *navview;
+ DetailView *details;
+
+ Q3PopupMenu* options;
+ NodeItemMap nodeMap;
+};
+
+#endif // __ROOTPANEL_H
diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/UpdatePositionCmd.cpp b/modules/CIAO/examples/Display/NavDisplayGUI_exec/UpdatePositionCmd.cpp
new file mode 100644
index 00000000000..995d73fb937
--- /dev/null
+++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/UpdatePositionCmd.cpp
@@ -0,0 +1,30 @@
+// $Id$
+
+#include "RootPanel.h"
+#include "UpdatePositionCmd.h"
+#include <Qt/qlcdnumber.h>
+#include "NavUnit.h"
+
+
+UpdatePositionCmd::UpdatePositionCmd()
+{
+}
+
+
+UpdatePositionCmd *
+UpdatePositionCmd::create(
+ RootPanel *form, NavUnit *unit)
+{
+ UpdatePositionCmd *cmd = new UpdatePositionCmd();
+ cmd->form_ = form;
+ cmd->unit_ = unit;
+ return cmd;
+}
+
+
+int
+UpdatePositionCmd::execute (void * /* context */)
+{
+ this->form_->updateUnit (this->unit_);
+ return 0;
+}
diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/UpdatePositionCmd.h b/modules/CIAO/examples/Display/NavDisplayGUI_exec/UpdatePositionCmd.h
new file mode 100644
index 00000000000..6eaa62a7770
--- /dev/null
+++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/UpdatePositionCmd.h
@@ -0,0 +1,28 @@
+// $Id$
+
+#ifndef __UPDATEPOSITIONCM_H
+#define __UPDATEPOSITIONCM_H
+
+#include "Command.h"
+
+class RootPanel;
+class NavUnit;
+
+class UpdatePositionCmd : public CommandBase
+{
+public:
+ static UpdatePositionCmd *create(
+ RootPanel *form, NavUnit *unit);
+
+public:
+ virtual int execute(void *context = 0);
+
+protected:
+ UpdatePositionCmd();
+
+ RootPanel *form_;
+ NavUnit *unit_;
+};
+
+
+#endif // __UPDATEPOSITIONCM_H
diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/Worker.cpp b/modules/CIAO/examples/Display/NavDisplayGUI_exec/Worker.cpp
new file mode 100644
index 00000000000..43b72a0a2aa
--- /dev/null
+++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/Worker.cpp
@@ -0,0 +1,46 @@
+// $Id$
+
+#include "Worker.h"
+#include <Qt/qapplication.h>
+#include <Qt/qmotifstyle.h>
+#include <Qt/qcdestyle.h>
+#include <Qt/qwindowsstyle.h>
+#include <Qt/qdesktopwidget.h>
+
+int
+Worker::svc (void)
+{
+ ACE_DEBUG((LM_DEBUG, "ENTER: Worker::svc()\n"));
+
+ QApplication a(argc_, argv_);
+// a.setStyle(new QPlatinumStyle);
+ Q3Canvas canvas(600, 387);
+ //QCanvas canvas(566, 679);
+ //QCanvas canvas(550, 723);
+ canvas.setAdvancePeriod(30);
+ RootPanel root_panel(canvas);
+ root_panel.resize(root_panel.sizeHint());
+
+ root_panel.resize(600, 650);
+ root_panel.setCaption("NavDisplay");
+
+ a.setMainWidget(&root_panel);
+
+ QObject::connect(&a, SIGNAL(lastWindowClosed()), &a, SLOT(quit()) );
+
+ if(QApplication::desktop()->width() > 550
+ && QApplication::desktop()->height() > 366)
+ root_panel.show();
+ else
+ root_panel.showMaximized();
+
+ main_wnd_ = &root_panel;
+ init_complete_.signal();
+
+ int retval = a.exec();
+
+ main_wnd_ = 0;
+
+ ACE_DEBUG((LM_DEBUG, "LEAVE: Worker::svc()\n"));
+ return retval;
+}
diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/Worker.h b/modules/CIAO/examples/Display/NavDisplayGUI_exec/Worker.h
new file mode 100644
index 00000000000..73aa649bd36
--- /dev/null
+++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/Worker.h
@@ -0,0 +1,35 @@
+// $Id$
+
+#ifndef __WORKER_H
+#define __WORKER_H
+
+#include "ace/Task.h"
+#include "ace/Synch.h"
+#include "tao/corba.h"
+#include "RootPanel.h"
+
+class Worker : public ACE_Task_Base
+{
+public:
+ Worker (int argc, char *argv[])
+ : argc_(argc), argv_(argv) {}
+ // ctor
+
+ virtual int svc (void);
+ // The thread entry point.
+
+ void waitUntillInitialized() {init_complete_.wait();}
+ // blocks the calling thread until the GUI is initialized
+
+ RootPanel* getMainWindow() const {return main_wnd_;}
+ // Returns the pointer to main application window
+
+private:
+ RootPanel *main_wnd_;
+ int argc_;
+ char **argv_;
+
+ ACE_Manual_Event init_complete_;
+};
+
+#endif // __WORKER_H
diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/trolltech.gif b/modules/CIAO/examples/Display/NavDisplayGUI_exec/trolltech.gif
new file mode 100644
index 00000000000..f674369efc4
--- /dev/null
+++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/trolltech.gif
Binary files differ
diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/worldmap1.gif b/modules/CIAO/examples/Display/NavDisplayGUI_exec/worldmap1.gif
new file mode 100644
index 00000000000..99fe78a7673
--- /dev/null
+++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/worldmap1.gif
Binary files differ
diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/worldmap1.xpm b/modules/CIAO/examples/Display/NavDisplayGUI_exec/worldmap1.xpm
new file mode 100644
index 00000000000..736de06f25a
--- /dev/null
+++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/worldmap1.xpm
@@ -0,0 +1,651 @@
+/* XPM */
+static const char *worldmap1[] = {
+/* width height ncolors chars_per_pixel */
+"600 387 257 2",
+/* colors */
+" c #59746B",
+" . c #3A6592",
+" X c #E7BEA4",
+" o c #6774BB",
+" O c #3E4CA0",
+" + c #94D6F4",
+" @ c #D5CFF2",
+" # c #475642",
+" $ c #444853",
+" % c #22558E",
+" & c #909FE3",
+" * c #0A2A66",
+" = c #ABBAE3",
+" - c #0A3987",
+" ; c #4385CC",
+" : c #69686A",
+" > c #508290",
+" , c #E0D5C1",
+" < c #0B2428",
+" 1 c #57666C",
+" 2 c #283C8A",
+" 3 c #303428",
+" 4 c #CEBCE1",
+" 5 c #A89A8A",
+" 6 c #E4E6D2",
+" 7 c #EFDDD3",
+" 8 c #1D1D47",
+" 9 c #6669B3",
+" 0 c #425AAA",
+" q c #97856C",
+" w c #6587E0",
+" e c #5C3511",
+" r c #82BDEF",
+" t c #0A182A",
+" y c #7A87B9",
+" u c #0A2641",
+" i c #C59964",
+" p c #1B466C",
+" a c #0B1417",
+" s c #575A86",
+" d c #C49D7A",
+" f c #D2BCAC",
+" g c #8E88B2",
+" h c #314446",
+" j c #FCF5D5",
+" k c #96A79F",
+" l c #956D45",
+" z c #99BDE4",
+" x c #475662",
+" c c #45453F",
+" v c #44588A",
+" b c #565DA9",
+" n c #95A8BF",
+" m c #A7A3B3",
+" M c #95B1E0",
+" N c #6A5435",
+" B c #150E27",
+" V c #808F72",
+" C c #0C1C49",
+" Z c #EECAA6",
+" A c #B49277",
+" S c #7FA8E8",
+" D c #8F888E",
+" F c #3C210B",
+" G c #081D66",
+" H c #7C93DB",
+" J c #576ABA",
+" K c #E3E8F4",
+" L c #3C75BD",
+" P c #DCC7B5",
+" I c #AEA595",
+" U c #1A3649",
+" Y c #D6CFDA",
+" T c #767489",
+" R c #191B27",
+" E c #1B4557",
+" W c #80A8C4",
+" Q c #CEB5A7",
+" ! c #A8A3D1",
+" ~ c #3E2913",
+" ^ c #4869B8",
+" / c #182D7F",
+" ( c #957E86",
+" ) c #847768",
+" _ c #845526",
+" ` c #6D766F",
+" ' c #655D85",
+" ] c #BDA5AD",
+" [ c #97B0B9",
+" { c #2357A7",
+" } c #C7C4B0",
+" | c #AAB59A",
+". c #B58A59",
+".. c #31578D",
+".X c #765D46",
+".o c #865D2E",
+".O c #C3C9E4",
+".+ c #ADC7F6",
+".@ c #5879BD",
+".# c #AC7D46",
+".$ c #998F72",
+".% c #BEBABE",
+".& c #C0A78B",
+".* c #080C29",
+".= c #253181",
+".- c #7E9196",
+".; c #7E9EE2",
+".: c #FCE8C9",
+".> c #A9AFDE",
+"., c #959D9C",
+".< c #5285A6",
+".1 c #AEC6DC",
+".2 c #A599AF",
+".3 c #C2C6C8",
+".4 c #6792DF",
+".5 c #675B51",
+".6 c #B99466",
+".7 c #F5D7B8",
+".8 c #302511",
+".9 c #69728B",
+".0 c #74698C",
+".q c #8D94E0",
+".w c #45496B",
+".e c #0A0B10",
+".r c #493319",
+".t c #CEAB8B",
+".y c #99C8F2",
+".u c #453C36",
+".i c #31544D",
+".p c #6994A5",
+".a c #1B2327",
+".s c #2C4887",
+".d c #0B344C",
+".f c #B2A383",
+".g c #81A7A2",
+".h c #C1E4F8",
+".j c #7C92BB",
+".k c #58452E",
+".l c #43644E",
+".z c #997A5A",
+".x c #6791C4",
+".c c #956935",
+".v c #2E4AA0",
+".b c #79552A",
+".n c #544D80",
+".m c #23546A",
+".M c #19273C",
+".N c #182B66",
+".B c #19489F",
+".V c #945E2A",
+".C c #5285C3",
+".Z c #3E3D53",
+".A c #C2B399",
+".S c #AFC5C5",
+".D c #3D3552",
+".F c #436F72",
+".G c #D9DAEB",
+".H c #3D2927",
+".J c #3B749F",
+".K c #5A5440",
+".L c #D0F4F9",
+".P c #2C63AE",
+".I c #A9865C",
+".U c #9D7543",
+".Y c #687C93",
+".T c #B0D5F4",
+".R c #A78F7B",
+".E c #687CBE",
+".W c #2A3B6A",
+".Q c #AC7D55",
+".! c #7674B8",
+".~ c #150D10",
+".^ c #684A26",
+"./ c #AB936B",
+".( c #E1C4A0",
+".) c #1A376E",
+"._ c #31566A",
+".` c #281B12",
+".' c #676788",
+".] c #867C8C",
+".[ c #7F9C9C",
+".{ c #528FC9",
+".} c #1B3226",
+".| c #BFAFB0",
+"X c #D5B694",
+"X. c #ABAEBA",
+"XX c #6B745A",
+"Xo c #665148",
+"XO c #A498C7",
+"X+ c #6687A1",
+"X@ c #B89B7E",
+"X# c #C6D4C7",
+"X$ c #F8ECEB",
+"X% c #82AEB9",
+"X& c #E4BC92",
+"X* c #4A4329",
+"X= c #1A3988",
+"X- c #171718",
+"X; c #BEBBDD",
+"X: c #81B0E3",
+"X> c #6586C1",
+"X, c #2F3640",
+"X< c #98BCBE",
+"X1 c #251D29",
+"X2 c #6A9CC9",
+"X3 c #7C8471",
+"X4 c #4A7599",
+"X5 c #554C58",
+"X6 c #3A67B1",
+"X7 c #6C948C",
+"X8 c #6A9EE0",
+"X9 c #70644E",
+"X0 c #93A8E4",
+"Xq c #41646F",
+"Xw c #949EBA",
+"Xe c #2E4763",
+"Xr c #7E9DC2",
+"Xt c #513B1F",
+"Xy c #BDB1DF",
+"Xu c #D0A774",
+"Xi c #3159A8",
+"Xp c #587796",
+"Xa c #3F3D77",
+"Xs c #263065",
+"Xd c #5D3D2E",
+"Xf c #4A76BD",
+"Xg c #896538",
+"Xh c #C5D7ED",
+"Xj c #5D3D1A",
+"Xk c #8A7350",
+"Xl c #575860",
+"Xz c #764D22",
+"Xx c #806B5A",
+"Xc c #7E8690",
+"Xv c #0B2B7F",
+"Xb c #1A4687",
+"Xn c #486893",
+"Xm c #767DBD",
+"XM c #556557",
+"XN c #FAFAF9",
+"XB c #688584",
+"XV c #3F3431",
+"XC c #7987D7",
+"XZ c #D0E6F4",
+"XA c #2B6394",
+"XS c #E5F6F8",
+"XD c #282B38",
+"XF c #0B356E",
+"XG c #586892",
+"XH c #ADB9C1",
+"XJ c #929296",
+"XK c #787C8D",
+"XL c #434B84",
+"XP c #867CB2",
+"XI c #2A2726",
+"XU c #9293B7",
+"XY c None",
+/* pixels */
+"X+ MXr.9 1 x `X9 cX9 ) 3.uXIX1XIXI.` c.8.`X5.H.ZX1.a h.M <.M vXG v.M u u.m % .X4Xm g.9.9.aXM : `Xx m.9XJ.9 xXp.9.Y.@ yXw.wXl.9.9.jXK : 3XV ( D.0Xw.C ; ;Xf.;XG 3 8.YXr r z.x.@X0XHXc x 3.aXI.8XI.}.}X,.@ yX>.9.YXl.K.K.] ) m T.9.iXc M & yXnX+X7.[ .iX%.Y.;X0.>.+XwXl.9XKXIXI 3XVXV.kX5.k.k.k.u.H.DXV.K.u 3XVXV.u 3 3 c #X,XcXw., I kXc.% :.} R R t R R R R.a R.a R R.a RX-X-.a RX, RX-.a RX- R a.a.aX- a.aX- RXIX- RX,.aXD XH } 5XJXHXJX,.Y.-.YXr.- nXD.u.D.kXV.HXV ~XV.rXVXVXV.8.u ) )Xk ~XVXVXo.HXV #X5X3XJ D : `., D kXJ., )X9.k.k.k NX9.kXx.k.k.X.kXgXg N NXx N NXx.^ ).RXt NXxXxXtXx.X.kX*Xo.r.k.X.r.X ~ 3.H.uXI.H.H.H.r.rXx (.].RXo.0.k m (XaXd.DX5 ~.uX,.M c 3 3 3.8.HXIX1XI.H 3XV.8.K 3.MXIXI.8XI ~.`.8XIXIXIXDXD.aXD 3XIXVX*Xo.^.H.8XVXIXD.Z c.uXVXVXD.HX1X5 :.KXIXI 3 3 3XI.H 3.8.HXVXIXV x.jXpXq.j [.[ nXh.YXB.[XqXe.g.9XwXpXr.{ > >._ h.w x x.j.[Xp.-XH [ n.%XKXHXKX1XI c mX3.3 m k I V.Z., kXK 3.u cX,XVX,XD.M R 3.aX,.ZXIXDXDXD 3X,X, B R.a RXDXIX,Xl.ZX5X, $XDXD BX5 RX-.aX-.aX-X,.ZXD 3XD aXDXDX-X,XIXD.a.a R.K #.u : cXIXD B :XP $ $.Z x.w.MXDXDXD hXDX,XD.} $X,Xl.w $X,XD.Z.M TXJ.w $XU c.wXDXD RXD.Z.Z.w $XeXlXK.MXD U xX, h $Xl $ x cX, hXIX,.aXD.a.ZXl.Z.M $Xl.Z c.MXIXIXDX5.H.Z c h $ hX,X,.wX,X, h U h U.a.}X,X,XD.a.}",
+"X+X+ y [.- : : 3X1 qXJ.5X1XDXIX1X1XVXJ.8XVXl.uXDX1.a RX,.} t.W.Y v 8.M t p %X6X:.EXsXa $.Z hXD $.M.Z : h UXcXw.pXr H.EX0 U 3.a.MX, UXD 3.8.KXDX, EXrXf.@.@ yXKX,Xc MXp.CX4Xn ^.E.WXK .- hXI 3XI.}.}Xn.E v.@Xr.jXcXJXV.$X.X5 $XwXJ h nXr J.jXGXe #.l .Y.E o.x M = =XUXH., cXl.K.K.K.5X9.5.K.kX*X5.Z.KX*.r.uXVXV 3 3 3 3 # DXc.-.]XJ `.,X..9X,.a R R R R RX- R R R R R R R.a R RXD.a R R R R R R R R R.aXI.a R.aX- R tX,XDX,Xc n.% |., D.-X, .-Xc n.,XwXIXDXV.kXVXVXVXVXV.8XV.rXVXtX*Xx.RXVX*.rXI.5.u.5 : c.5Xl #.u c c c :Xl.K.k.k.k.k.kXo q.zXkXt 5./Xt q./X9Xt.R.R.z.X.k./XxXd ) NXx.kXx.XXtXk 5.rX* qXk.K.r 3.H $XVXVXdX5.RX@ ( ] ] g ).2.5.2Xy g ! ( I.K 3.u 3.H 3.u ~ 3XI 3.` 3XI.8.8XV cXVXDXI 3.`XI.8XVXIX1XIX1XIXDXIX1 R.H.8.u.^Xo.`.HXI.HXI.HXI.HXVXV.uXD 3X5 D k DXlX5 xX5X, cX,.u cXV cXV $.Y 1XpXqXp.T xXq.[Xp.F.F <.9Xq h._Xq.m._XA.i.w h $.).-Xp.[.YXc xXD h h 3XlX,XI a c.u c.u $X,.ZX,XD 3 :.}XD.ZXl $X5X5.u $.M RXIX,X,XDXDXDXlXD cX,XDX-XD.a 8.aXDXDXD.aXDX,.a 3 cXl.aX1XI RX1X- RX,.a B 3 RX-XDX- hXI RXDXIX-.K.5 3 `X1XD $.9XD hXK.Z U $ $XDX,X, xXl x $X1 hXI.aX, $ $.ZX1.aXDX1 $XUXl $.Z.w t $.ZX,X,XDX,XD.'Xw.ZX, $ $ $X, RX,.Z $ x : 1X5XD hXDXD.M.Z hXDXD $ x c xXD.ZXD $X,XD hXD <XDX, $ UXeXlXDXDXDX, h.M.MX,X,XDXD",
+" . MX+.Y.w.9 : c c.|.$ `.5.5 x :XI c.5.H.uXVX1XIXIX1 3 3 x h.ZXs s U C uXeX4.xX>X>Xr v._Xe v sXc.Y nXeXc.iXKXw.j.jX>.@ y.W.}XI 3XIXD.H.H ).H xXK.Y.pXGX+.Y $X,X, vX>.@.....s.@.EX>X0 J.Y x.M 3XlXl.M y.;.....E.-XwXc D ! DX;.3 D mXJ sXwXr.@XnX>.jXBX,.i._ 0.C M &.- mXc :XD.8XV.uXVX*.K.k c.k.K.uX*X9.K.K.K.K.KX5.K c.uXJ nXUX;XK., IX..,Xc c.a.a.M.a.a RX1X1X1X- RX-X-X- R RX- 3X- R.aX- t RX- R RX-X- RX- RX- RXDXDX,.-.>XwXHX. T D :XlXD h.j., nXwXJX,.uX5X*XV.H.H.r.u.u.r 3.r.HXx.kXV ~.rXVXVXoXIXIXV.HXX.]X3 DXJ.,XJ IXc.5.K.kXt.k.kXoXkXxXx.k.R qXt.R )Xx.^ qXx.R.k N.R q.k.$.X qXt.$ NX9X9 5 NX9.^XxX*.8XV.`.HXdX1.D A ]XyXyXOXO.0XO.2.> gXyXOXOXO ! mXJ.8XtXV ~ ~ 3XVXI.8.}X1 RXI.8X1.H $ 3.HXI 3XVXIXIXV.u 3 3XVXV.u c.u c c cXJX9 c.uX5XVX5XVX5.uXVX* 3.u.uXI c.K ` k.-.9 Xp Xq xXD.8XI.a.}.9X+XpXBXqXn n.FX4.p .X+Xe XpXpX+ >.<X4.F.F._ xXe t u.M U t.M tXD RXD aXl 3X1XDXIX1XVX5X3 : 3X,XDXIXIX,.aXIX,X, R.Z.u $X,X,.aX, 3X,.a.a R.ZX-.MXDX- RX,XD RX1.aX1XIXD c tX5X- R.a R R.aXI.a.aX1.a.aX1 R.a RX- hXD RXD.` aXI :.u :X-X1.aXD gX..'.9.w x s hXD.MXD.ZXD 3XD.a RXD 3XDX, $X,XIXDXDXl.ZX, $.ZXcXKXD h s $ $XD x.-.ZXl $.M $.Z xXD.aXDX,XDXD $XlXlX,.aXD.a $.M.M.a x $ 1X5 hX, $ $ $XD U.w x 1 1Xq 1Xq 1 U UXD.} $ xX,X, RXD",
+"Xr vXeXe.M.Z 3 3XlXxX3Xl c #XlX1XDX1 ` 3XIX1XIXI R.~ 3.aX5 c CXD.w.N.MX,._Xn 2 0XiXn.@.EX>X>Xp.YX>.j [ 1.Y.jXpXnX4 0XiX>X>XB # aX,XDXI cX,.MXKX+.Y y.[ $.aXD $ 1XfX> %..Xi .X8X4.4 ^.@X>.w UXlXw.1.>.T M M H.jXr xX,XcX5XJ.0 cXlXx `.9XcXwXrXf 0Xe t.a.a.WXnXfX:.jXw.,Xc D 3XV 3XV ~XVXV.rXVXVXV.u.K.K # 3 ~.u.H.H.`XI :.% D m.wXw : x.3XHXlX,.}XD 3XDX, 3XD 3XDX,X,X, 3X,X,X,X, $XDXDX,XD 3XDXDXIXDXDXDX1.aXDXD R.aX,.Z.9XwX.XwX.XcXl.9 $X5 xX, $ $X, hXI.H.K.H ~.HXV.H.8 ~XV ~ ~XX ) ~X*XV.HXVXV.kXVXVXV 3.u #.5 :X5.K.K.5 :.K.kXd.u.k.k.^.5.kXo.r.^XtXt NXd N.r.^XjXdXt.^ NX9.r.^ N.kXt.^.k.^.^.kXj.kX*XV.`.HXdXo (Xo ' Q.2 ]XOXOXO.>XO.>.> !X; 4.>Xy.>XyXK $.u.u.kXt.u.KX* #.u # c # cX5.u.u c )X5 cXVXV c.u 3 3XVXVXV.H.H.H.8.KX5 : )X,XIXI.8.8XI.8.8 3X1 R.` 3.`XI 3XDXD x XpXnXqXnXqXnX+.Y $ c.M.M.}Xe.F >Xq WXrX+XqX:.FXB E 1X4._.FXBX+XpXBXq.iXe 1.d t < t.MXD <X-.a R 3 $ cX1.`XI c $.u x : ` :.ZX5X,.u $X, cX5 3XDXD $ c $XDX,XD.Z c D 1 $ $ c 1 $XJXJXl.ZXDXD.aX1.aXlXI.aX-.aXIX-.aX-.aXI RXI.a.a.aXI RXD RXD 3X- 3XI 3 3 : #.ZX, $X,.MXD 1X.X,.wX,Xl RXDXDXI.Z hXDXDXD.aX, :XlXI.Z 1.Z hX,Xl $ hX, mXlXl.MXJ.M c x.'.9 R U.Z.Z $ h.Z x.Z.aXDXD.MX1X,.ZXl.a.a RXDXDXD RX, c.Z $ hXD x U U.WX,.i._Xq.FXqXqXqX+ 1.WXDX5.'XK D $X1 R",
+"Xp o._XG.MXDXDX5.5 ` )XI.5 3 3 3.Z.u c c.5 c c.uX5.K.K : ) `X1XD.N 1XMXe.}Xs.w..Xe ....m......Xf...@.j n HXn.s...s 0 0 ^X6.@.YXpXe._.pXe EXqXr...p yX+ 1 yXp.xXf ^.s.. %.mXA.x SXf wX+XG U hX,.9.E o.@XGX0Xr.jXpXDX,X5 RXlXD.8 3.} ) :.'XqX0.EXi ^ y $.MXs.@.<.CXw.-.'XcXc.8 3X*.u.uXV ~XVXV ~XV ~.K ) ).k ~XV 3.8XD.HXD `.%X..,.,Xl 1.3XJ s t tX-X- RX- RX- R.`X-X- a R RX- RXDXD RXI R.aXI R.aXD.aXIX,XDXDXIXDX,X, $X, $.9XcXw.- ' c '.Z.ZXlX.X.XJ : :.K.K )X5Xo.KXo.K.k.K.K.K.5.$X9.K.K.k.k.k.kX5X* c.kX5.K.5.K :.K :.5.5X9Xo.5.5Xo.XXo.5.XXo.X.5.X.X.XX9.XX9.X.XXx.XX9Xg.X.zX9.X.XX9XxX9X9XxXx.XXxX9.K.K.kX5Xx.7XO A 4 4 4X;.> ! g ! !.>.O.O !Xy ! =.>.> =Xc.' `XH.].K.8.u 3X*X*XIX-XIXI $ :.2 D IX1 3X1.aXIXDXIXIXI.8 ~.8 F cX9 c ` 1X, 3 RXI.H.8.H 3.~ 3 3 3.`XIXI.8 c # hX,XqXBXq..._Xq._XqXB > XB xX, t xX+X7X+Xn._ . WXp x < U x.YXpXp.p._XnX+XnXe.i._.}.M.} t.a.a.a.aX-XIX-.uX5X, 3 :XlXDXc cXIXD `XIXI 3 R.u.ZXlXK cX,XIX, 3Xl.Z $ 1.9 $XKXKXK $XKXl :.9X5 UXDX,X,X,XD $ $ RXI RX1XD.aXD RXD hXDXDXI $.Z xXV.Z c x $X,XI R 3.~XlXD RXDXIX,XDX,Xl.aXK s.w.9.Z R UXD.Z.Z.M 3.M $XJXHX,.MX,XDX,.ZX,.Z.a.MXD h $XcX.XD.M.9 : $.ZXD.M RX,.Z h $ x $X, hXD.aXDX,.ZX,XDXDXD.ZXDXD.M h h.a.Z 1 xXD.N.MXeXn._X+.[X+.[ [.yX< yXH.9XKXl.' $.ZXI",
+" b._XsXG 8X,X5 $XJ.5 ) :XcX5 $ $.5 ` ` : :Xx $.kX5XX ).5 c.u.5X,XDXG.Y UXD t.a.9.W E p.m . %Xf %Xn H.j M o..X6 2.sXL.v %.sXiX6X4X>.<.x.<X2Xf.<.E.pXp.WX+ v ^ { { %Xb E.dXA %X>XiX6.@.M.a.9 yXq.EXp.@.s . H E UXD 3 cX1.5 cXD.}.aX,X,XDXc y MX>X>.E.+ y.Z 8X+Xf W = D.wXVXD.u.uXI ~XVXVXVXV.r 3XV.K.u.kXtX*.uXV.H.HXV.` 3.u :Xl.ZXDX,.9XHXJ.a.a R R.a R R R.`X- R.aX- R.a RX-.aX,X-.a RX- R.aX-.aX-X-X- aX-.aXDX- tX- h t t.M t.M 8.M 8 8X-.DX..2 cXDXIXIXVXVXo.r.u.H ~.u.uXVXt.KXxXV.k.r.rXVX*XVX* c.H.HXV.u.kX5.K.5.K.K.K.kXoX5Xo.k.k.K.kXoXo.K.^.kXo.K.kXo.kXo.^.k.^XoXd.kXo.XXo.k.k.kXoXdX5.kXtXo.uX* 3.`.H : ] ].R 4 ]XUXUXPXP gXmXU sXw =Xc.- .-Xw nXw.1 1.pXc.Y k 1 c.u 3.5 RXl ).,XJ m :.5.0.uXI.`XDXIXIXI 3.uXV.HXVXt.k.5 3X5 ` :.,X,XDXD.8XIX1XIX,XI.MXI.8 3XIXI 3 # h.i.M._.pXq E._.m._.m._Xq.FXpXB 1 h <XnXp.F._XeXq.lX4.9XD xXKXq._.F.<Xq E.- >.mXq._X,.a < <XD aX-XI aX1.a.K.u c T.K $XJ.5XKXIXMX1.a RXIXDXV 3X1 3X,X,XDX,X,X, $ : $ 1XDXI.aXD R.M RXD.a RX1.a.aXIX1.aXIXI R R.aX1XIXI 1X5 : IXKXJXcXJXJ.-XcXJ R cX1 RXIXIXD.aX5 c B RXDX-X1.a RXJ $ TXJ.wXl.Z.M.ZX, hXDXD $XZ :.MXD RXDXDXDXD.M $X,.a hX,X,Xl.}XDXwX,.MXlXcX, $.w.MXDXlX, xXlX,X,XDXD $ cXDX,XDXDXD hX, RX, x.aX, xXq._ E U v...<X+._ h nXr MX%.- s.Z 8XD.Z RXD 1",
+"XnXsXG U.w $X,X5 )XV c c c.K ` c # R 3.5.K cX9XV ~.kX9X*.K.5XJXV U vX+XG $X5.0 c.M U < U < EXFX6X2 M.+.jXn 0._ u E < u.N p.m.sXi.sXnXbXA % {Xf.JXr vXG HXf % % %.) U.M u.)X6X6XbX> ..M h n yX>XAX:X8X2.xX+.M 3XIXVXV.`XVXD.MXeXp o.j.'.Z $.Z W.xXp.p x t vXG S.+ =XcXV c.uXIX*XV.rXVXVXV.u 3.r.u.K.KX9Xo.u ~ ~XV.8XV.H.8 3XIXI 3 hXlXwXw.9.a.a R R R R.`X-X- RX- RX-X- RX- R.aXIX-.aX- R RX- R R.a.a.aX1 3 a $X, xXJ h.a.M t h xX,XDXDX, DXJ.KXI.H 3XV.uXVX*.k.HXV.r.u.r.rXVXo ).k.uXVXVXV 3XVXV.H.u.8.H 3XV.k cXt.k c.k.k c.K.k.k.k.u.k.kXo.k.kX5.k.kXt.k.KXt.^Xd.X.z.^.XXkXxXo.^.X.kX5Xt.K.r.^X5.rXd.HXV.u m m ]Xy 4 4 !XyXU.9 9.jXPXG y.>X.Xc XXX3 |Xh = WXGXp W.-Xq.Y.[XhXwXh kX..Y : hXVXIXI.u.HXD RXIXIXV.K.K :X9.5XlX*.KXIXV 3Xc `Xc xXI.a 3 3 3 3XJ x.}X,X,.} 3 ` `.YXc xXp XG x x h.M.m.m._.i._.lXe >.<XpXq.FXn x 1 1._.l.-XD.' :.g.FXq.JXrXq M [ >.gX<Xe hXD.a t.} RXI.a.`.` R.].K.%X. D :XJ mXl c RXIX, $ R RXD c 3XD 3XD.a.aX,XD.aX5 RXD tXI t RX1.a R R RX1 RXDXD 3XDXD $ c c hXDXDXc : :XKXc.,XcXlX5X, $X5 $X,XDXl h R R.aXI.a : k 3X1.a R R.aX-XDXw ' xXcXl.Z.ZX, h $X, 1XwXHX,XDXD.M R R.M.a.aX,.w.a $ x 1XD.MX,.ZX, xXDXD xXwXD.Z.>X,Xe.Z.YX,.M.a 3 1XD $XD.a R.ZX,.aXD $X, h.w xXpXp._.F.FX4Xp.j U .j >._Xn x.M.M.Z.M.M.ZXU",
+"XeXqXe.W.wX,X,.]XJ `X5 cX1 a.a.a.a.`XI.uX5 c.u.8.K.5 3XV.KX*.8 R.M.MXn y U.9.] 3XD h U h 1Xq.C.C.C.T.T MX0X+X+ h E 3.}.i u...W 0 O v.. % % {Xf.; H n HX> ^ {Xb.d u R.a C.W.).s..Xf 0 E x.EX6.P {XAXf.<X>X+XD 3 3.u.`.HXIXD x.E.@ JX>.wXJXJ.}X+.p ...Xe.MXqXLXC z !X.., 3 cXVXVXVXVXVXV.rXVXVXV.KXV.uXV.K.HXVXV.8.H.8 3X1 3.5X3 c ` m.-Xc R R R RX- RX- R R R.` R R RX-X- R.a.aXD R RX-.a RX-.a R RX-XD 1 ` a.9 ` $ s U h.a.}XG h.MXD.,XJXVXI.H.uXVXVXV.u.H.u.k.r.r.H.r.uXo.5.5Xo.5.u ~.uXV.H.rXVXV ~XV ~XVXt.u.kX5.k.k.k.kXdXt.k.k.k.kXo.k.kXt.u.k.k.k.kX5XtXo.k.^Xx qXd N.$.^ NXx I.kXd.k.kX5.u.HXVXVXx c ' ] Q !XyXU.> ! !.1.>XU g.jXw.j.> [ | k kXMXBXS nXpXp >.gX4._._ nXrX<.jX+X+ .YXM.MXIXI 3XVXIXIXIXI 3XM.uXVXI.} cXDX,XV.`XI 3Xl # $.MXD.MXD $.- .9.} xXB.Y.Y.9 1 x 1 .- xXeXe.a.M < U < h xXe._XqXn.J.pX4._ 1X,.i ._.9 1 :Xc [.T WX: n W W.[.TX%.,.Y h <.a.a R.aX-X1 RX- 3XI ) $ :XIX1X, :XIXD.aX1 3 :.aXV 3 RX1.}XDXD.aX1.aXDXDXIX, RXI BXDX,XDX,X,XD $ hX,X,XDX,XI R.aXDX,X-X1.aXIXD hXDXD.Z RX-.aX1.aXIXDX-XDX-XlXI.aX1.a R.3.ZXl cX1.aXIX-X1XD aXD T.ZXc.2 hX, $ $ $XK x $ xX,.ZXD.MXD R.M R RX,Xl.M x x.Z R.aX, $.Z.ZX,X,X,.a.wXcX,.Z.-.9 $ $., $XI.9 :XDXDX, RX,XD.M.ZXD 1.9 1._.FXp >X4.FXn.FXw._.[ W X4 Xe.w U.YXK.j.-",
+" sXe.w xX,.ZX,XK `.3 D `.]Xl.ZXIX1X*X5.kX5.k.u.5.KXV.K.$.5.aXI R.a.M v.YXLXDX1X1Xs $ cXl 3 UXL.v L SX:.;X0.; g k.-.Y.-.[X,XK 9.!.0.! C U.s %Xf S S.xX6X6.s...W uXD tX1.D.M.W.sXi.4.C.4.C.JX6.P { {.P %._XK h R.k.8.HXIX1.Z.EXG J.E.E.a x.5X,.jX>Xi 0.d.W U._..X>XhXh m V : 3XV.uXV ~XV.u.8.rX*.kX* qXxXV.r.HXV.H.HXV.HXV.K |.,X. m n : $ t.a t R R R RX-X- RX- R RX- R R RX-X, RX- RXI a.a R.~X,XD.9 h.'XG.Z $ t.M $ 1.M 8XeXc xX, : :XIXVXV ~.u ~.u.rXV.H.K.kXVX5 NXx )X9.uXtXX.5X*.8.8XVXV 3XIXVXVXV 3.rXVX*.k.k.k.k.k.kXt.kXt.k.k.k.u.k.kX*.k.k.k.k.k.k.k c.k.^ q.R.kXk.zXx N ( )X9.kX*XV.r.H.8.H D 5 (Xx.2XyXO !.q &X0.> &.1 = =.OXhXw =., [ | V V.g kXpXnXpXnXp.F x EXe._XeXeXe..XqX4.YXq.}.MXD cXIX1XI.8.u.KX*.$ `X3XH kXc hXIXI 3X1.} $.} h.Y Xc.Y `.,._X+Xn._XqXq._XeXqXnX+XpXe h.M u.M.a tXI RXDX,Xe.F WX4 ...XeXe.i.M U._ 1Xw h $ $.[XqXpX4.<.p n [ [ [.[ x < R R R.aXD c R.` R.`X- :.`XD cXI.a $ RX1.aXDXIXI.a T.a.aX-XD.M 3 RX,X,X,X,X,XlX,X,XDXDXDXDXDX,XDXD RXDXD RXD.aX- R.Z cX, 3X,X1XDX- RX,.u h 3.a RXI.aXDX1.aXD $X, R.aX1X.XKXIX,XlX5XIXI RXI RXI.a.Z D 1.'XD.ZXH.9.Z.'X, x $ $ $X,.ZX,.MXD.MX,.Z.Z x.ZX, $.ZX, $.9.9X1.ZX,XD.a tXDX,.w hXD.'X..aXDXc.,.ZX,XDX1XD.M.a hX,.Y.9X+XqXp k z.T.[ M M zXZ.T.-X+ X+._Xq E._.[.YXG",
+" xXG h hX5 UXI $X5 $Xw mXl.2 'Xc.KX5XV.u.u.K )X9.8.8.K : cXI RXI.aXlXD._ s U 8 xXKXDXIX1X1 R.=..XiX6XA.. vXaX1 R.}X,.} $.u :.n ( g.]XD.W .Xi ; S.J ;XAXb...) U.N tXDXDXD 8 C.. {X6Xf.P.P ..4 L LXi...@.E.W RX5.H.H.`XIX1 xXKX+ y v.MXI 3 3.} y S.C ^..Xe t E ..x.- Y.G., }XV 3.8 3.u.u.8X* 3 #.r.8.K.K ~XVXV.H.r.HXV.u ).,.%.,XMX..-.9.M R R R R RX- R.`X-X- RX-X- R.aX-.~.aXDX- R.a.eX- tXD 1 :XJ.w.MXD :Xw.9.a hXU.-.9.-.- n.9Xl h 3.uX*X9.5.5XxX9 :X9.5 (Xx.XXo.KX* ~.r.8.8.uXtXV 3.uXV.H.H.`.u 3XV ~XV ~.kX*.kXt.k.k.k.k.k.k.kXt.kX*.k.k.k.kX*.k.k.k.k.k.k.k.k.^ NXtXoXo.k.KXx.u.kXV.H ~XI.H.H.u ].| ].2 ! !.> &.>.+.+.EX0 =.> = nXhX; [XcX3X3 V X3 [XGXnX+._.i U u._ x.9 E._ p.i MX+ XnXp x.} hXD.}XI.8.u N.`.`XM.Y.Y.gXr 1.`X1XI.8XD 3 x XpXqXqXp W.-.YXq..._._XeXe EXeXpXq y._Xe 1.M R :.DXD RXDX, h.MXe ..m._.m._ x.FXe._ 1 x.} RXKXn x._Xe._XqXnXBXp XcXcX, hXD 3 R.a.5 RXIX1 $X1 3XlX-.ZXI RXI cX1X1XIX,XIXD c :XDX,X, 3X,.aXDXI.MXD RXDX,.aX,.a.a R.MXDXDXD cXD.aX,XDXIXD.a RXD $XDXI.,XJ x.aX-.a RXDX,XD aXD.a R 3.MXD $.Z aXIXH c 3XI.aXV #X5 $ 3 R R R.}XDXIX, $ hXU.Z.w nXD.Z ' $X, s $X,.wX,.DXD.M R 1 $ U.aXD $.'XKX.XK.YXl $.MXDX, 8 U $XD hXl $ xX5Xl.9X1X,XI.MXD.MX, h.YXp.p.-XcXq.[.1.3.[.pX+X4.M.} hXcX4XqXq._.mXnXqXp",
+".Y $.W hX, $.MXDX, R $XlXD RXI RXVX* :Xx :XoXV.`.5X9.u RX1 cXD R.` D XBXcXpXGXGXc.wXD.8X1X1 8XL._ %.....M RX1X1.MX-XDXI.`.k.5.ZXV.} R U vXpX> L.J.J.P %XA ^X6 v 0.sXn.}._.j % {X6 ^XiXfX4X8 rXf ^ w.9.w UX,XDX1XIXI 3X1 hXDX,.a.aX,XIXIXDXG.EX>.@.@.; v E.m % %X+.Y.S.G m., 3XVXV 3.H.uXVXV.K.k ).KX*XV ~.H.8XIXI 3 3X.X..O.3.3.1XH 1 R R.a R.aX- R R R R RX-X-.aX- a R.aXDXI.a RX-.Z $X5 :XKX,.a.eXI R $ [XH 1XwXJ.,.9 $ c.MXIXI cX9.5X9.5.X.5.k.u.k.u.uXX.uXt.H.rXV 3.r.uXV.r 3 ~XV.r 3 3.8 3.u.r.HXVXVXVXt.k.k.k.k.k.k.k.k.k.kXt.k.k.k.K.k.k.k.kX*X*X*X*.k.k.KXt.k.K.k.^.kXo.5 ~.r.HXI.8.H.HX5 q.2X@ ( ] ! !Xm H.; z z bXr.>.EX0Xw [XK.Y `X3 c #XXX3Xw [.pXp._.s E <XD.M xXD hXc.MXeX+X%Xn x.9.9.9 1X,XI.a.k c.8 3 3 `X%.<X+.[.' #.8.aXDXM.- 1._._ EXcXpXM x._ x p U U.M U.W = [ n.Y n.'XcXr.9XJ.2XV.H.~XVXD.M 1 U...p.F.<.[Xp.g.[ x.jXB.Y._ E._XeXe.iXq xXeXD $X-X,XD cXI R RX1XD.5.uX, : :.u.u cXl c $ 3X1 3 RXD.a RX- R.a R.a R.a.a.a.a RXIX,XD R a.a R.a.aX,.ZXDX, $X,X,.Z $.uXI.aXD c tX.XJX5.aX-XI.aXIXD cXlXK cX, : :Xl :XJXKX- :XlXD.`.a R RXI 3X5XM.KXDXD RXD.a R.Z RXD.Z.9 RXK.w.Z m.Z.] TX, $.Z xXD 8 R.w.Z.M RXD.M.Z.Z.'XcXK gXK T 1 h $ $X,X,.M 3X5XlX, RXIX,X, RXDXD.M $.Y.<Xr.iXD R.aXDX,.,Xp >X+.}X, R c.pX+XAXq._._.<X+",
+" x $ $ x $XD.a.ZXDXI.' RX,XD.a RX1.`XVXIXD.H.`.uXXXVX- 3 cX- aXI.8XV.KXc.iXsXe.j n hXIX-X-XI.u UXs E U.d 8 R R.HXI.ZX,.uXxX3., `.l 1 $ $Xe v.mXA %Xb.dXF..Xb.PXi %Xp.J.J.dXA.JX8 HX>X2.x.p.jX>XC HXL.N.a.a $XDXD.aXI.`.}XI.a 3.}X,.aXD $ gX+Xp.x.E.@.EXn._._XA.J.@ x $XwXhX. D 3XI.H 3X*XV.K ~.K.$X9XV.rXI.8.8 ~XVXl.2X.XU nXw n.3XU 1 R a RX-X-X-X- RX-.aX- RX- R R R aX-X,X- R.~XD $ `XlX, a RX1.} R a.u T 3XK : hXIX1 3XD c.KXXX9 c.kX*Xx.k ~Xt.8.rXV.rXo.8.H 3XVXV.r.u 3 ~.u.rXV ~ 3 ~XV.u ~X5 3XVXV.r.HX*.k.k.k.k.k.k.k.k.k.kX*X*.k.k.k.k.k.kX*.r.r.u.r.rXt.rXV.rXtX*.k.u.r.kXVXI.8XV.`X5.R.5Xo.k.2.R.2 !XU M o.v ^ H O s HXLXGXU.[ X3 : c h c 1 X7 W W.<._ v UXq #Xc.l $ kXq <.M.WXe._XeXq x.- XMX1X*.5.` 3XIXpX< +Xr.- ` 1XDXl `.-.Y.FXeXe EXp x $ $.Z U.} R < R.a.M tXq.WXG UX,Xe.Z.M.WXs.MX,.`X5.uXIX-Xl xX< zX<.y.1.SXh.Y.9.-.p.F.m._.M.M h hXe x $ hXD.Z x.a cX,.5.a.u 3 3 3 RX1 c.KXl B.`X1X1 3XDXI.aX-X-XD RXD R RX- R.a R R RXI RXD.aX,X, c.'.a tXD.aX,XDX,XD RXIX,X, h $ c cXDXI., :XKX-XD R.a R R.aXIXK VXKXl T :Xl :.5 3X1.aX-X-.aX1XIX, 3.a.5X, c :X5 R R RX1.ZX, RX- RX, $ $ 1X,XcXc 8.ZXl T $X,X, 8X,.w.aXD RXDXD.M tXD 1 hXK.9Xc.9XJ $ $XlXI.a :X,XIXDXDX, R.M.M.MX,XpX4.p x.MXVXIXVX1X,.-.gX+.} 3XIXIXB >X4._._Xq.pX<",
+" x hXcXUXK x RXlXlXl xXIXD t R.aXI RX1.ZXIXIX1XV 5 #.uX1 R RXD R.`.` 3Xl < U.d.YXwXlX,.a.a $ < c h.M.}.}.M h.Z 3 3X1X1X1.aX* h.SXBX,.a R T.n y.) E u E.F.m.<.{Xf.xXfXA %XA.m.PX6Xp U.ZXw yXJ n 1 $.Z 3 #Xl cXD.u $ c.a 3 3XV 3XI.M.D x.j.jX>X+.d W.x v 0 v ..J wXp.E.jX.XhXHX.Xc `.HXV.H.u.k.kX*X*.k.rXV.H.8.u :.5 :XJXcXcXK.9XcXc.- R.MX- RX- R R RX-.aX- RX-.a R.~ aX1XD.Z.e.aXlX,XlXDX-X- RX1X-X-.8Xl # 3 c.aX* c c 3.u c.5 :XVX*.r.rXxXx.k.rXV 3XVXV.uX5 ~XV.rXV.8 3 ~ ~ 3.rXV 3 ~XVXVXV.rXI.K.H 3.rXV.rX*.k.k.k.k.k.k.k.kX*.k.k.k.k.kX5.k.k.u.rXVXV ~XV 3 ~XV.rXVXVXtXdXV ~X5.8.H.8.`.k :.`.H ~.|XyXy !.'XCXmXp b o.jXGXG b.s.s.YXw ` .lXIXI c 3 X7.g.x..Xe._ 1.p.- Xq.iX..[ 1 xXD.wXq._XeXn 1XK # c c 3.8 3 XG > E.MXD.} RXG.lXp $X4 E.M u U h.aX,XD.a RX1XI.a.`X-.a.a aXDXD RX1 R.a t.ZX,.MX1Xw T.~ : 1 $ nX.Xh.jX<X+Xc.wXe.-.pXq.FXq UXDXDX,.a.i $ $ R RXDXD R RX1 h.~.aX-X- aXI 3 :.HXX cXlX5 c cX1.eXD R.e.a R.a.a.a.a R R.a R.a.a R.aXD.Z : 1 R R R R.a.MX,XDX,XD.a.aXDXDXDXD $X,.3XJXDXI a R RXIX-XDX1XDXD $XD aXV RXI R # 3.Z 3XIXI $ c 3 c cX, 3Xl.a 3Xl :X5 cX,XlXD.ZX5 h 3 $X1 c.DXI aX1.w.ZXD.ZX,XDX,XD.Z tXD.a RXD R.M R R.MX-XDXDX,.Z $.a $X,.u.Z.uXDXD.Z.aXD RXD U.9.JX4.[XD RXI.`.8XDX, h [XlXIXIXI.p ..FX4.FXn.[.Y",
+"Xl s hXw.'X,XD.,Xc TXD x ` cX, 3.aXDXDXD RX1X-.KX3X-XI RX-.a R RXDX1.u.u hXD x y XeXKXqXe.}.}.a U $X,XDXDXDX-X-X- R.a.a 3.a 1 $.3.M.a.a.] 8Xw tXD.a.e.h.x M.{X:X2X>X:.< %XAXnXrXwXl 1.'XcX5 cXI.aXI 3X-XI.HX1XDXI 3XI 3 3 3.Z.Z.Y.jX> yXC M._.F.p.1.+.+.xX0.;X>XnXGXp.TXc.O m DXJX5XVXVX5 3.5 qX*.u.HXV.8.u.K.K 3.,XH.j.9X+.Y.i sX, RX- R aXI R.aX- RX- RX-.a R.a.a R.a R c $ T ` x.eXI.aX-.a.a.` cXXXIXIXV 3XV c.8XV 3.K ).KXtXt.H.k.zXo.r 3.r ~XVXV.H cXV.rXV 3 ~XV.r.u.u.r 3.r ~XVXV.H.H.H.HX5.H.r 3.r.u c.k.kX*.k.k.k cXd.k.kXt.k.u.k.k c.k.rXV ~ ~ 3 ~ ~XV.8.r.r.`X* 3XV.8.K.8.8.8XV.uXV.uXdXV.RXy ! &XC.! yXmXGXeXH.WXaXeXG vXnXrX7 1 :.}.aX,.M # .gX+.pXqXp._Xp.[X+ 1Xq x.iXnXcXc.9X5Xp EXe._._Xq.9 h 3.8X1 3.9.9XnX+Xq R U < XGXe.i xXe <.a.MXDX,.a R RX- R.`X- R R R RX-.a.uXIX-.HXDX- h.ZX,XeX, `X, :XJX.XJ.,.,XB.1 [.-XcXr [X+.mXe.}.aX1X1 a $.YXc.9Xc T :Xc :XDX-.uXIXI RXIXI R #XV cX- c #X-XDX5.,XJX-.a.a R RX- R R R R.a R.aX-.MX-.M R.aXc $XI.M $XDXD RX-.a R R RXI.MXIXDXDXD cX,.a R.a.a.a R.aX- R aXIXD aX5XIXI RX1 RX-XVX-X5 $ 3XI.aX- RX-.aX1XIX1.}X1 R 3XD c :.5XI 3.`.aX1X,XIX,.ZXlX,.eXD.e RXD.Z.ZX,XD $.MXD R.MX,XDX,.a.aXD h.Z hXD.} cX1 $ xX,X1 cX,.DXDXD.a U.MXq.FXq.p xXI.H.`.8XI RXD 3 # R.H 3 .j WX<.jX% n.g",
+".w h.ZX..ZX,XD n : 1X,XK m ` $.aXJ k x 8XD 1XDXJX*XIX1 RXI.Z $Xl $ <XIXV V ` 1.Z.'.'XGXp.JXA.s p.d.M.M.a R.MX1.a.aXIX- $.M.MXDX1XD R.a.aXqXc ! R.a U.M y S.;...xXn.M.L.+Xn.jX+ g KXh TX5X. x.2 ' )X1XI.H.]X9X1XIXIXI.}.8.}X1.w.YXf...P...@.EXnXq MX2.;Xr.jXrXw & y HX0.+ =XhXhX..| '.HX9.5Xd.K.k )XV.uXV.8X5.KXI.aX3Xw k = n.SXG hXD a R.a aX-X- R R RX-X- RX- R a R RX-X,Xc 1.uXDXI.MX- R RX1X-.K.|.`XVXVXIXVXVX*.u.8.k.XXd ~.rXVXx )Xd.u ~Xd.HXVXVXV 3X5.rXV.HXVXVXV 3.8 3XVXVXVXVXV.r.8.HXVXVXoXIXVXVXV.r.k.kX*XdX*.kX*.k.k c.k.u.k.k.k.kXd c.u.HXVXV ~XVXVXVXVXVXV.8.u.8XV.HX5.8XI.8.uXVXI.HXd ( ] ! g.> 9.v 0XG s `.wX,X,.M.WX6.EXw k .Z.aXI $ `XMX7.[X4XpXq._Xq.Y nXpX+XpXp._Xq p . >.< M._ p._XnXe 1 1 RXIXVXI.a h.YXq :Xq 1 v >.F p.m U h.a R 3 RX5XDX,X,XDXDXDX, 3 3XDX, cXlX,Xl.KX5 c c 3.a h.Z.M.a RXlX- $.-.> n = [.[.1 =X4 MX7._Xq <.a R R R 3.wXl 'XJ 1 $ ' ) BXD R cXD R.a RX-.` R #X5.`XlXIXIXI KXVXDX- RXD aXD.a R.aX-XI R R.aXI R R.a t D :XD.aXc.Z 1Xc $.MXDXD.a.a R.a.a.a R $XD.u.aXIX- R R.aX-.a.a R.~XIX1 c.e.aXIXD 3 $XM.u RXI RX- R.aX1.a.aX1X1 RX1XDX1XI RXI #.5.aXIX-XIXIX1.aX-XD c $XDXD RXD R.Z.w h.M s $X,.Z hX,X,.Z.aXDX,X,XD c cXD.aX-XIX-.aXD $ cX,.MX,X,.W $Xn.mXn.[.a R 3.`.`.H F.H R c c.MXe n.gXpXc n.} $",
+" x.w $Xl x $.aXKXJ $X1XJ k :X- tX.XH RX, 8 mXI $XXXHX5 RXD ' : a R 3XI.8.K :XI.ZXPXs.NX=.s . .X4 JXqXLX,.M.aXDX, 3 3Xl.a a.a.HX,.H R 1X, u 8.M R.a.a C.mX=.P L .X> [XrXZXm.W s y.O nXl.Z ` 3 mXd TXIX1.u.2 :XDXDXIXIXI.8 3.M.Z.EX6 %Xi...4 yX>.xX>.@.;XwXwX5XD 'X0 WX0.j.jX. nXl.D 3.uX5.u.KXxX9.k.uXoX1X5 `X*.u # |.3X;.- y.g.i x.aX, 3.aXI RXI.aX1.a.a.a.a R R RX-X-.aXDXD R R tXDXI.* RX-.a T D.u.u.HXVXV.r.HX*.8Xd ).k ~.r.kXk.X.r.rXxXo.H 3.H 3.u.8XlXVXVXVXV 3XVXVXVXVXVXV.r.8.rXVXVXVXVXV.KXI.u ~XV.u.k.k.k.k.k.k.kX*.k.kX*Xd.k c.kX5.k.k.k.r.HXV.H.HXV.H ~XV.HXVXV.H.u.8.K.u.8XVXV.H.rXV.R.2XO !XC.+.EXm y.' TX5.KXI.M.W.W.W.sXnXrXc 1Xl.a.aX-XM XB.-.[ >.F._XqX7X+.9.[.pXpX+X4.F._ p._Xe._._XeXn.F.Y.Y 3.}Xl $ hX,.-XpXG.Y >XpX4._ x.W xX,XDXDXV 3 RXD.}.a.a.} cX,.aX-.aX, R RX5XI.`X- R.aXIX, h.aXI cXKX- c $ h._ x x.9Xe._Xq.FXnXq EXD.a R.aX1 RX,XDX, RX1X,.` x.aXIXDXDX,X-XI aXI.a.`X* :XI c c.aX1Xl.G cXD RX-X, RXD R.a RXDX1X-X, cXI.aXI RXD.M 3 sXl xXl xXl R.a R R RX1XDXI.aXD.a.ZX, hX1X1.a.aX-XIX-X-XI.a RX-XI.ZXI.u c cXI 3.u t R.a R RXD.aXI aXD RX- R R RX-XI RX-.u ) 3X1.aX1 3XIXIX- $ :.wX, RX1XIX,X, $.ZX, 1 $X, h.Z.wX, $XI.ZXD $.ZX,.ZX1XDX1 RX1XDXl.wX,.M.wXe x pXeXq.FXp.} 3 RX1XI.H.H.r $.u.K 1.}X+XGX<X+ XB.a",
+".w $XK.9XlXDX1XI : RX, 3XI xXIX,X3 : T :.5.,.e 3X,XK B R.' hXw cX1.3 ] x.KX3XM D ` D.D 8 t u u UXeXG.Y.j.EXn.} U 3X3 #XX :XK $XlX5XDXGXe.... U t.} t E.mXb.PXA %.P ;XpXr U xX>X6X8.x :X,.HXD D.2 ).8.H $X. hX, h.iX,.a 3XD hXeXCX6 % %Xf ^X6 .XfX> ..O.+ TXV 3 $.>.j y.Y nX; TXIXVXV c.kXV.kX9 ).8.k.kXoXo.HXI.`XJ., 1X, U x $X,.}X1.a.aXI.aX1XIXDX-XDX,X,.aXDX, 3.Z.a.Z hX,XG.-XwX..-Xl : c.2.$ c.k c.kX*XVX*X*.u.5Xk.K.r.K.XXx.5XtXV :Xx.uXV.HXIXI 3.8.5 3XIXVXV.8.u.~.HXVXIXI.8 3XV.8.8.H.HXDX5.H.HXVXV.8.u.kX*.kX*XdX*.kXtX*Xd.uXdXd.k.k.u.kXVXV ~.HXI.H 3XV 3 ~ 3.HXV.HXI.8.uXV.8.HXIXdX5 D !XOXO H &XC.E.9 =X5X5.]XlX,XD.W.) 0Xn vXr.-.9XX h.8X, 1 k :Xc n.[XrXq.p.jXr.p >.j x 1 `.-.-.-X4XpXpXpXGXq.,.9 U.a xXcXc 1XeXpXq xXeXe E $Xe h t.a tX, RX- RX-XD R.M R R $ a.a.ZX, cXD RX1XIXD RX1XIX-XDX, 'XlXDX,X5XIX-X-X1X1.M U $ x.wXe xXe x $.a.a R.a R R $ c.9 :Xc.9XK TXJ TXcX5X, BX-XI R RX-.aXV.K.uXl.8X5XcXJX5 $XlX,Xl., : 1X5.9 ` TXKXJX. 3 R.aXI 3.u 1 : $ $.Z cX,X, RX- c $X,XD $X,Xl.ZX5Xc cX, R.`XIX-.`XIX-X-X1 R RX-XI 3XIX,.a.a R x.u RX,XD <.9.Z $XlXcX,.'X- R RX1 RXIX1X- R ` c :Xl $ T $ ` mXJ D.Z.a RX, BXD $.Z.MXe x xXDXeXD.ZX, $X,.Z $X, $.Z cX,XD.a RX1.' xXG.YX+.j..._.mXeX4Xc.WX, h c cX5 c.8.H.` R 3 $.Y.F._XB.J >X2",
+" v xXc TXK ` ` ) T c.5.aXl cXM h.~XIXV ` :.K 3 R $Xl 8 R.Z.2 1XD R.|X5XV a.,.a 3 ` Y.DXD.D.- h U.W U.) 2.Y.W <.a hX9.`XVXIXIX1.~X5XD.W..Xb..._.m E U % % % L {XA %X>.x.sXe.@.P.P LX6X+ TXIXVXD.HXV.r cXI $ UX4.pXpX+XK.- n.j.x ; ....@ v vXe ^X4 ^X6 yXH cXV.u.uXK.jXK.jXKXKX, 3 3XV.KXV.rXtXt.XXx.XXo.u.r.H ~ 3 VXJXq xX, U < h RX- RX-.aX-X- RX- R RX- R R RX-X-.~ RX,.M t.,X+ $ n xXc.%XJ.5XVXV.u.r.uX*.u.k.uX9XxX*.kX9X9.$.5 N.5XxXxXV.0 )Xl $.u.K 3 :X5 :XVX5X5.ZXc 'X,X5 $.u.u.k.K.k cX5Xo.5 c.k.kX5.k.5.5.X.5 N.5.X.5.5Xo.X.X.5.k.5.X.5.XXoXo c.k c.k c.kX*.k.KX5.k cX*.KX9.KXV.5Xo.5 ( f @X; !X0 H yX> g s (.0 : 3 :XqXeXG.+Xh.EXw.- `X3 VXM $Xl.uXcXX k k nXqXpXqXq..Xn.p.Y $XDX,.iXM 1.9 .9Xp < h x.9Xq._.FXpXr._Xe E x.W U U t.M t.aX,X-.a R RXD.a a.aXDX,X1.aXI.Z R R R R R.ZXD a RXDX,XDXDX1 R.KXV c 3 : 3X-XI R.M U U.MXD UXD.M.MXDXI R R.aXD : 1XD T xX, T : $ 1 R.u.aXD.~.a.aX1 aXI $.KX5X5X1.HX1X1X, aXKXcXK m mXcX.XcXc 1 1XD.a aX- c 3.a RXDX,X,XDXD 3.Z cXl.9Xc T k.2Xw m 1 k $X5Xl :.8X-.uXV.~XIXVX,.u.Z 3.~ R RX5X- R.u $Xc TXKXK.ZXl.Y 1.'XD h.a R.a.aXIX-.e RXDX1X5X. TXKXHX. TXKXKX,X, R $X, R.a 8XD xXD.}.W x $.M.Z.aXD 8XlXDX,.ZX, sXl x x.'XGXcXH.j.O [X+.pX4._Xq.FXn.pX<X,.MXD.u :.u TX5XIX1XIX1 sX7Xq rX%XA.p",
+" x $.wXl x 3XJ ) :.5 cX1.KXK :.KXl cX*.5 3.KXK # R R.a.M a.MX,XI.`X5XJXD 3 YX1 c 5 D.D B $X; 1.M u uXsXnXe C < $ : cXV.5.5.kX-X- # 1.YXn.C.P %.s.s...v 0.4Xi.v vX>XG.MXsXpXfXA.B {.BX6Xf.9X,.uXV.H.K cXDXqX0 M.; S.+.E M M.4X:.P %XqXq x.D.W.W uXi.sX> M c 3.rXIXK.O.9XcX,XD.u 3XV.k.kXV.r.k.KXxX*.r c.H.`XI.8X-.,X..9 1Xe hX,X, <X-X- RX-X- <X- R.aX- R RX-X,XDXIX- R c.a RXc xXKXK :Xc c 3XV 3XV ~XV.u.rXVX* ).KXV.r.u.8XXXtX9.K.5X*XI '.] D T cXDXD $ 3 $.wX5X,.D.Z.'XG.' gX, 3.8.8.r 3.r 3Xt.u.HXVXV.r.H.k.kX5.kX*Xt.kXo.kXt.k.k.kXdXt.k.k.k.u.uXV.r.H 3.HXV ~.HXV ~ 3.HXV.H.uXdXV.8.H.k ) 4 K @.q & o OXLXeXJ $XVX1XD UXG.sXe HXGXG.9.[.- VXMXMX*XX.}X* | VXc [.Y.-.p._ 1.iXcXq 1.Y h hXDX-XIX-XIXDX- h xX+X4._._Xe.mXn >X+._ $ < t t.a t.a R.aXDX, R R.aX,Xl xXIX5XlX-XD 3 $XIXI RXI R.aXD.u aXDX,XD RXDX1X1 # :.kX1.KXI R R.M.aX,.a R.M R aXD.aX, RX-XI R.aX- RXDX- R.ZX-X,XDX-XD 3X1 RX-X-XIX- 3.`.KX5 c 3X1XI RXD.u R R.a R RXDXl BXDXD c $XlX5 $XMXD RXI R $XDXD RX-.aXI $XlXlXl.9 3XD h $.Z 3X1XI.u D.KX9.5XXX5 cXIX-X-XIX5 3 BXI.u RX1 : $ h xX,.MXD R.a t.a R.MXI.a.aXDXD.,.%XIXD R.u 1.ZX,XD RXD.Z.a RXDX1X,XD R 3X,.Z.w.w h g.Y.9 : T.2X,XD xX,X,X,.w.1XcXHXBX< n.jXpXn.p =X+.[X4XpX+.-.YXc [ ` m.,XJ.%XX.K.H.`X1XD.aXJXp._X4 >.J",
+" x $X, 3.a.5Xl.` R 3X1X1XM.u cXl cX5 c :X- ).uX1.u RX1 RXIX1X- RXI.uX- R R $X3 3.u :.uXI 'X.X,.M.M.d J.w.d 1.Z cX1.XXV.H cXV 3.u c $XpX:X8X8.@.J.. 0 0 S.qX>.EXm.Z.MXsXGXf.P.v % { L.PX6 y.ZXI.r.u c 3X,.9XG 0.@X>X>X> HX> ; {XA .Xp $ # R $.M U.) .X>.h.9 h.uXVX,.'XJ 1XI.uX1.uXV.5.8.r ) 5 ).r.r.8Xt.H.8.H.8 3X5.,X.XcXcXG h R R R.aX-X-.a RX-X- a.a R RXD #XlX- RX5 `XK : xXJ., ` # 3XV 3 ~XVXV.r 3.rX5 )X9.5XV ~XVXV.r.rXV.kX9XV.`.].R.'.2.w yXD.ZXK 'XK.'Xw.E.' o o v JXKXsXD.}.r 3 3.rXV.u c.H.HXV.r.r.u.k.kX*.k.k.k.k.k.kXt.k.k.k.KXoX*.k.kXtXVXV.8XV ~XVXV.H 3 ~XVXV.H.H.u.u.8XV.HXo 4XO gXy &XC J.s v h c ( 3.Z.M $ v v 9.E.q y y.,., VX3XM :.a.8.} # #XB [Xp._._ XK 1 $ hXq.Y a.uXIX1.HXIXI.} h.-._Xe._ p..Xe E._._ x._ t.a U < R R.a B.a $X- R.a.aXc.9 m 1 :.,XJ :XJXKX5 RX- R.a h R RX,XDX5 c RXI 3.8 :XX :XlXl R.a R <XDXD.a.aX-.a R.e 3.a RXIX- RX- hXI R.aX-.a R.u R R 3 3X-XI R RX-X-X-.8XX :.KX-XIX1 RX,XI.a RX- R a R.aX1 B.e R aXD R aXI R aXDX-.Z.a 3XD.a.a R.aX-.aXD R.M RXDXDX,XMX1X-XI : c.5XI 3XI.~.uXlXl ' ` `Xl.0 D s aX1XD RX, R.a.aXD.aXD.a.aXD R R RX1XcXNXJ RXDXD cX,XVXDXDXDX, RXD R.a R x c TX,.9X. :.M [XJXwX.Xc.'.wXD R $X,X, UXqXp >X+X+ >X+ XG.pXp.[.-.[X%Xh.T [XZX#.GX.X. )X1.HX1.8 3XI.`.H h.[ .p.T W",
+".M.Z.MXDXD.a c 1 3X1.aXI.uXlXIX-XIXVX1 R 3 :.KXJ Y #.DXI 3 3 ` DXJXKXl.u.w.KX1.`.`X-X1XD.Z R.a.M.MXq x h xX,.ZX1X1 B.`.H.K 3 3.a.}.}XeX4.C rX8Xr.@X+X> v vXG $XDX,.wXnX>.P.B.. JX>.xXf.CXpXDXV.H.5XV.uX,XJ oX+.E.Y o.-Xw =.x . %..._ E .W U U t E pX8 W =XJX5 3.DXIX,.HXD.u.u ~X*.k.kXx.5.XXx ~XVXV 3.H.8XI.8 3 3XH.,.jXw 1 1 t R R RX-X-.a.aX- R R.* t.aXDXKX-X1.~.,.5 3 3.a.u.}.uXI 3XV 3.rXV.r.k.5XxX9.kXV.k.r.HXV ~ 3XV.H.8.u.H.]XJXUXP.!.'XUXa J.!Xm bXL 9 b 0 v b 2XG y.9.ZXI 3XV.r 3 ~X*.u.rXV ~XV.HXt.kX*Xd.k.k.kXt.kXt.kXdXtXtXd.k.kXd.u.uXt.H 3 ~XV.8.HXVXVXV ~ 3.HXV.u.kXVXIXVXx ] g g.>.qXC 9.sXs $ 1 c `X1XDX0 &X4.9 =.9Xl h 3X*XX.,X3XM #XI.a c `.gX+.i._.M 3 #.l.9.FX+.F.M.8.8.8XIXI.a.aX,.pXqXe.i._ < E._Xe._ h hX, t a R.M 3.aXIXDX,XD.aXI R $ R $.ZX,XD 3X1 3XI cXDXI.aX1 R 3XDX,XD.9.9X1 RX-X- 3.5.5 ) c.`.a tXI RX, R R RXIX-X-X, R.`.a.a.a hXI a RXI RX- R.} 3X1.aXI hXI 3X, RX1XIX- 3.KXl c RXI.aXIX,.aX1.M RXD R R a 8XDX1XDX-X-X-XD RX1 RXD.aX1 R R RX1X-.aX-XD R R R.a aX,X-X5XD.`XIXIX* ` ) 3.~ RXI.DXc D.' T :XK # cX1.e RXDXIXD R RXD R.e.a R tXD.aXDX-.3X.XNXDXV 1XD aX,X, RX1.ZXD R.a RXD c :.wXK.' :XGXD h.D.WX, s RXD.aXD.MXqXqXp.Y >XpX+.FX4X4X4XG n.-.} $ ` 1 1XcXHXcXJ., )Xl.H 3XI.H.8.`.`.HXIXI.9.F.YX4 >",
+"XDXDX,.a.MX,.aX, :XDXD.u c 3 #.K cX5 3.uX-.K 3X9 : c q : m.$XX ` `.u.DX,X1 R.5X9X-X1.H cX- 8 u.MXGX+XM <.e #X5.u.`.H.HX5.8XI.a .a.d...PXf wX>X>XrXrXw.M.a.eXD 3XcXKX>X>X6X6Xp.EXeXpX>XrXrXc.u.kXV 3XV 3 hXlXG $.DX1.H.DXKXwXn ..m...d EXn.s pXq.m .XA...@.>.]XVXV.HXV.u 3.8XV ~.KXo.X.k ).k.r.r 3XV.HXV.HXIX1.}.uXw nXw nXw $ < R R RX-X-X- R R R tXDX1 1XD.e ` 1X9 | 3 3.uXV 3XV.rXV.kX*.k.KX9XxX9.kXtXV ~.u.KXV.8.u ~.u.H.8XI.H.8 $XoXa.M.! 9 y y s J v.W OXL OXe.vXn 2.s.sXGXcX,XI.8 3 ~ 3.kXV.rXV.H.u.r.u.k.kXt.k.kXt.kXt.k.k.kXtXt.k.k.u.k.k.kX*.r ~ ~XVXV.HXV.rXV ~XV.HXVXV.u.H.H.H.0XN @ 9 & H o vXL U $XDXI 3.Z.w.. M.j [Xl c.a 3.}.a 3 VXX., I h.MXJ .Y k WXq._ 1.a.` c xXeXqXp U.5XI : 1X,.M u.M h.- ._ Xp uXBXeXc UX,XlXlXcXl ` TXlXK :.M.u R.aXI t.aX-.a R R R.a R RXI.}XD.aX-.aX, t.ZXD RXDX1.aXIX-.`XV.K :XI.ZXI.a.a RXD 3 a.a R RXI 3X-X1X-X-XI.a.e 3.}X- R.a.~XDX,.~XDX-XIXIX,X1 3 3 3XV c c.u.KXDX1.aX1XIX,X- R RX- R RXD R R R R R RXDX- R.MXIX-XDXD RXD R.a.a R R R RXDXI.aXD a 3XD $.a.` RXV.u 3 :XIX1XD $XK x.aXD.eX5.ZXIXDX1 RX- RXDX, R R.aXD.aXD RX1.aXIXDXSXlXN.3 x RXI.a.aX,XI R $XDX1 R.a.aXD cXD.a RX, $.Z.MX,.DXl $Xl $.Z $XD h.9XpXqXqXp.pXr W.j n [ k.3 c 3.Z 3 x.iXJ k.]XlX1XI.`XI.`.8XVXV.`.`XIX-.9XqXq >Xr",
+"Xl.a.aXD cXD cX,Xl.uX,X1 cXl.5 : ).K ).5XIXoXVXVXl )XJ ,.| D ( |.]X3Xl D T.H )XXXt.8 c R.a RXD.9.9 U t 3 c c.kX1X5X5.HX-X1 $ ` C.).sX=X6 JXf 0 M.'.' :XJXK T.] 1XK v =Xr.jXw y $.w.M nXG.<.j ` h.} 3.}.k 3 3XIXDXIXDX1XV.Z.9X>.@.. % %X4XA.v . p.... S.x.EX0Xc c.H.u 3XV ~.rXVX*Xk )XtX*XtX9XV.rXV.u.KX5XI.HXI.uX, kXHXUXwXw.iXDX- R.a RX-X-.aX- t R t.M.9XlXDXlX3.u c 3.r 3 ~ ~.rX*X9 NXxXx.K.rX*Xo.k NX9.kXd.K ~XV.uXVXI.HXIXI.8XIXD.DX,XPXw yXGX0XKX0.j &.j.s.Y.@.j.E.EX0.j s.>.ZX1 3XVXV.HX5XV.r.u.r.kXtX*.kX*.k.k.k.k.k.k.kXt.k.k.k.kXoX*Xt cXd.u.HXV ~.H.H.H ~.8.8.rXV.H.H.u.k.HXIX5 (Xy !Xm &.q.EXnXeX,.wX, R 3 RXe o 2 v.9.ZX1 3XI.a 3 V V 6.%XJ kXc |XH.,.[.[X2.[ :XlXIX,.i pXp 1X,XVXB 1Xp.9XM x E x.Y.YXw.S nXBXw.-XcXHXKXcXc.,.] $ `XJXcXI hX1.a R.M R.a.a.e.aXI R RXIX-.a.u.a RX,.MX,X,XDXD R R.aX1.a.aX-.KXl.HXIX-.a B.a RX,XI.aX-.aXDXIX-X1 RX1XI 3.a R aX-.a R.a RXIX,X- R R RXIX- RX1.~ 3 3 RXIXI cXl h.e.} 3 3X1XDX1.a RX1XDX, R R $XDXDX,.ZXl.ZXlXD 3XD R.a R.a R RX-XI R.a.a aXD.a R RX5X-.` 3XX ) :Xl.e 3.3XNX1XIXIX- aXIX1X-X-XIXI R.` 3 3 RXDXDX1.aXD.aXD.a :XN.O kXN $ RX-.aX1 3XDX, $ aX-X,.~ 3 R $X5X,XI.Z h xXl x $XD.w $.Z.a.M.MXeXqXp k W =.[X<.j.S gXcXJ 'XV.`.8.u hXI c c R 3.8 3.`.`XV 3.8XIXIX1XD $ X4._ . >",
+"XlX5X5 cX, 3XD.a 3 TX,.u.5 ).8.8.` 3.5X*X*.u 3.H.5 ( TXd.H.`.H )XJ.5 : ' T.HX5X9XV 3X1 R RXeXq.YXp.MXIXc ).~X1XVXxXlX- 3.a U tXe.m.v ^.@.@ oXm.nX,.'.uXl : T 1.].- 1 MXHXH.YXJ h.YXc.9.[XH U.i 3 3.KXlXV.KXV 3XVXV.HXV.H c ` =XrX6.CX6X6.4 HX2X> 0 %.x.y.E.q.].HXIXV.8.8XV.u.r.X ).r.r.k N ~XtXV.u.k.2 DX5.5.K :XcX#XHXw [Xc $ R RX- RX-.a R t R R R R $ c.a.}XD 5 #.uXVXVXV.kX9 NXx.k.kXt.8 ~XtXtXkXxXxX9.k.5XoXVXx I.u c.8 :XV c.8 : g =XK.nXGXL =.T yX% [Xh._ [.O nXh &XUX0XK.]XDX1XV.H.H 3.k.r.uXtX*.kX*.k.k.k.k.k.k.k.k.k.kXt.k.k.k.^.k.k.kXd.k.k ~.r 3.r ~ 3 3XVXV.r.8 ~ ~ ~X5X5 DXyXU ! g & &.E vXGXlXGXD R.}.M.-.Y b JXCX5XDXIXI.8.}.8X3.,., .,.} $ 3X3 :XB kX+._.l : c.a.a E E xXp.M.a hXG.Y xXp XpXr XhXB x x.M xXD #.aXD R `.a R R RX1 3XDX, $ h R R R R aXD R a.`.a R RXDX,.aXDX- R $X,X,.a aX1 RX-XI.` R $.k.KX-XI R.a tXI.aX, B.aXI.aX- R RXI 3.}.aX- RXDX- R R.aX- RX,.a.a R R R RX1 3X,XIX1X1X-X-XIX5 $XMX1X-X,.aX-.a.aXI R k c sXcXDXJXcXKXc `Xc DX, RX, a R R.~.aX- RXI.e.a R R R RXDX1XI.u R 3.aXV.`X-XI.eXc KX,.aX-X1XDX- R.5 c R RX1XD RX,X,X1XI.aXIX1 RXD a.OXc aXD KXh c.a.aXD.a RXD 3XDXD.a.ZX,X, : cXl.ZXI.MXDX,XDX,X,.D h.ZX,X, < x xX+XGXe 1 1XK ' $XIXDX1.H.`.H.` R c cX1XIXIXI.8X1.8XVXI.H.r.8.8XI.a 1X+Xq._ .._",
+" T 3X1X1X1X-XIXDX5XI.u.uXIXoX9X9.5.K 3.r 3 3.kXl.K.kX1XIX1Xo g (XM.u.u.ZX1.`X1.`X-XI.a.a.N xXGXGX,.a x )Xl.k.uXVXI 3.a.M <._ y.. vXn.j.jXL x UXD $XIXIXDX1X1XI.aXIX1X,X,X,.u 1.w.9 $.9 :.' x cX, 3 T D.H.u.HXVXV.HXV.r.H.u.Z =.T.T H z.;.TXrXh = J ^XiXf.;Xw m.K.8Xt.8 ~.r ~X* ).K ~.uXX )Xo ~.r c.K.K.].] ).]., D K.j.jXUXG t.a R RX-XI RX- R R tXD $.9XDXK mXJX5.K.H.H.kXkXxXoXt.X.kXx.k NXk.5.kXk.5Xo.k.kX9.uXI ( 5.2.| D.| q D.2Xc DX.Xc &XG s.9 oXG h vXB n : xXc hXKXwX..nX,X1.H 3.HXV 3Xo.H.rXV.rX*.kX*.k.kXt.k.kXtX*.kXd.kXtXt.k.k.K.k.kX*.k.uXtXV ~XV.r.r ~XV.HXVXV F 3XV.KXI (X$ !.' b.>X0XCXLXeXs.w 'XDXD.aXM y v 2 O T.HXIXIXI.`XM DXX .5 c.,.5 `XMXM.-XH.[Xq xXn.}.a.a.M $._., 1 $XD.a hXpXqXe ..FXnX4X+.Y 1 x.a.aX,X,X-.aX-XIX- RX1.aXVXDXIX, R.a.a R RX- R R R RX-XIXI.u 3 RX-.aXD h.Z 1 T cXDX,XI B RX1.u 3XlX- R.a.a aXD RX,X, R R R R.a a R RX-.a R.a R R R R RX-XD B.Z R R RX1.a RXD B.uXD 3 $ : TX..u.aXl hX-.u RXI a $Xc.ZXlXlXlX,XD.aXDX-.a R a RXl.%.3X-X- 1.Z.] h : $XlXl : :XD RXD R.uX1XI cX- h RXI R :XNXI.aX1 R.`XIXI :.8X5.u R.`XIXI.Z 3 RXlXlXl 1XlXJX. :.MX,X,XDXIXD.aXIX,.Z $X5X, $XD.aXI.a $ RXI.Z.ZX-XD.M $X,X,.D $ R RXeX,.iXnXcXe.}.MXVX1X1X1XI.8XI.`.8XI.8.8X1 3 cXI.8X1.8.H.HXVXV ~XVXV 3XI.a h.YXpXqXqXA",
+"XD.a.a.a 1X-.DXc 1 RX,X1XlX5.K.5 3X* 3X*.u.K c.u.`.`XI.` :.5 $.8.~XIX1.HXIXI.`.`.K c t.ZXe v x U R #.ZX1XIX-X-.aX- a.M t.Y HXnXnXn y.j.jXcXc h VXlXV c :.Z.H 3 3X1 3 RXDX,.9XK.YXcX,X, 3XVXlXIXVXI.u.u.H.u.HX1.HXVXV.H.HXV cXc [Xp.@.E 0 o y XqXr.@X4XfX+Xw.].r.8XVXV ~ 3.r ).5 ~X*.rXt ~.8.K :X9XlXV ) : :X5XM 1.3 xX, 1.M.a.a.~.a R RX- R R R RXDXc.H 1 :.u.K c.kXVX9.5.u.r.kXxXo.rXkXxXx.XXx.k N.k.k.k.k.X.u.r.u c.5 c )X5XJ ) `.5.u T.'.O.O.9Xe v x v.9XL x.Z cX1.' DXJ.'X1XIXI.H.8XVXV.HX5 3 ~XV ~X*.uXt.k.kX*.k.kX*Xd.kX*XdX*.kXtX5.^.uXd.kXdX*XV.rXV ~ 3 ~.u.`.HXV F.u ~.H c.2 K @.q.'.9.> M.q b yXs C.W x.M.M <XG 2.v 0 s.` 3XI.`XM.$ `.5 : c h 3XMX5XMXc V V.1 Xq .W <.}.a h $.9 1.Y x.Z.} 1.YXeXe._ .._Xe._ h RXI RX- 3XV 3X1 RX-X-X- RXDXDX, 3XD t R R R R R.aX-X-X- R.aX,.aX-.aXD.MXD $XD R c R R 3.u 3 3.uX5.K.e `XlX, c 1 1XlXc :X,.aX-.a.a.aX-X- R aXI a.aX1.a R s RXD RX, R R RX1X1 3XlX3 TXJ :.' :.ZX,.aX- c $ 3XIX-XI cXDX5XI R.aXDX5 $ cXD t R $ $XNXcX. :X, T.,XJXlXKXc., xXKXcXD.aXDXDX1 x a.u RX-.u.~ R.5XS.ZXI.aX1.aXIXl :Xl ) cX3 cXI.aX1 c., D `XKXD $.e.a RX,XD.Z h $X, cX,.uX, $.a 3 R.aXIXDXIX,.DX,XDXD c.aXD R.DXDX,.ZXD.a.aX, 1._.pXp RXIX1.8.8.8.8XIXIXI.`X1.`X1.8XI.`.kXV.H.8.u.8 ~XV.8XI ~.8XI 3XD.}X+XnXqXn",
+" UXs.W.Y U.MXq xXKX. n 1XJ.Y `XK `.KXK c.Z cXIX,XI RX1 ` D 3X1 RXIX-X-X-X1X-X- 3 hXDXeX, xXG u < h cX1X- R 8XI.a.}.a Xe v pXn.YXc.Z.ZXlXlXlXH V VXX.KX5 ) (XJ.]XIXDX,X, yXKXKXGX,.DXIXVX*.HXV.`.ZX, 3 3.H 3 3.K.u.8.rXV.H.DXlXw yXr ^.vXnX>XM UXpXr.h MX.X,.8.` 3 ~XVXV.r.K ).r.u ~XV ) ).u.kX9 )XJ.R.2.$ D 5 5 I.GXwXcXUX, RX-.aX-.~.a R R aXD a :.Z $Xc D.% c.KXoX9Xo.rXo.k.X.XXd.kXo.^.k.kXt.k.k.kXt.k.K.5XtXV.H.r.HXV.u.HX5 3 ~ 3.`.' T.O.OXm.'.! s vXaXL sX5Xd D.X.ZXI.`XI.HXI.HXVXV 3 ~.k.8.rXV ~XVXVX*XtXtXd.k c.kXdX*Xd.kXdX*.k.k.K.kX*X*XV.r ~ ~XV ~.r 3XV.rXVXV.H.H.8.8.|XJX.XO.'.q.+ & MX> b.9 v.Z.M 1 1.M.W.W 2XG.'.Z.HX-X*XX 5 kX3XJX, # :XD.uXD.5 1.-XH |X7 .[ E._.M $.} cXc EXe 1.Y.Y.9.YXp E UXq._ h $Xe.a R.` R.a.aX-XI 3XIXIX1XIX-XDX,X, c R.a.aXI.M R R.aXI R R.u 3 B.a RXD.a.Z hX,XI.a hX- RX1X1XIXI.uXlXl.u.9.,XK # T `Xc 1XD.a a R R a.a RX1XI.eX1XD.eXD.ZXcXlXD aXDXD.a R $XK.2XKX1X5X, R.H T.wXI R.a R 3.K $X1X-XD 3XD h $ c 3X,.a.a $ cX5 3X-XNXH.ZX,XJ $X,XD 3.a R RXIX, 3 RX-X1 RXDXI.Z.}.uXIX,XDXIX,XN 1.eXI.aXD.5 3 3.uXl `XV : : :XIXl TXc m m k m.9Xw : 1 $X,XlXDX1XDX, $X, RXDXD.Z R.aXD R cX-XD 3XD.ZXlX-XD 3.Z.H $X, tXD <Xq.FX4 .} R.` 3.`.8.`.`.8.a.8.a.HXI.8.~ ~XI.K.uXV.8.HXV ~ ~XV.r 3 ~ 3.`.a ._._",
+" .Xn._ v._Xn.i.WXe._.YXe.Y.9.Y.-Xc 1X, 8 R.'Xl.Z a 3Xl #X, R RXD R RXDXD.u c c.e hX, <XeXG.dXe h cX3 R 8.Z RXl.}.M <._XL..Xn.YXpX, RXIX1X1XDX,.a.a 3XI.u.u.DXD.5 RXI.`X5 1XGXDX1XDXD 3Xl (.HX1X5X+ y.Y X,.a.}Xl h 3.u.HXV.H c n.Y.EX>Xi.. ..pXe UXD.'XyXlX-.u.8XV.8XV.rXV ).k.8.r.r.kX9X9X*X5.k.u.r.u.uX5XV c cXlXHXJXw.M R R.aX-XI.aX- a.aX- R.D 1X, )X. ]XXXV (.k.k.u.kXx.r.k.kXt N.k.k.k.k.k.KXtXo.k.kXoXo.u.8X* 3 3.u.8.u.8XVXVXIXI.u $Xl.w s.' y sXL.'.'.0 ( (.H.`XI 3.H 3XV ~XV.r.rXV ~.K 3XV.r 3 ~.rXV.rX* c.k.k.k.k.u.k c.kXtX*.k.k.uXtXV ~ ~ 3 ~XVXVXV.8 ~ 3XV.HX1.5XoX5 4XyXwXP y.> HX0 0 bXLXL sXD.MXw.>.YXsXs 9.E 'XV.8 3 ) 5 V.G kXcX. m 5X1X. ).,.% | |X#., [X+.F U.i.aX-XIX,XcXq p hXe._ E._ tX,.M <.aX, 3.e.aX-X-XI R.aX1 RXDX1 R RX-XIX-X,.a R.a.a.a.aX- RX1XI RXD 3 R.aX-XD RXDXDXl aX-X, R RX-.aX1.a.` #X3 `.a aXI.a R.eX- xX-.a.a.a.aXD a RX-.a R.aXI xXJXKX5X1 tXD cXlXl T.2 $X1 RXDX- R '.G.3X. tX-X1 R.aX1 # : $ c.Z.aXI R.MXD.aX,XD.a.a $X,.a.,XNXNXcXI 3 RXD R R.aX-.a.a.uX, R.aXDXD cX5 cXIX, R 3XD :.GXc.ZXDX-X1 c R R 3X1X,X3Xl `Xl.9 $XV 1XD $ ` $XlXc :XcXKXJ k.ZX,X,XD.eXDXDX1 RX,XDXIXD h : 1 $.Z.Z.9XJ T.9X1XDX, $XIXD <.a E.FX+Xp < 3 3.`.8.` ~.}.`.aXI.}X-.8X- 3.` 3.H.k.uXVXV ~ 3 ~.r 3 ~ ~.8X- 3 $.Y x._",
+" %.......<XnXnX4XnXnXGX+ vX4X+Xp $Xs.M.M uXK.9.Y.YXc.-Xh $.}.M.MX, h.aX,X,XIX3 1X,.MXe s.W hXD.a #.eXI RXw.ZXc h._Xn.Y pXG y.MX,.aXI.8.HX1X5.HXD.}XI 3.`.H.8.HX1.H.8.HX1XI R 3.D.HX1 '.2.'X,X,X>X4X6.JX> >Xn . >.- h.}XV.8XV.u 3XM E.j .Xi %Xp.<.M cXD gXd.u.} 3.r 3.HXV.r ) ~XtXt.k.XX9 N.k.k.k.K.kXV.kXd.kXV.H 3 T Y.9 tX1 t a RX-X-.aX- R.a 1Xl.Z $ m.% (XI q.5X*.r.X ).5.k.k.kXtX*.k.k.k.k.k.kX*.k.KXtX9.KXt.HXV ~.HXVXVXVXV.8XV.8XI.8 3XIXDX1Xl.'.0XK.0.'XV.8.`XV.8.H.8XV.8XV ~XV.8XV ~XV.K ~XVXV ~XVXV ~XV.rX*.kX*.k.kXd.k.kX*.rXV.r.r.H ~XVXV ~XV ~.H 3 ~XVXVXV.H.HX5 (.|.2X$.GXy b &.q 9 y b.w.wX, tX,.MXG v.= 2 v.'.Z R 3.5XX., V ) | ) ` :XcXJ IXl.| 'XVX3 | D k.[.pX4._ x.a 3 : h xXeXe p._Xe h U.a $.a 3XI.~X- c.ZXIXI R.a.a RX-X-XIXDX- R.~.aX-XD R R R R.a.aX1.a RX-XDX- 3X,X1 RX-XDXD.Z 1 D h.u.aX- RX1 BX-X-.aXI.K ` :X1 RXDXI.a 3XD.a RXD R $ xXD RXDX1 3.] $Xc c R RXlXD `XcXc.ZXIXD 3XIXI 3.a.3XHXD $ R RXDX-X- R RX5 cXD RX1.a R.aXI R.a.a.aX1XDXDX5Xl $.,XNXD.ZX-.aX- RX-XIX-XDXc.9 T :XUXc T.,Xw :X-.uXDXD h R R RX, c $ :.Z.u cX,.uX1X, c $XlX-XD R $ R.u $ a.a.a.Z $.Z $ hXIX,X,X,XDXDXI 8XDXDX,X5XlXl $Xc m kXcXJ.,.9 3X-.D.uX, t.} RX,._ >Xr.}.M RXIX-.8.`XIXIXIXI.`.`.`.H.`.8.`XIXI.kX5.8.8.u.8.8.rXV ~.r.HX-.a 1 ._",
+" % * pXp p pXpXsXe.WXpXe v vXp vXn xXGXG sXr v n.-Xp 1.YX+.[.YX+.Y t.M.a t $Xc.MX,Xe.Y oXeXD RX,XI `X-.Z $.9._Xw W z.jXr yXD hX1 3XI.H BXdX1XI.`.}XI.8X*.HXV.H.8 3.8 ~ ~ 3 cXV.`.`XDXcXKXD.M x.< { {XbXAXf.<Xf . >Xc h 3 3XV.` # c.a s o.<X>XfX> 1 3.HXdXd.r 3 3XV 3.r.8.r.KXt.k.k NXxXxXo.^.k.k.r.K cXd.u.kX* 3 3 cX..MXD aXDX- R R aX-.aXI.e aX5X5 4.% :XVX9 ).r.X ) NXt ~X*.k.k.K.k.K.k.k.k.k.k.kX*.kX*X9.u.rXt.8.u 3.u.8.H.8XV.r.uXVXV 3.8 3.HXIXl.`XVXV.8XI.HXV.H.8.u.u.8.u ~XVXV.H.rXVXV.k 3.H ~ 3.H.r 3 ~XV.r.uXdX*.u.r.u.rXV.H ~XVXV ~ 3.8.H ~XV ~XV.H ~XV.~ 3.HX5Xx (.2 ] ! @XLXm.+.E J O vXG y $ $.9.ZXe o.EXL y.a.D 3 c :.f.$X3XM ` RX- x.5XX.KXdXVX9 3 a c q }X3 k.pXqXpXMX-XI.8 $ a < u < U.a <.a.a.u.uX-XDXI.~XIX,X,.a R RX-.a RXVX,X-X1 R.a.a.a a.a R.a.a.a R.aXI $XVXD R RX, RXD RXDX1 1 m cX-X1 RXI R R.aXIX-X-X-X1 cX3 3X-XIX-X-X5XcXNXl 3 :XN $.a D :XK TXDXDXIX,X3XcXKXc h.uX-X,X- R 3XI.aXI 1XNXNX. 3 R.aX-X1 RX1 3X. $X5 $XKXl TXK.MXD.a.a.a 3X, 3XN.,.]XH aXD.Z.eXIX,.}XD.a.e.Z $ $.a.ZX, 3XIXI $X5XD $X5 $ $.ZX,XD R c.DXIXD RX1X,XD.aXI.a RXDXDXDXI hXDXl $X,XDX, 3X,XD RX5 3X5XlXJXcXc DXc.ZX,Xl ` D :.Z.ZX, T.M.aXD cX,X1 $XDXI.M < U._.iXrXcXIXD.HXVXl c 3 3XI.8X1.H.`.8.`XIXI.8.8XI.r c.u.8XV.r.8XV ~.8XVXI.aX,.Y 1",
+"Xe.)XG.).M U.M.MX,.Z C t.M.M C.M._.1Xe E vXr v vXp yX+.pXp.EX+.E.-.W.WX, $ $.} U x.jXGXs t R # ` :XI c h < RXe 2...@.jXG U.a :.K cXD.K.k.r.H.rX5.H.HXV.HXV ~ 3 3.r 3.rXV.`.8X1.}XI 3.5X1X, U EX>.. ....s.sXiXiXAXfXr.9XIXI ~ 3.K.8.uXDXD.DXq.9XmXM.rXVXdX1 FXV 3XV ~XVXV.K.r N.k.k NXk.z N.^.k.k NXd.kXd.5.u.k.uXI cXHX5X1.M.eX-.aX-.a.a a t.a TX,.3.5.u.HX9.5.X.k.XXk.KX*.K.k.k.u.kX*.kX*.k.k.k.K.k.k.k.kX9.r 3.H.u ~.H.8 3X*.HXV.H ~.8.u ~XVXV 3XV cXI.u ~XVXV.H.u.HXVXI 3XV.8 3XV.H.HXVXVXV $XVXV 3 ~XV 3 ~XV.r.HXV.r.H.r.u.rXV ~.H.8XV.r 3.r.H 3.HXV 3.H.H.HX1XV.H )XJ.2.2.2.0 g.0 s.9X0.q J OXe.M 1 R.wXH.9XnXs o y vXD.uXI 3 DX3XMX3XM.}X, hXI.`XX ).$ ~X*XX )X*X* |XJ.-.pXq.m h.a.aX-XX cXI.a.}X-.e.aX-.} RXl RX- a RX1 R.a 3X, 3X1XDX-XDXI BXI.a.e BXI.} R.a R.a RX-.aXIX,.e.aXI.a $ c.wXl $ $XI 3XD.a R R R a R RX-.a.a.` 3X-.uXl cXIX1X- 3 3XNXlX1XDXNXlX-XI., c.a R a R.eXK : cXDXIXD 1.~XIX-.aX-.aX-.ZX5 mXNX..e R.a R RX1 BXK.%XJ TXc : $ $XD h RXD R.aX-X,XcX.XHX5 hXDXl x cXDXI $X, 3XIX,X,X,X,.Z.Z h 3 3 hXI RXV $ 1XlXl $.wXc RXIX,XDX-X, $ R.aXD.a aXI RXD.Z.ZXD cX5XDXD $ R.a.aX,.a T 1XJXcXcXcXlX5X,XDXDXD x RXD RXDXD RXD B 3 c 3 3.a.a.a.}Xp E [ vXc.uXl.0Xx TXlXD.8.r.r F.H.`XI.8.H.8 3.`.`.kX*.HXVXV.8.r.H.H c.5Xl h.j ",
+".)XnXe UX, RX5 $X, R R.a.a RXD.M hXS.Y u U.) UXeXpX+.YXLXe.s.s.s.E.Y.YXw.[Xq 1Xq.Y &Xe.s $.w.9 :.M U t h x._.@.@XC.j...MX,X1.X : 3XI.k ) F.`.5.uXx.`.HXx.K.8 3 #X9.u.8.u cX*.a 3X1.u.8 3.a.MXpX4.....).sXnX4 v 0 O.@.j.M 3.aX*XVXt ~.HXV 3 3.MXl c DXd.r.H.u 3XVXV.H.HXt ).k.k.k.kXj.k.^.kXt NXt.k.^.k.k.k.k.k.rXVXDX.X..Y.a t.a RX- R R R R.a : c : '.HX9Xo )XoXkX9.k.k.k.kX*.k.K c.k.k.K.kX*.k.k.k.k.K.^.k 3.r.rXI.r 3.rXV.H 3.H ~XV ~.u ~ 3XV ~ c.u.rXV.H.H.HXV.8XVXVX*XV 3XV.H.rXI.HXVXVXV.kXVXVXVXV.HXI ~.uX*XV.8 3.H.H.u.H.H ~ 3.rXV.u.H.8XV.H.H.H.H.H.HXIXIX5Xl.2 ] m.2.> @ g.w s &.>XC 0XL.sX,XDXDXJ =.wXL.EXG 9.aX1 3XV 3 VX3XMXM 3.a.u.}.8.aXVXXX9.8.`X9.K.f q 5X3.gXB._XeX, <.8.`.5X5.5.8.~.aXI RX-X-X, h.aXI R.a R R R R.aXDX,X5XD R c R a R R 3 $ c c.aX- R 3.uXDXI.a.ZXIX-X1.,XN.3 K.G 3XD c c R.a RX-X1XD 3.eXIX-X- R.`X- 3 c.5 3.`X1XMXNXJ.u $XN DXJXcX5 c $.uXl.KXH $ 3 cX, 3 3 3XIX-X-X-X-XI a D kXD D k R 3X, 3 RXIX, cXlXK.ZXl.' :.'.Z $ R.a.aX-XDXDX-XIXD.Z cX,.uXlX, cX, 3 c x 3 R.M R B R R R RXDXI cXD.eXK.9XK T TXlXlXlXDX1 $X,X,X,XD RXD RXD.aX, RX,X,.ZX,.ZXlXD $ RXDXD $ RX1.ZXD.Z.Z.eX1 8X-XDX,.Z $.Z R 8XDX1XD RXIX1XD $XI.a.a.aX,._ v [ R.0.] g ).Z 3.H ~.H.H.r.H.8.uXV.8.8XV.8XV 3X-.u.K.HX* :X9XX.$.] `.3 :.,.Z",
+"XrXG UX, h c.} R R.M <.M.aXDX1.~.% m.O t._.M h ` x.KX5 cXD B.M tXD xXhXc.WXG.jXnXp v._.9XrX.Xc.YXG.@ v._.s %.s vX+.W R.M.a.aXV.HXIXI `X5.8.8.5.K.uXVXVX9X5.8XV.5 #X*.8.u ).K 3.`.HXdX1X1X, >Xp 0.m.s h < h.M.N.s O o y.WXDXI.u ~ 3.r ~XV 3 3 cXD.5.2.H.H ~XV.rXV.r.H.r ) ).k.k.K.^.k.K.k.k.^Xt.k.k.k.kXd.kX5Xo.uXI c DXH.9XD.M R RX- < R < t.}.u R ~.k.kX9.r qXX.k.k.k.k.k.k.k.k c.k.k.k.k.k.k.k.kX*.k.kXo.K.r.uXt.8Xo.kXVXV ~.H.rXVXVXV ~XVXV ~XVX*Xd.HXV.rXV.r.uXd.u.k c.r 3 ~XVXV ).5X5.HXV :.HXVXI.8XI.uXI., ) ` DXK.$ $.$ ) 3XV.8XV.H.uXV.8XV 3.rXV.8.8.8.HXo ].|.2 mXw g !X.XPX,XP g &.q J.s.W U 3 R.ZXs.s.W b.9XDXIXD 3 3.} c., :.K 3 3.KXI c ~XVX9.8.`.8X-.KXx V., |XpX+XqXeXMX-XI ~XX.k.KXV.~.`.a.~.a R.u.aX, a.a R R R R R R.a R., :X5.- :XK :.'XJXcX.XKXJX, hXI.a.} 3X1 3X,X1X-X5XNX, $XN.ZXD hXl hXD aXD.a R 3 R.aX1X-.` R.a.`XIXVXM.K `XVXN.2X, cXNXJ 3 c $.a 3X1X- R 3.5X, RX-X-.a R.u R.a.`X-.}.~XX 7 KXHXD.a R.9XK.9XK.9XcXw TX.Xw TXlXKX1XD $.Z $ c h $X,X,.Z.aXD.a.a.aX, R RXI.a RXI.uX1 RX-.a RX-.aXI.a.a 3X, RXl 3 $ RX,.uXDXl R 3X,X,X,X,X-X1.aX1.MXDX,.aX,.ZX, $ $Xl R $ RXDX5XD.aXDXDXV $XDXD.a R.MXDXl.ZX5.`X1XDX1XDXIX-X1.aX-.a.a a.}X,XqXqXK.MXDX,X5.`.`.H.H.H.H F ~XV ~.8XV ~ 3 3 3.8.K.5 ) :.|.|.5.] 5 D qXl c.5XD 3",
+"Xn.M h.}X- R RX1.a.M.a.a.a R.D TX$.GXNXl.M $Xw x c cXoX5.K : $ c.aX-.SXN $.NXhXpXe E.W.W.YXG.Z.MXeXq p % ... ..jXG $ $X, h 3XV.H.8XV.u.8.`.`XI.` 3.HXIXV.`XV.8 #.uXIX-.k c cX1.HXd B.HXlXpXr . % v U <.a :Xl.M.w.s.vXp.pXc.- :.` 3.H 3.rXV 3XI.u.DX5.8X* 3XV ~.8.H.u.k )X9.k.k.kX*.k.k.^.k.K.k.k.k.k.k.^.5.k.K.k.u.u :.%XJ $ a.} R.a t < t.aX,X-X5 5.kXx.rXV.5.5.k.k.k.u.k.k.k.k.k.k.k.k.k.k.k.k.kXd.^.HXx.k ~.H.rX*X9Xx.H ~ c ~ 3XV.H ~ 3 ~.HXV ~X5XV.rXVXt.u.k.k.u.k.kXt.uXV ~XV ~ :.K.$ D 5 DXJ 5 ) D I ,.% :XlXJ $ `X3.Z : ) c ~ 3.8.uXV.8XVXV.HXV.H.HXV.r ( ] ] ! m !.! sXGXc s.ZXK 9XO & o.B 2.M RX1XD C.N._Xn ' R.`.8 3 c.a $ V ` :.KX-.KXxXM.rXX.rX9XX 3.8.rXX V.[.SXq $ hX-.a.K.`.K.uXV cXI.`X1XIX- R 3XI 3XI R R.aX- RX1.aX-.aXKXcXJ m $ :XcXlX5 :XK $ $X-.a RX- R.aXI R.~ RX1 $XNXJX.X..MXD :.- $X,XD.aX-.a.aX-X1.~.a RX-.~.aX-.a 3.a.uXl Y 6 3X,X$XJX-X-.a.uX- RXIX1X1 R 3 cXlX,XIX-XI.~X-.a.`X-XIX-X- RX-XIX1.M $Xl x h $XlX,Xl 1XlXlXDX,X,XDXDXD R.aX- RXI.a.aXI RX-XDX-X- c a RX-.a 3 RX, $.u RXI R.` aX- R.aXIX, aXIXD.u `XD 3.a :XIX,.ZX,X,Xl.ZX, cXlXlX5 n $Xc h $ $.Z xXD R.a x.ZXD RXDX,XD.ZX1.a.a R UX,X,.D.ZX,.u.D $X,.ZX,.aXI.a.a.a.MX, 1._.- UXDXIXIX5.H.` ~.r.`.u.H.8 ~XV ~XV ~ 3 ~XV )XJ IXJ.2 D.5 'Xt 3XV 3XV.8 3.H",
+"Xs U t.a 3 $.ZX,X,X, 3.} RXIX, ` : x.3.1.Y xXD 8 RX1.`.8XIX- 3XI.aXD.% tXh K.hXs u.a U U.M.a < R R C *XbXb . y.9XN :XI 3.H.`.8 3X1XV.`X1.8.8 3XV.K c.H 3XVXIX* 3 #.uX5XdXV c 3.5 cXo.uX,X+.x.@ O.M.M R RXI.u.M t u...s.sXr $XD 3 : :.`.`XV 3XV 3XoXV.HXV.8.uXV.r ~.kXxXx.k.k.k.k.k N.k.k.k.k.k.k.k.k.k.kXx ).&.% 5.| k I.3 Y mX. Y.3 KXw h <XDXHXxXx.5.kXxXx.K c.k.k.k.k.k.u.k.kXdX*XdX*XdX*.kX*.k.kX*.k.kXV.rX9Xx )Xt.`X*.H.8 ~XV ~XV ~XVXV.uXt.k.5.k cXdX*.k.k.k.k.k.u.kXd.u ~.HXV.8XV 3.H cXV.HXI.H.u.`.5XV ` :XcXK ).u 3XVXVXV 3 ~.` 3XI.`.8.8XI.8.u.H.8Xo ] ] ! ] gXK T =Xc.Z.w.9 s TXm.>.q w 0Xa.'XUXD.M.w o v.9XIXVX-X- VX3Xl V.%XMXX.kXX ).5.uXXX* 3.$.KXXX3 # [.-.9 `X,X, 3.5XVX1X1X-X-XIX* 3X5.e RXIXDXl RXIX,X-XI R R.a.e RXDX-.a.a BX-X,XI.eX- R.aX-X,X1 RX-X- R.aX-X-XI RXI.a 3XNXl $XNXJ a.aXDX,.u c.a RX1 R RXI.a.~.aXDXI.aX-X- RX-X-.a.~XKXDX-X- t a 3 a.ZXD 3XD 3X,XI.u 3.u.} 3X5 ` cXDX1Xl c 3XIX- aX-.a a R R.MX-.a R R a R.aX,XIXD $X,X1 RX1.aXDXD.a RX- R aX-XD a RXI.e 3.M c 3XD.Z c RX1XDXDX-.aXI.aXI R R R.u.a c $ 3.aX1.M RXD $XlXD.-.9XlXVX,.ZX,X5.aX1X,.Z.a.Z h.Z $.ZXD.ZX, xX1XDXD c.9Xl :Xl g xXJXK k D TXD RX1 RX,.aXD x.a.a RX,.M._ .X7 x.a.}.8.`.u.`XI 3XV.8.u ~ ~ ~.8.8.8.8.8 3 3.rXVXIXV.Z.5 ( TXJ ) I I.] 5Xc",
+".M.M.aX, c.a RXD.a R RX- aXIX1.aX, h.MX, 1Xe.*.M R RX-.e R 3 3.a 3.$XS :.'XSXH R <.MXD.aX- RXIXDX,XD.W.sXn H x.SXw YX-X1.`.`XI.` 3 3XI.8 R 3 3XVXDX$ Y.3 )XIXI.`X- B.8X1XD.HX3.K qXX s U.j HXpXn : '.D.DX,.u.i h U.m.. vXr.M.a c `.D.H.`.8XVX- TXx.8.rXVXI 3 3.H.u.5.R.k.k.kXo.k.k.kXt.k.k.kXo.k.k.k.^.k.k.k.kXoX9.kXV c IXH.2.%.,X. nXK $.MXD `.u ).kXxXgXx.k.kX*Xd.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.uXtXt.k.r.k ).8XV.HXV ~ ~.k.H ~ 3XVXV.r.uXt c.kX9X*.k.k.uXd c.k.k.kXd.k c.rXV.8.u.H.u ~XI.k.u 3XV.8 3.8XlXI c.u 3.Z 3.Z.H.H FXI.HX1.H.` 3.8X1.`XI.H.8XV.u.r ]Xy ]Xy gXU = [.Z $.u.9.Z y.n.qX0.q 0 vXa R RXs.WXe.E.ZXI.~ 3XI : :X3 ,X# } IXM `.$XX.K ) I., 5XXXX.[.,XJ .9 1.uXV 3.u.k 3 R h c 3Xl ) :.KXIX-.~X,X-X- 3 R.aX- R R.aX-X- R aX1 3 h cX, 3 hXIXIX,XD.a R R R.aX1.aXI a RX- R :X$X.X, `.%.YX1XIXD x.MX,X,.aX- R RX1.a.a.a R.aXD 3XI hX,X,.uX3X5 cX, c 3XD 3 cXIX-XDX1.aX- R.a aX- RX- R :XIXI.K.uXl :X1 c R.eXI a.a a R R R R.a.a R B h RX1 c $XI R.aX-XI.aXI.aXI RX- R.aXD aX5.M.uX,X-XIX- R cX1XI cX-XI.e RXDXDXDX1 RXD :.u.Z RXDX-XD RX,X,X5Xl.Z : $ x :X, RX,.M.wXe.Z t.9 $Xl.wXD.Z.ZX5XDXD.D : T :.' 1 :.ZX,XDXD.aX,X,.M.M RXDX,.M.a $X,X,XJ U._XqX+XM.aX- 3.8 3.u.` 3 ~ 3.8 ~ ~XV ~XV ~XV ~XV ~ 3XIXV 3.k.2 IXJ 5 (.0X9 :XV.k",
+".a.aXDX, RXD R RX1X1 RX-.8.a aXD h.M hXG E t.M C R R.MXIXI.aXI 3 3XJ.,Xl :XKXw B.a $ R.aX, ' 3 3.HXD.sX>Xp.EXwXSX#XSX, 3XI.HXIXI.uXIXI.}.`.8XIXI.` 6 :.DXN.5 3.aXI 3XI.`.kX5 3 3 3X,X, oX4X>.j v.aX-.`X1X1 x c U.iXp.;X0X>.Z c.u.Z $.u c c $XK.2XK.8XV 3 3 3.u.H.kX9 )Xd.k.kXt.k.k.k.k.^.k.k.kXt.^Xt.k.kXt.K.kX9X5.kXlXVX5.uXIX, : 4X. m.9 : T $ ( ~ NXkX5X9.kX*.kX*XdX*.k.k.k.k.k.kX*.k.k.k.k.kX*.k.uX*X*.5.rX9.u.r.H.r.uXV.H.rXV.r.r.uX*.k.k.k.kX9.r.k.kX*.k.kXd c.k.k.u.r.r.H.u ~.8XVXV.HX5.8.u.` 3.H.u.8XIXV 3XVX,.HX,XV.HXVXV.`.`.8XIXVX1.8XI.8XIXV.8XVX9.2 ]Xy !XOXU s x x h.ZXK :XG g.jX0.E 0 2.N T.a x.W.=.n.9 UXIX1XI 3X,XI D.,.%.%.% } I D.KXXXX ) DXXX3.gXpX+ yXpXc `.u ~XV 3X5.u.a a.a 3.uXD B $X1X1 3 : 3 3XD a R R RX- R.aX-XI hX1.aX-XI.a.~ R.} R 3X, RX- RX-X-X-X-XI 3.ZXI $XD cXDXI RX-.} TXcXl.w $ $ $Xl cX,X,X,X, 3XDXDXD.M.aX-XDX-.aX5 hX1X- aXI a.a.a 3XI aX- R.aX- t RX- <.a.aXDXl $Xl #.Z.5XI 3.~ 3 RX-X-XI RX- R.aXI aX1XI B.u.a.eXI ` 3X1.aXD R.a R.aX,X,XDXD 3.Z R 3.Z :.~XI RX1.uXD c 3 :.aXl $X,XcXc ` D DXH mXI cXIX,.e.M RX,.a U RXDX, $ RXl.M.MX, $X,X,XD.ZXG c xXD R h.Z $ RXD $.ZXI R.*X,XDXD.MXD.M R hX, R.M.aXD R $XK $.SXD x...FX+XeXI.8X-.8.a 3 c.a 3 ~.`.8.`.8XV.8.r.8.H.8.H ~XV ~XV.k.u.5.kXl.kXI.H.8XVXV",
+" 3 3 c.a.M RX, 8 R R.`X-X- aXD h.M.MXn.w u.M R < R.a aXD 3X-.`XV RXl c ' : T $X1XD R.a.e c 3 RX-.~ R u p %X8.LXc.YXN.5X1XIX-.a c 3.aXI.`.}XIXIXIXI K : 3XH I.~ 3XIX1X1Xd.D.uXIXDXDXeXpXp J.sXSXw.H `XlXIXDXD t U p p...EXpX1X- ~XIX1.`.HX, s.E.9XJ.uXVXI 3X,XdX5.XX@XxXxXx.X.XXxX9.X.X.5Xo.^.X N.5.^Xo.^Xo.^XtXx.k.k cXd.u.u 3XIXV $.3XcX.XJX.X9XoXo ).^ N.X.rXo.k.k.k.k.k.k.kX*.k.k.k.k.k.k.kX*.rXV ~Xx ) F ) ~.H ~XV.k.k.k.rX*.kXtX*.k.k.k.kX*.K NX*.k.k.k.k.k.k.uXd.kXtXV ~XV.HXV.u.u.8XV.KXV.8 3.H.k.5.uXVXVX5XD 3 3XV.uXo.`X1.8X5XIX1.H.`XIXI.8XI.H.H.u.kXy ] g gXK.' $XDX,.Z TXGXO.9Xw.qXC.WXa CX,.' tXsXsXLXG.ZX,.DXJ )XV.uX3 I., V VX. | VXH }XJ I.,XJXc.- 1X+ .wXc xXM.uX*XI.K.u c.aX-X1X-X-.` 3X5X,.~XI 3 RXD aX-X- R.a a R 3X,.a.a R.a R R.}XD.a cXD.ZXD 3X,X,X,.u.ZXlX, 3.u h.u.Z.5X,XD.uX-.9XcXD $X,X,X5 h.} cX,.a t.a.a R t R.a.a.a RXD $.a 3.a R.aX-X- tX- 3 hXI R aX-.a x xXl.u.Z cXK.KXlX5.KX* R.8X-.e.` R RX- aX, 3 :Xl.Z 3 $ c $ cXl 1.]Xl 1X-X1.aXIX, $X-XDX, 3 R RX, RX-XIXI RX-X1.~XK `.K D mXJX- c.' TXc :Xl T hXIX,X, RXDX, a.MXDXD.aXD.Z RXD.'XD.a.Z $.MXDXDX,X,.wX, x.ZXDXDXlXl.DXDXI $XDXD.ZX,X, R.M <.M.a xXD.M.a.a.Y.ZXw.Z sX,.MXnX4.- h.aXI.8.8.8XI.} cXI.8.`.8 ~.`.8.8.8XV.r.H ~ ~ ~.H.8.8.r 3XV.8.k #.r 3XV ~",
+"., TX-.a R t.M R RX1X1XI.a 3 1 x.d.s._.M t t.a < a h $.aX-XIX-XI :XD :X. :.Z.`X1X5XI.H cXIX- RXIXI R.M UXf.J 0.j.w.] T 3XI.a 3 3 RXIXI.`XIXIX- 3 3X$XVX- K.K 3 R.a.a.8XVXVXVX1XGXKXp.@Xn %Xr =XZX- 3XIX, h t.)Xe..Xn HX+.Z.M 3.`.8 ~ c 3Xe.j H.@Xc.M.}XIXIX1.H.HXd (.r.k.k N.k.k.^ N N.^ N N N.X NX9.X.XXx.5Xx )XxXxXxXX.XX9.5.k.u.5.%XH Y.3 5Xl.5Xx ).^XxXoX5.kX5.^.k.k.k.k.kXt.kXt.kXt.k.kXtXtXV.8XVX9 5X5.8 ~Xt ~X*.k.u.k.k.k.k.k.kXt.k.k.kXt NXo.k.k.k.k.kXt.k.k.k.uXV.r.H ~XI.r.5.5 c.8.KXIXVXVXVX9XJ I ( mXJ I.] D.2.u (XxXI : ).8.H 3X1XI.`.`.`XV.H.8X5X@XOXPXOXO.'.w.-XJ.wXw !XPXK sXmXw 9.EXs C.a.MXDXLXs.sXUXG 1X1 :.2 fX..% } Y , } V `X3 }XS 5XM 3X1X, R.M .Y X7 1.iX. m., :X-X. '.5.,Xl T T T m.3X3 T.$ T IXl hXD 3X,X5Xl cX, 3 3X, 3X, 3XDXIXIXDXDXD c RX1.a R R 3X-X1 aX1X-X-X-X-.K R RX-.a RX, $.9.'XcXl :Xc : ` c R R R.a R R.a B.a.a #X-.}X-.aX- R.`XIX-X- RXI 3.}.a.e.M 1 T x D.,X5 `XJXJX- 3 `XV R 3XI.~ 3 3 cXIXIXl : m `XJXJ.,.2 ` TXKXV $ 'XM.DX5X,X1.ZXlXlX5Xl :XJXD R R.Z RX1XDX-X3 ) m 3 #.uXD aXD RX1XV c.u RXD.a xX,.M R.MXD.a RXDX, 3X,X, 1.MX, x.ZXD.Z U RXD.ZXlXD.ZXDXD.wXJ 1 R RXD $ RXD.M.MX, R.a tXlXKXcXc ` sXJ hX, R 8XDXeXGXqX+Xl R.H # )XI.`.` c.u.`.H.`.8X-.` ~.` ~.H.H ~XV.r.rXV.r.8 ~.r.r 3 NX* ~ 3 ~",
+" `XKXK n XK $X-.aXIX-X-X1 U :Xn.jXrXc.M R.a < cXKXX h.a RX-.` RX- $XJ ' BXIX1 T.k 3.H.8X-.` RX-X-.aXD E.. %.P o 8X-XIX-XI.}.uXIXIXI.` 3.`.8XIX1 :XN I m.].H RXI.8.a.8.8X*X1 : TXn .Xb...sXS.-XN $.a.a t.a u.W....Xf.x M.Z 3.`.8 3 3 R 1.@.@.C ^Xr.a.}.8XIX1.H.HXxXx.k.k.k.X.KXx NXk.zX9.zXx.kX9.^Xk.X.k.X.^XkX9.kX*.k.k.kX*.k.rXV.u.K.5 I.] )X9 5.XXoXx.z.5.XX9X9.XX9X9.XX9X9XxXxX9XxX9X9Xx.5.5Xo.5.5.5.5Xt.K.K.uXoXoXo NXo.KXo.KXo.K.^.K.K.^XoX9XoXo.k.k.kXo.k.k.K.k.u.rXV.rXV.k.KX* qXV.rX5.H.HXV.8X9 :.5.].K :.] :X5XxXDXoX9XV IXlX1XI.H.`X1X1.HXI.`.rXVXV.2.2XyXO.' x 1.jXw.OX;.GX; @.O.qX0 o v.' U.MXDXDXsXGXm v xXl.0Xl.2.%XxX5X3 ) k.%., |., k ` h c $X5Xl.wXl h.iX%X7.T.SXHXH mXJ.u.0.] DXJ m.0XcXKXJ m.2X# DXM.%XI RX-X-XI 3X-X- RX- RX- RX- RX- R.aX- R a $X- RX1XI.aX1 3 R RX-XI RX1 3XXX-.`X1X-X1XDX,.Z RXcXcXJ 1 cXK hX-.a.a R R.aX- RXI a.5X- 3.5 RX1 R.~X-XIX-X-X- RXDXI.aX- x c.9XlXlX,X5XK 3.`XIX-Xl.5 3XI.uX1XIX- R R 3X,.u.aXIXIX1XIX5XIXIXI a c ` :XJXJ.2.,.2XJ kXlXK :X,.MX1XIX,.` RXIXIXMXX.5 #XIXI R RXDXD $X,.a RXD.aXDXl.aXD.a.aXD.M h xX1 $.aXl : x 1 1 1Xl.'XcXc.w x $XD.ZX, $ TXJ.2 $XcXl 1.ZXl c sXl s a.9XJ x.3.9 :.W $.wX, UXD xXn vXK UX, ` cX3X- 3XI.`XV c.8X1.8XIXV `.8XI.8.r.H ~.8.r.8.r.r ~ 3 ~ 3 ~.K.k ~ N",
+".5.ZXI $.wXq h.aXIXI.~XIX,.9.w EXwXLXn.M.aX- R 3.a.a aXI a R 3XV : 1 : 3 RXVX5.5X-.uXXX-.`.aX-.aX1 c < C..XbXnXGXDX1 3.8X- c.H FX1.8XI.` 3.` 3.8.HXI.D.`XI.`XIX1 3.`XI.u ~.` c.- JXbXi p WXB.w YXcX-.M.a <.N...s.4.; M.p.YXD.HX1XI.} $Xw.J.@X6 w M.iX-.}XI.` F.H.z.k.^ NXt.XXg.$Xg q qXk./Xg N.f.^XkXk q N.$.$.RXo.^.k.k.k.k.k.kX*.rXMXkXX.KX*Xx ).K.^.k N.k.kXd.k.kX*XtXt.uXt.k.u.kXt.k.kX*Xt ~X9XX.kX*.r.uXVXtX*.k.KXo.KXoXo.^XoXoXoXo NXo.5.5.zXo.5.5.X.X.5.5.X.kXo.k.k.K.5.5XxX9.5.5.k.KX9.K.KX5.KX5Xo.K c.K c $.u.Z.u.u.k.u.k '.5.u c $.u.u.u.u c.uX5.k cXx 4X;Xy y g.YX.XcXy ! 4.O K K.GX0XmXL.9 h $ xX,.MXa.w.W.w xXc :.HX5 cXo.u 3.u 3 V #.}.M.}.Z x $XDXI.H.a .Y.FXB.p.j.Y 1 $ $X1XD BXDXD.aXD RX1X1XI R cX-Xl., c.M 3.Z 3 RX1 RX-X-.a R R R R a R.M R R RX,XDXDX,XIXD 3 RX,XI t.aX- R.K c R R R RX,Xl 8Xl 3.MXD.MXI aX- 3.uXD R RX1X1 R RX1X- cX,.aXX 3 cXVXI R.`X1X- RX-XI a.a.a.a.} R.~.aX-.a cX1 RX-X-X-XI cXI.`X-X-X1X-X- R R.` R RX- R R 3X-X1XD.u RXD T 3.uX,X,XD 3 R.ZX, $.Z.u.a RXIXDX1.aX1.u : 3 : 3XI RXDXIX5.uXI.aX-XD RXD.} x.a.a R $X,X. T.9.,XcXKXJ.'XK.9XKXcXK.- x $.ZXl UX1XDX, R x D.9Xc 'XJXl.9.9XKXK 1.Z 1 $XlXl TXlXl x.ZX,X, x.[.YX0XH.Y x.M $ c cXIXIXI R cX, RX1XI.8 c D.H 3.8XV ~ ~.8.r.8 N.rXx N ~ ).r.K NX9",
+"XJ.0 x xXe.} a.a.} 3 $ hX,.MX+ yX+.M.-XDXD.aX-X-XIXD cX-X1 3X5 3 $Xc.}X-XDXI.8X-.u.5X*.KXX aXI 3.u BXD._ p...EXe RXD.8 RXVXVXI.`.HX1.8.KXX ~XI.` 3.kXI.8 $.H 3.`.` 3.`.u.` 3XI.w.;.@ %Xn.gXe RXc.O.Z RXI U.M v JXf.;X>XGX+ $ R R $.Y.[ >X6.B ;.P.x h.} 3X1XI.HXV.U.kXt.k.^Xk.X.^Xk qXg qXx qXg.z q.zXx qXx.zX@.z.K.^.k.k.k.^.k.k.kX*.k.r 3X*.rX*.X.k.k.XXo.k.^.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.kX9.r.5X9 3 ~.u.u.r.u.k.k.kXd.k.k.k.k.kXd.k.uXd.k.u.X.uXdXd.uXt.H.H.8.r.`XV ~.8X9 ).k.uXVXV 3 ~ c.8 3XI.5.u.H.uXIX1.` RXD 3.8XI.`.8X-.H.8X-.`XIX1.`XI.`XI.`.H 3.H.5.2.2XU.9 g s.DXG gXP 4XyX; = @.>.O y n 1Xc TXK .Y n.1.>X..2.DX1.k.`.H cXI 3 3.a.a $Xc.3.- K [Xw.% mXcXc.-.FXeXp E.i.M h.a R R R.a RX1.a RXI R.DX- c.8 a R c 3XD R.a R R R R R R R a.a R.a RX- RX1X1XD.uXD B R a 3XIXIXDX-XI.a.a 3 # 3X1X1X1XDXw $X, sX,.a 3X, c 3X-.a.Z.uX1 R RX1X-.aX1.5.~ 3.K : 3.5X5.KX- 3XV 3.`X-X-XIX-X-XDXDXDX- RX1X1XDX- RXIXIX-.` cXV.uX,.uX,.uX1X-X-.a RXI c 3.Z `XI RX-XDXVX-X,XDXI R.~.a R R.aXI RX, $.D RX,X1XI.u DXl.K c.a RXIXDX- T cXD BXIXIXI.M.a.ZXDXD hX5 1 : V.]XM.ZXl 1 $.'XDX, x.ZX,.a RX,X, xX1XDX,.a B.M.u.wXl x.9 $XqXlXKX5X5XD.u c $ cX..9XJ.9Xw.[., nX..1 [.jXrXB.YXK V RXIXXXc `Xw XM xX, ` 3XH.uXI 3XV.8XV.rX* )Xt ).K.kX9 ).`XoX9",
+" c.'.0XcXK $.} <.u.a R.e C.M M nXK.Y.3XJ :X5 : $XV.].}X- R.u 3 3 ` h R.aX- 3 :XKX3.K :X- 3 cX,.aX1 a._.s % .Xp u UXDXD.M.u 3X1.HXI.`.`.5XX 3.8XV )XVXI.`.5X9XI.8XIX1 cXV.8.8.}.}.s.@ %.m t <XI R RX1XDXDX, U._.sXpXn._ . W.+XG.9X>X>.j..Xb.P L.4 =.wX1XI.a.8.8.kX9.k.k.k.k.k.k.k.k.k.kXt.^X*.^.k.k.^.k.k.^.5X9.^.k.K.k.k.k.k.k.k.k.kX*.r.rX*X*.k.k.k.kXx.k.k.k.k.k.k.kX*Xt.k.k.kX*Xd.k.k.u.kXt q.u.k.K.H.r.uXt.kX*.k.kXdX*Xd.kXt.kXdX*.kXd cXd.k.X c.k.u.r.u FXV.rXV.r.r.u.r c ).u.rXV.r ~.u.k.HXVX5 ).$XJ 5.] `.] : cXc cXV.u.uXI 3.8X1 3.8XIXIXI.`X1.8 3.8.H.5.%.|XyXPXc o x g.'XPXUXO.2Xw.G.>.q.>XH VX3Xl 1 !X.Xw yXUX.XJX1.HXVXI.KXxXIX- 3XIXMXcX#Xh n n M.G.3.3.GXh nXp.W .WX, < cXDXD a R < a R R B.~.~ :X3 $ R.`X-.u aX-X-X- RX1.a RX-X-X-XD R a $ $ h RXD RXI $ 3X-XIX-XD 3 RX, R.a RX-X1.5.uX- RX-.ZXl.Z R xXDXD R aX-XI 3 R aX1X, 3XI RX-X1X- #.5 c.u.5 $ 3XV.5.u ( c :XI.`X1X-X-XIX-XI 3 B R.aX- 3XDXDX-.eXI RX-XI #.` RX-X- cXI aX1.`.ZX1 RX1 R cXV RXIXIXI $XIX-.a RX1 R R.a RXDXDXDX,.ZX1 3XIXI cXJ 5XJ.] )Xc D.2 m `XVXI tXD.a.a RX, h $ c $XcX5X,Xl RXD 3 x $ hXlXDXDX,XDXDXD $X,XD $X,X-X,XJXD $ 1XcXc.9 $.w.W $ $ $.Z `Xl : :XcXJXcXK.9Xl $ h UXK ._._ .Xq .9X3 $.a kXp.FXrXwXH.[.9.-.S k.9XIXIXI ~.8.k.$.rX9.k.k.r.H.r ~X*",
+"XD a.a.MXD.a a c.} < < u U.wXqXe # : : c.K '.uXlXJXJX5.` R.u.- `.Y.a.a RX5.' c.u.~ 3X-X1 R aX-.a.a.M.)...x.;XpXnXpXpX+.wXD.MX1.`.`XIX1.u.u.` ~.uXVX5.8XI.KXI.8.8XI.H `XI 3.8.a.a...@..Xe < R tX1XV.D 3XD.M R U.WXn._X> n HXhX0X0 w M MX4.C w.{.@Xw xXIXV 3.8 3.XXX.^.k.k.k.k.k.k.k.^ N.X NXg N.^.k.k.^.k.^XxXt.K.^.k.k.k.k.k.^.k.kX*.r.k.^.k.k.k.k.k.kXxXt.k.k.k.k.k.k.k.k.kX*.k.k.kX*XVXdXkXo.5.k.HX*.r.kX*.kX5.kX*XdX*Xd.k.k.kXt.kXd.k.kXd.k.KX9Xd.r.rXV.rXI.rXV ~XV.5.k.H.r ~XVXV.8 ~ 3XV.k 3.H 3 ( :X5 ) : ` 1Xl $ :Xl : D.8XIXIX-.` 3XIX-.`XI.`XIXIXV.H.HX5 ).].> !.!XU !XPXU ] !.] ' ! !Xw v 1 c.K.aX1.M x v.WXa s.2 $X1.`.uXV.`.K 3.5 D.] k.-Xw.1 y.Y.pXc., 1XcXL.WXe.W U U R 3XD., ` 1 1.' : 1 ' ` T `.% c.K 3 RX- 3 R.a.a.` R.~X-X- R.a.a R R aXcXJ $ ` DX. mXKX1.a RX- RXIX-XI RXI RXIX1.~ ` :.%., $X, 3.w : $ hX-XI.a RXI c cXIX1X,XV 3X-XD.u c.e.u 3.u c.5 `.K c c c.k 3XIX- R RX-.~X- RXIXIX- R.a 3 RX-.a RX- RX1 R $XV.aXIX-.ZXIXD.Z R.eXD aX1 $X,XIX1 R RX-Xl.H RX1 R.aX1X- RX1 R RXD c.DXD TXI c D } }.$XKXX $ c cX,.Z.aXIX,X,.M.aX, $ :.aX5Xl.KXKXcXl.-Xl.Z 3XDX, $.ZX,.aXDXD RX-.a.Z $XD R 1XK.9.YXGXcXs U U.MXsXDXDXl :XlXl cX, $X,.Z $ UX, h h x U.m._._._._X7.-XB UX7X+.J.pXh.[.,.[ xXc 1 VX, 3XI.r.8 ~ ~XV.H.8.8.rXV ~.H",
+"Xl $X1X1.a R h 3 <.a t.M.W v.W h.].5 c c R RX-.`X-X5X1X- RXM.a x xX-X, $.wXIXD.~XI.~X1XI.a.eXD a a hXpXf.4.4.@ ^ ^XAX6.x o $.}.}XI.`.8.8.` 3.8X1 3.~.8XI.8XI.8.a.8.5 $X1XVX*.a.}XnX4.sXn x : $.Z 3 R B RX1 R t h xXq.) E v.@Xp.E.@ M.;X>X2 r S S.>XKXVX1 3 3 c.rX9.X.^.k.^Xo.^.k.kXt.^./ N./.X.k./.k.^.k N N.k.k.k.k.k.k.k.k.k.k.k.kXt.k.kXt.k.k.k.K.k.5Xt.k.K.k.k.k.k.k.k.k.k.kX*.k.r.r.KXkX9 ~XVXt.K.k.k.kX*.k.k.k.k.k.k.k.k.k.k.k.kXtX*X*Xt.kXoXVXV ~ ~XV ~.H ~.k.5 ~ q 3 ~.u ~.rXVXVXVXt c.HXV.uXI.HXI.`X1 R c.aX-X- R k cXI.`.8.a.`XIXIXIXI R.8X1.`XI 3.8 3Xx.2 ! gXP.'Xm.0XO.0.D.D.uXcXPXL s $ 3 :.5 $Xa.W 9 y 9 'X5XVXI 3.8.KX5.u.HXI.% m.3.GXHXH.1.T.+Xr.hXM.iXp.w.W C.MXIX- :.] 1 :.Y xXw 1.9XD T $XK : c.u c.~ R c.e.~ R.aX-X-XI.aX- a a.aX-X, $ x.aXl 3X-X1 3.a.~XDX-.a.a R R R RX1 R $ D D mXl.%XcXJ k.2 `XDXD R R R RX-XI c 3 RXI 3XJ `XV RX1XI R R.uXIXMX5 3.u c # cXIX-X-XIX-.a RX- 3X1X-.aX-XDXI R RXl x.~ R R.~ $ T R.~X- 3 $X-X1 hX1XD R.e TX5 RX-X1X1.eXl :XIXDXIX,X, :X, :.9 TXJ.-.3 m D RX- c c c )X1X1X1X-X1.uXDXI.aXD R.a RXlXlXl c.5 T :X5 cXlXlX,.DXDX,X,XD $ $X-X-XDXDX, cX,.ZX,X, h.M.M a < t.M.M.M UXDXD.} c `XD.aXDXD.Z s x $ h.} R.M.} u U.mXqXq.YXpXcXB.YX4.FX4X7XwX%Xr k E.Y .Y `.}XIXVXV.8 ~.8 ~XV ~XV.8.8.r",
+"XI.KX,XDX1XI c.e.a.a tXs sXe.M.a.5.5.K B.5 1XlXDXV.~.`X1Xl U $.9XD $ $X,XD.aX1 R.~ T #X1XD.ZXD $ $ h p.).@...sXi.B.BXf LXp.pX,.Z 3.`XIXIXI.8.a.`.8XIXIX-XIXIXI ~XI.KXI.5 c 3 3.aXp o.. y x cXI a a.aXIX- R.aXDX,X,.} C u.WXe.sXe.).Y.W CXF .XfX4.E gX5.8 3.8 #XV NX9.k.k.k.k.k.k N.k.X qXk qXkXx.I.X.kXtXxXj.K.k.k.K.k.k.k.k.k.k.k.kXt.k.k.k N.k.k.k N.K.k.k.k.k.k.k.k.k.k.k.k.k.r.k ~ q.r.5 ~.r.r.K.^.KXt.kXt.kXt.kXt.kXt.kXtXt.k.k.k.k.k.k.kXo.K.r.rXVXV ~X*.8 )X*Xx.K.8X* ~ 3 ~.8XV ~.H.u.u.H.HXI.H.8XI 3XD 3X1 1 x 1 1XMXIXI.aXI.`.aXI 3XI.`XIXIXI.`XI.H.H.H.K DXO 9Xm.'XK m (XD.u.uXI.5.!XL s.9.5.HXd :.' b H &.q.DXD.HXIXVXIXoX9.5.` ).%.%X.XUXw.+X0 W W.y W.g Xp.WXe.aX1.ZX1X5X5 $ t t.* h $ R a a RX-X-.`XV # cXI R 3 R RX-X- R.aX-X-X-XIX-XI a.aX-.e RXIX,XI R.u RXDX-XI RXI.a R R RX1 3 `XDX1Xl.e #X,XD xXI $X1X-XDX-.a RXD.a a 3 h c :XlX5., ` :XJXJ., mXc cXVX-.`X-.` 3.k #XD RX- RX1X-X- R R R R RX, tXI $XlXK :.2Xc 5.3XJXJX1 R mX, :XJ 1XK.]., D.,.2XI.a.` $Xc.3 TXJXH.,X. 1XcXKXK 1Xc.Z.ZX5X5X1XI.u.5X5XIX9 3.`X1X1 R.u RXDX,X,XIX, cX5 c.u #.5X, 3.5XMX5 $XM $X,XD.a RX,.Z.aX1.ZXDX,X- hXD.M $X,.M.M.M U.Z._._.w h UX,.}XM $.aXDX1X1.wXD.a.aXD.} a.M.M.M uXe._XG xXqXp.FX4.m._Xp MX<.Y >.F U.p.F .-.a R 3XV.8.r 3.r.8.8.r ~.u",
+"X- 3.u.uXV.uX-.a R t.N x._ C.a R.K.XX-.5.u 3X,.u :XV.`XlXl $X+.p 1 )Xl 3 3 RX- c : :.,X. D ` T $ h.ZXeX+.s.s.sXb.s.P.J % %Xp 'Xc $X5 c.`XI.`.` 3X1X1.` 3.`.8.}.`Xx.KXl : #X5.u.'Xw.; vXa.M RX-XI.a.a < R.a.aXDXD.Z R.M t.M.M u.M.M.Z C.W.m.JXb.@XwXU.DX1.` 3XV.HXo.5.r.k.k.kXd.kXd.K.k N.K.X.kXg.K N.k.kX9.k.K.k.k.k.k.k.k.k.k.k.k.k.kXo.kXd.k.k.k.kXX.k.kX*.k.kX*.kX*.kX*.k.k.k NXtX*XxX9 ~.r.u.k.XXt.k.k.k.k.k.k.k.k.k.k.k.k.kX*.kX*.k.k.kX*Xo.r ~ 3 ~ ~ ~.5 3Xk )X*XV.rXV.8.r ~XVXV ~.u.kXd 3.HX1XIXI.8.0 )X- x `.9 ` 1 `XIXI.8XIXI.8XIXIXI.`XIXI.`X1X1XI.HXI.HXa g !XP g.2.9XDXI.u.u 3X5.> 9.9Xs BX1.H $.Z.W 2Xa TX,.`.H R 3 3 : 3.8XI :.2.5 RX, x.9X2X>.jX>XnX>XrX4.F h.W a.uX1.H c cX-X-.} a <X- RXDX- R.`.a.` 3 3 c 3 cXI $ 3X-X-X-X-X-.a a.aX- a.a.a.a.aX- 3 cXD.u.aXIX- R a B R.aX, $ $ $.2 :.a RX-.aX-X-.a.u.}XDXD RXIX- R t R R.aXI 3 `XMXl.,.Z.9.D $X,X,X5XD hX-X-.aX-X- aX-.u c RX- R RX-X- RX-.a a.}XD aX, $.9 $ $ $.D :X1 c R.Z.]XJ.9Xl : xXl.w.9 D.u cX1X-Xc.5 cXlXD.ZXDXI.ZX- RX,X- aXDX,.w 3XDX1X1.5XlX9XV.5 3X1X-X1.ZXDX1XDXD R 3.Z # $Xl.] ( )Xl T mXK ).9 $ 3XDXD.uX,X, RXIX, cX, R.a $ c U.a.a.W x._XnXG.F vXq._ h E h h.aXD U 8X,XlX,.ZXD RXIX,.a.M R U.Z x._XGXnXqXq._Xr.YXq.p M W >X4.i > 1.YX3X-.8.8XV ~ ~ ~.kX9.r ).k",
+" #X3 #.5X5.HX1.a R.M._ y U.a RX-.k.`.` 3 a R.K #.kX9XlXD._ sXn uXDXV 3 R.uXIX, 3X-XX c $.K 'X9XcXKXwXKXc.j u * v ..@XF p.. .XwXG :.2 `.`.}XIXIX1X1.8XI.a.aXIXI.uX* D :XJ.,XcXKXw.+Xr.;XKXK T #X- <.a.a R.a R.ZX1XD B R.M.a t.}.M.a $.M.WX4 -.PX4.E yXDXV.8 c.H.8.u.XX*.k.k.k.k.^.k.k.k.k.^.kXo.k.^Xt.k.X N.k.k.kX*.k.k.k.k.k.k.k.k.k.kXt.k.^.k.k.k.k.XX*.k.^X*.k.k.k.k.k.k.k.k.k.rXo.K.k ~ ~.k.kXtX9.k.k.k.k.k.kXt.kXt.k.kXt.k.kXt.k.kXd.kX*Xt.kXV ~.r.rX*.u q.X.K.8XV.r.8 ~XV.8 3XV.H.r.u.KX*.HXD.HXI.` :X3.ZXDXK .-Xc 1.a.}.aXI.8X-XI.8 3XIX1.a.`X1.8.8.`X1.HXIXVXD.' g T x.H 3XV 3.u.8 R TXPXa.=.D 8.K.K.WXG o.s gX1.8.H :.5X1 ) )X1XI.uXVXD.ZXD CX+.YX>X8.CX>.<X>Xr._ hX, a 3 R.`.8XI.`.a.a.a.a.a <X-XD.`X- R.`X-.`X-XIXl x cX5 # $X5 #.uX-.a.aX-.a R R R RXIX1 R.a c D 1.Z $ : 1.,XJXJ.,XKX. Y.5 aXIXIX-.a.aX- RXD $.a TX1.M.a.a.a.aX- RX-X-.aX1 $X5X1.M RXD.a h 3X,XI.aX-.aX-.a R a.u hX-X- RX1X-X- R R R RX,.a t a R RX1X-X- $X1XIX, RX- R R RX1 R R.aX,.H.ZX- cX1 :.aX1XIXIXI RX,XD.a.MXD UXDXDX,XD.DX,.H 3.5XI.5X*XVX5X1X1X-.u RXDXDXD.M.aX, $.u.K )XXXlXl :.5 x.Z $ $XDXDXI xX,XI.aXD h.uXD R R.M hXD hXe.iXe._XnXqXn ..mXq._.i.l $ $.ZX,.w.ZXl.ZX,X,.u.D R.a RXD h.W.WXe xXe.MXq xXeXqXq._.pX%X4 >.p.Y.F.YXMX-XI ~.r ~.kXo.X.k 5X9",
+"X,X..,X1X. 5.a k <Xe yXL t R R.]., 3.0 R s xXXXV.~.8 R.a.W v.W.M.a cX-X-X1X1X1X- cXDX1X-X1.`.`.K c.a.}XeXe.W v v v u CXs.s.@.;.j.WXD ~ ~X-.8.8.`.8X1XI.a.}XI.`.$XJ., ).}.8 3 $XH yXGXGXG.,., :X- RXI R 8 tXV.a c 8X1X1X1X-.a tXD R h vXnXb.P L.x yX.XV 3.H c.` 3.rXXXt.kX5Xd.kXd.k.k.k.k.k.k.^.k.k.k.kX9.kX*.K.k.^.k.k.k.k.k.k.k.k.k.k.k.k.k.k.kXt.X.5Xt.k.kXt.^.k.kXt.k.k.rX*.K.k.rX9.rXVX*.kXt.k.X.k.k.kX*Xt.k.k.kXdX*XtXdX*Xt.kX*.kXt.k.k.H.K ~ ~.u.8X9 ~.5.KXV.r 3.H.H.H.8.H ~.H 3.u.k.5XV.8XI.H.HX5Xx.5XI `XpXp.jX%Xe $ h c 3X1.8X1X1XIXI.8.`.8.` 3.8.`.HX1XIX1.HXI.HXI.8 3X1 3X1.5 cXI.uXPXL.=Xs C 3.}.}.).=XLXK.a 3 $ TX1XI $X, 3 R s.9XKXDXD.a v.@.@ L w.4.{.;X>...m U <.}XI.aX1XV B.u.K R.a.aX-X-.` RX-.`X-X-.a R.a.aXDX-X- 3.u 3XD :.aX-.`.aX- R R.aXD RXl $XlX-X.X.XJXJ.,X5X.Xl : $ : :XI.aXIX- R.aX-X-.a.MX-X,X,X. x.,.w.-.a 1XK.l T ).' :X. T.,.]XKXw :Xw h a $ R R.a tX- <X-.a # R.a RX-X-X1.` B.`X-XD 3.a R R.a RX1 B 3XD.`X,X,XD R R R.aXDXIX1XIXDX,XIXIX1X5.K.a R 3XDXIX,X,.aXIXDXD.DXD.DX,.Z R.u B.uXI 3 : 3.KXV.8X1X1.u RXDXDXD RXD c c cX*.K hXD.Z xX5X, $X,XD.ZX,X5 RXI.aX,XD.Z R.a a.a.} hXeXe..Xn.@.x.x H.<.J ..F._._.FXBXq.M U 3X,.M $XD.ZX, x xXD 8 tXs $X,XD $X,.Z $ R h x 1 v.F z.[XpXB.p X4 >.l.a.8 ~.r.rXx.^.u.kX*",
+" $.2XJX- T.i :.1.Y.EXe <.M R 8 5 m.5X;X,X; x m.5.K.5XD U._ v.*XwXlXK $.] 3.] ` D.KX,XIXVX-XI.H cXD.}.iXe vXn.W.NX, CXD.MXn . . S MXJ T cXM hX1.8.` F.} aXIXIX5.%.|XlXIXIX,.aXK yXG sXp x $X1.KX1X1.a R RX1 h.a.u R BX1 R RXD.}.a.a $.W.@ %.CX>.+.+X. :X5.5XlXIXI 3.KX*.kXdXo.k.^.k.k.^.k.k.k.k.k.kX*.KX9.k.k.k.k.k.k.k.k.^.k.k.k.kX*.k.k.k.k.k.k.kX9.kX*.k.k.k.kX*.k.kX*.k.k.rXx qXtXt.r.kXd.k.k.K.5Xt.k.kXd.kXt.kXt.kXt.kXt.kXd.k.u.kX*.uXt.H.K.rXVX*.XX9X9.r ~ ~ 3.H 3.HXI.8.H.8.rXtX*.u.5.r 3.HXI.`.5.k.$Xl `XpX+ WXr > 1 :.5.8X-X1 3 3XIXI 3XI 3.`XVXV.HXVXV.H ~.8.8.8XI ~ 3.~ ' mX5XDXV.0XL.=.= 8 < E.M.=.=XaXGXDXI.0 'XDX1.KXDXD U.YXGXGXc U UX+ ^.@Xf.C L 0 LX> . E h.}.}.M R.DXD.8.u q.} tX-.aX1 R.`X-X-.~X1X1 a R.e h.~X-.a.e.a a c.K.a.a.~.u c.u :.5 kXKXlXJ a :.ZXlX1.a R.KXD.~ 3 cXI RXIX-.a.a.a R h : c R.a.ZXD tXUXc.O 1.3XKXcXc :Xl `.2 :XcXl.Y.iXeXH 1 `.M.a.a ` R <.aX- a.u.a aXI RX1X- BX- RXI.e.}.a RX1 RX1X-X1 c 3 aXI 3.uX3 x cX1X1XDX,X,XI $ : $X3XMXl 3XI.~X,.ZXI h R.M.Z.Z.DX,X,X,X,XD.aX,X-.` R.5 # 3.5XI.`.`XI.D R.a.M.MX,.Z.KXV.KXVX5X, $ x.wX,X-X,XD.Z 3 xXD.a.aXDXI 8.a.a.a.a RXpXp.xXr.x.@.@ ^.P.C.4X2X2.x.<X4..X+.-.Y xXcXl.'XwXJXcXcXlXDXD t.a.Z.ZXD.Z $ $ c.uX,X,.WX,XeXG.pXp.[XeX+ >X4XBXcXIXI.8.r.`Xd.8.8XV",
+" R $ $ $ $XD sXe n.YXe UXD $X- : ` :XJX..2Xc.OXlXM.a.a yXG.N tXJXH.| DXc 7 5 IX. ' ` mXK 6 x kXD.Z.W vXp.. U t h.a.a.} hXsXe vX>X>X0.9.9.iXc.aXI.HXI 3 RXDXIXo (XlX1XD.M.}X+Xp b.sXe.* #XIXXX5X- RX- R.M.} 3.a hX1XI R R.a aX-.a.} x.W ^ %..X2 y =XJ D 5 mXJXM.}.r.K.5.k.k.k.k.k.k.k.k.k.k.k.kXd.kXt.5 N.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.kX*.k.k.k.kX9.k.k.kXt.k.kX*.^X*.kXt.r.5 ~X9X*.rXt.k.k.k.kXo.^.kXt.kXt.k.k.k.kXt.k.kXt.kXt.kXt.k.u.rXV.r.kXI.r q.5.k.u 3.r 3 ~ 3 ~.8.8.H.H ~.u.k.k.k.5.uXV.u c.u qXMXXXHXHX+ W.p.pXnXp XB cXIX-.`XIXIX1X1XX.k.K :X9 :Xo :X5.5X9X- 3.8XI 3Xl.]Xw kXl cXIXDXGXL 2 2 h t uXa 2 OXKXK 3 `.KXVX-.]X- kXG =.+.j.j.1XGXS = S M H.4.{X:X> ^ . E E.} h.MXDX-X,.u.KX5X-XDXIX-X- cXVXl.u.eX-X1X-X-X,XD a RXIX-.aX-XMX1 3XHXc :.]XK :Xl.u h $ a.aX,XD $ R R RX-XIXI.u R R.a.~X1X-X-X-X- a.a tX- hX,.M $ $X,XDXD.a.MXI.a RX1.}.a a < a UXq.FXnXq h hXe hXD.a.aX- #X5.8X-.a a.aXI RX1 RX-XIX,XK 3 c B R R c.u B RX-.a RXlXJX. `XcXJXJX.Xw 1.OX3.%.5XI.`X-X- RX1 hX, $XDX,X, hX,X,X, h $X1.u RX1 RXI cX1.KXX cX-X- cX,XD.aX1 cXDX5.HX5.HXlXD.Z $X, $XDX1XD xXlXD.a R a.a R R.a a.a.M <X+Xp.@XnXi %XbXb.v.s.vXi ^XfX>.x SXpXrX< [ xXl x c hXD R tXDXDXD.ZX,X,XD $ $.Z.ZX,XD.a 8 U.M.- n.-.F <.i.Y .FX+X, 3XIXV.H FXV ~",
+" :X.X, $ h U.W x t < R R.*X1X-.` a :X1X,XD.a c cX-.Z.9Xe R.aX1.ZXI.D )XJ D.5XxXlX;XJ kX#XH.O.W.WXGXL U C < U.}.a cXD R R u.W.s.. vX4XnXqXeXsX1X-.` RXI.8XVXVXVX1XD.} 1 yXn 0.s.s.M.a.a.KX9.KXIXI.a.a.a h.a R h.M.M R R a cXM.M c.WXGXn.s ..+XrXw.-XDXV.Z.Z 3 3 3.KXxXtXo.kXt.K.k.k.k.k.k.k.k.k.k.kX9.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k N NXt.k.kX*.k.k.kXt.k.kXt.K q.r ~Xt.k.kX*.k.kXt.X.k.kXt.k.kXt.kXt.k.k.kXt.kXtX*X*Xt.u ~.r.H.r.u qXo.uXx.`.rXV ~ 3 ~XV.HXI.8.H.u.k.k.uX*X* N.u.H ) kX3X. ) I.3XH.[.L M.yX<X% [XKXI.8XIXIX1.HXI.H.kXX.5Xo :.5.u.Z.5 :X5.8.8XI.8XJXHXH g mXDXIXIXD $XG 2 bXeXeXe /.=XLXmXl R 3 c 3.H ) D.9Xw.j 0.@.;.; M.+.;X0XC.;X: S SXf.x...s p p.F $.i.aX-.a R.a #X1 B 3 cXD :XIXl 3.a R R RXI R.a RX-.a.eXD.~ :XK :XJXl cXlX,.uXD.eX-XDX1 3 BXD c RXIX1 RX-.a.uX-XI R.aX-.a.aX- R.a.a RXDX,.aX- R.a R.a.a aXD.a a h.a a.} hX7.iXAXq >.F.-Xq.i h x h 1 $XD.`X-.a.a $ UXD EX,.aXD.aXVXc T.Z.wXl.5XJ `XJX-X-XI R a x xXlXK.Z.ZX,X,.a.Z cXl # R.aXIXD RX,X,XDX, xX,.Z $ $.Z hXD $X1X1.uX1.`X- 3 3 3.5 c.}XI.a 3X,.D.ZXDXDX9XIXxXo.D xX,.ZXD.wXD $ $.Z RX-.a tX,.a R.a R R.M.a.M._X+X> .XbXbXb.s...v.v.v.v.v.v ^ H.x >.. x < a.M.ZX, a RXD RXD RXD.aX,.aXDXlX,XD.M.MXD 3 $XlXqXe.FXB 3.a.} 1X4.FX+X,.}.HXI.rXI ~",
+"X,XU 1.,.[Xc yX0.j x 1.}XDX,.e.a.a.a.8.aX1X1X1XDXM 1.[.' RX, cXlXD.u `X9.5X-.DXVXI RXD.YXpXqXnXp vXeXs C u t U.a 3XIX1XI RXD u.W ..@X6.JXf.@XK TXD.H 3.8 RX*.H R 3.ZXm HX>X6 p.s.M t.}X-.uX-.`.~ R R R R 3.a.}X,.W.}.M U.a R.}.a h U.s J pXb.x.@.xXw h c.DXV.H.r ~.r.5.k.^.k.k.k.k.k #.k.k.k.^.kXd.k.X.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.kX*.X.k.KXt.k.kX*.k.kXt.K.kX9 ~XtXt ~XtX*.k.kXt.k.kX9.k.k.k.kXtXt.kX*XtXd.k.k.kXt.kXt.u.r ~XV ~.uXtXo q.kXI ~.u.r.8XV ~XV ~ ~.H.r.u.k.kXdX*.uXo.8 3 $Xl ).u : #X..[.SX2 W.pXpXr.[.i 3X-.`XIXIXIXI 3.8X-.`.8 3.8.H.HXI.`.8XIXIX1 cX.XHXJXGXw.ZXVXI 3.M v b 2XL b oXa 2 b g hXI.K.8 )Xt.8XV.MXGXn.@ ^X6X6 0X6Xf w.CXf.4 %XbXA.4.P....._ vXq xXeX,.a.a.aXI x 3 c RXI.~X1 R.ZX1 a.aX-.aX, R R R.aXIX-X,XlXJ : c #.u xXI cXl :XI 3XD :Xl.~XIX,X1.Z $Xl : $XD RX-X-X-XDX-.a RXD RXD.a.Z.a 3.` RXI.a.a.a a.M tX,.}.} U.}.i.m.J.p WXrX<.y.S.1Xr.,.OXKXh R.a a.MXHXHX%.SX<X< kXwXJXJ.%XcXJ x.,.|X3 k 3.a a.aXD.eXD.aXI h R RXD t.Z cXD :Xl.K B.~XDXDX,X,XD.MX,.WX, h.WX, 3.ZX, RXD 3 RX1.~.u.} R #X5XIX1XIX1XI.eX1.H.5XVXV.5X,.Z.w cXD.Z.ZXDX, RXDXD.eXDXD tX- R RXD t.M.M pXG H.{X6...BX=X= /XaXL 2 2.B.BXiXf HXn._Xe $ R.aXD.aX1 R BX1 RX,XD.ZXD.} x.a.a.M.M.MX-X1 :X,.wXqXB :.MXI < >.FX4.-Xe.a.}.r ~ ~",
+" R $ cXe xXn.jXw.9.9 TXJXKX3.a.a.a.a a.`X1XI.D.i x XU.9.uX*.]X3.`.KXJ ).`.5.k.` RX5 1.M UXeXn._ u C t < u $ h.ZXD BX1.` cXI.u U._XbXb.BXA . oXl R.`.}.8 c ` T.9 y.YXn v 2Xp v E.} a <XI c c :XVX-XI.` R 3X,X, U.MXsXnXn.d < U.a vXnXn p p.. w =Xr ` # B.8.r F.8.8.^X9.rX*.k.k.k.k.k.k.k.kXd.k.kXo.5.k.k.k.k.k.kXt.k.k.k.k.k.k.kX*.k.k.k.k.k.kX9Xt.KXt.k.k.k.kX*.kX*.r )X9.r ~X*.kX*.k.k.k.k.k.XXt.kXt.k.k.kXt.kXt.kXt.kX*Xt.u ~ ~XV.8.rXI.k.u.u.H.8XV.HXV.8XV ~ 3XV.HXV.H.u.k.uX*.k.kX*.5.8.5XV.HXI.8.K c.,Xc yXcX+.pX+X7XB.MXIX-.`.a.`.HXI.`.`XV 3.`.8.].XXJX9XJ : :.5X3XlXZ.,.+.9Xw kXMXI.a.M 1 J 2 &XGXmXG.q.' 'Xc c.uX9.`.8.` $ 3.jX>.;.;.;X0 H H.q M H.@X8.sX6 w.CX>XfX> .Xn.p._Xe .M RXD RX1XIX- RXD.aX- R.,X..u m.DXH.Z RX,X1X,XI c ' 3 RX-.` R R.` R RX-.`Xl.% `.3X5.]XlXHXJ., k.u BX-XD c cX,X- aX1 a :.- R.aXDXDXD R R.a a a <.a.a t.}X,Xe x E._.m.F.<X<.gX<.L.S.TXH [X%.[Xq.-XM.M.M.a.[X%.g.TX< nXh `XlXD.9 3.M.a.a cX5.u : c aX- R.}.a R tXD $.a RXD.a $XDXV :XlXI.a R.a RXD.aXlX,.aXDX,X5 x.ZX, cXDX-X,.uX- R 3 RXI cXM.u 3 R RXIXIXI.5 TXV.u $X1XDXlX, $XD RXDXD.D.aX,XD.a.MX- RXI.a R R.M t s._.@X>X> ^..XbX= C.D.N G.N.s.m.v % ^.4 ^...W x.i RXDX,XD RXI RX-.u.aXI R.Z.w.}.wXe.w c.}.8 ` a hXe.F.[X,XDX1 EX+XnXp.p.l.a 3XVXt",
+"XD.* < U CXe v u h RXDXDXV.ZX-.aX,.a 3XI.u.uXIXD uXqXeXDX9.KXX.HX5.KX5.`.8X-.` RX-XlXl xXG...).d.a.a <X,X, $ R R B.H BX1.DX-.a.a < u % %XbX4XGXI 3 3.a 3Xl gX>.@X> v 2.s.w.M R.a h c 3 $ $X5 cX-XVX5 3.u.DXD R.d v...JXp v.M u.M.)Xq .Xb E uXi.;X>Xw [ ` :.HXI ~.8 ~.u.5.k ~Xt.u.kX*.k.k.k.k.kXj.kX9.k.k.k.k.k.k.k.k.k.kXj.k.k.k.k.k.k.k.k.k.k.kX9.k.k.k.k.kXt.k.k.kXk.^ ~.K.r.rXt.k.k.kX*.k.k.K N.k.k.kXt.kXt.k.k.kXt.kXtXd.r.r ~ 3 ~.H.r.8.kXV ~ 3.r.H.8.H.8XVXV ~ ~.H.r.uXdX*.k.kX*.kXV.5.u I $Xx.].5X5.]X3XJXHX< M =.j MXn <XIX1 3XIXI 3.8X1.8.`.` 3.` T.5XJ ' : ).,XJXc.-Xh n.OX+Xw.9XIX,.u `.> b bX0.O.+.O !Xw., D )XI.k.HXI.HX, t.9Xw.EXCXCXm.q.qXCXCXU M.;.; S H ^XiXfX6X>.CXrXpXqXq < <.aXIXD RXDX1.aXIX,X, mXH.D D.O IXJXJX.Xc.9 mX. k KX,XD a R R.a R RX-X1X-X1 :.| k.3.2 I D ` : c.aXIXIX- hX, 3.a.a.a aX1X, R hXD.ZXD.3XlXc 1X, uX,.[.W.9 1 = Xr.g.[.1.h.[XB .-X+.gXp._Xq E._.FX+Xn.i._.F.<X%.p.F x U R.a.a cX-XIX- c $ 3.~.aX- 3X-.aX-.M 3 RXDX,X1.Z B c $ ` 3XK.uX,X5.Z.9XJ.9.-XcX, 8X1X, $XlXlXD h R.M cX,.Z 3XI 3 RX5XMXI.~XIX1X1 3Xl.K.u cXIX, hX,.wX1XDX-X,X,XD 8XD.M RX, 1XlXDXl x.uXD $Xe._ v .X>.C.B 2.s.MXD.M.a UXe.s vXb 2 ^ w.E v EXp.M R.aX,.}X- RX1.ZX-XIX,.9 1 1Xc 1.[XHX, DX*XDX,._XeXp.[X,X1XI.Z yXqXpXB .aXlX9",
+" R.}.M t.WXn.) tX,XD RX1 RXI h c c #X,.u BX-XD t pXn U 3.k NXo.kXV.u ) 3.~X1 3 R 3 `.-.9.W U t < a.} 3 cXM.} RX-X1 B 8X5X-X-.a.a < <XFXA...YXD.}XI #X- h xX+ ..s %.sXe.).*.a.a.`X-X-.a R.a BX-.Z.H.k.uXx $X1 <.w.sXpX+XnXnXG vXp..XnXe u <.MXe JX>.+X#X<., 3X1.H.H.H FXtXx.r.r 3XtX*X*.k.k.k.^Xd.kXxXt.k.kXt.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.X.kXt.kXt.k.k.k.k.kX9 5.k ~.k.k.kX*.kXt.k.k.kXo.k.kXt.kXt.kXt.k.kXtX*.kXt.kXt.r.u.r ~ ~XtXV.K.8XVXV.H.H.HXVXV.H.H.8 ~XV.rXt c.k.kXtX*.kX*X9XI ]Xx m ( )XJ I.3.GXh.O.OX<.1XZ.-.YX,XIX-.`X1XI.`XI.8.`.H.`.8.8XIXI 3X5 3X1 R.MXD.[ yX+.YXw x x.]XJ.3Xh.> &.nXc.W cX, 3.uX5.HXo.`X1.8X1 cXD $ =.> &XO 4 !XOXOX;XUXh.O.T.T ^.@X6 ^ 0X6Xn.@X>.@._ U <.a.a.u R.aXD $X,XDX-XD.ZXIXc :XK.'Xc.'XlXl.' 1 $X5XI RX1.aX1X-.uX-.`X- R.8 3 '.K 3X-X-X-.aX- R.a c :XKXJ # $ c RX-.a.M R RXDX,X,X, U.YXq.Y = [ [Xw.1.[.LX<.h.1.TX#X#X# | ` XB .p.g.FXq.J.F._XqXqX+ X7X%.gX7.FXeXe U.a <.}.} <XI.u.eX-XI R RX-X1X-.a R R.a :Xc m `.9 :.,.%X.XJX..2 T.jXJXc mXcXPXIXDXDXDXIX, h $X,.a.}X, x tXDX,XDX,XDXl $XDX1XV c.k :XoXlXJ #Xc '.a.a $XDX,XD.DXDX,XD RXl.YXDXcXJXc.]XH x h.M E E..X>X>...v.s R hXD.a.M U.M U v.s.v.v w.<._.F h U <XKXKXD :XK IXKXwXJ.3Xc.-XG h 1 h h | cX-XD h E .X+ yX,.`X1.ZXUXpXpX%X7 1.2",
+".a a t.d vXe <.a.}XIX1 RXD.u h.}X- a.a RX1X- R.MXn 2 $XM.X.5Xx.K.r.k.5 BX5X, x $ $.Y $X, t <.MXDXD 3.` h.K 3.` c cX-.ZXI R R RX-.a t.. {..XpXs RXD.a 3 hX,X+.<.. p.N tXlXlXIX-.`X1 B R R.aX, cXDX1.`X5X9XlXDX, sXn ..E UXeXe.ZXK x.W.M.a.a < v O 0.+.h.F.j y y.Z 3 F 3.H.K ~.u ~ 3XV.8.kX*.k.k.k N N.k.k.k.k.^.k.k.k.kXt.k.k.k.k.k.k.k.k.K.k.k N.K.k.k.kX*Xt.kX*.k.k.k N ~X*.kXtXt.k.k.k.u.kXtXx.k.k.k.kXt.kXt.kXt.kXt.k.kXt.kX*Xt.k.u.k.u.rXo.H.H.HXV.8XV.H.H.r.rXVXt c.kX5XtXdX*.k.K.rX5.k.`.D.HXVXDXIXIXl $XcXJXK [.wXpXpXe.Y XDX1.a 3XI.`XI.`XIXIXVX5.u 3XI ).Z.K : ` x.,XH [.O = =X.XJXH.%XHXH g.n.' TX1XIXI.}.`XXX*XI.8.`.8XI cX1 x.G = g yXPXPXU.q.' yXG.E.+ H ^ 2.)X= .Xn / ^.@.E._ E h xXDX, RX, 1 c.Z.Z $XcX5 RXDXIX1X-X,.e R a hX1 R RX- R R R R RXI 3X1X-X1X- c.KX- 3X1.a RX-X-.a.a $Xc ` TX. `.GXD.aXI.e.a.M 3.Z.}.WXe x M.p.YX+.jX+ n.pXHX<.g.gX7 VXMXXXM 3 h.l VXBX% >X%X7.g.< > .mX%X%XB.gX7.F.F.iXeXeXDX, 3X-X-.u.D.HX-X1 c.e R RX1 RXI RXK.wXlXw T $XlXK x :X,XlXD RX,XD UXDXDXD 8X1XDXIXDX,XD h.aXe h.-.M.w.W.Z 1 1XwX. `.u # D.$ }XJ.,X3X.Xw.Y RX, $ xX1.Z 3X,XDX,X, TX,XK 1 c.Z 1 : h.a.a <XeXqX4 H.. O.).M.M.u.a R.} h UXs.s O 2..X2XA >._.i t.-.[Xw kXc.-.u $ xXl R.MX, $ $ :X5X,X3.a 3.MXe v >.jX. c.kXV x.[.F.FXBXp.}",
+" <.a U v.s.M t < a c 8XV :XM a aXI.M R.a RX1 8XeXn.M x :Xx.r.`X9Xt.X.5.5XlXl.-., =XlX,.9 3.uXDXIX1 R.~XV.8X-.`.uXVXI.uX-X1.a.a.M.MX,Xb.s.E vXDXIX1 3 3.} xXrXrX8.Y XBXM cX* :.DX1X, $ $.u.}.aX-XI R :XlXDXD.WXn G xXq U.Z $ sXl $ R.a tX,Xe 0 0X:XAX4XpXnX+.-X5XI ~XV ~.8X*.8.rXV.r.k.k.k.^XjX9.k.k.k.k.k.k.k.kXj.k.k.k.k.k.k.k.k.k.k.kXt.kX9.k.k.k.k.k.k.k.k.kX*.k N.rXt.kX*.k.k.k.kXt.kXtX9Xt.k.kXt.k.kXt.kXt.kXt.kXt.kXtXtX*X*Xt.u.kX*.k ~XVXIXV.rXV c.rX5.KXoXo.^X5.k N.K.k.K.kX5.kX5XVX1 3X,X5 `X,X5.} 1X,.9Xq $._XqX4._.Y.aXD RXIXI.8X1.H.`X1XVX3XIXl.KX5 DX3 V m.9XJXw.1 M.>.GXh.3.%XHX.X5X,.nXD h.uXM.8X* N 3.K.8XI.HXI.8 h 3XB.Y.j HXw g 9XaXL b.w b.qXm b.s /.W.).).s b ^.vX>...F .-.,X. TXJXcXw.-XK mXKXJ 3X, $X,.Z $.ZXlX5.ZXD R R.a R 3X, RX-X1X,X- 3X1.a.K.5 R.u.~XIX-XI R t RX-XlXIXD 3XDX- c.}.ZXJ cX1 h $ RXe._._.mXq.J.FXpX7 [ k.g V .lXM.5XM.8.a.a 3.g `X7X<X%X<X%X<X< > X%.[ >.[ kX+Xp._ pXB [Xl $Xl.5 c TXKXJ.]X3X1 RX- RX1X- RX1X1 RX,X1.a $X5X, R.Z RXD.aXD.aXDX,XIX1XIXDX1X1XD.} U hX%.j [ z [ nXh n M n 1Xe.3 :.5X5.5X3 : : $X, h $.9X,.w xXD.9.w 1XKXK x t.a.MXDXD xX,.a.} < <.iXGXnXr.@X= 2.M.M U.Z 3 RX, $Xs.W.vXn 2Xf W >Xq.m xXe < x c hXD x R TXHXcXJXJ.,XcXJXK 3 `.u hX,.Z._XnX4.[.-XIXI R.lXB >X% n.-",
+".a <.N vXs.M <.a.a a.5.'XJX5XMXl ` $X,.ZX,.MXDXGXs._X, `X5 F.H.u F.K.uXI hXq.9 x.Z.MXlX5X*XI.`X-X1X1.H 3.8.`.8.a.8 :X-.aX-.M R tXD.s ^XfX+ U RXD.` 3 c.aX+X> H yX..2 , 6X# I.GX.X,Xl $.uX-X5.a c.9XI : h.i.MXL v 8.9 < $ #XlXl.uX5 c BXD t._..X>...{ W.LX: MX0.wXDXI.u.8 3.k.`.u.r 3X*.u.k.k.k.kXg.k.k.k.k.^X*.^.k.k.k.k.k.k.k.k.k.k.k.k.kXt.KXx.k.kXt.k.kX*.k.k.kXjX*.kX*.k.kXt.kX*.k.kX*.k.k.5.kXt.k.k.kXt.k.k.kXt.kXt.kXt.kXt.k.kXt.k.k.uX5 ~.8Xd.5 m q D 5 Q ) 5.& 5.A q ] q }.k.| q 5 `.u.] D.OXhXhX. 1 < #XK 1Xp.-.<.F E x R.}X1 3X-XIXI.8XV.5.5.K.uXl RXIX-.8X5.a RXl nXmXwX0.OXJXl : m :X1X1.HX1.H D.5.8XXX*.8.uX*XI.M.iX%.[X2.p.<X2 WX0.9 bXPXL.0.O.> HXmXC b uXe.W.N 2 O bXC.E [.pXw $Xe.M hXD.aXDXDX-XDX,XDXI tXI aXHXKXH ` :.- :XlXc TXlX- a.a.eX1X,.~X-XIXl.~ RXI.8.e R aX1.a RXDX- R.aXI RXIX- c.a 1X,XD $X,X, EXe.F.pX%.g.gX%.g [ X3 XM.l # h.a 3.aX-.a.aXMXBX7XB XBXBX7.g.[.g.g.[X3 XBX7X%X%.F v.Y =.-XH.'XKX3Xw ) T.u x.uX-.aX1X- R 3XDXDXDXI x 3XDXl.ZX,.w.ZXD.aX,.ZXDXD $ c $X1.DX1 t.M <Xp.S [Xr nXh.x.YXp.YX+ v x h : :XlXVX5.HX1 $.,XKXe.-XK kX..9XlXKXKXU.,.'XDX,.M.MX,.a cX, <.a < E.FXqX>.@ O v.)XD.MXe.wXlXDXD 'X,XsXn JX4 S z z ..m EXe EXq xXcX. x.[XK.-.9XK.0X5.DX1 # ` $XIXI RXD E._.F.p XI.`.a XB.p E E",
+" <.WXG.W t <.aX- RX1Xl 3XK `.,XcXwXJXJXc.-., &Xw.jXl #.$.`.`XV c.k.k : `X, `XGXq x R.H 3.`.~.`.8XK.H.D.8 :Xl.5 :.$ 3.a R.ZX, x $Xp..Xf w.EXGXlXIX- )XDXD.E b.sXeX5Xx.u.K `.i # #XI R.~XI.~ :Xl.,XcXw k [X+.jXe U a.5.K ) $XK.KXX '.ZXe v .Xf.{X8 S MX2.jXG.Y.M RX1XV.8.K.r ~XV ~X*X*.k.k.k NX9.k.k.k.k.kXt.k.k.k.k.k.k.k.kXt.k.kX*.k.k.k.k N.kXt.k.k.k.kXt.kX*.kX*Xt.kX*.k.kXt.k.k.kXtXtXo NXt.kXt.kXt.k.k.k.k.kXt.kXt.k.k.kXtX*.k c.k.k.k ~.H.8.kXxX9 (Xx.$Xx ) ) ( 5 ) 5 ) ).5 q :XJ.].] DXhX;XHX<Xc.1X# h x ` XMXp.F.m .Xq.Y U.aXI 3.`.`.`.H.`.`X1.`XI.8XDX1 3XIXIX1X1 xXKXU !XU $Xl D.2 DX1.H.u.D.HX-.5XX.k 3X*.5 qXJX3 R.l.[X<.pX2.xX2X: M y v.!.nXU.G.+.qXCXC.j y.jXK H ! 2 0.@X>._.iXeXe.M <.a t RXI.ZX, 3X1.MX5XJ.a $ $ :XK T.'XK.9Xl T cX,.aX-X-X, 3.a.aX1X-.u :.u.K 3X1X-.a RX- a RX-X-.a RX-X, aX,.aX-.aXD cXD.W.}.m.pX<X7 >X7 .lXBXB VXM h a.a.a R 3X-X-.a.a 3 ` 1 #XBXMXM #.[.g [X3.l X3X3 XBX+ n.<XG._.9.Y h R.MXI.e.a.a R cX-XI B : 'XHXlX5 x : mXDX, $ $.ZXD $.Z xX,.aXIX1XD.ZX1X1XI cX,.} x.FXq.xXr y n.jX+Xp.<X+X4.Y 1 x : 3.u cXDX1 h.MXeXc 1.YXK.'Xl.MX,X,.Z tXDXDXD U.M h.W hXD U.}.} U.FX4X+X>.@.sXe u.w sXlXw TXK gXc.>Xw M W.4 z WXr....XqXnXpXr.Y._ x $ x.Z tX, 8X1XD B.MX, xXIXI.~.}.M._.m >X% c c : U.[.[X<XB",
+" u xXL uX-.a R.aX-X,.}X1X-X- B $ :X,X, U U v oXG $ cXK 3 R.8.`X9XV.uXl `X,XrXp s x : :.K.k cX*XV.u cXIX1X-XI.H :XD.a a c.}.a.a.MXnXnX:X0Xn.0XJ.D.HX5X1Xl J..XL.}.KXoX1X-X1 t.a.a.aX-X1X1 BX1XVXDX1 $.a.FX7Xe v v $ c.a VX9XX DXw x.- U.j.Y.E.+ M.TX: ^X2.;X>X+ n.9.WXDXI.8.5 ~.r 3XV.r c.kX*XtX9.^Xj.k.^Xj.k.^.k.k.k.kXj.k.k.k.k.k.k.k.k.k.k.k.K.k.k.k.k.k.k.k.kXt.k.kXt.kXtX*.k.k.kXt.kX*X*Xo.KXt.k.k.kXt.k.k.kXt.k.kXt.kXt.kXtX*.kXtXt.k.kXt.HXV.r.8.rXdX*Xd.uX*Xd.uX*.kXd.k cX*XV 3.H : 'X1 $Xy.O.j.9X+X<.,.[.a 3X, <.FXqX4 E._XG .w.aX, 3X-XIX1.`X1XI.` 3.`X-.8.` 3.`X1XV.H.0 m g ! g $.9X1X1Xl.0.|XJ.`.H c.K 3X* D VXX : DX3XJ | [X% W [ W n n nXwXC J.q.> & b O v.WXD.w $ xXG.n O J v.<._._Xq x t.a t R.a R cX- aXJ a.9 :Xc :XH aX,.a.e R tX-.* RX- RX- 3 RX-.a R a.aXI :XV 3X-X1.a.e.a.a R.a.a RX-.aX-.M 3X1.a.a.uXDXD 3Xe._.FXBX%X7X7 XB.,XBXMXM :Xc xXc.-XlXc ` c <.}XM # $ h #X9 XXXBX3XX h.a cXB ` X7.[ >.F._ 1Xe.a t.MXD tXI R.a $ a.a `XJX.XcXH T.,XKXIXl RXlX,X,X,.MXD $ aXD hXD.uXDXI RXDXD.M UXeXqXr n.j &.+ nX>X+.xXpXn.Y.Y $ xXV.a.a U $ h u.M.}.M U.M h 8X,.Z.MX,.a R.M.M U._ 1._ 1 U.wXeXp.1 W.x z.;.;Xr nXU = nXPXc.].'X5 xXeXGXL v 0Xf.;.;X4.@ . v.<Xe._Xe EX, h.aX, CXD BXD a.a.i.}X1 RXVXD UXq.JX4XH 1 DXJXw.O.1Xw",
+"XGX+ <.a.aX- RX-.ZXIX-.a.a RX1 BX1 R.a t uXq...* RXl.$ 3.`.}X5X5.K RX-.M.9 1.W.Z $ c.K.5XX.KX9.KXlXX.~X1XIXV $ : : 1XJ 1 RXJ x.9XeXi ^.E.W h : 3.uX1XD 1Xp.s._XI :.`X1XI 8X-.a.aX-.}X1 8XIX, D #.DXD 1 h.1.<.@ b y c.`XV ` x x.Y.9.i.w v.EX> z.T z.;Xn.@ H S S.@XpXcX,X1 3.KX*.r.r ~XV.k.k.k.kX9 N.X N N.KXj.kXj.k.k.k.k.k.k.kX*.k.k.k.k.k.k.kXt.k.kX*.k.kXt.k.kX*.k.k.k.kXtXt.k.k.kX*.kXdXt.5.k.k.kXt.kXt.kXt.k.k.kXt.k.k.k.kXt.kXt.kX*XtXoX*.H.HXtXo.uXtX5.r.k.kX*.k.kX*.u.H.rXV.H 3.`.3 Y.%Xy K.GXh.OXZ.[Xc $X-XK $ :XcXHX4.xXpX+.i.9.l.aXIXI.`X1XI.H.8 3X-XI 3XIX-.8XI.8X1X1X5 !.0 gXw.2.'X5.].2 D.2 g.5.H c )X3XJX3XMXMXMX3 V 5 V V XB.9XB .- n.>X0 & b 0 0.WXs.MXK.%XlX; = 9 & M.x zXpXnXeXnXq.M < a.a.` hX1X- a.MX5X, #X,Xl R t R.aX- R R R R.a R.a m hX,XDX, c.u 3XJ :X9 c.aX-.aX- a R a.aX-.a.aX-.~ h.a $X5 h aXD hXr >XBX7.[X7X7 `.SX3X.XcXKXUXl.9.,Xl $ ` `XI.a.aX,X- <X- a.} 3 c #XM h.a a.a.a XB [ >.m p xXe t.} h.}.a.a.a.a $ $X,X, xXD $X5XD RX,XIX, $ x.M.Z $.Z $ R 3 <XDXD $ 3.ZXD.} UXqXpX+Xr H.9 9 y nX0XrXrX2Xp._.Y h.M.M h xXpXpXq.w.FXeX, U.M.M xX,X,.aXI.MX,.} UXpXq.YXp o._._._Xp.TX%X:.TXh.;X>.w._ hX,X, x $ xXlXl.Z.Z.WXa.=.s...@ H.x.;.J SXn p._Xp.9 U.M U R.M < U.i U 1 x.aX1XIX,.}XeX4.F.-.j $ $ $XlXKXK",
+"X0X0 h 3 <X-.` B :XI a.}XlX-XDX1X1 B a UXe.. E.M R.k.5.$ #X*.~.u :.a.a.Z._.M.M t R.8.~.k.`XI.a cXX.a 3.} `XI ' : 1XJ.M x $ 1 g.9Xr M SXw 1.a.u.uX*.8X, yXAX6Xq h #.u.aX1X1 BX1X-X1.a.eXD a R.KX5.u.u.Z .p.;X0 zXw.ZXI.} cXe v.).aXD c U vXf.C.<X4XA ^.. ^.x.4 vXG y hX,XIX*X9 ~XV ~.r.k c.k.K N././XkXkXk N.k.k.k.k.k.k.k.^.k.k.k.k.k.k.k.k.k.k.k.k.k.k.kX*.k.k.k.k.kX*.kXt.k.kXt.kXt.k.kX*.X.kXt.k.k.kXt.k.k.kXj.kXt.kXt.kXj.k.kXt.kXt.k NXt.r.k.k.u.k.k.K.k.kX*.k.kXV ~.r 3XV.HXV.`XI.2 Y.O !XOX; @X;.O.>.Z.HXV.k.~.2X,Xh._Xp.LXe v 1 1X,XI.`.8XI.`X1.`.` 3.` R 3.r.`.`.H.H.H.5 g ! T.] Y YX.XO.2 g ] @.%XJ }.$ | :.l ` k V | `.[.,., [XH k Xc.j.E b.v.v ^.vXL.NXDXcX. : kXw.9X0Xh H.y.x.<XnXe.F.M tXDX- R.8.aX1XI.a.a UXD.aX,XI.a R B.a R RXD R R R R T.9.OXKXHXJ mXJXc }XHX$ cX-XD aXD aXD tX- <X-.a.aXD c T :XDX-X,X,.wXh.YXBX+XB.[X% ` `.}X,.eXl.a R.aXDX-.a.~XI.eXI R.}.a R R.aX-X-.` RXIX- R R.a.a.aXXXM XB.g.pXq._Xq h.WX, < t.a.a < RX-.a.a.} $XD.aXl $ 3XDXD hXl $ $X,.aX, x h c.i $ $ $X5Xl x x.YXq.j = HXmXm ' ! v y.@X0 WXpXn.i x.iXn.Y.FX4.< .W x._ h.MXDXe xX,X,XDXD.aXD._.F.[.x.YXpXn J.<X4.< .X4.<.y.EXp o xXs UXDXDX,.ZX,.M.} c.D 8Xs 2 2Xi ^ ^X6X>.C W.@ .Xp._Xq U.} U.a E h._.mX7 x UXD R B.n BXGXp > [ 1.0XJ.|.DXc",
+"XC.M < c.u 3X,.5X, #.a cXI 3XI R R.a.a.M v p C.a.u :.8XX.`.aX- $XM R.N 1.W < a.a.`X-Xl D 3.uXM $X3.} 3XIX-X1X- aX- a.aXI.a BXD.W EX>.T M.YXIXIXV 3X5.Z y.4X: MXw # :.'XJ 8X1 TXcX1X, T.9X5.Z 3.K.0X-.a.MXsXr.EXG.j.MXX $.YXp.< v.MXI.a U v.W.sX4 % %Xb %.<.;XfXi.@.- R.aX* ~XXXt.r.rXV.u.k.kX9.K.XX9.K N.X.kXt.^.k.k.k.k.k.k.k.k.k.k.k.k.k.k.K.k.k.kX*.k.k.k.kXtX*.k.k.kXt.kXt.kXt.k.k.kXtXtX9.r.kXt.kXt.kXj.k.k.k.k.k.k.k.k.k.k.k.k.kXt.k.X.k.k.kXtXt.k.rXtXtX*XtX*XtXV.8XV ~ ~ 3.` 3X5 TX.XP.0 'XU s 9 TXOXDX1X1.`.` ` D.1.p.j MXw.p.-.[ 3 R.}XI B.HX1XIX1X1 3XI 3X1 3 ' (.2XlXU gXO @XyXyXy @ 4X; @ !.G Y K 6 |X#XXXMX,., XHX# 1 |X# .3 k kX3 V 1.[ o J 0XiX=.WXsXs.MX1 hX1X1.a R.WXn.s.@X6Xp.<._XeXGXD <X-.a R 3X- aX, R.aXD.a.aXD a R.aX,X,.a R.eXD.a RXcXl 1 x c 3 h.K :.KXlXlX-.aX-.a t.a a R.a R R RX-.a 3XD.a R RX, R U y z.h.hXhXHXH.[ 1 R RXD :.Z.aX- R $X-.aX1.}X- aXDX, R.a R RX1X-X1 R R R t.aX-.8.}X3 XMX7X%.p.FXn.iXe.i.i h.M.}.M h.i h U.a hX,X,XD $XI c.a $ c.9 UX,.M.MX, xXq x hX,X, UX,Xe xXBXrXr M =XmXmXP.0 gXG.w M = [XpXGXpXpX+.<.x.p.-.j.-Xq x.wXq 1.M x x x U.MX, xXpX2.p M MX0.; M M MX>.xX>.xX4...WXG.M h.} h.}.M.} $ 3XIX1X,.Z 8.N /.s.v.sXb.v..Xf r WX+Xq._.m U U E.m.m.FX+X<Xr.Y.j.w 1 DXc k z.g.1Xw T (.0.kXV",
+".M.M RXD c $X,XD R.aX5 1XJ :.O.Z.M.M.W x v U R R.Z.8.5X9.a.aX-X5.-.}.w xXsXMXMXMX- :.u.|XI aX.X3 :.}XM.3.0.~X1 ).u cX5XMXDXI RXD.sXn.JXn.E hXD.uXM :X+Xn...y 1 xXl DXJXH.ZX-XcX3.uX1 T.% xX1 h YXo BXVXK.M.) v.EXG.d.M U.-.@.s._.d.} UXD.W v vXG p U u.d ..xX6 % y s.MXI.8.rX*X9.H.H.H.r.KX*Xx.k.kX*.k.^.k.k.^.^.k.^.^.^.^.^ N.^.k.kXt.k.kXt.5.k.u.k.k.k.k.kX*.k.k.k.k.kXtXt.k.k.k.k.k.k.k.K N.kXt.k.k.kXt.k.k.k.k.^.k.^XtXtXt.k.XX*Xd.kXtX9Xt.kXt.k.kX*.k.k.kXt.k.r 3.rXV.HXV 3.8 ~X- D kX; @.O.qXy gXK m.G.5XIX1 ' :X,.iXwXn._ vXeXG x.F h.}.}.`XIX1XD.D D XJXK.S.% =XKXU yXO.> s gXUXOXU.].0 TXl.'.'XK gXHX..Y.3 h.a.} <.- `.9XcXK :.9X, xXKXMXMXMXcXr.s.v / 0 vXq $ 1X1Xl.Z : x x x M pX>X>.< ..m p._XqX,.a <.} 3 < R RXD 8 R.Y.aX,.aX-X,.w.Y $Xe.9Xl :XlXl.} tX-X1.`.`.u c R aX, < t <.a.a < t <.M R a.aX-X1 a.a.a.a.aXD.M.M._XG.[XhX%.SX<X. kXM x 3XDXI aX,.a cX-X-.`X- R.aX-X,X-X- R RX1 RX1 R RX- RXI R.aX-.} `X3 1XB.g.[X4 >Xe._._.i.m.i E.l._.iXq E U h.ZXD R.Z RXIX, h $X, U UXe x x._Xq._XeXq xXqXqXeX4X7 WXr M M.qXm '.9XKXL y.j = =Xw H.jXw MX0 & =XwX0X+XGXGXpXnXqXqXpX+.FXqXp.p.jXr M.;.j.j HXm H.q H HXC M ..Y.Y.jXw.Y.9XK t RXD $ cXD.aX- $ R t CXD 2.s O.= 2.v 0.4X8.< ..m._Xq EXq.JX2X% r z W.-.-.,.-.' 1 y xXr h.i.H.8XV.`",
+".a R < t t R R R.a.a.M :X. 1.,X.XH = n.1XU.9X,.ZX- R # 3.`X-.uX5Xe.M.' U.aX,XV c.` 3 5XJ.u.5XH.% #XI.e.,X1.Z.0 YXl 3 c | `.aX,X. C p M . J vX,X5.w.YXn.s.s.).j 3X-X1.K : 3 3., `X,.~XJ D.0 cXlX. :X1XlXcXD.M.NXGXnXpXe p vX>Xe u U E.MX,XDXa._.) * C *.d.).J . ^X+ x.aXI 3XV.k.X.r.H.u.HXV.kX9X*.k.^.k.kXj.^ N.X.X.oX9.o.X.oXg.o N NXj.k.kXtX9.k.k.k.kXtX*.k.k.kXj.k.k.kXd.k.k.kXt.kXt.k.k.^.K.k.k.kX*.kX*.k.kXj qXk.z q./ N NXo.X.kX*.k.k.XXt.k.k.k.k.kXtXtX*.kX*.u.r.H.8XV 3.H 3XVX-.] DXy @ @Xy.OXw.2 4.GX5XIXIXDXc.9.9.p._XqXe $XnXe._ <.}.aXIXIX1XD : 1XH XrXrXw y.q 9 o 9.! x.n.' $.n.' $ 8.M '.9XwXy.YXl X,.a.aXDX-.ZX, t RX,XD.*XD a a 1 x .jXn 2 /Xp.>.j v.-.w m ` n '.Y.E.T.) ^.J %Xb.mXAXn._ E E < h a.aX- RXI RXl.-XwX,X-X-XcX, 1.-XcXc.9Xc ` :.a.a.aX-X-.` c 3X- t < hX, h.iX,X, U.M.} U h.} < < <.} t.a R.M < UXeXB.p nX7XB.Y 1 1XK k.-XJ TXKXJX1 cX- R.aX-.a aXI RX, R R aX- RXD.~XI BX-X-X- aXI.a.aXlX7XlXB.p.pXB >X+ >.m._._._.FX4Xn.FXq._.WX,X,XD c cXI.a.M U.F xXn x xX+.pX+X+Xp.@XpXpXpXq.FXpX+Xp.j &.>.Y ' s.0 CXl g.jX0 = =X0X0.> yXmX0Xw ! = MX0.YXnXnXpXn M._._Xp.YX> &X0.jXG sXG b o & o &.+.+.+ zXr.jXG.9.M C.M RX, h.ZX,XI R h.a R.a 8 tXs 8.N.=.v 2...@.x.< % %._ . . S.<...{X>Xn.F.W.}.a t.M s xXqX4 hXlXoXV F",
+".WXe.W.W U U U U u.M u UXe t t U u.j.9 n x y.Z 3X- 3X5 cXIX- xX5 hXGXeXD a R 3 BXI B.~Xl.5XDXl.a 3.a 3Xl.H B :.9 `.a hXH.,XV 3XJ tX,XGX>.xX> vX+.[.jX>Xn._.Z R 3.u hX*.e.` R.e a.a 3.} 3X,X1XJ c :.K.Z :.M 8.M.NXe.@XnXn ..YXnXGXG x.YXpXp.<Xf .XAXiXn v bXp.+Xq y.ZXDXI ~.8 ~.kX9.H.H.HX*X9.K.r.k.k.k.k.k.^ NXg.XXgXg.X.oX9Xg.X.b N.^.k.k.k.X.k.k.k.k.k.k.k.k.k.k.kXt.kXt.kXdXt.k.k.k.kXt.5.k.kXt.k.kXt.kXt.k.kXk NXx.XXk.k NXgX9.k.^.kXd.X.kXd.^.b.bXo.kXjXd.k.r.r 3 ~.8X5.k.KXV c cXI.w s ! !XO T s '.0XyXVXIXI `Xc XeXn._Xp x.WXp h Xp.9 ` 1.a.`XIXIX-.MXwXwXGXL b 9 & b.n v s.9 $ : R R B.Z.Z RXK n KXH.G VXM c 3XMXI R RXD.ZXIXDXIX1 R $ x ` .-X+ v.s / 0Xn v vXLXe.WXL.W U.W vXn.v ^X4X4.<X>.p.xXn.mXeX, < h a.a.M RXc.9Xc.e.u.a RX-X- R.M t R R t BX-X-X-.a aXIX-XMX5 < <.M x E hXe.i EXeXe E.i E h h < < < < UXe.iXeXe.m >X<.gXpXB Xq.} x $XDX,X1 `.] c R 3 B R 3 c 3 c 3 cX-X-X5XlX-XH :.] 1Xl : T $ R RX- < c., 1XB.gX7X7X%.[X+.FXq.F.pXr.g >Xp._._Xe x U <.M h $Xe U pXnXnX4Xr.j z nXr nXrXw.jX+ v .XnX+ J o.E & gXK '.9.Z sXUXUXU & M.> n.9 yXU.' y vXP.j.j nX>XpXnX+ & vXp.j M M.>Xm.Y.n v s s b H J o J.E 0X=.N C C.W U.Z.M t.M $ hXDX,X1.aX,.e a a R CXD.N.NXeXGX0..XfX2.@XnXi 0 S ^Xi.vXf HXiXnXG h UX,XD vXc nX<.-XH q.$.u",
+"._....._...s.m.s._XeXe..Xe p p.N.W._Xn vXG.9 h.W $Xl 1Xw.S xX, sX+Xc h.ZX, B.ZXo.0.kX1.~.8 #XD.~X-XI.~ R.e.a.a R.a t.aXI.aX-X1X1 RX, s v._.@.< ..sX4._.W v $ RXIX- R cXV # I q.KX-.a h.a.}XD 3 3XX.l $XD R.N.M u uXF * *.W u C 8 C.N u t.d.x % { %Xf.@.EX>.EXG 1 XDXIXI 3XVXVX* ~.5X9XV.r.5.r.K.k.k.k.k.kXj NXg.X.oXg.X.XXg.XXg.oX9.b N.^ N NXt.k.k.k.kXj.k.k.k.k.kXj.k.k.k.k.kXt.kXd.k.k.XX*.kX*Xt.kXt.kXt.kXj.kXtXjXj.kXj.k.k.^.^ NXo.^ N.^.X.X.X.X.b.X N.k.k.k.r 3 ~XV ) ( I `.AXJ.2.G 4XyXy !X;X; ! YXJ x 3 1 $XwXwXGX+.j.gXe.FXB.F._.i._Xe : c.a.` 3 3 x.O &.q.+ b y &.+XUX.Xc.3Xl mXw $ g mXl TXPXJXc `XSXHXH., c : :X,X1X1 R R 3 $X.X. T.].[ `XB.jXG.v.. 0.s 0XG . J v 0 v 0 ^.. 0Xf wX>.@ >.JX+.x.pX+._ EX,.M aXH.9Xl.a t.a hXIX5 c.~ R a RXD t R t c R.aX- 3.5 c.~X- R t.a UXqXp.[.-X% >XBX7.g.[ >._ E E._XpXp.FX4.F.F.m.m.F.F.F.g.gXB 1 h.a aX-XI BX-.aX- c 3 cX-.`X-.eXDX-X,X- mXcX,XD RX-X- aXI aX-XI.a.aXc `Xc V.h.S.hXZ.T.SXBX%.g nX+ X+Xr [.-XpXe.FXqXe x._ EXqXqXn.j [.+ [ =.YXrXm.j.9 o &.> z = MX0Xr &X0.> g s s.DXD.DXI U.w.'Xc y.9XGXD $ s s.Z.j.9XmXGXU.+.>X0.+ = = nXm.Y o.9 xXs 8.MXL b.!.q O 0Xi 2 2.s.=Xe.W.w.s tXD t.w.WXDXDXD BXI.Z RXDXD hXl.9XKXGXe C.s OXnXi 0 ^ 0 ^ 2.BX= { HX> v.;._ 1.W $XeXGXG >.MXI.8Xo.H",
+".@X4X4 0.. .....Xb % %..X6.s.m...mX4..Xq.@Xr.jXpXp._X+.YXr.)._._ v.-X, h 3.uXVXl DXVXl.K h c a h :.uXI.e R R.e a R aX- R RX-X1 3XV $ C.W v.JXA % %.. v CX,X1XI.~.aX1 a.uX9.KX-X-.a.a c h.a xXI.aXM 3 uXD v vXe p...sXb p %...).) u U uXFXAXfXi.J.j XeXeXL.Y =.OXl 3.u 3 ~ ~.8 ~.u.8.kX9X*Xd.k.k.k.k.k.^.k.k N.XXg.XXgXg.oXgXg.XXg.XXgX9 N.z.kXj.k.k.k.k.kXtXj.kXj.kXd.kXjXt.k.k.k.k.k.k.k.XXt.kXt.k.k.kXt.kXt.kX*.k.k.kXt.kXj.kXt.^ N N N.^.^.o.X.b.b.X.o.o.X.^.r ~ ~XV.8.u.8.u.uXVXV 5X.XU.0.0XO m.' $ !.2XKX. kXw.S [Xr.F.WXqXe < t U._._ x 1 1XD.8XIX-.aXcXmXr.+.h.q.q =XyXw., :.O #.3 mXKXw T.O $Xw.D sXK n mXXXc c R R.~ RX-X1.aXI.ZXV $XJXh }., [X<XG o & S H.;.x ^.@X6XiXf %X6Xi w.@.@.@X4 >Xn.pXpX>.p.F.. E E.-X, h.a R.a.aXKXl V.]X3 D.]XcXKXK., TXcX,X-.8Xl.`.aX-.} R.} EXe.iX+.gXBX7 [.gX%.g.[.p.<.F.F.F.m.m.FX+Xr W.g._._Xq.FXq.FX7 V x 1 R.a.~X-XIX1.a R.a 3 R R R.aXI R.u c 3Xl.e $ B.}.Z RXIX-.a RX- RX-.9 :.9XM 1XK.[ nXH.,.-Xw.,.[.-.,.,.- nX< WX7.[.p.[XpXpX4X4X4X> W.+ =.9XGXG.9XG 9.' s vXG.!.jXC y.j & H y.9 '.Z.D 8X, sX5.wXe.ZX, 8 R :XK g gXPXwXwXU.+.>X0 y.jXm.'X0XmXm.9.w.D RXDXD C.D v.q & b 0X=X=X= 2 O 0 O.sXL v.N U.Z.Z.Z.MX1XI BX,.aXKX3 `Xc k $ R.M u C.N 2 b.v b.@.v.= 2X= 2 ^ H ^Xq._ U h R.M ._X+Xq 3XV.HXo",
+".;.;X8 H.4.xX>X>X>.;.x.@.xXfXfX6XfXnXf .X4XnX6XpX> M zXr p...s ..-XpX, 3XM.aX-XIXI 3.KXI cXD $Xc.9 $X, $ 3 hX,X,XD 3X,XIX,.Z.Z.D.uX-Xl vXn.C pXb.d u.Z a RXI.~.8 R R.KX3.~X* ~XIX1XI $Xw x h aX, hXK x v._.. v......XiXb...J %._.s p pXAXb.C.@.EX,.}.M.aXq oXr.Y 3.`.H 3 ~.u.rXV.8X*.r.5.KX*Xd.k.k.k.k.k.k.k.b.XXg.X.X.o.o.X.o.XXg.XXgXg.o.z.^.^Xo.b.X.b.^.^.k.^.k.^Xd.k.kXdXtXd.k.kXt.k.K.5Xt.k.k.kXt.kXt.k.k.kXj.kXtXtXt.k.k.kXj.k.^ NXg.^ N.o.b.X.X.o.X.o.b.X.^X*XV.r.8XV.HXV ~ 3XIX5 4 ]XO ! TX5 B R 3XD $ $Xw.[ nX7XpXp.<XqXq UXq.Y p vXn.9 UXJXc cXlXc.O.>.jXCXZ.G.+ y g '.Z.Z cX5 $X,X,X, $ 8XD.'XD.'XlXw.,Xc : `.}X- 3.aX-XI RX- c.a RXDXKXMXhX..1.L.+.T M S H.@.4.{ w.4.4 w w.;.; SX>.x.jXnXq.<.<X+.xXn.m._Xe.F.M < < t <.aXD.~Xl c : c.a : x.Z $ x $ RXIX-Xl.a.aX-.M U E.i.m.F k.p .[XBXM.F.FXB.[.p.FX+Xq.FXrX%.g WX% > > >.gXBX7 kXB # aXI RX1.eX-X1 RX1 a.~ c R.~ R $ : $ D.eX1XD 3Xl aX-X1.e R RX-.M.a.aXI.M 3 n $ xXw 1.9Xc.,.,Xw |.S [Xc V k.gX%XB.F W.pX4XnXp.<.E z [.j y.'.W.D.ZXD.Z.'XGXP b.' bXG.9XmXK.9 g 'X, 8X1 'XD B R.MX,X,.aXIXD.0XJ $.Z $Xs.Z.W sX+XK.' y.9 9Xw.n.DX1X,XDXDX1 8XD.'Xm H.q.v 0 0 O.E &XC.@ O.v J.).=Xe.WXaXD 8XD R.HXIXK : : 3 3.}.a R tX, C.NXL O v.N.W.N.N.=X= 0.4X2 .._._ < R R.wXpXqXBX1.8 ~.H",
+"X>XmXC y H H H & HX0.; HX0X0 M M r.+X: SX:.+.+.+ r.;.y.;Xn .X6Xn W.Y 1 U.M.M t.a.a < <.a UXD.- x x.W t <.* aXI aXIXIX1XDX,XD 3 x 3.D xXw M.TX>.pXn.9 nXlXlXlX, h.DX1X,.~ 3X- RX1.~ $.D 'X.XG.Y.[Xe y.jXpX>.<.<.J.@X4XpXn.xXnX6 {Xi 0.<.sXpX0.Y.w R 8X1 y.E.E =Xc.}.8XV ~.HXV ~ ~.u 3 ~XX.X ~.r.k.k.k.k.kXjXj.^.XXgXg.XXg.XXg.o.X.o.o.XXgXx.z.X.X.o.XXg.X.X.b.X.o N N.b.X.bXo.k.k.k.kXt.k N NX*.k.k.k.k.k.kXt.k.k.kX*.k.k.kXt.kXt.k.k.^ NXkXd.^.X.o.o.o.X.b.b.X.b.k.r ~.r 3.r.H 3XVXV.`X1 T T '.DX1X1 ) ) RXDX, xXc y.SXc.L.1.F v xXq.1.+X+.Y.- U.Z :.9Xc =X;.OX0X0 o.; =.G.+ ! 8X-X,X1X, c.M < R RXD.M.DXm.w sXKXw.- `Xl `.aX-X-XIX-.aX- c B.aXIXD hXM Xw.S z z.+.hXf.@Xf.@X>.C.@X>.xX>.@ MXrX+Xq.M uXeX4XpX2Xr.<Xn.m._Xe E hXe.}.a.} hXDXI aXI.a 3 aX- R RX- RX-.` c c.a.i h.iXeXq X+X%XBXM `XX .lXM.FXB.[XBX%.[.[.[Xp XBX7.gX%.g.y.S.gXBXBXl $ a.aX-X- :X- B R R.~XM : $ #X5 `XJ mXJXKX3Xc.,XJ I : xXl.Z 3X, :XDX, h.aXc $ nXcXH :XH kXJ k mX3 $ #X3 VXcXB kX< [.SX%X>X> H M M =XU.j.] g $X,.wX,.Z :.0Xl.'.'XG.' s x.w $XD.w.Z.ZX,XlX1XD <X,XDXD $ $ 1X5X,XDX1X,XDXD.ZX, s $.W s.Z.M '.DX1XDX,.H RX1X,.Z.!XG y.q oXC.; HXC.q H & H J ^ ^ 2 v.WXs.ZXDX1XIX, K.Z :X,X1.~XI.-.e R t.a 8 t 1 U.M.M t.*.NXa 2 ^X2X4 ..i <.a.M hXGXqXB 3XV ~.H",
+"Xm 9 s v.n 0 s 0XG oXG oXGXmXC.O.h.+.TXh.T M M.+XrX0 z.4.;.4X>X0XL y v.w._ UXe < < < <XLXeXe.YX+ v.sXeXe U.a aX1.`X1X-XI.Z.a t c R R.WXGX> .._ s.9Xc I.%.-.9X.XU D m.DXlX5X,X,.u $ $ $XKXw.Y.-XrXGX0Xr.TX<X+Xn.YX4.Y.pXrXr.<X+X>.@.EX>.< W xX, R.H 3 s o oXrXG hXI.r 3XV.rXV ~XV ~ 3.rXX.K ~.KXd.^.k.k.k.k.k.^.X.X.b.X.o.X.o.X.o.o.XXg.X lXgXg _.XXg.X.o.XXg.XXg.X.X.X.X.X N.^XtXt.kX*.kXo.k.k.k.k.kXj.kXt.kXtX*Xt.k.k.kXt.k.k.kXjXtXd N lXd N.o.b.b.X _.X.o.o.X.kXtXV.r.H.u.k.r 3.rXIXI.HX1X1.HXIX1 DX1., D.9XwXc.[XH.F n nXG XwX<.jXw xXqXGXB.i <X, sXG 9.q & M.TXr & y gXKXO.'X1 $.a cXD.a R R.a.Z v.'Xm o.qXrXU.Y `XM : #.}.aXI.a.a cX-XI t 3.a #XM `XrXr.YXpXpX4X4XpXnXGXp.@.@XG.YXn [Xr.YXe < <.WX+Xn.<X>X2.xXp p.m._ E E E.W < U $ h R.aX-XDXD R RX-XIX- RX- c h $ h._Xq.F >X%.[X7XB.l hXXXM 3.a #XMXMX7 k.[XB.[ XM V [.1 [.SX<X#.T k | 1 3XI.aXIXIXlX, h 3 h c.9 kX..%XK ` m., DXK : 1.uXl 1 : $X1XIXDX- $XD R aX,XDXK.Z : $.Z c $XD 3.a.aXIXIXD 3 `X3XXX7XH.[X< W.; M &.j.j yXP !.w ! g D.]X5.`X5XD RXD 8.M R.MXD x x.ZX,.uXDXI x.ZX5XK $ h $X5X5.].K ` ' k `.,XcXH.3 yXD.wX,.Z.w x 8X,X1XI RXD $ RX, s sXC.qXC oXC H.q O 0 wX0 H J 0 0 v UXD hXI.a $ R.aXI B cXK TXlXDX-XD.aX- a c h < h hXJXsXe.s .XfX+ .Xe UXD.aXe.F._X+.uXI.H.8",
+".DXl '.w.nX5.n s.0Xa s.w.n x s.!.'.j.! b s b b b 9.!Xm.!XmXCXC H y vXmXp.s..XpXb E.dXeXnXGXn g.Y ...._ pXe E R <.eX-X1 3X1 R a.Z R 8 U._Xn u t RXI.uX5XI aX- R.aXD cXDXD R R R.MXDX,.Z.9Xe._ vX> 0.@.jXrXq $ hXe xXG s h $X,XV.9 s v $ 1 #.aXV.u 3Xe.E.YX> U hXI 3.8.r.8.HXV.8XV.8 3.r ).k.r.kXt.k.k.kXj.k.kXd N.XXgXx.o.o.oXg.o.XXg.o.o.QXg.XXg.XXg.o.X.o.o.o.XXg.oXx.b.X.X.XXt.k.k.kXt.X.k.kXt.kXj.k.k.k.k.k.k.kX*XtX*.k.k.k.k.k.k.k NXkXt.b.X.X.b.o.X.o.X.b.o.^Xt.r.8XV.k cX*X*XI.r #.K.` cXV.H.H.u.5Xl x 3 x h.-Xp.Y.9X< n.1XHX.XKXG.9.Y ` #X,XB.-.w vX> =.;.;.+ & HXG.!XDXa ' D D.Z $.} a.} U.Z b.n yXC =.q zX0 nXcXB `XM x.}XIX- hXIXIX-X,.} h XM.- [.xXpXp E u uXeXe v x x._Xq.w [ [Xw 1 $.MXD.w.pXpX>.<X2.< . ....F ..m.iXe._XeXp <.a R R 3 RX- RX1XDX-X- hXl EXeXp.p.p.F.[XpXMXB.}X-XV.`XI.a.aXM ` XcXBX3 ` `XMX3X..S.SXHXH.3X<XH.l $.}.}XIXIX- c.u 3X-.aXD 3XDX-X- a R R x a $.eX-.a.a.a.a.~ R R 3X1.aX1.a R R aX-X-.eX1X- RX, RX1.aXI a.aXDXI cX3X3XX XB n M HXC M &.j 9X; !XU g ! D.0XVXIX*XVXIXIXDXDXD RXDX, h $ R.MXDX,X,XJ 1XwXJX.X. mXJXJXw.%X..-Xc.' $Xw Y :.a x $.a $ $X5.aXDX, T 3XI R.Z.O.n.' v.n v v b v v O b ^ H H w O v.W.M.a h.a 3 $XDXD xXK T c BX1 RX- 3.a R h h kX3XKXJXL.N.s.vX6.xX4 p $ 8 t hXnXqX+ 3.H.8.H",
+"X5.0 '.Z.Z.n.Z g D gXK.n.Z.wX5XG.' '.' '.wXL '.nXL.!XaXa b.nXL 9 y &XrX0 0Xb.B %Xb...JXe.E =Xh M n.xXpX+.< E.d tXl x RX1 R RXDX,X1 R p v.m u.MX1.`.u.eXI.M <.a.aX1X-X1X,X- tX1 aX,XD xXw.w v ..@ 0.EX+XD h 3X,XD.wXc TXK.w 3.uXVXI $X, $ 3 c c $ $.-.jX2.j k.O 5.KX5X5 cX5.k.K.u.KX*X* ).KXt.k.K.k.k.k.k.k.kXt.k.b.X.X.b.X.o.X.b.o.b.X _.z.X _.X _.X.X.o.X.b.X.b.o.XXg N.X.X.XXo.k.k.kX*X9.k.k.k.k.r.k.k.kXtX*.^.5.X.X.5 N.^.^.k.kXt.k N.zXoXg.X.o.b.X.b.X.o.b.X.X NXdXtXt.kX*X*X* ~.k.KX*Xx.KX9 cXoX5XIXIX-.M # #XK n.1.1.1.SXH `., $ $.Z h 3.a.l VXB.- v 0 = w =.+ =X0 s 9.DXI BXl : m.-XwXD.M.w.n.9Xm &XC M.E =XhX<.TX< kXB.-X3 x h.u.}XI hX,.} ` X7.gXw.[XpXBXe.M t C R R t t R.M.e.9XB.O $XJX..9 n.MXLXnXp.@X8.j.x.<.{X+ . p.m.m EXp x U.M RXD 3 3X1XD 3 3X, 1 Xq.F.g WX<.[ [.gXc V hX* 3.5XI.u 3.uXM ` `XMXM.}.}.a R $ $X5 hX, $ a aX-X-.aX-.a.u 3.a R RX-X- c RX,.ZXD R.a RX1XD.a R aXI.~.e RX-XIX,X-X,XI.a.aX, TX-.5XM aXD a 3XD RX- aXDXIX1XDXl #X* # V.[ n.T 0 ^.q.T =Xm 9 g.! sXU.9.'.5X5.u :.KXIXVXDXDX,X,.aX, hX,.aX, 3XD.9.- 1.Y s s.9 R.ZX,XD.aX,X-XD.ZXl xXDX, $ xX5 mX,.w.ZX,X,XHX-X-XDXl YXK x.n sXa s s s.n J J H H HXC wXn vXe.} a 3 t :XcXcXJ.ZX1 RX-.a R c R c #XMXJXK.-X, 8 tXa ^ 0.C.4X6Xq v.M.MXeXpXqXB c.H ~.H",
+"XK K :X-X1 RX5 m.2.Z c D $X-X-.HXDXD 8X1XD 8XD.D ' TXa.w.Z.n T.' vXUXC.jX8.@Xi.P.PXA . S M.O nXJXr M M.yX: M W u.j.- :X5 cX1.8XV 3XDXG.F.) tXDX-.`XVX- R.a.a R.` aXIXD 3.aX-.a.}X, uXeXpX4XqXn n y y hX,XD h 3XDXD.DXK 9XK sXD.}XV.HXIXdXIXVX1 RXp.@X>X2.j.jX5XI $ cXI.H 3.u ~ c.r.u.K q c.kXoX9.XX9.XX9XxXx.XXxXx qXk.z.I q l.IXk.U.z.z.6 l.z.U l l l.z lXk l l.X.o.X.b.^.^Xo.^.k.k.k.k.X.k.k.kXt.k.kXt.r.KXtXtXt.K N.X N.X.X.X.^.kXt.^Xk.b.X.b.X.X.o.X.b.b.X.b.X N.^XdXtX*.kX*.uXV 3.k #X*X*X*X*.r cX1XIXIXI xXHXJX#.3 `XDX,XIXIXI 3.`.} 3.}.a h V X7.gXp 0 v.@X>X>Xh.+ !Xw 8X,X, BX, $XK U.ZXL 9XC.q HXC.T z z.p zX%.hXh.L.1XZ.Y 1 #X7XHXhXc.,XB.,.gX#.S.yX<Xp.9.M < R.aXIX1XIX1.aXDXD U hXc.2.5 : $.9 U UXG.j.x.xX2X2X%XrX:Xr.xXr.pX4.<X+.Y.9 hXDXD c.u.u.aX1.a ` U xXq.gX7Xp.[ kX7Xl.lXI.eX-.`XV B RX-.a h h c.}.} a a.}X-XIX- B RXIXI $X, RX-.a.e.aXIXDX-.a a.a.aX- RX5 $ RXDX,X, $.a RX,XlXK a xXH.% T.eX,X1 Y s.aXI tXH.% xXl.~ R R.~XD a R R.a.M R 3 hXl 3 3XB [.pXp J ^ ^ z &.;XC HX0 bXmXPXKXl :.5 :.5Xl hX,.ZX,X,.MXDX,.MXD a hXDX, x $ xX,.Z x.wX1 1 n.Z.ZXeXD 1 T.-.9.ZX, $ x nXD $.wX, tXH R.aXIXcXDXw 8XDXD 8XaXL bXm &.qXC b w J ^ J v.MXeX, <XK c 1Xc 3 R.aX-XD R.u hXJXH :.3 x.aX,.a.N.W.s J ^ %X4Xp._XeXD.M EXn._X+ 3XI ~XV",
+" cX5 ` RXD 3X. D.%X. :Xl m., ` ` :XJ cXc.5Xc.u $XK T.*.MX1 1Xl $ sXL.9XrXr.;X8.;.@.@.< nXBX, hXD c EXe MXn.JX4.)X>X+Xw : `.~ cX*.0 $ [X4.M U aX1XI.8 R.} `.a c 3XI.aX-XI.8.a.}X,.M pXnXnXn M.p v <.W._ XK.Y.9.wX,X,Xa T.!.9 .aXIXV.u.uXV.`.a 1.E.P.x.< HXrXw.2Xw D cX1.u ~ 3 ~XV 3X9X9XV.r.kXt.k.kXtXt.uXt.u.kXd.^.^.X.bXg.XXgXgXxXg l.z.X l.X l l lXk.U lXk l.z.QXk l.b.X.X.XX9.X.XXx ).XX9.XXkXxXkX9X9 NX9X9X9Xk.z.z.z.z.zXk.zXk.XXx.IXk.zXk.z lXkXkXxXkXkXk lXxXx.X N NXoXoX*.u 3X*X* ~.8XV.8XVXI.HXVXVXlXJ.3XK xXlXD 3 h cX3XXX*.}.8 h.a c.[ VXB .[ nX> H.E 0 y.>.1X;XH Y.2XJ T RX,.ZXD v.n.q &XC & H.+ zX>.xXrXr n z M =.TXw.g nXH.SXH.1 kXhX#.hXh z.1Xw.j.9 h.ZXDX,X,XDXDXDX,XDX, hX,XD 3X5XDX1X, $XDXeXG.j.Y SXrXfX4.<.pX2.x.x.pX4Xn._._ 1 h 3X5 3X-X-XIX1 .}XeXq.p.p.FXB XM 1 c cX- R BXI 3 a.a RX-.a.a <.a.a.a.e.a R.e R RXI RX,XI.a $XM cX,.ZXI kXD.a RXIX.XlXc a.a 3.G.e Y R.a $ 6 xX- $Xl.% RXDX- cXH.3X-.M.eXJ xXN s R R t.aX,XI.aXD.aXD 3XDXI : : cXB [X> ^X6.v ^.sXn.E M M.q =.q gXPXc 'X-XV.'.K $ $.Z $.ZX,X,X,X, xX.XlX, xXG.G.YXc U.Z $.ZXUX,.Z R.MXD.Z = $XK h.wX,.ZXHXKX, $X, R xXDXI R RXDX1 R R 8 8 s.nXC.q b O.v.v.v O.vXGXe.W <.MXJ xXK.u.a $.aX-.a a.u.a xXJ T 1.Z.MXDXDXe.* s o.@X>.@.<X+ v x U t.WX4XqXBX,.HXV.k",
+"XIXD 3X, $XKXJ.9 x.uXl cX.X3XJXJ.- m D :XM., h.GXJ.wX1 R R.aXD 3.D sXm gXm &.j H M MXG 1 .a RXI RXDX,X+Xn.J.s...d.M t cX1.H cX5X5 sXH.jXpXB.9 `.5XDXD : $X3XJX5 RX-X- 3XM.5X, UXe._.@Xn.x.s U pX4.x.<Xf . vXpXK.a 3.HXD cXoX,XI.8.8.K.H.HXD sX+XpX2.J %.<XpXZ.j y.YXcXD 3X1XtXV ~.u (XV ~.8.k.k.k.K.k.k.k.kXd.k.k.^.k.^.^.X.o.X.o.o.XXkXgXg.oXg.X.o.X.o.X.XXg.X _.bXz.X.^.kXdXt.kX*XtXo.K.kXtXt.R q.X NX* NXtXt.k.k N.X.XXgXx.o.X.X.b.XXk.XXg.oX9Xg.oXgXgXgX9XgXgXxXg.X.^.kX*.u.rX*.8.uX*.K.r.8XV.HXV.8.K.5XI.u 3 3 3.KXM D.K 5 #XV 3 3X*.5., VX3XX XBX0X0 J.@Xm &X0 v s.9XK ` 'X1X, 3.a $XG bX0X0.q w MX8 . . . p...s ^X8XrXr [.[Xr k.-.[.-X+ kXr.-X4 v U R.* t RXD $XKXKXlXlXc.9 t.,.9 R T.% cXKXJ.aXh.9Xw vXZX+.YXpXpXp.< >X4.x.x WXnXq.Z.M.a.~XI cXIX1XDXl h U.F Xr 1.l x # a.a c RXD.e.Z aX-.a a a.aX- < a a., $XJXIXD.e Y $ 3 RXD `.G.Z h 3.u.GXMX1 R.a.3XHX-XDXD RXhXJX# R.aXDXK.O $XDX,X.X- RX1XcXlX# : R.e.,.M.ZXl a R RX- RX, 3 $XIXI 3X, : `XK `.FXH WX>XfXi 2.) vXn z H b HX0 &XCXP.' $.DXIX,XIXl.,.'XU.ZX,.w xX. :.a.a.Z hXH = nXD.ZXD.Z nXJ.Y RXDXD CXl.'X,.w $XD.a t R.MX- h RXD.eX,.aXD RXD 8 R 8.ZXa b.qXC O O 2 b.v.s 2XL vXD.W 8XD hX1 RXD.K.uXI 3.u 3X-X..Z $ R R R BX, $Xe J.s.@.4.) E.p.i.l h.MXeXn.F.pXK.kXo.]",
+"X, hX.XcXlXJXJ.Z R.a B cX- x R 3.ZXD h $XD xXl.%XU RXD RXD.} c R 8.D.n 9.9 gXw.9 'Xs.a.u RXI.8XI.8.` h sXpX>...s p t R.a.e #XD.a 8Xe 1 UX, $ cX5Xl 3.}.} 3.K 3.KX1 3X- a # x hXp ...X>.C.m...@.<.< L.JX6 . .X>.YX1.aXV.8.H 3XVXI.r 3.K.`.H $XmX> W ..JXfXn .X2.+.Y y $.a `X9 c.K.K.] )X*.5.5.r.KX*.kX*.k.kX*.k.k.kXt.k.k.oX9Xg.o.X.X.o.z.oXg.X.o.o.oXg.X.o.o.o.o.X.o.oXg.b.bXo.k.kXdX*.X.k.kXt.k N q 5 N.r.r.k.k.k.k.k.^.b.b.o.b.X.o.X lXx.o.X.X.o.X.o.X.o.X.o.X.bXg.X.b.kXt ~ ~XVXIXVXIX5 ) #.u.kX1.8.8 3.` 3X1.u.` 3.K.8.k #XV VX3.`.}XI V )XXXM.l # h.lXM X+Xw & y.j =XKXUXK.> 'X,XD RX,.aXD v s.q &X0X> H zX>.CX: r.P.@ SX0.y.x.[X+.g.g.[ n k =X7 n.g.j n v RXD 8 R.M.a.M.[ xXG x K.9.*XH s.eXJ.3XX D k.u `Xc.9 a =XG U UXqXp.9.@X+.<.<X:.< p.i.M R RX-.` cXI.5.- `.Y n.gX< [XBXH : ` VXHXI R.aXIXD.uX-.aXIX- R RXD.e.-.% $ aX-.ZX.XH a.Z R :X.XI.u.e DX. m aXI RXh mXwXD.aX, Y.e Y RXIX,XHXJ a R $Xc.eXDX1 $XDX, 3.M.a R.aX- aX- R R R.a x $X1 `XHX, `XcXJX3.,.SX% MXn 0 0 oXGXnXL v 0 2 0.+X0 & g.! '.ZX,XDXD $.GXHXw.M.ZX, $X;.,X,.a xXDXw.Z 1X, $ $X, RX,X, R R.aXDXD R h.ZXD.a.a.M.aX-.M RX, R.M R.aXD RX1 CX1Xs.w b JXC b.v /.) J.Y.N.WXs.w.W.D $XDX1XI 3 #.~ 3 : cX- R RX-.a.M R R.eXD.a 8 vXn..X>Xp.@XeXqXe $ < u.M._X4.S xXJ f )",
+"XDXKXcXc.OXhX..9XK.'.'.9 $X.XlXIX1 RX,XDXD a 'Xc $XD BXD.HX5.`.u.w.n.nXPXO '.HXIXD.HXIX1Xo.u.`X1.8.` $ U v J .Xe.W a.} RX- : R R C x.WX,.}XI RX- R 3.a.8XIX-X1.H RX-.a.M < U pXLXn M.<..X>Xf.. .X6.C w H J.j.9X,.a 3.` 3X*.8XI.DX1 #.r 3XJXU ^.@.P.J %...BX6.C...x.jXs 1 ) ) I.$.| f ) ) D 5.kX*.k.k.kXtX*.r.H.u.r.kXtXt.X.b.bXgXgXg.X.z.o.X.o.XXg.o.X.o.X.o.X.oXg _.X.o.X.X.b.^.k.kX*XxX*.k.k.kXtXt.k.k.k NX*.kXtXj.k.b.b.o.X.o.X.X.X l.o.X.b.b.o.b.b.X.b.X.X.o N.b.X.b.kXt.r 3 ~.H.HXV.5.K.5X5X3.8XI.8.`.HXV ~ #Xx.8 c.K.`X* 3XX VX3 :.5XJ VX3XXX, ` hXK `XM .p.[ y.O.1.OX;.OXP.w $ RXD R R.Z v b.j & w ^Xf ^X>X>.4 . w.;.; HX:X:XrX<.h [.T.1 [XZ.T z.1X>X+X,.D.a R.}.W xXH MX%XcX<Xw h $XKX, x 3Xl 3XMX3.5X- 3XDX,.Z.a.M.M U.d E.pX>.x WX4._Xe < R.a.a a 3.2.% ,.-X.X<XH.hX#XHXHXc $X..YX. <XI.eXV 3 cX-.`X-X-X-X-.~ RXc.%.S.a aXKXXX#.Z h.e YXJXc $XV.2.eX. 3.a.aXJXD :Xl.a.a.wX,X,.MXI t.aXD R R a.e R RX-.a aX1 RX-X-.aX-.a.a.a aX-.}.eX5 3.aXDX.., Y.3.3.GXZXHX# WXr o 0XG v.M v.YXG O.@.@X> M & g.! sXDXDX, xXK :Xw $.Z.w $X5.'X1X1X,.ZX, x $X,XDX, 3 c 3 a.}XI 3X,.a.a $X,XD.M R R.a.a.aXIXIXDXD R R s $XeXDXsXL s b o H 0 2X=.s._.N t.MX,.}X5X,XDX-X1 RXIX- RX- 3XI cX1 3X1 t.u.M.aXK.e.w U v &.s ^.@.pXn .iX, < U.).mXqX+ :.H.uXd",
+".Z RX, sX.XP.Z 'XK.Z 'XcX5 m $.Z RX1XDXDX1XD DXK T.ZXl.5.'.KX5 : '.0XP gX1.D.8 c.`.HX5XJ :XVXI.8.`.8XI RXL o.s.s C.M tX-XIX,.a RXs v h.MXI 3XIXVXlX1XIX-.}.aXI.aXX $.a.M.N .Xe..Xp.x ^X>XiXfXfX6XfX8.;.E.@.wXDX1XD.` 3.a.8 3X5X5XD.K 3 3.w.@ 0.P.PXA LXi %Xi SX8 JXw.jXl `X3.5 ).X :.uX5.KXVX*XtX*.k.uXVXV.8 ~.u ).A 5.^.X.XXxXgXg.XXg.z.o.oXg.o.X.o.o.o.X.X.o.o.X _.o.b.o.X.X N.k.uXdX9Xt.kXt.k.kXt.kXtXtX*Xt.k.k.k.^.b.X.X _.X.o.b.bXkXg.X.o.o.X.o.X.o.b.o.b.b.b.o.o.X N.kXt.rXV.H 3XV.HXI.`.8.`XV.`.`.u.5.k ).5X*.8.`.`.8.8X*X* VXXX3X3XXXM.5XlX,Xw $XH.- V.[ k.S k [ k.> =X;.j.n.w 8.Z.a RXs.9 T.q HX0.4.@Xn.xX2X>X> ^X>.xX8 W.h.T.1.h =.1.+Xh.hXhXh.T & yXG x x.9XpXpX4X4X4Xq >Xp y.9.M t RX-.a.aX-X- 3.` cX1 RXD.*XD t R t.M.MXn.{ WX:.xXeXeX,.a aX-XIXl.k.u ` :.S XBXh.- X< `.i.a < 3.aX-.a 3X-X-.`X-X-X-.a R R.~.0Xl $.a.a .aX,.Z.}XDXDX,.aX-.DX,XI a a.a.a.~ RXDXIXD tXI aX1 RX1 3XDX,X-.aX-X-X- RX-X-XI RX- RX-X-.aX- a.a.a aX-.aXD #X- hXl hXcX.XJX. [Xw n MXr J vXL U $.M 8.N.W...s HXm &X0 oXOXL $XD cX,XD.a 8XDXD $.Z RXIXDXD $ h x.Z.Z xXlXDX, cX,.aX,XD R.a.ZXDX, RX5XDXlX- $X1.9 $.9Xl '.-Xw.w.n.nXa s 9XCXC.@Xi.)XeXL x <.}.aX,XD $XlX-.aX1X-X-XIX-XDX5XDXl.a `.,XI :X,XI DXDXl.M._.j.@.v ^ HXpXq.i E E U u._._X+ c 3.H.u",
+" R 8XD.9 m.w.wXD.DX,XD.Z.]Xl $ R RXDXIXD 8XlXcXl.0.%XKXK.] mXc.G gXU.!.n.].'X,Xl $ D.2 :X,XI.`XI.8.`XDXDXp ^.v.s u uX-X- 3X-X-.D.w T C R R.`.a.5Xl R `Xl.a # $.aX, u U..._ 0X> S wXf L LXi %XbXA LX6X>.' 'XD.HXIXI.` 3X* :.0.]XD xXD.Y.EXn ^ {Xi {.J L.PXiXf.@.;.Y x s.| ).2 )XJ.] (Xl q : )X9.u.5.5X5.5 3 ~ c.r.u.& P NXx N.X.X.b lXk.X.b.X.b.b N.X _Xg.o.X.o.o.b.o.X.b.X.XXd.k.kXtX9.kXtXt.kXt.k N.kX5.kX*Xt.X N.b.X.bXg.X.X.X.XXg.&.I.z.o.b.X.o.X.b.X.b.X.o.X N.b.o N.^Xt.r.r.kXt.k.u ~.8.`XxX*Xo.5X9Xo.KXV.8.8.u.KXX # 3.} 3.,XMXM.KXMXM hX-.a $ R.,XD |Xc ` [.S ` 1.3.3XZ mXK.9.'.w x D :.ZX,Xw y =.>.OX0.j.SX7 k.gXrXC.@.y >.p.p o.j.j.jXwXw & z.;.jX2.p y.[.Y.-.j.xXr W W W.x.<.Y.Y.w t.a < R R.a.} aXI R 3.uXI RX- B RXD R v.<Xp.<.{ W.< x U R RX- h.aX-.8 a R hXUX+ WXB.F 1.lXM U h.a a.} c c.} R.}XI.a a.a a.a.e RX-.aX- a.a a < RXD.a a.`X-X- R R R R RX- 1 $XI.a aXI a R R 3XV B R 3.a.aX-X-.aX-.`X-X1 R.~X1X-X1 R.a RX-X-.a.a.aXD hX,.a 3 hXM VXwXH.EXC.4Xp ^.s v U.MX, c.Z.'XqXw.>XG JXC M &.OX;.n.Z.DX5.D.DXD.DXDX,.Z.Z.a.a.MXD #.aX, :.2XJXDXDX1X, c.aX,.aXIX,X,XD.' T.-XKXJXKXK.]XUXcXU.9XK.!.9 o b O OXCXC O.v 2 2XGXG U R.aXDXD.aX, $ RX, T.9.e.' hXDXc.ZXlX-XlXl.aXMXD.a R R.MXD.}Xs.E...v ^ HX4._.m._.m p._XqX+ 1XI.uXd",
+" $XDXlX. g mXJXUXU D DX.X$.GXH ) 'Xl.w.DXlXl g $X,XD $XlXlXl T.0 D.2 gXUXO 'XU.2 m.GXOXO.]X1XI.H.DXd c U.jXp.B.sX=.d UX,X5 RX1 ` v.'.M.MX-.aX1X3.H c.5.,XK.,.,.[.9XpX+.<.. ^.j HX0.@ z w S rX>X:.CX2.@.@XKXI 3X1.H $ )., I.]X5.] :XJ.9.1 y.jX>Xr.x.x.xXr.@.@ J.x.jXLXUX, :X5 ).5.KXJ `Xc (., )XJ ) 5XJ.$ q.u 3 ~XVX*X* , ]XxX@.7X@.zXk.oXg.o.oXx.z A.&.z.b.X.b.o.oXg.o.X.z.z (Xx.5X5.k N.rXt.^.k.^Xt 5.k.kX5.5 qX9.o.bXg.b N.X.XXk.X.( A.XXg.X.o.b.o.X.o.X.o.X.o.b.o.b.X.b.^.^.kXt.kXt.kX*XV ~.8Xx.k.k.k.KXV.`.`.u V.$ V V., V V VXJXM.l # h.aXI.aXI RXI cX,X,.a.aXD c $ 1 [ K KXh.> @ =X.X;XU !XD.wXU.O =XhXhXZX#.h |XZXB n.+.x.T z MX0.+Xh.T KXh.+.TXZ M.;.;X>.;Xr.; WX8.;X> SX8 WXr WXrXr =.F x $ hXqXD tX,.e RX-XIXIX-XD.aXD.M sX+.xX2X8 W M._.Y c R.a.K hXIX-X-XIX- RXqXK >X+.[X7.[ .l.l h.} # #XM ` #XXXM.l #.a.a R RX1 B R R a a.a.a R R.Z.eXIX-.aX-XI t RX-.aXI.aXD RXIX-.aX-XDX- 3X-X1 R.aX-.~.aX- R.`X- R.`X-XIX-.`X- RX-X-X-X-X-.aXI c.a c.aXl : #Xc V M o 0 0 0 v.s U 8X,X,XKXwX. g.9XKXn o.@ M &.E gXaXD.'.]X5 CXDX,XDX1XD.W R.M 3.M $X1X,X,XKXKX..9Xl c.Z.9XI R.MXDXD R aXD.ZX,.ZX, BXD C 8 sXs x o &.qXCXC J H.E.v.v / v v x aXDXD R RX,XD R $.M.-XK a.w.Z RXDX1.a.a.aX- a 3.a a : $ :Xl.9.YXs J 2Xi.4.x.F.J._ p.m._XnXc :XI c.r",
+"XwXlXc D.n $.wX5 '.'.0XJX.X. Y Y.G Y YX.XUXJ.'XD R RX-.aXI 'X,.n.'.! s s.!XU ! s.!X;XUXP g.0.n.] g.]Xw x.j J...s % . p .Xe u < xXe [ U RXD.a.` 3 cXl ' T.] 'XK : TXJXr.@.h.yX> y HX0 S S S M.;X0 ^.TX> o h.a 3 : mXK ` D.' :X5 I 5 q c :.uX, $XG x x.YXwXp.-.jXwXrXUXhXKXK cXIXI : c 1X1X,Xl.u cXV cX* cX5 ~ 3 3XV.rX*.R j qXo.&Xz.b.I.X l.X.b.z ZXk AX$.bXgXg.X.o.bXg A.z.R j ) ,X@XoX5.k.k.kXtXtX9.7 I j I.$Xo NX9.b l.XXg.7 X (.R 7.Q.X.X.o.X.X.o.b.X.o.b.o.X.o.X.b.o.X N N.^.^.^.k.5.^Xt.r 3.K ~XV.8 ~.`.8 3 3.$ VXX.KXXXXXXXX.lXMXM.a.}.a.a RX-.aXDX1 R.}X,XD.M., `XBXJ = = yXO.q !XmXO sXK @XOXLXH.GX. nXw n n., [.1.LXZ M =XrX0XhXh K.GXhXHXZ.+.+XZ S H H SX0.;.;X0.@ ^.@X6 z.T.+.h.hXHXHXcXwXH [XH h.MXD.a.}X- #.a a.a U v.jX2X2 WX: [ WXh.YXlXD 3.] :XI 3.~ R R t.MXqXc.[X+XB.[.[ .F # ` # 1XXX3 XX.,XBXMXX x.aX, $XD B R.aX-X-X- a RX1XD.aX-.a.eXI :X,X,XlXDX-XI.a R.a.e a a 3XI BX-X- RX-.a.u RX- R 3.`X-.`X-.u cX5.k cX5 c c.kX5XlX5 R.uXD.uX,X5XJXB.1X> J 0.vXeXe v $XK.9XJ.nXIXDXD.WXL yXn.@X0X> 9.' 8XPXKXD.D $ x $ 8XDXD.D.a.a.M c hXDXD R.W.Z T.YXKXKXcX..-XK :Xl $XlX,.M.*X-X-.} a.a R.M.ZXL.9XC 0 bXCXCXC ^.v /XL vXG.M tXDXD.e RXD.*.MX, xXD RXDX1X-X1X- $.aXIX, # D.eX.X, :X3XKXKXKXH.) v 0.B 0 H.@.p.[X+X%Xp kXcX3.R 5",
+"XD.9XU s.w 8X,.wXI RX,.9.ZXD R 8.u ' DXO.G.O mX,X,.Z.a.ZXDXD.'.] sXl.n sXL.' sXU s 9XU g.!XP g g g g g m.9.- o.@Xn . . p.m._ EXe.M.1.j h t.a.a.a.Z.uXI.~X- 3X-.HXDXDXG.j.yX:.@ wXZ =.O & M.O &X>X>.@ oXr $XM # m c TXl.% m : m `.5Xt.8 ~.H.`X1X1 RX1 3.Z.].'Xl.9XGX+X; $ T `XD c.,.]XcXKXJ 3 I 3XVXV.8.8XV.8.8.8.r ~.k 5Xk j q.6.X.o.I.b.X.oXx.7 d.X.o j qXg.bXg.b.oXk.b.XXkX$.r Q.|.k.K.k.k.r.XXt.z.kX5 7 3.k.k.^.^Xd N.X.b P AXo.t.tXx.X.b.X.o.o.X.b.o.X.X.o.X.o.b.X.o.X.o.b.X.b.5.^Xx N.k.kXt.r ~ ~.` ~.8.8.` 3X3.$X3X3XXXMXMXMXM #.}.a.}.a.a.aX,XVX1 aX1.}X, 3.}.S., K nXh.OX0.>.> & 9Xm b bXm gX.XwXw.-.9.9.9 x x XHXh.OXw y HX0.>.G.O K.O.jXG &.+.q o J H.E S z.E w JXb ^.@X>.<.<XrX<.1.Y.[.jXr y y.9 $X-.} 3 cXM <X, hXpX+X4X4XrX+XnXr W.O.3Xw.| D.2XJ.,X-X1 R R t.M.M.i.YXB XqX7.[ XMX3 : V V.- 6.% 6X#.SXH kXJ.,XcXD RX-.~X- R RX-X-.a 3 aX-X-XM 1 ` : `XcXD 3 RXIX- <.a.a R.aXDX-X1X-X-.a.eXl 3Xl.KXXXl.K.~ 3XV.k :XV.uX*.u.u.u c.k 3X1.~.ZXDXD 1 .,.gXG O.).).N.[.-.9XcX1 8 8.a.a.M CXs.sXn b.j J.9 v.'.' 1Xq $.j g.M.M.Z TXDXD R R.a h R U.Z R.MXD aXD.MX, $ $Xl.9XKXK 1 a R.a.a a.aX- R R RXD x s.q & 2 O.vXi 2 2.sXGXq.W.aXD RX1 RXD.aX,XK 1XlX,X,XlX,.9.Z `.%XJXK.|XKXl.e T c.% h cXD h hXe.s 0 2.B wX2Xn.1.1XwX<X#.GXc ) ).$",
+"XUXUXK xX.XD.Z.j TXcXl Y :Xl.] :Xc.ZX,.w.2.3 1XJXc :XD.ZX- c.2.w.aXsXD $.w.9 9.'XmXG.nXwXyXUXU g.! T gXJX. $ s v.E.E.<Xn.@.E.jXp._Xw [ [.[XKXKX,.a.MXDXDX1 R R 3 : 'Xp v.PXf.@ M =.> =X0Xh.+.+ M.y W.hXr.Y.3XlXl 'Xx.] x c h.Y h.u.r ~.HXV 3.8XIX1 : TXc ' RX, DXwXp x.M cXV.a cX5 $.Z.uX,X1XlXV 3.8XV.r 3.8 3.r.8X* NXx NX .:.zXxXgXkXg.o.XXg jXxXk.X.: l.bX9.bXg.bXgXg.X./ 7 P P.uXxXd.kX*.k qX9.RXd 5 PXV.u.kXtXj.^ NXg.X.7 Q.& jX@Xk.oXg.X.b.b.o.X.o.b.o.X.o.X.b.bXg.o.X.b.X.X.o N.z.X.b N.kXt.k.k.HXV.8.8.`.`XI.u # V k.,XX.l.K h a.}.} aX,Xl.u x.D 3 U a $ hX5.,.-.[X;.1XZ.+XhX0.>X0 =.O.O.O.O KX;.O.1 D.-Xc ` `XwXc.>XwXmXUXU gXy.G = @.1X;.+ KX0.T H.+.+X0.+ z.v.v ^ 0 0 ^ w ^Xf.j M z.1X+.pXw MXU &Xw $X, ` hX, #.FXpXp.@ >X>XrXp.Y.1.S [ nXJ.9 $XXXx.5X- RX- RX- t RX,.i.-XpXB.l.-.-XMXB V D 3 3 cXl # : |Xc 1 xXI 3.aX- R.aX-X-X- R R.`.u.5 3.}.8X- a.a R RX1X-.~ a.a R R.a a 3.eX-X-X-X1XIXI.uX,X*X*XV 3XI 3.K 3 c.~.`.` B.`.`.` R.`X-XIXD cXD $ `XcXM [X> bX=.) U.9.-.M :.wXD.DX, $.w xXp y S.@ H H o JXmXG 9XG vXG.9 'XLXK.>.wXDXJ.ZXI.a a.a h t.M.a.M R.a t RXDXD xX, R R.M R t R.a a.aX-.aXD t.nXG.q o J 2.vXv.v.) xXp x.M.a.a a.eXI R.e.9.Z.,XHX.X.X..,.,X.XKXK.,X5XM.D.eXIX- RX5.KX-.a a.W v.. 0 w 0XnXw v `XK kX. [X5 3.8.rXV",
+" y g $.wXc s.Z D :XJX. Y TXcXl : '.] DX,XJ.' RXD.Z :.,.uX1.w D.ZX,.M R.* $Xe 8.w.w.n gX;.].OX,.D 8.n.].H.uXoXc '.'.j x y.jXn.Y U C.dXe.-Xw.YXwXc.YXcX,.MX, 3XD.2Xc x v . w w.; = 9 oXP.j =.; ..@.. pXnXpXp.O m 1 ] m.0X1 h.Y.Y xXD ~ 3XV.8 ~.`.`XV.5 'XcX1XI $ xXKXGXDX, R 3XIX1 c.a RX1XI 3.` ~ 3.r 3 3.8.8.8 ~.rX9.&X Xk N.7.X.o.z l.X.X.XXg XX XxX .&.X.XXgXg.b.o NXg N P IXtXNXxX9.u.k.k.kXk q.RX* f (.k.k.k.k.kXt.b.X.XX$.X N.7Xk l.X.X.bXg.X.o.o.X.o.b.X.o.b.X.o.X.b.X.o.X.o.X.b.z.X.b.X.b.XXo.^.^.k.r.H ~.8.8XI 3 3.KXX VX3 XX h 3 hX,XJXKXKX.XH cXJ.,.Y `.YXh [Xc [XrX0 =X0 J y.T.O.hXh.+Xh = n.3.O.O [XH.O [.3XcXH y.9.!.!XP gX; TX.XHXU.+ = b J & v v .XnXn v v.sXG.s..X6X>X0.T.T.1.y =.T.+XZ.+.O.1 =.[.M tXMXnXp JXpX+ yXq x._XqXp x xX, tXD.u.eX-X-X1 a 3 xX5.a.M.M.M < Xc.[.- k `.,XBX-XIXI.8.}.`.a `X3XM #.} a.aX-X-X- RX-XIXD 3X1Xl.K.K.5.a 3.aXDX- RX, R R.aX-X-.} a $XDX1X-.uX1X-XlX- c.8X- a.`X*XI.uX* c ~ 3.`X-.`X-X-.` R R.aX-.a $X3.9 `X7 kX%.j JXLXL UXcXl 3 TXc T g.Y kXK 1XLXpXp 0.@ H &.q &.>.q HXC oXG 9.'.'.9.DXaXKXDX,X,Xc RX, $.a R RXD R.a RXDXD tXD.M R t R.a.aX-XIX-X1.a a R 1.w.j H J.v /.B *._XG x.M.aX- aXIXD B.*.a.ZX.XK TXK DXlX5X. #XIXIX,X1.~X,X1 BX1.`XIX3XD R.M uXe 0 ^X:XCX> n # RX1 R.u cXIXVXV.k.k",
+"XcXH g.w.MX- R hX, `Xl c R.Z 3 $ $.ZXl.ZXJ T.e RX-.aX, TXc.|XKX1.w.- xXl nX,.Z.w sXKXJ.ZXK., T.D 'XUXU sX3XXXD ' m TXD <XG JXp.s.M t.N.WXn 1XeXn xXw.j.-.j <XGXq._.x W r z.hXh & @XO = = KX:.<.J.....s .Xp x n K.2 TXVX,XG.[.<Xe.}XI 3.8 3 3 3XIX-XlXKXl.u.M :XBXlX,XD RXIXIX-.uXV.`.HX1.8.8.HXV.8 ~XI.rXV.r ~.r.k.^ NXk.oXg.X.X.o.zXg.bXgXk.b.XX@.t.z.XXg.X.b N.XXg.X.b.$.& IXo )XNXx.k.k.kXt.kXx.XX9 j 5Xo.k.uXtXjXt N.^.z j.IX@XN.RXk.X.b.X.o.b.X.X.b.o.X.o.o.X.b.o.o.X.o.b.b.b.X.b.z.X.X.X.X.X.X N.XXoXdXd.8.`.8.`XIXI h cXJ V :XM.a.} 3.a `X,XKXJ.2XK.9 :.9., k k.O [Xw MXZX0XnX>.E.LXh.+.S = [ =XcX7.- k nX. [., [ nX;.1 !X;.O.O.OXPXc.O =.>.+ o OXs.W tX,.W.MXn v.W.NXe v.s 2.@X2.T.x.y W.jXr.1Xw.j.jXUXw.j XqXpXGX+.j y.Y xXD x.Y xXeXn U t UX-.ZXV.` aXD x : T :.- :.-.M.} .Y [.- k # $.`.}.8X1XIXIXI 3.,XM x 3 < aX- a <.} cXM :.K ` q.5.K c.uXK c.eX1X-XlX1 TXl `.9 `XcX3Xl R 3 :.u.u :X5.K #X5.K : c.K 3.u cX1X- R RX-X-X- RX-.a.a.a hXM.[ `X7 kX< zX0 HXGXe.M RXD 3XDX1XD xXD.ZXD h t.M.W v ^ b J oXCXCXC H.; & HXm v s s.w.D.Z.ZX,.2.,X, $.- x $ cX,X,XD R.eXlXD R RX, aX- R.a R R R R B R 8 mXL b o H.@X=.B.sX+Xl.} R.a.a a 3 BXD R R R U.Z xXl.' $.eXI R.~X- a c RX- 3.DX-X1X1X1.ZXs.M.)Xe % ^ w = n.S 3 3 ~ 3XV.HX*.rXd.u.k",
+"XU !.9XKXJXJ.- : cX. :XIXIX-X1XD R B TX.Xw.ZX,.' 3 R RXl.%.O.Z R.a x $ 1XH.' s sXK.2XcXMXI :.5., g y.'XJ m #.HX1.Z.5X-XI.9 &.jXrXGXL.M CXeXp vXpXpX> =Xr S zXG._..Xb . ^X> M.+.!.j gXU.O MX2.T.y.@....X4XrXn._XwX. s.' TXwXwX+Xp R.aXI 3 3 3.8.`XIXI.H $X, #XMXM :Xl.Z 3X- 3XIXVXI.H.`.H.`.8 ~XV.8XV ~ ~.rX*.k NX9 NXgX9.b.XXg.o.X.z.o.o.X.b.XXg.XXzXg.XXgXg.XXg.o.X.X.X.5Xd.r.k c.R ,.k.5.k.kX*Xj.k.kX*.^X5.r.kXj.kX9.^.^Xk.XXx l.X.I.o.b.oXg N.o.o.o.X.o.b.X.b.b.o.X.b.b.X.o.X _.X.b.z.b.X.o.b.X.X.b.X.X.X.b.r ~.8.8.` 3.`X-X3X3XMXMX5.}.a.a.aXDX1 RXDX,X,.aX,XM., [., k.jXr.+.; o ^X0 H M.1 M zXwXr.1.1.1XHX< kX< n =.1 [X..> nXO.'XJ.j gXw y & & OXa.W UX- < < hXs.MXD C.M.W v.v...<X4.F.< z yXcXe g n n.jXpXpXGXnXp.YX+XeX,X1.`XI x.9Xq._ E.. U t t.a RX1 xX- hX5 $ c.Z.Z $ x.} E 1X#Xh k `X, 3.aXIXIX-XI.` 3 3.,XMXM.}X- < < 3 #XM #XMX9XX q.k.KX*.K 3XIX,XIXDXlX5 : :.Z c cXI $X, c RXVXl c.5 cX9 3 c.uXVXVXI 3.` c.KXIXIX-X- RX- R R RX-.a.a x .-X<X<X7XB.p HXm vX, RXD R.uX, 3X- g.-.-X3Xc $ C.)XL 2 O O b b 0 0 0 J oX> & & oXm 9 sXDX,X,XD.ZX,XDXcX,XI.9X..ZXDXD 1.a R.a R a 3.a a RX-X-X-X1 RX1 RXw.9Xe O H.@.s.)X>Xw.}.a.a $ RXI BX- RX-XD.Z $X, $X,Xl $ RX-.a.a R RXDX, BX-X- RX1XD 8XD xXL v.s.sX> W.pX< |X* ~.HXtXtXt.k.rX*.^.r",
+"XK x.Z 1.'X,.u ` c.,.,X-.aX-XDX1.a BXJ @X. R $ mXcXlXl., DXc $ B R R.aXJ $Xl.'.0XO g.'X1 3Xl 4XyXw s.nXO.'.,.] 'X1 mXI.}.w M & n.j.[.-Xr n MX>.T M.s.x M MXh.v v.B ^ SX8 z M g.YXK g.9XwX0Xn..XnX>XGX>XrX6.{.CXf.j.-XHX.XwXcX.XDXI R.8 3 ~ 3.r.`.8X1.`X1X1XI.8 c ` : : ` ) :XI.K 3.8.H.`.8.H ~ ~XV ~.uXt.k N NX9.o.X.X.o.X.o.o.X.o.Q.XXg.o.oXg.o.o.X.o.X.b.oX9.oX9.b N.^.k.kX*.k.k.k ).& q.k.kXt.k.k.k.kXtXtXt.k.k.k.kXz.X.X.X.b.X N.z.X.b.X.bXg.b.X.b.o.X.bXg.b.X.b.b.o.X.o.o.X.b.X.o.zXz.o.b.X.o.bXg.bXg N.XXoXd.r ~.8X1.8 3 3X3X3Xl # #XD.a RX-.MXIX1XDX,X1X, `.,XZX#.h.1.+.;XC SXC.; S zX0X0X:.<.; n M [XhX< =X< [ zXw M.h y.YXK.>Xw o = =.E.q.E O.=.W.M 1X3 `.-.9 sXlXJ.w y H oXrX>.<X4.p M k.w R.9 n.-.[ n.j.pX+X+.- U.aXI.` F 3 R .p v E.i.M t R R R R.eXl RXD $ BX-.a R t U hXcX<.OX#XJ.,XK.5X5.5.K cXIX- #.,XMXMX, < a h.lXM.FXB.-., #X9X* qX*.z # 3XI.}XI 3 3XV RX-X- RX-X-XD 3.aX1X-X-X1.~.Z.~ R.`X-X-X-.` RX-.k c 3 3.a.}X- R a.a t.a < x Xr.1X+X+XpXnXn &Xm.w sX-XDXDX5XVX,X,X,.ZXD.M.M t.MXsXL.N 2.W O 2 2.s.=.s.. bX> & & 9.'.nXs.DX,.ZXDXDXDX, R $Xl RXD.Z :X- R R.a.aX- RX-XI R R B BXD B 8X,XL s b.q ^ vXn u U a.M a B R R.a BX- RXD t RXD hX,.Z $X- R RX-X- RXIXDX,X- R.`X,XI B.W v.=.W ^Xn.@ MX7 |XX 3XtXtXt.kXtXtXdXtXt.k",
+".Z.DX,X, R a.a.e.aXI x.KX-.a 3.~ RX, mXJ '.ZXD $XK.,XK T $XJ.0XD RX-X, $XD.n.nXO g.]XD.H '.2XUX;.!.n.nXOX5.` ' : DXJ.}.} 1.jX+Xn._ pXnXnX4.jX2.T.+.yX0X>X0.;XC ^ S S M H K.O =XyXHX;.> K.jXG.@.;.E.YXn SX8 wXf.C.x.p.jXH.%XK 5 ' :XlX-XI 3 ~ 3.H.` F.8X1.`XI.`.aXI $.l $ hXK.a I : D 3 3.H.8.u.kX*.k.k.k.kX9XgX9XgX9.o.X.o.X.o.oXg.U.o.o.o.oXg.X.o.o.X.o.X.o.bXg N.^.k.k.kXdXt.uXtX9X5.r.r.k.k.kX*.kXt.k.k.kXt.kXtXt.k.k N.X.o.X.o.X.zXg.XXg.b N.b N.o.o.X.b.X.o.X.o.b.b.o.X.b.b.b.o.b.z.b.X.b.o.X.b.X.b.X _Xg.X.bXdXt.H F.8.`XI.u `X3 1 #.}X- <XI B R 8 RX, h.a ` V.SXZ.S zXr M M M.4X0Xh.h = z.+.+ z z.+Xh.TXZX<.+.T.j z.;XZ.OXZ.+.OXh K.O.G M.;.E 0XL.WXs k k D 1.2.%.' m.9.9XwX0.;.+..Xr.x.jXmXIXIXI.} 3Xe._.p.p W W $.} RXI.8 3.~ x.[.F._ E.WX, a R.~XI.Z 1.,XwXJ.uX-X1 a t.a hXe.-.- $ c cXl ) ` I | (X3.$ ` k kX3.l c a hXM.FXB.[.,X7XJ k.&XkXx.5 ).5.5 #X-X-.aX-.~ 3 cXD.}X-.} 3.a.`X-XV 3XIXI 3.H R R B.` R.~X- R RX3 3X, 3X, 3XD.eX-.M.aXD h.-XpX<.1.jX>X> J.+XrXK m.] mXJ D hXH RXD t R R.a R.M C CXsXs vXs.N.) 8.; v 2.s OX0 = y O sXsXD 8.MXD.MXD.DX, R RXDXDXD.WXDXDX,X1X-XDXD R R B R R $.'X, R.M s bXmXm 0 o.;._.M R a.M R.eXIX1XD.e.aX- R.a cXDXDX,XD 3XD.a R.a.a.*.a $ R.a.aXD h.aXaXs o.v vX2.1X< k.,.rXtXdXtXjXtXdXtXt.kXt",
+"X, $XD R.a R R.aX-X,XlXIX-XIXI RX1X5Xc 'X, 8X1.* R t a R R $XJ $ RXIX5XDXI.Z.0 gXO 8X1.D g '.0XPXc !.0 g.`.HX1.Z =.S.g.i.pX>Xn.s v.m v..Xn.4 H z &.; H H =.> &X0 & &XmXUXO ! gXU =XKXwXy =XU.9XeXe.d v.x w.CXfX0.C y.- 1XD.u T : : T 5 )X9.KXd.8.H.`.`.`.`.8XIXI.a ` $ h $ h.} 1XK.5 D (X9X3 ) :Xt.^X* N.XXgXg NXg.X.o.X.oXg.X.b lXg.oXg.o.o.o.o.o.X.o.X.o.o.X.b.^.kXj.kXtXt.uXd.u N.k.K.k.kX*XjX*XjX*Xj.kXt.k.kXtXt.kXt.k.^.^.XXg N l.b.b.X.oXgXg.oXg.X.b.b.X.b.o.X.o.X.b.b.o.X.b.X.oXk _.X.o.X.o.b.oXg.o.X.o.X.oXo.^.r.8.` F.8.`XX VXMXl 3 <X-.a tX1XD RXD xXD ` XJXZXh.h M zX0.;.+.+ =.+ z MX2X>X8 M.q &.+ n z.h.h.T.T z & &X0Xh.+ &.j.EXr y J 0 /.v.s.w.Z $XD.DX1X1.ZXDX,XsXL o.s.E.C.4.xXrXI.HX1X-.a 3.}X+.j.p.EXG y.a.`.8.`XI.aXBX4XqXe._ $X,XV.5XK DXc x sX,XDXD.a R B.M.M h.i.Y U.aXD.`XIX-.KXI 3X*., | | kX3XBXM # a.l xXrX%.pXB.-., h.AX3 N qX*XXXMXM $.a a.a.aX-XIX-X, cX- aXIX-X-X- 3XI 3XDX5 3.uX,XIXD BX-XI R.%XMXXX- aX1X, $ B RXI.a h 1XcXw =.jX> v J.>.9.' 1.n.wX, c.a 3.} RX,XDXJ RX,.' tXsX, vXU U.M u UXc._.N.s.sX>.E &.E s vXL.Z.Z.DXDXDXD.wX,.W.Z.Z $.ZXDXDXDXDXDX1XDX,XI.a R 8XlXU s.wXL.w oXC 9XC.E v.M R $Xl R RXD s.Z.Z c RX1 RX,XDXl.uX,XDX, 3 t.aX,XlXD.-X,Xl a aX3Xc xXmX0.>.O M.1.T.hX3 k.$.K.kXt.kXdXt.^.r eXt e",
+"XDXD R aX-X- R R 3X1.5X-XDX1.HX-.'XJ.].].9XK TXlXJ : D.Z.u.9.2 T RX,XV.~.Z.0 g gX5XD.D g.! '.w 9 g.>Xy.D.HXI.a.nXp W r +XrX> . yX>._.. 0.@X0 &.EXn vXn.9 &XG yXGXm s.! '.!.' bXP.! T g !.] R 8.NXG.jX>X4.@.E.4 z.1X+ .uXD.DXV.`.DXVX5X5 ( D.A D )XV ~ 3 ~.`.`.8X1 h x 1Xc x 1 x.a.Z : `XJ I.$ I.f.$.^.b.X.X.XXgXgXg.b.o.o.X.o.o.U.o.oXg.oXg.oXg.oXg.o.b.XXg.b.^.k.k.kXt.k.k.kX*XdX9Xt.kXtX*XjX*XjXt.k.k.kXtXd.kX*X*.k.kXtXj N.b.X.o.z.XXg.b.o.o.b.b.b.o.X.o.X.o.b.X.b.o.X.o.b.X.b.b.X.z.X.X.o N.b.X _.X _.o _.X.o.b.^.k.r.8.8.8.}.K V :.l c <.a a R.aX1.aXD $X-XlXc kXZXSXh.+.+.h.+.hX0Xn.E._X+..Xn ^ o J H oX0Xh W M MX0 = HXh.+ =.+XhXwX0.+ z.; O.. 2.N.= uXDXsX,XDXDXD.Z.ZXsXL J.v.E M.E M.w 8.8X-.r 3 aXK [Xw M & MXw.2.0 ` D T .YXq._Xe.gXc D :.%.]XDXD.-.Z hXD B.HXDX,.aXqXqXpX<X,XI.` 3XIX- cXIXI.5X3 `XXX3XX # h.a x .[XBX+Xp.FXK 3.A.5Xt.5 3XX V.lXM $.a a.a a a.a.a.} $.a.a aX-X-.~X- R.~ 3 R R R $ 3.u 3.~ xXMXc 1X.Xc RXD R.u.aX1.}XI 3Xc.-.> [ J S.E.; gXc.]XU DXKXIX,X,X,.ZXD 1.>.Z.ZXK R RXDXeX,.M t.a.}.i.M.d.M 2 v.v o.q oXG b v v s s s vXGXG s x s s.9XG.nXsXD C R RXD.DX,X,.w.w.'XL v.w JXC &X0 o 9.N.M.M $.Z T.9 TXwXKXKXlXK.}.aXIXJXKXw 'XJ xX.XKXw.[.>.j.O s.[X,.3.9 Xc = H =.+XH.T.S [ VXJ.,XX.5XtXtXtXtXd.k.k.k.k",
+"XcXc T :.'.5X5 $ :XD.]Xl BXIXDX1XK.].' T D gXcXU YX#.G.O 4.GX.X; ` )X,.D.Z TXc T 8X1.'Xc.n.n.n.nXU.j.> D.Z t.wXp.JXbX2 r.{XA b 0Xp.@ HX>.O.+.+ =.q.> !.9.9XO @.!.'.'.n.n g.OXO.>.q !.0 'XD 8XlXr.EXnXp y M yXl x cXK.'Xw T )XD $XVXIXIX-.8.8.8.uX* ~ 3.8.8.}.8X- 3 a.a.}X,.i.9 `XD 3.u.k cXtX9.K.XXg.k.XXxXg.bXg.X.o.o.X.o.o.o.X.z.bXgXg.bXgXg.o.X.b.b.X.X.o N.kXj.kXj.kXtXdX*XdX*.X.rXt.^X9./ N.kX*XtXtXd.kXtXtXdX*Xt.k.k.k.bXx.b.X.Q.b.XXzXg lXk.U lXk.b.^XjXj.b.b.o.X.o.b.X.o.X.oXg l.XXzXx.bXg.o.X _.X.b.o _.X.X.X.^Xt.8 ~XI.8 3.,X3XMXl.aX- R RX-X1XDX1 x h c h `X..O.1.h.+ z M M.h.YXe v._.)X= 0X> y s.Y.T = W.@XCXn.+ &.+Xr.1 M M.+X0.T = MXp 0 2 2 pXa.NX,XDXe $X5 x.wXG O v.= H J & JXGXDX1.`.8X-XV 3., M.>.+X;X; @ YXJ.5 xXc XpXn.S n., 1X,X1.aXD `.-XwXK.2XJ T :XwXJ n = [Xc < 3.`.`.8X1.u cXI 3XJX3XM.lXMXM # a.a #._Xr.jXnX+Xn # # |Xx ).$XM.,.[X7.lXM #.} h h # #XX.lXMXX.a.aX-XIX-XI R RXDXD.~.a k s hXD h 3XD $ ` `.,XUXK.2X,X5 c cXMXMXM.,.-.1 zX0 bXw.jXcXJXKXUXw : ` $ 1 $ T mXl xXl $XDX,X, h.a.} RX,XD.a.a.W C UXL v bX> HXC o J J J 9 b bXG.E J o J.E 9 s s s sXaX, 8 C TXU vXG v o yXC & HXm & o J.W.M.M RX,XlX,.Z.Z.Z.a.aX-.aX-.uXD sX.XJXcXH :.Y x 1 sXGXe &.W.M C.Y h.M.W._ o o n.- k.[X7.9.,X3XJ.5.5 NX9X9.r.kXtXtXd",
+".9 :XK.]XKXcXUXJ.2.2 ! D.uXlX5XI.'.2 $.'.w.] $ c x 'XlXcXK m 4.|XKXK.Z $.w T DX1 cXDXJ.'.n.n s s &.'X; =.wXD._.@XA.B.PX:.y M.E.9 v.9.WXL.OX; & @.'.G.% g.w T.>X; sXPXl ' g.O.OXO.M.DX1X1.H.M.-XGX> ^X+ x.9 g `XI 3X1XIXD T.9 ).,.5X9 : )XK.5X5 3X*X*X*X*.8 ~.8.`XIXV R.}.a.a h 3 3.H.K.k.r.K.k.^.kXg NXg.o.o.X.o.o.XXg.o.o.o.X.o.z.b.o.o.b.o.o.o.o.^.^.b.X.^.kXj.k.k.kXtXt.kXdXd.kX9Xj.KXj.fX*.$.kX*.k.kXdXtXdX*XdX*.k.k.k.kXz.o.XXg.z.bXgXg q.6 iX@.I.I.b.^Xj N.b.b.b.X.o.X.o.b.o.X.XXk.X.X.I.z.X N.b.X.o _.X.X.b.o.X N.kXt 3 ~.8 h I VXMXX.a <.a R RXD.aXDXlXD cX, `.-X<XH =XZ.j.E 0XpXn v.M.M.v.s b &.9XJXwXKX+Xw.;.;.TXZ.hXHXh.T.O.h.Y.+.YXr..XpX> . 2 O 2XL v.w xXq x.w xXeXe.W 2 o 2 vXC.9XD 3XI.`.8 ~X- 3 B.9 y.j.>XK.DXDXIXIXDXB .iXe E xXD R RXDX, xX, $ $X,XDXDXD._ ._X+ U.}X-.8.`.~.8 3.K.,X3 V VXMXM.i h aX-.aX, .[X+XnXn u < x.5X*XV $XJ .g.gX7.F.lXMXMXMXMXM.l XM.l `X, 3.eX- RX-X1.a.u.MX,X.Xc ` x.9 hXc `XM .,XcXB.% ` `X3XX.[ ` .- [XwX> v o.w h.Z.Z.9 s.[X. x $ :X.Xw vX,X, xX,.u h `X,.,X3 1 xXK.9 1 x.W 8 p b O ^.q H H.q.;.q.;.q.q M & H &XC.q H b b sXa s.n.W.9 & b o HXC w ^.@.@ H.;XC.W.W.M R t R.e R.a.Z $.a a.aXI RX, $X5 $XD 3 hX,.a x.WXs.s.sXL.s v.W.-XpXpX+ H =.+XZX<X# kXK.,X..3 } I I 5.A.&Xo.kXt.kXt",
+" RXD R RXD.DXD.n.Z $X5XUXJXJ.2 T D.2 T 'XcX..O ' m.e.eX- RXlXU :.D.' =.n.'XP.nXDXK RXHXK.!XG y.! g !.!XUX, u.YXn.v.vXnX>XH 1 R 8XIXDX,XU m g.] gX5.nXU.].nXK g ! = !Xm !Xw g y 1 $.8.`XIXI hXp.@X>.E x.} cXlXc (XXXXXcX,XD 3XV.uXX.5 ( :XxXJ 5 )X*X*.kX* ~XV.8.H.`.`.8 R 3 3 3X1.8XtXt.kXj.^.k.k N.XXg.o.b.XXg.oXg.o.o.o.o.X.oXg l.bX9.o.X.b.X.X N.^.k.^ N.kXtXj.kXj.k.kXtXt.kXt.k.bX*.r.kXg.z./X*.kXtXtXdXtXd.u.kXdX*.uXtXdXd.b NXg l.b.X.b.oXkXg.bXz.^.^Xj.bXgXg.o.o.b.X.o.X.X.X.b.X l.X.XX@X@Xx.X N.o.X.o.o.o.b.X.b N.k.u.r 3.8.KXJ V 1 :.}X-.aX- RX,X,.Z c.a xXD `XwX#XZ z MXG 0 0 v 2XLXn.WXLXn =X;XUXKX- 1XKXrX+ H.O.T.O.1.S.SXH.1.1XZ.1Xr.g.<X%.@ ^X8X> J.@ vXL.W U v v H v &X+ oXLXG 1.Z $X,XV.kX5.zX5.uXDX3XH.3 T `., :Xx.8 3 c x XpXpXq._Xq U.M t RXD.a $.MX1X1XD U.M._.m.FXpX,X1.`.8.8XI.`X* cX3 VX3XM.l a < aX-X-XI.l.p.pX+Xp.M <.a 3XlXl.5.j.pX+.p.gX7XB.F XBXB X7 kX7 .lXX 3 #.aX- R.a R 3XD.a.a hXK.,.,.S kXcX7 .lXM ., [ V kXM XXXB .Y.g z M oXL.M $XK.a h xXKXc .>X.XK.-.ZX,X,XDXDX,XD $ $ 1 yXcXy.] T T.9.Z 8.N v.v OXi 0 J ^ ^ 0 0 ^ 0.v J ^.; 2 b.E &XCXC o OXLXLXL b wXC b.v.v.v.v.v w 0 OXLXe.a.a.a aX, R.MXDXD t R aX-.a RXDXD BX,X, $.M.M.MXe.W b 0.E.=X0 HXw M W MX0 M.OXh k [.,X#XhXH.3 6.,X9 qX3 q.kXtXt.kXd",
+" R a R R RX1 8XDXD.n tXl ' $.].2.0.ZX,Xl R.w.Z xXKXDXc.wXD : !X,XD.DXw ' s gXDXIXJXK KX; =XUXw !.> =.'XU.W.EXp...s..XC.Y x.9 D T.ZXD DX$X; DX. 4X5.G m.'.9 g 'Xm g.OX; mXl R 3 x.]X3Xo ~ R x.jX>X+.W.MXI R.8.uX3XX D ` D.,.5.8 ~.8.r.u.kXo )XxXx.k.kX*.k.k.k ~ ~ ~.`.8X1.8 3XV.8.H.kXtXd.X NXgXg.o.b.X.o.X.o.o.b.oXgXgXg.b.oXgXgXk.X.o.XXg.b.o.bXjXj.kXjXd.k.kX*XtXt.kXtXt.kXt.k N.KXj.k.kXjX*.^.kXt.kXtXdXdXd.k.k.u.kXtXtXt.^.X.oXkXg.oXgXg.b.oXgXj.^Xj.X.bXx.oXkXgX9.o.b.b.o.X _.XXgXx.X N.& 5 QX@ ).z.X.X N.X.X.X N NX*.r.r 3.` : VX3XX #.a.aX-.a < $ hXD 1.3 1 : [.,.S.1X0.Y 0.sXG JXL O y.sX>.j &XwXDXlXV h $.- MX+.jXh.1 k [X7XHX<.1.- .hXh.yXrX: MXhX2.@.v.s vXe vXs.Y.T n M M = M.> kXKX.., D I.| IXo ~.H 3Xl # ` | :X3.$.rXV 3XV $.l.YXpXGXpXe x h.}.WXDXJXJXK m xXc tXeXeXq x XI.8.8.`XIX-.uXI.u V XM.l.} < <.aX-.a.l.-Xr Xp._ t.a.aXlXcXG.j.y W.<X7X%.g.[ kX%.[X%.g.[X%.[XBXMXM h 3 RXI.aXDX,X,.a x ` 1 ` [.3.L.L k.[XB X7.Y [X#.-.,.g., [ [Xr MXr.E.)XD x ` x.9 $.9Xw g.2.w.D.wXD U h $ 3 hXK.Z s.ZX,.DXsXDXDXDX- R.a CXa.s 2 2.v.v 2.v 2 2 2 2 2.v 2 0 / 2 O 0 o o H HXmXC JXCXC.v.B 2X= 2...s 0 v O 1.M.} a.a 3XD.MXDX,.Z.a a.aX- aX- RX1 $.a.M.aXI.M.M._._ JXa 9 b.s.)Xp.) v 0Xp M.[ `X3XM xXcX.X. }.K 3X* :.r.kXtX*.k.k.^",
+" R.aX-.a a RX, R xXl :.Z.wX-XKXHX.X-XDXDX-.M R t.eXK $ : m.'.OX.Xw.] T sXO T BXDX1.' g '.9Xm y s.E.>X0X0XpX4 ......@X>.E = !Xm.2.OX. !.2XcXy 'XJ.' 4X;.9 g.'XwX; gXU.]XUXK $XDXIXV.]X3 `Xl $ 1 x.M R.aXIXIXIXI.`X1XVXV.] 5XoXV.r.k.k.kXt.kXdXtXt.k.kXj.kXj.k.r.8.8XI.8.`XI.u.`.H.r.uXd.^.b.X.o.X.o.X.o.X.bXg.X.o.o.o.X.oXg.X.b.z.o.oXg.b.X.X N.^.kXt.k.kXtXt.kXj.k.k.k.kXtXt.kXt N.k.k.kXt.k.kXtXtX*Xt.kXt.kXd.uXdX*.k.kXdXt.^.XXzXgXx.b.X.b.X.X N.kXj.k.b.oXg l.o.X.bX9.o.X.b.X _.XXgXgXz.k F.rXx T 5 ) ).k.k.k.u.kX*X*X*.r 3.8.`Xl VXMXM # R.a.a a.a $ h x x.3 x = xXc.-X<.[.j JXmXmXP.9.w.x HXr.E v.E U g .% 1 YXl k yXZ.h.1Xh [X#X<X#.T.F WX%XrXZ.jX%Xh =XC.j.EXn &.Y.jXn.1 n.T.1.1.jXJ x x ` cXVXl.kX5.k ~.H.rXV ~X*X*X*.r.rXjXt.kX*.u.uX, TXw.[XG.FXe._.FXe y x x hXl x.M UXe.w gX3 3.8.`.8.8XVXV.`.KXJ .l.l h.}.aX- a.iX7.j yXn x < u.i.YX+XpX2 z.yX4X%.p.g.p.pX+.[X+.{.x.p W.pXB.lXX.} cXc 3.u.ZXM ` VXB X+.FXp k n.+X: zX% WXH [ [ MX< n M M M [Xr.+.x MXe.M U R.9 1.9XJ.9XKXD.ZXDX,X,XIXDXDX,XDX,.}X,X,.M 8X, R.M.a.M.M t 8 C 8.WXa.sXa 2.W.= 2Xs.W.)XsXLXL.N.N 2.s 2.v O ^ w wXC HXi 2 2.).N UXe.wXe.Z h.wX,.a.a h.u h RXDXD $XD R a tX- R RXVXD.Z cXD 8.M.}.)Xn s.M 8.w J 2.sXb.s v.j.[XcXB.-.lXcXK [ mX. c.KXK 5XJ 5.5.XXx.^Xo",
+"XD 3XD.aX-XDXD.e hXc.'XJXJ c.0 KX. D.9 TXKXJ : ` R.9 m 1XUXJXh Y Y.O.O 4.G.ZXI 8XDXO.0 x.w.9.> vXGXmXZ.+ & M.+.jX0 zX+X0 = y vXaXyX;.%Xw mXwXJ.9X,XKXPXK g sXyX;X; TX,.u T D ` c :Xl 3 :.]XJXl.uXIXIXIXI.`.8XI.` 3.8XI.r.KX*.r.KXt.k.^ NXjXtXj N.o N.b N.k.kXt.u ~ ~.8.`.8.u.` ~XV.k.kXj.^.b.X.o.XXg.bXg.b.b.o.o.X.o.X.oXg.b.o.z.X.o.o.X.o.^.k.^.kXt.k.kXt.k.k.kXd.k.kXt.kXt.k.k N.k.r.rXt.kXt.k.kXt.kXt.kXtX*.kXtXt.kXdXtXd.k.^.XXkXg.XXg.X N N.kX*Xj.k.XXg.cXg.o.X.X.X.o.X.b.b _ _XxXx.kXtXV.8XDX1 cX3 I 5X9.K.k 3X*X*X*.u.r 3XIX3XX # #.} 3XI.a.a.}XqX7XcXK.,X7.lXM.Y ` [.S M.j y 8XD.wXc o ^.@.@.s J.Y.-XcX5XJ cXc.OX. !.TX<XwX3.g.SX<X%XrXpXq.j.h.S.O.hXSXh M.+ = = =X0.Y = k n.YXw.-.9 R.aX* 3XV ~XV.r.H.r.rXdXt.k.kXt.k.^.k ~Xt.k.kXt.k.K.KXH.3.1X% MX>XpXq.j.-Xw.[XB.jXc = .YXq 1.- h.a.}X-XI.8XV.H.`XX VXX.l.lXM h c.a.i .gX+XpXp U XpX4X2X2X+ rX+ z.T.xXrX+.<Xn.<Xf.<Xf.<.pX%.[XBXM cX-Xl.,.-.KXH.SX%.T.g.gXr [XrXr.J.x.h.h.j WXrX+Xr.jX>XpX0.E S M.y zXr..Xs U a xXJXK 1.M.Z $X,.Z.uXI.ZXIXDXDXDX,.M.a $.a.a R R R R.a RXD.M.M.M 8.M.M.MXs G 8 C 8 C t t.NXe C.N.N.).)X= 2.v.vXi.v 0.v 2.) C C.M.Z xXlX,.ZXD x.a 3 3.ZXI RXD.w h.W.a a.a.a.e.ZXDX,X, RXoX,.M.MXnXn.9X1X,XDXC 0X=X=.s JX0 k.-.SXHXH [ K.3X#X3 I ,.$.| I }.HX*XV.kXt",
+" 1X.XlX.XD.- $ 1 ' x.a.Z R R $ mXl.D c $.ZXcX5.Y hXlXD RX1XD TXy cXKX. g 4XI.DXI.0 T.n.nXD.Z s s K !Xh.O.T.jXwXr =X0.>X;.G.! s s mXH.2 g.2.'.' mXOXwXwXUXK.'.'.> D.DX5X- cX5 ) DX3.5.H R 3.k D.uXI.8.H.8.8.8.8 ~ ~.r.kXo.k.kXtXt.^ N.X.b.^XjXz.X.oXg.X.X.^.kXjX*.r 3.8.8.8XV.8 3.r.k.k.r.k.b.o.b.o.X.o.o.X.o.X.o.o.o.b.X.o.XXg.U.bXg N.b NXjXt.X.^.kXdXtXdXtXdXt.kXtXt.kXt.kXtXtX9Xt.k.^.uXt.kXtXt.kXt.kXtX*XtX*Xt.kXt.k.kXjXt.^.bXk.b.X.o NXjXjX*.k.k N.oXkXg _.b.b.o.b.X.o.o.X.X.X.b.k.u.rX1 3X, R R.~ 3 c T ].].kXV.r.8 3 ~XV.` V `XM.u.a.8 3X-.a h.Y.[.,.[XJ ` :X3.-., nXhXc R.DXVX,XD.Y v.) 2.s JXr.TX;XK ! D I (.O =.O MX.XwXwXZ.L.1.FX4X4 hXrXp.-.1.1.1.gXHX< zX..1 kXB 1 .9XcX..8XI cXV 3.8X* ~.kXt.k.^.k.^ N.X.X.k.kXk NXg N.kX9.rXX.].,.> =X0.+.+ SXr W z WXH WXr.pXrXn._XnXB.i.a.8.`XI 3X5.8 3 cX3 VXX VXMXM #.l #.FX7X#Xr.p y M.<.x W M.<.x > zX2 W.hX+Xp XnX4XnX4X4.x.p [X7.FXM < #XDX,.}XcXBXBX%X2X2X2X2X: zX>X6 z.4XnXpX> yXM EX,XeX4.x.yX2 w S HXG.W $ x.w ` $ h cXD $XD 3XDXlXJXc c $ $XD.M.aX,XDX-.a.a R R.a a 1X1 R t.MX,.MX,.*.M.M C 8 < 8 t.MX,Xs.*.M.N.N.N.).) /.)X=X= 2.N C._.9XD x $ D :XDX5XlXcX,X,XI R.M R.MXlXD.a.aX-.a 3 R.aXD 3X,.% mXeXmXr.jXU m.%X. K b J ^XC.> = =XS.GX#XJ.,.3X# 6 `XMX3 ) ) :Xo.u.k.kXtXt",
+"XJ k.,Xc.9X.XK.,X..' :X.X1XDXl m.2XD.* R.eXKXw aXl :Xc.wXKX5XJ.2 8.w s.0 KXDXI TXU '.w s.Z.n vXPXOXm g.w.DX, h.Z xX.X.Xw g.' '.D.w $ 8X,.Z 1.'.9.GXU 'XU s 'XPXw D.]XcX5X1 RX1.u T IX3.K 3X- 3XI.8 3 ~ ~ 3.r.r.r.r.k.rXxXt N.b.X N.X.XXg.b N.bXg.b.b.X.o N.^XtXjX*.r ~ 3.`XV.rXtX*XjX*XjXj N.b.X.o.o.X.o.b.o.b.oX9.o.b.X.o.b lXk.bXg.b.bXjXt.^.X.kXdXtXt.k.kXd.kXt.kX*.k.kXt.k.kXx.r.k.H.^.r.kXt.kXtXtXtX*Xt.k.kX*.k.kXt.kXtXt.k.b.z.X.X.b N e.^.^.^.^XgXgXg.o.b.o.oX9.bXg.X NXzXd N N.k 3 3XD 1.9.9 1 1 x.' xXl g.,XK.}XI 3X-XI #XcXMXl x $ c # c.} $.- k [X.., k V `XKXc.GX# `Xc.2.$.0 : :Xr & s.s.s 0 0.jXm y.H.Z.D DXlXU n.-XH.-.Y.O.+X0 [.1 W.F.jX<Xp.[ n.gXBXB.-XJ.Y.Y `XB ` ` : ` D `XI ~X*.u.rXx.z.k.XXtXg.XXk N.k.f N.k.k./.^ qX9 N./.k.k.KX,Xl.'.E y.; z SXr.pXnXn.jX4X4._.F._Xq.p # <XIX1.` c.k 3 3XI.8X9X3 V VXMXM x .lXB.h.T.1 z.h zXZ.T.+ z WX>X4Xf z z UXr E.M.M u UXGXp >.[X% 1.l 3.aX-.i X7.pX:.<Xf %X6.<.<X8.@.JX>.@.@ o y.YXG >.xXfX8.4.4 M.; J s.W.WXD $XDX, 3X,X, 3XI `.2 kXlX. 1XJ ` RX-X1X,.a BX- R R R.eXc x X5 x a.M UXD.a.M t < R a R aX, h t t t t t.M u.M.)Xs.).).N.*XGXH 1X.X.X..G.%.%Xw.G x `X,X-XD R.Z h.Z.a.aXD.}.a $ $ :X. cXh.O.OXh & M g.] ).' K 0 JXm HXKXK k.3 V.,.,X3.- V., #.a 3X1.u ~.5X*.kXo.z.5",
+"XDX,XlXI $.aX,X,.Z 1.' TX,.D DX.XU.] 1.Z h $.9X1 R.M.Z.3X;X.XU $ BXD.nXU ! ' gXU.'.' s ! 1.' y yXD 'XD 8XDXs.n g.>XwXPXK g :XK mXJ g.,Xw m m T.0X. T.'.' s.wXy.G $ : :XK :.u.Z 3 3.uX5XV ) D.KX*.rXtX*XtXj.k.k.kXt.k.^Xk.^.X.XX9.o.X.XXg.XXg.XXg.X.b.oX9.o N.^.k.kX* ~.r ~.r.u.k.kXt.k.^ N.b.o.X.o.X.o.X.o.X.o.X.o.bXg.b.o.X lXg.X.o.o.XXjXj.^.X.^ N.^.k.^.^XtXtXtXdXtXd.kXdXt.k.k.k.5.I.r.kXt.kXt.kXtX*XtXtX*Xt.k.kX*.k.kXt.kXjXtXk.X.o.o.b.k.^ N N NXg.XXg.oXg.c.c.cXg.b.b.^Xt.kXt.5.K 3 xXGX+ .X6.<Xn.@Xf.@X>.E.E M nXGXpXGXG.pX7.YXq 1 xXB.Y #XK k mXl 3 #XM : I.2.%X. D., D D D D I DXPXw 9 o 0.@ ^ 0.; &.wXdXV.RX5XJ Y.OXH KX;Xh.OXr v.1Xr z W z.1Xp.g.S k.-.Y .9 : `.l xXKXc.,.8 ~X*.8Xt.r ).$.X q.XXx qXxXx.XXk )X*.X q N.z.o.XXx.kX5.k.uXl 3 $.Y y H H M z.jX2Xr M W.xX4Xn.FXpX7.i c.uX*X*X3X9XXX9.k.K.KX9 VX3XKXBXK.F [X7.pX2.xXr W.@Xn.;.+ W.<XpX4XnX4Xr.M U < <.M hXpX+.pXr.<.FXM.} h h .lX% z W rX8.4.x.y.<.x.x MX+ =X0.j nX+ nX:.T.4.4.4 S.; & H v.W.D.DX,X,X, R.a.aX-XI 3.Z x.u :.ZXIX,XDXD R a.DX1.aXD.a RXD.aX-XD `Xc.Y ` :X,.}XD.a.a.a RXDX- R.a cX-X-.a R < a t t t t C a.M < $XJ : m $.Z.ZXD.ZXlXJX5X5X. cX,.Z $.9X. `Xl $X,.ZX,X,X;.OXl.9 s.= o JXO $X1.` :Xc._ =.+.].O # 3XIX-.u k.3.[ 6X# [ `.9 kXJ.| ) P.|.A.A.|",
+"XIXD T.9.2XUXJ.2Xc TXUX5.O TX.XKXJ T.' T.2XwX.X.XJXKXlXwXl.wXKXKXD 8.w T.9 'XlXl.n.Z !XK gXK.9 gXJXOXUXU T s.! ' T s.n.9.0XUXDXDX,.]Xc.,.'.0.9.9.n.O.>.DX.XNXUX;X; 5 `XIXI.uXl.K (XI 3.8 3X*X9.X.kXjXj.k.^ N.b NXg.b.zXg.X.o.o.o.X.X.o.X.o.oXg.o.o.o.X.oXgX9 N.^.kXtX*X*.kX*Xt.k.kX*.^.bX9.o.XXg.X.o.o.X.o.b.o.o.X.b.o.X.o.o.z.oXg N.oXg.^Xj N N.oX9.o.X.X.b.^XdXd.k.kXt.kXtXtXoXoXdXt.k.k.kXt.kXt.kXtXtXt.kXt.k.k.kXtXt.k.kXt.k.kXxXt eXj.^.b.o.bXg.o.o.o.cXg.c.c.cXkXgXg N.^Xt.kX*.K c.iXcX> ^X6.P.P.J ^Xf ^ ^ ^XfXp.EX>XG .X> W M W M M.jX%.g.-.g K.G D.$.,XXXJ }.] m )X.X*X* c.k.uXo DX1.] $.9.qXmX>.;.; =.E =XIX1.`.8XIXI 1.K.9XcXhXU.9.jXr.jXpXn.j.x.[.y.T K.SX.Xc [XJ k [ [X..S.O I ) 3.r.kX9X*Xt.kXdXt.k.k.r.k.k ~.uXV.r ~ ~.r.k.kXj.kXdXt.k ) D mXl D =X> HX> H.T JX4 0Xn M.T WXr . .-.,XD #.r 3X*.r.8.8.8X-.KXJXK.' 1 xXrXBX7X2 >X2.x.. v.W / /.vXf z.;X>XpXpXp.[XhX,.a h.* xXG >.xXr [ ` XB.l.[X< W W SX: H r r SX>X6.<.xX4Xn vXn oXn .X>.4.4.4X:.C.EXn.EXG.W 8XD 3X, $X, h cX5 x.aXIXl 3X, xXKX,.u.-.' 3XIX.X5.eX1.a.e RXD RX,XI :XDX, $ :.[XKX3.MX- RX1X1XDXI 3 aX-.a R.a.a.}XD.}X,X,XDX,X, c 3X5X1XVX,X1XDXDXKX, :.ZXIXlX,X,., $.Z h.ZX, hXDX,X, :XD sXs.s O & !.~.u R 3.aXK.G.n RX-.`.a.`.8X-X3 6., VXXX<.,X<XJX,X9 c.u.kXV.u.r",
+".ZX5Xl 1X,X,X,.Z.Z $X,XD R.'XJ T TXUXJXKXJXc Y.O.G mXJXKX,X,.Z.2XK R s.!XJX.XJ g.].9 g.- sXw.OXw =XUXw s.n.'Xl.9XD s 1XD.MX,.wXlXc.>X,.9 T sXK g.-Xw @.2XyXy.G.G kXl D mX3XlX1.u TXVXV 5 )X* c.k.k.k.^.^ NX9XgX9.o.b.I.bXgXg.o.bXg.oXgXg.o.o.b.o.o.o.o.b.oXgXgX9.^.k.^.k.XX*.k.k.kXj N.XXg.bXg.b.o.X.o.o.X.o.X.o.o.bXg.b.o.X.z.oXg.X.b NXjXj N.o N.b.X.X.X.X.X.^Xt.kXtXt.kXtXt N.^.rXt.k.kXd.kXtXt.kXt.kXt.kX*XtX*.k.kXtX*XtXt.kXt NXt.b.X.o.o.b.oXg.cXgXgXg.U l.c l.UXgXg.b NXtXt.kX9X*.}Xc.E JXf ^Xf ^.J 0 p.sXeXL.W.MXe x sXG.@.J.x.4 WX:X:X2.y.1 nXH ` c 3X9 c.5.KX9XxX9X*X*X*.rX9 5 ).K c 3XD T &Xn.s.... v.! TXIXI.HX1XI.8.}.`Xc.2XhXw.OXh.T zX0X2.;X+ M [XZ IXcXc.3Xc.- V X3X7.-XK aXV.rX*X9.k.r c.^.uXd.k.H.u ~ F.`.uXV.r.r ~ ~.r ~Xt.k.k.k.2 5X. T.,.O &.q w yX0.@ b S M.x.h M.h.+ MXHX<XHX3 #.H.5.8Xt.8.u R ' : 1 RXD.wXpXr.p W.p.CX> 0 2 /Xs.= / 0 S HX8X>.xXnXpX+ xXc c $.}XGXp.<Xp.[.[XB.SX7.SXS z.h M.+X:.T.TXh.y z.;.T W SX4Xf.CX> w.4.; S S.4X>XnXaXs.w 1 tXDXKXDXD k ' RX, m R R $.Z a c `X, RX5 $X-.Z $.%X5.~X1 RX5.* 3X,.ZX, $.ZX- RXD :Xw.2XlXDXD.Z.Z $.K.D 3XDXDXDXD.a.a.a a.a a a.~.~.`XlX-X1XIX,.`.a.e RX,X-X- $XD RXDXH.3XcXl xXD.Y xXK.] `XZXwX0 o =Xw D.uX9XI.} DXJX, RXI.`.`.8X-.` 3., V XB V [.Y.9XJ c.uXD.8.K.HXV",
+"X.XcX..2 kXUXJXK.9 : ' : '.'.2X, R B sXl.9 ' T.ZXK.GX; D.eXlX,XDXw.wXK T.].' TXcXK m g.D x.Z sXK yXw.9Xl.w TXw TXJ yXJ.MX,X,.F n.9.Z : s.'.2.2XU ' g.2X;.ZX1Xl DX. 3.aX5.9 D.].uXVX1.K (X9.$.& N.^.kXz N.bXgXg.b.oXk l.bXg.bXgXg.o.o.b.o.o.o.o.o.bXgXg.o.oX9.o.o N.^ N.k.XXt.k.^Xt.k.XXg.X.X.o.o.X.o.X.o.b.o.X.bXg.X.o.o.X.o.z N.bXgXg.^.^Xj N.o.X.XXg.X N.b NXjXt.kXdXt.kXt.k.X.kXt.k.kXtXtXt.kXt.kXt.kXt.kXt.kXt.kX*Xt.k.k.k.k.k.5.r.X.o.b.o.c.U.cXk l.UXg l l.c.U.UXgXg.X.^.k.k.rXMX*.a.YXC.@X6 ^X6 ^X6Xn.) u u.M.MXD.M 8.Z vX4..X4 . ..C.{ ; W.;X<.O :.`XD 3XV 3XxX*.uXtXtX*XtX*X9.$ I ~.5 cXcXcX. oXp v v & = yXc.u.D 3XI 3 3XI )X. m.G K K K =.hX0.+.@ S nXH.3 YX#.3XHXS k.- [.,XH., :XI 3.r.5.rX*.rXV.k.HXV.XXJ DXJ.]XOXx.`XV ~.H.r.u ~XtX*.r.uXVX5XV 8Xl 0.v 0.@ b.v 0.+.h ^.+.4.+XZ.T.+ z.1X;X,.`.k ~ ~ 3.HXDX1.9XlX, U.wXLXp.[X:.x.4 w 0.NXs C.N.).v H.;.; M SXr.@XpXp 1.MXHX, U._XpX+Xr.[X<X<.[.h.h.; z z.L.h.h.LXZXZ.h.y.+X: r.{.4X8 w.4 z S wX>.@ vXeXe.M.ZXc.u xX5 RX1 hXD.MXDXDXD RXI R R R BX-X,.uX-X1X-X- D :Xc :.0 g D.'XwXJXU D.wX,.ZX,.D xX5XH.DX, RX1.ZXDXIX-X- RX-X-X- t R.a.eXI RX- R B 3 c R RX,.a.M.a aXIXDX-XVXD R.ZX5XH.YXcX#XJ.%XwXJ.,XK.1.L MXLXsXK D D.2 m `.3X5 DXoXl.`.~.`.`.8XV.,XXXX VX7 kXp x.-XZ.u ` c 5 : )",
+" $XlXKXl :.'XcXKXKXy DXy.GX. !.0XDXD.'.% ! :XUXIXJXU :XcXw.ZX- 8XDX.X;Xc 8 RX-.a.ZXw 1X-XK RXD t.MXD UXDXJXh m nXlX,X, h UXcXw $XD 8 ' sXc.>.O g ].2XK TXJ cXDXVXl I : c.u c.] (Xo.H.5X5.^ ( 5.X.o.X.oX9Xg.bXg.X.b.UXgXg.o.o.bXg.V.oXg.o.o.o.o.o.o.o.oXgXg.o.o.X.o.XXg NXx.^Xt.k.k.^ NXg.X.b.X.b.bXg.o.X.o.bXg.b.o.b.X.o.bXgXg.oXg.X.o.b.b.X.b.X.b.o.^XjXjXj.kXj.kXtXt.k.kXdXt.X.kXt.k.kXt.k.kXtXtXt.kXt.kXtXt.kXt N NXt.kXtXtXt.k N.^ N.oXg.c.c l.U.c.cXk.c l.c l.U.cXk.c.b.XXdXt.kX9X* 3 g.q.q H.4 S.;Xf...m.).M <.}.a.M h U.MXL v._XGX4.C.P ; L.<.Y.G k.0XJXJ ) 5.2.R D ]Xx.|.k.u.r IX. : DX5 m : $ T n = nXw.+ =XhXh.G.OXI.u 3 3XVXV.8 $XU.OXhX0 H.+.T.@ y.j.1XH.S [., kX< [ [ =.jXw !XJ.D.8.5X*.u ~.H.8.H.5.2.%.0.0.'Xy gXUXP mXV.H.8.H.r 3 ~ 3XV.H.KX,.DXP wXCX0 H.@ O ^.@ MXfXi ^Xf.4 S M.+ M M =X5XJ.^ )Xo D.K.9 D.3 c :X,XL v.@X6X6 ^ 0.vXs.N C C.= / 0 O.vXn.s wX2XpXp v $.-.e.[.wXn.-.[.-Xp [Xp nX:X0 z z.x + [X2.;.; M.4X4.<.C.4 SX8X: r H J 0.v v v h U.a $.Z c.aX-X-.aX- R R.MX1.MXD.aX,X1 3 3 3 3X, : 3X, 3 DXJ TXK $ $.Z.w.Z 8.w $ R B 8.MXD.DX, R.wX,XD R RX,X5 R RX1 R.aX1 R B RX-.aX- RX1X-XDX5 RX-XD RX-X, a a 3X-XI #X1X,X,X. $ 'XK.9 xXl n cXl x v v bXDX-.H c mXc : `X3 I D D.`.`.`.`.8X-XX V., V k.gX< n 1XhXh.1XcXH I.%",
+" BXl.Z.e 8 R.a c 'XcX.Xc D.2.GX;.2Xl T.9Xl.wXD s m T h gXJ.ZX,X,X,X..O.'X,XDXDXI '.2.wXcX5 $.a R R RXl.9.GXwXcX1 8XD x.9., kXc UXDXs.0 T !.2X;.%.O DX1 #.] ` IXJ :XV T ( : (X1XV T.X P 5Xx.X.zXx.X.o.XXg.b.XXg.o.o.z.o.X.oXg.cXk.U.U l.c.c.V.o.o _Xg l.U.z lXg.b.X.X.X N.X.kXt.^XtXj.k.b.o.X.o.o.X.o.b.o.X.o.o.X.o.o.X.o.oXkXg.o.X.bXg N.o.XXg.b.b.X.b.^.^XjXjXj.k.k.kXtXt.kXt.5.kXtXtXt.k.k.rXtX*Xt.kXt.kXt.kXt.k N.X.k.k.k.k.k N N N.oXgXg.U.U.c.U lXkXg.c l l.c.UXk.cXk.X.b.k.kXj.XX*XIXc.qX0 M MX:X0.;X4 v E h.} hX,.aX, $XD.Z 8.Z U.)Xn LXA {X4XrXw IXJ.5 m.] 5.$ I 5 5.R Q.kX9X9 | PX5XJXK.K.,.'XJ $ Y.>.q J H.j.jXmXm $Xw ) c.KX*X5XV 'XN.GX0XGX>X> 0.@.;.1 zXH =.1X< n [ nX0Xw 9.0XOX1X-.|.5.].| :.2 m.G.2.OXyXO.>Xy 'XU g.2.2 TX5.8X1XV.H.H.HXI c B.DXU & M z.+ & H.; S H S.xX6.;.4.;.T.+ = z.OXU.,XJXJ ) D.] DXlXK x hX,XeXe.v 2XbX=X= 2.N.M t t.M.=.s 2.)X=Xb.v.{.xX4XpXq t hXK x <XG.Y.9.g.j.pXrX2 M.JX2X2X2.x.{X8X:X8Xf L.P.4X: S.4 w w.E w b J.W.w.Z h c $ 3 # c.u 3X,XD hX,XDXDX,XDXIXD.aX1 R.aXDX-XIXIX1 R RXDX- B.a R R R.aX-XD B tX,XD.D.Z $.w $.MX5 $.aX- aX,X5XIX-.aX1 B.eXD RX-XD R t.e RX-XD 3X1 a.aX- a R.aXI R R x.eXIXD c.w h $.M x `XD.Z c UXL 0 s s.Z 3XD.MXDX, c 3 '.u 3.`X-.8.8X-.8X*., k VX7 kXhXh.p =XcXH 1 x $ c",
+" a.,XlX,X,.a R s $.aX,XD.Z.nXH.] TXl TXKX5 RXIXD D.'.u BXJ., a.a.aXJXyX..ZX,.MX,Xc.O.2 1X,XK.3.'Xl.'X..%.O.].n.D.Z.Z.ZX..w 1 KXJ.'.0.0.GX;XO.D.]X# T cX-XV.8X3 5 T.u.8 c.2 I 5XxXoX5Xx.R fX@ QX@XxXgXgXg.oXgXg.X.o.U.o l.c.c.U.U.c l l l.U l l.U l.U.U.U l l.o.bXg.b.^.b.b.kXj.k.^Xj.^.^.X.o.b.b.X.o.b.X.o.X.o.b.X.o.bXg.bXk.o.X.I.U.I.#./.o.o.X.X.oX9.X N.kXt.kXtXtXtXt.kXt.k./.z.KXt.kXtXt.k.kXt.kXt.k.k.kXtXt.^.X N.^XtXtXj.k.X.X.b.X.c.c l.c.U.c.UXgXgXgXg.U l l.cXk.U.b.o.^XdXt.XXtXV.9 g.jXm.EX0 M.; wXn s.MXDXIX1.uX,.a.aX,X1XD.Z.W.< 2.P.@.j.GXD 3.HX5XVXdX5.kX*XtX*.k.u ) IXXX.X3X,Xl : D :.uX5X1.0 T.9.EXL..Xn v y s.' T D I m I ].G.G K.+ o.+.+ S.T.T.+.h z.hXZ.+ KXhXh K.> 'XPXO.2 ( ! ( @XyXc.G @X;.%.OXyX;X;.>.>.9 b 9.!XUXOXU TX5 $ : gXc g.2.% n.>.>.OXh.+Xh = &.x.<.;.y S.4 z ^X> ^X> y n s xX1XI.uXV.` R c x h.w.).NXb /X=.).N.M.MX- t < C.NXL *X=.)Xb.P.;.C.<XnXq.W < UX. h.M h.YXpXpX>X8X2 r rX: r r + r ;.{ ;.{X8.y r H ^.4X>X>X> H b vX,XGXl 1XDXDX1.u a.a.a a a aX-.a.e a R R.a R.aX-.~XD.ZX5X- RX1 c R.a RXDX- RX, R R.a RXD R.aXD.M.Z $ h.M $ hX5X5.a $ $X1XD $.9.9X,X, hXKXlX5Xl.'X5 kXD a.a.a <X- t.e.a.Z RX5 a.aXD.ZX,XD.DX,.9X. nXl T.W vXC b yXU Y.9XJ.YXH DXw., 1 RXD.`.`.`.`.8XI.8.}.}.a Xw.-XGXp._.9.[ 1 xXJ",
+"XD ' $XJ mXc k.,XcXUXD TX,X1.2X..,.9 :X,X1 R B B.'.2 $.Z cXlX- RX-Xw $.D k D.eX5X; mXDXDX-XD.DXcXI.2 gXU.2 !.2XUXOXUXPXO.!.0Xy gXPXU.>.O.O D T.DXJ., , ( :X5.r T I.%XJ.2.5.0 5.| DXx.^XxXx.&.&.(.X.o.XXg NXg.b.b l.#Xk.U.z.U.U.c.U.U l.U.U.U.U.U.U.U l l l.U lXg.b.b.^Xg.XXd.^Xj.kXjXt.^.b.o.XXg.o.o.X.o.o.o.X.oXgXg.b.X.o.z.o.o.6.I.6./X@Xg.o.o.o.o.b.^.^XtXtXt.kX*.k.k.kXt.k 5.&.zXoXt.kXt.r.kX*Xt.uXtXtXt.kXj.X.X.b.X.kXjXd NXk.XXgXgXk l.U l.cXkXg.o.b.o.c lXk.cXg.cXkXg.XXz.X.^XxXt.H.n !.!XU & M &.E.vXe.N.M 8XDX1X-X1XIXD.H 8XD RXn .X>X>XmXlXD.HXtXdXt.kXdXVX*X*X*.k.uXdXV.5.Z h.9 hXl.] :.uXV.Z.8X1Xs.D vX>XG.. O JXG.YXP.Z.kX5.H.u.0X;.> = &.; z.+ z =X: M zX0 M MXwXwX..> ! g gXPXO.| ! !XyXUXOXU.'.' s.D.WXDX,XD $.w.n s.! 9.! !XU !XOXU.9XOX.Xh.1.O.OX. = nXyXh.1 MX0 W.xX2X>.@.xXC 0X4 v...Y.+Xh T.H.5Xo.r.5 $Xl.WXeXs.;.EXe.N t u t t t a t.e C C.W C C 2X=.sXf S.x.@X+.p x sX<.ZXB h.j H WX8 r rX8X: rX8.{ r ; ; ; ; L.4.; wXf OXf vX>.j MXe y gXwXcXlXDX1XI 3.a a.aX- <.aX-.a.a R R t R.~ RX1.a.uXI 3 R R.a.MX,X- $XD ` $ :X,XD.MXI RXDXDX1 R.M.Z x $X,XD hX, $XlXD.}.ZXD., $XJXcXKXK.9XK TXcX,Xl 3 R.}X- R.a ` $.eXMXD #.aXI hX5XKX, R.M R.aXc T mXm.E.>XC 4.q ! MXcXl.9XKXUXw oXDXD 3.`X-X-.`.`.a.`.}.a.a.9.YX%X+ zX<.p.1.O.9",
+" $XDX-XD.9 R $ $ $XJ.ZX; 1.n.,X;X5XJXJ.,Xl B RXI $ mXl $ T.ZXlXD.u D 8X1.DX,X- D.O $X1 R B RXI ' m gXU.].0XOXU g g.2 g.0 ' ' g !XO.2 K 4 :X5XK :.H.u.] I 7 ] :.R :.5 I f.5 q )Xx.& ,.7.R q.R.z./.I.z l.U.U.z.I.U.I.I.U.U.U.z.U.#.U.U.U.U.c.c.c lXg l.c l.c l.o.bXg.o N.z.o.^ N.^.k.^.k.^ N.b N.o.X.o.X.o.X.b.bXgXk.c.X.o.oXk.o.X.o.oXg.b.o.b.X.b.X.X.^.kXt.kXt.kXtXdX*XtXt.kX*.^ )X9.kXt.k.uXtXdX*Xd.kX*XtXd.^ N.X N.b.X.^ N N.XXk.o.XXg l lXk.c.U lXg.o.oXg l.U l l lXk.U.cXg.X _.XXxXd.DXo gXm.'.q.> J O O 2.WXD.ZX1X,.D.DX,XD R U R pXe v n.WXD 8XV.H.rXdXdXo (X9 cXtX*X*Xt.k.DX5.'XG.9XG c #.2 ).Z.kX5 ).5.Z.D @ y.E b 0.j.q nXwXy D ).2XyX;.O =.y.;.@X>X>.; HX>.;XL.Y.wX,X5Xc.2 g g.DX1.`X1.! !.> ' 9 ' s 'XDXD RXD x., $.a y.ZXGXG g gXm.'.' '.0XU g @X; g $ $ : D.>X;.>X0XZ.hXp W.;.@.h z W S M.x W.+.O :X5.XXx.K.K $.' bXn.=.jXe & .9 ` $X,XDX,XD hX,XDXeXD.N.W.s.s.. H.4X8.xXnX+ v h U =XGXp.{.{X2X8.JX2.<.x.C ;.{X8X8 ;.4 SX:X8.4 ^ 0 v vXcXG g.-.[XK.Y : $ R c B 3XI R R t tXI a aX-.aX- aXI.a.e.aX, RXI R R R R R.Z tXl `.Y $X, $X, $ 1 $ $ UXD.a a R h.ZXD x.Z h c $XM RXIX, $ $ $XD tXD R t.*.* RX, h.~ a.a.a a.]X,Xw :X.X.XJX3.%XJ.>.3.' RXD.M.9Xl $XD xXKX,.WXs.EXG.W.MX,.E.s 0 bXnXG.'XDXI.HX1X-.H.a.`.a #.a `.h n WXr k nXH x",
+"X. RXwX,XJXl.YXD R.e.MXD R $XU.u hXDX, :X3.DX-X1.Z.% D.9 : 1 DX, :.Z R R R R T.3XJ 'X1X-X1 BX,XlXOXU.0.w.Z !XwXKXPXU s '.nXP g ! @XUX; Y.'XVX5 5XJXx.5.5.| ).5.R YXxXV ).5 5.$.RXxX9./ q.z.7Xx.I.zXgXgXk.U.#.#.zXu.I. .I. . .I.6. . . . .6.6.6.6.6. .6. .6. .#.z.U.U.U.IXkXgXgXk lXkXgXgXgXgXgXg.o.oXg.o.o.oXgXg.UXg.o.bXg l.b.o.b.o.b.b.b.o.o.X.b.X.^Xt.k.kXd.rXt.k.k.u.k.k.k.u.r.rXVXdXt.k.kX*.u.kXt.kXtXd.^.XXg.X.o.X.b.b.X.b.z.XXg l l.U.cXkXkXkXg.X.oXg l.c.c lXk.cXkXkXgXg.XXg.XXV.H TXK @.O K.+XC M HXG 1 yXl m.|.w $X, hXD.M U..Xe.@ nX,XD.H.r.HXtXx.z.k.R.R.KXtX*Xt.kXd.H.w.'XL bXKX, : P.| Q I P 5 I.2.O RXG vXG.s.E & =Xw.2 g TX5.2.O.+.O M H.@X6X6.; y yXw.ZXDX1X1X5.` 'XyXOX5 g :XcXw.!.q s.nXeXa C t.M 1XDXHX.XK.,.3 1.1X. !XZXOXmXOXUXP yXU.O.>.> m.GXy K K K KXhXZ z M W WX8.h.+.h.h.L M.hXpXG.wXVX*.KX*XVXVXl vXG.sXG.NXK.j 1 } h.] 1.M R t.eX-.} R.M t CXs 2.sX>X>X>.CXpXpXn.YXq n.< WX2X2X2 + + r r.yX:X:X2X8.y M r S.4X6Xi.v.s.WXe UX, R <X, a.M RX1X,XI R.Z.e R.aX- aXD.aX-.e.a a.eX1.a 3XIX1.e.MX-.a.M $X. 1.w x.Z U.Z hXl.Z x.M $ c.Z $X,X,X,X,XD.aX, R.uX, :XD.a a tXDX,X, h R.MXD.aXDX- 3 3X-.` a R B s xXc : 1XlX3 $ cXDXlXD RXDX,XDXI x.ZXD.e c aXs v 2 2.E yXKXU.v.v 2 2 v.w :X1X-X-.HXIXIX- aX-.5Xc.[XnXq UXn x .9",
+"Xw :X.Xc.9.,XcXK tXH.% @ RXJ.'XKX.X. VXJ.GXJ $Xl DX..2XI RXDXD.Z :XD B 8X5XJX.X. gXc.Z $ '.u TXU 5 Y.ZXlX.X; n gXK s.9.'XU ! ! ! K 4X5.2XJXX :.5XX I ]XX.uXdXl 4Xx I (Xt.k q.f.& }.6XkXgXx.t.z.& l.b.b.c.UXk.U.U.# l.U.U.U.U.c.U.c.c.c.U.U.c.c.U.U.c.c.U.U.U.U.#.U.#.z.I.UXkXkXkXkXkXkXk.UXk.z.U.z.z.z.z.z.z. .I./.I.z.U./.I.z.z.U lXk.Q.z lXx l lXx.bXo NXo.K.KX5.k.kXo.k.HXo.kXVX5.kXV.k.u.r.k.k.k.kXtXt.k.^.^.X.b.X.b N.b.XXz.z N.oXx lXgXgXgXgXk.cXgXg l l.c l l.UXg l.c l.X.bXoXoXV.H g.'X;.OXZXZ M M HX4 [.S ` mXHXlX, t.M.M u....XnXpX,.~.H.H.`X5 (X3 `X*.k.k.8X*.k.r.rXt.`X1 s 0 O.EX, c.KX9 D (./ )XxXx :.D.HXD 9 b.sXCXe 1.'Xl.w.H.wX..> M.;Xf.v w.@ HXeXU ! ]X5XVXV.u g !.2XOXOXUXw.2 g.9Xw g.w.ZX,.Z.Z g.3X.Xc.]Xc TXw.YXcXK sXJ.Y T.9 x.w.Z $.-XcXc.n gXl yXUXw.> M z.pX2.x S SX:.CX2 M.xXn.jXG a c 3 ~.8.8.` RXIXD.@ p.WXs tXD $ ' cXh $.' sXlXDX-.a.a a B.*.=Xs.=X=Xf SX8.CXpXpXpXp..X4X2.<.J.JX2.J.T z.y M M z W M.< ..<.xX>XfX6X6 vXeXs.WXD 3 c.Z.M.ZX1XD.HX-.D $XD.a.M RXc '.Z.Z.ZX5Xl.,XVXDX1 a.a.a.Z.-XKXw $ x.Z.W.D.Z R.9XU x.ZX, $ $.W hX,X,.w U T xX,XDX, 8XD xX-XD.M.aX- tXDXDXDXDXD R RXDXV.aX-X-X1.e.* R R.aX, h c.aX- R.ZXD 8XD hXD.M T :XlXw c x.a x p.+ v M 9X0 MX2.4 2.j.+.9XDXV c.uXx.5 DXX )X-XK XnXnXc.pXwXpXZ",
+"XD c aX, hX-.ZXDX,XN xX,X5XU.ZXJ mXNXH.|XD RX- RXJXN.'X1 RX-X, : KXJ.2.w.3 !XJ.]XcXO mXU DXc D.O.0XDX,X, n mX. y x.nXG @.G K KX;X;XJ.ZXI TXJ.|Xo.K.K q.A ].]Xo.X.5 Q Q 7X@.t.X.z./.&X .fXk.XXg.z.U.oXg.U.U.U.c.#.I.U l.U.#.c.U.c.U.U.U.U.U.U.U.U.U l.c.U.U l.c.U.c.U.#.#Xk.UXgXg.o.X.b.o N.o.b.b.b.o.b.b.oXg.cXkXg.b.o.bXkXg.b.o.X.o.oXg.XXgXgXxXg.X.^.K.^X5.k.kXd.k.k.K.k.uX9Xt.k.k.k.k.k.u.k.K.X.5.5.X.X.X.X N.zXk.z.U.I.z.z.z A l.I A. .I.z.#.z./.I./.I.6./.Q.I A.6.Q.I.R.I.I qXk (Xo $.2 gXU.> z =.@XpXnXe h # xX5XKXl E.w hXeXnXp ^.jXGX, c c.k.2.3XKX5X3.K.5 NX9X9.5X9.X.5X5.w.! o bXw `.$X9X9 N )XxXk.5.5.k.kX9.Z.'.9 o.jXe.w.ZXU.5 $X5Xl = =X> wXf ^.CX0XaXl.]Xo.u.uXt 5Xd.2 g 9 9.' s vXl s.9X,.M R.aXD RX,.,XlXD B.a B.ZX,XDX, xXlX,X,XDXIX,X,.Z.YX,.M x.w C.Z.9.!XmX0.1.yX2 WX2.xX: S z WX0X+ y.>XD c 3 3.8XV.8.`.8.a.YXe.WXs C B t R.MXD sXKX.XcXK ` h c R RX1.* 8.).WXF.v.@X: wX>.@Xp.x.<.{X:X%.J.p.y.pXr z M.jXSX+ M.x.[.pX4X:.@.4 ^.J ^ vXsX,X1XK :.ZXc : T., : `.,XKXcXJ RXKXKXJXKXJ.-X5 `X- R RXIX- m `Xl.wXD.ZXGXe.ZX,XDXs $.9 nXcXc.wX,.aX, c.W.Z xX,X, h.ZX, cXDX5X,XD R.a.MXI.M R.ZX,XDXIX, #XI.e R R B R.a.a.a.a.M 3.uX, RX1X,XD RX,XDXD $ ) x 'Xc.| | DX<XsX+ O =XmXC r W H.s.> x k D IXJ 5.2 D ] ( (.`XI.-.1.-XrX<.h.[Xh",
+"XD RX1X-XIX, RX- RXcXNX.XcXc RX, : K : R RXIX- R.3XN D R RX1X5Xy.2 KXyX.XJ.2 m.'XN.% @.9XJ g T.].3 Y.3 'X.XwXl x.!.9 !X;X$.! @X$ !X5XJ.u 3.5XJ 6XJ ( DX5Xx 5.kXJ.X.XXx.R.&.:.z.oXgXk.IXu.o.X.XXg.b.oXg.U.U l.o.I.U.U.U.U.c.U.U.c.U.U.c.U.c.U.U.U.U.c.U.U.c.c.U.U lXk.6Xk.UXk.UXk.UXgXg.o.b.X.o.o.o.o.o.bXg.U.UXg.o.o.b.b.I.o.b.X.o.o.o.b.b.o.X.b N.k.kXjXt.k.rXV.8 3.r.H.r.H c.H 3.8.8.8.r.8 ~XVX*XtXtX*XtXtXt e.^.b.b.X.b.b.b.b.zXz _.o.b.b.b.o.bXk.cXg.U.U Z.t.t.t Q.R Q.t.R 5.& ) I.H.0XU 'XPX0.> M w.j nXM.- D c.]XD.' x $Xq u._ vXnXp.M.}.KX3XJ D.'.0XD cX* FX*X*Xt.rX*XVX* 3XI s bXa 9 $XXX9Xk qXkXk.zXg.I.zXx.^XX.5.!Xa o 8XD 3.H.8 ~.8.5XH y H.. JXfXi.j.-X1XlXV.H.kXVXxX5XJXOXO s s.w.w.Z.MX, 3.a.a R.aX1 RX1 3 hX-X, 8.Z.D.ZXl h.a.M.a.M.Z hXI.a cXD h.WXDX,X,Xa.n g =.>.[.1XrX2.< W zX%.[X%.jXrXG.a $.H.r.8 ~XI.`XI.a R v.s.NXs u u u.M.).NXsXeXq n U [ `XlX, B B R R.N.N.).sXf J S wX>.<.<X+X%X2.g r.T +Xq.jXrXr.pXr.j.y W.T MX%X2 M.4 wXf.. v.WXDXK :XyXU.'XK T `XKXlXMX5 hX-.uXDX1.aX1X1 RX1XD R R RXD $XD.Z hXDXD.w $.w UXD.M.M R 8 $.9XJXJXKX, m $.w.Z.' s.ZXD $ U $.wXl.Z.u hXV $XDXDX,X,X,XlXD R.a aX-.a.a R R t R.a.aXD $ cX-XIXI.aXDXDXDXDXD R a a R hXV # `X1Xq.'XeXs.W.)Xn J.>.w m c.K c.5 (XIXIX1X1.~ FXV.5X#XwX%XpX+XBX4",
+" B R.eXI a.u R R s TX,X$XwXl R.a.Z K 3XD B.*XD.ZX$.OX$.DX1.H g (.'.GXJ m '.Z mXl K B.wXlXPXl g.wXNX5 mXy.] s $.'.'XPXO !.G.%.2X. Y cXl.2 5 c.k ( I 7.R ).5XJ.5.f.AXoX@.X.z d.X.oXg.o.o.UX9XgXg.b.oXgXgXg.U.c.o.I.c.U.c.U.U.U.U.U.U.U.U.U.U.U.c.U.U.U.c.U.U.c.U l l.c. .U.U.U.c.U.c.cXg.o.o.o.o.o.o.o.oXgXgXkXg.X.o.o.X.o.z.b.b.o.o.b.o.X.X.o.b.^Xj.r.kXt.k.rXV.r ~.HXt 3.H.8.k.8.H.rXV ~.8XV ~Xt.u.kXtXt.k.kXt.^.b.X.o.b.o.X.o.o.U.X.bXgXg.oXgXg.c.c l l l.z.t AX@X@ fXx.z ( I.& 5 I }Xl.].!XP.q.> w ^Xi._.y $ m.] ' @XD k $ [., u..XL.E.n.} 3X* | '.Z.] DXVXIXVXVXtXtXtX*.k.kX*.uXI.n '.nXP $XM N N.b.^XxXgXg.b.^.X.X N #.' s b T 3.8 ~.r ~ ~.8 TX;XU.E.x.TXn.;.G :X;.u `XxXV D (.].wXO.'.n 8 t 8 RXD 3XDXI B 8X1XI R.aX5 3 RX1X,X,.ZX,X-.M.a R RXI $.uXIX,X,XDXD U.a 8X1XP.0Xw.O y.[ z [ z zX%.[XpX<XrXw.Z RXVXV.8 ~.8.rXI.` R.}.9Xa b.).N EXe.Y.N.sXp.).M.NXGXeX<.9.'XK.Z a R R U.N /.@ MX6.@.;X:XfXrX2 r r WX%X+X+ >X:.1 zXr ..pX+ [Xp.hX: z H S w v v x $.Z 8XD 8XD R.MX5.a R.a h.~ a.a BXI R R R R RXDXIXD.Z $ BX,XD $ 1 1 x 1XeX,.M R R.a.a 3.eX,XDX, 1 x gXcXcXw 1Xe.ZXD.nX, 1XJ 1 xXD hXD : hX1 $XD.9 R R RXD.aXDXI a.aXD.MX- R.a cX5 R R.aX1XDXDX,X,X,XI RX-X-X- cX1 #X.Xl 1Xe.WXn.v .XUX; R 3XI.`X-.u.8 3.`Xd cX*XtX*X1 :XB x.FXqXA .",
+"Xl c $.ZX, $X1XD : K @.O DXD RX-XDXNXD R.aX1.e m.-X;XN $.D T ( g DX;Xl.5 R.a BX5XN.3 :.D D TXKX-X.XN.O TX,XDXy.' @.w gXU KXy m.2.0 DXI.u.2 I.XX*X9 ) P I f qXt.k ).&.z.X l NXg.b.o.o.b.o.oXg.bXg.oXg.oXg.U.c.c.I.c.U.U l.U.U.U.c.U.U.c.U.U.c.U.c.U.c.U.U.c.c.U.c.U.U.I.c.U.U.UXk.U.UXk.c.o.o.o.oXgXg.c l.cXg.o.bXg.b.oXgXk.b.o.X.o.b.b.o.o.X N.^.kXj.kXt.K ~ ~ ~XV.8.r.H.8.H.k 3.8.8.8XV ~.r.8.k.kXtX*.kXtXj.kXj N.o.X.b.b.o.XXg l.b.oXkXg.c.c.c.UXg l lXk lXg.XXk.k.rXgXoXoXxXxXx.KXo IX;XK '.!XC.q ^Xi..X%.F.[X,Xc.9 1.-XM hXB CXA.sX>XeXD.} 3.KX,.H.DXD.8XV ~.rXt.k.k.k.rX*.u.u.H '.n gXUXIX*.KX*.k.k.z.bXg.XXgXjXtX*.8.}XGXG TX5.KXt.r.8.k 3XV.9 =X+.; HX> M.1Xc DXJXx D.H ) D.] 'XOXP.'XD 8.MXs.ZX,X1 3XI 8 RXDXVXI 3XI $X,.Z T c tXDXI R.nXl.u : 1 :.2Xc 8.DXDXJ :Xl '.0XPX.XHX7X7 kXw.[XcXp., k.[XH hXD.uX5 ~ ~.8 ~.`.8.} aX< &XC.q.;.j z M M =X0XeX0X>.).WXs nXGXU.wX. < t.M.M *.E ..+ M.h.T.h.T.T.h.T.h.x.<X4X+.+ SX0 zX2 . .X4.p zX:.T r.;.4 0 vXG.ZXDX,XDXD.MX, BXl R R B.uX-XD R.a.~ RX-X- R R R.a R R 1.aX,X, $ c T.w x x.Z h.M RX-XDXDXDX-.aX,XI.M.a.M.M.Z.Z.wX,.ZX,XHXKXH TXJXJXK.,.ZXl xXD 3XDXD.e R.a R.M xXDX-.aX,.M R R.a :X1 RX-XI.aX, R UXDXI R R.~X-X- :.5 R T.wX;.E..Xi H.>X5 BX5.u.K N.K.~X9 3.u.5.5 )X*.}XlXBXq._XAXqXA",
+"XU mXUXJ.2XJXKXJXK gXJXJ.9 B.a RX5 `X5 aX1.aXl.3.uXKXNX. D D.0XDXI D.e R RX1X1Xl 6.e aXJXwX..].0 mX.XNXK.DXD 1 sXU.q.' !.%.2.OX5.HXI 5.5.k.5.5Xo ].X ) ( Q ,.R f.X.z.I N.b l.b.o.bXgXg.X.oX9.bXg.o.oXg.c l l.U.I.U.U.U.U.U.U.c.U.U.U.U.U.U.c.U.U.U.U.c.U.c l.U.U.U.U.IXk.UXk.U.U.c.U.cXk.c l l l l l.U.UXgXg.o.bXg.X.oXgXk.X.b.b.b.^.b.b.X.X.b.^XtXd.k.r.kXtXt.u ~.8.H ~ ~XV c ~XV ~ 3 F.8.H ~.uXtXVXdX*.rXt.kXt.b.X.b.b.X.o.bXg l.bXg.U lXk.cXk.cXk.cXk l l.b N N.b N (Xt A.R.&Xk ).5 YXN ! s O o z.EX6XA.d U <.a.M.aXI <.aX, C uXbXbXGXGX,.a 3 ).HX1XD.kXV.k.u.k.rXd.k.rXd.rXtXtXIX9.0X5.%X3.KX9.u.u.k qXxXk l.XXtX*.r.}XDXqXG.] :.KX9 qX9XgX9.5 DX, yXmXpXiX> nXcXcXD 3Xo c.`.`X1XD.ZXO.9.nXD.DXD.u $.,X. $ RXI B.,X*X. R.*X1 : m.- R t.MXI.3 TX1 )XVX1 ] gXDX1XD :.%.D.n.].!XwXHXcXMXBX7.-Xh.S.-Xh [XhXU cXDX*.`.r ~ ~.8 3.8 3 :.q b 0 H &.p.j =.1 MXG.+ =Xs 2.=XL.s.D.- tXc :XD t tXeXGXeX4X>.; H =X2.x.; WXpX>XnX+.+ n & =X:Xn.< >X4XnX2 S z w w 0 J o.w.WX,XDXDXDX1 R s.D $XlX, x RXDX, t.a R.a R a RXDX, RX5.aX,X,.Z R U.a.M.MXD R.aXDXIX, R.eXD RX1 x.* R.a RX,X,XDXD.ZXlXcXJ.] n., 1XJX.XJ c.Z.a.aX,XK.e 1X,XK ` g.3.9.- `Xc R RX- cXl BX- R RXDXDX,X, RX- aX-XIX- c 1 R.eXDXs v.N.; &.O `X1.u.uXoX* N.K N.k.K.8.r.`.` 3.a.YX<.y._Xn >",
+"X.XJ D 1 D mXl.'.0XK g.2.Z R BX- BX- aX1 a R.M.a $ TX.X..2 TXDX-XD.].ZX5 $ $ BXJ.GXy.O.2X; YXUX;XN Y.G.Z c.}X1.M.'X;XO.> 'Xl.% DX5X5.| I )X9XxXx.R.&.& A Q QX .7./.&.^Xg.X.b.o.X.o.oXg.oXg.oXgX9.o.o l.# l.U.I.# l.c.c.U.c.U.U.U.c.U.c.U.U.U.c.U.U.c.U.U.U.c.U.U.U.I.#.U.U.c.U.U.U.U.U l.U l.U.U.U.UXgXgXg.b.X.o.b.b.oXk l.X.b N.^XjXj.^.b.X.X.^Xt.kXtXt.k.k.k.r.H ~ ~ 3.8XtXV.8.rX5X9.k.u.k.r.`X*.k.kXtXdXtXtXt.X.b.o.X.b.b.oX9.c.X.oXk.c.c.c.c.U.UXgXk.cXk.o.o N.XXd.tX@.t Q.t.&.| )X9X;XP.nXLXC & JXi.s.d t.a R R R 8XD 8X1.M *Xb.s..XpX5 3.a.KXV.u.rX*.rXt.r.R.X.I ~.^XoXg.k.k.r ~XI.uX5 5 I I.2Xx.5.kXVXtX*XtX*.r.} # # v yXIXo.k.K N NX9 NX9.5.Z.'X+.E.x H.@.j nXUXXXVX*.H.HX5 :X5XU.9 s CX1.M R 'X1 D BXI R B m.ZX.XVXI.a hXHX3 R.M.aXDX. ]XV 3X9.uXJXOXDXa.DX5.O c.Z.0.!Xc =XH VX3 }XK.- K.S Y.3.SXJ.`.K 3 ~.8 ~.H.H.8.a h vXa.= J.j kX<.-X+.j n M yXn.s 2 b.s.)XeXG g x., $ $ <.*.).N 2 J ^ w.;X0 MX2XrXpX>.EX0 MXCX0 =.@Xq.s.p.x M M S.4.@ ^XfX4.s.wXe 3XD UXDX, 1XlXKXc.9 DXJXB `.a t a.a R.} $ h hX,.a 1 R $.- 3.9Xl RXJ.Z.MX,XD x R R R.e t tXD.a R RXD.ZX,XDX,XIXD.DXD.D cXDXDX, #XDXD 3.u.Z :XJ $.%XcXw.9XKXK.9 DXl.9X-.a RX1Xl 3 :X5X1X5Xc RXDXD RXI D R :.u : ) :Xc R.N.).) v $ cX-.8XI.8.H.8.`.~.`.`XI.~.` 3 $ 1.g n._X4.g.p",
+"XK T.9 ' kXJXD.eX- BXw.2 ' :.'.'XlX5 $.ZXl xXl $ $ TXJ.' D TX5 $.ZX1XK.2.0XHXD B.DXK m.2X; T.'.Z.Z T.]X,X,.a.MXD.n.> @X$Xc.2 3 `XJXx ) :.&.& )Xd NX@ ]X@.z NXkX@X X@.(.XXg.X.o.oXg.b.o.o.oX9Xg.bXg.b.U.U l.U. .c.U.U.U.c.U.U.U.U.U.U.c.U.c.U.U.U.c.U.c.U.c l.U.U.U. .U.c.U.U.U.U.U.U.U.U.U.c l l.UXgXg.o.o.b.b.o.X.b.XXkXg.b.^.^XjXtXt.k.^.^.^.^.k.kXt.kXt.rXt.r.8XV ~ ~.HX*XV.HXV.kXo.8.` ~.H ~.HX*.uXt.k.kXt e.X.b.X.o.X.b.bXgXg.X.o.o.bXg.cXkXg.UXg.U.cXkXg.X.o.X NXg.X.XXz.X.b NXo.D.]XU.0 b & &Xf.s p.d.a.aX1X1 RXDXD 8.*Xa %X= ..E xXIX-XV.H.8.8.rXt.k.r.^ lXxXx e.r q.bXt.k NXx.k.H ~.uXo.K )X9 5 5 DX9 ~XV R 3 3 h $.' T.HXI.8.k.rXtX*.r.rXoX5.wXGXpX2X>X>.E.9X#.GX*XI ~XV.uXJ.2XJXO sXa.D $.ZXlX,XJXD $XIX1.Z.5 xXI R aX,X, $.M RX, 8.DX1X*.` 3.5X1.0 8XDXDX1.'.0XK.9XK y nXHXMXX.K R.uX,XMXcXc.-X. xXI c.r 3 ~.8.8 ~ 3 3.a bXa O yXrXp 1Xq 1XpXcXw.g &Xw o..Xp.) 2 u.w.9 $XH R t <.N.W 2.@ H.EX0 &.jX> HX+XG &Xw &.!.q.+X>Xp.jX+ M M = r z SX:X>Xf..Xn x.W $.Z.Z $ : 1XD $X,Xs hXD.a.a.MX, hX,X, $ $XlX, hXK.aX5 T.a.9Xl RXGXDXlXD :.ZXcXl a $.aX1 h.}XDXDXDXDXD $.Z 8X,X, $.Z.wX5X5 $ $.u hXD 3 x 1Xl 1XD.Z.9.9XDXD a t R aX-.a.~X-.uXl YX# R.ZXJ $., DXKXJ.-XJX.XJ.|XHXKXw C 8 2.) o hXVXI.8.8.`.` B F.H FX-XIX9.K.2XXXKXJ.-XcXK [ 1",
+" B R.aXDXI xX1.aXDX, DXcXUXJ gXJXUXJXwXU.2Xc gX. g.> m gXOX. g.2.2XJ.2X. m.2 mXUX.XOX;.O m.' sXlX5Xl $.D.uXD RX, v 'Xy.O DXIX1.HX5 5 :.rXo ).&.f.XXxXx.I.IXxXg.XXk.& Z NXgXg.bXgXg.oXgXg.b.o.bXgXg.oXgXk l.U.I.c l.c.U.U.U.c.c.c.U.U.U.U.U.U.c.U.U.c.U l.c.U.U.U.U. .U.U.U.c.U.cXk.c.U.c.U.U.U.UXgXg.o.b.o.b.o.X.o.b.X.U.b N.^XjXjXt.kXt.kXt.kXt.kXtXt.kXt.r.^X* ~ ~ ~ 3 ~.kXV.8.8 ~.H.8XV.H ~.H.8XI.r.r.u.k.kXd.b.X.b.X.b.b.XXgXg.b.b.b.b.oXgXg.cXk.cXkXk.cXg.X.^X9Xz.X.X _Xg lXx.X.X.uXI gXGXL H & J.s...MXD R.8XIXDX,X,XeX,._ 2Xn.x vXDX,XI ~.8 ~.rXtXtXt.k.kXt.k.^.kXt.z.5.kXtXk N qXt 3Xx.5 F.H.8.u.k ).,Xw.9Xa.w.n sXKXcXD.H ~.rXt.K.k.^XtXjXt.k.5 tXGX>.@Xn.E.j.O K Y q.0 ).u $ T m !.]XP $X,XD.wX1 :XDXI.~XIXIX- RXIX-XD.a.a tXDXD 8XD.DXIXI.u ) h RXe.'XG.0.!.w sXKXmXGXmXwXHXHXMX3XIX1XI.a hXK TX. `.~ 3XI.8.r.8 ~.8.8XI a.9 v v.jX7XM XM x XMXB .pXrXwX+Xn /.).NXsXDXV.e.M u.).) O & o & &.j &X0Xw HX0.>Xm & vXm =.q.EXG.; M M.y.TX:.4X8 S.yXf.m...WXeXqX, XK cX,.ZXD RXD t < RXD $ $XDX,X,.9 k.ZXI.' $ x `X, $.w $XlXlX,XD : xXl $ RXJX,X,.Z $Xl x $.Z $ c.ZXl RX,X, $XcXJ $ RX1.aXD.ZX,.aX1 $XS.2 RXJXUX-.MXDX1 R.a R B.a.eXDXl.%.GXlXl k.9Xc T.Z :XD.u #.`.}.8 : :XhXe.D 2 v.w RX, RX-XIX-XxX5.DX9Xo.|XJXK T I ).8 `.$XK )XV",
+"X,XDXDX- R.a cX-.~.DXJ.'.DX1XD 8 $.D sX. T.9XUXyXH.'.'XU.%.nXl ' ' TXK T T T T g mXJX;XO ! g.2 gXUX. gXKXcXJ T 1.n 'XU !.3 TX3XI 3Xo I.$X9.^Xk.R.z.7X@X@Xx.o.XXgXg.bXgXg.b.bXg.bXgXg.b.o.XXg.bXg.oXg.o.o.U.U.IXk.cXg.c.U.U.U.U.U.U.U.c.U.c.U.c.U.U.cXk.U.c.c.U.U.U. .cXk.U.c.U.U.U.U.U l.U l.UXg.o.b.o.b.o.o.b.b.X.b.o.z NXjXjXt.kXtXt.kXtXtXt.k.kXt.k.r.r ~.X.k ~XV ~ ~.8 c ~ ~ 3.H.`.r.uXt.H.`X9Xx.K.HXtXt.r.^.X.b.b.X.o N.oXkXg.b.X.o N.o.oXgXg.b.b.o.X.o.b.b.X.b.XXzXg l lXx l.oXo.u.Z.2 s.9 H H ^.. v u.M 3XVXIX,X,.W E.W ...Xn.EX,.}.u.8.HXt.rXtX*.kXt.k.r.kXtXjXtXtXVXdXtXj N NX*.HXVXx.u.HX* q.k 3Xl x.' JXG b b '.D.u.H.H.HXt.r.$.5 N N.bXo ~X5 x.9.@ JX>.jXqXc.,XJ Y f ( D f.$ K.G.0 s.w.Z R :X,X5XD 'XD RXIXDX- BXD RX1XDXD.w xXl.w.wX,.]Xc `X5.Z 1.nXGXL 9 HXm.q M y & MXwXH V : c 3 hX,.} `XBXc k VX3.5.a ~.8XVXI.8 3 3.aXc n k.l .}.}.} h 1 1XM.Y.p z.<XpX=XaXsXs C t tXs.).vXm y OXL 0XG o yXr gXm y.9Xm.OXy M M H M.+.T M.y.;.4X>.h MX8X: MXp.E.sX,._XKXc.a nXK U :.M c $ 3Xc.9.MXD $XDX,.ZXDX, R cXlXlX5 cXDXD R $XDX,X1 B.a c x TXc `Xl n T 3X, $ $X,X, $XDX-X,X5XN.]XlX-X1X-.aX-X, RX, t.O KXHXlXw a.a t.a t RX- a RXI.e., YX# Y $Xl $X,XIXl.9 ` :.}.`X-X- aXI s 8.N.=.s s s 1 $.aX1.~.2 D.0 7 :XxXVXI.H ~Xt ~Xx ).5X*X5",
+"Xc DX.XD.aX-XDX,X- 1 DX5X,XDXDX-X1 $ $ TXcX;.G KX;XJ TXc !.2 $ @Xc.D.~ BXDXIX5 c '.,.GX. DX5.n :.n D T.9.3.2.-XUXUXPXU.2XJ.5.]X9.u c.$.|.A )X9XkXkX@.& Z./.X.XXg N.o.X.b.oXg.o.o.o.o.b.o.o.o.b.o.bXg.b.oXg.I.U.U.cXg.c.U.U.c.U.U.c.U.U.U.U.U.UXk.c.c.U.c.UXk.U.c.I.U.# l.c.U.U.c.U.U.U.U l.cXgXg.o.o.o.X.o.X.o.b.o.X N NXj.kXtXj.kXt.kXt.k.k.kXtXtXd.k F ~ ~XoXkXx ~XV ~ ~.K.8XVXo.kX3XxXx ) ).5XV.H.8XV.rXtXj.^.b.b.X.o.b.b.bXk.o.b.b.b.b.b.b.b.b.b.o.b.b.b.^XjXj.k.^.XXg l l lXg.XXo.H.D g.' y &XfXi %X6 vXw.w.WX, x.jX4 . ....Y.jXJ.aXV.rXV.uXt.rXt.kX*X*.r.u.u.kXtX*Xt.k.kXtX*X*X*X*.8 3.D.kXI.^Xo.8.8 3XK.Y v.n OXLXU.DXVXVXt.r.kX5 qXk.zXkXkXg.rXV.HXGXp.sX>.E.j.'.a ).uXx (XV :X5X5.5 s '.' T.w $ 1 TXl 'Xl.w 3X,X- RXD.w sXyXw.] y.!XP 9.' y s x vXq v.j & H.q.q M HX+Xr MXrXw.1Xw.iXc.aX,X,.} # :.,X3., |.SXM.8.} ~.8.8XI h hX3 V ` h.a.M.M.a.} h h x XM .gX2.pX2.sXsXs.D C CXsX=.v H.!XLXL.n v v vXG xXG sXh s.>Xw z.;.+ zX8.xX4X>Xf.J.; M.@XrX0 HX0Xp H._ U.[ $XKXlX, $.9X,XJ TX,Xc :.a 8XD RXDXD.ZX5X, c.ZX,X1XcXHXlX-X,XD R.aXD.Z.Z cX,XS.' aXS xXDX,X,X5.ZX,XD 3Xl $X1 KXc TXDX,.w.D $.Z $X,X-.% 1 K K m.a a R.aX-X- RX-XIX-.e Y :.ZXNXcXDX,.ZX5XI :XMXI aX- a aXI.e RX,XeXs.W.=XLXLXK s a.a #.5.r.8.`.`.`XI.`.`.rX-.k.5X-XV.5",
+"Xc R xX- RX-.K.Z.Z TXKXIXDX1 RXD RXDX,X-X,Xl.%.,.wXDX, :Xc :.u cXDXI RX,XlXl ' mX;.%XK 3.D $XDXlXDXD 8 8.' m hXyXP !XU ! 'X-.5 D.AX5 )X9 q.A Q.zXx.X lX@XkXgXg.b.oXg.o.o.b.b.o.b.o.o.o.o.o.oXgXgXgXg.b.o.o.U.o.cXk.c.c.U.U.c.c.U.U.c.U.c.U.c.U.c.U.c l.c.c.c.U l.I.U.U.c.c.U.UXk.#.U.UXk.cXg.o.b.o.X.b.oXg.o.X.b.b N.oXg.^XdXt.kXt.kXtXtXt.kXt.kXt.kXt.rXdXt ~.kXo.r.uXtX*Xo.r c.&XJXx (.% 5 D.$.H 3 ~.rXt.kXdXj.X.X.b.b.b.X.X.z.b.X.b.o.b.o.b.b.b.b.b.b.^ eXtXjXt.^.X.oXg lXg.o _Xo.kXVXd.,XKXm n HX4.sX:.@.;Xw =X0 W MX2.y ..<Xm.DXIX* 3.kXtXtXt.rX*XtX*X* 5.5 q 3.5.K.kXtXV.KX*X*.u 3.Z s 1XlXI ~.u 3.` : xX, s.E s.n.!.H.uXtXdXd.r.HXd.rXtXtXd.bXt.uXD.Z.9XG.E & x 1 RXV c FXVX*.`.8.5 $.2 !XPXUXl g.'.].0.' ' ' ' $ 8X,.n gXOXU !.G.OXhX;X0 @Xy.j yXm y HXC.E.E.E ^.;XnXnXn.j.j & [XH., `XM.} 3 $ $.} 1.,.[ V.,X.X3XVX-XV 3X*., |.[ VX3 ` X,XD.a.9 tXK hX,X-.,XBX<.p.[.j.@.s.N.= 8 / G 2 0.q vXs.N 8.M.w s ' nX. sXwXw TXp H z r.xX8.{Xf . . v pX+ y =.; = z.<XpX+X>.j.WXq.- `X,X5 RXDXl.Z.ZXD 8 R R R $XD $XDX,X,XDXIX..2.-XJX-XD c.ZXlX-XIXDXD.M.GXHXwXNXlXDX1X,X,X,.u $ $XDXD.Z Y.' s.DXl $.Z $ $ $Xl RXH.ZX,XH [ aXD aX- R R RXD.~.3.].,XcXl $X5 RX,XD cXcXc.aX-XI a.a.`.e.aX-.* U.nXe.= /.=.E b h.a.a 3.K.KX*.u.K.e R.`.`.~.]X3XXXl.%",
+".~.u.~ RXI cXc 3X5 m.9.Z.Z.aXI RXI.~X,XI BXc., $ RX-X-XcXK.,X5Xc :Xl $ D T DX; DXc.w $.DXc 'X,.D.ZXD 8.w.9 R.0 1 !.>.2.ZXxX1XIXd D.A N.k N.z.$X .b.z.RXkXg.bXgXg.o.o.oXg.o.o.o.oXgXgXgXg.oXg.c.cXgXg.o.o.b.z.bXg.U.U.U.U.UXk.U.U.U.c.U.c.U.U.c.U l.cXkXgXgXgXg l./.U.U.U.U.U.U.U.U.U.cXgXg.o.o.b.o.o.o.b.b NXz.k.^.^.X.X N.kXdXtXtXt.kXtXt.kXtXt.kXt ) qXkXx.rXtXtXtXt.kX*.5X*.K.5.5XXX9.5 ` )X9XV ~.r 3XtXtXjXj.b.o.X.b.b.b.b.z.b.oXgXg.oXgXg.b.b.b.X N.^ e.rXjXt.^XzXz.XXg.c.o.b.^.^X1.5.0.0XJ v.ZXp.@Xf.sXf 0XG v J.@.@.; vXrX, 3X*XV.k.kX*.u.kX*X*.K 3.u }XJ 5 | 5 V.A }.,.A :X* c $.9 1XwXhXD ` 3.H.H c.kXIXIXlX.XcXl.DX*X*.rXtXt.kXdXd.kXtXt.b.k.k.uXD TXK y.Y.wXD.H.H.u.uX9 q.KXV :.% ! Y @X;XyXy.O @Xy.2XU.0.0 '.n '.wXPXy ] !X;Xw ! =.>.>.q.qXCXC w.E.v.s..Xi w ^.@.F._X<X+ =XG.1X<X7 [ ` $ xXD.} $ `XB.[ V | | [.,XJXJX3 `X3XM kX#X# 1XwXJXw., n.9 nXU nX3X#X7.FX7 yXe.=.= O.=.v 0X>.j.nXD B C.* t.9.Z.W.2 RXa.*.w g.j M z w %Xf.J %.. %.s vXn.;XG MX+ M.x y ^.E 2Xe.n.jXl # c.K c c $ B RXD.MXD.ZXD.aXDX- B x.u.3X,XlX,.YX, :XI a.aXD $X1.M Y.,Xl K.9.}.ZX- RX, : x TXl $ a.G DXlX,X,XlXD.Z.Z.ZX,XlX. ` $ R $XD.a h 3.a aX- kXcXl.a R.ZXDX,XDXlXl s m : c a.a 3 aX- a.eX- RX- a t.wXs.W 0.WXn s hX- #.KX9X*.k.K.8XIX-.} R.5 h.]XHXH",
+"X1 T ` : $.aXIXKXc D.DX, $ cX, RX1XDX,X1 1X.XK.' :.w :XK TXJ T D.2.% m.]XJ.] TXKXJ.0 :.n.Z.DXI.w.Z R BXKXOXK.9 ' gXUXJ m.5.8.8X*.kXx.A q.f.X N AXk.&.tXg.IXk.o.XXg.o.cXk.cXg.oXg.cXk.U.UXk.U.cXkXg.o.o.oXg.U.oXg.U.U.cXg.c.U.c.U.U.U.U.U.c.U.U.U.U.cXg.b.o.X.oXg. .U.U lXk lXk.c.cXgXg.o.o.o.b.b.o.X.o.o.X.o.b N.^Xj.X.k.^XtXtXtXt.kXt.kXt.kXtX*Xt ~.k.r.r.kXtXt.r.kXt.k.k N.u.K 5.| )XJ.% 5.$XJX*XVXV.rXt.k.b.X.b.b _.X.b.b.b.UXg.c l.cXk lXg.o N.o.b.^Xt.k.kXdXtXj.^Xz.b.o.b.^Xd.rXd.u.HXIX1.HXIXD 8.jX4.s.. vX>XwXr.j &.j.j 1X1 3.rX*X*.kXt.r 3Xt 3 # IXJ.%.3XHX#X3 }X#X. }XH k VXw.[XGXL M.hXwXH :XIXo.uXo.r 3 : )Xl.].5.u.rXt.kXtXtXtXtXdXtXt N.k.5XoXVX5.Z TXK :X1XV.HXx.r.5.r.u.u (XJ.2.%.2 YXyXO @ !.D.Z.'XPXO.n.0.!.] m.0.n T T.WXw.q o b 0 o.v 0 O.v 2.s ..4.@Xn._X+XB.S.T [Xh.1.h.h.h VXB x #.MX,X, $XK.- xXc IX.X3 T : :XXX3 [.OXJ gX.XJXJ., :.9XK.nXcX, h .F.-Xr vXs 2 2 b J w H ' $ 8 t R.wXDXKX.XD UXDX,.M.w.9 H 9 M.;Xf ^ {X:.<X4 p.@Xp.Y &.+XqX+X> z.@X> O OXe.Y.[ $X5XM.5Xl.M RX,.ZXDXD.aXDXD.a tX5.9 :XNXD R.aXDXI.MX,.a BX- h R.e.%Xw.Z KX..ZXDX,X,XDX, xX,XIXcX5Xc 1XD : 8 $ : $XIXD $.aX,XD.Z.}.a.aX-X-X-X, cXcXJ $XIXD.aX,X,.aXD 1X.., :X-X1.a a tXDX-.`.a.eX-X-X- < R.i xXG.= O._Xq.a h.8.8 3.8X-.`X-.`.~ R RXIXDXK $",
+" $ D ` T ).2X1.%XHXH TXcXcX5.- RX-.DX1.ZXO.2 g gXcXO m gXU.2XJXUXU.2 m DXU g DXy gXwXO mXc.'.D $XD.M 8 8.'.OXU T mXP D.KX*.8.uXd.k.k.I P./XgXg.XXg.I d.I dXk.b.c.c.c.U.#.U.cXg.o.c.c.U.U.U.U.U.c.o.b.X.o.UXgXg.oXk.UXg.o.c.c.c.U.U.c.U.c.U.c.c.U.U l.o.o.o.o.oXg.I lXk.c lXg.o.o.X.o.b.o.X.o.X.o.b.o.o.b.o.oXg.X.b.k.XXj.k.r.k.kXt.kXtXt.kXdXtXt.r.X.r.HXt.kXdXt.kXtXt.k.k.5.u )X9XMXX :.K :X9.5.KXt.r.rXj.^ N.o.X.o.X _.b.X.o.zXg l lXg l lXg.b.X.o NXjXtXjXt.r.^XdXdXj.^XjXjXj l (.z.5X9X5 cX5XV : $ XwXnXpXw.9.}X,X,XDX,.H 3.8X*Xt.rX*.kX* #XXX3 V }XZ.S : : `XHXJ.,.-XcXH `XX.[Xw.jX>X=.. z.YXHXM D.2.2 ).| FXIX*XI.~ DXXXtX*XjXtXtXdXtXdXtXt N.k.K NX5.r.HXMXI TXI.H.`.H.H ~.k cXV.8XIXI.H 3 cXy g 4 (XD.k cX5 gXPXPXP ! :X1.DXI 8.9 ! & 0 O.= O 2.W 2 /.v.vX>XfXnXb p E 1 x $ 1.j y.pX%X<X<.[.9X3 hX,X, $ U h.-.[X3Xh 6Xw.,Xl.9.' x $X,X,XDXIX-XDXI.~.a a 8 RXDX, # `.FXwX+XG 0 2 O &XC s s s BX-.ZXDXJX,.9XD.a.wX,X,.Z sXmXGX0X0 ^.P LXf.C.CX2X4.... MX2.j.h &Xp.@.E O.s vXp.w h : xX1 RXIX, hX, RX,.MXI R.MXI.a.}.ZXHXSXHXc 3.MXD :.a R.M R RX,XUXJ x.9 : xXlX, $X,XD cX,X,.ZXlXl R.a.Z $.a R.Z xX1XD $ $X,XD $XDX,.Z x $ T x.G xX,.M.a R.aX,X, :XJXlXDX- R.a a t.a RXD.eX-.`X- RX-X- a.K c hXe.W O v h RXI.`.`.`.`X1.8.`.`.` F.~ F.u m",
+"XV 3.Z c $.ZXD.9Xy DXKXKXK `X.X1 RX,.Z gXc.nX1Xs.Z.'.2.0 D.nXlX5XU ' '.0.'XKXU.0 x.D.Z ' T.2XK., xX1.M.w.nXU g mXyXVX5X* ~XtXtXt.k N NXk.X.o.XXgXg.o.zXg. .#.U.c.U.U.U.U.U.c.cXg.U.U.c.U.c.U.cXkXgXg.o.o.I.bXg.b.c.UXg.oXg.c.U.U.c.U.c.U.c.U l.U lXg.o.b.o.o.oXg.z l lXgXg.o.o.o.o.o.o.b.o.o.o.o.o.b.X.b.b.b N.XXg N.X.kXtXdX*Xt.kXt.k.kXtXtXtXt ~Xo.X.rXtXtXt.kXtXt.kX*.kXoX*X3.$ ` )X3XXXM ` :XX.XX*.k.k N.b.b.b _.b.b.XXgXg.IXg.c.c.c l lXg.X.b.^Xj.kXtXtXt.k _Xo.^Xd e e.^.XX@.R.7 I f ( I.$Xo D `.,.TXw.jXD.} 3 3XDXV.H.r.8XVXtX*.rX* c.5XJ V k V.[X#XJ T.-XKXK.9XcX.XH., VXB [ =X>Xi.s .X+X+ U.M.ZX5.HXdX5X*XV 3 DXl ).r.kXt.^XtXtXtXdXtXt.k.K.kX*.k.^.k.k.rXI.XXV.H.H.H.8 ~.8X*.`.u.HXoXJX*.u.D ) 'X5.uXV.u.uX5XPXP.]X5XIXI.HXIXD s &.E O.=Xn.WXL.s.NXs.s 2 ^.@Xn._._ < 3.} <.ZXlX+ WX%X7.SX<.,Xc.ZXD RX,XDX, $ $ 1Xc.3Xl k.' x h $.MXD.M 3.Z.uXIXIX- B.a B RXD.a $ ` .[Xw.j.q oXC &Xm s.nXDXD T., xXlXDXD a.Z x.Z R U T '.!XC M.;.C.P.4X8.CX>.<.@X0.;X0.>.OX0.OX0.E.E ^ 0XpXc v xXD #.Z $XDX, R.MX,XD t.a.a x.M cXe.a x $ < 1Xl.} t 3XDX-XIX,X,X,XD $ s.M.M $ TX, hX,X,.Z.e c $ :Xl $XDXlX5XD.a.a h.uXDX, hXlX,XD.M 3 x 1XcXD $.ZX,XDXD RXD.,Xc m 1.MX1 RXI RX1 a R aXIXDXD.~XD.~XI RX1 #.KX-.'XGXGXLXGXDX-XI.`.~.8.8X-.` F.8.~ F.`XI.5",
+".u.D.u.HX-X1 R.' g.9 8XlX1X, h.}X1.u D.2 $X1XDX-X1.,.' RXI $XV : DX,X5.Z.D '.]XlX1X1 $XDXD T.' m VXDXD s.w T @.O 4 D.uXV.rXtXoXd.^.XXg.oXgXg.b.o.oXg.QXgXg.c.#.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.cXgXg.o.z.o.o.oXgXk.UXg.oXg.c l.U.U.U.c.U.U.U l.cXk.b.o.X.o.XXkXgXgXg.o.b.b.o.X.o.X.o.XXg.X.o.b.o.o.o.X.o.X.b.X N.^.XXtXt.k.rXdXtXtXtXtXt.kXt.rXt.r q.^.k.k.k.kXtXd.kXtXo.K.uX9.K :X3XX ` V I V q ) N N N.o.X.b.b _.b _.oXg l.I l l.U.c l.c.o.b.^Xj eXt.kXt.k NXo.b.bXo NXz.X.X.z.z (XkXx.5.KX9XlXl 1Xp n UXD 3.8 3.H.Z.HX1.r ~ ~X* #.8 V.,XJ VXBXBX3 .9 Xl.YXJ [XhXHXwXMXB.[.[ MX>XiXbXA.xXr 1XUXK T.0X9Xx : |.5.G.2X9.r.kX9.z NXt e.kXtXt.u.k.5X*X*Xj e eXt.r ~Xd.H F ~ ~ ~ ~.`.u.u.H.8.k.uX*.u ( Q.2 ) ) ) ( (X9.5X1.H.HXI 3XVXI 1XGXG ^XpX>.9XeXw $.9 &.v.BX>X4 pX,.M.}XI.a.Z.j.+XpX% rXZXHXH K 1.DXD RX,XDXq.w x x.} 3 Y.SXlXH.a.M.M.u.uXI.HX, BXIX-.`XI RX- R $Xc s.,Xw.EXG.qXm b.n.'.ZXIXDXc.'X5.eX, RXl $.Z.aXwXw.YXm.!X0.; wX6 L.{ ;X: M S = M = H &.O.>.OX0Xh zX> vXpXC._.Z $ $ #X,X,X,.M.} R <.M.a U.}.a < R.} <XDXM 1 h.ZX,.a.M 3.wX,XDXlXlXl.ZXDXD.MX5.9XlX,.M $ h a.M $.Y.Z x `XD 3 $ c.aX,X,X-XIXDXD xX, $.GXK k.aX,.M R c R.9.9X.XKXKX,.M RX-XDXKXc.Z.Z 'Xl.,Xl m., :.3 #XI ~.~X1X,XUXeXLXL s.* B.u.uX-.`X1.`.~.`.`.`.~.H.`",
+"XJ D DXK T T $ D T.% sX; x.OXD.uXDXJXJ c.DX-X1 B $ m.K RX-.~.Z 3.].DXDXD.Z.D.]XK.D.D.2XV.9 c.a :.9Xl s.w.9XU.9 DX; ).u.r.KXtXt.^.X.o.X.o.o.bXg.bXg.#.#.c.U.U.c.U.U.U.U.U.U.U.UXkXg.cXgXgXg.o.oXgXg.b.oXg.U.o.bXgXg.c.UXg.bXg.U.U.c.c.c.U.U.U.U.U.U.UXg.o.o.o.o.UXg.bXg.o.XXg l.z.o.o.b.o.o.o.X.o.o.b.b.o.b.^XjXj.^XtXoXt.r.kXtXt.k.kXj.kXjXt.kXt.kXt.kXt.u.r.k.rXd.kXtXt NX*Xt cX* cX* cX*X*XXX*X9.K.X N.X.b.b.b.b.b.oXg l.UXk.I.c lXg lXg.oXz.^ eXtXjXtXtXt.K.X.b.X.b.b.b.b.X.b.XXoXo.k.r.kXV.8XVXl 1.} M 1XGXD 3 3.8.HXI.H.8 ~ 3 3 )X3 DX3 `XM `XXXB h x.Z x 1XHXwXKXl UX, h MX>Xi.P ^.{.j H.9XK.5 ) D.K : :Xl D.u TXx q N ).kXt.kXk.^.kX*X* N.rXjXtXjXjXtXt.H.r.uXd.H.`.8.` 3.H.`XV.H ~.u.rXt ).R.f 5.$ IXJ IXJ I c #Xl qXIXIX, v.Y OXp = t n t.3 xXG.T H ^.{XnXe._ t.a c.~ R aXG.jX2.g.TX#XHX.XK.HX,X1XD R x.w.}X,Xl.a `X# }XH :Xl c 3 3X-.8 $XV RX, 3 3XI RXc.]Xw D =Xh.+ 9 v.n.n.n 8 RX- D $ : s xXDXc.wX,XDXw nXh g gXm.;.;.@ L.4X8 S.y S H HXm.>.>X;XOXwXwX+ =X0 =.; ^Xp.s.w U h.i x.9.W t.d U t.i x U h U.MXq._ x.i.9 k $.aX,XD.aXD R.a.Z x.wX,XD $ x.w 1XK.uX, x.ZXI tX5 $X5.Z 3XDX- R xX5 RXD R.MX, R x tXlXU.a $X,X, nXwX..-XJ h $.ZX, RX- RXVXcXK DXc k.9 : :XK.5XMX, R.~ B.`.~X1 U.> = bXm gXl : : D.].$X5 RX1.`.~.8X-.`",
+" T :Xc.0 T D gXUXKXD $X,.w $ sXD D.2Xl RX,X1.a aXcXK.Z.~X-X1X-.u D RXDXDXIXIXl.].ZX,XUXK T $.n.'.w.'.n.9 g.wX1.a 3 ).,.f.X.k.k.b.X.bXg.o.oXgXg.c.U. .c.U.U.U.U.c.U.U.U.c.UXkXg.o.oXg.oXg.oXg.oXg.oXg.bXgXgXg.X.bXg.c.U.cXgXg.U.U.c.U.c.c.c.zXg lX@.QXg.b.X.o.X.z.bXx.z.^.X _X@.o.o.X.o.X.o.b.X.b.X.o.b.o.XXjXz.kXt.z.z 5 (Xt.K.rXtXjXtXtXt.5 q IXt.kX*.k.k.kXtXtXt.r.kXtXx.u.kX*.kXt.r ).^.kX*.o NXg.o.X.b.b.b.o.b.o.b l lXx.U.I.z l.UXg.b.X.^XdXdXtXtXdXt.k N N.b.b.X.b.X.b.b.b _XoXzXdXd.k.r 3.8.K 1Xe yXn.@._.M.}XDXI cXIXI 3.8XXX3XM :XX : x x h h h $ x : :.SXc 1 R.WXDXe hXBX+ W.<Xi ^ .X> JXG x tX1X-.8.H FXV.`.HXI ) (.2 )X9.KXtXxXkXkX*XtXo ).k.kXtXj.rXjXtXV.8 ) D D.9.9 T $.kXDXo ~.8XV.r.kX9 ).X.]Xx ) :XX ` [XZXZ.SX5.HX1 3XDXG v O v.M hXD UX,X, v J.PX> ..m U <.aXI.} RX- E.iX4 WX% k.Y `.Z.Z.DXD.D.M.DX,.MX, : c 3 `.] D V.3XK | $ ` R R 3 R.u.a.ZXD c VX3X#.1XH.G.OXm.O.'.w R.~X5XD.9Xl xXZ.wXH.-X.Xw gXc 'Xw sXC gX0.4.C.JXn.xXn.y zX0 o.9 yXm mXP ' gXP g.T.+ HX>X8 v.dXeX,.w.iXrX+XqXq.<XAXr.<X4XqXq.mXp Xp 1Xq x.YXl h RX,X-XD RXD.a 8X, x $Xe $.wXl $X5 'X5 T : TXl g.-XU D.wXD.Z R R.a RX,XDXIXDXD.Z.Z R.a.a R.aX-XK.ZXJ $X, $ $ #.M c h R.aX,XD RXD 3XD R.aXIX- cX- RX-X-.`.~., TX.XZXm.O [.>XJ ` :X9XJ.5.`.8.`.8X-.8.`",
+"X1 BXIXD RX,Xl D.2X, BX1.eX-.e.Z m $X1X, R.* R.ZXJ :X- R RX1 3.DXJ $XJX,X1.e.Z.] :XDXDX; T.'Xc.9 gXPXU m x.uXD.aXI ) 5 5 q.^Xk.X.o.o.o.o.o l l.U.#.I.c.U.c.U.c.U.cXk.UXk.cXg.o.o.o.o.XXg.o.b.oXg.b.o.o.oXg.oXg.o.oXg.cXk.cXg.U.c.c.U.U l l.U.z.#X&.X.b.o.X.o.bXk.o.&.(X .t Q l.XXg.b.oXg.X.z.& A l.b.o.b.o.b.XXjXt.5Xo.H P q.r.k.k.k.r.kX*Xx.k Q.|Xt.kXo.u.k.u.k.k.k.kXtXoXx.k.r.r.k.X.z.^.XXg NXg.^ N.o.b.bXg.b.b.b lXgXg.o.z A.I lXg.b.X.b.^XjXjXt.kXtXtXt.kXd.b.bXzXg.b.b _.X.b _ _XdXtXtXt ~ 3XVXD.NXn.).v.EXp s 1.'.0.'Xl x V V :XMXl 1.ZXD.} hXD.M.}X. sX. h.M R 8.Z $ $XlX7X7 WX+Xi.@Xf.E..XG v.aXIX-.H.`.H FXV.8 ~.8.uXo.$ I.$X9.K.KX9XtXt.z q.rXtXt NXtXt.k.rXVX1 $ $XK DXKXKX3XV.8.8.rXjXt.k.R ( 5.| D 7X3 IX#X#.SXhXc T 3XV 3 3XG b.s.s.N C R R R C._Xb ^.@.. E x < <X-.u a R UXe.F.pX7.9 V xXI 3X,XD.M.D U.ZXD x 3X5 cX1XVX1XD.a : m DXH :XD.uX-.uXD R R.a cXXX3.-XwXU.9.9.w.ZXDXI : D.| $X, xX.XwX.XwXK T DXK o.n.q.O & S.4X6.@XnXrX2.LXh zXm s 9.' T :.0.D g T.!Xh zXfX2 S.YXn x U U .XqXAXA.d.m.m.d E.m E U.d u E u.M a.M tXD R.aX1.aX,.M.a h h $.wXl sXl $X5X,XDXcXJXwXUXJ T.9XK x 1X,.a.ZX,.aXI.Z.a.Z R.ZXD UXlXD R R R RXKXlX,XD RX,.e.ZX- R 3Xl RX-.aXI.a.aX-XIX-.a R $X, a R.eX- 3X3X5.w gX0 M oXpXH h RX1X5.8X-.`.`X-XI.~XI",
+" R.eXDX1 R BX,XJXK.0Xl.w.9 'Xl.0X..] 'XlXK.ZXl xXJ.w RXI BX1X1.ZXJ.Z.2Xl.]Xl sXc g $X,.' TXwXJ !.GXOXU mXK DX3.].8X*.k.k.X.^.X.bXgXgXg.cXg.U l.c.I.#Xk.U.U.U.U.c.U.c.U.UXg.o.b.o.X.oXg.b.o.o.o.o.oXg.X.b.b.oXg.b.o.o.c.U.c.c.U.c.U.cXk.U.U.zXg.: Z.bXgXg.b.oXg.z.^ f.X.(X XzXzXg.b.oXg N.oXg j.IXg N.o.^.b N.b.k.k.XXtXo ) 7.k.kXtXt.kXt.I q.r.k j q.k.R PXx.kXV.r.k.kXt.5 ,.& f.AX@ ).X.o N.b N.o.X.t.(./.o.o.b.oXgXgXk.o.RX@X . Xg.b.b.b.b.kXtXtXtXtXj.k.rXt.k.XXzXg.X.^.b.X.^.bXz.XXz.kXt.uX*.8.DX1.n 0 /.W.. vXL J bXL b.9X+X3 .lXM.} cXD.}.Z h <XcXHXl x R tXD.a.Z $.wXlXB.-Xr W.j.CX6 .X> v.Y xX,X-.8.`.`X1.H.`.8 3 3 ~.8XVXo q.& q.r.r.k.kXk.zXt.k.^.z.kXdXdXxXo.k 3.8.} 3 h 3.`.8.rX*.rX*XtXtXx NXxXo.k.5Xo : 5 m DXcXD.8.8.8 3XI.jXw v.).WXs R C.a * vX=X4X>.jX4Xq <X, #XIXI.a U EXqX%X7 .Y 3 $X,XI.ZXDXDXD.ZXD 3XI cXV 3X5 R.~X5.u $Xl :XI 3 BXI 3.H RX1.aX- hXX [ nXw s.w.n.a RXIXIXJ ' c $.w UXD h RX1 $.Z.D.ZXG.j.> H.4XfX4 vX+.j.;X0.+.+.jXm.9Xa $X, sXl.DXU gX0 M.; H.@XnXG x s E E u <.m E <Xq._Xe u < UX,.}.M t t < t.aXD $ h $ $ $ $ x $.W xXl : :XK : $XD.DXD.Z x h h 1X,.a $.Z.a.ZX,X5.M hX1X,.aX, hXDX, 1.eXDXDX, a.a R aXD t 3X,.a R a $X5.Z.eX- RX-.aX-.aX- a x ) 1X-X1 a.8 c.eXD v.! b b v.9 `X1.HXVXVXI.`X-X1X-.`XI",
+".3.eX5 $.~XI $.,.2XK.2XJ DXc D ! mXJXUXc gXc ! D TXKXl.0XIX..e.5Xw a RXcXwXP 1 m.OX. mXKXHX. mX.XPX5 $X5Xl :.5 qXVXVXd.k.^.X.bXg.b.bXkXg.z.U.UXg./.U.U.U l.U.U.U.U.UXkXg.X.o.X.oXg.bXg.o.o.oXg.o.XXg.o.o.o.b.o.o.o.oXg l.U.U.c.U.U.U.c.U.U.cX d jXk.U.U.b.b.UXgXgXx.b.7.RXgXg.XXg.bXg.bXk.o.:.X.bXgXg N.^XjXtXdXtXo.k.k 5.7.K.rXtXjXt.k.K q.KXo.fX$.kX9X9.r.k.kXt.k.r.K.z q.k.:XoXt.^ N NXz.X.o NXg./.7XgXx.U.U l lXkXg.(X&.I.7.z.o.b.X.X N.^XtXtX*.rXtXtXtXt.^XzXz.XXz.XXz.b.b.b.b.XXo.k.k c cXVXD 8.' 2.W.s.)XG v 0 O 0 0 2.@.[ XM c a 3X, cXc hXK s $.a R.M.a h $X,X5 $XMXc.-X%X% MX>X4 HX>.j.Y 1 3.u.8.`.`.`.HXV ~.8.8 3XI.H.H.rXo.^.kXjXt.kXt.X.r.^ N.zXj.r.^.zXx.K.K.uX* 3.r #.rX*X*.rXtXtXj.k.rXdXoXdXdXdXdXo P.0 ) : : )X9 )XJ 3XJXr.j 0.=Xs.* <.W.N.. v.E.@XqXe x $X-.uX1 c B U._XqX2X+ XB hX5XD 3.ZX,XD UXlX, 3 R RX1 3X1.u.ZX, aX-X5 R R cX1.e RX- BX, 3XI.i `Xc., nXU v.w 8X1 T $XVX, x.ZX,.a.Z R.Z.D c.Z.w.Z s.'.+X0X>.x.+.1 =Xc.< 0X2.;.; 9XG.9.nXDX,.2.Z.w y & =X0 &X> v v.W hXn.[X7Xq._.F >.pXBX+.a.MXDX1 R R t.a.MX1 t.M c.MX, $ $.Z.MX, h $ $Xl : x.9 :XlXDXD.Z.w : 1.MXM x RX,XlXD.a $.Z.ZX1XDXD h.M.Z h.* $.ZX, $.Z $X,X,.} R.aXDX, cXI.} T kXJ 1X-XIX-X-X-.~XIX- : D T.,Xl D.a.K $ RXaXLXC.q o.9 !XD Y $ ]XX 3 D.5.| T I",
+" 3X-.~ 3XD R T D $ :XDX5XI.Z $XJXl BX,XDXDX,XlXw sXl T.9XJ.] :Xl.,X,X, UXD.D.Z $Xw.9.0XcXJ gXw.]X1X1.`.`X-.8.8.8 ~XtXtXoXg N.o.oXgXg.UXg.U l l.U. Xk.c.UXk.U.UXk.cXgXg.b.o.XXg.X.o.o.X.oXg.X.oXg.o.o.b l.o.o.o.o.o.b.V l.U l.U.U.c.UXg.U.U.IX&Xu.:.#Xg.z.zXg.U.oXg.X.o.:Xg.o.b.oXz.cXz.o.b.z j.bXg.zXz N.b NXt.k.r.X.uX@ ) j.X.KXtX*Xt.k.k.k )XxX9.$ 7 ) N.k.rXt.r.u.k.k.5.k.5.:.k.k N.o NXg.o N l.X.(X&Xg.UXgXg.cXg.U.6 jXx.z A.o _ N.o.b N N.^ N N.^.^.K.^.^.X NXkXzXoXg N.X N.b NX Xk.5 ).u $.5XIXa v.=.WXeXs =XG.jXCXpX=Xb.@.[ x hXM : xXc x T t R 8 RXIX,X,.ZXDXl x ` `Xw [X+ M SX0.;.T nXKXwX3XcXl.`X1.`.`.H.8.8 ~.8 ~ ~XV.k.u.rXtXtXtXt e.X.r.kXt.kXtXd N N.X.rXdXVXtXVXt q.5Xt.k.k.^X*.k NXj.kXoXtXt.rXo.r P.|Xy ( I : PX3 q kXS MX> 0.v.N.NXD.s / ^X>XnXe p h.M.}XI cX5XIX, h._._X<.gXB XM .}X,XM U RXl 1X,X, RXIXI 3X, 3X- RX1 R.}XD 3XD R RX1.a R :XlX,.aXM.-.YXw y 1.nXD.D ` DXDX5 RX1XDXDX1X,.u.HX,.Z TX1.> o.+.h.y.y [.[X, 8.WXn.C S M.; & 9XG.'XU.w ' $.'.0 9 MX0 &Xm.9.9.Z.iXqXp UXe.iXeXq x UXDX1 RX- $X- R R.M.} R.eX,X5Xl t R h.M $ U x #.iXMXM 1X, $ ` x hXD $.n TXD x 1 U 1.Z.aXD x c.MX, t $ tX, x.Z xXK.a.MX,.aX,.ZX,XDX,X, h $.M.a.9.G.,XK : `X1 RX-X-X-X-XIXIXlX3 )XJXcXcXUXwX, UXK.EXG 2 ! g T.% mXJ D YX3X3.]XH",
+".~X1.e.e.a c D `.`XcX1X..DX1.u m $ hX5X- 8.a.'XUX, R.e aX5 # c :.- $XJ.Z :.Y g.w gXc TXw.0.%XlXI.8.8XI.8.r.8.u.8Xt.kXt N.oXg.o.oXg.c l.#.U.z l.z.I.U.U.UXk.U.z.UXg.X.o.XXg.o.b.b.oX9.o.bXg.o.oXg.b.o.o.U.o.b.o.o.o _Xg.c.U.c.c.c.c.I.U.cXkX&.U.I j.t.I l.U.U.I.UXgXg./ jXg.bXg.oXg.o.b.b.b.(X .b./.f.oX9Xg NXt.kXdXoXxX9.k f./ ~.^Xt.k.r.r.k.kX9 N.r f ,XtXt.KXt.kXtXV.kXo.kX9.7 ~ N N.X.b.b.^XgXkXg.7./.cXg l.UXgXk.o X.(Xg. .X.b.X.b N.^.^ N N.K.k.kXt.kXj.^.^.oXjXg.b N.X N.o.XX9.& 5 PX..3XwXc x ! vXs.NXe.[XG U n nXq.) 0XiXrX+ $ # 3XD 3.Z CX,XDX,XD h hX,XDXD # cXX k y.xXp.<X2 H.;._ x x.w.uX5.`.`.HX-.8XV.8XV.8.5X5.8.HXt.K.kXt.k.k.r.X.kXt.rXtXdXtXt.rXdXd.r.k.r.kXo )Xt.r N.^XtX*Xk.zXtXtXx.^Xo.X.XXx.X.5.X.0.X.5 (XxX5X; KXh.+.@ M . v.s .Xn.;.xXGXq 1 1.}.a.u 3XI.~X-.YXH [.T.T.S [.S.S., 1XH `XcXH ` x R.aX1 RX,.uXDX-XI.a R R RXDXD.e.a RX- RX, 3 cXDX,.,Xc [ g s.Z y.wXDX,X,X1XDXD R.Z.ZX1.D.ZXD $ gXw.1.+.h.TXfXp x.9X1X,.W vXn ..+ MX0XC bXL.nXKXl $ gXwX0.> K.j o.Y x.W.M U.w U E xXe.M.ZXD R RX1X5X- RXDX,XDXI.MX5 1XlXIX,X, $X, $.Z xX,.}X, $ 1 : x cXl 'XDXI.Z 1XlXD $XKXK.YXK t.Z 1XDXI.M.D h $ $Xl $ $.' R.MX,X,.MX,X,.ZX, $ $Xl $.Z x hXJ.2X. : :X1X- R.`X- RX-X1 RXD Y.'XJ.-Xc 1._.j b s 2XK ` $ c.H 3 3XIXIXI.0",
+" R.e.u.Z.~X1 D `.DX-X-X- B c.2 :X- $.ZX, aXlX..wX-.ZXD RX. kX.X#.] a.*.a.M 8X, x s.2 gXI $XDXD.`XI ~.8 ~ 3 F.r.k.rXd.bXg.bXg.b.U l.z iX XuXuXuX i./.f i./.I././.I.U q.U./.^Xj.^.o.b.X.o.bXg.o.o.o.o.o.U.oXgXg.cXgXg.c.U.c.U.U.U.cXg.U d. .U l l l l.U.c.c.z.I.U.U.U.c.o.X.bXgXz.b NXgXg NXz N.b N.o.kXjXjXj.kXd.^.kXtXd.k.r.rXkXtXt.kXtXtXtXt.kX*.k.kXt.kXjXtXtX*.kXt.5.kX9XxXxXx N.b.X.b.X.o.b.o.I./. XkXg.#Xg.UXg.cXkXu.t./Xk.bXzXd.^Xj.k.^.kXtXtXtXtXj.^ N.^X XzX ].t ]X@ ,.f.f IXJXJXl nXwXU v H.W.).M <.MXD.M v.M.).W..X4 W.p x x.} 3X- aXIXD.M.M.M.M.}.aXI R R.a.a.a # XcXpXp.s v.s pXi.@.E.Y.M RX1XIX1XI.u )XV.5.2.R :.^XVXt.rXt.r.r.kXd.rXoXdXVXd.k.r.kXtXt.kXt.rXdXt.rXd.kXtXd.k.rXtXt.kXtX*Xj.K N.f I q 5.RX9 ).5X5.5XxX5XdX.Xw H ^X=.@ 2 ^X> H.4Xi >Xe.d U U.a aX-.`.~XI.Z.aXq U x .[ [.T.- [X3 .} h.}X, $ 3XDX1 c c.2 $ `., `.9.,X5Xc ` ` B.aX1Xl : $.aXD.a `XKXcX. yXU.'.D.D.MX-.a.a RX5 3XIXD.HXD.D.wXlXa '.EX0.;.@ E n.- ]Xc.>Xq.xX4.<.. 0 o.q & &.nXw T gXUXm & J OXGXL.w $ x 8.DXeXwXw C U.M RX,XIXDXDXI.Z 3 $.ZXKXDX5XDXJ T., g mX..- nX..,X.XJ $XD.a.}XI c c h.,XJXJX;X.Xc U h T xXD $ U $.MX,X, 1 s $ x.w T $X- $ BXD RX, R.- 1XK 1Xc `XK :X, R R 3X,XI.5XH c RX-X-X-X-X-.uXVX-X- R t UXKXwXhXw <.a.a c 3X-.~X1X1X-.` 3",
+"X- B 5 $ R R D.0 3XDX-X1XD.2 T 3 B $ :Xc.2XH.GXl., TXlXc.aXIXJXH kXc `.wXD R.w.w TXU.ZXD.uX1.8 3 ~ 3.8 ~ ~.rXt.k.k.k.^ NXg.o.c.U l.#XuX X&.fXuX X X X&X .t./X .t.(.t.t.&.tXj ~.r.XXg.b.XXg.o.o.o.o.oXg.z.o.c l.U.U.U.c.U.c.c.U.#. .6 i.I.c l.U l.#Xg.U.U l.#.U.U.UXkXg.oXg.o.bXg.oXg.o NXg.o.X.o.o N.bXjXt.k.kXt NX5.k.kXj.k.IXk N.rXt.k.kXtXt.k.^.r.k.k.kXt.kXtXt.kXt.X.kXt.r.kXt.^ N N.o.b.b.o.b.b.zXg l lXg.U.cXg lXgXg N.z.^.b.^XtXtXt.rXV ~.r.r.r.k.^ NXg NX@ d.| A ] ]X@.A 5 5 ) TXKXUXy oXpXe.) U <.MXeXDXeX, xXD UXe .XiXp.j.FXq 3.}.aXI.aXD 8XDXD.a.MXD.M.M.MX-.a.aXM xXcXwXGXn p %Xb.v.. 0XGXGXq.aX1XI.u c D T ) :.HXI ~XI.r.u.k.r.kXt.uXtX5.k.k.rXV.u.r.HXd ~Xt.k.kXtXjXt.rXd.r e.kXt.kXt.kX*X* N.kXVXt.H.5.5.5 )X* '.u T.5 '.2X0.E 0XbX= 2.@.@ ^.{ pXn u < < t t.a.~ RX1 $ B.uXDXl.iXp.-.Y.- k.g k.9 h hXD $ R RXD $XlXHXJXcXJ YXJ D.- m.9.9XI.a.a c 3 $.a R.a #.Y `XwXOXh !.w RXI.M.MXDXI #XDX1XIXDX1.Z.'.nXG vXG S MX>._ hXKXlX5 sXw z.1X2.x ^.@ &Xm.OX;.ZXD xXPXy &Xm O.=Xn.wXe.w BXD.ZXc.' 1XD RX,XDXK.e 3XI.a RX, h.a 3 x 3 $XcXc k.-.'.9Xw.9.n.wXl $Xl $X5X, < c xXB.9.w.[XG x.a.MXe.-.MX,XD 1XD $Xl.' x 1Xc.- x nXc.-.9 kXc.,XJXHXJXJX,.Z xX,.Z.9X, 3XV `.8 : )XV ).uX-X-X-X-.5.e RX- R R.M.WXs y o o.9XqX3XJ.u.u.H 3XVXV 3",
+"X1 RXK DX5X5 :.]X1XV BX-.5.2.ZX1 R $ $.Z TXw m s T.'XlXlXD R `XKXDX,.9 T.-XU.2.2.2 $X1XDXV.` 3.8.8 ~ ~ 3 ~X*.kXjXtXj.^.o.b.oXk.c l l l l.U.U.#.I.z.I.I.z./.U.zXkXgXxXk l.^ q F.^.o.X.o.b.oXgXg.b.o.oXg.cXgXg.c l.U.c.U.U.U.U.U.U.I.#Xk.U.c.U.c l l.c l.c.U.I.U.U.U.UXk.o.o.XXg.b.bXg.o.b.bXg.o.X.b.X N.kXj.kXtXt.5.^XdXtXtXt./ q q.kXt.kXjXtXt.kXjXjXtXj.kXj.kXjXt.kXtX9Xt.kXtXt.kXt.^.b.X.o.b.b.bXg.c.c.cXg.c.c.c.U lXgXg.o.z NXjXjXjXt.k.r F.8Xt ~Xt.^.X.b.b.o N.^XdXd e.HXt.5.kXV RXI xXL s.NXs.) U t h 1X,.w $Xl.W hXe.sXr.WXnX+.Y x.l.u RXI R R 8.M.M R.a.M.a R.a R.a < h x .YXrXn.sXb p %XiXb 0XnXwXm.Z s.G.2XlX5.uXV.HXI.H.8XVX*.rX*XtX* ~.H.r.u.H.DX5 :Xo.u.`.H ~.HXtXtXtXt eXj ~XjXd e.rXt.k.r.k.5.u.kX5.8.]XJ 5 f T 5 D f.0.%.2.>XCX6Xi LXf ^Xi.sXf p . E U u.Y a tXlXJX5.5XD.Z k RXlXpX< [.[.Y.[ [X7 `.i.a.MX5 x.Z R.aXI xXlX5.a.Z hX, RXD.a.a t 3 R.a RXD R.a 3X, V : nX.XKXK sXD R.a RX,X,Xl.uXDX5XD s.'.nXG y.j.qX0.;.EXq x UX-X1X1XD 1 UXr.{.; S.> &Xw.Z.a aX,.O.O @ & o O 0XnXL $ $X-XD x $.i.Z.9XD hXK :X,.a c a.2XcX5 c $.Z :Xc R $ RXD UXl.ZXe.D.Z.W.a.a.} h x UXc xXn U.w.W.-.M.M.}XK RX,Xq s x.Z x sX..9XcXKXcXJ :.9XlXH '., $.9X,.MX,.MXD x., D mXl c )XIX5 D.u :XIXI )X3.8XDXV.Z.}.D.WXL o O 0 O b.E :.8X-.`.`.`.`X-",
+" R B $ RXIX,.] TX-.ZXV '.2XJ.].]XcXK 8XD.ZXl.'X;.'.D.Z $.'XKX;.9X1 R RX5XU.]XU @ m ! D D DXV.8 ~.r 3.r ~.rX*.k.k.k.k.k.b.XXg.U.U.U.U.U.U.U.U.I.z.U i.f.UX .tXgXkXgXg.X.X NXz.^ N.o NXgXg.b.o.o.c.o.o.#.cXg.c.U.c.U.U.U.c.c.c.U.c.c.c.c.c.U.c.U.U.c.U.U.U.U.#.UXk.cXgXg.o.o.o.o.o.oXg.o.o.o.b.^Xj.k.^.^XjXj.kXtXt NXtXtXd.kXtXk.X NXt.kXt.k.kXtXt.kXj.k.^ N N.k.kXjXjXt.XXt.kXt.kXjXt N.b.b.b.b.b _Xg.cXg.c.U.U.U.cXg lXk.o N.zXjX*.^.k.k.rXd I.H.H.r N N.b.b.b.b.XXdX5 e.0.XXxX9 5 : :.'X0 s.!.jXL.9 x [ 1 h x.ZXeX,.W.w & 0X>X=._ >.j x 1.}.}XDXI t R.M.M R.a $.w x <.}.a.} x 1.Y XrX+ 2.mXb.B {Xb.v J HXmXUXw Y.3 D.0Xa.HX1.5XV 3.8.8 ~.uXV.8.HX1X5.D $ D g D gXJ T.D.8.u.r.^XtXtXtXtXtXj.rXdXtXd.r.k.HXoXo.u.`XIX5 : :.0 :X9 :.0.K.2.>.>X0.h.4.T.4X: w.4 S.4X%._._.WX%.* <X,X;XlX1.e : } xX, 1 k.-.1Xq.YX7 [ `.- c h $.M $XD.a.a.D 3 h R.aX1X,XDXD.a.MXI t.M R 3 3 R.ZXD.aXKXB VXwXcXP $ sX,XD h., ` m.,XDX..w sXG J HXr &X0 H oXpXp U 1 RX1X-XKX,X% % ..h wXC s sXDX, 3X5XG.>Xm & J J H.v v x R.' 1 <.W hX, xX5XDXlX, :.Z : $XH : RXK $X,XwXlX,.Z x x.Z.2 n.Z yXe.W x.W > xXq x._.YXe.[XpXqX+XH.Y.Y.[Xw.M $ xXl.9 $ x.w $ t.M.Z.MXDXDX,X- R $XD $X, R h $ $ xXlXJXJ.] cX3.H :XVXX.uXIXV 1 ) 5.r.`X1.e.~.M.a tXs O 2 / / 0.Y s.8.8.`X-.`.8.`",
+" R B.eX1.e.DXKXl B B B T D TXU ( TXP TXP TXyXKXyXy.OXyXy.OX; @.Z t RX1 B $ $.'.2X,XD.HX5 ).`.HXV ~.8.8 ~XtX*XjX*XjXjXj.b.o.oXk.c.c.U.U.U.U.U. .U l.6Xu./X .f.UXk.bXg.o.o.o.X.b.X.o.bXgXg.o.oXgXgXg.b.#.U.U.c.U.U.U.U.U.U.U.U.U.U.U.U.c.U.U.U.U.c.c.c.U.U.U. .cXgXgXg.o.b.o.oXg.o.X.b.X.bXg.X.o.bXtXt.kXj.k.kXtXtXk.r.kXtXtXj.k.^XtXt.k.r.rXj.^ NXz N.^ N.b N.^Xj.k.^.kXxXtXt.kXtXtXt.^.b.b.o.b.oXg.c.c.V.c.cXg.c.U.c.o.o N.oXkXt.^.^ N NX9.k F.8.`.HXo N.b.X.o.b N NXtXdXx P 4.fXlX.XwXH.n =.j.WXy v YXlXKXsXa x.Z x.j.j.@ 0.sXb pXGX7 1 1 3XD.a.aXDXDXDXDX, x 1 sXJXc., `.YXc.[., n >Xr.<XiXbXbXi { ^ H y v.w s s.n '.] ( '.8 ] D :X9X9 : q qX9 :Xx.]XOXU.2.'.w '.nXKXPXIX1XV.`.HXdXt.rXtXt.kXt.rXd.rXdXoXV.8 (X9.0Xo $.5.u.5 TXM.5XX.2.3 = =.TX: S SX8X0 r r.T SX4._._.pXeXe x $ h R.a $.u.u a.a C.Y .[.,XBXc.}XD $.,X,X, RXD xX.XJX-X-XD aX,XDX..a.a.aXDXI.aXH.9XKX-.} 1 :XcX..> n.'XlXGXc :.-XJ : #.Z x s o.j.>XZ.;X0 HX0 & yX+XwX+Xc.0.] 5 h.- p %.s.@.>Xm.0 xX1.a RXD.9 9Xm.q o w.@.EXn oX+ n.j.- y nXH s R c.uXD cXM 3 $XDXDXDXD.Z.,XK $.wXlX,X, 1.9Xe.pXp.pX4.pXr MX: WXn.< >X4 WXp xXw x.w xXc.9.a x xX5 x $X,Xl $X, $.ZX,.Z x $ c 3 $ : h $Xw., mX.XH :.Z 3 R.u `X5.`XIX-XIX-X- RXx.`X-.`X- R RX-.} U C.s.WX=XiXGXK.8.`.`.`.`.~.`",
+"X1X,XD.DXD '.]XDXD.uXl T.]XD m.2XyX; !X.XyXy.2XUXU '.'Xa gXm g.nX5.D.ZX,.n.wXc ' R.HX1.KXV.8 ~.8XV ~ 3.rX*.k.kXj.k.kXj N.XXg.U.U.U.U.U.c.c.c.6.I i./.U.6.I.#Xu.z.I. .oXkXg.c.o.oXk.c.b.cXg.o.cXgXg.U.6Xk.U.#.U.U.U.c.U.U.c.U.U.c.c.UXg.U.c.U.U.U.U.c.c.c.U.IXgXg.o.o.o.o.o.X.o.o.oXg.o.o.b.b.X.bXj.kXjXtXjXjX*.^.X.r.rXt.kXtXj.kXtXtXj.kXjXtXj.X.X.b.X.b.X.o N.^.X.o N.z.^XjXdXt eXj.^.b.oXgXg.c.c.c.c.U.U.c.cXu. .fXu././X@./ qX9.& 5XX q.R q )Xx.^.b.X.b N.o N.X.kXdXV ( (X@X3.|XlXU.j.q.9 n vXK T.'XU s x s.n y.Y.+.EXnX>Xn.@X+.jXcXp $ h.aXD R.aXD.a RXDXD.D xXD.9 # < $ h x x.[XM.YXr.< {Xb.PXf wX> &.E s.w '.n.nXa 'XU.5XJ D 5 ).] I.$XX (.2 D D 4Xl g.!XK.> yXOXwXy !.n.nX5X1XV.kXVX*XtXt.kXtXd.r ~.r 5.]XJ D.5 m ]XJ.%X3 I.,Xc 4 K !.pXf % {Xf w.x.x.xX>.pXr >Xn EXe.) E E.M < R a.uX-X1X-.a aX,Xp X7.S V h.}X-.OX, hX,XDXlXHXKXlXD RXD a : Y.'.a.M RXDX-XJXc D a.MX,Xc 1.,X#.O @X;XwXU 1 3.a R B R.wXLXmX0 M.;XhXr &.T.O nXrXHXK g m D 5 h u EXiX6Xm & '.' sXDXI.a.M s.'.!X0 =.+ =XnXeX0.j yX>X>XGX0.9 1.Z.ZX,XIX1.a.aXDXDXD RX,XD.aX1X,.a.ZX,X,.w x._Xp.FXe.FXn...JX4.<.<.JX4 >.d >.MXGXpXD.W.-.9XK x :.9.9.9X5.w xX,XcX, xXIX5 $X1 $ 1X1XD.aXJ.- x.9X, R.aX1XD.8 c.8X-.8XI R.aX-X-.5.u.k.~XI a a.a a.a t.M.W.).s v T.H.~.`.`.`.`.`",
+".w.n $.wXl s $.w.n.w '.0.2 KXy Y.O.> ! g mXU g mXOXUXO g.wXLXPXU !X;XJ ! 1.0.2 $X1XDX1XV.H.HXV ~.8 ~XV.rX*X*.k.^Xj.^Xj.^.bX9.cXk.U.c.U.U.U.U.6.IXuXu.I iXu.U.(.6.U. .bXu.6Xk.o.b i.zXg.6 iXg. .6.cXuXu.U.U i.U.# i.c.6. .U.#.c. . .c.6.U.#. .U.#.c.#.# l.U. Xg.bXg.o.o.X.oXg.o.b.b.b.b.oXg.XXzXdXdXdXt.kX*Xj.kX9.$.k.kXtXt.k.rXjXtXtXtXjXjXjXj.X.o.X.o.b.X.b.o.X N.o.X.z NXj.kXjXj.k.b.XXgXk.c lXg.c.c.c.U.c.#.AX X&./.f.f f }.A ).f I./.A 5X ././Xx N.X.b.b.b.^Xj.r.rXdXdXV.rX* 3XD s sXLXs.*.M R 8XDX-Xl.w.M._XGXLXn._ &.p.[.[X7.[ X, $.aXD.M.a.M.}.M R R R RXD.a RX, < R t.a h.lXqXpX2..XA.@ H.E O H.'XP.W R 8Xs.w 'XcX5XIX1.H R.8X9.K.8.HX-.HX5XU $XO.w y.'XPXK ! !XU g gXO.'.D.Z.uXV $XV.u.r.kXt.r 3.k 3.KXDXIX1X1XI.` 3.}XI $Xw 1.9 zX> %.4 r S.; M.xX4X:Xr WXrXrX2.F._XeXe E t a RXV 3 3XI a.a 1 x k.[ `XBXX : h.S 3XDX,XD 1XJXcXIXl.a R.~ `X,.-.aX, a RXIXJ a $ R R.a ` 1 :Xh.3XZ ! sXl 8.DX1X1X1.M.w v H.E.E ^ o.@XnXLXe.M.'.w E RX- 3 R R.d.s ..@ &.! b.nXsXK R.MX1.ZXeXP y & o = M.@ O..XnXi vXn v.OXL.jX1 $X1 hXIX- t R R R.9X,Xc x.9XJXJ.wX,X,X, x xXq.W...@ M.; S.C SX2X2X8.{.J.p.M.- U.wXhXwXK xXc.' k.'XHXK.%.-Xc k.%XcXH ) KX,XVXDXI BX5X,.a.M.aXDXIX-.H : : c R R.~X- RXDX-XV.uXM 3XD.~X- aX-X,X,.a.WXe.) v T.H.`.`.`.`.8XV",
+".'XKXU.0 T g 1 'Xl.0 g ! D gXU.0Xy.]X1XI.nXl.' $ 8XDXc T T.'XP.> @XwXOXUXyXU m s.DXI.Z.K.` 3.H.8XV.H.H.rXj N N.X.X.X.b.bXgXg.c.U.U.c.U.U.U.#.#.#.c. .cXu.U.U.#.#.U.#Xz.U.U.o.c.c./.I.c i. .c. Xu.UXuXu.#.I i.U.6X&.c iXu. .U.UX& i.UXu. . Xu.c i.U iXu.U.U.I.UXg.oXg.o.o.o.b.X.o.^Xj.^Xz.X.oXz.k eXt.kXjXj.k.^X9.A qXtXt.kXt.kXtXt.k.rXt.k.^ N.o.b.b.X.o.o.b.b.b.b.XXgXg.bXtXjXj.^ N.o.oXg.UXg.c.c.cXk.c.c.cXg.zXgXkX9.&XxXX )X9X9X9 ).X qXx NX9Xk.b.b.X.b.X.^Xt.k.k.kXdXt.k.k 3.uXDXGXLXmXe nX,XDXDX,XlXMX, U nXn ..EXr.g >XM .9 x xXDX,.M.a.a.a R R RX1 RX1 R.a R.a.e R.a.a.a < #.lX4XrX6X6 S o v vXL.w.9 xX5.w R 8Xs T g RXI 8XV.H.`.H.H.H.HX1X5 m.w TXs B RXsX,Xa s sXLXG.>.9 ' s.w x $ 3.H.5.8 #.8XVXJXHXJXlXUXl $ BX,.~.a.M.ZXO g.EXn.. w.{.TX:.y z WX4.1 z z M.y.TXrX4XA EXe U < < aX1X1 3 c.}.Y `.g.[.[X3XMXMXX ` # h.MXI 3X1XIX,X,XV aX, R R.aXDXD.MX1XI xXlX-.a R a.Z xXMXcXwX. y.n.wXI.DX1X- BX,.wXGX0X>.@.sXpXe t.M.M.M 1X,.ZXD R.Z R.M p.s 0 &XC.nXa.D 8Xc.aXl h T gXlXU x s & K.+X> S H M M yX0.+.OX; s x xXK.9 xXl x n 1XHXwXcX..SX.X. TXHXD hXD.WX,Xe.wXe w z.y.;X8.4X8 WX8 WXnXL xXL 1Xw.9X;XH m.3 n.%XhX.XH mXKXK `Xl Y T 3.~ R.u $X, aX,.MXDXl B RXD.Z #X5.K.~.`.a R.e RX-Xl 5 I., c.9.'XK.9 : kXlXh & &.+ m c.`X1.`X-X1.k",
+" @X. KX;X.XO g gXOX.XOXwXO.2XOX$.GX. ' cXV 3XVXV.uXV.Z.'X. gXK !Xw !.O g !.O.OXKXwXc.%X.XJXJ I.u.8 ~.8 ~.r.^.bX9.o.X.b.b.o.b.o.c.U.c.U.U.U.#.U.U.#.c.U.c.U.c.#.c.U.U.c.o.o.o.b.b.o.o.bXg.o.b.U.U.c. .#.U.U.#.c.#.I.U. .#.U.c.U.6.#.U.6. .UXu.U.6.U i i.U.I.#Xk.o.o.b.o.b.o.X.o.b.b.^.k.^.^.^XjXjXdXdXj.kXj.kXj N q NXjX*Xj.kXtXtXtXjXj N.o.X.b.X.b.o.o.X.o.b.b.b.o.oXgXx.b.^Xj.^.b.b.X.bXg l.cXk.cXk.c.cXk l.cXxXg.X N.&.$ I.% I kXJ 5 |.RXx N.b.b.X.o.X.b NXdXtXt.rXtXt.kXt.r.` c $.YXmXwXGX, h.}.Z xXq $Xr v o 0 0.jXrXB ` 1 1 x c U R.a.M.a.a.}.MX- t R R RX1.u.aXD R.a RX-X-.a.a # .x.@ ^ & b.sXL.* RXD c # ' xXa.Z.n g.'.kXd.HX1.H.H F.H.H.H 8 D.0.nX, t B R.*.M.Z.W.nXm @Xm oXK y 1XUXUXc m T.9 :.>.1 s.9XL.Y sXK.'.ZXeXLXGXPXU.q.> JXiXiXb ^.;.;X>.x < v.p.YX+.<.x.x.{.p.J E EXe a.a a.`X-X- cXB.l k., k.[ k V X3 ` 1 $X,.M hXDX1 3XlXlX-.aXDXD a.a.MX, BX.XK :X,Xl $ 1XX., |.,X;XKXL.D 8.DX1XD.Z.w s b.; o HX2XpXr xXe 1XJXJ.9.]X- cX- R u.).@ w &XP s s 8XD.-XK kX.X..%XwXPXU.> @XhXh.1.1 nXrX%.+.j n.jXw o.'.1XwXwXw.9 `XHXwXl xXlX, $ sX,X,X5X5X,.ZX, $ y n oXh.+ =X0.+ M w ^ ^X> v.YXe.9X,Xw.[.' 1.' hX5 $ m.9 xX..a R B 3XlX5 RX1XI RXIX, $XDXD RXDXDX, c.H.u.u.uX-XI a.eXD.} RXlX3 `XJ.9XHXc.9 :.5 ` ` yXm O.q ! c.~.`.`.`.`.K",
+"XwXy K g 8 8.D 1.]X, g.]XO.0 TX;XJX.XlX-XIXI.8XI 3XIXIXD 5Xw D.D.nXK.0.'.9 g n $ 1 :.] )XK ) q.KX5.k.k.k NX9XkXgXgXk.cXgXgXg.c.U.U.U.#.c.c.6.U.U.c.#.c.U.c.U.c.UXg.U.o.oXg.oXg.oXg.oXg.oXg.U.U.U.U. .I.c.c.#.U.c.c.U.c.c.U.#Xk.c.U.U.U.c.U.c.#.c.c.U.U.U./.cXg.oXg.o.o.o.X.o.b.b.X.oXg.X.b.^XdXj.kXtXjXtXj.k.k N.o.kXt.kXt.kXt.kXj.kXt.X N.b N.o.o.b.b.o.X.o.b.o.b.XXg.o.o.^Xj.b.X.o.b.bXgXk.c.UXk.c.cXk.cXkXgXkXg NXxXxXx.$ ) ) ).$ I q.IX9XgX9.b N.^.^Xj.k.rXdXt.^XoXoXt NXxXXXJ.%.j.EXG 8 U.aXe.i x.Y uXnXnXn 0.EXp.-XBXMX,.}.a.a < R.aXD.a <X- <.a.a R R B R.e.ZX1.*.a.aX-.a.aX-.a.lXM.pXp ^ HXmXL.w 8 aX- a.a.a $.w '.9XKXU g g.2 TX5.HX1.H.HX1X1 D.'.wXa B R.e.a R.*XD.w.q.OX0X0.E.>.E y nXyXwXUX0X; y.OXG g v b.' &Xm s s s v H.q &.q.@ %X6.PXi.@X2XrXp E.*.Z.d vXnXn.<Xf.<.p.J._ U h.M tX-.aX-.M 1 xXq.[.S.,XX.,X3., `X3 1.a.aXDXDX,XDX1X1Xl a R.a.M R.aXl : `XcX.., xXc.-.3XHXH k.j.9.!.'.'.nX5 :Xl s s ^.; S M M M =.-Xw.[XK TX.., #Xl 3XDXn.xXf H.q 9 s.ZXD.a R RXI $.K.0 D.!X;Xy.G.GXZXw n.[.Y.[X<.1 n.j.j.Y.T.jXmXpXwXwXc 1.,X. 1 $ s xXc.wXl s x T 1.Y = n =.OX0X0.>X0 M = M.; 0 0.jXq yXnXe C.Z.W $.ZXI.Z.ZXD.Z $.u 1 x `Xl #XDXI R RXDX, c.0 1X1.aX,X, $XV 3 : :X9.Z.uX- R R R.a 3 a.a <.a R tX-X- RX- R tXa.= o.'.u.`.`X-.8.~.`",
+"XJ.0XKXJ DX- RX1XIXI R D.2.2XUX. (XV.2 ( 3.HX1.H.HXI.`XI 3.H.aXI RXP.n.wXa.'XK RXIXD cXI.8.H.8 ~.r ~.r ~.XXgXk.oXkXgXgXkXk.U.U.z. . . . .6 iXuXuXuXu.t. .6. .6.I.#.#.UXk.cXk.c.U.cXgXg.cXk.U.U.U.U. .U.U.U.U.c.c.c.U.c.c.c.c.U.c.c.c.c.c.c.U.c.U.UXk.U.c./.cXg.oXg.o.bXg.o N.X.k.^.^.^ N NXo.^Xt.k.k.kXj.k.k.rX9Xd.k.kXjXtXjXjXjXjXj.^.b.o.X.o.o.X.o.o.X.b.b.X.o.b.b l.o.X.b.X.b.b.b.X.bXg l.U.c l.cXg.UXg.UXkXg.o.X.b.X.b.XXx.X.^Xg.X.b N.X.b N.X.^.rX*XtXt.uX*.r.|.f.$ I.f VX9 k xXL.s.s.iXeX, xXp.YXe v v v ^.EXwXr.[ xX3.}X-.a < R <.a.a R R <X-.M.}.Z 1Xl R.9X5XDX, t t R.aX- <.a #XqX+.@Xn.q o x.w R R a RX- B.a 8 'Xw.> s.'.n s.0 g gX5 8XD.D.DXO.'.w.9.w RX1X- a R 8XL bXP J.s.s *XsXs.W.W.W.WXa O /Xa.N $.'XK v.ZXGXp JXm J y & M H.4 M.4 r S S.+.TX<.Y aXDX,.M.M pXqXp.J.x.p ..m E U.} t.e t U h E .gXH.S.3., | }X.XJ.- k $X,.aX,XI 3X,.5.Z 3X, h hXDXDX,.Z.u x x 3 c c.,.- mX;Xw.j.!.'.0.! 1 o y.E.j &X0.;X> JXe U h R.a R 8 $.~XV.rX- aXpX=X6 HXG.n.w R B R R.a RX,X-X1XDXI.D TXU.>Xh k.[.,.[XB [.,.g n.9.Y & &.T = o.- y k.9.,., x R 8Xs.MX,.W.w.wXG.j =X> &XC =.q.> o HX0 & &.E J JX0XGXG y.M U.ZX,Xl 3.ZX,XD.ZX, : TX5XDXD RXDXD R.a.ZX,XwXDX.XcXK T.GXJXwXJ mXw.3.,., R R R a BX,XI.a.}.a.aXDX1X- 3.a < C.v 2 b :.8X1X-.`.`X-.`",
+"X,.uX1 I D.5XI.`X1.~XIXV : c D.` 4X5 B q.2.8 ).u.8 3.8.`XI.8X-X1XlX..'.!.9 yXwX,.Z.u.u.H.8.8XV.8.8.8.r.^.b N.o.o.X.b.o.b.o.X.o.o.c.cXk.c.#.I.6.6Xu i i.#.U.U.U.U.I.U.U.c.cXg.c lXk.U.U.I.I. .I. .6 d. . . .6.6. . . ./. . .I. . . .I. .I. .I. .I.I.U.I.# i.z.UXkXg.cXgXgXxXgXg.^.k.k.k.^.k.^.kXtXt.^.rXt.rXtXj NXjXtXtXj.^.b NXj.k.^.^ N.b.b N.b.b.X.b.b.b.b.b.b.b.X l.X.o.b.o.b.X.b.o.bXg.c lXg.U.c.c.UXg lXgXg.b.b.b.X.X lXg.b.X.b.o.X.b.b.b.X.r.k.k.r.8.8XtXdXVX@.2 qX3.5 c cXI UXG vXn.).W h._._.YXp.s.W J.j.>X+ ` XM h h.a.a R a R.aXD < R.M t.a $Xl 1 x $Xl TXK `XcXJ.M <.a aX-.i x.Y.p o H 9XL.Z t RX-X- R R R R a.D.' TXwXKXU s.'.' T gXD.D gXK.D x.D.w B.eX- a tXDXL bXC 0 /.) C u 8 8.).N.).= /.NXe 8 R.jXU.> H H & 0 o.E J wX0 S S.CX>Xf H.; MX0 [.iX1.ZX5X,.M U._Xn.p.<.x W.< . .._Xe hXe._XnX+ zXS.3X#.,.] 6XH.3 K.S [X,XD c $XJ.].K : :.aXl.}X,.}XIXI.a.a.a.a 3.aX-XK :.- n y o.EXm 9 H.j M.;X0 H w J.4XfXG._ hXD.a.M.a.M sX-Xt #.uXe._.vX6 H 9 xXD 8 R a R BXD 3 R RX,.*XD.w.9XwX; k.-.[ kX<X#.g.- [.1XrXGX+.E = M n s y n 1 y x.MXLXeXG o y.j &.T z H.@.q.>X0XmXw.j y.q.q.; H w =XhX0XGXp v.* $ hXl c ` R.Z $X,X3XI.}XD 3X, U $ UX,X,XD.9XcXJXJ.,.9XK :Xw xXlX,X,X,X- RX,.aXc.9.5XD.a h.a $ :X5X5XJ $.j.W.) 0 b $.`.`.`.`.` R.`",
+"XIX-.8 R ) m.5XIXI.`XIXIX-X1.u R.u.8.HXI.` )X5.$.`.`.H.`X-.`XI.~ DXyX;XU !.GX;XK D ).%.`XV.H ~ ~ 3Xt.r N.X.o.X.o.X.oX9.o.o N.oXgXk.U.c.c.I.U.U.U.U.U.#.U.c.U.U.#.U.UXkXg.o.oXgXg.o.oXg.U.UXk.cXk.U.#.cXk.U.c.c.U.U.U.U.c.U.U.U.c.U.U.U.U.U.U.U.U.#.U.I.I.6.UXkXg.U.UXk.UXk.UXk N.o.X.X.XX9.X.XXx NX@XxXkXxXx.X q.XXgXgXk.U q.z.U.z.U.z.z.z.z.z.zXk.UXk.UXkXk.cXkXkXg.IXkXgXxXgXg l.cXg.c.U.z.I.#.z.U.#.z.#.U.z lXgXgXgXg.b lXx.o.o.XXgXgXx.X.XXdXoXdXdXt.H.rX*XtXV.kXV.H c.kXV.H.DX, o.s.).N.W.= MXpXG.s.sXn.jXcXB XMXM #.} 3.a a.aX-.a RXD R.a.e.a.a R.M $ $ R xX,X5 hXD xX,.a.M.a.}XM x.-.;.jXC bXaX,.a R R R R RX-XD.M.aXD.W.w 'XK g.'XU.' gXOXU.] gXl.wXD RXDXIXD 3.a.n s.!.q 0.s...)Xs.ZXa hXLXeXL 2Xa.nX,.wXK =.O.>.> H H.; &.;X8 zX0 wXfX6 ^.4.;.pX+.Y CXDXIXD.a.M.M.M.dXnXG >X+.x >XA E EXe p p._.@Xr.1XZ T V 3X5XVX3XJ.3.-X,XM.G.a m.,.% T.] T.% :XcX-XI.aX1XI R BX,XD aXM : `.[XmX+.4 &.;.4.@Xf.J.@.@ 0X6.@Xn..Xe.Z.ZXIXDXDXD.Z.aXlXM.aXL.sXi HXCXL.>.> cX,.ZXJ.a :.ZX-XDXI R 8.D sXKXH.-XK.-.SX#XH.-.gXr n [Xh M.T.1.j.+.>.E yXw.YXG o JXnXC W.j z.+.;Xp J H & &.j.jXG gXe J.jX0X0.>.+ H.T n M =Xs.9 $ # D.]Xl.Z.Z.ZXKXDXD.Z $ h.wX,XD.MX,.aXDXD.ZX1X-XDXI xX5 t.a R.MXD $.*X. :Xw :.,X..- |.9X. T.2XJX.XK n.).= b vXVX1.`.`.`.~.`.`",
+"X-.`X-.8XI V )X3.u.` R.`.`XI.u.`.8 3 ~XV.u.K.$.$ ) :.8X1X1.8XIX-XVXUXOXKXmXPX. : :X3 D.uXV.8.8 ~XtX*Xj N.b.UXg.bXg.b.oX9.oXg.bXg.U.c.U.U. .U.U.U.c.c.U.U.U.U.c.U.c.U.U.o.b.b.o.o.c l.U.U.U.U.U.U.I.#.c.U.UXk.U.U.cXk.U.U.c.U.c.U.c.c.c.c.c.c.U.U.U.c.U.U.I.cXg.o.b.o.o.X.b.bXz.kXtXt.kXtXtXtXtXt.k NXkX9.rXjXtXz.k N.X.X N.b.XXg.o.X.o.X.o.X.o.XXgXgX9Xg.oX9Xg.oXgXg qXgXgXgXgXgXkXgXgXk.#.z.#.z.#.U.Q.Q.Q.z.Q.QXxXg.z lXx.Q l.zXk.zXgXk.X.z.X.^Xo.^Xo.5XoXo.5.5 N.K.k.K.5XoX5X5X5 $.Y.s v ^ oXp.E y H.Y.E n [.[XB.,.l.l 3X, cXlXDX,X,XD 3 hXDX,X,.MXD h hXDXDXDX,XD 3X,X,XDXDXDX, 3.}XX .- MXw yXL.wXDXD.a 3XD.aXI 3XD cXD.aXD.MXD.M $XlXPX5.n.0.0.w.' $.a tXD RX-.a.aX-X,XL s.q OX=.) u t.M 8.M t.w t t x hXcXcXwXOXL v o o 0.v.).s v.; wXiXi {XfX2 ^X+XGXG C R RX1X-X- R a.*.a._.FXn.<.pX4XA.m.m.m.m...jX+ M.O :X5XlX-XI c x.-XJ.lX,XMXKXJXJ mXc., cX..]XKX,.a RXDXD 8 R.*X-X- c `Xr WXp 0X6 ^.BX:.{ % M.. v.;X2 vXr vXcXcX,.,Xw.MXc.[.}.1X+X>X= 0 w.E.WX; 1XHXHXlXJ mXJXl I.eXIXD.aXD.n 1.>Xw n [Xw.1 n.-XwXH [ n WXHXS MXnX> &X0.+Xw.E J ^.@ ^.y zX%X%.j.4 0 0 H H b s y.w oXG =XG.>Xp H.T nX<.1Xh.jXh n.,.% `X..2XUXlX,XcX1 hX1 hXDXD hXD R.MX,.} c RX,X, R.M.ZXD.aXD R RXDX, RX-.e : RX5 : 3XcXlX,X, 8XI h.a.E.w.s.s.!XD.`.`.`.`.`.`.`",
+".8.8.aX-.8.~ 5Xl }XI RXI.`.u.8 3 ~.8.r.rX*X*.`.5X9 qXV.`.H R.`X1 8 T.0.n x gXw m.aX5X*.H.`.8.k.rX*Xt N.bXgXkXg.b.b.b.X.oX9.b.o.oXg.c.UXk.6.U.U.U.#.U.c.U.c.U.c.U.c.U.c.c.oXg.cXg.U l.U.U.U.U.c.U./.U.U.U.U.c.c.U.U.c.U.cXk.c.U.c.c.U.U.U.U.c.U.UXk.U.U.I.UXg.o.X.o.X.o.o.X N.^XjXj.kXj.k.kXj.kXt.kXtXkXxXj.k.^Xx.b.X.o.X.o.o.b.X.b.o.X.o.X.o.oXg.X.o.o.oX9.o.bX9.o N l.b.X.b.o.b.b.bXg.cXk.c.c l l.U l l l lXx.z.bXz.XXo _.z.XXz.^.b N.o.X.^XtXd.rXdX*Xt.rX*.k ~ 3.8.8XI.H.H.` FX1.nXa.N.s...s oXrXrX0Xr n.[.9XM # a a aX-XD s.~X- a a a 3.* a aX- R a a R < a.e.a a a.a.e t R a.a a h.lXl.Y.jXm.D.W.*X- a a.~X-.~ R aXI.e t R t R R.* t R.D.wX5 $ $ $ R.e.MX5 RX-X- aX-.aXaXLXm o.s.).d C t R aXKXqX, n `Xc k :.9.'Xa 2 J J.s 2X=X=XiX8X> w.P ^.4.<XpXqXnXs R tX-X,X-.~X-X-X- a RXeXpX4.<.{.{.< >.J.<.@.; H = K g kX5XX ` I V 6 V .u h c 3 RXIX-XD :XIXDX5.H $ cX,XD 8XD RXDX-.} hXXXBX<.x ....sXb.y S p.+Xr.MXh.j <XwXl T !X1XlXl t nXZXeXr.{.;.B b.q 9.w gXUXDXc $ xX5XlX, Y mXI 3 BX1.n.wXU.>Xw !XH n.,.-.gXZ [.-.,.[ [Xh.1X0 o zXC &X>XG.@ ^ ^ SX:X:.y >.x & H =.q.q.9 v.Z.9XG.'XG bX0 n = W [Xh MXw.j.9XKXDXD $X..e $X5 1X1X, RXDX,X,X,XD.MX,.Z $ RX,X-.a.aX,XlXDXI R.a RX-X,.a aXD aX-XD R RXD.a RX1 R BX, U.M p.s.W.jXD.`.`.`.`.r.8.`",
+".a.`.8.`.8.8.~.$X9 I.k.` 3X*.}.r 3 ~X*X* ~.kX*.8.u I.$ :.~X1XI RX1.].'.w.n.j @XJ m q T q D.X |XxX9.k.X NXgXg.b.o.o.X.o.bXgXg.o.o.U.U.U.#.I.c.U.U.U.c.c.U.c.#.U.U.U.U.c.cXg.c.U.U.U.U.U.U.U.c.U.c. .U.U.U.U.U.UXk.c.U.U.U.U.U.U.U.U.c.c.c.c.c.c.c.U.U.c.IXkXgXgXg.o.o.X.b.o NXjXj.kXj.kXjXt.kXj.k.r.kXdXt.^Xt.^XkX9.b N.o.b.X.o.b.X.b.o.b.b.oX9.b.X.b.X.b.b.b.X.b.b.o l.X.o.b.X.b.b.oXgXk.cXk.c.c.oXg l lXg lXgXg.o.X.XXz.XXg.X.b.X.X.^.^.XXtXtXtXtXt.u.rXtX*.r.r.` F 3.8.8.8.HXV.H.0Xs.s vXnX>X0Xw.-XcXK Xl.lXMXX h.a.a.aX- R 8 RXI a R R $ aX-X- tX- t t RX- R R aX-.a a < R B tX- a.a #.i.9.j yXL.Z <X-X-X-X- RX-X-XD 3 RX-X- a <.e R R R RX-XDXD BXD t B h $ RX-X- a R t.DXL b.E...N.).M 8 R.e.3 $ |XM # cX- a.wXa 2 b v J 2X= 2 0X> wX8.;X8X>.<X4 v.M t a a RXI.~X-.`.~.~X- a.MXeXqX4.<.<.<.p.{.<X>.4X> & &.9.D cXl.u VX* #.,XX.l.a.a #XIXDXDXI BX1XIX-XIXIXIX, $X,XDXD.eX1XDXD x.F.pX< WX4..XbX:XF vXe y.M.-XK 1 1 s.wX5 RX,X,XD.-Xn .Xi.B.B 0XCXC v.nXD.e t.e.* a RX- R VX. cX-.ZX1XDXl s.9Xm.jXw.>XH n.,XHXH.[ [XZ.T.O.L.T = &Xh.+ y.+ = MX:.L.T.y.T.j.;.+.+.>XC.jXG.wXwXD.W.9 sXG 9.Y =.-XB n.1Xw v.wXK $XDXD `X,.aXK.aXIX,X, t.Z xX, <XD hXD aXD RXDXDX,X,X-X, aXDX-XDXDX, R.aX-X-X1XDXI aXI a B 8X1 R.a hXe.)Xn.j yX1.`.`.`.`.5.8.`",
+"XV.8.8 3.8XV.8X1 : I D.$.8.5.8.8.8.rX*Xt.k.rX*.KXt.` ).,.RXVX1X1 B @.]Xa.n.nX.Xc.K c D.$.5 ).$.fXk.^.X.bXgXg.b.o.o.X.bX9.b.o.b.o.cXk.U.#.#.U.U.U.U.U.c.U.c.U.c.U.c.U.c.c.U.U.U.U.U.U.U.U.U.U.U.U. .U.U.U.U.U.U.U.c.U.c.c.c.U.c.c.c.c.U.c.U.U.U.U.c.UXg.zXg.o.o.oXg.oXg.X.o NXj.k.kXj.kXtXj.k.kXt.k.kXt.kXt.^XkXg N.o.b.X.o.b.b.o.X.o.X.o.X.o.o.bXg.b.o.X.X.b.o NXg.bXk.b.b.b.o.b.bXg.c.c.c.c.c.c./. d d.f d.& AXx A A.z.R AX@X@ AXkXtX*.rXt.^.u.rXdX*.k.kXVX*X9.r 3.8XIX* ~X1X1.w.'.sXn.@X+Xr.p.9 1 x 1 h h a aX- a R.aX- R.aX-.~.a c.e a RX- a RX- t a R RX- a.a a R a t BX- aX- 3 #.F.- gXL.Z tX- tX-X- B R RXV.~X- a RX- aX- RX-X-X-X- R.e RXDXD R a RX- RX- a.a a 8.n bXC O.).d C.* a R.a.' R.a.aX- 3.aX1.wXD.=.sXG.s J.).= 0 ^.4X>.{X>X4.FXq u t a RX- aX,.~X-X-.~.`.~X1 a.* EXnX4Xn.F .X4 >.@XpXp.EXwXUXD RX1.KX9 3.8 VXXXXXX # $.a.} a a 3.aX-XI.8XDXIXD 3X, RXVXDX1X-X, h 1.F.[.g M nXn.)Xe.* t BX,.a h.a h.D.D RX1.M.MXqXeXn .X> LXi J SXC.! $X1.a aXK `.ZXK c $XIXl.aX- RX,.Z.Z g = !.' oXw n =X.Xw [ k.[ K kXhXSXZXhXH.>Xh =Xh.+ M =XZ.T.jXrX+.; M =.; y y.w $X, $.' sXG.!.j.>.SXH.Y k.1 n y.- x : R.Z.9XIXDX. $XD.w $X, $ x.9 $XK.a.aXD.a.a 3.e 3XD RX,.}XDX-XDX,XDX-.a a.a RXVXI R.a.,XDX1X, $Xc.M.jXn J JXKX,.`.~.8X*.K.8.`",
+".8.8XV.8.8XI.8.H.8.H.$.AXXXV.8.8.rXtXtX*X*.k.r.rX*X*.8XV.K I 3XIX1 mXU.O.' sX..uX5.`XI.8.8XV.rX*.k.^.oXg.b.oXg.b.o.o.bXgXg.oXgXg.U.U.U.I.#.U.c.c.U.c.c.VXg.c.U.U.U.U.U.U.U.U.c.U.U.c.U.c.U.c.U.U. .U.U.c.U.U.U.c.c.U.U.U.U.c.U.c.U.U.U.c.U.c.cXk.c.UXg.U.o.b.o.o.o.o.o.b.o.X.^.k.kXjXj.k.kXj.kXj.r.^Xt.kXt NXk.oX9.b.X.o.b.o.b.b.o.o.o.X.b.oX9.b.o.b.b.o.b.o.b.b.X.o.z.b.b.b.o.b.o.c.UXk.c.cXk.c d.6X .t.t.&.&.RXx.&.&.R.t Q.& A.fXx ~Xx ~Xt.u.r.u.kX*.r.u.rXt.5.8.u 3XI.aX-X,Xl.n s.. 0X> WX+ ` ` x $ h $Xl a hXI.aX- RX-X1X1X- RXV aX,X,X-X- a RX- a R R RX-.e.a aX- < R R R R.~X- <.a # 1Xc.j.nXa RX- aX-X-X-X- R 3 a R R a R.* R R aX-X-X-X-.aX-.a R R a B BX- a tX-X- 8XL.nXm vX=.M.N B RX-X- BX1 aX- RXDX- R $ s.N o.s J.v / o 0 yX>.@X4Xp.F.d t R.aX-X- a 3X-X-.`.~X-X- a B < t.MXeXnXn.FXnXp.FXnXpXp y y y RXI.`XXX*.8., V `X3 ` ` h.aX,.}.aX-XIX-.}XDXD #XD c R R.DXDX-.D a c.F 1XBXB.-XpXG p.M v RXIXV :X, $ h.Z.a B a $Xe.s.. w S w H.;X0 =XyX.XcX.XD.9XlXJ TXcXcX-XIX,.eXIXD R.2 g.9.w s.9.nXKXU.>X;.1X..O.S.1 |XHX#XhXw k.1 n.O.+.+ =.T.T.1.+ M z.O.hXh.>Xh x.9 $ s x sXm ! = =.S.SX7X7 n =.j o ' 1.a.Z `.Z $.,XUXcXJXKX. g kX.XwXH x.OXIX, cXI hXD.a.aXDXDXI.a 3XD.a R a R a R B c aX1X. #XJ TX3 m.j M M =XZ.>X5.`.8.uXxXV.8.`",
+".8 ~.8.8 ~.H.HXI.H.u.`X9.KX*.rXVX*XtX*Xt.r.kX*.k.r.u.8 3.8 3.`.a RXJ.n g !X..GX. 5 D 5.`.H.u.r.k.k.bX9.b.o.o.bXg.b.oX9.o.o.bXg.U.U.U.c. .U.U.U.U.U.c.cXgXg.c.U.c.U.c.c.U.U.U.U.c.U.U.U.c.U.U.#. .6.#Xk.U.U.U.U.U.U.U.U.c.U.U.c.U.U.c.U.c.U.U.U.U.UXgXg.z.bXg.o.X.o.oXg.bXg N.^XjXjX*.^XtXk N.kXt.kXt.kXjXj NXk.o.b.o.b.o.o.b.o.b.b.b.b.b.o.b.o.o.X.o.b.b.b.o.b.b.oXgXk.b.o N.b.o.cXk.c.U.c.c.U.c.c.UXk.I./XgXk qXk qXkXk ).RXk.z )Xo.8Xo.`.H.u (X9 ]XlXo.5 ` DXV.k.].u x 3 $.9 v.wXi.v 0XrX+ #XD X, 1 : x RX-X,X1X-.aX-X-X-.aX-.aXIX-XI.e RX-X-X-.e BXI t RX-.a a.a a a RX- R.eX-X-.a #XM gXUXL.Z 8 aX1 a R RX-XDXDX- R.e R RX- a RX- t aX- a R aXD.aX- R s c.e RX- t B 8.ZXLXC 0X=.N u t R BX- R BX-.~X- 3 a c 3X3XeXs v J._XG O o vXmX+XGXp.. u u t R aX-X- R 3X-.e.e R.~X-X- a B a.a t t C t u U.d uXnXnXpXp yX, RX1.8XXX*X*XJ.$ V XMXM.}.aX,.}.} a h :XM kXhXX 1XK.u D.0X5XJ.DXKX3.l.l.F .<Xq 0.N.YX, kXc.,.- kXw.j., TXwXG....X6.; HXCX> J JXG.9 $X1X, a h.Z.MXDX,.aX- a 3 3.~XJXJXJXc.w $XD.wXw gXGXUXw.>.G K.GXSXZX. [ nXJ.-.3 k.1.O.+ =.OXZ KXh.O.O.+.O K.O =XU.a $.9 :.'X. [Xw.-.-X. V k.1.jXa x.9 RX, T :.aXU.,XK T.ZXK xXl.wX,XJ $Xl.}.Z 3 R R.aX- 3 RX,.M.a.a aXD.aX-.aX- aX-.DX1.a #X1 : c c h.d.s.s v b.0.Z.8.`.`X* 3 ~ c",
+".8.8 ~.8.8.8 ~.8.8.8XtXV NXtX*.rXtXtXt.kXtXt.rX*XtX*.r.8.8.}.8.` RXc.n.'.' gXH.] D.k )XV.H.8 3X*.k.XXg.b.o.b.b.o.b.X.o.o.bXg.c.c.U.c.U. .c.U.U.c.U.U.U.c.U.c.U.U.U.U.U.U.U.U.U.c.U.c.U.U.U.#.U.6.I.#.U.U.#.z.U.#Xk.c.U.c.U.c.U.c.U.c.U.c.U.U.c.UXkXgXg.U.b.o.b.o.o.bXg.b.o NXjX*XjXt.r.K.fXkXj.^.kXtXjXj.^ N.U.X.o.b.o.b.b.o.o.b.b.o.b.o.b.o.b.b.o.o.o.o.o.b.o.o NXgXg.b.o N.o.bXg.c.c.U.U.c.c.cXkXk.zX@.& 5.fX@ q.AX@.A.&X X@.f.$.K.u.8XV.KX3 ].u m.|.%.] P ] ] $Xx.9.'.j =XC ^ 0 ^XfXi.jX7.- ` # xXJXc $ x.a B R R 3 RX- R.e RX- RX-XD.e.a R a a.e a R a.a R.aX-.a a a a.aXD R B RX- a 3XMXM.-.q s.W B.aX-.a B RX-XI B RX- R B a aXD $XIX-X-X-.a.e.uX, $ R.M TXD.a R h a R 8.n OXC 0.=.) C R.~ RX- BX- R R.e.ZX-.u 3X, xXs.=Xp vXLXGXG.9.-.YXpXqXq a.}.* R.8.~X- aX-XDX- a.eX- aX-X- R.~.e.eX- BX1.* a a aXq .Y o.Y yXDXI.8.r.K ~X*X*XX.$XBXM # h.} 3XX `.-X#.3 Y.- DX. mXJ $.u 1XX a #.l.FX+.<Xn.sXmXGXK c x 1XB 1.w $.ZXl.W ..P w & b bXL v.w._ 8.uXl R cX,.aXDXl.e R RX-X-XIXl TXVX,X,.%.9X5 TXw 4Xw.OXy.O.OXw.3 m.O.1XH [ n., k.- n.O.>.+.O.+.OX;X; =.+ MXw y.' xXl $ $ s.jX. nXcX. V.-XBXB.,.S &.s v `XlXl cXl $ x T.e.aXDXDX-X, U.aXD.a a.a.aXDXDXI R.a a R.u.aXD a.aXI aX-.MX- R BX1 3 a.aX-.`X-X- < u * / 2XL.9X5.8XVXX.8X-X3.5",
+" ~.r.8.8.r.r 3.rXt.rX*.k.5.k.rX*XtXtXtXt.kXtXtXjX*Xt 3.8.8.`X-X-X1.2XKXa.'.'XJ DXIX*.`.H.8.H ~ ~.^ N N.bXgXg.o.o.b.o.b.bXg.c.U.c.U.U.U.I.c.U.c.U.U.c.U.c.U.U.U.c.U.c.U.U.c.U.c.U.c.U.c.U.I.I.#.6.#.#.U.#.I.#.#.U.U.U.U.U.U.U.U.U.c.U.c.U.U.c.U.c.c.o.c l.b.o.o.bXg.bXg.X.X.^XjXjX*X*.^.kXtXk.z ~XjXt.k.k N.b.z.b.X.b.o.b.o.b.V.o.o.o.b.o.b.b.o.o.b.b.b.o.b.b _.b.oXgXg.b.o.b.o.b.c.cXk.c.c.c.c.c.UXgXk.UXkXg q.XX9XxXx.X.X q.X.X NXV.u.8.kXV.5.u 3 5 $.H cXl.` 3X1XaXGXG oX6 2X=X=XiX= %X2 yX< :XBXM h.a.a.e.a RX-X-XDX1 a R R aX-.e a.uX-XI.e RX- R a R t a.e R aX-X-.a a 3 R.* B RX- a h # .-XUXaXa.M.eXwXD R.*.* R RXI.e aX- R a #X. `.*.a BX-XD.ZX. :.e R a R BXD.G a.a B 9XaXm J 2.N C R t.~X- R R.eX-.*X,.~XI #X5.M.WXsXaXm.W x.9.}XI `XcXp Xe < C a R B R B R.M a.*XD.e R a.~X1.e.`.` BX-.~X-X1.}.e.gXq MXqXGX+ TX,.`X*.8.5XVX-X-XMXJXXXM ` ` V.G.,.,X3 1Xl R.ZX5.H.Z c.uXIXI.}XM >X%X: ^ pXe.D R R 3 R.MX, 3.e cX,.W 0X6.; wXa.n.n.D.W t t $XK m `Xc mXc TXHX,X- R RX- ` cXI R.~ 1XJ.' :Xl x.9 'Xl 1 ' s sXP.9.j MX; =.>XH.O [.+ =X0 =.>.+XC.!XcXm.'.E !.j x $X,XcXK = @X;Xh [.-X3 .9X7 n &Xa v.-.9XKX,.ZX.XlXD 8XDX,.MX, RXDXI.} RX,.a.M 3X,.}.ZX,X, a.Z.aX,X5X-X, :.ZXIX,X-X-X-X,X1.a.a.~.a.a < C.s /.v s.0XoXV.K.u aXl $Xc",
+".kXtX*.r.rXtXt.rXtX*.r N NXtXt.k.rXjXj.rX*Xj.kX*.kX*.r.8.8.`.` 3.a.0 D.w ' : mXK.` c.u.5XV.k.K 3.^.XXg.b.X.b.b.b.X.o.X.o.c.c.U.c.U.U.#.I.c.U.U.U.c.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.c.#.#.#.6.I.#.I.#.#.#.I.U.#.#.#.U.U.U.c.U.U.c.U.c.U.c l.cXg.b.UXgXg.bXg.o.o.o.o.oXgXjXt.kXt.k.rXj.kXjXt.^.k.^.^.^Xg.b.z.b.o.b.o.o.b.o.b.b.b.o.o.o.b.b.oXg.cXk.UXk.c.cXk.cXg.#Xg.b.b.bXgXgXg.c.c.c l.c.cXk.cXgXkXk.XXk.f 5.& q./.X.X ) N.XX*.rX9.8 3.r.rX* ~X3 ~.u.H 3XVXDXl gXG O 0 0.vXi ^X6Xi.P.jXBXJ :XlXMX-.aX-XI.a.~XlX,X1 RX- a RX- $ )X1XD.a.a aX1 1.Z a.e R RXlXK $ R aX-X-X,XlX5 R.eX-.a c `.3.[XU.n.w 8.*.,.a 8 R R.e R.a.eX- RX-X- $XJX. RX1.* C R.eX..Z.aX- a.a.eXc.,XlXD.'.wXLXC b 2 / C.a.~X-.e R aX- R R 3 R R # c sXsXs.sXGXpX,.a 3 3.}XK.9XGXG a t R.e B R.eXDX1 t a.* t R RXD.eX-.e.H.H.` B.~.e.a h x.-.F.1 = y.-XcX1 c.`X*.5 #.8X* :X3 VXXXMXX :X3.,., `XX 6X. n.3Xl., ` 3 3XV a.a R h.FXq.pX2.xXf v CX1 RXD R.M.Z.}.eXl BXeX6X6.4.q.!XL.nXs t.M aXKX5XX.ZXJ.Z $.a $.a R.e.aXIXIXIX5 cXIX-.ZXV.~XJ.ZXV.ZXK.0.'Xa 'Xw y.' b.9X0.> = n nX0.+ M =.+.O &Xm.j y [.>XUXUXUXK n.>.GX;.GXSXHXH c 1 $XB.[ n M b v.>XJ 1 kXJ m.9 R U.a.ZXD.M RX,.M.M.aX- R.a.a R tX- RX,.a 3Xc :XMXKXKXcXcXKXl R RX-X,.aXIXIX-X-.M.* u.W 2XLXm.Z.8.r.5 3 `.O.GX,",
+"XtXt.rXt.k NXtX*.r.^XtX9Xt.k.rXt eXt.r.r eXtXt.r.rX*XV 3.`.`X-X-X1 ' g s.w.n.2X5XV.8 q ).]Xd.KX9 N.X.b.o.o.oXg N.o.bXgXg.c.U.U.U.c.U.#.#.c.U.U.U.U.U.U.U.U.U.U.U.c.U.U.U.U.c.U.U.U.#.U.c.#.U. i.#.#.#.#.U.#.#.#.#.#.#.#.U.U.c.c.U.U.U.c.U.c.U.cXg.b.U.oXg.b.o.o.o.b.o.X.o.kXj.kXjXtXj.kXjXj.kXj.^ N.b.X.o.b.z.b.b.o.b.b.o.b.o.o.o.oXg.o.o.oXg.c.U.c.U.c.cXg.cXk.c.I.c.o.o.bXg.c.cXk.c.c l.c.c.c.c.U.UXg NXg q./.$ q q.XXk l.b.^XtXt ~X*XtX*.k 3X*.8.u.uX*.8XVX1XKXG J.@ ^.C J J ^ wXf ^Xr.jXc : #XZ hX-.}.eX- a.-X, R.e.* R a xXlX,X-X,X-X1.aXDXH c R R t.e `XJ T B RX- 3 a 1 $ R R.~ a.} kXZXcX0 s.nXD t T.'.Z t R t B 3.eXI.eX-X- h :X, a a R R R t 1X, BX-.uX5.a h R xX- B.wXaXm J.=.) C t B.aX- aX- a a.eXD.~X- c 3 1 RXs CXLXGX,XIX-.8 3 c.-.YXn s t t.9.eX-.a aXHXI R a aXJ.M m.eX1.e ` DXJ.~XI.e )X5.a a.}XnX7 [Xh.1XcX,.H.`.8.u 3X*.u 3XX 5., V V kXJ., 3XM.,X#XHX# XJ.- #X- 3X- 3.}Xl X+Xr.{ ..s v.MXIX1X,XDXDXDXD RXl.* UXnXi L.; &.!Xa.n.Z t R.e B a.}XI a RXI R.*X, c.aXlXl :X- 3 3 c 3X#X5.G $ 4Xc m g.%X. m.2.w.9.9 &XyXZ.9XGXG.qX0 H &.;X0 M.EXL vXLXL.9 T.wX,XD s.!Xw.O.> ` 1 h 1 1 kX7Xw &.E.w x 1.2 1XJXJ TX,XDXD xXKX-.aXDXD RX,X,.ZX5 tX5.a.aX-X, 3.*Xl.a.9Xl c.Z hXDX, RXI aX, R.a 3X- R.M R.) 2.= v 'X-.`X9.5.a sXw [XG",
+"Xj.r.^X9XgX9Xk N q NXk N.z.X N.k.X.X NXk.X.^.k.k.rX* ~.8.`.uX*X5.DXlXK.w ' TXJXIXI.8.H.u.`.8XV ).k.X.X.X.b.bXgXg.b.XXgXk.U.c.c.U.U.U.I.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.c.U.U.U.U.U.I. .#.#.#.#.#. .#.#.#.#.#.#.#.U.#.#.#.#.U.c.U l.c lXg.o.U.bXg.o.X.o.o.o.o.o.XXjXj.k.k.kX*Xt.k.k.^ N.b.X.o.b.X.oXk.b.o.b.b.o.oXgXgXg.cXg.U.c.c.c.c.c.c.UXk.U.c.U.c.c.c. Xk.cXgXg.c.c.c.c l l.c.cXgXgXg.cXkXg.b.b.bXx.X N N.b.X l.^XjXd.rXtXt.rX* ~.kX*Xt.u.k.uXV.`.5XGXG.sX=.v 2.v.v.v ^.vXiXr.j `XMX. | k a.a.aX- aXJ :.Z R.a R a.Z VXJ hXD 3.a.a.aX. $ RX- t aXKXwXK RX-.a.} a :Xl.e aX-.a.} [ | =XU s.n.M t.9.M R $ xXI #.e a.e R.a.e.a.eX-.a.eX- R.e c RXDX-X- 1 s R.a t a R B.w.nXC o 2 O.w a.aX,Xl.aX-.aXl.Z $XDX1XKXJ cX,XK.q o v 1.a 3XV.`XD :XK.Y v U t :.MX-X-X, Y.'.e R.eXJX- m.eX- RXl c.-XD B.~ T.u RX- < a UXB.j [.O.SX,X1.`.8.8.K.K.K.KXX.5X3XJ c ) 3X1XIXIXJ VXM #.} h RXI h.a aXM xXB.[X+.@ %..Xe.M tXDXD CXDXe.W R.u $ t._ % % ^ HXC b.w.nXD.e R R.u.~ R RX5.*.MX5XlXc mXc 3 #X-X-X-XIX9XMXIXXXl $.ZXD : $XIXDX,.5 TXy T g s.n s vXC.q H HXr M =XG v s.' s.n s v.n.DXK.'XwXHXw XMXDX, 1 kXBXH HXm U x $ h.a.aXD $ $XDX, mXJ xXKXcXJ mX..-.,.S.,X.X, 3 R.M.u.M c $.e a.* R.aX- RXD.aX- 3 :Xl 'XDX,X,._ 0.@.@X0 h.`XVXo.ZX1XG v v o",
+".kXt ~./.rXxXk.^ q.^X9 N.$.bXj NXgXg.X q.b.kXt.r.kX* ~.`.`XMXJ m `XK @ !.' gXJXI.HXI.8.8.8.8 ).k.k N NXk.I.f dXgXgXgXgXk.c.U.U.U.U.U. .c.U.U.U.U.c.U.U.U.c.U.U.U.U.U.U.U.U.c.U.U.U.U.U.U.U.U. .I.#.U.U.#.#.#.#.U.U.#.#.#.#.#.#.#.#.#.U.U.c.U.c l.c.o.U.b.o.b.o.b.o.o.o.b.bXj.kX*Xt.k.^Xt.k.k.^.b.o.bXg N.bXkXg.o.X.b.o.oXg.c.c.c.c.U.UXk.cXk.cXk.c.c.U.c.c.cXk.cXg./.cXk.U.c.c.U.cXk.c.c.c.c.c.c.c.c.c l.o.X.^.b.b N.X.X.bXg.rXd.rXt.rXtXtXtXt.rXtX*.uXt.u.`XV ' yX>.@ M.+.;.; H J.;X0.v.EX%.- `.-XlXc h.a < aX-X, c.a a a a.a a 3X, R R hXI aXD x 3.a a.a.eXDXDX, R R 3.a a.a.a RX- tX-X,XMXqXwXwXL.wX1 R x TXw.9.'XKXcXlX- R a a BX-X- a.a.a.aX-.aX-.aX,.e.aX- aX-.a.e R a B s.'Xm o 2.; y RXI.' $.a.a aXK m.aXIX-.|.,XM R R.>.=.v 9X,X1.8 3.8.} yXGXpXG.e `.}.a.eXKXlXJ R RX- $XcXKXD t.e x.9 h.eX- B $.Z.~ B.e a a UXpXpXp =XlX9 R.8X-.~.8X*X5.u.`.`.8X1X- FXI.H.a VXXXBXBXB ` 1 #.iX3 `.-.[ JXnX6X6._.N E._ v.s...s.mXe 8 c.M u.mXA.B H.qXC.!.ZX5X1XDXIX-.~X-.eXlXJ mXU kXlX,X-.aX-.e.a 3.uXVXV cXI 3 3.eX-X-XD.uXJ.2X..] D.5 'X5Xl.nXa bXC & H H =X0Xm s 9 9.!.qXP.!.' s o s !.1.-XMXMX, h : [ k [ JXL y h x.w cX, RXaXDXJX..9Xc `XJ :XKXc TXc $ $X5.SXIXDX, R c.a.aX, R.a RX- R t.eXI.a.a a `XKXUXJXw gXwX0.;.>Xw 3.`.r NXV.ZXGXG.s H",
+".r.kXt.^Xk.^XgXkXkXk.IXg.zXtXtX9XkXk.X.zXt.r.k.kX*.rXV.8X-.u.5.K : T.2.O T.G.0XIXI.8.` FX5XV ).KXo.RX .(X Xu./XgXgXk.UXk.c.c.U.U.c.U. .c.U.U.U.c.U.U.U.U.U.U.U.U.U.UXk.U.U.U.U.U.U.U.U.U.c.U. .#.U.U.U.U.#.U.U.U.U.U.#.#.U.U.U.U.U.U.c.c.U.c.U lXg.o.U N.oXg.b.o.oXg.o.b NXtXjXj NXtX*.^XjXtXzX9.o N.o.o.b.UXg.o.b.b.b.o.cXk.U.cXk.U.c.c.c.c.c.U.U.U.c.U.U.U.c.UXg. .c.c.U.cXk.c.c.c.c.c.c l.c.c.c.cXgXgXz.o.b.X.b.XXzXzXx.bXd e eXtXtXt.r.k.rXtXt.uXd.rX1X1.Z 'Xs.@ ^ ^X4.@.v OX6 b O..Xr.-XJXwXK ` x 1 c a.a a R aX-X-X-.a a.aX- RX- a.u.a RX-X- < aX-X-X- R t B RX-.a a.a t R a R R a # x `.[.j.n.w C RX,.MX,X,XD R h a tX- B RXK R R t R a.a a h.a RX, a B BX- B t RX-X- B.DXa 9.E / &.Y tXIXU.9 $X-X- hXKX-XI RX. a c #.e.>.N.=XL 1X1 3.8 3XDXl yXGXn.i < a tX-.~XV.~.~X- a.e.e.eX- a t a.e < < $ RXVX1X5.D x : <.F.M [ MXw.O mX5XI.u (.HX9.k 5.k ).H qX5X- DX5X-XM., VXXX3XB 1XBXBXB V .g.jX4 % { %.m.. vXq.s.mX6.P %.. $XD x < uXAXbXf ^XCXP.n '.DX1 RX-X1 RX-.9 R.M RXD.e RX-X- R a.HX-X-X- 3X- 3 c c.K.u 3.] }XJ : 3 3.8.] D.|X..2 ! & 9XCX0X> M MX0 & M &.>.> ! y s.!.' sXw KXHX< kXKX. k.SXHXr J b pXcXG R #.uX,XDXD ' x $X-.aXD $ $ RX,XD RXD.MXl.}.a.a.MXDX,.aXDXD B R RX-.a.a a.a a.a 3X, xXD.M.NXe.W.vXnX,.a.8X9XV 3XG =.; H.+",
+"XtXtXt.r.kXt.rXtXtXt.XXt.k.kXtXt.^XtXt.kXtXtX*XtX*Xt ~.8.aXI aX1 RX1X1 D.] g.u.H.`.8.`X-.K #XH I 5.t.RXx _.o.b.c.c.U.c.U.U.U.c.c.U.c.I.c.U.U.c.U.U.c.U.U.U.U.c.U.UXk.U.UXkXk.cXk.U.c.U.U.U.c.6.U.U.U.U.c.U.U.c.U.c.c.c.U.U.U.c.c.c.c.c.U.U.cXgXg.oXgXk.o.b.o.o.b.o.b.b NXjX*Xj.k././Xk.kXj.kXj N.bXg.b.b.oXkXg.b.b.o.bXg.c.c.c.U.U.c.U.U.U.c.c.U.c.U l.c.c.cXk.c.c./Xg.cXk.c.cXk.c.cXg.o.o.o.c.U.c.c.cXg.b.b.o.b.X.b N.XXg.^XtXt eXd.r.kXtXtXjXtXt.r.8XI.H.w s.s.)X=X=.) 2 2 / 2 /XiX= O.q 9XGXUXUX+ 1XM.l 3 <X-.a RX- a.~ R t aX- a aX- tX1 R.}.u 3 aX- a a RX- R RX-.a R a R a t R a.a.i xXB.- g v.w C t 1 x t <.e < R.a a B $X, x c.- :XJ 1XKXK `.9.aXD R R R.D $.e R RX-X-.DXLXC H 2Xn 9.* RX,X5 t RX-XDX, a.Z.~X, RX- h c.DXs.N.WXnX, h ~ ~ ~XVXmXGXp 1X, <X-X-.~XI.`.~.`.* t t RX-X-.~.~ a R.eXwXKXKXK.] kXl.3X,XHXq [ MXh mX5., $XJX5 : Y 3.RXI Y.5.%Xl 8Xc.9 R.}.KX3., 5 k., V V V VXB nX+XiXi .XfX6 .....X+.@.@X2Xf.. v.a U U u.d.. .Xi.@XC b.0.DX-X1 R R R RX-XI RXDXI.e RX-.e.eX-XIX-.~.eXIX-X-X-XI.a 3X, c.aX1X- :XI R.eXlX1 :.9Xl.O.jXm.qX>XCX%XrX2.jX>.x H M & 9.9 bXw @XZ.SXH.SXc :XHX#XHXrXn w v.. y h # 'XDX,X1 :Xl.aXV 3.uX,XD.aXDXD.MX,.a #.a.a aXD 3 3 c hX- R.a t a <.aX- a.a a.a.} t.M 2 2 2 sXG.aXVXX F.8.` sXwX> H H",
+"XtXtXt.k.rXj.^XtXt.rXx.r.kXt.kX*XjXt.^.k.rXt.rXtXtX* ~.8.`.8.`.a.8XIXVXJ.2.5 3XIXI R.` # c cX5X5.RXV.^.X.X.X.oXg.U.c.U.c.c l.U.z.#Xg.#.#.c.c.#.c.U.c.U.U.c.U.U.UXkXkXkXk.I.U.U.c.U.U.U.U.U.c. .U.U.U.U.U.U.c.U.c.U.U.U.c.U.U.c.c.#.U.c.U.c.cXg.b.oXgXg.o.o.X.o.o.o.oXz.^ e.kXj.k N./.^XjXjXj.kXg.b.o N.o.b.U.XXg.b.o.oXg.c.U.c.U.c.U.c.c.U.c.c l.U.U.c.cXk.U.cXg.c. Xg.U.c.c.c.c.c.c.o.b.bXgXk.c.c.c.c.o.o.b.b.o.b.b N.b.X.^XtXt.r.k.rX*.kX*.H.r.8XV.8.`XlXLXL / 2 * 2.s.v 0.v 0 O b O 0 H b O.n.jXU V XM # h.a t.e a.a RX- R tX- a a aX-XI.M.u 3.uX-.e.a a R aX-X- B.a a.a t.aX- aX-.a # xXB.[Xc.n.Z R.M.Z.* a :X,.* a.* R.a.e RXDXIX, $ h x h $ hX, RXD B RX-.'XlX-X-X-X- BX, s.>.;.s / C t B.* R BX- t.eX- RXJ a 3 c cX5 `Xc sXs.=XnXeXDXI ~ F.8.ZX; yXp ` R a.a.~.8.`.~.e R t t a.~X-X-.a a R aXc :XlXl 1 cX5 xXl.W xXGXc.YXw.Z gXy.9 m `XVX5X5 cXV x $ $XG vXK a.8.}.8X* 3X*XMX3 k k.[XJ.,Xr HX+X>.@X>X>X>.Y.E.Y._Xn *.x 0.w.WXe E t t.m...s b.;Xm 9.w.DX-X1 a.aX- xX1X,.a c.'X-XD D 3 RXI RXHX.X. 3.~.aX-X, 6 3X1.~.a R K V a.M.a R B.e.Z.n yX0XCX>X+X2X2X4.<X>.x H.; &.E y s ' =.OXc `X3XDX, x.-XpX<X>.@ bXnXe h xX,X5X5 BX,X,XlXI # R.a <X, R 8.M 8 <.M $X- h $XDXIX5X1X1.ZX-.a RX-.a a.a R a <.} < u.W / v 0XpX5 RXI.`.k.~ c 'XG.s 2 w",
+".rXt.k.b N.^ N.b.X.XXkXt NXt.k.^Xt ~.k.r.kX*.kX*Xd.u ~.8.`.`.8.aX-X-.` c.5.rXt.HXIXIXD : m ,.K.`.5.kXt.5Xg.o.b.U.U.U.U.UXk l.U lXg l.U.c.U.U.U.U.c.U.z l.c.U.UXk.U q.IXu.IXk.U.U.U.U.U.U.U.U.6.U.U.U.U.c.U.U.c.U.c.U.U.U.c.c.U.U.c.U.U.c.U.cXg.o.b.cXgXg.b.o.oX9.o.b.^XtXt.kXj.k.^.I.^.bXjXjXz N.o.o.b.o N.U N.b.b.XXg.c.U.c.U.c.c.U.c.c.U.U.c.U.c.c l.U.U.c.U.c.c.IXg.c.cXk.cXgXk.cXg.o.o.c.cXgXk.cXkXg.b.b _.b.b.XXz.X N.^XtXtXVXtX*X*XVX*Xt.uXV.`X-X, vXe /X=.) / 2XCXC HXC H H & HXCXC '.nXL.n.EXw.[XB.l #.lX1 R RX- a a R R R aX-X- aXD R.ZX- 3 a aX-X- a R RX1XD.M a.a R R.a t R a h x `.[ yXL.n.M RX-X-X, ' RX-Xl RX- aX- aX- R.*.e tX- <X- tX- aX,X-X-X-XD B R R.~.~X1XD.n 0XC.v.NXs t $ $ : $ xXIXD.a.eXc.5Xc DXK.]XK $ g.M.N.sXG.WXI F.k q.u .-X+.j U.M RX-X-.8X1 R t t t aX-.eX-.~.e R a a.eX- a.e R a t a < a tXq.9XK x = @ mXK.].uXV :.8XV.a R x o.9.E.M.`.`.r 3 ~.8.8.8.8 #X*.K `XJ.- = n.WXK 8XqXc x $ xX; xXw.EX> 2Xn.) E E pXA ^X= o.qXC.wX, RX1 a RXI.G RXDXI R 6.3 a.| a 3 R.e.%X5 :.G.e R.`X- YX,X,XI cX5.,Xh.aXD.e R 8 R.Z s.'.>X> o JX%Xr.<.<.pXrX> M H.'.qXUXOX;X..Y.-X,.a c :XJ.- MXp M.x vXG.j xX,.ZXlXDXD.M.w $X, U.M.ZXs._ v._.W.W.M.M T : BX5.DX5X5XVXV : DXVXl ' $.MXGXs.*.W G.= 2 2 J.Y xXDXI.rXtXt.` :.9 y v O H",
+"XtXj eXk.I.z.b qXgXj.I q.^ q.b NXtXk NXk.r.rXtXd.rXt.r ~ ~ ~X*.rXI #X*X* ~.rXVXIX1 RX5XlXJ IXt F q.8.k.^ NX9.X.zXgXg l l.QXgXk l.UXg.U.U.U l.c.z.#Xg.c.U.U.UXk.#.I iXkX d.6Xk.I.U.U.U.U.U.# i.I.U.U.U.U.U.U.U.U.c.U.U.U.U.c.c.U.c.c.c.U l.U.cXg.X.cXgXg NXg.b.o.o.o.^XjXj.k.kXj N.X.X.X.X.b.X.b.b.o NXg.b.zXzXg.b.oXgXk.c.c.U.U.c.U l.c.c.U.c.UXg.U.c.c.c.c.c.U.c.I.c.U.c.c.c.c.U.c.c.c.c.U.U.c.c l.cXg _Xz.b.b.b.b.X.b N.^X*.r.k ~.r.k.r.u 3 3.` cX, $.E.s.s.W p.=.s.E oXG b J bXmXGXG sXLXaXa.s.n.YXw.,.Y 1 x x.} a aX-X-X- tX-X- R a R.aX-XI a cX-XI aX-.a.a :X,X, c $ t RXDXD R R R.} # 1Xc ! 9.wXa BX-X1X-XD.~XD.9XI `.a aXD R.eXD R R a aX-X- aX- 3X-X- R.e.a a.e.a R B 8XL.n w.v.N.) RXIXK : ' : $XlX-X-.Z.e RX- a RX- $ R 8.WXs 2 sXD ~X* N 3 h yXpXG u.M a RX1X1.~.e R t t a RX- R a a.eX- R RX-X-X-XIXDXD $ R.M t C 1 yXc gXh ' D :XJ 5.] T m a x oXGXCXO 8 3 ~X9.k ~ ~.r 3 3.K.8 ~.`.8 3.G m :.G DXU 5.%.% :.%.,X. !XhXnXCXe p.. ..s..Xi ^X0.9XL.D.M aX- R R.3.e 3XD a.| D.3X..aX1XI a.| 1X-X# a.aX1X, KXI R R.eXcX. Y T.*XD R R RX,.wXG.> MXr.<X+.p._.x M M.L =Xm 9 !.G.O.GXH ` `.}XI $ hXc.- [ = z.Y.;.O.EXU yXJ.- g.-XcXc n.wXs U GXe 2Xe.s v .XqXsXcXl T D.2 ( Y } IXJ.%X. m DX; y =XL.s OXa 2 O O.E.9 tX1.`.`.~.`.~XD RXK v.s.E",
+"XtXt.kXx.z q.b./.oXx./Xg.X N q.8.^X9.rXxXj.k.r.kXt.k.r ~.8.`.r.`.`XV.` ~.8 N.8.8XI R : :XVXI.`.8X*.K.K.$ P.X.(Xk.(.tX@Xu.Q.&.z.t.z.f.t.zXk.U.U.U l.#.U l.U.I.#Xg.f d.6.6XkXg.#.c.U.U.c.U.U. . .#.#.U.U.U.U.U.c.U.U.U.U.#.U.U.U.U.c.U.U.c.U.U.c.o.b.UXg.b.o.o.b.b.bX9XzX*Xj.kXj.k.kXzXg.^Xg.o N.o.X.b.o.o.b.I N.o.b.o.c.U.c.U.U.c l.U.c.c.U.U.U.c.U.c.U.U.U.cXk.c.U.IXg.c.U.c.c.U.cXk.cXk.cXk.c.cXg.cXgXg.b.b.b.b.b.b.X.^.^.kXj.rX*X*XjXtXt.HXV I I.,Xl.+XC.EXwXn.;X> & HXmXLXL sXa.9Xa.n.w.wXDXa.n s b.!.jXwX+ .l cX,.aX-X-.a aX- a a BX-X1 B R RXI.a aX- aXlXl.9 TXJXwXK a tXD.MX1 RXI.M xXM.9Xw y.q.' gXD '.u B.`.` 3X- ` 3 aXl.Z.eXl : R 3X1 a RX-X- 3 aX- R RXD a.aX-.e BXDXa o.O J / u.*.MXDXIXIXDXD BX-.eXDX1 RX- B.~ R 3.K B C.=.= bX, 3 ~ ~.8 3X,.-Xp p u tXD R.HXIXDX-.* RXDX- a.e.~ R a RX- R.e.~.ZXJ D $XH x s 1 x.YXH.hXw.j $X, 3.8.H 3 3XD .jXq z &.+.'XD.H.5.^XoXtX9.X.kXt F.r e ~.H qXkX9 D.X.kXx.5.XXxX*.H.uX1XG nX+ p..XpXn ^X> J.E.j.EXe x R RX- R RX#X- c.a.eX.X-X3X$.eX,X-.eX.XJ T D.eXI.Z B 6.ZXIX-XD.% aXlXHXD RX-.aX- R.w.w.Y y = M zXrXp.hXS.+.1 K K.+X$ K.G K k : xXDXD xXD.Y.Y.g.[X% nXrX0 &Xh.Y nXK.[ =.j.Y.) bXn b.....@ ^X>..X6.@Xn & n 1.-X3 1 $ mX,.Z $.Z xXs.'.s v.v 0 O.N.=.=.= v $ aXI.`.`.`.` F.` RXq yXL =",
+"Xt.r.k.^X*.^.k.X NXk.k N.k.r.k.X.rX9X9.r.8Xt.K.rXtX*.r ~ ~ ~.u ~.8 ~ ~.8.8X*.`.H.`X1.H T.H 3.`X-.`XVXX.$.A ).7.&.( Z./.7.t X Z.7.I j.7.I.QXg.IXgXg.z.U.c.U dX Xu.z.IXkXg.U.U.U.U.U.U.U.U.U. .#.U.U.U.c.U.U.cXk.U.U.#.#.#.U.U.c.c.U.c.U.c.U.cXg.b.o.z.b.o.b.b.b.o.bXg.bXjX*XjXjXtXj.^.b.b.o.b N.b.b.b.o.b.b.U.b.b.oXgXk.U l.c.U l.c.U.U.c l.c.c.U.U.c.c.U.#.#.U.c.U.#.UXk.c.c.U.c.c.c.c.c.c.c.c.UXk lXg.o.b.b.b _.b.b N e NXtX*XtXtXt e e.r.rX-.u 3.KXGXwXn..Xp v . bXn yXmXa.w.DXs.'XDXsXIXs R.Z.Z.!.q.qXC &.j.- 1 .l h.a a.a.aX- aX- a BXD.* R.e.a.uX,.a B.} RX-X,X, h.M.MXD RXDXD R.a R # x.9Xw = !XUXUXUXyXl.~X-X- R.e RX- R hX, tX, c.eX-.~.~.`X- aXIX- tX- aXK $ a.eX1 R BXLXLXCXiXe.N a a.~.eX1.eX- R.~ BXD.e R.~ R RX- R cX, 8.=.NXL.'XI 3.8.8XVXD yX+Xn.i.MXDXl c DXJ $ x : :Xl.u x.a a t B.e a R.e.`.,XK $XJXc xXK.[Xc.1XH n nXD.MXIXIX1 R R x.1.+X8.+XZ.O.G :X1.H.r.XXkXxXk.r.R.X.zXdXx.o ~ ~.r.r.r.r eXj ~Xd ~ F.`XI U.j yXn.YX+ v...j vXs.j.' x.Z R R RX- R.3.aXI R.aXJX,.e #X1 3X-X1XlXlXIXDX1.eXI 3XDX,XI aX1.a RXDX- R.a R BX1 R R.w s y.j.j.Y.p MXh.hXHXh.+ @X;X; @XHX. | : $ h c 1 R 1Xw.,.,XH [.1Xm.@.>.s xXe.w._ vXp o...sXf ^Xi.@ S.4Xf .Xi 0.s v C a a RXDXD.M < t.a a 8.W.).@ w 2 2 O 0 J 9 sXD R.`.~.`.`.`.`X-XI.Z.G.jXZ",
+".kX*.rX*.r.kX*.r.r.5.8 ~.`.`.8.~.8.8.` ~XtX*.r.kX*X*.uXVXI.8XI.8 ~ ~.H.8Xt.k.H.8.`XI.`.] c 3 R #XIX-.K.5 ) q.X.&.A AX X@X X .t XX .t.7.6Xk.z.c.Q.I.I.6X Xu.I. .I.UXk.U.I.U.U.c.U.U.#.U.U.U.#.U.U.U.c.U.U.U.c.U.U.#.I.#.#.#.#.U.U.U.c.c.c l.cXg.o.b.U.bXg.b.o.bX9.b.X.X.kXjX*.kXtXjXj.bXg N.bXg.o.o.b.b.oXgXk.o.bXg.c.c.c.U.c.c.U.c l.c l.c.c l.U.U l.U.U.#.#.U.U.#.U.U.c.U.cXk.c.U.cXk.c.c.c l l lXgXg.X _.b.b.b.X.b.^.r NXtXtX*X*XtXj e F.H F.`XI.aXD v 2.) <.*.s /.sXC y.n.n 8 B.ZX- R.e t B $.n.E o O O O 0.Y.j x x x.}X-.}.a.a a aX-X1 BX- R R R.a.eX- <X- tXDXD.Z R R RXDXDX,X1 RX-X, 1 `XwXwXc gXG.Z.n.D R R BX- RX- R R.* a RX- a R.~ RX-X-X- BXI R aX- RXD a a < aX-XD.wXL.q 0 G.).* <X- t.e RX- aX- t 3 $.e t.e a.ZX-.a 3.*.NXs.=XG xXI.8.H FX1 '.[XnXpXe.M.-.ZXK T `XJXc : T :XJ h aX-.e RX1X- RX- R R R.~ RX,X,.a CXeXpXG.jXJXDXD hX,.w x x =.x.J.4 H ! g m.DXt.` F.HXtXt.^ NXx.bXd.bXk q.X.zX9XxXjXd.rXdXt.r ~.`.`X1 hXwXc.Z t R RX,.}XD 1 s $XD BX-.a a R BX-XIXD.~X-.~ R.~ R R.Z R RX- BX, aXD aX,X-.a.aX1 R RXD.aXDXDXD $XlX, $Xl.' g.>.+ n.1XrXZXh.hXhXh.G = !.>.>X..-XJ.i.a.aXI c.}XDX,.i .-XB.j &XG.;XG U EXpXnX=.. 0.@ J ^ ^X2X8.CX2 SX8.4X6.s .._X,.M.aX, U.a <.* < 8 C.W 2 0 oXp v.1 =.'.Z t RX-.`.`.~Xo.HX5.`.DX1 $XKXU",
+"X*X9X9X9X9X*X9X9XX.K.uXVX*XVX-XVXV.u.uXt.5Xj.K.k c.K c c.Z cXD 3 3XD.8XIXVXI FXI.`.`X-.5XV 3.a.a 3XI.`XI.`.8.K NXxXkXk.z lXk.UXk.U.6.z l.z.U d.I.6.tXuXu. .U.z l.U.U.UXk.U.U.UXk.c.U.U.U.U. .#.U.U.U.U.U.U.U.U.#.#.#.#.#.#.#.U.U.#.U.c.c.U.cXg.o N.# N.o.bXg.b.oXg.b.X.^XjXt.^XtXjXj.b.b.o.b.b.b.X.o.b.bXg.c.o.o.c.cXk.c.U.U l.c.c.U.c.U.U.c.c.#.#.#.I.#.U.U.c.c.U.U.U.cXk.c.c.cXk.c.c.c l l lXg l l.o.b.b _.X _ N.bXj.r.X.k.rXtX*.r.rXj ~ F.`XIXI.j.j.jXrXp yXe.T b =XU y.n.ZX1 R.D R R RX-.a.WXa.! o 2X=.=.).s.F.jXK 1 x #.}.a a a aX- aXI a RX-X- RX-.a.a a R R R.Z.ZX,.M R R RXDX,X1 R.} # 1XcXH nXwXU o.w.w.M t a R B R.* R R t R B R B B BX-.~ B.eXD.a a R a aX- a R.~ B BXaXLXC & v.N u a a R t a a t t a.ZX. x.- :.Y.-.9 VX.X, C.N.NXe o $.8.H.XXxX, x XGXpX, tX, t a B.~.e R a.e t a RX-X-X-X-X1X-X-X- BX,.a a R a.Z t tXp.9X+.jXpXqXKX+.9X+XpX4 p.C.;Xh.O.>Xy 4XO FX1.`.H.H.K.kXo.rXd.^.k.^XxXx.oXxXtXtXtXt.r ~ F.`.`X-X1.~ $Xx TXlXlX5X5 $X1 :.DX1X1XDX1XD.aX,XDXIX,XIXDXI 3.a.3 c.3XKXKX,XD $XIXDX, c.ZX-X,X,XD.aX1.a.9XlXlXl m DX..' !Xw.>Xh =.OX;.+.hXZX#.OXh.q.O.>Xh.,.- V `XIX, R cXDX,X, c.aX3.[.YXw.j.E & E.s..XfXf ^ w.@.4X:X>X8 WX+..XfXfX> w...s G.).WXe.WXe t u u CXsXs.W 2 vXq.-.GXHX#X3X. : m.5 TXx.~ D fXd 5 : ].2 D Y",
+"X*.rX*X*X*.r.u.8X*.`.`.`.a.`X-.`.8.8.K I q.%.$.% I |XHX3XH.9.GXHXG h U R.kXI ~.8.8.`XI.`.}.8.` ~XI.H T ~XVX*.rX*XxXgXkXk.z.I.I.I q d.6.IX .6.(Xu.Q. .6.Q.I.#.I. ./.U.I. .#.I. .U.#./.U.#.#.6.I.U.#.U.U.#.U.U.#.#.#.#.#.#.U.U.#.U.U.U.U.c.cXg.o.bXgXg.b.b N.o.b.b.X N NXt.k.k.^Xt.^.X.b.b.o.b.b.o.b.b.o.oXgXg lXk.c l.U.c.c.U.c.U.U.c l.c.c.c.c.U.c.c.c.c.#.c.c.U. .U.U.c.c.UXg.U.c.c.c.U.c.c.c l.UXg.o.b.o.b.X _ N.bXdXt.5.rX*Xt.r.kXV.8 ~.8X1XD y ...XF.).d * p.).v vXm oXl.Z 8 R c R.a a.a a.ZXL 9Xm O / / * *.)Xe.s.9.j 1 # h a.a aX-.a.~X-X- B a R R.M t R.M.M U x.Z UXD RXD B.a RX1.M.a c x `.9 x.YXwX+ vXL.wXLXLXD.M.D.w.w.W.w.w.Z 8 BX1 BXD B RX1 t.e.aX-.a #.a <.e R 8XaXLXC J 2.W.*.M t < a a a <.* a u < a.e < a t.e.l.*.M.M C u.N v TXD.H.H F F 3 hX7XpXH.1 U.a RX1X.XJ.eX1.a RX. n.e RX1X5.,X.X- RX- D.DXDX-X,XH.3 a U y M.O.+ z MXpX>.+.x z.xXi.4X0XG.n '.].0.0 ( @X$ D D ) I.X.X.XX9.UXt.K.k.K.kXtXdXt.r ~.8.8 3.8.`X-X1 B ' (.0.0XOXOXP.DXa.DXa @.'.% ' a BX1 RXD cX-.]X1 RX, :X5 x :XJ.,X..%Xc :.a.aXl mX5XcXKXKXlX,XI $.9Xc T g.'Xw.q KX0.>.E.Y.j.-X..-.9 K =.O KXhX#XH.- kXw k `XH.'XK 1 x 1.,.Y [X0Xp.@X> 0...4 S.4X8 S wXn ..p..Xq._._XnXnX8 L {.v.. O 0.W 2.s *.) 2 p v v oXG $ h : aX-.`X-XI.8X1 5.5.`XV.H.H.K.k c.KXJ.$",
+"X*XdXt.r.H F.8.`XV.`.a.`.`.aX-.`X- 3XV.k.K (.5 ` ) 1.- nXH n.O zXn.<.Y.-.0X1.H.HXtX-.8 3X-.8X-X-.`.`X9.u ~.8.H.r.k N N.XXgXkXg l l.6X@.tX&.Q l.U.#Xg l.#Xg.U.U.U.zXk.z.z. ./Xg.I.#.#.U.#. i.#.U.I. .I.#. . . . . i. . . . . . .#. . . .I.U.U.U.I.zXg.z.#XkXg.z.U.zXg N N.X.XXtXgXk.UXg lXk.UXkXg.cXk.c.z.I.z.#.U.c.U.#.U.U l.#.U.# l l.#.U.U.U.#.c.U.U l.c.U.c. .c.U.UXg.U.U.cXkXgXg.cXk.cXg.U l.X.b.b.b.bXz NXz.X eXt NXt.k.uXVX* 3XV.8X-X1 s.xX>X4XnX4..XnXn.@ ^X>.q.9.w.Z B.e `X-X- R.e RXD v vXC 2X= * C.d u.N.s OXGXm.F xXM 3 a a.aX- aX- aX- R a t t R tX, R.Z $ x.M.a.aXD.aX-.e 3.ZX5.l VX< |Xq 1X+ n.@XpXnXLXe.nXa.w.n.' y o.n.w.w.Z 8 BXD RX-XD 3.a.e R.a <.a a.MX1 B.nXLXC.E.s.) UXp h.} UXe U h._.iXqXe.M._Xq._ x x.g xXe.WXn.vXn o.DX5Xd.r.r # $XKXw.T.1Xw.MXD $ mXcXl.} R.9 h., xX1 aXl D TX- R.` `X,.a.e : R 1X,.*.wX+X>.jX>Xp.@ ^Xn ..{ ....xX>.w.wXsXa '.!X5.].GXJ D.2 I 5.|./.R qXtX*XVXt.rXtXtXd.r.H ~ 3.8XI.8.`.HXV B.n ]XP.0XP.0.n '.DXa.' D m g.DXlX-X1 R.O.wXc k D nX5XD R B B 1.Z hXD.aXI B.ZXc 1 TXD aX- aX,X,X5.0.w.Z.D.'XcXy =.GXwXGXwXcX3 x.Z.>XU = = [XBX7 1 UXl.aXD ` c.Z.a :.aXB k.S nXh M.@.; {Xf w S.; SX8.p ..iX7.d U U v .X>.{ wXi 0Xm J v.s ^X= 2.s bX> s.'.jX.XJ ` q.].X I : cX-XI.8.8.8.H FXdXd.rXtXo.r",
+"Xd e.r F F.` F.`.H.`.`.`.`.`.`.8X-.8.8 3.8.u.8XIX,.9.Y.9XcXq x X> pXAXq.YXa RX1XI.8X-.8.`.` F F ~.`.`.`.5X9 ~ ~.r.r.k.oXg.b.U.z./.IX&. .I l.c.U l.#.U l.c.#.U l.U.IXu.t.:.I.#.U.U.c.U.U.I.#.U.c.U.U.U.c.U.c.U.U.U.U.U.c.c.c.c.c.c.c.c.cXg.o.b.oXg.X.bXg.b.b.b.b NXg.^XjXjX*Xt.^Xj.XXg.b.oXgXgXgXgXgXg.o.I.#.U.#.I.U.#.I.I.#.U.U.U.6.U.U.I.I. .I.#.I.I.U. .6. .U d.IXu.t iXuXu.6.#.#.#.I.#.#.I.#.I.Q l.U.z l l l.zXkXo N ).X.5.k.X.5 cXV 3X*.Z.' O ^.. % EXe . ^X> & & & gXG.ZX,.Z $.}X,X, hXD.wXG y H 0 v p p u EXe.s O.sXm n.-Xq 1 .}.} 3.a 3XD 3 a.ZX,.aX, h.ZX,.w.Y.9XK $.Z.9 T : ` ` V kXBX3 V.-.-X7.j.jXrXr.; H.j oXLXm.q & 9XC &.! sXL.n.ZXD R RX,X,.a.aX1XI.a h.a RXDXIXLXLXmXC.@ 0 pXGXnXq v.F v._Xn._Xe._.) E._.F p._X7.F.F U.)XFXb.s.E.wXI F F.H.` 3.}.-.YXG.Y t aX- R.~ B B a a R a.e a BX-.e.eX- R.e a.~.eX-.e.a.e.e.M.MXGXpXp.TX:.T z.y z z.+X6.x.YXL x 8 8X5.D s s.wXwXKXIX5.KXtXt.kXj.rXtXjXt eXtXt.r.r.r.r.H.8 ~ ~X- 5.]X5.u D.D D @.0 sXaXL.! D.' T.] DX.XJ ' $ : :Xl.2 1.2XJXw.,XlXcXI $X-X- R a.a R.a R.e.a RXI.aXD R R B B.D.n.wXP.-XyXyX;.j.O.Y RXI t.w g [.1X<.- V $ h hXl a cXc :XwX.XK.3.3Xh.LXhXZ =.+.4 ;.4 ; wX2Xr.pX+._ U Xe U E._XnXfX+.j s.w.N 'XG oXL 0Xm.nXDXDX,X1.5.5.5Xk.5Xo '.kX*.8X- ~XI.8.8 FXV.rXdXd.XXt",
+" e.H.` F.`.`.` ~.H.8.`.`X-.`X-.8.a.8.8.8.H.r.u.`.9.9XKXp.MX, h.-.<X> ..EX+XK.j 1XK #X*.`.8 F.`.`.`XV.u.8.r ).8.k.k.r.kXt N.X l.(XuX .zXgXg.z l.Q.#Xg.#.U.U.cXk.IX&.6.7 dX .U.U.U.U.U.#.c.I.U.U.U.U.U.U.U.U.U.U.U.#.#.U.U.c.U.c.U.U.cXg.cXg.o.o.b.UXg.o.o.bXgXg.bXg.bXtXt.kXjXtXtXd.^.o.oXg.o.bXg.o.b.oXz.I lXg.U.c.c.cXg.c.c.U.U.c l.c.c lXgXg.U.UXg.c lXg.o l.c.I.c.6 i.#.6.6.#Xk.cXg.cXg.cXg lXg.bXz N _.bXzXz.X.bXo.rX9 ~.uXdXV.H.H 3.`XI 8 s 2 / u C u.w.).vX> y.E.9 vXaXD RX-X,.a aX- aXl U.w bXC O /.) < a t <Xs G.= 2 0X+.YXq $.l a.} aX-.a.e.a R RXD t t a.MX,.Z.[.9XcXcXJXJX5X,.a a.} c # .l.YX+Xp._.s v..XpX> yXmXC b 2.s 0 bXC o vXL.wXsXs R.aXDX- a aX-XD x $ a R B.DXL.E JXb.) *.d u.d.d C u u C u.s p.*.d.d.)._ E ..d uXF...BX6.@X>XG R.H.8.rX9XIXD xX+.F.Y < t aX-X- a t a t.eX-X-X-X-X- a.~.a.eX-X-.e R.~ aX-X-.~.a.*XeXpXp n z.y MX: z z rX>.;.j vXL.wXsXs 8 8.w.w sXUXc.D.u.kXdXdXtXtXj.k.rXtXtXd.rXdXtXt.r ~.` 3.8 ) ).,.$.G m.G.>XKXy.w.n y !Xy.OX.XD 'Xc.3 m.%.9 :Xc RX,XDXl $ c.9.e c R.a R.aXI aXIXD RX1.a.aX- 3 a.~XDXa.w.w.'.2XP @Xy K.G.3.,X,XI $X,Xw.jXHXBXB.-Xe $ $ $X5.a RX, T sXK $XH k k [.T.+ = r w.4.C.{XfXr.< >.-.F xXB x 1XH .XqXw.jXs B.Z B.DXm 9 g 8XI.~.8.`XI B.`.`.~.`.~.~X-.`.8.8 ~.`.8.H F.r.r.r.r.^Xd",
+".H.H.`.`.`.` BXVXIX-X- RXIXI.`.aX-.8 3.rXd.`.u.] D : $.a x cXDX,.9.[Xr z z vXhXh YX3.H.8.8.8.r.8Xt.r.`X9.`.8X*X9Xt.kXo q.X././Xu.z l.U.zXg.QXgXg.#Xk.U.U. .U.t.7 d ZX@.#.U.UXk.#Xk.UXk. .U.UXk.c.U.c.U.U.c.U.#.#.U.c.c.U.c.c.U.c.U.c.U.c.o.b.b.U N.oX9.o.b.b N.bXg.^XjXt.kXtXjXj.b.^.b.b.b.b.b N.o.b.b.6.c l.c l.U.c.c.c.U l l.UXg.U.U.U.U l.cXg l lXg.Q.U l l. .c.U l.c.U.c.c.c.c.c.cXgXg.cXgXg.o.b.o.b.X.b _XdXo.b.kX9XV.u.rXtXt.8XI.`.a.Z.n 2 8 * <.MXq.) O & o vXLXl.Z R t RXD a.M < `.ZXDXGXG.qXC vXL.N h h.M t.WXs.=.s bX+X+Xq $ x.aX- aX- R R.9X,.' h T.Z.M.M.- sXc.Y xX,XD.a.a a.} # .lX7X7.p n v.W pXeXeXqXLX+ H 0.v /.v o 2 0XCXCXG OXa xXLXD.aX- RX1 R.e.}.M a R R.DXa o o / /.).sXF.).).dXFXF.d.)XF . ....d.<.< WXA >X4 .Xb.J.xX2.<.x .ZXI ~.k.8 cXD.-XGXp.W R.*.e RX- t R.*.a.eX- aX-.aX- a.eX- a aX-.eX-.~.e a $ 1X, sXw M.pXrX+ = MXhXr.yX>X> HXwXGXa.n.* 8 8 8.Z s 'XUXdXV.HXtXt.r e.r eXtXjXt eXd.rXdXtXt.r.r.8 ~.8XI.`XJXJXJXK s.nXGXG.! @ T.GXU.0.Z 8X1XDXD :XJ.-X.XK.,.wXJ a.a a RXDX, RXIX-.a.a 1 $XD 3XDX- aXIXD R 8X5.n gXJX5.]XJ.]XlXl : : D DXJ DXHXH.1X7.- V.} $XD.ZX,.~.ZX-X,XD R.M 1.l.- k.[ n MX8 wX8.4XfX8 r r .X4 W.-XpX7XhXhX<X<XhX.XKXJ.] DXwX.XhX.XUXc.`X-X-.`.8.`.~.` BX1XI.`.8.8 3 F.8 ~.8.8.rXtXj eXdXo",
+".H.`.`.`XIX1 RX, a tXD 3X,X,XD hXI.8.8.`.rXt.k.K 3.u 3 x `X5.H.H $.'X5XhXhXp z =X+.OXh R 3XI.r.8 ~ ~.k.r.`XVXV.`XV.KXt.8XkXk.R.X./Xx.U lXg.IXgXu.6.z.z.cX&.(X .UX q.UXgXk.U lXk.c.UXk.#. .UXkXg.U.U.U.U.U.U.U.U.U.U.c.c.c.U.U.c.c.c l.cXkXg.o.b.z.b.o.o.X.oXg.b.o NXjXt.r eXt.^.rXk.o.b.o.o.o.b.o.X.o.b.IXg.#.c.c.c.c.U.UXg.c.c.c l.U lXgXg l.U l.U.#Xg lXg l l. .U lXg.U.cXg.U.c.c.c.c.U l.c l.o.o.b.b.b.b.b.XX@.zXoXtXo.z.5.u.r.X.8.`XI.a s.W /.N 8 t U.W.= O & &.>XG y.n.w $ TX,.a R R $ 1.2 & ! = = &XC.YXq 1 ` a.W.wXs G.=.sXp.-Xq.i x 3.} a.aX- x :.9Xc 1.9 U.Z x x $X, R U 3X- aX,.l #XB >X%XB.F.Y.j.j.-.[Xw [X%X0.@ ^X= 2Xi J.. J.s J H yXG.w s.9Xl B R BX- R tX- aX-.~XaXa 9 w.BXbX=XF.).)XFX=XFX=XvXFX=.J .XfX=X2X2.J L L.P.B %Xf.{.{.JX4.x.-.ZXI ~.8 R R.Y.YXp x U.a c R.e.e.*X-.e RX- a.e.e.e.a aX-X-.e aX-.~ aXI.~ #.,X.XcX+XHXwXH.1 [.j.T MXhXp.@X> & y v.w R R.} B.Z.w '.2.`XVXdXtXdXtXjX*XtXt eXt e.r eXtXtXtXt.r.r.8.r.8XIX-.Z gXP.9.n = g.G.O ' DXOXlXD RX1 R.aX-X- RX5.'XcXJ.9.e R RX-.}.u R.aXDXDX- DXJ $ x :Xc c : T 8.Z.wXP TX1 RX-.`X-XIX-XI cXVX5.0XlXJ K.SX%.- [.[ :., T cXK.ZXwXK sXJ x `., $XS [XH z.4.{.C ;.JX:.h.T.y.+.h.y.1 zXp [.F.g XDX9 :.5.0.DXKXc x 1 :.`.`.8X-.~XI.`.`X1.`.`X- 3.8.8.8.H.8XV.8.r.r.r.rXt.b",
+"XV.8X- 3.`X,X- $ x x vXGXn vXnXK.ZXI.8X*.rXt.k.rX*X*XIX9 ).`Xt.r.H.kX5 cXl.Y.p.x .Xn.xX+X,XI cXtX*.rXt.rX*X*.rXIX*.K 3 ).K.8.r.k lXg.z.z.U.IX&X& d.#.I.:.6.t.f l l.zX ./.UXkXg.#.U. .U d./Xk.#.U.U.c.U.U.U.c.c.U.U.c.U.c.U.c.U.c.U.c.c.c.cXg.o.bXk.b.XXz.b.b.b.bXg.bXg.I.$ NXt.rXj./.bXg N.b.b.b.X.o.o.o.IXg iXg.U.U.V.c.c.U.I.6 d.6XgXg.#XkXgXk.U.c d.(Xu lXg l.Q l l.U.U lXg.c.c.cXk.c l.c.cXg.b.b _.b.b.b.b.XXk.I.|.& ) I.$ ] ( 5.]XJXB x ..sXs.N C C E.)X=.vXm.'Xm.n.9XK.9 $Xc x R a t R RX, v v.q oXaXa 8 8.a.e.a tXe.M.)XsXe.).Y y xXq x.}.a a.a.M.a a <.a.a R.wXq $ $ UXI h B.} xXM x Xc.gX+XeXeXe.iXD.WXDX,.WXe.. p.C.s *.) G ^.@X=X> O.@ HXm o g o.Z 8X- BXD.e <.a.~X-.DXL 9XC 0X6X6X6...@Xi ^XiX6 0XiXi ^X6X6.J.;.C.4 ;.{ w {X8X8X:.{.<X%.< = & 3 3 ~ 3XIX+ Xp._ $., mXl : 1.9 $ 1.~X-X- a RX- a.e a R.e.a.e a.~ aX- 3 x.aX,X,X, hXI.M h.Z xXqXnX+Xn.E & 9XL.w $ R R.a.wX5.!.0 BXo eXtXt.rXt.r.rXtXtXtXdXt e.rXtXtXtXdXt.r.r.H.HXV 3.D @ @X; 4Xy.9 T.'.ZXUX5 m.u hXIX-X, cX, 3X-.e 3.a.aX-.aX, 3XDX-.aX- hXcXK :.,XcXJ D ` `X,X-.w.w gX1.H R.`XI.` RX1.a.u.`.~.`X1X-.[ k [XB.L K $ m cXK YX5XJX. sXH.YX.Xh.- 6XH [.1.; L L.PXfX2X8.y.y.y M.+ z.jXqXpXq.Y <.aX-.`XIX1X1XDXJ sXVXI.`X1.`XI.8.~.~X-.`.~X-.8 3.8 ~.8.H.H.8XV.K.^Xo.^Xo l",
+"XJXX qXM.- 1.YXwXn v.W.)X=.W 2XG.n.kXV.rXt.b.X.X N.K.r.`.` F.` F FXdXtXoX1X- uXp.. %X6Xn.@ xXD 3.rX*XtX*Xj.8 3.u.u.8.8.8XV.r ~.k N.bXg./X X X .I A d./.(.A./Xk.zX@ PX&X l l.IXk.6.f.UX d.#.UXk.U.UXk.U.U.U.U.U.U.c.c.U.c.c.c.U.c.U.c.c.o.b.X.o.U.b.IXuX .I.X.b.b.oXk.z.X.r.X.I.zX N.o.oXg.b.o.^Xg.U l d.QX&.cXg.U.U.c.U l.#.#.U.7 d lXk.c.#.c.b.z.b.b ZX .oXg.I l.# lXg.U.c.U.c l.c.U l l.o.o.b.b.b.b.X.b.b.b.R.zX@ 5.X (.5 (.5.K.KXl 1 y.s / / /.W.N...).= OXCXG.n 8 8 8.e.a aX, < R `.9XD R.n v.! 9.=.N.M R t R a B t t t.d.NX0 2XpX+ $ x 3 tX- aX- t.a tXDXD.9 $ g x.Y.a.a.} xXMXM .-XB.p._ E E.M 8X- <X- x.[ u.W pX6 %XFXF G u * oXC.v o bXmX0 =.OXyXa.D 8 a.aX5 `X1 BXD.w 9 HX>X>.CX>.4.L.4.C.@X> w.@.4.4.4X>X8X2.CX>.C.4X8XfX8X>.J.<Xq.m.CXp [X,.H.8.8X,Xc.YXpX% U.9X5 TXlXl 1Xl T.~X- t.~ a.e aX- a.~ aX-X- aX-.eX- a 3 a t t a.e.aX-X- a < <._XnXp HXC s vXD $.% $XDX5.nXOXdX1.k ~XtXtXtXtXtXt.k eXt eXtXtXt.rXt e.rXdXt.r ~ ) ) T ]Xy 4Xy.n.nXl g '.ZX. 4Xw ' DXJXKX.XJXK.~.a R t R aX-.9XJXcXK hXDX, 3XlX, h.Z c $ hX- R.e.D '.0 mX. R 3.K.5.8.HXV ).D.`X1.8X-XI 3 k V k k.,., ` ' $ $.'XlX, $ 1 $ `., kXc nX#X0Xf.PXiX6X6.@X4X6X>Xi.@X8.C.p..._.p.Y.a.8X-.`.`X1 8.MXG 1.Z.'.].HX5 5.u.KXo.K.u 3X*.KX*.kX*.rXd.u.k.KXo.k.^.^Xj N",
+"X3.K #XXX3 n n o vXF.).s 2 2.NX0 T.X.5 ).R.R q./.$XgX*XjXt ~ ~.r.rXt.k (.$ $ R Xq v %.s .XpXpXl 3XVX*X* ~X9.$Xt.k cX*.K 3 ~.u.k.XXtX X .t.Q A Q Q X.A.zXk././.7 Q.7 AXk q./ d.( iXu i./. .U.c.U.UXk.U.c.U.U.c.U.U.U.c.U.U.U.U.c.c.U.o _.b.o.bXgXx A.(.XXk jXg.X.bXg.k.b./.R.(Xo.zX .b.b.b.o.o.X.o./Xk.:.tX X&Xg.U.U.c.U.c.c.c l l.I jXg.QXg.z.c.o.b.o.b.X.: AXx.t Z.6.z l.cXg l.c.c.c lXgXg.o.b.o _.b _.b.b.o N.b N.^.k N.r.uXV ~ 3X1X-.w v.= 2.= 2.=.) 0Xv /.vXC 'XLXD R RX- R RXD R R m.aXD R.wXLXm o 2Xs 8 t R tX-X- R t R.MXK MXeXe v.pXp.i x 3 < a.eX-X-.aX, cXlX, =X. s.M h.l.l.FX7.[Xp._XqXGX, <X- a R R.*XwXc a.N pXn %X=.) t.N t.MXe y o O b.E.T.G HXLXL.Z.D BXIX1.~ B.DXa 9 H.EX> W ..y.+.jXn . ^XnX4X4Xp .XpXrXnXn MXr.@.x S.;.xXp.Y.MXpXpXpX2.9.` ~.8XI `XSXp.j t.aXI.eX1.eX1.e.eX-X-X- a.~ aX-X-X- a R a a aX- a a tX, a R.e.aX-X- a a R a.MXpX4.Y.q o.w.n.MXy 1.ZXlX5.0 (X1 FXdXt.rXtXt eXtXtXtXt.r.kXjXt eXt.k.r.rXtXt.rXtXd Q : (XI.Z g (.0 g (X1X1.] @X..w : $XD :XDX5X-.e R.~.eX- R a.e.,.GXl.%XwXcXHXc mXcXl.aX- $ 3.D.Z.n.'Xy.] T )XJ.$ T.% ) f.5.H.8X1.`.`XI 3 | 5.,XX k.,X#.Z :.9 :X. hX.XlXS., |.[.O =.O HXi..XnXp.Y v.T.x.P ;X8X8X2.x >XwXcX, c.HXV.uX,X,.n.Y &.>XwXcX. D m D DX3 D.8 ~ ~.8.8.8.8.8 F.8.uX*.r.rXt.r.kXt",
+"X1.a.a a RXq b /.).) *XG ^.N v.'XD ) q f q.A.$X .f q.b.^ N.^.^.k NXt N IXX.KXM X+Xn.<XiXbXi ..<XDXD.r 3 ~X9.K.8X*.`X*X* ~.rXdXoXo.k q.R.z.7 X Q f.IXk q./ fX Q.I.R.IX@.t./.(Xu.z.z.U. .UXk.#.UXk.zXk.#Xk.U.c.c.c.U.U.c.c.UXk.c.U.cXg.o.b.o.XXkXg j.zXg.o jXgX9.b.b.k.kXjX$ N.^ N.I.bXg.b.b.b.oX9 N N.:.Q.R.I l.cXk.c.c.U.U.U l.z.t.:.z l.c l.c.b.b.o.X.X.tX$.z.z A.XXkXg l.U.c.c.c.cXg.o _.b.b _Xz.b _.b.b.b.b.b N.k.k N.rXtXt.u.8.HX-.n s J 0 J ^Xn ^ 0 0 0 b.q s.w s.e R aX- RXD.a R.wXc.eX1.WXL.E 9 2.N.N t t a.eX- BX- R.aXU.j v.) pXn.<X+ x 1 $X- a.aX-XD.a 1.Z s TXwXe h .l .[XB.F._ p E x R R R R a a.9 $Xw aXD pXn .X=X=.N u.M R C.n v v HXC.+.O = o.nXLXaXsXD.eX1X1 8.n s HX>X4X+X4.gXr.xXqXGXqXnXq v.j 1.pXGXpXqXrX+ [.j.jXr.pXG.- R.' vXp.x.j $ F.8 ~X,.[Xr zXn.wXc ' :.Z : :.e RX-.~ RX-X-X-.e.e a.~X-.~X- aX-X- aX,.e aX- a.e RX, c h t._XnXp.j H.n.nXs R a sXl.n.0 gXaX1.`X5XtXtXtXtXtXtXtXtXtXj.rXt.rXt.r eXtXjXt e.kXt.r.k.r.`.HXV.` '.2X5XD.`.`.Z.].wXD.e.a aX- BX-X-.~X- R RX- a R a $Xl xXl :XcXc R $.Z.MX-X-X-X-XD.'.0 4Xy.].H.k cX*.u.u.u.`.k.uX-.8 3.`.8.8X*XX.,.,.% k.3 1XK V T.- x.3XH.3.SXh.3 = =.>.T.; & &X+Xp.E.<X6.P.P ;X8 ;.< >XMXIX-.~X-.` B R x v.. 0 v v.ZXDXIX1.`.`XV.8.8.8.8.8.8 ~ ~.rXVXt.rXt.r.kXtXt.rXt",
+"X1X1XI.a.M x O.) C t.).< / v.nXX.8.8.r.kX9 N N.b N.o.KX9X9 NXt.^X*.rXM.kX*.K., # h.i v.@...s.CXpX+.9X, 3.r.8.r.r.a.r 3Xt.u.kXt N.X (.z A ZX@.t AXx l./Xu.7.tX@Xx l.t.( dX X .z.z.UXkXk.z.I.U.c.z.z.zXk.6.U.U.c.U.U.U.U.U.c.U.c.c.c.UXgXg.b.o.bXkXg.:X9.X.z.7Xg.o.X.bXtXt.kX$Xd N.XXz.b.b.b.b.oXg NXg.z jX X .U l.U.c.U.cXg.c.c.c.6.&.: i.U lXg.o.o.b.^.o.z.R ( jX@Xk.bXgXg l l.cXgXg.o.o.b.b.b.b.bXz.b.b.b.b.X.b NXjXjXtXoXtXt.u.8.8X-XIXK gXCXP.q H & yXC yXCXCXP.n s.Z a a a R.a.a R.ZXcXD.a t.ZXa o o.s.N.d t t RX- RX-X- R.a h.M.W.N.)XeXnXp .i c.} a a.aXDX,Xl.M x $ x h `XBXBX7X7.FXe.m.W UX, a.e.aX- t aXD.eXD t.* E...@.sX=.N.* t.M tXDXL v y o.. y 0XC.q 9.n.w.nX, R.*.MXaXG.q oXq C.d.M.M <.M.M.M t.M < h.M 1.M.M.M.M.W.W._Xq._XL.M.* RXD UXpXp.j `XI.8XIXDXJXHXh.1.1.-XwXK.%Xc D 3XDX-.aX- aX- BX1X-.~ R.eX- a a a a.~X, a.a.eXIX-XD.a x.9.M.9XnX>Xr.!.w.w.*Xl $.n.w T g DXV F.8.kXdXtXtXtXt.rXtXtXtXt eXtXt.kXt.r.kXt.rXtXt.r.k.kXt.u F.8XVXIXI BX-XI.~XD g s RX- aX- B.~.e.~ a.e.e.e.e.~ R aX-X, 3 RXDXDX,X,XD RX1X,.MXDXI '.0 ' TXy.DX5.u.uX5.KX5Xo.KX5.5.k.u.kX*.uXt 3X9.$ k | `.-XMXD hXI a.aXKXc k kX.XUX0.!.>X0 w w.. y._ *Xn %.P.CX8X2.<.F.p h a.8X1.`.`.~.aXG v 2 v v.9 RX1X1.` 3XV.8 ~.`.8.8 ~.r.r.rXtXtXtXt.rXj ~Xt e.kXj",
+"Xd.D 3 cXG 9 oXL E E.xXG.vXK.}X*X* NXk.XXkX9XkX9.f qXkXkX9Xo.KX5X*.rX9Xt.K 5 ).8.a.MXGXnXb.. % . v.9XK 3 3Xt 3.rXVXI.HXI.rX*.r.& ].R.t.7.t X.I.I ZX&.7 X.&.U.z X.t A.7Xu qXg.z.UXk.zXk.IXk.I q.I./.I.U.&.I.UXk.U.c.c.c.c.U.U.c.U.c.U.U.c.o.b.b.U.XX Z.U Z q N N.XXj.k.r N 7 ).X.R.o.X.o.b.b.o NXg N.z.:.z.z d l.U.cXg.U.U.c.U.z.t.IX&X XgXgXg.b.b _.o.X l lXo.t.:Xg.o.X.o.o.oXg.o _.o.b.o.b.X.b _Xz.b.b.b.b.bXz.kXtXtXd N.uXt.r ~.H.`X1 T.!.! 0XG J.nXn.wXGXa bXL '.Z RXD.e R a RX, R.* aX- R R.WXa 9 o 2.N.N t t a aX- B B a t t a C u.N.sXsXn y.Y.F # $.} <XDXD x.a.}.} #.l XBXr.- vXeXe U u C h t.~ RX- a R aXI B R 8 E.)X4XiXb.W vXe 1XD 8.WXe x v.w H 9 0 vXCXC 9XaXaXLXD.DXL b y.E J t < aX- a R aX- tX- aXD $ 3X- R.e $.9XD.Y.W v.YXD 1XI.'.dXnXp [.Z.8.HXIXI.K n.-XwX+XpX,.}X,.`.aX,.eX-XIX,XIX-.~.eX-X-X- aX-X-.~X-X-X- R R 3 $Xc tX3 1 s xXqXnXp.x H vXLXDXDXwXw.' 'XU.0.0.k.`.8Xt.^.rXt.r eXt.r e.r.r.rXt.r.r.rXt.rXjXjXtXtXt.r.kXt.r.u.8.u.`X1XI.H.8XVX,.2 TXlX,X,.aX,X,X,XD.u h 3 3 hX, 3 c.,.,.]XK.ZX5 :X,Xc T xXl TXl.'X..2 !XJ.Z.HXIXV.H.`XI.H.~ F.8.u.`.H.`.8.8.8 ~X-.8 #XJ ` `XM 3.a.}.a.aXc.[X.XwX..>XK b & =X0X0 HXr.s.m GXAXA.C.{XA.J.{X2 # R.`.`X-.`XI < v.sXb.s b x BXIX-XIXI.` 3.r 3 ~ ~.r.r.r.rXtXt.rXd.rXtXt eXtXj.X",
+"X-.`.`.M vXL vXs tXp.s.) 0 v.}X*Xt.XXgX9XgXkXkXg.f.$ } I.A.%X# IXX.|X9X5Xt.5.k :.0XJXwXUXr.j.p nXr g.Y.K 3XVX* 3XV.u.Z c.ZXdXx ,.X.f ,.7.&.z.I.I Z fX d.I.(X XuXu.z.U l l.QXg.zXk.UXg.f.zXkX q././Xk.IXg.c.#.c.c.U.U.U.UXk.UXk.U.c.c.c.c.o N l.o.b l q.bXzXg.b NXjXj.kXt.k ).IXg.b.b.o.o.o.bXg N.z.7.: i.7. .zXg.c.U.U.c.UXu.7 i.U.(.:. .z l _.X _.X.z.7.t.zXxX .^Xg.b.b.o.b _.b _.b.b.b.b.b.b.X.b.b.b.X.b.b.kXj eXt.kXoXt.u ~.8.H.`X1.H.' g.nXmXL xXa.w.w s.wXaXy sX5X, c.a R.aXI R R R B.a t.DXLXGXm O.N.N C tX- RX- RX-X- t R <.*.* C 2.N 2 v.EXBXM.l #.} < <X,.a h h .l X%XcXqXeXe.W < u.* h R.aX- RX- t t a R a a U pX6.@ 2.)X+.Y.> nXH n.jXe._.W.>.= 9XC v JXCXm bXeXLXLXe b H.E s 1 t.a aX-X-.~.e.` B.~ 3.KX1X-X1.~.uX, <X,.M.M.M.MXDX-XD.dXqX4XwXlXIX1XI.uX1.0.,.YXpX4Xn t R.a R 3.e a a.e R 3 3X, RX-.~X-X-.e R.eX-.eXI.ZX..e.[.9 sXq.wXnXp.EX> WX> s.w.D R RXc.w.0 g 8.H 3X*.K.5.XXo N N N N.X.XXo.XX9 N.X.X.X.X.5 NX9 N NXx N.K N.5Xt.u.kXI 3.H 3.8 3.DXJ 'Xl $.a cXIX-.~X-.e.e RX-.e.~X-.e R D 1 `Xc.,XcXK DXJ xX.Xw.'Xw !X;X; 'X5XV D.u.5X9XoXo )XoX5.$XV.8.H.8 ~.8 ~.8.8.5 I DXXX3 #.a.}X-.}XKXKXHXw yXUXm s.qX> w & SX0X6.sXFXf...JX8.{XA +.y x.aX-.`.`.~.` t v..X= 0X+.w.9X5 ( ) q D ).f.r.8.rX*.r.rXt.r.r e.r NXg N.r eXj.b",
+".`X-.a h b.s.s u UXn.)..XG x.`.8.^ N.b.b.b N N.5.kX9Xx.KXlX5 c cX*.K.X ~.r.r.^.&XxX5.wXDXeX, x x hXDX,.ZXV V I.,XMXl.-XK.%XJ : T.$ } Q.t.AX&.:.tX& XX .7.7X .(X&Xu.6X .( Z./.6.6.fXu./ Z.f./X ././.I.I.I.I.I. .I.U.U.z.#.z.U.U.U.U.U.U.UXkXg.o.QXgX9.oXgXkXg.X.b.b.k.^.r.k.k.^Xj NXg.bXg.b.b.b.b.oXg.bXkXk l.o.c.c.cXg.c.c.c l lXkXg.z.#Xg.oXg.b.b _.b.o.b.X.^XgXk N.b.bXz.b.oXz.b.b.bXz.b.^.b.b.bXz N.b.b.^.k eXt.r.r.k.k.r.r.r.H.`.8.` BXI.!.0 sXa RXD.MX1 8XD T.n 1 :.,Xl aX- R R R a B.M R RX,XaXGXC.sXv.N.* t aX- a B.e aX- a a t t.* 8Xs.N.)._X+XB.FXM # h.a <X,.i.l XB.[Xc._.WXe U 8 t t <XD B.e B B R a R a a t.* U E pXfX6 2 vXL ' xXG.9.wXe $ UXsXsXG.) J J OXC.q o.s v.E J.q.E v.M a.~.eX-.~.~X- R.~X-X1X-.K.eX-X1 R R RXD.M <.M.aX1 R 3 tXG.x [.9.u.uXlXxXxXIXJ.[.jX+.pXp U.a #.a 3X,XIX,XDXIXDXI 3XI 3XIXD cXDXD.ZXD h $Xw.9.wXl._.9.jX> y.jX0 H o s.w $X.X,.nX5XP.0.HXV ~.rX*Xd.X.rXtXtXtXtXtXtXtXtXt.rXtXtXVXt.rXt.rXt.r.rXt.r.H.r ~.H.u.`.`X1X-.`.~.HXU 1.GX,XK :XK `.] 1 5 hX- RX1 a RX-XIXDXl.a.aXI.a RX, a RXD $ 8.0.w.2.2 5X9.% q.$ ] 5 Q.A.R.$ 5 )XI.H.8.8 ~.8.8.r.`XI 5X# |.,Xc.}XD c h.,X# K.>XwXw 9XDXm yXG HX0 SXn %XnXi . w.T.T.{ rX% aX1.`.`X- B.aXG.s.v.. y s.5XX ).5 )XxXX.5X*.rXtXtXtXt e.rXtXtXjXg.IXj e e.b.^",
+" 3.a.}._XL...=.WXp *.).).9.w.r e.^Xg N.X NXgXo.kXdX9.5Xl )X3X*.5.rX*Xt ~.^.^.^Xx N.KX9.KXM.5Xl ` : cX5XV.uX5X3 I.,XH.Y nX>.j.9Xh.0 5 ).$X .7.(.t./.& PX ZX@./ i.& d.7X&.6 d.z lX@.&./ d.I qXk.z.UXk l.U.I.U.U.#.U.#.#.#.#.U.z.#.#.#.U.U.U.cXk.IXgXk.UXkXgXk.cXk q./.XXx N N N.XXk.U l.U.U.#Xk.IXk./.6X@.6.I.6. .I. . .I./.6.6. ./. . .I./. .I.U l.z l.z.z l.z.I l.UXk.UXk l.z l l l lXk l lXk lXkXg lXkXg.X.bXo NXo N.X.XXoXo.K.rXt ~XVX,XD ' ! 'XlXDXD.ZX1X1XD RXs.aXD.a.}XI.M.}XDXDXDXD R RXD.W.n 9 & b.WXe.M.M.MX1XIXIXDXD.M.M.a.MXI RXDXs.WXL 0X4.p kX+.F `.i ` n W [.9Xq x.w U.M.}XDX,XeXDX, 3XIX,XDXD 3XDXI h h.. .X>.4Xn vXG s.' '.9.9.YXG x sXDXL.w M b.@ 9.E &X0X0X0.;X0 y yXDX,X,X,XDX,XDX,XDXDXI c 3 :XI 3XDXJXl 3XDXl $.9XcXDXV ' xXp nX%Xw 3 3.k.XXVXVXl x.YX+XpXn h.M c RX-.eX-.~ RX- aX-X-XD.e.a.e tXD UXJ.M h.M h._XnXGX4 J.YX> & yXGXL.0 s.,.2 $.Z.nXP 'X1.`.8 ~.k.r.X.rXt eXtXtXdXtXtXtXt.5X*Xt.rXt.k.k ~XdXd.rXoX@.z.RXV.8.kX1X1.K c.8XVXD.2 g.OXcX.XKXM DXKXJ : 3 R.e.~X-X1.a a.`X5X-X1XI RXI RXI R 8.M s x gXIX5 3.r.uXtXV.r.r.X N.K ~.8XV.kXt.k F.8 F.r.H.k ~.$ }X.XHX#.% kXc.-XJ K K.O @ !XUXD.wXK J =.xX8.@..Xi.v w S.y.4.4.{ LX2 h RX-.`.`.` R x oXe ^ T.*XI.8X*.8XtXt ~.r.rX*.rXt.r e.rXt e.r.^Xz.^.^ e e.k.b",
+".u c s ..)X4 vXp.).s.)XL.9X1.HXo.b.b N.b.b.k.rXtXt.k q.KXkXXX9X*.r.X.^.X.o.bXg.^Xg P./XoXtX*X* I.|.K Y.k D I )X#.SXh.T & . OXn.j.3.5 N }.(.f./ qX@ f.7 Q./ lXk l Z.(.6.I.I.IX&X .#.6.U./ l l.U.U.z.z.UXk.U.U.c.U.c.c.c.cXk.c.c.U.c.c.cXg.o.b.b.U.o.o.b.b.o NXg eXt.^./.kX*.kXt.r.b N.o.b N.b.b.b.b.XXg. Xg.cXk.cXk.c.c.c.c.c.cXk.c.cXk.UXgXg l.b _ _.X.bXg.X.b.zX9Xg.o.bXg.o.b.o.o.o.o.oXg.X.b.X.b.X.X.b.^Xd.kXd.^Xd.k.5Xo.k.kX*Xt.r.u.8.HX1.' g.n.nX1 $XVXDXIX1 8XD.aXDXD.a.aXIX1.Z.MX1.M.a.MXDXDXLXG.q 0.= 2 C <.a.a R RX1 RX- <.aX- R RXD 8XL.s.).)...<.[XBXM XB XB.pXw.Y._XeXe U.a <.a.a.M t.Z RXl R 3 a R.aX-.aX- t.M E.m.@Xi.)XeXsXD.W UXa.M xXe x 1 $ t C u.WXm.NX> O.@.;.@.@XGXGXG $ a.e.e.e.*X-.* a a aXD R.u a.* RXJ :Xc DXc.Z h D.]XJXcXJ.1 z WX#XD.H.8.H.r.8XV.Z.M.pX4XnXq.M h.~X-X-X-X-X-.~.~ RX,XJX,.w hXc.9.eXeX+.FXpXpXpXpXnX4Xp.jXrXrXG.nXa.'XD.*.9 'X1.nXa ' DX-.8 ~XVXt.rXo.rXtXtXtXtXtXtXt N ) PXk ) ) q.$ ( )XxXx (.XX$ Y Q D.R.2 Q.| ).%Xo.%Xx.2XU.'XD R.~XDX,X- RXI hXD.u 3 3X,XI.u RXl 3X-.eX1 R.aXD.a R x.n T mX1XI.rX*XtXtXd.k N.$.XX*.k q F.k ).u.r ~.rXd.r.rXV.H.k.,.-.,XK.}XDXXXX [X..OXGX;X,XD.w.jXU zX0 MXi w ^ z = & = w L.{.CX+XBXqXl.`X-.`X-X-Xe s s.WXI.8 ~ ~X* ~ ~X* ~ ~ ~XtXtXtXtXtXt e e e.^ N e eXt.bXj",
+" <XpXeX=.).. ..) /.sXpXG $.8.rXz.o N.b.^ N e.rXtXtX*.rXt.kX*X*X*.^.UXgXk.o N N N N.5.k.K 5Xo.kX@ 5 5.& (.5 5.K 6X7.hXpX6Xi..Xi & yXc } 5X3 N |.( Q Q.$Xk.5.A )XxXkXg.z.&.(.IXu.I.z.U.Q.Q l.U l.U.UXg.Q.U.c.U l.c.o.o.V.o.V.U.c.cXk.U.o.b.o.b.o l.bXz.oXg N.o.bXjXtXtXtXjXjXtXj.k.b.b.o.b.o.o.X.o.bXg.o.I.c.c.U.c.U.c l.U.UXk.c.U.cXk.c.c.U.c.o.b.b.b.b.o N _.b.U.b.b N.b.b.b.b.b.b.b N.b.X.b.X.b.X.^.^Xt e.rXtXt.rXt.u.k.k.rXd.uXt.8 ~.8X1.`XK.0.w.w.D.e RXI B R R RX1X1X-X-XD R.aXD RX1 R R R R R.nXLXC 0.N.) t t a R.e aX-.* a a t a a.~XIX,.* u *.)X=..Xr 1Xq kX+.-XpXnXe.W.} < t.a RX-XD tX,X1XJ.5 TXJ 1 :.MX-.a <.M E.sXfXi.)Xe U.9XK ' y y nXK.9XK xX- t C C CXG.E 2.v ^.xX4 .XGXq.Z R.a xXI t.* a t.eXD.M.a h.e a RX,X- :.5Xl 3XD.ZXI 3 c.M xXp.YXw.M.8.8 F.r ~.H cX- $.pXpX4 UX,X- RX-.`.~X-X-.e R.uXH.a.[ $.YXqXqXqX4 ..<.J.<.<.x.xX2XrX> v.n.w.n.nXOX5 BXaXaX5.0 (XP.H.8 ~.rXt.rXo.r e.r.rXt.rXtXt.5Xk f.f }.&.|.f f P.R 5Xx.X ].R I 5 QXJ 5 ).] 5.5.| : '.0XKXl 1 '.a.e R R BX- a aX-X-X-.~X- 3XD cXI R R RX1X1XDXs.9.' g.]X1.rXVXt.k.r.rXt.X.z.X.^X9 )X*.5Xx ~Xt.rXt.rXtXt.r.rXI #., `Xc.}X-.} ` [.%X.XhXy.jXw., @X;.GXZ.T.O.L =Xh.OXC.E =.@X6.4 ;X2X# X1.`.`.`X-X1X- tX,.H.8 ~.8 ~.8.8.8.8.8.r.rXtXt.r e.r.rXjXj.bXg.b.r eXzXt",
+"XLXn.sXvXF..XFX=.v 0XGXBXI ~.r.X.^.X.b.bXjXtXjXj.rXj NXkX9XgX9.bX9.IX9.o.k.k F 3.H 3XV I.k.HXoXdX*.r.K.K ~ NXMXJXh.1Xp..Xb 0 SXh.O.OX..K.kXt.X 5X5.K.AX9.A.$Xd.5 N q.A.&X@.I.z.z. .#.U.Q.U.c.# l.#.U.c.U.U.c.#.c.b _.o _.o.o.U.#.o.b.b.b.b.b.oXg.o.b.b.b.b.b.bXj.^.kXjXt.rX* N.o.X _.b.b.o.b.o.b.bXg.b.I.cXk.c.c.U.c l l.U.c.UXk.c.UXk.c.UXg.o.b.b _.b.b.b.X.bXk N.b.b.b.b.o.b.b.b.b.b.b.b.X.b N.^.kXdXdXt.rXt.rXd.rXt.^X5.rX*XtX*.r 3.8.8X1 T.'.DX.XlX..e m.* DXl c kXK hXc `.,X,XHX. x $.2 a.>X1Xa.wXC 0.=.N C a R.eX- R.e a t a.e R.e.~X- 3.e C.* *.) 0.j.p.Y.p.[X7Xp._Xe v h U a.a R a.a.a.a 8X, RX1.Z.~X,X,X,Xl.e a R U E...CX=.s.).M.9Xw sXK.YXK x hXD.aX- t a < R uXs / /Xi.CXf.F E < t.*X,X,.YXlXK $ :.9 1XcXl.9 a R RX- 3.u.~XVXI t aX-X-.~ R.MXp.< [XD.8 F ~.r.u.rXt R RXBX+Xp v UX1.~X- RX-X- R aX- UX,.a U 1.FX4Xn.F.J.<X2.p.pX+X+ .X4 HXqXLXa.D.DXd.D.].*X5X5.0XP 'Xo.`.8 ~.rXt.r NXtXt.r eXt.rXt.rXt.k NXt.kXt.kXtXt.k.k NXV.rXdXdXV.rX5Xd c.8.~.`.`.~.~.~ gXO.O gX. : ' D TXJ 3.aX-.`XI.~X-X- aX1 3.Z RX1 RXIX1XDXl.0XKXy.Z.DXVXkX*XdXxXx.bXo.^.K.kX9.z.kXx.KX9XxXdXd.r eXt.r.r.r.8 VX3 :XMX-.} `., [.2 nXw.'Xl.n.] !.q.>.+.+X0.+ @ = 9 b H.;.C ; r.{XrXp.aX-.8.~.`.~X1X1.HXV.8.` ~.8 F.8 ~ ~.r.rXt.rXt.k.r eXd e.^.I./ l.r e.kXt",
+" ^.v 2 2X6XnXbX= 0 JXc x.`Xt.^ N.oXoXtXt.r eXjXtXjX9Xk N.z.f q.z.A./ qXx ).u D.0XUX5X5XD.8 ).R.r.H q.$ qX3X9XM IXZ KXp o oXG.j.O !Xc :.8 3.k.5XoXo ( T.A :.uXx.0.zXx.f.X.XXkXg l.z.Q.#. .U.c.#.c.U l.U.#.U l.U.c.b.c.oXz.c.U l.b.o.b.bXgXz.oXgXg.b.b.o.b.b.b.bXj eXtXtXj.k N.b.b.o.b.b _.b.o.b.o.b.b.o.IXg.c.c.c.c l.c l.c l.cXk.c.U.c.cXkXg.b.b.b.b.b.o.b.b.b.UXz.b.b.o.b.b.b _.b.b.b.b N.^.^.^XtXjXtXtXt.rXt.rXtXVXd.k.k.r.uXtXtXt.8XV.8.`Xl gX5XyX..2 xX.X5Xc T x mXJ $ :.Z 1X,.% :.-XlXJ h.2 1.w.sXC 0.= *.M.* < aX-X-.e R.* a R.eX-X- R 3 a a t C.) v.@.EXp.YX+Xp.W.i.W 1.a.M < R <X-.aXI.a.aX, R B.~ R R R R aXI a R U E.s ^.B 2Xs <.}XD.} RXD.M t RXD R R B RX- a R C.)X=XiXf.JX4 U t.}X- RXMXDXlX, $Xc c.u : #.u.e R.eX- $X-.~ 3 3.e RX-X-.~.a t xXp.Y U 3.8.8.8XxXx.K.`X-.'X+XnXpXe RXD R R RX-.aX- a a t u._XnX4Xn.<.<.{.p.{X4 ...XA.mXn WXn.wXaX1 B.H.0.D.n.nXa g.Z.` B.` FXVXt.r.rXoXdXtXtXtXt.r e.rXtXtX*Xt.rX*XtX*Xt.r.kXt e.kXtXtXdXd.k.kXo.r.8.8 F.`XIX1.2 T 'XcX1 TXc 'Xl TXI.eX- RXl R.eXIX-X-XIXIX, RX1 8XD.w.nXP @.].2.R.| ].I Q X.R 5 f.&.t f Q 5.f.A P.f.fXtXtXtXtXtXt.r.r.a ) VXX V h #XX ` k =XUXP.9.wXD.nXP.! &X0X0 yXCXU.!XL s 9.;X0.yX8 r.C.p.w.a.8X-.` F.` B F.k.8.8.8.`.` ~.8.` ~XtXVXt.rXtXt eXtXz.bXg.XXgXjXt eXt",
+" /.v 0 ^.j.@Xi 0.@Xn.9 3XV.r.^ N.k.X.X AXk N N.XXgXgXkXz.XX@X Q.|.&.& I.] DXJ T.GXq m |XV.$.8.H.$.KXX 5 q.$.$Xc.% n.'XmXG.9 TXDX,.u cXV.H ) (.2 ] YX5X9.8 cXVXJXVXVXo.k.KXgX@ dXu.Q d. . d iXu i.I.U.z.Q.6.I.#.c lXg.I.z.I.zXg.o.b.o.bXz.b.oXg.b.b.b.o.b.o.bXj.k.kXtXt.k N N.b.b.b _.b _.b.b.b.b.b.b.#Xg.cXk.c l.c lXg.c.c.c.U.c.cXk.c.cXg.oXz.b.b.b.b.b.b.b.U.b.b.X.b.b.b.b.b.bXz N.^XjXjXtXt.rXt.rXtXtXdXt.rXt.rXt.^.kXt.r.u.rX* ~ ~XI.`.DXU '.'.M.ZX,XD hX, $X,X,X,X,X,XDXD.ZXDX,X-.aX,.Z R.ZXaXa.E b.=.N C t tX- a.e a R.e a aX- a B.aX-X- < <.*.N.s O.s..XpXn U E UX, h < t $XI.e RXD.aX, tX, RX- RX- t.a t.a.e.e < U U.. ^.v / u 1 h aX- t R R R tXD R.* aX- a a.a 8.N / {.CX4 . U < x cX-.eX-.e.eX1XD a.aX-.~ c.~.a.e.K RX-XI.eX5 R a a.~ R.~ t EXpX+.[XI 3XI.8X*.H.k F.`X,.-XG.YXp.Z RXD.M.a t t t t t t <XnXG.<.p.x.{ >XA ..m E p U p._X>X> x.nX1 BX1X1 $.wX5 ' (X1X1.`.8 ~.rXt.r.r.kXj e.rXt.rXtXtXt.rXt.rXtXt.k.rXtXtXtXt.rXt.rXt.rXt.r.rXt.K.r ~ F.~.`.~X1 g.'XPXDX1X1 B.~ B.eX-X-X-.eX-X-.a.~X-X-.Z.~X, R R R $ T sXO.] B ' :XxXoXx ).X.XXoXx qXx NXjX9.k.XXo.k.kXdXt e.r.rXtXt.r 3 # VXXXXXJXM.,XBXJXH nXwXP.'XaXs gXLXO &.q 9 s.n.n.w.wXL 9X0 rX:X:.{.@Xr.- k ~.`.~.` F.~X*.r.8.8.8Xt.`.8.H.`.HXtXtXt.r e.r.b.X.b.b.^.b NXjXt.r",
+" ^ 0 &.jX0 &X0.xXpXp xXI.8.rXxXx.& ].R PXk.X.^ NX9.o.X.X.R 5.z (.R IXX ).$ :XJ.2 k IX# 6 V 5 c D D.u.u.r.8Xt.r 3X1 'XK.Z.D.u.K.r.u 3.8.K.~Xx ]XO.2 (X5.8.8.8.8.H.8.K.8XtXtXo fX@X@.Q ZX X Xu.6 X.tX&.f X ZX&X .I.7.&.(.6.t.t.(Xg N.b.b N.o.oXgXgXz.b.o.b.b.X.b N eXtXjXtXj N.oX9.b _.b _.b.b.b.b.b.bXg.IXg.U.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.o.b.b.b.b.b.b.b.b l N.b.b.o.b.b.b.b N NXz.^Xt.rXt eXtXt e.rXtXt.r.uXtXtXtXo.kXtXtXt.rXt.r.8.8XVXDXOXl.nXD R R t R tX- R.aX- t B R.aXD.a a.a R a a R.*.DXaXm bX= /.M.*.a a a R.~.e.aX- a R.e aX-X- R a.e tXsXs.) 2.).@Xn E h t.}X, 3.% 3.9XI RXJ.ZXD $XU x.~X-.9 D a a hXJXK.e.} p.m.@.B.) u.Y 1Xc :Xc.Z U.a aXD a BX-.eX-X-X- t.N / 2 wX6X4 E a R aX-.~.eX- R.~.~.~.~X- 3.u R.~.HX,X-X-X-.` 3XD a RX-.` a.a u vXpXr.- RXDXI.` ~Xt.8.8X1 x.-XG.pXG U U UX, U.M < t < tXe.F >X+X4XA.m p U . E U E.d.W EXn n v.nXD BX1.n.n.0XU D T B.`.` ~.8XtXt.r e.k.k.rXt eXtXt.rXtXtXt eXtXt.r.rXt.rXj.r.r.k.r e.r eXtXtXt.X.r.r ~.8.`.`.` g.0Xl 'X-X-XIXD BX- aX-X-X-.~.e.eX- cX,X1 R.ZX5.D.D.w.0X;.].DX1X9.uXd.r.rXd.rXt.k.r.r.k.rXt.r.kXt NXt.rXtXt.rXt e.rXt.r 3X*.,XXXM VX3 k V V.-., =XU 9 sXD.!.n sXm.' 9.n.n $.DXs.w v &XCXA {.{.4 W.TX+ a 3 c.`.`XIXtXI.`.8.8X-.r.5.8.8.8.H.kXV.r.r.^.^.^.b. . Xg.^XtXt e",
+" w J &.!.!XG.;.@X+Xp :XV qXk 5.K.A.A.A.A.z N N N.^X*.^.k.r.r.HXt 3 3 ~X-.8XI.`X1.HXI 3 c V ).5.HX5.k.k.KXk NXo.k.u :.5X*.KXt.XX*.rX*Xt.^.rXd.H.H.H.H ~.8.r.8.8.8.~.8XV.` ).^Xo.z.IXk d.I.I.I.z.I.I.I.Q.R.Q.I./.z q.I./XxXg.I.$Xg.XXg.^.b.X.b.cXg.b.o.b.o.b.bXgXg.^XjXtX* N.o.b.o.b _.b _ _.b.b.b.X.b.c.UXg.cXg.c.c.c lXg.c.c.U.c.c.c.U.c.cXk.c.b.b.b.b.b.b.b.b.U.b.b.o.b.b.b.b.b.bXzXjXt e.rXtXtXtXtXtXtXt.rXd.rXt.u.rXo.kXt.r.rXd.HXt.H FX1XI @X; : 8XD <X- t tXD B.eX, BX- a.e.aXDX- a a R.e R R.ZXa o J.=.N.W.j.aX3.e.a.eX-.e.ZXc.e a a a.a.u T.e B RXs v H 2X>...W U U # c 3XK.|.Z R.e nX,.M.- x.'.eX- :.Y.M.a.}X. `.*.M E pXfXb.) 8XeX,.9 x 1XD 3.a aXDX1 RX- a aX-X-.*.N.=.B.CX6XnXe a.e.~.~.a R.e BX-.eX-X-X-XI.eXx ` DXl 3 1X5X- 1XK.Z.a R.~.~ t tXeXpX+ nXcX,XD.H.`Xo F.8 RX-.9.YX+XpX4Xp.Y.<Xp 1Xe.M C.* xXpXnXr.m p E E U h U t t <.WXeXn M.YXe.Z 8.H.D.'Xc.DXVX-X1.`.` F.8.rXtXt.rXd N.rXtXt.rXtXt eXt.r.rXtXt.rXjXtXtXtXt.r.r eXtXt.r.rXt.r N.rXt.r.8.r.~X1Xo g '.' R.~.~X1XDX- a.` aX-X-.e.% c mXJXJ.9XJ.]Xw.3XU @ @ (XJ.$.A.r.rXdXt.r.kXj ~.k.kXtXtXdXtXt.kXo.rXtXtXt e eXtXtXt.rX* 3.$XXXXXX VX# V.[.[ `X.X.Xm.!.w.n.' s.'.n x.DX, 8 B R v.n.q HXf.vXi ;.{X2.g.i.,.] : (Xx 3.r 3.r.r.k.`.kX9XVXVXV.k.r.kXt.z.X.b.o.#.IXg.^ eXtXt",
+" =Xh.OXO.G.>.+.T.h [XJ I I.R |.f./XkXg.^.KXj.^Xt.rXj.r ~Xt.r ~ 3.8.r.`Xt.8 F.H.HX1XV.8XV.`XX.].2.kXt.r l.(.zXx.RXd.H.r.KX9.XXk.^.^XtXt.rXjXxXzX5.^.k.r ~X* ~.8.8 3XV.`.$.r.K.z ) AX@ f.&X@ AX@.RX@Xg.I.I.R.f./.z./.zXk q.z.$XgXk.z.z.X.#.^XzXk.b.b.b.X.b.b.bXg.z dXxXjXj.bX9.b.b.o.b _.o.b.b.o.b.o.bXk.#Xg.cXg.c.c.c.c.c.c.c.c.c.U.c.c.cXg.U.c.b.o.b.b.b.b.b.bXk.b.b.b.b.b.b _.bXzXzXd e.rXtXt.rXtXt.rXt.r.r.r.rXtXd.r NXtXtXtXtXt.rXt.H.`X1.H @X;XP n : $ h $ $ 1 x $.9 x.w.'XKXcX1 a R a aX-X-.e.WXa b o O.=Xe = [ D.eX- a B t.'.3 R R <.a < c 'X- 8 8 C.W.j *X4 v p x.a.}X- 3 :XIX, R R 1X,X,XDXJXlX-.eXl 1XD.*X, xXM R.} E.sX> ..)._XDXD.ZXDXD.M $.} R.a R.e a R.eX- R RXs.=.s.@ ^XnXe tXI.K.e.~.e R a R.eX- BX-XI.~ 1 :X5XKXDXM.KXJ :X..Y k.uX1 R.e u v >.jX2XH 1X1 3.`XdXI.`XI.8XI.Y.YX>.J >X4.<X+.<Xp.F xXe.FXn >.< . EXF u t RXD.e R a.M EXn yX> v.w.Z.wXaXP.0 3XV.H.`XI ~.8.r.rXtXtXt.r N.rXtXjXtXt.rXtXtXtXtXtXj.rXt eXt.rXjXtXtXt.r eXt.rXt e.^.k.kXtXt.`.`.H.D gX5.0.Z.~X-X- RX-.u.aX-.aX- a cX, : ` : 'XJ.9XUXOXP.G D.0 5X9.fXjXj.rXt e.r.rXjX*.8Xj.kXjXtXt.5Xx.rXtXtXtXtXtXtXtXtXtX*.8.,XXXX |.,XS.l V |X3.[XHXU y.' sXD.W $Xl 8 '.ZXl 8 BXaXL yX0 ^.B.PX6 ;X2 ;.T h #.5XoXd.H.u R.`.`XV.`X* ) D.$ I ) ).$.k q./ N.bXz _.b.bXt eXt",
+".@Xm =Xc.!XK.j z.1XB : ].$ )X9.K.K N N.KXt.r.r ~ ~.8.`.8.8.8.8.8.8.8.r.`.8 ~.r.kXV.`.8.`.HXIXV ).f.R.XXxXxXg ( QX9.k.AXgXk.IXk.U.X q.6.fXkX NXg.b NX9 N.kXV.r.H.8XV.5X-.`.k.AX@.(.f.tX X .A.tX Z.6.&.(.(.tX ./.:X .( ,./.7X .f.tX .6.(Xg.b.z.o.o.b.b.o.o.bXg.z A.oXtXj.b.o.b.o.b.b _.b.b.o.b.b.b.b.U.I.c.U.c.c.c l.c.c.c.c.U.c.c.cXg.c.c.cXg.b.b.b.bXz.b.b.b.U.b.b.b.b.b.b.b _.X NXj eXtXtXtXt.rXt.r.rXtXtXtXtXtXt.rXoXtXt.rXt.r.k.rXI FXIXV g.n T x gXc.9XcXJXJXK T x :Xc 1Xl.9.a aX- aX-.e tX-XDXa o o.= G b x $ V a.eX- < R.'.w x a a cX- cXJXl.e t C._XC pX4Xp.F U <.M 3X-.~X1.eX1 R R.MXD <X, a.e R a.e a.a a a a t U E.m.xX>.j.jXGXcXw.]Xw `X, a t RX1X- tX- B c R.*Xe / 2Xf.@ ^Xe a.eX-X-.a.e R.e.e R a.e RXD R.aX1XDXD a 3.a RXD 1 h R RX-X- R._Xp . WXr.x.jXDXD.HXo :.k.8X-.a.a.pXp >.x.{ WX2.pX4XnXpXp ..JX2.F p E u RX- R.a.e $.* <.WXnXn.jXGXL.n.n ' T T.~.8 3.8.8.r ~XtXt.rXtXt e N.rXtXt.rXj.rXtXtXj eXtXt eXt.rXtXt eXtXt.rXdXtXt e.rXt.K.k.r.r ~.r ~.`X- g 'X5 :X5X5 R.`Xl.H 3.` R RX1XI R.`.e x $ B.ZX5 '.0 g B F.`Xt ~Xt.r e.r.^.rXt.k.rXt N.X.zXt.5XkXxXt.rXtXtXtXtXtXtXt.u ~ 3.,.$X# }X# V.} 3 |.[ VXH n.q g x $ $X. T 1.2XKXJ.9 gX..! b.q.qX6Xi ; r ;X8X+.TX,X- BXIXI.k.`.8XV.`XI 3XI qXX.5.KX*.r ~.k.X.o _.b.o.b.b eXjXt",
+"XiXn H y v.Y M hXV.5Xt.rX* 3.rX*Xt.r.r.`.8 3.8.8 ~XI.8 3.8.8.8.`.8.8 ~.8 ~.8.8.8.8.8.8 ~XV.K.&.R fX (.X.^XoXj.k./.^./.cX@XgXk.&.A.6Xg.tXgXgXg.^Xg N NX* ~.8.`.8XV.8.kX* ~.X.X.I./Xk.I.Q.z. .z l./.Q.U./.U.z./.I.I.z.U.zXk.I.UXk.UXkXg N.U N.b.o.b.X.o.X.b.z./ NXj.^.b N.o.b.o.b.b.b.o.b.b.bXg.c.U.U.c.cXg.c.c.c.c.U.c.U.cXg.b.b.o.b.bXg.o.b.b.bXz.o N.bXgXg.b.^.XXz.b.b.XXz.bXzXd.r.r.r.r.uXt.rXtXtXtX*.r.uXtX*.r.5.rXdXtXtXt.rXV F.H RX5Xc.w.w.w.w.Z C t.* t a t t a a t R.a.a a.e a t a a a 3.Z J.E.v /.N R aX-X- aX- R a a.* aX- aX, a a a.e t <.* *.d 2.xX4.m U < <.}XI RX1 R R aX,XDX,XDXDXD a a R.a BX-.~X- R t <._XeXf ^.sXe.N.9.a.M.a.a R aX- R 8 a B.aXl ` 1Xl y.E.sXfXf .._ a.aXI 3.~X-X-.eX- a.~X- aXIXIX-X- a RX- a RX-X,XD R.u a R a.MXnXp.<XfX6X4 &.w.MXI c.5 FXIX-.8 a 1.jX>.x >X2.<.{Xr.<.@.<X4.<X2XA.m U t t RX- cXc.g h C E v x.j.9.'XPXU.2Xx.u.8.8 ~Xt.rXtXt.rXjXj.rXt.r.bXj.rXtXt.r.k.^XtXt.r.kXj.r.^Xj.bXtXj e N.^XjXtXjXtXt.kXg.^XxXt eXV.8.8X-X9XP 'XO.2XK.5XKX3Xc :.%.].].'.$.a.aX*X, s.0.n.0 gXO (.`.HXtXtXtXtXtXtXd ~XtXt.rXjXt.bXxXg.r.X NXoXdXt.rXtXdXt.kXx ) N DXJ 6 , } V.,X-.a.a # VXX.-.>XOXGXK $ cX,XJXKXcXKXl $ '.wXKXa.! &X0.4.T.{ L.xX2.TXw RX1.`.`Xd F.8.8.`.8.8 3XM.5 V ` q :.$.kX9 N.b.bXzXg.^Xt.^.r",
+".v O J & bXGXr .aXV.8 ~.rXMX*.r 3 ~.8.8.r.8.`.`.`X-.`.`.8.8.8 ~.8.8.8.8 ~.8.8 ~.8 ~ 3 ~ ~X*.r.K.kXx q f 5.&.k.r.^ N.X lXk.6.zXg.$.zXk.b.c.bXz.b q.b.RXkXx.5.u.5 #XV.`.8 ~.r N.X.X.Q.z.z.c.z l.U.Q.cXk.UXkXg.UXkXk.UXk.cXk.b.b.b.b.o.b.o.b.z.b.b.X.b.b.b.^.rXj.XXjXtXj.X.b.o.o.b.o.b.o.b.o.b.bXgXk.#.c.cXg.c.U.U.c.c.cXk.cXg.o.cXg.o.b.b.b.b.o.b.b.b.b.b.b.oXg N.o.b.bXz.oXz.b _Xd e.r.5Xo ~X*.r.rXt F.8.rXtXt.u.r.r.XXtXtXtXtXtXVXt 3.` B :XK.w.n.w.w.w.w.Z R RX- R R a R.a.eXD RXI T.a a.M.aXIXIXe b H 0.=.N tX-X- R B.eX- aXD RXI R a.u.~X-X-.a < t u.)XvXn.< . E U < a.aX-X- R a RX5.'X,X,.a 1.aX,.a.e.e.~X- R.e R t U.W p.@.B *.).*.a.aX- R R a R.*.aX1X- R.eXIX, :XG y w 0.@X4XnXe tX1 # R aX1.e aX-.e R.eX1X,X,X-.eXI.e R.eX-XD.% #X- R c a a.MXp ..4Xf %Xf.@.j.aXIXV 3.H.`.`X*Xl.}.-X>X4.J %.mXAX4X+.x.{.x.{.{.mXe U a.`.~ R.M :Xe E.} UXqXq.YXwXU.0.Z 3.H.` ~Xt.rXt e.^.^Xj eXtXt e.r.X.b NXg e.rXxXkXkXtXjXt.z.rXj N.IXk.rXt.IXdXtXt q N.r.rX@Xk.X.r.kXt ~.`XV.DXU.nX5 sXlXM :XM c ` ` DX5XlX1.a.uX-XD.9.n.0XP.0X5.H ~.r.rXtXtXtXtXt.rXt eXtXtXtXt.rXd.r.^Xd.r.X.rXtXd.r.rXt.5 fX9 7 D 5 | , k.$X9.`.a < 3.$XB VX0 y.'.' ` x.,XD R BXDX1X,X1.eXD sXa o.;.@.C...@.{.CX4X+XqX-X-.`Xt ~.8.8.`.8.}XVXMXMXX : :X9XxXo N.b.b _.^Xz.X.^ ~.k",
+".@ 0.!.q bXU yXp <.}.`X* ~.8 3.8.8.`.8 3 3XV ).`.`.`.8.`.`.8.8 3.8.8 ~ ~ ~.8 ~ 3.r.r.r.rXV.r.k.rXj.k N.X.X NXk.k.^.r NXg NXk N.b N.o N.b.X.bXgXg NXuXk.& qXx qX9 ) qX9XV.` ~.` FXk A.zXkXg.I.Q.U.z l.U lXg.z./XgXkXgXkXgXk.c.bXg.o.b.b.b.b.b.U N.bXz.^XtXtXj e.r.rXtXjXj.b.o.b.o.b _.b.b.b.o.b.bXg.c.I.UXg.U.c.c.c.cXk.c.cXg.o.b.cXg.c.c.o.o.b.b.b.b.b.b.b.b.oXk.b.b.b.b.bXz _.XXz.XXz.rXdX9.r.8 ~.r.r N.`Xt.k.rXtXV.u.X.rXdXtXt I.X.ZXVXVX5XU.' s T yXK.'.wXa.ZXI B.~X- RX-X-X-XIXI.~Xl.5.9 TXc TXUXU.j.O.;Xp.j sXlX-.~XVXD.DX5 3X, 3.uX-.u.~X-.e a.*.* u.N 2XfX4._.W.M < R RX-.a 3 R :XKXcXcXJXw T k 1 $ a R.~X- B aX- t U.d...@.s.).) U.* R 3.a 3 a.e.a 3.a B R $ 3 t t t G.N - ^.@XnXq.}.aX,XI.e.eX-.~X- R.eX-XI $.e RX-.e R.e.aX- `XJXIXlX1.~ 3 R UXG.JX> {XA %.@.j EX-.uXV F.`.`.$ k.a.wXr.@.s._.m.m.m p ..<.JX2 >.m E.a R B.0X- 3 <XD t EXe.F.9 : x.`X1.HXI.r.rX*.k eXt.r.b N.^.r e.kXt.r.b.o q.I.rXtXg./.kXt.kXk AXjXjXg.zXk eXj q.r.kXgXkXkXjXt.z q.XXkXo.r N.H.HX1 g.'.n.'XD R.eX-.a aX-X1X-X, cXI RXI $.' TXU mX1XV.H.HXtXtXt.rXd.rXt eXd ~XtXjXtXt.r.rXt.r.rXdXd.kXdXoXx.R fXxX9Xx )XV.`.`X* #X9 3X-.~.` aXM V.,.>Xm.9XaXU.ZXJXwXJX. !X.XK T.e R.n s.w H z ^.vXA.{.4.JXpXB 3.} 3 3.r F.H F.8.`.8.uXVXV.u.rXo.^ N _.b.o l lXzXtXjXt e",
+".> !.q.q b.q.jXG c.}X9.` ~XVXI V #.5.$.u }.K.A 3.`X-.`X-.8.8 ~.8 ~.8.8.8 ~.8.rXtXtXtXt.rXjXt.kXtXt.^X9 NXjX*Xt.k.r.^.^.k.^Xk.o.X.oXzXg.b.o.b.b.o.b.I.z./ qX9Xx.5.K )X5.`.u (Xo.k qX@X@ A.t.tX .t dXu./Xu.t.IXu.f i./././.I.IXkXkXg.oXg.b.oX9.U.b.^ eXjXt eXjXjXd e.kXjXt.X.b.b.b.b.o.b.o.b.b.b.o.b.c.I.U.c.c.cXg.cXg.c.cXg.o.o.b.cXg.U.UXkXg.b.b.o.o.X.o.b.b.oXg.o.b.XXz.b _.XXz.b.bXoXt.8 F.u ).H.H.8Xo.`.k.r.rXtXd.r.X.r.uXtXd.$ 5 5 5 DXJ.OX.XwXUXUXwXU.9.n.wX5X1X1X1XD B BX1X1X1 B 8XD.ZX,.DXaXsXG yXr.E 0.s x x $ cX1X1X1.~.~X-.~X1X,XIX- a R R t 8.N * 0 0 v pXe <.a RX-X1X-X-X,X, R.MXc $XD s.aXDXD.e a RX-.e R t u.W._.J.s 2.W y x.*.e.- : `.eX1 h.3 R.a.e k.9 $ C 8.NX= /Xf.@XnXq.M R.eX- BX-X-X,X-.~.aX1X1XDX-.e.eX-X-X-.~Xl B R `XcXJ 1Xl.aXeXp.<X8 { { {X4.[ h.` 3 F.`.H.8 DXX.,.j M.YXe EXeXe._.m E p.J WXn EXe tX-X- I :X, t < u.i h.Y.} a.8 3.r.rXt.kXtXt.r.rXtXt.^ N.bXj eXj e e.b.X.b.UXj e.X.k.o.k.^Xj.bXj.r.X.bXjXjXt.bXtXj NXt.^Xt.k.^ N.r Q.f.z 5 q ) T ] 4 !.O.0 B RX-X-.aXI 3XI 3X- aX- $ s T g 'Xl.`.8 ~.rXtXtXtXtXt eXtXt.rXtXt.r.r eXjXd.^ ]Xx.X.RX@.| Q.| (Xo.^.r.u.r 3.`.8.`.`.`.~.8X1.8.aX* VXJ !.q sXaXlX, $ c.ZX,X,.Z.ZX,X, $.Z.9 &.q z ^Xi 0.C.{XA.J a.aXIXt.` F F ~.8.8.rXVXt.r.k.^.bXz _Xz.#. .^ e eXtXtXt",
+"XU.j.!.q.0XU MXw n V V 5 VX3 k., }X#.G }X#.,X9 3.`XI.`.`.8X- ~.8X* ~.8.8 ~.rX*.^.k.rXt.^.r.kXjXj.bXgX9XjXtXj.^.rX*.kX*XjXt.X.r.^.b.b.o.b.o.b.o NXgX9.b.X.kXt.`.8.8XI.8.8.KXx ~.8.R ]X@ A.&X@X X@X&X@X X .f./. ./.AXu.& d.f.6.UXk.cXgXg.b.b.oXk.o.^XtXj.^XtXtXtXtXtXtXj e N.b.b.o.b.b.b.b.o.b.o.bXgXg.I.c.c.c.c.U.c.c.c.cXg.o.b.b.cXgXk.c.c.cXgXg.c.c.cXg.o.oXg.c N.o.XXgXg _.o.V.X.XXg.XXdXV ~.H.`Xd.H.`.r.r.H.kXtXtXtXo.rXtXtX*.k.kX*XV 3 : IXJ.-Xc.9.9.,XwXc sXa.DXa.nXaXa.D 8XaX5XaX1.D.M.w.0XG s.9 y H w bXe.W RXI 3.`.`.~.~.`X-.e.~.uX, B.a.* t t G.) 2 ^ J v pX, 8 t BX- RX1X-X-X-.a tX1XD 8X1 R t B aX- a a a <.M E._.J...s *Xn 9.MXD.eXJ :XK a a :., xX- a., s.Z.M.= / /X= ^X>Xq v.a.* aX-.e a x $ ` $Xl $ :Xl.5 x :.Z $X5 :XDXI.e.e.~XD `XcXK.jXG.@ SXb.P.B % WXB aX*.K.`.`.8.KXM V Xw.+X+ v.M U U UXe.m.F >._Xe x : :XIXlX,.Z.e < U hXq .a 3.8.rXt.r.r.r.r.r.rXtXtXtXt.k.b.^Xd.^Xj eXzXz.b.bXdXj e e ~ e eXtXjXtXj eXt.r eXt eXd e.rXtXtXjXt.k.b.r 5.R 5Xk 5 q ) TXyX; 'XlXD RX-X- RXI.e ` $.e.uX5.w.wXO ' RX- ~.rX*XtXtXtXtXtXtXtXt.rXjXd e.rXj.r.r.r.zX@.| X.R (.tXo.rXdXV.H.k.HXt.HX-.`.`X-.`.`.`.~.~.8.}.,.,X..GXO.> T 'Xl.]XD.9XwXD.Z.O.Z.G.>XK =X0 M.;.BXi L LXA >X% [.}.} 3.r F F F F F.rXtXtXt ~.^.b.oXz _ _ _.c.b.b.XXk.Q.X",
+"XKXP gXU s gXwXH VX3XMXXXJ.S |XH |.S }XHX3.K.aXDXI.`.8.`.` ~.`Xt.5 ~.rX9 NXt.^.IXk.rX9XgXjXg./Xk.^.I.I.bXj.zXg.^.^XgXg N.^./.^Xx.b.o.b.o.b.bXg.b.X.bX9.X.K.k.rX*.k.8X*.u FXV.uXxXoX@Xx.^Xx.zXk.RXk.I./.z.UXkXkXkXk.cXkXk.UXkXgXgXk.U.cXg.b.bXg N.b eXtXtXtXjXtXtXjXtXtXt.b.X.b.b.b.o.b.o.b.b.b.b.oXg.I.U.c.c.c.c.c.c.c.UXgXg.o.o.UXg.cXg.c.c.c.UXg.cXkXg.cXgXk.U d.I d.I.tX .7Xx.z.t d f q PXx.A (X.XxXx.`.^Xt.rXtXt.r.XXt.u.rXtX* ~XV.8X-XMXcXXXMXM xXl.9Xc., g.n.nXa.n.nXLXLXL.n.wXa v.ZXaXG s b g.j H M z.E JXn xXI.e.HX5X1X- aX- t R CXl.* tXs.M.).N.).vX6 ^Xe U.N R RX-X- R.~X- R R a.M R RX-XD R R a.aX- a a < a.W.W . .Xb.).N C xX,.e.eX,XI $.e R h R # a aX,XD t.N.=X=.v.v ^.pXn 1 < a a aX-.eXDXK `.]XcXcXK.,.9 $ TXKXJ :Xc.,XIX1.e R R R RXc = z.@.; { % % %XnXwX, cXoXV.~.8XI a a $XB.YX< 1.Y $.M.M E._XeXp.W $ n.,.S R.a < 1 xXqXe E.i `.}.`.rXtXj.rXjXtXtXtXtXj.r.r eXj.^.^.b.b.^ e.^ l _.b.bXjXjXt eXtXjXj.rXt eXt e.^.rXd.r e.r.k eXtXt.r ~.X.rXd.rXV.r.5.8.` B.k g 'XlXl R B RX, c :XJ.]X3 TXc ! !.O D R ~.8X*.r.rXtXdXtXtXd.r eXt.r.r.rXjXtXt eXt.k.^.^.rXt.XXt.k.r.rXtXt eXt.r.`.`.~.8.`X- F BX1X-.8.`XX k g @.nXy g DXcX.XlXK.2 $XwX;.jXOX0 9.+ &.;.; 0 w ;.P.J.p.1.[ < R c F F F.8 ~ ~.r.rXj eXj.bXzXzXz _ _Xz.o.o.z.: 7.I",
+".] g.0 DXUXHXH.-XB |XH., | [.[X< VXBXc.,.-XJ.K V D I :.8.H.`.5Xx.H NXkXkXt.X.$.c.r.b.b.r.U. Xk.o./.I.^.r./ NXt N.6.$Xj N././ _.o.o.b.o.b.o NXk.&.f.f.$./ ) ).k ) ) ).R.uX9 ).R }.f f ,.R./.7.&.(X@X .tXkXk.UXgXkXkXk.cXk.UXk.U.c.c.cXg.oXgXk.bXjXt eXtXt.kXtXt.kXtXjXt.b.b.X.b.b.b.o.b.b.b.b.b.b.o.I.c.c.cXg.c.cXg.c.U.c.cXg.U.c.c.U.c.cXk.c.cXgXg.c.c.c.U.#.I.( qX&X&X&XkX . .^.(Xx X.R P.& D (.|Xx.r.rXt.rXzXdXjXt.X.rXd.uXt.u.8.8.8.aX3XX #XM # #.lXM 1X3XJ.9XL.nXmXm bXL v.' y b b 9XGXG bXG J s J o b 2.N.w a.a.K.K cX-X- C C.).M.N v.s.W G.).N.)XbX6.@ ..W.W < <X-X-X-X-X- R R.e.a.e R.a.*.D BX- R aX- a a < t E p ..sXv.N u 8 a R.~ RX- 3.~X- R a.a.M a.a a.M C.= / 0 w H.4.jXGXq R t tX-.a a.e.a.eX, R a.* R a R a.e.e.eXIXK $X-X-.eX-X-.a <XrX+.+.CXi { %Xi W.h.j xXJXIX1.`.8 3.aXI.Y.i E.Y.SXH.a UX, E.[Xw x UXq.F < < h.MXqXeXq x .9 c.a 3X*.rXtXjXtXtXt e.rXtXtXtXtXt e N.b.bXzXjXz.oXz.b.o.oXj e e e.rXj lXj N.^Xk.b.r e.^.X.r eXdXt e.^.r.X ~XtXdXtXt.k.8.u 3X1 gXU '.'XDXD 3.eXI.a `X5Xl c 'XPXUXU gX-.`X*.rXtXtXtXtXtXt.rXtXt e.rXd e.rXdXjXtXjXt.kXjXj.k.XXj ~.kXjXt.^ ~Xt ~.8.`.`.`.`.~ FX-.`.`X-X- c., m !Xc T.'.n $ 3XDX,XDXG s s.q.q.q.q & H.4 w w.4 w LXfXb z [XB.a 3.r.8.8.r.rX*Xt.rX*.r.rXj.bXz.o _.U.#.oXzXz l.t d.t",
+" s ' n.-Xw [.-X7 [Xh.[.[.[X7XBX7XB.,.[.[.S.G.3 YXK )XVXV.8.8XV F qXtX9XjX9.rXgXjX9Xj.c.^.^.IXkXg.bXk.oXj.bXkXgXj.I.X. N.Q.X l.X.o.b.oXgXgXk.X./.A./.&X9XXXx VX9 ).fXo I ~Xx.kXoXo 5X9.XX9Xx.5.z./ A A./ lXkXk.UXk.c.UXkXkXk.c.UXk.UXkXg.oXg.o.^XjXjXjXt eXtXtXtXtXtXtXt.k NXg.b.b.o.X.b.b.b.b.o.b.o.U.oXg.b.o.c.c.cXgXg.c.c.c.U.c.c.c.c.c.U.c.c.c.c.c.cXkXg.U.U l.I.U l.z.oXgXg.b.b.XXxXx.XXo.X.u.kXV ~.r.r N NXdXd.r N.rXt.uX*XV ~ 3.8X* qXMXM.}.a < 3 #XlXBXJ.-XGXG yXCX> y HXr HXCXmXC wX>XCXmXC &.+X0 O.=.N.w < a hX- t R 8 U.N.).W C 2Xn.) ..;..X6X>X4.@ v p E t t t a RX- a R a.a tX3.ZXlX-.a R aX- a.a a a < U U.s.s -XF.d.*XU 1 R R aXIXD a t a RX-.} a a a t.N /X=.@ H zXpXGXq x t.e tX-.e RX- $XJ xXlXDX, :XKX,.u.MX5Xl x.%.%X1X-X-.e < aX, yXn S.@Xf H.4.+ MXh.>.> $XI.aXI.~XIXIXI `._ E hXwXl T k U.MXq ! x < < < < UXe E 1Xq X7Xl.}.aXIXV.uX* ~Xt.r eXj.r.rXt.rXtXtXtXt.^.b.^.bXz _ l.b _Xz.bXz.^ eXjXjXk l e e.b.zXjXjXdXg q eXtXt eXt.r e N.kXt.X ]X9XtX*.8XVX1 ' m.0.'XlXD.eX- a R.e.e aX-.e.w.w gXJXl.5.8.X.$XdXtXdXdXt eXdXt e.X q.kXd ).bXt.X.z.X.r.X.XX9X*.^.z ~X* l.rXt ~.`.`.8.`.`.` B.`X-.`.a.8XV `XHX.Xw.n sX5XDX1 R R.D.n.n.qXC J o J J.E w w S w {Xf ; .Xq x.- cX-X*.8.r.u.r.rXt.rXj.rXt.^.b.b.b _.#. .V _.o.b.XXo.b",
+"XU.+.G = =.1.1.S.S.SXB.[ X7 >XBX<.TXhXhXH n.3X,X1 3.8.`.8 ~.8.H NXt.rXtXtXtXtXj eXj.r.^.bXz.b.b.bXjXjXjXtXj eXtXjXg.b.bXg.o _.o.b.b.UXk.U.z qXk NXX.K.k.KX*.r.rX*.K.k N.u.8.8 ~ 5.$ ).K NXkX9Xx l.I.z l.6XuXk.U.UXk.U.c.U.UXgXk.cXg.c.b.o.cX9.bXtXjXtXtXtXtXjXtXt.kXt eXtXj.^.o.X.b.b.o.b.b.o.b.b.b.U.o.b _.c.c.cXg.c.c.c.cXk.c.c.c.c.c.c.c.c.c.UXg.cXk.c.c.#.UXk.UXk.cXg.b.b.b.b.b N.X N NXt.H.$.% q F.rXj.b.b.b.^ A.zX*.K NX*XV.H.`X- : ` # $ a <.a a.} x x ` n.jXG H 0 HXCXi b ^.s 2 2 2.v 2 2XLXG.q 2.WXs.M # # a U R u.N.N.d.)Xe ...._ v.. M zX4XrXn.... E E.M t t < t aX- a R t tXDXw k.Z aXD R a a < a < < <.W.W .X=.) * C.* [ x.eX-.`XIX- B.e R.* tX, a t a t.N.).vX6X0.4XnXn 1X, <.* t a aX- t $ TXK :.,Xc 1XcXcXc TXc D : `X3X-.~.a.eX- a.WXhX+.+.T z M.@ J w H H M M y xX, xXI.uX- #Xp E E.MX,.M [.M U.aXe.M t < u E.iXq XcXB c.a.`.8 3 ~.r.kXt.rXt.rXj.rXt e.r.k.rXtXj eXtXzXz.b.b.o l _.b _.bXzXz.^ eXj.U q.^.r lXk.o.r.o N.Q.^ e.^.^XjXjXj.k.kXdXx ).f f.f }.$ D D @ 4XO.G :.,.e.e R R aX-X- R.Z.nXw Y D 5.|.R IX@.t.R fXoXd.rXt.r.X.Q N.r.IXo.rXx l NXtXk.bXkXtXx )Xt.XXx.K ~ F 3.` 3.8.8 N ).`.`.~.~.` aXcX. m.>.1.9.9Xc.9.wXaXa.n.!.q O 2 2 2 2.v.v.. H wXb %.{X6.s._.Y.9X-.rXV.r.r.r.rX* ~Xj.rXjXz.b.b.b.b.I.U.V _Xz.X.b.b N",
+".>X;.+ n.jXrX< n.-XB k.LX<.S.1.S zXrXe.W.WXe s.aXIX-XI ~ 3.rX-.r.k.rXtXtXtXj.^ N N i.z.b.c./.o NXgX@XtXtXj.rXjXj N.^.o.b l.o.b.o.b l.z./Xu.f./X9X9 N.5XX.$Xx 3 3.8.rX*.r.uXtX9XV.kXX.K.X.K.5 NXxXk.&.I.I q l.I.I. .#. .#.U.c.c.U.c.c.c.o.b.c.X.b.b NXz N.^XtXtXtXjXtXt.kXjXtXtXj.b.b.b.b.o.b.b.b.b.o.c.b.b.b.cXg.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.U.c.c.c.UXk.c.UXk.cXg.cXk.cXg.o.b.b.^XgXg N.^.XXx.X.kXtXt N.^.b.b.X.^X .z.& 5.& 5.$.5 DX$ }.3 k.,X3.S XH $ X3.-Xh n z J.s.s.s.N.s.W G / / G.N G C * bXG.N.N C RX, a < a.).N.sXn.pX+XpXq._.<X+ W._Xn.sXqX+.[X7XpXqX+X7Xq hX,.M < <.*.a tX,X,X, a.aXD R R.a t a t.} h._XeXp.) G / C u $ $.e cX-X-X- B R.e a.aXD a a R U *.s.@.;X>X+.* < t t.e.a a aXl.9 xX- xX, a R RXD t a t t R a cX-.~ 3X- aX- <.a.MX+Xp y.@ HX0 &.>.+ =XCX0X0.Y.jXw.'X5 c.u.a ._.i.W.M.M U.a EXeX,XeXl EXeXeXq.M < h.uXIXV ~.`.XXxXk.^XtXtXtXj e eXt.k eXt.r.r.rXt.rXjXjXz.b.b l.bXz.b.b.o.bXz.o.b.b.oXzXt.^XjXj eXj eXd.^.b.b.b.b N N.^.^.r.rXt ~.8.8.8.8XVXV BXU TX5 ' B RX- R.e.~X-X- aXD '.n !XI.`.H.HXd.HXd.r.kXd.r.k.r.k.rXt.r eXdXt.r eXtXd.r.^ N.k qXt.kXoXd.^ N.k.8.`XI.8 ~.8X3 }.% D 5 5X3 IX3.3.O.G @.OX;.3.G.].n.n OXmXC ^ 2 / *.NXs.) 2Xe.@.s.BX>Xf vX+.Y [.aXIXt.u.r.uXtXt.r.k.b.X.oXzXg.b.Q _ _Xz.b.b.b.^Xd e",
+" =Xw =Xp M M.jXr.[ n.1.L.hXrXrXrXn...=.s.W.n.wX-X-.a.8.8.8.8.8 ~.kXtXtXtXtXj N NXg q./.^./.IXgXgXk./.X.^XjXdXjXt e N.b.b.UXzXgXzXg N.fX ./.$ NX9 q q.$ q.KX*XI ~ ~X*.k.^.u.r.`X9 : 5XV.5.5Xx.5 ).I.I.z l l l.U.U.cXg.c.UXg.c.c.c.c.c.c.o.b.U.b.o.X.X.bX9 NXjXtXt.kXtXtXtXtXjXjXj.^.b.b.b.o.b.b.o.o.oXk.bXz.b.c.c.c.c.c.c.c.c.c.c.c.c.c.U.c.c.c.c.c.c.c.U.c.c.#.U.c.c.c.U.c.c.o.b.o.b.I.t.f d.&.I.5.r.^.X.o.^.o.b.b.b.XXo.rXtXVXV 3.8XIXXXJ.3 k |XH ., kX3.- V.,.g.3 =.j.;.j.s vXeXL U.*.* C uX+Xn.* t.* C.* a a h U C C.) * %.pXnXM.l.i.FX7 ._XB.i U t t < U U E E U.W EX, UX, u < < a < a.M hX,.} < a.M < R <.W U.FXpXnXL.s.N.M t t.e.a.~.~X-XI.eX-XD R.*X,X- t a.N.N.sXf.x.@._ t.M R.e.a R a.e.Y : :XDXK 1Xl.e a RX1 R.e R a.e c R.~.8 3.eX- a < <Xn.j WX0.+.> oXU & H MX0.+ HXC oXm B B.8.` Xn hXe.M.d U.m E x x._ $ x `.} 3 3.KXt e.^Xj.cXgXz.r.rXtXt.r.r e.rXtXtXtXt.r eXt e e eXj N.b.U.o.b _.b _.b _.b.b.^.b.oXzXz.^XjXjXj.bXz.X _.b.b.o N.o.^ N.r.k.r.H ~XV ~ ~.`XI B.ZXU '.0X- R R.*X1X-X-X-X-XD.w ' m $X1.~X1XdXd.uXtXt ~.k.r.k.r.k.rXt.k.rXtXtXd.rXdXt.A q ] 5.A.& I I.|.R (Xd.H.8 N 3 ~.r.u.kX*.8X-XX )X-XI.,XJ = gXwXl $XU 9Xa bXC.! 2.vXn U t B.M C sXG *Xb w.C.. ..L n $.8 c.r.r.rXt eXjXzXzXz.bXz _ _.c. .o _.b.^ NXjXt.r",
+"XD t.9X0Xh.h y y y [X7X<X+X>XG.@ v v.N.N.N s 8 R R.8.`.8 ~.8.rXV.kXt.r.rXt N N N N l.b N.oXx.b.X.o.^Xg.XXo.X.X N.o.X N.b l.X _Xx.X.RXk.XXxXkXkXk.f.$XxX*X*X*.8 3 ~.rXV.rXt 3X9 IX9X9.r ) ) 5.&.fX@ d.: lXg.U lXg.c.c.c.c.c.U.c.c.c.c l.o.b.U.b.b.b.b.bXg.X.^XjXjXtXt.rXtXtXtXjXtXj.X.b N.b.o.b.o.b.oXg.b.b.oXg.c.c.c.c.c.U.c.c.c.c.c.c.c.c.c.c.c.U.c.c l.c.c.I.U l l.c.cXk.cXg.o.b.b.U.IXgXxXgXdXz.X.XXzXz.b.XXzXz.XXzXkXd.u.k.kX* ~.8.`XXXcXX x # `.l.l.l # #XM xX3 yXa.s.jXGXr.-.[XlX,.*.a 3 #Xc .Y kXcXK g.9XwXL u.)X=.sX>X+XM.l h.l # .-.i UX+.M.YXe.>.,XlXqXnX+.F.-Xn x U h.W.M.w U.M.a xXB 1Xp x., 1Xp x hXeXnXnXL vXs C.N U t.M.a.eX- $XlXl.D $XI.0 $ $ a R U.)Xi.@.@.xXn t.e aX-X- t.a.a.eXD.aXD `XKXc ' h $.aX- t R aX- cX-X-.~ 3X- a t < <XGXGX> W 9X0.! oXmXp y H.+ = & !Xm.!XIXV 3.iXn x E U E._._._.iXq x 1 TXlX,XI.8XV.r.^.k.^Xz.U.o.^ eXj eXt ~.r.kXtXtXt.r.rXtXjXtXt.r.rXj.^.XXz l.b.b.b.bXz.b.o.b.b.o.b.b.b.o.b.b.b.b _ _ _.b _.b.b.b.b.^.bXt.r.rXt ~.HXt.`.8XIX1X1.2.' TXD.e.~.e.e.eX-X-X- R s sXU 'X1.R.].X.u.^.KXtXx.kXx N.R.z 5 N.r.f.^Xo.^XoXxXdXo ).X (.5 :.5XxXo.5.HX9 ~.8X*XkXx.rXV.r.8.8.8.`.~XI 3.K k !.>XwX,X- '.!.n OXC oXC O W XJ TXUXc x KXp W.y.x .XnX4 XBX-.k.HXV e.r e.^XzXz.V _Xz _XzXz.b _.b.bXz.bXj e.r",
+" cX5.[ sXpXH =.OXwXpXc WX+.s J v.s 0 v.=Xa s CX1X1.` ~ 3.r.8.`.k.kXt.uXtXt.k.^.k.^.k.^.kXjXjXjXj.X N.^.^ NXt.^.k.kXt.^.KX9Xd N.R.f.tX9XxXg qX N.I NX*X*.r 3XV.8.8.KXtXt ~.8 ~ cXdX5.u.KXoXxX9Xx.RXk.Q.z.z.z.U.U l.U.cXg.U.cXg.c.c l l.c.o.z.o.b.b N.b.b.b NXjXtXtXt.k.kXdXjXtXjXj.b.oXz.b.o.b.b.b.oXg.b.bXg.c.c.U.c.c.c.U.U.U.U.c.c.c.c.c.c.U.c.c.U.c.c.c.c.#.c.c.c.c.c.c.c.cXk.o.b.o.o.b.b.X.X.^Xz.b.^.X.b.b.bXx.X.XXkXo.r.k.k.uXI 3.` #XJ V ` k.[Xc X3XMXM #XM y o v.= vXL u.w tXDX, RX- a c < c h c.- sXK.jX0Xw.j 0.s.Y.p.F x $.a c.iXM.-.FXeXpXq =._.9.+.jXh.T M.O =.O.Y v U.W E UXe 1.pXwX+Xw.[ nX0.>XcXn.W E xXG.N xXa.WXs.N.MX, a R B.K :XKX3 T 1 x m : xXs.N.NX6X2.JX+Xe t tXDX1X-.a a a.aX-X- R aX- $ `Xc `XwXI BX-X- a.eX5 RX-XV.eX- a < uXpXn.j H v s y !XG s v vX0XU o.j.qXP 9 #X1.a.YXe._._._ E.FX+X+ 1XK # R.H.r.8.k.kXj.cXj.^.^ e e.rXt.rXt eX*Xt ~.k.kXtXt.k.r.rXtXtXjX*.^Xz.b.c.b.b.b.b.b.VXz.b.o.oXz.b.b.b.b.o.b.oXz.bXz.oXz _.b.bXz N.X eXt.k.r ~.R ].K.K ).u.]XUXO !XcXl.' `.u $XVX-X-.a.w.wXPXNX5X9.5.| 5.& f.R P P.R.$.z 7 Q f.& f.&X@ Z.|.z.r.u.r )XJX9 : )XxXJ )Xx.5.H.r.K N.8 F ~Xj.k.8.8.`.8.~X* c k k !XUX, R 'XO.!XPXm.q &.EX+.p., `.9X5 1 gXq ^Xf.{.x.m E >Xc.aX*.r.rXt e e.^.b _Xj _ _Xz i.o.bXzXzXzXj.kXtXt.r",
+" 5 D D.M.}XHXc.GXU.ZXw.pXL.sXG b bXeXe v v.n.* RX-X1.8.u.`X9Xx.5Xd.rXdXtXtXt.r.r.rXtXtXdXt ~XjXt e.^.r.rXdXtXtX*.rX*.r.r q.5 q.R )X* NXkX@Xu.I NX9.oXt.r.kX*.8.8.r.rXt.k.8XV.H ~ cXVXd Y ).|.R.|.&.& f AX .& Z iXg.c.U.c.U l.c.U lXg.c.cXg.U.b.b.X.b.o.X.oXg N.^Xt.kXtXt.kXtXtXjXtXz.X.b.b.b.b.b NXgXg.oXg.c.c.c.c.U.c.c.U.U.#.U.#.#.#.U.U.c.V.cXg.c.c.c.c l. .c.c.c.c l.c.c.c.c.c.V.^Xz.X.bXzXz.X.b.b.o.b.b.bXz d.z.t ( Q.R 5.%Xx.$X9X9Xl }.-X.X7.S |.[.[.- .l.lXBXw.s.s 2 v U x h R.MXIX1X-X-.a.a.aX,X, CXs vXe.EXp =.h.1XB #X5XI aX-.i xXpXc.FXeXp v CXq h v y.j.jXm.jX0.j.Y vXe v v._.)XeXe._Xq v._XGXG v.sXe vX+.[XsXl s ' v.W v C t a.~ RX- R.e aXI.~ 3.e.* t.s . ^.{ .Xp.M.aX1 BX1XI a tX-X-.a a a R a R R RX5Xc t.e.M R R RXVX1XIXVX, R a tXeXpXp.j y v.w 8 $.9.w x v &X+ yXCXC.>XU $.M.aXK._.i._._._XnXcXD 1XM.a R.H.H ~.r.^.^XkX9 NXjXtX*XtX*.rXj.r.r ~.rXtXt.r.k N.^.k e.k.rXj.r NX9 NXk.b.b.b _Xz.b _Xz _.b _.b.o.b.o.bXz.b.o _ _ _Xz.bXz.o.b.b.bXt ~.k.r.H 5 I 5.|.$ IXJXOX$ mXyXJ #.2 3.2 $X-X- BXD.'.0 gXI D.5 qXk )XxXxXx D.X.^.5Xo NXx.kXx.^XoXo.^.kXt.kX* ) I.$ 5.R | 5 ) :.5.r ~ ~ q N F.r ~Xt.8 ~.`.`.`.8X*X3.,X. !X5 B.H.w.' T g y o 0 U.WX, c R.*.e.'.)Xb ..C.pXAXqXp X-XV.rXt.rXtXj.b.b.b.bXzXz.#.z. .V.b.bXzXt e.rXtXt",
+".RX9XV #XK c `X, B YXr.1X+X0 v.j CX< y._.O x.]XlX9XX.r )XI ].%.XX5.r.rXt.rXtXtX*.k.k.(.K.k.^.rXdXt e.^Xt.r.k.r ~.r.8.r.}.A.$X9.KX*.r.R.f.RX9Xg.b.b.X NXj.r.r.r ~.r.kXt.u.`Xx.~.8.u cXx.5X9 ) qXxX@ A.R A q d.I dXkXg l lXg.cXgXg.U lXg l lXg.o.b.o.b.o.b.b.b.b.X N NXtXt.kXd.rXjXj.^.b.b.b.b.o.b.bXg.c.oXg.U.c.U.c.c.c.U.U.U.U.#.U.U.U.U.c.c.cXg.c.U.c.c.c.c. .c.c.c.U.c.c.c.c.c.cXg.o.bXz.X.b.b _.b _.oXzXz.o.b.t.t.t f Q P 5 Q 5 DXX |X.XS k.O.3.SXH.S.SX# VXM.l .[Xr 0 vXn.MX, <XD.D t.* RXI.uX1 3.eXDXeXL.)XGXrXr.gXH [.3 V 3 R.a.a.}.l.lX7 > E U.F E xXqXqXU vXa s b.'XGX0XnXp.<X> >Xn._ pXqX>X2.j.;.j yXGX4.j y.Y 1 x.D.w v.sXL C.*X- R.~XI 3.aX-X-X-XMX1 C.D 2.)X6.x.<Xq U aX1X1XU : R.a.a., c 1.eX- R $X.XJX- :Xl R 3X..e RXIXV.].2 VXI < C._XGXp.q.E v.M : $ s R 8XaXK.n.' yXm.q.>X+ h <Xq .m._XnXH 1.> ` kXcXJXJ.K.rXt.b.zXj q.kX*.rX*.^.rX*.r ~.8.`.`.8.5.r.r.k.X.bXt.^.^XgX9.^X9.^.bXkXz N.b.b.b.bXg _.b.b.o.bXz.b _.b.o.b _Xz _ _Xz _ _.b.b.b.o.rXjX*.r.H.k.uXtX*.5 3 ].Z m ' '.uX1XIX-.eX-.~ aX1 $.'.'XJ B.` ~ 3Xt.H.k.H.k.r.r.H.rXtXVXt.k.r.rXtXtXdXt.r ~.kX* DXM.rXM.k cXV 3X9.r F.r.U ~ ~ ~Xk.UXk ).` F.rX*.kXX k m m.0.`X1.` BX-XMXJ & 0 OXs.M.M.M C.! s.s.s.C.x .._X4 Xc c 3XtXVXt.rXj.^.b.^.b.bXz.c./.o.^.^.b.bXjXt.rXt.r",
+"XdXd.&XX VXXXIXIXIXc.3Xw nXw v.+X+.+X+ y.GX;XlXl ).,X9 ,.k Q.2 , )XoXt.uXtXtX*Xt.r q P ZXx.HXd.r e.r.k.rXt.HXV ~.` 3.`.8X3 #XM DXxXX q N.z.b N.X.b.b N eX*.r.`XtX*.rXtXt.`.8 (XXX5.H ).5 ).HXx.X q ( ).z.I.z.z.IX@ l.I. .z.6.6 l i. .I. . .z.U.U.z.U.zXkXkXgXg.IXxXk.X N.XXoXtXdXt.k N.o.b.b.b.b.oXgXgXgXg.U.cXk.c.c.c.c.c.c.U.#.U.U.U.c.c.U. i. .#.U.c.cXg. Xg.U.c.c.c.c.c.c.cXk.o.oXg.bXzXz.XXz _.b _.b.b.b.bXx.XXxXxXx N.X.K.u.u 3X-XJ.3X..O.1X# nXH.S.SX7 .l XBX+Xp v.sXe EXeXs v.w.D.ZXlX-.~X1X, t U /.WX+Xp .Y ` `XX.,XlXI a a a.l.lXB .F._Xq.m E EXq yXG.! &Xw.!.9.>X0X0X0 MX0 yXp.Y.EXr.j oXG o.q &Xw y vXGXwXJ : 1XG 0.W.D.W $ : x.a RXIXD.a.eX,XD RXL 2.sX>.@.JX4 U < RX,XcXw R aX-.,X, :.e.~ RX,Xl `.ZXD a.eXKX;X, RX1X,.5XX K t.a._XnXG.EX0Xm s T xXc m.-XG mXwXJ n 9XGXG.q H.-XK.}XBXBXB .9 h : T.] `X3X9.KXjXtXgXkX*X9.rX*.r 3.K 3.r.u.`.K.5.5XI q ).R.R 5X&X@.fXx.& q.f.f.fX@ dXg.o.b.b.b _Xz.b _.b _.b _.b.b _.b.o _.o _.o _.b _.b.o.^ l eXtXtXt ~.8 ~.8X9.uX9X1X1.0XK.n.wXIX3 RXI.eX-X1X-.w.n.0.OXJ c.rX9X*.&.5X9 5X9Xx ) )Xo.kXd.HXt.u.r eXtXt.r.k.u ~ 5.$ )., ) 5.K.8.u.K FXt.XXgXt e NX9Xg.^.r.`X-.r 3.K., 5 ! :.~X1 R.`.`X-Xc.q b O.=.W.*.j.jXG.=XiX>XfXf p...[Xh.,XIXI.r.8.r.rXjXj.b.o.^.o.o.^Xz ~ e.b.^.^ ~ ~ F.rXt",
+".R 7.X }X*.8 ~.`.`XD 'XK kXJ xXDXGXq v b.j $ T.HX9X9Xo.K.^.uX* 5 5 ].z.XXdXV.k.rX*.k.z.A 5 )Xo.rXd e.rXt.8.8XIX1X-.8.a.r :XVX*X3.5.&.K N.X N.b.o N.X.^X*Xt.8.rX*.rX*XVX*X*.K 3.kXJ #.|XX ).u.5 ]X@.&.(.& PX@ Z.z.tXg.7 d Z.tX&.I.&X@ ZX X&.I.&./.7 d.&X X .&.A.&.t ].AX@.&.RXtXtXtXj.^ N.X.b.b.o.bXgXg.b.c.cXg.c.cXk.c.U.c.c.U.U.#.U.U.U.#. .6 i i. .U.c.c.c. .c.c.c.c.cXk.c.c.c.c.cXgXg.o.bXz.o.b.bXz.b.b.b.b.X.o.X.oXk.b.X N.k.r ~XI.`.5X3XJXc DXUXwXHXwX7.-XBX7 kXBXBXp ^.) ..s.)Xn.E = n.-XJ $.ZXc h x.j._X+.[ XM.l :XH `XI.HXI.e R < # #XXX7X7.pX+ p._ .Xp.jXP.w.9.'.>.> =.O.>XwXw =XUXU.j y o s s s v sXmXP v.nXLXcXU.-.9 yXs M.YXa.9Xc : $ $ ` #Xl xXlXl.MXe.NXi.4X>.CXn._ t.MX,.2XK R a aXKXKXM.e a.e c D $ RX1 R 8Xl $ : a R.u #.a #X, UXpXnX>X0.j.'X..ZXJXcX. :XKXwXwXU.wXsXK b.j nXw =.Y hXM $ c.}Xl.u cX5.k.5X9.kXx N.c.XXj.X.r.r 3 ~.rXVXV.8.`.uXXX9.uX9 )Xk q.I A.z i.o.I.U q.IXk q.z.o.oXz.b _.b _ _ _ _ _.bXz _.b.b _.b _Xz.o _Xz _.b.b.b.bXg e.rXd.r.r ~.8.8 5./ } ) TXO 4XO.2XJ `X5XI 3X-X1 8.n.' YX. : I I 5.&.%.& 5 5 f 5 q.X.fXtXt.rXd.rXtXtXtXtXjXt.rX*Xx qX9XxXX ).K.`X9.r.8 ~XxXg.XXjXjXt ~.8.8.` ~ 3.8XX } Y.G : $XI.u cX5X-.,X. =.! oXr._.1XhX= ^.CX6XA.FXq.FX+XZXKX1.`.K.` ~.k ~Xj.b.b.b.o.z.XXz.^ F e.k.r F F.8 F.r",
+" ].t.AXg.k.r.` 3.8X1 B g.O.O.iXD CXL.).s s B ~.8.`XV.8 FXd.k.r.5.5Xo 4 A Q.K #.rXt.kXt.k |.R.R.X.r.k.r.8XI.DXl.9 c.`X- 3.}.uXX.KX3X9 3.k.kXt.kXtXj.^XtXt ~.8 ~.uX* ~.k.uXV 3XV 3 c.u c.u.H.k.k.k.XXk.XXk.zXk NXkXkX9Xk./.U./.zXg.IXk.I././.z.z.zXk.z q.zXkXk.I q.z.z.z.XXxX9XtXtX*Xj.k.^Xz.b.o.b.bXg.o N.o.oXg.U.c.c.c.c.c.c.c.U.U.#.U.U.U.U.U.U.U.U.c.c.c.c. .c.c.cXg.c.c.U.c.c.c l.c.cXgXg.o.b.b.b.b.b.X.b.b.o.b.bXgXxXz.X.bXd.k ~.`.`XX., mX.XwXUXwXUXr [X7.g.[.[X<.[X> JXi.s % ^.@.s &.9.'XK m.,XK y.jXr &X%.gXM m k $.eXc.2 : R a a.i #.l.lXBX+.x SXnXnXw =.WXL B C t.w x '.9 s.n 1.n.j.!.n 9.9.w 8.w.'.wXa.nXaXa.!.j., =.T yXnXK C.-XlXKXJ `XK.9XK 1XKXwXD.N.N OXi H ^XnXq.M.M.Z.M a R R t.e.e t R.~ a B.e.~ RX,.e.a.M.e BX1.~ $X-.a a hXqXp.@XC y y.nXl.D BX, $ RX, tXl xXD.n.9XKXw.> MX#XH.- DX3 } D.5.|.0.$ T ) 5Xg NXg.k.r.rX9 3XV.`XI.uX*Xt.8XV.}.a.`.` 3.r.r.^Xz.b.b.o.^.o.^ N.X N.o.oXz.b.bXz.bXzXz _ _.b _ _ _.b _.b.b.o _.b _.b.b.o.b.o.b.XXg.^Xj.rXt.r.` ~ ~.5.R ( D.5.R g Y.0X.XD.e.e :X- B.D s 'XcX5XI.u.K.kXoXo.k.k.k.k.k.k.kXx ~XtXtXt.rXt.r e.r.rXt.rXt.k.k.r.u.rXV.r.8XX.r.8.r.^Xg.^.r.r.rXt ~.8.`.` ~X9 ) | } YX. DXJ DXJXJ 3X3X5.O yXC.YX+ v = ^X6Xf ..mX4 EXe.[.[XK BXIXVXI F ~.k e.^.b.b.oXkXgXd F.`.K.r ~ ~.` F.8.8",
+" 5 (.k.XX9.X.k ~.8XI ].' Y.2 $ x U.sXe.s.wX1.~ ~ 3.8.8.rXt.HX* 5X3Xt.k.X.2 I I :.k.k.rX*X*.KXx Y )X5.8 RX-XlXl :.5.aXI.,X9 3 hXV.`.K.k.8Xo.^ ~ ~.rXt.r ~.`.8.r ~.`XVX-Xx.KX3 :., D ) 5XXXJXo.fXx.&.X.X.XXgX9Xg N.b.o.o.oXk.c.U.c.U.cXgXk.UXk.X.o.^ N.b.b N.bX9.X N N NXjXtXjXtX*XtXtXj eXj.^.b.b.bXk.V.b.b.o.oXgXk.c.c.c.U.c.c.U.U.U.U.U.c.U.c.U.c.c.c.c.c l. .c l.c.c.c.c.c.c.cXg.cXg.c.c lXg l.oXg.X.o.X.b.b.X.o.X.XXg.X.b.X.XXVXd.H 3X5.2XJ.] T.! s s.jXwXpX+.- z MXr H S w 0.@.@.;Xi bXs C.eXD.e.*.).N.).s.YXB kXlXKX-.a ` I $.a a a.}.} # # xXpXnX4 M..XZ.jXP.9.' xXl x sXJ 8XDXs.nXK YXK =XOXUXcXl RXDX,.ZXsXDXLXL.9Xw n = v.N.* R tXIXM aX- <.e R.eXD a.* 8.) 2 2.@X2XnXp U U h.ZXc.Z a a RX5.e.e.e.a.e RX- BXD R :X5X,.Z $.D c.~X- a $XpXn H HXGXG.Z.Z $X1XD ' x x.DXG $.M x s.YX..j.,Xh ]., ) D I : IXo D 5XoX9./.k.b.k ~XVXD cXIX5Xl.H.H.k.`.H.`.`.8 3.u.r.rXtXj.b.o.b.b.o.bXz.b.b.b.b.b.b.o.b _.b _ _ _.b _.b _ _.o.b.o.b.bXz _.o.o.b.b.b.b.o.bXg.XXtXtXdXt ~.r.`.8 ~XVXxXIX1 B g TX5.w B R 3XI B.Z.n.0 D.DX-.H.r.u.uXdXd.kXd.r.r.r.rXt.rXtXtXt e.rXtXjXtXtXdXtXtXtXoX*.uXt.u.u ~ ~.r.8X*XtXk.X eXdXt.r.8.8.8.`.~ ~ # I.,.]X,XI R.8 R.`.`X-.aXl.0XL.= 2 G.@.4 0.C.@.y._._Xp 1 1.Z.uXI.k.H.uXo.X N.XXoXkXdXg.X.r.r.`.k.r ~.r.` ~.8 F",
+".u.X.r N.^X9Xx.5 ( DXJ.DXl.9.w hXe.s 2XG hX-X* ~.r.uXVXdXt.r.k q V )X9.XXt D 5 f q ( qXo 3 3XV.KXJ :.9Xl.9 1 DX3.aXI 3.$XX.aXIX*X5XV.8.HXo.r.` F ~.r.r.k ~.`.`.8 ~.` ~ 3.u ) `X3 5 VXl ) ).R D q.&Xk.o.X.^.b NXg.b.o.b.b.oXgXk.cXkXk.cXk.UXg.b.bXg.b N.oX9.b.b.X.o.X.b N.kXt eX*XjXtX*XjXt e.^.XXzXk.o.b.b.b.b.o.cXg.c.c.c.U l.c.c.c.c.c.c.c.U.U.c.U.c l.c.c. .c.c.c.c l.c.c.c.c.c.cXg.c.UXg.QXu dXu.t d.t.t d Q A A.z ] X d A A ]Xo.2.uXxXJX. @Xy.G.>.q.jXr.Y.<XrXr.jX>.; & M w.;XfX0 o 0.N.W t h <.M.N 2 bX>.g .SX3 x `.-.a.aXD aXD h h h 3 # 1 .Y ..sXn.j.>X;XO.].0Xc T TX1 R R RX1Xl.0 ' s.' 'XM x c R B RX-X1.*.N.n 9Xw.j J G.= C <X-X- a a RX- R R BX, R 8 tXs 2 2.v.@XfXqX+ UX,XDXlXwXc.'XJ xXJ B a.eX-.eX-X-XDX- : 1X3 T ` :Xc.a R <Xq.YX4 & H v.n.Z :X,Xl x.Z s.MXD.wXU s.w 1 g n kXc.3 D.uX5XV.H.u.`X1X1.8.`.k ~ ~ ~XVXIX1.DXl x s s.Z.`XIXV.`.8 3.rXtXtXtXjXj.^.b.b.bXz.bXz.b.bXz.b.b.bXz.oXz _Xz _Xz.b _.o _.b.b _.b.b _.oXzXzXz.b _.o.b.b.b.X lXgXoXdXt.u.8.`.r F.8.rXV.H.H.HXo D.n 'XDX- cX-X-XDXl 'XUXdX1XIX1XdXtXtXt.r.rXt.kXjXt e.kXt.r e.r.r.rXtXtXt.rXtXtXtX9.r.r.r.u.r F.`.` ~.rXt.X.z.k.rXt.r ~.8.`.8.`XV.5.$X. $XI.uX-.`X-.`X-XI RXD.9 9 OXa 2 ^ z.@.<.<X+X< [.[X3X1 V #XJ TX5.k } 7.R.z.&.&X@ ~.r.r ~.` ~.kXV.8.8.8.8.8",
+"Xt.5.H.rXt NXk f./ qXI.` R TXJ.w v.W vXq RXI ~.r.rX*Xt.HXVXd.k #X* 5 ) I.5X5.uXx.] ] (XX.uXIX1X,XDXrXh nX. k h.a.}.`.aXX.,XXXM 3XI.` 3.8.8.8.r ~ F ~ F.`.`.`.8X-X-.`X-.`XIXIX-X1X5.~XI.H.8XV.kXd.k.X.o N l.o.b.o.b.b _.oXz.o.b.o.o.oXg.o.UXg.b.b.b.o.b.o.bXg.b.b.o.bX9.o NXt.kXtXtXtXj.kXj.rXj.b.b l N.b.b.o.b.b.oXgXg.c.c.c.c.cXg.c.c.U.cXk.c.c.c.U.c.c.c.c. .c.c l.c.c.c.c.c.U.c.c.c.c l.c.#.tXu.A.t.tX .tX X X d.Q.t Q ].t X ] ] 5 (.] I.3 7.G @ @.G K.h MXZ z.1.; y.jX0.xXC S.j.;.; 0.=.N h.}.e.N.N.sX>XB .[.gX3.-XH [XM.lXM # #.l.i.lXM x `.YXr J.. 2.EX0 T.w 8X-.e a.e t R BX-XD $ R.a.e R.MX1XIX-X- R.e.eX- 8Xs.nXP n.- o /.N.*.* a aX-X- R R a R BXDX-.eXD C / /.v w.@.jXp xXs R.a.ZXl.Z : $ sX1.e a BX-X-.eXD a.aX-.aX-.a.e c.e t.aXp.Y.Y & JXa.W R $ DXcXK nXUXK.j TXU.nX. !XH m.[.>.G.OXJ.].]Xx 5X5X9XoXl.2X9XI 3X1XIXD.w vXG v OXm.0 :XVXd.kXo.^XtXk.^.kXj ~Xj.b.b.b.bXz.b.b.o.bXz.b.bXz.bXzXz.b _.b _.o.b.b.b.b.b.b _ _ _ _.X.Q.Q.R A.&X@.I.R.&.AX@ 5 D qX9XV.`.8 3 ~Xt.k.HXIX1 g ' '.ZX1X- 3XDXD.' TXJ.ZX1.`.H.r.rXtXd.rXt e ~Xt.r e ~ eXtXj e e.r e.rXtXt eXtXtXo.rXtX*XdXV.`.8.`.rXtXt.^.I.k e.rXt F.`XV.`.`X9X9., m.u RXI.e.`.`.`.~.`.8 B.Z.w ' O O.@.y >._._X+X<.T I.,X- k cXJ.$XlXo.& 5.$ q 5.I 5.KXtX5.`.` ~XVX* F 3.8 ~.8",
+".uX9.k.kXoXk PX@ fX* ~.`X1.u gXw.j.j vXGXD.` ~X*X*Xt.rXdXt.r.k.KX*X*.K q } 5 q cXdXo.R mXXXDXD.9 v.Y.j zXZ kXM aX-XMX3 k V VXJXc 3XI.8.8.8.8X-X-.`.8.8.8 ~.`.8.`.`.8.`.8XIXJ I #.5.].K cXV 5.5 fXkXk.X.z.o.b.oXz.o.bXg.b.b.o.b.b.b.o.b.o.cXg.o.bXz.b.o.o.b.b.b.b.b.o.o.b.b N N.^XjXtXtXjXt eXtXj.X.U.b.X.b.b.b.b _.b.b.VXg.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c l.I.V.c.c.U.c.c.c.c.cXgXg.c.oXgXg.c.z.U.z.z.U l lXx.U.XXx.X.zXx.o.X.XXo.k.8XV.8XlXx T.2 ! = y.j.EX>X+XG vXn.j M.Y.EXr W.x W.x w.s.sXe t U GX=.=XpX7X7X#., `.[XH .F #.l.l.iXB XB :Xq gXGXG z.v 2 w.q y.n R B RX-XI.~ a R.e.eXc $.uXlX5X5.} 3 R.e.~.aXI.~.Z.wXLXU.-XK o /Xs C aX-X- R a B.a RX- RXI aXD 8 8 / G.v.B.;X>XqXq <.a R.eX,.e.*.e.e R R.eX-.eX- aXI a a aX-XIX-XIXD.a R 1XGX> &X0 9 v.Z RXDX,., :.9Xq x 1 $XwXlXOXKXK =XcXw.>XcXU D ) D q ( 5.2XJ T.9XD.Z.Z s s vXe v 2 2 JXJX3 m.R (X@.A.(.tXg.bXz eXj.b.b.b.oXz.bXz _.bXz.bXz.b.b.b.oXz.o _.b _.b.b.b.b.b _ _XzXzXz.c.6.f.tX@X@X@.f.&.& 5.AXx.$ qXV.8.`.8 ~.8.u.r.H.HX1.XXPXa s RX- RXI $ T.] !X5.H.`.`.H.rXd.kXtXdXtXt N.XXx.b.X.^ ~.rXdXt.r eXtXtXt.r.r.X.rXt.r.r.r ~.X ~XV.rXt.kXk.bXtXtXt.8.8 ~.8.`.5 : I.2XI.H 3.`X-.`.` F.~.~XIXI $ ' sXmX4.<X% >.FX+ [ : 3 3X-X-.}XIXVXV.`XVXt.r.k N 3.r ~XxX9 ( ) D q.$X3XV.H.8.8",
+"X*XxX*X9 P.RXk.k.o.X.r 3.~ 'XUXPX0XwXmXK $ 3.`.k.r.r.r.rXtXd.KXt.K.8X*.r.k.A 5 Q.].uXI TXw K.9._XnX>X4XwXhX#XB ., VXX kX3XX V `.8.a.8X-.8.8.8X*X-X-.k VX* a.aX-X-X-.` R.$ : mXH ).KXx I I.u.f.| Q X QX .o.X _.b _.b _.b.b.b.b.b.o N.bXg.c.b.b.o.b.b.b.o _.o.b.o.b.b.b N.o.b.b N.^X*XjXtXtXtXt.^.U N.b.b.b.o N.b.b.b.b.o.o.oXg.c.c.cXg.c.c.c.U.cXk.c.c l l.#Xg.c.c l.c.c.c.c.c.c.c.c.c.c.c.cXgXg.cXgXk.cXg lXx.b.oXgXx.b.bXo.bXVXd.8.8.8X*., c ` m gXc.p.Y.j.< v h._ 'XeXp.Y.[.pXB >.xX6Xb.. * * G / 2.v.jXB.[.[.iX.XH n.jXB.[XBXBXB.[X7.[X+ g.Y v.sXC . 2 ^Xm s.]XD B.a BX-X- R a kXD m 1 m 1 ` m.5 R R R BX- R 8.w.wXPXw .-XGXL.s t R t R.eX1.e B.a R.eXI 3.e 8.N / 2.v ^.4XfXpXp < t R.eX- B R.e B.eX-.~ aX- R.~.}X-X- aX-.eX- cX, a U 1XG yXwX0XG.nX,XDXDXD RX,X, $.a.a 1.Z $XD sXl yXOXU H v b.MXK.HXV.`.uXVXDXD s v v vXL.WXa.N.s.sX= 0 $.}.r.uXo.R e.bXgXzXz.b.^ eXjXjXz.o.o.bXzXz.o.b.bXz.b.b.b.oXzXz _.b.b.b.o.b.b.b.b.b _ _.bXz.o.oXz.bXgX9XgX9.X.$ N.rX*.k ~ 3.8.8 ~.r.r.kXt.u.8.DXO.nX5X1.a RX- h.wXl.] 'Xo.D.r : q 5 NXtXt.r e.X.z.I.z.z.bXt eXtXj.r.rXt.rXtXt.r NXd.rXtXt ~.` ~ ~.`.r.rXtXg.XXt.r.r.8 F.~.`.8.k.u ] g.D.~XI.`.8.~.`.` F.`XI.`X1 T $XqX+.FX7XBX% x k.Z D ].]X3 3XV.K.K.5 N.5X9Xk.f.zX9.5Xk | )XX.$ 5 q I.r.k.r.k",
+"X9 , ( PXxXdXtXtXtXk.k.8XIXV g.0 sXm.qXU.'X1 ~.r.k.rXt.k.r.r N.KXV q.rX*.kX9.kXk D.$ '.Z 1 y v.s.s.sX+ M.[X< 6 VXXXX V VXX X7X3X3 a 3X*XVX*.8.`.8.`.}X*XXX*X*X9.5.5.KX. } :.e c cX1X*XI.k.kXt.5.XXxXoXx.X.X.^.XXz.XXz.^.X.b N.X.b.b.o.bXg.o.b.b.b.b.o.b.o.b.o.b.o.b.o.b.o.o N.X.X.X NXjXtX*XjXt.rXg N.o N.b.X.b.o.bXz.bXz.b.o.o.cXg.c.c.c.c.cXg.U.c.cXg.c.U.Q.c.c.c l.c.c.c.c.c.U.cXg.U.cXg.c.c.cXgXgXgXgXkXgXg.b.b.X.o N.b N.b.k.r.8.8.a.`XV 3XIXcXc nXw M.<.YX% $.1.[.T k.d.S.F >.<Xr wXi.PXv.) 2 / / OX+.[.SXXXH.-.-XrXnX+.<X+X>.pX+X+ n.jXwXL.n.) CXv.) O H.n.' $X1 R.aXI RXD RXI.Z.aX, cX1XD $X, RXDX-XDX1 RXD.wXGXwXcXB.g &Xn.W.w t.eX- BX- R R R a.~ h.a t.N.N 2X6 wXf.C.CXnXpXq a a R.eX-.eX- aX- a BX-.~ aX-XD.eX- aX-X-XI.u a R sXp.Y & & & b.wXD.ZXD.aX,X, XD.}.a x.9 $ 8.w.n v.n y.4X=Xn v t.M.a 3.,X.Xw.-X0.E.@X>Xm.W.N.).).)Xv b.}.8 3 FXdXdXoXz.b.oXz.o.^ eXjXj e.^.bXz e.^Xz.b.o.b.b.b.b.oXz.b.b.b.b.o.b.o.b.b _ _.b _.b.b.b.b.b.X NXgX@.$ qX q qX*Xt 3.8 ~.` N.r.r.r.kXd.k.`.].0Xa.w B aXD T.0 4Xy.].2 (XJ )Xx I N.k.kXt.kXj.kXj.k.^XjXd NXt.k.kXo.^Xt.^Xo.^.XXoXo NXo.^.kXtX*X*.k N.^././ N N NX*.k.K.kXVXxXJ.%.|.ZX5.5.rXV.K.u.H.k.uX*.8.`Xt hX,.iX+XqX7XB h.2.5Xx ) : :X-.8.8X* ~.uXt.rXkX9 N.8.r.rX*.8.u.8XV ~ ~.8.8.8.8",
+" 7 } qX9XtXtXtXdXt.k NX*.H.0 g.2.9.j.OXOXO.HXI.HXtXt.r.r.r ~.5.k ) P q.rXt.r.r.rXV )XJ.1 vXa.).) /XfXr n ` V., VXX.lXMXB hX, ` V kX3 |X#., |X*.a.`.8X-.KXXXJ., VXX.KXI | } DX3 D ).0Xx : (.$X9 (Xo 5.uXx (Xx d.z.z.t.Q.RX@Xg.R.o.I.z./.bXk.o N.o.b.o.o.o.o.b.o.b.o.o.b.b.b.b.o.b N.X.b.kXjXtXjXtXt.bXj.^Xz.b.b.b.b.b.o.bXz.b _.b _Xg.c l.cXg.c.c.c.U.V.cXg l.I l.c.c.c.c.c.c.c.cXg.c.c.c.c.cXgXg.c.c.c.c.o.o.oXg.X.bXg.X.o N N NXtXV.8.r.`.`.}.`.a 3 1Xw.1 M.p.+.+X+.h n =.O.YXHX+.pX:X> wXf ^X= 2 O O 0.v.jXZ kXM x VXc.j . ..s.. .Xn.4.@.@XCXm v.v.N.4.s.)Xi.j.'XUX, 8 Y $ :X, D.MXKXK.aXc.,.} ` kXc.eXw 8X,XH.*.w.w.' [ n.[X#.hX+ y.jXc g s : :X- R.e.a aX, R.N.d.) 0Xf.v.BX6 wXfXn.F.M aX1X1.~.~X-X-X-.e aX- a.~.aX,.eX- R BX-X1 3 < <XqXG.Y &.9XP.9 s $ c hX,XD hXl.a.} < $ 1 $ B 8.D.n.w J H...s..XnXL.wXw y.E.jXmXG.Y &.Y 9 C t C.NX=.WXG `.8.a ~.r N.b.bXz.b.bXzXz.^XjXj.b N.^XjXj e.^Xz.bXz.o.bXgXg.b.oXg.oXg.o.o.o.o.bXg.o.oXg.cXg lXkXgXgXk q.f.f.&.A.f.f.X.5.k.k.KXo 5Xx ( ( q 5 A ( !Xy.0.'X,XD sXU 7 K.2.|.0.5.KXtX*.5Xo.5X9.^.5 N N.^ N N.^Xo.^.^.^.^.^.k.^.^.k.k.X.k.k.kXd.r.H.r.H.8.r.r.r.^.z.rXt.r F.8.`.8.`.`X5 ( gX1 BX5.e.k ~.k.HX5 N.`X* #.K.8.a.} ._.i n.M.8.` B.` cXIX-.8.8.r.rXt.k.r.`.X ~.8.r.u.rXV ~XtX*.r.8 ~.rXV.r",
+" |X9.5Xo.5Xo N N.^.^X9 )Xd :X..G @ 4.G 4Xy g.u c.5 NX9Xx :.$ ( P f I 5Xx.X N.5X9.kX,XKXKXG J.s % ^.@ n [.- k h V VXX kX3.i $ k.-.,.- 6 6 |X#.%X3 # hX3 V., V V VX3X- : 5.,.K `XJ.$XJ.$.$ 5 I.R.A I 5Xx.f 5.&.R AXgX@.&.6 ,X X .A.f i.&.oXkXg.o N.o.b.X.b.X.b.o.b.b.b.b.b.b.b.X.b.o.b NXjXtXt.kXtXt N.rXjXt.^ N.b N.^.b.bXzXz.b.bXz.bXg.c.c.c.c.c.c.cXg.cXg.c.#.o l.c.c.c.cXg.V.cXg.cXgXgXgXg.VXg.oXgXg.o.bXzXz.bXzXzXg _ NXzXz.^ ~.8.8.` 3X-X-.` RX-X,Xc.Y >X+.x W.pX+.YX+X+X+ >.i.dXG J w HXC.v.sXC H 0 9.; [.- xXl 1 1.-XnXbXbX=.s .Xb..X> & o O 2 G GXFX= bXC ' 'XDXD :X. 1XDXK h ` :.M.9.9.aXXXH s.eX. aXc.3.nXe sX+XwXpXc.1 =X0 M.wXGXlXcXc : a.a.a.*XDX, <.NX=.vXiX6.B.B.BXfX8X4Xp x 3 B 3 3X-X-X-X-X-XI.~.a R BX,XDX-X1XIX1 c c.a U 1XpXmX0 &XmXU.'Xw.Z `.0 1 1.9 h hX,XlXKXlXD.ZXDXaXG TX0X> 0 0 b b J.vXL..Xn.W._ v U hXs.Z U.d v v bXG hX*.k.^.X.z.U.U.U.#.U.#.zXk.UXkXk.U q.c.b./.b.bXg l.zXg.c.c.U l.c.c l.c.cXk.c.cXgXgXg.VXgXgXgXgXgXgXgX9XkXgX9 qXgXX.kX* ~ 3 ~.r.$.z I.R.R (.R.] )Xy '.nXDXDXPXU ! 'X1 B TXDXM a q.| ).kX*.k.r.rXtXt.rXtXt.rXtXt.rXtXt.rXtXtXtXt.k.^XtXt.rXt ~ ~ ~.8.8XtXt ~Xk e.r ~ ~.8.8 F.`.8.D.RXO.0.H '.`XV.K.8.5Xd.r.`.r.8X*X- a c.FXeXq.Y.~.`.`.`.` RX-.`.` F.k.r.rXk F ~ F F FX* ~XV ~.8.` ~.r ~.8.rXt ~",
+".K.kX*.r ~Xt.r.r.r ~XtXx.] ) 4 Y m.2XyXO.! !.nX1.8X*X*X*.5 ) Y (XxX1 ~ 3 ~.K.r.uXV.aXl vXe.=XvX=X= 0.1X+XJ.K.aX*.,XXXB X, U .-.-.,X..SX#X. |Xh.%.,X3 XB.- X3XJ 5XX #.u 3 3 c.K cX*X5.5.5.XX9.5X9.5X9.X.5.z.5XkXk q q.z./ q.I q.z.IXg./XkXk.UXk.U.U.U.U.U.z.U.z.U.z.U.U.z.U.U.z.z.U.X.b NX9 N.X.z N.X N.oXk.U.U.UXk.U.z.U l.#.U.#.#.I.I. . .I.I. .I.I. AX@.Q. . .Q. . .I. . .I. .I.I.I.I.I.I.I.I.Q.Q.z l l l.z l.Q.z.z l lXx.X (X9.u c.H.u.uXl.u h s n.j.jX: rX:X:X:X: M MX+.p UX> w &.>.>.qX0 HX0 & &XU [X;XcXw.-XwX<.x . .._XnXn ^...@ & H &.E 0.;Xi 0 JX0XPXc.nX, 'X5 x x.9.Z.9 y h.9XK x x x.j $XK $XM $.j.'XK.>.[ [.j.E.j HXG s xXDXD.Z h.MX, U 1.WXL.s.v {.@ w L.B {.PXfX8.jX+ h.aXD 3 3 3 3X, hX-Xc c T 3.]XI.0XD $.uXl.a.}.WXpXp.;.q y.'.nXU.O 1XKXHXw.,XD h.Z.M.- n T.ZXD R.a x v o.q 9 0 /.= 2X=.).) u.) UX1 RX1 RX- a <.W.NXL.Z a ~ ~ ~.^.bXz.b.^XzXzXzXzXz.^ NXz N.^.r l.^.o e.rXj.^Xz.o N.bXz.b.b.b.b.bXz.b.b.b _.b.b _.bXzXz.b.b.b.b N N N.z N.b NX*.r ~.8.8 F ~Xt.r.r ~.r.rX1 T TX5.wX5.nX5 gX1X1.`.3XJXB } V q 5.R P.kXt.k.rXt e.rXtXt.rXtXtXt.r eXtXt.r.rXo.^.rXtX*Xt.8.8.8.H.8 F eXt eXt.k ~.8 ~ FXI.`.`.k.2XO.0.]X5.8X5X*Xt.~.`.`.kX-.8.`.8X* 3.9 vXn $XI.`.~.`.~.`.`.~ ~.`Xd.8.r NXk.` F.` ~.HXd.`.8.H ~.r.r.r.8 ~.r.`",
+"X9.r.r.u.rXoXxXd.K )Xt ).&XJXoX5X1.%XOX$.O.> ! x.Z cXXXH.% T ) D.%.]XKXIXIXVXtXV R.a v xXL.s.)XF.s.x n `X3XM.}.} V `XB xXe.MXM 3XM x # xXlXwX#X.XHXHXc V 1 $XX XJX3.$., #.`.` 3 3XIXI ~.u.kX*.rX*X*.rXt.uXtX*.r.kXj N N.X N N.^.b N.b N.U N.b.b.b N.b N.b N.b.b.b.bXz.bXz.b.b.bXz N NXjX*.rXt.rXt NXtXt eXtXj.^ N.b N.b.b.bXz.b.bXzXz.b.b _.o.o.o.o.b.o.o l.QXg.VXgXgXgXg.c.cXkXgXg.c.c.c.cXg.o lXg.X _.b.b.b.b.bXz l.XXz.bXo e.K (Xl ).5 )X5 :XJX,XK 1 $ M zXpX8.<.<X4X4 SXrXq >.)XpXGXCXm b y 9XL v yXqXG yXUXw.2.jXwXrXpXb.).d.d p.).) ^ H JXC b 2 ^ / OXCXCXa.] R R.e a.e R.* R a.*.a <.e < aXD RXD a a.aXDXa.n yXw y.Y v v.. OXpXsXs t R a h R hXL u.NX= /Xv.vXfXiXbXF - -X=.{.xXnXpX, aX-X- R 3.aXIXIXD :Xc `XJ.,X.Xc D 5.0X5 a a EX4Xn H y o s R gXJX..jXJ.9.>X, U $.a n @ m., T kXK.9.w.nXCXC O O 0.@.@Xb p.W EXDXD.DX1 3.a a.*.WXaXL.ZXIXV F ~Xz.b.b.b.b _.b.b.o.b.b.bXg.b.o.^ e.^Xj.k e e.^.^.b.b.b.b.b.b _.b.o.b.b.b _.o _ _.o _ _.o.b.o.b.o.b.b.b.z.b.X.^Xj.k.r.r.8 ~.r.r.k.k.kXtXV.8.KXP.n ' $ 'XP.2 $XVX-.'.- h 3X*.k.KXo.k.r.r.rXtXtXtXtXtXtXtXjXt eXtXt.r.rX*Xt.kX* ~.r ~.r.H.8.r.` ~XtXt.k.z N ~ F.8.` F.`.~Xx (XP !XO.2X-.K ~Xx.uX9.K.KX9.K.5X9X*.` 1XG.}X-X-.~.`.`X-X-.`.~ F.`Xt ~ F.`Xt F ~.H.r.k.k.H.`XV.r F.8Xt.r.r ~.`",
+" NX*X*.r.H.$.R.|.f 5.kX9Xt cX9 : ).0X5 @Xy.>.E nXq.3.YXc h x mX..G.O =.,Xw VXJ V.1Xw.>.WXeXL.s /Xi.;XrXcXBXJ.a c.[XMXB.Y h.Z $.M aXDXD.MX- tX,.9 1.3XHXcXHX3 k $XXXX )XX 5XM.` 3.8.` ~ 3.rXt.u.k.rXt.rX*X*Xt.r.k.`X9Xt.^.^.o.^.o N.o.X N.U.b.XXz.b.b.b.b.b.o.X.o.b.X.o.b.b.b.o.b.b.o.b NXjXtXtXj.r.X.rXjXtXtXjXj.^.b.b.b.b.bXz.b.b.b.b.b.b.b.b.b.bXz.b.b.bXg lXg.c l.c.cXg l.c.c.c.cXg.cXg.cXg.cXg _ _.bXz.b _.b.bXo l.X.b.b.bXdXo 5Xx.|XJX@.2 D f.].uXH $.1XZ.<X2.JXA pXAXp zX4X+._XG o HXUXa.!XL.n sXGXL s.9XPXO.!.'.EXw.@ %X= u h < p.sXn H 0XC w O ^.= JXC.nXP.'XIX1.aX-XD.e R R.M 8 R.MXD RXDX,X,XD.a.}X, $XK.9Xw [XH.1 M &.E z HXw M R t R.*Xp U.N.) /.v.v.BXfXfXb pXFXFXbXf.;Xf.@.Y C.e.a R RX- aX-.e.aX,XDX1XD :X5.KXl.5Xl 3.M < EX4.@ yXCXL.n.DXDX,.wXD.ZX,.w $ n.>.M.'XcXl sXD $ h :.- '.!XOXC.! J w.@ z.y.EXw = 1 TXJXJ.a.e.aXsXs sXDXI ~ ~.^.bXz.o.b.b.b.bXz.b.bXz.b.b.^.b.b.^.^XuXgXt.r.^Xj.^ N.o N.b.b.b.b.b _ _.b.b.bXz.b.o.b.b _ _ _.b.b.o.b.bXg.o.b.bXtXt.r.r.H.rXt.rXt.rXt.r.rXVXVXU.0.n.n g.].HX1XI #Xc xXB U.a.`.uXt.k.HXtXt e e.rXt.r.rXt.r.r.r.r eXt.rXt.^Xk qXk )Xx )X9.uXx.u ~.r ~.r.r N N ~.8 ~ F.8.8.~X5 gXP 4XPXO.H.u ~X-.k.r ~.r.r.8.8.8 3.~ `X5 a.aXX.8.`X-.`.`.`.`.` ~.r ).r ~.`.` FX5.R.$.| (.$.R 5.k ~ ~.rXV.8.8",
+"X9Xt.r.r.u.K 5X9.K.r.KXx 3 q ,Xx | ) :.0XwXw.xXZ = [XG v yX0X.XHX..- o z 1 x `Xl.E.9.EXsXs.Z.s.....x M [ V.[ # VXB.-.,._X, h a.u R.a.aX-.aX- a.a R.a.a 3 `.lX3 3 #X3XX V.,X3.` 3.8X-.8.8.8.u.rX*.r.kXt.r.kXt.uX* ) q.X.r.b.X.b.X.b.bXz.b.U.b.o.b.b.b.b.b.b.b.b.b.X.o.b.b.b.o _ _.b.b NXzXjXt.r.kXt N.rXtXtXtXtXtXjXz N.b.b.b.b.b.b.b.b _.o.b _.b.b.b.b.b.b.o l.b.oXg.cXg.c l.cXgXgXg.o.b.o.oXgXgXz.b _Xz.b.bXzXoXzXzXg.o.bXo.bXd.r.k.k.r.H.H.D.H F.8X1.K R.9 n.gX4XA._._ .Xf MXp.pXG >XGX+.qXG.9Xa.w v.'Xc.9XG.!XU.'XaXL.;.@.s p U $ CXe *.@ & =XZXm 0 2 O 9.q oXO.KXlXI.~X1.~.a RX,XJX, T $ :Xs.Z 1 $.aXD.u R.w.w g.>.-.-., yXGXLX=XeXL.w R t t U v v.v ^XiXiXi.@ ^.v pXF u.)..X>.C.;X2Xr [.W.9X,X,X, T $ xXI cXl $XI.u.uX- c.e.` aX, x._X4X4 H H.n.nXlX;XK.9XcXwXl TXeX.XH $X,.9 t R R 8.}XD.Z yXUXC.>.>.qXmXn O 2 p.@.MXG.M B t t <XD.= v s B.8 ~.^XzXzXz.bXzXz _.b.b.b _Xz.b _ _.b.b.oXjXz.r.bXjXjXtXj.o.b.b.b.b _.b _.b.b.b.bXz.b.o _.b _ _Xz.b _.bXz.b.b.U _.b.oXd e.r.r.uXtXt.k.rXt.rX* ~.8.`.0XP.n.0 gX1.` ~.8.8.[XeXn .~.`.H.rXd.r eXtXtXt.rXt eXtXt.r eXtXtXtXtXt.k.5.A.A ).$ 5 f.A 5 5.`.8 FXt e.r./.k F.8 ~.8.`.8.`Xo.2.0XPXPXO :X-.`.8.~.`.~.`.~.`.~.`.~.`.8X-.~.u.8 a.8.`.~.`.~.`.8.~ q.8 ).`.r.8.`.r.5X9 ).K.k.K N F ~X*.r ~.`X*",
+".X FXt.k.r.rXVX9 ).%X9 Y qX*.&X3.K.8X-XJ.jX0 .X8XrXrXp.j.xXwXhXc.MX4Xn.@ y UX- x O.s G U R U U 0.sX4X> [.YXX V.[.S.1Xr.O 1XlX5Xl ` cX-X- aX- R aX-.aX-.a a a a < a #X3 V.fX3.` 3.8.8.`.`.8.rX*.r.k.rXt.r.r.kXx QXxX* ~Xd e.^XzXz.b.bXz.b.U NXz.o.b.b.b.b.b.b.o.b.b.b.o.b.o.b.o.b _.oXz N.kXtXtXt.k N.r.kXtXt eXt eXjXz.b N.b.b.bXzXz.b.b.b.b.b.b.o.b _.o.bXg.o.bXz.b.o.o.oXgXg.V.o.b.b.b.b.b _.b.b _.bXz.b.bXzXz.b.bXg.X.bXz.b N.b.K.r.kXVXV FXdXV.H.8XI 3 a #.Y x E....XqXp.xX+.x >.@ J.E.;X+.9 s s.DXl.9 1XOXPXw `.nXLXCX>Xi.s.M x U.W / o H y &.jXC H oXC s.n.5.Z.u c cX-X-XIX- :XHXKXwXUXw.,XJXc.%X5X, R.w.n sXm m XM 1.[ yXn.=.W.W C t t CXa 2X= w ^Xf w wXi.v.).) U t.s ..4X8X>X>Xn [X< 1 1XJXD 1XlXKXlXcXl 3.e.u c.` ~X-.~ R $X+XpX4XnX>.q sXa.2.2XJ.O n.OXw YXD.9 # h $XM aX1X,X,Xe.w.w._ g.j.'.j.q & H J v.s /.) /.).W.W.* t C GXLXl RXV.r.^.b.b.o.b _.b.b.bXz _.b _XzXz.o.bXz.bXjXj.I q NXj.rXj.^ N.o.b.o.b _ _.b _.b.bXz.o.bXz.oXgXz _.b.o.bXzXz.b.c.o.b _XdXtXt.r.r.r.HXtXtXt.k.r.8.8.K.'XyXP.0.0.~.`.8.8 hXc E.F.<.u.8 F.u.r.r.r e e.r e e e.r.r eXt.rXt e.rXtXt.kXtXxXo.5.5.k.uXo 3.u.r.8 ~.rXj.X N F ~.`.8 F.` F.u mXO 'Xy.! m.8X-X-.`.`.`.`.~.`.`.~.` B.`.~.8X-.`X-.` a.`.`.`.~.` ~ ~.$.r.8.` F.8.8 ~ 3.k.8.8.8.`.8Xt.rXV.8.8.5",
+".5.uXtX9Xx.$ I.| D ( ) (Xk.kX* ~X*XI.H.K.9XwXp.@Xq...j.;.+.TXG a.MXnX>Xf.jXp._Xq 2.).= C.e h CXqXF..Xp zX7XM XBX<XwXHXc.-XcXl.] | `X- RX- RX-X-.a.e.aX- a a.a a 3XXX3 V kXM #X3X-XIX-.`.8.` ~ ~.rXtXt.k.f ) 5XV.H F F.rXd e _.bXz.b.b.b l.o.b.b.b.b.b.b.b.b.b.o.b.o.bXz.b.b _.b.b.o.b.b N.kXtXtXt N.rXjXtXtXtXjXt e.^.b.bXz.b.b.b.b.bXz.b.b.b.b.b.b.bXz.bXgXgXz.b.o _Xz.b.b _.b.bXz.bXz.b.bXzXzXzXz.b.bXz.b.b.bXz.bXg.b.bXoXz.b NXk.&XdXtXtXtXoXtXV.8.8X-XI hX7Xe.mXeXq._._.<.xXr.x.<X4.x H.E.9.n.]XDXc 1.a T $Xc.Z.Z.w o H ^.s vXl.W.W.NXm H = HX0XG oXC 9.D.wX-.KX5X*XI #.KX-.aX1 :X,.aXD $XD :.]Xl.Z.aXDXa.n.!X..-X3 # 1.9.x.s 2.W 8 C.N.N.vX=.vXi ^ {.vXi / wXn.W x._XpX+.@ ^XfX>.@XpXn h t RX-.~X- B.}XKX, R a 3 c.u.`.~X-XD xXGXrX+X>X> H.n.0Xl.n x x.wXK.Z.w.aXl h $XDX,X, $Xe.Z.w.w.Z.W $.j.9 9.' 9Xm.qXC o 0 2X=.= /.N.WXw.jXG 9.a.8.r.r.b _.b _.^.o.b.b _.b _ _.b _ _.^.o.bXz.^ e.^.kXj.^.k eXj.oXz.b.b.b.b.b _ _XzXzXg./ i. .6.#Xz _ _Xz _.o _Xz.c.o _.b.^Xj.k.k.^Xt.rXt.r.rXgXx )X9 IXJXPXO gX5.`.`.rXI 3.-Xe EX4XMX-.`X*.r eXd.r e e eXt.r eXtXt eXt.r.rXtXt.uXt.k 5.$.5XJ.$., 5 q.5 ~.k FXt.rXkXx.r.8 F.8.8 ~.`.r D.0XOXPXP.| c.`.`X-.`X-.`.~.`.`.~.`.`.~.`.~.`X-X-X-.`.`.~.~.`.X.K.8 ~.8.` ~.8.`.8 ~.r.r ~.8.8 FXt.r.8XV.8.`X*",
+"X9.r.k.$X5 I ) q.$Xo.K.r.rX*Xt.rX* ~.8.`.`Xc.wXc.xXr M M W xX,.a R.M.CXfXCX>XGXnX=.) 8 aXD R.M.w *.s ^X0.[Xp VXc x.ZX,X,.~XIX-X-XIXIX-.a.` R B RX-.a aX- 3XV.u.K.8 3XM # VX7 V.gXB.}XIX1X-.8.` ~.8 ~X*.k qXk.r.8 F F.H F ~Xd.^.^ lXk.^.o l.b.b.b.b _.o.bXz.b.o N.b.b.o.b.o.o.o.b.b _.b.o.b.b.b N.bXg.kXjXt e e eXjXjXz N.b.o N.o.b.bXz.b.o.b N.b.b.b.b.b.bXg.o.b.b.bXz.bXz.b.b.b.bXz.b.b.b.b.b.b _.bXz.b.b.b.^Xd.b.^Xx.b.bXz _ N.b ).&.&.f Q.&.|.R 5 I.2 V T :.GXc UXe.m.m ..x.x.xX4.{X>X2 &.+.j ' 1.w 3Xl :.ZXl.5 s.9 yXG &.@ 0 x 8Xe xXsXmX>X0.+ y 0 ^XC 9Xa.D t R.5Xl :.8XIX*.`.a.~.aX1XD RXD R c $X- R.Z.w.9 ! n TXMXMXM.l 1Xr v.s.N.=.N.N /X6.v LXf.PX=Xi p.E s.YXmXUXw y.+ J.sX6.@.4X> .Xn U tX- aX-.`.H.e.e t tX,X, #.`.eX-.} xXpX> H H & y.'.9 8XDX, hXDXG $.}XD $XDX,X1XlX, 1 $.w $.ZXeX,.wX, sXl.nXGXa s 9XC H o 0 0 0 O /X+ =XL 1XI.8.r.^.bXz.V.o _ _.c.cXk.b _.b _.bXz.o.o N.b.^ eXt lXk.^ eXjXtXj.b.b.o.b.b.b _.o _.b.o.c.U.U.U.c.o.b _ _.b _ _.bXgXg.^.o.^XtXd.k.u.u.uXoXx q I QXx (X*XVX- cXV.`.` F.8.8X* `.i pXq.Y.}XI ~XtXtXj e ~ e.r.rXt eXt eXt.r e.r.rXtXtXtX* 5.$.$X3 q V D ) : FXt F.r.r.^X9.r.`.8 F F.8 ~.`.5XoXPXOXP.2.0.~.`.`X-.`X-.`.`.~.`.~.`X-.`.`X-X-X-.`.`.~.`.`Xt.`.5.8Xt.8.`.8.`.8 ~ ~XV ~.8.8.8Xt ~.rXt F F.`XV",
+".kX* 3 I q N.5XtXt.rXtX*X*.rX*.r.8 F.8.r ~.`XI.a sX+ MXpXc.WX,X-X1X,Xp.@ wXC.;.. pXe B.D.ZXI.} hXs 2Xn.;.[X7 k.i $ UX5 cX, cX, c h :.aX1XDX1X1XI 3X-XM : cX-XV #.~X-XM.FXM.F >X%.lXc.a RXI R.`.` ~XV.5 IX* F.8.8 ~.8 F F.r.k.R.&.( q.XXx.z.bXz.b _Xz.b.b.b.b N.o.b.b.b.b.bXz _.o.b.b.b.b.o.b.b.b.oXk.b.b NXz.^.^Xz.^.b.b.b.bXz.b.b.b.b.b.b.b.b.b N.b.b.b.bXgXg.b.b.bXz.bXz.b.b.b.b.bXzXzXz.bXzXzXz.bXz.bXzXdXt e.^ N l.b N.b N.b.^ (.b (XxXk.RXk.z.].k.5.k $ : KXw E.m E EXn.@Xn ^Xf.@Xn W yXU ! s T cXJXc.uX3XlXKX.Xm ! H.E.@ .Xs.MXD h x.9 b.+.> & oXCXP b vXD RX-XD R 3 # c c 3XI cX1 RX-.Z R T.8 x.* R s.wXcX.XcXMXM c.a # x.Y > 0Xv.v 2X=Xi ;XfX6 {Xi p..Xs u.W.M.w.Z.w.ZXe v.. -XiX6.{.J.F.i a.eX-X-.e TXl x.M.a.a.} c.~X-.eX,XpXG.j HXC.E s.w.DXlX. $XD.O.,.ZXw :.3XVXlXK 1XJXwX..MXK.3X.XD nX5X,.9Xw 8X5XLXL.n JXm H HXC.vX= GXG.YX5X-.r.r.^.b.o.c.cXg.c.c.c.U.V.o _.o.b.b.o N.b.b.^ e e.^XtXk.r.rXj.rXz N.b.o.bXz.b _ _ _ _.b.b _.b.o.b _.b.b _.b.b.bXg.bXg.^XjXx.A.X ) ).R.| I (XxXoXt.`.H.H.`.`.`.`.` ~ ~ ~XVXc.i E._X+Xc a 3.H.^.rXj.rXt.rXtXt ~Xt e.r e.r eXt.rXt.u.rXXX9 cXVXX c cXt.H F F.`.`XtXtXt.8 F ~.8.8.8.` F.`X1XVXP !X..2 3.a.`X-.`.`.~.`.`X-.`X-.`.`.~.`X-.8.e.`.`.`.~.8Xx.^.8.r.8.` ~ F.8.`.8.8.8.8.8 ~ ~.rXt F.8.`.`.X",
+"Xo.rXt.r F.r.k ~Xt.r ~Xt.r.r.r.8.8.8.8 ~.~X* $XJ $.-.jX+XKXKXDXIX1XDXp.x.@ J...s..Xe CXDXI RX,X,.N p.sX0X%.[X<.S.S 6 kX-.-XJXBX-X3 c.uX#XJXlXw.$ T $ |Xl.e.%X* 3 h 6XMXB.gX7.[._Xq XDXI.`.8.` 3 )XlX3X1 3.` 3.8.` 3 ~.r V./.f.5.X.Q ,.Q N.o.b.o.b.b _.o.b.b.o.o.b.b.oXg.b.b.b.o.b.o.b.b.b.b.b.b l.b.b.b.b.X.b.b N.b.b.b.bXz.b.b.b.o N.b.b.bXzXz.b.b.b.bXg.oXz.bXz.bXz.bXz.b.b.b.b.bXz.b.b.bXz.bXz.b.b.^Xj eXt.rXdXx.oXzXzXz lXxXgXx.XXgXxXxXo.5Xt.5.u cX- #XlXq.9.F._ E.<XnXi 0 0Xf.< M.Y.qXOXD 'X- xXl `.uXl s.0XO M y.@.. 2Xs.* tXMXIXK o =.EX0 w o.q bXaXD RXI.a a.~XI.u.HXlX1X-XD $ R kXc m.nX.XPXG.j n =.OXc 1 c.}.aXMXMX+X%...s ^X=Xf.@ w.PXF.@ v MXG [XKXK.-X..Y ` 1.-.N U 2X= % .Xf.JXn U C aX- T `X.XJ.- `XKX,XD.~.`.a.MXGXG y H HXmXL.n.ZX, mXDX,X..Z UX.XwX. t :Xc 1.3.Z nX,.w.3X, tXJ U RXJX;X1 8XD.wXaXaXL 0 H 0.v G.).N sX,.H.u e.^.o.o.c.c.c.c.c.c.c.o.b _.bXz.b.b.b.b.b.^ eXtXj.^.IXjXt e eXj.b.b.o.b.b.bXz _.b.b.b _Xz _.b _ _ _ _.b.bXz.b.oXkXz.b.o.8 qX9.5.5.K )X9Xo ~.k ~ ~ F F.HX1.`.` ~.r.r.u.u [.[X% >XZX+X3 : q.&XkXdXt.r.r.u.rXtXd e.r eXtXtXt.rX*XtXVX9.$ V.$.,X3.f NXd.r FXd.` F.r.8.8.8.8 F.8.H FXI.`.8.~ c.2X.X; 'X-X1X-.~.`.~.~.`X-.`.~.`X-.`X-X-X-.`X-.` N.8 F.~.`.8.k.8.`.8.`.8 F.` F.8 F.8.r.rXt ~.8.`.`.a V",
+" N.r.k.rXtXtXtXtXtX*.rXt.r.u ~.` 3.8.8XIXo ).] 1.-XD x : :XKXI.`.` R 1X4 b JX=.W p.W.DXDXDX1 3 U.M.s 0 WX<.[X7.L.-XMX#.[ # X3Xh 3 V # 3X.X1XD.] 1 #XI.% 3X1 | :.aX3XZXcXBX7XqXp._ E.l a 3XI c D TX1XVXIX1.~XIX-.` 3 # IX3.K.u 5 A Q.&.(.b.b.b.^.o.b.b.b.b.b.b NXz.b.^Xz.b.o.o _.b _.b _.b.b.bXgXg.b.b.b.b.b.b.b.X.b.b N.b.b.b.^ N.b.b.b.b.^.^.^.^ N.b NXg.o.b.b.b.b.bXz.b.b.b.b.b.b.b.b.b.b.b.b.bXz.b.^Xd.rXtXt e.X.bXz.X.c XX@ Q AX Q A f.z.7Xt ].k.%Xx : I KX<.1.lX4 J M ^.vXi.@ HX0.'.nX5 8.eX- 3X5.e R B B.D.'Xm y...).s 8 t R.}XM $.j H.> & b JXmXLXLX, a.9XJ.u xX1 g.K 'X5 cX-X-.,XlXJXUX;.> n ! !.q.G = ` `.i 3 #.l XBX+Xi ^XfXfXf 0 ^XnX=.j v.-XK 1.- $ :.-XB `.-.-.i C u p p %.CXf . vXD.* BXl.ZXIXD $X,XlX-.u.~X-.e U._Xn.@.@.EXr.E.s ' s g.'.*X. x.MXcXlX. 3.'.- TXG n xX,XlXc.Z.aXKX,X, :X5.K.~X- R.Z x v.j J.vX= H.=XL.w.u.8XtXj.b.b.c.V.c.c.c.c.c.c.oXz.oXz.b.o.b.b.b.b.^Xj e eXt NXg.^XjXj.r.^.^Xz _.b _.b.b _ _ _.o _ _.b _ _Xz.b _.b.b.o.o.oXg.b.^.r.^ ~ ~.` ~.5 P.5XtXt.r.` ~.8 ~.`.8 ~.HX*.r # $X#.TX4 >X7XHX. D )Xk A ~Xd.rXd.rXVXtXt.rXtXtXt.rXtXtXtXt.uX9X9X9.KX9.5.5 N.^.r FXx.r ~.u.r ~.8.8.8.8.`XI.8.~X-.8X-.] m TXUXlXlX1X1.`.`.`X-.`X-.`.~.`.`X-X-.`X-X-X-.5.X.`.` ~.8.u.`.H.8.8.8 F.8.`.8.8.r.r.r.r F 3.`X-X,.-",
+".^.r.r eXj ~.rXt ~Xt.rX*.rXt.8.8.` 3XI qX9.% q.uX-X1.aXlXo.u.H ~ 3.H UXGXe.v.s.)XeXe.ZXDXD.DX,XD u.)XL.@ zX<X%.1 W.[.h [XB V.} # < XMXM `Xl.e TX3Xl 3 ` '.~ (XJ.}XJ.[ kXBXw.FXr.p.g.i .iX3 c ] c.HX-.`.~XI.8.~X- cXJ ( :.u.5 qXx f A.z l.^.o.bXz.b.o.b.b.b.o.X.b.o.X.o.b.b.b.o.b _.b.b.b.b.b.bXg lXz.b.b.b.b.b.b.b.^Xj eXjXj e eXjXj.^.^XjXjXtXt eXj.^.bXg.b.b.b.b.b.b.b.b.b.b.bXz.b.b.bXz.b.b.b.^Xd.^Xd eXt eXd.r N.bXo _.XX .&.&.&.tX@.t.& AX@Xx.&.$ ] )XJX5 `., [.jXpX2XC.=.E 0 H 0 = v ' ' BX1X-X-.K.a.~X- R.w.'XC H bXb.).a.a.a.}.Z s y MXC.O O J.q b.Z K.wXc T.2 m DX. gX; DXKX-XIXDX,.w.n sXU 9 o x.Y nXK ` x.a.a # # X>.@.@XfXiXi.v.B.)Xn.M.* CX1XD 3 BX, R.}.M.a < h R.a.* uXFXb.{.C.@X%X+ U R.eXl.~XIX, a RX-XIXV.~ t.*XeXpXq v.@.j y.9XGXm $XDX,.ZX5X,XDX,XD $Xl h x x $ $ h.ZX, cXD t R.eXI.~X-X-.` R.wXLXp.E 0X=Xv.s.) xXD c.r.r.^ _.c.U.V.c.V.c.c.c.o.bXz.V.b.b.b.o.b.b.bXz.k e.rXj././.k.k.r eXjXj.^.^.b.b.b.b.b _Xz _Xz _.b.o.b _.b.b.b.b _.oXg _.b.b.kXt ~ ~XX F.k.R qXt ~.^.r.r F ~.u FXVXVXx ) I.,.[Xr E .Xq 1XDXIXt.k NXd.rXdXV.k.k.k.rXd e.rXt e.rXtXtXt.r.5.rXVX*.uX*.r.k.^Xj.8Xt.H.H.H.8.8.8.8 ~.8 F F.H.`.` aX9 #Xw ! g yXU.n R.eX1.`X-.`X-.`.`.~.`X-.`X-X-.`X- ~.K.~.`.~.~Xt.`.8.`.8.8.8.8.8 F.8 ~.r.r.8.8X-.` <XM 1",
+".^XjXt.r.rXjXtXtXt.rX*.r.rXV.8 3.8 : )X3.$.kXt.uXVXI cXI 3.KXt.H.r cXDXnXG O v.N UXq BXIXDX,X, < 8.W.)Xe.@.pXrXnXpXG nXB #.l.lXM x # aX-.*X- a R c.e.eX-X1 3X- <.i `XBXB n.[.p.g >.m >.} `.,XI.`.`.8XI.`.`.~ h.5.2.K R.u T.5 4.fX9.^ NXx.^.o.^.b N.o.b.o.^Xg.b l.b.^.b.o.b.b.b.b _.b _.b.b _.b.oXgXz.b.b.b.b.b.b.o.b.^ e eXj eXt eXt eXt.r e eXt eXt.^XzXk.X.bXz.b.b.b.b.b.b.bXzXzXzXz.b.bXz.bXzXd e eXt e.r.r.r.r N N.b.b.^.X.b.b.b.b.^.X.b N N.X.X.k.uXt.HX* 3.a $.Y.YXLXp &X0 J ^ O & 9.nXoX1X- RX- 3X-X1 RXD oX; =.+Xp MXe.j :XM.Y.Z.9 oXm.qXC 0 9Xm v $ s.w.nXlXDX, BX,X5X,.D R.* R R.w 1.>.O.G =XU.jXw nXcXc.u.}.} #.FXcX>XiX= /.B.BXb p U C a B.e RX1XIXI R.a a R < a a a.e t tXs p.PXfX2 z WXr.-Xc k :Xc D.Z $X1.eXVX1 R a a U..XpXn.@ & &.9 s TXa $.DX,.ZXDXl xX, UX,XG.wXq xX,.ZXVX, $X, R.u 3 3.~ B R $.w s H 0 2Xv.).).)XG aX5.rXj.b _.V.c.c.c.c.c.cXg _ _Xz.bXz _.b.b.o.b N.bXz.^XjXtXgXt NXgXjXt e.rXjXj.b.b.b.b _ _ _ _Xz _ _.b _.b.b.b.b.b _.o.cXz.b.b.r.r FXt.r.8.kX9.kXtXt.rXj ~XtXd.r.uXd q I.A.5.u x .i._ $XB )XJ.| (Xx e.|.X Q ) Q.r Q ~XtXtXtXtXt.rXtXtXt.k.k.kX*.r ~X*.^.XXj F.8.8.` ~.8 3 ~.8 F.8.8.`.~.`.`.~ 3 ) kXG y =.+.j.Z 3X- a.`X-.`.~.`X-.`.`.`X-.`X-.`X-.~.`.`.`X-X*.8.`.8.`.8.8.8.8.8.8 3Xt.H F FX-X-X,.Y.i",
+".kXt ~XjX*.rXt.r.rXt.rXV.r.8XVXV DXX q ).rX* ~Xt.8 ~ ~.kXV.$ N qXtXo #.M.j y J u UXM RX,.Z.ZXD a <.W.) 2 v.@Xn vXi.s.j.j.F.F.l.l kX,.} R.e.eXDXD aX- RXIXVXI h.l X%.Y.FX+ > >.F.FX%.TXc.a.a 3.~X-.`XDX5Xl ( c cXI : 5 m IX9Xt.rX*XtXg.rXtXj.k e.^.^ NXx.zXx.(./.o N.b.o.b.b.o.b _.b _.b.bXzXg.c.b.o.o.b.b.b.b.b.^.^XjXt.^ N.b NXzXjXt eXtXtXd.rXdXj.^Xg.X.b N.b.b.b.b.bXz.b.b.b.b.b.b.b.b.bXz.^ eXtXtXtXtXt.r e.^Xd N _.X.bXz.X.^.b.b.^.XXz.bXx.bXx N.kXt.H.8 3XI.Z.Y.s b H.+ H 2.v &.!Xa 'XDX-X-X- 3XJXcX-.DXK.T.OX0 WX2X>Xq.- ., 1.ZXmXC.!.> b.+ !X; gXc ' '.'.' :XlX1.ZXD RX- 1.ZXc ! =.3 KX.Xc.j kXwXcX7XM.}.} h.l X+XnXb.)._Xb.j vXr.9., $ : s.ZXc.w ' sXDXJ c.,X5Xc :XlXl.- x....X:.{X2Xr.[ xX, x.} c h.a 3X- RX1X,.e R s.} t._X4Xp.E HX0 y s.'.Z.Z $.Z 1XDXD.Z $ x Xq $ xXeXI.ZXK $ TXK `X- 3 RX-.ZXL OXC 0.v.).; 2 *XL.D RXtXt.^Xz _.V.U.c.c.c.c.c.oXg _.b _.b.b.b.b.b.b.b.o.b.^XjXt N.^./ NXt.rXt eXtXj.^.b.b.b.bXzXz.o.b.b _.^.b.b.b.bXz.b.b.b.U.^.b.b eXt F.8.k.8.r.f N.rXtXtXj.k.X.r.$ q.fX@XxX*.u 3XM.Y.i x : # q.A.z.zX@ q.R.X q A (.R NXtXt e.rXt e.rXtXt.^.^.r.r.kXt.r.^.KX*.8 ~.8.8.u cXV ~.8.8 F F F.`.~X-.`X- 3 xXK vXw &XCXrXcX1.`X-.`X-.`X-.`.~X-X-.`X-X-.`X-.`.`.~X-.` 3.`.8XI.`.8.8 F.`.8.8 ~XV.`X1.~X1 R 1 1._",
+".k ~X*.r.rX*.rX*.rXt.r ~.8 FX9 D q D c.rXtXtXt.r ~.8X*.u ~.A f f.R |.$.-XU & H.j.Y.,X5.Z.wXD a tXD CXa C v 0.s 2.= /XGX+XcXBX7X7.-X7X< kX, x x 1 :XM 3 a.e 3.`.} #.i .-.lXq EXq EX+ [X<Xh nXp RX- 3X- R :.,X3 `.a :X9 T.5X5XI.8X*XtX*.^.K q.kX*.r.kXtXx N.& Q.&./.z.o.^ N.b.o.b.b.b.b _ _.b _.bXg.cXz.b.bXz.b.b.b.b.b.b.^Xj.oXk./.IXk.^XtXtXd.rXt.rXt.rX*Xg.X.b NXz.b.b.b.bXzXz.b.b.b.b.bXz.b.^.b.^Xt eXtXtXtXtXt.r.X.^ NXz.b.^.b.o.^.o.^.o.^.b.b XX@X@.z.R.z )XkXx : ` oXw.O [X0.E.v w & oXG.n.K R.~ R RX. mXD $.ZXU.OX+..XF U.M t u.a.w sXmXC.O.G yXZ @.O.O Y @.G @ !X;.% : 3XI.aXl gXUXwXmXwX..,XB 1XK.-.gXcX3.i h hX, 1.YXcXn . ..NXe.jXU n cXH x g.9XeX.XGXKXJ R.3 : mXl T 'XKXK n.YXnX0..X6X2X4X4Xn.l a a.e.a a.a.` a.~XI : cXc XKXpXqXnXpX> & y sXK sX,X1.w D xXl.n $ $XG x.wXDXlXIXD.5 c.D 3.u a 3 R UXaXLXC 9 O.N /.N H.W xXsXIXo.rXz _ _.c.c.c.c.c.c.o _Xg _.bXz _.b.o.b.b _.bXzXz N.b e.o e.r.^ q.bXtXt eXtXjXz NXz.oXz.b _.b.b.b.b.b.b.b.b.b.b.b _ l.o.bXzXt.r.r FXo ~.r NXx.^XtXj ~X@.k.&X@ qXkXt.r.k.r.u 3 VXMXB #.`.8X*.b N NXzXdXt e.r.r.r.r eXt e.rXt.r.rXt.rXt.k.^XtXt e.rX*.^.^X9 ~.` 3X*XVXo 3.` ~.8.8.8 F.`.`.~.`.`X- 3.9XnXnXh.+Xw.Y.i aX-X-X-.`X-.`.`.`XV.e RX-.~XV.~X-X-XVX-.HX-.8.`X5.8.`X-.`.`X1.8.8.`.`.~ R h.Y x._",
+".KX*.r.KX* ~X*X* ~X*.8 F.8 ~XV.X.k.uXt.uXt.rXt ~ ~ F.r.r ~.$./ 5.f.A 5XcXw H & yXc.S x $.w.aXD.aX, a U.M._Xe U.N.).N 0XG.jX>.EXpXGXp kXM.- ` :X,XX ` c.e 3X-.`.KXB .[XB.mXq._Xq.mX%XpXpXpXe Xq aX-.8 R 3 :X-.8 : q |X9.u F F.H.rXV.K ).& I.k.r.K.X 5X9.7 ) ).5.^XtXtXjXj.o.b.b.b.b.o.b.b.b.b.bXgXg.bXz.b _.b _.b.b.b.b.b N.XXg.X N.kXtXtXtXtXt.rXtXtXt e.b N N.b.b.b.b.b.b.b.b.b.bXz.bXz.bXz.b.^Xz N eXt eXt.rXt.r.^.^.bXo.^.bXzXz.bXzXzXz.b.b.oX@X d.t.tX@.Q.R q.R.] | :X. n vX0.@.@X>XC.!.' ' 3 B.a : $ $.*.w.w.Y KX0 n.x .XrXq n.W U 9 vXm.OXH g.9 m ].5.5 $ T 4 !.] 'X5X, 3 B.'.DXU s gX.Xc ` `XM .Y .- V 3 $ a h.Y.-Xn.... E.M CXDXD.D.aXD h U hXe t.i <.M.a.a x cXD 8 R U U U U U..XnXi ;.4XfXn.YX, < < a a.} < a.a a cX-.K c.i.a <..Xp.@.j H vXw sXDXDXJXc T DXHXl.9XKXK n 1.9 :Xl :X5 3 3X- aXD U.w.s 9XC.v.N.N.N t C.W vX- 3XoXj.o.b _.c.c.V.V l.c _XgXg.o _.b _Xz.b _.b.b.b.b.b.bXz N.X.rXj lXk.kXtXt eXt e e.bXz.b.b.b.b.b.b.o.b.b.b.b.bXz.b.o.b.c _Xz.^Xd e.r ~.u N.8XoXoXtXtXtXtXk./Xk.k.r e.rXj.rXt.k.r.K #.r.`.8.r.k N.b.b.b.bXzXdXj e eXt eXjXt e e e eXt e.r.^.kXj ~ eXt e.k N N.r.8.8XI 3 :X5 $X1X1X1XI.`X-.`.`.~.`X-.a.lXGXnXC M MXn hX-X-X-X-.`.~.`.~ DXV c c 3.5XVXl.`X3XI.5XlX5 3 5.KX5X5 c.K.K :.K.5 3 a #XcX7Xq >",
+" V qXMX9X9XX.KX9X*.8.8.8.8.8.r.k.k.rXtXt e.rXt ~.8 ~X*X*XVX9X*.r.uXd.r 3 v v 0._X,Xl.MX,.n R.a.}XD tXDXDXe.M.a < t.NXG.s vXa.s 2.)XpXc.Y.} t a.a a.a 1.a.}X-.}XXXXXX.[ ._.m._X4 UXrX+XnXeXe p x $ hX,.G `XKXcXX :.K.8.` F.~.`XI ) 5.$.5XVX9X3XX 5.$ 5XxX9.rXtXj.rXjXj.^.b.^.o.b.b.b.b.b.b.b.bXg.b.b.b _Xz.b.b.b.bXz.b.b.b NXz N.^Xt eXtXt.r.rXt.rXtXt.r N.kXt.^.^.b NXz.b.b.b.bXz.bXz.bXz N.b.b N.b.rXtXt.rXtXt.r N.k.^.bXz.b.bXz.b.b.bXz.bXz NXz.b.^.b.^Xo.oXdXd ~X*.u.}.u.Z.9Xe.+.j 0 O.q 9.0.n R :XU.Z s.Z.ZXa.' =XrX>Xp.<._XnXrXe.W s.jXUXKXcX,X1X5 D 3.`X1X- 'XU ( $X5.uX,X- BXsXa s.>XK ` x XcXcX3 $XI.}.a h.9.-.x.... u <X1X1X1.0.w R U uX4 C._.iXe E < <.aXD t.* C C u u EXnXeX=XbX6.@X>.@X>Xq t < t t.M.} a a a 3XV.~ a t < t C .XGX>Xr.EXUXG 8XDXK.]XK DXwXH ! n gXK :XU : 'X1XIXI s x.ZXG v b & O.) b.9.W CXs.wX5XIX1.X.b.^ _ _.U.V.c.cXg.o.o.c.c.VXz _.b.b _ _.b.b.bXz.b.b.o.o.b e.r.r.k.oXk.^Xj.rXj.rXj.o.b.b.o.b.b.b.bXz.b.bXz.b.b.b.b _.UXz.bXz e.rXt.k.r ~.`.z.f.kXt.r.rXtXt.rXtXjXt.r.r eXtXt.r.^ ~.8 ~.rXj.^.b.b.b.bXzXzXz.^XjXjXj.^.b.^ e.r e.r eXt eXd.k eXj.k e.r e.^.b.r F F.8X1.5 xXl.w h $ U RX-.`X-.`X-X-XD.,XG._X4.J.F._.lXB h aXI.~X-.`.~X- qXc qXM (XX k.5.~ 1 ).,.5.K.H.] )XK ) DXJ.$ ` m 1 h X+X<X2 [",
+" c 3 )XMX*.u 3 3.r.`.8.8 F.r.r.r.rXt.rXt.rXtXt.r.r.r.r.r ~.K.u.u.r.r.u.H s.s.W.W.i cXD.w x RXIXD.aXDXD cX, < <.aX, u.Z u.N * / / vX+ .9 x x x $ h.} #X, c 3 3 3 h # X7.[Xq >.xXqXq p [ U EXq.xXnXe.s vXn v.1X+.-.- `XM.8XMXV., ) B c `., # 5 I.u.KX*X*X*X*.rXtXt.r.^.^.^.k.^.b.b.b.b.b.b.b.b.bXgXg.bXz.b _.bXz _.b.b.b.b N.^Xj.kXtXtXtXt.rXtXt.uXtXtXt.r NXt e.r.^Xz.b.b.bXzXz.bXz.bXz.bXz.b.b.b.^.^ e.rXtXtXtXt e NXj.^.b.b.bXz.bXz.bXz.b.bXz.o N.b.b.b NXz.b.^XzXtX* ~.r 3 3 $ x.W.xXn.+ 0.qXl.] @ g '.9XwXP @ K.O y ! o.W 2 2Xp = = : 3 <.}.`XXX.X5XVXo ( 5.K.`XI '.!.0.5XlX1X,Xa.n.nXcX;XJXKXS.-.3.O kXK.YXHXc $ [.YXh.LXr.jXb U.MX- RX-.D.DXe v..Xn .Xp...m.d < t U.M.WXs.).)X=..XnX> M =.{ M..XpX>XpX>XG v 1 .9.FX, < <X-XIX-X- a < <._ ..@.@.jX>.1.>XcXc s.ZXD $.n.ZXD.w.ZXe.wX, R.D.a $.Z.n.9.!XCX0XC J.s.NXs.* v tXDXsX, R.u.r.K.b.o.oXz.c.c.U.c _.b.c.c.c.oXzXz _.b.b _Xz.b.b.b.bXz.^.b l.^Xj.r.r.kXtX* ~Xj e eXt e.^Xz.b.b N.b.^.^ eXj.^XjXz.b _.b.U _ _.X e.r.k.r ~.` ~Xo q NXdXt.rXt.r.r.r.r eXt e.b N.b.X l.^.b.^.^Xz.b.bXzXz _Xz _Xz _Xz.^Xz.b.bXz.^XjXj.^.^XjXj.^.o.r.kXjXt e eXz _Xd ~ F ~XI.DXl.nXL vXL.. xXl.aX1X-.8.~.`.}Xp._.m E.d.d._.l 1 $X-X1X-.~.8.~.~X-.`X-X-.8X-.` R.`X-X1X1X1.~ I : ]Xl.5 `X. :XcXKX+.1 MX+.J.mXA",
+" kX*.,XX )X3 5X*.8.`.8.8.`Xt.r.r.rXt.rXtXtX*.rXtXtX*.r.r ~XoXVXd.u.rXt.8XG.s.)Xs cX,XD.D.w R.M a 3XI xX,.MX-X-.} a 3Xs.*.* C /.)XLXrXn.} h.a.aX, c hXl hX, 3.aXM.}XM.l X7Xr WX+Xn v [.g._._X4.x . 0..Xb ..@Xn.j >.F .[.l # :XIXD `.5 mXHX5 c cX9.$X3.rXtXtX*XtXtXt.k.^.bXt.^Xz.b N.b N.b.b N.bXg.o.b.b.bXz _.b _Xz.bXz.b.b e.r e.r.r.rXt.rX*Xt.r.rXt.k.r NXjXt.r.^ N.b NXz.bXz _Xz.bXz.bXz.bXz N.b.k e eXtXtXtXt.r NXj.^.b.bXz.bXz.bXz.bXz.bXzXz.b NXzXz.b.b.^Xz.b N.r.rX*Xt.8 #X-XG.W v MXmXP.nXU @XUXO.].0 D.2Xl 'XPXwXGXL v 9 b y.} aX*.} 3X*.rX3 cXVXd.H 5 )XVXI.H !.0.0.,X5.n.w.nXmXUX..SXH `XwXB yXK.9 :Xl xX3 $XK.[XwX%.@.T.Y <XD.DXDX, CXG.W.m .X>XrXn.m p.) pXq.W pXeX=.mX6Xp.<X4.jX+.j.p.pXr W yX+.@XnXGXnXp.YXq h tXlXl c.e h.MXeXpXpXpX2X4X+ =X..jXK y T C.D.ZXl.Z ' yXc s.w.w.' $.nXaXPXC.! o b w b.NXn C C.*.MXs.D 3 3XVXV.XXt.o.c _ l.c _.b.V.c.c.cXg.bXz _.b _Xz _.bXz _Xz.b.bXzXz.U.^.^XjXj ~Xj.rXg./Xt eXjXjXjXjXj.^.b N.^.r.r.r e eXzXz.bXz.#XdXz.& A.r (.8.`.5XVXtXx.r.r.rX*XtXtXtXt.r.r e e.^.b.b.b.U.^.o.b.b.b.b _Xz _ _ _Xz _Xz _.b.b.bXz.b.b.b.b.b.b.^XjXkX@.IXx l.rXj eXzXz.^ e F ~X1XI.w v.s 2 HX8..XG.D.~X-.~.8.}.a x ..i E u <.m x.9 x a.`X-.`X-.`.`.`X-X-X-XI.~.`X- R RXI.`.`.~ : :.5X5 `Xl c x.- z.<X2X8.<Xf.C.C",
+".K.u.K.K #.k.K 3.8.8 ~.8 ~X*.rXt.rXt.rXt.r.r.r.r ~.r.r.8.8.K ~XVXt.u.rX1 s.s pXe xX- h xXD xXH $ nX.Xl x.uX, : cX5 :XD t < t.d.WXn.[ x h.}.}XI 1.l : $ #XX ` `XBXcXr nXr HXq._Xn U._X+XrX4.xXG.) p vXeX+X7 #XM.l 6XX.} c : T.ZXJ.u # ).,X3X*X*X*Xt.rXtXtXtXtXt.k N eXtXj.b.o N.b.b.X N.b l.X.b.b.b.b _.b _Xz.b.b.b.bXj eXtXtXtXtXtXt.r.rXtXtXtXt.r NXt.r e.k.b.bXz.b.bXz.bXz.bXz.b.b.b.b N.bXjXtXtXt e.rXt.r.b.^.b.bXz.b.bXzXzXz N.bXz.b.bXzXz.bXzXz.b.b.b.^Xz.^XtXt.r eX5XI xXGXe s.q.!X; 4.].ZXD 8.D.].2XVXIX1XD.w T.' xX,.MXD.`.K ~X*.r.rX* D NXdXt.k 5XX.`.Z T.] '.0 :.'.n.!XUXw V :XBXc x.ZX, R.Z.*X1X,XI.a a x.-Xw.@ M M n.-XB.-.j.jXr.<.1.g.p.pXrXn..X=X= 0X=.sX4.@XpXr.pX+.pXB.F XMXBXnXp.jXpXG HX> y.jX+.F._ U 1 UXw.Y.[ =.TX+.<.xXnX4.jXr.1XU nXGXKXG.D.W.DXmXc y.' o s.n s s v yXm OXa.=.= 2 v.N.j.j C.NXsXsXw 'Xo )Xx ).z.&.t.6. i.6. .6Xg.c.o.o _Xz.bXzXz _.bXz _Xz.b.b _ _XzXk.b.^.rXjXtXtXjXkX9Xj N.r eXt.rXj.^ NXzXj.r eXj.r eXz.bXzXz.#.oXz d.t Q.z fXx f.$.k ).^.rXt.r.r ~.rXt e e.rXjXj.b.bXz.c.b _.b _XzXzXz _XzXz _XzXz _Xz _.bXz.b.b.bXz.b.b.bXj.^.b.z.^.b N.r e e.^XzXz e F ~ FXI 8 x s ^.x.vXi J.9XDX-X-X-X- 3 x x E.m u E xXqXq : t.eXI.e.`.~.`.` R.`.eXIXIX-X-.`X1X1 3X-XV.~.eX- 3.e.e R.a x.JX2X2X4.CX8XfXf",
+".rX* 3 3.r 3.` 3.8.`.8.`.r ~X*Xt.rXt.rXt.rX*X*X*XV ~.8.` FX5.H.k.u.r.HXI v 2.W._X,XD.W.ZXI 1XH :.,XHXH nXwXU.,XJ `X.Xl t.e <.W p v.j.F h <.a h XX.- XBXM xXBXMXBXK k.jXw.j.j y v pX+X%.pX4XrXpXe U C CXq.<Xp.pXM.l.l.l., | k IXH.5XlXM : `XX.u 3XVX*.uXt.r.kXjXtXtXtXt N.k eXt.^ NXz.^ NXzXz.bXx.o N.b.b _Xz _XzXz.bXz.b.bXjXjXt.rXtXtXtXtXtXtXtXtXtXt.r NXt e.r.^.^.b N.bXz.b.bXz.b.bXz.bXz.b.b.bXj e.rXtXt.rXt.r.o N.b.bXz.b.b.bXz.bXz.bXz.bXzXzXz.o.b.bXzXzXz.^ N N.k e ~XdXo.HXIX,XG s gXy.|.D.HX1X5.5 5 IXV ~.8.8.HXIXDXD.aX-XI.`.r.kX*XtXt N.r.fX@.rXtX*.r N D (.0 !.].%XyX.Xw.2XUX. D VX3X3Xc hXDXDXDXD cXI.a R.a 1.[XrX+XC._Xp._Xq WX4 .._ z.h [XM nX+.@Xn.s.@.s.@Xr.[X7 > x XM.l c # #XB.[.[X+.[.-Xr W.jXpXpXp.p.-Xw n n & zXrX2 >.mX4Xn n.Y y n &.YXG.9 x.9.'Xm g.> & s v y.qXC w.v.=.= G.NXs.w =X.Xe u C *XaX5 T ] ).R.&.X.tX@XuX X d. iXgXg.o _Xz _.b _Xz.bXz _ _.bXz _.bXz.b.U.bXgXj ~Xj.rXtXtXjXk.bXjXj eXt eXj.kXtXt.rXt e eXj.b.b.bXzXgXz.X l.XXxXo.k.k I qXt q.rXt.rXtXj.k e.r ~ e.r e.r.b.b.b.U.o _XzXz _XzXz.bXz _Xz _ _XzXzXz.b.bXz.b _.bXz.bXzXj. .z.z e.rXj.rXj eXz.b.b.^ ~ F.8.HXI R v.WX=...v.s v x R.`X-.8 3.}.Y._ E._ uXe.-.,X< R.}.e.2XI.8X9XVX-X-X- I : 3 R ` V.` 3XVXJX-.` 3 `X-.M.}.3.FX4.<.JXf.{XfXi {",
+".rXt.r.r.8.8.8.`.8 ~.8XV.rX*.k.rX*.rXt.r.u.uX*XV.r.8 ~ ~.8.k FXV.rXV F.u b.s p s a.M $Xe.MX, 1X,Xp 1.9 $XU xXlX1X5Xl.Z.* < u U *Xq.jXM.} a a # #XB., k.-.YXB V.[.,XwXw.q y ' H MXpX4Xe.TX2.g MXr._XeXqXGXn.9Xp.[.l.F # X3XZ |X. R 3.~ `XV c.} 3.8XV.8XtXt.k ~XjXtXtXtXt.^.bXtXj e.kXj eXjXtXj.^XgXg.b.bXzXz.bXz _XzXzXz.bXz NXdXt e.r.rXtXtXtXtXt.rXtXt.r.XXdXtXtXt.^.^.bXzXz.bXz.bXz.bXz.b N.b N.bXtXt eXtXtXd.kXtXg N.bXz.b.b.bXz.bXz.bXz N.bXz.oXz.^.^.b.bXz N.b.b.^.^XjXt ~Xz.D.HXIXD.ZX; !.uX1XV.u.| ( 5.kXt.rX*Xt.8.`.8.8.8.`.8.r.r.X ~.rXt ~Xj NXtXtXtXtXV.8.u ].w : mX. YXKXy 'XHXK k }.[X3 VXM h cX5 c ` :XI.u <XXXB.g.+.;.s .Xb - {.B.B..X>.S.F.i 1 `.-.-.jXrXr.p.pXB.lXM #XXXX # # h.u 3 h # # X7.[X7XB.FX7 W.jX4XnXr >Xn.<X>X+.x MXr .._ .X4.j.Y.YX> M.q.Y 'XG s.9Xw &.j.j H.;.j H 0Xi 2 /.N.N C 8 aX, 1.*.M.W.)XL.D.8XV.u.r N.^.^ NXg.UXg.oXg.UXg.c.oXz _Xz _.bXz _.b.b _Xz.b.b _Xz.V.cXz.b N eXtXtXtXt.kXj.^. .k eXtXtXt e.rXtXt.r.rXj N.b _ _.b.#.b.b.b NXt.rXV ~.`.`.r.$ NXtXt.r.r.rXtXt e.r.r e e N.b.b.U.bXzXz _Xz.b _ _ _.b _ _ _ _Xz.b.b.bXzXz _.b _.oXz.^.^XjXk ~.k.r.rXt.^ N.bXz.^ e F ~.8.8 R $.Y o.) 0X6.. HX,X-X-.8 3.aXM._.s v.M xXBXh.OX-X-.u IXX.~ :X9XIX-XV I |.u.`.u.5.`XI.u I 3.`XIX3 aX- `.3.- . rX2.J.xXfX6..",
+".r.rX* ~ F.8.8 ~XVX9.K ) 3X9XxX* qXk ) )X9.5X9.5.u.8.8.H.8.k.8XtXV.r.H '.YXL pXG <XD.w $XD.M U $ h $ a.aXD R.~X-.~ BXD.* a t.) vXp n.l.}.a t xXM.,XZXH [ n n kX. n nXc.'.nXLXG.j.jXe .X+Xn.<Xr.-.jXpXGXpX+.+.p k >.i V.SXHXJ.1XUXl RX-XV 3.`XI.8 3.8 ~X*.r.rXtXj.rXtXt e.k.XXtXtXtXj e.rXjXtXt NXg.X.b.b.b.b.b _.b.oXz.b.bXz.b.b.k.kXtXt.rXt.r.rXtXtXtXtXt NXd.rXt eXj N.bXzXz.b.b.b.bXz.b.b.b.b.b.b e eXj.^.^.^.^ NXk.b.bXz.b.b.b.b.b NXzXz.b.b.^.o.^.b.b.bXzXz.b N.^.bXzXj e e.X.H.H.uXVX5.R.Z.8.k.5 ).A q qXtXtXj.r.r.r F 3.r.r.rX*.^.b.X.^.^XjXj.kXt.rXtXtXt.H.H 3.k.2 'XIXV 3.ZX5 $X,.KXc | V., VXX.u 3 |.-X5 :X. V.,XH [XhXh.+.sX6.B.P ^.P {.v.@.pXM #XM :.lXMXBXpX+.-.gXBXM.lX3X3 D :Xl.5 :.K.` #XM #.l.l.l.l.iXM.[XrX+X> nXrX> y M & WX0 WX4 .._Xq.-.jXK yX+XrXr y oXG.YX0Xp..XnX>XCX> 0Xn / *.N C.* RX, aXD R.M.N C.s xX1.rXtXtXt.^ NXg.bXgXkXg.U.c.c.c.c.o _Xz _Xz.b _.b _Xz _.bXz _XzXzXz.c.oXz.b.^.rXj.rXjXt e.z.U.k.^Xt.rXtXjXtXt.r eXt.^.o.b.b.b.b l.b.b N.XXtXt.8.`.8.8Xt.r.r.rXtXt.r.rXt e.r eXt.rXdXz N N.#Xz _Xz _ _ _Xz.b _XzXzXzXzXz.b _.bXz.oXz _.bXz.b.b.^XtXj N e.rXtXt.^ N N.o N.X.^.r.^.k qXVXD.9Xw.> H z.@Xh v 1X1X-XVX-Xe.9XeXe E 1XG.YXK <.aXIX-.u.` ~.u.~.a ~X- :.8X-XIXIX-XVX- ~.`X-.a.a R < $.YXq >.p.{...{.@.v..",
+".r.r.r.8.8.8.8 ~ c.$ V 5.k 5.,.KXJXJ., 5 |., 5 V.k 3.`.8.8X*XV.u.H.5.`X, yXnXn v.MX, h $ 8XD $ h $X- RX- a.~X- BX-X- 3 3XD h.w.) v.pXB # a R.ZXlXH.SXZ = ! ! =Xc.'XG.n.w.w.wXG &.<Xq pXnX+ z.x.. p.).d p.s._.s.jXB.gX< kX< kXcXcXcXIXIXIXI.`.~.8.8.8.8.H.rXtXtXtXt eXtXjXj.X.b NXz.b.^XjXt e.^.bXx.oXz.b.b _.b.b.b.b.b.b NXz.b NXtXjX*XtXtXtXtXt.rXtXtXt.r.5XtXt.r.rXdXj.^ NXz.b.b.b.b.bXzXzXz.b.b.^.^.^XzXz.^.b.b N l N.o N.bXzXzXz.bXz.bXz NXz.bXzXzXzXzXzXzXz N.bXz NXz.^Xj.rXo.r.^.H q.f.5.kXx 5 I.fX9Xt.k.r.rXt.r.r.rXt.rXj.^.bXzXz.^.o.b N.b.b N N.^XtXtXtXt.rXV.8.u ) mX5.8X1X1X1.`.0X# D c k., # h.}.[ `.} 3 3XI.a.}XMXp.[.j 0X6 wXf ; L.@Xf.<.- x.lX, # #.l x.l `XB #XM ` : ` : VXJXM 3 3 hXMXXXXXM #.i 1 X3XwX0.qX0.q.q n y &Xr H.j._._ E x.ZX.XrXrX>.;.; & MX0X+Xq.m.mXAXf...) v.d u.M.* a : 1 $ R.N 8Xs.NXGX, 3.r.r.k e NXg.^.oXg.c.cXg.c.c.c.V.bXz _XzXz _Xz _.b _XzXz _Xz _Xz _Xg.o.b.bXz.r.rXjXj e.k.rXtXgXk.o.r.rXt.k ~ eXt e.^.b.^.b.b.^.U.b.^ NXzXtXdXt ~ ~.8Xt.rXj.r e.rXt.rXt.r ~ eXt e.r.^.bXz l.b.oXzXzXzXz _ _.bXz _Xz _Xz _.b _XzXz _XzXz _.b.o.^Xj.r.bXtXt e.^.bXz.b.b.b.b.^.^.X , f D mX.XJX;.j.E.@ H 0 b.'XD 3 R.~XG W.1XnXq x.9 s a.a.`.`.`.~XV.K.`.`X-.8 a.`X-.`.`.`.H.`.~.`X-.`.a a t.9Xq.F >X2XAX4.4Xf.B %",
+".r.r.8 F.8.8.8.r.r 3.rXX # 3XM.u c.u #.K #.u 3.8 3.`.8XI.8.k ~Xt.k.` D 1 =.E =Xe U $ $X,XDXD.M hXIX- RX- a.a.eX-X-.` #X-.M a.N.).W > .lXD.eX1 #XX.,XhXh.G.'X;XOXK.w.n.D.n sX+Xr v p pX4 zXrX>.J.. p pXF.d 2..Xn.pXM.S.lX7XcX+ 1 gX1X1X1.8.`.`.`.8XI.8 ~.rXtXtXtXt.rXtXj.k.b.bXz.b.X.b.^XdXj N.bXg.o.bXz.b.b.b.b.bXz.bXz.bXz.^XtXt.rXt.rXt.rXtXt.r eXt.rXt NXt.rXt.r eXt.^.b.b.b.b.bXz.b.bXz.bXz.bXzXzXz _ _Xz.bXz NXk.b.b.b.b.bXz.b.bXzXzXzXzXz.b.b.bXz NXz.bXz.bXz.b N.bXz.^XjXk.^.^ q.&.^Xj N.7 qX NXt.K F.^.kXjXt.r.r e.^.^.^.b.^.bXz.b.b.bXz.^.X.^.^XdXd.rXt.HXdXVXI F ` DXI.`.HXI.`.5 Y.K.aX3XJ.K # a.a < a t.a.H 3 3.iXMXB.p.@ ^ ^ {.B {Xi 0Xn.[ 1X,.} a h h # # #XM # 3 aX-.a 3 3 3X-.eX-.aXI a a.a.}.iX3X, ` VXB m.jXU.qXUXm b s b s.j.xXn..Xe $ xX,.Y n WX+Xn.@XnXp.F.m EXAXfX6 2.N U.M.a a B.e : ` $.MXs.N.N s h 3XtXtXj.rXjXx.X.o.b.c.c.c.c.c.cXg.cXzXz _Xz.b _Xz _ _Xz _Xz _Xz _Xz.b.c.o.b.bXzXj.b.^Xj N.^XjXt.o.z ~.I.^ ~ e eXjXjXj.X.b.6.6.z.IX@.z.fX@ A.&.X.z.8 ~Xt ~.r ~.r.r e.rXt.rXjX* e.r e eXz.b.b l.b _.bXz _XzXz.b _Xz _Xz _Xz.bXzXz _.b _Xz.b _.b.bXjXt e N.r eXj.^.bXz _Xz.b.b.bXoXo.$ q.5 :.uXV 3.9.sX>.; OXa v.9 $X-.} hXH =.p.9Xq vXq a #.~X-XV.k.`.8.~.~ R.eXI.e.`.`.~X- F.`.`.`X- < h 1.9.F._.yX2.mXn.4XfXi 0..",
+" F ~.8 F.8.8 ~X*.rX*.5X9X9X3 qXX V V V VX3X3 # 3.8.8XI ~ F.k.rXt.r :X.Xc.>.EXw CXs hX5 t.DX, RX, a R.e.eX-.e.e.e.e $.a a.e C u.= 2.E 1 3 c.}XMXXX3 MXm.'XaXO g =XJXwXI.D.0 yXr v E E E.1XrX>.<.PXb %.mXb.)..Xp.Y.FXM .YXc.9.nXcXDX1.HXI.`.`.`.`.8.8 3.r.rXtXtXtXtXt e.^.bXz.b.b.b.b.bXz.^.bXzXx.oXz.b.b _.b _.b.bXzXz.b NXd eXtXtXtX*XtXt.r.rXtXt.rXd.r NXtXt.rXt.r eXd.^.bXz.^Xz.b.b.b.^.b.^.bXz.b _XzXzXzXz.bXz l N.b N.bXz.bXzXz N.bXz.b.bXz.b N.b.b N NXzXz.bXzXz.b N N.^Xk.X Q.tXgXo.X.X.& q.X N.^.k N N N.b N.^.k.^ N.b NXz.b.^Xz.b.bXzXo.b f A.&.R qXkXx 5.R ( D 5.5.$.K ` )XV.8XM.5X-.` #.$XMXM #.i 1 x.5.u #X1X-.}.l.l.[.[.4.@.BXv - - 2Xq.- xXM 3 3X- a aX-.a.a.}.} a.aX-X-X-X- R.~ aX1.~ R BX-X-.aXX `XGXc.S Y =.> g.nXG.wXL.n ' bXmXrXp._._ UXlX-.} xXr MXwX0.Y.@Xq._.m.m.J.sXv.N U <.* BX1 B aXD.*.W.N.).w sXD.u.rXt.rXd.X.o.o.b.oXg.U.c.c.c.c.cXgXzXz.bXz _ _Xz.b.bXz.bXz.bXz.bXz _ l.o.b _.b.^.U././.I.IXg.r e ~.zXk.r eXtXj.r ~ e.b.bX Xu.&Xu.( dX@ A.RX@.RX@ ~ ~.8.k q ).^.r eXt.r eXj.^.^.r e e.^Xz.b l _.bXz _XzXz _.b _Xz _Xz _Xz _ _.b.b _ _Xz _.b.bXzXjXt e.XXtXtXj.^.b _XzXzXz.b.b.b.^Xt.H.5.kX1 3XI.Z v.v.YXe.N.v vXpX-X-XI.9XGX+.TXn k W `.,X3 c.uX5 ( ` D ) D : :.5.,X- R.`XV.~.`.` x XpXq._XqX% >.m.m.<.C.@ O.s..",
+".8.8.8.8 ~ ~.r.rX*.rXV.K.5.KXMX9XMXXXMXM #X9X*.8XI ~ ~ F.8.^.r.r.` 3 8.9.W.s.+Xe x n gX,XUXD.MX3XJ a T.}Xl cXKXc $ 1 .*XB.N.W 2.@X> 1.l.a h 3XM #.[ m o vXL.w.DXD $ ' !.'XU.j.Y.m.i.d.}Xq.d >Xf.JXbXbXb.vXb.s.pXB.l.i `.[XmXaXa DX,X1XD.8.`X-.`.`.`.8.8XVXtXt.rXt eXtXt.^ N.b.XXz.bXz.b N.b.b NXg _Xz.b.b.bXz.b.b.bXz.b.b.bXzXjXtXt.rXtXtXt eXt.r.rXtXt.r NXt.r.r.rXtXtXtXj.^ N.b.b.b.b.b.b.b.b.bXzXzXzXzXzXzXz.b.bXk.b.bXz.bXzXz.b.bXzXzXz N.b.bXz.bXz NXzXzXz.^Xz.bXz N.^Xz N.I d A.X N.b.^ NXg.^ N.X.b.bXz NXz NXzXzXz.b.bXz.bXz.bXz.^.o.^.b.b.oX&X@.&X@.&.R QXx ) 5 D.%XJ D ( I.$.5XVXx.8 3.`X9., $ #XJ [.3XJ., DXJ 5 ` V V.l XB.jXf.vXFXF /.).Y.Y #XM.aXVX-X-X-.~X-XI a.` R.aX- aX- R B a B RX-.* a a a a a R.a $ ` X.Xw gXa v.n.DXs 8.n s &.jXp._ hXIXI.}.M U E vXG.Y [Xe.i.m.JX6X=.) 8X, B B 'Xl R R a u.sXe.W 'XD.uXdXtXt.kXo.b.XXg.b.o.c.c.c.c.c.c.cXg.oXzXz.bXz.b.bXz.b.b.bXz.bXz.b _.b.c.o.b.b.b.b.UXgXgXgXz e eXjXt.^XtXz.r.r.r eXt e.^ N.bXg.b.bXgX9.b.X N e.k.r ~X*.rXt.^Xd.r.r.r.r eXt.^ N.^Xj e ~ eXz.b l.b.b _Xz.bXz.b _.b _.bXz _XzXzXzXz _ _ _XzXz _.bXj e e.r N eXt e.^.bXz _ _ _Xz.b _.^ N.r.X (.kX1.HXD b.WXGXrXL.) 0.j hX-X-Xl.9.jX<X+.yXHX<.- | cXV I.2 : ) `XJ.5.2 :X*.u.~X1XV.~.`.uXBXA.m E >X2.g.F.mXq ..x b.vXeXe",
+".8.r ~ 3.r.r.r.rX* ~X*.r ~X* ~.u 3 3.u.u.u 3.8.8 ~.r 3.8 ~ NXV ~.8 h x s.W = v.MXH.Z.OX5.OX1.9Xl : 1., k.3 hXK.1.Y hXK.*.+.Y.N.s 0.@ 1.} a.lXX.[.[ yXO.' v.n.M R R.D.0XUXUX> pXe.d a >.F.x ..C {X6.PXfXf.@X+ .l x ` g s.nXa.!.n B.HXI.`X-.`.`.`.8.8 ~X*Xt.rXt.rXt e.^.bXz.b.b.b.b _.b.b _.bXg.o.bXz.b _.b _.b _.b.bXz.bXz N.kXtXt.rXt.rXtXtXtXtXt.r.rXoXt.u.r.rXt.rXt eXtXdXtXjXjXjXjXjXjXj.b.b.bXzXzXz _XzXzXz l.b.bXz _.b.b.bXz.bXzXzXzXz NXz NXzXz N.b.b.b.bXzXzXzXzXzXz./X@.X.b.XXz.b.b.b N.oXz.o.^.bXz.bXzXz.^Xz.b.o.b.o.b.bXzXzXgXz.b.^.^.z.U.zXkXk.b.k ).XX9.5X9 :XxX9X9.5 N I.r 3.8.`XM VXMXX `X#.,X#XHX# |.S.SX# V.lXB.[ ^ 2XvXF / 0.jXBX9 h.~ 3X-.r 3.K c.~X- RX-.~ RX1 R R.*X1X-.e RX-X1X1X-X-XI.a a $ ` ` nX. gXlXlX, RXD B.n s.E &Xn x $.} cX-.} < t <.a h s UXq EXf ^X= / CXD.eX-XD m.n a.M.sXG.s.- x c.u.rXtXd.IXg.X.Q.XXz l.cXgXg.c.c.c.cXg.V.b.b.b.b.b.b _ _.b.bXz _.bXz.b.b.c.o.b.b.o.bXz.o.b.b.o.^ ~XjXj eXt ~XtXj eXtXj.r.^.b.^Xz.oXz.z.o.XXz.^XjXjXt F ~.8 ~ 5Xx.rXdXt.r e.^ N.b.b N.^ e eXzXz lXz _Xz _Xz _Xz _XzXz _XzXz _Xz.b _.bXz.b _.bXz.bXj e N.^ ).rXj eXz.bXzXz _ _XzXz.o _.oXz.k ~Xx F.HX1 s xXLXn v.v 2.EXn._.n.eXI `Xn._.m EXB 1.a.aX-.~X-.`.`X-.K.eX-.~X- 3 aXIXVX-X- $ >.m p.J.JX<.F.m.mXAXf w OXn.n t",
+" ~.r.r.r.r.r.rXt.rXt.rXt.rXVXtX*XtXtXt.uXt.8 ~.8 3.r ~.8 3Xo ~ 3XI.Y.w.W 2 =Xr x., mXU.D.OXK xXH `X5XK VXcXl.9XK.> sX+.-.E.+ 0.v 2.sX+ | 3 #XX |.[.O =.+.>XU.' R.a.~X- '.! =XpXe.m h EXp.hX+X4.CX6.CX8.;X: M.pXp ` Xc y.0XaXL.0.' RXDXIX-.`.`.a.`.`.` ~XVXtXt.rXtXjXt.^ NXz.b _ _Xz.b _Xz.b.bXg.o.b.b _Xz.b _Xz _.bXzXz.b.b.b.kXtXt e.rXtXt.rXtXt.rXt.r NXd.rXtXt.r.rXtXtXt e e eXjXd eXtXdXtXzXz.b.b _.b _Xz.b N.cXz.b.b _XzXz.b.b.b.b N.b.b.b.b.bXz NXzXz.bXzXz.bXzXz NXzXzXxXz _ _.^.b.bXz.bXz.o.^.bXzXz.b.bXzXzXz.o.V.cXgXg.oXg _XzXgXz.b.b.b N.b N.^X9 N.RXx 5 q., 5 I., QX9.|X9XV (.K 3XIX3 kX7X7.-., kXwXwXJ.-Xc.[.- ` .i .p OX=XF.) /XGXK.K #X*.KX3Xo.K cXt 3.` 3 : :X1XI R $XD R.eX-.~ R B.e.e <X- a.aXI x ` 1.,X;.O.OXwX5XJ $ ]XPXy.>.L.YXp.iX,.u a.a.a.a.a t R a <Xq E .XnXv.NXDXI.~.~.*XD t.N.NXw.TXJXH |.$.R.R q.6.(X@.tX . .6.c.c.c.c.c.c.cXg.cXg.o _.bXz _.b.b.b.b _.bXz _.b.b.bXg.o.bXz.b.b.b.b.o.b.^.bXz eXtXt.r eXj ~Xt eXt e.^.b.b NXz.bXg.b.b.bXjXj ~.r.k.8.8.kX9 NXd.r e eXt.^.b.b.b.bXz.^XzXzXz l _XzXzXz _Xz.b _.b _Xz _.bXz _Xz.b _.b.b _ _XzXz e eXk.z./ e eXj.bXz.bXzXzXz _ _ _XzXz.b.b.b ~.r.5XtX-.w .).W O.s.@.s . xXGX5 RXq ._._ xXB a.aX1XI R.`.`.`X-.8.` 3XI.aXc $XDX- < x.F E >.JX%._.m.m E..X>X> ^ O.M.a",
+" ~X*.r.r.r.rXt.r.r.rXt.r.rXt.r.r.r.r.r.r.rXt.r.8.r.r 3.8.r.KXIXI.M.w 2.N.sXe 1X,.i 1X,XlXlXl $XDX,.e h.e R.}Xs U.N._ v.s p b.s 0 O.j.[.SXH.,XM kX3XZ.O.+Xh =.'.a aX1.e.'.'.jXwXnXe E U.-.pXn..X> ^Xf H.@ y n.[.- nXc gXP s.D.D.n.!.n.uX1.`.8X-.`.`.a.`.8 ~.rXtXt.rXtXtXj.b.b.b.b _Xz.b _Xz _Xz l.o.b.b _.b _.b.b.b.b.b.b.b.bXzXtXtXt.rXt.rXt eXt.rXtXt.rXoXtXtXt.r.r.uXtXt.r.r.rXt.r.rXt.r e.rXj.^.b.bXzXzXzXz.bXz l.b.b.b.b _.b.b.o.o.oXgXgXg.o.b.o.b _.bXzXzXzXzXzXz.bXz.b.^.z.o.^.^Xz.bXz.bXz.bXz.bXz.bXzXzXz.^Xz.o.V.oXgXg.cXgXgXzXz.c.b.b.^.b.b.o NXz.b.^.z.fX9.f q qX9 q 5 I ).R.kXV )XVXDXGX+.@.@X> & gXU g.jXC vXpX>.jXcXBXB.j 2Xv /.N.s y.-XXXX.K.K.K N DXoXo.KX5 q.] ` ` :., T TXI RX1X-.eX-X-X1 c.e a aX- 3XXX3XJXc !XH.2XcXl )XVX5 gXU =.;XG x x 3 :.Z xX, 3 #XDXD xXe pX4 ^ /.NXsX1.~X- t.M.N.N.=Xw.%XX ).$XxX3.&.f.&X@.IX@ A.6Xu l.c.c.c.c.U.c.cXg.c.bXz.b _Xz.b.b _.b.b.bXz _Xz.bXzXgXg.b.b.bXz.b _Xz.b.c _Xz.bXjXt eXt.r.r.rXt eXt.^Xz.oXz.b.b.cXg.^.b.^ e.r.r.`Xt.r.r.k.5Xt.rXt.r eXz.b NXz.b.oXz.b.bXz.U _Xz.b _.b _Xz _.bXz _XzXz _Xz _Xz.b _Xz _Xz.b.bXj e.^ NXk.r.r.^.o.b.b _XzXz _ _ _ _ _Xz.bXj.^ F.~ ~.8XD U v.s O.> &.sX=Xi y $.a a 1.F x xXpXDXDXI.~.`XIX-X- ~.8X-.8 R c .YXpXn a.FX4 E WX% >XAXAXA.J.<.4 0 2Xe.M t",
+" ~.r.r.r.rXt.r.r.rXt ~Xt.r.rXt.r.rXt.rXt.r.r.rXt.r.r.r ~XVXo.8XIXDXe / / CXe U # $ c $ cXD R t RX- 3.~.a t R.*.WXs.sXpXG 0 J.@XC.E HXHXBXM h.- V `Xc M.qXw sXG.Z aX- a.H $ g.9 & vXe._XpXG.Y.p H.x H.j H bXn y.j.[.-XU y.Z '.D.w.n TXOX5X1.a.`.`.a.`.`.`.`.8.HXtXtXtXtXt e.b.b.bXz _Xz _ _.b _Xz lXg.b _.b.b.b.b _ _ _.b.bXz.^XjXt.rXt.r eXt eXt.r eXtXt.r NXtX*.r.uXtXtXt.rXtXtXtXtXtXt.rXtXtXtXt.^ NXzXzXz.^.b.b.^ l.bXgXg.c.cXg.o.c.cXg.cXgXg.oXgXgXg.o.o.bXzXzXz.bXzXz.bXzXz lXz.b _.b _.b _Xz.b _.^.o.^.bXz.b _.VXg.c.VXg.cXg.VXgXz.^XgXzXz.b.b.^.b.b.X.X N.X.r.r.rX*X*.uXV.k.r N.k.uXdX5.Z.D.EXn.vXi.@XC OXL OXC.E.v 2 2 vXG yX+ y.v /.).NXL.j VXXX*XXX3.$.K.8XV.`X-.~.~ ` cXDXD RXDX1 $ 3 3 3 3XD R 3Xc # c :Xl | V.,X3 3XK.w T c ).k.D.u.] vXrXrX+XqXh.wX.XDX..,XVX3Xc tXh x._XnXi.).) RXDX- t R U.N.sXKXl 3.rXt.rXj.rXkXg.^.bXz _.o.o.VXg.c.c.c.c.c.cXg.c.c.bXz _.bXz _XzXz.b _XzXzXz.b.b.b.c.o.bXz.b.bXz.b _ _Xz.b _.b.bXt.rXtXtXjXj.r eXt.^.b N.^XzXz l.b.b.b.b.r e.r.r ~.8XV fXx.rXd e eXjXz.b.b.b _.b.b _ _Xz.z _ _.b _ _.b _ _ _ _.bXz _.b _.b _ _ _Xz _Xz.o.bXj e eXt.bXt e.b.b.b N.b _ _ _ _Xz _ _Xz.b.b NXtXt.X 3X1 tXnXL 2 H M 0XFX= ^ v.9 : a x.FXwX;XJ T :.2 '.H I.K.,.5.] mX5X. vXpX>Xp.< > >.JX4 M.pX> SX8.<X8X6 2.. v.M.M",
+".r.r.r.r.rXt.r.rXt.r e.r.rXt.r.rXt.rX*.rXt.rXtXtX*.r.rXt.u.uX1XD 9.s.= /.N.) xXe $ hXDXD.a.a R RXD RXDX- R a.*.N.N O & H.j HXCXCXC.E.j.S.3.Y kXH.3.1 =.> ! =X. 1 ` 1X1XVXlXK.n.j yXnXG.j.j.j.jX4XG J.E.EXeXG.'.' s.9 g.n.w.n BX,Xa s TXU.H.a.`X- a.`X-X-.8.8.8.r.rXtXt.rXj N.b.b.bXzXz.b _.o.bXzXg.o.b.b.o.b _.b _.b.b.b _XzXj e eXt eXtXtXtXtXt.r.rXt e.r.X.rXt.rXt.rX*.r.r.kXtXt.r.r.rXd ~.kXtX*.^.X N.b N.b.b.b N.U.^.b.oXg.c.c.o.V.c.c.c.cXg.cXgXgXg.c.o _XzXzXz.b.b.bXz.^.^ l.b.o.oXgXgXg _.bXzXz.bXzXz.b.b.V.oXgXgXgXgXgXg.VXg.o.oXz.o NXz.b.^.X.^.^ NXz.^.kXtXt.r.rXV.k.r.A (.RXx qXo I DXKX0 &X>.; ^ H bXLXaXC.E ^.v 0 2 2Xa v.j.sX=.).N v y V.$X3X9.uXVX-X-.a R.~.aX- a.5X-X- RX-XIX1X-.~.aXIXI 3.uXc.5X3 x k }XH., hXc.n.n 1XlX5.K.k.] ' gX0.xXp v n 1 !Xl T 1X,XM 3 :.9X+ p.JX6X=.) t U.e.M.N.NXG v s 3Xt.r eXj.r N N.X.b.o.b.bXg.cXg.c.c.cXg.c.c.c.c.cXg.b _.b.b.b.bXz _.bXz.bXz _Xz.bXzXgXg.b.b _Xz.b.b.b _.b _.b.b.b eXt.r eXt.rXt eXtXj.^ e e.^Xz l.o.b.bXz.^Xj.r.rXtXt.r.k.k.rXt e e.^Xz.b.b _.b _.b.bXzXz l _.b _ _.b _Xz.bXz.b _Xz _Xz _.bXz.bXz _.b _Xz _XzXj.rXj N e.^ N.b.b.b.b.b.bXzXzXz _Xz _.oXz.b.kXtX9X9X-XD.D O.=.v.s.W.WXFX=.sXGXKXI.a KX#XJX9 :Xd.' '.5 )XV.5 c.0.nXw.v ^.4 ^.JXf.T.{.; W.; o z.;XiX:X0 p v y.M 1",
+"X*.r.r.rXtXtXt.r e.rXt.r.r eXtXt ~X*.r.r.u.r.r.r.r.k.r.u.HXd.HX1XU 2.N 2XL.) s U.M U.}.aX- a a.* BXIX- cXV.9.ZXa v.v.; wXG OXL OXa.EXw [XJ ` k n.> =.>.9X0 1 ` :.a :X-XIX5 $ xXGX>Xm y H y.YXGXL.w.nXa.nXa.ZXeXl s.n.n.wXa R R B.wXa.nXJ.Z.`.`.`.`.8.`.`.`.`.`.8.rXtX*Xt.k.^.b.b.b.b.bXz.bXz.bXz l.X.b.b.b.b.b.b _.b.b.b.bXz.^XjXdXtXt eXtXt e eXt eXtXt.r N.r ~.KXtX*XtXoXt ~XtXtXtXtX*XtX*.k.k.k NX9 N.o.^.bXkXz.^.z.o N.oXgXg.c.c.c.c.o.VXgXg.o.o.b.o _XzXz _XzXz.b.b.o.o.o.o.IXgXgXg.oXz _XzXz.b.oXg.oXg.oXgXgXgXg.cXg.c.c.cXgXg.o.o.^XgXz N.zXg.z.I.zXg A.z.IXo.5Xx )X9 ~.uXxXx.5Xk.5X9.5.5Xw.j HX>.E oXCXLXLXLXm.+X0 z J 2.= /.) 0 0 G.N.s vXcXM V 3X- R 3.e.e.eX- R aXI a.aXl.uXI 3.HX-.e R.~.eX- RX1.aXDXD.KXX :XHX3 : ' x.Z RX-.K.5X9 : s.> MX> vX4 xX,XDXD.M.a a cXD t.}._ EXnX6.) * C.M R U.W bXGXaXIXtXt e e eXj N.b.oXz.b.b.bXg.c.c.c.c.c.V.c.c.c.c.o _XzXzXz _Xz _Xz.b _.bXz _.b.b.bXzXg.oXz.b.b _.b _Xz _Xz _ _Xz.^.rXt eXtXj eXt.r eXtXt e eXj.bXg.b.b.b.bXz.^XtXj.8 ~.H.f.z.r e e eXzXz.b.b _.b.b _.b _Xz l _ _XzXzXz.b.b _.b _Xz.bXz.b.bXz.b _.b.b _Xz.b.b.b.^ e.r.^XtXz.o.o.b.b.b.b.b.b _ _ _ _.o.b.b N.^XjXo :Xd BX1 bX=.)Xi U.N.= / *XLXUXc :XIX3 D ).u.`.~.~.~.`.e.KX-X1.*XsXn.sX= wXf.@.@.y.x J.; o 2.@Xi OXp.@.WXs.YX,X,",
+".r.r.r.r.r.rXt.r.r.r e.r.r.r.r.rXtXtXtXtXdXdXt.rXt.rX*.r.8.H.Z.'Xm.j.v.sXLXG v.@.wXs t t a.a a.a a RXDX5XJXc.! y H =X0.E & bXLXaXL s.>Xc.-Xc.-XwXU.'.9 s.n.M h.a a.e R ~.KXI.wXL v o.E.' vXa._XGXsXDXa.D 8X1.D R 8 'Xa.D 8X,XD.a.Z.0.]XUXVX1X-.`X-X-.`.a.`X-.` F.8 ~.r.rXt.k.^.^.^.^.b.b NXz.b.bXk.oXz.b.b.b.b.b.b _.b.b.b.b.bXz.^.^XjXjXtXjXj.kXtXjXj.k.r.^Xt.^Xx.z.rXx 5Xk qXx.XXoX9X9X9Xx ) ).kX9.A.$Xk.zXg.t.I q.f.IX9XgXk.c.b _ _XzXzXz.b.^.bXzXz.bXzXz _.o.c lXgXg.cXgXg.o.UXz.bXzXzXz _.b.b.o.oXgXg.V.oXgXgXgXgXgXgXgXg.c.o.cXgXg.b.o.^XzX X@ Z./Xu NX X@ 5.f ,.|.f (Xk.k.rXt.r ~Xt ~.8 3 ' g M.q &.+XUXU ! !X; =.> H w.s.=.N.= G._.W.N.)XG.j `XXX-X- RXD DXc c kX,Xc 3 `Xl mXc.,.KXcX- 5 RXHXcXJX,XwXDX1X,XMXl mXHXw sXl.Z R.aX-X5 c (.]XPXh M M n =.Y R h R RXD c < 3.a < x pX4X6 / * u U pXs s ' $XIXdXV.r eXtXj N.b.o.b.b.o.b.bXg l.U.c.c.c.c.U.c.c.c.b.b.b.b.b.b.bXzXz.b.bXzXz.b.bXz.bXzXgXg.b.b.b _.b.b.o.b.b.b.bXz.^.r eXt.k NXt eXt e.r e.r eXj.^Xg.o _Xz.b.b.^Xt ~X* ~.rXoXt.kXt.^Xz.b _.b _ _.b _.b.b _Xz l _.b.bXz _Xz _XzXzXz _Xz _Xz _.b _Xz _XzXzXz _.b.b.bXj e.b N.b.^XzXz.b.b.b.bXz _ _ _XzXzXz N.b.XXt.rXx.u.HX1XG.sXb.. U U C.= / vXG y :XK c.KX*.`.~ F.`.`.`XI.`X-.~.aX, 0.)XF ^.s.s %.s ^Xi 2XL.NXs.N.w.WXDX,.M BXD 8",
+".rXt.u.r.rXtXt.r eXtXt.rXtXtXtXt.r.r.r.r.r.r.rXtX*.r.r 3 c D gXJ J =.OXCXL ^ bXGXn.w U t < a a.e a B.~X, 3XD.W v 0 b 0 vXC sXaXa.Z xXcXw n = m n s s.n.w.M R tX-.a a.uX1.KX1.M.ZXeXLXaXa.w.Z 8XDXD B 8X1.* RX1XD B 8Xs.* RX-XDXl ' ' T.2X1.`.`.8.`.aX-.`.`.`.`X-.`.8.8.r.uXtXtXtXj.^.b.b.b.b.b.XXg.b N.b.b.b.b.bXz.b.bXz.bXz.bXz.X.b N NXz N.b.b.b N.b NXd.bXtXdXk.RXoXkXoX@Xx 5Xx N 5 ) 5.KX3.$X9.5 N./././.oX@ d./.t.IXg.o.bXz _ _.bXz.b.b.o.bXz.b.bXzXz.b _.oXg.o.o.o.bXzXz.^.zXzXzXz.b.b.o.o.cXg.c.c.cXgXgXg.oXgXgXgXgXgXg.oXg.cXgXg.bXgXzXz./.z.z./Xx.^.R.X.I.0.X.z.]X9.u q.rXt.k.rX*.r.8.8 :Xy !XUXm =XyXU.0 '.' s v o o 2.=.N G U.s.).).NXG.- V.K aX1X1X-XK xXK kXDXHXHXKXc.u kXJ : Y 3.%.Z.'X1XcXJXDXD R.a x :XHX; g.'.ZX- B R c.u , : Y @.O = zXrXr xX,.Z.'.9 x.a < RX- U x.d.J ^ %.W U.).sXG v $.H.u.rXdXtXtXjXj.bXzXz.bXz.b.b.bXg l.c.c.c.c.c.c.o.V.b.bXz.bXz.b.b.b.b.b.b.b.b.b.b.b.bXzXzXg.oXzXz.bXz.b _.b.bXz.b.b.bXj eXjXt.^.bXt eXt eXtXtXt eXtXdXgXg.b.b.b.bXzXt FXtXtXt.&Xk ~XzXz.b _ _.b _Xz.b.b _.b _.b l.bXz.bXz _.b _Xz _XzXzXzXzXzXzXz.b _.b _.b _.b.b.b.bXj.r.X N.bXz.o.o.b.b.b.b.bXz.b.b.b.b.o.bXgXg N.rX5.H.`.e.wXLXbXp E.M C 8.W.=.s v g.'.ZX-X*.8.`.`.`.~ 3.`.`X-.8X- UXn.)X= 0 / O.N.) %.s.= G 8.* C R.M.ZXDX, R RXD",
+" ~.rXt.r.rXtXt.r.rXt.rXt.r.r.r.rXtXt e.rXtXtXt.rXtX* 3.8X, mXl.W.Z.>.+.> o.E.q 0 v.s v u u.* < R a RX-.eXD.a 8.W.= J H.;X0XKXL.D 8.ZXlXc yXJ o s.w.w.a.*XD.a t <.aX-.`X*X1.~XI 8XsXe.n.w.D C B RXI.e B RX1 a cXD.Z.*XD.e R R.Z.'.w g.].2.~.8.~.`.`.`.`X-X-.`.`.`.`.8.8.r.rXtXtXtXtXtXj.k.^.kXjXt.X.o.X.b.o.b.b.o.b.b.b.b.b.b.X.b.b.b.b.b.b.b.b.bXg N.b.b NXx.r ~.r.r.k eXd.r.uXt.r.uX*Xx.5.u.uX* #X9.rXtXt N.b.^Xz.^Xk N.b.b.b.bXz.b.o.b.^Xz.b N.b N.b NXz.b.b.bXzXz.b.b.b.b NXz.UXz N.b.b.oXg.oXgXgXgXgXgXgXgXgXgXg.cXgXgXgXgXgXg.cXgXgXzXgXz N.^.^.^.^.b N.b.X fX9.2 D 5 (.r.5.rXt.r.k.r ~.8.`.O.G g !Xw '.'.wXIX1 '.Z.wXC 0 O /.N C C U v.).W.'., c.a a R R.9Xl 3XK 1 #X, 1 # ` RXJ.u : DXI 1XlX,.9 3 :XD aX,X5.,.,X;.q 1.D 8 c $.%.%.|.%.%XO.9XnXBXq x $XwXwX.XJ x RX- a.M.}XqXq.<XfXb.s.s.)XpXGX5.`.r.rXt.r.u.r.k.^.o.bXz.b.b.bXzXz.o lXg.c.c.c.c.o _.bXzXz.bXz NXz.b.b.b.^XzXzXzXzXzXz.^.b.b.o.o.bXz.b.b.^.b.bXzXz NXz NXjXjXjXj.^.k.r.r.r.r e.rXt.r e.r.o.oXz.^Xz.b NXj F F.` ~Xt.z.^ N.^XzXzXzXzXz _Xz.bXzXz.bXzXg.bXzXzXzXzXz.b.bXz.bXzXzXzXzXzXzXzXzXzXzXz _.bXz.b.bXk.bXg NXz.b.b.^Xz.bXzXz.bXzXz.b.^.bXz NXz.b.bXt F.H F.KXDXG.WXnXn 1 s g.WXa 0 O vXL.nX- 3.HX-.~.~.`.~ 3X-X- ~ a RXq.W.s J C C.N.W.s.N t.* tXD.M.Z.ZXI R 3 RXD R",
+".`.8.r.r.r.r.r.r.r.rXt.rXt.r.r.r.r.r.r.r.r.H ~.8.8.rXI 3 3XU.W.n xX,.!X0 &.q &X0XpXe.sXLXGXe.M.e.e.*.e 3 aXD C.N.).@ H b v.n.0XI R R.w.Z s s.w.DXD BX- a.e.* RX-.eXIX1 c.`.e R.M.* R R B.e.~ B a.} aX-.e a.~ mXc.' 1 : $XlXcXP g 4 T.].] :.`.8.`X-X- RX-X-.`.`X-.`X-.~X-.8.rXt.rXt.r.rXt.rXt.r.r N.^.^.b NXz.^.bXz.b.b.b.bXz.bXzXz N.b.bXz N.b.b NXzXz.X.bXk.^Xt.^ eXtXt.rXtXt.kXtX*.rX3XJ q V q )XkX*.k.k.^.b.X.o N.UXz.o.bXg.c.cXgXgXg.o N.b N.^.^.^.^.b.b.X.b.b.b.b.b.b.o.b.bXk.b.o.bXgXk.U.c.cXg.cXk.U.c.c.c.U.c.c.c.c.c.c.c.c.U.cXg.bXg.X.b.X.o.XXgXoXzXx.z f 5 I 5 5XJXt (.k.kXtXt.k ~X* 3Xy.G.].n $.DX,XD 8 c R s.n y 0X=.=Xs u x n.jXG.sXc nX3.K.aXIX1.Z R R.a.a aXIX,.aXD R 3XD.} R `XD R.aXD.aXI.aX, RXM `.,.1.G yXP.DXD.5 c.% f 5 D 5 D XZXp [X..%Xl 1 xX, c cX,.aX,.FXq.x.@.v 2.s o.E x.u.5 N.bXo.5.5 NXkXkXk l.c.c l l l l.Q. .Q.#.I.#.I.U.c.c.c l.c l.c.c.c l l l.U l l l l.U.c.cXg.I.U.cXk.c.c.U.U.U.U.U.U.U.U.UXkXkXk.UXg.X N.X N N.X N N N.b.z.I l.U.UXk.U.o.kXo.k N.A.z.X.z.U.U.U.U.U.U.U l.U.U.U.U l.6.U l.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.#.zX@./.6.c l.U.#.U.U.U.#.U.U.U.U.U.U.U.U.U.z.I.IXg.XXtXX #.u.ZXmXmXGX+Xp.,.WXe.s.v b o TXVXX )XVXtXV.u.u.HXVXI.r.uX,XKX0.E.h y.Y.j &.Y.Y.9XKXlXBXw `.uX, cX5 xXD h",
+".k.kXo.5 N.5 N N N.5 N.5 N N N N N.5.5.X N.K.k.kX*.5X*.u ' m.'.'XaX;.9.+.>.+ =X0 M.xXpX> yXm yXJ.YXJ.- VX, $.Z.E J wX0XnXG.'.wX5 $X5.ZXl.w $.wX,X,X,X,XVX,.u.}X,.}X5 `X9XV.H $XD.}X,XD 3 3XVX,XD c 3 3XD $.a ` D `X3XJXX k m ! @XO m D ] (.].u.u.uXVXV cXV.uXVXVX*.u.uXt.k.5.5Xx.X.X.X.X.X.X.X.X.z.z.z.z.z.U.U.z.U.z.z.z.z.z.z.z.U.U.U.z.U.U.U.U.U.z.z.z l./.UXk.zX9.zXk.b N N N.5.5.5 )XXXXXXX3XX ) NXxXgXk.#Xg.U l.6.z.U.z. . .I.zXk.cXgXg.X.b N.b N.b.XXg l l l l.cXkXg lXgXg.IXxXg l.cXk.#Xk.#.U.#.#.#.U.U.U.U.U.U.U.#.U.U.U.U.# l l.oXkXgXg.X q.R.z.I.RXg ( q q ) ) qX9.k.u.k.^XoXoXdXVXV.uXUXU.O s g x 'XK xXl T.' gXCXi.v 2XsXD.WX+.j JXLXw VX3XM 3X*.a cXI.ZXI.a RXI aXDXI RXI $X1XI h 3XDXDXDX-.}XI.a 3 #XM k.,X;XK.Y.w.u.k.2.5 c.r.K :X3XcX<XBXc 1.ZX5X5Xl x x hX, h cX, x._X4X6X= / 2 bXOXK `.k.KXt.kXd.u.^ NXgXg.X.o.o.o.o.o.oXg.Q.c l.U.c l.o.o.b.o.o.o.b _.o.b _.b _.b _.b _.b _.b.b.b.cXg.b.b.o.b.b.b.b.b.o.b.o.b.o.o.b.o.X N.^XtXt eXt.r eXt.rXt.oXgXz.b.bXz NXj ~ F.r.rXt.^.^.b.o.b _.b _.bXzXz.b.b.b _.b.c.b _.b.b.b.b.b.b.b.b.bXz.bXzXz.bXzXz _.b.bXzXz _.b.b.cXkXkXjXjXzXzXz _.b _Xz _.b.b.b.b.b.^Xz.o.oXg.b.r ~.K.8.aX1.D.!Xa.s._ C u t * /.=XLXG.a.}XX.8X-.~.~.~.~.`.`.e.`.~.' yXmXG.jXG x xXc.]XlXJXw n $X-.e t <XD.M h",
+" ~.8 ~.rXt.rXtXt.rXtXtXtXtX*X*X*.uX*Xt.uXV ~XV.8.rXV.HXVXJ.].n.n $.>X..O !XU H M z = n &XC.jXG v x x `X, R t 8 C.v J H.EXe.w.a B.~X-.Z 8XD 3XD.a B R 3X- aX- aX- a 3X5.5.`.eX1.a a.~ aX-.`.e.e.a.8 aX- a aX-.e a.a.e a.8XI 'XLXUXOXO.] (.] (.] TX5XI B RX1X-.`X-X-.`X-X-.` ~.r.r.r.r.r.r.r.r.r.r.^Xd.^.^ NXz.^ NXz.b NXzXzXz.bXz.^XzXzXz.bXzXz.bXz.b.b.^.^Xk N N.^.b.^.^XtXtXt.r.r.r ~ 3.r.rX* 3Xt.r.^ NXz.z.oXz.I.zXu i.U.c.cXg.bXz.^.kXj.r.r.rXt.r e.r e.^.^ N.^XzXz.^.bXz.^.^ l.^Xz.^.^Xz.bXgXg.V.o.VXg.o.c.cXg.c.U.U.c.c.cXg.oXg.o.o.^.oXz N.^./.t A./ QX .& q.f 5 I.AX3.rXt.r.rXt.H.H F.` $.] = g.0X. T hXHXlXK :XK =XC w.= / C U XG.wXLXeXJX3XM.K 3.a 3.u.}.u 3 cXDX- 3.aX-X,XI #.aXD cX, 3 tX- h a h.a a #XXXJXK !Xm ' TX5 ' : 5Xt.kX*.K V # U.MXDXD $ $X,Xl.}.a aX-XDX,.l EXnX6X=.N.=XP T.u.$.R.R.f./.A./.A.&./.U.b _.b.oXz.b _.V.U.c l.c.V.c.bXzXzXz.bXzXzXz.b.b.bXz.b.b.b.bXz _.bXz.bXzXgXgXz.b.b.b.o _.b.b _.b.b.b _.b.b.b.b.bXzXt eXtXtXtXtXtXt e.XXg.b.o _.b.o.^Xt N FXtXj.r.bXz.b _.b.b _Xz.b _.b _.b.b.b.U.b.b.b.bXz.bXz.b.b _.b.bXz.b.bXz.b.bXz.b _ _.b.b.b.^.r e.^.r.^.b.b _Xz _Xz _XzXz.b.bXz.o.b _.b.b.I i N F )X1.8XI B.!XLXL v.) <.d.M.= 2 bX,.}X3.8X-.`.`.`.`.`.~.`.`.` BX5XG.) v G t t.a aX1X-X- R U.M $XDXD.e.a < t.W",
+".8.` ~ ~.`.r.r.rXt.r.rXt.r.k.r.rX*.r.u.H.8.H.H.8.uXVX-XlXJ s.'Xs.M.w.-Xw.O K =X; =XZ.jX+X+._XL v.W h $ 3.8.e RXs.N o ^ H J.wXD aX-.~ 3 c 3XI.} 3 #.` 3 3.u.a.~X-X-XD.~X-X-X-X1.aX- aX-.e a R aX- 3 aX-X-X- RX-X- R 3X- RXl $.0 ! g mXPXP.!.0 '.0 T R $XDX- R.`XI.`.`.`.`.`.`.r.rXt.r.kXtXt e.rXtXoXd e.k N.b.b.b.b.bXz.b.b.b.b.b.b.b.b.bXz _.b.b.b.b.b.b N l.b N.b.o N.^.oXtXtXt.kXt.rX*X*.rXtXtXj N.UXk.#.6XkXg.z. X .I.c.bXz.o N.^.kXjXtXtXt eXtXt.rXtXtXt.k.b N.^ N NXz.b.bXz lXz.bXzXz.b.bXg.cXg.c.c.c.c.c.c.V. i i iXu.IXg.o.b N.^Xz.o NXz N. .XX@X@./.z.z.&.R q.X q.z.rXtXt.rXdXt.8.HX1 : T TX; v $XG c.9XD `XlX5.9 J H.v /XsXs._.jXL v 1.[X3 #.a.a.8X-XIX,X.Xl DXcXKX.XJ $Xc `.O : `XH : :.e TXK ` | $ <Xl V.,.O &XC yXrXK T.u (.X.X )X9 |.i._ h U hXD.Z.D.D c.a.a.} aX-.i x E.J.JX= / v.Z.H )XoXxX9Xx.X.XXk././.z.c.o.b.bXz _.bXz.c.U.V.c.o _.c.oXz.b.b _XzXz.b.bXzXz.b.b.bXzXz.bXzXzXz _Xz.o.o.bXz.bXzXz _Xz _Xz.b.b _.bXz _.b.b.b.k e.rXt.r.r.r eXt.r.b.o.bXz.b.bXzXzXj e ~Xt e.r.^.b _.b _ _.b.b _XzXzXz _.bXz.c.b.bXzXz.b.b _.b _Xz.bXz _XzXzXzXz _.bXzXz.b.bXzXz.kXj e NXj.^.b _ _Xz _.b.b _Xz.b.b _Xz.o.^.b.b.U Z.AXkXJXx :.]Xl nX>XL.W.w.* 8.W 2 2 0 8 RXI.8.~.`.~.`.`.~.`.`X-X-X-X,XG.W O *.) t u <.a RXD.}X,.MX1 RXI a <.M.N.)",
+".r.5.` ~.8 F.8.8 ~.rXt.r.rXtX*.r ~ ~.$ 5Xo.$ D.5 I 3.%.5.GX;Xw.9 g.3XD kXl.n.w.' gXH [ VXBXq 2.).W t a aXIXIX1 t.N O ^ HXG.s $.eX1X1.5 c.u.K cX9XI.5XI.~.a.u.8.Z B 3.eX- R.eXI R.e.eX-.aX-.eX-.aXI.e.eX-X-.~ R aX-.~XD.~.n.Z.0XO.0.2.!.nXaXa.w.!Xl 'XK DXc 'XDX1X1X1.`.`.`.` ~X*.rXt.r e.r.rXtXd.^.k ~Xt.^.b.b.b.b.b.b.b.b.b.b.b.bXz.bXz.b.b.b _.b.bXz.bXzXk.b.b.bXz.o.bXz.^.^XjXjXj.k.^Xt.^ NXk.I.c.I i./.#Xg.U.c.o.U.b.b.bXz.^.^XjXt.r.r eXtXt.k.kXjXt.rXtXt.^.^.k.^.^.^.bXzXz lXzXzXz NXz.b.o.V _.b _Xg.c.c.V.c.c.U.U.U.U.c.o.b.bXzXz N.oXzXzXz.k.o.k.^.X.k N N.kXtXt ~Xt.rXt.r.rXt.r.8.8X9.O m g '.*.a.e.eX5Xl.~XD.e x.qXm.v /.) v.EXC.sXGXwX3XX.i.aX-.aXI cXD.3 1.-XlXc :Xl `XJXK k IXc IX..ZXD.- x :.- a.aXM., n.>.>.>.>.> nXw.HXx.^.k ~X5XBXMXq._ $.WX,X5.Z $XD.a <.a.} a h._ E..X4X=.s bXI.`Xt.r.r.rXt.rXjXz.X.o.bXz _Xz.b _ _Xz _.c.#.c.c.o.b.V.o.b.bXzXz _Xz.b _.b.b _.b _.bXzXz.b _Xz.bXz.o.oXz.b.bXz _Xz _ _Xz _.b.b _Xz _.b.b.b.^ e e.r eXt e.r ~ e N.o.b.b.b.bXz.bXt e.rXtXt eXzXz.b _Xz.b _ _Xz.bXz _Xz _Xz.U.b _ _ _Xz _.b _.b.b _Xz _Xz _XzXz.bXz.b.b _.bXz.bXjXj.r.bXj.^.b.bXz _ _.o _.b _.b _Xz.o.b.b.o.b l.I.f.& D I I :X3., n.sXsXLXD C C.W /.sXG $X,.`.~.`.`X-.`.~X-.~.`.`.`.aXKXn J *Xs.d t a.-XJ 3X5 ` 'XDXV h R U U.s 0",
+"XV.r.8.`.r.` ~ ~ ~.8.rX*Xt.r ~.8XV.8 IXo.A c.5 ) ] 1 6XHX; m.O.Z g.1 xXM.aXDXs.nXGXw | X7X7 v.).W.N.M.* a.a.a.}.N.)XnXC y.w.ZX1.eX-.e 3.u.KXV.`.a 3X-X-X-X1 ` mX9 :X5X5X5 ` : :X5X-.eX-.eX-.~ 3X1X-X-XI.eX- aX-X- a 3X-X, '.0XOXP g.n '.w.n s g.wXw ' s.0 T TXJ.HXI.`.`.`.`.` FXtXt.rXtXt.k.r.r.kXo.k e.r.k.^.^.^.^.b NXz.^.b.b.bXz _.b _.b _.b.bXz _.b.b l.o.b.bXz _ _Xz _Xz.b.o _.c.c.#.#.6 i.6XgXg.c.bXz _.c.oXzXgXz.b.b.bXzXjXt.r eXj.^.^.^ N.b NXt.r.rXt.rXtXt.rXjXj.^.b.^.cXzXzXzXzXz N.b.bXzXzXz _.VXg.VXg.VXg.oXg.c.o.o.bXzXzXzXz.b NXz N.bXzXkXg.XXg NXX NX9.K.kX* ~.k.r e.r.r.H.`X5.|.3X..OXJXJ 1 x ` $XOXcXUXUX0Xm O /.NXG.O.WXG nXBXM # 3.` a.~X1X,XI t cX, hXDXDXD x.uX,.uXD :X,.5XD.eX, c <.} a h `.- n.G =X0X0 y.j T.uXxXtXg.kXJXH z.pXr.[X+Xe nXJX,.aXDX, R a.aX, x E._Xp vXn.M.H.r.rX*Xt.rXjXt.^.^.b N.b.b.b.b.b.b _.b _.U.U.c.V.V.b _ _ _Xz _XzXzXz _Xz _Xz.bXz.b _Xz.bXzXz _Xz _.o.o.b.bXzXzXzXz _XzXzXz.b.b _Xz _.bXz.bXj.r e.rXtXtXt eXt.rXz.b.b.b _.b.b.bXt e.rXt eXj N.b.bXz _Xz _Xz _Xz _.bXz _Xz.c _Xz.b _.b _Xz _.b _.bXz.b _XzXzXz _Xz _.bXz.b.bXzXt e.r.b eXzXz _ _XzXz _.o.o _.b _.b.b.b.^Xz.bXz.o.b N.H.0.H.` 3 :.w v b.w CX, x.j.W.).WXG 1.e 3X1.`.`.~.`.`.8.`.~.`.8 :X,XG 2.N C < B gXUX.Xc TX..'XJX. VXw & MX0",
+" ~X-.8 ~.` ~.`.8 ~.r.r ~ ~.k.r ~.8.`.5 :.u ) ~ : ).KX5.3XJ ! 8.'Xa xXl.aXD.M v.n oXw.[X7 XB.-Xn.) *.N.* t t.M.M UXnX4 o H.n.w B.~.`.eX-.~X-X-X-X-.eX-X-.~ RX1 ` :XH c c # )XJXJ ` RX-.e RXD aX- 3 3 R.~ RX-.~X-X-X-.~ 3 R.0XU g.]XU.Z s.n.wXc.wXU K '.9.D s.0 g g.5XD.`.` F.`.8 ~Xt.rX*Xt.r.kXtXo.r.KX9.z.$.I.rXdXd.^.^.^Xj.^ N.b _Xz.b.b _XzXz _.b.b.b.b.U.b _Xz.V.U.o.#.#.c. .U.6 iXu.#.#.V.VXg _.b _.^.^.b.b.^Xz.U.b.bXzXz NXjXj.^.^.^.b N.b N.b.^ e.rXt.r.r e.r e.r e.^Xz.^ lXzXz.^.bXzXz.b.^XzXzXz _.bXg.VXg.VXgXg.cXgXg.bXz NXzXz.^.bXzXz.^.b N d.f.& 5.&.A.A./.f.K.rXt ~Xt.r.r.r F.8.8 T 4.0 ! 'X-XlXD 'XOXUXPXmXU HXC.vX= 9.TXeXe.YXcXl # # 3X- aX- RXDXD.a.e.e R R.e.eX1X,X, RX-.a.~ $XIX-Xl hX,X, hXM.,X..> & = 9X0 H.Y.- c.k.r.XX9XKXpXGX>XpXqXnXq.T.,.3.,X, c xXI h U [ xXnXLXp xXD.8Xt ~XtXt.rXtXt N.X.b.b.b.b _ _.b _Xz _.o.U.U.c.c.cXz _Xz _Xz.bXz _XzXzXzXzXzXz _XzXz.bXzXz _XzXzXzXg.o.b.b.bXzXz _Xz _ _XzXz.b _.b _.b.bXz.^ e e.r e.r.rXtXt.r.b.o.b.b.b.bXz.b eXt eXtXjXj.b.bXz _Xz.bXz _Xz _.b _Xz _Xz.U _Xz _.b _Xz.b _.b.bXz _Xz _.bXz.bXz _.bXzXz.b.b.b eXjXtXk N.o.bXz.^ i.6 i.6.#.c.o.b.bXz N.o.b.o.b.X l.X.H.0X9 3XI cXD.' 2Xa.W t.i.} U.) o.N g 8.a $.u 3.`.8.~.~.~ BXI ~ R B o.=.=.N 8.M.D.ZXDXI.}.a.K 3 c x.w.s 0 o",
+".`.8.8XV.8XV.r.r.HXV.rXt.rX*.8.r.8.8.8.8.8XV.uXV 3XI c gXlXK.W B.W xXD.M.M s.w.'Xw [ ` XX XBX+...)XF.N.).N.M *.).s.s wXCXa.ZX1 R B.~.eX1X-.~.~.e.~X- R B.e R.e.~.eXl.eX-.e 3.u.a.e.~ B.u x.5XDXIXl 3 3.e R.~X-X-.`XI.Z : g.Z 'Xl xXl.nXl.0.! sXU 'X; !Xc gXP ! g.%X. '.~ B.`.`.`.8Xt.HXtX*Xt.k ) 5 5 q I q.k.r.rXtXt eXt eXt.^Xz.b.b.bXzXz _.bXz _Xz _.b l.b _ _ _ i i.#. i.6. .#.U.o.oXz.V _Xz _Xz.b.o.b _.bXzXzXkXzXzXzXzXzXz NXz N.bXz.^.^ N.^Xt.r eXt.rXtXtXtXt eXt.^.^Xz.cXzXzXz.bXz.bXzXz.b.bXz.b.o.oXgXg.oXg.cXg.bXz.bXzXzXzXz.^.oXz NXz.X N.XXgX9 NXXXx.k.KX*.k ~X*Xt.rXt.r.r.8.8.`.5 g.0.0.DXsX,.wXaXa b b.n J.9XC 2.v MXn o x nXMXM c c # aX-X-X-XD.eXDX-.e aX- RX-.e RX-XI.~XI RXDXI B x.'Xc `., |XhXHXU =Xh.>XZ HXZ.> ,XxX 5 } T =Xe.JX>X>X4 > W.i.-.S.].%XK.,XK nXh M.j x TX, 3.rXtXt.rXtXtXtXj.b.b.b.b.b.o.b _.b.b.b.b.V.U.U.V.V.c _XzXz _XzXzXz.bXz.bXz.b.bXz.bXz.bXzXzXzXzXz _Xz.c.o.b.b.bXz _Xz _Xz _Xz _.b _.b.bXz.b.b NXjXtXtXj e.r eXt eXg.o.bXz.b.o.b.b e.r e.r e.^.b.bXz.bXz _.b.b _Xz _.b _.b.b.c.b.bXz _Xz _Xz _Xz _ _XzXz _Xz _XzXzXzXzXz.b.bXz.b.X.^.^Xg N.b.o _ _.o.o.cXgXg.o.bXz.b.oXz.b.b.^.X.b.o.XXdXV :XV.8 cX1.wXL.sXL u < <.}.d.j 0X0.>XJX#Xh )X1X-.~.8.`.`.HX1 BXs.!.=.= 8.M R t t R t < < a.eX, R.N.) O J",
+" ).KX3X9X9X9XxX9.RXxX9XtXt ~Xt.z.5 3.8.8.uXV ~.uXVXIXV.2XU g.W.' s.Z $ R.Z x vXw nXB XX.l # .- >.sX=.N.= / *.) *Xb.vXCXm s ' 8.H 3XV c c : $ cXD cXD $.e R.e tX-.~ 3 3.eX-.a cXl.eX-.eXlXVXc D : k :.3 $.e RX-XIX5 # 3.~Xl.ZXl '.5Xl :XK.' T T '.DX;XK.2.0XUX;XO.OXy.].DXIX1X1.`X1 ~.8XV c ) qX3Xx.KXt ~.r.rX*Xt.rXt.rXt.r eXt.^.b.bXz.b.b.b _.b _XzXzXz lXgXgXg.o.#.U.U.U.U.U.c.c.b.V.o.cXzXz.b.o.bXz _.bXz.b.b.^.c.b.b.b.b.b.b.bXz.bXz.^XzXzXz.^ e.r.rXt.rXt.rXtXt.r eXjXz.^XkXz.^Xz.bXz NXz.bXz.^.b.o.cXg.oXgXgXg.o.b.bXzXzXz NXzXz.^.bXz.b.^.fXgXkXXXk qXk ) q.5X9X9X*.r.r.rXt.rXt ~X-.`X1.2XP '.Z.wXaXa.n 9Xm &.!.E o.E /X>X=XC.W.[X3 # #.a 3.5X-.~ a.~XI aXIXl $.uXDXI $XD.e $ $ h $.~ 1 R x.Z.Z $ a hXMXJ., y.OXZXrX0.; x.- $X9 (.RXx xXn.s.s..X4X2.p._XA x.w c $X, h Xr s.YXK.u.} ~X*.rXt ~XtXtXt N.b.b.b.b.b.b.o.b.b _.b _.c.U.U.c.V.c _ _XzXzXz.bXzXz.b.b.bXz.b.b.bXz.b _Xz _XzXzXzXzXg.oXz.b.bXzXzXz _ _Xz _XzXz.b.b.bXz.b.b.bXj e e.r eXtXtXt.^Xg.o.bXz _.bXz.bXt eXt.r e.^ N.b.b _.b _Xz _.b.b.b _.b _Xz.c _.b _Xz.b _.b _XzXzXzXzXz _Xz _XzXz.b.b _ _.bXz.bXzXk lXk.o.^ _Xz _ _ _ _.b _.b _.b.b.o.I.b.b _ N lXgXzXo.H.HXI ~X*XIX5XL.=X= U.a < a u G.v 9 HXGXc TX, a.`.`.` B.` '.HX1XD bXa.= J.M s.w R t a a a c x.i.*.M.=.v J",
+".$.K D 5 ) I.R I q q.z.H.rXd.K.$Xx ).5 5 ).$XJ ).| :XJ.|XwX; !.'XK.Z.n.9XL x.jXwX3 x # h.l #.lX3X2..X= 2.v.s.s.s.sX=.vXC bXa.D.~.~.eX1 cX5.,X3.,.5 ` c k.e a a BX- a.eXl.e.~ 3X-.`XI.a.8.e.uX1XIXI.K.5XIX5.K.e 3 $X-.e.a.~ $ BX5XI 8 RXD.Z '.n.nXa.Z.nX1XI.a 8 $.n.nXlXJX5.~.~X1.H c.`XlXx.5 D.uXV 3.`XV.u.kXt.rXt.rXtXtXt.rXdXt e.^.b.b NXz.b.b.b _.b.bXz lXg l.UXgXgXgXgXkXgXg.cXg.c.c.cXg.c.cXg.c.c.cXg.c.o.bXzXz.c.bXz.bXz.bXzXz.bXzXz.b.b.bXz.^Xj.r eXt.rXt.r e.r.r e.^.^.^.UXzXzXz NXz.bXz.bXz.^Xz.oXg.c.o.oXg.o.b.^.b.b NXzXzXzXz.^.b N.b.^X@ q./ q.&.$.$.$.$.f.$X9.r.r.rXtXt.r.r ~.`.8 R.0 gXPXa.n.w.qXC.!.q bXC & H.v w b z ^ v.[ #XMX* a.8 #.`X-X-X-XDX-XIX. $.,XJXlXHX-X5X5 : :XJXH.]X3 hXl.9.Y h #XM k.jXP y.>X0 z.qXn yXM D.k ) c $ t.).WX=.@X+X8 >Xq E.FXl RX1 t UXeXp xXK 3XI ~X*.r.rX*.r.rXjXj.b.b.b.o.b.b.b.b _.b.b _ _.c.U.U.cXg.V.b _XzXz _XzXzXz.b.b.b.^.^.^ N.b.b.b _Xz _Xz _.bXg.o.b.b.b.b _ _Xz _ _Xz _Xz.b _.b.b.b.b.bXj.rXjXt.r e e.rXjXg.oXz.b _.b.b N.^.rXt.rXj N.b.b.b.b.bXz.bXz _.b _.bXz _Xz.U.b.bXz _Xz _Xz _Xz _.bXzXz _Xz _XzXz.V.bXzXz _XzXz e.r.r.b.^Xz.bXzXz _ _ _ _Xz _.b.b.V.z Z d.A.& A.tX Xu dX@ (.k :X*.8 3 s.s.sXe t.} < <.W.) 2 v.w.} s.D.aX-X-.`X1.~.%.ZX- a 9.s.N =.+._XC C G.N t uXM [X..Y G.= O 0",
+".K.u.K c NX*.k.u NXoXt.r.rXtXt.f 5.A.$ }Xx 5.A 5.| ).3.% 4 @ ! s 1.9XKXG.9 y.,.[.lXM.i < aXM.lXM.[XpXp.@.j.j.p.p...v J.E b.nX1.~.~.~.~XD.u.`Xl c RX- a.e R.* aX- aX-X-XI 3X- RXIX-XIX-XIXV R.kX5 # c.eX1 3XK.,., 3 RX-X- 3X,X1 R $ B RX1 R.'.Z.w $ 8 3X- aX- 3 R.D.w.n g '.wXlX5 `.] 5.] 3XI.` R.HXI.8.H.8XVX*.r.rXt.rXtXtXt.rXd.r.k.b.b.b.b.b.b NXz.b.b.b l.X lXgXgXg./.oXk.U.z./.UXk.c.c.cXg.V.U.b.c.c.o.VXg.cXg.b lXz.bXz.bXzXzXzXzXzXzXz.bXz N.bXjXt eXt.r eXt.rXt eXt.^.bXz lXz N.b.b.^.^.^.bXz NXz.oXg.cXg.oXzXzXz.bXz.^.bXzXz.bXzXz.bXz N N N NX9.zXX.XX9.5 N.K.5.kX*.rXt.r.r.rX* F 3.`.`X1 gXw.nXa sXC 9 J J O 0 J.@ 2 w /.. /XG.-XM #X-X-XIXVX-.~X- RXD.~ aXJ 3 mXK :XJ $XI., c mXl cX. :Xc `XJ 1X, # # kXUXGX0 MXS.> z M.1 YX.Xx.u.uX- t t.N.W.s .X+X2.JX4 WXcXJ U $.wXq.- [ 1 3.K.k.rXt.rXtXtXtXjXj.b.b.b.b.b.o _.b _.b.o.b.b.c.U l.c.c.VXz _Xz.b _XzXzXzXzXz.^Xj eXjXzXz.b.bXz.bXz _Xz.b.c.o.b.b.b.bXzXz _ _ _ _XzXz.b.b.b.b.b.b N e eXk.z.k e.r e NXgXg.o.b.b.b N.oXj.r eXtXj N.bXz.bXz _Xz _Xz.b _.b _Xz.bXz l _.b _ _ _Xz.bXz _.b _XzXzXz _Xz _.bXz _.b _.b _.^ eXjXt.b e.^Xz _ _Xz _Xz.b _.b.b.b.^ l.z.I.t.Q A.z A d (X@.z.r.8.5.`XV.nXa 2.s U.M <.* t.N.= JXG.Y s.n #.` R.HXV.~ |.8.} <.'.s.NX> yXZXp / / /X= uXp.9._ M *.=.v o",
+"XX.5 q D.KXxXk q ) q q.XXt.rXtXt.rX*.rXt N.^Xt.rXxXV.`X5 D ! g s sX;XU yXUXH n `XM.i < a a <Xl XXX7 V.[ XB XB.p.p.@.jXa.wX-X-.8 # cXV 3 c x c h a aXc x.K tX- aX1.~X1 c.~X-.`.~X-.` a.` c cX- cX- aX-.uXD c ) :X3.] `XK.]Xc.0 m gXJX,.Z.u R BX-X- 3.eX-.`.aX- 8.Z.nXc 'XJ g.] 4XJ $.ZX1X1X1XD.D.`X1.`.`XV.rX*.rXtX*XtXtXtXt.r.rXtXt N N.b.b.b.bXzXz.X.Q.z.oXgXk.$Xk fX@X@.t.&X@.IXgXk.o.oXg.VXg.c.VXg.VXg.cXgXg.o.#.b.bXz.b.^.bXzXzXzXzXzXzXz.bXz N.^.r.rXt.rXtXt.r.rXj NXz.^Xk.b.bXzXz.b.b.bXz NXz.bXzXz NXzXz.bXz.^Xz NXzXzXzXz.^.^Xz.oXzXz N N NXg ) q q V./.$ 5./X3X*.rXt.r e.rXt.r ~.`X-.`XV m 'XL.!XC O O.=X= 2X=.. 2 ^ M 2 2.YXc # c.}.u cX1X-.eX-X-.}.~ RXI.e.uX, RXV R.eXI RX, 3X1.u aXD.a tXD <XMXM.,X; & = =.+ S H z y 1XD.K.` R R.a < t < U.s..Xf.CX8 [.[X. n.[.1XH.Y.$ q ).R.r.rXtXt e.r e.^.b.b.b.b.b _.b.o.b _Xz.o.b.c.c.U.c.c.cXz _.b.b.o.b.^Xj.^.^XjXt eXt e.^.o.b.^ _Xz _Xz.bXz.b.b.b.^.b.b _Xz _ _Xz _ _.b _.b.b.bXzXj e.r./.UXg.rXjXt.b.c.b.b.oXg.o.o N NXt.kXj NXg.o.^.o.b.bXz.b.b.bXz.bXz.b.bXz.U.b _.bXz _.b _ _.bXz _ _ _.bXzXzXz _XzXz _Xz.b.b.^XjXj ~.o.kXz.bXz _ _Xz _ _Xz _Xz.b.b.bXzXg.& AXgXg.z.z.Q _XoXoX*.$ 3XVXD s 2 2.s.M.M MXG.WXh.Y.+ s.9 cX- c.5 '.~.%.u.a a.- s.w =Xp =.E /.= 2 2.NX> =Xw.s.W 2 v 2",
+"XX.KXX ).kXXXxXx.5Xx.X.KXt.r.r.rXtXtXt.r.kXtXt.kXt ~.`X1 'Xc g.! !.>Xh K KXh |X#.[ | a a tX-.}XX #XM #.l #.l.l.FXB.j.EX0XGXK #.8.K a.~.e.e 3.e c.uXI R I.3 1XJ :XJ :XJ ` DXJXM D.e.~.~.eX* c.8 3.`.eX-X- c.~X-XlX5XM.u.uX5.KX3 B 1.Z.u 3 3 3.eX- RX-XI.eX-.aX-.*XDXaXlXOXU ' 'X5.!.] g !.] y.]XU D.0X1.`.`.8 ~X*.r.k.rXd.r.XXdXo.zXxX@XtX9.b.^.^.zXx.z N.(.6.t.f.(X .o.fX@Xk./Xk.z.UXg lXg.c.c.cXgXg.cXg.cXgXg.c.cXg.Q.b.^XzXzXz.bXzXzXzXz.bXz.bXz N.b.^Xt.r.r.rXt.r eXt.^.^ N.^ lXz.^Xz.^ NXz NXz NXzXz NXzXz.b NXz.bXz NXzXz NXzXzXzXz.^.o.b.^ NXz N.XXxXk )Xk qXk q )Xk.^Xj.^XtXtXtXt.r.8.8.8.`X-XlXwXl 9Xm.E.=.BXvXFXF * *Xv G.N.=.j.-XXXX.8.~X- 3.8.e aX- 3.~X-X1 R.~X-XD.eX-X-X- R 3 R.~.Z 3 R R R.aX- hXM k.1XO = M & zX>X>XeX, 3XIXD.u.a.a R <.a.M.W.s...4 +X:.YX7XKXBXr.jX7 X* 3Xt.k.r.rXtXtXt.r.kXz.b.o _.b.b.b.b _.b.o.o.o _.o.U.U.c.cXz.b.b.b.bXz.^ e.r eXjXt e ~ eXtXj.^.b.b.b _.b.# iXz.^.^.^.b.bXzXzXz _ _Xz.b _.b.bXz.b.^.^XjXjXj.z d.r eXtXz N l.b.oXgXgXgXk.c N.^ N.k.oXgXg.oXzXz.b.b.bXz _.b.bXzXzXzXz.U.o _ _.b _ _ _.b _.b.b.b.b _.bXz _.b _ _ _.b _.bXj e e.r l.b.o _XzXzXz _Xz.b _Xz _.b.^.b.b.UX&.(X&.(X P X Z X f NXXXkX- 3 sXL.N O.WXD.Z.Z <Xs u 9.jXU.>XJ c c : T.H 3.`.`X-.ZXs xXl UXlXL 2 O b 0 O.s.s.s.N.=.sXG.N",
+".K.kX*.kXVX* ~.r.rX*.r.r.r.rX*Xt.rX*Xt.r e.rXt N.k.`.`XIX1 gXO.9XK.G =.1Xc `.- ` h 3 < aX-.e B.MXXXM # #.i #XMXq yXG JXCXaXa R a c.eX- c.KXIXD 3 # c RXMXlXM D $ : ` T D $ 5.] D #X5.K.K 3.8 3.eX-X-X- R 3.~X-.e.eX-.eX-X- 3XD 3X1X- a.a 3X*.e.aX-X-.`X-X-XIX-X- 8.wXa gXU.n.ZXaX5.n.0 s.0.n s.w.' D T.D.`.`.`XV.k ~ N N ) ( ] ] ]./.A.kXg )Xk.X.t.t.&.X.Q.R.zXgXkXk.cXgXgXkXg.cXgXgXgXgXg.c.c.o.V.VXg.cXg.VXg.oXg _.U.bXz.b.b.bXz.b.bXz.bXz.bXz N.b N.^XjXt.r.rXt.r.r.k.^ N.^.^XkXz.^.b.^XzXz NXzXz N NXz.bXzXzXzXz.^XzXz.^.bXz.^ NXzXz.^.oXz NXz.^ N N N N N N N N N N N N N.^.^.^XjXj.r.8.8.8.` RXV.ZXP o.jXC.v.= * u.d.) * *.WXs.W.j : #XMX* 3X1X-.`X,.`.a.aX-.eX-.eX-X-.~X1X- a R.u m )Xl $ 3 $XD.9.a.aXMXX k.3XZ.>XZ.TXZ.+.+ y.9.' m ` :Xc.u aX-.~ R 8Xs...@X:.T.T.1.1X%X<.Y 1 3.a ~X*Xt.rXt eXtXt e.^.b.b.b _.b _.b.b.b.bXzXz.bXz.o.#.cXg l.b.b.b.b.^.b.b.rXt.r.r ~ ~.r.rXtXt.k N.b N.b _.I d.^.^ e.r.^Xz.b.bXzXz _Xz _Xz.b _.bXzXjXj e e.r.r.r.^.r e.X.^ l.o.b.b.b.b N NXt.r.r.r.^.bXz _ _.b.o _ _.b _.b _ _.b _Xz.U.bXzXg.c.cXg.V.bXz _Xz _Xz.b _Xz.bXz _XzXzXz _XzXj eXj.rXg.^XzXz _ _ _XzXz _Xz.bXzXz.b.oXz.bXg.c.b.X.X l l.c.oXxXoX9XX.8.`XD s O O.= sX1 R t C *XL.N gXU m.].| `.%.uXD.8.`.`X1 B B a aXM v s s.W.wXG vXm /.=.s O.E.M",
+" q q V qX* ~XtX*.r.r.r.rX*.rXtXt.rXt.rXt.rXtXt NXt.8.`.` gX..' v s.O K., ` # h ` aX- a 3.a a R.~ a.i # c # #.lXcX+XL HXm bXKX,.uXl.eX- 3 cX3XX DX5 VX-.e 3XD.e a.~.~.eXI.u cX1Xl.8X*XX.5.8XI.8X-.~ a.e.e 3 a.~.a.~X1XI.eXD cXV.}X- a a.a 3 cX-.`X-X- RX-X-.aX-X-.e.w.w.0.'.w.DXs.Z s.nXa.n s.n.w.nXl.0 DX5X1.5 ~XoXk 5 I QX@ )Xx.k.k ~ ~.tX@ AXtXg.X.X.XXoXk.XXg.z.cXgXgXg.o lXgXg.U.c.V.c.c.c.c.V.cXgXg.o.V.oXg.bXz.U.b.b.b.bXz.bXz.b.bXzXzXzXz.bXz N.^Xt.rXt.rXt.r.rXj.^ N N.^Xk.^.^Xz.b NXz.^Xz NXz.b.bXzXzXzXzXzXzXz NXz.b NXzXzXzXz.^.bXzXzXzXzXz NXz N.^.^Xz N.^.^.^ N.b.^.b.b N.^Xj.r.8.8 ~.~ ( T.9XO 9 oXi /X= *.)XqXs G.N.N x nXM.l c c 3X1X, 3.~XIX,.KXDXVXIXDX1X- 3X-XIX1XI cXJ m.,.2 kXcXJXJXKX3 k., K K KX0.+.1.+.xXpXn x $ R.u x 3.}X- 3.KXD.wXsXn.@X: M.<XpXpXq.YXBXM 3 3.8 ~Xt.rXt.rXtXjXjXz.o.b _.b _.b.b _.b _.b _ _ _.o.U.UXg.o.b.b.b.b.b.b.k.r.rXt ~ ~.` ~.8.r.rXt.^XzXzXz.b N.c.b eXt eXj.bXz.b.b _ _Xz.b _Xz.b _.b.^.^ e.rXjXj eXt eXj e.^Xk.b.b.b.b.b.^Xj eXt eXt.b.b _.o.b _ _.b.bXz _ _.bXz _.b.V.I.c.c.o.c.cXg.c.o.b.VXzXz _XzXz _XzXz _Xz _XzXzXz.^Xz eXt.b.^.b.b _XzXz _ _Xz _.b _.b _.bXz.b.bXg.b.b.^.o.UXg l.b.5 N.8.k.8 3 8 s OXaXs C t t.*.*Xa.=.M R.ZX5.] ` k.].|.0 5 '.R.eX1.8X-.KXIX,XD.e RXD C s v.=XL.'Xm $",
+"XVX*.r.rX*X*.r.rXtXtXtXtXt.r.r.r.r.r.rXt.rXtXj N.r.8.K V kXw.n s.9 [.YXK.}X-.a : : : : cXMXl cXM V c 3.lXM # k [ g.jXO o.w.w.ZXI 3X-.aX-X-.e.e.eX-X-.` c #.u c.K c.5 :.K 3.uXI.e #XVXVX- a.~.~X-X-X-Xl.`.e RX1 R 3 : $.`X- RX-X-.`X-.` 3.uX-X-X-.~X1X- RX-X- aX-XIX-XI.eX1 a RX,.e R t t.WXD.MXs.D.w $ T 4.|.`.5.H.H.r.u ~XV.rXt.r.r F.`.^.rXkX A dX@.t.t PX& fX& fX&.I X.(XgXgXgXgXg.c.c.V.c.c.c.V.V.V.VXg.c.oXz l.b.bXz.^Xz.b.b NXzXz NXz N.b.^XjXjXt.rXt.rXtXt.rXtXj.^.kXj.b eXt.^XzXz.^Xz NXz.bXz.bXzXz.^XzXzXzXzXz NXzXz.^XzXz.^.^.b.^Xz.^XzXzXz.b.b.b.b.b.bXz.bXz N.^XzXzXzXz.b NX*.r ~ 3.`XX.5.ZX, &.E 0 o ^...s J.E 9.OXZ.9 [X.XX.Z 3XIX3X5X1 RXl cXV R.uXI.HXI.8 3 3X-.~X-X-X- 3 R 3 3X-.a a.8.a #.5., k s n.+ H...s.W t.* t RX-X-X-X-.e R.`.e.D.W._ vX>X2 z WX2Xp.[XK.K.K.u.8.r.rXtXt.r e.^Xz N.b.b.b.b.b _.o.b.b.b _.bXzXz.oXg l l.b.^.b l.z.&.XXg.X.kXV.r.`.8.` ~.`.8.rXtXj.^.b.b.o l.IXj eXt ~.rXjXzXz.b _Xz _ _.b.bXz.b.bXz.^ eXgXj.r.rXtXtXt.rXg N.b.b N.b.^ e.rXt eXtXg.b.b.o.c.c.c.c.cXg.cXg.V.o.o.o.b.U.b _.b.V.o.o.o _Xz.b _.bXz _XzXzXzXzXzXz _Xz _Xz.^Xz.zXgXk.^.bXz _ _ _Xz _Xz _.b.bXzXz _.b.o.b.UXg.V.b.b.b.c.c.cXg l.r.` ~.`X1XD.9.s.w s.N < C u G 2XDX-X1 B.~.` R.`X-.`.~XoX5X1.`.~.8X-X1.e BX-X-.a.aX,XM.a tX- hX-",
+".r.r.rX* ~.rXt.r.r.r.r.r.rXt.rXt.rXtXtXt.rXt.k.KXt.rX3 D m n.YXn [.- :XM.aX- RXD.eXI.eX-X-.eX- a cXM # #XXX3 V.-XU n @ = gXw :Xl `Xl 3.aXI.e.~ aX-.e R.e.~XI.~X- ).`XXXI.~X-.K.5XV.`.~XIX-.`X-X-.~X-XIX3.] :XlXJ.] $XcXK.].e.eX-X-X- a R.u h.8.~X-X-X1 R R aX-.~ aX- R RX- 3 RX-XlXl R.*XDX,XD a 8XDXDXa.w.'.2.D BX1.`.8.8.r.`.8Xt ~Xt.r N.^XtXzXx N.RXxXx./.zXk.z.t.z.zXk.z.UXkXgXgXg l.U.c.oXg.V.c.c.cXg.cXgXg.c _ l.b.bXzXz.b.bXz.b.b.bXz.^XzXj e.r e.rXtXt.rXtXtXt.r e.k e.r.^ eXj.^Xz N.^.b.bXz NXz NXzXzXzXzXzXzXzXzXzXz.b.^ NXz.^.^.oXzXzXzXzXzXzXz.b.bXz.^Xz.^.bXzXzXz.bXzXz.^.b.^.^Xt.r.8.r.k.~X1X1.ZXL.s ^ ^.s.) y o vX;XS.,XHX..9 VXJ.,.]X. D mXJ.,XJXV RX-X-.e.e.eX- 3 a.~.e aXDX-X1.u.uX-.aX-.a #X5 kXc hXw & 0.sXe t R.aX-X-X- < < RX-.`X-X1XD c U vXGXnXf.x.pXn X, 3XI.` ~.r.r.rXt.rXj N.b.b.b.b.b _.b.o _.b.bXz.b.o _.o.o.cXg.b.b.o.b.X.t ).t q.$ 5 ) ).$.K IXV.`.8 ~.r.r.^ N.bXz _Xk eXtXjXj e e.^.b.b _Xz _.b _ _Xz.b.b.b.^.^.^ qXzXt e.r e.r.oXz.X.bXj e ~ ~ eXt.r.^.c.o _.V.cXg.c.c.c.V.VXzXz _.V _ _.#.o.VXgXg.b _XzXzXz _.bXz.b _.b _XzXz _Xz _Xz.b _XjXjXj.^.c.^.oXz _Xz.b.bXz.b _Xz _.b.b _Xz _.bXgXg _Xz.bXzXg.o.o.V.z eXj.` F 3.~XDXG.w.sXL.N.) ..s.W R.u BX5X1 cX-.8 3.u.8XVXV.H.~.8 3X-.HXIXI.8.a ~X-X-X-XIX1XI RX1",
+".rXt.r ~XtXt.r.rXtXjXtXtXtXtXt.r.rXt.k.r.rXt.^.K.8.K., kX..1 nXw =.[XB `.a.aX-.H.~X1X1.eXV.a.a 3XM.K `.-.- g gXm yXw.9 s $.*.aX- RX- 3.eX-.eX-.~ R.~X-.u.eXI 3 3X*X-X-.`.K c c.`X-.e 3.u.~X-.e.~X-.K.e c ` `Xl ).9.K T `XIX- a.~.e B RXV.u 3.~X-.~ R RX1.eX- a.aXI R.e.~X1X,.ZXc.e ` :Xc 1XcXJ hXD C.D.w.n.0XUXdX1XI.`.8.~.`.`.r e N NXj N.b.R A.z.z.zXx.f qX&.IXkXu dXkX .&.I.I.6./. .6.6Xg.V.c.V.c.c.c.VXg.VXgXz lXz.b.b.b.b.^.b.^.b.^.^.^XjXt.rXtXt.rXtXt.rXtXt.r.r.r.r.r ~XzXd.^.b N.bXz.b.^.bXzXzXzXz.^XzXzXz.bXz NXz.b.^ NXzXzXzXz.oXzXzXzXzXzXzXzXzXzXz _.b.b.bXz.bXzXzXzXz.b.b.^.kXt.r.r.HXt.H.8 R.a s JXCX0XpXLXcXKXcXw.G } V : $ h h c # $ $ c $X5 $X-XVX-.~X-.`X- a.8X1.e R.e.uX-.aX-X1X5X- a.a c.lX3XK $.Y.E v p u u RX-.e.a a a a t a BX-X-X,.M U U.WXf .XfX2.j.M cXV.8.8.r.rXjXtXtXt.^.b.b.b.bXz _ _.b _.b.b.b.bXz.b _.bXz.Q.b.o.X.b.X N.bXk.X.kXt c.rXVXV D.% ).`.` F ~.rXjXj.^.b.^Xg NXj ~.rXt.rXz.b.b _Xz.bXz _ _Xz _Xz.o NXz.k ~ e.rXtXt.rXt.b.^.b N e ~ F ~.r.r e.kXgXz.o.V.c.c.c.U.c.c _ _.c.V.c.c.c.#.c.cXg _ _XzXz _.o _Xz _XzXzXzXz.b.b.b _ _.b _XzXj e.b.XXkXz.o.^Xz _Xz _Xz _Xz _.b _Xz _XzXz.V.c.c.o _Xz.b.b.U.c.V.Q _.r.8 ~.8.8XI.}.9.)......X0 2XL `.K )XlXoX5 #X3 h.uXX cXJ.5.`XI.5 $ TXD., 3 ) cXXX5.~.uXV.].`.5",
+"X*.rX*.r.rXtXtXt.rXt.r.r.rXjX*XtXt.rXt.rXt.k N.^ 3.K qXc.,.,.jXH.1 kX3 xX, 3.DXVX-X-XI.u.a c.8XM.l XB V.jXc o sXa.n 9.Z.w R aX- aX-.a.a.eX-X-.e.~.~.e 3.eX1.~XI.r.~X- ~.uX*X- c.e.~X-.~ 3.eX-X-X-XM.eX- 3.` 3XI.e.eX-XD.eX-.eX- a R BX-XI 3 3X-X-.~.~X-.a.~X-X- aX1 aX-X- a.u : :Xl.9Xl :.9Xc 1.WXD tXD 8.w.'.0 g 'XIX1.`.H.`.8 ~.r N.o.b N.o.I.R.t.I.& PX .t.AXu.$.AX q d.&X d.&XuXuXuXu.UXg.c.c.c.cXgXg.c.c.oXzXg.b.bXz NXz.b.^.b.b.^.k e.r e.r eXt.r.r.r.rXt.rXtXtXt e.r.r N.k.^.b.^XzXz.bXzXz.^XzXzXz.bXzXzXzXzXzXzXz.^XzXzXz.^.^.^.bXzXz.^XzXzXz _.b.o.oXz.b.^Xz.^.bXz NXz.b.b N N.kXtXtXt.u.k.8.8X1 R xXU.j.j y.p.,XwXc : V., #XMXD.a aX-.e x T ' $XlXlX1X-.K.KX- R.~.~X- 3XI.e.eXIX-X-X- RX,XIXI a cX5X3 V.M.-XGX>Xr UX, $.eXMXD $ <.9 h R '.e $ 1 1.Y.M.wX4 .Xi.@ x h DXI.8 ~ 3XtXt.rXtXj.^ N.b.b.bXz.b _ _ _ _.o _.o _.b _.b.o Z.t X d Q.t.t f.| Q.H.8.8.u ~ 3XVX9.8.`.`.`.8.r.rXt.^.^.b q.U.k.^.r e e.^XzXz.b _ _ _Xz _Xz _.b.b.b.b.b.^ e.r.r.r.k.r NX*.^Xj.r F F F.r.rXtXzXg.b.o.c.c.c.c.c.c.c.c.c.V.c.c.c.c. .c.V.c _ _XzXz _.bXz.b _.b _Xz _.b.o.V.cXg _.b.bXjXj N.b.c.^.oXz _ _Xz.b.b.bXz.bXz.b _Xz.bXz.c.c.o _ _ _.bXzXg.c.V.#.c.^ e.8.8 ~.8XI.WXG %.sXiX= 2.s hXIX1.HXV.` 3 3.8.}.uXV cXD.`.u cX1 c.` h.8 #.8.r.r.~XVXI : 3.u",
+"Xt.r.rXt.r.rXt.r.rXtXt.rXj.^.^.^Xt eXt e e.^ N.k.r.8X3X3XM kX7XHX#.[.9 $.}X, $X. :XVXI.~XI 3X-XM #XB., y.'.w.wXL.n.D.' $ RX- RX5.e cX5XI.eX-.eX-X-.eXI.` aX-X-XI.~X-X-XVX*.e 3 3.~ a a RXIX- R.e c.`XV.a 3 3.K.a.` a aXV c RXl.e a.*.e x R 3.K.eXIX-X1.~XI.e R aXI aX-X- aXIXI.e 3.e.e.e aXD.a aXD.D RXD BX,.0.D '.!XPXPXP.].D.`.HXd N N.^.o.bXz _XzXgXkXgXk q qXgXxXgXk.zXkXg.cXg.cXg.cXg.cXg.c.cXg.c.V.c.cXgXg.bXz l.b.bXzXz.b.^.b.^XjXj eXt e eXtXt.rXtXtX*.r.r.r.r.rXtXt.r.r NXtXtXtXjXz.b.^.^XzXz.bXz.^XzXz.bXz.^Xz.b.bXzXz.^XzXz.^Xz.oXzXzXzXzXzXz _.o.cXgXg.b.bXgX9 N.^ N.XX9X9 N.^X9.k.kXo.k )XI.k.uXIXD.9 k : X3X3 kXX 1 ` 1 # kXc #XD a.a.a h., ' :X. :XH., I.aX-.e B B.~ 3.~ B aXIX-.` B 3X,.a.a 3.K : kX,.p.E.@ n t x.%.*.' k :.e.,.aX,.O R.Z.>., k t.- z 2XpX> h #.5.H.8.8.k.rXt.rXdXt.^.o.^.o.o _ _ _ _.b _ _.bXz.oXzXz.V.b.I.6.I.QXk A (.z.zXx F.`.`.kXVXt.u.8 F.`.`.` F.8 ~XtXt.^.bX@ l.oXj e e eXz.bXz _XzXz _ _ _.bXz _.bXz.b.^.b e eXjXj.^ e.X.rX*.r N.kXt F ~Xt.rXzXg _.V.c.c.c.U.c.c.c.c.c.c.c.V.c.U.#.c.UXg.o _ _ _ _ _.V.V.b _Xz _.o.V.c.c.V.c _Xz.bXj.k.b.XXk.^ _.bXz _ _XzXz _.bXz _.bXz.b _.b.c.c.o.o.c.b _.o.o.V.c.#Xg.bXt ~.8.8.8XIXD.D b.sXb %X= v aX- F.~ FX-.aX- a.}X-X*XK.%XV.3XI.8 a.~.8X-.e.aX-.`.~X-.`.~.`.~",
+".k.rXtXtXt.r.r.r.rXtXtXt.^ N N.^.^.^XzXz N.b.X N ~.8 q VX3XSXH [XHX# X,XeXJ.3XJ mX* 3 3X* a cXM xXcXUXGXe.nXsXD 8 8X,.e.~.}Xl.9Xl.]XcXI R.eX-.e a 3X-.e.e.e 3.`.e.K.` : a c :XMX,XIXDXlX-.aX1 cXl.e.~.`XI.5XI.8.e.`X- RXc `.,.9Xl .9X3 1XJ 3XJ 3 3XI 3X1X- RXIXD a.e.aX-.aX-.` 3X- RX- RXD 3 RX1.wX-X- a cXD.wXa.n.0 '.n.0 gX1.H.rXzXz.b.b.b _ _.b.c.cXg.zX@.AX@.fX@.6.f.UXg.cXg.c.c.cXgXg.c.c.c.c.c.c.c.c.cXg.bXzXg.b.bXz N.bXz.bXz e.r.r e.rXtXjXjXt.r.r.r.rX*Xt.rXt e.r ~.r.k.rXt.rXtXj.^XzXzXzXz NXzXzXz.b.^.b.b.oXg.oXz.^.^.^Xz.^Xz.bXzXzXz.^.b.b.oXg.cXg.bXk.b.tXk.& q.&X3 5./ q ) q.z 5 f 5 5.|.$XJ.5.% )XJXK `.,.GX#.S.3.3.SXHX#.[ $ # a <X-.a $ 3.Z.Z.a c 3.}.K RX-X-.~X- 3.e B B 3.a.e R.D.}X- 3 #X5XM IXe.YXG.s y.M 1 x.M $XDX,XDXc h $ $ x.D $ xXc.M xXpXn v.Y <.5 5.5.H cX*X*XkXx.r e.X.o.o.o.b _Xz _ _ _ _.b.b.o _.#.UXg.U. Xg.b.^ d N.R.zXo ~ ~.u ~XVXo.r.k.rXt.8.` F F.8.8.r.r.r N l.^.bXz e e e.^.b.bXz _Xz _XzXz.oXzXzXzXg.I.#.o e eXj.bXz.r.5Xt.r.r.` F.`.`.rXtXjXg.b _.c.c.c.V.c.V.U.c.U.c.V.c.c.c.c. .c.o.c.V _XzXz _.o.c.c.V.V.o.V.c.c.c.V.c.V.bXz.bXj e.^ N.c N.b _Xz _Xz.b.b.o.b _.o.o _Xz.b.o.c.c _.oXg _.b.b.V.V.c.U.U.o.^.r.r.8.8.8X1XI.n v 0.. vXL 8.`.`.`.~.`.e.-X*.K k.2 $ I.0 5.H c.`.8X-.`.`.`.`.~XI.r.8.`.`.`",
+".r.rXtXjXtXt.r eXt eXj.^.^.b.bXzXzXz.b.bXz.b N.^.r.`X*.S V k.[ |.S.%Xl.MXD.w.MXJ.,.~X-X-.e.aXM # `.-.j.w.wX, t C B RXD a a aXIXDXDXVX, B.e RXIX1XIX-X-XV 3XVXIX-X-.K.K.` c.K mXJXKXJ `XK : :X3Xc.]X-.e 3.~.` 3.KX-X-X-X-.K 1 $ 1.'.a :.9Xl : 3 c.~ 3X- 3X-X-X-XD.~ R a.~X-.` a 3X-X-.~ RX-XDXD RX,X, R RXIXD.e 8.D.wXaXaXaX5 gXd.HXd.^.^.oXz _Xz _.o l.cXk.U./X@.f.f.fX@.6.IXg.c.cXg.c.c.c.c.cXg.c.c.cXg.cXgXg.c.bXzXg _.bXzXz.b.^.b.^Xj eXtXjXj.^.^Xz.^XjXt.r.rXtXt.rXt.r.r.rXt NXtXt ~ eXjXzXzXzXzXzXzXz.^Xz.bXzXz.b.b.o.b.b.^.^Xz.^.^.^.bXz.^XzXz.b.VXgXg.V.o.c.oXkXk.zXx q./XxXkXkXk NXk.5Xk ).5 )X*X5.KX5.u `.2XJXc.G.>X.XH.>X;XHXHX;., x.l 3.e xXK $.a.Z 3 3Xl.a hX- c 3.eX-.~X5Xl T :.e.5X5 B 1 ` | c )Xc | V.}.jX4.s.W.M.aXI ` $.* aXD.a t.e a.*.*X,X,XD.M uXq.) J.wXK.` I.K I I q.|.$X@ fX@X@ N.b N.b.b.o.bXz.o.o.oXzXz.b i i. i.t.U.oXg.& fX .&.f ~ ~ F.k.k.A.k ~Xt ~ F F ~ F.8 F ~ ~Xj e l l.b.b.^ e.^Xz.b.b.bXzXz _Xz.b _ _.bXz.o.#.I.UXj.^Xz.bXjXj N.rXt.r.`.` F F e.r.^XgXz.o.U.c l.V.c.c.c.V l.V.U l l.c.c.I.U.c.c.V.V _ _.o.V.c.c.c.c.c.c.c.c.c.V.cXg.bXz.bXj.r eXj.X.b.b.b.b _Xz _.o _.b.oXgXg _.b _.o.cXg.oXgXg _.o.o.cXg.U.c.c.c.bXj ~.8 F.8.8.8 3 1.Y s o.'XDXD BXd TXV ) DX; ' ]Xl.HX-.`.`.r ~.kXo.`Xd.HXoXd.8.`.5.` N.HXt",
+".^Xt.^ N.^.^.^.^.^Xj.^Xz.b NXz N.bXz.b N.b.b.o N.k.`XtX3XM VXM.i $.} <.Z hX, $XD c aX-X-.} c #XM.-.-.9.w v.* B t.*.e 3 aX-X-.e aXI.aX-X-X-XD.eX-.e.e c.eX-.e.~.`XlXVXI 3.eXIXI cX1.a 3X-.a.aXI c.`X-.e 3.~.u.H 3.`X-.~X-X,.e.e a.e.*.e a.a.e a.e.~ 3.e 3X-X- RXD.e RX- aX-.`.e.8X1X- a B aX,.aXDXDXD R R $XI RXD R 'Xa.D.w ' T '.`XdXj N.bXz _ _ _.c.cXg.c.UXkXkXgXkXgXkXgXg.oXg.c.c.cXg.c.c.c.c.cXgXg.c.c.VXg.cXzXzXg.b.bXz NXz.bXzXz.^.^.^XzXz N.b.b.^XtXtXt.r.rXt.r ~.rXt e ~ N.r.r.rXjXjXz.^Xz.^XzXzXz.^XzXz N.b.^Xz.^XzXz.bXzXz.^Xz.^.oXzXzXz.b.VXgXg.o.o.b.oXg.oXgXz N.^ N N.^.^ N N.^ e ~.r.rXoX* ~.8.`.`XV., TXU T.0.! 9.! g y.9Xc kXM # h a.l., `XH., kXZ |.,XJ V.,XJ.e.e.]XX k D.0., D ` #X3.,XJ., kXHXH.- h.YXGXe.s U R aXc :XK :.- :XKXJXK :Xl :XD.}XD < vXL o.NXhXX (.0X9.5X9XkXxXxX9 qXt.X.b NXg.o.^.b.b.o.bXz.bXg.b.o.o.bXz.c.o.bXz.b.o.X.X.r.k.~.RXX.r q.KXt ~.k ~ ~.r.r.8 F.8 ~.rXt q l q.oXz.bXz.b.b.b.bXzXzXz _XzXz.b _.bXz.o.U.o.b.b.b eXj.r.b.r.r ~ F.` F.`.r.r.^.XXz lXgXg.V.V.c.U.V.V.U l.o.o.o.c.U.QXg.c.c.c.c.V.V.c.c.c.cXg.V.c.c.V.V.V.V.c.V _.b.b.rXjXjXj.b.b.o.c.cXg.o _Xz _ _Xg.c.c _Xz.bXg.c.o.o.c.o.oXgXg.c.V.U.U.o.UXkXzXt ~ F.8.8.8.`XV.0Xl.w.] RXDXI B.| T 4 'X5XIX1.D.5X5.`.8.r.`.rXx.H.H.`.H F.~XtXt.`.r F.r",
+".b.b.b.b NXzXz.bXzXzXz.b.bXz.b.b.bXz.b.bXz N.bX9Xt.8 )X3XMXX.l.}XI.M.a.}.Z hX,X, $ B.a c h.aXMXM.-Xw.'.wX, t RX-.a a.Z a.e.eX- aXD R aX- aX-.eX-X-X-.8 RX-.e : 3 c.`.H.eX1 aXIX,.e RXI a.~XD c a.~X-.eX1X-X-XX.8 3.`.~ aXV.aX-.e a RX- RXI.e.aX-XI 3.~XIXI.~.aXI RX-X-X-X-X-X-.a 3X- R.eXDXD.a.} x.Z cXc.YX3 : : mXJ sX,XD '.' g FXd e.bXz.bXz _ _.c.c.V.c.U.UXk.cXkXgXgXgXg.c.c.cXg.cXg.c.c.cXg.c.c.V.cXg.VXg.c.bXzXg.XXz.bXzXzXzXz.b.b.b N N NXz.^.^XjXt.r.r.r.rXt.r e.r.r.r.r N.rXt.r.^.^.bXz.^XzXz.b.^Xz.^XzXz.^Xz.^ NXzXz.^XzXzXz.^Xz.bXzXzXzXz.oXgXg.o.o _.oXg.cXg.o.bXz.^ N N N.b.^.^ eXtXt.k N.8.8.8XIX-XI.] gX5 sXaXa.nXaXaXaXlXG.,.9 x c a h aXXX3 1X3 `XK | #XIX-.a a.a #X1XIXD 3 `X, a 3 3.} 3 #X3XM., h.-.YXnXL._.MX-X3 : ` :.'.0.5Xl.ZXcXMXl.}X-X,Xe v.s H.sXl 1.H.HXI.8XVXV.rXt.r.rX*.^ N.b.b.bXg.o.b.b.b.b.b.b.oXz.oXg.b.U.oXz.o.^.X.b N.k.X FX* q.rXt.r ~.r ~.r ~.r.r ~.8 F ~.rXt.o.r.b.^.b.^.^.^ N.b.bXz.b.b _Xz.bXz.b _Xz _.b.b.b.^Xz e ~ e N.r e F.r.`.`.r.zXk.I.R.I i i.&.#.I. d d iX@. X .t./.I AX@.I dXg.c.c.c.c.c.c.V.c.c.V.c.c.c.c.c.c.V.V _Xz.b e eXjXj.^.b.b.c.c.c.c.bXz.oXg.c.c.c.o _ _Xg.V _.o.c _.o.cXg.c.o.U.UXg.cXkXgXjXt.r F ~.`.8.H.H.`X5.ZXlXw.OXc.SXD.uX-X-.`.`.8 3.8X-X-.`X-.~.8.8.uX* ` 5 ).2XV.`.`.~.8",
+".b.^Xz.bXzXz.bXz.b.bXz.bXzXzXz _Xz.b.b.b.b.b.b.b N 3.rX3.$X3XMXMX, 1XD < h.wX, R h 3XI a.a h 1XUXwXK.w.Z R a a.eX-.aX-.5 hX,XD R a a RX-XI.e a.e.e.}.`.~ c.u.KX1 3X-.e.~ BXIX,X-.eXI B 3XIX- a a.~.e 3.e.~X-.u #.eX-X-.e c.eX-X- a a.e hX-.e aXI.a.~ RXI aX1X- a.~ a.eX-XI.a RX, R a.M RX, tXDX1 #X, 3.uXK.Z x ` h.ZX1XsXl.n g.HXt.k.o.^.b _.b.V l.c.c.c.U.#.cXkXgXgXgXg.VXg.V.c.cXg.c.c.c.cXgXgXg.c.c.cXg.cXg.bXzXg _.bXz.b.bXz.bXz.b N.^.^XjXjXj e e.r eXt.rXt.r.rXt e.r.kX9 qXgX9 NXz.^XzXzXz.^XzXz.b NXzXzXzXzXzXzXz.bXz.^XzXzXzXz.^Xz.^Xz.^.b.oXg.V.o.oXz.o.V.o.o.o.b NXzXz.^.bXz.^.^Xj e.rXtXoXt FXIXd D.H : D.n TXa.DXsXa.ZXa s.'Xw.Y # # a.a # XMXc `.- ` x # # #.e.a a.8X- B B 3X- a a hXIX-X-XI xXM.- 1 h s.Y.sX>XD.a 3.aX-XIX1.~ BX-X-.e a aX- h h.MXe.) v &XH : ).u.HXVXV.^.H ~.uXtXk.XX9XkXg N.b.^.b.bXz.oXgXz.b.b.b.bXz.c.b.o.^.o.b.6.^Xt.z.K.rXtXt.rXtXtXtXt.r.rXtXt ~.8 F.8.r.r.XXj e eXjXj e e.^ NXz.b _Xz.b.b _XzXz _Xz.b.bXzXz.b.r eXj.k.b e ~ ~ ~ F F.rXx.I.f.tX X .&Xu.IX X&X&.& i.t.(./.t.tXu.( ZXu.t.c.c.c.c.V.c.c.c.c.cXg.V.c.c.c.c.c _.c.b.b.^ eXt e.^.^.b.bXg.V.V.c _ _.VXg.c.c.c _.o.VXg.o _.oXg _.o.c.c.V _.c.c.c.o.c.U.bXj e ~.`.r F F F.`XI.D x.>.1XG.Y 1 ' R.` F.~.u.`.` 3X1XI x ) :XJ D.5 I.K :.$X*.8.`X- ~",
+".o.bXzXz.b.b.b.bXzXzXzXzXzXzXzXz.b.b.b.o.b.b.b.XXjXt.8.a # V XM # x h a.ZX, $X, $ B.a c.} ` .- nXUXm.n $ tX-.aXIX-XXX3XKX5XcXl 1.9XKXlXJ $.e.~XIXIXI.eX-XV.KX-XV.e.~X-X1.eXD 3.eX- 3 a.u aX-X-X- a.~XI aX- 3 3XVX-X-X-X- R.8 aX-X- a RX1 R a.u.a aX- 3X1X- RX1 RXIXI 3 3 $.uX, $X5 3Xl.Z x h $ : xXD a t.}.a $X- a.a B R s sXUXo.rXd.b.b.b.b _.c.c.c.U.cXk.UXg.cXk.c.c.c.c.c.c.c.V.c.c.c.c.cXg.VXg.cXg.cXgXg.o.bXz l.X _ NXz.b.bXz N N.^.kXtXtXtXt.r.r e.rXtXtXt.r.rXt.r.r.^Xk.IXxXg.X.b.^XzXzXz.^Xz.bXzXzXz NXzXz.^Xz.^.^Xz NXz.^.^Xz.^.bXz.b.b.o.VXg.o.c.U.U.V.c.c.o.c.bXz.^XzXz.^.bXz.^.^ eXtXt.^.H ~.HXd.]XP g 4.OXU s s.*.* C 8.w s g.- x # <.}.lXXX3., n k.-.9 :.l.KXM.a a.`.a.}X-X- RX- a a.8 3 R B < h # V., 1XDXK v y sXMX5.5XMXI BX1 B.~.~.8.a a.}.aX- t U...=Xr.G 1 I 5.].k 5.`X@ ) (.r.AX9.6X@./.6X@./.t.&XgXz.b.b N.o.b.b.b.UXz.o.cXu.^ q./ ~.8Xt.r.r.r e ~.rXj F.r.r.rXt.r ~ ~.8 ~.r N N./Xg.r.r.r eXjXj.^.^.bXz _.b _.b _.bXzXzXz.o.bXz e eXj.X.XXt ~ ~ F F ~ F.k.k.X N.z q.I./.U.IXk.U.I.#.I.z.#.#.# l.#.I.c.c.c.c.c.c.c.c.c.c.VXg.c.c.c.VXg.c.c.c.c.bXz.^.^ eXjXg.b.o.o.cXg.c.c _ _Xg.c.VXg.c.bXg.c.c _ _.cXgXzXgXg.V.oXz.c.c.cXg.V.UXkXzXj.r ~.`.8 ~.`.H FXl.W._XnXF.s.sXn.DX-.~.~Xd.e }.] kXc mXK.0 : 3.` 3.` a 3.~X-.`.8XI",
+"Xg.bXzXz NXzXzXzXz.b.b _XzXz _.bXzXzXzXz.bXz.bXg N.r.rX-.aX*XJXM #X, ` t.}.wX, 1.M.a.aX, $ 1 V nXwXU s.nX, R 3X, 3X1XD.e # cXD RX5XI $ :XD.a.a a.eX1.`X-X-X-.` 3X-X-.~X-.e RX1 cX1.e RX1 3XIX- a.~ a.e.aX-X-X-X-X- c aX-X- c R.~ R BX,X- 3.eXIXDX-.eX-X, RX-X- RX-X-X-XDXV 3X- 3 :XcXK.,.-XKXJXK 1.,.9X,XD.Z $.aX-X- aX, R.'.n.0Xx.H.k N.oXz.b _.cXg.c.c.c.U.#Xg.cXgXg.c.c.c.c.c.c.c.c.c.cXg.c.c.V.c.c.c.c.cXg _.bXzXg _ NXzXz.^Xz.b.b.^.k.rXtXtXt.r eXt.rXt.r.r.rXtXt e.r.r.r.r.^.r eXj.^XzXz.^XzXz.^XzXz N.^XzXzXzXzXz.bXzXz.^Xz.^XzXz.^.o.b.o.o.o.o.oXg.U. i i i.#.c.o.oXzXz.b.^.bXz.^XzXzXj.rXt N.r.H.`.HX5.H.HXl g : R B tX- B R.w.n yXJXM # # # #XB.,XJXwXUXc.-Xw VXM X* a a.`X-.~.eXI.~ a.aX-.uXVX1X-.} #.l., | x x.Y.E.Y $ # 3.u.8.`.~.`.`.a.`XI 3XDXD R t UXs.s.sXw 3.3Xx.| qXx.u Q ).f.r.&.A ,.f.& Z.(Xu.tXu.c.b.o N.b.b N.b.b.#.c. XzX .IXz.^Xj ~.rXtXj.r.rXtXt ~Xt.r ~.rXtXt ~ ~ ~ F ~ NXjXgXjXtXj e.r e.r e.^.b.bXzXz _Xz _.b.o.U.^Xz.oXjXjXjXz.XXg.r.r ~ F.r.K ~Xt.k N N.$.&.A././X XuX X .AXuXu./.cXk.U.U.#.U.U.c.c.c.c.c.c.V.c.V.V.V.VXg.V.c.c.V.cXg _ _Xj l e.^.c.b.b.V.UXg.c.c.o.oXg.c.c.c.o _.c.c.c.b _.c.cXzXg.V.o _Xz.c.c.V.cXg.o.U.cXj eXt.r ~.`.r.`.] ` v.sXbX4.xX=.v.Y.nX5.Z xXl.9Xh nXU s.N t tXIXI.`.`X-XI.K.~XIX-.`",
+"XgXz.bXzXzXz.b.bXzXz NXz.bXz.bXz.b.b.b.b _.b.b.b.XXt.r.`.8.aXXXKXMXDXM h.M hXl $.M 3.aXl.lXMX7XH.-.'.n s.Z $XIX-X- a 3 R a a a t a aX-.a.e R BX-X1 3 RX-.~X-X- 3.e.~.~.e R.e : :.0X5Xl : ` : :XlX- aX-.aX-X- a RX-XIX1X-.uXI.~X-X-X, 3 $ x cXl : #X5 c $.~X- R.~ B.` B.u #.e.`X1 c t a.'.ZXD a tX,X, RXK.* R a a a.aXDXD.M.w '.! ( F.kX9 N.o N.bXg lXg.c.cXk.#Xg.c.c.c.c.cXg.c.c.c.c.c.cXg.cXgXg.c.c.VXg.c.cXg.o.bXz.o.oXzXz.b.b N.X.b.r.r.rXt.rXt.r.r.r.r.r.r.r.r.r.r.r.r eXt.r NXtXt.rXz N.^XzXz NXzXz NXzXzXz.^.^.^Xz.^ N.bXzXzXzXzXz.^.o.o.c.o.oXg.VXg.c.U.U.c.U.c.c.o.o.b.^XzXz.^Xz.b.bXz.^ eXt N.r F.`.HX1XIXI.HXJ $X1.eX-.e R B.D xXK.jXc # #XM #XKXw y.' y.j gXw., ` : hX- aXI aX-.eX-X- a R.8.`.~.D a.a hXM V k VX,X+ yXcXD R.aX-.`.`.`X1.`.~X*XM.~.Z.a R R < pX= .XK R.u.8.rXV.u.rX*Xd.kXt.kXj.bXgXg N.bXg.b.o.bXzXz.o.o.b.oXgXg.I.tX .b.o.o NXg NXt.rXjXjXt e.r eXt.rXtXtXt.r.rXt.r ~.8.8 N F.rXjXt e.rXt.rXjXtXj.b.bXz.b _.bXz.b _.VXz.oXz eXjXz.^.b N.rXt F F ~.^.rX*.K 5X9.z q.$.z.$X3./.$ q.$./.$.cXkXgXg.U.U.c.c.c.c.c.c.c _ _ _ _ _Xz _ _.V.c.c.c.c.V.b.b.^.#.z.U.UXgXgXg.c.c.cXg _.o.c.c.c.V.b.o.c.c.o _.V.cXgXz.V.cXg.VXz.#.VXg.V.c.c.c lXg.^ eXt.r.r.r.HX1X,XGXp M.; S.sX=.@ ^ 0Xn ^.hX>..Xb 2X4 v.9 sXl.9XMXD 3XDXJX3.K D 5",
+" lXz NXz.bXz.b.b NXz.bXz.bXz.bXzXz.b.b.bXz.b.b.o N.X.r.`.8XI.u VXX xXD 1X,.9XqXD RXD h 1 ` [X..j 9 s s.w B.eX-.e BXDX- a B.eXD aX-.e R 3 RX- 3XD R.e.eX-.e 3.~.~X-X-.e R.~ 3Xl R 3 `XK c D c `XDX- aX- aX-X-X-.a.~ 3X-.uX-.eX- B 3 xXlXJX,Xc :XlX5 DXM :.e.eX1X-X, 3.u 3.a a.- `XKXDXc.-Xw.-XK kX..9.e.a t R R R.} R.aXDXa s g '.8Xt.k.^ N.o.o l.U l.cXg.U.z.c.c.c.c.c.c.c.c.c.c.c.cXg.cXg.cXgXgXg.cXgXgXg.cXg.bXzXg.XXzXz.b.b.bX@XkXx )Xx.5XXX9X9Xx.` F.k ~.rXt e.r.r e.r e.r.^Xt.r.r.^XzXzXzXz.^XzXzXzXzXz.^XzXzXzXzXzXzXzXzXzXzXz.b.bXg.oXgXg.cXgXg.VXgXg.c.VXg.o.oXg.o.bXzXzXzXzXzXz.^Xz.^.^.^.k.r.r.r.8.8.HX-XI.]X5XI R.~ a B.*XD.w s mXc 1 x XK.- !.! v.n s.'.! k : h aX-.}X-.e RX-.~ R.e.u.`.~XD c cXM XX.,., hXp y.9Xw.9XlXl : #X5.5.k `.5 :X5 :.Z R.a <Xe 2 0 a.K.8 ~.HXtXtXtXtXt.rXt.^ N N.bXg.o.bXz.b.o.o.o.b N.bXz./.U l.I.b.b.o.b.b.X.bXjXj N.^.^Xt e.rXt e.r.rXtXt.rXtXt.r ~.`.k.rX9.oXt.rXtXt.r e.rXj.b.bXzXz.bXzXz _XzXz.b.bXj e.^.^.^Xd.kXtXt.8 F ~X*.r.rX9X .f.f.A.f.A } 5.$ |.A.A.f.A.A.f.I.U.U.#.c.V.c.V.c.V.V _ _Xz _Xz _Xz _.c.cXg.c.VXg.o _Xj e.r.oXk.cXk.U.c.c.c.c _.o.cXgXg.o _.V.cXg.V _Xg.c.VXz.c.c.VXg _. .VXgXg.V.o.V.c.c.c.oXt eXj.r.u.k 3.2.1 M.+.s 0 0.4 /XiXb.;Xb -XbX=Xb.).s H.Y.> Xl.] : P T Y 5 D.]",
+"Xg N.bXz NXz.bXz.b.bXz.bXz.b.b.b.^.b.b.b.b.b.bXg.U.XXt.rXI 3 3XlX3X3.}.-XJ.9 kXD xX.Xh.3 .Y.-.,.j.nXUXm.ZXl xXD x $ $Xl x 3XDXK.u R x ` $ R.Z.~.eX-.~X-X-X-.`.a.eX-.e.~.e.a 3XV R.e.eXI B 3X1 R 3.~ a.~ R aX-.aX-X-XD.~ #X-X-.~.eX-.eX-XD.e RX- a aX, R.eX1X-.eX-XD.H aX-XI.e : x : t.Z.9 : 1.Z $XJ $.*XDXDXD a.aXI RXDXs s.0 ! 4Xx.A.XXgXk.zX@Xg.^Xg.c.U.U.#Xg.c.c.c.cXgXgXg.cXg.c.c.c.c.c.c.c.VXg.c.VXgXg.cXg.bXzXg.o.bXz N.b.X.R.R.$ ) q ( 5 (.$.X.5 F.rXtXt.r.rXt.r.r.r.r.r.kXt.r e.^Xz.^XzXzXzXz NXz NXzXzXz NXzXzXzXzXz.^Xz.^Xz.o.bXg.oXg.b.o.cXg.o.o.o.o.o.o.o.o.o.o.bXzXz.^Xz.^.^.b.^Xz.X.^.X e.r ~.8.8.`.8.` T :.Z B B RX-X- a.w.Z yXwXc y gXwXw ! v sXaXLXL.9XwXKXM # R.e 3X-X- 3X-.~ R.`XV.HX-.8 : .lXM `., | #XnXw v y.9 x $ c c 3Xl.8 3.u.u $ BXV 3Xe._.@Xn y :.5 ~.8.rXdXV.rXt.r.rXtXt.^Xz.X.b.b.oXgXzXzXz.o.b.o.tX9.I i.U.b.o N.b.b.b.b.X.^ e.b.b.b.^Xt e.rXt.rXtXt e.rXt.rXt F ~X*.`.o q.XXt.r e.rXt.rXj.^Xz.^.bXz.b _Xz.o.b.bXzXjXz.b.^ eXt.^.rXt.8 ~ ~X*.rX*Xk )X3Xk././ 5 q.$.z.$./ 5././X@./.U l.U.c.V.c.c.c.c.c.V.bXzXz _ _ _Xz _.V.c.V.c.cXg _.^Xz e e.b.#.c.c.c.cXg.c.V _.V.c.V.c.V.o.V.c.UXg _.c.cXg _XgXg.c.c.o.#.V.c.c.c.c.c.V.c.#.#.c.o.^ ~.r.R ( T.0 xXK bXLXG J.EXn M.;.s.vXf.v.v 2X=XZXe gX3X. `.u :.uXVXIX1Xd",
+" lXz.bXz.bXz N.bXz N.b.b N.b NXzXz.b _.b.b.b.oXg.(.z.z.kX9X9XJ #XJXM x h.- nXK.M.'.,XK.,.-XMXB n n.'Xm.0 xXGX,XK.0.9 : : x c $X3 :XIX3 :X, R.e.e R B aX-X-.e 3XI R.eX-.eX-XV.e.Z RX1 RXI 3XDXDX-.aX-.~ aX-X- R aX-XIX1.~.uX-X-X-X-.e.~.e 3.~ 3.a.e.eXD.eX- a.eXIXIXDXI R.e a.eX-.e.* RXDXD.a c.ZXD $XDX,X, R aXIXDX,X,X,.W.0 9XU.'.z.AX .A.A dX@ ZXg.c.cXgXg.I.c.c.c.c.c.c.cXgXg.c.c.cXgXgXgXg.c.c.V.cXg.c.c.cXg.bXz.o.XXzXz.bXz.X.^XtXo.5X9 cXx c.r.r.r ~.rXt ~.rXt.r e.r e.r.r.KXt.rXt.^XzXzXzXzXzXzXzXzXzXzXzXzXz.bXz NXzXzXzXz.^.b.b.oXg.o.o _.o.o.oXg.VXgXg.cXg.o.oXg.o.oXzXzXzXzXzXzXz.b.b.^.bXk.kXtXt ~ ~XVXI.`X5 g.Z B.*.e B B.*.DXl 'XwXwXw gXmXUXU.n b 8XaXa oX..- : x t RX- a.e R.~X-XI 3 c.eX1XD.l ` k V.- [.S x uX+ vXe v.9Xe.M.a R.a cX- R RXI.eXI.~XD < UX=.@ 1 <X*.8.r.r.r.r.rXtXt e.r.r.k N.b N.b.^.b.X.oXgXz.z.o i.c.^.^.U N N.b.bXz.X.bXgXz eXz.b.b.^ eXt e e.r eXtXtXt eXt.r 3 ~.r F.r.r ~XtXt.rXtXtXt e.^.b _Xz _XzXz.bXz.b.b.o.bXz.^ e e.^.kXt.r.8.rXt.rXtXk.$XgXk qXk VXk q.&./ qXk.z q.IXk.z.U.U.#.U.c.c.c.c.c.c.V.V.V _ _Xz _Xz _.c.c.cXg.cXg.oXzXj e.^.o./.c.VXg _.c.c.o _.V.c.c.c.c.V.c.c.c.c _.V.c.c _.V.V.c.c.c.IXgXgXg.VXg.c.V.V.V.U. .c.# A d Q.f.kXI.HX1Xl v s vXLXn y.;.; 2X0 O.B.= H JXG.j y 1X1X5 IX5XxXx.H.8",
+" lXz.b.b.bXz.b.b.b.bXz N.bXz.b.bXz.b.bXz.b _.b.o.I.&.$.A.$ q., 5 VX3 ` # 1X,X,.'.a.-XlX, `XBXM.- nXU.Y v R a.e R R R 8X1 a a.e a.e.e R.eX-.e.e.a.e.e a.a.e hXI h.e aX- a.~ 3.e.8XVX-.~ c 3 : c.a.~ aX- aX-X- R aX-X- x ` :.~X-X-.~ R R.e 3.eX, a DX. m.-X1X-.~X-X1 c aX- a.3 1 a.M aXDX,.a.ZX,X,XJ K TXD BXD.aXDX,X,.DX,.w.0.'XU.uXo.5.zXk.IXk l.IXj.bXg.c.U.UXg.U.c.c.U.cXgXg.cXg.cXg.cXg.VXg.c.c.c.cXg.c.c.cXgXz.bXgXgXz.bXz.bXz.^.rXd : ).K 5X*X*.r.r.k.r eXt.rXt.r.r.rXt.r.r.^XtXt.rXj NXzXzXzXzXzXzXzXz.^XzXzXzXz NXz.^ N.^XzXz.b.o.oXg.o.c.o.o.oXg.VXg.V.o.V.o.o.oXg.V.o.o.^XzXzXzXzXzXzXz.b.X.X.^.r.k ~ ~.`XVX-XIXJ $ 8 8 B B.* B R $.wXlXP.n v s 'Xm '.w tXD.n.'Xh m |XJ ` :XJ c : c.~X- 3.5X- RX- c # ` 1Xc XB.[X+ xXrX+ .X4 v.sXe UXe.i.a.a aXDX, R RX1XI <XeXbXnXn a.u.8X*XtXt.rXtXt.r.r.rXtXjXt.^ N.o N.o.XXzXg NX i.o N.o NXk NXz N.^.^.^.b _ _XdXjXzXz.^Xj eXt.r.rXtXt.rXt.rXtXt.r.8.r.8 ~XtXjXtXtXt.r.rXt eXjXz.^.oXz.b _.o.#.# l.c.o.^ e e e.^.^.r.r FXt eXtXt.I q.f./.(X .tX Xg./X@X .A.t.A.t.&.t.t.6.6.cXg.c.c.c.c.c.c.c.V.c _ _Xz.VXg.c.c.cXg.c.b _.o e e.^.b. .cXgXg _.c.V.o _.c.c.c.c.c.c.V.cXg.V _.c.c.c _.c.V.c.c.c.#Xg.c.c.o.V.U.c.c.c.#.7.t.7X .t lXd.rXt.r 3.8XIXI R $ T !XU 9.v O / 2 JX0.vXn 0.s.YXD :.AXJ 5.K.~ ~",
+" lXz.bXz.bXzXz.b NXz NXz.bXz.b.b.b.b.b.b _.b.b.bXgXg.X q ) 3.r.} aX3 x.Z U $.Z R c x.a.- 1Xw.j g v $ 8 t R 8 B 8XDX-X- RX-X- aXI R.eX-X-.e R R.~ aXI m K | 6 3.e.~.e 3.e.aX-.HX- $XN m.G.%X-X-X-.e a a RX-X- R cXN.,.uX1.~.~X-.e.~ R.MXD.a T 1XN : a a.~X-.Z R.eX- aXN.aX- aX1X,X,XDXDXD 3 xX$ $.ZX,X,X,.aXDX,XDXD s.9.'XO.H.rXjX*.b N.o.b.bXz _Xz.c l.U.c.c.c.c.c.c.c.c.cXg.c.c.c.V.c.c.c.cXgXg.c.c.cXg.V.bXzXg.X.bXz.b N.b.^.r.r N.KX*X*.k.rXtXtXj.^.rXt.r.r.r.rXt.rXt.r.kXt.rXt e.^.^.^XzXz NXzXz.^XzXz.^.^XzXzXzXzXzXz.^Xz.b.o.o.c.o.cXgXgXg.VXg.o.VXg.o.V.oXg.oXg.o.VXzXzXzXzXzXzXz.^ A.b.z.XXoXd.k F D.HXV m @.n B B a.~X-.~X-XD.w x.!.n.wXa s '.wXD BXs.n.'.3., k., $ x # # : hX1XI 3XI B t 3 # # ` h Xe._XqX7XpX4X>.<.@ . %XnX4 [ yXr.w.MXD a 3X-XVX-.M u.s ^X+ aX* ~Xt.r.u.rXtXtXt eXt eXtXj.k.^ N.o.^.^.b.tXkXg.UXg.b NXgXkXj.rXt ~ e e.b.b.VXz e.^.b.b.^Xj.r e.rXtXtXtXtXt.r.r.r.8.r FXt.zXkXj.r.rXtXtXt eXt.b.bXz.bXzXzXzXz.U.UXg.^ eXjXd.^ NXtXt e.r.r.rXtXj.X NXgXgXk.zXk.z l.UXg.I.U.z q.z.z.U q.U.I.c.c.c.c.c.c.c.c.c.c.c _Xz _.V.cXg.V.c.cXg _XzXz e e.b.o. Xg.c.c _Xg.V.V.V.c.c.c.c.c.cXg.c.V.c.o.c.cXg _.V.cXg.c.c.U.c.c.c.c.c.#.#.U.cXgX&X X .I.UXg.^ eXt.rXt.k.r.uX9 qXM TXD.Z.'.' bXG 0 J JX> b v o.9X5 `X5.a.u 3X-",
+" l.b.bXz.bXz.bXz.bXz.bXz.b.b.b.b.b.b.bXz.b.b.b.b.b.o.X.XXV.r cX-.a V x ` $ 1.}.Z 1XDX,.Z 3XM.YXBXw.[Xw x xXD aX,.Z.wX,XD.e.`.}XIX- 3X-.~X-.eX1 R.a aX-.a.} cXN.e.G : a RX-XI a.` R R 3XI K : c KXIX1X-.~.e BX- R.a BXK.% KXV 3X- R.eX-.eXD.u.e R.e., K B R.~.aX-XDX-X1 a RXN <.a.MX,X,XDX, 3XD RXlXNXIXI.eX5XDXIXDX, 8 $ 'Xl T T.8XdXt.o N.b.b.b.b.o.bXz.o.c.# l.cXg.c.c.c.cXg.c.c.cXgXg.cXg.cXg.c.c.V.cXg.c.VXg.b.b.oXgXz N.b.bXz.^ eXt.rXVX*.rX*.r.r.rXk.I.6.r.rXt.r.r.rXt.r.r.KXt.r.r e.^XzXzXzXz.bXzXzXz.^XzXzXzXzXzXzXzXzXzXz.b.o.o.o.cXgXgXg.V.VXg.VXgXgXg.VXgXg.VXg.VXgXg _XzXzXzXzXzXz.^XuXx.t.R Q.R P g.2.RXy Y.G.ZX1 BX- aX-.e.e.* R 8.Z.Z 8 R.D.ZXDXD.*.Z.nXKXwXX # c.*X-.a.e.e.eX-XV.`.~ aXD.i #XX ` 1 x U .Xq .Xn.F ..J.C.{Xf.x.x.+.+X% = = y.,XJ.8XIX-.a p.v...YX, c ~.r.rXtXtXtXt.r.k.rXt.r.^.^.k N.X.r ~ ~./.I.b.oXz.b.bX9.b.r ~ ~ F ~XjXz _ _ _XzXzXz.b.bXjXt eXt.rXtXt.r e.rXtXt.rXV ~ ~.rXt eXt.r.r.r eXt e.b.bXzXz _Xz eXzXg.c.b e eXd.b.b.bXdXtXtXt.r eXj.^.b.b.bXg.UXg lXg.c.c.c.c.c.c.cXgXkXg.cXg.#.c.c.V.c.c.c.c.c.U.c _ _Xz _.V.c.VXg.c.o.V.oXzXjXj e.o l.IXg.c.V _.c.c.c.c.c.c.c.c.c.c.c.c.c.c.V.c.c.V _.c.V.VXg.c.#Xg.o.cXg.c.#.U.cXg.c.I.U.o.U.c.#.X e.rX* ~Xo 5 ) PX9.rX* 3.` RX1.Z h.Z 1.ZXsXG b s.Z.'.9 s.Z s T x",
+".U.b.bXz.b.^.b.b.bXz.bXz.b.b.b.b.b.b.bXz.b.bXz.b.o.^XkXg.k ~XV.`.a ` VXM x c.Z.w.u R $.Z ` ` XBXwXH.YXlXe h x.w s.n 1XD.}X-.8 3X1XI R.D.w $.w $.Z.MXD t #XN.3XN ` 3 3.eXI.` RX1XI.~X1 K.3X$ $ 3X1.e R aX- aX- R RX#XcXN ` RXI R.e a.~X,.a a R hXN $X-.a B.e RXI R.e t RXNX,XD.ZX,XD 3 R.DXIXDXlXNX1.e #.~X,.a.a R BXl '.nXJ $.rXt.b.^.b.o N.oXg.b.b.VXz.c. .o.c.c.c.cXk.c.c.c.cXg.V.cXg.c.c.c.c.cXg.cXgXgXg.c.bXzXg.oXzXzXzXz.b N e.rXtXt.rXtX*.rXt.rXz.6.^ eXt.r.rXt.r.r.r.r.^.k.rXt.r N.^Xz.^XzXzXz.^XzXz.b N.bXzXz.^XzXzXz.^.bXgXg.o.cXgXgXgXg.oXg.c.o.VXg.o.V.c.V.oXg.V.c _.bXzXzXz.b.bXz.I A.t.R 5XxXxXx (Xx 'XJ (X,.*X-X-X-.e $ $XD.' RXl.w RXDX, h 3X, R.D.n.]Xw ` 1XM.a x hX,XI :XM 3X5 3 xXD `XM.[ VXp h E.m E vXqXp p..XAXf.;X8X> W MX>X>Xe.wXl h 3X- R <.d.).sX> h c.8.rXtXt.r.rXt.rXt.r.k.rXt.k N N.K.r.^ FXt.X e eXz.b.b NXk ~Xt F F ~ NXz _Xz _XzXz.^.bXzXj.r eXt eXt.r eXt.r e.r ~ ~ F.8 F F.8.r.rXt.rXtXt e.bXz.bXz e e.^.bXg.bXzXjXjXzXzXo.bXd.r e.r.rXjXj.^.bXzXgXg.cXgXg.c.c.c.c.V.U.cXg.c.c.c.c.c. .c.c.c.c.c.c.c.c.c.V _Xz _.o.cXgXg.o.V.c.oXzXzXz l.b l l.#.c.cXg.V.c.c.c.c.c.V.c.c.c.c.c.c.c.c.c.cXg.V _.cXg.V.c.U.U.c.V.c.V.V.cXg.V.c.c./Xg.cXg.UXg.zXjXt.^Xk.A.& qX*.rXt.K.r ~.8.8.8.8.8X1XIX1X1.D '.wXG.OXD.' 1.' s",
+"Xg.b.oXzXz.bXz.bXz.^Xz.bXz.^Xz.b.b.bXz.b.b.bXz.o.b.bXgXg N ~.^X-.` #X3XMXB.l x h h.w 8X, $ 1 1 Xc.gXw nXG.wXG.n oXK.' 'XD a.eX-.~.e 3.Z.W x sXa.w x s t t #XS.e :XNX-XI.eX-X-X1 3.~ aX- K :.3.S.e 3 3XIX-X-.e 3 R $XHX5Xc 7X-XD.~ R.~X-.Z RX- a.% YXD.- RX- R a R.} aX-.aXNX, cXD 3.ZXIXl c 3 3.ZXNXl V T a 3.uXIX1XD.n.n.].0XI.r N N.X.o N.b.c.c.c.oXgXg.U.IXgXg.c.c.c.c.c.c.cXgXgXgXg.c.c.VXg.c.c.VXg.c.cXgXgXgXg.cXgXzXz.bXzXz.b.bXz N N N.K.^.^X* ~ NXk qXj.r.r.r.r.r.r.r.r.kX*.r ~ e.^.^.^Xz.^Xz.^XzXz.^.^.b.^.^.^XzXz.^.^.b.o.o.o.oXg.c.oXg.oXg.V.oXg.V.o.o _.o.V.o.o.o.o.b _Xz.^.^.^.^Xz.^.^Xg.k.r.r.r.H.`X1 B.0.0 : R RX1 RX1 x 3XJ TXJXKX.Xc.9Xc.,X,XD B.D.w.0XUXc : `X,XcX, : h xXJXD `.Z ` h kXKXB.- 1Xe E U t.M.Z v._.W._X>.xX4._.YXpXnXn.M 8 c a RX- a < E.)..XG h R 3X*.rX*.rXt.r.k.rXtXt.rXt.rXt.X.k.8.8X*.k.X F.oXz.b NX9 ~ ~ e.r eXz.b _Xz.b.b.b N.b.^XtXtXjXt.rXjXjXtXj eXt.rXt.r F.`.k.5.r F ~Xt.r.rXtXtXj.^.^Xj eXj.b.o.b.b.bXj.^Xz.b.^ lXd.r.rXt e e.^Xz.b _Xg.c.c.c.c.c.c.c.c.U.c.c.c.c.V.c.c.c.IXg.c.c.c.c.c.c.c.cXgXz _.oXgXg.c.c.b.bXg.b.b.bXj.V.# i l.U.cXg _.c.c.c.c.c.c.c.c.c.c.V.c.c.c.c.c.cXg.o.o.c.c.VXg.U.U.V.c.c.c.V.c.c.c.UXuXu.o.cXg.c.U.QXg.IX@.&X9.^.r ~Xj.r N.rX*.8 ~.8.8 ~.8.8XVXV.`.k D.KX1.u : ' ' '",
+" l.b.^.^ N NXz NXz.b NXzXzXzXz.b.b.^.b.b.b.o.UXz.bXzXgXkXgXj N F.`.8X3 `XX .l x 8Xl.DX,.Z h.-.F .,X<.1Xc s v oXw.>.9.9.ZX- R RX- B.w.w b.E o.q y o.Z U a :XSX3XH IX- 3 R.e 3.eXD.aX- 3 K kXD YXJ 3 RXDX-.e R.e cXH :.~ 1X# `X-.~X- B.e.u.e R.H n.3X. `.e a a t a.M R a.eX. :XIXIXD cX5 c 3.e R :XcXK.].} RX-X-XD.DX5 '.0XPXVXd.k.b.b.b.b.o.o.cXg.U.c.c.c.U. l l.U.c l.c.c.U.U.U.U.U.U.U.U.U.c.U.U.U.U.U l.U.U.U.z.#.zXgXg l.XXg.oXgXxXgXgXg.XXx N.^.^.KXj N.^.k.^.K.^.k.k.^.k.X.5.^.^ N.X.XXgXxXgXgXxXgX9XgXgXgXgXgXgXgXg.U.U.U.U.U.U.U.#.U.U.U.#.U.#.U.U.#.U.#.U.#.U.#.#.#.U.U.# lXg l.cXgXkXk.z.IXx.X N N N.k.kXt ' g ' $ $ c c.u cX5 $ $ $XlXM.9 x `XK s x.DXl 9.9XUXH.[X3 XX 1.i c h x h $ 3XM h 1.[.- [XBXq xXq U U.i.9 x XqXpX+.;XrXnXnXw.@ ^XL x c cXIXDX, U.W .XnX> v 3 cXtXo.k N N N.k.5.k N.^Xo NXo.k.5 N.kX9Xt.r ~.bX9XgXkXx.k.k.kXj.b.o.o _ _.o.o.b.o.o.o.^XjXjXjXj.X.bXjXd.kXjXt.k ~.`.`.5.z.`.`.`.8.rXtXtXt eXtXtXdXjXz l.6. .b.b.^ N.b.bXzXxXt.r.r e.r e.^XzXz.b.o.V.V.c.c.V.U.c.c.V.c.V.c.V.c.c.V.o.#.VXg.c.c.c.c.V.c.b _XzXz.cXg.VXg.o.^.bXg.o.oXzXj eXj l l.UXg.o _XgXg.c.c.V.c.c.c.c.c.c.c.c.c.V.c.c.V.o _.c.c.cXg.#.c.c.c.c.c.VXg.c.o.VXg.#.VXg.c.UXg i Z d.&.oXt.r.rXtXt.r.X.r.r.r.k.r.r.r.kXdXt F.R.R./.k ~ ~.8X1XI.u",
+"Xg.b.^.b.b.b.b.bXz.b.bXz.b.b.^.b.o.b.b.b N.c.f.#XzXz.o.cXkXz N.8.8.e # V.l #XMX,X,XDXsXIXD.l 1 1XB ` n nXw.j.>XwX0.9.'.Z.* t.eXD s.w b & H w o.q.9.wXa R xX5 x c a c a.a R.uXD 3XI RXD 3 $X,XI 3XIXI.a 3X1 3XDXDX1 3.a $.aXI.} 3X1XI 3 ' 3XD 3XI.u.a 3X, 3XDX,.Z $ 3XD.Z $ $X5 c : :X5XI 3 3 c.a $XD $X,.a h.u.Z.n g.0XO.5.5Xo.XXk.zXx l l.U.I.#.I.#. .I.# i.#.#.U.#.U.U.#.U.#.U.U.U.#.U.U.U.U.U.U.#.U.U.U.#.#.z.U.I.# l.XXg.o.o.o.X.o.b N.^.^.k.k.k.k.kXt.k.kXjXjXj.k.k.kXt.k N.^Xj.k.^.b.b.o.b.b.b.b.b.b.b.b NXzXzXz.b.bXgXgXg.oXz.o.oXg.oXgXg.VXgXg.cXgXgXgXgXgXg.cXg.c.VXg.cXg.oXz.b NXz.b.b.bXx.^XdXtXt.r.8.8X1.HXOX5.Z R RX- R.~ c a aX- R R hX-.M $ hXD RXD.D.wXKXwX3XX #XMXM # $ 3.a.a a.M.a.aXMXc.-.-Xq E U x a.aXD.ZXD U.M.F.@.pX>.j uX+Xn %.WXe.M.}.M u < uXF....XnXw x.`.uXt.k.k.H.KXt.kXt.k.^XdXtXoXt.k.K.K.zX9 NXtXxXg.^.K N.kXd N N.b.o.oXg.cXg.cXgXgXgXg.o N.kXt.^XxX9Xx N N.^Xo.K.kX*.rXV.K.r.r.rXt.k N N N.X N.bXg l.U.#X Xu l.U.z.U.zXk.o.z N.b.X N.b.oXk.U.U.#. . .#. . . .#.#.#.#.#.#.#. . .#.#.U.6.U.#.#.#.U.#.#.#.VXg.cXg.U.U.U.c.o.o.cXkXg.o.b _Xj _.U.U.Q.U.V.o.U.c.cXg.c.c.c.c.c.c.cXg.c.cXgXg.c.V _.bXg.V.c.o.#.oXg.b.o.cXg.o.cXgXg.c.cXg.^.o i.zXz.zXg.z.^.^Xj.r eXtXj.X.r e.r.r.r.rXV.H.rXd ]X@ )Xt.^.rXj.k.r.k ~",
+".oXg.o N.b.b.b.b.b.o.o.b.oXg.o _.bXg.b.X.o.o.UXg l.c l.U.I.z.z N.k 3X*.,X3XB XK 1.' 1X5 $ xXHXH 1.-.- nX<.SX. [X. =XUXKXG s.w s.'.!.+.T S.@X6 =.+Xm.9Xl.D.H.wX,.a.M $ R RXDX, R.ZX, RXIXDXIXD 3X-.aXIXI $ R R RX1.a.a a.uX-.aX- R.~X-XI $X1.~ a.eX, t.ZXDXD.eX- a tX,XD.aXDXDX-XDXD.uXIX-.a.` R.e.ZX-.a.a R.a R.D $.0XU.5X1.u.u.^.^.bXz.b.b.b.c.c.cXg l.cXg.#Xg.c.cXgXg.c.c.c.cXg.c.c.c.cXgXg.cXg.c.c.cXg.o.cXg.c.c l.zXg.bXzXz.b.bXz.b.^Xj.rXt.rXtXt.rXtXtXt.r.r.r.r.r.rXt.r.r.KXt ~Xt.^ N.b.^Xz.b.bXz.b.bXz.bXz.bXz.b.b.o.VXg.o.bXz.o.o.cXg.c.oXgXgXgXgXg.cXgXg.oXg.oXgXgXgXgXgXg.o.b NXzXzXz.b.b l.k e.r.r.r F.8.H.`.0X5 $ 8X-X-X- RXIXD.e R aXDX, R.a $ cXDXD R.W.nXKXwX3XX #XMXM.l c.lXMXc c $ xXM V V.gXB x.M h <.aXD 3X, U.MXpXn .Xr.Y U.9Xf...WXs u.M uXsXe p pXbX= 0XK., 3.`.8Xd.r.^.uXt.k.k.rXdXtXt.r.kX*.r.r.K.^ ~.^X9.XX*.k.K.u.k.rXj N.b.b.^XzXzXzXzXzXz N.b.k eXt.k./.5 NXk.X.K.K.r.K.`.~.`.`.~.`.~.` F ~.r.r.r e.k.^.^.bXzXgXg.^.bXz.^Xj e e.b.r.r.r.r e.^Xz.b.oXg.cXg.V.U.c.V.U.c.c.U.c.c.U.c.c.c.U.U.#.c.c.c.c.c.U.U.c _.o.c.c.c.cXg.oXgXg.U.U.c.cXg.oXz l.U. .Q.#.U.U.U. .U. .#. . . .#. . .#. .I.#. . .I.U.#. .I. .z i.#.I.#.6.I.I.U.z.Q.#.z.z lXgXk. .b l.I.6.I.UXk.o.b.^ eXj.bXtXd.k.r.k.rXd.^ ) ].$ N.k N N.^XtXt e F.r",
+".z.z lXgXgXgXgXgXgXgXgXg.cXg.cXgXg.cXgXgXgXg.o.o.b.o.o.oXk.UXk NXt ~.`XM V .lXq h $ h.D.'Xh., n.aXD 1 : `XMXBXc.[.YXn.wXLXe.n.s.jXh MX: r.s.T.T.>XO.2.0 gXlXcX, a.M.M.e $X,XIXcX5 R 3X-Xl $ 3X-X-.e.~ 3X-.e aX-X-.e RX,.eX-.e a.~X- 3XIXI a RX-XDXIX3 $Xc 1 ` :.a :X3 : : : )XJ.]XK.u RX- R RX-X,XD.M RXD.aX,Xa.n g.]XoXt.H.r N.bXzXxXz.bXzXk.cXg.c.c.c.c.I.c.c.cXk.cXk.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.cXgXgXg.U.U.oXz.^.b.^Xz.^.b.^.r eXtXtXt.r.r.r.r.rXt eXt.rXtXtXt.rXt.^XjXt.^XzXzXzXzXzXzXzXzXz.^XzXz.^Xz.^.b.o.o.o.o.b.V.o.o.o.c.o.o.o.o.oXg.o.V.oXg.V.o.o.V.V.o.V.oXg.o.o.bXzXz N.^.b.bXg.^.rXd.r.r.8 ~ ~ B.DX5.w.D R RX-.a R 3X- a.e R.aXD R hX,X,.} 8.Z sXK nXcXc.-.-XcXBX3 xX#X#.-XB k.,XZ.SXh.h k h h h R.aXDXDX1.a U vX4.<.@.jX,Xp.@X6.s p.. p.s.sXn.sXb.s 0X>.> gXI.HXt.u.r.rXtXt.rXd.uXtXtXtXt.r.rXtX*.k.K.^.K.5.K.5 )Xx.5 (.X N.bXz.b N.b.bXz _XzXz.b.b N.k FXx.f.A } 5 5 5 | ).$XV.` #X9 #.`.`.8.rXt e.rXj.b.o.bXz.bXz.b.oXz.^.^XjXj.r e.oXt.k.r.r.^Xz.b.b.V.c.c.c.c.c.c.c.c.c.c.c.U.U.c.c.c.c.c.U.#.c.cXgXg.c.c.c.c _.o _.V.o.o.b _.o.o.cXg.bXzXzXj e.o.o.U.cXgXzXg.V.c.c.V.c.c.c.c.c.c.VXg.c.c.oXg.cXgXz.V.c.c.cXg.#XgXgXg.6. .&.I.6.6./ AXk l.o.z.b.^.^ iX .#.I.#.#. .UXu.#Xu. Xg.b.X.XXxXk.A 5.&Xo.5.X lXg.z.z lXkXx.o",
+".o.o NXz.bXzXz.b.b.^Xz.b.^.^Xz.b.bXj.bXzXz N.o.^ _.bXz.b.oXkXk.XXt.8.8 3XJ .l.l $ $.WX,X,.'XH.-X,X, 3 # ` .-X3 ` nXc y.9 9 JXGX>XC.@.@ %XA {.xX0Xm.n ' 8X1.DX, a.a.e XD : 1 $ T D DX5X. :XKXJ.e.~.a R a.a c 3XI.e.uXD 3 aX-.~ aX-.~ 3X1 3 a.~X-XDXl.ZX-XlX, hXlX,X,X,XMXlXl $ : : T 3X- RXD RX- $ R.a.a t t.Z.n.0 4X5.%.z (.R A.R.t.6./Xg.b.o.c.c.c.c l.c. Xg.c.c.c.c.c.cXgXg.cXgXg.cXg.cXgXgXgXgXgXg.cXgXgXg.c.c.c.z.b.b.b.bXzXzXz.^.^ e.rXt.r.rXtXtXtXj.rXtXt.rXt.r.rXt.r.r.^.k.^.^Xz.^Xz.bXzXzXzXz.bXz.bXzXzXzXz.b.o.VXg.o.oXgXgXg.b.cXgXg.o.o.V.oXgXgXg.oXgXg.VXgXg.VXgXgXg.oXg.oXzXz.b.b.^.bXgXd.r.rXt.r ~.8.8.HX1.0X5XD R RX-X- R RX,.e R.eX,XDXD.u x.Z 3 <.D.'.EXOXUXw g.jXw k.9X3X7XX `XB ` 1 k.[.Y.iXM.Y RXD.uX1 R.a.ZXq.x WX> MX,.9.E.@ b 0 . . 2 0Xn..X6 ^XC HXUXwX5XxXx.$.R 5.R ( 5.$ QX9.R 5.&XtXtXt.r.r N ) q D q I.A 5 : 5 qXg NXzXz.b.bXz _Xz _Xz.b.b.b.^.k.kX9 q.5XM.KXk.u.rX*X*X-.8.u ~.`.8.r.r.rXj.k.^.^.b.^Xz _.oXzXz.^Xj.r e.r e.^XkXjXj.rXt.^.b.bXz.V.c.V.c.V.c.c.V.c.c.c.c.#. . i. .U.c.c.U.c.c.o.cXg.c.o.oXzXzXz.o.V.o.V.o.VXg.c.c _Xz.^ e e.oXg.#.c.oXz.o.V.c.c.c.V.c.c.c.c.c.c.c.c.V.c.c.c.VXz.o.c.c.cXg.#XgXgXg.f.6.t.6.fX .&X&.& f.Q qXz.o F.#. .U.c.U.c.U.U. . i.6Xg.XXg././X Xk.r.k.r.r ~.r.b.^.^.^.^XgXd",
+".^ lXzXz N.^.c.bXz.b.b.b.cXg.^.bXzXg.oXk.b.b.b.o.UXg _.b.bXgXkXkXt ~.8.`.lX3XM # h U h.ZX,XcXl aX5.} $ 3 h : c.l 1 k.,X<X0Xr.; & H H._Xb p .X4 .X>.E.w.w R B.e B t.eXD a 3X,X,.eXIX, $ a 3XDX- 3 R R.e.~ 3.u $ TXlXKXlXcXK `X1 aX-X- aXI R 3X-.e.eXD.e a R.e.e a.e.e.aXI.a aXI.aX,.e.~.~.a RX-XDXD.ZX,.M R t.M.w.w gXD.] ).R.XX d.I X AX@.o.o.^.o.c.cXgXg.V.#.o.c.c.c.c.c.c.c.c.c.cXg.c.c.c.c.c.c.c.c.c.c.c.cXg.o.cXg lXz.bXzXzXz.b.b.b.^.^Xt e.r.rXtXt.r N NX*.rXt.r.rXt.rXtXt N N.b.bXzXzXzXzXzXzXzXzXzXz.^.^Xz.b.b.o.VXgXg.V.o.o.o.o.oXg.V.o.V.oXgXg.VXg.VXg.o.VXg.VXgXgXg.V.o.VXg.o.^.^.b N.b.b.XXd.rXd.r.r.8 ~.8.H B.5.n.Z.aXD R.aX-X- 3 aX-.e.aX- cXD c c.}X,.w s sXP y 9.9 9Xw y.-X7.gXq.F xXMXqXBXB.-XB.l U.-.-.a 1.e.` R.Z._.jXn.x.h.j.uXl.jXC J JXi %Xi o w H.;.; HXm g g.kXJXx.R.$.|.| 5Xk.R.& 5.z q.A.^XtXjXtXjX9.$.$ ) :.K.5.5.kX9.XXx l l.oXzXz.bXz _Xz _XzXz N N.X.$ qXxX9 ).5XMXXX9 cX*.`.8.`X-.` ~ ~.r eXdXz.b.b.b.b.bXz.oXj e e e.r e ~Xj NXkXtXt.r eXz.bXz.bXg.c.c.c.c.c.c.V.c.V.c.c.#. i i. .U.c.U.U.c.c.o.c.c.c.b _ _ _.bXg.V.cXg.V.b.V.o.b.b.b e e e.bXg. .c.b _.V.c.c.c.V.c.V.c.c.c.c.c.c.V.oXg.cXg.o _Xg.V.c.c.c.I.oXgXgXk.z N.b.XXkXk NXx.X N NXzXj.^.o.o.cXg.c.V.c.c.cXu. .#.U.U.UXu.f.rXj.kXt.r ~Xt e e.^.^.b.bXj.o",
+"Xg.tXk.b.b N.6.I.b.oXzXg i.IXz.b.^. .b.I.^.b.b. ./.c _.bXz.oXkXk.^Xt.8.8.` V 1.i h $.aX,X,.ZXlXlXDXI.ZX,.a.a 1.lXc.[.g.j.jXp HX>.@ p.)Xe._..XbX>.jXL.Z 8 B R a aX-.aXDX, T :Xl : :XcXl : ` $X- 3X-X-X-XDX- a.u cXMX5 1 c x.aX-.~ a.~ 3X-XDX-X-X- 3 aX- a R.e RX-.a.e.a.a.aXDXIXIX- R R R R RX,XD $X,.a.M t.Z.w 9 TX1XV.r eXd.^XoXz.z.b.b.^.b.oXz.o.c.V.cXg. .c.U.c.c.c.c.c.c.c.cXgXg.c.c.c.c.c.c.c.c.c.cXgXg.cXgXgXg.cXz _XzXz.^Xz.bXz.b.^.k.rX*.r.rXt.r.XXgXgXt.rXtXt.rXtXtXtXg.oXz.^.bXzXzXzXz _XzXz.bXzXzXzXz.b.oXgXg.o.o.oXg.o.o.o.o.o.oXgXg.o.o.o.o.oXg.V.o.o.VXgXgXg.o.VXgXgXg.oXzXz.b.^Xz.b.oXd.H.rXt.rXt ~.`.HXD '.n 8X, $X,.ZX-.ZXDX,X5 3XDXDXK.ZXDX5X-X-XD '.w.n.nXL s b yXqXnXq.[X7 1XpX7.SX%X7X<.S [X% kXhX#.,Xc.]Xc.[ [ M.<.@.jXw.DXV &.> &.jX>X>.E &XrX0 y J b O gXJX1.H.u NXV.k.r : I ~X5.r.K.k.kXt.rXt.r.rX*.5 ).KXxX3XJ D q.RXoXzXz.bXz _ _Xz _XzXzXz.bXz.b N.o./.f.&.f.f.f q qXX q ).8 ~X- F.` F.rXjXdXz.b.b.bXjXz.oXz.Q.UXg ~ eXt e.r N.bXg eXt e eXz.bXz.o.V.V.V.V.c.c.c.V.c.c.c.V.V.c.c.V.c.V.c.U.U.c.cXg.c.o.oXzXzXz.b.o.cXg.cXg _Xz _Xg.oXzXz e.I i.#.o.#.cXz _.c.c.c.c.V.V.c.V.c.c.VXg.V _Xz _Xg.V.oXzXg.o.VXz.b.c.b.oXgXkXu.z./X@X@././ q./.IXk N.bXg.c.c.c.c.V.V _.V.VXu.#.c.cXk.cXkXgXk.o.X.^.^.^ e.r.r e e eXj.^Xj",
+"Xg d.oXz.bXz./.UXz.o.bXg. .#Xz.b _.U. .#.o.^.oXk.oXz.^.b.b.o.o.I N.r ~XVX-XX VXM.l $ hXK k $X,XlX- 3 3X,XIXD.M $.lXM XpXrX+ ^ . %Xn h u.W p...@ w 0.wXsX- aX- R.eX-XI cXDX5 c.u $ cXD $ c.} R RXI.e.~X,.eX-X- a.eXDX-.eX-.e a.eX- aXIX- c.e.~X- 3.~ a.e.a aX- aX-X-.a RXIX-XI.aX- R R.a RXDXD R.D.M R.a.MXaXaXKX5.H.k.rXt.^.X _XoXz.b.b N.b.b.b.b.cXg.U.o. _XgXg.cXg.c.c.c.c.V.c.cXg.c _.cXg.U.o.cXg.c.cXgXg.c.o.b.c.b.b.bXzXz.bXz.^.b.^.k e.r.r.rXt.r.r.r.r.r.rXtXtXt.r.r.^Xg.XXzXz.bXzXzXzXzXzXzXzXzXzXz.bXz.b.o.V.o.VXg.VXg.o.oXg _Xg.V.o.o.oXg.V.VXg.VXgXg.V.o.c.V.V.c.o.c.o.c.o.^.^.bXz.b.bXoXd.r.r.rXt.k.`.8.HX1X5.'.DX.XKX,.9 mXc.e gX,.Z.~.2 : 1 R.,.e.~.wXyXs.nXa 1XL x.jXq E E.F.p.[.p.-.g [.SX<X<Xr >.O.g.9XKXlXK `XcXpX%.J.@XpXK.DXIXU.> g.q.; &Xr.j o o v sXaXyXOXU.`.8Xt c.k cXx P ,.KX*.u.r.r.k.r e.rXt.r ~.rX9 `X3Xo.KXoX*.^ N.b.bXz _XzXzXzXz _Xz _Xz.b.bXz.b.b.X.XX9.XX9X9.^X*X*X*.8 ~.8 F.8.r eXj.^XzXzXz eXjXzXzXz.c.U.o eXd.r.r.k.b.X N.r e.rXj.b.bXz.V.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.V.#.c.c.V.c.o _Xz _ _Xz.b.c.V.c.c.V.b _ _.c.o NXj eXj.#XkXg.#.bXz.VXg.c.c.c.c.c.c.V.c.c.c.V.bXzXz _ _Xz.bXz.c.VXz.bXgXg.b.b N l.z q./.$.I.$./.& q.t q.oXg.U.o.o.VXg.V.VXz _Xz. .cXg.cXgXu.U.oXg.b _.c.U.VXg.c _XzXj e e e e",
+"Xz.I NXzXz N.cXg.b.b.^.bXg.bXz.bXz.bXz.^ N.b.bXz.b.o.o _.o.b N.IX@.^.r.8.8.a `X3XB #.-.- x 1.Z x 3 3XDXl CX,.D.aXM.l.l XpXrXnXbXb.d.*X, tXe.) L.; J.s.s.Z $.aX-X1X-X- BXI 3 B 3 a RX-.a.a a a a 3X-X- 3X-X-.~ RX-.u a.*.eX-X-X-X- R 3.~ c.e aX-XDXDXDX- a.e.e R a.a RXIX- aXIXI.e `.' aXlXDX,XDXD ` c x.n.w 'XJX1.u ~XjXd.b.^.^ _ N.b.b.b.oXz.o.b.b.o.cXg. .U.c.#.#.c.c.c.U.6. .c.c.c.c iXgXg.V.V.6 i.U.c.c.U.o.c _.6.b.bXzXzXzXz.b.^.b.^Xj.rXt eXtXtXt.r.r.r.rXtXtXt.r eXt N.o.b.^XzXzXz.bXzXzXz.bXzXzXz.^.bXz.b.oXgXgXg.oXg.VXg.oXg.o.cXg.o.c.c.o.cXg _.o.VXgXg.o.o.c.cXg.c.o.b.c.b.bXzXzXz N.bXg.r.r.r.kX*.r.r.H FXaX5.n $ TXJXD :X,XK RXlXJ.w.e.9 :XD.D DX5X-.0.] sXDXlXs.w v.jXG.W E.mXqXq .FXBXB.Y.p.[ ._X7.9 U $.e R.M.M._Xn...@.T g.HXVX; g.! gX0 o.9 o.'Xm.nXaXaXy 4.G.2., 5 I 5 I q.5 qX-.8.`.8XtXt.rXt.rXt.r.r.u c 3XlX1 cX*Xt.k.b _XzXz _Xz.bXz.bXz.bXz.bXzXzXzXz.b.b.b.b.b.b N.k.r.r.k ~ F.8.`.r.r.r eXz _XzXz e.^.b _.^Xz.^ e e.r e.k.b N.^.^ e.r eXjXz.b.b.V.V.c.V.c.c.c.c.V.c.c.c.c.c.c.c.c.c.cXg.#.c.c.o _ _XzXzXzXz _ _.cXg.c.c.oXz _Xz.c.^.bXz e eXz.V.c.U _Xz.V.V.c.c.c.c.V.c.U.V.c.V.oXz _ _Xj.bXz _Xg.V l _XzXgXg.^Xz.XXj.X N.^.b N.^.k N.^ N N.o.oXg _.o.V.V.V _Xz _.^.U.^.b.o.o.IXz e e _ i.U.c.c.V.U.c.U.V.V _.oXg",
+" NXg.b NXz.b.^.b.bXz.b.b.^Xz.b.bXz.b.b.b.b N.o.oXz.bXzXz.b.b.b.z.A dX .AXX |.5XZ } XM $X,.MX, $ cXI cX5.*.D.M x h c.}.iXBXq.j.< .X6 t.*X, B.Z.s 0.;.4.@XGXK.W 1X,XD BX- R.eXDX,XI R R.aXDX- aX-X-X1X- a RX-X-X- aX- a 3X- aX- t a RXI 3 R $.~ R R 3 T ` : $X5 c cX-.a R 3.eX- R 3 aXK.KXH.,XwXJ.- 1X..OXcXy s T.0.8X*XtXt.b.bXzXz.XXz.^.b.^.b.bXz.b.b.cXgXg.#.c.cXuXu.U.c.c.UXu i.c.V.c.UX&.U.c.U _. . _.V.c.#Xg.#.b d.oXzXz _XzXz.bXz.^XjXt.r.r.r.r.r e.rXt.r e.rXt.rXt.rXt.^.X.o.^.b.bXzXzXzXzXzXzXzXzXzXzXz.^.b.c.cXg.o.VXg.o.o.o.V.o.cXg.o.o _.VXgXgXg.c.c.V.o.V.V.o.VXg.V.o.c.U.bXzXz.zX&.b.X.X.rXoXt.k ~ ).u.HX1 TX5.w B.* a.* R 8X,XDX,.e R.e BX- RX1 R RX-.DXaXa.n s.wXe v HXn p E U E E h EXq X+.p.-X%X% WX+XeX, UXD x.1.g._Xf.@ yX,X1 (XyXwXyXPXy n s.9 'XD 8 BXa.]XO.|.u.u.kX9X9.5.5.u.`X5XI )X-.kXtXt eXt e.r.u.rXI 3XJ RX5.8.rXtXz.bXz _XzXz _Xz.b.b.b _Xz _XzXzXzXzXzXz.bXzXz.b N.kXt ~.r.kXk N.r e eXj.bXzXj eXz.^XzXz _.oXz.^XjXjXj N.b.k.^XtXt.r e.^XzXz _.c.c.c.c.c.c.V.c.c.c.c.c.c.cXg.c.c.U.c.c. .V.c.oXzXzXzXzXz _.bXg.c.c.cXg _XzXz _Xg.o.o.^ ~ e.^Xg l.cXzXzXg.c.c.c.V.c.c.c.c.c.V.o _Xz _Xj e.cXg.bXg l.V l.Q l.oXgXx.^.XXxXo.X.X.b N.oX9.^.b.b.cXgXgXz _ _.o _XzXz _Xz.z.b.b.^ e.^ eXj ~Xz. _Xz.V.#. .#.U.c.U.#.#.U",
+".b.o.o.bXz.o.^.b.bXz N.oXz.b.b.^ _.b.o.b.b.b.b.bXz.o.#. .b.b.b.c.tX@ q.zXx 5 c YX#Xl.lX,X,X,.Z h :.}.Z $ R.DXDX,X, h.}.} xXBXr.C.J 8 B.H.~ C.WXb ^.@XCX0 = M nXwXcXKXc.9XK R.DX, R RXDX- a.MX- RX-XDX- 3.e a.~ aX-.~.aXI aX-.eX-.~X,XDXI 3.e.e B a c $ :X5 :Xl $XIX-XI RX-X-X1X, a xX,.Z xX, x.Z.wXJ.0 gXUXPXU.`X* ~ eXd.X.^.XXz.bXg.^.b.o.^.o.b.b.o.b.UXg.6.c.c i i.U.c.c.c. .6.c.U.o. .#. .V.V.c i i.UXg.c.U.VXg _ i.z _Xz.^.bXzXz.b.^ e.r eXtXtXtXtXt.r e.rXt.r.r.r.r eXt.^Xg.XXzXzXzXz.bXzXzXzXzXz.bXzXzXzXz.b.o.cXg.oXgXg.o.V.oXg.oXg.o.V.cXg.c.b.c.c.o.VXg.c.cXg.o.VXg.c.c.V.bXz.bXz.zX&.t ZX@ A.A 5 5 f.R ].0 ]XO $X, t RXDXlXlXDX,XI.Z.~.eXDX1.*.eXI.a BXD.w.Z 9XG.9XGXG.Y HXe U E U.d h.W h E.i 1XqX7.y.TX<.1.YXp xXq t nXp.. J ^.j !.H DXy g ( '.0Xl.Z.Z B RX1X1.D ' (XU.H.8X* 3 :X9X9.k #XV.5 #X*.8.rXt.rXj.r.rXV.8.} T xXlXD.rX*Xt.^ _XzXz _.bXzXzXzXzXzXz.bXzXzXz _ _ _XzXz.b.b.bXj.r.rXt ~.`.XXgXt.r e.^.^.^ e.^.bXz.^.^Xz.bXz.o.^.b N N.^Xt.^Xj e eXjXz.b.b.V.c.V.c.c.V.c.c.c.c.c.c.c.c.c.V.c.c.c _Xz.# _ _XzXzXz.b _XzXz.o.c.c.c.c.cXzXzXz _ _XzXzXj e eXz.c.cXg _.b.V.c.c.c.c.c.c.c.c.V _Xz _XzXz F e l.6.6X X .Q. X X&X .t./X@ AXk.I.&.RX@X@.t.6.oXg.o.o.c.cXz _Xz.b _XzXz.b.b.X eXjXj e e eXz eXz.c _Xz _.V i i.V.V.V i.#.c",
+"Xz.o.X.^Xz.bXz.b.bXzXzXz N.b.bXz _XzXzXz.b.b.b.^.b.o.I i.oXz.bXk.o NXtXt.u.`X- 3 V XM c.}.M 3 $ $ $ R TXcXD.ZXD x.u h hXM.FXB W.{.. u B.D.~ B.N.)Xn.s.j.>Xr.q = &.Y.E yXKXG RX,.W $XsX5Xl RX-.e BX-X1.eXV R aX-X-.e.a aX-X- B.a R.e 3X,XD.}X-X-X-.eXD aXI.e a.e R B R 3X- RX-XI 3.e., c 1XKXw.,.9.9 k TXUXP (X5Xx.R.K.k./.^Xg.bXg.6.b.oXk.o.I NXg.#Xg.IXg. .Q.cXg.U.U.c.V.c.o.c.c.c.o.c.VXg.c _.U.c.V.V.c.c.c.c l _.b.oXzXz.b _XzXzXz.^.^ e.rXt.rXt.r.r.r.rXt.rXt.rXt.r e.rXt.^.X.b.b NXz.^.bXzXzXz.b.b.b.b.b.^Xz.b.b.oXg.V.o.VXgXg.o.c _XgXgXg _.U _.V.V.o _.U _.V.V.V.VXg.V.c.V.o.cXz.^Xz l.zXgXxXx.^ ].X.XXoXoX5 (XOX5Xa R aX-XI T.,XJ :XlXK x D : TX5 $X,X1.e.DXLXmXU.qXw H y y.j vXs U t.M t < t UXe XqXh WX<Xh.y kX<.YXH UXB.mXnXf.s yXc B T.O ! !.D.D cXIXD.u R BX1.Z ' T.]X-.8X*.r q.| I 5., 5., 5 I.5.rX* e.rXt.rXtXIX, x s.'XlX-.rXtXj.bXzXzXzXzXzXzXzXzXzXzXz _Xz _ _XzXzXz _.bXzXzXj.^.rXj F FXt ~Xt e.r eXj.^.^XzXzXj.rXj.b.o.b.^Xz N.bXj.r.r.b eXtXjXz.b.b.V.c.c.V.c.c.c.c.c.c.c.c.c.c.c.c.V.c.c _XzXz.UXzXz _ _ _.o.V _ _.o.c.c.cXg.oXz _ _XzXz.bXzXj e e.oXg.U.o.b.V.c.c.c.c.c.c.V.c.U.VXzXz _XzXz e ~ e.b.o.U.c.z.I.z./XkXg.XXkX@.o N lXk l.Q.I.#.oXg.V.oXg _.bXzXz.b _.bXz.b.b.^ eXj eXj e.^Xj eXjXz.bXzXz _.U.#.V.c.V. .#.V",
+".^.oXg.bXz.b.b.^Xz.b.bXz.bXzXz.bXz.b.b.b.bXz N.o.oXz.oXz.o.^.oXg N.X.X A F.u ~XIX*., `Xc.M $.MXl sXh a m.,.a $X, U $ h `XBXB W.< % tXI F.~ R <Xe U._.W.jXw M ^ M =Xh.+.j =XL.W.w.ZXD $ $XDX5X,.u $ 3.a.a.a.~X- aX-.eX,X,X-.e.e.e R aXIX1X1.eX-.e aXDX1 RX-.e a.e.e R RX-X- RXD aXDX-.aXD hX,.a tXD '.nXPX5X1.uXx.R.I./ l AXg.t.U i./.U.bXg.#./.I.I.z.6 i.Q.I.c.c.V.c.cXg.c.VXg.c.c.c.c.c.V.c.c _.U.c.cXg.o.cXg _Xz _ lXz _XzXzXzXz.b.b.^ e e.rXtXj.rXtXt NXg )XdXt.r.r.rXt e NXg.XXzXzXzXz.bXz.bXzXzXzXz.bXzXzXzXzXz.o.oXg.o.o.oXg.VXg.b.V.V.c.c _ _X .o.cXu i.U.c. .6.c.U i. Xg.U.UXz.b.I.IXzXo.X.^.rXtXVXt.uXVXxXPX5Xa.*XD.aX-XD.aXDXIXIXIX-X-X1XD 3XD RX, R.M.Z.w y 9Xe.WXe._.NXGXeXK x.YXK nXK $.9 h h U x.F.Y.FXp.Y.- t.MXq U .X+ 0.. b.GX5.]Xw.j.] '.5 RXI a R.D B.].Z : g.0.~XI ~XV.rX9 ) ) :XXXMXM :.K ~Xt e.r.rXt 3.HXqXGXL.'XlX-.rXtXj.bXz.b _Xz.b.^Xz.bXzXz _XzXzXzXzXzXzXz.bXzXzXz.r.^.r ~ FX9Xg.^.rXtXtXtXj.bXzXj.r eXjXz.bXz.bXz.^ eXtXt e.r.b e eXz.b.b _.c.c.V.c.V.c.c.c.V.c.V.c.c.c.c.V.c.c.VXz _ _XgXz.o.c.o.V.c.c.o _ _.o.o.o.b _Xz.b.bXz.b.b.^Xj.^XjXg.b.# _.VXg.c.c.V.V.U.V.c.c.c _XzXz.b.b.b.o.b.b.o.bXg.c.U. .IXu. q.I./.I././.oXzXz.o.V.c.c _.b.c.o _Xz.b.bXzXzXjXj.^Xg.bXzXz.^XjXj.b.^ e.^XzXzXz.b.o.o.VXgXgXg.cXg.o",
+".^.bXgXz.bXzXzXz.^.b.b.b.bXzXz.b.b.bXz.b N.b.bXzXz.b.VXz.o.o.b.oXg NXx ,.R I I D ` |.3 |X<Xc [ xXc.ZXc Y kX5 c <.uX,X,.W.-.-.- [.<XA t.Z.~.`.~ <.e U.e.a._.n..Xb 0Xi ^X>.;.q yXG x sX, RXD BX-.e.e RX-X1.~XI.a a.~X- aXX.]XMXl 1Xl TXl T 1 :.ZXV 3X-X-X- R 3X1X- R aX-.eX-X-X1 3.aX- tXDXD.Z hXDX,.Z.!.n g '.HXV.rXj.r.^ N.^.oXd.oXz.^Xz.b.b.^Xz.b.bXz.bXk.o.# l.UXg.c.c.c.c.c.c.c.cXg.c.U.c.V.U.c.c.o.V.cXg.V.V.b.o.b lXz.bXz _Xz _Xz.b.^.^XjXtXtXt.r.r e NXg.zXtXt.r.r.r e.r.^.b.b.^Xj.^Xz.bXzXzXzXz.bXz.bXzXz.bXzXz.bXg.VXg.VXg.V.o.o.oXgXgXg.o.U _.I.c.V.U. .U.V. .6.V.c. .#.o.U.I.o.b l.UXz NXdXd.r.rX*Xt.r.D ( '.nX1XDX,.a.a 3X- 3 3.~.aXD RXI cXI.}XI 3.a t.wXL y.EXe U._ E U xXB 1 s cX, 8 a t $ t.M.i U U.p.iXrXqXw x ._Xe...j.J bXC.jXlXlXwXw g.]X1 3XI.aXDX- R.,.2XOXU.0 B.H.8.r.r.5.KXX VX3XJXXXX.$X*Xt e.rXt.r.HX5 xXL v o sX1.8XtXtXz.b.b.b.b.b.bXz.bXz.bXzXz _XzXzXz _Xz.bXz NXz.r.^.r ~.`.r ~X*.r.rXtXj N NXj eXt eXj.b.b.b.^XjXj.r e.rXt e.X.r.^.b.bXz _Xg.V.c.c.c.c.V.c.c.V.c.c.c.c.c.V.c.c.VXz _.o.VXzXg.c.o.c.c.V _Xz _ _ _.bXzXz _.b _.^.b.^.^.b.#.I lXg.I _Xg.c.V.c.c.c.c.c.c.c.c _ _ _ _XzXzXzXz.bXg.b.cXkXg.c.I.IXg N.^.^.^.bXz.^.o _Xg.c.c.cXzXz.V _.VXzXzXz.^Xj.r.rXj.cXz.^Xz.b.b.oXz N.bXg.cXgXg.cXg.cXgXgXgXg.o.c.c",
+"Xt eXg.^ N.b.^.b.b.^XzXzXzXz.bXzXzXz.b.b.bXz.b.b.b.bXz.o.^.#XkXgXg NXg q.RXk ).KX* # k V :.i.M R R.W $ 1 3 3 :XK DXlX, hXcX3 [X<X2.. uX,XI 3X- a <.}.eX-X-.w u.)XbXb.s ^ ^ ^X>.j o v.Z 8X1X-.~ RX-.eX-XI aX-XIX-.~X-.~ cX, :X, :XlXl `., ' : `.aXD.eXI RX-.aXIX-X- BX-X- R RX- 3 aX-.a.a.aX,X,XD UXDXKXaXP.D.8X*Xt.r.k.b.b.X.^.X.b.^.b.o.b.b N.b N.bXz.o.oXg.#.U.c.c.cXg.c.U.V.c.V.c.V. iXu. Xu.#.c.c.c.V.cXgXg.V.oXz lXzXz _XzXzXzXz.bXz N.^ N.^.^XzXtXt.r.r.r.r.r.r e.r.r.rXtXjXj.r eXj.^.b.^.bXzXzXzXzXzXz _XzXzXz.o.cXgXgXgXg.o.o.o.V.c.c.VXg.o.c.VXg.c.V.c.V.c.o.V.c.c _.o.c.o.o.^XzXz.bXoXz.k.^.rXt.r.r.uXo g.D.n 8XD.aXIX-.aX-.`X-.aX-X-X-.aX,.aXDX- $ a.MXeXL yXpXe.i <.} a t.e.e.eX1 B RX-X-XI t.e t U E.-Xp M [.1 M n [ M.h =Xh.+.OXU.O.w y HXU T.u.`.a.a.~.MX1X,.'XlXP.0.~.8XVXtXt.rX*X*.u.u.uX*.uXVXt.r.r eXt.rXV.'Xp 2.s b g aX*Xt e.^XzXzXzXz.b.bXzXzXz _Xz _Xz _ _.b.b.b.bXzXz NXj.k.8 F.`Xt.r.rXjXt.rXj.^Xt eXt eXt.^.b.bXz.^ e e eXtXt eXtXk e.^.bXzXz.b _.V.c.c.c.c.c.c.c.c.c.c.c.c.V.c.c.c _XzXz.oXgXg.c.c.c.c.c.o _Xz _.b.b.oXz.bXz.^Xj e.^.b e ~Xg.I.cXg.c.bXgXg.c.c.c.c.c.c.c.c.c.V _.bXzXz _.bXzXg.c.bXg.V.c.c.I.#.U.b.b.b.b.b.b _Xz _.c.c.c.V.V _ _.c.o.bXzXj.r eXjXj.^.U _.o.o.o.b.c.b.bXg.cXg.o.cXgXg.o.c.c.c.o.V.c.c",
+" e ~.b.k.bXz N.b.bXz.^.bXz.bXz.bXzXz.b.bXz.b.bXz.b.b.bXzXg.z.I.UXgXz.b.bXg.X.rXt ~.` V :XMX, < t <XD.Z.MX,XD T.] ` :X.XwXHX<.h.T.pX4 UX,X1 cX-X-X-XIXIX-X- 1 t t G.) p 2.s %XiXf.;.E.Z $X1.~ R.e a a.eXDX-X-.`X-X-.eX-X-X-.eX-.eX-XI.uXI.e.a R a.~XIXI.eX- RX, R B.eX-.aX-X-XIXI aX- a R.a UX, hX,XDXP.n.] '.HXVXt.r.^.X.b.bXz.b.bXz.bXz.bXz.b.bXz.o.b.bXz.o.z.UXg.c.V.c.c.c.U.c.c.V.c.U.U.#.#.#.U.V.U.VXg.c.V.cXg.oXz.cXz.b _.bXzXzXzXz.b.b.^ N N.^.K.rXtXtXt e.rXt.r.r.rXt.rXt.k.k eXt eXj.^.bXz.^Xz _XzXz _Xz _XzXz.V.o.V.o.oXg.o.oXg.oXgXg.VXgXgXg.c.VXg.oXg.V.c.c.VXg.VXg.c.o.cXz.oXz.^ NXz NXd.^Xt e.rXt.r 'XPX5Xa BX,X1X-XI.aX- 3 a RX-X-.aX-.aX,XI t cX- t $._.j.@Xe U h <.e R a.~.aX-XDX,XDXD R.~ B a $ kXB.Y.YXp.p vXn =.j &X0.>.>.+.E.OX0 9XC !.n 'XD 3.D D 3XD B.Z.'Xc TXl.u.K.8X*X*.K.K.uXdXd.rXtXt.u.r.k.r.rXt.HXc.s.s 0 bXKX1.r.rXt.^Xz.bXz _.bXzXzXzXz.bXzXz _XzXz _XzXz.b.b.b NX*.5.8.8X-XxXk.rXtXt e.r.r e.r eXjXjXz.o.b.# N ~ eXj ~Xj.rXj.U.rXz _.bXz _.V.c.c.V.c.U.c.c.c.U.c.c.c.c.cXg.c.c _ _Xz.U.cXg.UXg.c.o _XzXz.b.b _.b.b.b.^.^ eXt.rXt.^.r ~XjXzXg.c.c.V.c.cXg.c.c.c.c.V.c.c.c.V.V.b _.bXz.bXz.o.c.b.c.c.c.c. .U.U _.bXz.b.b.bXz.V.c.c.V.#.c.V.c.c.o.c.bXzXj eXj.r e.b.IXg.cXgXgXg.U.c.c.c.cXgXgXgXg.VXgXgXg.c.c.c.c.c",
+".r.r N.k.b NXz N.b.bXzXzXzXzXz.b N.bXz.b.b.bXz.bXz.bXz.^Xz.o.oXz.#Xz.^.b.X.b NXkX9.5 I V | #.} < a hX,.MX,XDX1 $.] ' :XlXB k.- r W.x.NXeX-.`.e R.~ R 3.~.~XI R <.* t *XeXb -.B {.;.EXa.D.` RX-.a aX- a aX1 3.~ 3.`X-.~XIX-X-X-X- 3 RX1 3 a.` R.~XDX-.e a a.a 3 aX- RX-.aX-X-X1 3.~X-X- a R R.a.M.M B.'X5 g.Z.K )Xt.k.X.^.b.^.b.bXz.b.b.b.b.b.b.b.b.b.b.b.b.b.U.U.c.c.c.U.#.c.V.c.c.c.#.V.c.U.V. .U _.c.c.U.c.c.c. .Q.o lXz _Xz.bXzXzXz.b.b.^.kXjXtXtXj ~XtXt.rXt.r.rXt.r.rXt.rXt.kXd.r e.r.^XzXz N.b.^XzXz.bXzXzXzXz _.o.c.b.c.oXg.V.oXg.o.cXgXg.V.V.o.oXg.VXg.c.V.cXg.o.V.cXg.c.c.o.o.^Xz.^.b.^ N.^.k.r.r.kXt.H.XXP.D.D R R R.KX-.e.~XIX-.eX- RX-.a R.Z R.~.Z.a R $XL yXpXe E h t t.eXIX-XI 1.-XJ RX- RX- a R aXwXB._.FXpX+X+X>X0XU yXm y.+ &X0.j oXC J.>.'.n.Z 3XcXl T R 8XD '.].2 D.2 D.f q.$ 5 D.I F.r eXt.r.rX* ~XtXtX-Xl.'.s.... o.!X-.rXt.r.^.bXzXzXz _Xz _.b _ _Xz _XzXz.bXz _.^.bXzXz NX* #.8.8.8.5 N.r.r.rXtXj.^Xt e.r e.b.^.b.o iXu.^Xt e ~Xt.r.k.cXj.^ _XzXz.o.V.c.c.c.c.c.c.c.c.c.c.c.c.c.c.cXg.o _.b.b.U.c.c.c.c.o _ _Xz _.o _.b.bXz.^ e eXt e.rXtXt ~ e.^.b.VXz.cXg.c.c.c.c.c.c.c.V.c.c.c.c _ _ _.bXz.bXz.o.VXz.V.c.c.c. .#.U.b.b _XzXzXz _.V.c.V.c.c.c.V.c.c.VXg.o.o.^Xj e eXj.X.#.V.c.V.c.c.cXg.VXgXg.c.V.cXgXg.V.c.cXg.c.c.c.c",
+".r e.bXz NXz NXz.bXzXzXzXz NXzXzXz.b.b.b.b.b.b N.b.b.b.b.bXz NXzXkXz.b.b.b.b NXk 5X9 }.,.,XX h.a.a hXDXDXD $XD.D.ZXD RX,XK.[ .1XrX4 U hX1X-X1X-.a.eXI R 3XK 3X,XD U 8._ C.PXAXi.4.;Xa.wXDX- B a aX- RX-XI RX-X-X-X-.}XI.e R aXIXI.eX-XI.~ R R.~XD.e R.~X-.aX,.eX- RXDXI R R RX-X-.e RX- R RX,XD R.aXGXaXU : (.$ 5 (X .z./.I.b.b.b.bXz.b.b.b.b.b.b.b.b.oXz.b.c.UXg.U.V.#Xu. .V.c.V. Xu.V.c.c.c i. .V.c.c.I.U.c lXu i.c lXzXz.bXzXz.b.bXz.^.k.r eXtXtXtXtXtXt ~Xt e.r.rXtXt.r.rXtXt.kXt e.r.^XzXzXz.bXz.^.b.bXz.bXz.oXz.c.bXgXg.cXgXg.oXg _XgXg.cXgXg.V.o.oXg.V.o.V.o.VXg.VXgXg.V.o.c.o.^.bXgXgXx NXV.^Xd.5Xt.u.H g.'.w sXl $XlX.XKXcXK `XcXK `.*.a.eX-XDX- RXVX1X1.w.nXmXpXe h h a.a.u T :XK #XcX-.e RX-.e R a t E xXeXr M &Xr y.9.!XG s vXU = & = & & b.>.0.' R.a.e `.e R R.D.9.0.O 'X5 qXJ.$ ).$ ).R.rXd eXt.r.k ~X*X*.8.5XUXpX>.@ 0XG.9 BXtXt e N.bXzXzXz.bXzXzXzXzXz _Xz.o.bXz.b.X NXk.fX9.$.$ qX9.5X- F.rXt e.r e.^.bXj eXjXz.b.oXz _.c _.o.^.r e.r e.^X9.^ _XzXz _.V.c.c.VXg.c.c.c.c.c.c.c.c.V.c.c.c _Xz _ _ _.#Xg.c.V _ _XzXz _.b.b _ _.b.^ e e.r ~ ~ e.r e F.rXj.oXg.b.V.c.c.c.U.c.c.c.c.V.U.c.c.c.o _.b _.b _.b.oXg _.c.V.c.c i.c.# _.o.o _.b _.V.c.c.c.#.#.V.V.c.cXgXg.V.bXz.^ e e.^.c.U.V.cXg.c.c.c.b _.b.o.cXg.cXg.c.VXgXg.VXgXg.c.c",
+"XtXj.X.XXzXzXzXz.b.b.bXz.bXzXz.b.bXz.bXz.bXz.bXz.bXz.b.b.b.bXz.b.c.bXzXz.^.o.X.bXtX*.` : V.5XM #.} h hX,.M.9 x hXlXD.a #XKXBXw.gX2...W.W.aX1XDX- aXIXDXIXD c.9XlXKXlXcXp n W ^Xi.CX0.W.Z 8X-.M RX-.e.aX1X-.eXI aXIXIX-.~.a aXIX-X-X-XIX-X-X-.aX-XDX-.e a.e 3 R.e RXDXD.e R.a.uX-.a.eX- a a RX,XDX, R.'X5XUXPXx D.z.R 5.t.6XuXzXz.b.b.b.b.bXz.b.b.b.b.b.b.b.bXg.UXg.cXg.#Xu. .c.c.c. Xu.#.c.UXg i i.c.o.V. .#.c.o. .QXg.UXz.bXzXzXz.b.bXz.^ e.r.r.rXt.rXt.r.r e.r.r.r.rXt.rXt.r.rXj.kXt eXj.^ NXz.^Xz.b.b.bXz.^.b NXz N.bXg.oXg.o.o.o.oXg _XgXgXg.o.VXgXg.VXg.o.VXg.V.o.V.VXg.c.oXg.c.o.^.o.oX&.&.$.$.& ) I q ( :XUXa.n.W s x 1 Xl T.w $., sXl R R aX-XD.H.e 3 BX1.w.n y JXe h E a.}XK ` c 3 a.M.e.K :., a.e t.}.W EXnXrXrX+ 1 sXG v.w.n.n 9.9 & &XG b J !XG.9X, RXD.e 8 R.D.0 g.2.]X1.H.H.r.`.5Xd.u.H.r eXt.rXtX*.rX*.8XI.- x v.) % 0XL.]XI ~Xt.r.bXzXz.b _XzXz _ _.b _.b.b.b.b.b.^XgXkXk.$./.fX3 ) 3.8.r.kXt.r.r e.^.b.bXjXj.^.oXzXz _ _Xz.bXzXzXjXt e.r.kXg N.o.bXz _.cXg.V.V.V.c.c.c.c.c.c.c.c.c.c.c.V _XzXzXz.o.I.V.V _ _Xz.b.V.V.V.V _Xz _Xz e.r e F F.r.rXt ~ eXz _Xz.VXg.c.c.c.c.c.V.c.c.V.c.c.c.c.c.o _ _Xz _ _.V.V _.V.c.c.c i.c.#.c.VXg.V.b.V.V.c.c.#.#.c.c.c.c.c.cXgXg.b _.^ e e.b.U.U.c.V.c.cXg.V _Xz _ _.V.cXg.V.cXg.c.cXg.VXgXgXg",
+".^.^XgXg.^.b.b.b.bXzXz N.bXz.b.bXz.bXz.b.bXz.bXz.bXz NXzXz.b.bXz.U.b.^.b.b.b.b N NXt.`.8XX V #Xl : $ hX, hXw `.Z $ hXDX,.-.- [.[X>.mXe.MXDXI.e t R a R 3.uX1XVX,XDXDX, h.W ....C H H s.n RXD B.M R 3.u R R.a.eX-XDXI.aXIXIXDX- a.~XIXI aX- RX1XI.eX-.~X-.~XD aX-.aX,.aXI R.eXDX- R.~X-XI RX,X,X, cXD T.n.0 :.`XVXV.HXz.^ N.^Xz.b.b.b.b.b.b.b.b.b.b.b.b.b.bXz.o.#Xg.c.c.c.U.c.c.c.c.U.U.c.V.c.V.c.U.V.c.c l.o.c l.o.oXz lXz.b.b.b.b.b.^XjXt e.r.rXt.r.rXt.r ~.X.rXt e.r.rXt.rXt.r.k.^.rXd.^XzXz.b.b.^.b.^.^.b.o.^.^.b.bXzXgXgXgXgXg.V.o.o.oXgXg.V.o.o.VXgXg.V.cXgXg.V.c.c.VXg.VXgXg.c.cXz.^.#Xk d.f.& I ( q.$ D D @XaXLXD.D.e aX-XD a.e.* $XD.a a aX1.e RXD.e.u.e B.w.n yXGXe E $ a $.aX-.e a RXI.~X1.,XX hXB x._Xe._XG.jXw.>XU gXl.w CXLXL.!.9 & H o b o.q y.2XK xX,X,X,.wX. g KXy.| D.2 D.& (X@XJ (XtXd.r eXtXt 3X*.8Xl 1 v O.sXb.) J bXc.D ~Xt e.b NXz.bXzXzXz.b N.o.^Xj.o.b.6.6.t.X q NX9 N.K 3.K.`.8 ~ NXk.r e.^Xz.bXzXz.^ _XzXz _ _Xz _ _Xz.b.^Xt.r e.^XgXz.bXzXz _.o _Xz _.c.c.c.c.c.c.c.c.c.c.c.V.o _XzXz _.o.# _ _Xz _ _.V.c.c.c.oXz _.bXzXj e e F F.r.r e.r.rXz.oXz.V.V.c.c.c.c.c.c.c.U.V.U.U.c.c.cXgXz _Xz _.o.c.c _.c.V.V.c i.c.#.c.V.V.c.V.V.c.V.c.#.c.c.c.c.V.V.VXg.c.o.oXzXj.^Xg.z.c.c.c.cXg.b.bXzXzXzXz.oXg.c.V.cXg.cXgXg.V.c.c.c",
+"Xz.^.o.c.^XzXzXz.^Xz.bXz.bXz N.bXz.b.b.b.b.b.b.b.b.o.bXz.b.b.bXzXg.oXz.b.b.^.^.k.^.KX*.rX-X3 qXX # ` :.iXK.-.W h x UX, hX3.-.-XwX+Xn nX.Xl $XwX..a.>X,.Z.2XlXKXK $XH.* x [.N pXi.4 H b.nXsXD R.a R.Z.e.M.eXD : $XI x R $ aXD RX-X-XI.eX-.~ R.aXI R.e R.e 1 cXlXcX- R.a RXD `.ZX-.e a R 3X, cX, 3.aXI.n '.0XP.H.H.r.rXoXgXz.b.b.b.bXz.bXz.b.b.b.b.bXz.b.b.b.bXg.U.c.c.c.cXgXg.cXg.c.V _.cXg.V.c.V.cXg.V.o.c.V.o _Xz.bXz l.b.bXzXz.bXz.^Xt e.r.rXtXtXtXtXt.r.rXgXtXt.r.rXt.r.r.r e.k.^XjXj.bXzXzXzXz.bXj.b e.z qXxXg./ q.zXg.U.U.cXg.o.o.V.o.c.c.o.oXg.c.o.VXg.V.o.o.cXgXg.c.V.o.VXg.o.o.bXz.^.b.^ N.kXt.r.H.H.H T.0.nXa.D hXD RX-XI BX1.e.] 3XJ.ZX, $.Z.u.Z h $XD.*.w v yXG.w U 1X,.e.e.~.e IX1 3 3X, $XD x.S [ E.F.<Xr M.>.O Y !XH !X; =XP.> =.G.>.q v.q.>XU n m 1XDX,.DXD ' g m 4 DXx.5.f ( ( ( (XxXtXt.rXt.r 3.8.` c.9XK.EXn.; S 0X>XK.0.u ~.rXj.bXzXzXz _Xz.^Xz.X.^Xk.I.&.&.&.IXg.XXg.b N.X ~.rX9.`.`.8 ~Xt.r e.^.bXz.b.bXzXz.bXz _XzXz _.^.bXz N e e.r.b.oXz.b _XzXzXz _Xz.b.V.V.o.V.V.c.c.c.c.cXg _Xz.b _.b _Xg.UXz _Xz _.V.V.c.c.c.o _Xz.b _ e ~ e.r ~ e.r.r l.^Xz.cXz.c.o.cXg.cXg.c.V.c.c.V.c.cXg.c.c.V.o.oXz _.V.c.V _.c.c.c.c.#.U.#.U.c.c.V.V.V.c.c.c.#.c.V.c.#.U.c.V.V.cXg.o.b.b.oXg.#.c.cXg.c.o _Xz.b _XzXz.o.V.c.cXgXg.c.c.oXg.c.cXg",
+".bXzXzXgXz.^XzXzXzXzXzXzXzXzXz.b.b.bXz.b.b.b.b.bXz.bXz.b.b.b.bXzXg.bXz.b.b.^XjXt ~.k.^X* 3.8 V VXXXMX3 1.} U $ h.wX,XD hXK k 1 [XnXn.jX#.' mXDXcXqX. a.Z m.eX..2.eX..eXcXh.dXb %.@.;XaXL.DXD.wX5XDXVXDX1 : x $ x x 1 1Xc :XcX1 R.a R.e.e.~X-X1X- R.eX-X,X. DXc D.-XlXw D TXcX5 k.~X- RXIXIX1 RX- R a.Z.' T (.`.H.HXd.r N.b.^.b.^Xz N.b.b.b.b.b.b.b.b.bXz.b.b.b.UXg.c.c.c.c.c.U.V.cXg.c.c.c.V.c.c.c.c.c.c.V.bXzXz _ _Xz.U.b.bXz.b.b NXj e.rXt.rXt.r.rXt.r.r.r.^.r e.r.rXt.r.rXtXtXt.^.^.^.^.bXzXz.b.^ _ F.^.X A.zXx./.t.& X.tX .t.oXg.oXg.o.cXg.V.cXgXg.VXg.cXg.V.V.c.V.V.c.c _Xg.V.c.b.b.^.b.^.bXz.k.^.rXdXVXd gXl.n.DXaXD B.~ 3.` B.`.~ '.] TX..] 1 .9 kXJXl.M aXaXL.jXGXe U.[X, a aX-XI :X-X- B.a a.,.Y n.- >.[.gX% [ nXH.O.%X;X.XKXUX; y.q =.j.qXL H = yXcX, h.Z.M 8Xa.n.0 !XV.e.8.rX*.rXV.H.rXVXtXtX*.8.aX1XlXc s.nXG.s / ^.@ vXGXG :.u.r e.^Xz.^XzXzXzXzXz e./.$ d./.zXk.b.^Xz.X.^.b.XXt.^X* c.8.8Xt ~Xt eXj.^.bXz _ _.bXz _.bXz _ _. iXz.b.b.rXj eXg NXzXz.bXzXz _XzXz _ _Xz _Xz _.o.VXg.V.o _ _XzXz.bXz _.VXgXz _ _.c.V.c.c.c.c.V _ _.b.b.^ e.r eXt e.r e.I.z.U _Xz.c.V.cXgXg.V.c.c.c.c.c.c.c.c.c.o.o.c _Xz.o.V.c.VXz.V.c.c.#.#.#.c.c.c.c.c.V.c.c.#.#.c.#.#.#.c.#.c.c.c.V.c.o.o.oXg.c.#Xg.c.V.c.bXz _.b.b.bXz.o.V.cXg.VXg.VXg.cXgXg.c.c",
+".b.^Xz.UXz.bXzXz.bXz.b.b NXz.b.bXz.b.b.b.b.b.b.bXz.b.b.b.bXzXz.b.oXz.b.z.I.b.r eXtXt.k.K.rX* ~.K VX3 `XM 1 1 h.M h.M.}X, `X. h $.< v.1Xw.O :.S.j $.1 :XlXH.eXl $ 8X. $XKXqX+ pXb ^.; bXaXL.w.w 1.'XD RX,Xc.}Xc $ `.9 T 1 :XK 3.aXI.e R.eX-.eXD.e.aX-X- B ` c : ` s $.-.9 1Xl xXKX-X- RX-X- a RX1.}.u.'.0.0 gX1.`.`.rXtXj.^.o.^.bXzXzXzXzXz.b.b.bXz.b.b.b.b.b.b l.o.cXg.c.c.VXg.c.c.V.cXgXg.c _.c.c.c.V.cXzXzXz.bXzXz.^ l _.bXz.b N.bXj.rXtXtXt.r.rXt.r.r eXt ~.r.r e.rXt.rXtXt.rXt.X.^.bXz.bXz.bXz.bXj e.`Xd NXxXx.z.z.zXkXg _.c.VXg.o.c.oXgXg.o.o.VXg.V.U.U.c.V.c.U.c.c.U.U.V.c.cXg.#Xg.b.bXz.^.b.^XdXd.r.r.H.2.n.n.n g.'X1X- B.H B.` BX- BX-X, a R R.Z 1 aXD t.M.wXeXwXGXe EXH $ aX- a B R.~ R a VXKXc.Y.MXq.[X+ X7., k mX. !X.XUXc.'XPXm.0.q.!XGXC.>.OXmXcXsX,.DXD.w.n 'XP.2 B 3 ~Xt.r.rXtXtXtX*Xt.8 ~XIXl TXK v.EXa O.=Xe u.N 0XG $.0.`.rXj.^.bXzXzXzXzXzXj F.bXk.X N.I lXk.z.zXkXg.fXgX9 ~ 3.r.8XtXkXkXj.r eXz _.bXzXzXz _Xz _ _Xz.o i.I.o.b.^ eXt e.UXz.bXz.b.bXz.bXz.bXz.b _XzXz _Xz _ _ _ _ _ _.b _Xz.bXz.o.o.b.V.c.V.c.V.c.c.c.V _.b _XzXzXj e.r e.r.r.r eXjXgXzXz.#.V.c.c.c.V.c.c.c.V.c.V.c.c.VXz _.U.c.V.V.c.#.V _.c.c.c.#.#.#.U.c.c.c.V.c.c.c.c.#.V.c.#.#.c.#.#.c.c.V.cXg.o.c.c.c.#.o.UXg.o.b.b.b.bXz.b.b.b.o.c.c.V.o.c.VXg.c.c.cXg",
+"Xz.o.^.cXzXzXz.bXz.b.b.^.U.bXz.b.^.U.^Xg.bXg.U.U.b.b.b.bXz.b.bXz.o.^Xz.IXzXj.rXjXtXtXt.k N.k ~.8X*X3 VXXXM .9.i h R h.} kXK ._.jXpXcX5.a x xX,Xe.Z.aXD.uXI.eXD R R a t u.d.s ^.; w b.!.9.E.9.'X. : $ x $ hX, $ $ hXD aX-.eXD a.a a.e.a.eXD B.eX1.aX1 B a.e.e.a.a.e R.aX-.e RXD.eX, R R RXIX,X, R.D.n.].]X1.`.H.r.rXdXj.b.bXz.b.bXz.b.bXz NXz.bXz.b.bXz.b.b l.b _.c.cXg.c.cXg.c.c.c.V.c.c.c.V.cXg.c.cXz.bXzXzXz.bXzXg.XXzXz.bXz N.r.k e.r.rXtXt ~XtXt.r.r.rXt e.rXt.r.r.r.rXtXtXgXoXdXz.^XzXzXzXzXz.^Xd.^.^XkXk.R q.t lXgXgXgXgXg.VXg _.c.cXgXg.VXgXg.cX&.U.c.#Xu.c.V i. _.#.UXg i iXgXz.b.^.b.^Xj eXt.HX5XJ.n.n s 9 '.wXD.Z.DXDXIXDXDXIXD.DXDX1 RXD B BXD B B.w.w.j.Y._ x U U.a t R B aX-XD `X+XwXe h x .[XX.l VXBX3XKXcXJX.XH.>XOXm.!.! g &XC.q & &.O.9.MXD.w.w.n '.0XOX5.8 ~ ~X*.rXt.r.r.r e.r.}Xl.'XLXL 0Xa b 2.= bXe.M.)XeXG.Z.`.8XtXj.bXzXzXzXzXzXzXz ~ e _XzXz. .IX .z.t Q.A./ 5Xx.r.r.`.8 ~.8.^Xt e.^.b.^.b _.bXz.^XzXz.b _ _.o.U.b.^Xj e e N lXz.b _.^.o.b.b.bXz.b _.b _Xz _Xz.bXz _ _XzXz _.o.^.b.^.c.c.U.V.c.U.V.c.c.c.c.c.c _Xz.b.b.bXz.^.^ e ~ eXt e.V.o.b.U.cXg.U.V.U.c.V.c.V.c.o.c.o _ _.c.6Xu i.c.c i i _ _ i.#.#.#X&.#.c.# i.c.V i i.c.c i. .#.#.#.#.#.U.V.c.c.V.cXgXg.c.U.cXg.VXg _.b.bXzXz.b.b.o.V.c.V.o.V.c.c.V.cXg.V.c",
+". i.bXg.b.^.I.U.bXz.b.c.f.cXz.b.^. Xz.b.oXg i i.b.b.bXz.b.b.b.b.b.b.b.o e.r e.rXt.r.r.^ N NX*Xj 3.`XXX3 V.-.l # x.} $ $.a kX3.Y.pX+XrXK.Y.aXD h.Y.FXD R R.~XDX1.~XD.~ R t.e.).)X6 w H H H HX>.; y s.9 sX. 1X.XK xXwXc.9 BX, ` RX-X1.ZXD.e RX, a B.eX-.aXI.eX-X-.} RXD aXD a R R : :X..u 1 :XK : $ $ $ ! g.2XIX5.5Xx.XXjXj N.b.^Xz.b.b.bXz.b.b.b.b.bXz.b.b.bXz.U.b _.cXg.V.c.c.cXg.VXg.c.V.o.V.cXg.c.o.c.b.bXz.b.bXzXz l.b.b.^.o.b.k e.r.rXtXt.r.r.k ~.rXd e.r e.r.r.rXtXtXt.r.rXt.k.^.b.bXzXzXzXzXz _XzXz.b N.b.IXk.I.6.U.bXgXg.V.o.cXg.o.cXg.VXg.o.o.V.c i.UXg.#. .U.c. .#.c.#.UXg.#.U _.bXz.b.^.b.k.r.r.H.5.2 'XC g & y x.n.0.w.w.w.w.w.w.w.w '.w.wXl 8X1XD B B.ZXa sXr.9 UXe.i.i h U.W.M $ nXp.Y U h x.l c XM.lX3.lXX `XK.9.-XJ.>X; g.0.!XUXC @XCXm.9 9.Z $Xl s.w ' g g.DXV.8 3.rXt.r.r.r.rXt ~.8 3Xq.W.s / /.= O.=Xa.9 1 xXsXL.9 cX- FXtXz.b.bXzXzXz.bXzXzXjXzXzXzXzXzXz.X.I.z N.r.k 3 ~X-XV F.8 FXt eXt eXj.bXz.bXzXz.^XjXjXzXzXz _Xz.bXz.^ e.rXjXz lXz.bXz.cXzXz.bXz.bXz.bXz.bXzXz.b _.b _.b.b.oXzXz.b.bXz.U.cXz.U.c.V.U.c.c.c.V.V.cXg.o _.^Xz.b N.^.rXj e eXjXgXz.o.#.V.c.o.UXg.c.U.U.c.V.V.V _ _.c.U.#.#.#.c.#. .# _.V i. i.#Xu. .c.#. .V.#Xu i.U.U iXu iXu iXu i.#.c.c.cXg.cXg.V.U.U.c.VXg.o.b.b.b.b.b.b.bXg.c.c.V.o.o.o.V.c.o.c.U.b",
+".Q i.bXg.c.b i./.bXz.^Xg.6.c.bXz.^.#.bXz.b.o.U.I.b.b.b.bXz.b.b.b.^Xz.^XzXjXj eXt.^XjXj.k N.X.bX*.r ~.8.}X9.,X3 #XM 1.}.a `.-X7 n.jXZX.XJ tXc < =XcXc.-XIXD.eXDXI.~ F.~.~ R.) pX=Xn ^.vX6XfXf HXp s.MXD t R.M.a.a R R a R `Xl : ` 1 `Xl.,Xl :XK : x R.~.a R.e R.e t t a R R.eXJ :X.XcX. m 1 : `.-XJ.9XU ! ! I IXx 5.AXkXjXjXz.b.b.bXz.b.b.bXz.bXzXz.b.bXz.bXz.UXz _Xg.cXg.c.cXg.c.c.c.c.c.c.c.o.c.cXg.c.oXzXzXz.bXz.bXgXg N.bXd.bXjXjXtXtXt.r.r.r.kXt ~Xt ~ eXt.r e.r.r.r.r.rXt.k.^.^ NXj.^.bXzXzXz.bXzXz.b N.^.^.^XgXg.o.c.o.VXg.oXgXg.o.c.VXgXg.V.o.oXg.U.VXg.VXg.o _.c.c.VXgXg _.VXzXzXzXzXz N NXjXt.u 3 :XwXw &.j.j.q.9 o.9 v v sXn s v v.n.9.n.w.Z 'X1.H B B 8.w.D 9.jXGXe EXq.m.d.p._X%.i E U U x xXJX3XM # h.a.a.iXM V.-.Y m.OXU s.' ' ! =.> 9XmXa.'.w.n T.] g ( B.DXV ~.rX*.r.r ~ ~.r F F B.ZXL.N / / / C.sXa.M.Z $XDXaXn.9X5X-.rXt.bXz.bXzXzXz.bXz.b.b.^.b.^.b.o.b.IXg.z.I )Xx.z.k.8.r.8.` q.k e.r eXjXz.oXzXz.bXj eXj.b.bXz.bXz.^Xj e e.rXj.b lXz _ A A.7.z.b.b.b.b.b.bXzXz _Xz _ _ _Xz _.o.b.b.b.b.o.I.o.#Xg.c.V.c.c.U.c.c.c.c.c.oXz.b.oXz.^XjXt F e e.^.VXz.V lXg.c.U.c lXg.c.V.c.c.V _.V.c.U.U.c.c.c.c.V.c.cXz.V.c.U. .U.#.#.#.#.V.c.#.#.#.c.c.#. .#. i. . .U.V.c.V.cXg.c.o.#.c.V.c.V _.b _.bXz.^.b.oXgXgXgXg.V.V.c.V.c.oXg.oXg",
+".c l.o.oXgXz.o.b.b.b.b.b.c.b.bXz.b.b.bXz.b.b.^.b.b.b.b.bXz.b.b.bXz.bXz.^.r.r e.z N e.r.^.oXgXg.bXj N.r.r.8.aX3 VX3XlXMXM 3XBXcX7 MX+.+ x.,XcXwXD 1XqXJXJ $ R RX-XI.`.`.HX- a.* UXb.)..XbX=.B ;.4 b v.n.M.*.a R R aX- RX1.eXl., :XK :XJ.0 1 : TXJXlX,X-X1.aX-X-.e R R aX- R a R aX1 h.Z.e.e t.a RXDX-.w s T.5X-.8 3.rXt.r.rXt.^ N.b.^.bXzXzXz.bXz.bXz.b.bXz.bXz.UXzXz.cXg.c.c.c.c.c.o.VXg.c.c.VXgXg.o.UXg.c.o.^.b.^.b.bXg.bXz.o.b.^XtXt eXt.r ~.kXt.r.rXtXt.kXd.rXdXt.rXt.r.r.r.rXt.^ ~XtXj.r.^Xz.oXzXz.bXzXzXz.bXgXgXgXgXg.cXgXgXg.VXgXg.o.cXgXg.c.V.V.cXg.o.V.cXg.o.V.c.c.c.c.V.cXg.oXzXz.bXzXz.b N.kXt c.HXl.j y.E.@ oXr M M.j & & &Xr.q HXU.qXw &.0.n.n ' '.uXa.D.n.wXLX>.j...mXA W %XA zXq E E EXq 1 1X3 #XX #XI c a.a a.a $Xc `Xw =XO.!.! s y.G.GX;XG.' '.0.] D gX5XDXV.8X*.r.rXt.r.r.r ~ F FX1 R v.s.) *.N u u.Z.M t.ZX1.~XL 9.9.K.8 ~Xj.b.b.bXz.b.bXz.bXzXz.^.oXz.b.bXz.I./X .zX q qXx.`Xt.8X*Xx q.rXjXjXj.^ NXzXz.bXj e e.o lX@.I.o.^ e.rXtXj.^.b.cXz _ NXzXg j.bXgXgXg.o.b.bXzXz _Xz _XzXzXzXzXz.o.^.oXg. .o.V.c.c.U.V.V.c.c.c.c.c.c.o.b.o.^.b.bXtXj.r ~ e.b.o.^.#.U.I. .V.c.c.V.V.U.c.VXz _.c.#.U.c.U.U.cXg.U.V.U.b.V.c.c.#.c.#.#.c.#.#.#.U.U.c.c.c.c.c.V.c.c.c.c.V.c.o.VXg.VXg.o. .VXg.V.o _XzXz.^Xj.^Xz.bXgXgXg.cXg.o.V.oXgXg i.IXz",
+"Xz.^.b.^.c.b.^.b.^.b.b.b.bXz.bXz.b.^Xz.b.b.o.^.b.b.b.b.b.b.b.bXz.^ N NXj.^.kXt.X./.^.r.^ N.^.b.cXg.X.k.rX*.8.8XM., VXMXX x [.SX2X2.M hX1XD R U.a.M.a a 3X,XD t a 3.8.~X1X1 8 C uXF.. *XbXbXf.4.EXG v.w a RX-.~X- B.e.e R R a a a.e a a R.eX, R B R BX-X,.~.eX-.a aX- t aXIXD.aXD $X-XD R R.a.}.M.M.n.'XPXlX1.` ~.r.rX* eXtXjXz.b.b.b.b.b.bXz.b.bXz.b.b.b.b.b lXz _Xg.cXg.c.c.c.c.c.c.V.oXg.c.c.VXgXg.UXgXgXz.b.bXz.bXg.bXg.^Xz.b.b.k eXtXt.rXtXtXt.rXt.r.r.z.X.r.r.r eXt.rXt.rXt.KXt e.r e.k.b.QXzXzXz.b _.o.o.o.o.c.o l.b.6.z.cXgXg.o.o.cXg.VXgXgXgXg.c _XgXg.V.o.V.oXg.c.VXg.c.V.V _XzXz.bXz.^Xx.kXtXV 3XMXcXGX>X>.@.jX>.E.@X>X>.@.EXp.EX+.EXmXmXwXG.n s gXa.wXaXL v 9.E HX8X>X2.<.x.x.J E E.m x.-Xc V #.K 3.u.e.}.e aXD <XD .Y nX;XwXP.'.'.' !XwXP.!.0XlXO.]X5X1XI.8.8.kX*.r.r.rXt.r.r.r.8 F B.DXL 2 * * u < t h.lXJ.9 B.n o.9X1 3.8.k.^XzXz.b.bXzXz.bXz.b NX9Xz N.b.^Xz.X.^Xk N.X.rXt F.8.k.8.rXj.r.rXj ~ e eXj.^Xz NXt e.^.^.o.:.RXzXt e.r eXj N.oXgXz _ _Xz.b.I.bXg ZX@.b.b.bXz _XzXzXz _ _.bXg.I.IX X&X .I l.UXg.c.V.c.c.c.VXg.c.c.c.#.U.o.o N.^Xj e ~.r e.bXg.^.#.#.# i.7.c.U.U.c.c.c _ _.c.#.U.c.c.6.7 i.UXg.c.c.V.o.U.#.#.U.#.c.#.c.#.#.U.V.c.c.U.c.c.V.c.U.c.c.c.V.c.V.cXg.cXg.#Xg.c.VXzXzXz.^ e e.r e.^.b.o.o.o.o.c.cXg.cXgXu.&.z",
+".bXz.bXzXk.b.b.bXz.b.b.b.bXzXzXzXz.bXz.bXz.b.o.bXz.b.bXz.bXz.b NXzXgXzXj ~XjX*.^Xj.r.k.o.b.b _.o.c.o.o.k.r ~.8.8 3XXXXXM.lXM.g [ WXp.N.M 8.M $.aXGXBXJ.9 tX,.}.M.aX- 3.`X-X-XD t.* t U CXe.sXbX6XC H s s t.eX-X-.~X-X1 B 3XIX- aX-.e R.eX- 1.2XlX,XDXl : :XD h c 1 3.a RXD B.aX1X, R R R a.aX,XD R.a.n s.' T.~.`.`.`.8.rXjXtXj.r.bXz.b.bXzXz.bXz.b.b.b.b.b.bXz l.bXz.cXg.c.c.c.c.c.cXgXg.U.c.V.oXg.#.V. XgXgXg.b.o.b.^Xg lXd.XXz.^.o.b.^Xt e.rXt.r ~Xt.rXt.r.z.R.X e.r.r.r.r.rXtXtXo.X ~Xt.rXd.IXgXzXz _ _.oXgXg.cXg.o.cXg Z.I.U.c.c.o.o.o.cXgXg.oXg.VXgXg.VXg.VXgXgXg.VXg.c.VXg.V.oXg.o.^Xz.b.^.bXgXdXV.r 3 xXc x.< vXnX2XpXp JXGXnXGXnXn JXnXnXGXG y !.j.j &XU.jXm yXC.; H.4X8Xf.<Xf.C.x W.<.F ._X#XZ ` | D #XJ 1XK ` 1 k $.a ` [ =XU.'.Z.w.n.0.' ' T.'XP 'X1.`XV.8.8.8X9Xt.rXt.r.rXtXt.r.H.`.`.w.s.N.) C.a.a.a c < x 1 C.wXG.9.aX* ~ ~Xz.b.b.b _Xz.bXzXzXz.b.b.^.b.b.b.X.b.bX X@./ q.RXt.`X*.r.XX*XtXt eXj e.r eXj NXj eXt.k N.^.:.^Xd eXt.rXjXj.bXg _XzXzXz.X.b.I.7.^.6.^.b.b.bXz.b _ _ _.bXz.b.oXgXz.7.6 A j.IXg.c.c.c.c.c.c.c.c.c.V.o. jXg.oXz.^.r.r.z.^.^.o.oXz.Q.cXg _ ZXu.b.c.c.c.VXz.V.c.#.U.cXg.#Xg.:Xu.c l lXg.c.o.#.U.c.#.#.#.#.U.c.V.c.c.VXg.c.c.V.c.U.c.c.V.cXg.V.c.o.c.c.#.VXg.V _Xz _Xj ~ e.r.r e e.^Xz.o _Xz.o.bXgXgXk./.t",
+"Xz.bXz.^XkXz NXz.b.b.^.b.bXz.b.b.^.b.b.bXz.^.b.^Xz.b.bXz.b.b.bXz N.o.rXj eXg.^.rXtXjXz NXzXz.b _.c lXg.o.^.kX*.8 3.8XJ ` Xq [X<X2.@XG x x.~XD.w.wXK.9 x $.eXD h < < $.,XIX1X,X, x.M.}.YXq v . 0 w &.EXG R R.eX-.`.e.~X- RX1 aX- a a B aXc :Xc.' D 1 B., :XJX5XJXKX. aXIXD a.aXDXD.a.a RX,XDX, hX,XD.w TXU.Z R.`.`.`.8 ~.rXtXt eXz.bXzXz.bXzXz.b.bXz.b.b.b.bXz.U.b _.o.cXg.cXg.c.VXg.V.V.UXg.o l.Q.I.6. XgXg.c.o.b.oXz N l.b.z AXg.^ N.^XjXt eXtXtXtXt.XX@.R N A.RXoXdXt.r.r.r.rXV.X ,X@./X@.A l.^Xz.XXzXzXg.c.c.IX& X.U.tX&.XXgXg.VXg.V.b.cXgXg.VXg.o.V.oXg.VXg.o.V.o.o.V.o.V.o.V.c.VXg _Xz.o.bXz.bXjXd.r ~.}X3XpXGXe p.YXp.YXGXq sXqXq v._Xq v..X4XpX4.x.j W H.; H S H w.@ ^Xf.4.{.4.{ ^.@.-.[.g.,.S., [XH.9 xX.Xc.-.YXc.O :X, 1.YX. =XcXP.D.DXD $ T.!.n.0 m BX1.H F ~.r.kXj.^XtXt.rXtXdXtXV.r.8 RXeXL.N E tXDXDX- $X,.a h tXs s.'.aX*Xt.rXzXzXz.b _Xz.bXzXz.bXzXz _Xz.b.b.bXz.X./.f qXx V.8 3.k.rXkXk.k.rXt.r e eXt e.^Xt eXtXt.XXg.:.rXd.r.r.rXt.^.^.cXzXzXz _.XXd.6.: d.6 NXz.bXz.b _Xz _Xz _Xz _.b.X.^ jXk.z.7X&.b.c.c.V.c.c.c.c.c.c.oXz. Z.^.o N.^ e ~.^.o.cXg.b.o.#.o.cXg.7.7.c.U.c _ _ _.c.#.U.U.U.c.oXg.Q j.U.I ZX&. .c. .#.U.#.#.#.c.#.V.c.c.c.oXg.c.c.c.V.c.V.c.c.c.c.oXg.V.c.U.c.c.c.V.bXz.b.^Xt.rXt e.r.r e eXjXz.^Xj.b.o.^.^.k ~",
+".^.b.b.^Xg.b N.b N.^Xz.b.bXz.b.b.b.b.b.^.o.b.^.oXz NXz.bXz NXzXz.^.o e e.rXgXk.^Xj.^ N.c.U.bXz _ _.o.U.c N./.f.K.8.u # VX3 1X<XpX2 H._XsX,.Z.MX,XlX,.w TXw.9.9.W.} hXHXK.] !XK.9 XH UXKXq.9X> H M.E M x.M.eX-X-.~X-X-XIX-X- a a a a a B a.e.aX, RX-XIX1 BX- 3 3 3X- a.` hX-X- R RX,.aX,X, hX,.M t $.wXP.0 BX-.`.`.`.8 ~Xt.rXtXtXzXzXz.bXz.bXzXz.b.bXz.b.b.bXz l.b _Xg.V.cXg.c.V.c.U.c.cXg.o.UX&Xu.U Z.z.cXgXgXg.U.b.b.o.z Z l A.7.b.b.b.^Xt.r.r eXtXtXt.:.X.uXkXkXj ~Xt.r.rX*.rX*.^X9Xx.:.X.^.X NXzXz.^.bXgXgXgXg.:.zXz j.I.XXg.o.oXgXg _Xg.V.VXg.o.VXg.o.c.o.c.V.o.V.c.o.V.c.VXg.V.o.o.o.bXzXz.^XgXdXt.H.r.` .9XqXp U u.MXe.M.a < t < t t t uXeXnXnXnXnXp.@Xf.C.@.@.CXi.v.BXi.{X>.P.s.s vX+ `XM 1 $.a R RX,X1X,XD R $ R $.FXc.1XH.'XKX,X1X; gXaXO DXU.0X1XI.`.8XtXt.rX9.rXt.rXt.r.r.r.rX* ~X-.wXe.).N R 8X1X1Xl xX, h.MX, v sXIXVXt.k.b.XXz _.b.bXz.bXzXz _ _XzXz.bXz.6 q.$XkXxXXX9XM.5.KXX.^X9 N.rXj e.r.r e.rXtXj ~.r eXt.^.R P eXt.r e eXt.^.^.UXz _ _XzXzXz i.o j./Xz.b.b.bXz _XzXzXzXzXz.bXz.b.U.:Xg.z.:Xu.c l.c.c.c.c.c.c _.c.oXzXuX .^.b N.^.r.r F e.^.o.o.c.#XgXgXu.6.:.cXg.V.oXz.V.c.#.U.c.c.c l.U.# Z.:.U.6.U.c.c. .c.#.#.#.c.#.c.c.c.V.V.c.c.V.c.c.V.U.VXgXg.c.c.V.c.cXg.#.c.c.o.VXz.^.b.^ e.r.rXt.r.r e.r e e.r e e.^ N.k ~.r",
+"XzXzXzXz.o.oXz.b.b.bXz.bXz.bXz.bXz.b.b.b.b.b.b.bXz.b.b.bXz.b.b.b.^.XXtXj.^ eXjXz.o NXg.UXz.b.o.^Xz.oXg.cXkXg.$.&.A q 5 DX# [XZX4X6 SXn p UXeX,X, h xX5XDX, 1XK Xl x 3XVX-XIXI R.M.M.}.d.M t.d vXi.@.; 'XDX1 3X1.a.a.a a.eX-.eX-.eX- a.eX- aX-XIX-.a 3 3XI 3X-X-.aXI a.a :X- a R RX,X, hXDXD h.aXD $.ZXm :.`.~.8.`.~ ~.rXtXtXt e.b.^ _Xz.bXzXz.bXzXz.^ _ _.^ _Xg.o.b l.cXg.c.c.o.V.V.V.U.V.V.cX .: A.IXkXg.o.c.c.cXg.b.b.:.RXoXz j.oXg.^.^.b.^.^XdXj.kXt.:XtXdX9.^.r.rXtXt.r.u.r.r N.r./.(.^.X.^XzXzXz.b.b.oXgXk l.:.t.R j.X.o.X.oXg.V.o.oXgXg.c.o.VXg.oXgXgXg.c.VXgXgXg.c.VXg.c.VXg.cXg.o.bXz.^Xz.oXd e.r.H.8.8.Y.9Xq x u t.MX,X1.u.a 3 c.e <.* tX, xXq vX4 > ^ wX6.sXb 0X= -.v.PXiX= p.) pXrXn # #.lX5 aX- R BXDXD.wXIX1XDX, $XMXc.1.>.'Xc 8XU.O.n ' g.2 $.`.`.8 F.H.rXt ~ NXtXtXt.rXt.rXt.rXt.` :.'Xa.=Xs.M R R RXcXc h hXs y.w.wX,XV.rXt.bXzXz.XXz l.^Xz.^.bXz.b.bXz.b.^./.$.$.f VX3X3X3XX V.f.$.k.kXtXt.rXtXt.rX* ~.rXt e.r.r N././.^.^Xj.r.r e.bXz lXzXzXz _XgXu Z.b l.UXzXzXz.b.bXzXz.bXz _Xz.b.c.U.t.7.#X& Z.c.U.V.c.c.o.c.c.c.c lXz.^.7.U.b.b N.^.r F ~ eXz.bXz.U l.c.IX&. j.UXg.o.b.V.c.U.#.c.c.U.c.c.c i.U Z ZXu.c.c.c. .#.#.c.c.#.c.c.V.V.V.c.c.c.V.c.c.c.cXg.V.c.c.VXg.V.c.c.#.c.V.c.o.b.bXz.^XtXt.r.r.r.r.r e.r.r e.r.rXt.r.r.8.8",
+".^XzXz.^.oXgXz.b.b.bXz.b.bXz.b.b.bXz.bXz.b.b.b.b _ NXz.b NXz.b.b.b.o.r N.#.^.^.b.b.^Xz.o.bXz.b.oXz.b.o.c.UXgXgXk N NXt.r.u.-XpXn ..4.. v U h :XDXD.nX, $.w h.a x.S VXK.Z B.e.* R.M u E p E *.) 2.B w H.nXI.~X-X-.a.a.e a.eX-XI.eX-.eX-X-X- R.aX5XI 3.~.e.~.e RX- a 3 aX, c a.aX-.*XDX,X,X,.}XD.a.a s.w gX9.e.H.~.`.`.8X*XtXt.rXdXz.b _XzXz.bXzXz.b.b _Xz.^ _.bXg.o.o.oXg.c.V.c.V.c.c.V.o.c.U l.U.A j.(Xg.U.c.oXg.c.o l.b.:Xg N.X j.o.^.^.b.b.^.b.^Xo.b.X 7X* ~ ).kXtXtXt.r.r.r.r.k N ~ f.I NXz.b.bXz.bXz N.oXgXg.z.:Xz l.:.o.bXg.V.cXg.cXg.c.cXgXgXg.VXg.VXgXgXgXg.c.o.o.o.V.V.o.V.c.c.c.oXz NXz.^.XXd.r.H.8.8.a c.-XGXG u a.MXD R.KX*XI aX-.eX-.e t.* < <..XG ^.{XiXb.W.s 2.sXFX=.).) *.).d.pX+.l.S :.ZX3 :X, m B DX, m #Xc.,.,XH kX; n.9 s.aX1.0.n.0XO T.~XI.8 F ~.r.rXt.r.XXtXt.rXt.rXtXtXtXt ~.HXD sXs.= 8XDX-.aXD.[XHXrXp.OX. D D.$.& A AX A d.& d AX .IXzXzXzXzXz.b.X.^ NX* 3 c 3 cX*.uX* N.k N N.b ~Xt ~Xj ~.r.^ e.r eXt.r.r.r.r e.z.6.U e e.b.b lXz _XzXz _.^Xz.^.o.^XzXz.b.b.bXz _Xz _Xz.b.o.c.Q.U.Q.I.6Xg.cXg.U.c.V.c.c.c.c.o.c.c.#.7 i.b.b.^.b ~ F.r eXz.bXz.U.z i ZXg.U.: d.#.bXz.o.c.U.U.c.c.c.c.c _ d.c l.:X&Xg.U.#.#.#.V.#.#.#.c.c.c.c.c.cXgXg.c.c.c.c.c.V.c.VXgXg.c.V.c.c.#.cXg.V _XzXz N.^Xt ~.r.r ~.rXt.rXt.r.r.rXt.r.r.8.8 F",
+"Xz.bXzXzXz lXzXz NXz.bXz.bXzXz NXz.bXz.b.bXz.b.b N.bXzXz.b.bXz N.^ N e e.X.^.b N.o.b.b.^.b.b.o.b.oXzXz.V l.UXk.X.b.k.r ~ 3XDXhX8.;X8XpX4 x E x 3X,XV $X, xX, $ a.M.9.-.-XU v.j.) p.)Xb {XbXb.BXb { w.j.' RX1.e.e.a.e hX- c.eXD.e.eX- RX- RX-XIXD.~ aX-.e.~X-.e.~ a 3.~.e.Z a R tX-X,X,.aX,X,XD.M R.W.n T.0X-.`.`.`.` ~Xt.r.r.rXdXgXz.^.b.o.bXz.bXz.b.^.b.o.^.oXg _Xg l l.V.c.VXg.VXg.cXgXg.o.6X&.o.z.:.U.oXg.c.c.o.U.bXz j AXx.t.&.b NXz.b.b.bXz.b.^ NXk.7XtX5.z ~ e.r.rXt.r.rXt.8.X N.:.I.X.^.^.bXzXzXz.b.b.o.X d.7.XX@.7 lXgXgXgXg.oXg.V.cXg.o.cXgXgXg.o.o.V.oXg.o.o.V.VXg.VXg.o.VXg.oXz.^.^.b.k.X.r.H ~ ~.8.} a.Y 1.Y x a R R B.`X1.e.` aX-.e.a.a R a t EXp . wX6XF.N.W.* u.wXq._ C t u pX4.p XH xXc., $.,XlXJXlXc T :Xw 1X#.- = ! gXG x.n.w.0XO.ZX1.H.e.8.8 ~ eXt.r.r N.rXtXt.r.rXt.r.r.r ~.`.aXGXsXs.M 8X1XD R hXh.YXp 9XwX5XJ )XxX@.t l A.t l.z.Q.Q.I.^Xz _XzXzXzXz.bXt e.r.r.rX*.r.k.^.X.^.^XgXd eXj e ~ N.^.r.k.rXt.rXtXV.r.r.r.b.X.^.rXj N.bXgXz.bXzXzXz _Xz.bXzXz.bXzXz.bXzXzXzXz _Xz.V.V.o.U _Xz l. .o.cXg.cXg.V.c.c.c.U.c _XzXzXz.^.b.b.bXt.r F e eXzXz.b.#.c.I iXg.#Xu. XgXz.o.c.U.U.c.c.c.c.c.UXu.: i.V iXu.c.U. . .#.c.#.c.c.c.V.c.c.cXg.c.c.cXg.c.c.V.V.V.c.c.VXgXg.o.c.U.V.o _XzXzXz.^Xj.r ~ ~.8 ~ ~ ~ ~ ~ ~.r 3.r 3 ~.8.8.`",
+" NXz.bXz.^ l.^XzXz.bXz N.bXz.b.bXz.b.bXz.b.b.bXz.b.b.bXzXz.bXz.b.b N.z.^ e.^.bXz.b.^.oXzXzXg.z.b.bXz _Xz _.cXk.c NXzXj ~.`X,.9X0 S w.T n z xXl x.DX, 8Xl.3.9 x 1 h.M u 8XqXrXrX8 ^ {Xi L {.P.P.BXi.4 M.>.0 T :X5.9XKXc :Xc.eXIX-X- R.~X- RX5.e 3X-.~.eX- R.eX-.eX-X-X,X1.ZX- RX-X-XDX, RX,.aX-.M.a.D.wXP.] F.~.`.`.~XV.rX* eXdXdXz.b.b.bXz.^.^.bXg.^.b.b.b.b.^XgXg l.o.c l l.c.oXgXgXgXgXgXg. .f.&.tX@ lXg.o.c.oXg.c.bXg.zX@X@.z NXz.o.^Xz.b.bXz.^.^.^XtXx.RXk.rXtXt.r.rXtXt.rXtXtXg q./.RXzXg.bXz.bXzXzXz.b.bXz.I q l. ./XgXk.bXg.c.o.VXgXg.V.VXg.cXg.c.oXgXg.c.V.o.VXg.o.VXg.V.c.o.o.b.b.bXzXzXt.^.r F.`.8XI.8.a 1.Y nXw t < RX-X-.`.e a RX1 R R t.a a.*XeXpX6.{.PXb U U a < a <.M a C tXeXn.xXB .l.l.a.a RXIX- R.ZX,X, $.}Xl VXc =Xw g.n $ '.0.| @.Z.K c.k.8 ~.rXtXtXtXt.X.rXt.rXt.rXt.rXt.r.`.HXD vXa.W.W RXlXlXl.* $Xe..XL.9.~.K.u N NXj.bXzXz.^.b.^.^Xz.bXz _Xz _XzXz.oXj F.8 ~XV.rXt.r.X.b.X.bXjXj e e ~.rX@Xk )Xk q ) qXxXx qXxXt ~Xt.r.rXt.^ N.o.^Xz _.oXj.b.oXzXz _Xz _Xz _Xz _Xz.bXz.b.V.cXg.c.o _.b.#.c.c.b _.c.U.o.cXg.c.cXzXz.oXz.o.b N.^Xj.r F ~.^.bXz.o.IXg.c.o.U.c.c.o.b.bXgXg.c.c.c.c.c.VXg.UXg.V.c.#.U.U.#.#. .#.U.c.#.#.c.c.V.c.V.V.c.c.c.V.c.V.c.c.c.VXg.c.o.cXg.o.U.oXzXzXzXzXzXzXj.r ~.8.8 F.`.8.8.8.8 F.8.8.8 ~.8.8.8.8",
+"XzXz.b.^Xz l.bXzXzXz.bXz.bXzXz.b.bXz.b.bXz.bXz.bXz.b.b.bXzXz.bXzXj.^.IXg.^.b.^XzXz.^XzXz.^.c.U.b.bXz _ _ _.o.oXkXkXg NXt.H BXG 0 *..X0 M.Y xXe 3X, $X5XcX;XwXUXc xXG 1.p.pXf.@X:X8 ;Xf.4 L L ; L.P.4XmXcXDXd 8 $X,.MX,XD.uXI.eXDX-.~X-X-.K.u.e.u.e RXI.a.~.e R.eX1.e BX-XI BX- R RX1 hX1 c a a.M.ZXG s ! : B.`.`.`.`.H.r.r.uXtXtXz N.b.b.b.X.b.b.^.^.oXzXz.X.b.o.o.o.bXg.o.oXg.c.oXg.cXgXk.b.XXg.b.b.oXg.o l.o l.cXzXz.bXgXd.^ N.b N.^Xz N.^.^.^ e e e.rXt.rXkX9 N e.r.r.r.rXt.r.kXx.^.^.^.^.^Xz.^.b.bXz.^.^Xz N.b.oXgXg.o.oXg.cXg.cXg.o.oXgXgXgXgXg.VXgXgXg.oXgXg.cXg.V.o.b.b _.b.bXzXzXz N.^ e.r.^.r ~.H.8.H 3.aX,.- y n.*.M R R.eX-X-X1 hX1 BXD R R a <XeXp ..4.PXF *.MX-X-.e 3.~ B a.* C.sX4.j x.i.i t.a.e a 3.MXD.ZXs h hXB.9Xw.>.! y.GXy @XU gXJ 5 (X9.K.r.r.r.r.rXt.^.rXt.rXt.r.r.r.r.r ~ 3 B v 2.N U t.ZXc U.M U.W bXGXlX1X9Xt.^ NXg.^.b.X.I l.^.^Xz.b l.b _.oXzXx.^ N ~ F ~.r.r.X N ) N.b.XXdXjXtXtXt.rXXX3.$.,XX ).$ D.$ (.5.r.rXt.r.rXtX* N.^.^.^.b.bXzXzXzXz _.b.bXz.bXz.bXzXzXz _Xz.b.V.cXgXz.o.o.#.o.oXz.U.c.V.c.c.V.c.oXzXz.^.b.bXz.bXj ~ eXt e.^Xz.o.c.U.o.c.cXg.VXg _.o.o.cXg.c.c.c.c.UXg.c.c.U.c.U.U.c.#.#.c i.#.c.#.c.#.c.V.c.c.c.V.c.c.VXgXg.c.c.VXg.VXg.c.o.cXgXz l.bXzXzXzXzXzXj e ~ F.8.8.8.8.8.8.8.8.8.` F.`.8 F.`.`.`",
+"XzXzXzXz.^Xg.bXz NXzXz.b.b NXzXz.b.bXz.b.b.b.b.bXz.b.b.b NXz.^.^.r.^.b N.^.b N.bXz.oXz.b.b.oXz.bXzXzXz _ _.b.bXk.cXk.bXt.HXD x b.)X=X2 vXe.w $X,X,X,.ZXD 'XlXJX.Xw.-XpXnX>.x ;Xf ^Xi.BXi.B.B.P L.C H.Y.nX1 B.e B t t aX- R.eX-.eXIX-.e :.G.uXl.,Xl R c.] `Xl 3Xl $XlX5XlXJXK.'.H 1 3XD RX, a R R $.n.'.2X1XI.H.HXI.H.H.kXt.^Xd.^.XXz.b.X.o.b.o.XXgXg.XXxXg.oXx l.UX9 l.XXg.U.I.U.I.U.U.z.I.I.U.I.I.z.#.U. .#.Q.Q.Q.z.z l. Xk.zXk.z lXk l l l l.UXg.X.^.o NXgXx.R.z.X N.X N N.X NXg q.zXx lXk l l l l.U l.c.U.U.U.z.I.Q.U.I.#.#.#.#.#.I.#.U.#.I. .#. .I.#.#.#.#.#.#.#.I.#.U.cXg.c.cXk l lXx.oXz.^.^Xx.^Xt.rXt c.u c 3XcXc =.M hXDX1.Z cXl $ 3 $ $ $.w 3 U.M x.jX>.4 ;.. v $X,.H #X5XD 3XDXDXe vXnX> W.gXB ` h 1 cXlXJ s x 1 1XwXJ.[X;X;.!.0 ! ! '.Z.5.HX*.K.k.k N N N.^ N.XXxXo.^ N.k.K.^ N.^.kXtXVXD yXnXpXG $.ZXI.Z.ZXL v.@XG.ZXV.5.^.X.X.b.b.b.b XX d AX&Xk.IXx.IXkXk.I.I.k.rX*.H.rX9 N N.z lXo.o.XXt.r.kXV.8XX c.K h 3 $ ) c.k.u.rX*.r.r.r.rXt.r.^Xt.kXj.^Xz _.o _Xz _Xz _XzXzXz _Xz.b _XzXz.VXg.cXgXz _.c.UXgXz.V.cXg.o.c.cXg.c _.b.oXzXz.b.b.^Xj eXkXk.b.^.bXg.U.U.o.cXgXg.c.c _ _Xg.c.U.c.c.c.c.c.cXg.c.c.V.c.#.#.#.U.#.#.#.#.#.c.#.U.c.V.V.c.cXg.VXg.c.V.c.V.c.c.cXg.c.c.o.oXzXg.^Xz.b.b.^Xj e e.r F F.8.8.8.8.8.8.8.8 F.` F.` F.`.`.`",
+".^XzXzXzXz.oXg.bXzXz.bXz.bXz.b.bXz.b.b.bXz.b.bXz.b.b.b NXz.b.^ e.^.X.X e.b.b.b.b.^.bXzXz.b.bXz.o.^Xg _XzXzXz.bXgXk.UXkXj.rXIXDX> 2X= & y 1.-X,X,XI.uX,XV $X,XD.ZX, R u.)XbX6.P.BXFX= /.v.)X= -.P ^X0X0X. 8.DX-X,XDXDXI RX- 3X1XIXI.uX-X3.%.3.,.%.%XK :.-.,X.X.XcXJXJ IXw 5.,.% : mXK x.K $ c $ c g g.>XOX5 '.k.u.k.uXoXo.5.^.^.b.X A ].z.X.XX@Xg Q.Q.I.z.z q l ] (.^Xd.rXx A iXk l l.&.6.z.z./.z l.I./.I.c l l.cXg _Xz.bXk.b N.o.^.b.b NXz.bXz.^.^.b.^ e e ~ e.rXj.r ~.r.r.rXt.r.r N.^.b.^.^.^.^Xz.^Xz.^Xz.b.o.o.cXg.bXg _.V.c _.oXg.o.o.b.V.o.o.o.o.o.o.o.o.b.o.o.o.b.bXz.^Xz.^.^XzXz.^Xj e.r.r.r.^ ~ F.` F.`XIXI a cXK.j.a.e a RX,X- a.eXD 3 a B.a.e a.e._XnXn ; {XF.M.eX,XV.`.HXI.H B.e tXe._.. .X+.Y $X< :X.Xl #XJ x v.9XB., [Xw.OXm.nXa.0XUX1XI.~.8.8.8.8.kX*XtXtXt.r.k.kXt.kXjXjXjX*XjX*XjXVXI.D v.WXe.M hXlX5Xl.wXGXG 0 y 3XoXxXx.U lXgXk l.z d.z.t.t.IX@.&.& fX .( f ,.R P q f f.| Q.t Q Z.f P.& QX@ ] ) cXJ IXJ |.,XJXc.,.$ q.$ qX9.XXxX*.kXt.5XtXjXj N.b.bXzXzXz.bXzXzXzXzXz.^XzXz.^XzXzXz.V _.VXzXz.cXg.cXj.c.V.c.c.cXg.o.bXzXz _.bXz.b.^.^ e.r ~.oXk.^XzXg.#.UXgXg.oXg.VXgXz.VXg.V.V.c.c.c.c.c.c.V.c.c.#X&.c.#.# i.#. i.#.#.#.#.U. .#.c.V.c.c.V.c.c.V.c.c.c.VXg.c.c.o.b.bXzXg.^.^.^.^Xj e.r ~ ~.8.8.` F.8.8.8.`.8.8.8 F.`.`.`.`.~X-",
+"XzXz.^Xz.b.bXgXz.bXz.b.bXzXz.b.bXzXzXz.bXz.b.b.b.b.b.b.b N.^.^.r.rXd lXj.^.bXzXzXz.^.bXz.^.^.b.^.b. .UXz _.o.X.b.o.U.z.oXtXVX,XK 2.s.j MXeXK 1 c hX5 $ x $ 1 x :.' sXeXpX6 ;.4.v.. O.s v.s.v 2Xi.@ H.+ y.2 D.,.-XJ.- h RXD R R.a RXV R.5Xl.K RXVX,.e cX5X1.MX-.a.u 3.a.uX-X-X-X-.eX-.~.Z B aXI 8.9XPX..] D ).$ (.RXx.$XxXk ~XtXjXd.RX@ A.RXk.t N./.RX@.& Q.t.&.t.f.8.r.rXg.R.AX&.(.zX&X&X&XuX XuX .cX&X X&.U.c.c.c.o.b.b.U.^.^.b.o.^.b.b.^.bXz.bXzXz.^Xj.r eXt e.r eXt.rXt.r.r e.r.XXjXj.b.b.^.b.bXzXzXz.bXg.c.c.o.V.c.c _Xg _ _.o.c.oXg.V.c.cXg.oXgXg.V.o.VXgXgXg.V.b.bXz.b.^.b.^.^.^Xt e.r.r e.r.^.r ~.8 FXI.8.8.8XIXKXG.Z U.9Xl R :.M `XK xX5 mX, ` <.9.iXp.@.{ {.d.W UX5X-X-.~.~.HX-.uXDXe._.).mXn.p.F 1 x k.-XJ n.3XcXH.3.1Xh.G @.w.nXL.'XPX1X-.8X-.8.8.8.rXtXtXtXtXtXd.^XtXtXtXtXt.rXtXt.u.8.H.n.s.).) UXwXcX, $XL s.s o v.`XV.b N.^.b.bXz.bXzXd.X.^.^Xz.^.^.XXt N N.^ FX@ 7 qXk.$.z.I.R d.R.R.I (.I ].R )Xt # c #Xl # :XM.5X9.5.5XxXo NX9Xo N.kXk.^ N.^.b.U l.U.c.#.U.c.U.U.c.U l.U.U.c.U.U.V.I.I.UXg.c.6.#.V.U.U.U.U.c.c.c.o.bXg.b.^.oXzXz NXj e ~ ~ ~.rXz.^.o.c.b.o.o.c.cXg _ _ _.c.c.cXg.c.cXg.c.c.c.c.V.#Xu. .# iXu. .#Xu i.#. . .U iXu.#.c.V.c.cXg.c.c.c.c.c.c.VXg.c.o.b N.bXgXj.^.rXtXt.r.r.8 F.8 F.8.8.8.8.8.8.` F.`.`.`.`X-X-X-X-",
+".^.^Xz.bXz.^.c.^.^XzXz.^Xz.^.^.^Xz NXzXz.b.b.b.b.bXg.b.b.oXg.^.^Xg NXk.bXkXgXk lXk.c.U l.U l.U.U dXu.z.U l d d.t.R.t.t Q q.]XJXwX>.) &.j.M E.M hXD h 3X,.MX, $.a hXD.).).BXf { - * C.* 8 t.*.N G 2 wXmXc $XD RXK aX, cXD.~.~X- B.~X-.` cX5.`X- RXI a.e a R aX-X-X-.uXIX3.u.aX-.~.aX-XI.ZX- BXD.9.' g.2X1 DXo ) q 5.$X9.$.&Xt.r e.k.^ N.^Xj.^.^.k.bXgX9.bXxXg.XXx.X.r.8.8Xt.X.U q.#.U.U.U.#.U.U.U.c.c.c.#.U.cXg.cXg.o.oXz l.b.b NXz.bXzXz.b.b.bXz.^.b.b N.^.^XjXjXt.r.r e.rXt e.r.r.^Xj.^Xz.^.b.bXz.bXz.b.cXg.V.VXgXg.o.V.V.cXg.o.cXg.VXg.oXgXg.VXg.VXg.oXg.c.V.o.oXz.^XzXzXz.^.^.bXjXj eXtXj.^.^ N.X ~.r ~.H ~.8.` 3X-.9.'XJ hXc.- x.OX5 |X.X5 xX.XKXK xXHXpXnX4 w %.).W $.a.e a a.e.u.e 3 3.a u.)X= ..jXM.l h.a.aX5XD $.}.} ` `XH n.9Xa.>XPXP g.5.`X-.`.8 ~ ~.u.r.r.rXd.H.^X5 e.rXt.rX*.rXtXt.r.8.ZXL.=.).N <.}.u.aXD.M O.sXG U.8.k.X.bX .I./Xz NX@ d NXz.XXg.X.XXtXtXj.^.b.rXjXk e.X.^.b.^XzXg.b.^.^.b.XXg l.r.rXt.rXt.r.r.r.r.r.u.r.r.r.r.r.r.rXt.r.k ~.r e eXzXzXzXzXzXzXzXzXzXzXzXzXzXz _Xz.b _.o.V _ _.U.6.U.c.U.U.U.U.c.V.c.c.c.c.U.U.U.U.U.U.o.b N.b.bXgXk.#.U.I.c.U.c.#.U.#.U.U.#.#.U.#.c.c.c.U.U.U.c.c.V.c.#.#.#.#.# i.# i.#.U.#.#.U.#.#.#.c _.c.V.V.c.c.c.V.c.c.cXg.c.bXzXzXk.^Xj.rXj.rXt.8 ~.` ~.8.8.8.8.`.8.8.` FX-.`.~X-.8X-X-.~.`",
+".o.oXgXgXgXg qXg.c lXk.cXk.U.U.U.U.U.U l.U l.c.U.c lXgXkXg.b.^.^.b.kXg.X.o.b.o.b.b.b.bXz.b NXz.b N.o.^XzXz.zX@ f.& Q.t Z.& qX3.jXG.) WXr E.M t h.}.}.MX,.}.M U x.MXD pXbX6 L {Xv.N.*XlX1 8 R C.) 2 ^X;Xm.w R.ZXD ` < cXV.eX-.*X-.~.eXV.K 3 3XI RX1.e aX-.e.e R a.~.e.u c cXI.eX1.eX1X,.*X1X-.w TXcXO $X1.u.`.r 3.r.r.HXtXt.^.^ N.k.^ NXj.kXtXtXj.^ N N.b.b N.b.z.$ c.u.r NXkXk lXgXgXg.V.c.c.cXg.cXgXg.cXg.oXg.V.cXgXg.b l.^.b.^.b.b.b.bXzXzXzXzXz.^Xz.b.bXz.^ NXt.r.r e.r.r e.r.r.b.^.^XzXzXz.bXzXzXz.b.cXgXgXg.VXg.V.cXg.V.V.V.cXgXg.V.oXg.V.o.o.oXg.oXgXgXg _XzXz.^Xz NXz.^.^XtXtXj ~XjXdXz.^.I./.XXd.r F.8.8.8.`XI.u.jX;.i.M CXD.Z h.aXDX,X,.wXDX,.M U.jXnXf.CXfXe.W.9XM 1XlXM c TXXXJ :XM x.@.s vX+.F xXM.l 3 hX,.a 3XXXMX3.,XUXl sXaXOXPXU '.~.8 ~.` ~.k q q )XkXxXo.kXt.rX*XtXj ~XtX* ~ ~.H sXs /.N C UX, cX,.M s 2XL.9 a FXoXg.^.t.t.tXg A.t A P QX@.&.(Xg P N e e.^XjXj.r.b N.^.b.oXgXg.b.bXg l i d d e eXt.rXt e.r e.rXV.r.r.r.r eXtXt.rXt.k N.r e e eXzXz _XzXzXzXz _XzXz _Xz _Xz.bXz _ _Xz.bXz _.U.#.c.V.c.cXg.oXzXzXzXzXzXzXzXzXzXzXz.^ e.r e ~.r.^.bXgXz.UXz _.b _.U.U.U.U.U.U.U.U.U.U.#.#.#.#.#. . .# i i. i iXu.#. . .#. . . . .U.U.c.c.U.U.c.c.c.V.cXg.c.c.cXgXz.^.^Xg e.r.r.r.r 3.8.8 3.`.`.8.`.8.` FX- FX-.`.~ 3.~.~.`X-.8.~",
+".o.o.o.o.b.o.UXg.b.b.b NXzXzXz.^XzXz.^.^XzXz.^XzXzXz.bXz NXj.r.r eXt.b.X.b N.b.^XzXzXzXzXzXz.b N.b.b.b.o.^ N.X.QXo.oXg.6 N ~XI 1Xn.) 0 &X>XG._.W.W <.M U.M.WX,Xe._ u - - { ;.BXv C 1.>XK.a t.*.N / 0 = =X;XK.Y.-.-X..aX-.~.~.eX-X-.eX-.u.eX-.`X, 3 BX-.e R.eX- aX- aX-X9 R.K.}X-XI.aXDX1.M.*.Z.0XPXJX1.H c.8.k.rX*.r.k.rXd.5 NXz.^.b N NXg.^ eXj.b.b.b.b.b.b.o q f.$ 5 5X@.f lXgXgXg.c.c.c.V.c.V.cXg.V.o.o.V.VXg.cXg.c.o.UXzXzXzXzXzXzXz.^Xz N.b.b.^.b.^.^.^ N.b e.r.r.r.r.rXt eXjXg N.b.b.^.bXz.bXz.b.oXg.c.V.c.c.c.c.VXgXg.VXg.VXgXg.o.o.oXg.o.V.o.VXg.o.V.o.bXz.^XzXz.^.^.kXj e.r e eXd.^Xz.b.^ l.k.r.r ~ ~ ~.8.8X1 B 1.' x.M.aXD.aX- tX- R RXDXD RXe.-Xr.. H S.4X0XsXD.WX,X7 h 1 #., cXlXK xXnX4X2.EX+ .lXM 1XK.}.} c.lXX.-XH g $.w.D ' '.0.0.`X-.8.8 3.X.$ q q D q.HXdXdXtXt ~X*XtX*Xt.r 3 $.w.=.= u.W `XD.} c.M v O b xX- ~.o.XXz.U l.UXgXx q (XkXx.z.z q NX ./ F.r.^Xz.^.^.X.b.^ NXz.o.b.o.z.6X& A.z _ ~ e e.r.r.r e.r.r e.r.rXt.r F e F e ~.kXj e.r eXj _XzXz _XzXz _XzXzXzXz _XzXz _XzXz.bXzXz _.o.U.U.c.c.cXgXg.VXzXz _.b.b _.b _Xz.b.^Xz e eXt e.r.^.bXgXz lXzXz _ _.oXgXg.V.cXg.c.c.V.V.c.cXg.V.c.c.c.V.#.c.#.#.#.#.U.#.U.c.#.#.#.#.c.U.U.U.U.#.U.U.#.U.#.#.#. .#.I.U lXk.I.b NXz.kX*.r.8XV.` ~X* 3.r.` 3.8.`X-.`.e.`.e.`X-.~.~.`.~",
+".b.b.b.bXz.^.o.oXzXzXzXzXz.bXz.bXzXz.bXz.b.b.b.b.b.b NXz.^XjXjXt.r.r.bXg.^Xz.b.b.b.bXz.b.b.b.b.bXz.b.^.o.bXz.^.X.b.oXg.z NXtXI x JX= 0 w &Xf v.W u.W._Xe.N U.N.) p._XF.B {Xf.B.).N U aX-.a R t C /.NXC.j s.WXDXD UXD.~.eX-.~ B.e.eX-.~ 3.~X-.eX- cXD a RX-.~.eX- a.`.e # c.~XDXI R.e B.D R.DXl.wXU.0X-.`X*.`Xt.r.r.r ~XV.^.b N.b N.b NXz.b.b N.o.b.b.b.b.b.b.bXg 5.z./ q q.z lXg.o.V.c.c.c.V.c.c.cXg.c.V.cXg.cXg.o.VXg.o.UXzXzXzXzXzXzXzXzXzXzXz.^.b.b.^.r.^ e ~Xt.r.r e.rXjXd.^.^Xg.b.bXz.^.b.bXz.bXz _.o.cXg.c.oXg.VXg.V.V.o.c.o.oXg.o.o.VXg.VXgXgXg.VXg.o _XzXz.b.b.^.kXt e.r.r.r.r e.^XzXz.b.^.X e.rXdXt ~.` F.8.`X-.w xXp 1 R a < R a R t $ '.M h.- M.h.y.y.+ H.@Xs.M t t a < < aX-.~X-.*.* < p.)XnX+.jXB.Y.iXBXM.lXMXM `.- g '.'.w B 8X5.n DXIXI.`.8.5.5X9 c.k ).r.HX9.rXtXtXt.r.k ~.rXV.uXK.W.WXs.NXw.9X, <XDXeXe vXG.}.8.r.X.b.b.b.^ NXx Z.RX@Xk.R.z qXkXxX*Xx F.rXt.X N.o.k N N.bXk.U././X@.6XxXzXz.b.r e.r.r.r.r e.r e.r.r.r eXjXd.zXkXx.r.^Xt.r e ~XzXzXz _XzXz _XzXzXzXz _ _Xz _Xz _Xz _XzXz _Xg.#.c.c.c.c.cXg.VXzXzXzXzXzXz.bXz.bXz.b.b ~Xj.r e.r.^.b.o.oXg.bXz.bXz.b.VXg.VXg.V.c.c.c.c.c.c.c.c.V.c.c.c.#.c.#.#.#.#.U.c.c.c.c.c.c.c.c.cXg.o.V.o.V.o.o.o.o.o.o.V.o.o.#Xz.bXg.^ e.r ~ ~ ~.u c qX*XIXVXV.K 3X,.uX,.uXV 3XVXD.u 3 x.uXM",
+"Xz.^.^XzXz.^.o.c.^Xz.bXz.bXz.b.bXz.^Xz.^XzXzXzXzXz.bXz.bXj.r.rXjXt e N l.^Xz.b N.bXzXzXz.bXzXz.^.b.bXzXz.b.b.^ N.b.b.c.c.o.k.8XD.EXv 0 0 SXC ^.s.s...s........Xn . .Xf.J.B.{.B *.).* tX,XJXc.* U.N.vXC 9.wXLXeXL U.Z.eX1.~.eX-X-X1X-.aXIX-.eX-.~XDX-.HX- B.e R.e.~ R.~XI.uX- RXD.D B R R 8.ZXK.'XO.0.`.`X*.H ~.rX*.r.uXd.rXo.b N.b.bXz.b.^XzXz.bXzXzXz.b.bXz.b.o qXkX9XgXgXk.c.c.c.VXg.V.VXg.V.o.VXg.c.VXg.cXgXg.V.o.c.o.UXzXz.b _ _.bXzXz.^Xz.^ NXz.^Xj e.z q.zXt.r e.rXtXj.b N.^XkXzXz.^XzXzXzXzXzXz.b.o.c.o.V.o.V.VXgXg.V.o.cXgXg.VXg.o.oXg.oXgXg.oXg.V.o.bXzXz.^.^Xj e.r.r e.r e.rXj.^.b.o lXgXg e.r.r.rXt ~ F.`XIX-.aXcXnXpX,.* RX- <X- `XHXw nXw.1 MX:.4.4 ^.v.W.*.9.- xXBXKXKXJ 1X..2Xc.9X+Xn M 0 0 ^.j.jXBX7.lXMXM gXU s.w.DX1.' R.nXa (.uX-.8XV 5 I.$.$ I q.|.k.KXd.uXtX*.r ~.K ~.HX5 s.NXs.NXDXD.9 RXD.M v v bXG B ~.r l.b.bXz.b.oXg././.f.&.f.f QX@ 5.8 F ~.r.k.X N.XXk.R.R.&.&.I.z./XkXj.o.^.bXjXj.rXtXtXtXt.r e.rXt e.H.r ~ eXgXg.X e N e e ~ eXz.b _XzXz _Xz _XzXz _XzXzXzXzXz _Xz.bXz _ _.c.#.c.c.V.c.V.o.bXzXz.b.b.b.b.b.b.b.bXz eXj.bXkXjXt.^.o.b.c.o.bXz _Xz.b.c.c.c.c.c.V.c.c.c.c.c.c.c.V.c.c.#.U.#.U.c i.#.#.c.c.c.c.c.c.cXg.o.o _.oXg.c.VXg.VXg.VXgXg.VXg. Xz.c.b.b.^.r ~ F.8.`Xt.$ ( ) qXV ) :.5.u : `X, h RXq.aXG.-Xp.Y",
+"XzXz.^.bXz.^Xz lXzXz.b.bXz.^.^.^ N.b NXz.b.b.bXz.oXz.^.b.rXj N.I.rXt.bXk N.b NXz.b.b.b.b.b.b.bXzXz.bXzXz.b.b.b.oXz.b.U.c.oXt.8XD y ^X=.@.@.;X> 0....XnXp....Xn._ .X4..XA.CXfXb * G.* R tXU h.e.N.)X=.E o.sXaXL.s.wXa.w.~X1X1X-.e.e.~ 3.e a.`.e aXIX- R 3 R.~ a.~ B.e B BX-X-X1X-XDX1X,.' T s s 'XK.0.~.8.k.`.kXtXt.8XdXd.r.^.b.^.bXz N.bXz.b.oXz.b.bXz _.bXz.oXg.I.UXg.cXg.V.c _.c.c.V.cXg.c.V.VXgXg.c.o.V.V.cXg.VXg.c.o.UXz.bXzXzXzXzXzXzXzXz.^Xz.^XtXj FXj e.r.r.rXt eXtXd N.b.^XgXz.bXzXzXzXzXzXzXzXz.oXg.VXg.c.c.VXg.VXgXg.cXg.VXg.o.o.VXg.VXgXg.VXgXgXg _XzXzXzXj e.r eXt.rXt.r e.^XzXz.o.#.I.z eXd.r.rXj ~ ~ ~.H R tXc.pXr.a.a a aXD 1.2XH y $XG.F.EX2XAX6Xi.)Xs C 1XKXK : U 1 :XlXl.9.- vXpX4 S.@Xv.vX6.;X+ n.-.-XBXwXw.'Xa.n t : c.0XaX5 gXl.8.H 3 ).KX*X*.k.u.5XV.5 ~Xg q ~.K.rXVXVXVX5XL 0._ u 8 R.~ 8XD U v.s.Y.Z.` ~Xt l.bXzXz.b.b.X./Xk.5Xx N N N N.k N N.XXx.I.I q.&.AX@.$.I.z.I.b.^ N.oXz.b.bXj ~ eXt.r.r.r.r.r.r.r.r e e e e.^.k e ~.^.r.r e.^.bXzXzXz _XzXzXz _XzXzXz _XzXzXzXzXz.bXz _.b.c.#.c.c.cXg.o _XzXzXz.bXz.b.b.b.bXzXz.bXj e.6 q.o e.b.o.b lXz.b.bXz _.b.c.c.V.V.V.V.V.c.V.c.c.c.c.c.V.c.U.c.U.U.U. .U.U.c.c.c.cXg.cXgXzXzXzXzXz.o.c.o.o.o.o.o.V.V.V.c.cXz.U.^.^.^ e ~.`.8.`Xd.8.X.5.uX*X5.K.,XM.3X. [.Y.[ =X< 1XqXq._",
+".b.b.^.bXzXzXzXgXzXz.^Xz.b.b.b.bXzXzXzXz.bXzXz.bXz.^.bXzXt ~.rXj.rXj.^Xk.b N.b.bXz.bXz.bXz N.b.b.b.b.bXzXzXzXz.^.bXz.V.cXg.^.HXI o...) ^..X0 S .Xi .X2X:.xX:X2 ..x.xX2.xX>X4.s U.N.*.*.*.DX,.eXw.s 2 HXmXm o & b vXL $XD.~.H.e RX- 3.e `XKX- RXIX5 3XIXI.ZX- B.~.e R.~ RX- B RXl.w.'XK.].' TXP ! g.D.`.~.kXV.r.rXtXt.rXd.HXzXo.oXz.^.bXz.XXdXz.bXz.bXz _XzXz _Xg.# l.c.c.o.c.c.c.c.V.VXgXgXgXg.o.c.VXg.V.VXg.V.cXg.c.c.b.UXz.bXzXzXzXzXz.bXzXzXzXd e eXt eXt.rXt.r e.r.r.r.^ N.^Xz l.^.b.bXzXzXz.^Xz.bXz _.o.V.V.V.o.o.oXg.VXgXg.o.VXgXg.oXg.cXg.VXgXg.V.V _.bXz.bXjXj e.rXt.r.r e ~ e.b.^Xz _.cXg lXd.r.rXt e.r F FX-X1XDXK nXr.Z RX- a.-X.Xc s.Z U.wXnX4X2 { - - p.M a R.e R a.e R R BX-.* a.d.*Xb.)..Xi ^.@Xi.vX4XpXn s.q oXa.w 8.eX1 TX,X5.n g )X- 3.u ) )XX )X3Xx ) ~X9 ~ ).$.f ~X*.u.H.D.n.N.) t aX,.wXDXD.MXs v vXpXD.8.HXd.cXz.b.bXz N.b./ q.f.f 5.&./.A N.&X .6.6 d.I.#.Q l.o.oXzXz lXz _ _.^XzXz _Xz.o.^.^ e e.r eXt e.r.r.r.r ~ e ~ e.r.r.X e.r e.^.^XzXzXzXz _XzXzXzXzXz _XzXzXz _Xz.bXz _ _ _.c.#.VXg _ _XzXzXzXzXz.b.b _.b.b.b.b.b.b e e e l.rXj N.bXg.cXz.b _Xz.b _.V.c.c.V.c.c.c.c.c.V.c.c.c.c.c.U.#.#.U.U.#. .U.c.U.c.cXk.c.oXzXz.^XzXjXzXz.V.o.o.o _ _XzXzXzXz.o _.U.bXz.^XjXt F ~ F F F.`.`.8.` 3X5.a.i.Y.YXB x E U EXeXp",
+".^.bXzXz.^Xz.^Xg.oXzXzXz.bXzXz.^Xz.b.bXz.bXzXzXz.b.bXz.r.r.^Xg NXjXj.^Xg.oXzXzXz.b.b.bXzXzXzXzXz.bXzXzXz.b.b N _ _Xz.o.UXgXzXtXIXp.s M J..X>X8.<.p r.y.p.<.[X+ W.jX%XpXnXp.pXpXLXeXa C.*.M R.* C /.= O.W 2.=.v.E 9Xa.Z B.~ 3.aXVXDXIXl $ cX1XIXDX1XIX-.eXI 3 R 8 RXD 8.M T T.]XJ DX;.%.G K.O.0 D '.` ) P (.A.k ~ QXx f ( fX@.( d.tX&.t X l.bXzXz _.bXzXz.o l.o.#Xg.c.c.V.c.c.V.cXg.c.c.c.cXgXg.cXg.V.cXg.c.o.cXg.c.c.b lXz.XXzXzXzXzXzXzXz.^.^ e.r e.rXt.r.r eXt.r.r.r e.^.^Xz.^ lXzXzXz.^ N.b.^.^Xz.^Xz.b _.o.o _ _.o.o.V.o.V.cXgXg.V.o.oXg.o.o.VXg.o.bXz.^Xz.^Xj.r.r.r.r.r.r.r.^.^.^Xz.#.U.b.^ l.^Xt e ~.r.r ~.8 FX1 R.Y.pX+XD a aX-X- a R x.Z v xXpXf.xXAX6 u E t.} RXIXI.Z.aX1 3X,.} a < *X=X=XiXf %X=X=X=.sXn.) 2.s o.j.nXa R B.eX- BXaX5 T.0X-.8XIXt 3.u.rXV.r.u.k.KXt )Xk.KXxXoX9.5X5.n 2.).M.}X,.Z R.aXD.d v.@ hXI.H eXj l.bXz.bXzXz.b.^.X N N N N.K.bXz.b.^.bXzXz _XzXzXj.bXz.b.bXg.bXzXz _Xz _XzXz.b.bXz.^ N.b.^Xj e.r e.r e eXt.r e.^ e.^ ~ eXd.b.bXz.bXzXz.bXz.bXzXz.bXzXz _XzXz _ _XzXz.b _.c.# _ _Xz _ _.b _XzXz.bXz.b.b.bXz.b.b.^Xj ~ eXj e.^.b.o.UXgXz.b _Xz _.b.V.c.o.c.V.V.c.V.c.c.c.c.c.U.#.#.U.#.U.c.U.#.c.c.c.c.c.c.o.^ e e ~ e e e.^XgXg.bXzXz.^XzXzXz _.V.U.c.o.bXz.^.^.r.r F.` F.`.8X-.}.} 1.- h h.}X, h E.} < t a.} t",
+".^.b.^Xz.^Xz.b.b.c.^Xz.^XzXz.bXz.bXz.bXzXzXz.b.bXz.b.^ e.^.r.rXt.r.b N.bXkXz.bXzXzXzXzXz.bXz.bXz.b _Xz.b.b.^.b.^.^Xj.o.cXg.X ~XVXq & vX0XL 0 S.x rX<X+X+XpXB.YX7.[XB.l.l.l.F.jXn.).N.WXs.M < <.e U x.>.n.NXs.N 2 ^XmXa.ZX1.e 3.a a a aX- t R cX, c $X-X-.~X- R.uX- R RXDX5 'Xw.2Xw !X. m 4.% IXJ.2 (X- 5 } 5.A.r ) f.R P A A.&.(.IX@X@.zX&.X.b.^.bXz.^.bXz.oXgXg.U.U.cXgXg.cXg.c.V.c.c.c.cXg.c.c.c.oXg.c.cXgXg.c.c.cXgXg.cXgXzXz.o.b _Xz.X _.XXd eXdXdXd e.kXjXdXtXd.k.kXd.k.bXx.b.zXgXg.o.o.o.oXg.o.o.oXgXg.o.b.oXgXg.c l.U.U.UXg.U.U.U.U.o.#.U.U.c.U.U.c.oXgXg.X.^Xj.^ N.^Xj.^ N.o lXd.#X@.QXg.o.zXgXzXd.^Xo.k.k.8.uXV 3XcXr M h CX1.aXD.ZX1 $ x 1._X+X>X8Xf S._Xw xX,XKXlXcXl ' :.- cXM a.).s.BX6.C 0.v.NXa O.N.w *.W.s JXrXP.wXD.e : 'XD.n.nXPXo.H.` ~X*Xt.u.r.k.rX*.u.K.r VXk IXX m.,.,.' v.=.=Xs aX1.H R 8.N.WXnXG tXI.r e.^Xg.bXzXz.b.^XzXzXz.b.b.^XzXz.b.^.bXzXzXz.bXz.bXzXz.bXzXz.oXgXz.b.bXzXzXz.b.bXzXz.bXz.b.b.bXz.^ eXt.r.rXt e.r.z ) qXtXj.rXjXz.^XzXzXz.b.bXzXz _XzXz.b.b.b.b _.b.bXzXz.bXz.U _.bXz _Xz _XzXz.bXz.bXz.b _Xz _.o.b.^XjXt.r e eXzXz.o.UXzXzXz _XzXz _.o.c.c.V.c.c.c.c.V.U.U.c.c.#XuXu iXu.V.V.#.V.U.c.U.c.cXg.o.^ e e e e e e.^Xg.o.b NXj e.^.b.^.b _. .o.V.o.bXzXz.^X* F F F.`X-.}.F >.l h xXM.a.}XD.a a a.e a.} a",
+".b.b NXzXzXz.^Xz.U.b.bXzXzXzXzXzXz NXz.b.b.bXz.^.bXz.b.rXxXg.k eXt.^XzXz l.^.bXzXzXz.bXzXzXzXz.bXz.^.b.o.I N.^.^ eXtXzXx.U N.^.` $ =Xs = J vXr W WXr.pXB $.YXB.lX3.l.l h.i.lXBX+ v.W.N.N.N.w.a <.a xXU.n.N C.)X= ^.E.wXa.DX,.u.e a.eX-.e R.e.e RX-.K : 3Xl.` R.u h BX,.w.wXJ.2XO.u.D.H.~XI 3XV.8 3.HXV.5 N.X.5.k.k.kXoXo.XXj.X lXx.I.^XxXg l.X.U lXg.o.U.#./.#.c.6. .I.#.#.I.#.#.U.#.U.#.#.U.#.#.#.U.U.#.#.U.U.#.U.U.U l.z l _XgXg.X.o.bXgXg.bXdXd.^.^.^.rXd N.k.kXt.k.^.kXd.^.b.XXk.b.b.X.b.b.b.o.b.b.b.o.b.bXz.oXg.VXg.c.cXg.c.o.c lXg.c.oXg.c.c.o.VXg.oXz.bXz N eXtXtXj.r.rXj e _.^ _.o.b. .^.X l.bXjXtXtXt.k.u ~.H.8.aXc.j.+.M t.aX-X1XDX-.aXD hXpXnX>.4.. %.Z.M.MXD.a.a RXI 8X1X-.} u.* %.vX6XfX6Xb.N.= 2 8XDXs u._.s J.q o T.ZXDXlX;.D.0.0 gX5.uXtX*.^Xo.^Xd N N N NXX.K.$XX.u.5X9 `X5X, 1.@ vXaXw.9.Z x RXGXn.jXn 3X5.X N.o lXgXgXg.c.oXg.o.o.o.o _ _.o.o.o.b.b.o _.bXz _.b.bXz.^.bXg.oXzXzXz.^XzXzXzXz.^XzXz.bXzXzXzXz.^Xj.r.r.r e.r.r.XXgXk eXj e.^Xz.b.oXzXzXz _.b.bXz.b.b.bXzXzXzXzXzXz.b.b.oXz.c _XzXz.b.bXz.b.bXzXz.bXzXz.bXzXz.b.b.b e e eXj.^Xz _.c.U _Xz _ _ _Xz.o.c.c.c.c.c.c.c.cXg.V.V.c.c.c.U.U.c.U.c.c. .c.c.V.V.cXg.c.oXz.^Xj e ~.r e NXg.bXzXj e eXj.^XzXz _.U.o.V.VXzXz.^ N.r.r.`Xt :.}.[.l.m.m E U a 3.a.e.eX- a.a.eXD.e",
+"XtXjXj.^.^Xz.bXzXg.b.bXz.bXz.b NXzXzXzXz NXz NXzXz.b.b.^XjXk.^.r.rXz.b.^XkXz.bXz.b.b.b.b.b.b.b.b.b.bXg.z.I.b.b.r e e.bXg.z.X.^ cXG o.W 9 v s.@.<.p WX7.9.i $X,.i x : h <.}.l.l.-Xr v.sXe.WXL.M.M U xXG aXDXD 2 2 ^ H o.n.n g.0.ZX-Xc.-Xl `XI x 3XlX. }XlXl DX,.2 s.OXcXc.2Xw 'XIX,XI.H.` 3 3XV.8XV ~.kX*X*.5X*.k.k.H.^Xd.kXd.b.X.b.o.^.b.o.b.bXzXz.b.o.cXgXg.cXgXk.UXgXgXgXg.VXg.o.V.o.c.V.o.c.oXg.V.V.oXg.V.o.o.oXg.o.b.o.b.^.^Xz.bXz.^.^Xz.^ eXt e.r eXt.z.k.r ~ e.r e.r.r eXt.^ l N.bXzXzXz.bXz NXz.b.^XzXz.^ _.oXg.o.VXg.V.o.o.V.c.oXg.oXg.o.V.b.V.o.V.b N.^.^Xt ~.r.r ~ ~.r e.^XzXz.b.bXj.bXzXxXz e e.r.r.r ~.8 ~.8 RXcXq.j.M a R a RX1 B.* < U.YX4X>.{ %.).M R.*.*.a.* aX- a R a t t.d /Xi.@XiXv.) G t.* B.MXD uXe 0 0.q 9 '.D.* D.].Z.D.0 gX1.`.8 ~.r.r.rXt.r.r.rX*.k.uX3XX q )X3XX :Xc.wXG 2.jXw.a.a <XsXn vX+XDXI ~XtXz.b.o.o.bXz _ _.o _ _.V.o _.b.oXgXg _ _Xg.c.o _Xg.U.cXg.oXg. .UXg l.c.cXg.c.U.c.cXg.c.cXg.cXg.c.c.o.k.^.^.kXj.k.^.k.X eXt.^.X.bXz.b.b.o.^XzXz.b.^.b.b.bXzXzXzXz.bXzXz.b.bXzXg.b.b.bXzXz.bXzXzXzXz _ _.bXz _.bXz.b.^XjXt ~XjXz.^ _.c lXzXzXzXz _Xz.V.V.V.V.V.VXg.V.c.c.c.c.c.c.c.c.V.c.c.c.V.#.V.V.c.U.c.c.c.o.b.^ e e e e.r.^.o.o.bXj.r e.r e.b.^.o.U.o.c.oXz.bXzXt.r.`.8X3.}.Y.F.m U h.}.e a aXI.} cXD.a aX,XI.e",
+".r e eXj.^ NXz.^Xk.o.bXzXz NXzXz.b N.b NXzXzXz.b.b.b.kXz.rXjXt e.r N N.^Xg.bXz.^XzXzXz.^.b.^ N.bXz.b.b.b.^ NXt.k.^Xj.XXk.zXxXo.k xXpXLXs.EXG.@X4X+.1X%.Y x 1 x $ x : $ $ 3 # k.[XB.TXp v.W.E v U.W u.a.wXw C.=XvXb J.E o 9XP.w.D.eXKXJ c m T.,XI 3.%Xl.2., m.,XJ mX;XPX$XO mXVX1.`X-X-.`.`.8XIX1 FXV.r.rX*.^XtXt.r.rXtXtXj.o N.b N.b NXz.b.^.b.^.b.b.bXg.o.c.c.c.U.U.c.c.c.cXgXg.V.c.V.cXg.V.cXg.VXgXg.VXgXgXg.oXgXg.o.b.oXgXzXzXzXz.bXzXz.^.XXz.^.^ N.^.kXx./Xg.r.r.r.r.rXt.^.^.^Xg.^Xz.^Xz.^XzXzXz NXzXz.bXzXz.b _ _XzXz.oXg.VXg.o.c.oXgXgXg.V.o.VXg.o.o.o.o.^.^Xj e.r.r F F.r e.^.^ l lXz _Xz.^Xg.^Xj e e.r.u ~ F.8X1XIXK XrXe.* RX-XI B R R.a <.jX4.4.@ %Xb C R t t t t.}.* t t.M t UXF.s ^.@X= * C C C B 8 RXIXn.x =XmXC.q g.D B BX-Xa.n.0 gX1.8 ~.rXtXt e.rXtX*.r NX*X* N.K.5XX ) :.5 :Xl.s *.)Xq t <XsXe vXG.9XI 3.rXj.bXzXz.bXz.^Xz _.bXzXzXz _XzXzXz _XzXzXzXzXzXzXzXzXzXzXzXz.^.c.^.^XzXzXzXzXzXzXzXzXz _ _ _.b.b.b.o.o.kXz.^XjXj.kXt.^.X e.k.bXg.b.b.UXg.c.o l.U.U.o l.c.c.c.c.c.c.c.o.V.c.c.c.#Xg.c.o.o.oXg.o.o.b.o.b.bXzXz _.b.b N.^.z.^.^ e.bXzXz l.c.bXzXzXz _Xz.V.c.V.c.c.V.V.c.o.V.c.c.c.V.c.U.c.U.V.c.U.U.U.c.o.V.V.VXg.o.bXzXz e ~ e.^.o.cXz.^ e ~ e.r.r.b.^Xg.c.o.o.bXzXz.k.r.8XIXM ` .FXq.i U.M a a a a a R VXHX-X- kXI.e",
+"Xt.r.r.rXjXzXz.^.b.o N.^Xz NXz N.^.^.^Xz N.^.^ eXt.kXzXkX@ N.k.^.^.oXg.XXg.UXgXk.oXgXk lXgXg l.z.XX .X.R.&Xk.X.&.z ( A.IX@.R QXl =.+.MXs vXnXnXn.p.1.Y # $.i.M.MXaXKXlXlXc h., k [ kXh.1 W.+.jXrX2.W.M.M x.* CXF.)X6X> HXm.q.w.wXD.]Xc.'.,Xl.].a R.9.e : $.w ' ' ' g TXUXoX,.~.`.`.`.8.8.8.` ~.8 ~XVXtX*.rX9 ~.kXt e.r e.X.^Xz.b.^.b.^.b.^ _Xz.bXzXz.b.c.c.c.c.V.c.#Xg.c.c.cXg.c.V.c.V.c.c.VXg.V.o.VXg.c.c.c.c.oXgXg.bXz.bXgXzXz.^XzXzXz.^XzXzXz.b N.^.^XjXgXjXt e.r e.r eXj.^.b.^XgXzXzXz.bXzXz.bXz NXz NXzXzXzXz.bXzXzXz.o.VXg.V.oXg.oXg.cXg.o.V.o.V _.V.o.oXzXz.kXt.r ~ ~ F ~ e.r.^.b.VXgXz.b.^XgXz.^Xj.r.rXt.u.8 ~ FX1.9X+.j 1 a a.aX, BX1 R t.M.Y.pX>.4 -XF._XG h x.iXD.Y C., tXp.M J.@ 0.C 0.=.) C t a.eX,Xl k.-Xe 2.=.!.!Xa.0XD.nX5.w.n.0.0.`.8.8XtXt.r.r.rXtXj ~ NX*.rX* ~.rX*.r.8 cXVXl.).) u C t tXs vXaXmXlX1.8Xt.^XzXzXz.b.bXz _Xg _XzXzXzXzXzXzXzXzXzXz.bXzXzXzXz _Xz.b.bXzXz.cXz.bXzXz _XzXz _.bXzXz.b.bXzXz _Xz.bXz.^ NXjXj.r e.rXt.^.r e.r e e.b.^Xz.b.bXz.^XzXzXzXzXzXzXzXzXzXz _.b _ _XgXg.o _.V _.o.V.V.o.o.V.c.c.cXg.c.cXg.c.b.b.I e.cXkXg.c.# l.oXg _.oXgXg.c.c.c.U.c.c.c.c.c.V.V.c.c.c.V.c.V.V.o.V.#.V.c _.V.c.c.cXg.c.o.o.b NXzXz.b.oXg.b.b.k e.r eXj.^.b.cXg.o.bXz.^.^ e ~.8XD >Xq.m.i x t a a.e.e a aX-.a 3XD.eXc 3.e",
+".rX*Xj.k.k.^.XXgXgXkXgXgXxXgXgXkXg.b.b.XXgXgXz.k.oXz N N l N.^.^.k.o.b.oXzXkXz.o.^Xz.b NXz.^ N.b l Z.&X@.&.R.&.R.f.(.&.( , f 5 5 n o.).NXG vXLXnXrXwXB 1 h $X, tX,XO TXc $ $ `., k.,.Y.gXH.1X+Xp._.d.).MXD u.9 C *.s.v 2 OXC s.wX,.*X-.e.e.e.eX-.e.aX- B B B.wX5.wXP g R B.`.`.`.`.8.8 ~ ~.8.8.8X*.r.r.r.r.X.8 e.rXt.r.r.b.^XzXzXz.b.bXz.bXz.^XzXzXz.V.cXg.VXg.cXg.U.oXgXg.V.V.c.c.cXg.cXgXgXgXg.VXgXgXgXgXg.o.o.o _.bXz.bXg.bXz.bXzXz.b.b.bXzXjXj.r e e.r ~Xz.r.r.r.r ~ eXt.^Xj.^Xg.^XzXzXzXz.b.b NXzXz.bXz.b.^Xz.bXzXzXz.oXg.o.oXgXgXg.o.cXg.V.o _.c.o.V.oXgXz N.^Xj.r ~ F.8 F.r.r.^Xz.^Xz.bXz.^Xg.^XzXj ~.r.rXt F ~.8X1 $.YXnXG.MX- 3XD RXD R t <XpXf H.C { -XG.W.w.WXGXeX+._Xn t._Xe z.T.@ 0.v.= C C a RXD ).-XK.WXe.= 2XC.!.n ' '.ZXa.0.] g.D.`.8 ~Xt.r.rXtXj e.r.r N.r.rXjXt.^ ~X*.r.rXVXl.W / * t u pXLXL.n TXI.8 ~Xj.b NXz.^.bXz.b _.c.V.b _XzXzXz _XzXz.bXzXzXzXzXzXz _.b.bXzXz.bXgXzXzXz.bXz.bXzXzXzXzXzXzXz _Xz.bXzXz.b.b.bXjXj.r.r.r.^Xk.X.k e ~ e.^.bXzXzXz.b.b.bXzXzXz _Xz _ _Xz _XzXz.bXz.c _ _XzXzXzXzXz.bXzXz.bXzXzXzXzXz.bXz.^ ~ e.r.r N.b.b.o.I l _.o.b.b.V.c.U.U.U.#.U.U.U.#.#.#.U.#.#.#.#.#.#.U.U.U.6.#.U _.V.U.c.c.VXg.o.o.o.o.b.o.oXg.c NXz.^.r.r e.r.r.^Xg.o.oXz.^.^ e F.`XI U .m.m E U <XD.eX-.e.e.e a.eX-.a.a.uX- a.e",
+"Xt.^ N.^Xj.k.^.X N l N.^.^.^XjXjXj.r ~.r e.r.r.r e ~XjXz F.k.^XjXz.b.bXz.^XgXzXz.b.b.bXz.b.b.b.^Xk.^XkXkX9.X.k.^.X.o.A.zXkXkX9X-.wXp *.W v vXG [ z.-XM x x h h y.* TX,.D.e.'X,Xl.-Xc.- 1Xp.[.pXn pXsXsXsXw *Xp.N.d / / OXmXG.wXD R B.a B RX- B aX1 R.* R.Z.wXlXU.]X1X1X1X-.~.`.` ~.8.8.8 ~.rX* ~Xt.rXt.r.kXjXt.rXj e e.^Xz.bXzXzXz.^Xz.^.bXz _.b.b _.V.VXg.c.cXg.#.o.c.c.c.V.c.c.c.V.c.c.VXg.VXg.o.o.o.b.b.b _.b.bXzXz.oXgXzXz NXz.^XzXd.^ e.r.r eXtXj.rXt ~.r.r.r e.r e.r eXt.^Xg.^XzXzXzXzXzXzXzXzXzXz.bXzXzXzXzXzXzXz.b _.o.b.c.oXg.o.oXgXg.c.V.V.oXg.o.oXzXz.^.^.r F.8 F ~.r l.zXz.oXzXz.bXz l.^Xz.^ e.r.r.r.r.` FX1X,X+XG 1.M tX, 3 RXD R a < vXn.4.@X6.v.j p.*X+.).. 2 2.s U.)X=.@ M.B /.N.w t <.ZX5 `XJX5.}._Xe.= O oXP.nXa.0 D g.] 'X1 B.` ~ ~Xt.r.r e ~ eXj.r.bXt.k.rXt ~Xj.r.kXt.r.Z v.N.).) 2.W.).W 9Xa.`.HXt.^Xz.b.bXzXz _.oXg.c.V.o.o.b _XzXzXzXz _XzXz _ _.b.b.V.o.VXzXz.oXg.b.bXzXz _XzXzXzXzXzXz _XzXzXz.bXzXzXz.b.b.^ eXt e.r.o qXk.^ eXj e.r eXzXz.^XzXzXz _.bXz _XzXzXzXzXz _Xz.bXz.c.bXzXzXzXzXzXz _Xz.bXz _.bXz _.b.bXzXjXjXj.r eXzXz.b.o.#.oXz _Xz _.b.c.o.VXg.VXg.V.VXg.V.V.V.c.c.V.V.c.c.cXg.V.#.U.c _.V.U.U.U.U.#.U.U.c.U.#.I.U.c.U.UXg.^.^Xj.^.k e.^.o NXz N.^Xt F F.`.` h.F E E.d <.* R.u.e a.`.e aX-.e.a.e 3.a.e 3",
+".r.rXt.r.rXtXt.r ~ N e.rXj e ~ e.r eXj.^.kXjXj.^.k.^.b.fXg e.^Xz.b.^XzXz.^.c.bXzXzXzXzXzXzXz.b.bXz.X N.z.fXgXtXt.b.X.b.XXgXk NXV $Xp.WXe o.Y M n.,.9 : x h $.MXl c D.,Xl.D T.] T :XcXH .lXMXBXp.p y v.=Xe.YXw u u.NXs.N.sXmXGXeXD R BX- B.e R.e.eXD 8 R.Z.w 'XU T RX1.`.~.`.`.`.`.8 F.8.rX*.r.r.rXtXd.rXd NXt.r e ~Xt eXz.b.bXzXz.^Xz.bXz.bXzXzXzXzXzXg.cXg.o.VXg.#.oXg.V.cXg.c.V.V.V.VXg.V.cXg.b _.^XzXzXzXzXzXz.^XzXz.X.oXzXzXzXzXzXz e e e.r e.r e.r.r.r e.r e.r.r.r.r.r e e.bXg.^XzXzXzXz.bXz.bXz NXz.^XzXzXzXzXz.^XzXzXzXzXz.c.oXg.o.o.cXg.o.o.V.o.V.V.oXzXz.^.^.r ~.8 ~ ~Xt.b.t.oXz.VXjXz.bXg.^Xz.^ eXj.r ~Xd.` F.HXD.-XnXG.M a cXD RXD R t <XGXn SX6.CX6X> yX%.; M M M S.;X: H.y ^.@Xv.) 8Xs.* $., x.u RX. =.j.....v.qXm.nXP g T c BX1X1XI.8.8.rXt.rXt.r eXjXj.r N.r.^.k.^XzXjXj ~.k.r.k s 2Xs.N.W v v b.0X1.H F.^.b.^.b.o.bXzXzXgXg.c.VXg.V.V _ _Xz _XzXzXzXzXzXz.V.c.o.V.c.b.b.V.bXzXzXzXzXzXzXz _XzXzXzXzXzXzXzXzXzXz.bXz.^.b e eXt.r.^.k e ~ ~.r.r e e.^Xz ~.bXzXzXzXzXzXz _Xz _Xz _.bXzXzXz.UXzXz.bXzXz.bXz.bXz.bXzXzXz _ _XzXz.^Xt e.rXj eXjXzXz.c.#XgXzXzXz.bXz.c.c.c.c.V.c.c.c.V.c.c.c.c.V.c.c.V.o.V.c.c.UXg _ _Xz.o.V.o.V.V.c.oXzXz _.o.oXg.cXz N eXtXtXjXj.r.^Xk.X.bXg N.^ ~Xt c 3 ._Xq.m u tX-.`.a.8.e aX-.e.e a.eX- #.e.e a",
+".r.r.r.r.r.r.r.r.r.^.k.rXt.^.^.^.^.^.b N.bXzXzXz N.b.b.zXjXj.^.^.^ _.^.b.^Xg.b.b.b.^ _XzXz.oXzXzXzXz.oXg.b.^ eXj N.b.b.o.cXk.b.r hXL.N.s.s.j M.Y k kXl.- mXl x x.a.} a aX-.e.eXlXDX,X,X, h h.Y x y.[XrXp = y U t CXs.N.NXL.EXGXLXJ R R.eX, 3XD c xX1XD.D.w.9Xc mXI.`X-X-.`.`.`.` F F.8 ~ ~.rXtXt.rXt.r.r.r.kXdXt eXj.^.^XzXzXz.b.bXzXz.bXzXzXz.b _XzXz _ _.V.c.VXg.#.V.o.c.c.V.cXg.c.c.cXg.VXg.o.bXz.bXz.^XzXzXzXzXzXz.bXz l.^XzXzXzXzXd e e.r e.r e.r.r eXt e.r e ~ e e e.r e.^.b.bXz.^XzXz.bXzXz NXzXzXzXzXz.^XzXz.^XzXzXzXzXzXz _Xg.o.bXg.c.V.V.V.V.V.o.bXz.^.^Xz e.r F ~ F ~Xt.^ _XzXzXzXzXzXzXgXz.^XzXjXt.r.r.r F.8X1X,XKXGXG < RX,X1.a.Z.M t UXnXn SXi.CXiX6._XnXn ^ HXf.@.@Xi..X6 ^ ^ * * C.M $XKXB aXI R.Z y vXn 0.@ &XmXPX;.' :X1XIXIX1.`XV.`.rXt eXt eXj.^.b.^.o N.b.b.bXz.^.^XjXt.rXVX5 sXLXe v 9 s $X1X1 F eXz.bXz.b.o.b.bXg.c.VXg.c.oXgXg.o.bXz _XzXzXzXz.V.V.V.V.c.V.VXg.VXgXz _XzXzXzXzXz _XzXzXzXz _Xz.bXz.bXz _ _Xz.bXz e e e.r N.rXt ~Xj ~ e.r e.^ e e.^XzXzXz.bXzXzXzXzXzXzXzXz _Xz.bXgXz _XzXzXzXz _Xz _Xz.b _XzXzXz.b.b.^ e e.r ~Xj.^.b.b.U.U.c.oXzXz _ _.c.V.o.c.c.V.o.c.c.V.c.V.c.c.V.c.c.VXg.V.#Xg.b _XzXz _.V.c.V.c.o.c.V.oXzXg.c.cXg.b e e.r e ~Xt.rXj.^XzXj.r F.` F.`.`.uXB.i E U t t.~X-.8.aX-.a.`X1 a.a 3Xl c.e 3XI",
+".r.r.r.r.r.rXt.r.rXj N.r eXtXt.^.^.^XzXz.^.^XjXjXj.^.^.bXj e ~ e e.^.bXzXz.b.o.^.b.b.b.^ _.^ _Xz.b.b.^Xj.r.r e.^Xz.bXz.bXgXk.X.r 3XG.).W 0.@ [ n |.SXHXc n nXKX3.i a 3.a a R.*.e `XJ : ).Y., k.,Xw =XHXh.TX0.)XG &XK 8.D v oXG =.w g : D 1 DXc TXHXlX. sX;XOXw '.a.`.`.`.`.`.`.`.8.8 ~ ~ ~.rXt.r.rXt.r.r.r.^ eXtXj.^XzXz.b.bXzXzXz.bXzXzXzXzXzXzXzXz _Xz _.o.o.cXg.#.c.c.c.c.cXg.VXgXg.VXg.c.V.bXzXzXzXzXzXzXzXz.^XzXzXzXz l.^Xz.^XzXzXj ~ e.r.r.r.r.rXt.r ~.r.r.r.r.r.r.rXt.^.^ N.o.b.^XzXz.bXzXzXzXzXz.b.^XzXzXzXzXzXzXzXzXzXzXzXg.oXg.oXg.cXgXg _ _XzXzXzXzXzXzXj ~.r.` F F.rXj.^XzXzXzXzXzXzXzXgXzXzXz.^.r e.r.r F F.8XD.Y 1Xq 8 t hX,.M.Z R a <XpX>.4X6 wX6 2 pXbXb ^.vX=XiXf.@Xf ^ 0Xi * u a R.,XHXl R.wXlXsXLX4X>.; ^X0.OXP m.|.2 D TXJ )Xx 5 )./.k.r ~Xt.^.b.b N.c N.b.b.b.bXzXzXzXjXj.r.8XI.Z '.n R.e.a.8 ~ ~XdXz.b.b.b.cXg.o.cXgXgXg.c.V.V.V.V.b _Xz.b.o.b.V.U.U.#.U.c.#Xg.VXg.#Xz.b _XzXzXzXz.bXzXzXzXzXzXzXzXzXzXz _XzXzXz.b.^Xj ~Xd.^.r.rXj.r e ~ e ~ e.r e.b.b.^.b _Xz _XzXz _XzXzXz.bXz.o.VXz.b _.b _XzXzXz.bXzXzXz _XzXzXz.^Xg.k.rXj.rXtXjXz.b.UXg.c.oXzXz.b _Xg.V.c.cXg.V.c.V.c.c.V.c.c.c.c.c.c.V.cXg.#.o _.bXzXzXz.cXgXg.c.o.c.o.V _ _ _Xg.oXj e.r.rXt ~Xt.r NXtXj ~.r.` F.`.` aXX 1X, E t.e.e.~.~ a a.aX-.e.eX-.e aX-X- a.~ a",
+".r.r.r.r.r.r.r.r.r.r N.r.r.r e eXj.^Xz.^XjXj e.r e NXz N.^ e e e.rXz.^.b.^.b.c.bXzXz.b.bXz.bXzXz.b.^XzXj.r e.rXj.b.bXzXzXg l.o.kX-Xq v 2 2Xn n.- XJX, R.wXDX, hX, #.} R t.~X-X-Xl 3XM #.5 # 1 x.5X3 XBX%...N.NXK.MXs.N.n =Xr =XwXyXU T hXl `XlXK TX; gXH gXUXI.`.`X-.`.`.`.8.8.H.H.r.r.rXt.r.r e.r.rXd.rXdXdXj.^.b NXz.bXzXzXzXzXz.bXz.b.bXz.bXz.bXz _Xz _ _Xg.o.#Xg.VXg.V.V.V.o.V.c.VXgXg.oXz _Xz.bXzXzXzXz.^XzXz.^.bXz l.^XzXzXzXzXd.r e.r.r.r e.rXt.XXg N e.r.r.r.r e.^.^ NXz.bXzXz NXz.bXzXzXzXzXzXzXz.b.^XzXzXz.^XzXzXzXzXz _.oXg.oXgXgXg _XzXzXzXzXj.^.^Xj e.r F F F ~Xt.^XzXzXzXzXzXzXzXzXgXzXzXz.^ e.r.r.r F F.8XI.YXn 1 U tX, h RX, t t.WX+.E.;X6X6.C.B.4.s w.@XiX=.v 0X6 0X6 0Xn.W u.a h.aXl < 3.w.w y.).@ S.x.x.O KX; : TXJ I V.|XX IXx.R.&.r e.^Xz N.b.b.bXkXz.b.b.b.b.b.bXz.^Xj.r.r.`X-.` RX1XI.8.8.r eXd.^.b _.b.U.c.cXg.VXg.c.o.c.c.c.c.V.VXg.V.o.V.c. iXu iXu i.c.V.V.I _.oXz _Xz _Xz _ _XzXz _Xz _Xz _Xz _ _Xz.b.^Xz.b.b.k eXdXd e ~.r ~.^.rXt e.rXjXz.^Xz.^Xz.bXzXz _Xz _XzXz _Xz.c.oXzXz.bXzXz.bXz.bXz _XzXzXzXzXz.o.b.z.6 N.r.rXjXz.b _.c _XgXg _.b.b _.cXg.c.V.c.c.V.o.c.c.c.V.c.c.c.c.cXg.c.c.UXz _XzXzXz _.VXg.V.c.V.c.VXg.VXzXz.o.oXj e e.r e ~.rXtXgXt.r F ~ F.8.`X-X9 ` $X, <.*.e.e.eX-.e.e a 3 R R.~ 3.~ 3 a.e.e.e",
+".r.r.r.r.rXt.r.r.r.r.bXt e.r.r.r e.^.b.^ e.r e.r.rXj.k.^.^ e.k F e.^.b.^ N.^XgXj.b.^.b.bXz.b.bXz.b.^Xj e ~ e.r.bXz.b.b.b.c l.o.k.` s v /.. 0X%XcXB :XDX,XeXe $XI h.M.a $ a a a.~ aX-X- a a a cX-.~.}.l.i.@.s.N C.a.*.Z.q 2 &.j.[.'.w $ 8XI.a.eX-.* B.Z x.nXU TX-X-.`X-.`.`.`.8 ~.r.rXt.rXt.r.rXt.rXt.r.r.rXdXo.^ NXz NXz.bXzXzXz.bXz.bXzXzXzXzXzXzXz.bXzXzXz.b.o.V.#.c.VXg.VXg.V.V.cXg.o.o.V.b.^Xz NXzXzXzXzXzXz.^XzXzXzXz l.^XzXzXzXz e e.r.r eXd ~ ~.r.b q.z.r.r e.r.r e.k NXz N.b N.^XzXzXzXz NXzXzXz.bXzXzXzXzXzXzXzXzXzXzXzXz.o.oXg.oXg.o _XzXzXzXzXz.^ e.r e ~.r F F.r ~ eXzXzXzXzXzXzXzXz.b.cXjXzXz.^Xj.r.r e F F.8X1.9.9Xp._ t h x.* $ t a UX+X> S 0Xf ^Xf S r.+.; MXC HX>.; M H &.j.j.9 : TXc a a.a t.9 b.s r.+X>.x W.OXU.~.u.`.`X*.u.`.8 ~.`.kXt ~.r.b.bXz.b.o.cXzXzXz _XzXz.b.bXzXj.rX*.8.8.`.`.8 ~ ~.r.rXjXdXz.b.b.b.#.cXgXg.V.V.V.V.V.cXg.V.V.VXg.c.c.V.c.U.c.U.c.c.UXg.c.c.#.o.cXzXzXzXzXzXzXz _XzXzXzXz.bXz _Xz.b _Xz.b.bXzXzXd.^Xd ~.rXt eXt ~ e FXjXj.b.^.bXzXz.^XzXzXzXzXzXzXz.bXzXz.UXzXzXzXzXzXz _XzXzXzXzXzXz _XzXzXz.^.IXg e.rXjXj.^.^.b.cXz.VXg _Xz _.oXg.V.V.V.V.c.c.V.c.V.o.c.V.c.c.cXg.c.o.U.oXz.bXz.bXz.oXg.c.V.c.V.c.VXg.o.b.b _.o.bXj e.r.r e.r.k l.r ~.` F.`.`.`X- ` x hXD.e R BX-.e a.eX- RX- BXVXD.e a.` aX-.e a",
+".r.r.r.rXt.rXt.rXt.r.^.k.r eXt e.rXj.^Xj.r.r.rXtXjXt.r.r ~.rXjXt.r.^.^ N N.^Xk.b N l.^.#.^XzXzXzXz.b.rXj.I qXjXz.b.b.b _.c.U.o.kXVXG v * 0...j.g xXM h.MX,XlX,X,X, 8 R RX,.eX- a a.~.eX- aX-.a #.8 a .lX4.).) C.M t H o v.E.Y.-Xw s.wX, a.aXI.a 3XD.w ' T ! g R.`X-.`.`.`.8.8.r.r.rXt.r.r.r.rXt.r e.r.r.rXdXz.^ N.bXzXz.b.bXz _Xz.bXzXzXzXzXzXzXzXz.bXzXzXz.b.b.c.U.UXgXg.V.c.c.V _ _ _.o.b _XzXzXz.^ NXz.bXzXzXzXzXzXzXz lXzXzXz.^XzXj eXt.rXt ~Xj.r e.X.z.b.r.r.r.r e.r e eXjXz.bXzXzXzXz.bXzXzXz.bXz.bXz.b.^XzXz.^Xz.^XzXzXz _Xg.oXg.b.o.b.^XzXzXz.^.^Xj e.r e e F.r F.o N.bXzXzXzXzXzXzXz.^.bXgXzXzXz.^Xj.r e ~ ~ F.`X1 y.j.Y._ xXc.w.9.9 $XGX+X> SXi.@X6Xf.@ H b.v O 2.M 2.WXe.)XeXeX, RXl `X-XD <XJ $.MXG 2.+.LX: z =Xh.2 c ) c.K.KX*.5.`XV FXt e e.^ N.b.bXzXg.o.b.bXz _.b _.b.bXz.k.rXj.r.8 F.8.`.8.k.rXt.r.kXz.bXz _.#.cXg.c.VXg.V.c.V.V.VXg.c.c.c.VXg.V.V.c.V.c.c.c.V.V.c.U.U.V.c.bXzXzXzXz _XzXzXzXzXz _Xz _Xz.bXz _Xz.b _.^ _XoXz.rXd e ~Xj.r.zXk.r ~Xj.^.^.b.^.^.o.bXz.bXzXz _Xz.bXzXz.UXz.bXzXzXzXzXzXzXzXzXzXz _Xz _.bXz.^ ~.^.rXt.r.r.bXz _.VXzXg.VXzXz _ _.V.c.c.c.V.V.c.c.VXg.V.c.c.c.V.c.cXg.b.cXz e.^Xz.b.b.o.V.c.c.c.c.V.V.VXg.V.bXz.b.o.^Xj.r e.r.r.k.X.r F F.8.`X-.8.a.l.[ ` hX-XI.eXIX-.e.e.e.e a.e.- I.e R R.eX-.e.e",
+".r e.r e.r.r.r.r.r.rXt NXt.^Xj.^Xt e e.r eXtXt.r ~.r.kXtXt N.8XtXj.X.XXx NXj.K N.^./././.6.^.b.b.^Xj e.^.XXg.b.bXz.b _.bXg.UXg N.HXl v.N.s..X>XwXBXBXD.}.WX,X,X5.w.M gXVXD aX-.aX5 # $ R RX-.a 3.K # #.F.s.).N C.*.a p G 2X+XBXKXw 9.wXD a.eX-X- B 8.Z ' T.]XU B.`.`.`.`.`.8 ~.r.rXt.rXt e.r.rXtXt.r eXd.r.rXoXj N.b.^.b _XzXzXz _XzXzXz.bXzXz.bXzXzXzXz.b.bXzXz.c l.U.V.V.o.o.V _XzXzXzXzXz.^ _ NXzXzXzXzXz.^Xz.^.bXzXzXz l.^XzXzXzXzXjXt e.r.r.r.r.r ~ F eXj.r.r.r.r.r.r.r.rXt.^.b N.^Xz.^.bXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXz.o.V _.b.^.bXzXzXz.^XzXzXj e.r.r ~ e.r ~XtXg.#.cXzXzXzXzXzXzXz.b.b.oXzXzXzXzXj.r.r e ~ F.8X1 x.- W.j.[.-XHXc.9.9 1 kXrX> M.v.@.@.@.@.v.v.= C.M t.* a u.* a.e.aX1XDXIXD.* a.e.9.W o O.y.TX2 M.+X;X..2XJXJ.% D ) 5.r.` ~ ~.rXt.^.bXz.b.bXg _.b.bXz _ _Xz.b.b N.^Xt ~.r F.` ~ ~ ~.rXtXt e.^.bXz _.o.I.c _.c.c.c.c.V.c.c.c.c.c.c.c.c.c.c.c.c.V.c.V.V.c.V.V.U.c.c.V _Xz _XzXzXzXz _XzXzXzXzXz.bXz _XzXz.b.b.^.b.^ FXo.rXd F.rXj.IXg.^XjXt ~.k.X.^.b.^.zXzXzXzXzXz _ _ _Xz.b.cXzXzXzXz.^Xz.oXzXz _.^XzXzXzXz _.^Xj.^.rXtXtXtXz.^.^.c _XzXgXg _XzXzXzXz _ _.o.c.c.c.V.V.V.V.c.V.cXgXg.V _Xz.o e e.^.b.b.oXg.c.c.c.c.c.o _.o.VXg _Xz.oXg.bXj.r ~ e.rXd.k.r F.8.`.8.` 3.a [.[.Y.1XK $XJ., ` : D :Xl.uX-X..G.e 3X-.e.eX-.e",
+".r.r.r.r.r.r.r.r.rXjXt.o.kXz.^.^ e e ~.r.rXt.r.r.XXxXx.XX* qXx qX9 ).f.$./.r.rXt.8Xk.$.UXk.b.bXz.bXj.rXt e.k.b.^Xz.bXz.bXg.UXg.bX1.DXL pXbXn.j WXKXc h.a hXD RX, $XI.]XK.,XJ : R kXU sXJ.-XlXwX. c h .. /.N G u.N *X= v.[ X3Xw s.w.Z t.a a aXD RXD.wX5XP.]XDX1.`.`.`.8 ~.rXtXt.rXtXtXtXt.rXt.rXtXtXt.r.r NXt.bXz.bXz.b.bXzXzXzXzXzXzXzXz.bXzXz.bXz.bXz.bXz.b.o.c.UXg.cXg.V _XzXzXzXzXz.^Xz NXzXzXzXz.bXz.bXzXzXz.^Xz.^ lXzXzXzXzXz.^XjXd e.r e.r.r eXt.r ~ e.r.r.r e.r.r.r e.kXz.^Xz.^Xz NXzXz.^XzXz NXzXzXzXz.^Xz.^XzXz.^XzXz _XzXz.^XzXz.b.^XzXz.^Xj e ~.r.r.r eXj.^Xj.c _XzXzXzXzXzXzXzXz.bXgXzXzXz.^.^Xj e ~ e F FXIX,X+XpXp.M.M $ tXD.M tXGXr & M 0XfX6Xi.sX= G 8 C.e aX- a a a aX-X1 R.` RX1.3., $.aX,Xe v.xX2.xXrX+XK $XI.u 3XVX1.8 3.8.H F.rXtXj.b.b.b.bXzXk.b.b _Xz _ _.b.b.b.b.^X*XtXV.8 F F.` F.r.r.r.rXjXzXz _.o.#.c.oXg.c.VXg.c.VXg.c.V.V.V.o.V.o.V.o.c.V.c.V.V.U.V.o.#.c.V.bXzXzXzXzXz _XzXz _XzXz _Xz _Xz.bXz.bXzXz.b.z A.t l.rXt.rXt ~ e e ~ ~XjXt.^Xt eXj eX@.^.bXzXzXzXz _XzXz.V.oXzXz _ _.bXz. Xz.b.bXzXz.oXzXzXz.^Xj e N N N ~ NXz N.UXzXzXg.V.bXzXzXz _Xz _ _.o.V.c.o.c.V.cXg.c.cXg.V.b.^.^.^ ~ eXz N _.o.c.V.c.c.VXg _Xz _ _.V.o.oXgXg.b.^XjXt.r.r.^.r ~ F F.8.`.`.r.aXB.m hX,.} $.a # h.~.uXlXo c | K.KX,.~ a R.e.e",
+" ~ e.r.r.r.r.rXtXt.^.kXx N.^Xt e ~.r.r e.r.r.rXt N.$ q 5X9.f.&.$.k N q ).z 3 ~.rXtX9.z.bXk.^.&Xg.z AXgXg.I q.z.I.^.bXz.b.o.cXg N.H.Z.s.W %XiXn n.- 1.iX, hXD U.ZXDX1Xl x DXl.ZXDX,X,X,.wXK hXDXMX- # #XBXe.).N.NXs.).).m.[Xc.lX3XU.'.w $ R.a.a R aX- 8.D.'.'Xw.DX-X-X-.`.8 ~.rXtXtX*XtX*XtXt.r.r.r e.r.r e.r N e NXzXzXz _XzXzXzXzXzXzXzXzXzXzXzXzXz.bXzXz.bXz _ N.o.c.o.V.o.V _Xz _XzXzXzXz.bXzXzXz.^Xz.bXzXz.^XzXzXzXz.^ lXzXzXz.^Xz.^ NXz.^Xd.r.r.r.r.r.r.r.r.rXt.r.r ~Xt e ~XjXz.^XzXzXzXz.^XzXzXzXzXzXzXzXzXzXzXzXz.^XzXzXzXzXz.^XzXz.bXzXzXzXzXzXj e.r.r e.r.^Xj.z.bXzXzXzXzXzXzXzXzXz.^Xz.X.oXzXzXzXz.^Xj.r.r e F FXD R.9.YXqXpXn.Y <.a t W H S ^X= /.N /.= G C R a.~ a.e aX-.~X-.`.~X- R R.'XwXD a.M v.sX> H.T =XZ =X..kXJ (X3.r I ) q q 5 ~Xj.k.bXz.b.b.o.U.b.b _Xz.b.b.o.b.b.b N.k.r.8.8 ~.` ~ F F F.r.rXtXjXz.b.o.U.c.c.c.VXg.c.V.V.V.V.c.c.c.V.c.c.V.V.c _.c.V _.V.V.V.U.V _ _XzXzXzXzXzXzXz _XzXzXzXz _XzXzXzXzXz.bXj.I Q eXx jXd.r.r e.rXj.rXtXj.r e.rXtX& qX@X Xj.bXz.bXz _XzXz.b.c.bXz.b.z.Q.Q.UX Xz.bXzXz _XzXzXz.bXz e.o N N.(Xk.^.bXzXgXzXz.V.oXzXzXz.b.o. X&.6.b.o.c.oXg.c.V.c.VXg.c.oXzXj.^ e e e.bXzXz.o.cXg.cXg.o.VXzXzXzXzXg.cXg.VXg.o.b.bXj eXt N.r.r.8 F F.~.`.} aXp._ E.M aX-.a a R.e.~.`.~Xl.3 hXJ.3.e.e.e a.~.e",
+".r.r.r e.r.r e.rXt.^XjXg NXt.r.r.r.r.r.r.r.r.r.r.r.r.rXtXj.k.kXt.r 3.rX*.KX*XV.KX-X9.A.A./.U.6.& i.f./.z.f.6.I.U.^.bXzXz.oXkXg.bXVXVXe.sXb..Xn.Y [X+XM h.iXD.DXDXG : c c $.ZXJ c.aX,X, c $ x $.Y .l.lXB xXe / 2.).s.W.jXB.iXXX3.>.!.9 $X,.aX-XDXI RXD.ZXl.'Xc.0 B.5X5XV.8X5 ~XtXV.^.k.rXt.u ).^.k.rXt.r.r.r.b.^.b.bXz _XzXz.bXzXz eXjXz _XzXz.bXz.b.bXzXzXz.bXzXz.b.c.^XzXzXzXzXzXzXzXzXzXzXzXzXzXz.bXzXzXz.bXzXz.^XzXzXz.c.bXzXzXz.^.b.^.^ N.^Xt e.r ~ e.r e.r.r.r.rXt.r.r e.r.r e e.^XzXzXzXzXzXzXzXzXzXzXzXzXzXzXz.^XzXz.^Xz.^XzXzXzXzXz.b.^.^Xz.^ e e ~ eXt.^.^Xz _.#XzXzXzXz _XzXzXzXzXzXz.b.oXzXzXz.^Xz.^ e.r.r F.8.`.8 $.9XnXGX4.xXp x u <Xp.[Xr H ^ /.N.NXD C t C.*.e a.eX-.e.` 3 #.~X- RXcXD.*.D.eX- h $ p ^.@.;.E.jXKX5 ) )XxXx )XXX9.5X9 N ~.rXz.b.I.I.I.UXu.b _XzXz _Xz _.b.b.b.b.^ ~ ~.8 F F F.8 F ~.r.r.r eXjXz.c.#.c.cXg.c.V.c.cXg.c.c.V.c.VXg.c.VXg.V.V.c.V.c.c.c.V.o. _ _Xz _Xz _.bXzXz.bXzXzXz _.^ _Xz.bXzXz.bXjXj.: l NXkX$.^Xt e.r e.r.rXj e.r ~Xj.7Xk ~ e.z.^XzXzXz _ _ _Xz.b.c.b.o.z _ 7.6.IX&XjXz.bXz _XzXz _Xz.b.r e.rXtXg.:.^.o.o.oXzXz.c _ _ _Xz.bXg.b.^ ZXu.o.^.b.b.o _.c.c.c.b.b e e.bXj.^.^Xz.bXz.cXg.c.cXg _ _XzXzXzXz.V.VXg.VXgXg.o.oXzXj.^XjXt ~ 3.`.`.`.X #XMX%.<Xe EX, U a a.~.e.~X-.eXIXVX- 3XKXI a a.~X-.e",
+".r.r.r.r.r.r.r.r.r.r.r.^ N ~ e.r.r e.r.r.r e.r.rXt e.rXt eXt.r.r.r.rXxX9X3XX q V.kX* N N.X.^.bXz.^.b.b.^.oXk.b.b.b NXzXzXg lXg N ~Xl.d.s % ^X+ zXr.-X7 $ $XD.Z U c.ZXJXKX. cXl c DX3 :XcXc.9.-X. XM.[.[.j.E.EXGXnX<.[XH.,Xc.,.!.w ' #X- 3X,X- 8XDXD.ZXl.0Xm ! $ mXo T ) q I q./.f 5 I./ 5 I.$.RXtXt.r.k e.k.b.b.bXzXz _.b.b.^Xz.^XzXzXzXzXzXzXzXz.b.b.b.bXz.^Xz.b lXzXzXzXzXz _.o.V _ _.b.b.b.b.o.V.oXg.o.o.bXzXzXzXzXd l.bXz N.bXzXz.^.b.^.^ ~.rXt.r e.r.r.r.rXt.r.r.r.r.r e.r.r eXj.^XzXz.b NXz.bXzXzXzXzXzXzXzXzXz.^XzXz.^XzXzXdXzXz.b.bXz.bXzXz e.r.rXj.^Xz.VXzXj.oXz _ _XzXzXzXzXzXzXzXz.o _Xz.^XzXz.b.^.r e.r.8.8 F.`XIXK oX+ H.pXnX4.w <.pXr &X2 0.=.N 8.* R a.e R.*.e.~.e 3 3.8 c.e a tXJ s 8 8 C < x._ UXL O O O yXDX-.8.`.`.`.`.`.8 ~ ~ ~.`Xt.^Xz.U.#.#.U.6 _Xz _Xz _.b.b.b.b NXzXj ~ ~ F.8 F.8 ~ ~ ~.rXt eXtXjXjXg.c.c.c.c.V.cXg.c.VXg.VXgXg.c.c.c.V.V.V.VXgXg.V.cXg _.o.UXzXzXzXzXzXzXz.bXz _XzXz _Xz.oXz _.b _.bXz.b.X j.X.XXk.:Xt.r.r.r.r.r eXj.bXt e.r jXj.kXtXj.r.b.b.^XzXzXzXz.oXg.^.b N N.:.z.IXg.^Xg.^.^XzXz _Xz.^ N eXt.r.r q j.XXzXgXz _XzXg _Xz.bXz.b.b.bXg.b.:.z.X.&X&.#.VXzXz _.b.bXj.bXg.^XzXzXz _Xz.b.o.o.V.o _ _XzXz _.o.V.cXgXg.c.V.V.o.b.^.o.^Xt ~.8.8 F.~X9 `XHX% [ [.- x `.] :Xc 3.a 3 3X-.e aX- R.e.e.e a.eX-",
+".r.r.r.r.r.r.r.rXt.r.r ~.b.rXt.r.r.r.r eXt.r.rXt.r.r.r.r.r.rXt.r.r.rXX.X q q.f.fXXXtXt.^.b.b.b.b.bXz.^Xz.U dXgXz.^.b.b.b.oXk.c.b ~X5 v 0..Xn H.[Xc.[.- x h.a.M RX,.M #XD 3XI 3X-X-.aX-.a.e t.} $XBX..- V.l :.YXBX7 VX<.[Xh.O.3 @XU =XOXc.,XJ 3 3.a RXD.w sXlXPX..5.5.8 : qX9 q.$XxXkXk.RX9 )X9X9Xk.rXt.r.r.r.k.o NXzXzXzXzXzXzXz.bXz.bXzXzXz.bXz.b.^.^.^.^XjXjXj.^.^ l.^.bXzXzXz _.oXg.cXg.cXg.VXgXg.o.V.o.o.b.bXzXzXzXzXzXg.b.bXzXz.^.^Xj.^XdXj e e e.r.rXj.r e.r.r.r.r e.r.r.r e e.rXj.^.b.^XzXz.^XzXzXzXzXzXzXzXzXz.^XzXz.^Xz.^XzXzXz.^Xz.bXzXzXj.b e e e.^.o.c.I.cXzXz _ _ _XzXzXzXzXzXzXzXz.o.XXzXzXz.^.bXj e.rXt ~ F.`.~.` $X+.EX2Xr.xX4XpX+ yXpX2X> 0 v C.* a R a R a.e B.eX1.8.e.eX-XDXG t.).s.N.N C.MXe U.W / 0 OXL mXI.8.8.8 ~.8 F.r.r 3.8.8 ~Xj.bXz.b.bXz.oXgXzXz.bXz _ _.b.b.bXzXjXt ~.r ~.r ~.r.r.r.r.r e.r eXt eXk.o.V.c.c.c.cXg.V.c.c.V.c.c.c.c.V.c.c.V.V.V.V.c.V.V _ _.V.bXzXzXzXzXzXzXz _.bXz.b.b.^Xz.o.o.oXzXz.b.bXz.tX&Xx Z.X.r e e e.rXj.^XzXjXj.rXj jXt.rXj.k.r.^.b.b _ _Xz.^.VXgXz.b.b l.:X@ d.^.bXzXz _.bXz _Xz.bXz.r.rXj.X.z.:.U.^.#.^XzXz.V.bXz _Xz.bXz.^Xz NX .:XgXx./Xz _ _ _.bXz.bXzXg.o.bXz.b.bXzXz _ _Xz _Xz _Xz _Xz.o.VXg.V.c.c.VXg.V.c.oXz l.^.r.8.`.8 ~.~X9 :.[XpXqXe h R.MX,Xl.K 3XI.eX-X-.~X-X-.aX-.e a.~.e.e",
+".r.rXt.r.r e.r.rXt e.r.r NXt e ~.rXt.r.r.r.rXt.r.rXt.rXt.rXt e.rXtXtXj.rX*.^ N.kXgXtXj NXz.^.^Xz.b.b.b.b.U.$.o.bXz.b.b.b.o.U.c.b ~.DXG...s ^X< nXBXB hX,X, R R.aXD.aX,XD.a aXI.eX-.eX- aX-.eX. K.G.,XXXXXMXM #.l.l.l.l.- n.- yXKXK.' $X, h $X- RXD.a B.w.w.' g '.e.`.`.`.`Xt.r.r ~.rXj.k.rXt ~.r.r.rXt.r.r.r N.oXz.bXz.b.b.b.b.bXzXzXzXz.^Xz.^Xz.^Xj e e e e.r.r eXjXg.^Xz.^XzXzXzXz.o.VXg.cXgXg.V.o.o.bXzXzXzXzXz.bXz.bXzXg.o.b.^Xz.^ e.r eXt eXj ~ ~XkXk.z.rXj.r.r.r.r.r.r.r e.rXj.r.^Xz.bXzXzXzXzXz.^XzXzXzXz.^XzXzXzXz.^Xz.^XzXz.^Xz.^.bXz.^Xz.^.^Xj eXz.bXg.U.6. Xg.b _.o.VXz _XzXzXzXzXzXz.o.oXz.^XzXz.bXj e e.r ~.8.`.`X- t.w.j ..4X>Xn o.EX>X+.; WX0XLXG xXK.aXD.}XlX,XI c 3.~ R aX-.* = WXb.) / 2.sXeXn U.N / OXaXL `X-.8.8.8 ~.8.8 ~ 3X* ~ ~.r.^.b.bXz.b.b.oXg.o.b _ _Xz _.b.o.b.^ e.r e.r.rXt.rXtXt eXt.rXt.rXt e eXk _XgXg.cXg.V.c.c.c.cXg.c.c.c.c.c.c.cXg.c.c.c.c.V _Xz.o.oXzXz _XzXzXzXzXz.bXzXzXzXz.b.oXj./.#Xz _.^Xz.b.b l.Q.X e e.r.r.r e.^Xz.^.r.rXjXtXk.& q l eXtXz.^XzXz _ _ _.V.o.b.^.oX@ ZXz.X iXz.bXz _XzXz _Xz.^Xz e.r.r.& q.7.6.^.cXzXz _ _XzXz _.b.bXz.bXz.U.z.t ZXg.IXzXzXz.bXzXz.^Xz.c.^Xz.bXz _XzXzXzXzXz _Xz _Xz.b _.VXg.V.VXg.VXg.V.V.oXg.V.c.^Xt ~.8.`.`.`XM `Xp Xe E u aX-.e.e a.~.~.e.e.e.e.eXI.e.e a.e.e.}.u",
+".r e.r.r.r.r.r.r ~Xt ~.r.^.k.r.r e.r.r.r.r.r.rXt eXt.r.r.r.r.rXt.r.r ~Xj.k N N.^Xk.^Xz.bXz.b.^Xz.^.^.b.^.b.bXz.b.^.bXzXz.oXk.c N ~XlXe ^ ^.@ WXH.h.-X,X,X, R hXI hXDX-.eX,X-XIX-.~ R.e.e a.a.eXM Y.eXIXM 3.} # #.l #XB.- y s.w.W 8 R R tX-X- a RX1XD 8.nXl sXK T.`.` F ~.8.r.k.rXt.rXtXtXtXtXtXt.rXt.rX*Xt.r.^.XXjXzXz.bXzXz.b.b.b.bXz N.b.b.^.^Xj e.r e.r.r.r e.r.r.oXt.^.^XzXzXz _.oXgXg.cXgXg.cXg.o _Xz.^XzXzXz.bXz NXz.X.oXz.^.b.^Xj.r e.r.r ~Xt ~ e.r.zXj ~.r e.r.r e.r.r.r.rXjXj.^Xz NXzXzXz.b.^Xz.bXzXzXzXzXzXz.^Xz.^.^XzXzXz.^.^XdXz.b.^XzXz e ~ e _Xg _.o.U.UXg.V.VXg.V.b _ _.b.bXzXzXz.o.XXz.^Xz.b.^ e e.r.r.r.8.`.`.`.a RXq.s 0 S w.@.@ o w v ^X0XpXw.9XJX3 VXl :X3XKX5.5.e.e B t C o *X=X6X>.4X> 0X>.. v 2.s b T 3.8.8 ~.8 ~.8.8Xt.r.r.`.8Xt N.bXz.b.b _.o.o.oXzXzXzXz.b.b.b.b.^ e.rXtXtXt.rXt.rXtXt.r e.r.r eXtXt.U.b.V.cXgXg.cXg.c.c.cXg.VXg.c.c.c.o.V.V.VXg.V.V.oXzXz.V _XzXzXz.bXzXzXzXzXzXzXz _Xz _.b.V.o.6.cXz _XzXzXzXzXgXgXj e e eXj.^.^Xj e e.o q qXt ~.r.r ~Xj.bXz.bXzXzXz _XgXz _.b.zXu.t.6.( l.^.^ _XzXz _Xz.^.oXz ~.o PXg NX .(Xk.bXzXzXz.b _XzXz _XzXz.b.^.zXg.^.:.(Xz.oXzXzXzXzXzXjXzXkXz.b.bXz _Xz _Xz _XzXzXzXz _Xz _Xg.c.V.VXg.V.o.V.V.oXg.c.b.bX*.8.8 ~.`X-X*Xc 1.i UXD t.e a.~.~.e.e a a a.e a.e.aX,X5 c.ZXI aXI",
+".r.r.r.r.r.r.r.r.r e.r.rXt N.rXt.r.r.r.r.r.rXt.rXt.r.rXt.rXt.rXt.r.rXt.^Xz.^XzXzXg.bXzXzXz _.bXz.o.b.bXz.b.^.bXz.b.b.b.b.o.cXgXz.8X5XsXb.@.j nX#.S.lXD UXDXDXMXI.}.aX-XDX1X-.~ 3X-.eX-X-X-.e.a.eXl.,.eXl.u.~ aXMXM x.-XcXG.w.DXDX-X-XI RX-X-XDXIXD R 8.nXm TXcXl.~.`.` ~ F.rXt.r eXj.rXt.rXtXt.rX* ~Xt.r.rXt.r.b eXjXz.^Xz.^.b.^ NXz.^.^.^.^.^Xj e.r.r eXtXtXt eXt.r N e.r.^XzXz.b.b.V.VXgXg.V.o.o.o.o.bXzXzXzXzXzXzXzXzXz _XgXzXz.b.^ e.r eXt.r e.r.r.r.rXj ~Xt.r.r.r.r.r.r.r.r e.^.^ NXz.^.^.b NXz.bXzXzXzXzXzXzXz.^XzXzXzXz.^XzXzXzXz.^.b N.^.^Xj e eXd.b.#XgXg.o.o _.c.o.c.VXg.VXg.o.o.o.bXz.o _.^Xz NXzXj.r e.r.r.r ~.`.`.`X- t.w._.s ^.@ H wX> 0 vXe u 1 a R.a hX-.aX-.D.5X-X1.eXDXK.*.N.).v ^.@X>X>.4Xn ^.sXi b OXcX,.a.8.8XV.rXV.r.rX* ~ ~ ~.r.k.b.bXz _Xz.bXgXg _.o _ _ _.b.b.bXzXj.r e.r.r.rXt eXt.r eXt.rXt.r e e.kXg.b.c.c.c.VXg.o.oXg.o.o.o.oXgXgXg.V.c.c.c.V _XzXzXzXz.cXz _XzXzXz _XzXzXz.bXzXz.bXz.b _Xj.o.c _XzXzXzXz.oXz.o.VXz.^.^Xz.bXzXj e e ~ q.^.z eXt ~XtXt.^.b.^XzXz _Xz _.cXz _XzXz.^XzXjXz.bXz _XzXzXzXz _XzXzXj.^.oXkXkXg./.I.I.b.b _XzXz.bXzXz.b.b.b.b.z Z./.oXg.(.^.^Xz.o.o.^XjXj.oXgXz.b.bXz _ _XzXzXzXz _ _XzXz _.VXg.c.cXg.V.c.VXg.V.o.c.#Xz N.^.8.8.8.8.` R E U E U.e.aX1.e.eX-.e.~.e.e.eX- RXl #XK 1 :XMX5.9",
+".r.r.r.r.r.r.r.r e.r.r.r ~.b.rXt.rXt.r.rXt.r.r.r.r.r.r.r.rXt.rXtXt.r eXjXz.^XzXz _.VXzXzXz.b.^.^XjXz.b.^Xz.b.bXzXz.b NXz.o l.o.^ F.ZXL.) ^X%.j.-.- h.MX,X1X,.K <.a.a 3.eX- 3XD.eXVX-.e.~.e.~ a.~XIXIX- 3XlX-.a c x `.jXK.w.W 8X- a.~.aX- R R R R.aXD.w '.0 gXlX1.`.`.8.8.`Xt.r.r.rXtXtXt.r e.r.r F.rXt.r.rX*.r.X e.^.b.b.b N.X.^Xt e.r eXt e.r.r e.r e.r.r e.rXtXt.r.^Xt e.^XzXzXzXzXzXz.b.b _.bXz.b.bXzXz.^XzXz.^XzXzXz N _.XXz.^ NXj e.r.r.r.r.r.rXt.rXt ~.r e.r.r.r.r.r e.r.rXt N.k N.^.^.^.^Xz.^Xz.^Xz.^XzXzXzXzXzXz.^XzXzXz.^XzXjXzXz N.b.^XjXj e.rXd _.Q.I.c.o.o.o.c.V.o.V.VXgXg.VXg.o.oXz.X.XXzXzXz.^.^ e.r.rXt.r.8.`.`.~.~XI R v 2 2X= 0 2X= 2.N.w t.MX,X-.e 3.}.e 3.uX-.e 3 B., yXp.N.s.@X4XnXp.x.;.@Xf.v 0XnX+X,X- 3.`.8XV.rXtXt.r.r.8 F ~XtXj.b.b.oXz.bXz.c.o.bXz.bXz.b.b.bXz.k eXt.r eXtXt.rXtXtXtXt.rXt eXt.rXt.bXg.b.c.cXg.o.oXz _XzXzXzXz.o.c.c.c.c.cXg.V _XzXzXzXzXz lXzXzXzXzXzXzXz _Xz _Xz.bXz.U.c.b _.b.bXz _.VXz _XzXj.U.V.^Xz.b.b.^Xj e e.r e e.oXt.r eXtXt.rXj N.^ e eXzXzXg.c.^XzXzXzXz.b.o.^XzXzXzXz.oXzXzXzXz.b eXj.^ N N.^.^ N.c.bXz.^XzXzXzXz.^XzXz.b.bXg.b.o.^.^.o N.b _.bXz e e eXg.bXz.b.^XzXzXzXzXz _.bXzXzXz _ _Xg.c.c.cXg.cXg.V.cXg.c.c.U _Xz.^.r.`.`.`X-.` Xe h a.eXD.a.e cX1.~X1.} R aXD.eXI #.~X-.aX-X, c 3",
+".r.r.r.r.r.r.r ~.r.r.r.r.r N.r.r.r.r.rXt.rXtXt.r.r.rXtXtXt.r.rXt.rXt.r.^XzXzXzXzXz.cXz.^.^.b.^.^ eXj N.b.o.z.o.bXz.bXzXz.o.cXg N F c.).WXq z k.- 1 U.M.D R $.}X- RXI R aXD.e R.u.eXV.e.~X-X-.e.~.a.8.~ c.K.e.u #XMXKXUXGXa.D a aX-X-X-XD.e aX- RX1 8Xa.wXOXc R R.`.8.8 ~.8.rXtXtXt.rXt ~XtXt ~ F.8 ~.8.rXt.r.rXzXtXz.b.bXz.b.^ e e.r eXtXt.r.rXt.rXtXt.r.r.r e.rXt.r.^.^Xt.bXzXzXzXz.bXzXzXzXzXzXzXz.bXzXz.b.b.bXz.b.^Xz.b.oXg N.bXz.k e.r.r e ~Xt.r ~.r.r.rXt.r.r e.r e.r.r.r.rXt.^.^.^.^XtXtXj.^XzXz.bXzXz.bXzXzXzXz.^Xz.^.^XzXzXz.^Xz.^.X.^XjXt ~ ~ e ~Xz.c.U.o.o.VXg.V.V.V.c.V.V.V.o.VXg.bXz.o.b.^ N.b.^Xj.r.r.rX* ~ F.8.`.`.`.~ BXl.s / /X= /.N.N.N U R.~XD.e.a aXI.uX-.e.u T D.eX, 1 UXLX>Xh MXnX> S.+.J 0 2Xn y.a.a.}XI.8.8.r.r.rXtXt.rXt ~.rXt.^.o.bXz _.b.b.U.V.bXz.V.b.bXz.b.^ e.rXt e.r.r e.r.r.r.r.r.rXt eXtXtXjXgXgXzXg.cXz _ _XzXz.b.bXzXz.o.c.V.b _.V.V.oXzXzXz _Xz.b.cXzXz.bXzXzXzXzXz.bXz.bXzXz. .U.cXzXzXz.oXzXzXzXzXz _.c.^.b.b.b.^ e.r eXjXj.rXj ~Xt.r.r ~.r e.r e eXjXjXz.^.c _ _XzXz.b.oXz.^ _.b.b _Xz _Xz _XzXz.b.r e.k.^ N.^.b NXg.^.b.b.b.^XzXjXj.^XjXjXj e.^Xj eXj NXz.b.^.^.^ e e eXk N.b.bXz.bXz _XzXz _ _XzXzXz _.oXg.VXg.c.cXg.VXg.V.c.c.c.U.c.^ N ~.8.8.8X-.a.F._ U.i.MXD aX- DXl.e 1 : 3.eXJXDXD :XM.a x :.e.e $",
+".r.rXt.rXt.rXt.r.rXt ~Xt.rXt N.r.rXtXtXt.rXt.rXtXtXt.rXt.r.r.r.rXt.rXtXj.^XzXzXzXz.UXzXzXz NXjXt.rXzXzXz.IXg.#.^.bXz.bXz.b lXg.^ F : n.y.h.T.[.-Xq $XDX,.aX,XI.a hX1.aXlX3XlXIXI c RXI.~.e.~X- aX-.a 3X-X*X- #.K `.- y.w.ZXI B.~.~X-X-X1.e B.*.aX,.Z.n.n m.Z RX1.`.8.8 ~ F.r.k.rX*Xt.rXtXt.r.r.8 F ~.8 ~ ~ ~.r NXj.b.bXz NXz e.rXj.r.rXtXdXt ~.r.r.r.r.r ~Xt.r.r.r e.kXj.r.^.^.^.^.^Xz.bXzXzXzXzXzXzXzXzXzXzXzXz.^.bXz.bXz.^ l.b.^.b.^Xd e.rXtXtXdXt.r.kXtXtXtXt.kXjXtXt.^XtXj.kX*Xj.^.kXj.^.^.kXg.XXg.b.oXgXgXgXg.o.o.o.oXgXg.oXg.o.oXg.X.o N.^.^.^.^ lXgXz l.c.#.U.U.U.U.U.U.U.U.#.U.U.U.U l.V.z l.oXgXgXg.b.^.^.k.^.k.uXV.HXV.8.8XI.w s O.s.s.s.sXs.ZX, c T.u R.MX1.a.a.` :X1 c.2.a.a CXs.; z.h M M.T.+.x vXn.s.qXGXJXl.`XIX*.KXVXtX*.r eXt.r.rXt.rXj NXzXzXzXzXz.UXzXzXzXzXzXz.b N eXtXtXtXt.r e.rXt eXtXt eXt.r.rXjXjXzXk.b.b _.b.bXzXzXzXz.bXzXzXz.b.b.bXz _.b _XzXzXzXzXzXz.o.o _.bXz _.bXz.bXzXzXz.b.oXz.U.6XgXzXzXz.bXzXz.b.bXz.b.UXz.bXzXzXj e e.^XjXt e eXt e.r.r e.r.r.rXj.r e.^.bXz.UXzXz _XzXzXzXzXzXz.bXzXzXzXzXzXzXzXzXz e.r e eXt eXtXz.^.^.bXz.^ N.b.^ e.r eXt.r e.r e.rXj.^.b NXz.^Xj e.r.^.oXz.bXzXzXz.bXz _XzXz _Xz _Xz.oXg.oXg.V.V.o.V.c.c.V.c.o.I.o.c.b.^.r.8.8.`.a c.g._ h.a a a.e.~.~.` #.` # R.e.5X,.~X5.a.e :X3.e.a k",
+"Xt.r.r.r.r.r.r.r.r ~.r.r.rXt N.r.r.r.r.r.rXt.rXt.r.rXt.rXt.r.rXt.r.r.r.kXzXz.^XzXz l.bXz.b.^Xj e e.^.^.^.b.b.o.^.bXzXzXz.b l.c.b.H `Xc.1Xp.T nXK 1Xq.aX,XI RXKX, 1XD :X,.%Xc : D ` D c 3XD 3.eX-X- 3 3.a.u 3 #.lXcXJ.w.w.w.*.~X-X- RX- R a R.a.D.Z.w.w.wXO RXI.`X-.H.8.8.`.u.8X* ~XtXtXt.r.k ~ ~ F ~ F.8.r.8.r NXd.X.b.X.b.^Xj.kXdXd.r.rXt.r.k.r.k N N.^.X N.^.b N NXx.X.b.X l.z.z.QXg l.c l.U.c.U.c.c l l.c.c l l.U l l.U l.I.o.zXg.X.b N.b.X.k.k.^.k.k.^.^.k.^Xd.k.^Xj.k.^.k.^.^.kXjXj.k.^.^.b.o.X.b lXg.o.b _.b.b.b.o.X.o.b.b.b _Xz.b.^.^XjXjXtXjXd _.Q.o.b.U.c.c.c.c.c.c.c.c.c.c.c.c l.c.o.b l.o.b.X.b.b.^XjXjXt.kXt.r.H.8.H F.H.8X1.'.W.sXL.dXs C 8XI.u.u.ZX1 R 3XD R.,X5 'X1XlXIX, $XrX>X+ z.L.+.T.EXf o.@XGXw T.]X. ( Q 5 f Q.AX@Xx N N.X N.X NXg.U.U.U.U l.c. .U.U.U.cXk lXgXg.^.k N.^.^.k.k.kXjXtXj.k.kXj.k.^ N.b.b.z.o.b.b.b.bXz.bXzXzXzXzXzXzXzXzXzXz.bXzXzXz.^XzXzXzXz.c.oXz.bXzXzXz _Xz.o.^.oXz.b _.^.oXz.^.o _.bXzXz.bXzXz.b lXz.bXz.^XjXj.^.^Xt e ~Xt e ~.r eXt.r e ~ e.r e.^.b N.VXzXzXzXzXz.bXzXzXzXz.bXz.b _ _.^Xz.^.^ e.r eXtXj.rXt.^Xj eXjXj.^Xz.bXj e e e e e e.r e.r.rXtXj.^.^Xt e.r e.r.o.b.b.b.b.b _XzXz _ _XzXz _ _.o.o _.VXg.VXg.c.VXgXg.c.c.#.V.c.b.^.r.` ~.` a $XG E U a a.e.e.~.~.~X- c.e.e.~.eXI.e.e.~ a.eX- a aX-",
+".r.r.r.r.r.r.r.rXt ~.kXt ~.r.X.rXt.r.r.rXt.r.r.r.rXt.rXt.rXtXtXt.r.r.r.^ NXzXz.oXz.b.o.^ NXj.rXtXj.b.^.b.^.o.^Xz.b.b.b.b.bXgXg.^.HX1XB.TX<.T.-XK $X,.aXD R.'XDXJ : k cXK : c : DXK.a.eX-X- 3X1.eXIXD.a.} # # `.[ y.wXL.ZXD R.~ RX-X-XDX, R $.9Xc T gXO m.`.HX1X*.uX*XV ).z.kX9.X.5 NX9.5.K.X N.k.kXtX*.k.k.^Xx.XXgXg l.b.^Xo.^Xd.rXt.r.XX9.k ~X*.r.kXtXtXt N.^.kXtXj.^ eXt.^Xz.^XzXzXzXzXzXzXzXz.^Xz.^.^.^.^.^XzXz.^Xz.^XzXg.^.^XzXd.k.^ ~ ~ e.r.rXx NXtXt.r.r e.r.r.rXt FXt.rXt.r ~.r e ~ e.^.^Xz.^XdXz.b.oXzXz.bXz.^Xj.^.^XzXzXzXz.^ eXdXt eXjXtXg ~.^ eXz.o.V.o.VXg.c.VXg.V.o.VXg.V.V.o.bXz.o.oXzXz.^.b.^.r.r e.r.r.r F F.8.H.~.H.~.wXL.N._.N t t R 3XI.e.`XD BXlXJX-X5 DXl.~ $ c 1 n.[.W.;.TXrX2 ^ 2.v O b.9.ZXI.XXdXxXoXdXxXxXxX9Xj.r.r e.rXjXj.^.b.b _ _ _.o.c.b.b.o.o.b.o.b.b.k e.k.k.kXjXjXt.r.rXt.^.k.^.b.bXgXkXg.IXg.U l.c l.U l.U.c l.U.U.U.c l.U.U.c.c.c.c.c.cXg.c.o.#Xg.o.o.VXgXg.o.^.o.c.6. .bXzXz.bXzXz _XzXzXz.b.bXzXz l.o.^Xz.b.^.^.^ N.k eXjXjXj.r.r eXt ~Xt e.r e e.^.b.b.o l.b _.bXzXzXzXz.b.bXz _XzXzXzXz.b _.bXj e.r e.r.r.rXj.^.r e.rXj eXjXjXj.r.r e.r.r.r e.rXt e eXjXt.r e F e e.rXz.bXzXzXzXzXzXzXzXz _XzXz _Xg _Xz _.o.c.c.c.V.c.V.cXg.U.c.c.V _XzXt.8.8.r.e #Xq U.} <.e.e.e.e.e.~.~.e.e.e a aXI.e a.e 3X-.e.e aX-",
+".r.r ~.r.r.r.r.r.r ~.r.r.r ~.^.k ~.r.r.r.rXt.rXt.r.r.r.r.r.r.r.rXt.r.r.^Xz.^Xj.^.b.b lXz.b.^.k.^.^.b.^.b.b.^.b.bXz.^.b.^.bXg l.b.r.u.1Xr.j.TXw.YXc h $ aXDXD.MXD x.~XDX- cXI R 3 $.u.uX- :.ZXI.uX, $Xl c.l `X7XH nX0.j oXG s.D.DXDXDXD RX,XD sXl.!X$.O YXy.]Xl ) 5X9 ).8 } 5.$ q.f q q.&.r.k FXt ~.8 F.8 ~ ~.r.kXg.X.^Xz ~ ~ e ~.` F ~.r ) NXx.8 F.8 ~XjXtXj.^ N.^Xj.k.^.rXdXz.^.b N.bXz.b.b.b.bXz.b.b.b.bXz.b.bXzXz.^.^XzXz lXz.^.X.b.bXj e.r.r.r.rXt N.z ~Xt.rXt.rXt ~.rXt.r.r.rXt.rXtXt.r.k.b NXz.bXzXzXz.^XzXjXzXzXz.bXzXz.b.^.^XzXd eXj e.r e.IXg e.r e.o.VXzXz _.oXg.VXg.V.c.V.o _XzXzXzXzXg.b.^XzXz.^.^Xt e.rXt.r.H ~.8 F.8 F.`.`XD x.W.) u.*.*X1X-.8.~ DXl RXcXlXD.e.e.D cXJ `., s M = M.4X> .X=.v OXG.0X-.H.r.H e.rXd.r ~.r e.r.r e.r.rXjXj.^.b.bXzXz _ _Xg.b.o _ _XzXz NXj e.8Xt.r.r.r.r ~ F F.rXtXtXtXj.^ N.bXz.cXzXzXzXzXzXzXzXzXzXzXz.bXzXzXzXzXz.b _.b.b.b.b.b _.b.I.oXg.oXg.o.o.c.c.c.U. iXg.U.U.U.c.U.U.c.U.U.cXk.cXg. .c.cXgXg.o.X.o.o.b N.b NXj.^.^ e.r e ~ ~ e ~.^.^ N.^.o.b.^.^XzXz.bXz.bXzXz.bXz _.b _.bXz.b.^ e e e.r e.r e.k.^.r e ~Xj.r.r.r.r eXt e e.r e.rXt e.r.r.rXj.r.r ~.r.r e N.bXz.bXz _ _ _.b _ _Xz.b.VXg _Xz.V.VXg.cXg.c.cXg.cXg.#.c.V.c.oXzXt.r.`.r.e #Xq E U a.e.eX-.~.~.eX-.~ a.`.~ c.H.~.~.eX-.e.~.e.e.e",
+".r.r.r.r.r.r.r.r.rXt.rXt.r.rX* N.r.r.rXtXt.r.rXtXt.rXt.rXtXtXtXt.r.rXtXt.^ NXz.b.^.bXg NXz.^XzXzXz.b.^.^.bXz.b N.o.oXg.o.oXk.UXk.5XI.Y.. v.1.1.- k ` x c c $ $ $X5XM.5.uX, 3 R 3XD R cXIX3XJ.3 m.HX1X,XDXM # .[X8X> w.; vXa.wXs R B.e.* a.e.D.Z.'XU.Z 4.k.2 q.uXJ.R.$ ~ q 5 I q.A q.X 5XtXtXtXtXt.r.r.r.rXtXj.kXg.^.b.^ e N N.^ N.k FXtX* N.r.r.5.r.XXj.X ~.zXkXgXkXgXk.r e.^.b.b.^ _Xj.bXzXzXz.^Xz.bXzXz.bXz.^.b.b.b.b.b.^Xg.^.b.^.^ NXd.r e.r.r.k.r.r F.k.r.r.r.r ~Xt.r ~Xt ~.r ~.r.r ~ e.^.^.b.^.b.^.b.bXz.b.bXzXz.^.^.^Xd.^.b.^.^ e ~Xj eXj.z d.I F eXz.b.oXzXzXz.VXg.VXg.VXg _ _XzXzXzXzXzXg _XzXz.^.b.^Xj e.r.r.r.r ~ F.8 F.H.8X1.~ s.w.)Xs t RXD.8X1.e c m.~ 3.a aX- R RXKX5XD.e x.M.Y JXnXfXnX=.v.s v 9.Z.H.rXt e FXd.rXtXtXtXtXt.rXj eXtXj N.b.o.o.bXzXz.oXgXz _.b.b.b.bXzXj.r F.r.rX*.r.r ~ F ~.r.r eXj.^Xz.b.b.oXg.b.b.bXz.b.bXzXzXz.bXzXz.bXzXz.b.bXzXz.bXzXzXz.b.bXz.cXzXzXz.bXz _Xz.bXz.^.#.U.b.^XzXzXzXz.bXz.oXz.o.o.b.o.z.o.o.o.o.o.o.o.o.o.XXgXk.o.zXk.^.zX@.b N.b N.UXkXgXg.6 l.c.cXgXg.V.o.o.o.b.b.b.b.^Xz.^XzXz.^.r.r.r.r.r.r ~.^.rXtXtXtXt eXtXt.r.r.r.r.r.r e.r e.rXtXtXt.rXt ~.r.r e.^.^.bXz.bXzXzXzXzXzXz _ _Xg.c.o _.oXg.c.c.V.V.V.c.cXg.c.#Xg.V.c _.b.^ ~ ~.8.` cXq U U.e aX-.e.~.~.eX*.~X-.a #.uXI.~.e.~.~.e.e.eX-.e",
+"XtXt.rXt.r.r.r.r.r.k ~XtXt.r.r N.r.r.r.r.r.r ~Xt ~.r.r.rXt.r.rXtX*.kX*.^ NXgX9XgXgXg.I lXk lXkXkXkXg.UXk.IXu.U.cXgXgXgXg.o l.UXg.k 3 v.W...;.1Xc `.i hX, B.a.a R R R.aXI.a R.eXIX- aXDXDX1.,.3XD.H BXV 3XX # >.[ 0.P 0X>XCXG sXa.ZX1 tX- t R.Z.w.'XO B.2X1.u.`.8.8.r.8X*.uXtX*.^ q.kXt.rXtXt.rXt.r.r.r.rXt.r.rXt.o.^.bXj eXgXg.o NXk.`Xk N.z.kXtXk NX9.oXj.^.z.cXk.z.o l ~ e.r.^.^.b l.^.b.bXz.b.bXz.b.^.^XzXz.bXzXz.^.^.^.^.c.XXgXg.XXz e.k FXtXt F.r.rXtXtXk.IXtXt.r ~.kXtXt.rXt.rXt.r e.k.^.^.b.bXd.b.^.#.^XzXz.^XzXzXz.^.bXz NXjXt e ~.^Xj.^Xj.QXz.r e.IXj.bXzXzXz.o.c.o.VXg _ _XzXzXzXzXzXz.cXz.bXz.bXz NXj.r e.r e.r ~ F F.8Xx.uXVXlXD.E.)Xe.M.eX1.~.H RXI R.eX-X- a a.e R R.eXDX, $XK U.W.. 0 0...s v.E TX-XV.r.rXj.r ~.r.r.rXt.rXt e.r.r e.k.b.bXg.o _XzXz.VXg _.b _.b.bXz.^.r ~ ~.r.rXtXt.r.r.r.rXtXtXt.^ N.b N.b.o.o.b.bXz.bXz _.b.bXzXz _.bXzXzXzXzXz.^.bXz.bXzXzXz.b.o.VXz.bXz _Xz.bXz.U.oXz.bXzXz.b.b _.b.bXz.bXzXz.b.bXz.b.cXz _ _XzXz.bXz.b.b.b.b.b N.r eXkXgXjXjXtXt e N.^Xj.^Xk.b.b.o.o.o.o.oXg.c.c.U.c.U.U.U.U.UXkXg N N.b N N N NXx.k.kXtXt.rXtXt.r.r.rXt.r.r.r.r.r.rXt.r.rXt.rXt.rXj.r.r.X.b.b.b.b _.b _Xz _XzXz.o.cXg _ _Xg.c.c.c.c.V.c.VXg.V.U.c.c.V.c.VXz.^Xt FXt.eXM._ E.} a.e.~ R.~.e.~.e.eX*.` R.`.~.e.~.e.e a.~.e.e.e",
+" ~ ~.r.r ~.r.r.r.rXt.rXtXt.kXj.X.K.^.k.^Xo N N NX9.XX9.X NX9.X.X.^ N.^.^.^.^Xz.o.b N.oXgXz.b NXz N.^.b.bXg./.o.^XzXz.bXzXzXg l lX* 3Xs.s ^ MX0XK V h 3 h 3XD.M.a RX-.uXDX-.eX1.a R.a #Xl K.,X-X1XV.~.u 3XM.lXBX2XA.v.BXfXr W y v.w.w.ZXI.*XD.w.w.!Xl.n :.~.u F.8.8.rX*.rX*.rX*.r 3Xt.rXjXt.r.r.rXtXtXtXt.rXtXtXt.o.^.b.^.r.^.kXt.^.kXt.r ~ ~.8Xt ~.k ~XtXj.r e.^.b.bXj.oXdXj eXzXzXx.o.bXz.^XzXzXz.^Xz.bXzXz.^Xz.b NXz N.bXz.z lXg.I.(.X.b eXt.r eXt ~Xj.rXg.^ ) 7.kXt.r ~.8 F.kXt ~ eXtXj.^.^ q.^ e.b.b. .b.b.^.^.^.bXzXjXz.bXd.^ e ~ e e.b.^.bXz.^Xd e e.RXz.bXzXz _.V.V.V.o.V _ _XzXzXzXzXzXz.VXzXzXzXzXzXz eXt.r.rXt.r ~ F.8.r.KXo.| 'Xc.> yX> =XDXKX-.~ 3.a RX- a.e.e a t.eXDX, 3 cX,.wXs CXL.v 0.s H.EXHX5 `.5XkX9 NXtX*X*.rXtXt.r e e eXt.rXj.b.bXg.c.o.o.bXg _Xz _.b.b.b.^Xj e F ~X*XtXt ~ ~.rXtXt.rXj.^.^Xz.b.bXz.c.o _Xz.b _.bXzXzXz.b _.bXz _Xz.bXz _ _XzXzXzXzXzXzXzXg.bXz _XzXzXzXz _.#Xz.bXz _Xz _.b _.bXzXz _.b.b _.b.b.c.o.bXz.bXz _XzXz _XzXzXz NXjXjXj N.I.z.k.r e.rXj e ~.^.^Xz.b.bXzXz.bXz.^ _XzXzXzXz.^Xz.^.^Xj e e eXtXjXjXtXj NXj.k.^.^ N N.^.K N N N N N N N N N.^.^.^.^.^.k.k.kXjXd.b.b.^.^Xz.bXzXzXzXz _.o.c.c.V _.o.cXg.c.c.c.c.c.cXg.c.#XgXg.V.c.VXz.^Xt.r.8.` #Xq U h a a.e.K.`.~.eX-X-.8.}X9.~.e.~.e.e 3X- a.e.e R",
+" N N N NX9 N.XX9 N N N N N.^.k N.X.kXtXtXtX*.rXt.r.r.r.r.r ~.r ~.r.r.r.r.r.rXj.^ NXz.bXk.b.bXzXz.bXzXzXz N.o.b.b.bXz.b.bXzXg lXg.k.8 v 2.v &X<XB `.}.aXlXc c.a RX, cX-Xl.aXD.e.}X-.e R : xX3X.Xl.8.~.K 3 h.l.F W.J.4XbXfX:X>X0.E 9XLXa x U.Z.w.0 gX1 D 3.`XV.`.8 ~X*.rXt.rXt.rXtXj.rXt e ~Xt e.rXt.r.rXt.rXt e.r N.^.b.^ e eXj eXt e.rXt ~ ~ ~.r.XXx eXt.r eXj.^Xz N.^XkXk.^.^Xx.I AXzXz.^.b.bXz.^.bXg.I.I.XXz.b.^Xz.b.bXz.^Xg N.bXdX@X ~ e.rXt ~Xt.rXt.r ~Xj ~.z 7.r N./.&Xk ~Xt.rX* e N NXk.7.t.7.t.&.c.^.^.b.bXz.b.^.^.zX .t.^.r eXjXj.o.^XzXj _ e A.tX&XjXzXzXz _.o.cXg.V.c.VXzXzXzXzXzXzXz.cXz.bXzXz.^ N e.r e.r.r e.r ~ F.8X*.r.uXD RXe.E v.W.M.H.`.~ a R 3 BX-X- BX- B R.aX1 1 hX,XDXDXs.sXL o b &XJ ` k q 5 f.$.AX*X*.r.rXtXt.rXt.r.r e eXj.b.b.c.c.VXgXg.c.oXz.b _Xz _.^Xj.r ~.r.r.r ~ ~.8 ~Xt e.r.r.k.^.^ NXz.^.UXz.bXz.b _.bXzXz.b _XzXz _XzXz _Xz.bXzXzXzXzXzXzXzXz lXz _XzXz.bXz _.^.oXzXz _Xz.bXzXzXzXz.b.b.bXzXz _Xz.b.c.b _Xz _ _XzXz.b.bXz.^.bXj e.r e.r.r ~ e.r eXt.rXtXt.^Xj.^.^XzXz.b.bXzXzXz.b.bXz.b.b.b NXzXj e e ~ ~ ~ ~ ~Xt.k ~ ~.r.r ~Xt.r.r.r.r ~.r.r.rXtXtXjXtXjXj.k.k.K.^.^ N.XXg lXk.U.U.U.c.c.cXg.V.U.U.UXg.o.V.c.VXg.cXg.oXg.V.c l.#Xg.V.c.V.c.b.b.^ ~.8.a 3Xp EX, aXI cXIX-.~.e.e 3Xl.K.~.~X-.~ a.e 3X-.~.~.e.~",
+".rXt ~Xj ~XtXtXtX*Xt.r.rXt.r.r.r N.r.r.r FXt.r.r.rXt.r.rXt.rXt.rXt.rXt.r.rXt.r e.^ NXzXg.o.b.bXzXz.^Xz.bXz.bXz NXz.bXzXzXz.bXg l NXV s.s b z nX+.- h 3 k T., ' )XcXlXcX5 1 : x Y.a.a.e BX-.~ a.eXI 3 3 a #XM .[ . 0Xb % %.s.sXi 0 &X>Xp v.n.n Y ( m 5 D )., m 5 I fXtX*XtXt.rXtXt eXtXtXt.r.r e.r e e.r.rXj.^Xz l.b.b.bXz.^.bXz.b.^ e.r e.r.r qX$Xd.kXjXj.b.b.^XjXt ~.R ~.R.&XtXzXoXzXzXzXzXzXz N.X.b.: _.bXzXz.b.^.b.^.b.^Xg.^.rXxXx.:.k.k.rXt.rXg qXz ~ e.r.rXx.k , 5X9.^Xt.r eXt.^ NXzXz.bXz.fX .XXzXo.b.^Xz.^Xz NXd.bXt.:.kXjXjXjXz.^.bXz.^.b.b.:.bXz.b.^XzXzXj _.o.V.V.oXgXg.oXzXzXzXzXzXz.cXzXzXzXzXzXzXzXt.r e.r ~Xt e.8.8.8.8.`.`.*.N b.W.WXDXD.~.`X-X-X- R.e $XD.D.DX1X,X1 $X,.M.MXs.N.WXe.9 sXI.D.5 ~.rX*X*.rXt.r.rXt.rXdXt.r ~ ~ F.r.r.^Xz.o.c.c.c.c.c.# _Xz _Xz.b.b NXj e.8 F.8 ~.8.8 FXtXtXtXtXt.rXjXt.r e.^Xz e e.bXz _Xz _XzXzXz.bXz _Xz _XzXz _.bXzXzXz _.^ _.b.cXz _ _.b i.UXzXz _Xz.bXzXzXzXz.bXz _.bXz.b _Xz.bXz.o.c.^ _.bXzXz.bXzXz.bXz e eXt.r.r.r e e.r.r.r.r.r e.r.k.^.r.^.b.b.^Xz.bXz.^.^.^Xz N.bXzXzXz.rXt.r ~ ~ F ~Xt.r NXtXj.^XjXj.r.r ~ ~.8 F F F.8.8.r.r.r.r.r.r e.rXt.rXtXt NXt.^Xz N.bXz.bXzXz _.V.oXg.oXz.VXg.c.V.V.V.V.V.V.U.V. .c.U.#.U.U.#.cXkXk.XX*.K.-Xq.iXD.a.8X-X9.e.~.~.e.e.e 3.}.e.~ a.e a.e.a #.eX-.~",
+".rXj.r.r ~Xt.r ~ F ~XtXt.r.r.r.rXt.^ ~.rX*.rXjXt.rXt.rXt e.rXt.rXt.r.rXt.r.rXt.rXj.^ N.oXgXzXzXzXz.bXzXz NXz NXz.^XzXz.bXz.b.b lXx.HXl v v.;X<.-.,.Z.}X,XDX,XI.Z c aX- a <XD.M 3 xXDX, 3.e.eX-X-.eXl.e ` x #XBX7.. %XF *.d.) *.sX=.@.4.jX>XL ' g.].`XV 3 3 $X*X*.k.K ~.rXtXtXtXt eXtXj.^XjXjXtXtXjXjXjXjXj.^Xz.bXg.o.bXz.bXz _Xz.b.^Xj e.r.rXd q.7.XXd N.bXzXz.b e.rXt.K.r f q.r.b.bXz.bXzXzXz N.^.o.X.:.^Xo.I.bXzXz.^Xz.b N.bXd.r.|X9.:X9Xt.rXt ~Xk.8.z.r.r e ~X9.5.k.:.A ~.rXtXt.^.oXz.^ N.b.^ Z A.k.bXz.b e e e.^.^.^.k.k.:.^.^.b.^.^.^.b.b.^Xz.b.:.^XzXzXzXzXzXzXz.b.VXg.VXg.V.o _ _ _.b.b.b.UXz.bXzXzXzXz.^Xj e.r e e.r.r.r.8.8.8.8.` R.nXe.)XLXD 3.eX-X-.e RX- RX,X1 8XD.D.MX,.M.Z R.NXeXL.w y.'X1 3.8Xo.u.k.r ~.uXtXdXd F.r.r.r.r ~ F.`.8 eXzXz.o.c.o.c.c.c.I.b _ _Xz.bXzXzXjXt ~.8.8.8.8 ~.8.r.r.rXt.rXt.rXjXjXt.k.^Xj.^.bXz.bXz.bXz _XzXzXzXzXz.bXzXz.b _XzXz _XzXz.b.o.VXzXzXzXz.#.oXz _Xz.bXzXz.bXzXz _.b.bXz _ _.b.b.b.bXgXgXz.b.b _XzXz.bXzXzXj e.r e.r e.r.r.r.rXt e.r.r.rXj.k.^XtXj.^.b.bXz.^Xj eXjXz.bXz.b.b.bXj eXt ~.8 F F.r.r.^.^.^.b NXzXz.^.^XjXt.r ~.8.8 ~.8 ~.rXt.r e.r eXt eXt.r.^XjXt.r.^.^.b.bXz _.V.cXg.c.V _.o.V.V.c.V.c.c.V.V.c.V.U.U.V.c.o.c.c.o.^Xz NXt.8.} 1 E.i.}X-X- cXV.`.8X1 3 3 3 hXI.} RX1 3 c aX-X,.~X-.e",
+".r.r ~XtXt.rXtXt.kXt.r ~.rXjXt.r.r.X.r.r.rX9.r.rXt.r.rXt.r.r.rXt.r.r.r.r.r.r.r e.r.^.bXzXk.^Xz.^.bXzXz.bXzXzXzXz.b.b.^.bXzXzXzXgXg.uX,.'.s.@.1X7 [ hX,.iX5X,XD :.2Xl.Y :Xc : ` mXJ :Xc c.eX-X-.e.~ c.e h #.l.l.[X4XF p t < t U U 0 %...@XrXG TXO.k B.`X-.`.8X* ~Xt.rX*Xj.rXt.r e.r.^.^.b N NXz.^.^.^ N.^XzXz N.b.bXgXz.b.bXz.bXz.bXz.^XdXj.r.r.z P.f.b.b.bXz.bXz.k.k F.^.k 7.^.k.b.^.bXz.bXzXzXzXz N./ Z.b.Q AXz.^XzXz.b.^ NXz.X fXt.r f f.rX* ~XtXt.rXzXtXt e.k P.K.rX9.tXt ~ e.^.^.b NXz.^.bXg.:X@.b N.^Xj e eXj e e.b.^Xk.: NXd.^XzXz.^XzXz.^XzXd d.Q.6.^XzXzXzXzXz.b.VXgXg.VXgXgXg.o.o.V.V.V.UXz _XzXzXz NXzXj e.r.r.rXt.r ~.r.` ~.`.`XlXG.W.NXeXD x.a.a R a a.a aX,.} R.M R.M t 8 v.N.W.s v M.> :X5.5 )./.k )XtX9 q.k.$ (XxXk N.r F.8 F ~.rXj.b _.V.cXg.c.c.U.#.o _.bXz.bXzXzXt.r F ~.8 ~.8.8 F.rXt.rXt.r e.rXt.r e.^Xz.^.b.b.b.bXz.bXzXzXzXzXzXzXz _Xz.b.b _Xz _Xz.oXzXz.V.o.bXz _Xz _XzXzXzXzXz.bXz.bXz.b _.b _.b.b.b _ _.bXz.c.oXzXz.b.bXz.bXzXzXz e.r e.r.rXt.r.rXtXtXt.rXtXt.rXj.^XjXt e.^.b.^Xj e eXj.^Xz.bXzXz.^Xj.r.rXt F F ~ ~ e.r NXt N.b.^.b.^XzXzXzXz.^ e.r F.8 F ~.rXtXt.r.r.r.r ~Xt.r.^.rXj.r.bXzXzXz _ _.V.cXg.c.o _.V.V.c.c.c.V.c.c.c.c.o.#.V.U.c.V.cXgXz.VXz.^X*.8XM U U a.e.e R.e.e.e.e.e.eX- aX-.eX1.~.`.HXI.`XIXIX-X5",
+" e.r.r.r.r.r.r.r ~.r.r.r.r.r.r.r ~ NXt.r.r N.KXt.r.rXt.r.rXt e.r.rXtXt.rXtXt.rXt.r.^.b.^Xg.bXz.bXzXz.bXzXz.bXz.bXz.bXz.bXz _.b.oXk.K c y yXn.TX#Xw k., :XcXJ :Xl 1Xc #.Z.MXDX, 1 $XD R.eX-.e.~X-.~.k.e 3 a.l.lX7Xn p p u.a hXl $.)...s . yX0.n.2XdXV.`.~.8.`X*.8X*.rXtXt.r.k.rXtXt.^ N.b N.b NXz.b.b.b.bXz.b.bXz.b.c.^ _XzXzXzXzXz.b N.^Xt e.X.X.t 7Xk.^.bXzXzXzXj.r.kXt 5.7./Xd N.bXzXzXzXzXz N.^.c.t.t AX .o.o.^.bXz.bXz.^ NXxXx.5 NXxXx.X F.k.r.r eXt ~.r.r.bXxXk.rXt.k FXj.kXzXz NXz.b.^.b l.I l.bXz.^ e ~ e ~ e.r.rXt.XX9Xj e eXjXz.^XzXzXzXzXz e.o.^Xz.^XzXzXzXz.o.VXgXg.o.c.c.c.c.cXgXgXg.UXzXzXzXz.bXzXz.^ eXt eXt e e.rXt F F ~XIXD s.sXs.).M x.a R u.M.W U U.M.WXe.N U.WXs 2Xe.sXL vXp $XK DX..A ].RXtX@ q.| qX@ ]X@.t.RXxXt ~.8 F F FXj.b.bXg.c.V.c.c.U.UXg.o.bXz.b.bXz e.r F.8.8.8 F.8 F.r.r.rXtXtXtXj.r eXt.o.b.b.^.b _.b.b _Xz.bXz _Xz.bXz.bXz _ _XzXzXzXzXzXzXz.cXz _ _ _XzXzXz.bXz.bXzXz.b.b _Xz.b.b.b _.bXz.b.b.b.b l.b _XzXz.b _XzXzXz.^ e e e.rXt.rXt e.r.r.rXt.k e.r.r N.rXjXjXj.^ e e.rXjXjXj e eXz.^.^ e e.r ~ F F ~.rXtXt NXj.b NXzXzXz _XzXzXzXz.^Xj.r F F ~ ~.rXt.rXt.rXt.rXt e N.rXj.rXj.^Xz.b.V.c.c.c.V.c _ _.c.V.c.V.c.c.c.cXg.V.c.#.o.V.VXg.V.c.c.^Xz NX*.8 ` h U.d a a a.e.~.e.~X- aX-.} a.e.e.eX-.e c.`X1XI $XlXl",
+" ~Xt e.r.rXtXt FX*.r.rXtXt.r.r.r.r.k.KXgX9.t.kXtXtXt.rXt.r.r.rXt.r.r eXt.r.r e.r.r.^.^.^.o.o NXzXzXzXzXz.bXz.bXzXz.b.^.bXz.b.^.^.V (Xc.O.+.; =.T.S [Xc.} $XD R 3 aXD.e.a a a a.aX- a.aX-XI.e.e.~.e.KX-.} 3 #.l >X%.@.pXp.1 mX3Xc xX4.@X>X0 TX$ ! ].8.` R.`.8X*.8Xt.r.rXtXtXj eXj e.^XzXzXz.b.b.bXzXz NXz NXz.bXzXz.U.^XzXz _XzXz _XzXzXz.b.rX@ NXkXg.b.b.^Xz.oXz.^.r.rXj N.rXt eXzXzXzXz _XzXz.b.oXj.^.bXdXzXz.^Xz.bXz N.b.kXj.^.r ~Xt ~Xt ~Xt ~.rXj ~Xt ~ e.r.r ~Xt.r.rXt eXtXj.^Xz.o.^.b.^XzXzXj.b.^.^Xz.^Xj e e.rXj.r.r e ~ eXt e e.^.^Xz.^.bXzXj _XdXzXzXzXzXzXz _.VXgXg.VXg.VXg.VXg.V.V.o.o.#XzXzXzXzXzXzXz.b.o.X N.^Xt.rXoXd.H.r.`.8 RXLXe /Xs.).w C.M.W.= 2 v 2Xa.sXe v v.=.W.W.s x.s v.MXIXIX*X*.k.k N.rXd.k.r.kXV.rXd.rXt.r ~ F F.8.r eXj.b.o.V.c.VXg.c.#.c.c.o _Xz.b.b.^ e.r F.8 F.8.8 F.8XtXt.rXt.r e.r eXj.^Xg.b.bXz.b _.b _.b.b.bXz _XzXz _ _Xz.bXzXz _XzXzXz.V.^.UXzXzXzXz _XzXz _ _XzXz.bXz _.b.b.b _.bXz _.b.b.b.b _.cXz.oXz.b _XzXz.bXzXzXjXj.^Xt eXtXtXt.rXt.rXt.^ NX*.^ NXt.r.r eXt e.r.r e e.r.r.rXj.^Xt.r eXt ~ F ~.r.r.r.^.^.^ NXz _Xz _XzXzXz _Xz _XzXj.r F.8 F ~ ~.r.r.rXjXt.r.^XjXt e eXj.^ _Xg.VXg.c.c.V.c _.oXg.V.c.c.c.V.c.V.c.V.U.UXg.cXg.c.c.oXgXz.^.b.r.8 1Xe E U.e.aXI.eX-X-.~ 3.eX- a.e a.e.uX, 3 xXKXK ` 1.i.a",
+"Xt.r.r ~.r.k./ ,.X.k ~.rXt.r e.rX*.r P q.k.A.^Xt.r.rXt.r.rXt e.rXtXt.r.r e.r.r.r.r.^.^.^.bXkXzXz.bXz.bXz NXz.b.bXz.b.b.bXz.^.^Xd.X.k.kXs y.@X+XH.T., kXBX,.aX-XD.aXD R.e.a t.e.M R.e mXJXl :XDX- ~.`X*.`.}.i.l.[Xr M M nXH c `X3.9.Y.Y & =XU.G D (.eX1.` a.8X*.8.rXjXt.rXj.r e e e.^XzXz.bXz.bXz NXzXzXzXz.bXz.bXz.UXz.bXzXzXz.bXz.b.bXzXzX@Xg.b.b.b.b.b.oXzXz.b eXjXtXt.b.r eXtXzXzXzXzXzXzXz.bXz.o.^XzXzXz.bXzXz N.^.^.^ eXt.^XtXt ~XtXt.rXtXt e.rXt.r e.r.r ~Xt.r.rXt.r.r.^.b.^Xz.oXzXzXz.^Xz _Xz.^.b.^.^.b.r.rXt F FXtXtXtXt e e eXz.^XzXzXzXzXzXzXzXzXzXjXzXz _.oXgXg.V.oXgXgXg.V.oXg.oXg.o.UXzXzXzXzXzXzXz.b.&Xg lX9.QXd.z.R.XXd.kX*.Z s M v 2.W v.W.sXs.) 2.= 2.s vXG.s._ b.9 o.j y 1.aXI.}.u.u.u ~.^.k.r.rXt.rXd.k.rXtXt.r e ~ F F F ~.r.^.oXg.V.cXg.V.c.#.c.c.oXz.b.b.b.^ e e F.8 F ~.8.8 ~.rXt.r e.r eXj.^.b.b l.b.b.bXzXzXz.bXz _XzXz.b _ _Xz.bXz _ _XzXzXzXz.#.I.c.cXz _Xz _Xz _XzXzXz.bXz _.b.b.b _Xz.bXz.bXz.b _Xz.bXg.cXz.bXz _ _ _XzXz.bXz.^.b.bXjXt.r.r.rXtXtXt q.z.zXt.^XtXjXt.r e.r eXt e.r.r.r e.r.rXt e e ~Xt ~ ~.r e.rXtXz.^.bXz.^XzXz _XzXz _XzXzXz.bXz.^ e.r.r ~ F F F ~ ~ e.r NXt e.r eXz.b.o.cXg.cXg.VXg.c _Xg.V.c.V.c.c.V.cXg.V.c.#.o.o.c.o _.c.c _.b.^ NXVX- `.i E < aX-X-.e.e.e.eX-.eXI.eX-.eXlXl ) 1XK U 1.e.e.e a",
+" e ~.rXt.r.8Xk P ~.rXt.r.r.r.rXt ~.$ ,.8X*.KXt.r.rXt.rXt e.r.r.r e.rXt.r.r.r e.r.rXjXtXj.kXg NXz.^XzXzXz.bXzXzXz N.^.b.b.X.^.X.z A.RX3Xc.+.;.EXr.O.[.SXH.M.MXIX- 3 a R : R.e tX- TX- 1 1 mXH.~X1.e.e.uX. 3 # XB.p.@XpXe C hXDX, <.}.N.s.YXw m.H.`.`X1.a.`.}X*.rX*.rXt.rXt.rXj.^Xj.^Xz.b.b.b.b.b.b.b.b.bXz.bXz.bXz.c.b _Xz _Xz _ _.oXzXg A.o.^Xz.b.b.b.^.bXzXz _Xj e e.r.X.rXj.bXzXzXzXz _XzXz.b.^Xz.bXzXz.bXzXzXz.b.b.^Xt.r.r.X ~Xt.r.r ~ e FXt.rXt ~Xt.r.rXt e.r.r.r.r.r.rXz.^.b.^.bXzXzXz.^.bXzXzXz.b N.^.^.r.r ~.r e.rXj.b.^Xt eXjXzXz.b.bXzXjXzXjXzXzXj _.^ _.oXg.VXg.o.VXg.VXgXg.VXg.VXg.V.#XzXzXzXzXzXzXz.^.t.6.(.( Z.XXg.X ].R.A.$X3XJXhXC 2 2.s.W.W.).W.n 9.9Xm.9 s 1.9.j $ = T.2XD.K.5.r }Xk.z.^.5.^.zXdXd.X.X.rXt.rXt.r.r.r.rXt e.rXjXz.oXg.c.c.c.V.c.IXg.U _.bXz.bXzXj.rXt ~ F.8.8.8 F ~Xt e.r eXt.kXzXzXz.o.c.b _.b.b.bXzXzXz.b.b _XzXzXz _Xz _Xz _.bXzXzXz. . .#.o _XzXzXzXz _Xz _Xz _Xz.bXz _Xz.bXz _Xz _Xz.bXz.bXz l.bXzXz _.bXz.bXz _XzXzXz.bXzXt e.r.r.r eXt e.r.r.^.r NXtXt.r eXt.r.r.r eXt e.r.r e.r.rXtXt eXt ~.r.rXt.rXj.X N.o.b.^XzXzXzXz _XzXzXzXzXz.b.^.^.^XjXj.r.r ~.r e eXtXz.r e.r eXz _.oXg.c.c.c.cXg _ _.V.V.c.V.c.c.V.c.V.o.c.U.V.c.o.c.cXg Z i.oXgXxXx.aXM._ E U a.e a.e.~.~.~.eX- 3.e.e.eX1.`X-X-.e.e a.e < a.e",
+".r.rXt.r.rXt q.t ~.r.r.r.rXtXt.r.8.& }.^ ~.rXt.u.r.r.r.r.r.r e.rXt e.r e.r.r.r.rXt.r.r.rXtXg N N.^.^.^.^Xz.^ N N.b.^.X.^Xo e.X.RX@./ : TX> vX> n.1X.XZXHXe.M t.e.ZX,X, $ a 3.e.a T.}.e.e.eX-.~.e B BX- : # # XcXp.sX= u.M a t a t u.)Xe v y #X-.`.`X-.8.}.`.r.k e.r.r.kXj N.^.b.bXz.b.b _Xz.b.bXzXzXzXz.bXz.b.b.^.V.oXzXz _XzXzXz.U.Q.#XzXz _Xz _XzXz _XzXz _Xz.b.^.bXjXgXo.oXzXzXzXz _XzXzXzXz.bXz.^.bXzXz.^.b.bXz NXz.r.k.r N.r.r e.r.r.r.r.r.r ~ e ~ eXt.r.r.rXj ~ e eXjXz.^.^.^.oXz.^Xz.bXzXzXzXz.^Xz.b.rXt e ~ F eXt N.^.bXzXz.^Xz.^.bXz.^XzXzXzXzXzXzXz.b.o.V.V.oXg.VXg.o.c.VXg.o.o.o.VXg.#XzXzXzXzXzXz.b.bXz.bXz.R.bXzXoXdXd.r ~.8.a #XU.9.= vXL.WXL._XG xXD.~ RX-X- BX,XD.~.~X9X9 5 (.&.k.tXxX@X@.& X.t.& fX X@.zXt e.r.r e.rXt.r ~Xj NXz.V.c.V.c.cXg.U. .V.c.oXz.bXz.^Xj e e.r ~ F F.8 F.8XtXt.rXtXjXzXz.b.b.bXgXzXz.b _.bXz.bXzXzXz _XzXzXzXz _XzXzXzXz.oXzXz _.c.cXg _Xz _Xz _XzXz _.bXz.bXz.bXz.bXz.bXz.bXz.bXz _.bXz.UXz.b _.b _ _.bXz.bXzXz.b.bXj.r.rXt.rXt.r.rXtXt.rXtXj N.rXtXj.r.rXt e.r.r.r.rXt.r.r.r e.r.r.r.r.rXt.r e.r.^XgXzXz.^ _.^ _Xz _Xz _ _XzXzXz.bXz.b.b.bXz.^.^.^Xz.^.^ NXz e e e e.^.bXg.cXg.V.c.c.VXz _ _.c.c.V.c.c.c.V.c.o.#XgXg.c.o.o _.c X.U.7 A.f | :XB.- U U a.~.e.e.~.e.e.eXI.~ a.~.` 3.eX-.~.~ a a.e a.e a",
+" e ~Xj ~Xt ~.&.$.r.r.r.r.r.r.rXt.rX9.:.5.KXk.r.rXt.r.r.r.r.r.r.r e.r.r.r.r.rXt.r.rXtXt.r.rXt.oXt.r e.r.k eXd e.^.z.U.^XoXtXtXt.k.R NXI.}XG 0X>.h.TXw.- X, x.Z :Xc 5Xc.e R RXl.-XcX5.e.e a.eX-.e B.e B.e hX3.[X7Xm.s.W p.N.W < t u u -Xv.s.9.aX-X-.`.`.H F.rXd.^XtXtXt eXj.b N.bXz.b.b _XzXz _ _Xz.bXz.b _.bXz _Xz.o.o.bXzXzXz _XzXzXzXzXz _XzXzXz _XzXzXzXz.bXz.b.bXz.^ l.b NXzXzXzXzXj.VXg.o.o.oXzXz _XzXzXzXz.^Xz.^ eXtXt.r N.r.r e.r.r e.r.r e.r.r.r.r.r.r.r.r.r e.r.rXjXz.^Xz.^Xg.^Xz.bXzXzXzXzXzXz.^.^Xt.r ~ ~.rXt.^XzXzXz NXz.^Xz.^ _XzXz.^XzXzXzXzXzXz.VXg.o.o.VXgXg.VXg.o.V.c.VXg.cXg.o.U.oXzXzXzXz.bXzXz.b.bXzXz.b.b.^Xd.rXt.r.r.8.aX- $.nXLXG s x $.a.`X-.`X-.`X-X-.`.`.`.8.r FXz eXo.^Xx.z.z.z.6.I.I l.z.zXg.bXtXt.r.rXt.r.rXtXt.^Xz.oXg.c.c.V.cXg.c.#.c.cXz _.b.b.b e.rXt ~ F.8 F.8 F ~Xt.r.rXt.^.^Xz.bXz.o.o _.^ _Xz.b _Xz.b.bXz.b.b.^ _XzXz _.b _.I _XzXzXzXz.#.c _XzXzXzXz _XzXz _Xz.bXz _.bXzXzXz.o.bXz.bXz.b.b _XgXz.bXzXzXz _Xz _Xz.bXzXz e e e.r e.r.rXt.rXtXtXj.rXtXjXt e.r.r.rXt.rXtXt.r.r.r.rXt.r.rXt.rXt.r.rXt.rXj ~Xg N.b.b.bXzXz _Xz.bXzXz _XzXzXz.bXz.bXzXz.bXz.bXzXz N.^.z.^.bXz.^.^Xz _.cXg.V.c.c.c.c _.oXz.V.c.c.cXg.c.c.c.V.U.b.bXg.o.^ _.b.o.b.U.k )X9 1XH [ E U a.e.~X-.e a.eX-.8.e.~.e.~X*.~.~.~.e.~.e.e a a <",
+" ~Xt ~.rXt.k f.f.r.r.r.r.r.r.r.r.r.r.X 5Xx ~.rXtXt.rXt.r.rXt.r.r.r e.rXt.rXt.r.r.r.k.8.rXt.rX9 F.r.r.r eXt eXjXx.:X9.R q.&.z Q.R.t.& 5Xw = z 0.jXw.1.[.-.YXJXc ` $ $ cX-X5 kXl c.a a.e.eX-.~.e.~.e.e a a.8.i c k.YXG...s.s.).) p pXF -.s..Xq a.8.8.`.8.8.r.r.r.o.r.rXjXj N.o.b.^.b.b _Xz _XzXz.bXz.b.b _Xz.b.bXzXz.o.cXzXz _XzXzXz _XzXz _XzXzXzXz _Xz _.bXzXzXzXz.b.b.^Xk.b.bXzXzXz _Xz. l. .#.UXz.^XzXzXzXzXzXjXj e eXt.r.r N.r e.r.r.r ~ e ~ ~.r ~.r.r.r.r.r.r e.r.r e.kXzXz.^Xz.o.^Xz.^.^.^XzXzXz.^Xj e e ~ ~ ~Xt.^.^Xz.^XzXz.^XzXz.^.bXzXzXzXzXzXzXz.b.o.o.o.o.oXg.c.VXg.c.V.VXg.o.o.c.o.c.#.V.bXzXzXzXzXzXzXzXzXz.b.bXz.bXd e.rX* 3.8.8X1X- $.' x R.eX-.8X-.`X-.`X-.`.`.`.` F F.r ~.^XdXzXj.bXzXz.^Xx.^.^XjXz.^.^Xj e.rXj.rXtXtXj.rXj.^.b.V.V.c.c.V.c.c.U.UXgXgXz _.bXz.b e.r e ~ F F.8.8 ~.rXtXt.r eXj e.^.^.b.c _.b _Xz.b _.b.b _.bXz.b.bXz _XzXz _.b.bXu.#.b _XzXg.#.oXz _XzXz _XzXzXz _Xz.bXz.bXz _Xz.b.bXz _.bXz _Xz.o.V.b.bXz _Xz.bXzXzXzXzXz.^ e e.r.rXtXt e.rXt e.r.rXt.^.^.r.r eXt.rXt.rXt.rXtXtXtXt.r.rXt.rXt.r.r.r e.rXt eXg.bXz _Xz.bXzXzXz _XzXzXz.bXz _XzXzXzXz.bXz _XzXzXz.b.bXg.bXzXz.b _.b.o.cXg.c.c.c.c.o _.V _.VXg.V.V.c.V _Xz.V.bXz.b.bXzXz.b.bXz.b N ~X-XI $ 1X7.i t aX1.e.e.e a.eXIX-.~.~ a.uX- a.e a.e a a.a.} EX,",
+".r.r e.r ~.k.X N.rXtXt.r.r.r.r.r.r.rX*.k.rXt.u.r.r.r.r.r.r.rXtXt ~Xt.k ~Xt.rXt.rX*.r.r ~ ~.r.XXtXt.r.r.r.k.kXd.bX P.7X .A.A.R.&.( Q D.3Xr M.s oXpXZXh.SXw x 3 R.eXc 3 T ` T R.e.e aX- a.eX-.e a R <.e.e.}X* #X3.iXeXpXpX4..Xe.m.W.).s %.YXeXDX-X-.`.8XVXtXt.r.bXdXj.^ N.b N.b.b.b.bXz.bXz _.bXz _XzXzXz.b.bXzXz _.b.cXzXz.bXzXz _Xz _XzXz _XzXz _XzXz _XzXzXz _Xz _XzXzXg.o.bXzXz _Xz _.o.V.b _XgXzXzXzXzXzXz.^ e e.r.r.r.r.r N.r.r e.r.r e.r.r e.r.r.r e ~ e.r.r.r e.r e.^Xz.^.bXzXg.^XzXz N.bXzXz.^.^ e.r ~ F ~.rXj.^.b.^XzXzXzXz.^Xz.^ _.bXzXzXzXzXzXz.V.o.o.o.VXgXg.VXg.VXgXgXg.c.V.o.VXg.c.#.o.b _XzXz _XzXz _XzXzXzXzXz.b.^ e.r.r.r ~.8.`.~.` 3X1X-XI.~.~.`.`X-.`.`.`.` F.8 ~XtXj N.^.b.^.b.bXz N.b.U.b.b.b.bXz.^.^.r.r.r.r eXt.r eXj.^.o.c.c.V.c.c.cXg.U.U.c.o _.b.b.b.bXj eXt.r ~.r ~.r.r.r.rXt e e.r e e eXz l.^.b.b.^XzXz _XzXzXzXz _Xz _ _.b.b _ _Xz.# _XzXz _.U.U _Xz _XzXzXz _XzXz.b _Xz.b _.b.bXz.b _Xz.b _Xz.bXz.c.b _Xz.b _Xz _ _Xz _.b.^ e e.r.r.r eXt.r e.r eXtXj.r N ~Xt.rXtXtXtXt.rXt.rXtXtXt.rXt.rXt.r.r.r.rXt e.r e NXgXz.bXz.bXz _Xz _XzXz.b.bXzXz.bXzXz _XzXz _XzXzXzXzXzXg.b.bXzXzXz _ _.V.c.c.V.c.c.V.o _.V _.V.c.c.oXgXzXz.^.b e.^Xz.b.^.oXz.^.^.^ ~.8.a a.-., [Xp.i $Xl.u 3XIX, $XI.e 3.~.~X-X- a a.e < < E h U.i U",
+".r.r.rXt.r ~.r ~.r.r.r.r.rXt.r.r.rXt ~.r N.r.r.r.r.r.rXtX*.rXt.r.k ~ ~.rX* ~.r.r.r.r.r ~ ~.r.^.K ~.k.^.XXxXk l./X@.oXkXxXg.k NXx.U.kXx.9._ 2.)Xr =Xh.S.,Xc.i xXl 3Xl DXD.a.e t.a R a.e.e.e.eX-.e.e 3XX.eXI.u hX3 m E < <XeXnXrXhXrXrXp y.W tX-.H.8.8 ~.u.K ).X.X NXzXj.b.bXz.b.b.b _.b.b.bXz.bXz.b _.b.bXz _XzXz.bXz.UXzXz _Xz.bXz _XzXzXzXzXz _XzXzXzXz.b.bXz.bXzXz.bXzXg.o.bXzXzXzXzXzXzXz.^XzXz.^Xz.oXzXzXzXzXj e e.r e.r.r N e.r.r.r.r.r.r.r.r.r e ~.r.r.r.r.r.r.rXtXt.^ N NXz.^XgXj.^.^.^.^XzXz.b.^Xj e ~ ~.r e.^ NXz.^XzXz NXzXzXz.^ _XzXzXz.^.^ _.V.o.oXg.V.o.cXg.V.o.o.o.c.o.cXg.V.cXg.c.#.o _XzXzXzXzXzXzXzXzXzXzXzXzXzXz e.rX*.r.H F F.`.~ 3.` a.8.~.`.`X-.` F.8.8.8 ~.rXt.^ N.b.^.bXzXzXzXz.b.bXg.^Xz _XzXz.bXzXj.rXt.r.rXt.r eXjXz.V.c.c.V.c.c.c.c. .c.c.o _.b _.b.b.^Xt e.r.rXt.r.r.r.r.rXtXt e e eXj eXz l.^.o.b.b.oXz.b.b.b _.b.b _Xz.b.o.#Xz _.bXzXz _Xz.o.U.c _XzXzXz _ _Xz _ _XzXz _Xz _Xz _ _.b _Xz _.b _.b.b.U.b.oXz _ _ _Xz _Xz.bXzXz e e eXj e.r.rXt.r.r.r.r.r.^.^XjXtXj.r.r.rXtXt.rXt.rXt.rXt.rXtXt.rXt.r e e.r eXj.c.o.^.bXz _XzXz.bXz.bXzXz.bXz.bXz.bXzXzXz _Xz _ _XzXzXz.U.bXzXz _ _Xz _.o.c.c.c.VXgXg.V.c.c _.oXg.c.V.VXz.^XzXz.rXjXj.^.^.^.^XjXtXt.8.`X- XM x x.YXMX5 T 1 `Xl `., `.,XKXM.}.a.e a < U.}.m.}.m.iXq >",
+".r.r ~.rXt.r.rXt.r.r.r.rXt.r e.r.r.r.k ~.X.rXtXt.u.k.r.k.r.^Xo.X.r N.5Xx.r )X9X9 ) q.5 q ) ).&.A (.&.R Q.I.t qX@.^.b.b.bXt.^ N.X.bXtXI.MXG.).s.s o.+.[XB k m :Xc c.~.e 3X- BX-.e.e R R.eX-.e.e.~ B.aXK.u 3XIXMXcXhX# ` h a <.gXhX5 YXh.9.,.0.$ IXx I.$ D 5.%X@ P.(.6.X.b NXz.o.b.b.b.b.bXz.bXz.b.b _XzXz _.b.b _.bXz lXz.b.b.bXzXz.bXz _XzXzXz _Xz _Xz _XzXz.b.bXzXz _.b.oXg.bXzXzXz _ e.oXz.b.b.bXzXzXzXzXzXzXz.^XjXj e.r.r.r N.r e.r.r.r.r.r.r.r.r.r.r.r e.r.r e.r.r eXj.^ NXz.^.kXz eXt e e.rXj.^Xz N.^XjXj.r eXj.^XzXzXzXzXzXzXz.^XzXzXzXzXzXzXz _.oXg.V.V.V.o.o.VXg.o.VXgXg.V _.oXgXgXg.V.c.U.o.o.bXzXzXzXzXzXzXzXzXzXzXzXzXz.^ eXt.r.r.H F F.`.rX-.`.`.~.`.`.`.8.8.8 ~.r.r.^Xj.b.^Xz.bXz.bXzXzXz.b.o.X.^Xz.^XzXzXz.bXj eXt.r eXtXtXj.^.oXg.c.V.V.U.V.cXg.I.c.c _ _Xz.b.b.b.^ eXt eXtXt.r eXt.r.r eXt eXj.^.^Xz.o lXz.b.^Xz.b.b.b _ _.bXzXz.bXzXz.V.#Xz _ _ _Xz.o _.o.UXgXzXzXz _XzXzXzXzXzXz _XzXz.b _Xz.b _Xz _.b.b.b _ _ lXz _Xz _ _XzXzXz _XzXzXz.^.^.^.^XjXt.r eXtXt e.rXt.k.^ ~.r.rXtXjXt.r.r eXt e.r e.r e.r eXt.r.r e.rXj.^.^.c.o.^ _XzXzXzXz _XzXz.b.bXzXzXz.b _XzXzXz _ _XzXz _Xz.o.o.bXz.bXzXzXz.V.o.c.V.c.V.c.V.V.c.c _ _.V.c.oXzXzXj.b e e.r e eXj e e.rXt.8.8.a a 1 $ E h.e a t a a.e.} 1 h.M hXDXD.a t <.} h E EXe xXpXB $ <",
+" e.rXt ~.rXt ~Xt.r.r.r.r.r.r.r.rXt.r ~.r.k.k q qXkXx.f q.A ).& qX9./ 5.$X* q.$ q I.$.KXx ) q ) qXkXk q l.z.z.U l.b.o.b.^.b N.o N.oXt.HXDXn..X=.WXG MXH .- xXlXDXI R.~XI.eX-X- RX- m.eX-.e.e a.e.e.~.eX-.u R c # |XMXB V 3X-.u.K.H ` ) `X3 : 'XoXxXx.XXXX9.$X9.zX@XkXz.b.b.o.bXz.b.b.b.b.bXz.b.b.b.b.b.b.bXz.b.b.b.^.c.bXz.bXzXzXz.b _XzXz _XzXz _Xz _.bXzXzXzXz _Xz.b.b.bXg.bXzXzXzXzXz.^Xz.^.^.bXz.^XzXz.b.b.^Xz.^XdXt.r.r.r NXtXt.r.r e.r e.r.r.r.r.r.r.r.r.r.r.r.r.rXtXj.^XjXt e.^.r e.r.r.r eXj.^Xz NXz.k e e e.^Xz.bXzXzXzXzXz.^XzXd.bXzXzXz _.o.o.o.V.o.o.o.oXgXg.VXg.o.V _Xz _ _.V.cXg.c.U.V.o.VXz _XzXzXzXz _XzXzXzXzXzXzXz.^.r.r.r.r F.`.` 3.`.`.~.`.`.`.` F F ~ ~ e.^Xz.^.bXzXz.bXzXzXzXz.^XzXg.o N.b _Xz _Xz.bXj.r e.rXt.rXjXj.b.V.V.V.V.c.c.c.c.c.#.V.VXz _XzXzXz N N e.r.r.rXj.rXt.r.rXt.r.r e.^.bXz.bXg.oXz.^ eXjXzXzXzXzXz _Xz.c.V.bXzXz.o _XzXzXzXzXz.o.o.# _ _XzXzXzXzXzXzXz _XzXzXz _Xz.bXzXz _XzXzXz _.bXzXg.VXzXzXzXz _Xz _XzXz.bXzXz.bXz.^XzXj.r.rXt e.rXtXtXj.z.zXkXjXjXt e.r e.r e.r.rXt.r.r.r.r.rXt eXt e.^Xz.bXzXgXz _ _XzXzXz.bXz.bXzXzXz _XzXz _Xz _Xz.b _Xz.bXzXzXz.U.bXz.^.VXzXz _.V.c.V.c.c.cXg.c.c.c.V.V.o.V.o.bXz.bXj.^.rXt.r.r.r e ~ e.r.r.` 3 aX, h h h h <.e.a a < < <.} t a < t a.e.a E E.l.Y.[X% `.-X- R",
+" ~.k.r.rXt ~X* ~Xt.r.r.r.rXt.r.rXt.8.k.rXt q.$./ ) )XxXxX9.XXXX9Xx.5.k.K.^.KX*X*.uXtXt.r.r.r.8.^Xt.^Xd.XXjXz.^.bXz.bXzXz.b.bXz.bXz.r.` U v.N...sX>.+XwX3.l.} R RX,.e RXI.a.e a a.a Y.,XK :.~.e.~ R.e.~X-X-XD.a # k kX*XM V.uX9.5XIXV.~X-.~.`.~.` F.` ~X* ~X*.rXj.z.b.b.b N.b.b.b.b.b.b.b.b.b N.bXz.b.b.b.b _XzXz _XzXg.oXzXz.bXzXz _Xz _XzXzXzXz _XzXzXz.b.^XzXzXz _Xz _.b l.bXz.bXzXz.bXz.b.b.b.^XzXzXzXzXzXzXz.b.^Xz.k eXt.r.^.k.r.r.r.r.r.r.r e.r.r e.r.r e.r e.r.r.r.r.r e.r e.r.^.rXtXtXtXt.r e.k.^.^XzXz.^ e.^.^XzXz.bXzXz.^XzXzXz.^Xz.bXz.b.o.c.V.o.o.V.V.VXg.VXg.VXg.V.oXzXz _XzXz.VXg.c.UXg.c.oXzXz _Xz _XzXzXzXz _XzXzXzXzXz.kXt.r e.r ~ FX*X-.aX-.`.`.` F.8 ~.r e.^Xz.^XzXzXzXz.^XzXzXz _XzXz.o.b.bXzXzXzXzXzXzXd e.r e.r eXj.^.oXg.c.c.V.c.c.c.cXg.UXz _Xz _Xz.b.bXz.bXjXtXtXt.r.rXt eXtXt.r eXj.^Xz.b.^Xg.b.^Xj e e.^ _ _Xz.b.b.o.I.#.VXzXz _ _ _Xz.o _XzXg.c.UXzXzXz _XzXz _Xz _.b.b.b.bXz.b.b.bXz.b.b.bXz.o.bXz l.b _XzXz _Xz _Xz _Xz _XzXzXzXz.^.^Xt.r.r e.rXtXt.rXjXk.zXk.k ~Xj.rXtXtXtXt e e.r e.r e.r e.r e.rXj.b.b.bXzXzXzXz _XzXzXzXz _XzXzXz _XzXzXzXz.bXz.bXz _.bXzXz.b.b.c.b _Xz.V.o _ _.c.V.c.c.c.cXgXg.V.c.V.c.V.o.oXzXz.^.^.k.r.rXt.r eXt e.r.r.r.8.a #XB.i h.F a a.e.a.e UX,.d x U h UX, U U hXn X%.S [XB.K c cX-.`",
+"Xt.r.rXt ~Xt ~X*.r.r.r.r.rXt.r.r.rXt.r ~.r N.r.u.r.r.u.r.r.8XtXV.rXV.r.kXXXx.5.5XxXXX*XVX*XV.k.kXoXt.^ N.XXz.bXz _Xz.o.^Xz.b.^.o.^.kX-X, v p.N 2Xm M nXBXX.}X-XDX- c.~.eXD.e.eX-X, m # D `.eX-.e.~.~X-.e BXD.e $ } kXM : ).8X*.r.KXV.8X-XI.~.`.` ~.8Xt ~Xt eXt.b l N.b.b.b.o.o.b.o.b.b.b.b.b.bXz.b.o.o.o.o.b _Xz.bXz.oXg.bXz.b.bXzXz.bXz _Xz _XzXzXzXz.bXzXzXzXz.bXz.b.b.b lXz.bXzXzXz.bXzXz.bXzXz.b.bXz.bXz.bXz.b.^.b.^.r.r.r.^XtXt.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r NXt.r.r.r.r.rXtXtXt.^.^.^Xz.^Xz.b.^Xz.^Xz.bXzXzXzXzXz.o.b.b.V.o.VXg.V _.oXgXg.VXg.oXg.cXgXgXzXzXzXzXz.VXg.c.UXg.V.o.b _XzXzXzXz _XzXzXzXzXzXzXz.bXzXjXt.r e.r.8X*.`.8X-.` F.8 F F.rXj.^.^XzXzXz e e e e.bXzXzXzXz.b.o.b.b.bXzXz.bXzXzXz e.r.r eXj.^.bXg.c.V.c.c.V.c.c.c.o.cXz _Xz.o.b.b.bXz.bXt eXt eXt.rXtXtXt e.r e.^ N.b.^ e.bXj e.rXt e eXz _.b _XzXz.#. XzXzXzXzXz.b.oXg _.b _.U.oXz _XzXzXzXzXzXzXz.bXz.bXz.bXz.bXzXzXz.b.bXz _.bXz.UXz.bXz.b.b.b.bXz.bXzXz.b.bXz.^.bXj e.rXtXtXt.r eXt.k.b.X.X.^.r e.rXj.k.^XjXtXt.r e.r.r e.r.r e.rXj.^Xz.^Xz _.b.bXzXzXzXzXzXzXzXzXzXzXzXzXz.b _XzXz.b.b.b.b.b.b.o.o _XzXz.c.U.c.o.c.V.c.V.c.V.V.o.V.c _.c.o.o _Xz.bXj.bXt.r.r.r.r e ~Xt.r.r.8 3 a :Xq.l.F < a a.a.M h U h._.i E h EXe n xX%.g.p [.} 3XI.a.`.8.`.8",
+".r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.k N.r.rXt.r.r.r.u.rXt.rXtXt.k.5XX )X3 qX3X*.r.r ~Xt.r.bXz.^Xz.bXzXz.^XzXzXzXz.b.b.b.b N.r.` h.' J.@ M.@ HX<X+XBX,.a.aXIXI 3.aXI.~X-.~XIXl.e.e.~.eX-.~.e $ RX-.eXD a.a #Xc.3 V V.`.a.8X*.K.K.~ ~.K.` ~.`.r.rXt.k.r.^ NXg.o.b.^.b.b.b.b.b.b.b.o.o.b.b.b.b.o.c.c.o.b.b.b.bXz.o lXzXzXz.b.b.bXz.b.bXz.b.bXzXz.bXzXz.bXz.b.bXzXzXzXz l.b.bXz.b.bXz.b.^.b.bXzXzXzXzXzXzXz.^Xz.b.^.bXd eXtXt.kXt ~.rXt.r.r.r.r.r.r.r.r.r.r.r.u.rXt ~ F F ~.r ~Xt N.r.r.r.r.r.r.r.rXt.rXtXtXt.^.^.^Xz.^XzXzXzXzXzXzXz.bXg.VXg.o.o.o.o _ _.o _.o.o.VXg.V.oXg.V.o.bXzXzXzXzXg.c.cXgXg.o.oXzXzXz.bXzXzXzXz.bXzXzXzXz.b NXz.^XjXt e.r.k.8.8.8.8 ~ ~.r e.k.^.^ NXz.^ e eXt ~ e.^.bXz.bXzXz l.^.bXz.bXzXzXz.^.^Xj e.r eXj.bXgXg.cXg.c.VXg.c.c.b.b.oXz.bXz _.bXz.b NXzXj e.r e.r e.r.rXtXt.rXt N.bXj eXt.b ~Xt eXt e eXzXz.c.^ _Xz.oXg.bXz.b.b.^XzXgXg.o.b.o.U.b.o.bXzXzXzXz.bXzXzXz.bXz.^.bXz.bXzXzXzXz.^.bXzXz.bXgXz.bXz.bXz.bXz.bXz.bXzXzXz.bXz.^.r.rXt.rXt.rXtXt.r N.r.r.rXt.rXtXtXt.IXgXk.z.z.^.r e.r.rXt e.r e e eXz.^Xg.^.^.bXz.b.bXz.b.bXzXzXz.bXzXzXzXzXz.b.bXzXz.b.o.^.b.U.^Xz _.bXg.c.UXg.V.c.c.c.c.cXg.V.V.V.o.o.V.o.oXz.^.oXj e e.r.r.r eXt e.r ~.`XI 3 1.i $ < t < U E.i U.iXqXB Xp 1.-.[.YXBXB hX*X*.K.K N.KXtXt",
+".r.r.r.rXV.r.r.r.r.rXV.r.r.r.r.r.rXt ~Xt.rX*XoXt.r.u.r.u.r.r.u.r.r.r.rXt.uX*X*X* 3 c ~.uX*.rXV e.X.b NXz.^XzXz NXzXz NXzXzXz.b N NX*X-.uXO.T =.;XpX+ =X+ `.i.aXI 3 RXIXD 3.e.e.e.e.a.e.e.~.e a.e.~XlX3.e.e 3.e a.e cX3 ,X. V c.`X-.`.`.8.K.5.k ~ ~.^Xt.r.r.k N NXgXg.b.b.b.b N.b.o.oXgXgXgXgXg.oXgXg l lXg.o.b.bXz.b.bXgXz.bXz.bXzXz.bXzXz.bXzXz.bXzXzXz.bXzXzXz.b.^.bXz N l.b.b.^.b.^.b.^.b.^.bXzXzXzXzXz.^Xz.^ N.^ N.^.kXt.rXt.kXtXt.rXt.r.r.r.r.r.r.r.r.r.r.r.r.r.r ~.8 F.8.rXV.r NXV.r.r.rXV.r.r.r.r.uXt.rXt.r.k.^.^Xz.^.^.^XzXzXzXz _XgXgXgXgXgXgXgXgXgXg.oXg.oXg.oXgXgXg.o.o.b.bXzXz.b.o l lXgXg.oXg.oXg lXg.o.bXzXzXzXzXzXz.^.^Xz N N.^.^Xt.r.k.8.8.8 ~.r.rXt.^.^.b N N NXt ~.rXt.r e N.^.^Xz N.b l.b.XXz.^Xz.^Xz.bXz.^Xj eXj.^XgXg lXg.c l.c.cXgXg.b.b.b.b.b.b.b.b.b.b.b.^Xd.r.rXtXt.rXt.rXt.r.rXt.k.k.rXtXt N.rXtXtXtXt e.b.I AXgXz NXz.bXzXzXzXz.bXg lXg.bXz.oXk _Xg.XXzXz.bXzXzXzXzXzXzXzXzXzXz.b.b.b.^.bXz.b N.bXgXg.b.b.b.b.b.b.b.b.bXz.b.^Xz.^.^ eXtXt.r.r.r.r.rXtXt N.rXt.rXt.r.rXt.r NXt.k N N.k.r.rXt.r.r.r.r.r.r.rXdXj.X.b.b.bXzXzXzXzXzXzXzXzXz.^XzXz.^.b.^XzXz.^.b.^Xz.^.bXgXz.b.b.b.oXg.c lXgXgXgXgXgXgXgXgXgXg.V.oXgXg _.^.b.XXd.r.r ~ e.r.r e.r.r 3.8XI.}Xl h E.} u.} U EXe.l.FXq x h UX, xXcXc ` $ <.8 ~Xt.k.k.k.k.k",
+".r.rXV.r.r.r.rXV.r.r.r.r.rXV.r.rXV.u.rXVXV.r.K.u.r.rXV.r.u.r.rXVXt.u.kX*.u.uXV 3XV.u 3 ~.u.rXt.k.X.X N N.^Xo N N N N N N N N N NXo ~X1 $ s.Z.WXLXnXw.[ n., $ $.~.aX1XI R.u cX,.~.~.e.e.~ a.e.~.~ a $ T.e.~.a R.e.e.e.u :., YXHXVX-.8.`.`XV.kX9.HX*.5.k.k.r.^.5 N.X.X.X N.X.b N.XX9XgXxXkXxXkXxXkXk lXxXgXkXxXg.XXg.X.X lXo.bXo N N N N N N N N N N N N N N N N N N N N N.^Xx N.X.^ N N N.^.^Xo N N N N N N N N N.^Xo NXo.KXtXt.k.kXtXV.r.u.r.rXV.r.rXV.r.rXV.r.rXV.rXVXV ~ 3.rXV.rXV.k.r.u.r.u.r.r.u.r.r.r.r.r.rXtXt.^Xo N N N.^Xo N N.^.X.X.o.XXg.XXg.XXg.XXg.XXgXxXgXxXgXxXg.XXxXg.X.XXg.XXx lXkXg.X.XXg.XXxXgXx.o.X N N N N N.^ N.^.^ N NXo N.kX*.k ~.uXV.uX*.k.k N N.5 N N.^Xt.r.r.r.r.rXtXt.k N.^ NXx.^ N N N N N N N N N NXt.k N.XXx.X.oXg.XXg.X.X.b N N.X.^.b N N N N N NXtXt.rXtXt.u.r.rXt.u.r.r.rXt.u.r.u.r.k.r.u.rXt.r.k N.I q.z N.b N.^Xo.^ N N.b.XXg.X.X N.bXk.XXx.o NXo.^ N N N N N N N N N N.b N N N.b N N N.b.X.X N N N N N N N N N N N N N N.k.r.r.r.u.r.r.r.r.uXt.k.rX*.r.r.r.rXt.rXt.r ~Xt.r.r.r.r.r.r.r.r.r.rXt.r.r.r.5.^Xo.^Xo N N N N N N N N N N N N N N N N N.X N N N.X.X.b N NXz NXgXxXgXxXgXx lXxXgXxXgXgXgXgXxXgXx.X N N NXt.r.r.r.u.rXt.r.r.H.8.` R.a ` h hX,X,.i xXqXB.9XM.M < a.a RX-X,XI.e.a.a a.~.`.`.8.8XVXV ~XV"
+};
diff --git a/modules/CIAO/examples/Display/README.html b/modules/CIAO/examples/Display/README.html
new file mode 100644
index 00000000000..e88e6f62ce5
--- /dev/null
+++ b/modules/CIAO/examples/Display/README.html
@@ -0,0 +1,181 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><!--//$Id$ -->
+ <title>CIAO application</title></head>
+
+
+<body alink="#0000ff" bgcolor="#ffffff" link="#000fff" text="#000000" vlink="#ff0f0f">
+
+<h2>Display example README</h2>
+<li>To download the code of this example please refer to the CVS repository at <code>$CIAO_ROOT/DAnCE/examples/Display</code>.</li>
+<hr>
+
+<h2>Example Description</h2>
+
+<font face="Times New Roman" size="4">This example is an imaginary car
+(software) instrument assembly which updates the display of
+current coordination of the airplane periodically. It consists of
+the following three components:
+<ul>
+ <li>The <font face="Courier New">RateGen</font> component sends periodic
+ <font face="Courier New">Pulse</font> events to consumers according to the
+ rate specified in its attribute <font face="Courier New">Rate</font>, it
+ allows a client (CORBA client <font face="Courier New">controller</font>) to
+ start and stop the rate generating event.</li>
+ <li>The <font face="Courier New">GPS</font> component interacts with a GPS
+ hardware. When the <font face="Courier New">GPS</font> component receives
+ <font face="Courier New">Refresh</font> events from <font face="Courier New">
+ RateGen</font>, it queries the GPS hardware and updates the internal cached
+ coordination (so that the current location can be read by accessing the
+ <font face="Courier New">MyLocation</font> interface) and generates an event
+ on its <font face="Courier New">Ready</font> port to inform the event
+ consumers that a new GPS reading is available. </li>
+ <li>The <font face="Courier New">NavDisplay</font> component displays the
+ current location of the vehicle on the windshield. When a
+ <font face="Courier New">NavDisplay</font> receives an event notifying the
+ availability of new data on its <font face="Courier New">Refresh</font> port,
+ it will acquire the current location of the vehicle by querying the interface
+ connected to the <font face="Courier New">GPSLocation</font> receptacle.</li>
+ <li>The <font face="Courier New">NavDisplayGUI</font> directory contains
+ implementations for a <font face="Courier New">NavDisplay</font> with
+ graphical interface. To use this graphical interface you need to install qt
+ libraries and have qt enabled (qt = 1) in your
+ <font face="Courier New">$ACE_ROOT/bin/MakeProjectCreator/config/global.features</font>.
+ In some Linux distributions qt is installed by default. There is a
+ non-commercial version of qt libraries for Windows
+ <a href="http://www.dre.vanderbilt.edu/%7Edengg/ITS/qt-win-noncommercial-msvc-3.2.1.exe">
+ here</a> and more information about qt
+ <a href="http://www.trolltech.com/products/qt/index.html">here</a>. </li>
+ <li>If you just want to run the application, just go to the last section of
+ this page.</li>
+</ul>
+<hr>
+
+<h2>The files you will find.</h2>
+
+
+<li>1. The interfaces,
+data types and exceptions used by the components of this application are
+specified in the
+<a href="./Display_Base/Display_Base.idl"> <code>
+HUDisplay.idl</code></a> file, placed in this example root directory ($CIAO_ROOT/examples/Display_Base).
+This is a IDL2 file and uses the familiar CORBA data types. The lib generated
+from HUDisplay.idl is linked to all the components of this example. <p></p>
+
+</li><li>2. mpc files for each of the components
+are available in the components directories. We use the <a href="http://downloads.ociweb.com/MPC/MakeProjectCreator.pdf">MPC</a>
+to generate makefiles and Visual C++ project/solutions files for
+all <a href="http://www.cs.wustl.edu/%7Eschmidt/ACE.html">ACE</a>,
+<a href="http://www.cs.wustl.edu/%7Eschmidt/TAO.html">TAO</a> and
+<a href="http://www.cs.wustl.edu/%7Eschmidt/CIAO.html">CIAO</a> libraries.
+
+</li><li>3. idl and cidl files for each component are placed in components directory. </li>
+
+<li>4. The <code>_exec.h</code> and <code>_exec.cpp</code> files are the actual implementation of the components.</li>
+
+<li>5. The <code>NavDisplayGUI_exec</code> directory:
+<font face="Times New Roman">The <code>NavDisplayGUI_exec.cpp</code> is just an executor version
+for NavDisplay. In NavDisplayGUI_exec directory you'll find only the the
+NavDisplayGUI_exec (and files for the GUI), which can be deployed with the
+NavDisplay stub and servant. So, if you deploy the NavDisplay component
+using NavDisplay_exec you'll be able to see the application running in the shell
+you triggered the NodeDaemon, and if you deploy the NavDisplay component using
+<code>NavDisplayGUI_exec</code> a graphical interface will show you a red dot moving over a
+map according to the location being generated by GPS component when you start
+the application. Notice that the <code>NavDisplayGUI.mpc</code> file includes <em>qt</em>, used for
+graphical interface. You must give the right location of qt libraries in your mpc file.</font>
+</li>
+
+<li>6. The <code>controller</code>:
+<font face="Times New Roman">The <code>RateGen</code>component is started and stopped by the <code>controller</code>, a CORBA client application.
+The <code>controller</code> source is in <code>RateGen</code> directory, so the <code>RateGen.mpc</code> file also
+include instructions for the <code>controller</code>
+build.</font>
+
+</li>
+
+
+
+<hr>
+
+<h3><font size="5">Make</font></h3>
+<li>Go to the directory <code>$CIAO_ROOT/DAnCE/examples/Display</code> and do:<br>
+ <code>$ACE_ROOT/bin/mwc.pl</code> (use -type option if you are using a compiler/IDE other than gnuace -which by default generates GNU makefiles)</li>
+ <br>For example, using <code>$ACE_ROOT/bin/mwc.pl -type vc71</code> if you are using Visual C++ 7.1 IDE.
+
+
+<hr>
+
+<h3><font size="5">Assemble</font></h3>
+Now we can step forward to build the assembly.
+
+<li> In the descriptor subdirectory, you'll find a XML descriptor file that describes your <em>deployment plan</em>, the flattened_deploymentplan.cdp:
+ <dd>
+This file declaratively specifies how the component assembly is
+constructed. Specifically, it specifies the component types, component
+instances, component connections and implementation artifact
+descriptions. </dd>
+<br>
+</li><li> Please make sure that the Modified_Deployment.xsd and XMI.xsd files are in the
+Display/descriptors directory.
+The former file could be found in $CIAO_ROOT/docs/schema directory.
+<br>
+
+
+<br>
+Note: Creating the deployment plan descriptor is a tedious and error-prone job, you can download <a href="http://www.dre.vanderbilt.edu/cosmic"> CoSMIC</a> to assist you in this step.
+</li>
+
+<p>&nbsp;</p>
+
+<hr align="justify">
+<h3><font size="5">Run</font></h3>
+Finally you are ready to test the application you have made. From different shells in <code>$CIAO_ROOT/DAnCE/examples/Display/descriptors/</code> directory:
+<br><br>
+
+<ul>
+ <li> Start NodeManagers (NodeDameon) by running <code> basicNodeDaemons.pl </code>
+
+ </li><li> Start the execution manager:
+ <code>$CIAO_ROOT/DAnCE/ExecutionManager/Execution_Manager -o EM.ior -i NodeManagerMap.dat </code>
+ The NodeManagerMap.dat file describes the deployment daemons CIAO's Execution_Manager
+ will contact to instantiate ComponentServer's, home's, and component
+ instances. Each line specify the name of a installation
+ "destination" and the corresponding IOR for
+ the CIAO_Daemon. For example, the NodeManagerMap.dat contains:
+
+ AirFrameDevice corbaloc:iiop:localhost:10000/NodeManager
+ TimerDevice corbaloc:iiop:localhost:12000/NodeManager
+
+ You can copy and modify the copy to deploy the components in various
+ different locations to let the application truely "distributed".
+
+ Remember to start up the Execution_Manager using the
+ revised .dat file you created, and start up the CIAO_Daemon according to the specification.
+
+ </li>
+
+ <ul type="square"> <li> <em>NOTE</em>: As one can see, we use the "NodeManagerMap.dat" file to instruct the
+ Execution_Manager how to find the endpoint of each individual NodeManager (i.e., Node Daemon) where
+ component(s) will be deployed, so this is non-standard. We plan to use Naming Service to do this in the future.
+ </li></ul>
+
+ <li> Start the plan_launcher:
+ <code> $CIAO_ROOT/DAnCE/Plan_Launcher/plan_launcher -p flattened_deploymentplan.cdp -k file://EM.ior </code>
+
+ After this, components should be deployed successfully.
+
+ </li><li> The Assembly_Manager is instructed to write the IOR of the RateGen
+ component to a file called "rategen.ior" in this
+ directory. You will then need to use a controller program in a
+ separate shell window to switch on/off the Rate Generator.
+ Go to the <em> $CIAO_ROOT/DAnCE/examples/Display/descriptor </em> directory and run the <code>$CIAO_ROOT/DAnCE/examples/Display/RateGen/controller
+ -o </code> to start the application. To stop the application run <code>$CIAO_ROOT/DAnCE/examples/Display/RateGen/controller
+ -f </code>
+ </li>
+</ul>
+
+
+
+<hr>
+<b>Email: </b><a href="mailto:"></a><address>ciao-users@cse.wustl.edu</address>
+</body></html>
diff --git a/modules/CIAO/examples/Display/RateGen/RateGen.idl b/modules/CIAO/examples/Display/RateGen/RateGen.idl
new file mode 100644
index 00000000000..ef398f5df78
--- /dev/null
+++ b/modules/CIAO/examples/Display/RateGen/RateGen.idl
@@ -0,0 +1,34 @@
+// $Id$
+
+/**
+ * @file RateGen.idl
+ *
+ * Definition of the RateGen (a rate generator) component.
+ *
+ * @author Nanbor Wang <nanbor@cs.wustl.edu>
+ */
+
+#ifndef RATEGEN_IDL
+#define RATEGEN_IDL
+
+#include "../Display_Base/Display_Base.idl"
+
+module HUDisplay
+{
+ component RateGen supports opmode
+ {
+ publishes tick Pulse;
+
+ /// The attribute can be configured via the home or the
+ /// component property file.
+ attribute long hertz;
+ };
+
+ home RateGenHome manages RateGen
+ {
+ // Explicit operations
+ factory new_RateGen (in long hertz);
+ };
+};
+
+#endif /* RATEGEN_IDL */
diff --git a/modules/CIAO/examples/Display/RateGen/RateGen.mpc b/modules/CIAO/examples/Display/RateGen/RateGen.mpc
new file mode 100644
index 00000000000..2bf93df325c
--- /dev/null
+++ b/modules/CIAO/examples/Display/RateGen/RateGen.mpc
@@ -0,0 +1,135 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p Display_Base -u Display -c controller RateGen"
+
+project(Display_RateGen_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=RATEGEN_STUB_Export \
+ -Wb,stub_export_include=RateGen_stub_export.h \
+ -Wb,skel_export_macro=RATEGEN_SVNT_Export \
+ -Wb,skel_export_include=RateGen_svnt_export.h \
+ -Wb,exec_export_macro=RATEGEN_EXEC_Export \
+ -Wb,exec_export_include=RateGen_exec_export.h
+
+ IDL_Files {
+ RateGen.idl
+ }
+}
+
+project(Display_RateGen_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ after += Display_RateGen_idl_gen
+ idlflags += -Wb,export_macro=RATEGEN_EXEC_Export \
+ -Wb,export_include=RateGen_exec_export.h \
+ -SS
+
+ IDL_Files {
+ RateGenE.idl
+ }
+}
+
+project(Display_RateGen_stub) : ccm_stub {
+ libout = ../lib
+ libpaths += ../lib
+ after += Display_RateGen_idl_gen Display_Base_stub
+ libs += Display_Base_stub
+
+ sharedname = RateGen_stub
+ dynamicflags = RATEGEN_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ RateGenC.cpp
+ }
+
+ Header_Files {
+ RateGenC.h
+ RateGen_stub_export.h
+ }
+
+ Inline_Files {
+ RateGenC.inl
+ }
+}
+
+project(Display_RateGen_exec) : ciao_executor {
+ libout = ../lib
+ libpaths += ../lib
+ after += Display_RateGen_lem_gen Display_RateGen_stub
+ sharedname = RateGen_exec
+ libs += RateGen_stub Display_Base_stub
+
+ dynamicflags = RATEGEN_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ RateGenEC.cpp
+ RateGen_exec.cpp
+ }
+
+ Header_Files {
+ RateGenEC.h
+ RateGen_exec.h
+ RateGen_exec_export.h
+ }
+
+ Inline_Files {
+ RateGenEC.inl
+ }
+}
+
+project(Display_RateGen_svnt) : ciao_servant {
+ libout = ../lib
+ libpaths += ../lib
+ after += Display_Base_skel Display_RateGen_exec
+ sharedname = RateGen_svnt
+ libs += RateGen_exec \
+ RateGen_stub \
+ Display_Base_skel \
+ Display_Base_stub
+
+ dynamicflags = RATEGEN_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ RateGenS.cpp
+ RateGen_svnt.cpp
+ }
+
+ Header_Files {
+ RateGenS.h
+ RateGen_svnt.h
+ RateGen_svnt_export.h
+ }
+
+ Inline_Files {
+ RateGenS.inl
+ }
+}
+
+project (Display_controller) : ccm_stub, valuetype {
+ libout = ../lib
+ libpaths += ../lib
+ exename = controller
+ after += Display_RateGen_stub
+ libs += RateGen_stub Display_Base_stub
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ controller.cpp
+ }
+
+ Header_Files {
+ }
+
+ Inline_Files {
+ }
+}
+
diff --git a/modules/CIAO/examples/Display/RateGen/RateGen_exec.cpp b/modules/CIAO/examples/Display/RateGen/RateGen_exec.cpp
new file mode 100644
index 00000000000..abead406761
--- /dev/null
+++ b/modules/CIAO/examples/Display/RateGen/RateGen_exec.cpp
@@ -0,0 +1,289 @@
+// $Id$
+
+#include "RateGen_exec.h"
+#include "ace/Timer_Queue.h"
+#include "ace/Reactor.h"
+
+//=================================================================
+
+MyImpl::Pulse_Handler::Pulse_Handler (MyImpl::RateGen_exec_i *cb)
+ : active_ (0),
+ done_ (0),
+ tid_ (0),
+ pulse_callback_ (cb)
+{
+ // Nothing
+ this->reactor (new ACE_Reactor);
+}
+
+MyImpl::Pulse_Handler::~Pulse_Handler ()
+{
+ delete this->reactor ();
+ this->reactor (0);
+}
+
+int
+MyImpl::Pulse_Handler::open_h ()
+{
+ return this->activate ();
+}
+
+int
+MyImpl::Pulse_Handler::close_h ()
+{
+ this->done_ = 1;
+ this->reactor ()->notify ();
+
+ ACE_DEBUG ((LM_DEBUG, "Waiting\n"));
+
+ return this->wait ();
+}
+
+int
+MyImpl::Pulse_Handler::start (CORBA::Long hertz)
+{
+ if (hertz == 0 || this->active_ != 0) // Not valid
+ {
+ return -1;
+ }
+
+ long usec = 1000000 / hertz;
+
+ this->tid_ = this->reactor ()->schedule_timer (this,
+ 0,
+ ACE_Time_Value (0, usec),
+ ACE_Time_Value (0, usec));
+
+ this->active_ = 1;
+ return 0;
+}
+
+int
+MyImpl::Pulse_Handler::stop (void)
+{
+ if (this->active_ == 0) // Not valid.
+ {
+ return -1;
+ }
+
+ this->reactor ()->cancel_timer (this);
+
+ this->active_ = 0;
+ return 0;
+}
+
+int
+MyImpl::Pulse_Handler::active (void)
+{
+ return this->active_;
+}
+
+int
+MyImpl::Pulse_Handler::handle_close (ACE_HANDLE handle,
+ ACE_Reactor_Mask close_mask)
+{
+
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("[%x] handle = %d, close_mask = %d\n"),
+ this,
+ handle,
+ close_mask));
+
+ return 0;
+}
+
+int
+MyImpl::Pulse_Handler::handle_timeout (const ACE_Time_Value &,
+ const void *)
+{
+ this->pulse_callback_->pulse ();
+
+// ACE_DEBUG ((LM_DEBUG,
+// ACE_TEXT ("[%x] with count #%05d timed out at %d.%d!\n"),
+// this,
+// tv.sec (),
+// tv.usec ()));
+
+ return 0;
+}
+
+int
+MyImpl::Pulse_Handler::svc (void)
+{
+ this->reactor ()->owner (ACE_OS::thr_self ());
+
+ while (!this->done_)
+ {
+ this->reactor ()->handle_events ();
+ }
+
+ return 0;
+}
+
+//=================================================================
+
+MyImpl::RateGen_exec_i::RateGen_exec_i ()
+ : hertz_ (0),
+ pulser_ (this)
+{
+
+}
+
+MyImpl::RateGen_exec_i::RateGen_exec_i (CORBA::Long hz)
+ : hertz_ (hz),
+ pulser_ (this)
+{
+}
+
+MyImpl::RateGen_exec_i::~RateGen_exec_i ()
+{
+}
+
+CORBA::Long
+MyImpl::RateGen_exec_i::hertz ()
+{
+ return this->hertz_;
+}
+
+void
+MyImpl::RateGen_exec_i::hertz (CORBA::Long hertz)
+{
+ this->hertz_ = hertz;
+}
+
+// Operations from supported interface(s)
+
+void
+MyImpl::RateGen_exec_i::start ()
+{
+ if (this->hertz_ == 0 || this->pulser_.active())
+ {
+ throw CORBA::BAD_INV_ORDER ();
+ }
+
+ // @@ Start the rate generator
+ this->pulser_.start (this->hertz_);
+}
+
+void
+MyImpl::RateGen_exec_i::stop ()
+{
+ if (! this->pulser_.active ())
+ {
+ throw CORBA::BAD_INV_ORDER ();
+ }
+
+ // @@ stop the rate generator
+ this->pulser_.stop ();
+}
+
+CORBA::Boolean
+MyImpl::RateGen_exec_i::active ()
+{
+ return this->pulser_.active ();
+}
+
+// Operations from Components::SessionComponent
+
+void
+MyImpl::RateGen_exec_i::set_session_context (
+ Components::SessionContext_ptr ctx
+ )
+{
+ ACE_DEBUG ((LM_DEBUG,
+ "MyImpl::RateGen_exec_i::set_session_context\n"));
+
+ this->context_ =
+ HUDisplay::CCM_RateGen_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw CORBA::INTERNAL ();
+ }
+ // Urm, we actually discard exceptions thown from this operation.
+
+}
+
+void
+MyImpl::RateGen_exec_i::configuration_complete ()
+{
+}
+
+void
+MyImpl::RateGen_exec_i::ccm_activate ()
+{
+ ACE_DEBUG ((LM_DEBUG,
+ "MyImpl::RateGen_exec_i::ccm_activate\n"));
+
+ this->pulser_.open_h ();
+}
+
+void
+MyImpl::RateGen_exec_i::ccm_passivate ()
+{
+ ACE_DEBUG ((LM_DEBUG,
+ "MyImpl::RateGen_exec_i::ccm_passivate\n"));
+
+ this->pulser_.close_h ();
+}
+
+void
+MyImpl::RateGen_exec_i::ccm_remove ()
+{
+ ACE_DEBUG ((LM_DEBUG,
+ "MyImpl::RateGen_exec_i::ccm_remove\n"));
+}
+
+void
+MyImpl::RateGen_exec_i::pulse (void)
+{
+ try
+ {
+// if (CIAO::debug_level () > 0)
+// {
+// ACE_DEBUG ((LM_DEBUG,
+// ACE_TEXT ("Pushing HUDisplay::tick event!\n")));
+// }
+
+ HUDisplay::tick_var ev = new OBV_HUDisplay::tick ();
+
+ this->context_->push_Pulse (ev.in ());
+ }
+ catch (const CORBA::Exception&)
+ {
+ // @@ do nothing?
+ }
+
+}
+
+MyImpl::RateGenHome_exec_i::RateGenHome_exec_i ()
+{
+}
+
+MyImpl::RateGenHome_exec_i::~RateGenHome_exec_i ()
+{
+}
+
+::Components::EnterpriseComponent_ptr
+MyImpl::RateGenHome_exec_i::new_RateGen (CORBA::Long /* hertz */)
+{
+ Components::EnterpriseComponent_ptr tmp = 0;
+ ACE_NEW_THROW_EX (tmp,
+ MyImpl::RateGen_exec_i,
+ CORBA::NO_MEMORY ());
+
+ return tmp;
+}
+
+::Components::EnterpriseComponent_ptr
+MyImpl::RateGenHome_exec_i::create ()
+{
+ return new MyImpl::RateGen_exec_i ();
+}
+
+
+extern "C" RATEGEN_EXEC_Export ::Components::HomeExecutorBase_ptr
+createRateGenHome_Impl (void)
+{
+ return new MyImpl::RateGenHome_exec_i ();
+}
diff --git a/modules/CIAO/examples/Display/RateGen/RateGen_exec.h b/modules/CIAO/examples/Display/RateGen/RateGen_exec.h
new file mode 100644
index 00000000000..438cbfbde1b
--- /dev/null
+++ b/modules/CIAO/examples/Display/RateGen/RateGen_exec.h
@@ -0,0 +1,163 @@
+// $Id$
+
+/**
+ * @file RateGen_exec.h
+ *
+ * Header file for the actualy RateGen and RateGenHome component
+ * implementation.
+ *
+ * @author Nanbor Wang <nanbor@cse.wustl.edu>
+ */
+
+#ifndef RATEGEN_EXEC_H
+#define RATEGEN_EXEC_H
+
+#include "RateGen_exec_export.h"
+#include "RateGenEC.h"
+#include "tao/LocalObject.h"
+#include "ace/Thread_Manager.h"
+#include "ace/Task.h"
+
+namespace MyImpl
+{
+ // Forward decl.
+ class RateGen_exec_i;
+
+ /**
+ * @brief Active pulse generater
+ */
+ class Pulse_Handler : public ACE_Task_Base
+ {
+ public:
+ // Default constructor
+ Pulse_Handler (RateGen_exec_i *cb);
+ ~Pulse_Handler ();
+
+ int open_h (void);
+
+ int close_h (void);
+
+ int start (CORBA::Long hertz);
+
+ int stop (void);
+
+ int active (void);
+
+ // Handle the timeout.
+ virtual int handle_timeout (const ACE_Time_Value &tv,
+ const void *arg);
+
+ // Called when <Time_Handler> is removed.
+ virtual int handle_close (ACE_HANDLE handle,
+ ACE_Reactor_Mask close_mask);
+
+ virtual int svc (void);
+
+ private:
+ /// Tracking whether we are actively generating pulse or not.
+ long active_;
+
+ /// Flag to indicate completion of this active object.
+ int done_;
+
+ /// The timer id we are waiting.
+ long tid_;
+
+ RateGen_exec_i *pulse_callback_;
+
+ ACE_Thread_Manager thr_mgr_;
+ };
+
+ /**
+ * @class RateGen_exec_i
+ *
+ * RateGen executor implementation class.
+ */
+ class RATEGEN_EXEC_Export RateGen_exec_i :
+ public virtual ::CIAO_HUDisplay_RateGen_Impl::RateGen_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ /// Default constructor.
+ RateGen_exec_i ();
+
+ /// Initialize with a default frequency.
+ RateGen_exec_i (CORBA::Long hz);
+
+ /// Default destructor.
+ ~RateGen_exec_i ();
+
+ // Attribute operations.
+
+ virtual CORBA::Long hertz ();
+
+ virtual void hertz (CORBA::Long hertz);
+
+ // Operations from supported interface(s)
+
+ virtual void start ();
+
+ virtual void stop ();
+
+ virtual CORBA::Boolean active ();
+
+ // 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 ();
+
+ /// Helper function to be called back by Pulse_Handler
+ void pulse (void);
+
+ protected:
+ /// Frequency
+ CORBA::Long hertz_;
+
+ /// Copmponent specific context
+ HUDisplay::CCM_RateGen_Context_var context_;
+
+ /// An active object that actually trigger the generation of
+ /// periodic events.
+ Pulse_Handler pulser_;
+ };
+
+ /**
+ * @class RateGenHome_exec_i
+ *
+ * RateGen home executor implementation class.
+ */
+ class RATEGEN_EXEC_Export RateGenHome_exec_i :
+ public virtual HUDisplay::CCM_RateGenHome,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ /// Default ctor.
+ RateGenHome_exec_i ();
+
+ /// Default dtor.
+ ~RateGenHome_exec_i ();
+
+ // Explicit home operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ new_RateGen (CORBA::Long hertz);
+
+ // Implicit home operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+}
+
+extern "C" RATEGEN_EXEC_Export ::Components::HomeExecutorBase_ptr
+createRateGenHome_Impl (void);
+
+#endif /* RATEGEN_EXEC_H */
diff --git a/modules/CIAO/examples/Display/RateGen/controller.cpp b/modules/CIAO/examples/Display/RateGen/controller.cpp
new file mode 100644
index 00000000000..0eb9394eaee
--- /dev/null
+++ b/modules/CIAO/examples/Display/RateGen/controller.cpp
@@ -0,0 +1,121 @@
+// $Id$
+
+#include "RateGenC.h"
+#include "ace/streams.h"
+#include "ace/Get_Opt.h"
+
+/**
+ * @file controller.cpp
+ *
+ * This program interact with a RateGen component, using its supported
+ * interface "opmode" to switch it on/off, and set the rate of the
+ * RateGen.
+ */
+
+const ACE_TCHAR *rategen_ior_ = 0;
+int rate = 2;
+int turn_on = 1;
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("k:r:of"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ {
+ switch (c)
+ {
+ case 'o':
+ turn_on = 1;
+ break;
+ case 'f':
+ turn_on = 0;
+ break;
+ case 'k':
+ rategen_ior_ = get_opts.opt_arg ();
+ break;
+ case 'r':
+ rate = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+ case '?': // display help for use of the server.
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s\n"
+ "-o (Turn on the rate generator)\n"
+ "-f (Turn off the rate generator)\n"
+ "-k <RateGen IOR> (default is file://RateGen.ior)\n"
+ "-r <rate in hertz> (default is 3)\n"
+ "\n",
+ argv [0]),
+ -1);
+ break;
+ }
+ }
+
+ if (rategen_ior_ == 0)
+ {
+ rategen_ior_ = ACE_TEXT("file://RateGen.ior");
+ }
+
+ if (rate == 0)
+ {
+ rate = 3;
+ }
+
+ return 0;
+}
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+ // Initialize orb
+ CORBA::ORB_var orb =
+ CORBA::ORB_init (argc, argv);
+
+ if (parse_args (argc, argv) != 0)
+ {
+ return -1;
+ }
+
+ CORBA::Object_var obj =
+ orb->string_to_object (rategen_ior_);
+
+ HUDisplay::RateGen_var pulser =
+ HUDisplay::RateGen::_narrow (obj.in ());
+
+ if (CORBA::is_nil (pulser.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Unable to acquire 'RateGen' objref\n"),
+ -1);
+ }
+
+ if (turn_on)
+ {
+ pulser->hertz (rate);
+
+ ACE_DEBUG ((LM_DEBUG, "Start up the Rate Generator\n"));
+
+ pulser->start ();
+ }
+ else
+ {
+ pulser->stop ();
+
+ ACE_DEBUG ((LM_DEBUG, "Rate Generator stopped\n"));
+ }
+
+ orb->destroy ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Who is the culprit\n");
+ cerr << "Uncaught CORBA exception" << endl;
+ return 1;
+ }
+
+ return 0;
+}
diff --git a/modules/CIAO/examples/Display/descriptors/DeploymentPlan.cdp b/modules/CIAO/examples/Display/descriptors/DeploymentPlan.cdp
new file mode 100644
index 00000000000..2ebfcbc5f3a
--- /dev/null
+++ b/modules/CIAO/examples/Display/descriptors/DeploymentPlan.cdp
@@ -0,0 +1,26 @@
+<?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">
+
+ <label>Display Deployment Plan</label>
+
+ <instance xmi:id="RateGen_Instance">
+ <name>RateGen_Instance</name>
+ <node>RateGenNode</node>
+ </instance>
+
+ <instance xmi:id="GPS_Instance">
+ <name>GPS_Instance</name>
+ <node>GPSNode</node>
+ </instance>
+
+ <instance xmi:id="NavDisplay_Instance">
+ <name>NavDisplay_Instance</name>
+ <node>NavDisplayNode</node>
+ </instance>
+
+</Deployment:DeploymentPlan>
diff --git a/modules/CIAO/examples/Display/descriptors/Modified_Deployment.xsd b/modules/CIAO/examples/Display/descriptors/Modified_Deployment.xsd
new file mode 100644
index 00000000000..65f5eb81d1e
--- /dev/null
+++ b/modules/CIAO/examples/Display/descriptors/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/examples/Display/descriptors/NodeManagerMap.dat b/modules/CIAO/examples/Display/descriptors/NodeManagerMap.dat
new file mode 100644
index 00000000000..ac5c9a6486d
--- /dev/null
+++ b/modules/CIAO/examples/Display/descriptors/NodeManagerMap.dat
@@ -0,0 +1,2 @@
+AirFrameDevice corbaloc:iiop:localhost:10001/NodeManager
+TimerDevice corbaloc:iiop:localhost:20001/NodeManager \ No newline at end of file
diff --git a/modules/CIAO/examples/Display/descriptors/XMI.xsd b/modules/CIAO/examples/Display/descriptors/XMI.xsd
new file mode 100644
index 00000000000..f4adac91934
--- /dev/null
+++ b/modules/CIAO/examples/Display/descriptors/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/examples/Display/descriptors/basicNodeDaemon.pl b/modules/CIAO/examples/Display/descriptors/basicNodeDaemon.pl
new file mode 100755
index 00000000000..bd963c5d139
--- /dev/null
+++ b/modules/CIAO/examples/Display/descriptors/basicNodeDaemon.pl
@@ -0,0 +1,57 @@
+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/examples/Display/descriptors/flattened_deploymentplan.cdp b/modules/CIAO/examples/Display/descriptors/flattened_deploymentplan.cdp
new file mode 100644
index 00000000000..1d68739216f
--- /dev/null
+++ b/modules/CIAO/examples/Display/descriptors/flattened_deploymentplan.cdp
@@ -0,0 +1,305 @@
+<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>Display-DeploymentPlan</label>
+ <UUID>Display_Plan_UUID_0001</UUID>
+ <!-- Exactly one realizes
+ This realizes section may also not be right. -->
+ <realizes>
+ <label>HUDisplay-realizes-cid</label>
+ <UUID>4edb0436-da3f-450e-baed-79127c1405b2</UUID>
+ <specificType><!-- @@ What does here? --></specificType>
+ <supportedType>IDL:HUDisplay/RateGen:1.0</supportedType>
+ <port>
+ <name>Pulse</name>
+ <specificType>IDL:HUDisplay/TimeOut:1.0</specificType>
+ <supportedType>IDL:HUDisplay/TimeOut:1.0</supportedType>
+ <provider>false</provider>
+ <exclusiveProvider>false</exclusiveProvider>
+ <exclusiveUser>false</exclusiveUser>
+ <optional>false</optional>
+ <kind>EventPublisher</kind>
+ </port>
+ </realizes>
+
+
+
+
+ <implementation id="HUDisplay-RateGen-mdd">
+ <name>HUDisplay-RateGen-mdd</name>
+ <source><!-- @@ Don't know what goes here --></source>
+ <artifact>HUDisplay-RateGen_svnt</artifact>
+ <artifact>HUDisplay-RateGen_exec</artifact>
+ <!--
+ <execParameter></execParameter>
+ <deployRequirement></deployRequirement>
+ -->
+ </implementation>
+
+ <implementation id="HUDisplay-NavDisplay-mdd">
+ <name>HUDisplay-NavDisplay-mdd</name>
+ <source><!-- @@ Don't know what goes here --></source>
+ <artifact>HUDisplay-NavDisplay_svnt</artifact>
+ <artifact>HUDisplay-NavDisplay_exec</artifact>
+ <!--
+ <execParameter></execParameter>
+ <deployRequirement></deployRequirement>
+ -->
+ </implementation>
+
+ <implementation id="HUDisplay-GPS-mdd">
+ <name>HUDisplay-GPS-mdd</name>
+ <source><!-- @@ Don't know what goes here --></source>
+ <artifact>HUDisplay-GPS_svnt</artifact>
+ <artifact>HUDisplay-GPS_exec</artifact>
+ <!--
+ <execParameter></execParameter>
+ <deployRequirement></deployRequirement>
+ -->
+ </implementation>
+
+
+
+
+ <instance id="HUDisplay-GPS-idd">
+ <name>HUDisplay-GPS-idd</name>
+ <node>AirFrameDevice</node>
+ <source><!-- @@ What goes here --></source>
+ <implementation>HUDisplay-GPS-mdd</implementation>
+ <!-- Add this property if you want to write component reference to IOR -->
+ <configProperty>
+ <name>ComponentIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>GPS.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+ <instance id="HUDisplay-RateGen-idd">
+ <name>HUDisplay-RateGen-idd</name>
+ <node>AirFrameDevice</node>
+ <source><!-- @@ What goes here --></source>
+ <implementation>HUDisplay-RateGen-mdd</implementation>
+ <!-- Add this property if you want to write component reference to IOR -->
+ <configProperty>
+ <name>ComponentIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>RateGen.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <!-- Add this property if you want to initialize component attribute -->
+ <configProperty>
+ <name>hertz</name>
+ <value>
+ <type>
+ <kind>tk_long</kind>
+ </type>
+ <value>
+ <long>2</long>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance id="HUDisplay-NavDisplay-idd">
+ <name>HUDisplay-NavDisplay-idd</name>
+ <node>AirFrameDevice</node>
+ <source><!-- @@ What goes here --></source>
+ <implementation>HUDisplay-NavDisplay-mdd</implementation>
+ <configProperty>
+ <name>ComponentIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>NavDisplay.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+
+ <connection>
+ <name>Pulse_Refresh</name>
+ <internalEndpoint>
+ <portName>Pulse</portName>
+ <kind>EventPublisher</kind>
+ <instance>HUDisplay-RateGen-idd</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>Refresh</portName>
+ <kind>EventConsumer</kind>
+ <instance>HUDisplay-GPS-idd</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>Refresh_Ready</name>
+ <internalEndpoint>
+ <portName>Ready</portName>
+ <kind>EventPublisher</kind>
+ <instance>HUDisplay-GPS-idd</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>Refresh</portName>
+ <kind>EventConsumer</kind>
+ <instance>HUDisplay-NavDisplay-idd</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>GPSLocation_MyLocation_facet</name>
+ <internalEndpoint>
+ <portName>MyLocation</portName>
+ <kind>Facet</kind>
+ <instance>HUDisplay-GPS-idd</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>GPSLocation</portName>
+ <kind>SimplexReceptacle</kind>
+ <instance>HUDisplay-NavDisplay-idd</instance>
+ </internalEndpoint>
+ </connection>
+
+
+
+
+
+ <artifact id="HUDisplay-RateGen_svnt">
+ <name>RateGen_svnt</name>
+ <source><!-- @@ Not sure --></source>
+ <node><!-- blank --></node>
+ <location>RateGen_svnt</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_HUDisplay_RateGenHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <!-- @@ This has dependancies that need to be specified, how? -->
+ </artifact>
+
+ <artifact id="HUDisplay-RateGen_exec">
+ <name>RateGen_exec</name>
+ <source><!-- @@ Not sure --></source>
+ <node><!-- blank --></node>
+ <location>RateGen_exec</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createRateGenHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <!-- @@ This has dependancies that need to be specified, how? -->
+ </artifact>
+
+
+ <artifact id="HUDisplay-GPS_svnt">
+ <name>GPS_svnt</name>
+ <source><!-- @@ Not sure --></source>
+ <node><!-- blank --></node>
+ <location>GPS_svnt</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_HUDisplay_GPSHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <!-- @@ This has dependancies that need to be specified, how? -->
+ </artifact>
+
+
+ <artifact id="HUDisplay-GPS_exec">
+ <name>GPS_exec</name>
+ <source><!-- @@ Not sure about this--></source>
+ <node><!-- blank --></node>
+ <location>GPS_exec</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createGPSHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+
+ <!-- @@ This has dependancies that need to be specified, how? -->
+ </artifact>
+
+
+ <artifact id="HUDisplay-NavDisplay_svnt">
+ <name>NavDisplay_svnt</name>
+ <source><!-- @@ Not sure --></source>
+ <node><!-- blank --></node>
+ <location>NavDisplay_svnt</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_HUDisplay_NavDisplayHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <!-- @@ This has dependancies that need to be specified, how? -->
+ </artifact>
+
+
+ <artifact id="HUDisplay-NavDisplay_exec">
+ <name>NavDisplay_exec</name>
+ <source><!-- @@ Not sure --></source>
+ <node><!-- blank --></node>
+ <location>NavDisplay_exec</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createNavDisplayHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <!-- @@ This has dependancies that need to be specified, how? -->
+ </artifact>
+
+
+
+</Deployment:deploymentPlan>
diff --git a/modules/CIAO/examples/Display/descriptors/run_NodeDaemons.pl b/modules/CIAO/examples/Display/descriptors/run_NodeDaemons.pl
new file mode 100755
index 00000000000..3e01d7bc260
--- /dev/null
+++ b/modules/CIAO/examples/Display/descriptors/run_NodeDaemons.pl
@@ -0,0 +1,40 @@
+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");
+
+#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;
+
+$CIAO_ROOT=$ENV{'CIAO_ROOT'};
+
+$SV1 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager",
+ "-ORBEndpoint iiop://localhost:10001 -s $CIAO_ROOT/DAnCE/NodeApplication/NodeApplication");
+
+$SV2 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager",
+ "-ORBEndpoint iiop://localhost:20001 -s $CIAO_ROOT/DAnCE/NodeApplication/NodeApplication");
+
+$SV1->Spawn ();
+$SV2->Spawn ();
+
+sleep (99999999999);
diff --git a/modules/CIAO/examples/Display/descriptors/run_test_without_ns.pl b/modules/CIAO/examples/Display/descriptors/run_test_without_ns.pl
new file mode 100755
index 00000000000..bb090fceda1
--- /dev/null
+++ b/modules/CIAO/examples/Display/descriptors/run_test_without_ns.pl
@@ -0,0 +1,173 @@
+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;
+$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
+$DAnCE = "$ENV{'ACE_ROOT'}/TAO/CIAO/DAnCE";
+
+$daemons_running = 0;
+$em_running = 0;
+$daemons = 2;
+@ports = ( 10001, 20001 );
+@iorfiles = ( "NodeApp1.ior", "NodeApp2.ior" );
+$status = 0;
+$dat_file = "NodeManagerMap.dat";
+$cdp_file = "DeploymentPlan.cdp";
+$controller_exec = "$CIAO_ROOT/examples/Display/RateGen/controller";
+
+$E = 0;
+$EM = 0;
+
+# Delete if there are any .ior files.
+sub delete_ior_files {
+ for ($i = 0; $i < $daemons; ++$i) {
+ unlink $iorfiles[$i];
+ }
+ unlink PerlACE::LocalFile ("EM.ior");
+ unlink PerlACE::LocalFile ("DAM.ior");
+ unlink PerlACE::LocalFile ("RateGen.ior");
+ unlink PerlACE::LocalFile ("GPS.ior");
+ unlink PerlACE::LocalFile ("NavDisplay.ior");
+}
+
+sub kill_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i) {
+ $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1);
+ }
+}
+
+sub kill_open_processes {
+ if ($daemons_running == 1) {
+ kill_node_daemons ();
+ }
+
+ if ($em_running == 1) {
+ $EM->Kill ();
+ $EM->TimedWait (1);
+ }
+}
+
+sub run_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i)
+ {
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+
+ $iiop = "iiop://localhost:$port";
+ $node_app = "$CIAO_ROOT/bin/NodeApplication";
+
+ $d_cmd = "$DANCE_ROOT/bin/dance_node_manager";
+ $d_param = "-ORBEndpoint $iiop -s $node_app -o $iorfile -d 30";
+
+ $Daemons[$i] = new PerlACE::Process ($d_cmd, $d_param);
+ $result = $Daemons[$i]->Spawn ();
+ push(@processes, $Daemons[$i]);
+
+ if (PerlACE::waitforfile_timed ($iorfile,
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR
+ "ERROR: The ior file of node daemon $i could not be found\n";
+ for (; $i > 0; --$i) {
+ $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1);
+ }
+ return -1;
+ }
+ }
+ $daemons_running = 1;
+ return 0;
+}
+
+delete_ior_files ();
+
+# Invoke node daemons.
+print "Invoking node daemons\n";
+$status = run_node_daemons ();
+
+if ($status != 0) {
+ print STDERR "ERROR: Unable to execute the node daemons\n";
+ exit 1;
+}
+
+$ns_running = 1;
+
+# Invoke execution manager.
+print "Invoking execution manager\n";
+$EM = new PerlACE::Process ("$CIAO_ROOT/bin/Execution_Manager",
+ "-o EM.ior -i $dat_file");
+$EM->Spawn ();
+
+if (PerlACE::waitforfile_timed ("EM.ior",
+ $PerlACE::wait_interval_for_process_creation) == -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 - start the application -\n";
+$E =
+ new PerlACE::Process ("$CIAO_ROOT/bin/plan_launcher",
+ "-p flattened_deploymentplan.cdp -k file://EM.ior -o DAM.ior");
+
+$E->SpawnWaitKill (5000);
+
+if (PerlACE::waitforfile_timed (
+ "GPS.ior",
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: The ior file of GPS could not be found\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+if (PerlACE::waitforfile_timed ("RateGen.ior",
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: The ior file of RateGen could not be found\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+print "Invoking the controller\n";
+$controller = new PerlACE::Process ("$controller_exec", "-k file://RateGen.ior");
+$result = $controller->SpawnWaitKill (3000);
+if ($result != 0) {
+ print STDERR "ERROR: The controller returned $result\n";
+ $status = 1;
+}
+
+# put some delay here.
+sleep (20);
+
+# invoking the controller again to stop the rategen
+print "Invoking the controller to stop RateGen\n";
+$controller = new PerlACE::Process ("$controller_exec", "-k file://RateGen.ior -f");
+$result = $controller->SpawnWaitKill (3000);
+if ($result != 0) {
+ print STDERR "ERROR: The controller returned $result\n";
+ $status = 1;
+}
+
+# delay a bit more
+sleep (2);
+
+# Invoke executor - stop the application -.
+print "Invoking executor - stop the application -\n";
+$E =
+ new PerlACE::Process ("$CIAO_ROOT/bin/plan_launcher",
+ "-k file://EM.ior -i file://DAM.ior");
+$E->SpawnWaitKill (3000);
+
+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/examples/Hello/Hello_Base/Hello_Base.idl b/modules/CIAO/examples/Hello/Hello_Base/Hello_Base.idl
new file mode 100644
index 00000000000..18b300932ee
--- /dev/null
+++ b/modules/CIAO/examples/Hello/Hello_Base/Hello_Base.idl
@@ -0,0 +1,21 @@
+//$Id$:
+
+#ifndef CIAO_HELLO_IDL
+#define CIAO_HELLO_IDL
+
+#include <Components.idl>
+
+module Hello
+{
+ interface ReadMessage
+ {
+ string get_message();
+ };
+
+ eventtype TimeOut
+ {
+ public string data;
+ };
+};
+
+#endif /* CIAO_HELLO_IDL */
diff --git a/modules/CIAO/examples/Hello/Hello_Base/Hello_Base.mpc b/modules/CIAO/examples/Hello/Hello_Base/Hello_Base.mpc
new file mode 100644
index 00000000000..2ff1b9e7571
--- /dev/null
+++ b/modules/CIAO/examples/Hello/Hello_Base/Hello_Base.mpc
@@ -0,0 +1,78 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Hello_Base"
+
+project(Hello_Base_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=HELLO_BASE_STUB_Export \
+ -Wb,stub_export_include=Hello_Base_stub_export.h \
+ -Wb,skel_export_macro=HELLO_BASE_SKEL_Export \
+ -Wb,skel_export_include=Hello_Base_skel_export.h
+
+ IDL_Files {
+ Hello_Base.idl
+ }
+}
+
+project(Hello_Base_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ after += Hello_Base_idl_gen
+ idlflags += -Wb,export_macro=HELLO_BASE_STUB_Export \
+ -Wb,export_include=Hello_Base_stub_export.h
+
+ IDL_Files {
+ Hello_BaseE.idl
+ }
+}
+
+project(Hello_Base_stub) : ccm_stub {
+ after += Hello_Base_lem_gen
+ libout = ../lib
+ sharedname = Hello_Base_stub
+ dynamicflags = HELLO_BASE_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Hello_BaseC.cpp
+ Hello_BaseEC.cpp
+ }
+
+ Header_Files {
+ Hello_BaseC.h
+ Hello_Base_stub_export.h
+ }
+
+ Inline_Files {
+ Hello_BaseC.inl
+ }
+}
+
+
+project(Hello_Base_skel) : ccm_svnt {
+ after += Hello_Base_stub
+ sharedname = Hello_Base_skel
+ libs += Hello_Base_stub
+ libout = ../lib
+ libpaths += ../lib
+
+ dynamicflags = HELLO_BASE_SKEL_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Hello_BaseS.cpp
+ }
+
+ Header_Files {
+ Hello_BaseS.h
+ Hello_Base_skel_export.h
+ }
+
+ Inline_Files {
+ Hello_BaseS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/examples/Hello/Receiver/Receiver.idl b/modules/CIAO/examples/Hello/Receiver/Receiver.idl
new file mode 100644
index 00000000000..f64c3be26db
--- /dev/null
+++ b/modules/CIAO/examples/Hello/Receiver/Receiver.idl
@@ -0,0 +1,22 @@
+//$Id$:
+
+#ifndef RECEIVER_IDL
+#define RECEIVER_IDL
+
+#include "../Hello_Base/Hello_Base.idl"
+
+module Hello
+{
+ component Receiver
+ {
+ uses ReadMessage read_message;
+ consumes TimeOut click_in;
+
+ attribute short iterations;
+ };
+
+ home ReceiverHome manages Receiver
+ {
+ };
+};
+#endif /*RECEIVER_IDL*/
diff --git a/modules/CIAO/examples/Hello/Receiver/Receiver.mpc b/modules/CIAO/examples/Hello/Receiver/Receiver.mpc
new file mode 100644
index 00000000000..bb69fe6c789
--- /dev/null
+++ b/modules/CIAO/examples/Hello/Receiver/Receiver.mpc
@@ -0,0 +1,143 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl Receiver"
+
+project(Hello_Receiver_idl_gen) : componentidldefaults {
+ custom_only = 1
+ after += Hello_Base_idl_gen
+ idlflags += -Wb,stub_export_macro=RECEIVER_STUB_Export \
+ -Wb,stub_export_include=Receiver_stub_export.h \
+ -Wb,skel_export_macro=RECEIVER_SKEL_Export \
+ -Wb,skel_export_include=Receiver_skel_export.h \
+ -Wb,svnt_export_macro=RECEIVER_SVNT_Export \
+ -Wb,svnt_export_include=Receiver_svnt_export.h \
+ -Wb,exec_export_macro=RECEIVER_EXEC_Export \
+ -Wb,exec_export_include=Receiver_exec_export.h
+
+ IDL_Files {
+ Receiver.idl
+ }
+}
+
+project(Hello_Receiver_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ after += Hello_Receiver_idl_gen
+ idlflags += -Wb,export_macro=RECEIVER_EXEC_Export \
+ -Wb,export_include=Receiver_exec_export.h \
+ -SS
+
+ IDL_Files {
+ ReceiverE.idl
+ }
+}
+
+project(Hello_Receiver_stub) : ccm_stub {
+ after += Hello_Receiver_idl_gen Hello_Base_stub
+ libs += Hello_Base_stub
+ libout = ../lib
+ libpaths += ../lib
+
+ sharedname = Hello_Receiver_stub
+ dynamicflags = RECEIVER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ReceiverC.cpp
+ }
+
+ Header_Files {
+ ReceiverC.h
+ Receiver_stub_export.h
+ }
+
+ Inline_Files {
+ ReceiverC.inl
+ }
+}
+
+project(Hello_Receiver_exec) : ciao_executor {
+ after += Hello_Receiver_lem_gen Hello_Receiver_stub
+ sharedname = Hello_Receiver_exec
+ libs += Hello_Receiver_stub Hello_Base_stub
+ libout = ../lib
+ libpaths += ../lib
+
+ dynamicflags = RECEIVER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ReceiverEC.cpp
+ Receiver_exec.cpp
+ }
+
+ Header_Files {
+ ReceiverEC.h
+ Receiver_exec.h
+ Receiver_exec_export.h
+ }
+
+ Inline_Files {
+ ReceiverEC.inl
+ }
+}
+
+project(Hello_Receiver_skel) : ccm_svnt {
+ after += Hello_Base_skel Hello_Receiver_stub
+ sharedname = Hello_Receiver_skel
+ libs += Hello_Receiver_stub \
+ Hello_Base_skel \
+ Hello_Base_stub
+ libout = ../lib
+ libpaths += ../lib
+ dynamicflags = RECEIVER_SKEL_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ReceiverS.cpp
+ }
+
+ Header_Files {
+ ReceiverS.h
+ Receiver_skel_export.h
+ }
+
+ Inline_Files {
+ ReceiverS.inl
+ }
+}
+
+project(Hello_Receiver_svnt) : ciao_servant {
+ after += Hello_Receiver_skel Hello_Receiver_exec
+ sharedname = Hello_Receiver_svnt
+ libs += Hello_Receiver_exec \
+ Hello_Receiver_skel \
+ Hello_Receiver_stub \
+ Hello_Base_skel \
+ Hello_Base_stub
+ libout = ../lib
+ libpaths += ../lib
+
+ dynamicflags = RECEIVER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Receiver_svnt.cpp
+ }
+
+ Header_Files {
+ Receiver_svnt.h
+ Receiver_svnt_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+
diff --git a/modules/CIAO/examples/Hello/Receiver/Receiver_exec.cpp b/modules/CIAO/examples/Hello/Receiver/Receiver_exec.cpp
new file mode 100644
index 00000000000..7199fb08742
--- /dev/null
+++ b/modules/CIAO/examples/Hello/Receiver/Receiver_exec.cpp
@@ -0,0 +1,166 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#include "Receiver_exec.h"
+#include "ace/High_Res_Timer.h"
+#include "ace/Date_Time.h"
+#include "ace/OS_NS_unistd.h"
+
+namespace CIAO_Hello_Receiver_Impl
+{
+ Receiver_exec_i::Receiver_exec_i ()
+ {
+ }
+
+ Receiver_exec_i::~Receiver_exec_i ()
+ {
+ }
+
+ void
+ Receiver_exec_i::iterations (CORBA::Short iterations)
+ {
+ this->iterations_ = iterations;
+ }
+
+ CORBA::Short
+ Receiver_exec_i::iterations ()
+ {
+ return this->iterations_;
+ }
+
+
+ void
+ Receiver_exec_i::push_click_in (::Hello::TimeOut * ev)
+ {
+ //Get the message from the Sender first.
+ ACE_DEBUG ((LM_DEBUG,
+ "Receiver - Informed by the Sender with message [%C]\n",
+ ev->data ()));
+
+ Hello::ReadMessage_var rev
+ = this->context_->get_connection_read_message();
+
+ if (CORBA::is_nil (rev.in ()))
+ throw CORBA::BAD_INV_ORDER ();
+
+ for (int i = 0; i < this->iterations_; ++i)
+ {
+ CORBA::String_var str = rev->get_message ();
+ ACE_hrtime_t now = ACE_OS::gethrtime();
+ ACE_CString tm_rec (str.in ());
+ ACE_hrtime_t received = ACE_OS::strtoull (tm_rec.substr(0, 15).c_str(), 0, 0);
+ if (received > 0)
+ {
+ ACE_Time_Value tv (0, 0);
+ ACE_High_Res_Timer::hrtime_to_tv (tv,
+ now - received);
+ ACE_DEBUG ((LM_EMERGENCY,
+ "Receiver - Got message from the server [%C]. difference <%d>\n",
+ str.in (), tv.usec () ));
+ }
+ else
+ {
+ ACE_DEBUG ((LM_EMERGENCY,
+ "Receiver - Got message from the server [%C].\n",
+ str.in () ));
+ }
+ ACE_Time_Value tv(0, 200000000);
+ ACE_OS::sleep (tv);
+ }
+ }
+
+ // Operations from Components::SessionComponen
+ void
+ Receiver_exec_i::set_session_context (::Components::SessionContext_ptr ctx)
+ {
+ ACE_DEBUG ((LM_DEBUG, "Receiver_exec_i::set_session_context\n"));
+
+ this->context_ =
+ ::Hello::CCM_Receiver_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Receiver_exec_i::configuration_complete ()
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "Receiver_exec_i::configuration_complete\n"));
+ }
+
+ void
+ Receiver_exec_i::ccm_activate ()
+ {
+ ACE_DEBUG ((LM_DEBUG, "Receiver_exec_i::ccm_activate\n"));
+ }
+
+ void
+ Receiver_exec_i::ccm_passivate ()
+ {
+ ACE_DEBUG ((LM_DEBUG, "Receiver_exec_i::ccm_passivate\n"));
+ }
+
+ void
+ Receiver_exec_i::ccm_remove ()
+ {
+ ACE_DEBUG ((LM_DEBUG, "Receiver_exec_i::ccm_remove\n"));
+ }
+
+
+ ReceiverHome_exec_i::ReceiverHome_exec_i ()
+ {
+ }
+
+ ReceiverHome_exec_i::~ReceiverHome_exec_i ()
+ {
+ }
+
+ ::Components::EnterpriseComponent_ptr
+ ReceiverHome_exec_i::create ()
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ Receiver_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" RECEIVER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Hello_ReceiverHome_Impl (void)
+ {
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ ReceiverHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/examples/Hello/Receiver/Receiver_exec.h b/modules/CIAO/examples/Hello/Receiver/Receiver_exec.h
new file mode 100644
index 00000000000..05948ef1113
--- /dev/null
+++ b/modules/CIAO/examples/Hello/Receiver/Receiver_exec.h
@@ -0,0 +1,115 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#ifndef CIAO_RECEIVER_EXEC_H
+#define CIAO_RECEIVER_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "ReceiverEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "Receiver_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Hello_Receiver_Impl
+{
+ /**
+ * @class Receiver_exec_i
+ *
+ * Receiver executor implementation class.
+ */
+ class RECEIVER_EXEC_Export Receiver_exec_i
+ : public virtual Receiver_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+
+ public:
+ /// Default constructor.
+ Receiver_exec_i ();
+
+ /// Default destructor.
+ ~Receiver_exec_i ();
+
+ /// Operation to set the value of the attribute "iterations"
+ virtual void iterations (CORBA::Short iterations);
+
+ /// Operation to get the value of the attribute "iterations"
+ virtual CORBA::Short iterations ();
+
+ // Operation which will be called upon receiving the timeout event.
+ virtual void
+ push_click_in (::Hello::TimeOut *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 ();
+
+ protected:
+ /// Copmponent specific context
+ ::Hello::CCM_Receiver_Context_var context_;
+
+ private:
+ CORBA::String_var message_;
+ CORBA::Short iterations_;
+ };
+
+ /**
+ * @class ReceiverHome_exec_i
+ *
+ * Receiver home executor implementation class.
+ */
+ class RECEIVER_EXEC_Export ReceiverHome_exec_i
+ : public virtual ReceiverHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ ReceiverHome_exec_i (void);
+ virtual ~ReceiverHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" RECEIVER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Hello_ReceiverHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_RECEIVER_EXEC_H */
diff --git a/modules/CIAO/examples/Hello/Sender/Sender.idl b/modules/CIAO/examples/Hello/Sender/Sender.idl
new file mode 100644
index 00000000000..eb5f30f5581
--- /dev/null
+++ b/modules/CIAO/examples/Hello/Sender/Sender.idl
@@ -0,0 +1,44 @@
+//$Id$
+
+#ifndef SENDER_IDL
+#define SENDER_IDL
+
+
+#include "../Hello_Base/Hello_Base.idl"
+#include "../Hello_Base/Hello_BaseE.idl"
+
+module Hello
+{
+ /* This is a Sender specific interface which will be used to get the
+ * process start.
+ */
+
+ interface trigger
+ {
+ void start ();
+ };
+
+ enum COLOR_SELECTION
+ {
+ empty,
+ white,
+ red,
+ yellow
+ };
+
+ component Sender supports trigger
+ {
+ provides ReadMessage push_message;
+ publishes TimeOut click_out;
+ attribute string local_message;
+ readonly attribute long hertz;
+ attribute boolean log_time;
+ // A test attribute to test setting attributes through XML
+ attribute COLOR_SELECTION color;
+ };
+
+ home SenderHome manages Sender
+ {
+ };
+};
+#endif /*SENDER_IDL*/
diff --git a/modules/CIAO/examples/Hello/Sender/Sender.mpc b/modules/CIAO/examples/Hello/Sender/Sender.mpc
new file mode 100644
index 00000000000..b9cdd1c4f4d
--- /dev/null
+++ b/modules/CIAO/examples/Hello/Sender/Sender.mpc
@@ -0,0 +1,140 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p Hello_Base -u Hello -c starter Sender"
+
+project(Hello_Sender_idl_gen) : componentidldefaults {
+ custom_only = 1
+ after += Hello_Base_idl_gen
+ idlflags += \
+ -Wb,stub_export_macro=SENDER_STUB_Export \
+ -Wb,stub_export_include=Sender_stub_export.h \
+ -Wb,skel_export_macro=SENDER_SVNT_Export \
+ -Wb,skel_export_include=Sender_svnt_export.h \
+ -Wb,svnt_export_macro=SENDER_SVNT_Export \
+ -Wb,svnt_export_include=Sender_svnt_export.h \
+ -Wb,exec_export_macro=SENDER_EXEC_Export \
+ -Wb,exec_export_include=Sender_exec_export.h
+
+ IDL_Files {
+ Sender.idl
+ }
+}
+
+project(Hello_Sender_lem_gen) : ciaoidldefaults {
+ after += Hello_Sender_idl_gen Hello_Base_lem_gen
+ custom_only = 1
+ idlflags += -Wb,export_macro=SENDER_EXEC_Export \
+ -Wb,export_include=Sender_exec_export.h \
+ -SS
+
+ IDL_Files {
+ SenderE.idl
+ }
+}
+
+project(Hello_Sender_stub) : ccm_stub {
+ after += Hello_Sender_idl_gen Hello_Base_stub
+ libs += Hello_Base_stub
+ libout = ../lib
+ libpaths += ../lib
+
+ sharedname = Hello_Sender_stub
+ dynamicflags = SENDER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SenderC.cpp
+ }
+
+ Header_Files {
+ SenderC.h
+ Sender_stub_export.h
+ }
+
+ Inline_Files {
+ SenderC.inl
+ }
+}
+
+project(Hello_Sender_exec) : ciao_executor {
+ after += Hello_Sender_lem_gen Hello_Sender_stub
+ sharedname = Hello_Sender_exec
+ libs += Hello_Sender_stub Hello_Base_stub
+ libout = ../lib
+ libpaths += ../lib
+
+ dynamicflags = SENDER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SenderEC.cpp
+ Sender_exec.cpp
+ }
+
+ Header_Files {
+ SenderEC.h
+ Sender_exec.h
+ Sender_exec_export.h
+ }
+
+ Inline_Files {
+ SenderEC.inl
+ }
+}
+
+
+project(Hello_Sender_svnt) : ciao_servant {
+ after += Hello_Base_skel Hello_Sender_exec
+ sharedname = Hello_Sender_svnt
+ libs += Hello_Sender_exec \
+ Hello_Sender_stub \
+ Hello_Base_skel \
+ Hello_Base_stub
+ libout = ../lib
+ libpaths += ../lib
+
+ dynamicflags = SENDER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SenderS.cpp
+ Sender_svnt.cpp
+ }
+
+ Header_Files {
+ SenderS.h
+ Sender_svnt.h
+ Sender_svnt_export.h
+ }
+
+ Inline_Files {
+ SenderS.inl
+ }
+}
+
+project (Hello_starter) : ccm_stub, valuetype {
+ exename = starter
+ after += Hello_Sender_stub
+ libs += Hello_Sender_stub Hello_Base_stub
+ libout = ../lib
+ libpaths += ../lib
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ starter.cpp
+ }
+
+ Header_Files {
+ }
+
+ Inline_Files {
+ }
+}
+
diff --git a/modules/CIAO/examples/Hello/Sender/Sender_exec.cpp b/modules/CIAO/examples/Hello/Sender/Sender_exec.cpp
new file mode 100644
index 00000000000..972650085f3
--- /dev/null
+++ b/modules/CIAO/examples/Hello/Sender/Sender_exec.cpp
@@ -0,0 +1,231 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#include "Sender_exec.h"
+#include "ace/Date_Time.h"
+#include "ace/OS_NS_time.h"
+#include "ace/High_Res_Timer.h"
+
+namespace CIAO_Hello_Sender_Impl
+{
+ char*
+ Message_Impl::get_message ()
+ {
+ CORBA::String_var message;
+ if (this->component_.log_time ())
+ {
+ //Add extra time
+ ACE_hrtime_t start = ACE_OS::gethrtime();
+ char timestamp[16];
+ ACE_OS::sprintf (timestamp,
+ "%lld",
+ start);
+ CORBA::String_var tm = CORBA::string_dup(timestamp);
+ int tm_length = strlen(tm);
+ int message_length = strlen(this->component_.message_.in ());
+ //one extra for a space character.
+ message = CORBA::string_alloc( (tm_length + message_length + 2));
+ strcpy(message, tm.in ());
+ strcat(message, " ");
+ strcat(message, this->component_.message_.in ());
+ return CORBA::string_dup(message);
+ }
+ else
+ {
+ ACE_DEBUG ((LM_EMERGENCY, "Sender sending out message: [%C]\n", component_.message_.in ()));
+ return CORBA::string_dup (message);
+ }
+ }
+
+ Sender_exec_i::~Sender_exec_i ()
+ {
+ }
+
+ void
+ Sender_exec_i::local_message (const char * local_message)
+ {
+ message_ = CORBA::string_dup (local_message);
+ }
+
+ char *
+ Sender_exec_i::local_message ()
+ {
+ return CORBA::string_dup (message_.in ());
+ }
+
+ void
+ Sender_exec_i::log_time (bool log_time)
+ {
+ log_time_ = log_time;
+ }
+
+ bool
+ Sender_exec_i::log_time ()
+ {
+ return log_time_;
+ }
+
+ void
+ Sender_exec_i::hertz (CORBA::Long hertz)
+ {
+ this->hertz_ = hertz;
+ ACE_DEBUG ((LM_EMERGENCY, "Sender_exec_i::Hertz:%d\n", this->hertz_));
+ }
+
+ CORBA::Long
+ Sender_exec_i::hertz ()
+ {
+ return this->hertz_;
+ }
+
+ ::Hello::COLOR_SELECTION
+ Sender_exec_i::color ()
+ {
+ // Your code here.
+ return this->color_;
+ }
+
+ void
+ Sender_exec_i::color (::Hello::COLOR_SELECTION color)
+ {
+ this->color_ = color;
+ }
+
+ Hello::CCM_ReadMessage_ptr
+ Sender_exec_i::get_push_message ()
+ {
+ ACE_DEBUG ((LM_EMERGENCY,
+ "Sender_exec.i::get_push_message called\n"));
+ return ( new Message_Impl (*this) );
+ }
+
+ void
+ Sender_exec_i::start ()
+ {
+ Hello::TimeOut_var event = new OBV_Hello::TimeOut;
+ event->data ("ACE/TAO/CIAO");
+ ACE_DEBUG ((LM_EMERGENCY, "Sender initiates the process.\n"));
+ this->context_->push_click_out (event.in ());
+
+ ACE_DEBUG ((LM_EMERGENCY, "My current color is:"));
+
+ switch (this->color_)
+ {
+ case ::Hello::empty:
+ ACE_DEBUG ((LM_EMERGENCY, "ERROR: Enum attribute initialization failed.\n"));
+ break;
+
+ case ::Hello::white:
+ ACE_DEBUG ((LM_EMERGENCY, "white\n"));
+ break;
+
+ case ::Hello::red:
+ ACE_DEBUG ((LM_EMERGENCY, "red\n"));
+ break;
+
+ case ::Hello::yellow:
+ ACE_DEBUG ((LM_EMERGENCY, "yellow\n"));
+ break;
+
+ default:
+ ACE_DEBUG ((LM_EMERGENCY, "Unknown color!\n"));
+
+ }
+ }
+
+ void
+ Sender_exec_i::set_session_context (::Components::SessionContext_ptr ctx)
+ {
+ ACE_DEBUG ((LM_EMERGENCY, "Sender_exec_i::set_session_context\n"));
+
+ this->context_ =
+ ::Hello::CCM_Sender_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Sender_exec_i::configuration_complete ()
+ {
+ ACE_DEBUG ((LM_EMERGENCY,
+ "Sender_exec_i::configuration_complete\n"));
+ }
+
+ void
+ Sender_exec_i::ccm_activate ()
+ {
+ ACE_DEBUG ((LM_EMERGENCY,
+ "Sender_exec_i::ccm_activate\n"));
+ }
+
+ void
+ Sender_exec_i::ccm_passivate ()
+ {
+ ACE_DEBUG ((LM_EMERGENCY, "Sender_exec_i::ccm_passivate\n"));
+ }
+
+ void
+ Sender_exec_i::ccm_remove ()
+ {
+ ACE_DEBUG ((LM_EMERGENCY, "Sender_exec_i::ccm_remove\n"));
+ }
+
+ SenderHome_exec_i::SenderHome_exec_i ()
+ {
+ }
+
+ SenderHome_exec_i::~SenderHome_exec_i ()
+ {
+ }
+
+ ::Components::EnterpriseComponent_ptr
+ SenderHome_exec_i::create ()
+ {
+ ACE_DEBUG ((LM_EMERGENCY, "(%P|%t) creating SenderHome\n"));
+
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ Sender_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" SENDER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Hello_SenderHome_Impl (void)
+ {
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ SenderHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/examples/Hello/Sender/Sender_exec.h b/modules/CIAO/examples/Hello/Sender/Sender_exec.h
new file mode 100644
index 00000000000..d712da5efaa
--- /dev/null
+++ b/modules/CIAO/examples/Hello/Sender/Sender_exec.h
@@ -0,0 +1,185 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#ifndef CIAO_SENDER_EXEC_H
+#define CIAO_SENDER_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "SenderEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "Sender_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Hello_Sender_Impl
+{
+ /**
+ * @class Sender_exec_i
+ *
+ * Sender executor implementation class.
+ */
+ class SENDER_EXEC_Export Sender_exec_i
+ : public virtual Sender_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+
+ public:
+ /// Default constructor.
+ Sender_exec_i ()
+ : message_(CORBA::string_dup ("Default Message")),
+ color_ (::Hello::empty)
+ {
+ }
+
+ /// Secondary construction.
+ Sender_exec_i (const char* local_message)
+ : message_ (CORBA::string_dup (local_message)),
+ color_ (::Hello::empty)
+ {
+ }
+
+ /// Default destructor.
+ virtual ~Sender_exec_i ();
+
+ /// Operation to set the value of the attribute "local_message"
+ virtual void local_message (const char * local_message);
+
+ /// Operation to get the value of the attribute "local_message"
+ virtual char * local_message ();
+
+ /// Operation to set the value of the attribute "log_time"
+ virtual void log_time (bool log_time);
+
+ /// Operation to get the value of the attribute "log_time"
+ virtual bool log_time ();
+
+
+ /// Operation to set the value of the attribute "hertz"
+ virtual void hertz (CORBA::Long hertz);
+
+ /// Operation to get the value of the attribute "hertz"
+ virtual CORBA::Long hertz ();
+
+ /* Operations for obtaining the interface reference. */
+ /* This method will be used in the assembly face so the
+ * ObjRef of this read_message facet will be sent to the
+ * client side(receptacle).
+ */
+ // Note: You can specify the return type as ::Hello::CCM_message *
+ virtual ::Hello::CCM_ReadMessage_ptr
+ get_push_message ();
+
+ virtual ::Hello::COLOR_SELECTION
+ color ();
+
+ virtual void
+ color (::Hello::COLOR_SELECTION);
+
+ // Operation inside of the trigger interface.
+ virtual void start ();
+
+ // 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 ();
+
+ protected:
+ /// Copmponent specific context
+ ::Hello::CCM_Sender_Context_var context_;
+
+ private:
+ CORBA::String_var message_;
+
+ CORBA::Boolean log_time_;
+
+ CORBA::Long hertz_;
+
+ ::Hello::COLOR_SELECTION color_;
+
+ friend class Message_Impl;
+ };
+
+
+ //
+ //
+ //
+ class Message_Impl : public virtual Hello::CCM_ReadMessage,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Message_Impl (Sender_exec_i& component)
+ : component_ (component)
+ {
+ }
+
+ virtual char *
+ get_message ();
+
+ private:
+ Sender_exec_i& component_;
+ };
+
+ /**
+ * @class SenderHome_exec_i
+ *
+ * Sender home executor implementation class.
+ */
+ class SENDER_EXEC_Export SenderHome_exec_i
+ : public virtual SenderHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SenderHome_exec_i (void);
+ virtual ~SenderHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" SENDER_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Hello_Sender_Impl (void);
+
+ extern "C" SENDER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Hello_SenderHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_SENDER_EXEC_H */
diff --git a/modules/CIAO/examples/Hello/Sender/starter.cpp b/modules/CIAO/examples/Hello/Sender/starter.cpp
new file mode 100644
index 00000000000..4a1c04fbe9a
--- /dev/null
+++ b/modules/CIAO/examples/Hello/Sender/starter.cpp
@@ -0,0 +1,88 @@
+//$Id$:
+
+#include "SenderC.h"
+#include "ace/Get_Opt.h"
+
+// IOR file of the Sender
+const ACE_TCHAR * ior = 0;
+const char * message = 0;
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("k:m:"));
+ int c = 0;
+
+ while ((c = get_opts ()) != -1)
+ {
+ switch (c)
+ {
+ case 'k':
+ ior = get_opts.opt_arg ();
+ break;
+
+ case 'm':
+ message = ACE_TEXT_ALWAYS_CHAR(get_opts.opt_arg ());
+ break;
+
+ case '?': // display help for use of the server.
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Usage: %s\n"
+ "-k <Sender IOR> (default is file://Sender.ior)\n",
+ "-m <Message>\n",
+ argv [0]),
+ -1);
+ break;
+ }
+ }
+
+ if (ior == 0)
+ {
+ ior = ACE_TEXT("file://Sender.ior");
+ }
+
+ return 0;
+}
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+ // Initialize orb
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ if (parse_args (argc, argv) != 0)
+ {
+ return -1;
+ }
+
+ CORBA::Object_var obj = orb->string_to_object (ior);
+
+ Hello::Sender_var sender = Hello::Sender::_narrow (obj.in ());
+
+ if (CORBA::is_nil (sender.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Unable to acquire Sender's objref\n"),
+ -1);
+ }
+
+ if (message)
+ {
+ sender->local_message (message);
+ }
+
+ sender->start ();
+
+ orb->destroy ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Unknown exception\n");
+ return -1;
+ }
+
+ return 0;
+}
diff --git a/modules/CIAO/examples/Hello/descriptors/Aliased_Map.dat b/modules/CIAO/examples/Hello/descriptors/Aliased_Map.dat
new file mode 100644
index 00000000000..30e6930c2a3
--- /dev/null
+++ b/modules/CIAO/examples/Hello/descriptors/Aliased_Map.dat
@@ -0,0 +1,2 @@
+SenderNode corbaloc:iiop:localhost:60001/Alias.NodeManager
+ReceiverNode corbaloc:iiop:localhost:60001/Alias.NodeManager \ No newline at end of file
diff --git a/modules/CIAO/examples/Hello/descriptors/DeploymentPlan.cdp b/modules/CIAO/examples/Hello/descriptors/DeploymentPlan.cdp
new file mode 100644
index 00000000000..b1ba4709c16
--- /dev/null
+++ b/modules/CIAO/examples/Hello/descriptors/DeploymentPlan.cdp
@@ -0,0 +1,383 @@
+<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_Deployment_1</label>
+ <UUID>Hello_Deployment_1</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="Hello_ReceiverHomeImplementation">
+ <name>Hello_ReceiverHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="Hello_Receiver_ExecArtifact" />
+ <artifact xmi:idref="Hello_Receiver_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_ReceiverHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_ReceiverHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_Receiver_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_Receiver_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="Hello_ReceiverComponentImplementation">
+ <name>Hello_ReceiverComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Hello_Receiver_ExecArtifact" />
+ <artifact xmi:idref="Hello_Receiver_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="Hello_SenderHomeImplementation">
+ <name>Hello_SenderHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="Hello_Sender_ExecArtifact" />
+ <artifact xmi:idref="Hello_Sender_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_SenderHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_SenderHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_Sender_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_Sender_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="Hello_SenderComponentImplementation">
+ <name>Hello_SenderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Hello_Sender_ExecArtifact" />
+ <artifact xmi:idref="Hello_Sender_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="Hello_ReceiverHomeInstance">
+ <name>Hello_ReceiverHome</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ReceiverHomeImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverHome.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="Hello_ReceiverComponentInstance">
+ <name>Hello_ReceiverComponent</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ReceiverComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_ReceiverHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>iterations</name>
+ <value>
+ <type>
+ <kind>tk_short</kind>
+ </type>
+ <value>
+ <short>10</short>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="Hello_SenderHomeInstance">
+ <name>Hello_SenderHome</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_SenderHomeImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderHome.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderHome</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="Hello_SenderComponentInstance">
+ <name>Hello_SenderComponent</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_SenderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_SenderHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>local_message</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>hello, world!</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>color</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>COLOR_SELECTION</name>
+ <typeId>IDL:Hello/COLOR_SELECTION:1.0</typeId>
+ <member>empty</member>
+ <member>white</member>
+ <member>red</member>
+ <member>yellow</member>
+ </enum>
+ </type>
+ <value>
+ <enum>yellow</enum>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>log_time</name>
+ <value>
+ <type>
+ <kind>tk_boolean</kind>
+ </type>
+ <value>
+ <boolean>false</boolean>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>MessageConnection</name>
+ <internalEndpoint>
+ <portName>read_message</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>push_message</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_SenderComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>EventConnection</name>
+ <internalEndpoint>
+ <portName>click_out</portName>
+ <provider>false</provider>
+ <kind>EventPublisher</kind>
+ <instance xmi:idref="Hello_SenderComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>click_in</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="Hello_Receiver_ExecArtifact">
+ <name>Hello_Receiver_exec</name>
+ <source/>
+ <node/>
+ <location>Hello_Receiver_exec</location>
+ </artifact>
+ <artifact xmi:id="Hello_Receiver_SvntArtifact">
+ <name>Hello_Receiver_svnt</name>
+ <source/>
+ <node/>
+ <location>Hello_Receiver_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="Hello_Sender_ExecArtifact">
+ <name>Hello_Sender_exec</name>
+ <source/>
+ <node/>
+ <location>Hello_Sender_exec</location>
+ </artifact>
+ <artifact xmi:id="Hello_Sender_SvntArtifact">
+ <name>Hello_Sender_svnt</name>
+ <source/>
+ <node/>
+ <location>Hello_Sender_svnt</location>
+ </artifact>
+
+</Deployment:DeploymentPlan>
diff --git a/modules/CIAO/examples/Hello/descriptors/DeploymentPlan_without_ns.cdp b/modules/CIAO/examples/Hello/descriptors/DeploymentPlan_without_ns.cdp
new file mode 100644
index 00000000000..6d5b3f05780
--- /dev/null
+++ b/modules/CIAO/examples/Hello/descriptors/DeploymentPlan_without_ns.cdp
@@ -0,0 +1,317 @@
+<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_Deployment_1</label>
+ <UUID>Hello_Deployment_1</UUID>
+
+ <!-- Implementations declarations -->
+
+ <!-- Home implementation -->
+ <implementation xmi:id="Hello_ReceiverHomeImplementation">
+ <name>Hello_ReceiverHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="Hello_Receiver_ExecArtifact" />
+ <artifact xmi:idref="Hello_Receiver_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_ReceiverHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_ReceiverHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_Receiver_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_Receiver_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="Hello_ReceiverComponentImplementation">
+ <name>Hello_ReceiverComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Hello_Receiver_ExecArtifact" />
+ <artifact xmi:idref="Hello_Receiver_SvntArtifact" />
+ </implementation>
+
+ <implementation xmi:id="Hello_SenderHomeImplementation">
+ <name>Hello_SenderHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="Hello_Sender_ExecArtifact" />
+ <artifact xmi:idref="Hello_Sender_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_SenderHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_SenderHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_Sender_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_Sender_exec</string>
+ </value>
+ </value>
+ </execParameter>
+ </implementation>
+
+ <implementation xmi:id="Hello_SenderComponentImplementation">
+ <name>Hello_SenderComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Hello_Sender_ExecArtifact" />
+ <artifact xmi:idref="Hello_Sender_SvntArtifact" />
+ </implementation>
+
+ <instance xmi:id="Hello_ReceiverHomeInstance">
+ <name>Hello_ReceiverHome</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ReceiverHomeImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>ReceiverHome.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="Hello_ReceiverComponentInstance">
+ <name>Hello_ReceiverComponent</name>
+ <node>ReceiverNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_ReceiverComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_ReceiverHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="Hello_SenderHomeInstance">
+ <name>Hello_SenderHome</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_SenderHomeImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>SenderHome.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <instance xmi:id="Hello_SenderComponentInstance">
+ <name>Hello_SenderComponent</name>
+ <node>SenderNode</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Hello_SenderComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Hello_SenderHome</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>local_message</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>hello, world!</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>color</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>COLOR_SELECTION</name>
+ <typeId>IDL:Hello/COLOR_SELECTION:1.0</typeId>
+ <member>empty</member>
+ <member>white</member>
+ <member>red</member>
+ <member>yellow</member>
+ </enum>
+ </type>
+ <value>
+ <enum>yellow</enum>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>MessageConnection</name>
+ <internalEndpoint>
+ <portName>read_message</portName>
+ <provider>false</provider>
+ <kind>SimplexReceptacle</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>push_message</portName>
+ <provider>true</provider>
+ <kind>Facet</kind>
+ <instance xmi:idref="Hello_SenderComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>EventConnection</name>
+ <internalEndpoint>
+ <portName>click_out</portName>
+ <provider>false</provider>
+ <kind>EventPublisher</kind>
+ <instance xmi:idref="Hello_SenderComponentInstance" />
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>click_in</portName>
+ <provider>true</provider>
+ <kind>EventConsumer</kind>
+ <instance xmi:idref="Hello_ReceiverComponentInstance" />
+ </internalEndpoint>
+ </connection>
+
+ <!-- Artifacts declarations -->
+ <artifact xmi:id="Hello_Receiver_ExecArtifact">
+ <name>Hello_Receiver_exec</name>
+ <source/>
+ <node/>
+ <location>Hello_Receiver_exec</location>
+ </artifact>
+ <artifact xmi:id="Hello_Receiver_SvntArtifact">
+ <name>Hello_Receiver_svnt</name>
+ <source/>
+ <node/>
+ <location>Hello_Receiver_svnt</location>
+ </artifact>
+
+ <artifact xmi:id="Hello_Sender_ExecArtifact">
+ <name>Hello_Sender_exec</name>
+ <source/>
+ <node/>
+ <location>Hello_Sender_exec</location>
+ </artifact>
+ <artifact xmi:id="Hello_Sender_SvntArtifact">
+ <name>Hello_Sender_svnt</name>
+ <source/>
+ <node/>
+ <location>Hello_Sender_svnt</location>
+ </artifact>
+
+</Deployment:DeploymentPlan>
diff --git a/modules/CIAO/examples/Hello/descriptors/Domain.cdd b/modules/CIAO/examples/Hello/descriptors/Domain.cdd
new file mode 100644
index 00000000000..882b29724cd
--- /dev/null
+++ b/modules/CIAO/examples/Hello/descriptors/Domain.cdd
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<Deployment:Domain
+ 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 Domain</label>
+<UUID>effd4bd0-6db0-4c50-9bb7-db9decebae1c</UUID>
+<node>
+ <name>Sender</name>
+ <label>Sender's Node</label>
+</node>
+<node>
+ <name>Receiver</name>
+ <label>Receiver's Node</label>
+</node>
+</Deployment:Domain>
diff --git a/modules/CIAO/examples/Hello/descriptors/Hello.pcd b/modules/CIAO/examples/Hello/descriptors/Hello.pcd
new file mode 100644
index 00000000000..a0f5051444a
--- /dev/null
+++ b/modules/CIAO/examples/Hello/descriptors/Hello.pcd
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:PackageConfiguration
+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 Example Configuration for Unix machines</label>
+ <UUID>559d65e8-0407-48c0-a158-dafe21360fef</UUID>
+ <basePackage href="Hello.cpd"/>
+</Deployment:PackageConfiguration>
diff --git a/modules/CIAO/examples/Hello/descriptors/NodeManagerMap.dat b/modules/CIAO/examples/Hello/descriptors/NodeManagerMap.dat
new file mode 100644
index 00000000000..fb390806728
--- /dev/null
+++ b/modules/CIAO/examples/Hello/descriptors/NodeManagerMap.dat
@@ -0,0 +1,4 @@
+SenderNode corbaloc:iiop:localhost:60001/Sender.NodeManager
+
+
+ReceiverNode corbaloc:iiop:localhost:60002/Receiver.NodeManager \ No newline at end of file
diff --git a/modules/CIAO/examples/Hello/descriptors/package.tpd b/modules/CIAO/examples/Hello/descriptors/package.tpd
new file mode 100644
index 00000000000..d447a2abb4a
--- /dev/null
+++ b/modules/CIAO/examples/Hello/descriptors/package.tpd
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:TopLevelPackageDescription
+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">
+ <package href="Hello.pcd"/>
+</Deployment:TopLevelPackageDescription>
diff --git a/modules/CIAO/examples/Hello/descriptors/run_NodeDaemons.pl b/modules/CIAO/examples/Hello/descriptors/run_NodeDaemons.pl
new file mode 100755
index 00000000000..2baf6b0cb0b
--- /dev/null
+++ b/modules/CIAO/examples/Hello/descriptors/run_NodeDaemons.pl
@@ -0,0 +1,43 @@
+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");
+
+#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;
+
+$CIAO_ROOT=$ENV{'CIAO_ROOT'};
+$DANCE_ROOT = "$ENV{'DANCE_ROOT'}";
+
+PerlACE::add_lib_path ('../lib');
+
+$SV1 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager",
+ "-ORBEndpoint iiop://localhost:60001 -s $CIAO_ROOT/bin/ciao_componentserver -n Sender=NodeApp1.ior -t 30 --instance-nc corbaloc:rir:/NameService");
+
+$SV2 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager",
+ "-ORBEndpoint iiop://localhost:60002 -s $CIAO_ROOT/bin/ciao_componentserver -n Receiver=NodeApp2.ior -t 30 --instance-nc corbaloc:rir:/NameService");
+
+$SV1->Spawn ();
+$SV2->Spawn ();
+
+sleep (99999999999);
diff --git a/modules/CIAO/examples/Hello/descriptors/run_test.pl b/modules/CIAO/examples/Hello/descriptors/run_test.pl
new file mode 100755
index 00000000000..a34d57731eb
--- /dev/null
+++ b/modules/CIAO/examples/Hello/descriptors/run_test.pl
@@ -0,0 +1,205 @@
+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;
+
+$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
+$TAO_ROOT = "$ENV{'TAO_ROOT'}";
+$DAnCE = "$ENV{'DANCE_ROOT'}";
+
+$daemons_running = 0;
+$em_running = 0;
+$ns_running = 0;
+
+$daemons = 2;
+@ports = ( 60001, 60002 );
+@iorfiles = ( "NodeApp1.ior", "NodeApp2.ior" );
+@nodenames = ( "Sender", "Receiver" );
+
+$status = 0;
+$dat_file = "NodeManagerMap.dat";
+$cdp_file = "DeploymentPlan.cdp";
+
+$controller_exec = "$CIAO_ROOT/examples/Hello/Sender/starter";
+
+$nsior = PerlACE::LocalFile ("ns.ior");
+
+PerlACE::add_lib_path ('../lib');
+
+unlink $nsior;
+
+$E = 0;
+$EM = 0;
+
+# Delete if there are any .ior files.
+sub delete_ior_files {
+ for ($i = 0; $i < $daemons; ++$i) {
+ unlink $iorfiles[$i];
+ }
+ unlink PerlACE::LocalFile ("EM.ior");
+ unlink PerlACE::LocalFile ("Receiver.ior");
+ unlink PerlACE::LocalFile ("Sender.ior");
+ unlink PerlACE::LocalFile ("DAM.ior");
+ unlink PerlACE::LocalFile ("ns.ior");
+}
+
+sub kill_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i) {
+ $Daemons[$i]->Kill (); $Daemons[$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);
+ }
+
+}
+
+sub run_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i)
+ {
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+ $nodename = $nodenames[$i];
+ $iiop = "iiop://localhost:$port";
+ $node_app = "$CIAO_ROOT/bin/ciao_componentserver";
+
+ $d_cmd = "$DAnCE/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";
+
+ $Daemons[$i] = new PerlACE::Process ($d_cmd, $d_param);
+ $result = $Daemons[$i]->Spawn ();
+ push(@processes, $Daemons[$i]);
+
+ if (PerlACE::waitforfile_timed ($iorfile,
+ 30) == -1) {
+ print STDERR
+ "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
+ for (; $i >= 0; --$i) {
+ $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1);
+ }
+ return -1;
+ }
+ }
+ return 0;
+}
+
+delete_ior_files ();
+
+# Invoke naming service
+
+$NS = new PerlACE::Process ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 0 -ORBEndpoint iiop://localhost:60003 -o ns.ior");
+
+$NS->Spawn ();
+
+print STDERR "Starting Naming Service with -m 0 -ORBEndpoint iiop://localhost:60003 -o ns.ior\n";
+
+if (PerlACE::waitforfile_timed ($nsior, $PerlACE::wait_interval_for_process_creation) == -1)
+{
+ print STDERR "ERROR: cannot find naming service IOR file\n";
+ $NS->Kill ();
+ exit 1;
+}
+
+$ns_running = 1;
+
+# Set up NamingService environment
+$ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService";
+
+
+# Invoke node daemons.
+print "Invoking node daemons\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 -eEM.ior --node-map $dat_file\n";
+$EM = new PerlACE::Process ("$DAnCE/bin/dance_execution_manager",
+ "-eEM.ior --node-map $dat_file");
+$EM->Spawn ();
+
+if (PerlACE::waitforfile_timed ("EM.ior",
+ $PerlACE::wait_interval_for_process_creation) == -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 - start the application -\n";
+
+print "Start dance_plan_launcher.exe with -x DeploymentPlan.cdp -k file://EM.ior\n";
+$E =
+ new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher",
+ "-x DeploymentPlan.cdp -k file://EM.ior");
+
+$E->SpawnWaitKill (50);
+
+if (PerlACE::waitforfile_timed (
+ "Receiver.ior",
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: The ior file of receiver could not be found\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+if (PerlACE::waitforfile_timed ("Sender.ior",
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: The ior file of sender could not be found\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+print "Invoking the controller ($controller_exec -k file://Sender.ior)\n";
+$controller = new PerlACE::Process ("$controller_exec", "-k file://Sender.ior");
+$result = $controller->SpawnWaitKill (30);
+
+if ($result != 0) {
+ print STDERR "ERROR: The controller returned $result\n";
+ $status = 1;
+}
+
+# Invoke executor - stop the application -.
+print "Invoking executor - stop the application -\n";
+print "by running dance_plan_launcher.exe with -k file://EM.ior -x DeploymentPlan.cdp -q\n";
+
+$E =
+ new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher",
+ "-k file://EM.ior -x DeploymentPlan.cdp -q");
+$E->SpawnWaitKill (30);
+
+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/examples/Hello/descriptors/run_test_alias.pl b/modules/CIAO/examples/Hello/descriptors/run_test_alias.pl
new file mode 100755
index 00000000000..4d53ae417d4
--- /dev/null
+++ b/modules/CIAO/examples/Hello/descriptors/run_test_alias.pl
@@ -0,0 +1,195 @@
+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;
+
+$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
+$TAO_ROOT = "$ENV{'TAO_ROOT'}";
+$DAnCE = "$ENV{'DANCE_ROOT'}";
+$daemons_running = 0;
+$em_running = 0;
+$ns_running = 0;
+$daemons = 1;
+@ports = ( 60001 );
+@iorfiles = ( "NodeApp1.ior" );
+@nodenames = ( "Alias" );
+$status = 0;
+$dat_file = "Aliased_Map.dat";
+$cdp_file = "DeploymentPlan.cdp";
+$controller_exec = "$CIAO_ROOT/examples/Hello/Sender/starter";
+
+$nsior = PerlACE::LocalFile ("ns.ior");
+
+PerlACE::add_lib_path ('../lib');
+
+unlink $nsior;
+
+$E = 0;
+$EM = 0;
+
+# Delete if there are any .ior files.
+sub delete_ior_files {
+ for ($i = 0; $i < $daemons; ++$i) {
+ unlink $iorfiles[$i];
+ }
+ unlink PerlACE::LocalFile ("EM.ior");
+ unlink PerlACE::LocalFile ("Receiver.ior");
+ unlink PerlACE::LocalFile ("Sender.ior");
+ unlink PerlACE::LocalFile ("DAM.ior");
+ unlink PerlACE::LocalFile ("ns.ior");
+}
+
+sub kill_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i) {
+ $Daemons[$i]->Kill (); $Daemons[$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);
+ }
+
+}
+
+sub run_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i)
+ {
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+ $nodename = $nodenames[$i];
+ $iiop = "iiop://localhost:$port";
+ $node_app = "$CIAO_ROOT/bin/ciao_componentserver";
+
+ $d_cmd = "$DAnCE/bin/dance_node_manager";
+ $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --instance-nc corbaloc:rir:/NameService";
+
+ $Daemons[$i] = new PerlACE::Process ($d_cmd, $d_param);
+ $result = $Daemons[$i]->Spawn ();
+ push(@processes, $Daemons[$i]);
+
+ if (PerlACE::waitforfile_timed ($iorfile,
+ 30) == -1) {
+ print STDERR
+ "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
+ for (; $i >= 0; --$i) {
+ $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1);
+ }
+ return -1;
+ }
+ }
+ return 0;
+}
+
+delete_ior_files ();
+
+# Invoke naming service
+
+$NS = new PerlACE::Process ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 0 -ORBEndpoint iiop://localhost:60003 -o ns.ior");
+
+$NS->Spawn ();
+
+print STDERR "Starting Naming Service\n";
+
+if (PerlACE::waitforfile_timed ($nsior, $PerlACE::wait_interval_for_process_creation) == -1)
+{
+ print STDERR "ERROR: cannot find naming service IOR file\n";
+ $NS->Kill ();
+ exit 1;
+}
+
+$ns_running = 1;
+
+# Set up NamingService environment
+$ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService";
+
+
+# Invoke node daemons.
+print "Invoking node daemons\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 = new PerlACE::Process ("$DAnCE/bin/dance_execution_manager",
+ "-eEM.ior --node-map $dat_file");
+$EM->Spawn ();
+
+if (PerlACE::waitforfile_timed ("EM.ior",
+ $PerlACE::wait_interval_for_process_creation) == -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 - start the application -\n";
+$E =
+ new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher",
+ "-x DeploymentPlan.cdp -k file://EM.ior");
+
+$E->SpawnWaitKill (5000);
+
+if (PerlACE::waitforfile_timed (
+ "Receiver.ior",
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: The ior file of receiver could not be found\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+if (PerlACE::waitforfile_timed ("Sender.ior",
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: The ior file of sender could not be found\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+print "Invoking the controller\n";
+$controller = new PerlACE::Process ("$controller_exec", "-k file://Sender.ior");
+$result = $controller->SpawnWaitKill (3000);
+
+if ($result != 0) {
+ print STDERR "ERROR: The controller returned $result\n";
+ $status = 1;
+}
+
+# Invoke executor - stop the application -.
+print "Invoking executor - stop the application -\n";
+$E =
+ new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher",
+ "-k file://EM.ior -x DeploymentPlan.cdp -q");
+$E->SpawnWaitKill (3000);
+
+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/examples/Hello/descriptors/run_test_without_ns.pl b/modules/CIAO/examples/Hello/descriptors/run_test_without_ns.pl
new file mode 100755
index 00000000000..f973c3837dc
--- /dev/null
+++ b/modules/CIAO/examples/Hello/descriptors/run_test_without_ns.pl
@@ -0,0 +1,181 @@
+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;
+
+$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
+$TAO_ROOT = "$ENV{'TAO_ROOT'}";
+$DAnCE = "$ENV{'DANCE_ROOT'}";
+
+$daemons_running = 0;
+$em_running = 0;
+$ns_running = 0;
+
+$daemons = 2;
+@ports = ( 60001, 60002 );
+@iorfiles = ( "NodeApp1.ior", "NodeApp2.ior" );
+@nodenames = ( "Sender", "Receiver" );
+
+$status = 0;
+$dat_file = "NodeManagerMap.dat";
+$cdp_file = "DeploymentPlan_without_ns.cdp";
+
+$controller_exec = "$CIAO_ROOT/examples/Hello/Sender/starter";
+
+PerlACE::add_lib_path ('../lib');
+
+unlink $nsior;
+
+$E = 0;
+$EM = 0;
+
+# Delete if there are any .ior files.
+sub delete_ior_files {
+ for ($i = 0; $i < $daemons; ++$i) {
+ unlink $iorfiles[$i];
+ }
+ unlink PerlACE::LocalFile ("EM.ior");
+ unlink PerlACE::LocalFile ("Receiver.ior");
+ unlink PerlACE::LocalFile ("Sender.ior");
+ unlink PerlACE::LocalFile ("DAM.ior");
+}
+
+sub kill_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i) {
+ $Daemons[$i]->Kill (); $Daemons[$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);
+ }
+
+}
+
+sub run_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i)
+ {
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+ $nodename = $nodenames[$i];
+ $iiop = "iiop://localhost:$port";
+ $node_app = "$CIAO_ROOT/bin/ciao_componentserver";
+
+ $d_cmd = "$DAnCE/bin/dance_node_manager";
+ $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30";
+
+ print "Run dance_node_manager with $d_param\n";
+
+ $Daemons[$i] = new PerlACE::Process ($d_cmd, $d_param);
+ $result = $Daemons[$i]->Spawn ();
+ push(@processes, $Daemons[$i]);
+
+ if (PerlACE::waitforfile_timed ($iorfile,
+ 30) == -1) {
+ print STDERR
+ "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
+ for (; $i >= 0; --$i) {
+ $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1);
+ }
+ return -1;
+ }
+ }
+ return 0;
+}
+
+delete_ior_files ();
+
+# Invoke node daemons.
+print "Invoking node daemons\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 -eEM.ior --node-map $dat_file\n";
+$EM = new PerlACE::Process ("$DAnCE/bin/dance_execution_manager",
+ "-eEM.ior --node-map $dat_file");
+$EM->Spawn ();
+
+if (PerlACE::waitforfile_timed ("EM.ior",
+ $PerlACE::wait_interval_for_process_creation) == -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 - start the application -\n";
+
+print "Start dance_plan_launcher.exe with -x DeploymentPlan_without_ns.cdp -k file://EM.ior\n";
+$E =
+ new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher",
+ "-x DeploymentPlan_without_ns.cdp -k file://EM.ior");
+
+$E->SpawnWaitKill (5000);
+
+if (PerlACE::waitforfile_timed (
+ "Receiver.ior",
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: The ior file of receiver could not be found\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+if (PerlACE::waitforfile_timed ("Sender.ior",
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: The ior file of sender could not be found\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+print "Invoking the controller ($controller_exec -k file://Sender.ior)\n";
+$controller = new PerlACE::Process ("$controller_exec", "-k file://Sender.ior");
+$result = $controller->SpawnWaitKill (3000);
+
+if ($result != 0) {
+ print STDERR "ERROR: The controller returned $result\n";
+ $status = 1;
+}
+
+# Invoke executor - stop the application -.
+print "Invoking executor - stop the application -\n";
+print "by running dance_plan_launcher.exe with -k file://EM.ior -x DeploymentPlan.cdp -q\n";
+
+$E =
+ new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher",
+ "-k file://EM.ior -x DeploymentPlan.cdp -q");
+$E->SpawnWaitKill (3000);
+
+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/examples/Hello/descriptors/svc_em.conf b/modules/CIAO/examples/Hello/descriptors/svc_em.conf
new file mode 100644
index 00000000000..2aa568bf9af
--- /dev/null
+++ b/modules/CIAO/examples/Hello/descriptors/svc_em.conf
@@ -0,0 +1,9 @@
+# $Id$
+#
+# Please see $TAO_ROOT/docs/Options.html for details on these options.
+#
+
+static Advanced_Resource_Factory "-ORBReactorType select_st -ORBInputCDRAllocator null -ORBConnectionCacheLock null -ORBFlushingStrategy blocking"
+static Client_Strategy_Factory "-ORBProfileLock null -ORBClientConnectionHandler RW"
+static Server_Strategy_Factory "-ORBConcurrency thread-per-connection -ORBPOALock thread -ORBAllowReactivationOfSystemids 0"
+
diff --git a/modules/CIAO/examples/Hello/descriptors_RTCCM/NodeManagerMap.dat b/modules/CIAO/examples/Hello/descriptors_RTCCM/NodeManagerMap.dat
new file mode 100644
index 00000000000..9880f37997e
--- /dev/null
+++ b/modules/CIAO/examples/Hello/descriptors_RTCCM/NodeManagerMap.dat
@@ -0,0 +1,2 @@
+SenderNode corbaloc:iiop:localhost:60001/NodeManager
+ReceiverNode corbaloc:iiop:localhost:60002/NodeManager \ No newline at end of file
diff --git a/modules/CIAO/examples/Hello/descriptors_RTCCM/RTsvc.conf b/modules/CIAO/examples/Hello/descriptors_RTCCM/RTsvc.conf
new file mode 100644
index 00000000000..1bfd9e8eaba
--- /dev/null
+++ b/modules/CIAO/examples/Hello/descriptors_RTCCM/RTsvc.conf
@@ -0,0 +1,5 @@
+# No options required for regular testing
+
+# For real-time testing, uncomment the following line:
+static RT_ORB_Loader "-ORBSchedPolicy SCHED_FIFO -ORBScopePolicy SYSTEM"
+
diff --git a/modules/CIAO/examples/Hello/descriptors_RTCCM/input.csr b/modules/CIAO/examples/Hello/descriptors_RTCCM/input.csr
new file mode 100644
index 00000000000..a3881225930
--- /dev/null
+++ b/modules/CIAO/examples/Hello/descriptors_RTCCM/input.csr
@@ -0,0 +1,70 @@
+
+<CIAO:ServerResources
+ xmlns:CIAO="http://www.dre.vanderbilt.edu/ServerResources"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.dre.vanderbilt.edu/ServerResources CIAOServerResources.xsd">
+
+ <cmdline>
+ <arg> -ORBDebugLevel 10 -ORBEndpoint corbaloc://foo/bar</arg>
+ </cmdline>
+
+ <svcconf>
+ <uri>
+ svcconf.uri
+ </uri>
+ </svcconf>
+
+ <orbConfigs>
+ <resources>
+ <threadpool id="threadpool-1">
+ <stacksize>100</stacksize>
+ <static_threads>50</static_threads>
+ <dynamic_threads>25</dynamic_threads>
+ <default_priority>5</default_priority>
+ <allow_request_buffering>true</allow_request_buffering>
+ <max_buffered_requests>10</max_buffered_requests>
+ <max_request_buffered_size>20</max_request_buffered_size>
+ </threadpool>
+
+ <threadpoolWithLanes id="threadpool-2">
+ <threadpoolLane>
+ <static_threads>50</static_threads>
+ <dynamic_threads>25</dynamic_threads>
+ <priority>36</priority>
+ </threadpoolLane>
+ <stacksize>100</stacksize>
+ <allow_borrowing>true</allow_borrowing>
+ <allow_request_buffering>true</allow_request_buffering>
+ <max_buffered_requests>10</max_buffered_requests>
+ <max_request_buffered_size>20</max_request_buffered_size>
+ </threadpoolWithLanes>
+
+ <connectionBands id="cb-1">
+ <band>
+ <low>0</low>
+ <high>10</high>
+ </band>
+ <band>
+ <low>11</low>
+ <high>20</high>
+ </band>
+ </connectionBands>
+ </resources>
+
+ <policySet id="test_policy_set_id">
+ <priorityModel server_priority="10">
+ <priority_model>SERVER_DECLARED</priority_model>
+ </priorityModel>
+ <priorityModel>
+ <priority_model>CLIENT_PROPAGATED</priority_model>
+ </priorityModel>
+
+ <threadpool>threadpool-1</threadpool>
+ <threadpool>threadpool-2</threadpool>
+
+ <priorityBandedConnection>cb-1</priorityBandedConnection>
+
+ </policySet>
+ </orbConfigs>
+</CIAO:ServerResources> \ No newline at end of file
diff --git a/modules/CIAO/examples/Hello/descriptors_RTCCM/rt-config-example.cdp b/modules/CIAO/examples/Hello/descriptors_RTCCM/rt-config-example.cdp
new file mode 100644
index 00000000000..67f51f99fb9
--- /dev/null
+++ b/modules/CIAO/examples/Hello/descriptors_RTCCM/rt-config-example.cdp
@@ -0,0 +1,215 @@
+<?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 Modified_Deployment.xsd">
+
+ <label>Hello-DeploymentPlan</label>
+
+ <UUID>Hello_Plan_UUID_0001</UUID>
+
+ <realizes>
+ <label>BasicSP-realizes-cid</label>
+ <UUID>c0965470-7b83-11d9-9669-0800200c9a66</UUID>
+ <specificType/>
+ <supportedType>IDL:Hello/Sender:1.0</supportedType>
+ <port>
+ <name>read_message</name>
+ <specificType>IDL:Hello/ReadMessage:1.0</specificType>
+ <supportedType>IDL:Hello/ReadMessage:1.0</supportedType>
+ <provider>false</provider>
+ <exclusiveProvider>false</exclusiveProvider>
+ <exclusiveUser>true</exclusiveUser>
+ <optional>false</optional>
+ <kind>SimplexReceptacle</kind>
+ </port>
+ </realizes>
+
+ <implementation id="Hello-Sender-mdd">
+ <name>Hello-Sender-mdd</name>
+ <source/>
+ <artifact>Hello-Sender_exec</artifact>
+ <artifact>Hello-Sender_svnt</artifact>
+ </implementation>
+
+ <implementation id="Hello-Receiver-mdd">
+ <name>Hello-Receiver-mdd</name>
+ <source/>
+ <artifact>Hello-Receiver_exec</artifact>
+ <artifact>Hello-Receiver_svnt</artifact>
+ </implementation>
+
+ <instance id="Hello-Sender-idd">
+ <name>Hello-Sender-idd</name>
+ <node>SenderNode</node>
+ <source/>
+ <implementation>Hello-Sender-mdd</implementation>
+ <configProperty>
+ <name>ComponentIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ <configProperty>
+ <name>local_message</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>This is a test message passed in through XML.</string>
+ </value>
+ </value>
+ </configProperty>
+ <deployedResource>
+ <resourceUsage>InstanceUsesResource</resourceUsage>
+ <requirementName>CIAO:PolicySet</requirementName>
+ <resourceName>test_server_resource_id</resourceName>
+ <resourceValue>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>test_policy_set_id</string>
+ </value>
+ </resourceValue>
+ </deployedResource>
+ </instance>
+
+ <instance id="Hello-Receiver-idd">
+ <name>Hello-Receiver-idd</name>
+ <node>ReceiverNode</node>
+ <source/>
+ <implementation>Hello-Receiver-mdd</implementation>
+ <configProperty>
+ <name>ComponentIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver.ior</string>
+ </value>
+ </value>
+ </configProperty>
+ </instance>
+
+ <connection>
+ <name>hell_event_connection</name>
+ <internalEndpoint>
+ <portName>click_out</portName>
+ <kind>EventPublisher</kind>
+ <instance>Hello-Sender-idd</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>click_in</portName>
+ <kind>EventConsumer</kind>
+ <instance>Hello-Receiver-idd</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>hello_facet_connection</name>
+ <internalEndpoint>
+ <portName>push_message</portName>
+ <kind>Facet</kind>
+ <instance>Hello-Sender-idd</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>read_message</portName>
+ <kind>SimplexReceptacle</kind>
+ <instance>Hello-Receiver-idd</instance>
+ </internalEndpoint>
+ </connection>
+
+ <artifact id="Hello-Sender_exec">
+ <name>Sender_exec</name>
+ <source/>
+ <node/>
+ <location>Hello_Sender_exec</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_SenderHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact id="Hello-Sender_svnt">
+ <name>Sender_svnt</name>
+ <source/>
+ <node/>
+ <location>Hello_Sender_svnt</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_SenderHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact id="Hello-Receiver_exec">
+ <name>Receiver_exec</name>
+ <source/>
+ <node/>
+ <location>Hello_Receiver_exec</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_ReceiverHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact id="Hello-Receiver_svnt">
+ <name>Receiver_svnt</name>
+ <source/>
+ <node/>
+ <location>Hello_Receiver_svnt</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_ReceiverHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <infoProperty>
+ <name>CIAOServerResources</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>rt-config-example.csr</string>
+ </value>
+ </value>
+ </infoProperty>
+
+</Deployment:deploymentPlan>
diff --git a/modules/CIAO/examples/Hello/descriptors_RTCCM/rt-config-example.csr b/modules/CIAO/examples/Hello/descriptors_RTCCM/rt-config-example.csr
new file mode 100644
index 00000000000..fa567f78c90
--- /dev/null
+++ b/modules/CIAO/examples/Hello/descriptors_RTCCM/rt-config-example.csr
@@ -0,0 +1,73 @@
+
+<CIAO:ServerResources
+ xmlns:CIAO="http://www.dre.vanderbilt.edu/ServerResources"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.dre.vanderbilt.edu/ServerResources CIAOServerResources.xsd"
+ id="test_server_resource_id">
+
+ <cmdline>
+ <arg>-r</arg>
+ </cmdline>
+
+ <svcconf>
+ <uri>RTsvc.conf</uri>
+ </svcconf>
+
+ <orbConfigs>
+ <resources>
+ <threadpool id="threadpool-1">
+ <stacksize>0</stacksize>
+ <static_threads>5</static_threads>
+ <dynamic_threads>0</dynamic_threads>
+ <default_priority>1</default_priority>
+ <allow_request_buffering>false</allow_request_buffering>
+ <max_buffered_requests>0</max_buffered_requests>
+ <max_request_buffered_size>0</max_request_buffered_size>
+ </threadpool>
+
+ <threadpoolWithLanes id="threadpool-2">
+ <threadpoolLane>
+ <static_threads>5</static_threads>
+ <dynamic_threads>0</dynamic_threads>
+ <priority>2</priority>
+ </threadpoolLane>
+ <threadpoolLane>
+ <static_threads>5</static_threads>
+ <dynamic_threads>0</dynamic_threads>
+ <priority>1</priority>
+ </threadpoolLane>
+ <stacksize>0</stacksize>
+ <allow_borrowing>false</allow_borrowing>
+ <allow_request_buffering>false</allow_request_buffering>
+ <max_buffered_requests>0</max_buffered_requests>
+ <max_request_buffered_size>0</max_request_buffered_size>
+ </threadpoolWithLanes>
+
+ <connectionBands id="cb-1">
+ <band>
+ <low>0</low>
+ <high>10</high>
+ </band>
+ <band>
+ <low>11</low>
+ <high>20</high>
+ </band>
+ </connectionBands>
+ </resources>
+
+ <policySet id="test_policy_set_id">
+ <priorityModel server_priority="1">
+ <priority_model>SERVER_DECLARED</priority_model>
+ </priorityModel>
+ </policySet>
+
+ <policySet id="test_policy_set_2">
+ <priorityModel>
+ <priority_model>CLIENT_PROPAGATED</priority_model>
+ </priorityModel>
+ <threadpool>threadpool-2</threadpool>
+ </policySet>
+
+ </orbConfigs>
+</CIAO:ServerResources>
diff --git a/modules/CIAO/examples/Hello/descriptors_RTCCM/rt-example.cdp b/modules/CIAO/examples/Hello/descriptors_RTCCM/rt-example.cdp
new file mode 100644
index 00000000000..43b4bed5cec
--- /dev/null
+++ b/modules/CIAO/examples/Hello/descriptors_RTCCM/rt-example.cdp
@@ -0,0 +1,271 @@
+<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-DeploymentPlan</label>
+ <UUID>Hello_Plan_UUID_0001</UUID>
+ <!-- Could be ZERO -->
+ <realizes>
+ <label>BasicSP-realizes-cid</label>
+ <UUID>c0965470-7b83-11d9-9669-0800200c9a66</UUID>
+ <specificType><!-- @@ What does here? --></specificType>
+ <supportedType>IDL:BasicSP/EC:1.0</supportedType>
+ <port>
+ <name>read_message</name>
+ <specificType>IDL:Hello/ReadMessage:1.0</specificType>
+ <supportedType>IDL:Hello/ReadMessage:1.0</supportedType>
+ <provider>false</provider>
+ <exclusiveProvider>false</exclusiveProvider>
+ <exclusiveUser>true</exclusiveUser>
+ <optional>false</optional>
+ <kind>SimplexReceptacle</kind>
+ </port>
+ </realizes>
+
+ <implementation id="Hello-Sender-mdd">
+ <name>Hello-Sender-mdd</name>
+ <source><!-- @@ Don't know what goes here --></source>
+ <artifact>Hello-Sender_exec</artifact>
+ <artifact>Hello-Sender_svnt</artifact>
+ <!--
+ <execParameter></execParameter>
+ <deployRequirement></deployRequirement>
+ -->
+ </implementation>
+
+ <implementation id="Hello-Receiver-mdd">
+ <name>Hello-Receiver-mdd</name>
+ <source><!-- @@ Don't know what goes here --></source>
+ <artifact>Hello-Receiver_exec</artifact>
+ <artifact>Hello-Receiver_svnt</artifact>
+ <!--
+ <execParameter></execParameter>
+ <deployRequirement></deployRequirement>
+ -->
+ </implementation>
+
+ <instance id="Hello-Sender-idd">
+ <name>Hello-Sender-idd</name>
+ <node>SenderNode</node>
+ <source><!-- @@ What goes here --></source>
+ <implementation>Hello-Sender-mdd</implementation>
+
+ <!-- Add this property if you want to write component reference to IOR -->
+ <configProperty>
+ <name>ComponentIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Sender.ior</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <!-- Add this property if you want to initialize component attribute -->
+ <configProperty>
+ <name>local_message</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>This is a test message passed in through XML.</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <!-- This attribute initializes an enumerated value -->
+ <configProperty>
+ <name>color</name>
+ <value>
+ <type>
+ <kind>tk_enum</kind>
+ <enum>
+ <name>COLOR_SELECTION</name>
+ <typeId>IDL:Hello/COLOR_SELECTION:1.0</typeId>
+ <member>empty</member>
+ <member>white</member>
+ <member>red</member>
+ <member>yellow</member>
+ </enum>
+ </type>
+ <value>
+ <enum>yellow</enum>
+ </value>
+ </value>
+ </configProperty>
+
+ <deployedResource>
+ <resourceUsage>InstanceUsesResource</resourceUsage>
+ <requirementName>CIAO:PolicySet</requirementName>
+ <resourceName>test_server_resource_id</resourceName>
+ <property>
+ <name>CIAO:InstancePolicy</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>test_policy_set_id</string>
+ </value>
+ </value>
+ </property>
+ </deployedResource>
+
+ </instance>
+
+ <instance id="Hello-Receiver-idd">
+ <name>Hello-Receiver-idd</name>
+ <node>SenderNode</node>
+ <source><!-- @@ What goes here --></source>
+ <implementation>Hello-Receiver-mdd</implementation>
+ <configProperty>
+ <name>ComponentIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Receiver.ior</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <deployedResource>
+ <resourceUsage>InstanceUsesResource</resourceUsage>
+ <requirementName>CIAO:PolicySet</requirementName>
+ <resourceName>test_server_resource_id</resourceName>
+ <property>
+ <name>CIAO:InstancePolicy</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>test_policy_set_id</string>
+ </value>
+ </value>
+ </property>
+ </deployedResource>
+
+ </instance>
+
+
+ <connection>
+ <name>hell_event_connection</name>
+ <internalEndpoint>
+ <portName>click_out</portName>
+ <kind>EventPublisher</kind>
+ <instance>Hello-Sender-idd</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>click_in</portName>
+ <kind>EventConsumer</kind>
+ <instance>Hello-Receiver-idd</instance>
+ </internalEndpoint>
+ </connection>
+
+ <connection>
+ <name>hello_facet_connection</name>
+ <internalEndpoint>
+ <portName>push_message</portName>
+ <kind>Facet</kind>
+ <instance>Hello-Sender-idd</instance>
+ </internalEndpoint>
+ <internalEndpoint>
+ <portName>read_message</portName>
+ <kind>SimplexReceptacle</kind>
+ <instance>Hello-Receiver-idd</instance>
+ </internalEndpoint>
+ </connection>
+
+ <!-- @@ Runtime library name must match exactly in "location" tag -->
+ <artifact id="Hello-Sender_exec">
+ <name>Sender_exec</name>
+ <source><!-- @@ Not sure about this--></source>
+ <node><!-- blank --></node>
+ <location>Hello_Sender_exec</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_SenderHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact id="Hello-Sender_svnt">
+ <name>Sender_svnt</name>
+ <source><!-- @@ Not sure --></source>
+ <node><!-- blank --></node>
+ <location>Hello_Sender_svnt</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_SenderHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact id="Hello-Receiver_exec">
+ <name>Receiver_exec</name>
+ <source><!-- @@ Not sure about this--></source>
+ <node><!-- blank --></node>
+ <location>Hello_Receiver_exec</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_ReceiverHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact id="Hello-Receiver_svnt">
+ <name>Receiver_svnt</name>
+ <source><!-- @@ Not sure --></source>
+ <node><!-- blank --></node>
+ <location>Hello_Receiver_svnt</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Hello_ReceiverHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <infoProperty>
+ <name>CIAOServerResources</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>rt-config-example.csr</string>
+ </value>
+ </value>
+ </infoProperty>
+
+</Deployment:deploymentPlan>
diff --git a/modules/CIAO/examples/Hello/descriptors_RTCCM/rt_run_test.pl b/modules/CIAO/examples/Hello/descriptors_RTCCM/rt_run_test.pl
new file mode 100755
index 00000000000..ee8ec147df6
--- /dev/null
+++ b/modules/CIAO/examples/Hello/descriptors_RTCCM/rt_run_test.pl
@@ -0,0 +1,165 @@
+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;
+$CIAO_ROOT = $PerlACE::CIAO_ROOT;
+$DAnCE = "$CIAO_ROOT/DAnCE";
+
+$daemons_running = 0;
+$em_running = 0;
+$daemons = 2;
+@ports = ( 60001, 60002 );
+@iorfiles = ( "NodeApp1.ior", "NodeApp2.ior" );
+$status = 0;
+$dat_file = "NodeManagerMap.dat";
+$cdp_file = "DeploymentPlan.cdp";
+$controller_exec = "$CIAO_ROOT/examples/Hello/Sender/starter";
+
+PerlACE::add_lib_path ('../lib');
+
+$E = 0;
+$EM = 0;
+
+# Delete if there are any .ior files.
+sub delete_ior_files {
+ for ($i = 0; $i < $daemons; ++$i) {
+ unlink $iorfiles[$i];
+ }
+ unlink PerlACE::LocalFile ("EM.ior");
+ unlink PerlACE::LocalFile ("Receiver.ior");
+ unlink PerlACE::LocalFile ("Sender.ior");
+ unlink PerlACE::LocalFile ("DAM.ior");
+}
+
+sub kill_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i) {
+ $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1);
+ }
+}
+
+sub kill_open_processes {
+ if ($daemons_running == 1) {
+ kill_node_daemons ();
+ }
+
+ if ($em_running == 1) {
+ $EM->Kill ();
+ $EM->TimedWait (1);
+ }
+}
+
+sub run_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i)
+ {
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+
+ $iiop = "iiop://localhost:$port";
+ $node_app = "$CIAO_ROOT/bin/NodeApplication";
+
+ $d_cmd = "$DANCE_ROOT/bin/dance_node_manager";
+
+ # NON-RT
+# $d_param = "-ORBEndpoint $iiop -s $node_app -o $iorfile";
+
+ # RT enabled
+ $d_param = "-ORBEndpoint $iiop -s $node_app -a \"-r\" -o $iorfile";
+
+ $Daemons[$i] = new PerlACE::Process ($d_cmd, $d_param);
+ $result = $Daemons[$i]->Spawn ();
+ push(@processes, $Daemons[$i]);
+
+ if (PerlACE::waitforfile_timed ($iorfile,
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR
+ "ERROR: The ior file of node daemon $i could not be found\n";
+ for (; $i > 0; --$i) {
+ $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1);
+ }
+ return -1;
+ }
+ }
+ $daemons_running = 1;
+ return 0;
+}
+
+delete_ior_files ();
+
+# Invoke node daemons.
+print "Invoking node daemons\n";
+$status = run_node_daemons ();
+
+if ($status != 0) {
+ print STDERR "ERROR: Unable to execute the node daemons\n";
+ exit 1;
+}
+
+$ns_running = 1;
+
+# Invoke execution manager.
+print "Invoking execution manager\n";
+$EM = new PerlACE::Process ("$CIAO_ROOT/bin/Execution_Manager",
+ "-o EM.ior -i $dat_file");
+$EM->Spawn ();
+
+if (PerlACE::waitforfile_timed ("EM.ior",
+ $PerlACE::wait_interval_for_process_creation) == -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 - start the application -\n";
+$E =
+ new PerlACE::Process ("$CIAO_ROOT/bin/plan_launcher",
+ "-p rt-example.cdp -k file://EM.ior -o DAM.ior");
+
+$E->SpawnWaitKill (5000);
+
+if (PerlACE::waitforfile_timed (
+ "Receiver.ior",
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: The ior file of receiver could not be found\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+if (PerlACE::waitforfile_timed ("Sender.ior",
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: The ior file of sender could not be found\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+print "Invoking the controller\n";
+$controller = new PerlACE::Process ("$controller_exec", "-k file://Sender.ior");
+$result = $controller->SpawnWaitKill (3000);
+
+if ($result != 0) {
+ print STDERR "ERROR: The controller returned $result\n";
+ $status = 1;
+}
+
+# Invoke executor - stop the application -.
+print "Invoking executor - stop the application -\n";
+$E =
+ new PerlACE::Process ("$CIAO_ROOT/bin/plan_launcher",
+ "-k file://EM.ior -i file://DAM.ior");
+$E->SpawnWaitKill (3000);
+
+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/examples/Hello/step-by-step.html b/modules/CIAO/examples/Hello/step-by-step.html
new file mode 100644
index 00000000000..e40fb3fbee3
--- /dev/null
+++ b/modules/CIAO/examples/Hello/step-by-step.html
@@ -0,0 +1,234 @@
+<!--//$Id$ -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <title>Step-By-Step of How to build a CIAO application</title>
+</head>
+
+<body
+ text = "#000000"
+ link = "#000fff"
+ vLink= "#ff0f0f"
+ aLink = "#0000ff"
+ bgColor = "#ffffff">
+
+<hr>
+<h2>Simple <a href="http://www.dre.vanderbilt.edu/CIAO">CIAO</a> tutorial</h2>
+<b>Note:</b>
+<UL>
+<li><a href="http://www.dre.vanderbilt.edu/cosmic">CoSMIC</a> tools are not used in this tutorial.</li>
+<li>This is only a <em>GENERAL</em> way of building up a CIAO application and deploying it with DAnCE. The user could always change the process in his own way. For example: the IDL file content, the project structure etc.</li>
+<li>To download the code of this example please refer to the SVN repository at <code>$CIAO_ROOT/examples/Hello</code>.</li>
+</UL>
+<hr>
+
+<h2>Example Description</h2>
+This Hello example is contructed in the following ways:
+<UL>
+<li>1. There are 2 components in the system: Sender and Receiver</li>
+<li>2. The Sender will send out the timeout event to the Receiver.</li>
+<li>3. Upon receiving the timeout event, the Receiver will go and fetch data from the Sender. </li>
+<li>4. The user could deploy multiple instances of the Receiver without changing any C++/idl source code.</li>
+</UL>
+<hr>
+
+<h2>Step-By-Step</h2>
+<h3>Hello_Base</h3>
+
+<OL>
+<li>Write an IDL file (<a href="./Hello_Base/Hello_Base.idl"><code>Hello_Base.idl</code></a>) which contains all
+ the interfaces and events common to all the components. The reason
+ we do this is because the generated lib of this idl file will be
+ linked in by all the components in the system. To reduce the size
+ of the component lib we have to include only the necesary part. In
+ this example, we have an eventtype <code>timeout</code> and an
+ interface <code>ReadMessage</code>, which are used by both the
+ Sender and the Receiver, so we put both of them in <a href="Hello_Base/Hello_Base.idl">Hello_Base.idl</a>.</li>
+ <P>
+
+<li>Look at the <a href="Hello_Base/Hello_Base.mpc"><code>Hello_Base.mpc</code></a> file to get an idea how the Hello_Base_stub
+ and Hello_Base_svnt projects are organized.
+ <a href="http://downloads.ociweb.com/MPC/MakeProjectCreator.pdf">MPC</a> is a utility we used to generate makefiles or VC
+ project/solution files for all <a href="http://www.cs.wustl.edu/~schmidt/ACE.html">ACE</a>,
+ <a href="http://www.cs.wustl.edu/~schmidt/TAO.html">TAO</a> and <a href="http://www.cs.wustl.edu/~schmidt/CIAO.html">CIAO</a>
+ libraries.</li>
+</Ol>
+
+<hr>
+
+<h3>For Every Components</h3>
+
+<ol>
+<li>Execute : <br>
+<ul>
+<code>$CIAO_ROOT/bin/generate_component_mpc.pl -p Hello_Base Sender</code> in Sender directory<br>
+<code>$CIAO_ROOT/bin/generate_component_mpc.pl -p Hello_Base Receiver</code> in Receiver directory<br>
+</ul>
+Note:
+<ul>
+<li>I have different directories for <code>"Hello_Base", "Sender", "Receiver"</code> respectively.</li>
+
+<li>For every <code>_stub</code> project, add:<br>
+ <code>"libs += Hello_Base_DnC_stub"</code><br>
+
+</ul>
+The output of this scripts includes an MPC file and 3 export header files
+(..._svnt_export.h, ..._exec_export.h and ..._stub_export.h).
+<P>
+
+<li>Write an idl file for every component (<a href="Sender/Sender.idl"><code>Sender.idl</code></a> and
+ <a href="Receiver/Receiver.idl"><code>Receiver.idl</code></a>). <br> Here you can put the
+ component specific IDL definitions in this file. In this example we have a interface <code>trigger</code>
+ specific to the Sender. Please note that the Sender component
+ <code>"supports"</code> (IDL keyword) this interface. </li> <P>
+
+<li>Write the CIDL file for every component (<a href="Sender/Sender.cidl"><code>Sender.cidl</code></a> and
+ <a href="Receiver/Receiver.cidl"><code>Receiver.cidl</code></a>).
+</li><P>
+
+<li>Compile these cidl files, using <code>$CIAO_ROOT/bin/cidlc.exe Receiver.cidl --gen-exec-impl -I$CIAO_ROOT/ccm -I$CIAO_ROOT -I$TAO_ROOT</code>.
+ This'll result in ..._exec.cpp/..._exec.h and ..._svnt.cpp/..._svnt.h files.
+</li><P>
+
+<li>Write <code>_exec.h</code> and <code>_exec.cpp</code> files which actually implement the component.</li>
+<P>
+</OL>
+
+Writing all those files could be troublesome to a new CCM user. The
+best way of learning this is to read the example source code. If you
+are familliar with CORBA programming, it should not take too much time
+before you can declare yourself as a CCM programmer. <P>
+
+<hr> <P>
+
+<h3>The Entry Point</h3>
+
+After both components are implemented we still need a small program to
+initialize the process. In Sender.idl there is a Sender specific
+interface with a single method in it created for this purpose. Hence
+there is a CORBA client application called <code>starter</code>. The
+<code>starter</code> will make a invocation on a supported interface
+called <code>trigger</code> on the Sender component to get the whole
+distributed application started. The <code>starter</code> will first
+obtain the Sender component object reference through the ior string
+supplied as a command argument. Please see the the last part of
+<code>Hello/Sender/Sender.mpc</code> file for details. <P>
+
+<hr>
+
+<h3>Make</h3>
+
+<UL>
+<li>Go to the directory <code>$CIAO_ROOT/DAnCE</code> and do:<br>
+ <code>$ACE_ROOT/bin/mwc.pl</code></li>
+ <br>For example, using <code>$ACE_ROOT/bin/mwc.pl -type vc71</code> if you are using Visual C++ 7.1 IDE
+ <br>or <code>$ACE_ROOT/bin/mwc.pl -type gnuace</code> on Linux platforms.</li><P>
+<li>Look at the generated Makefile(*unx) or Solution/workspace files(Windows) and you got it.</li>
+</UL>
+After building DAnCE, a solution or makefile should be generated for this CIAO example.
+Navigate to <code>$CIAO_ROOT/examples/Hello</code> and execute <code>$ACE_ROOT/bin/mwc.pl -type vc71</code> for
+Visual C++ 7.1 or <code>$ACE_ROOT/bin/mwc.pl -type gnuace</code> on Linux platforms.
+Build this example using Visual Studio or make.
+<P><hr>
+
+<h3>Assemble</h3>
+
+Now we can step forward to build the assembly. Here we are going to
+build the simplest case only, which is 1 Receiver and 1 Sender. If you
+are interested in CIAO you could try 1 Sender with multiple
+Receivers. However, you need to change the Sender.idl to make it
+<em>publishes</em> timeout event instead of <em>emits</em> event.<br>
+Note: Creating the deployment plan descriptor is a tedious and
+ error-prone job, you can download <a
+ href="http://www.dre.vanderbilt.edu/cosmic">CoSMIC</a> to assist
+ you in this step. <P>
+
+<UL>
+<li>You need to create an XML descriptor file to describe your <em>deployment plan</em>, which is
+ defined in a <EM>Deployment Plan Descriptor</EM> (.cdp) (see <a href="./descriptors/DeploymentPlan.cdp">Hello deployment plan<a>).
+ In this file, you need to declaratively specify how the component assembly is constructed. Specificly, you need to specify
+ the component types, component instances, component connections, implementation artifact descriptions, and whether you
+ want to register component instances with naming service.<P>
+
+<li> Please make sure that the Modified_Deployment.xsd and XMI.xsd files are in the Hello/descriptors directory.
+The former file can be found in $CIAO_ROOT/docs/schema directory. <P>
+
+<li> Create the <em>NodeManagerMap.dat</em> file containing the CORBALOC IIOP address of each <code>NodeManager</code>
+ where it is running. Please refer to the existing <a href="./descriptors/NodeManagerMap.dat">
+ <code>NodeManagerMap.dat</code></a> for details.
+ As you can see, we only specify 2 <code>NodeManagers</code>, which means these two components
+ will be installed in the different <code>NodeApplication</code> server. Please refer to the
+ <em>flattened_deploymentplan.cdp</em> file to see how a deployer
+ could specify the mapping between components and nodes.</li>
+</li>
+</UL>
+
+<hr>
+<h3>Deploy with <A href="../../docs/releasenotes/dance.html">DAnCE</A></h3>
+Finally you are ready to deploy the component-based application you have developed.
+<br><br>
+
+<UL>
+ <LI> If you wish to register one or more of your component
+ instances with CORBA <em>naming service</em>, then please start your naming service
+ first with multicast mode first ("-m 1" option). Use <code>-o</code> to define where
+ the output ior should be saved.<P>
+
+ <LI> Go into the <em> descriptors </em> directory Start NodeManagers
+ (NodeDameon) by running <code> run_NodeDaemons.pl </code> <P>
+
+ <LI> There are two ways to start the execution manager :
+ <ol>
+ <li>Using the naming service to locate the node deamons<br/>
+ Navigate to <em>$CIAO_ROOT/examples/Hello/descriptor</em> and execute
+ <code>$DANCE_ROOT/bin/dance_execution_manager -eEM.ior --domain-nc file://ns.ior</code><br/>
+ --domain-nc should point to the ior file of the naming service.
+ </li>
+
+ <li>Without using the naming service.<br/>
+ Navigate to <em>$CIAO_ROOT/examples/Hello/descriptor</em> and execute:<br/>
+ <code>$DANCE_ROOT/bin/dance_execution_manager -eEM.ior --node-map NodeManagerMap.dat </code><br/>
+ <em>NOTE</em>: As one can see, we use the "NodeManagerMap.dat" file to instruct the
+ Execution_Manager how to find the endpoint of each individual NodeManager (i.e., Node Daemon) where
+ component(s) will be deployed. This is non-standard.
+ </li>
+ </ol>
+ </LI>
+ </ul><P>
+
+ <LI> Start the plan launcher, with or without using the Naming Service: <br/>
+ <ol>
+ <li>Using the naming service<br/>
+ Navigate to <em>$CIAO_ROOT/examples/Hello/descriptors_naming</em> and execute:<br/>
+ <code> $DANCE_ROOT/bin/dance_plan_launcher -d deploymentplan_naming.cdp -k file://../descriptors/EM.ior </code>
+ </li>
+ <li>Without using the naming service<br/>
+ Navigate to <em>$CIAO_ROOT/examples/Hello/descriptors</em> and execute:<br/>
+ <code> $DANCE_ROOT/bin/dance_plan_launcher -x deploymentplan.cdp -k file://EM.ior </code><P>
+ </li>
+ After this, components should be deployed successfully.<P>
+ </ol>
+</LI>
+
+ <LI> You can go into the <em>$CIAO_ROOT/examples/Hello/descriptor</em> directory and
+ run execute <code>$CIAO_ROOT/examples/Hello/Sender/starter -k file://Sender.ior</code> to start the application. Please make sure that the component IOR
+ file for the Sender component (<code>Sender.ior</code>) is present when you run this client.<P>
+ </LI>
+ <LI>To stop deployment just run $DANCE_ROOT/bin/dance_plan_launcher -x DeploymentPlan.cdp -k file://EM.ior -q
+ </LI>
+</UL>
+<br/>
+<br/>
+In addition, have a look at <a href="./descriptors/run_test.pl"><code>run_test.pl</code></a> and see how this can be established.
+
+<hr>
+<h3>More Features</h3>
+Recently DAnCE is enabled with a feature called <em>Redeployment and Reconfiguration</em> (ReDaC). For more information
+about how to use this feature, please refer to the ReDaC-Usage-Example.html under $CIAO_ROOT/examples/Hello/.
+<br><br>
+
+<hr>
+<b>Email: </b><a href="mailto:"</a<ADDRESS>ciao-users@cse.wustl.edu</ADDRESS>
+</body>
+</html>
+
diff --git a/modules/CIAO/examples/Null_Component/Null_Component.idl b/modules/CIAO/examples/Null_Component/Null_Component.idl
new file mode 100644
index 00000000000..78bc73becb3
--- /dev/null
+++ b/modules/CIAO/examples/Null_Component/Null_Component.idl
@@ -0,0 +1,39 @@
+/**
+ * @file Null_Component.idl
+ *
+ * @author Abdul Sowayan <abdullah.sowayan@lmco.com>
+ *
+ * $Id$
+ */
+
+#ifndef NULL_COMPONENT_IDL
+#define NULL_COMPONENT_IDL
+
+#include <Components.idl>
+#include "Null_Interface.idl"
+#include "Null_InterfaceE.idl"
+
+
+/**
+ * @class Null_Component
+ *
+ * This component is intentionally left blank. Its purpose
+ * is to measure the footprint of a component in CIAO.
+ */
+component Null_Component
+{
+ provides Null_Interface null_facet;
+};
+
+/**
+ * @class Null_Component_Home
+ *
+ * @brief home for Null_Component
+ */
+home Null_ComponentHome manages Null_Component
+{
+};
+
+#endif /* NULL_COMPONENT_IDL */
+
+
diff --git a/modules/CIAO/examples/Null_Component/Null_Component.mpc b/modules/CIAO/examples/Null_Component/Null_Component.mpc
new file mode 100644
index 00000000000..71ac27d08d6
--- /dev/null
+++ b/modules/CIAO/examples/Null_Component/Null_Component.mpc
@@ -0,0 +1,112 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p Null_Interface Null_Component"
+
+project(Null_Component_idl_gen) : componentidldefaults {
+ after += Null_Interface_lem_gen
+ custom_only = 1
+ idlflags += \
+ -Wb,stub_export_macro=NULL_COMPONENT_STUB_Export \
+ -Wb,stub_export_include=Null_Component_stub_export.h \
+ -Wb,skel_export_macro=NULL_COMPONENT_SVNT_Export \
+ -Wb,skel_export_include=Null_Component_svnt_export.h \
+ -Wb,exec_export_macro=NULL_COMPONENT_EXEC_Export \
+ -Wb,exec_export_include=Null_Component_exec_export.h
+
+ IDL_Files {
+ Null_Component.idl
+ }
+}
+
+project(Null_Component_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ after += Null_Component_idl_gen
+ idlflags += -Wb,export_macro=NULL_COMPONENT_EXEC_Export \
+ -Wb,export_include=Null_Component_exec_export.h \
+ -SS
+
+ IDL_Files {
+ Null_ComponentE.idl
+ }
+}
+
+project(Null_Component_stub) : ccm_stub {
+ after += Null_Component_idl_gen Null_Interface_stub
+ libs += Null_Interface_stub
+
+ sharedname = Null_Component_stub
+ dynamicflags = NULL_COMPONENT_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Null_ComponentC.cpp
+ }
+
+ Header_Files {
+ Null_ComponentC.h
+ Null_Component_stub_export.h
+ }
+
+ Inline_Files {
+ Null_ComponentC.inl
+ }
+}
+
+project(Null_Component_exec) : ciao_executor {
+ after += Null_Component_lem_gen Null_Component_stub
+ sharedname = Null_Component_exec
+ libs += Null_Component_stub Null_Interface_stub
+
+ dynamicflags = NULL_COMPONENT_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Null_ComponentEC.cpp
+ Null_Component_exec.cpp
+ }
+
+ Header_Files {
+ Null_ComponentEC.h
+ Null_Component_exec.h
+ Null_Component_exec_export.h
+ }
+
+ Inline_Files {
+ Null_ComponentEC.inl
+ }
+}
+
+
+project(Null_Component_svnt) : ciao_servant {
+ after += Null_Interface_skel Null_Component_exec
+ sharedname = Null_Component_svnt
+ libs += Null_Component_exec \
+ Null_Component_stub \
+ Null_Interface_skel \
+ Null_Interface_stub
+
+ dynamicflags = NULL_COMPONENT_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Null_ComponentS.cpp
+ Null_Component_svnt.cpp
+ }
+
+ Header_Files {
+ Null_ComponentS.h
+ Null_Component_svnt.h
+ Null_Component_svnt_export.h
+ }
+
+ Inline_Files {
+ Null_ComponentS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/examples/Null_Component/Null_Component_exec.cpp b/modules/CIAO/examples/Null_Component/Null_Component_exec.cpp
new file mode 100644
index 00000000000..b0bfb66e99b
--- /dev/null
+++ b/modules/CIAO/examples/Null_Component/Null_Component_exec.cpp
@@ -0,0 +1,173 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#include "Null_Component_exec.h"
+
+namespace CIAO_Null_Component_Impl
+{
+ //==================================================================
+ // Facet Executor Implementation Class: Null_Interface_exec_i
+ //==================================================================
+
+ Null_Interface_exec_i::Null_Interface_exec_i (void)
+ {
+ }
+
+ Null_Interface_exec_i::~Null_Interface_exec_i (void)
+ {
+ }
+
+ // Operations from ::Null_Interface
+
+ void
+ Null_Interface_exec_i::null_operation ()
+ {
+ // Your code here.
+ }
+
+ //==================================================================
+ // Component Executor Implementation Class: Null_Component_exec_i
+ //==================================================================
+
+ Null_Component_exec_i::Null_Component_exec_i (void)
+ {
+ }
+
+ Null_Component_exec_i::~Null_Component_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ ::CCM_Null_Interface_ptr
+ Null_Component_exec_i::get_null_facet ()
+ {
+ // Your code here.
+ return ::CCM_Null_Interface::_nil ();
+ }
+
+ // Operations from Components::SessionComponent
+
+ void
+ Null_Component_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::CCM_Null_Component_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Null_Component_exec_i::configuration_complete ()
+ {
+ // Your code here.
+ }
+
+ void
+ Null_Component_exec_i::ccm_activate ()
+ {
+ // Your code here.
+ }
+
+ void
+ Null_Component_exec_i::ccm_passivate ()
+ {
+ // Your code here.
+ }
+
+ void
+ Null_Component_exec_i::ccm_remove ()
+ {
+ // Your code here.
+ }
+
+ extern "C" NULL_COMPONENT_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Null_Component_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ Null_Component_exec_i,
+ ::Components::EnterpriseComponent::_nil ());
+
+ return retval;
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: Null_ComponentHome_exec_i
+ //==================================================================
+
+ Null_ComponentHome_exec_i::Null_ComponentHome_exec_i (void)
+ {
+ }
+
+ Null_ComponentHome_exec_i::~Null_ComponentHome_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ Null_ComponentHome_exec_i::create ()
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ Null_Component_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" NULL_COMPONENT_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Null_ComponentHome_Impl (void)
+ {
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ Null_ComponentHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/examples/Null_Component/Null_Component_exec.h b/modules/CIAO/examples/Null_Component/Null_Component_exec.h
new file mode 100644
index 00000000000..83f5e62da22
--- /dev/null
+++ b/modules/CIAO/examples/Null_Component/Null_Component_exec.h
@@ -0,0 +1,118 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#ifndef CIAO_NULL_COMPONENT_EXEC_H
+#define CIAO_NULL_COMPONENT_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "Null_ComponentEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "Null_Component_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Null_Component_Impl
+{
+ class NULL_COMPONENT_EXEC_Export Null_Interface_exec_i
+ : public virtual ::CCM_Null_Interface,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Null_Interface_exec_i (void);
+ virtual ~Null_Interface_exec_i (void);
+
+ // Operations from ::Null_Interface
+
+ virtual void
+ null_operation ();
+ };
+
+ class NULL_COMPONENT_EXEC_Export Null_Component_exec_i
+ : public virtual Null_Component_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Null_Component_exec_i (void);
+ virtual ~Null_Component_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ virtual ::CCM_Null_Interface_ptr
+ get_null_facet ();
+
+ // 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:
+ ::CCM_Null_Component_Context_var context_;
+ };
+
+ extern "C" NULL_COMPONENT_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Null_Component_Impl (void);
+
+ class NULL_COMPONENT_EXEC_Export Null_ComponentHome_exec_i
+ : public virtual Null_ComponentHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Null_ComponentHome_exec_i (void);
+ virtual ~Null_ComponentHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" NULL_COMPONENT_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Null_ComponentHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_NULL_COMPONENT_EXEC_H */
+
diff --git a/modules/CIAO/examples/Null_Component/Null_Interface.idl b/modules/CIAO/examples/Null_Component/Null_Interface.idl
new file mode 100644
index 00000000000..ed841b2a921
--- /dev/null
+++ b/modules/CIAO/examples/Null_Component/Null_Interface.idl
@@ -0,0 +1,22 @@
+/**
+ * @file Null_Interface.idl
+ *
+ * @author Abdul Sowayan <abdullah.sowayan@lmco.com>
+ *
+ * $Id$
+ */
+
+#ifndef NULL_INTERFACE_IDL
+#define NULL_INTERFACE_IDL
+
+/**
+ * @interface Null_Interface
+ *
+ * @brief
+ */
+interface Null_Interface
+{
+ void null_operation();
+};
+
+#endif /* NULL_INTERFACE_IDL */
diff --git a/modules/CIAO/examples/Null_Component/Null_Interface.mpc b/modules/CIAO/examples/Null_Component/Null_Interface.mpc
new file mode 100644
index 00000000000..f9c74d79e19
--- /dev/null
+++ b/modules/CIAO/examples/Null_Component/Null_Interface.mpc
@@ -0,0 +1,78 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Null_Interface"
+
+project(Null_Interface_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=NULL_INTERFACE_STUB_Export \
+ -Wb,stub_export_include=Null_Interface_stub_export.h \
+ -Wb,skel_export_macro=NULL_INTERFACE_SKEL_Export \
+ -Wb,skel_export_include=Null_Interface_skel_export.h
+
+ IDL_Files {
+ Null_Interface.idl
+ }
+}
+
+project(Null_Interface_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ after += Null_Interface_idl_gen
+ idlflags += -Wb,stub_export_macro=NULL_INTERFACE_STUB_Export \
+ -Wb,stub_export_include=Null_Interface_stub_export.h \
+
+ IDL_Files {
+ Null_InterfaceE.idl
+ }
+}
+
+project(Null_Interface_stub) : ccm_stub {
+ after += Null_Interface_lem_gen
+ libs +=
+
+ sharedname = Null_Interface_stub
+ dynamicflags = NULL_INTERFACE_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Null_InterfaceC.cpp
+ Null_InterfaceEC.cpp
+ }
+
+ Header_Files {
+ Null_InterfaceC.h
+ Null_Interface_stub_export.h
+ }
+
+ Inline_Files {
+ Null_InterfaceC.inl
+ }
+}
+
+
+project(Null_Interface_skel) : ciao_executor {
+ after += Null_Interface_stub
+ sharedname = Null_Interface_skel
+ libs += Null_Interface_stub
+
+
+ dynamicflags = NULL_INTERFACE_SKEL_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Null_InterfaceS.cpp
+ }
+
+ Header_Files {
+ Null_InterfaceS.h
+ Null_Interface_skel_export.h
+ }
+
+ Inline_Files {
+ Null_InterfaceS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/examples/Null_Component/StaticDAnCEApp.cpp b/modules/CIAO/examples/Null_Component/StaticDAnCEApp.cpp
new file mode 100644
index 00000000000..817119e4cc7
--- /dev/null
+++ b/modules/CIAO/examples/Null_Component/StaticDAnCEApp.cpp
@@ -0,0 +1,101 @@
+// $Id$
+
+#include "plan.h"
+
+#include "NodeManager/NodeManager_Impl.h"
+
+#include "tao/IORTable/IORTable.h"
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ // Initialize the ORB so that CORBA::Any will work.
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ try
+ {
+ // Get reference to Root POA.
+ CORBA::Object_var obj =
+ orb->resolve_initial_references ("RootPOA");
+
+ PortableServer::POA_var poa =
+ PortableServer::POA::_narrow (obj.in ());
+
+ // Activate POA manager.
+ PortableServer::POAManager_var mgr = poa->the_POAManager ();
+
+ mgr->activate ();
+
+ int homes_table_size =
+ sizeof (homes_table) / sizeof (HomeAttributes);
+
+ CIAO::HOMECREATOR_FUNCPTR_MAP home_creator_fptr_map;
+ CIAO::HOMESERVANTCREATOR_FUNCPTR_MAP homesvnt_creator_fptr_map;
+ CIAO::Static_Config_EntryPoints_Maps static_config_entrypoints_maps;
+
+ static_config_entrypoints_maps.home_creator_funcptr_map_ =
+ &home_creator_fptr_map;
+
+ static_config_entrypoints_maps.home_servant_creator_funcptr_map_ =
+ &homesvnt_creator_fptr_map;
+
+ for (int i = 0; i < homes_table_size; ++i)
+ {
+ home_creator_fptr_map.bind (homes_table[i].executor_entrypt_,
+ homes_table[i].executor_fptr_);
+
+ homesvnt_creator_fptr_map.bind (homes_table[i].servant_entrypt_,
+ homes_table[i].servant_fptr_);
+ }
+
+ CIAO::Static_NodeManager_Impl *static_node_manager_impl;
+
+ // Create and install the CIAO Daemon servant.
+
+ ACE_DEBUG ((LM_DEBUG, "creating static_node_manager\n"));
+
+ static_node_manager_impl =
+ new CIAO::Static_NodeManager_Impl ("NodeManager",
+ orb.in (),
+ poa.in (),
+ "", //exe location
+ "", //exe options
+ 0, //spawn delay
+ &static_config_entrypoints_maps);
+
+ static_node_manager_impl->init ();
+
+ 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 ()))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR, "Nil IORTable\n"), -1);
+ }
+
+ CIAO::NodeManagerDaemon_var manager =
+ static_node_manager_impl->_this ();
+
+ CORBA::String_var str =
+ orb->object_to_string (manager.in ());
+
+ adapter->bind ("NodeManager", str.in ());
+
+ // Run the main event loop for the ORB.
+ orb->run ();
+
+ poa->destroy (true, true);
+
+ orb->destroy ();
+ }
+ catch (CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Caught CORBA Exception: ");
+ return -1;
+ }
+
+ return 0;
+}
diff --git a/modules/CIAO/examples/Null_Component/StaticDAnCEApp.mpc b/modules/CIAO/examples/Null_Component/StaticDAnCEApp.mpc
new file mode 100644
index 00000000000..5c256aef47a
--- /dev/null
+++ b/modules/CIAO/examples/Null_Component/StaticDAnCEApp.mpc
@@ -0,0 +1,28 @@
+// -*- MPC -*-
+// $Id$
+
+project(Null_Component_StaticDAnCEApp): iortable, ciaoidldefaults {
+ after += Null_Component_svnt
+ exename = StaticDAnCEApp
+ requires += dummy_label
+ libs += Null_Interface_stub
+ libs += Null_Interface_skel
+ libs += Null_Component_stub
+ libs += Null_Component_svnt
+ libs += Null_Component_exec
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ StaticDAnCEApp.cpp
+ }
+
+ Header_Files {
+ plan.h
+ }
+
+ Inline_Files {
+ }
+}
+
diff --git a/modules/CIAO/examples/Null_Component/descriptors/NodeMap.dat b/modules/CIAO/examples/Null_Component/descriptors/NodeMap.dat
new file mode 100644
index 00000000000..51d8967c561
--- /dev/null
+++ b/modules/CIAO/examples/Null_Component/descriptors/NodeMap.dat
@@ -0,0 +1 @@
+NodeOne corbaloc:iiop:localhost:10000/NodeManager \ No newline at end of file
diff --git a/modules/CIAO/examples/Null_Component/descriptors/Null_Homed.cdp b/modules/CIAO/examples/Null_Component/descriptors/Null_Homed.cdp
new file mode 100644
index 00000000000..2332e2d346e
--- /dev/null
+++ b/modules/CIAO/examples/Null_Component/descriptors/Null_Homed.cdp
@@ -0,0 +1,109 @@
+<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>Null_Homed</label>
+ <UUID>Null_Homed</UUID>
+<implementation xmi:id="Null_ComponentHomeImplementation">
+ <name>Null_ComponentHomeImplementation</name>
+ <source/>
+ <artifact xmi:idref="Null_Component_ExecArtifact" />
+ <artifact xmi:idref="Null_Component_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>home factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Null_ComponentHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Null_ComponentHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Null_Component_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Null_Component_exec</string>
+ </value>
+ </value>
+ </execParameter>
+</implementation>
+<implementation xmi:id="Null_ComponentComponentImplementation">
+ <name>Null_ComponentComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Null_Component_ExecArtifact" />
+ <artifact xmi:idref="Null_Component_SvntArtifact" />
+ <artifact xmi:idref="Null_Component_StubArtifact" />
+</implementation>
+ <instance xmi:id="Null_ComponentHomeInstance">
+ <name>Null_ComponentHome</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Null_ComponentHomeImplementation" />
+</instance>
+ <instance xmi:id="Null_ComponentComponentInstance">
+ <name>Null_ComponentComponent</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Null_ComponentComponentImplementation" />
+ <configProperty>
+ <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Null_ComponentHome</string>
+ </value>
+ </value>
+ </configProperty>
+</instance>
+ <artifact xmi:id="Null_Component_ExecArtifact">
+ <name>Null_Component_exec</name>
+ <source/>
+ <node/>
+ <location>Null_Component_exec</location>
+</artifact>
+<artifact xmi:id="Null_Component_SvntArtifact">
+ <name>Null_Component_svnt</name>
+ <source/>
+ <node/>
+ <location>Null_Component_svnt</location>
+</artifact>
+<artifact xmi:id="Null_Component_StubArtifact">
+ <name>Null_Component_stub</name>
+ <source/>
+ <node/>
+ <location>Null_Component_stub</location>
+</artifact>
+</Deployment:DeploymentPlan> \ No newline at end of file
diff --git a/modules/CIAO/examples/Null_Component/descriptors/Null_Unhomed.cdp b/modules/CIAO/examples/Null_Component/descriptors/Null_Unhomed.cdp
new file mode 100644
index 00000000000..c259d000b9e
--- /dev/null
+++ b/modules/CIAO/examples/Null_Component/descriptors/Null_Unhomed.cdp
@@ -0,0 +1,85 @@
+<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>Null_Homed</label>
+ <UUID>Null_Homed</UUID>
+
+<implementation xmi:id="Null_ComponentComponentImplementation">
+ <name>Null_ComponentComponentImplementation</name>
+ <source/>
+ <artifact xmi:idref="Null_Component_ExecArtifact" />
+ <artifact xmi:idref="Null_Component_SvntArtifact" />
+ <execParameter>
+ <!-- entrypoint as exec parameter (see 10.6.1) -->
+ <name>component factory</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Null_Component_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_Null_Component_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Null_Component_svnt</string>
+ </value>
+ </value>
+ </execParameter>
+ <execParameter>
+ <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>Null_Component_exec</string>
+ </value>
+ </value>
+ </execParameter>
+</implementation>
+<instance xmi:id="Null_ComponentComponentInstance">
+ <name>Null_ComponentComponent</name>
+ <node>NodeOne</node>
+ <!-- hostname -->
+ <source/>
+ <implementation xmi:idref="Null_ComponentComponentImplementation" />
+</instance>
+ <artifact xmi:id="Null_Component_ExecArtifact">
+ <name>Null_Component_exec</name>
+ <source/>
+ <node/>
+ <location>Null_Component_exec</location>
+</artifact>
+<artifact xmi:id="Null_Component_SvntArtifact">
+ <name>Null_Component_svnt</name>
+ <source/>
+ <node/>
+ <location>Null_Component_svnt</location>
+</artifact>
+<artifact xmi:id="Null_Component_StubArtifact">
+ <name>Null_Component_stub</name>
+ <source/>
+ <node/>
+ <location>Null_Component_stub</location>
+</artifact>
+</Deployment:DeploymentPlan> \ No newline at end of file
diff --git a/modules/CIAO/examples/Null_Component/descriptors/run_test.pl b/modules/CIAO/examples/Null_Component/descriptors/run_test.pl
new file mode 100755
index 00000000000..fa318011c5e
--- /dev/null
+++ b/modules/CIAO/examples/Null_Component/descriptors/run_test.pl
@@ -0,0 +1,182 @@
+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;
+
+$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
+$TAO_ROOT = "$ENV{'TAO_ROOT'}";
+$DAnCE = "$ENV{'DANCE_ROOT'}";
+$daemons_running = 0;
+$em_running = 0;
+$ns_running = 0;
+$daemons = 1;
+@ports = ( 60001 );
+@iorfiles = ( "NodeApp1.ior" );
+@nodenames = ( "NodeOne" );
+$status = 0;
+$dat_file = "NodeMap.dat";
+
+PerlACE::add_lib_path ('..');
+
+$nsior = PerlACE::LocalFile ("ns.ior");
+
+$E = 0;
+$EM = 0;
+$retval = 0;
+
+# Delete if there are any .ior files.
+sub delete_ior_files {
+ for ($i = 0; $i < $daemons; ++$i) {
+ unlink $iorfiles[$i];
+ }
+ unlink PerlACE::LocalFile ("EM.ior");
+ unlink PerlACE::LocalFile ("DAM.ior");
+ unlink PerlACE::LocalFile ("ns.ior");
+}
+
+sub kill_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i) {
+ $Daemons[$i]->Kill (); $Daemons[$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);
+ }
+
+}
+
+sub run_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i)
+ {
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+ $nodename = $nodenames[$i];
+ $iiop = "iiop://localhost:$port";
+ $node_app = "$CIAO_ROOT/bin/ciao_componentserver";
+
+ $d_cmd = "$DAnCE/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";
+
+ $Daemons[$i] = new PerlACE::Process ($d_cmd, $d_param);
+ $result = $Daemons[$i]->Spawn ();
+ push(@processes, $Daemons[$i]);
+
+ if (PerlACE::waitforfile_timed ($iorfile,
+ 30) == -1) {
+ print STDERR
+ "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
+ for (; $i >= 0; --$i) {
+ $Daemons[$i]->Kill (); $Daemons[$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) {
+ print "Starting test for deployment $file\n";
+ delete_ior_files ();
+
+ print STDERR "Starting Naming Service\n";
+
+ $NS = new PerlACE::Process ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 0 -ORBEndpoint iiop://localhost:60003 -o ns.ior");
+ $NS->Spawn ();
+
+ if (PerlACE::waitforfile_timed ($nsior, $PerlACE::wait_interval_for_process_creation) == -1)
+ {
+ print STDERR "ERROR: cannot find naming service IOR file\n";
+ $NS->Kill ();
+ exit 1;
+ }
+ $ns_running = 1;
+
+# Set up NamingService environment
+ $ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService";
+
+
+# Invoke node daemons.
+ print "Invoking node daemons\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 = new PerlACE::Process ("$DAnCE/bin/dance_execution_manager",
+ "-eEM.ior --domain-nc corbaloc:rir:/NameService");
+ $EM->Spawn ();
+
+ if (PerlACE::waitforfile_timed ("EM.ior",
+ $PerlACE::wait_interval_for_process_creation) == -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 - start the application -\n";
+ $E =
+ new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher",
+ "-x $file -k file://EM.ior");
+
+ $E->SpawnWaitKill (5000);
+
+ if ($status != 0)
+ {
+ print "ERROR: dance_plan_launcher returned an error code while deploying $file\n";
+ $retval = -1;
+ }
+
+ # Invoke executor - stop the application -.
+ print "Invoking executor - stop the application -\n";
+ $E =
+ new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher",
+ "-k file://EM.ior -x $file -q");
+ $E->SpawnWaitKill (3000);
+
+ print "Executor returned.\n";
+
+ delete_ior_files ();
+ kill_open_processes ();
+}
+
+delete_ior_files ();
+kill_open_processes ();
+
+exit $status;
diff --git a/modules/CIAO/examples/Null_Component/model/Null_Component.xme b/modules/CIAO/examples/Null_Component/model/Null_Component.xme
new file mode 100644
index 00000000000..bf6cc873282
--- /dev/null
+++ b/modules/CIAO/examples/Null_Component/model/Null_Component.xme
@@ -0,0 +1,882 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE project SYSTEM "mga.dtd">
+
+<project guid="{B70C5D06-CC89-4ACE-A544-1480EE5A29CE}" cdate="Tue Oct 16 16:10:55 2007" mdate="Tue Oct 16 16:10:55 2007" version="" metaguid="{525FE668-6953-4C7B-B381-780F8B2C3343}" metaversion="" metaname="PICML">
+ <name>Null_Component</name>
+ <comment></comment>
+ <author></author>
+ <folder id="id-006a-00000001" relid="0x1" childrelidcntr="0x2" kind="RootFolder" guid="{D794C257-7279-45de-80FC-533DB4F7F197}">
+ <name>Null_Component</name>
+ <folder id="id-006a-00000002" relid="0x2" childrelidcntr="0x2" kind="InterfaceDefinitions" guid="{E942DB02-B28F-454e-99F7-B358D1EEEA4A}">
+ <name>InterfaceDefinitions</name>
+ <model id="id-0065-00000001" kind="File" guid="{31D9F346-B570-4551-AC3E-BCE9DA6A2B63}" relid="0x1" childrelidcntr="0x1">
+ <name>Null_Interface</name>
+ <attribute kind="PrefixTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="path" status="meta">
+ <value></value>
+ </attribute>
+ <model id="id-0065-00000002" kind="Object" role="Object" guid="{D7703924-094F-4248-AF75-8E4FDD63DD1F}" relid="0x1" childrelidcntr="0x1">
+ <name>Null_Interface</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>518,318</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="PrefixTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="abstract" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="local" status="meta">
+ <value>false</value>
+ </attribute>
+ <model id="id-0065-00000003" kind="TwowayOperation" role="TwowayOperation" guid="{7F579FB0-FCA8-48c5-B4EF-AE88687F62D1}" relid="0x1" childrelidcntr="0x0">
+ <name>null_operation</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>518,318</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ </model>
+ </model>
+ </model>
+ <model id="id-0065-00000004" kind="File" guid="{174E1376-0155-43d7-BB3C-6D3841141DB9}" relid="0x2" childrelidcntr="0x4">
+ <name>Null_Component</name>
+ <attribute kind="PrefixTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="path" status="meta">
+ <value></value>
+ </attribute>
+ <model id="id-0065-00000005" kind="Component" role="Component" guid="{6A551DF8-B555-4568-89C5-9BF25CE35299}" relid="0x2" childrelidcntr="0x1">
+ <name>Null_Component</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>518,318</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="UUID">
+ <value>1E762719-4310-41B5-ADC0-084D15E4DA91</value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ <reference id="id-0067-00000001" kind="ProvidedRequestPort" role="ProvidedRequestPort" guid="{13ADE002-69D6-4464-BB93-53465A3FEC68}" relid="0x1" referred="id-0065-00000002">
+ <name>null_facet</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>518,318</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="exclusiveProvider" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="exclusiveUser" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="optional" status="meta">
+ <value>false</value>
+ </attribute>
+ </reference>
+ </model>
+ <model id="id-0065-00000006" kind="ComponentFactory" role="ComponentFactory" guid="{2F6A6D5C-F858-443f-A6BF-1B4F306ECA55}" relid="0x3" childrelidcntr="0x0">
+ <name>Null_Component_Home</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>793,493</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ </model>
+ <reference id="id-0067-00000002" kind="FileRef" role="FileRef" guid="{77C04268-0D56-4b5d-8417-B1B5B42D7153}" relid="0x1" referred="id-0065-00000001">
+ <name>FileRef</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="InterfaceDefinition" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>243,143</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <connection id="id-0068-00000001" kind="ManagesComponent" role="ManagesComponent" guid="{4A384E55-B7C9-40fc-A58B-579464EFD27C}" relid="0x4">
+ <name>ManagesComponent</name>
+ <regnode name="autorouterPref" isopaque="yes">
+ <value>Ws</value>
+ </regnode>
+ <connpoint role="dst" target="id-0065-00000005"/>
+ <connpoint role="src" target="id-0065-00000006"/>
+ </connection>
+ </model>
+ </folder>
+ <folder id="id-006a-00000003" relid="0x1" childrelidcntr="0xb" kind="PredefinedTypes" guid="{09B589C9-05A6-4a48-908A-43F384CA5CF6}">
+ <name>PredefinedTypes</name>
+ <atom id="id-0066-00000001" kind="TypeKind" guid="{169D314F-1CB3-4147-A1FF-E5A89E34078B}" relid="0xb">
+ <name>TypeKind</name>
+ </atom>
+ <atom id="id-0066-00000002" kind="TypeEncoding" guid="{0CFFCBE1-5318-4a14-8844-3D2684A073EF}" relid="0xa">
+ <name>TypeEncoding</name>
+ </atom>
+ <atom id="id-0066-00000003" kind="String" guid="{6716583A-62B5-41d8-90C8-1CD058B252B6}" relid="0x9">
+ <name>String</name>
+ </atom>
+ <atom id="id-0066-00000004" kind="Boolean" guid="{8DAFF4DC-DC2E-4d12-B998-F6A3073E8E1C}" relid="0x8">
+ <name>Boolean</name>
+ </atom>
+ <atom id="id-0066-00000005" kind="ShortInteger" guid="{5C38FB44-D011-4857-AD3D-F5A4DBE7705A}" relid="0x7">
+ <name>ShortInteger</name>
+ </atom>
+ <atom id="id-0066-00000006" kind="RealNumber" guid="{5D714763-6111-4a14-A638-9530154F1F62}" relid="0x6">
+ <name>RealNumber</name>
+ </atom>
+ <atom id="id-0066-00000007" kind="LongInteger" guid="{3F25A8A4-76B9-46fb-96B5-A08B84C89D62}" relid="0x5">
+ <name>LongInteger</name>
+ </atom>
+ <atom id="id-0066-00000008" kind="GenericValueObject" guid="{2E0FA79E-5A2F-435b-B6B0-43020E1B1F4A}" relid="0x4">
+ <name>GenericValueObject</name>
+ </atom>
+ <atom id="id-0066-00000009" kind="GenericValue" guid="{65CC59ED-D101-4a7e-9B21-BF43A47B3EAB}" relid="0x3">
+ <name>GenericValue</name>
+ </atom>
+ <atom id="id-0066-0000000a" kind="GenericObject" guid="{544E038C-35F6-424d-95C4-53858E1B67C2}" relid="0x2">
+ <name>GenericObject</name>
+ </atom>
+ <atom id="id-0066-0000000b" kind="Byte" guid="{13BCAE49-1ECD-4b5f-9885-9E945E5E8955}" relid="0x1">
+ <name>Byte</name>
+ </atom>
+ </folder>
+ <folder id="id-006a-00000004" relid="0x3" childrelidcntr="0x3" kind="ComponentImplementations" guid="{F1D1980E-126D-4063-AE08-1B3EBD559A46}">
+ <name>ComponentImplementations</name>
+ <model id="id-0065-00000007" kind="ComponentImplementationContainer" guid="{480C6F97-3154-4c88-BF32-359029A94EE5}" relid="0x1" childrelidcntr="0xb">
+ <name>Null_ComponentImplementation</name>
+ <model id="id-0065-00000008" kind="Property" role="Property" guid="{0B9BEA7E-262D-4db6-9449-23C055A9A7D8}" relid="0x2" childrelidcntr="0x2">
+ <name>ComponentIOR</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>282,168</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="DataValue">
+ <value>Null_Component.ior</value>
+ </attribute>
+ <reference id="id-0067-00000003" kind="DataType" role="DataType" guid="{CB2EDDA5-8426-4848-8A3A-341FE6B190BC}" relid="0x2" referred="id-0066-00000003">
+ <name>String</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>518,318</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ </model>
+ <atom id="id-0066-0000000c" kind="MonolithicImplementation" role="MonolithicImplementation" guid="{14FD32E9-2E63-479c-B2E4-CDB9C1204FF7}" relid="0x1">
+ <name>Null_ComponentMonolithicImpl</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>125,68</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="UUID">
+ <value>DB0165FE-599E-485B-844E-E8D4C1FA3951</value>
+ </attribute>
+ <attribute kind="defaultVersion" status="meta">
+ <value>0.0.0.0</value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ </atom>
+ <reference id="id-0067-00000004" kind="ComponentRef" role="ComponentRef" guid="{DA5E1767-56F3-4767-B2A3-0EF33D884026}" relid="0x9" referred="id-0065-00000005">
+ <name>Null_ComponentRef</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>910,568</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-0000000e" kind="ImplementationArtifactReference" role="ImplementationArtifactReference" guid="{41CE8EDA-9823-45f9-9A6A-121B3F8DCFF1}" relid="0x3" referred="id-0066-0000000d">
+ <name>Null_Component_stubRef</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>439,268</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-0000000f" kind="ImplementationArtifactReference" role="ImplementationArtifactReference" guid="{8CBC2B0E-43CE-4080-AAA3-5C6E244A4CBF}" relid="0x4" referred="id-0066-0000000e">
+ <name>Null_Component_svntRef</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>596,368</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-00000010" kind="ImplementationArtifactReference" role="ImplementationArtifactReference" guid="{6B4EE2E4-5A47-4813-8F49-8C7AE88EE3CA}" relid="0x5" referred="id-0066-0000000f">
+ <name>Null_Component_execRef</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>753,468</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <connection id="id-0068-00000002" kind="ConfigProperty" role="ConfigProperty" guid="{6943826B-2C7A-4e04-8630-A47DEC2555AE}" relid="0xa">
+ <name>ConfigProperty</name>
+ <connpoint role="dst" target="id-0065-00000008"/>
+ <connpoint role="src" target="id-0066-0000000c"/>
+ </connection>
+ <connection id="id-0068-00000003" kind="MonolithprimaryArtifact" role="MonolithprimaryArtifact" guid="{D8E53340-7D96-4a9d-9261-DC4E11392635}" relid="0x6">
+ <name>MonolithprimaryArtifact</name>
+ <connpoint role="src" target="id-0066-0000000c"/>
+ <connpoint role="dst" target="id-0067-0000000e"/>
+ </connection>
+ <connection id="id-0068-00000004" kind="MonolithprimaryArtifact" role="MonolithprimaryArtifact" guid="{07FAFDF2-1194-415c-B7E0-EB918A0EABE8}" relid="0x7">
+ <name>MonolithprimaryArtifact</name>
+ <connpoint role="src" target="id-0066-0000000c"/>
+ <connpoint role="dst" target="id-0067-0000000f"/>
+ </connection>
+ <connection id="id-0068-00000005" kind="MonolithprimaryArtifact" role="MonolithprimaryArtifact" guid="{11282845-9F59-462d-997D-70BCD60BAA0A}" relid="0x8">
+ <name>MonolithprimaryArtifact</name>
+ <connpoint role="src" target="id-0066-0000000c"/>
+ <connpoint role="dst" target="id-0067-00000010"/>
+ </connection>
+ <connection id="id-0068-00000006" kind="Implements" role="Implements" guid="{3A7CD825-2BE9-4845-AB70-83237A15DE79}" relid="0xb">
+ <name>Implements</name>
+ <connpoint role="src" target="id-0066-0000000c"/>
+ <connpoint role="dst" target="id-0067-00000004"/>
+ </connection>
+ </model>
+ <model id="id-0065-00000009" kind="ComponentImplementationContainer" guid="{4F5347AD-8962-4d8e-8F4F-B1C57C84B8E4}" relid="0x3" childrelidcntr="0x3">
+ <name>Null_Assembly_Container</name>
+ <model id="id-0065-0000000a" kind="ComponentAssembly" role="ComponentAssembly" guid="{BB3ED1EF-60A5-43ec-B778-49ECEC5AA5A3}" relid="0x3" childrelidcntr="0x1">
+ <name>Null_Assembly</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>212,114</value>
+ </regnode>
+ </regnode>
+ <regnode name="QoSModelAspect" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>212,114</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="UUID">
+ <value>AB4E18C0-187E-4FEF-95FE-462E199411E5</value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ <model id="id-0065-0000000b" kind="Component" role="Component" guid="{942E23B8-98E2-4427-8436-FA72195C50FB}" derivedfrom="id-0065-00000005" isinstance="yes" isprimary="yes" relid="0x1" childrelidcntr="0x0">
+ <name>Null_Component</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>342,130</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="UUID">
+ <value>6B477FA1-2C04-423B-9580-A2997DEA6ADD</value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ <reference id="id-0067-00000005" kind="ProvidedRequestPort" role="ProvidedRequestPort" guid="{570FAB75-C153-4045-A741-6270CB4061E5}" derivedfrom="id-0067-00000001" isinstance="yes" isprimary="no" referred="id-0065-00000002" isbound="yes">
+ <name>null_facet</name>
+ <attribute kind="SpecifyIdTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="VersionTag" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="exclusiveProvider" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="exclusiveUser" status="meta">
+ <value>false</value>
+ </attribute>
+ <attribute kind="optional" status="meta">
+ <value>false</value>
+ </attribute>
+ </reference>
+ </model>
+ </model>
+ </model>
+ </folder>
+ <folder id="id-006a-00000005" relid="0x4" childrelidcntr="0x0" kind="ImplementationArtifacts" guid="{873DDE6F-110F-4bb7-83E7-FB5F7B69334A}">
+ <name>ImplementationArtifacts</name>
+ <model id="id-0065-0000000c" kind="ArtifactContainer" guid="{8195FC8D-5AD9-4bda-8614-3A142167E79F}" relid="0x1" childrelidcntr="0xa">
+ <name>Null_ComponentArtifacts</name>
+ <model id="id-0065-0000000d" kind="Property" role="Property" guid="{DC52E581-22FA-4a6f-8384-B8BDE51CC42F}" relid="0x2" childrelidcntr="0x2">
+ <name>entryPoint</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>334,200</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="DataValue">
+ <value>create_Null_ComponentHome_Servant</value>
+ </attribute>
+ <reference id="id-0067-00000006" kind="DataType" role="DataType" guid="{40EED557-CF31-4cc4-8ADA-E7F61752A9CA}" relid="0x2" referred="id-0066-00000003">
+ <name>String</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>518,318</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ </model>
+ <model id="id-0065-0000000e" kind="Property" role="Property" guid="{53FF9F0E-2CF1-40a1-8DE5-4E057C5E49D0}" relid="0x4" childrelidcntr="0x2">
+ <name>entryPoint</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>700,432</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="DataValue">
+ <value>create_Null_ComponentHome_Impl</value>
+ </attribute>
+ <reference id="id-0067-00000007" kind="DataType" role="DataType" guid="{15779BA4-CF1C-400e-9A91-26700F481DC7}" relid="0x2" referred="id-0066-00000003">
+ <name>String</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>518,318</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ </model>
+ <atom id="id-0066-0000000d" kind="ImplementationArtifact" role="ImplementationArtifact" guid="{5CBCFECC-BE14-45cd-B0FB-5CD73D5184FE}" relid="0x1">
+ <name>Null_Component_stub</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>151,84</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="UUID">
+ <value>F8CECE24-F3D4-4162-9A28-1CC7FA48C01B</value>
+ </attribute>
+ <attribute kind="architecture" status="meta">
+ <value>x86</value>
+ </attribute>
+ <attribute kind="artifactVersion" status="meta">
+ <value>0.0.0.0</value>
+ </attribute>
+ <attribute kind="configuration" status="meta">
+ <value>Release</value>
+ </attribute>
+ <attribute kind="label">
+ <value></value>
+ </attribute>
+ <attribute kind="location">
+ <value>Null_Component_stub</value>
+ </attribute>
+ <attribute kind="operatingSystem" status="meta">
+ <value>Linux</value>
+ </attribute>
+ </atom>
+ <atom id="id-0066-0000000e" kind="ImplementationArtifact" role="ImplementationArtifact" guid="{01427452-ABAA-4d3b-85E0-8E547E477D0D}" relid="0x3">
+ <name>Null_Component_svnt</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>517,316</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="UUID">
+ <value>6DCFFB72-08DB-4546-B206-13B6AC2DB251</value>
+ </attribute>
+ <attribute kind="architecture" status="meta">
+ <value>x86</value>
+ </attribute>
+ <attribute kind="artifactVersion" status="meta">
+ <value>0.0.0.0</value>
+ </attribute>
+ <attribute kind="configuration" status="meta">
+ <value>Release</value>
+ </attribute>
+ <attribute kind="label">
+ <value></value>
+ </attribute>
+ <attribute kind="location">
+ <value>Null_Component_svnt</value>
+ </attribute>
+ <attribute kind="operatingSystem" status="meta">
+ <value>Linux</value>
+ </attribute>
+ </atom>
+ <atom id="id-0066-0000000f" kind="ImplementationArtifact" role="ImplementationArtifact" guid="{B82EDD63-D5D6-464f-86A6-82D04222FBEB}" relid="0x5">
+ <name>Null_Component_exec</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>883,548</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="UUID">
+ <value>7D050E10-E0DC-4A7A-810D-E847ED9ACC04</value>
+ </attribute>
+ <attribute kind="architecture" status="meta">
+ <value>x86</value>
+ </attribute>
+ <attribute kind="artifactVersion" status="meta">
+ <value>0.0.0.0</value>
+ </attribute>
+ <attribute kind="configuration" status="meta">
+ <value>Release</value>
+ </attribute>
+ <attribute kind="label">
+ <value></value>
+ </attribute>
+ <attribute kind="location">
+ <value>Null_Component_exec</value>
+ </attribute>
+ <attribute kind="operatingSystem" status="meta">
+ <value>Linux</value>
+ </attribute>
+ </atom>
+ <connection id="id-0068-00000007" kind="ArtifactExecParameter" role="ArtifactExecParameter" guid="{74A2CC0E-2B9D-47fb-8CA4-BE3F0D4F1712}" relid="0x7">
+ <name>ArtifactExecParameter</name>
+ <connpoint role="dst" target="id-0065-0000000d"/>
+ <connpoint role="src" target="id-0066-0000000e"/>
+ </connection>
+ <connection id="id-0068-00000008" kind="ArtifactDependency" role="ArtifactDependency" guid="{13DC3067-E75D-4d8f-9C6D-249BB4AFA7B2}" relid="0x8">
+ <name>ArtifactDependency</name>
+ <connpoint role="dst" target="id-0066-0000000d"/>
+ <connpoint role="src" target="id-0066-0000000e"/>
+ </connection>
+ <connection id="id-0068-00000009" kind="ArtifactExecParameter" role="ArtifactExecParameter" guid="{8BA86261-4D8A-4b8c-AF29-3B67C798F5E8}" relid="0x8">
+ <name>ArtifactExecParameter</name>
+ <connpoint role="dst" target="id-0065-0000000e"/>
+ <connpoint role="src" target="id-0066-0000000f"/>
+ </connection>
+ <connection id="id-0068-0000000a" kind="ArtifactDependency" role="ArtifactDependency" guid="{67534C2E-89FF-41b2-91BB-5EC016E409E4}" relid="0x9">
+ <name>ArtifactDependency</name>
+ <connpoint role="dst" target="id-0066-0000000e"/>
+ <connpoint role="src" target="id-0066-0000000f"/>
+ </connection>
+ <connection id="id-0068-0000000b" kind="ArtifactDependency" role="ArtifactDependency" guid="{35396F07-6A69-4c48-AD5E-F0854E613E69}" relid="0xa">
+ <name>ArtifactDependency</name>
+ <connpoint role="dst" target="id-0066-0000000d"/>
+ <connpoint role="src" target="id-0066-0000000f"/>
+ </connection>
+ </model>
+ </folder>
+ <folder id="id-006a-00000006" relid="0x5" childrelidcntr="0x0" kind="ComponentTypes" guid="{94B958C2-F2D6-4048-BEE8-B281BB1F1864}">
+ <name>ComponentTypes</name>
+ <model id="id-0065-0000000f" kind="ComponentContainer" guid="{293EBBD7-B2A9-47a7-91CA-9997151A1833}" relid="0x1" childrelidcntr="0x1">
+ <name>Null_ComponentContainer</name>
+ <reference id="id-0067-00000008" kind="ComponentRef" role="ComponentRef" guid="{E9F516D5-6CB4-4f47-B0FC-A8583BFC28AD}" relid="0x1" referred="id-0065-00000005">
+ <name>Null_ComponentRef</name>
+ <regnode name="PartRegs" isopaque="yes">
+ <value></value>
+ <regnode name="Packaging" isopaque="yes">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>518,318</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ </model>
+ </folder>
+ <folder id="id-006a-00000007" relid="0x6" childrelidcntr="0x1" kind="PackageConfigurations" guid="{BC2E4BDF-FB8A-4f46-8A89-B92FEBD598D8}">
+ <name>PackageConfigurations</name>
+ <model id="id-0065-00000010" kind="PackageConfigurationContainer" guid="{7C3BA679-4829-4fae-8251-BAA3949E9B86}" relid="0x1" childrelidcntr="0x6">
+ <name>Default</name>
+ <atom id="id-0066-00000010" kind="PackageConfiguration" role="PackageConfiguration" guid="{D65D4AEC-6AE1-4366-8BCC-D08BD932D65D}" relid="0x2">
+ <name>PackageConfiguration</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>373,149</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="UUID">
+ <value>168FF6BD-40CF-4A06-A380-66266A32F168</value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ </atom>
+ <reference id="id-0067-00000011" kind="ComponentPackageReference" role="ComponentPackageReference" guid="{FA20F029-08CD-4718-A92B-281ED421DA48}" relid="0x5" referred="id-0066-00000012">
+ <name>Null_Assembly_Package</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>573,146</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="requiredName" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="requiredType" status="meta">
+ <value></value>
+ </attribute>
+ <attribute kind="requiredUUID" status="meta">
+ <value></value>
+ </attribute>
+ </reference>
+ <connection id="id-0068-0000000c" kind="PackageConfReference" role="PackageConfReference" guid="{F1D47B99-2C3A-4596-8E68-5BC0523AC43C}" relid="0x6">
+ <name>PackageConfReference</name>
+ <regnode name="autorouterPref" isopaque="yes">
+ <value>Ew</value>
+ </regnode>
+ <connpoint role="src" target="id-0066-00000010"/>
+ <connpoint role="dst" target="id-0067-00000011"/>
+ </connection>
+ </model>
+ </folder>
+ <folder id="id-006a-00000008" relid="0x7" childrelidcntr="0x2" kind="ComponentPackages" guid="{7CD1CFE6-CBF9-403a-9FEC-EAA8900E31ED}">
+ <name>ComponentPackages</name>
+ <model id="id-0065-00000011" kind="PackageContainer" guid="{C8B39DE2-87B5-4428-8506-15786DA08B37}" relid="0x1" childrelidcntr="0xa">
+ <name>Null_Component_Package</name>
+ <atom id="id-0066-00000011" kind="ComponentPackage" role="ComponentPackage" guid="{399F04B2-2AEF-4f9b-B6D8-AD8BF395F4BF}" relid="0x1">
+ <name>Null_Component_Package</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>366,163</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="UUID">
+ <value>FDCE9BA7-20C4-44B0-B1FB-10CC18EC1DB2</value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ </atom>
+ <reference id="id-0067-00000009" kind="ComponentImplementationReference" role="ComponentImplementationReference" guid="{1628E908-3C4C-4cec-8503-FB967ED6B313}" relid="0x5" referred="id-0066-0000000c">
+ <name>Null_ComponentMonolithicImpl</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>130,158</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-0000000a" kind="ComponentRef" role="ComponentRef" guid="{99E7E3DF-7042-40d3-A5E5-91B4EA7DFE84}" relid="0x9" referred="id-0065-0000000b">
+ <name>Null_Component</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>545,137</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <connection id="id-0068-0000000d" kind="Implementation" role="Implementation" guid="{11BE67D7-21A8-4f1f-9866-B146B285B3E7}" relid="0x6">
+ <name>Implementation</name>
+ <regnode name="autorouterPref" isopaque="yes">
+ <value>We</value>
+ </regnode>
+ <connpoint role="src" target="id-0066-00000011"/>
+ <connpoint role="dst" target="id-0067-00000009"/>
+ </connection>
+ <connection id="id-0068-0000000e" kind="PackageInterface" role="PackageInterface" guid="{B136D6BA-56E6-4219-8589-ECC053CD38DF}" relid="0xa">
+ <name>PackageInterface</name>
+ <regnode name="autorouterPref" isopaque="yes">
+ <value>Ew</value>
+ </regnode>
+ <connpoint role="src" target="id-0066-00000011"/>
+ <connpoint role="dst" target="id-0067-0000000a"/>
+ </connection>
+ </model>
+ <model id="id-0065-00000012" kind="PackageContainer" guid="{D23DDDED-F375-4282-8AFB-A63FF1E6E35C}" relid="0x2" childrelidcntr="0x3">
+ <name>Null_Assembly_Package</name>
+ <atom id="id-0066-00000012" kind="ComponentPackage" role="ComponentPackage" guid="{F0404F3C-96BA-4636-8EA9-BD7FA4EFA6C1}" relid="0x1">
+ <name>Null_Assembly_Package</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>282,135</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="UUID">
+ <value>051F0532-FC77-4867-8B97-58A8B1AC2692</value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ </atom>
+ <reference id="id-0067-0000000b" kind="ComponentImplementationReference" role="ComponentImplementationReference" guid="{803C2A26-55B7-4e33-B4A1-85C099527E1B}" relid="0x2" referred="id-0065-0000000a">
+ <name>Null_Assembly</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>502,110</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <connection id="id-0068-0000000f" kind="Implementation" role="Implementation" guid="{D2AB56FE-262F-41a5-865A-F6C4CE42AF8B}" relid="0x3">
+ <name>Implementation</name>
+ <regnode name="autorouterPref" isopaque="yes">
+ <value>Ew</value>
+ </regnode>
+ <connpoint role="src" target="id-0066-00000012"/>
+ <connpoint role="dst" target="id-0067-0000000b"/>
+ </connection>
+ </model>
+ </folder>
+ <folder id="id-006a-00000009" relid="0x8" childrelidcntr="0x1" kind="DeploymentPlans" guid="{A8AC6F0D-04B4-4cd3-8D4A-35203E305292}">
+ <name>DeploymentPlans</name>
+ <model id="id-0065-00000013" kind="DeploymentPlan" guid="{E52CD936-2895-47e6-8098-AC14E04E95CE}" relid="0x1" childrelidcntr="0x7">
+ <name>Plan</name>
+ <attribute kind="UUID">
+ <value>FD6E278D-20AC-4FFD-B359-382963C5D9A1</value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ <reference id="id-0067-0000000c" kind="ComponentRef" role="ComponentRef" guid="{738ADEBF-447F-4ef5-B169-A71EFD41072C}" relid="0x7" referred="id-0065-0000000b">
+ <name>Null_Component</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="NodeMapping" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>475,102</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <reference id="id-0067-00000012" kind="NodeReference" role="NodeReference" guid="{8EE47473-D50A-4cb7-BF4D-960D4A11E08B}" relid="0x2" referred="id-0065-00000015">
+ <name>NodeA</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="NodeMapping" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>305,123</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <connection id="id-0068-00000010" kind="InstanceMapping" role="InstanceMapping" guid="{E8CCBA34-B9FD-4796-ACBA-BC9EE4E01171}" relid="0x4">
+ <name>InstanceMapping</name>
+ <regnode name="autorouterPref" isopaque="yes">
+ <value>w</value>
+ </regnode>
+ <connpoint role="dst" target="id-0067-00000012"/>
+ <connpoint role="src" target="id-0069-00000001"/>
+ </connection>
+ <set id="id-0069-00000001" kind="CollocationGroup" role="CollocationGroup" guid="{665CA6CD-AA59-490b-BD70-5A2E72A1A1F3}" relid="0x1" members="id-0067-0000000c">
+ <name>CollocationGroup</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="NodeMapping" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>114,128</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </set>
+ </model>
+ </folder>
+ <folder id="id-006a-0000000a" relid="0x9" childrelidcntr="0x1" kind="Targets" guid="{B541B57C-4E9D-4533-8329-191A3E04142F}">
+ <name>Targets</name>
+ <model id="id-0065-00000014" kind="Domain" guid="{AB32BA4C-D4C2-477f-8FA0-B07B917A1CCE}" relid="0x1" childrelidcntr="0x1">
+ <name>Domain</name>
+ <attribute kind="UUID">
+ <value>E6198ADF-7421-46D8-9C4F-F70273837DAF</value>
+ </attribute>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ <model id="id-0065-00000015" kind="Node" role="Node" guid="{F7A80831-4C6B-475c-B818-02BE26FD79B4}" relid="0x1" childrelidcntr="0x0">
+ <name>NodeA</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Target" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>198,170</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ <attribute kind="label" status="meta">
+ <value></value>
+ </attribute>
+ </model>
+ </model>
+ </folder>
+ <folder id="id-006a-0000000b" relid="0xa" childrelidcntr="0x1" kind="TopLevelPackages" guid="{3B6BEFD6-A3F9-4caa-A26D-46160D31B3F0}">
+ <name>TopLevelPackages</name>
+ <model id="id-0065-00000016" kind="TopLevelPackageContainer" guid="{B83E2CBB-2304-457b-AAF7-7D3C8BE6AB49}" relid="0x1" childrelidcntr="0x3">
+ <name>Default</name>
+ <atom id="id-0066-00000013" kind="TopLevelPackage" role="TopLevelPackage" guid="{AB7F46E3-34C1-4910-A9B8-51EFC7A9D179}" relid="0x1">
+ <name>TopLevelPackage</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>240,184</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </atom>
+ <reference id="id-0067-0000000d" kind="PackageConfigurationReference" role="PackageConfigurationReference" guid="{548C1366-5FDF-47c3-919C-50FD9D66D032}" relid="0x2" referred="id-0066-00000010">
+ <name>PackageConfiguration</name>
+ <regnode name="PartRegs" status="undefined">
+ <value></value>
+ <regnode name="Packaging" status="undefined">
+ <value></value>
+ <regnode name="Position" isopaque="yes">
+ <value>517,181</value>
+ </regnode>
+ </regnode>
+ </regnode>
+ </reference>
+ <connection id="id-0068-00000011" kind="package" role="package" guid="{D4CA3A9E-14DE-489a-A06E-161B5A233BC7}" relid="0x3">
+ <name>package</name>
+ <regnode name="autorouterPref" isopaque="yes">
+ <value>w</value>
+ </regnode>
+ <connpoint role="src" target="id-0066-00000013"/>
+ <connpoint role="dst" target="id-0067-0000000d"/>
+ </connection>
+ </model>
+ </folder>
+ <folder id="id-006a-0000000c" relid="0xb" childrelidcntr="0x0" kind="ComponentBuild" guid="{C8B1D725-308A-45cb-8A47-F070462C8B16}">
+ <name>ComponentBuild</name>
+ </folder>
+ </folder>
+</project>
diff --git a/modules/CIAO/examples/Null_Component/plan.h b/modules/CIAO/examples/Null_Component/plan.h
new file mode 100644
index 00000000000..b6c5ada9ff2
--- /dev/null
+++ b/modules/CIAO/examples/Null_Component/plan.h
@@ -0,0 +1,37 @@
+// $Id$
+
+#include "Session_Container.h"
+
+extern "C"
+::Components::HomeExecutorBase_ptr create_Null_ComponentHome_Impl (void);
+
+extern "C"
+::PortableServer::Servant create_Null_ComponentHome_Servant (
+ ::Components::HomeExecutorBase_ptr p,
+ ::CIAO::Session_Container *c,
+ const char*);
+
+struct HomeAttributes
+{
+ char const * component_instance_name_;
+ /// Specify the entrypoint to component executor DLL.
+ char const * executor_entrypt_;
+ ::CIAO::HomeFactory executor_fptr_;
+ /// Specify the entrypoint to component servant DLL.
+ char const * servant_entrypt_;
+ ::CIAO::ServantFactory servant_fptr_;
+};
+
+/// Homes
+HomeAttributes homes_table[] =
+{
+ {
+ "Null_Component.ComponentImplementations.Null_Assembly_Container."
+ "Null_Assembly.Null_Component",
+ "create_Null_ComponentHome_Impl",
+ create_Null_ComponentHome_Impl,
+ "create_Null_ComponentHome_Servant",
+ create_Null_ComponentHome_Servant
+ }
+};
+
diff --git a/modules/CIAO/examples/Philosophers/Philosophers.idl b/modules/CIAO/examples/Philosophers/Philosophers.idl
new file mode 100644
index 00000000000..7a29bc03c23
--- /dev/null
+++ b/modules/CIAO/examples/Philosophers/Philosophers.idl
@@ -0,0 +1,75 @@
+// $Id$
+
+// The famous Dining Philosopher example in CCM tutorial slides
+
+module Example
+{
+ exception InUse {};
+
+ interface Fork
+ /**
+ * Provided facet interface definition.
+ * It should be defined by the IDL file.
+ */
+ {
+ void get () raises (InUse);
+
+ void release ();
+ };
+
+ component ForkManager
+ {
+ provides Fork the_fork;
+ };
+
+ home ForkHome manages ForkManager
+ {
+ };
+
+ enum PhilosopherState
+ {
+ EATING,
+ THINKING,
+ HUNGRY,
+ STARVING,
+ DEAD
+ };
+
+ eventtype StatusInfo
+ {
+ public string name;
+ public PhilosopherState state;
+ public unsigned long ticks_since_last_meal;
+ public boolean has_left_fork;
+ public boolean has_right_fork;
+ };
+
+ component Philosopher
+ {
+ attribute string name;
+
+ // The left fork receptacle.
+ uses Fork left;
+
+ // The right fork receptacle.
+ uses Fork right;
+
+ // The status info event source.
+ publishes StatusInfo info;
+ };
+
+ home PhilosopherHome manages Philosopher
+ {
+ factory new (in string name);
+ };
+
+ component Observer
+ {
+ // The status info sink port.
+ consumes StatusInfo info;
+ };
+
+ home ObserverHome manages Observer
+ {
+ };
+};
diff --git a/modules/CIAO/examples/Philosophers/README b/modules/CIAO/examples/Philosophers/README
new file mode 100644
index 00000000000..96a56e61b73
--- /dev/null
+++ b/modules/CIAO/examples/Philosophers/README
@@ -0,0 +1 @@
+This example is unfinished. \ No newline at end of file
diff --git a/modules/CIAO/performance-tests/Benchmark/Benchmark.idl b/modules/CIAO/performance-tests/Benchmark/Benchmark.idl
new file mode 100644
index 00000000000..d363628c891
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/Benchmark.idl
@@ -0,0 +1,48 @@
+// $Id$
+//=============================================================================
+/**
+ * @file Benchmark.idl
+ *
+ * Definition of test interfaces used in the Benchmark module.
+ *
+ * @author Diego, Arvind <arvindk@dre.vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef CIAO_BENCHMARK_IDL
+#define CIAO_BENCHMARK_IDL
+
+
+module Benchmark
+{
+
+ /**
+ * @interface RoundTrip
+ *
+ * This Latency test provides operations to measure the round-trip
+ * latency of the ORB. The interface is same as that of
+ * $TAO_ROOT/performance-tests/Latency/Single_Threaded
+ */
+
+ /// Measure roundtrip delay
+ interface LatencyTest
+ {
+ /// A simple method to measure roundtrip delays
+ long makeCall (in long send_time);
+
+ };
+
+ /**
+ * @interface Controller
+ *
+ * This interface is used to start the tests.
+ */
+ interface Controller
+ {
+ /// Start the test
+ void start ();
+ };
+
+};
+
+#endif /*CIAO_BENCHMARK_IDL*/
diff --git a/modules/CIAO/performance-tests/Benchmark/Benchmark.mpc b/modules/CIAO/performance-tests/Benchmark/Benchmark.mpc
new file mode 100644
index 00000000000..cdaa1adf905
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/Benchmark.mpc
@@ -0,0 +1,98 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n -c server Benchmark"
+
+project(Benchmark_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=BENCHMARK_STUB_Export \
+ -Wb,stub_export_include=Benchmark_stub_export.h \
+ -Wb,skel_export_macro=BENCHMARK_SKEL_Export \
+ -Wb,skel_export_include=Benchmark_skel_export.h
+
+ IDL_Files {
+ Benchmark.idl
+ }
+}
+
+project(Benchmark_lem_gen) : ciaoidldefaults, anytypecode {
+ after += Benchmark_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=BENCHMARK_STUB_Export \
+ -Wb,stub_export_include=Benchmark_stub_export.h -SS
+
+ IDL_Files {
+ BenchmarkE.idl
+ }
+}
+
+project(Benchmark_stub) : ccm_stub {
+ after += Benchmark_lem_gen
+ libs +=
+
+ sharedname = Benchmark_stub
+ dynamicflags = BENCHMARK_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ BenchmarkEC.cpp
+ BenchmarkC.cpp
+ }
+
+ Header_Files {
+ BenchmarkC.h
+ Benchmark_stub_export.h
+ }
+
+ Inline_Files {
+ BenchmarkC.inl
+ }
+}
+
+
+project(Benchmark_skel) : ciao_executor {
+ after += Benchmark_stub
+ sharedname = Benchmark_skel
+ libs += Benchmark_stub
+
+
+ dynamicflags = BENCHMARK_SKEL_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ BenchmarkS.cpp
+ }
+
+ Header_Files {
+ BenchmarkS.h
+ Benchmark_skel_export.h
+ }
+
+ Inline_Files {
+ BenchmarkS.inl
+ }
+}
+
+project (Benchmark_server) : taoserver, strategies, ciao_executor {
+ exename = server
+ after += Benchmark_skel
+ libs += Benchmark_skel Benchmark_stub Benchmark_stub
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ server.cpp
+ LatencyTest.cpp
+ }
+
+ Header_Files {
+ LatencyTest.h
+ }
+
+ Inline_Files {
+ }
+}
+
diff --git a/modules/CIAO/performance-tests/Benchmark/LatencyTest.cpp b/modules/CIAO/performance-tests/Benchmark/LatencyTest.cpp
new file mode 100644
index 00000000000..2de09618b8f
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/LatencyTest.cpp
@@ -0,0 +1,22 @@
+//
+// $Id$
+//
+#include "LatencyTest.h"
+
+LatencyTest::LatencyTest (CORBA::ORB_ptr orb)
+ : orb_ (CORBA::ORB::_duplicate (orb))
+{
+}
+
+
+CORBA::Long
+LatencyTest::makeCall (CORBA::Long send_time)
+{
+ return send_time;
+}
+
+void
+LatencyTest::shutdown ()
+{
+ this->orb_->shutdown (0);
+}
diff --git a/modules/CIAO/performance-tests/Benchmark/LatencyTest.h b/modules/CIAO/performance-tests/Benchmark/LatencyTest.h
new file mode 100644
index 00000000000..bafda6e76c0
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/LatencyTest.h
@@ -0,0 +1,31 @@
+//
+// $Id$
+//
+
+#ifndef LATENCYTEST_H
+#define LATENCYTEST_H
+#include /**/ "ace/pre.h"
+
+#include "BenchmarkS.h"
+
+/// Implement the Test::LatencyTest interface
+class LatencyTest
+: public virtual POA_Benchmark::LatencyTest
+{
+ public:
+ /// Constructor
+ LatencyTest (CORBA::ORB_ptr orb);
+
+ // = The skeleton methods
+ virtual CORBA::Long makeCall (CORBA::Long send_time);
+
+ virtual void shutdown ();
+
+ private:
+ /// Use an ORB reference to conver strings to objects and shutdown
+ /// the application.
+ CORBA::ORB_var orb_;
+};
+
+#include /**/ "ace/post.h"
+#endif /* LATENCYTEST_H */
diff --git a/modules/CIAO/performance-tests/Benchmark/Multi_Threaded/Client_Task.cpp b/modules/CIAO/performance-tests/Benchmark/Multi_Threaded/Client_Task.cpp
new file mode 100644
index 00000000000..d3c971aac80
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/Multi_Threaded/Client_Task.cpp
@@ -0,0 +1,30 @@
+//
+// $Id$
+//
+
+#include "Client_Task.h"
+
+Client_Task::Client_Task (Benchmark::RoundTripClient_ptr roundtrip)
+ : roundtrip_(Benchmark::RoundTripClient::_duplicate(roundtrip))
+{
+}
+
+int
+Client_Task::svc (void)
+{
+ //Creat the Controller
+ Benchmark::Controller_var controller = this->roundtrip_->provide_controller();
+
+ //check if controller is non nil
+ if (CORBA::is_nil (controller.in ()))
+ ACE_ERROR_RETURN ((LM_DEBUG,
+ "Nil Benchmark::Controller reference\n"),
+ 1);
+
+ ACE_DEBUG ((LM_DEBUG, "Sending Trigger\n"));
+
+ //send out the trigger message
+ controller->start();
+
+ return 0;
+}
diff --git a/modules/CIAO/performance-tests/Benchmark/Multi_Threaded/Client_Task.h b/modules/CIAO/performance-tests/Benchmark/Multi_Threaded/Client_Task.h
new file mode 100644
index 00000000000..e3330a76307
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/Multi_Threaded/Client_Task.h
@@ -0,0 +1,29 @@
+//
+// $Id$
+//
+
+#ifndef CLIENT_TASK_H
+#define CLIENT_TASK_H
+#include /**/ "ace/pre.h"
+
+#include "RoundTripClientC.h"
+#include "ace/Task.h"
+
+/// Implement the Test::Client_Task interface
+class Client_Task : public ACE_Task_Base
+{
+public:
+ /// Constructor
+ Client_Task (Benchmark::RoundTripClient_ptr roundtrip);
+
+ /// The service method
+ virtual int svc (void);
+
+private:
+
+ /// The object reference used for this test
+ Benchmark::RoundTripClient_var roundtrip_;
+};
+
+#include /**/ "ace/post.h"
+#endif /* CLIENT_TASK_H */
diff --git a/modules/CIAO/performance-tests/Benchmark/Multi_Threaded/Multi_Threaded.mpc b/modules/CIAO/performance-tests/Benchmark/Multi_Threaded/Multi_Threaded.mpc
new file mode 100644
index 00000000000..c5a5c09eb00
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/Multi_Threaded/Multi_Threaded.mpc
@@ -0,0 +1,25 @@
+// $Id$
+
+project (Multi_Threaded_client) : ccm_stub, strategies {
+ exename = client
+ after += Benchmark_RoundTripClient_stub
+ libs += RoundTripClient_stub Benchmark_stub
+ libpaths += ..
+ includes += ../RoundTripClient
+ libpaths += ../RoundTripClient
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ client.cpp
+ Client_Task.cpp
+ }
+
+ Header_Files {
+ Client_Task.h
+ }
+
+ Inline_Files {
+ }
+}
diff --git a/modules/CIAO/performance-tests/Benchmark/Multi_Threaded/NOTE.txt b/modules/CIAO/performance-tests/Benchmark/Multi_Threaded/NOTE.txt
new file mode 100644
index 00000000000..a0ae140a0ee
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/Multi_Threaded/NOTE.txt
@@ -0,0 +1,15 @@
+$Id$
+
+PRE Condition:
+=============
+This test assumes that there is an appropriate svc.conf file present in
+$CIAO_ROOOT/tools/ComponentServer. Moreover, the Component Server does not
+curerntly expose interfaces to configure multi-threading. Hence, this
+experiment, will produce the desired results *only* when this feature has been
+added in CIAO. Till then, the server will run in single-threaded mode.
+
+Similarly, the client also requires the svc.conf file that enables
+multi-threading. This file is present in this directory.
+
+The svc.conf file required for this experiment can be obtained from
+$TAO_ROOT/performance-tests/Latency/Thread_Pool
diff --git a/modules/CIAO/performance-tests/Benchmark/Multi_Threaded/README b/modules/CIAO/performance-tests/Benchmark/Multi_Threaded/README
new file mode 100644
index 00000000000..0cadcfc8e51
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/Multi_Threaded/README
@@ -0,0 +1,12 @@
+/**
+
+@page Multi_Threaded README File
+
+ This black box experiment measures "multi-threading" support present in CIAO.
+In this test, a client component spawns four threads that concurrently invoke operations
+on the server. The latency, throughput and jitter for each thread is printed out. The
+motivation of this test is to observe scalability when a ComponentServer receives
+multiple requests from parallel clients. A sister test, ../Multi_Process documents
+behavior as parallel clients (separate processes) invoke requests on the server.
+
+*/
diff --git a/modules/CIAO/performance-tests/Benchmark/Multi_Threaded/client.cpp b/modules/CIAO/performance-tests/Benchmark/Multi_Threaded/client.cpp
new file mode 100644
index 00000000000..9cfc951f332
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/Multi_Threaded/client.cpp
@@ -0,0 +1,90 @@
+//
+// $Id$
+//
+
+//==============================================================
+/**
+ * @file client.cpp
+ *
+ * This is a client program that also acts as an Event Trigger. Four client tasks simultaneously
+ * send out trigger to the ClientRoundTrip component to start the latency measurements in
+ * parallel. This test is used to test scalability as the number of client components increase
+ *
+ * @author Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+ */
+//===============================================================
+
+#include "Client_Task.h"
+
+//IOR of the components
+const char *ior1 = "file://comp1.ior";
+const char *ior2 = "file://comp2.ior";
+const char *ior3 = "file://comp3.ior";
+const char *ior4 = "file://comp4.ior";
+
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+
+ // Initialize orb
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ // Resolve HomeFinder interface
+ CORBA::Object_var obj1
+ = orb->string_to_object (ior1);
+
+ CORBA::Object_var obj2
+ = orb->string_to_object (ior2);
+
+ CORBA::Object_var obj3
+ = orb->string_to_object (ior3);
+
+ CORBA::Object_var obj4
+ = orb->string_to_object (ior4);
+
+ if (CORBA::is_nil (obj1.in ()) ||
+ CORBA::is_nil (obj2.in ()) ||
+ CORBA::is_nil (obj3.in ()) ||
+ CORBA::is_nil (obj4.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Nil Benchmark::RoundtripClient reference\n"),
+ 1);
+ }
+
+ //Narrow to appropriate interfaces
+ Benchmark::RoundTripClient_var client1=
+ Benchmark::RoundTripClient::_narrow (obj1.in());
+
+ Benchmark::RoundTripClient_var client2=
+ Benchmark::RoundTripClient::_narrow (obj1.in());
+
+ Benchmark::RoundTripClient_var client3=
+ Benchmark::RoundTripClient::_narrow (obj1.in());
+
+ Benchmark::RoundTripClient_var client4=
+ Benchmark::RoundTripClient::_narrow (obj1.in());
+
+ //Create Tasks
+ Client_Task task1(client1.in());
+ Client_Task task2(client2.in());
+ Client_Task task3(client3.in());
+ Client_Task task4(client4.in());
+
+ task1.activate(THR_NEW_LWP | THR_JOINABLE);
+ task2.activate(THR_NEW_LWP | THR_JOINABLE);
+ task3.activate(THR_NEW_LWP | THR_JOINABLE);
+ task4.activate(THR_NEW_LWP | THR_JOINABLE);
+
+ task1.thr_mgr()->wait();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Exception Caught:");
+ return 1;
+ }
+ return 0;
+}
diff --git a/modules/CIAO/performance-tests/Benchmark/Multi_Threaded/run_test.pl b/modules/CIAO/performance-tests/Benchmark/Multi_Threaded/run_test.pl
new file mode 100755
index 00000000000..f7d028a6cc8
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/Multi_Threaded/run_test.pl
@@ -0,0 +1,87 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+#
+# @@ Run this script from ../descriptors/ instead.
+#
+
+use lib "$ENV{'ACE_ROOT'}/bin";
+use PerlACE::Run_Test;
+
+$status = 0;
+$daemon_ior = PerlACE::LocalFile ("daemon.ior");
+$am_ior = PerlACE::LocalFile ("am.ior");
+
+$ACE_ROOT=$ENV{'ACE_ROOT'};
+$CIAO_ROOT=$ENV{'CIAO_ROOT'};
+
+unlink $daemon_ior;
+unlink $am_ior;
+
+# CIAO Daemon command line arguments
+$daemon_args = "-c $CIAO_ROOT/tools/ComponentServer/svc.conf -ORBEndpoint iiop://localhost:10000 -o $daemon_ior -i CIAO_Installation_Data.ini -n $CIAO_ROOT/tools/ComponentServer/ComponentServer";
+
+# CIAO Daemon command line arguments
+$daemon_args2 = "-c $CIAO_ROOT/tools/ComponentServer/svc.conf -ORBEndpoint iiop://localhost:12000 -o $daemon_ior -i CIAO_Installation_Data.ini -n $CIAO_ROOT/tools/ComponentServer/ComponentServer";
+
+$assembly_manager_args = "-o $am_ior -c test.dat";
+
+$ad_args = " -k file://$am_ior -a Multi_Threaded.cad";
+
+# CIAO daemon process definition
+$DS = new PerlACE::Process ("$CIAO_ROOT/tools/Daemon/CIAO_Daemon",
+ "$daemon_args");
+
+## Starting up the CIAO daemon
+$DS->Spawn ();
+if (PerlACE::waitforfile_timed ($daemon_ior, $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: Could not find daemon ior file <$daemon_ior>\n";
+ $DS->Kill ();
+ exit 1;
+}
+
+# CIAO daemon process definition
+$DS2 = new PerlACE::Process ("$CIAO_ROOT/tools/Daemon/CIAO_Daemon",
+ "$daemon_args2");
+
+## Starting up the CIAO daemon
+$DS2->Spawn ();
+if (PerlACE::waitforfile_timed ($daemon_ior, $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: Could not find daemon ior file <$daemon_ior>\n";
+ $DS->Kill ();
+ exit 1;
+}
+
+$AM = new PerlACE::Process("$CIAO_ROOT/tools/Assembly_Deployer/Assembly_Manager",
+ $assembly_manager_args);
+$AM->Spawn ();
+if (PerlACE::waitforfile_timed ($am_ior, $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: Could not find assembly ior file <$am_ior>\n";
+ $AM->Kill ();
+ exit 1;
+}
+
+$AD = new PerlACE::Process("$CIAO_ROOT/tools/Assembly_Deployer/Assembly_Deployer",
+ $ad_args);
+$AD->Spawn ();
+
+sleep (5);
+
+#Start the client to send the trigger message
+$CL = new PerlACE::Process ("../Multi_Threaded/client", "");
+$CL->SpawnWaitKill(60);
+
+$AM->Kill ();
+$AD->Kill ();
+$DS->Kill ();
+$CL->Kill ();
+$DS2->Kill ();
+
+unlink $daemon_ior;
+unlink $am_ior;
+
+exit $status;
diff --git a/modules/CIAO/performance-tests/Benchmark/Multi_Threaded/svc.conf b/modules/CIAO/performance-tests/Benchmark/Multi_Threaded/svc.conf
new file mode 100644
index 00000000000..46ff5409fdf
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/Multi_Threaded/svc.conf
@@ -0,0 +1,5 @@
+#
+# $Id$
+#
+static Advanced_Resource_Factory "-ORBReactorMaskSignals 0 -ORBFlushingStrategy blocking"
+static Client_Strategy_Factory "-ORBTransportMuxStrategy EXCLUSIVE -ORBClientConnectionHandler RW"
diff --git a/modules/CIAO/performance-tests/Benchmark/README b/modules/CIAO/performance-tests/Benchmark/README
new file mode 100644
index 00000000000..97390d0ec0b
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/README
@@ -0,0 +1,22 @@
+/**
+
+@page BasicSP README File
+
+ The most basic of the Boeing scenarios that form part of the
+OEP. This is done to illustrate how the OEP can be implemented using
+CIAO.
+
+ Compilation of the CIDL compiler source code requires the
+Boost library, which is not included in this distribution of
+ACE+TAO+CIAO. The Boost library is available at
+
+http://www.boost.org
+
+ Alternatively, a binary executable of the CIAO
+CIDL compiler can be downloaded from
+
+http://www.dre.vanderbilt.edu/CIAO/CIDL.html
+
+Versions are available at the above site for Linux and Windows.
+
+*/
diff --git a/modules/CIAO/performance-tests/Benchmark/RoundTrip/README b/modules/CIAO/performance-tests/Benchmark/RoundTrip/README
new file mode 100644
index 00000000000..8bd003eaf72
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/RoundTrip/README
@@ -0,0 +1,9 @@
+/**
+
+@page RoundTrip README File
+
+ The RoundTrip component. This component measures the round-trip
+latency for single-threaded case. This test adapted from
+$TAO_ROOT/performance-tests/Latency/Single_Threaded
+
+*/
diff --git a/modules/CIAO/performance-tests/Benchmark/RoundTrip/RoundTrip.idl b/modules/CIAO/performance-tests/Benchmark/RoundTrip/RoundTrip.idl
new file mode 100644
index 00000000000..71411c1af1a
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/RoundTrip/RoundTrip.idl
@@ -0,0 +1,30 @@
+// $Id$
+//=============================================================================
+/**
+ * @file RoundTrip.idl
+ *
+ * Definition of the Component that provides the LatencyTest interface
+ *
+ */
+//=============================================================================
+
+#ifndef CIAO_ROUNDTRIP_IDL
+#define CIAO_ROUNDTRIP_IDL
+
+#include "../Benchmark.idl"
+#include "../BenchmarkE.idl"
+#include <Components.idl>
+
+module Benchmark
+{
+ component RoundTrip
+ {
+ provides LatencyTest latency;
+ };
+
+ home RoundTripHome manages RoundTrip
+ {
+ };
+};
+
+#endif /* CIAO_ROUNDTRIP_IDL*/
diff --git a/modules/CIAO/performance-tests/Benchmark/RoundTrip/RoundTrip.mpc b/modules/CIAO/performance-tests/Benchmark/RoundTrip/RoundTrip.mpc
new file mode 100644
index 00000000000..ffd1b189ee3
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/RoundTrip/RoundTrip.mpc
@@ -0,0 +1,134 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p Benchmark -l .. -c client Roundtrip"
+
+project(Benchmark_RoundTrip_idl_gen) : componentidldefaults {
+ custom_only = 1
+ after += Benchmark_idl_gen
+ idlflags += \
+ -Wb,stub_export_macro=ROUNDTRIP_STUB_Export \
+ -Wb,stub_export_include=RoundTrip_stub_export.h \
+ -Wb,skel_export_macro=ROUNDTRIP_SVNT_Export \
+ -Wb,skel_export_include=RoundTrip_svnt_export.h \
+ -Wb,exec_export_macro=ROUNDTRIP_EXEC_Export \
+ -Wb,exec_export_include=RoundTrip_exec_export.h
+
+ IDL_Files {
+ RoundTrip.idl
+ }
+}
+
+project(Benchmark_RoundTrip_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ after += Benchmark_RoundTrip_idl_gen
+ idlflags += -Wb,export_macro=ROUNDTRIP_EXEC_Export \
+ -Wb,export_include=RoundTrip_exec_export.h \
+ -SS
+
+ IDL_Files {
+ RoundTripE.idl
+ RoundTripEI.idl << RoundTripE.idl
+ }
+}
+
+project(Benchmark_RoundTrip_stub) : ccm_stub {
+ after += Benchmark_RoundTrip_idl_gen Benchmark_stub
+ libs += Benchmark_stub
+ libpaths += ..
+ sharedname = RoundTrip_stub
+ dynamicflags = ROUNDTRIP_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ RoundTripC.cpp
+ }
+
+ Header_Files {
+ RoundTripC.h
+ RoundTrip_stub_export.h
+ }
+
+ Inline_Files {
+ RoundTripC.inl
+ }
+}
+
+project(Benchmark_RoundTrip_exec) : ciao_executor {
+ after += Benchmark_RoundTrip_lem_gen Benchmark_RoundTrip_stub
+ sharedname = RoundTrip_exec
+ libs += RoundTrip_stub Benchmark_stub
+ libpaths += ..
+ dynamicflags = ROUNDTRIP_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ RoundTripEC.cpp
+ RoundTripEIC.cpp
+ RoundTrip_exec.cpp
+ }
+
+ Header_Files {
+ RoundTripEC.h
+ RoundTripEIC.h
+ RoundTrip_exec.h
+ RoundTrip_exec_export.h
+ }
+
+ Inline_Files {
+ RoundTripEC.inl
+ RoundTripEIC.inl
+ }
+}
+
+
+project(Benchmark_RoundTrip_svnt) : ciao_servant {
+ after += Benchmark_skel Benchmark_RoundTrip_exec
+ sharedname = RoundTrip_svnt
+ libs += RoundTrip_exec \
+ RoundTrip_stub \
+ Benchmark_skel \
+ Benchmark_stub
+ libpaths += ..
+ dynamicflags = ROUNDTRIP_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ RoundTripS.cpp
+ RoundTrip_svnt.cpp
+ }
+
+ Header_Files {
+ RoundTripS.h
+ RoundTrip_svnt.h
+ RoundTrip_svnt_export.h
+ }
+
+ Inline_Files {
+ RoundTripS.inl
+ }
+}
+
+project (RoundTrip_client) : ccm_stub, valuetype, strategies, avoids_ace_for_tao {
+ exename = client
+ after += Benchmark_RoundTrip_stub
+ libs += RoundTrip_stub Benchmark_stub
+ libpaths += ..
+ IDL_Files {
+ }
+
+ Source_Files {
+ client.cpp
+ }
+
+ Header_Files {
+ }
+
+ Inline_Files {
+ }
+}
+
diff --git a/modules/CIAO/performance-tests/Benchmark/RoundTrip/RoundTripEI.idl b/modules/CIAO/performance-tests/Benchmark/RoundTrip/RoundTripEI.idl
new file mode 100644
index 00000000000..1f105b46051
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/RoundTrip/RoundTripEI.idl
@@ -0,0 +1,33 @@
+// $Id$
+
+//=============================================================================
+/**
+ * @file RoundTripEI.idl
+ *
+ *
+ * @author
+ */
+//=============================================================================
+
+#ifndef CIAO_ROUNDTRIPEI_IDL
+#define CIAO_ROUNDTRIPEI_IDL
+
+#include "RoundTripE.idl"
+
+module Benchmark
+{
+ /**
+ * @interface RoundTrip_Exec
+ *
+ * The actually Test executor need to support
+ * Components::SessionComponent interface. Therefore, we need to
+ * define the component executor interface explicitly here.
+ */
+ local interface RoundTrip_Exec : CCM_RoundTrip, CCM_LatencyTest,
+ Components::SessionComponent
+ {
+ };
+
+};
+
+#endif /* CIAO_TESTEI_IDL */
diff --git a/modules/CIAO/performance-tests/Benchmark/RoundTrip/RoundTrip_exec.cpp b/modules/CIAO/performance-tests/Benchmark/RoundTrip/RoundTrip_exec.cpp
new file mode 100644
index 00000000000..a0b330ab454
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/RoundTrip/RoundTrip_exec.cpp
@@ -0,0 +1,124 @@
+// $Id$
+
+#include "RoundTrip_exec.h"
+
+//-- ACE Scheduling Params
+#include "ace/Sched_Params.h"
+#include "ace/OS_NS_errno.h"
+
+#include "ciao/Logger/Log_Macros.h"
+//=================================================================
+
+void
+set_priority ()
+{
+ int priority =
+ (ACE_Sched_Params::priority_min (ACE_SCHED_FIFO)
+ + ACE_Sched_Params::priority_max (ACE_SCHED_FIFO)) / 2;
+ // Enable FIFO scheduling, e.g., RT scheduling class on Solaris.
+
+ if (ACE_OS::sched_params (ACE_Sched_Params (ACE_SCHED_FIFO,
+ priority,
+ ACE_SCOPE_PROCESS)) != 0)
+ {
+ if (ACE_OS::last_error () == EPERM)
+ {
+ CIAO_DEBUG ((LM_WARNING, CLINFO
+ "client (%P|%t): user is not superuser, "
+ "test runs in time-shared class\n"));
+ }
+ else
+ ACE_ERROR ((LM_ERROR,
+ "client (%P|%t): sched_params failed\n"));
+ }
+}
+
+
+
+MyImpl::RoundTrip_exec_i::RoundTrip_exec_i ()
+{
+
+}
+
+MyImpl::RoundTrip_exec_i::~RoundTrip_exec_i ()
+{
+}
+
+::Benchmark::CCM_LatencyTest *
+MyImpl::RoundTrip_exec_i::get_latency ()
+{
+ return ::Benchmark::CCM_LatencyTest::_duplicate (this);
+}
+
+/* Main method that invokes the octet_sequence */
+CORBA::Long
+MyImpl::RoundTrip_exec_i::makeCall (CORBA::Long data)
+{
+ return data * data * data;
+}
+
+// Operations from Components::SessionComponent
+void
+MyImpl::RoundTrip_exec_i::set_session_context (
+ Components::SessionContext_ptr ctx)
+{
+ CIAO_DEBUG ((LM_TRACE, CLINFO "MyImpl::RoundTrip_exec_i::set_session_context\n"));
+ //cout << "MyImpl::RoundTrip_exec_i::set_session_context\n" << endl;
+
+ this->context_ =
+ Benchmark::CCM_RoundTrip_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ throw CORBA::INTERNAL ();
+ // Urm, we actually discard exceptions thown from this operation.
+}
+
+void
+MyImpl::RoundTrip_exec_i::configuration_complete ()
+{
+}
+
+void
+MyImpl::RoundTrip_exec_i::ccm_activate ()
+{
+ CIAO_DEBUG ((LM_TRACE, CLINFO "MyImpl::RoundTrip_exec_i::ccm_activate\n"));
+ //cout << "MyImpl::RoundTrip_exec_i::ccm_activate\n";
+
+ // Starting method!
+ //set_priority();
+}
+
+void
+MyImpl::RoundTrip_exec_i::ccm_passivate ()
+{
+ CIAO_DEBUG ((LM_TRACE, CLINFO "MyImpl::RoundTrip_exec_i::ccm_passivate\n"));
+}
+
+void
+MyImpl::RoundTrip_exec_i::ccm_remove ()
+{
+ CIAO_DEBUG ((LM_INFO, CLINFO "MyImpl::RoundTrip_exec_i::ccm_remove\n"));
+}
+
+
+MyImpl::RoundTripHome_exec_i::RoundTripHome_exec_i ()
+{
+}
+
+MyImpl::RoundTripHome_exec_i::~RoundTripHome_exec_i ()
+{
+}
+
+::Components::EnterpriseComponent_ptr
+MyImpl::RoundTripHome_exec_i::create ()
+{
+ return new MyImpl::RoundTrip_exec_i;
+}
+
+
+extern "C" ROUNDTRIP_EXEC_Export ::Components::HomeExecutorBase_ptr
+createRoundTripHome_Impl (void)
+{
+ //cout << "Creating Round_trip impl" << endl;
+ return new MyImpl::RoundTripHome_exec_i ();
+}
diff --git a/modules/CIAO/performance-tests/Benchmark/RoundTrip/RoundTrip_exec.h b/modules/CIAO/performance-tests/Benchmark/RoundTrip/RoundTrip_exec.h
new file mode 100644
index 00000000000..99bac519c1e
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/RoundTrip/RoundTrip_exec.h
@@ -0,0 +1,103 @@
+// -*- C++ -*-
+
+//============================================================
+/**
+ * @file RoundTrip_exec.h
+ *
+ * Header file for the Executor implementation.
+ *
+ * $Id$
+ *
+ * @author Diego Sevilla <dsevilla@um.es>
+ * @author Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+ */
+//============================================================
+
+#ifndef ROUNDTRIP_EXEC_H
+#define ROUNDTRIP_EXEC_H
+
+#include "RoundTripEIC.h"
+#include "tao/LocalObject.h"
+#include "ace/Thread_Manager.h"
+#include "ace/Task.h"
+
+namespace MyImpl
+{
+
+ /**
+ * @class RoundTrip_exec_i
+ *
+ * RoundTrip executor implementation class.
+ */
+
+ class ROUNDTRIP_EXEC_Export RoundTrip_exec_i :
+ public virtual Benchmark::RoundTrip_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+
+ public:
+ /// Default constructor.
+ RoundTrip_exec_i ();
+
+ /// Operation to test the data
+ virtual CORBA::Long makeCall (CORBA::Long data);
+
+ virtual ::Benchmark::CCM_LatencyTest*
+ get_latency ();
+
+ // 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 ();
+
+ /// Helper function to be called back by timeout_Handler
+ void pulse (void);
+
+ protected:
+
+ /// Destructor.
+ ~RoundTrip_exec_i ();
+
+ protected:
+ /// Copmponent specific context
+ Benchmark::CCM_RoundTrip_Context_var context_;
+
+ };
+
+ /**
+ * @class RoundTripHome_exec_i
+ *
+ * RoundTrip home executor implementation class.
+ */
+ class ROUNDTRIP_EXEC_Export RoundTripHome_exec_i :
+ public virtual Benchmark::CCM_RoundTripHome,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ /// Default ctor.
+ RoundTripHome_exec_i ();
+
+ // Implicit home operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+
+ protected:
+
+ /// Destructor.
+ ~RoundTripHome_exec_i ();
+
+ };
+
+}
+
+extern "C" ROUNDTRIP_EXEC_Export ::Components::HomeExecutorBase_ptr
+createRoundTripHome_Impl (void);
+
+#endif /* ROUNDTRIP_EXEC_H */
diff --git a/modules/CIAO/performance-tests/Benchmark/RoundTrip/client.cpp b/modules/CIAO/performance-tests/Benchmark/RoundTrip/client.cpp
new file mode 100644
index 00000000000..fd67b1290b4
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/RoundTrip/client.cpp
@@ -0,0 +1,174 @@
+// $Id$
+
+//==============================================================
+/**
+ * @file client.cpp
+ *
+ * This is a simple client test program that interact with the RoundTrip
+ * component implementation. The single threaded client issues
+ * two-way operations, the total latency (response time) is measured
+ * NOTE: this client implementation has been adapted from the
+ * $TAO_ROOT/performance-results/Latency/Single_Threaded/
+ *
+ * @author Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+ */
+//==============================================================
+#include "RoundTripC.h"
+#include "ace/Get_Opt.h"
+#include "ace/High_Res_Timer.h"
+#include "ace/Sched_Params.h"
+#include "ace/Stats.h"
+#include "ace/Sample_History.h"
+#include "ace/OS_NS_errno.h"
+#include "ace/Throughput_Stats.h"
+
+const ACE_TCHAR *ior = ACE_TEXT("file://test.ior");
+int niterations = 100;
+int do_dump_history = 0;
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ // Parse arguments.
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("hxk:i:"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'h':
+ do_dump_history = 1;
+ break;
+
+ case 'k':
+ ior = get_opts.opt_arg ();
+ break;
+
+ case 'i':
+ niterations = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+
+ case '?':
+ default:
+ /* Could be any other parameter like -ORBSvcConf file so ignore */
+ break;
+ }
+
+ // Indicates sucessful parsing of the command line
+ return 0;
+}
+
+void
+set_priority ()
+{
+ int priority =
+ (ACE_Sched_Params::priority_min (ACE_SCHED_FIFO)
+ + ACE_Sched_Params::priority_max (ACE_SCHED_FIFO)) / 2;
+ // Enable FIFO scheduling, e.g., RT scheduling class on Solaris.
+
+ if (ACE_OS::sched_params (ACE_Sched_Params (ACE_SCHED_FIFO,
+ priority,
+ ACE_SCOPE_PROCESS)) != 0)
+ {
+ if (ACE_OS::last_error () == EPERM)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "client (%P|%t): user is not superuser, "
+ "test runs in time-shared class\n"));
+ }
+ else
+ ACE_ERROR ((LM_ERROR,
+ "client (%P|%t): sched_params failed\n"));
+ }
+
+}
+
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+ //set priority on the platform
+ set_priority();
+
+ // Initialize orb
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ if (parse_args(argc, argv) == -1)
+ {
+ ACE_DEBUG ((LM_DEBUG, "Error parsing Arguments\n"));
+ return -1;
+ }
+
+ // Resolve HomeFinder interface
+ CORBA::Object_var obj
+ = orb->string_to_object (ior);
+
+ Benchmark::RoundTripHome_var home
+ = Benchmark::RoundTripHome::_narrow (obj.in ());
+
+ if (CORBA::is_nil (home.in ()))
+ ACE_ERROR_RETURN ((LM_ERROR, "Unable to acquire TestHome objref\n"), -1);
+
+ Benchmark::RoundTrip_var test
+ = home->create ();
+
+ //Get the RoundTrip reference
+ Benchmark::LatencyTest_var round_trip = test->provide_latency ();
+
+ //Warmup the System by making some empty calls
+ long start = 0L;
+ for (int j = 0; j < 100; ++j)
+ {
+ round_trip->makeCall (start);
+ }
+
+ ///// Start Test ////////////////////////////////////////////
+ ACE_Sample_History history (niterations);
+
+ ACE_hrtime_t test_start = ACE_OS::gethrtime ();
+ for (int i = 0; i < niterations; ++i)
+ {
+ ACE_hrtime_t start = ACE_OS::gethrtime ();
+
+ //Test value to be sent to the server
+ long test = 0;
+
+ (void) round_trip->makeCall (test);
+
+ ACE_hrtime_t now = ACE_OS::gethrtime ();
+ history.sample (now - start);
+ }
+
+ ACE_hrtime_t test_end = ACE_OS::gethrtime ();
+
+ ACE_DEBUG ((LM_DEBUG, "test finished\n"));
+
+ ACE_DEBUG ((LM_DEBUG, "High resolution timer calibration...."));
+ ACE_UINT32 gsf = ACE_High_Res_Timer::global_scale_factor ();
+ ACE_DEBUG ((LM_DEBUG, "done\n"));
+
+ if (do_dump_history)
+ {
+ history.dump_samples (ACE_TEXT("HISTORY"), gsf);
+ }
+
+ ACE_Basic_Stats stats;
+ history.collect_basic_stats (stats);
+ stats.dump_results (ACE_TEXT("Total"), gsf);
+
+ ACE_Throughput_Stats::dump_throughput (ACE_TEXT("Total"), gsf,
+ test_end - test_start,
+ stats.samples_count ());
+
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Exception Handled:");
+ return 1;
+ }
+
+
+ return 0;
+}
diff --git a/modules/CIAO/performance-tests/Benchmark/RoundTrip/run_test.pl b/modules/CIAO/performance-tests/Benchmark/RoundTrip/run_test.pl
new file mode 100755
index 00000000000..cb2c98e1a75
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/RoundTrip/run_test.pl
@@ -0,0 +1,115 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+#
+# @@ Run this script from ../descriptors/ instead.
+#
+
+use lib "$ENV{'ACE_ROOT'}/bin";
+use PerlACE::Run_Test;
+
+$status = 0;
+$daemon_ior = PerlACE::LocalFile ("daemon.ior");
+$svr_ior = PerlACE::LocalFile ("server.ior");
+$home_ior = PerlACE::LocalFile ("test.ior");
+
+$ACE_ROOT=$ENV{'ACE_ROOT'};
+$CIAO_ROOT=$ENV{'CIAO_ROOT'};
+
+unlink $daemon_ior;
+unlink $svr_ior;
+unlink $home_ior;
+
+# CIAO Daemon command line arguments
+$daemon_args = "-c ../RoundTrip/svc.conf -o $daemon_ior -i CIAO_Installation_Data.ini -n $CIAO_ROOT/tools/ComponentServer/ComponentServer";
+
+# CIAO Daemon Controller location:
+$controller = "$CIAO_ROOT/tools/Daemon/DaemonController";
+
+# Daemon controller common command line arguments
+$common_args = "-ORBInitRef CIAODaemon=file://$daemon_ior";
+
+# Daemon controller start_home command
+$start_args = "start_home -s RoundTrip.csd -m $home_ior -c $svr_ior";
+
+# Daemon controller end_home command
+$end_args = "end_home -c file://$svr_ior";
+
+# Daemon controller shutdown command
+$shutdown_args = "shutdown";
+
+# Client program command line arguments
+$cl_args = "-ORBSvcConf ../RoundTrip/svc.conf -i 300000";
+
+# CIAO daemon process definition
+$DS = new PerlACE::Process ("$CIAO_ROOT/tools/Daemon/CIAO_Daemon",
+ "$daemon_args");
+
+# Client process definition
+$CL = new PerlACE::Process ("../RoundTrip/client",
+ $cl_args);
+
+## Starting up the CIAO daemon
+$DS->Spawn ();
+if (PerlACE::waitforfile_timed ($daemon_ior, $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: Could not find daemon ior file <$daemon_ior>\n";
+ $DS->Kill ();
+ exit 1;
+}
+
+## Starting up a ComponentServer running the Roundtrip home.
+$DC = new PerlACE::Process ("$controller",
+ "$common_args $start_args");
+
+$DC->SpawnWaitKill (60);
+if (PerlACE::waitforfile_timed ($home_ior, $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: Could not find home ior file <$home_ior>\n";
+ $DS->Kill ();
+ exit 1;
+}
+
+$client = $CL->SpawnWaitKill (60);
+
+if ($client != 0) {
+ print STDERR "ERROR: client returned $client\n";
+ $status = 1;
+}
+
+## Terminating the ComponentServer running.
+$DC = new PerlACE::Process ("$controller",
+ "$common_args $end_args");
+
+$ctrl = $DC->SpawnWaitKill (60);
+if ($ctrl != 0) {
+ print STDERR "ERROR: Fail to end component server\n";
+ $DC->Kill ();
+ exit 1;
+}
+
+## Terminating the ComponentServer running the RateGen home.
+$DC = new PerlACE::Process ("$controller",
+ "$common_args $shutdown_args");
+
+$ctrl = $DC->SpawnWaitKill (60);
+if ($ctrl != 0) {
+ print STDERR "ERROR: Fail to shutdown CIAODaemon\n";
+ $DS->Kill ();
+ exit 1;
+}
+
+$ctrl = $DS->WaitKill (60);
+if ($ctrl != 0) {
+ print STDERR "ERROR: CIAODaemon didn't shutdown gracefully $ctrl\n";
+ $DS->Kill ();
+ exit 1;
+}
+
+unlink $daemon_ior;
+unlink $svr_ior;
+unlink $home_ior;
+
+exit $status;
diff --git a/modules/CIAO/performance-tests/Benchmark/RoundTrip/svc.conf b/modules/CIAO/performance-tests/Benchmark/RoundTrip/svc.conf
new file mode 100644
index 00000000000..e1706aae4e5
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/RoundTrip/svc.conf
@@ -0,0 +1,6 @@
+#
+# $Id$
+#
+dynamic Advanced_Resource_Factory Service_Object * TAO_Strategies:_make_TAO_Advanced_Resource_Factory () "-ORBReactorMaskSignals 0 -ORBInputCDRAllocator null -ORBReactorType select_st -ORBConnectionCacheLock null"
+static Server_Strategy_Factory "-ORBPOALock null -ORBAllowReactivationOfSystemids 0"
+static Client_Strategy_Factory "-ORBTransportMuxStrategy EXCLUSIVE -ORBProfileLock null -ORBClientConnectionHandler RW"
diff --git a/modules/CIAO/performance-tests/Benchmark/RoundTripClient/RoundTripClient.idl b/modules/CIAO/performance-tests/Benchmark/RoundTripClient/RoundTripClient.idl
new file mode 100644
index 00000000000..7e96ef6abe2
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/RoundTripClient/RoundTripClient.idl
@@ -0,0 +1,31 @@
+// $Id$
+//=============================================================================
+/**
+ * @file RoundTripClient.idl
+ *
+ * Definition of the Component that uses the LatencyTest interface
+ * provided by RoundTrip component
+ */
+//=============================================================================
+
+#ifndef CIAO_ROUNDTRIPCLIENT_IDL
+#define CIAO_ROUNDTRIPCLIENT_IDL
+
+#include <Components.idl>
+#include "../Benchmark.idl"
+#include "../BenchmarkE.idl"
+
+module Benchmark
+{
+ component RoundTripClient
+ {
+ uses LatencyTest latency;
+ provides Controller controller;
+ };
+
+ home RoundTripClientHome manages RoundTripClient
+ {
+ };
+};
+
+#endif /* CIAO_ROUNDTRIPCLIENT_IDL*/
diff --git a/modules/CIAO/performance-tests/Benchmark/RoundTripClient/RoundTripClient.mpc b/modules/CIAO/performance-tests/Benchmark/RoundTripClient/RoundTripClient.mpc
new file mode 100644
index 00000000000..3a9da26deea
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/RoundTripClient/RoundTripClient.mpc
@@ -0,0 +1,134 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p Benchmark -l .. -c client RoundTripClient"
+
+project(Benchmark_RoundTripClient_idl_gen) : componentidldefaults {
+ after += Benchmark_idl_gen
+ custom_only = 1
+ idlflags += \
+ -Wb,stub_export_macro=ROUNDTRIPCLIENT_STUB_Export \
+ -Wb,stub_export_include=RoundTripClient_stub_export.h \
+ -Wb,skel_export_macro=ROUNDTRIPCLIENT_SVNT_Export \
+ -Wb,skel_export_include=RoundTripClient_svnt_export.h \
+ -Wb,exec_export_macro=ROUNDTRIPCLIENT_EXEC_Export \
+ -Wb,exec_export_include=RoundTripClient_exec_export.h \
+
+ IDL_Files {
+ RoundTripClient.idl
+ }
+}
+
+project(Benchmark_RoundTripClient_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ after += Benchmark_RoundTripClient_idl_gen
+ idlflags += -Wb,export_macro=ROUNDTRIPCLIENT_EXEC_Export \
+ -Wb,export_include=RoundTripClient_exec_export.h \
+ -SS
+
+ IDL_Files {
+ RoundTripClientE.idl
+ RoundTripClientEI.idl << RoundTripClientE.idl
+ }
+}
+
+project(Benchmark_RoundTripClient_stub) : ccm_stub {
+ after += Benchmark_RoundTripClient_idl_gen Benchmark_stub
+ libs += Benchmark_stub
+ libpaths += ..
+ sharedname = RoundTripClient_stub
+ dynamicflags = ROUNDTRIPCLIENT_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ RoundTripClientC.cpp
+ }
+
+ Header_Files {
+ RoundTripClientC.h
+ RoundTripClient_stub_export.h
+ }
+
+ Inline_Files {
+ RoundTripClientC.inl
+ }
+}
+
+project(Benchmark_RoundTripClient_exec) : ciao_executor, avoids_ace_for_tao {
+ after += Benchmark_RoundTripClient_lem_gen Benchmark_RoundTripClient_stub
+ sharedname = RoundTripClient_exec
+ libs += RoundTripClient_stub Benchmark_stub
+ libpaths += ..
+ dynamicflags = ROUNDTRIPCLIENT_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ RoundTripClientEC.cpp
+ RoundTripClientEIC.cpp
+ RoundTripClient_exec.cpp
+ }
+
+ Header_Files {
+ RoundTripClientEC.h
+ RoundTripClientEIC.h
+ RoundTripClient_exec.h
+ RoundTripClient_exec_export.h
+ }
+
+ Inline_Files {
+ RoundTripClientEC.inl
+ RoundTripClientEIC.inl
+ }
+}
+
+
+project(Benchmark_RoundTripClient_svnt) : ciao_servant, avoids_ace_for_tao {
+ after += Benchmark_skel Benchmark_RoundTripClient_exec
+ sharedname = RoundTripClient_svnt
+ libs += RoundTripClient_exec \
+ RoundTripClient_stub \
+ Benchmark_skel \
+ Benchmark_stub
+ libpaths += ..
+ dynamicflags = ROUNDTRIPCLIENT_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ RoundTripClientS.cpp
+ RoundTripClient_svnt.cpp
+ }
+
+ Header_Files {
+ RoundTripClientS.h
+ RoundTripClient_svnt.h
+ RoundTripClient_svnt_export.h
+ }
+
+ Inline_Files {
+ RoundTripClientS.inl
+ }
+}
+
+project (RoundTripClient_client) : ccm_stub, valuetype, avoids_ace_for_tao {
+ exename = client
+ after += Benchmark_RoundTripClient_stub
+ libs += RoundTripClient_stub Benchmark_stub
+ libpaths += ..
+ IDL_Files {
+ }
+
+ Source_Files {
+ client.cpp
+ }
+
+ Header_Files {
+ }
+
+ Inline_Files {
+ }
+}
+
diff --git a/modules/CIAO/performance-tests/Benchmark/RoundTripClient/RoundTripClientEI.idl b/modules/CIAO/performance-tests/Benchmark/RoundTripClient/RoundTripClientEI.idl
new file mode 100644
index 00000000000..784abd168d4
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/RoundTripClient/RoundTripClientEI.idl
@@ -0,0 +1,34 @@
+// $Id$
+
+//=============================================================================
+/**
+ * @file RoundTripClientEI.idl
+ *
+ *
+ * @author
+ */
+//=============================================================================
+
+#ifndef CIAO_ROUNDTRIPCLIENTEI_IDL
+#define CIAO_ROUNDTRIPCLIENTEI_IDL
+
+#include "RoundTripClientE.idl"
+
+module Benchmark
+{
+ /**
+ * @interface RoundTripClient_Exec
+ *
+ * The actually Test executor need to support
+ * Components::SessionComponent interface. Therefore, we need to
+ * define the component executor interface explicitly here.
+ */
+ local interface RoundTripClient_Exec : CCM_RoundTripClient,
+ Components::SessionComponent,
+ CCM_Controller //Monolithic
+ {
+ };
+
+};
+
+#endif /* CIAO_ROUNDTRIPCLIENTEI_IDL */
diff --git a/modules/CIAO/performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec.cpp b/modules/CIAO/performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec.cpp
new file mode 100644
index 00000000000..8896138b6ab
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec.cpp
@@ -0,0 +1,158 @@
+// $Id$
+
+#include "ace/Stats.h"
+#include "ace/Throughput_Stats.h"
+#include "ace/Sample_History.h"
+#include "ace/High_Res_Timer.h"
+#include "ace/Env_Value_T.h"
+#include "ciao/Logger/Log_Macros.h"
+
+#include "RoundTripClient_exec.h"
+
+const int niterations = 100000; //Default no of iterations
+//=================================================================
+
+MyImpl::RoundTripClient_exec_i::RoundTripClient_exec_i ()
+{
+
+}
+
+MyImpl::RoundTripClient_exec_i::~RoundTripClient_exec_i ()
+{
+}
+
+// Operations from Components::SessionComponent
+void
+MyImpl::RoundTripClient_exec_i::set_session_context (
+ Components::SessionContext_ptr ctx)
+{
+ CIAO_DEBUG ((LM_TRACE, CLINFO
+ "MyImpl::RoundTripClient_exec_i::set_session_context\n"));
+
+ //Since this is in collocated mode; The server-component will change the
+ //scheduling strategy to real-time scheduling
+
+ this->context_ =
+ Benchmark::CCM_RoundTripClient_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ throw CORBA::INTERNAL ();
+
+ // Urm, we actually discard exceptions thrown from this operation.
+}
+
+//Start the collocated test here
+void
+MyImpl::RoundTripClient_exec_i::configuration_complete ()
+{
+}
+
+void
+MyImpl::RoundTripClient_exec_i::ccm_activate ()
+{
+ CIAO_DEBUG ((LM_TRACE, CLINFO "MyImpl::RoundTripClient_exec_i::ccm_activate\n"));
+}
+
+void
+MyImpl::RoundTripClient_exec_i::start ()
+{
+ ///////////// Start test /////////////////////////////////////////
+
+ // Let's try to start tests from here...
+ Benchmark::LatencyTest_var lt =
+ context_->get_connection_latency ();
+
+ CIAO_DEBUG ((LM_INFO, CLINFO
+ "MyImpl::RoundTripClient_exec::start obtain obj ref\n"));
+
+ CORBA::Long test_data = 0L;
+
+ //Warm up the system
+ int i = 0;
+ for (i=0; i < 100; i++)
+ lt->makeCall (test_data);
+
+ ACE_DEBUG ((LM_DEBUG, "MyImpl::start: warmed up the system\n"));
+
+ ACE_Sample_History history (niterations);
+
+ ACE_hrtime_t test_start = ACE_OS::gethrtime ();
+ for (i = 0; i < niterations; ++i)
+ {
+ ACE_hrtime_t start = ACE_OS::gethrtime ();
+
+ //Test value to be sent to the server
+ long test = 0;
+
+ (void) lt->makeCall (test);
+
+ ACE_hrtime_t now = ACE_OS::gethrtime ();
+ history.sample (now - start);
+ }
+
+ ACE_hrtime_t test_end = ACE_OS::gethrtime ();
+
+ CIAO_DEBUG ((LM_DEBUG, CLINFO"test finished\n"));
+
+ CIAO_DEBUG ((LM_DEBUG, CLINFO"High resolution timer calibration...."));
+ ACE_UINT32 gsf = ACE_High_Res_Timer::global_scale_factor ();
+ CIAO_DEBUG ((LM_DEBUG, CLINFO"done\n"));
+
+ ACE_Env_Value<int> envar (ACE_TEXT("CIAO_DUMP_SAMPLE_HISTORY"), 0);
+ if (envar != 0)
+ {
+ history.dump_samples (ACE_TEXT("HISTORY"), gsf);
+ }
+
+ ACE_Basic_Stats stats;
+ history.collect_basic_stats (stats);
+ stats.dump_results (ACE_TEXT("Total"), gsf);
+
+ ACE_Throughput_Stats::dump_throughput (ACE_TEXT("Total"),
+ gsf,
+ test_end - test_start,
+ stats.samples_count ());
+
+}
+
+::Benchmark::CCM_Controller_ptr
+MyImpl::RoundTripClient_exec_i::get_controller ()
+{
+ return ::Benchmark::CCM_Controller::_duplicate (this);
+}
+
+
+void
+MyImpl::RoundTripClient_exec_i::ccm_passivate ()
+{
+ CIAO_DEBUG ((LM_TRACE, CLINFO "MyImpl::RoundTripClient_exec_i::ccm_passivate\n"));
+}
+
+void
+MyImpl::RoundTripClient_exec_i::ccm_remove ()
+{
+ CIAO_DEBUG ((LM_TRACE, CLINFO "MyImpl::RoundTripClient_exec_i::ccm_remove\n"));
+}
+
+
+MyImpl::RoundTripClientHome_exec_i::RoundTripClientHome_exec_i ()
+{
+}
+
+MyImpl::RoundTripClientHome_exec_i::~RoundTripClientHome_exec_i ()
+{
+}
+
+::Components::EnterpriseComponent_ptr
+MyImpl::RoundTripClientHome_exec_i::create ()
+{
+ return new MyImpl::RoundTripClient_exec_i;
+}
+
+
+extern "C" ROUNDTRIPCLIENT_EXEC_Export ::Components::HomeExecutorBase_ptr
+createRoundTripClientHome_Impl (void)
+{
+ CIAO_DEBUG ((LM_INFO, CLINFO "Creating RoundTrip_client impl\n"));
+ return new MyImpl::RoundTripClientHome_exec_i ();
+}
diff --git a/modules/CIAO/performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec.h b/modules/CIAO/performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec.h
new file mode 100644
index 00000000000..117ad723c01
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/RoundTripClient/RoundTripClient_exec.h
@@ -0,0 +1,92 @@
+// $Id$
+
+//============================================================
+/**
+ * @file RoundTripClient_exec.h
+ *
+ * Header file for the Executor implementation.
+ *
+ * @author Diego <dsevilla@um.es>
+ * @author Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+ */
+//============================================================
+
+#ifndef BENCHMARK_ROUNDTRIPCLIENT_EXEC_H
+#define BENCHMARK_ROUNDTRIPCLIENT_EXEC_H
+
+#include "RoundTripClientEIC.h"
+#include "tao/LocalObject.h"
+
+
+namespace MyImpl
+{
+
+ /**
+ * @class RoundTripClient_exec_i
+ *
+ * RoundTripClient executor implementation class.
+ */
+
+ class ROUNDTRIPCLIENT_EXEC_Export RoundTripClient_exec_i :
+ public virtual Benchmark::RoundTripClient_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+
+ public:
+ /// Default constructor.
+ RoundTripClient_exec_i ();
+
+ /// Default destructor.
+ ~RoundTripClient_exec_i ();
+
+ // 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 ();
+
+ virtual ::Benchmark::CCM_Controller_ptr
+ get_controller ();
+
+ virtual void start ();
+
+
+ protected:
+ /// Copmponent specific context
+ Benchmark::CCM_RoundTripClient_Context_var context_;
+
+ };
+
+ /**
+ * @class RoundTripClientHome_exec_i
+ *
+ * RoundTripClient home executor implementation class.
+ */
+ class ROUNDTRIPCLIENT_EXEC_Export RoundTripClientHome_exec_i :
+ public virtual Benchmark::CCM_RoundTripClientHome,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ /// Default ctor.
+ RoundTripClientHome_exec_i ();
+
+ /// Default dtor.
+ ~RoundTripClientHome_exec_i ();
+
+ // Implicit home operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+}
+
+extern "C" ROUNDTRIPCLIENT_EXEC_Export ::Components::HomeExecutorBase_ptr
+createRoundTripClientHome_Impl (void);
+
+#endif /* CIAO_ROUNDTRIPCLIENTGEN_EXEC_H */
diff --git a/modules/CIAO/performance-tests/Benchmark/RoundTripClient/client.cpp b/modules/CIAO/performance-tests/Benchmark/RoundTripClient/client.cpp
new file mode 100644
index 00000000000..5d75029d1bb
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/RoundTripClient/client.cpp
@@ -0,0 +1,49 @@
+// $Id$
+
+//==============================================================
+/**
+ * @file client.cpp
+ *
+ * This is a simple client test program that interact with the RoundTrip
+ * component implementation. The single threaded client issues
+ * two-way operations, the total latency (response time) is measured
+ * NOTE: this client implementation has been adapted from the
+ * $TAO_ROOT/performance-results/Latency/Single_Threaded/
+ *
+ * @author Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+ */
+//==============================================================
+#include "RoundTripClientC.h"
+
+const char *ior = "file://test.ior";
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+
+ // Initialize orb
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ // Resolve HomeFinder interface
+ CORBA::Object_var obj
+ = orb->string_to_object (ior);
+ Benchmark::RoundTripClient_var test =
+ Benchmark::RoundTripClient::_narrow(obj.in());
+ //Get the RoundTrip reference
+ Benchmark::Controller_var trigger = test->provide_controller ();
+
+ //Send a trigger to start the test
+ trigger->start();
+
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Exception Handled:");
+ return 1;
+ }
+
+
+ return 0;
+}
diff --git a/modules/CIAO/performance-tests/Benchmark/RoundTripClient/run_test.pl b/modules/CIAO/performance-tests/Benchmark/RoundTripClient/run_test.pl
new file mode 100755
index 00000000000..dc6ac7c8ea1
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/RoundTripClient/run_test.pl
@@ -0,0 +1,103 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+#
+# @@ Run this script from ../descriptors/ instead.
+#
+
+use lib "$ENV{'ACE_ROOT'}/bin";
+use PerlACE::Run_Test;
+
+$status = 0;
+$daemon_ior = PerlACE::LocalFile ("daemon.ior");
+$am_ior = PerlACE::LocalFile ("am.ior");
+
+$ACE_ROOT=$ENV{'ACE_ROOT'};
+$CIAO_ROOT=$ENV{'CIAO_ROOT'};
+
+if ($CIAO_ROOT eq "") {
+ $CIAO_ROOT="$ACE_ROOT/TAO/CIAO";
+}
+
+unlink $daemon_ior;
+unlink $am_ior;
+
+
+# CIAO Daemon command line arguments
+$daemon_args1 = "-ORBEndpoint iiop://localhost:10000 -o $daemon_ior -i CIAO_Installation_Data.ini -n $CIAO_ROOT/tools/ComponentServer/ComponentServer";
+
+#CIAO Daemond Remote command line arguments
+$daemon_args2 = "-ORBEndpoint iiop://localhost:12000 -o $daemon_ior -i CIAO_Installation_Data.ini -n $CIAO_ROOT/tools/ComponentServer/ComponentServer";
+
+$assembly_manager_args = "-o $am_ior -c test.dat";
+
+$ad_args = " -k file://$am_ior -a RoundTripClient.cad";
+
+# CIAO daemon process definition
+$DS = new PerlACE::Process ("$CIAO_ROOT/tools/Daemon/CIAO_Daemon",
+ "$daemon_args1");
+
+## Starting up the CIAO daemon
+$DS->Spawn ();
+if (PerlACE::waitforfile_timed ($daemon_ior, $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: Could not find daemon ior file <$daemon_ior>\n";
+ $DS->Kill ();
+ exit 1;
+}
+
+# CIAO daemon process definition
+$DS2 = new PerlACE::Process ("$CIAO_ROOT/tools/Daemon/CIAO_Daemon",
+ "$daemon_args2");
+
+## Starting up the CIAO daemon
+$DS2->Spawn ();
+if (PerlACE::waitforfile_timed ($daemon_ior, $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: Could not find daemon ior file <$daemon_ior>\n";
+ $DS->Kill ();
+ exit 1;
+}
+
+$AM = new PerlACE::Process("$CIAO_ROOT/tools/Assembly_Deployer/Assembly_Manager",
+ $assembly_manager_args);
+$AM->Spawn ();
+if (PerlACE::waitforfile_timed ($am_ior, $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: Could not find assembly ior file <$am_ior>\n";
+ $AM->Kill ();
+ exit 1;
+}
+
+$AD = new PerlACE::Process("$CIAO_ROOT/tools/Assembly_Deployer/Assembly_Deployer",
+ $ad_args);
+$AD->Spawn ();
+
+sleep (5);
+
+#Start the client to send the trigger message
+$CL = new PerlACE::Process ("../RoundTripClient/client", "");
+$CL->SpawnWaitKill(60);
+
+#$ctrl = $DS->WaitKill (5);
+#$AM->WaitKill(5);
+#$AD->WaitKill(5);
+
+$AM->Kill ();
+$AD->Kill ();
+$DS->Kill ();
+$DS2->Kill();
+
+#if ($ctrl != 0) {
+# print STDERR "ERROR: CIAODaemon didn't shutdown gracefully $ctrl\n";
+# $DS->Kill ();
+# exit 1;
+#}
+
+$CL->Kill ();
+
+unlink $daemon_ior;
+unlink $am_ior;
+
+exit $status;
diff --git a/modules/CIAO/performance-tests/Benchmark/RoundTripClient/run_test_ior_cad.pl b/modules/CIAO/performance-tests/Benchmark/RoundTripClient/run_test_ior_cad.pl
new file mode 100755
index 00000000000..eba3cc1d6cb
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/RoundTripClient/run_test_ior_cad.pl
@@ -0,0 +1,78 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+#
+# @@ Run this script from ../descriptors/ instead.
+#
+
+use lib "$ENV{'ACE_ROOT'}/bin";
+use PerlACE::Run_Test;
+
+$status = 0;
+$daemon_ior = PerlACE::LocalFile ("daemon.ior");
+$am_ior = PerlACE::LocalFile ("am.ior");
+
+$ACE_ROOT=$ENV{'ACE_ROOT'};
+$CIAO_ROOT=$ENV{'CIAO_ROOT'};
+
+if ($CIAO_ROOT eq "") {
+ $CIAO_ROOT="$ACE_ROOT/TAO/CIAO";
+}
+
+unlink $daemon_ior;
+unlink $am_ior;
+
+
+# CIAO Daemon command line arguments
+$daemon_args = "-c $CIAO_ROOT/performance-tests/Benchmark/RoundTrip/svc.conf -ORBEndpoint iiop://localhost:10000 -o $daemon_ior -i CIAO_Installation_Data.ini -n $CIAO_ROOT/tools/ComponentServer/ComponentServer";
+
+$assembly_manager_args = "-o $am_ior -c test.dat";
+
+$ad_args = " -k file://$am_ior -a Test-IOR.cad";
+
+# CIAO daemon process definition
+$DS = new PerlACE::Process ("$CIAO_ROOT/tools/Daemon/CIAO_Daemon",
+ "$daemon_args");
+
+## Starting up the CIAO daemon
+$DS->Spawn ();
+if (PerlACE::waitforfile_timed ($daemon_ior, $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: Could not find daemon ior file <$daemon_ior>\n";
+ $DS->Kill ();
+ exit 1;
+}
+
+
+$AM = new PerlACE::Process("$CIAO_ROOT/tools/Assembly_Deployer/Assembly_Manager",
+ $assembly_manager_args);
+$AM->Spawn ();
+if (PerlACE::waitforfile_timed ($am_ior, $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: Could not find assembly ior file <$am_ior>\n";
+ $AM->Kill ();
+ exit 1;
+}
+
+$AD = new PerlACE::Process("$CIAO_ROOT/tools/Assembly_Deployer/Assembly_Deployer",
+ $ad_args);
+$AD->Spawn ();
+
+sleep (5);
+
+#Start the client to send the trigger message
+$CL = new PerlACE::Process ("../RoundTripClient/client", "");
+$CL->SpawnWaitKill(60);
+
+$AM->Kill ();
+$AD->Kill ();
+$DS->Kill ();
+#$CL->Kill ();
+
+#unlink $daemon_ior;
+#unlink $am_ior;
+unlink rtserver.ior;
+
+exit $status;
diff --git a/modules/CIAO/performance-tests/Benchmark/RoundTripServer/LatencyTest.cpp b/modules/CIAO/performance-tests/Benchmark/RoundTripServer/LatencyTest.cpp
new file mode 100644
index 00000000000..148ee21df79
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/RoundTripServer/LatencyTest.cpp
@@ -0,0 +1,25 @@
+//
+// $Id$
+//
+#include "LatencyTest.h"
+#include "ciao/Logger/Log_Macros.h"
+
+LatencyTest_Impl::LatencyTest_Impl (CORBA::ORB_ptr orb)
+ : orb_ (CORBA::ORB::_duplicate (orb))
+{
+}
+
+
+CORBA::Long
+LatencyTest_Impl::makeCall (CORBA::Long send_time)
+{
+ CIAO_DEBUG ((LM_DEBUG, CLINFO"Sending Time back\n"));
+
+ return send_time;
+}
+
+void
+LatencyTest_Impl::shutdown ()
+{
+ this->orb_->shutdown (0);
+}
diff --git a/modules/CIAO/performance-tests/Benchmark/RoundTripServer/LatencyTest.h b/modules/CIAO/performance-tests/Benchmark/RoundTripServer/LatencyTest.h
new file mode 100644
index 00000000000..e2dbaf7cc0e
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/RoundTripServer/LatencyTest.h
@@ -0,0 +1,40 @@
+//
+// $Id$
+//
+
+#ifndef LATENCYTEST_H
+#define LATENCYTEST_H
+#include /**/ "ace/pre.h"
+
+#include "../BenchmarkS.h"
+
+#if defined (_MSC_VER)
+# pragma warning(push)
+# pragma warning (disable:4250)
+#endif /* _MSC_VER */
+
+/// Implement the Test::LatencyTest interface
+class LatencyTest_Impl :
+ public virtual POA_Benchmark::LatencyTest
+{
+public:
+ /// Constructor
+ LatencyTest_Impl (CORBA::ORB_ptr orb);
+
+ // = The skeleton methods
+ virtual CORBA::Long makeCall (CORBA::Long send_time);
+
+ virtual void shutdown ();
+
+private:
+ /// Use an ORB reference to conver strings to objects and shutdown
+ /// the application.
+ CORBA::ORB_var orb_;
+};
+
+#if defined(_MSC_VER)
+# pragma warning(pop)
+#endif /* _MSC_VER */
+
+#include /**/ "ace/post.h"
+#endif /* LATENCYTEST_H */
diff --git a/modules/CIAO/performance-tests/Benchmark/RoundTripServer/RoundTripServer.mpc b/modules/CIAO/performance-tests/Benchmark/RoundTripServer/RoundTripServer.mpc
new file mode 100644
index 00000000000..5c824ef9072
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/RoundTripServer/RoundTripServer.mpc
@@ -0,0 +1,22 @@
+// $Id$
+project (RoundTrip_server) : strategies, ciao_executor {
+ exename = server
+ after += Benchmark_skel
+ libs += Benchmark_stub Benchmark_skel
+ libpaths += ..
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ server.cpp
+ LatencyTest.cpp
+ }
+
+ Header_Files {
+ LatencyTest.h
+ }
+
+ Inline_Files {
+ }
+}
diff --git a/modules/CIAO/performance-tests/Benchmark/RoundTripServer/Test.idl b/modules/CIAO/performance-tests/Benchmark/RoundTripServer/Test.idl
new file mode 100644
index 00000000000..b7f83dbedd8
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/RoundTripServer/Test.idl
@@ -0,0 +1,16 @@
+//
+// $Id$
+//
+
+/// Measure roundtrip delay
+interface LatencyTest
+{
+ /// A simple method to measure roundtrip delays
+ /**
+ * The operation simply returns its argument, this is used in AMI
+ * and deferred synchronous tests to measure the roundtrip delay
+ * without the need for a different reply handler for each
+ * request.
+ */
+ long makeCall (in long send_time);
+};
diff --git a/modules/CIAO/performance-tests/Benchmark/RoundTripServer/server.cpp b/modules/CIAO/performance-tests/Benchmark/RoundTripServer/server.cpp
new file mode 100644
index 00000000000..a41e38aa6f9
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/RoundTripServer/server.cpp
@@ -0,0 +1,94 @@
+// $Id$
+
+#include "LatencyTest.h"
+#include "ace/Sched_Params.h"
+#include "ace/OS_NS_errno.h"
+
+const char *ior_output_file = "rtserver.ior";
+
+int
+ACE_TMAIN(int argc, ACE_TCHAR *argv[])
+{
+ int priority =
+ (ACE_Sched_Params::priority_min (ACE_SCHED_FIFO)
+ + ACE_Sched_Params::priority_max (ACE_SCHED_FIFO)) / 2;
+ priority = ACE_Sched_Params::next_priority (ACE_SCHED_FIFO,
+ priority);
+ // Enable FIFO scheduling, e.g., RT scheduling class on Solaris.
+
+ if (ACE_OS::sched_params (ACE_Sched_Params (ACE_SCHED_FIFO,
+ priority,
+ ACE_SCOPE_PROCESS)) != 0)
+ {
+ if (ACE_OS::last_error () == EPERM)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "server (%P|%t): user is not superuser, "
+ "test runs in time-shared class\n"));
+ }
+ else
+ ACE_ERROR ((LM_ERROR,
+ "server (%P|%t): sched_params failed\n"));
+ }
+
+ try
+ {
+ CORBA::ORB_var orb =
+ CORBA::ORB_init (argc, argv);
+
+ CORBA::Object_var poa_object =
+ orb->resolve_initial_references("RootPOA");
+
+ if (CORBA::is_nil (poa_object.in ()))
+ ACE_ERROR_RETURN ((LM_ERROR,
+ " (%P|%t) Unable to initialize the POA.\n"),
+ 1);
+
+ PortableServer::POA_var root_poa =
+ PortableServer::POA::_narrow (poa_object.in ());
+
+ PortableServer::POAManager_var poa_manager =
+ root_poa->the_POAManager ();
+
+ LatencyTest_Impl *roundtrip_impl;
+ ACE_NEW_RETURN (roundtrip_impl,
+ LatencyTest_Impl (orb.in ()),
+ 1);
+ PortableServer::ServantBase_var owner_transfer(roundtrip_impl);
+
+ Benchmark::LatencyTest_var roundtrip =
+ roundtrip_impl->_this ();
+
+ CORBA::String_var ior =
+ orb->object_to_string (roundtrip.in ());
+
+ // If the ior_output_file exists, output the ior to it
+ FILE *output_file= ACE_OS::fopen (ior_output_file, "w");
+ if (output_file == 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Cannot open output file for writing IOR: %s",
+ ior_output_file),
+ 1);
+ ACE_OS::fprintf (output_file, "%s", ior.in ());
+ ACE_OS::fclose (output_file);
+
+ ACE_DEBUG ((LM_DEBUG, "%s", ior.in ()));
+
+ poa_manager->activate ();
+
+ orb->run ();
+
+ ACE_DEBUG ((LM_DEBUG, "(%P|%t) server - event loop finished\n"));
+
+ root_poa->destroy (1, 1);
+
+ orb->destroy ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Exception caught:");
+ return 1;
+ }
+
+ return 0;
+}
diff --git a/modules/CIAO/performance-tests/Benchmark/descriptors/Benchmark.cad b/modules/CIAO/performance-tests/Benchmark/descriptors/Benchmark.cad
new file mode 100644
index 00000000000..6ab0dd70aa0
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/descriptors/Benchmark.cad
@@ -0,0 +1,34 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE componentassembly SYSTEM "http://www.dre.vanderbilt.edu/CIAO/DTD/componentassembly.dtd">
+
+<componentassembly id="Single-process Basic assembly">
+ <componentfiles>
+ <componentfile id="com-RoundTrip">
+ <fileinarchive name="RoundTrip.csd"/>
+ </componentfile>
+ </componentfiles>
+
+ <partitioning>
+
+ <!-- A plain vanilla partition. We don't even need the processcollocation tag here. -->
+ <homeplacement id="a_RoundTripHome">
+ <componentfileref idref="com-RoundTrip"/>
+ <componentinstantiation id="a_RoundTrip">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="test.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+
+ </partitioning>
+
+ <!--
+ <connections>
+ </connections>
+ -->
+
+</componentassembly>
diff --git a/modules/CIAO/performance-tests/Benchmark/descriptors/CIAO_Installation_Data.ini b/modules/CIAO/performance-tests/Benchmark/descriptors/CIAO_Installation_Data.ini
new file mode 100644
index 00000000000..ffe36ca3422
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/descriptors/CIAO_Installation_Data.ini
@@ -0,0 +1,5 @@
+[ComponentInstallation]
+DCE:cf88cb97-b5a8-4522-9fa3-e626c75c5470=RoundTripClient_svnt
+DCE:568a3872-f7bb-4b3f-baba-44c6824d966d=RoundTripClient_exec
+DCE:2498aa68-09aa-478c-8ae1-30ed67924f82=RoundTrip_exec
+DCE:88c14bff-5158-4f48-9b22-8a1120e87f76=RoundTrip_svnt
diff --git a/modules/CIAO/performance-tests/Benchmark/descriptors/Multi_Threaded.cad b/modules/CIAO/performance-tests/Benchmark/descriptors/Multi_Threaded.cad
new file mode 100644
index 00000000000..0c0be0cb71c
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/descriptors/Multi_Threaded.cad
@@ -0,0 +1,112 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE componentassembly SYSTEM "http://www.dre.vanderbilt.edu/CIAO/DTD/componentassembly.dtd">
+<componentassembly id="Multi-client Component Scalability test">
+ <componentfiles>
+ <componentfile id="com-RoundTrip">
+ <fileinarchive name="RoundTrip.csd"/>
+ </componentfile>
+ <componentfile id="com-RoundTripClient">
+ <fileinarchive name="RoundTripClient.csd"/>
+ </componentfile>
+ </componentfiles>
+
+ <partitioning>
+
+ <homeplacement id="a_RoundTripHome">
+ <componentfileref idref="com-RoundTrip"/>
+ <componentinstantiation id="a_RoundTrip"/>
+ </homeplacement>
+
+ <processcollocation>
+ <homeplacement id="a_RoundTripClientHome">
+ <componentfileref idref="com-RoundTripClient"/>
+ <componentinstantiation id="a_RoundTripClient">
+ <registercomponent>
+ <writeiortofile name="comp1.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+
+
+ <homeplacement id="b_RoundTripClientHome">
+ <componentfileref idref="com-RoundTripClient"/>
+ <componentinstantiation id="b_RoundTripClient">
+ <registercomponent>
+ <writeiortofile name="comp2.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+
+ <homeplacement id="c_RoundTripClientHome">
+ <componentfileref idref="com-RoundTripClient"/>
+ <componentinstantiation id="c_RoundTripClient">
+ <registercomponent>
+ <writeiortofile name="comp3.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+
+
+ <homeplacement id="d_RoundTripClientHome">
+ <componentfileref idref="com-RoundTripClient"/>
+ <componentinstantiation id="d_RoundTripClient">
+ <registercomponent>
+ <writeiortofile name="comp4.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+ <destination>Remote</destination>
+ </processcollocation>
+
+ </partitioning>
+
+
+ <connections>
+ <connectinterface>
+ <usesport>
+ <usesidentifier>latency</usesidentifier>
+ <componentinstantiationref idref="a_RoundTripClient"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>latency</providesidentifier>
+ <componentinstantiationref idref="a_RoundTrip"/>
+ </providesport>
+ </connectinterface>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>latency</usesidentifier>
+ <componentinstantiationref idref="b_RoundTripClient"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>latency</providesidentifier>
+ <componentinstantiationref idref="a_RoundTrip"/>
+ </providesport>
+ </connectinterface>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>latency</usesidentifier>
+ <componentinstantiationref idref="c_RoundTripClient"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>latency</providesidentifier>
+ <componentinstantiationref idref="a_RoundTrip"/>
+ </providesport>
+ </connectinterface>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>latency</usesidentifier>
+ <componentinstantiationref idref="d_RoundTripClient"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>latency</providesidentifier>
+ <componentinstantiationref idref="a_RoundTrip"/>
+ </providesport>
+ </connectinterface>
+ </connections>
+</componentassembly>
diff --git a/modules/CIAO/performance-tests/Benchmark/descriptors/NOTE.txt b/modules/CIAO/performance-tests/Benchmark/descriptors/NOTE.txt
new file mode 100644
index 00000000000..7bcd2fbfade
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/descriptors/NOTE.txt
@@ -0,0 +1,65 @@
+This directory contains various XML descriptors and configuration
+files required to run benchmarking experiments using CIAO in
+different ways. Let's go over a few important files first:
+
+test.dat:
+---------
+
+ This file describes the deployment daemons CIAO's Assembly_Manager
+ will contact to instantiate ComponentServer's, home's, and component
+ instances. Each line specify the name of a installation
+ "destination" (I used this to specify <processcollocation>
+ destination in various *.cad files) and the corresponding IOR for
+ the CIAO_Daemon. The first entry is the "default" destination the
+ deployment framework will use.
+
+ For example, test.dat now contains:
+
+ Default corbaloc:iiop:localhost:10000/ServerActivator
+ Remote corbaloc:iiop:localhost:12000/ServerActivator
+
+ You can copy and modify the copy to deploy the components in various
+ different locations to let the application truely "distributed".
+ For example, changing the remote ServerActivator to:
+ corbaloc:iiop:deuce.doc.wustl.edu:13000/ServerActivator
+
+ Remember to start up the Assembly_Manager in Step 2 using the
+ revised "test.dat" you created, and start up the CIAO_Daemon's in
+ Step 1 according to the specification.
+
+*.cad:
+------
+
+ These files specify how an application should be composed. The
+ specification includes, where to install a component, what
+ implementation to use, and how to connect components together.
+ Currently, we have:
+
+ Benchmark.cad: Plain vanilla assembly descriptor. This file installs
+ the RoundTrip component on the location given in test.dat.
+ RoundTripClient.cad : A descriptor file for the client component
+ RoundTripClient that uses the interface provided by
+ RoundTrip.
+ Test-IOR.cad: This cad file should be used to for testing a CORBA server
+ with a CIAO client. The IOR of the server should added in
+ this file.
+
+There are automated perl scripts that can run the tests to generate the
+required results. These are located in the individual component directories
+Round Trip and RoundTripClient. The descriptors directory has the required
+.cad files that specify the component configuration used in the various
+experiments.
+
+To run a simple CORBA component with a normal client:
+ cd descriptors;
+ ../Roundtrip/run_test.pl
+
+ cd descritors;
+ ../RoundTripClient/run_test.pl
+ Script that runs two components one acts as a client and the other as the
+ server. Statistics are printed for RoundTrip latency jitter etc
+
+ cd descritors;
+ ../RoundTripClient/run_test_ior_cad.pl
+ Script runs a CORBA server and a CIAO component that acts as a client.
+ Similar statistics are printed.
diff --git a/modules/CIAO/performance-tests/Benchmark/descriptors/RoundTrip.csd b/modules/CIAO/performance-tests/Benchmark/descriptors/RoundTrip.csd
new file mode 100644
index 00000000000..ebf8c4e1e15
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/descriptors/RoundTrip.csd
@@ -0,0 +1,46 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+
+<!DOCTYPE softpkg SYSTEM "http://www.dre.vanderbilt.edu/CIAO/DTD/softpkg.dtd">
+
+<!-- RoundTrip's Software Package Descriptor -->
+<!-- This file describes various RoundTrip executor -->
+<!-- implementations. -->
+
+<softpkg name="CIAO-TEST" version="1.0">
+ <pkgtype>CORBA Component</pkgtype>
+ <title>RoundTrip</title>
+ <author>
+ <company>ISIS at Vanderbilt University</company>
+ <webpage href="http://www.dre.vanderbilt.edu/"/>
+ </author>
+ <description>A RoundTrip component.</description>
+ <license href="http://www.cs.wustl.edu/~schmidt/ACE-copying.html"/>
+ <idl id="IDL:Benchmark/RoundTrip:1.0" homeid="IDL:Benchmark/RoundTripHome:1.0">
+ <fileinarchive name="RoundTrip.idl"/>
+ </idl>
+ <descriptor type="CORBA Component">
+ <fileinarchive name="RoundTrip.ccd"/>
+ </descriptor>
+ <implementation id="DCE:2498aa68-09aa-478c-8ae1-30ed67924f82">
+
+ <!-- CIAO extension -->
+ <dependency type="CIAODLL">
+ <softpkgref>
+ <!-- .ssd stands for Servant Software Descriptors which is a CIAO extension -->
+ <fileinarchive name="RoundTrip.ssd"/>
+ <implref idref="DCE:88c14bff-5158-4f48-9b22-8a1120e87f76"/>
+ </softpkgref>
+ </dependency>
+
+ <code type="DLL">
+ <!-- No need to specify extension below since ACE takes care of that, -->
+ <fileinarchive name="RoundTrip_exec"/>
+ <entrypoint>createRoundTripHome_Impl</entrypoint>
+ </code>
+
+ </implementation>
+
+</softpkg>
diff --git a/modules/CIAO/performance-tests/Benchmark/descriptors/RoundTrip.ssd b/modules/CIAO/performance-tests/Benchmark/descriptors/RoundTrip.ssd
new file mode 100644
index 00000000000..b9720b9f2f1
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/descriptors/RoundTrip.ssd
@@ -0,0 +1,43 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+
+<!DOCTYPE softpkg SYSTEM "http://www.dre.vanderbilt.edu/CIAO/DTD/softpkg.dtd">
+
+<!-- RoundTrip's Servant Software Descriptor -->
+<!-- This file describes various RoundTrip servant -->
+<!-- implementations. -->
+
+<softpkg name="CIAO-RoundTrip-Servant" version="1.0">
+ <pkgtype>CIAO Servant</pkgtype>
+ <title>Benchmark::RoundTrip Servants</title>
+ <author>
+ <company>ISIS at Vanderbilt University</company>
+ <webpage href="http://www.dre.vanderbilt.edu/"/>
+ </author>
+ <description>Single-Threaded Latency test component for benchmarking.</description>
+ <license href="http://www.cs.wustl.edu/~schmidt/ACE-copying.html"/>
+ <idl id="IDL:Benchmark/RoundTrip:1.0" homeid="IDL:Benchmark/RoundTripHome:1.0">
+ <fileinarchive name="RoundTrip.idl"/>
+ </idl>
+
+ <descriptor type="CORBA Component">
+ <fileinarchive name="RoundTrip.ccd"/>
+ </descriptor>
+
+ <implementation id="DCE:88c14bff-5158-4f48-9b22-8a1120e87f76">
+
+ <dependency type="ORB">
+ <name>TAO</name>
+ </dependency>
+
+ <code>
+ <!-- No need to specify extension below since ACE takes care of that, -->
+ <fileinarchive name="RoundTrip_svnt"/>
+ <entrypoint>createRoundTripHome_Servant</entrypoint>
+ </code>
+
+ </implementation>
+
+</softpkg>
diff --git a/modules/CIAO/performance-tests/Benchmark/descriptors/RoundTripClient.cad b/modules/CIAO/performance-tests/Benchmark/descriptors/RoundTripClient.cad
new file mode 100644
index 00000000000..d53416195a2
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/descriptors/RoundTripClient.cad
@@ -0,0 +1,49 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE componentassembly SYSTEM "http://www.dre.vanderbilt.edu/CIAO/DTD/componentassembly.dtd">
+<componentassembly id="Collocated Round-Trip test">
+ <componentfiles>
+ <componentfile id="com-RoundTrip">
+ <fileinarchive name="RoundTrip.csd"/>
+ </componentfile>
+ <componentfile id="com-RoundTripClient">
+ <fileinarchive name="RoundTripClient.csd"/>
+ </componentfile>
+ </componentfiles>
+
+ <partitioning>
+
+<homeplacement id="a_RoundTripHome">
+ <componentfileref idref="com-RoundTrip"/>
+ <componentinstantiation id="a_RoundTrip"/>
+ </homeplacement>
+
+<homeplacement id="a_RoundTripClientHome">
+ <componentfileref idref="com-RoundTripClient"/>
+ <componentinstantiation id="a_RoundTripClient">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="test.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+ <!-- A plain vanilla partition. We don't even need the processcollocation tag here. -->
+
+ </partitioning>
+
+ <connections>
+ <connectinterface>
+ <usesport>
+ <usesidentifier>latency</usesidentifier>
+ <componentinstantiationref idref="a_RoundTripClient"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>latency</providesidentifier>
+ <componentinstantiationref idref="a_RoundTrip"/>
+ </providesport>
+ </connectinterface>
+ </connections>
+
+</componentassembly>
diff --git a/modules/CIAO/performance-tests/Benchmark/descriptors/RoundTripClient.csd b/modules/CIAO/performance-tests/Benchmark/descriptors/RoundTripClient.csd
new file mode 100644
index 00000000000..c52288e3207
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/descriptors/RoundTripClient.csd
@@ -0,0 +1,44 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE softpkg SYSTEM "http://www.dre.vanderbilt.edu/CIAO/DTD/softpkg.dtd">
+<!-- RoundTripClient's Software Package Descriptor -->
+<!-- This file describes various RoundTripClient executor -->
+<!-- implementations. -->
+
+
+<softpkg name="CIAO-TEST" version="1.0">
+ <pkgtype>CORBA Component</pkgtype>
+ <title>RoundTripClient</title>
+ <author>
+ <company>ISIS at Vanderbilt University</company>
+ <webpage href="http://www.dre.vanderbilt.edu/"/>
+ </author>
+ <description>A RoundTripClient component.</description>
+ <license href="http://www.cs.wustl.edu/~schmidt/ACE-copying.html"/>
+ <idl id="IDL:Benchmark/RoundTripClient:1.0" homeid="IDL:Benchmark/RoundTripClientHome:1.0">
+ <fileinarchive name="RoundTripClient.idl"/>
+ </idl>
+ <descriptor type="CORBA Component">
+ <fileinarchive name="RoundTripClient.ccd"/>
+ </descriptor>
+ <implementation id="DCE:568a3872-f7bb-4b3f-baba-44c6824d966d">
+
+ <!-- CIAO extension -->
+ <dependency type="CIAODLL">
+ <softpkgref>
+ <!-- .ssd stands for Servant Software Descriptors which is a CIAO extension -->
+ <fileinarchive name="RoundTripClient.ssd"/>
+ <implref idref="DCE:cf88cb97-b5a8-4522-9fa3-e626c75c5470"/>
+ </softpkgref>
+ </dependency>
+
+ <code type="DLL">
+ <!-- No need to specify extension below since ACE takes care of that, -->
+ <fileinarchive name="RoundTripClient_exec"/>
+ <entrypoint>createRoundTripClientHome_Impl</entrypoint>
+ </code>
+ </implementation>
+
+</softpkg>
diff --git a/modules/CIAO/performance-tests/Benchmark/descriptors/RoundTripClient.ssd b/modules/CIAO/performance-tests/Benchmark/descriptors/RoundTripClient.ssd
new file mode 100644
index 00000000000..86397731ed2
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/descriptors/RoundTripClient.ssd
@@ -0,0 +1,39 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE softpkg SYSTEM "http://www.dre.vanderbilt.edu/CIAO/DTD/softpkg.dtd">
+<!-- RoundTripClient's Servant Software Descriptor -->
+<!-- This file describes various RoundTripClient servant -->
+<!-- implementations. -->
+
+<softpkg name="CIAO-RoundTripClient-Servant" version="1.0">
+ <pkgtype>CIAO Servant</pkgtype>
+ <title>Benchmark::RoundTripClient Servants</title>
+ <author>
+ <company>ISIS at Vanderbilt University</company>
+ <webpage href="http://www.dre.vanderbilt.edu/"/>
+ </author>
+ <description>Single-Threaded Latency test component for benchmarking.</description>
+ <license href="http://www.cs.wustl.edu/~schmidt/ACE-copying.html"/>
+ <idl id="IDL:Benchmark/RoundTripClient:1.0" homeid="IDL:Benchmark/RoundTripClientHome:1.0">
+ <fileinarchive name="RoundTripClient.idl"/>
+ </idl>
+
+ <descriptor type="CORBA Component">
+ <fileinarchive name="RoundTripClient.ccd"/>
+ </descriptor>
+
+ <implementation id="DCE:cf88cb97-b5a8-4522-9fa3-e626c75c5470">
+
+ <dependency type="ORB">
+ <name>TAO</name>
+ </dependency>
+
+ <code>
+ <!-- No need to specify extension below since ACE takes care of that, -->
+ <fileinarchive name="RoundTripClient_svnt"/>
+ <entrypoint>createRoundTripClientHome_Servant</entrypoint>
+ </code>
+ </implementation>
+</softpkg>
diff --git a/modules/CIAO/performance-tests/Benchmark/descriptors/Test-IOR.cad b/modules/CIAO/performance-tests/Benchmark/descriptors/Test-IOR.cad
new file mode 100644
index 00000000000..a917affec85
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/descriptors/Test-IOR.cad
@@ -0,0 +1,41 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE componentassembly SYSTEM "http://www.dre.vanderbilt.edu/CIAO/DTD/componentassembly.dtd">
+
+<componentassembly id="Single-process Basic assembly">
+ <componentfiles>
+ <componentfile id="com-RoundTripClient">
+ <fileinarchive name="RoundTripClient.csd"/>
+ </componentfile>
+ </componentfiles>
+
+ <partitioning>
+ <homeplacement id="a_RoundTripClientHome">
+ <componentfileref idref="com-RoundTripClient"/>
+ <componentinstantiation id="a_RoundTripClient">
+ <registercomponent>
+ <!-- writeiortofile is a non-standard CIAO extension. -->
+ <writeiortofile name="test.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+ </partitioning>
+
+<connections>
+ <connectinterface>
+ <usesport>
+ <usesidentifier>latency</usesidentifier>
+ <componentinstantiationref idref="a_RoundTripClient"/>
+ </usesport>
+ <existinginterface>
+ <findby>
+ <!-- One needs to add the correct IOR of the server here -->
+ <stringifiedobjectref>file://rtserver.ior</stringifiedobjectref>
+ </findby>
+ </existinginterface>
+ </connectinterface>
+</connections>
+
+</componentassembly>
diff --git a/modules/CIAO/performance-tests/Benchmark/descriptors/test-multi-process.dat b/modules/CIAO/performance-tests/Benchmark/descriptors/test-multi-process.dat
new file mode 100644
index 00000000000..1570574903b
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/descriptors/test-multi-process.dat
@@ -0,0 +1,5 @@
+Default corbaloc:iiop:localhost:10000/ServerActivator
+Remote1 corbaloc:iiop:localhost:12000/ServerActivator
+Remote2 corbaloc:iiop:localhost:13000/ServerActivator
+Remote3 corbaloc:iiop:localhost:14000/ServerActivator
+Remote4 corbaloc:iiop:localhost:15000/ServerActivator \ No newline at end of file
diff --git a/modules/CIAO/performance-tests/Benchmark/descriptors/test.dat b/modules/CIAO/performance-tests/Benchmark/descriptors/test.dat
new file mode 100644
index 00000000000..d26b3d4e070
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/descriptors/test.dat
@@ -0,0 +1,2 @@
+Default corbaloc:iiop:localhost:10000/ServerActivator
+Remote corbaloc:iiop:localhost:12000/ServerActivator \ No newline at end of file
diff --git a/modules/CIAO/performance-tests/Benchmark/server.cpp b/modules/CIAO/performance-tests/Benchmark/server.cpp
new file mode 100644
index 00000000000..3091692da17
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/server.cpp
@@ -0,0 +1,94 @@
+// $Id$
+
+#include "LatencyTest.h"
+
+#include "ace/Sched_Params.h"
+#include "ace/OS_NS_errno.h"
+
+//#include "tao/Strategies/advanced_resource.h"
+
+const char *ior_output_file = "test.ior";
+
+int
+ACE_TMAIN(int argc, ACE_TCHAR *argv[])
+{
+ int priority =
+ (ACE_Sched_Params::priority_min (ACE_SCHED_FIFO)
+ + ACE_Sched_Params::priority_max (ACE_SCHED_FIFO)) / 2;
+
+ priority = ACE_Sched_Params::next_priority (ACE_SCHED_FIFO,
+ priority);
+ // Enable FIFO scheduling, e.g., RT scheduling class on Solaris.
+
+ if (ACE_OS::sched_params (ACE_Sched_Params (ACE_SCHED_FIFO,
+ priority,
+ ACE_SCOPE_PROCESS)) != 0)
+ {
+ if (ACE_OS::last_error () == EPERM)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "server (%P|%t): user is not superuser, "
+ "test runs in time-shared class\n"));
+ }
+ else
+ {
+ ACE_ERROR ((LM_ERROR,
+ "server (%P|%t): sched_params failed\n"));
+ }
+ }
+
+ try
+ {
+ CORBA::ORB_var orb =
+ CORBA::ORB_init (argc, argv);
+
+ CORBA::Object_var poa_object =
+ orb->resolve_initial_references("RootPOA");
+
+ if (CORBA::is_nil (poa_object.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ " (%P|%t) Unable to initialize the POA.\n"),
+ 1);
+ }
+
+ PortableServer::POA_var root_poa =
+ PortableServer::POA::_narrow (poa_object.in ());
+
+ PortableServer::POAManager_var poa_manager =
+ root_poa->the_POAManager ();
+
+ LatencyTest *roundtrip_impl;
+ ACE_NEW_RETURN (roundtrip_impl,
+ LatencyTest (orb.in ()),
+ 1);
+ PortableServer::ServantBase_var owner_transfer(roundtrip_impl);
+
+ //Get the RoundTrip reference
+ Benchmark::LatencyTest_var roundtrip =
+ roundtrip_impl->_this ();
+
+ CORBA::String_var ior =
+ orb->object_to_string (roundtrip.in ());
+
+ // If the ior_output_file exists, output the ior to it
+ ACE_DEBUG ((LM_DEBUG, "%s", ior.in ()));
+
+ poa_manager->activate ();
+
+ orb->run ();
+
+ ACE_DEBUG ((LM_DEBUG, "(%P|%t) server - event loop finished\n"));
+
+ root_poa->destroy (1, 1);
+
+ orb->destroy ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Exception caught:");
+ return 1;
+ }
+
+ return 0;
+}
diff --git a/modules/CIAO/performance-tests/Benchmark/svc.conf b/modules/CIAO/performance-tests/Benchmark/svc.conf
new file mode 100644
index 00000000000..7b8129f5667
--- /dev/null
+++ b/modules/CIAO/performance-tests/Benchmark/svc.conf
@@ -0,0 +1,6 @@
+#
+# $Id$
+#
+static Advanced_Resource_Factory "-ORBReactorMaskSignals 0 -ORBInputCDRAllocator null -ORBReactorType select_st -ORBConnectionCacheLock null"
+static Server_Strategy_Factory "-ORBPOALock null -ORBAllowReactivationOfSystemids 0"
+static Client_Strategy_Factory "-ORBTransportMuxStrategy EXCLUSIVE -ORBProfileLock null -ORBClientConnectionHandler RW"
diff --git a/modules/CIAO/performance-tests/Protocols/Controller/Controller.cpp b/modules/CIAO/performance-tests/Protocols/Controller/Controller.cpp
new file mode 100644
index 00000000000..fee5d4c2bd9
--- /dev/null
+++ b/modules/CIAO/performance-tests/Protocols/Controller/Controller.cpp
@@ -0,0 +1,229 @@
+// $Id$
+
+#include "SenderC.h"
+#include "ReceiverC.h"
+#include "tao/ORB_Constants.h"
+#include "ace/Get_Opt.h"
+#include "ace/OS_NS_string.h"
+
+
+static const ACE_TCHAR *sender_ior = ACE_TEXT("file://sender.ior");
+static const ACE_TCHAR *distributor_ior = ACE_TEXT("file://distributor.ior");
+static const ACE_TCHAR *receiver_ior = ACE_TEXT("file://receiver.ior");
+static int shutdown_sender = 0;
+static int shutdown_distributor = 0;
+static int shutdown_receiver = 0;
+static CORBA::ULong iterations = 5;
+static CORBA::ULong invocation_rate = 5;
+static int count_missed_end_deadlines = 0;
+static int do_dump_history = 0;
+static int print_missed_invocations = 0;
+static CORBA::ULong message_size = 100;
+static const ACE_TCHAR *test_protocol = ACE_TEXT("IIOP");
+static int print_statistics = 1;
+static int number_of_connection_attempts = 20;
+static int enable_diffserv_code_points = 0;
+static int corba_priority = 0;
+static const ACE_TCHAR *test_type = ACE_TEXT("PACED");
+
+static int
+parse_args (int argc, ACE_TCHAR **argv)
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("a:b:c:d:e:i:m:p:r:s:t:u:v:w:x:y:z:"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'a':
+ test_type = get_opts.opt_arg ();
+ break;
+
+ case 'b':
+ enable_diffserv_code_points = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+
+ case 'c':
+ corba_priority = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+
+ case 'd':
+ do_dump_history = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+
+ case 'e':
+ count_missed_end_deadlines = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+
+ case 'i':
+ iterations = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+
+ case 'm':
+ print_missed_invocations = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+
+ case 'p':
+ test_protocol = get_opts.opt_arg ();
+ break;
+
+ case 'r':
+ invocation_rate = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+
+ case 's':
+ message_size = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+
+ case 't':
+ print_statistics = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+
+ case 'u':
+ sender_ior = get_opts.opt_arg ();
+ break;
+
+ case 'v':
+ distributor_ior = get_opts.opt_arg ();
+ break;
+
+ case 'w':
+ receiver_ior = get_opts.opt_arg ();
+ break;
+
+ case 'x':
+ shutdown_sender = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+
+ case 'y':
+ shutdown_distributor = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+
+ case 'z':
+ shutdown_receiver = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s\n"
+ "\t-a <test type> (defaults to %s [valid values are PACED, THROUGHPUT, and LATENCY)\n"
+ "\t-b <enable diffserv code points> (defaults to %d)\n"
+ "\t-c <corba priority> (defaults to %d)\n"
+ "\t-d <show history> (defaults to %d)\n"
+ "\t-e <count missed end deadlines> (defaults to %d)\n"
+ "\t-h <help: shows options menu>\n"
+ "\t-i <iterations> (defaults to %d)\n"
+ "\t-m <print missed invocations for paced workers> (defaults to %d)\n"
+ "\t-p <test protocol> (defaults to %s [valid values are IIOP, DIOP, and SCIOP])\n"
+ "\t-r <invocation rate> (defaults to %d)\n"
+ "\t-s <message size> (defaults to %d)\n"
+ "\t-t <print stats> (defaults to %d)\n"
+ "\t-u <sender ior> (defaults to %s)\n"
+ "\t-v <distributor ior> (defaults to %s)\n"
+ "\t-w <receiver ior> (defaults to %s)\n"
+ "\t-x <shutdown sender> (defaults to %d)\n"
+ "\t-y <shutdown distributor> (defaults to %d)\n"
+ "\t-z <shutdown receiver> (defaults to %d)\n"
+ "\n",
+ argv[0],
+ test_type,
+ enable_diffserv_code_points,
+ corba_priority,
+ do_dump_history,
+ count_missed_end_deadlines,
+ iterations,
+ print_missed_invocations,
+ test_protocol,
+ invocation_rate,
+ message_size,
+ print_statistics,
+ sender_ior,
+ distributor_ior,
+ receiver_ior,
+ shutdown_sender,
+ shutdown_distributor,
+ shutdown_receiver),
+ -1);
+ }
+
+ return 0;
+}
+
+int
+ACE_TMAIN(int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+ CORBA::ORB_var orb =
+ CORBA::ORB_init (argc, argv);
+
+ int result =
+ parse_args (argc, argv);
+ if (result != 0)
+ return result;
+
+ CORBA::Object_var object =
+ orb->string_to_object (sender_ior);
+
+ Protocols::Sender_var sender =
+ Protocols::Sender::_narrow (object.in ());
+
+ object =
+ orb->string_to_object (receiver_ior);
+
+ CORBA::ULong test_protocol_tag = IOP::TAG_INTERNET_IOP;
+ if (ACE_OS::strcmp (test_protocol, ACE_TEXT("DIOP")) == 0)
+ test_protocol_tag = TAO_TAG_DIOP_PROFILE;
+ else if (ACE_OS::strcmp (test_protocol, ACE_TEXT("SCIOP")) == 0)
+ test_protocol_tag = TAO_TAG_SCIOP_PROFILE;
+
+ Protocols::Sender_Controller::Test_Type test_type_tag = Protocols::Sender_Controller::PACED;
+ if (ACE_OS::strcmp (test_type, ACE_TEXT("THROUGHPUT")) == 0)
+ test_type_tag = Protocols::Sender_Controller::THROUGHPUT;
+ else if (ACE_OS::strcmp (test_type, ACE_TEXT("LATENCY")) == 0)
+ test_type_tag = Protocols::Sender_Controller::LATENCY;
+
+ sender->start (iterations,
+ invocation_rate,
+ count_missed_end_deadlines,
+ do_dump_history,
+ print_missed_invocations,
+ message_size,
+ test_protocol_tag,
+ print_statistics,
+ number_of_connection_attempts,
+ enable_diffserv_code_points,
+ corba_priority,
+ test_type_tag);
+
+ if (shutdown_sender)
+ sender->shutdown ();
+
+ if (shutdown_distributor)
+ {
+ Protocols::Receiver_var distributor =
+ Protocols::Receiver::_narrow (object.in ());
+
+ distributor->shutdown ();
+ }
+
+ if (shutdown_receiver)
+ {
+ Protocols::Receiver_var receiver =
+ Protocols::Receiver::_narrow (object.in ());
+
+ receiver->shutdown ();
+ }
+
+ return 0;
+ }
+ catch (CORBA::Exception &exception)
+ {
+ ACE_ERROR ((LM_ERROR,
+ "Unexpected exception caught by client: %s (%s)\n",
+ exception._name (),
+ exception._rep_id ()));
+
+ return -1;
+ }
+}
diff --git a/modules/CIAO/performance-tests/Protocols/Controller/Controller.mpc b/modules/CIAO/performance-tests/Protocols/Controller/Controller.mpc
new file mode 100644
index 00000000000..af97a3d6520
--- /dev/null
+++ b/modules/CIAO/performance-tests/Protocols/Controller/Controller.mpc
@@ -0,0 +1,12 @@
+// $Id$
+
+project (Protocols_Controller) : ccm_stub, rtcorba {
+ after += Protocols_Sender_stub \
+ Protocols_Receiver_stub
+ includes += ../Sender
+ includes += ../Receiver
+ libs += Protocols_Receiver_stub \
+ Protocols_Sender_stub \
+ Protocols_stub
+ libpaths += ../common ../Sender ../Receiver
+}
diff --git a/modules/CIAO/performance-tests/Protocols/Receiver/Receiver.idl b/modules/CIAO/performance-tests/Protocols/Receiver/Receiver.idl
new file mode 100644
index 00000000000..94536a94bf4
--- /dev/null
+++ b/modules/CIAO/performance-tests/Protocols/Receiver/Receiver.idl
@@ -0,0 +1,22 @@
+// $Id$
+
+#include <Components.idl>
+#include "../common/Protocols.idl"
+#include "../common/ProtocolsE.idl"
+
+module Protocols
+{
+ interface Receiver_Controller
+ {
+ void shutdown ();
+ };
+
+ component Receiver supports Receiver_Controller
+ {
+ provides test writer;
+ };
+
+ home ReceiverHome manages Receiver
+ {
+ };
+};
diff --git a/modules/CIAO/performance-tests/Protocols/Receiver/Receiver.mpc b/modules/CIAO/performance-tests/Protocols/Receiver/Receiver.mpc
new file mode 100644
index 00000000000..26ad7c41ce1
--- /dev/null
+++ b/modules/CIAO/performance-tests/Protocols/Receiver/Receiver.mpc
@@ -0,0 +1,116 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p Protocols Receiver"
+
+project(Protocols_Receiver_idl_gen) : componentidldefaults {
+ custom_only = 1
+ after += Protocols_idl_gen
+ idlflags += \
+ -Wb,stub_export_macro=RECEIVER_STUB_Export \
+ -Wb,stub_export_include=Receiver_stub_export.h \
+ -Wb,skel_export_macro=RECEIVER_SVNT_Export \
+ -Wb,skel_export_include=Receiver_svnt_export.h \
+ -Wb,exec_export_macro=RECEIVER_EXEC_Export \
+ -Wb,exec_export_include=Receiver_exec_export.h
+
+ IDL_Files {
+ Receiver.idl
+ }
+}
+
+project(Protocols_Receiver_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ after += Protocols_Receiver_idl_gen
+ idlflags += -Wb,export_macro=RECEIVER_EXEC_Export \
+ -Wb,export_include=Receiver_exec_export.h \
+ -SS
+
+ IDL_Files {
+ ReceiverE.idl
+ }
+}
+
+project(Protocols_Receiver_stub) : ccm_stub {
+ after += Protocols_Receiver_idl_gen Protocols_stub
+ libs += Protocols_stub
+ libpaths += ../common
+
+ sharedname = Protocols_Receiver_stub
+ dynamicflags = RECEIVER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ReceiverC.cpp
+ }
+
+ Header_Files {
+ ReceiverC.h
+ Receiver_stub_export.h
+ }
+
+ Inline_Files {
+ ReceiverC.inl
+ }
+}
+
+project(Protocols_Receiver_exec) : ciao_executor, avoids_ace_for_tao {
+ after += Protocols_Receiver_lem_gen Protocols_Receiver_stub
+ sharedname = Protocols_Receiver_exec
+ libs += Protocols_Receiver_stub \
+ Protocols_stub
+ libpaths += ../common
+
+ dynamicflags = RECEIVER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ReceiverEC.cpp
+ Receiver_exec.cpp
+ }
+
+ Header_Files {
+ ReceiverEC.h
+ Receiver_exec.h
+ Receiver_exec_export.h
+ }
+
+ Inline_Files {
+ ReceiverEC.inl
+ }
+}
+
+
+project(Protocols_Receiver_svnt) : ciao_servant, avoids_ace_for_tao {
+ after += Protocols_skel Protocols_Receiver_exec
+ sharedname = Protocols_Receiver_svnt
+ libs += Protocols_Receiver_exec \
+ Protocols_Receiver_stub \
+ Protocols_skel \
+ Protocols_stub
+ libpaths += ../common
+
+ dynamicflags = RECEIVER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ReceiverS.cpp
+ Receiver_svnt.cpp
+ }
+
+ Header_Files {
+ ReceiverS.h
+ Receiver_svnt.h
+ Receiver_svnt_export.h
+ }
+
+ Inline_Files {
+ ReceiverS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/performance-tests/Protocols/Receiver/Receiver_exec.cpp b/modules/CIAO/performance-tests/Protocols/Receiver/Receiver_exec.cpp
new file mode 100644
index 00000000000..baa926d17b0
--- /dev/null
+++ b/modules/CIAO/performance-tests/Protocols/Receiver/Receiver_exec.cpp
@@ -0,0 +1,287 @@
+// $Id$
+
+#include "Receiver_exec.h"
+#include "ace/Stats.h"
+#include "ace/Throughput_Stats.h"
+#include "tao/debug.h"
+
+static int do_dump_history = 0;
+static int print_missed_invocations = 0;
+static ACE_UINT32 gsf = 0;
+
+namespace CIDL_ReceiverImpl
+{
+ test_i::test_i (void)
+ : inter_arrival_times_ (0),
+ iterations_ (0),
+ session_id_ (-1)
+ {
+ gsf = ACE_High_Res_Timer::global_scale_factor ();
+ }
+
+ void
+ test_i::start_test (CORBA::Long session_id,
+ const char *protocol,
+ CORBA::ULong invocation_rate,
+ CORBA::ULong message_size,
+ CORBA::ULong iterations)
+ {
+ if (TAO_debug_level > 0)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "Session id starts %d\n",
+ session_id));
+
+ }
+
+ ACE_DEBUG ((LM_DEBUG,
+ "Protocol = %5s Invocation Rate = %3d Message Size = %5d Expected Latency = %4d ",
+ protocol,
+ invocation_rate,
+ message_size,
+ 1000 / invocation_rate));
+
+ // Remember test parameters.
+ this->session_id_ = session_id;
+ this->iterations_ = iterations;
+ this->number_of_invocations_received_ = 0;
+
+ //
+ // Initialize counters and tables.
+ //
+ this->inter_arrival_times_ =
+ new ACE_Sample_History (iterations);
+
+ this->first_invocation_ = 1;
+
+ this->invocations_received_.size (iterations);
+ for (CORBA::ULong i = 0;
+ i < iterations;
+ ++i)
+ this->invocations_received_[i] = 0;
+
+ // Record start time.
+ this->test_start_ =
+ ACE_OS::gethrtime ();
+ }
+
+ void
+ test_i::end_test (void)
+ {
+ // Record end time.
+ this->test_end_ =
+ ACE_OS::gethrtime ();
+
+ if (do_dump_history)
+ {
+ this->inter_arrival_times_->dump_samples (ACE_TEXT("Inter-arrival times"), gsf);
+ }
+
+ ACE_Basic_Stats stats;
+ this->inter_arrival_times_->collect_basic_stats (stats);
+
+ ACE_DEBUG ((LM_DEBUG,
+ "Max Latency = %6d ",
+ stats.max_ / gsf / 1000));
+
+ ACE_DEBUG ((LM_DEBUG,
+ "Invocations expected / received / missed / missed %% = %6d / %6d / %6d / %5.2f\n",
+ this->iterations_,
+ this->number_of_invocations_received_,
+ this->iterations_ - this->number_of_invocations_received_,
+ (this->iterations_ - this->number_of_invocations_received_) / (double) this->iterations_ * 100));
+
+ if (print_missed_invocations)
+ {
+ ACE_DEBUG ((LM_DEBUG, "\nFollowing invocations were never received:\n"));
+
+ for (CORBA::ULong i = 0;
+ i < this->iterations_;
+ ++i)
+ {
+ if (this->invocations_received_[i] == 0)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "%d ",
+ i));
+ }
+ }
+
+ ACE_DEBUG ((LM_DEBUG, "\n"));
+ }
+
+ if (TAO_debug_level > 0)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "Session id ends %d\n",
+ this->session_id_));
+
+ stats.dump_results (ACE_TEXT("Inter-arrival times"), gsf);
+
+ ACE_Throughput_Stats::dump_throughput (ACE_TEXT("Inter-arrival times"), gsf,
+ this->test_end_ - this->test_start_,
+ stats.samples_count ());
+ }
+
+ this->session_id_ = -1;
+
+ delete this->inter_arrival_times_;
+ }
+
+ void
+ test_i::oneway_sync (void)
+ {
+ }
+
+ void
+ test_i::twoway_sync (void)
+ {
+ }
+
+ void
+ test_i::oneway_method (CORBA::Long session_id,
+ CORBA::ULong iteration,
+ const Protocols::test::octets &payload)
+ {
+ if (this->session_id_ != session_id)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "Late message with iteration id = %d: will not count message\n",
+ iteration));
+ return;
+ }
+
+ if (TAO_debug_level > 0)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "test_i::oneway_method -> session id = %d iteration = %d payload size = %d\n",
+ session_id,
+ iteration,
+ payload.length ()));
+ }
+
+ this->invocations_received_[iteration] = 1;
+ ++this->number_of_invocations_received_;
+
+ ACE_hrtime_t time_of_current_call =
+ ACE_OS::gethrtime ();
+
+ if (this->first_invocation_)
+ this->first_invocation_ = 0;
+ else
+ this->inter_arrival_times_->sample (time_of_current_call - this->time_of_last_call_);
+
+ this->time_of_last_call_ = time_of_current_call;
+ }
+
+ void
+ test_i::twoway_method (CORBA::Long &session_id,
+ CORBA::ULong &iteration,
+ Protocols::test::octets &payload)
+ {
+ if (this->session_id_ != session_id)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "Late message with iteration id = %d: will not count message\n",
+ iteration));
+ return;
+ }
+
+ if (TAO_debug_level > 0)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "test_i::twoway_method -> session id = %d iteration = %d payload size = %d\n",
+ session_id,
+ iteration,
+ payload.length ()));
+ }
+
+ this->invocations_received_[iteration] = 1;
+ ++this->number_of_invocations_received_;
+
+ ACE_hrtime_t time_of_current_call =
+ ACE_OS::gethrtime ();
+
+ if (this->first_invocation_)
+ this->first_invocation_ = 0;
+ else
+ this->inter_arrival_times_->sample (time_of_current_call - this->time_of_last_call_);
+
+ this->time_of_last_call_ = time_of_current_call;
+ }
+
+ ReceiverExec_i::ReceiverExec_i (void)
+ {
+ ACE_DEBUG ((LM_DEBUG, "ReceiverExec_i::ReceiverExec_i\n"));
+
+ int argc = 0;
+ char **argv = 0;
+
+ this->orb_ =
+ CORBA::ORB_init (argc, argv);
+ }
+
+ ::Protocols::CCM_test_ptr
+ ReceiverExec_i::get_writer (void)
+ {
+ ACE_DEBUG ((LM_DEBUG, "ReceiverExec_i::get_writer\n"));
+ return new test_i;
+ }
+
+ void
+ ReceiverExec_i::shutdown (void)
+ {
+ ACE_DEBUG ((LM_DEBUG, "ReceiverExec_i::shutdown\n"));
+ this->orb_->shutdown ();
+ }
+
+ void
+ ReceiverExec_i::set_session_context (Components::SessionContext_ptr ctx)
+ {
+ ACE_DEBUG ((LM_DEBUG, "ReceiverExec_i::set_session_context\n"));
+
+ this->context_ =
+ ::CIAO_Protocols_Receiver_Impl::Receiver_Exec_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ throw CORBA::INTERNAL ();
+ }
+
+ void
+ ReceiverExec_i::ccm_activate (void)
+ {
+ ACE_DEBUG ((LM_DEBUG, "ReceiverExec_i::ccm_activate\n"));
+ }
+
+ void
+ ReceiverExec_i::ccm_passivate (void)
+ {
+ ACE_DEBUG ((LM_DEBUG, "ReceiverExec_i::ccm_passivate\n"));
+ }
+
+ void
+ ReceiverExec_i::ccm_remove (void)
+ {
+ ACE_DEBUG ((LM_DEBUG, "ReceiverExec_i::ccm_remove\n"));
+ }
+
+ void
+ ReceiverExec_i::configuration_complete (void)
+ {
+ ACE_DEBUG ((LM_DEBUG, "ReceiverExec_i::configuration_complete\n"));
+ }
+
+ ::Components::EnterpriseComponent_ptr
+ ReceiverHomeExec_i::create (void)
+ {
+ ACE_DEBUG ((LM_DEBUG, "ReceiverHome_exec::create\n"));
+ return new ReceiverExec_i;
+ }
+
+ extern "C" RECEIVER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ createReceiverHome_Impl (void)
+ {
+ ACE_DEBUG ((LM_DEBUG, "createReceiverHome_Impl\n"));
+ return new ReceiverHomeExec_i;
+ }
+}
diff --git a/modules/CIAO/performance-tests/Protocols/Receiver/Receiver_exec.h b/modules/CIAO/performance-tests/Protocols/Receiver/Receiver_exec.h
new file mode 100644
index 00000000000..d5213a5cb92
--- /dev/null
+++ b/modules/CIAO/performance-tests/Protocols/Receiver/Receiver_exec.h
@@ -0,0 +1,94 @@
+// $Id$
+
+#include "ReceiverEC.h"
+#include "Receiver_exec_export.h"
+#include "tao/LocalObject.h"
+#include "ace/High_Res_Timer.h"
+#include "ace/Sample_History.h"
+#include "ace/Array.h"
+
+namespace CIDL_ReceiverImpl
+{
+ class RECEIVER_EXEC_Export ReceiverExec_i :
+ public virtual ::CIAO_Protocols_Receiver_Impl::Receiver_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+
+ ReceiverExec_i (void);
+
+ ::Protocols::CCM_test_ptr get_writer (void);
+
+ void shutdown (void);
+
+ void set_session_context (Components::SessionContext_ptr ctx);
+
+ void ccm_activate (void);
+
+ void ccm_passivate (void);
+
+ void ccm_remove (void);
+
+ void configuration_complete (void);
+
+ protected:
+
+ ::CIAO_Protocols_Receiver_Impl::Receiver_Exec_Context_var context_;
+
+ CORBA::ORB_var orb_;
+
+ };
+
+ class RECEIVER_EXEC_Export test_i :
+ public virtual Protocols::CCM_test,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+
+ test_i (void);
+
+ void start_test (CORBA::Long session_id,
+ const char *protocol,
+ CORBA::ULong invocation_rate,
+ CORBA::ULong message_size,
+ CORBA::ULong iterations);
+
+ void end_test (void);
+
+ void oneway_sync (void);
+
+ void twoway_sync (void);
+
+ void oneway_method (CORBA::Long session_id,
+ CORBA::ULong iteration,
+ const Protocols::test::octets &payload);
+
+ void twoway_method (CORBA::Long &session_id,
+ CORBA::ULong &iteration,
+ Protocols::test::octets &payload);
+
+ private:
+ typedef ACE_Array_Base<CORBA::Boolean> Invocations;
+ Invocations invocations_received_;
+ ACE_hrtime_t time_of_last_call_;
+ ACE_hrtime_t test_start_;
+ ACE_hrtime_t test_end_;
+ CORBA::Boolean first_invocation_;
+ ACE_Sample_History *inter_arrival_times_;
+ CORBA::ULong iterations_;
+ CORBA::ULong number_of_invocations_received_;
+ CORBA::Long session_id_;
+ };
+
+ class RECEIVER_EXEC_Export ReceiverHomeExec_i :
+ public virtual ::CIAO_Protocols_Receiver_Impl::ReceiverHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+
+ ::Components::EnterpriseComponent_ptr create (void);
+ };
+
+ extern "C" RECEIVER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ createReceiverHome_Impl (void);
+}
diff --git a/modules/CIAO/performance-tests/Protocols/Sender/Custom_Network_Priority_Mapping.cpp b/modules/CIAO/performance-tests/Protocols/Sender/Custom_Network_Priority_Mapping.cpp
new file mode 100644
index 00000000000..bb503a6728f
--- /dev/null
+++ b/modules/CIAO/performance-tests/Protocols/Sender/Custom_Network_Priority_Mapping.cpp
@@ -0,0 +1,133 @@
+// $Id$
+
+#include "Custom_Network_Priority_Mapping.h"
+#include "tao/debug.h"
+#include "ace/Log_Msg.h"
+
+ACE_RCSID (Strategies,
+ Custom_Network_Priority_Mapping,
+ "$Id$")
+
+#define IPDSFIELD_DSCP_DEFAULT 0x00
+#define IPDSFIELD_DSCP_CS1 0x08
+#define IPDSFIELD_DSCP_CS2 0x10
+#define IPDSFIELD_DSCP_CS3 0x18
+#define IPDSFIELD_DSCP_CS4 0x20
+#define IPDSFIELD_DSCP_CS5 0x28
+#define IPDSFIELD_DSCP_CS6 0x30
+#define IPDSFIELD_DSCP_CS7 0x38
+#define IPDSFIELD_DSCP_AF11 0x0A
+#define IPDSFIELD_DSCP_AF12 0x0C
+#define IPDSFIELD_DSCP_AF13 0x0E
+#define IPDSFIELD_DSCP_AF21 0x12
+#define IPDSFIELD_DSCP_AF22 0x14
+#define IPDSFIELD_DSCP_AF23 0x16
+#define IPDSFIELD_DSCP_AF31 0x1A
+#define IPDSFIELD_DSCP_AF32 0x1C
+#define IPDSFIELD_DSCP_AF33 0x1E
+#define IPDSFIELD_DSCP_AF41 0x22
+#define IPDSFIELD_DSCP_AF42 0x24
+#define IPDSFIELD_DSCP_AF43 0x26
+#define IPDSFIELD_ECT_MASK 0x02
+#define IPDSFIELD_CE_MASK 0x01
+#define IPDSFIELD_DSCP_EF 0x2E
+
+static int dscp [] =
+{
+ IPDSFIELD_DSCP_DEFAULT ,
+ IPDSFIELD_DSCP_CS1 ,
+ IPDSFIELD_DSCP_CS2 ,
+ IPDSFIELD_DSCP_CS3 ,
+ IPDSFIELD_DSCP_CS4 ,
+ IPDSFIELD_DSCP_CS5 ,
+ IPDSFIELD_DSCP_CS6 ,
+ IPDSFIELD_DSCP_CS7 ,
+ IPDSFIELD_DSCP_AF11 ,
+ IPDSFIELD_DSCP_AF12 ,
+ IPDSFIELD_DSCP_AF13 ,
+ IPDSFIELD_DSCP_AF21 ,
+ IPDSFIELD_DSCP_AF22 ,
+ IPDSFIELD_DSCP_AF23 ,
+ IPDSFIELD_DSCP_AF31 ,
+ IPDSFIELD_DSCP_AF32 ,
+ IPDSFIELD_DSCP_AF33 ,
+ IPDSFIELD_DSCP_AF41 ,
+ IPDSFIELD_DSCP_AF42 ,
+ IPDSFIELD_DSCP_AF43 ,
+ IPDSFIELD_DSCP_EF
+};
+
+/*
+static const char *dscp_char[]=
+{
+ "Normal",
+ "CS1",
+ "CS2",
+ "CS3",
+ "CS4",
+ "CS5",
+ "CS6",
+ "CS7",
+ "Assured Forwarding 11",
+ "Assured Forwarding 12",
+ "Assured Forwarding 13",
+ "Assured Forwarding 21",
+ "Assured Forwarding 22",
+ "Assured Forwarding 23",
+ "Assured Forwarding 31",
+ "Assured Forwarding 32",
+ "Assured Forwarding 33",
+ "Assured Forwarding 41",
+ "Assured Forwarding 42",
+ "Assured Forwarding 43",
+ "Expedited Forwarding"
+};
+*/
+
+Custom_Network_Priority_Mapping::Custom_Network_Priority_Mapping (void)
+ : corba_priority_ (RTCORBA::minPriority)
+{
+}
+
+void
+Custom_Network_Priority_Mapping::corba_priority (RTCORBA::Priority corba_priority)
+{
+ this->corba_priority_ = corba_priority;
+}
+
+CORBA::Boolean
+Custom_Network_Priority_Mapping::to_network (RTCORBA::Priority,
+ RTCORBA::NetworkPriority &network_priority)
+{
+ if (TAO_debug_level)
+ ACE_DEBUG ((LM_DEBUG,
+ "Custom_Network_Priority_Mapping::to_network corba_priority %d\n",
+ this->corba_priority_));
+
+ const int total_slots = sizeof (dscp) / sizeof (int);
+
+ int array_slot =
+ static_cast<int> (((this->corba_priority_ - RTCORBA::minPriority) / double (RTCORBA::maxPriority - RTCORBA::minPriority)) * total_slots);
+
+ if (array_slot == total_slots)
+ array_slot -= 1;
+
+ network_priority = dscp[array_slot];
+
+ if (TAO_debug_level)
+ ACE_DEBUG ((LM_DEBUG,
+ "Custom_Network_Priority_Mapping::to_network = %x\n",
+ network_priority));
+
+ return 1;
+}
+
+CORBA::Boolean
+Custom_Network_Priority_Mapping::to_CORBA (RTCORBA::NetworkPriority,
+ RTCORBA::Priority &)
+{
+ // This method should not be called.
+ ACE_ASSERT (0);
+
+ return 0;
+}
diff --git a/modules/CIAO/performance-tests/Protocols/Sender/Custom_Network_Priority_Mapping.h b/modules/CIAO/performance-tests/Protocols/Sender/Custom_Network_Priority_Mapping.h
new file mode 100644
index 00000000000..fac5d84a433
--- /dev/null
+++ b/modules/CIAO/performance-tests/Protocols/Sender/Custom_Network_Priority_Mapping.h
@@ -0,0 +1,58 @@
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO
+//
+// = FILENAME
+// Custom_Network_Priority_Mapping.h
+//
+// = DESCRIPTION
+// Declares the Custom_Network_Priority_Mapping interface,
+//
+// = AUTHOR
+// Yamuna Krishnamurthy (yamuna@oomworks.com)
+//
+// ============================================================================
+
+#ifndef CUSTOM_NETWORK_PRIORITY_MAPPING_H
+#define CUSTOM_NETWORK_PRIORITY_MAPPING_H
+
+#include /**/ "ace/pre.h"
+#include "tao/RTCORBA/Network_Priority_Mapping.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+class Custom_Network_Priority_Mapping : public TAO_Network_Priority_Mapping
+{
+ //
+ // = TITLE
+ // A simple implementation of the Network_Priority_Mapping interface
+ //
+ // = DESCRIPTION
+ // This implementation uses custom mapping between the range of
+ // priorities for a given scheduling class (ACE_SCHED_OTHER,
+ // ACE_SCHED_FIFO, ACE_SCHED_RR) and the valid range of CORBA
+ // priorities (0...32767)
+ //
+public:
+ Custom_Network_Priority_Mapping (void);
+
+ CORBA::Boolean to_network (RTCORBA::Priority corba_priority,
+ RTCORBA::NetworkPriority &network_priority);
+
+ CORBA::Boolean to_CORBA (RTCORBA::NetworkPriority network_priority,
+ RTCORBA::Priority &corba_priority);
+
+ void corba_priority (RTCORBA::Priority corba_priority);
+
+ private:
+ RTCORBA::Priority corba_priority_;
+};
+
+
+#include /**/ "ace/post.h"
+#endif /* CUSTOM_NETWORK_PRIORITY_MAPPING_H */
diff --git a/modules/CIAO/performance-tests/Protocols/Sender/Sender.idl b/modules/CIAO/performance-tests/Protocols/Sender/Sender.idl
new file mode 100644
index 00000000000..200eaa0350a
--- /dev/null
+++ b/modules/CIAO/performance-tests/Protocols/Sender/Sender.idl
@@ -0,0 +1,41 @@
+// $Id$
+
+#include <Components.idl>
+#include "../common/Protocols.idl"
+
+module Protocols
+{
+ interface Sender_Controller
+ {
+ enum Test_Type
+ {
+ PACED,
+ THROUGHPUT,
+ LATENCY
+ };
+
+ void start (in unsigned long iterations,
+ in unsigned long invocation_rate,
+ in boolean count_missed_end_deadlines,
+ in boolean do_dump_history,
+ in boolean print_missed_invocations,
+ in unsigned long message_size,
+ in unsigned long test_protocol_tag,
+ in boolean print_statistics,
+ in unsigned long number_of_connection_attempts,
+ in boolean enable_diffserv_code_points,
+ in short priority,
+ in Test_Type testtype);
+
+ void shutdown ();
+ };
+
+ component Sender supports Sender_Controller
+ {
+ uses test reader;
+ };
+
+ home SenderHome manages Sender
+ {
+ };
+};
diff --git a/modules/CIAO/performance-tests/Protocols/Sender/Sender.mpc b/modules/CIAO/performance-tests/Protocols/Sender/Sender.mpc
new file mode 100644
index 00000000000..8234f0546ec
--- /dev/null
+++ b/modules/CIAO/performance-tests/Protocols/Sender/Sender.mpc
@@ -0,0 +1,116 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p Protocols Sender"
+
+project(Protocols_Sender_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=SENDER_STUB_Export \
+ -Wb,stub_export_include=Sender_stub_export.h \
+ -Wb,skel_export_macro=SENDER_SVNT_Export \
+ -Wb,skel_export_include=Sender_svnt_export.h \
+ -Wb,exec_export_macro=SENDER_EXEC_Export \
+ -Wb,exec_export_include=Sender_exec_export.h
+
+ IDL_Files {
+ Sender.idl
+ }
+}
+
+project(Protocols_Sender_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ after += Protocols_Sender_idl_gen
+ idlflags += -Wb,export_macro=SENDER_EXEC_Export \
+ -Wb,export_include=Sender_exec_export.h \
+ -SS
+
+ IDL_Files {
+ SenderE.idl
+ }
+}
+
+project(Protocols_Sender_stub) : ccm_stub {
+ after += Protocols_Sender_idl_gen Protocols_stub
+ libs += Protocols_stub
+ libpaths += ../common
+
+ sharedname = Protocols_Sender_stub
+ dynamicflags = SENDER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SenderC.cpp
+ }
+
+ Header_Files {
+ SenderC.h
+ Sender_stub_export.h
+ }
+
+ Inline_Files {
+ SenderC.inl
+ }
+}
+
+project(Protocols_Sender_exec) : ciao_executor, rtcorba, avoids_ace_for_tao {
+ after += Protocols_Sender_lem_gen Protocols_Sender_stub
+ sharedname = Protocols_Sender_exec
+ libs += Protocols_Sender_stub \
+ Protocols_stub
+ libpaths += ../common
+ includes += $(TAO_ROOT)/tests/RTCORBA/Diffserv
+ dynamicflags = SENDER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Custom_Network_Priority_Mapping.cpp
+ SenderEC.cpp
+ Sender_exec.cpp
+ }
+
+ Header_Files {
+ Custom_Network_Priority_Mapping.h
+ SenderEC.h
+ Sender_exec.h
+ Sender_exec_export.h
+ }
+
+ Inline_Files {
+ SenderEC.inl
+ }
+}
+
+
+project(Protocols_Sender_svnt) : ciao_servant, avoids_ace_for_tao {
+ after += Protocols_skel Protocols_Sender_exec
+ sharedname = Protocols_Sender_svnt
+ libs += Protocols_Sender_exec \
+ Protocols_Sender_stub \
+ Protocols_skel \
+ Protocols_stub
+ libpaths += ../common
+
+ dynamicflags = SENDER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SenderS.cpp
+ Sender_svnt.cpp
+ }
+
+ Header_Files {
+ SenderS.h
+ Sender_svnt.h
+ Sender_svnt_export.h
+ }
+
+ Inline_Files {
+ SenderS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/performance-tests/Protocols/Sender/Sender_exec.cpp b/modules/CIAO/performance-tests/Protocols/Sender/Sender_exec.cpp
new file mode 100644
index 00000000000..b3cd02897df
--- /dev/null
+++ b/modules/CIAO/performance-tests/Protocols/Sender/Sender_exec.cpp
@@ -0,0 +1,697 @@
+// $Id$
+
+#include "tao/ORB_Constants.h"
+#include "tao/debug.h"
+#include "tao/RTCORBA/RTCORBA.h"
+#include "tao/RTCORBA/Network_Priority_Mapping_Manager.h"
+#include "tao/RTCORBA/Network_Priority_Mapping.h"
+#include "tao/RTCORBA/RT_Policy_i.h"
+#include "tao/Policy_ManagerC.h"
+#include "ace/OS_NS_unistd.h"
+#include "ace/OS_NS_string.h"
+#include "ace/OS_NS_stdlib.h"
+#include "ace/OS_NS_time.h"
+#include "ace/High_Res_Timer.h"
+#include "ace/Stats.h"
+#include "ace/Throughput_Stats.h"
+#include "ace/Array.h"
+#include "ace/Sample_History.h"
+#include "Custom_Network_Priority_Mapping.h"
+#include "Sender_exec.h"
+
+static ACE_UINT32 gsf = 0;
+
+double
+to_seconds (ACE_UINT64 hrtime,
+ ACE_UINT32 sf)
+{
+ double seconds =
+#if defined ACE_LACKS_LONGLONG_T
+ hrtime / sf;
+#else /* ! ACE_LACKS_LONGLONG_T */
+ static_cast<double> (ACE_UINT64_DBLCAST_ADAPTER (hrtime / sf));
+#endif /* ! ACE_LACKS_LONGLONG_T */
+ seconds /= ACE_HR_SCALE_CONVERSION;
+
+ return seconds;
+}
+
+ACE_UINT64
+to_hrtime (double seconds,
+ ACE_UINT32 sf)
+{
+ return ACE_UINT64 (seconds * sf * ACE_HR_SCALE_CONVERSION);
+}
+
+class Worker
+{
+public:
+ Worker (CORBA::ORB_ptr orb,
+ RTCORBA::RTORB_ptr rtorb,
+ CORBA::PolicyManager_ptr policy_manager,
+ Protocols::test_ptr test,
+ ::CORBA::ULong iterations,
+ ::CORBA::ULong invocation_rate,
+ ::CORBA::Boolean count_missed_end_deadlines,
+ ::CORBA::Boolean do_dump_history,
+ ::CORBA::Boolean print_missed_invocations,
+ ::CORBA::ULong message_size,
+ ::CORBA::ULong test_protocol_tag,
+ ::CORBA::ULong number_of_connection_attempts,
+ ::CORBA::Boolean enable_diffserv_code_points,
+ ::Protocols::Sender_Controller::Test_Type test_type);
+
+ void run (void);
+
+ void print_stats (void);
+
+ void setup (void);
+
+private:
+
+ ACE_hrtime_t deadline_for_current_call (CORBA::ULong i);
+ void missed_start_deadline (CORBA::ULong invocation);
+ void missed_end_deadline (CORBA::ULong invocation);
+
+ RTCORBA::RTORB_var rtorb_;
+ CORBA::PolicyManager_var policy_manager_;
+ Protocols::test_var test_;
+ ACE_Sample_History history_;
+ ACE_hrtime_t interval_between_calls_;
+ ACE_hrtime_t test_start_;
+ ACE_hrtime_t test_end_;
+ CORBA::ULong missed_start_deadlines_;
+ CORBA::ULong missed_end_deadlines_;
+
+ typedef ACE_Array_Base<CORBA::ULong> Missed_Invocations;
+ Missed_Invocations missed_start_invocations_;
+ Missed_Invocations missed_end_invocations_;
+
+ CORBA::PolicyList base_protocol_policy_;
+ CORBA::PolicyList test_protocol_policy_;
+
+ CORBA::Long session_id_;
+
+ ::CORBA::ULong iterations_;
+ ::CORBA::ULong invocation_rate_;
+ ::CORBA::Boolean count_missed_end_deadlines_;
+ ::CORBA::Boolean do_dump_history_;
+ ::CORBA::Boolean print_missed_invocations_;
+ ::CORBA::ULong message_size_;
+ ::CORBA::ULong test_protocol_tag_;
+ ::CORBA::ULong number_of_connection_attempts_;
+ ::CORBA::Boolean enable_diffserv_code_points_;
+ ::Protocols::Sender_Controller::Test_Type test_type_;
+};
+
+Worker::Worker (CORBA::ORB_ptr orb,
+ RTCORBA::RTORB_ptr rtorb,
+ CORBA::PolicyManager_ptr policy_manager,
+ Protocols::test_ptr test,
+ ::CORBA::ULong iterations,
+ ::CORBA::ULong invocation_rate,
+ ::CORBA::Boolean count_missed_end_deadlines,
+ ::CORBA::Boolean do_dump_history,
+ ::CORBA::Boolean print_missed_invocations,
+ ::CORBA::ULong message_size,
+ ::CORBA::ULong test_protocol_tag,
+ ::CORBA::ULong number_of_connection_attempts,
+ ::CORBA::Boolean enable_diffserv_code_points,
+ ::Protocols::Sender_Controller::Test_Type test_type)
+ : rtorb_ (RTCORBA::RTORB::_duplicate (rtorb)),
+ policy_manager_ (CORBA::PolicyManager::_duplicate (policy_manager)),
+ test_ (Protocols::test::_duplicate (test)),
+ history_ (iterations),
+ interval_between_calls_ (),
+ missed_start_deadlines_ (0),
+ missed_end_deadlines_ (0),
+ missed_start_invocations_ (iterations),
+ missed_end_invocations_ (iterations),
+ iterations_ (iterations),
+ invocation_rate_ (invocation_rate),
+ count_missed_end_deadlines_ (count_missed_end_deadlines),
+ do_dump_history_ (do_dump_history),
+ print_missed_invocations_ (print_missed_invocations),
+ message_size_ (message_size),
+ test_protocol_tag_ (test_protocol_tag),
+ number_of_connection_attempts_ (number_of_connection_attempts),
+ enable_diffserv_code_points_ (enable_diffserv_code_points),
+ test_type_ (test_type)
+{
+ // Each sender will have a random session id. This helps in
+ // identifying late packets arriving at the server.
+ ACE_OS::srand ((unsigned) ACE_OS::time (0));
+ this->session_id_ = ACE_OS::rand ();
+
+ // Interval is inverse of rate.
+ this->interval_between_calls_ =
+ to_hrtime (1 / double (this->invocation_rate_), gsf);
+
+ // Base protocol is used for setting up and tearing down the test.
+ this->base_protocol_policy_.length (1);
+
+ // Test protocol is the one being tested.
+ this->test_protocol_policy_.length (1);
+
+ RTCORBA::ProtocolProperties_var base_transport_protocol_properties =
+ TAO_Protocol_Properties_Factory::create_transport_protocol_property (IOP::TAG_INTERNET_IOP,
+ orb->orb_core ());
+
+ RTCORBA::TCPProtocolProperties_var tcp_base_transport_protocol_properties =
+ RTCORBA::TCPProtocolProperties::_narrow (base_transport_protocol_properties.in ());
+
+ tcp_base_transport_protocol_properties->enable_network_priority (this->enable_diffserv_code_points_);
+
+ RTCORBA::ProtocolList protocols;
+ protocols.length (1);
+ protocols[0].transport_protocol_properties =
+ base_transport_protocol_properties;
+ protocols[0].orb_protocol_properties =
+ RTCORBA::ProtocolProperties::_nil ();
+
+ // IIOP is always used for the base protocol.
+ protocols[0].protocol_type = IOP::TAG_INTERNET_IOP;
+
+ this->base_protocol_policy_[0] =
+ this->rtorb_->create_client_protocol_policy (protocols);
+
+ // User decides the test protocol.
+ protocols[0].protocol_type = test_protocol_tag;
+
+ RTCORBA::ProtocolProperties_var test_transport_protocol_properties =
+ TAO_Protocol_Properties_Factory::create_transport_protocol_property (protocols[0].protocol_type,
+ orb->orb_core ());
+
+ if (protocols[0].protocol_type == TAO_TAG_DIOP_PROFILE)
+ {
+ RTCORBA::UserDatagramProtocolProperties_var udp_test_transport_protocol_properties =
+ RTCORBA::UserDatagramProtocolProperties::_narrow (test_transport_protocol_properties.in ());
+
+ udp_test_transport_protocol_properties->enable_network_priority (enable_diffserv_code_points);
+ }
+ else if (protocols[0].protocol_type == TAO_TAG_SCIOP_PROFILE)
+ {
+ RTCORBA::StreamControlProtocolProperties_var sctp_test_transport_protocol_properties =
+ RTCORBA::StreamControlProtocolProperties::_narrow (test_transport_protocol_properties.in ());
+
+ sctp_test_transport_protocol_properties->enable_network_priority (enable_diffserv_code_points);
+ }
+ else if (protocols[0].protocol_type == IOP::TAG_INTERNET_IOP)
+ {
+ RTCORBA::TCPProtocolProperties_var tcp_test_transport_protocol_properties =
+ RTCORBA::TCPProtocolProperties::_narrow (test_transport_protocol_properties.in ());
+
+ tcp_test_transport_protocol_properties->enable_network_priority (enable_diffserv_code_points);
+ }
+
+ protocols[0].transport_protocol_properties =
+ test_transport_protocol_properties;
+
+ this->test_protocol_policy_[0] =
+ this->rtorb_->create_client_protocol_policy (protocols);
+}
+
+void
+Worker::print_stats (void)
+{
+ CORBA::ULong missed_total_deadlines =
+ this->missed_start_deadlines_ + this->missed_end_deadlines_;
+
+ CORBA::ULong made_total_deadlines =
+ this->iterations_ - missed_total_deadlines;
+
+ ACE_DEBUG ((LM_DEBUG,
+ "\n************ Statistics ************\n\n"));
+
+ //
+ // Senders-side stats for PACED invocations are not too relevant
+ // since we are doing one way calls.
+ //
+ if (this->test_type_ == ::Protocols::Sender_Controller::PACED)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "Rate = %d/sec; Iterations = %d; ",
+ this->invocation_rate_,
+ this->iterations_));
+
+ if (this->count_missed_end_deadlines_)
+ ACE_DEBUG ((LM_DEBUG,
+ "Deadlines made/missed[start,end]/%% = %d/%d[%d,%d]/%.2f%%; Effective Rate = %.2f\n",
+ made_total_deadlines,
+ missed_total_deadlines,
+ this->missed_start_deadlines_,
+ this->missed_end_deadlines_,
+ made_total_deadlines * 100 / (double) this->iterations_,
+ made_total_deadlines / to_seconds (this->test_end_ - this->test_start_, gsf)));
+ else
+ ACE_DEBUG ((LM_DEBUG,
+ "Deadlines made/missed/%% = %d/%d/%.2f%%; Effective Rate = %.2f\n",
+ made_total_deadlines,
+ missed_total_deadlines,
+ made_total_deadlines * 100 / (double) this->iterations_,
+ made_total_deadlines / to_seconds (this->test_end_ - this->test_start_, gsf)));
+
+ if (this->print_missed_invocations_)
+ {
+ ACE_DEBUG ((LM_DEBUG, "\nMissed start invocations are:\n"));
+
+ for (CORBA::ULong j = 0;
+ j < this->missed_start_deadlines_;
+ ++j)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "%d ",
+ this->missed_start_invocations_[j]));
+ }
+
+ ACE_DEBUG ((LM_DEBUG, "\n"));
+
+ if (this->count_missed_end_deadlines_)
+ {
+ ACE_DEBUG ((LM_DEBUG, "\nMissed end invocations are:\n"));
+
+ for (CORBA::ULong j = 0;
+ j < this->missed_end_deadlines_;
+ ++j)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "%d ",
+ this->missed_end_invocations_[j]));
+ }
+
+ ACE_DEBUG ((LM_DEBUG, "\n"));
+ }
+ }
+ }
+
+ // Individual calls are relevant for the PACED and LATENCY tests.
+ if (this->test_type_ == ::Protocols::Sender_Controller::PACED ||
+ this->test_type_ == ::Protocols::Sender_Controller::LATENCY)
+ {
+ if (this->do_dump_history_)
+ {
+ this->history_.dump_samples (ACE_TEXT("HISTORY"), gsf);
+ }
+
+ ACE_Basic_Stats stats;
+ this->history_.collect_basic_stats (stats);
+ stats.dump_results (ACE_TEXT("Total"), gsf);
+
+ ACE_Throughput_Stats::dump_throughput (ACE_TEXT("Total"), gsf,
+ this->test_end_ - this->test_start_,
+ this->iterations_);
+ }
+ else
+ {
+ ACE_hrtime_t elapsed_time =
+ this->test_end_ - this->test_start_;
+
+ double seconds =
+ to_seconds (elapsed_time, gsf);
+
+ ACE_hrtime_t bits = this->iterations_;
+ bits *= this->message_size_ * 8;
+
+ ACE_DEBUG ((LM_DEBUG,
+ "%Q bits sent in %5.1f seconds at a rate of %5.2f Mbps\n",
+ bits,
+ seconds,
+ bits / seconds / 1000 / 1000));
+ }
+}
+
+ACE_hrtime_t
+Worker::deadline_for_current_call (CORBA::ULong i)
+{
+ ACE_hrtime_t deadline_for_current_call =
+ this->interval_between_calls_;
+
+ deadline_for_current_call *= (i + 1);
+
+ deadline_for_current_call += this->test_start_;
+
+ return deadline_for_current_call;
+}
+
+void
+Worker::missed_start_deadline (CORBA::ULong invocation)
+{
+ this->missed_start_invocations_[this->missed_start_deadlines_++] =
+ invocation;
+}
+
+void
+Worker::missed_end_deadline (CORBA::ULong invocation)
+{
+ if (this->count_missed_end_deadlines_)
+ this->missed_end_invocations_[this->missed_end_deadlines_++] =
+ invocation;
+}
+
+void
+Worker::setup (void)
+{
+ // Make sure we have a connection to the server using the test
+ // protocol.
+ this->policy_manager_->set_policy_overrides (this->test_protocol_policy_,
+ CORBA::SET_OVERRIDE);
+
+ // Since the network maybe unavailable temporarily, make sure to try
+ // for a few times before giving up.
+ for (CORBA::ULong j = 0;;)
+ {
+ try
+ {
+ // Send a message to ensure that the connection is setup.
+ this->test_->oneway_sync ();
+
+ break;
+ }
+ catch (CORBA::TRANSIENT &)
+ {
+ ++j;
+
+ if (j < this->number_of_connection_attempts_)
+ {
+ ACE_OS::sleep (1);
+
+ continue;
+ }
+ }
+
+ ACE_ERROR ((LM_ERROR,
+ "Cannot setup test protocol\n"));
+
+ ACE_OS::exit (-1);
+ }
+
+ const char *test_protocol = 0;
+ if (this->test_protocol_tag_ == IOP::TAG_INTERNET_IOP)
+ test_protocol = "IIOP";
+ else if (this->test_protocol_tag_ == TAO_TAG_DIOP_PROFILE)
+ test_protocol = "DIOP";
+ else if (this->test_protocol_tag_ == TAO_TAG_SCIOP_PROFILE)
+ test_protocol = "SCIOP";
+
+ // Use IIOP for setting up the test since the test protocol maybe
+ // unreliable.
+ this->policy_manager_->set_policy_overrides (this->base_protocol_policy_,
+ CORBA::SET_OVERRIDE);
+
+ // Since the network maybe unavailable temporarily, make sure to try
+ // for a few times before giving up.
+ for (CORBA::ULong k = 0;;)
+ {
+ try
+ {
+ // Let the server know what to expect..
+ this->test_->start_test (this->session_id_,
+ test_protocol,
+ this->invocation_rate_,
+ this->message_size_,
+ this->iterations_);
+
+ break;
+ }
+ catch (CORBA::TRANSIENT &)
+ {
+ ACE_OS::sleep (1);
+
+ if (k < this->number_of_connection_attempts_)
+ {
+ ACE_OS::sleep (1);
+
+ continue;
+ }
+ }
+
+ ACE_ERROR ((LM_ERROR,
+ "Cannot setup base protocol\n"));
+
+ ACE_OS::exit (-1);
+ }
+
+ return;
+}
+
+void
+Worker::run (void)
+{
+ // Select the test protocol for these invocation.
+ this->policy_manager_->set_policy_overrides (this->test_protocol_policy_,
+ CORBA::SET_OVERRIDE);
+
+ // Payload.
+ ::Protocols::test::octets_var payload (new ::Protocols::test::octets);
+ payload->length (this->message_size_);
+
+ CORBA::Octet *buffer =
+ payload->get_buffer ();
+
+ // Not necessary but good for debugging.
+ ACE_OS::memset (buffer,
+ 1,
+ this->message_size_ * sizeof (CORBA::Octet));
+
+ // Record the start time of the test.
+ this->test_start_ =
+ ACE_OS::gethrtime ();
+
+ // Test with several iterations.
+ for (CORBA::ULong i = 0;
+ i < this->iterations_;
+ ++i)
+ {
+ ACE_hrtime_t time_before_call = 0;
+ ACE_hrtime_t deadline_for_current_call = 0;
+
+ // For PACED and LATENCY, each sender call is individually
+ // noted.
+ if (this->test_type_ == ::Protocols::Sender_Controller::PACED ||
+ this->test_type_ == ::Protocols::Sender_Controller::LATENCY)
+ {
+ time_before_call =
+ ACE_OS::gethrtime ();
+
+ // Pacing code.
+ if (this->test_type_ == ::Protocols::Sender_Controller::PACED)
+ {
+ deadline_for_current_call =
+ this->deadline_for_current_call (i);
+
+ if (time_before_call > deadline_for_current_call)
+ {
+ this->missed_start_deadline (i);
+ continue;
+ }
+ }
+ }
+
+ // Use oneways for PACING and THROUGHPUT.
+ if (this->test_type_ == ::Protocols::Sender_Controller::PACED ||
+ this->test_type_ == ::Protocols::Sender_Controller::THROUGHPUT)
+ {
+ this->test_->oneway_method (this->session_id_,
+ i,
+ payload.in ());
+ }
+ else
+ {
+ // Use twoway calls for LATENCY.
+ this->test_->twoway_method (this->session_id_,
+ i,
+ payload.inout ());
+ }
+
+ // For PACED and LATENCY, each sender call is individually
+ // noted.
+ if (this->test_type_ == ::Protocols::Sender_Controller::PACED ||
+ this->test_type_ == ::Protocols::Sender_Controller::LATENCY)
+ {
+ ACE_hrtime_t time_after_call =
+ ACE_OS::gethrtime ();
+
+ if (this->test_type_ == ::Protocols::Sender_Controller::LATENCY)
+ this->history_.sample ((time_after_call - time_before_call) / 2);
+ else
+ this->history_.sample (time_after_call - time_before_call);
+
+ if (this->test_type_ == ::Protocols::Sender_Controller::PACED)
+ {
+ if (time_after_call > deadline_for_current_call)
+ {
+ this->missed_end_deadline (i);
+ continue;
+ }
+
+ ACE_hrtime_t sleep_time =
+ deadline_for_current_call - time_after_call;
+
+ ACE_OS::sleep (ACE_Time_Value (0,
+ long (to_seconds (sleep_time, gsf) *
+ ACE_ONE_SECOND_IN_USECS)));
+ }
+ }
+ }
+
+ // This call is used to ensure that all the THROUGHPUT related data
+ // has reached the server.
+ if (this->test_type_ == ::Protocols::Sender_Controller::THROUGHPUT &&
+ this->test_protocol_tag_ != TAO_TAG_DIOP_PROFILE)
+ {
+ this->test_->twoway_sync ();
+ }
+
+ // Record end time for the test.
+ this->test_end_ = ACE_OS::gethrtime ();
+
+ // Use IIOP to indicate end of test to server.
+ this->policy_manager_->set_policy_overrides (this->base_protocol_policy_,
+ CORBA::SET_OVERRIDE);
+
+ // Tell server that the test is over.
+ this->test_->end_test ();
+}
+
+CIDL_SenderImpl::SenderExec_i::SenderExec_i (void)
+{
+ ACE_DEBUG ((LM_DEBUG, "CIDL_SenderImpl::SenderExec_i::SenderExec_i\n"));
+}
+
+void
+CIDL_SenderImpl::SenderExec_i::start (
+ ::CORBA::ULong iterations,
+ ::CORBA::ULong invocation_rate,
+ ::CORBA::Boolean count_missed_end_deadlines,
+ ::CORBA::Boolean do_dump_history,
+ ::CORBA::Boolean print_missed_invocations,
+ ::CORBA::ULong message_size,
+ ::CORBA::ULong test_protocol_tag,
+ ::CORBA::Boolean print_statistics,
+ ::CORBA::ULong number_of_connection_attempts,
+ ::CORBA::Boolean enable_diffserv_code_points,
+ ::CORBA::Short priority,
+ ::Protocols::Sender_Controller::Test_Type test_type
+ )
+{
+ ACE_DEBUG ((LM_DEBUG, "CIDL_SenderImpl::SenderExec_i::start\n"));
+
+ gsf = ACE_High_Res_Timer::global_scale_factor ();
+
+ int argc = 0;
+ char **argv = 0;
+
+ this->orb_ =
+ CORBA::ORB_init (argc, argv);
+
+ CORBA::Object_var object =
+ this->orb_->resolve_initial_references ("RTORB");
+
+ RTCORBA::RTORB_var rtorb =
+ RTCORBA::RTORB::_narrow (object.in ());
+
+ object =
+ this->orb_->resolve_initial_references ("ORBPolicyManager");
+
+ CORBA::PolicyManager_var policy_manager =
+ CORBA::PolicyManager::_narrow (object.in ());
+
+ object =
+ this->orb_->resolve_initial_references ("NetworkPriorityMappingManager");
+
+ RTCORBA::NetworkPriorityMappingManager_var mapping_manager =
+ RTCORBA::NetworkPriorityMappingManager::_narrow (object.in ());
+
+ Custom_Network_Priority_Mapping *custom_network_priority_mapping =
+ new Custom_Network_Priority_Mapping;
+
+ // Set the desired corba priority on the network mapping manager
+ custom_network_priority_mapping->corba_priority (priority);
+
+ mapping_manager->mapping (custom_network_priority_mapping);
+
+ Protocols::test_var test =
+ this->context_->get_connection_reader ();
+
+ Worker worker (this->orb_.in (),
+ rtorb.in (),
+ policy_manager.in (),
+ test.in (),
+ iterations,
+ invocation_rate,
+ count_missed_end_deadlines,
+ do_dump_history,
+ print_missed_invocations,
+ message_size,
+ test_protocol_tag,
+ number_of_connection_attempts,
+ enable_diffserv_code_points,
+ test_type);
+
+ worker.setup ();
+
+ worker.run ();
+
+ if (print_statistics)
+ worker.print_stats ();
+}
+
+void
+CIDL_SenderImpl::SenderExec_i::shutdown (void)
+{
+ ACE_DEBUG ((LM_DEBUG, "CIDL_SenderImpl::SenderExec_i::shutdown\n"));
+ this->orb_->shutdown ();
+}
+
+void
+CIDL_SenderImpl::SenderExec_i::set_session_context (
+ Components::SessionContext_ptr ctx
+ )
+{
+ ACE_DEBUG ((LM_DEBUG, "CIDL_SenderImpl::SenderExec_i::set_session_context\n"));
+
+ this->context_ =
+ ::CIAO_Protocols_Sender_Impl::Sender_Exec_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ throw CORBA::INTERNAL ();
+}
+
+void
+CIDL_SenderImpl::SenderExec_i::ccm_activate (void)
+{
+ ACE_DEBUG ((LM_DEBUG, "CIDL_SenderImpl::SenderExec_i::ccm_activate\n"));
+}
+
+void
+CIDL_SenderImpl::SenderExec_i::ccm_passivate (void)
+{
+ ACE_DEBUG ((LM_DEBUG, "CIDL_SenderImpl::SenderExec_i::ccm_passivate\n"));
+}
+
+void
+CIDL_SenderImpl::SenderExec_i::ccm_remove (void)
+{
+ ACE_DEBUG ((LM_DEBUG, "CIDL_SenderImpl::SenderExec_i::ccm_remove\n"));
+}
+
+
+void
+CIDL_SenderImpl::SenderExec_i::configuration_complete (void)
+{
+ ACE_DEBUG ((LM_DEBUG, "CIDL_SenderImpl::SenderExec_i::configuration_complete\n"));
+}
+
+::Components::EnterpriseComponent_ptr
+CIDL_SenderImpl::SenderHomeExec_i::create (void)
+{
+ ACE_DEBUG ((LM_DEBUG, "CIDL_SenderImpl::SenderHome_exec::create\n"));
+ return new CIDL_SenderImpl::SenderExec_i;
+}
+
+extern "C" SENDER_EXEC_Export ::Components::HomeExecutorBase_ptr
+createSenderHome_Impl (void)
+{
+ ACE_DEBUG ((LM_DEBUG, "createSenderHome_Impl\n"));
+ return new CIDL_SenderImpl::SenderHomeExec_i;
+}
diff --git a/modules/CIAO/performance-tests/Protocols/Sender/Sender_exec.h b/modules/CIAO/performance-tests/Protocols/Sender/Sender_exec.h
new file mode 100644
index 00000000000..9d2d307a406
--- /dev/null
+++ b/modules/CIAO/performance-tests/Protocols/Sender/Sender_exec.h
@@ -0,0 +1,62 @@
+// $Id$
+
+#include "SenderEC.h"
+#include "Sender_exec_export.h"
+#include "tao/LocalObject.h"
+
+class Custom_Network_Priority_Mapping;
+
+namespace CIDL_SenderImpl
+{
+ class SENDER_EXEC_Export SenderExec_i :
+ public virtual ::CIAO_Protocols_Sender_Impl::Sender_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+
+ SenderExec_i (void);
+
+ void start (::CORBA::ULong iterations,
+ ::CORBA::ULong invocation_rate,
+ ::CORBA::Boolean count_missed_end_deadlines,
+ ::CORBA::Boolean do_dump_history,
+ ::CORBA::Boolean print_missed_invocations,
+ ::CORBA::ULong message_size,
+ ::CORBA::ULong test_protocol_tag,
+ ::CORBA::Boolean print_statistics,
+ ::CORBA::ULong number_of_connection_attempts,
+ ::CORBA::Boolean enable_diffserv_code_points,
+ ::CORBA::Short priority,
+ ::Protocols::Sender_Controller::Test_Type test_type);
+
+ void shutdown (void);
+
+ void set_session_context (Components::SessionContext_ptr ctx);
+
+ void ccm_activate (void);
+
+ void ccm_passivate (void);
+
+ void ccm_remove (void);
+
+ void configuration_complete (void);
+
+ protected:
+ ::CIAO_Protocols_Sender_Impl::Sender_Exec_Context_var context_;
+
+ CORBA::ORB_var orb_;
+
+ };
+
+ class SENDER_EXEC_Export SenderHomeExec_i :
+ public virtual ::CIAO_Protocols_Sender_Impl::SenderHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+
+ ::Components::EnterpriseComponent_ptr create (void);
+ };
+
+ extern "C" SENDER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ createSenderHome_Impl (void);
+}
diff --git a/modules/CIAO/performance-tests/Protocols/common/Protocols.idl b/modules/CIAO/performance-tests/Protocols/common/Protocols.idl
new file mode 100644
index 00000000000..c7b3360e61a
--- /dev/null
+++ b/modules/CIAO/performance-tests/Protocols/common/Protocols.idl
@@ -0,0 +1,32 @@
+// $Id$
+#ifndef PROTOCOLS_IDL
+#define PROTOCOLS_IDL
+module Protocols
+{
+ interface test
+ {
+ void start_test (in long session_id,
+ in string protocol,
+ in unsigned long invocation_rate,
+ in unsigned long message_size,
+ in unsigned long iterations);
+
+ void end_test ();
+
+ oneway void oneway_sync ();
+
+ void twoway_sync ();
+
+ typedef sequence<octet> octets;
+
+ oneway void oneway_method (in long session_id,
+ in unsigned long iteration,
+ in octets payload);
+
+ void twoway_method (inout long session_id,
+ inout unsigned long iteration,
+ inout octets payload);
+ };
+};
+
+#endif
diff --git a/modules/CIAO/performance-tests/Protocols/common/Protocols.mpc b/modules/CIAO/performance-tests/Protocols/common/Protocols.mpc
new file mode 100644
index 00000000000..31ee88b18e8
--- /dev/null
+++ b/modules/CIAO/performance-tests/Protocols/common/Protocols.mpc
@@ -0,0 +1,78 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Protocols"
+
+project(Protocols_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=PROTOCOLS_STUB_Export \
+ -Wb,stub_export_include=Protocols_stub_export.h \
+ -Wb,skel_export_macro=PROTOCOLS_SKEL_Export \
+ -Wb,skel_export_include=Protocols_skel_export.h
+
+ IDL_Files {
+ Protocols.idl
+ }
+}
+
+project(Protocols_lem_gen) : componentidldefaults {
+ after += Protocols_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=PROTOCOLS_STUB_Export \
+ -Wb,stub_export_include=Protocols_stub_export.h \
+ -Wb,skel_export_macro=PROTOCOLS_SKEL_Export \
+ -Wb,skel_export_include=Protocols_skel_export.h -SS
+
+ IDL_Files {
+ ProtocolsE.idl
+ }
+}
+
+project(Protocols_stub) : ccm_stub {
+ after += Protocols_lem_gen
+
+ sharedname = Protocols_stub
+ dynamicflags = PROTOCOLS_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ProtocolsC.cpp
+ ProtocolsEC.cpp
+ }
+
+ Header_Files {
+ ProtocolsC.h
+ Protocols_stub_export.h
+ }
+
+ Inline_Files {
+ ProtocolsC.inl
+ }
+}
+
+
+project(Protocols_skel) : ciao_executor {
+ after += Protocols_stub
+ sharedname = Protocols_skel
+ libs += Protocols_stub
+
+ dynamicflags = PROTOCOLS_SKEL_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ProtocolsS.cpp
+ }
+
+ Header_Files {
+ ProtocolsS.h
+ Protocols_skel_export.h
+ }
+
+ Inline_Files {
+ ProtocolsS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/performance-tests/Protocols/descriptors/CIAO_Installation_Data.ini b/modules/CIAO/performance-tests/Protocols/descriptors/CIAO_Installation_Data.ini
new file mode 100644
index 00000000000..379d481d131
--- /dev/null
+++ b/modules/CIAO/performance-tests/Protocols/descriptors/CIAO_Installation_Data.ini
@@ -0,0 +1,5 @@
+[ComponentInstallation]
+DCE:83d9348a-3248-445c-82c6-e38294943d65=Protocols_Sender_exec
+DCE:2c16cd81-a364-4422-b9e0-ee2ebe084954=Protocols_Sender_svnt
+DCE:6b6d29ca-c6e7-4823-806d-157113767331=Protocols_Receiver_svnt
+DCE:34b61767-2b7d-459d-985d-ece6255275d5=Protocols_Receiver_exec
diff --git a/modules/CIAO/performance-tests/Protocols/descriptors/Receiver.csd b/modules/CIAO/performance-tests/Protocols/descriptors/Receiver.csd
new file mode 100644
index 00000000000..44606201edc
--- /dev/null
+++ b/modules/CIAO/performance-tests/Protocols/descriptors/Receiver.csd
@@ -0,0 +1,40 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- $Id$ -->
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE softpkg SYSTEM "../../../docs/XML/softpkg.dtd">
+
+<softpkg name="Receiver" version="1.0">
+
+ <pkgtype>CORBA Component</pkgtype>
+
+ <title>Receiver</title>
+
+ <idl id="IDL:Protocols/Receiver:1.0"
+ homeid="IDL:Protocols/ReceiverHome:1.0">
+ <fileinarchive name="Receiver.idl"/>
+ </idl>
+
+ <descriptor type="CORBA Component">
+ <fileinarchive name="Receiver.ccd"/>
+ </descriptor>
+
+ <implementation id="DCE:34b61767-2b7d-459d-985d-ece6255275d5">
+
+ <!-- CIAO extension -->
+ <dependency type="CIAODLL">
+ <softpkgref>
+ <fileinarchive name="Receiver.ssd"/>
+ <implref idref="DCE:6b6d29ca-c6e7-4823-806d-157113767331"/>
+ </softpkgref>
+ </dependency>
+
+ <code type="DLL">
+ <fileinarchive name="Protocols_Receiver_exec"/>
+ <entrypoint>createReceiverHome_Impl</entrypoint>
+ </code>
+
+ </implementation>
+
+</softpkg>
diff --git a/modules/CIAO/performance-tests/Protocols/descriptors/Receiver.ssd b/modules/CIAO/performance-tests/Protocols/descriptors/Receiver.ssd
new file mode 100644
index 00000000000..83f896c5416
--- /dev/null
+++ b/modules/CIAO/performance-tests/Protocols/descriptors/Receiver.ssd
@@ -0,0 +1,37 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- $Id$ -->
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE softpkg SYSTEM "../../../docs/XML/softpkg.dtd">
+
+<softpkg name="Receiver-Servant" version="1.0">
+
+ <pkgtype>CIAO Servant</pkgtype>
+
+ <title>componentizedSender::Receiver Servants</title>
+
+ <idl id="IDL:Protocols/Receiver:1.0"
+ homeid="IDL:Protocols/ReceiverHome:1.0">
+ <fileinarchive name="Receiver.idl"/>
+ </idl>
+
+ <descriptor type="CORBA Component">
+ <fileinarchive name="Receiver.ccd"/>
+ </descriptor>
+
+ <implementation id="DCE:6b6d29ca-c6e7-4823-806d-157113767331">
+
+ <dependency type="ORB">
+ <name>TAO</name>
+ </dependency>
+
+ <code>
+ <!-- No need to specify extension below since ACE takes care of that, -->
+ <fileinarchive name="Protocols_Receiver_svnt"/>
+ <entrypoint>createReceiverHome_Servant</entrypoint>
+ </code>
+
+ </implementation>
+
+</softpkg>
diff --git a/modules/CIAO/performance-tests/Protocols/descriptors/Sender.csd b/modules/CIAO/performance-tests/Protocols/descriptors/Sender.csd
new file mode 100644
index 00000000000..f2d899f3338
--- /dev/null
+++ b/modules/CIAO/performance-tests/Protocols/descriptors/Sender.csd
@@ -0,0 +1,40 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- $Id$ -->
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE softpkg SYSTEM "../../../docs/XML/softpkg.dtd">
+
+<softpkg name="Sender" version="1.0">
+
+ <pkgtype>CORBA Component</pkgtype>
+
+ <title>Sender</title>
+
+ <idl id="IDL:Protocols/Sender:1.0"
+ homeid="IDL:Protocols/SenderHome:1.0">
+ <fileinarchive name="Sender.idl"/>
+ </idl>
+
+ <descriptor type="CORBA Component">
+ <fileinarchive name="Sender.ccd"/>
+ </descriptor>
+
+ <implementation id="DCE:83d9348a-3248-445c-82c6-e38294943d65">
+
+ <!-- CIAO extension -->
+ <dependency type="CIAODLL">
+ <softpkgref>
+ <fileinarchive name="Sender.ssd"/>
+ <implref idref="DCE:2c16cd81-a364-4422-b9e0-ee2ebe084954"/>
+ </softpkgref>
+ </dependency>
+
+ <code type="DLL">
+ <fileinarchive name="Protocols_Sender_exec"/>
+ <entrypoint>createSenderHome_Impl</entrypoint>
+ </code>
+
+ </implementation>
+
+</softpkg>
diff --git a/modules/CIAO/performance-tests/Protocols/descriptors/Sender.ssd b/modules/CIAO/performance-tests/Protocols/descriptors/Sender.ssd
new file mode 100644
index 00000000000..411bbbc66d6
--- /dev/null
+++ b/modules/CIAO/performance-tests/Protocols/descriptors/Sender.ssd
@@ -0,0 +1,37 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- $Id$ -->
+<!-- If this file is moved to a different directory, make sure to change the
+ path to the DTD below. Otherwise the examples won't work. -->
+<!DOCTYPE softpkg SYSTEM "../../../docs/XML/softpkg.dtd">
+
+<softpkg name="Sender-Servant" version="1.0">
+
+ <pkgtype>CIAO Servant</pkgtype>
+
+ <title>componentizedSender::Sender Servants</title>
+
+ <idl id="IDL:Protocols/Sender:1.0"
+ homeid="IDL:Protocols/SenderHome:1.0">
+ <fileinarchive name="Sender.idl"/>
+ </idl>
+
+ <descriptor type="CORBA Component">
+ <fileinarchive name="Sender.ccd"/>
+ </descriptor>
+
+ <implementation id="DCE:2c16cd81-a364-4422-b9e0-ee2ebe084954">
+
+ <dependency type="ORB">
+ <name>TAO</name>
+ </dependency>
+
+ <code>
+ <!-- No need to specify extension below since ACE takes care of that, -->
+ <fileinarchive name="Protocols_Sender_svnt"/>
+ <entrypoint>createSenderHome_Servant</entrypoint>
+ </code>
+
+ </implementation>
+
+</softpkg>
diff --git a/modules/CIAO/performance-tests/Protocols/descriptors/default.cad b/modules/CIAO/performance-tests/Protocols/descriptors/default.cad
new file mode 100644
index 00000000000..7f518423e70
--- /dev/null
+++ b/modules/CIAO/performance-tests/Protocols/descriptors/default.cad
@@ -0,0 +1,59 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- $Id$ -->
+<!-- This file must be pre-processed for final location based on $CIAO_ROOT -->
+<!DOCTYPE componentassembly SYSTEM "../../../docs/XML/componentassembly.dtd">
+
+
+<componentassembly id="componentized assembly">
+
+ <componentfiles>
+
+ <componentfile id="com-Sender">
+ <fileinarchive name="Sender.csd"/>
+ </componentfile>
+
+ <componentfile id="com-Receiver">
+ <fileinarchive name="Receiver.csd"/>
+ </componentfile>
+
+ </componentfiles>
+
+ <partitioning>
+
+ <homeplacement id="a_SenderHome">
+ <componentfileref idref="com-Sender"/>
+ <componentinstantiation id="a_Sender">
+ <registercomponent>
+ <writeiortofile name="sender.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+
+ <homeplacement id="a_ReceiverHome">
+ <componentfileref idref="com-Receiver"/>
+ <componentinstantiation id="a_Receiver">
+ <registercomponent>
+ <writeiortofile name="receiver.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+
+ </partitioning>
+
+ <connections>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>reader</usesidentifier>
+ <componentinstantiationref idref="a_Sender"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>writer</providesidentifier>
+ <componentinstantiationref idref="a_Receiver"/>
+ </providesport>
+ </connectinterface>
+
+ </connections>
+
+</componentassembly>
diff --git a/modules/CIAO/performance-tests/Protocols/descriptors/remote.cad b/modules/CIAO/performance-tests/Protocols/descriptors/remote.cad
new file mode 100644
index 00000000000..d17a09a25e8
--- /dev/null
+++ b/modules/CIAO/performance-tests/Protocols/descriptors/remote.cad
@@ -0,0 +1,62 @@
+<?xml version="1.0"?> <!-- -*- SGML -*- -->
+
+<!-- $Id$ -->
+<!-- This file must be pre-processed for final location based on $CIAO_ROOT -->
+<!DOCTYPE componentassembly SYSTEM "../../../docs/XML/componentassembly.dtd">
+
+
+<componentassembly id="componentized assembly">
+
+ <componentfiles>
+
+ <componentfile id="com-Sender">
+ <fileinarchive name="Sender.csd"/>
+ </componentfile>
+
+ <componentfile id="com-Receiver">
+ <fileinarchive name="Receiver.csd"/>
+ </componentfile>
+
+ </componentfiles>
+
+ <partitioning>
+
+ <homeplacement id="a_SenderHome">
+ <componentfileref idref="com-Sender"/>
+ <componentinstantiation id="a_Sender">
+ <registercomponent>
+ <writeiortofile name="sender.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+
+ <processcollocation>
+ <homeplacement id="a_ReceiverHome">
+ <componentfileref idref="com-Receiver"/>
+ <componentinstantiation id="a_Receiver">
+ <registercomponent>
+ <writeiortofile name="receiver.ior"/>
+ </registercomponent>
+ </componentinstantiation>
+ </homeplacement>
+ <destination>Remote</destination>
+ </processcollocation>
+
+ </partitioning>
+
+ <connections>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>reader</usesidentifier>
+ <componentinstantiationref idref="a_Sender"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>writer</providesidentifier>
+ <componentinstantiationref idref="a_Receiver"/>
+ </providesport>
+ </connectinterface>
+
+ </connections>
+
+</componentassembly>
diff --git a/modules/CIAO/performance-tests/Protocols/descriptors/run_test.pl b/modules/CIAO/performance-tests/Protocols/descriptors/run_test.pl
new file mode 100755
index 00000000000..b9ec459dcde
--- /dev/null
+++ b/modules/CIAO/performance-tests/Protocols/descriptors/run_test.pl
@@ -0,0 +1,77 @@
+# -*- perl -*-
+# $Id$
+
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+use lib "$ENV{'ACE_ROOT'}/bin";
+use PerlACE::Run_Test;
+
+$ACE_ROOT = $ENV {'ACE_ROOT'};
+$CIAO_ROOT = $ENV {'CIAO_ROOT'};
+
+$ORBdebuglevel = 0;
+$protocols = "-ORBEndpoint \'iiop://\'";
+#$protocols = "-ORBEndpoint \'iiop://;diop://:5678;sciop://\'";
+
+$daemon_1 = new PerlACE::Process ("${CIAO_ROOT}/tools/Daemon/CIAO_Daemon",
+ "-ORBEndpoint iiop://localhost:20000 " .
+ "-n \"${CIAO_ROOT}/tools/RTComponentServer/RTComponentServer -ORBdebuglevel $ORBdebuglevel\"");
+
+$daemon_2 = new PerlACE::Process ("${CIAO_ROOT}/tools/Daemon/CIAO_Daemon",
+ "-ORBEndpoint iiop://localhost:12000 " .
+ "-n \"${CIAO_ROOT}/tools/RTComponentServer/RTComponentServer -ORBdebuglevel $ORBdebuglevel $protocols\"");
+
+$assembly_manager_args = "-o assembly_manager.ior -c test.dat";
+$assembly_manager = new PerlACE::Process ("${CIAO_ROOT}/tools/Assembly_Deployer/Assembly_Manager", "$assembly_manager_args");
+
+$assembly_deployer_args = "-k file://assembly_manager.ior -a remote.cad -o assembly";
+$assembly_deployer = new PerlACE::Process ("${CIAO_ROOT}/tools/Assembly_Deployer/Assembly_Deployer", "$assembly_deployer_args");
+
+$controller = new PerlACE::Process ("../Controller/Controller", "-x 1 -z 1");
+
+# Remove all ior files
+unlink "assembly_manager.ior";
+unlink "daemon.ior";
+unlink "receiver.ior";
+unlink "sender.ior";
+unlink "assembly";
+
+# Start the daemons.
+$daemon_1->Spawn ();
+$daemon_2->Spawn ();
+
+# Start the assembly manager
+$assembly_manager->Spawn ();
+
+# Wait till the assembly manager finishes writing the IOR
+PerlACE::waitforfile ("assembly_manager.ior");
+
+# Start the Assembly_Deployer
+$assembly_deployer->Spawn ();
+
+# Wait till the sender and receiver to finish writing their IORs
+PerlACE::waitforfile ("sender.ior");
+PerlACE::waitforfile ("receiver.ior");
+
+# Now start the controller
+$controller->Spawn ();
+
+# Wait for controller to get done.
+$controller->Wait ();
+$controller->{RUNNING} = 0;
+
+# Kill daemons.
+$daemon_1->Kill ();
+$daemon_2->Kill ();
+$assembly_manager->Kill ();
+$assembly_deployer->Kill ();
+
+# Remove all ior files
+unlink "assembly_manager.ior";
+unlink "daemon.ior";
+unlink "receiver.ior";
+unlink "sender.ior";
+unlink "assembly";
+
diff --git a/modules/CIAO/performance-tests/Protocols/descriptors/svc.conf b/modules/CIAO/performance-tests/Protocols/descriptors/svc.conf
new file mode 100644
index 00000000000..711df131ebc
--- /dev/null
+++ b/modules/CIAO/performance-tests/Protocols/descriptors/svc.conf
@@ -0,0 +1 @@
+dynamic Advanced_Resource_Factory Service_Object * TAO_Strategies:_make_TAO_Advanced_Resource_Factory()
diff --git a/modules/CIAO/performance-tests/Protocols/descriptors/test.dat b/modules/CIAO/performance-tests/Protocols/descriptors/test.dat
new file mode 100644
index 00000000000..57f2cfb0c76
--- /dev/null
+++ b/modules/CIAO/performance-tests/Protocols/descriptors/test.dat
@@ -0,0 +1,2 @@
+Default corbaloc:iiop:localhost:20000/ServerActivator
+Remote corbaloc:iiop:localhost:12000/ServerActivator \ No newline at end of file
diff --git a/modules/CIAO/performance-tests/mico/mico-thrput-st/README b/modules/CIAO/performance-tests/mico/mico-thrput-st/README
new file mode 100644
index 00000000000..ee534c0c0a4
--- /dev/null
+++ b/modules/CIAO/performance-tests/mico/mico-thrput-st/README
@@ -0,0 +1,26 @@
+//
+//$Id$
+//
+Throughput Experiment
+====================
+
+This experiment is used to gather latency and throughput related metrics for MICO ORB.
+The benchmark uses ACE to analyze the data sample and generate results. In order to run
+this benchmark the following is required
+
+1: MICO ORB configured in single-threaded mode
+2: This directory placed under $MICO_ROOT/demo/<name-of-directory>
+3: The envrionment setting required for running this test is provided in
+ the mico-env file.
+4: These tests can only run on *nix systems as of now. For windows project files will
+ be added shortly
+
+Compilation
+===========
+To compile the files
+
+$make
+
+To run the experiment
+=====================
+./RoundTrip
diff --git a/modules/CIAO/performance-tests/mico/mico-thrput-st/RoundTrip b/modules/CIAO/performance-tests/mico/mico-thrput-st/RoundTrip
new file mode 100755
index 00000000000..395ef4f73e4
--- /dev/null
+++ b/modules/CIAO/performance-tests/mico/mico-thrput-st/RoundTrip
@@ -0,0 +1,40 @@
+#!/bin/sh
+
+MICORC=/dev/null
+export MICORC
+
+# run Naming Service
+
+echo "Starting Naming Service ..."
+
+rm -f nsd.ior
+nsd --ior nsd.ior &
+nsd_pid=$!
+
+trap "kill $nsd_pid > /dev/null 2> /dev/null" 0
+
+# wait for Naming Service to start
+
+for i in 0 1 2 3 4 5 6 7 8 9 ; do
+ if test -r nsd.ior ; then break ; else sleep 1 ; fi
+done
+
+# start Server
+
+echo "Starting Server ..."
+
+./server -ORBInitRef NameService=file://`pwd`/nsd.ior &
+server_pid=$!
+
+trap "kill $nsd_pid $server_pid > /dev/null 2> /dev/null" 0
+
+# give server some time to start
+
+sleep 3
+
+# run Client
+
+echo "Running Client ..."
+
+./client -ORBInitRef NameService=file://`pwd`/nsd.ior -i 500000
+
diff --git a/modules/CIAO/performance-tests/mico/mico-thrput-st/RoundTrip.idl b/modules/CIAO/performance-tests/mico/mico-thrput-st/RoundTrip.idl
new file mode 100644
index 00000000000..475433dfec4
--- /dev/null
+++ b/modules/CIAO/performance-tests/mico/mico-thrput-st/RoundTrip.idl
@@ -0,0 +1,13 @@
+//$Id$
+interface Roundtrip
+{
+ /// A simple method to measure roundtrip delays
+ /**
+ * The operation simply returns its argument, this is used in AMI
+ * and deferred synchronous tests to measure the roundtrip delay
+ * without the need for a different reply handler for each
+ * request.
+ */
+ unsigned long long test_method (in unsigned long long send_time);
+
+};
diff --git a/modules/CIAO/performance-tests/mico/mico-thrput-st/RoundTrip_impl.cc b/modules/CIAO/performance-tests/mico/mico-thrput-st/RoundTrip_impl.cc
new file mode 100644
index 00000000000..88338765186
--- /dev/null
+++ b/modules/CIAO/performance-tests/mico/mico-thrput-st/RoundTrip_impl.cc
@@ -0,0 +1,10 @@
+//
+//$Id$
+//
+
+#include "RoundTrip_impl.h"
+
+CORBA::ULongLong RoundTrip_impl::test_method (CORBA::ULongLong send_time)
+{
+ return send_time;
+}
diff --git a/modules/CIAO/performance-tests/mico/mico-thrput-st/RoundTrip_impl.h b/modules/CIAO/performance-tests/mico/mico-thrput-st/RoundTrip_impl.h
new file mode 100644
index 00000000000..86213cf1b9d
--- /dev/null
+++ b/modules/CIAO/performance-tests/mico/mico-thrput-st/RoundTrip_impl.h
@@ -0,0 +1,9 @@
+//
+//$Id$
+//
+#include "RoundTrip.h"
+
+class RoundTrip_impl : virtual public POA_Roundtrip {
+ public:
+ CORBA::ULongLong test_method (CORBA::ULongLong send_time);
+};
diff --git a/modules/CIAO/performance-tests/mico/mico-thrput-st/client.cc b/modules/CIAO/performance-tests/mico/mico-thrput-st/client.cc
new file mode 100644
index 00000000000..8c3a1529975
--- /dev/null
+++ b/modules/CIAO/performance-tests/mico/mico-thrput-st/client.cc
@@ -0,0 +1,150 @@
+//
+//$Id$
+//
+//FUZZ: disable check_for_missing_rir_env
+
+#define USE_POA
+//#define NESTED
+
+#include <CORBA.h>
+#include <coss/CosNaming.h>
+
+#ifdef HAVE_ANSI_CPLUSPLUS_HEADERS
+#include <iostream>
+#else // HAVE_ANSI_CPLUSPLUS_HEADERS
+#include <iostream.h>
+#endif // HAVE_ANSI_CPLUSPLUS_HEADERS
+
+#include "RoundTrip.h"
+
+#include "ace/Get_Opt.h"
+#include "ace/High_Res_Timer.h"
+#include "ace/Sched_Params.h"
+#include "ace/Stats.h"
+#include "ace/Sample_History.h"
+
+using namespace std;
+
+
+int do_dump_history = 0;
+int niterations = 1000;
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ //parse arguments
+ ACE_Get_Opt get_opts (argc, argv, "hxi:");
+ char c;
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'h':
+ do_dump_history = 1;
+ break;
+
+ case 'i':
+ niterations = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+
+ case '?':
+ default:
+ /* Could be any other parameter like -ORBSvcConf file so ignore */
+ break;
+ }
+ // Indicates sucessful parsing of the command line
+ return 0;
+}
+
+void
+set_priority ()
+{
+ int priority =
+ (ACE_Sched_Params::priority_min (ACE_SCHED_FIFO)
+ + ACE_Sched_Params::priority_max (ACE_SCHED_FIFO)) / 2;
+ // Enable FIFO scheduling, e.g., RT scheduling class on Solaris.
+
+ if (ACE_OS::sched_params (ACE_Sched_Params (ACE_SCHED_FIFO,
+ priority,
+ ACE_SCOPE_PROCESS)) != 0)
+ {
+ if (ACE_OS::last_error () == EPERM)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "client (%P|%t): user is not superuser, "
+ "test runs in time-shared class\n"));
+ }
+ else
+ ACE_ERROR ((LM_ERROR,
+ "client (%P|%t): sched_params failed\n"));
+ }
+
+}
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ CORBA::Object_var obj = orb->resolve_initial_references ("NameService");
+ CosNaming::NamingContextExt_var nc =
+ CosNaming::NamingContextExt::_narrow (obj);
+ assert (!CORBA::is_nil (nc));
+
+ //Obtain reference from the naming context
+ obj = nc->resolve_str ("RoundTrip");
+
+ Roundtrip_var bench = Roundtrip::_narrow (obj);
+
+ parse_args(argc, argv);
+ set_priority();
+
+ //Warmup the System by making some empty calls
+ CORBA::Long start = 0L;
+ for (int j = 0; j < 100; ++j)
+ {
+ bench->test_method (start);
+ }
+
+
+ CORBA::ULongLong time_stamp = 1234;
+ ACE_Sample_History history (niterations);
+ ACE_hrtime_t test_start = ACE_OS::gethrtime ();
+
+ for (int i = 0; i < niterations; ++i)
+ {
+
+ ACE_hrtime_t start = ACE_OS::gethrtime ();
+
+ bench->test_method (time_stamp);
+
+ ACE_hrtime_t now = ACE_OS::gethrtime ();
+ history.sample (now - start);
+ }
+
+ ACE_hrtime_t test_end = ACE_OS::gethrtime ();
+
+ ACE_DEBUG ((LM_DEBUG, "test finished\n"));
+
+ ACE_DEBUG ((LM_DEBUG, "High resolution timer calibration...."));
+ ACE_UINT32 gsf = ACE_High_Res_Timer::global_scale_factor ();
+ ACE_DEBUG ((LM_DEBUG, "done\n"));
+
+ if (do_dump_history)
+ {
+ history.dump_samples ("HISTORY", gsf);
+ }
+
+ ACE_Basic_Stats stats;
+ history.collect_basic_stats (stats);
+ stats.dump_results ("Total", gsf);
+
+ ACE_Throughput_Stats::dump_throughput ("Total", gsf,
+ test_end - test_start,
+ stats.samples_count ());
+
+ //Remove the component
+ cout << "client finished" << endl;
+
+ return 0;
+}
diff --git a/modules/CIAO/performance-tests/mico/mico-thrput-st/mico-env b/modules/CIAO/performance-tests/mico/mico-thrput-st/mico-env
new file mode 100755
index 00000000000..67b444acef9
--- /dev/null
+++ b/modules/CIAO/performance-tests/mico/mico-thrput-st/mico-env
@@ -0,0 +1,14 @@
+##############
+## MICO ENVIRONMENT SETTINGS
+#############
+#
+# If MICO has been built in /build/ccm/mico-obj
+# then add the following to your path and Library paths
+# for Bash Shell:
+#
+#export PATH=/build/ccm/mico-obj/bin:$PATH
+#export LD_LIBRARY_PATH=/build/ccm/mico-obj/lib:$LD_LIBRARY_PATH
+#
+# Note: The place where object files and binaries are built could be
+# different from source files. The environment variables use the obj
+# path rather than source path
diff --git a/modules/CIAO/performance-tests/mico/mico-thrput-st/server.cc b/modules/CIAO/performance-tests/mico/mico-thrput-st/server.cc
new file mode 100644
index 00000000000..f6c5b2a397f
--- /dev/null
+++ b/modules/CIAO/performance-tests/mico/mico-thrput-st/server.cc
@@ -0,0 +1,43 @@
+//
+//$Id$
+//
+// FUZZ: disable check_for_missing_rir_env
+#include <CORBA.h>
+#include <coss/CosNaming.h>
+
+#ifdef HAVE_ANSI_CPLUSPLUS_HEADERS
+#include <iostream>
+#else // HAVE_ANSI_CPLUSPLUS_HEADERS
+#include <iostream.h>
+#endif // HAVE_ANSI_CPLUSPLUS_HEADERS
+
+#include "RoundTrip_impl.h"
+int
+ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, "mico-local-orb");
+
+ //Obtain reference to Naming service
+ CORBA::Object_var naming_context_object =
+ orb->resolve_initial_references ("NameService");
+ CosNaming::NamingContext_var naming_context =
+ CosNaming::NamingContext::_narrow (naming_context_object.in ());
+
+ CORBA::Object_var obj = orb->resolve_initial_references ("RootPOA");
+ PortableServer::POA_var poa = PortableServer::POA::_narrow (obj);
+ RoundTrip_impl* rt_impl = new RoundTrip_impl();
+ PortableServer::ObjectId_var oid = poa->activate_object (rt_impl);
+ Roundtrip_var rt_obj = rt_impl->_this();
+
+ //Add to Naming Service
+ CosNaming::Name name (1);
+ name.length (1);
+ name[0].id = CORBA::string_dup ("RoundTrip");
+ naming_context->bind (name, rt_obj.in());
+
+ //allow incoming requests
+ poa->the_POAManager()->activate();
+
+ orb->run ();
+ return 0;
+}
diff --git a/modules/CIAO/rules.ciao.GNU b/modules/CIAO/rules.ciao.GNU
new file mode 100644
index 00000000000..d181ccdb9b2
--- /dev/null
+++ b/modules/CIAO/rules.ciao.GNU
@@ -0,0 +1,66 @@
+# -*- Makefile -*-
+
+#----------------------------------------------------------------------------
+#
+# $Id$
+#
+# Common Makefile rules for all of CIAO
+#
+#----------------------------------------------------------------------------
+
+ifndef TAO_ROOT
+ TAO_ROOT = $(ACE_ROOT)/TAO
+endif
+
+ifndef CIAO_ROOT
+ CIAO_ROOT = $(TAO_ROOT)/CIAO
+endif
+
+CIAO_ROOT := $(subst \,/,$(CIAO_ROOT))
+
+ifndef TAO_IDL3_TO_IDL2
+ TAO_IDL3_TO_IDL2 = $(CIAO_ROOT)/tools/IDL3_TO_IDL2/tao_idl3_to_idl2
+ TAO_IDL3_TO_IDL2_DEP = $(TAO_IDL3_TO_IDL2)$(EXEEXT)
+else
+ifndef TAO_IDL3_TO_IDL2_DEP
+ TAO_IDL3_TO_IDL2_DEP = $(TAO_IDL3_TO_IDL2)
+endif
+endif
+
+ifeq (,$(findstring -L$(CIAO_ROOT)/ciao,$(LDFLAGS)))
+ LDFLAGS += -L$(CIAO_ROOT)/ciao
+endif
+ifeq (,$(findstring -I$(CIAO_ROOT),$(INCLDIRS)))
+ INCLDIRS += -I$(CIAO_ROOT)
+endif
+
+# Turn on symbol versioning. The scheme that we follow is to allow
+# applications dependent on libraries, with same version numbers (major,
+# minor and beta) to run, but applications with dependencies on libraries
+# with different minor or major or beta versions to fail.
+#
+ifeq (cmd,$(findstring cmd,$(SHELL)))
+CIAO_MAJOR_VERSION := $(shell awk "/CIAO_MAJOR_VERSION/ { print $$3}" ${CIAO_ROOT}/ciao/Version.h)
+CIAO_MINOR_VERSION := $(shell awk "/CIAO_MINOR_VERSION/ { print $$3}" ${CIAO_ROOT}/ciao/Version.h)
+CIAO_BETA_VERSION := $(shell awk "/CIAO_BETA_VERSION/ { print $$3}" ${CIAO_ROOT}/ciao/Version.h)
+else
+CIAO_MAJOR_VERSION := $(shell awk '/CIAO_MAJOR_VERSION/ { print $$3}' ${CIAO_ROOT}/ciao/Version.h)
+CIAO_MINOR_VERSION := $(shell awk '/CIAO_MINOR_VERSION/ { print $$3}' ${CIAO_ROOT}/ciao/Version.h)
+CIAO_BETA_VERSION := $(shell awk '/CIAO_BETA_VERSION/ { print $$3}' ${CIAO_ROOT}/ciao/Version.h)
+endif
+
+# Version number of the libraries
+#
+ifeq ($(versioned_so),1)
+ # Only set SOVERSION for CIAO if versioning is turned on and SOVERION is
+ # blank, which gives users to ability to override it.
+ ifeq ($(SOVERSION),)
+ SOVERSION = .$(CIAO_MAJOR_VERSION).$(CIAO_MINOR_VERSION).$(CIAO_BETA_VERSION)
+ endif # SOVERSION
+
+ # Name that will be written into the dynamic library
+ #
+ ifneq ($(SONAME),)
+ SONAME = $(SHLIB).$(CIAO_MAJOR_VERSION).$(CIAO_MINOR_VERSION).$(CIAO_BETA_VERSION)
+ endif # SONAME
+endif # versioned_so
diff --git a/modules/CIAO/tests/Bug_2130_Regression/Logs/PROBLEM-REPORT-FORM b/modules/CIAO/tests/Bug_2130_Regression/Logs/PROBLEM-REPORT-FORM
new file mode 100644
index 00000000000..df98c63f06d
--- /dev/null
+++ b/modules/CIAO/tests/Bug_2130_Regression/Logs/PROBLEM-REPORT-FORM
@@ -0,0 +1,93 @@
+To: ciao-users@cs.wustl.edu
+Subject: RTComponentServer: Session_Container::get_objref blocks
+
+ CIAO VERSION: 0.4.7
+ TAO VERSION : 1.4.7
+ ACE VERSION : 5.4.7
+
+ HOST MACHINE and OPERATING SYSTEM:
+ Intel(R) Pentium(R) D CPU 3.00GHZ
+ Microsoft Windows XP Professional Version 2002 Service Pack 2
+
+ COMPILER NAME AND VERSION (AND PATCHLEVEL):
+ Microsoft Visual C++ .NET 2003
+ Microsoft (R) 32-Bit C/C++-Optimierungscompiler Version 13.10.3077
+
+ THE $ACE_ROOT/ace/config.h FILE [if you use a link to a platform-
+ specific file, simply state which one]:
+ #include "ace/config-win32.h"
+
+ THE $ACE_ROOT/include/makeinclude/platform_macros.GNU FILE [if you
+ use a link to a platform-specific file, simply state which one
+ (unless this isn't used in this case, e.g., with Microsoft Visual
+ C++)]:
+
+ CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/default.features
+ ssl=0
+ qos=1
+ cidl=0
+ rwho=0
+ sctp=0
+ qt=1
+
+ AREA/CLASS/EXAMPLE AFFECTED:
+ CIAO/ciao/Session_Container::get_objref
+
+
+ DOES THE PROBLEM AFFECT:
+ COMPILATION?
+ No
+ LINKING?
+ No
+ EXECUTION?
+ Yes
+ OTHER (please specify)?
+[Please indicate whether ACE/TAO/CIAO, your application, or both are affected.]
+
+ SYNOPSIS:
+ A call of Session_Container::get_objref blocks forever.
+
+ DESCRIPTION:
+ I'm running two clients simultaneously callings the methods acquireSession
+ and releaseSession of the CORBA component TSEC_CheckPoint ( please see
+ sample code in TSEC_CheckPoint_exec.cpp lines 233... and 283... and also
+ controller.cpp line 150... ) configured with realtime policies. After the
+ start of the second client the component TSEC_CheckPoint blocks in the
+ method Session_Container::get_objref ( please see the log file
+ DebuggerCallStack.log ).
+
+ The serious code line of TSEC_CheckPoint_exec.cpp is:
+ CORBA::Object_var obj = this->getObjRef( p_sessionImpl) ;
+
+ If only one client is calling acquireSession every thing works fine.
+ But if I start a second client which is calling acquireSession then the
+ block happens.
+
+ I'm using the patch from 20051612 for the files
+ Container_Base.cpp and Container_Base.h which I merge with the CIAO
+ version 047.
+
+ If i use CIAO version < 043 everythings works fine with no blocks.
+
+ REPEAT BY:
+ Please build the sample code:
+ - cd interfaces
+ - mwc.pl -type nmake
+ - nmake realclean clean depend all
+ - touch *.idl
+ - nmake
+ - cd SEC_CheckPoint
+ - mwc.pl -type nmake
+ - nmake realclean clean depend all
+
+ Please run the sample:
+ - cd descriptors
+ - start_da.bat
+ - start_am.bat
+ - start_test.bat
+ - start_testcase_1.bat
+ - start_testcase_2.bat
+
+
+ SAMPLE FIX/WORKAROUND:
+[If available ]
diff --git a/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.idl b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.idl
new file mode 100644
index 00000000000..83d68fc4353
--- /dev/null
+++ b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.idl
@@ -0,0 +1,27 @@
+//$Id$
+
+#ifndef TSEC_CHECKPOINT_IDL
+#define TSEC_CHECKPOINT_IDL
+
+#include "../interfaces/ENW.idl"
+
+
+module ENW
+{
+ component TSEC_CheckPoint supports ISessionService
+ {
+ provides ISessionService sessionService;
+
+ consumes ET_LifeToken lifeTokenIn;
+ publishes ET_LifeToken lifeTokenOut;
+
+ };
+
+ home TSEC_CheckPointHome manages TSEC_CheckPoint
+ {
+ factory new_TSEC_CheckPoint( in string Version );
+ };
+};
+
+
+#endif // TSEC_CHECKPOINT_IDL
diff --git a/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.mpc b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.mpc
new file mode 100644
index 00000000000..9e7a1102f55
--- /dev/null
+++ b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.mpc
@@ -0,0 +1,121 @@
+//$Id$
+
+project(TSEC_CheckPoint_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=TSEC_CHECKPOINT_STUB_Export \
+ -Wb,stub_export_include=TSEC_CheckPoint_stub_export.h \
+ -Wb,skel_export_macro=TSEC_CHECKPOINT_SVNT_Export \
+ -Wb,skel_export_include=TSEC_CheckPoint_svnt_export.h \
+ -Wb,exec_export_macro=TSEC_CHECKPOINT_EXEC_Export \
+ -Wb,exec_export_include=TSEC_CheckPoint_exec_export.h \
+ -Glfa
+ requires += dummy_label
+
+ IDL_Files {
+ TSEC_CheckPoint.idl
+ }
+}
+
+project(TSEC_CheckPoint_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ after += TSEC_CheckPoint_idl_gen
+ idlflags += -SS -St \
+ -Wb,export_macro=TSEC_CHECKPOINT_EXEC_Export \
+ -Wb,export_include=TSEC_CheckPoint_exec_export.h
+
+ requires += dummy_label
+ IDL_Files {
+ TSEC_CheckPointE.idl
+ }
+}
+
+
+project(TSEC_CheckPoint_stub): ccm_stub, event {
+ after += ENW_stub TSEC_CheckPoint_idl_gen
+ libpaths += ../interfaces
+ libs += ENW_stub
+ sharedname = TSEC_CheckPoint_stub
+ dynamicflags = TSEC_CHECKPOINT_STUB_BUILD_DLL
+ requires += dummy_label
+ IDL_Files {
+ }
+
+ Source_Files {
+ TSEC_CheckPointC.cpp
+ }
+
+ Header_Files {
+ TSEC_CheckPointC.h
+ TSEC_CheckPoint_stub_export.h
+ }
+
+ Inline_Files {
+ TSEC_CheckPointC.inl
+ }
+}
+
+project(TSEC_CheckPoint_svnt) : ciao_servant, event {
+ after += TSEC_CheckPoint_skel TSEC_CheckPoint_exec
+ after += ENW_skel ENW_stub
+ sharedname = TSEC_CheckPoint_svnt
+ libpaths += ../interfaces
+ libs += TSEC_CheckPoint_stub TSEC_CheckPoint_exec
+ libs += ENW_stub ENW_skel
+ requires += dummy_label
+ dynamicflags = TSEC_CHECKPOINT_SVNT_BUILD_DLL
+ requires += dummy_label
+ IDL_Files {
+ }
+
+ Source_Files {
+ TSEC_CheckPointS.cpp
+ TSEC_CheckPoint_svnt.cpp
+ }
+}
+
+
+project(TSEC_CheckPoint_exec) : ciao_executor, event, ccm_svnt, ciao_session_container, naming {
+ after += TSEC_CheckPoint_stub TSEC_CheckPoint_lem_gen
+ after += ENW_skel ENW_stub
+ requires += dummy_label
+ includes += ../interfaces
+
+ sharedname = TSEC_CheckPoint_exec
+ libpaths += ../interfaces
+ libs += TSEC_CheckPoint_stub
+ libs += ENW_stub ENW_skel
+
+ idlflags -= -GT
+ idlflags += -SS -St \
+ -Wb,export_macro=TSEC_CHECKPOINT_EXEC_Export \
+ -Wb,export_include=TSEC_CheckPoint_exec_export.h
+ dynamicflags = TSEC_CHECKPOINT_EXEC_BUILD_DLL
+
+ IDL_Files {
+ TSEC_CheckPointEI.idl
+ }
+
+ Source_Files {
+ TSEC_CheckPointEC.cpp
+ TSEC_CheckPointEIC.cpp
+ TSEC_CheckPoint_exec.cpp
+ }
+}
+
+
+project(TSEC_CheckPoint_controller) : ccm_stub, valuetype, event {
+ exename = controller
+ after += TSEC_CheckPoint_stub
+ libs += TSEC_CheckPoint_stub ENW_stub
+ libpaths += ../interfaces
+ requires += dummy_label
+ IDL_Files {
+ }
+
+ Source_Files {
+ controller.cpp
+ }
+}
+
+
+
diff --git a/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPointEI.idl b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPointEI.idl
new file mode 100644
index 00000000000..9cd47181299
--- /dev/null
+++ b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPointEI.idl
@@ -0,0 +1,19 @@
+// $Id$
+
+#ifndef TSEC_CHECKPOINTEI_IDL
+#define TSEC_CHECKPOINTEI_IDL
+
+#include "TSEC_CheckPointE.idl"
+
+module ENW
+{
+ local interface TSEC_CheckPoint_Exec :
+ CCM_TSEC_CheckPoint,
+ CCM_ISessionService,
+ Components::SessionComponent
+ {
+ };
+
+};
+
+#endif /* TSEC_CHECKPOINTEI_IDL */
diff --git a/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.cpp b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.cpp
new file mode 100644
index 00000000000..8f2b0c02d3d
--- /dev/null
+++ b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.cpp
@@ -0,0 +1,592 @@
+//$Id$
+
+//-------------------------------------------------------------------
+// Includes
+//-------------------------------------------------------------------
+
+#include "ace/Timer_Queue.h"
+#include "ace/Reactor.h"
+#include "ace/os_include/os_assert.h"
+
+#include "tao/LocalObject.h"
+#include <orbsvcs/CosNamingC.h>
+
+#include "ciao/Version.h"
+#include "ciao/Containers/Session/Session_Container.h"
+#include "TSEC_CheckPoint_exec.h"
+#include "TSEC_CheckPoint_svnt.h"
+
+
+//-------------------------------------------------------------------
+// Defines
+//-------------------------------------------------------------------
+
+#define SEPARATION_LINE "----------------------------------------" \
+ "----------------------------------------\n"
+
+
+//-------------------------------------------------------------------
+// Statics
+//-------------------------------------------------------------------
+
+static const char* argv[] =
+{
+ "TSEC_CheckPoint"
+};
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+Impl::TSEC_SessionEntry::TSEC_SessionEntry()
+: _p_sessionImpl( 0 )
+{
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+Impl::TSEC_SessionEntry::TSEC_SessionEntry
+(
+ TSEC_Session_impl* pSessionImpl,
+ ENW::TSession_ptr Session
+)
+: _p_sessionImpl( pSessionImpl )
+{
+ if( !CORBA::is_nil( Session ) )
+ {
+ _session = ENW::TSession::_duplicate( Session );
+ }
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+Impl::TSEC_Session_impl::TSEC_Session_impl
+(
+ TSEC_CheckPoint_exec_i& Parent,
+ CORBA::Long Ident
+)
+ : _isInUse(0),_ident( Ident ),_parent( Parent )
+{
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+Impl::TSEC_Session_impl::~TSEC_Session_impl()
+{
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+CORBA::ULong
+Impl::TSEC_Session_impl::hash
+(
+ CORBA::ULong Maximum
+)
+{
+ CORBA::ULong hash =
+ static_cast <CORBA::ULong> (reinterpret_cast <ptrdiff_t> (this));
+
+ return hash % Maximum;
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+CORBA::Long
+Impl::TSEC_Session_impl::getIdent
+(
+)
+{
+ //ACE_GUARD_RETURN( TMutex, guard, _parent.getMutex(), -1 );
+
+ return _ident;
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+CORBA::Boolean
+Impl::TSEC_Session_impl::isInUse
+(
+)
+{
+ //ACE_GUARD_RETURN( TMutex, guard, _parent.getMutex(), FALSE );
+ return _isInUse;
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+Impl::TSEC_CheckPoint_exec_i::TSEC_CheckPoint_exec_i()
+: _p_sessionContainer( 0 ),
+ _isActivated( false )
+{
+ ACE_DEBUG( ( LM_DEBUG, "Impl::TSEC_CheckPoint_exec_i::"
+ "TSEC_CheckPoint_exec_i\n" ) );
+
+ this->init();
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+Impl::TSEC_CheckPoint_exec_i::TSEC_CheckPoint_exec_i
+(
+ const char* /*Version*/
+)
+: _p_sessionContainer( 0 ),
+ _isActivated( false )
+{
+ ACE_DEBUG( ( LM_DEBUG, "Impl::TSEC_CheckPoint_exec_i::"
+ "TSEC_CheckPoint_exec_i\n" ) );
+ this->init();
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+Impl::TSEC_CheckPoint_exec_i::~TSEC_CheckPoint_exec_i()
+{
+ ACE_DEBUG( ( LM_DEBUG, "Impl::TSEC_CheckPoint_exec_i::"
+ "~TSEC_CheckPoint_exec_i\n" ) );
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+CORBA::Object_ptr
+Impl::TSEC_CheckPoint_exec_i::getObjRef
+(
+ PortableServer::Servant Servant
+)
+{
+ return this->_p_sessionContainer->get_objref( Servant );
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+int
+Impl::TSEC_CheckPoint_exec_i::init
+(
+)
+{
+ ACE_DEBUG ((LM_DEBUG, "Impl::TSEC_CheckPoint_exec_i::init\n"));
+
+ int argc = sizeof( argv ) / sizeof( argv[0] );
+
+ CORBA::ORB_var orb = CORBA::ORB_init( argc,
+ const_cast<char **> (argv)
+ );
+ _orb = CORBA::ORB::_duplicate( orb.in () );
+
+ return 0;
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+CORBA::Object_ptr
+Impl::TSEC_CheckPoint_exec_i::installServant
+(
+ PortableServer::Servant Servant
+)
+{
+ assert( this->_p_sessionContainer );
+ PortableServer::ObjectId_var oid;
+ return this->_p_sessionContainer->install_servant( Servant,
+ CIAO::Container_Types::COMPONENT_t, oid.out ());
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+void
+Impl::TSEC_CheckPoint_exec_i::uninstallServant
+(
+ CORBA::Object_ptr ObjRef
+)
+{
+ assert( this->_p_sessionContainer );
+
+ this->_p_sessionContainer->uninstall( ObjRef, CIAO::Container_Types::COMPONENT_t);
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+ENW::TSession_ptr
+Impl::TSEC_CheckPoint_exec_i::createSession
+(
+)
+{
+ static long cnt = 0L;
+
+ ENW::TSession_var session = ENW::TSession::_nil();
+
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::createSession...\n" ) );
+
+ TSEC_Session_impl* p_sessionImpl = new TSEC_Session_impl( *this, ++cnt );
+ PortableServer::ServantBase_var safe_servant( p_sessionImpl );
+ CORBA::Object_var obj = this->installServant( p_sessionImpl
+ );
+ session = ENW::TSession::_narrow ( obj.in () );
+
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::createSession...[DONE]\n" ) );
+
+ return session._retn();
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+::CORBA::Boolean
+Impl::TSEC_CheckPoint_exec_i::destroySession
+(
+ ENW::TSession_ptr Session
+)
+{
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::destroySession...\n" ) );
+
+ if( CORBA::is_nil( Session ) )
+ {
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::destroySession...[ERROR]\n" ) );
+ return 0;
+ }
+
+ this->uninstallServant( Session );
+
+ return 1;
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+ENW::TSession_ptr
+Impl::TSEC_CheckPoint_exec_i::acquireSession
+(
+ CORBA::Long Ident
+)
+{
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::acquireSession...\n" ) );
+
+ if( Ident <= 0 || Ident > TSEC_SESSION_MAX_IDENT )
+ {
+ if( Ident != -1 )
+ {
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::releaseSession...[ERROR]\n" ) );
+ throw ENW::EUnknownIdent();
+ }
+ }
+
+ ENW::TSession_var session = ENW::TSession::_nil();
+ TSEC_Session_impl* p_sessionImpl = 0;
+
+ try
+ {
+ {
+ //ACE_GUARD_RETURN( TMutex, guard, _mutex, ENW::TSession::_nil() );
+ p_sessionImpl = sessionVector[Ident-1]._p_sessionImpl;
+ }
+
+ p_sessionImpl->isInUse( 1 );
+ CORBA::Object_var obj = this->getObjRef( p_sessionImpl) ;
+ session = ENW::TSession::_narrow ( obj.in () );
+ //session = sessionVector[Ident-1]._session;
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Reason\n");
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::releaseSession...[ERROR]\n" ) );
+
+ return session._retn();
+ }
+
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::releaseSession...[DONE]\n" ) );
+
+ return session._retn();
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+::CORBA::Boolean
+Impl::TSEC_CheckPoint_exec_i::releaseSession
+(
+ CORBA::Long Ident,
+ ENW::TSession_ptr Session
+)
+{
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::releaseSession...\n" ) );
+
+ if( CORBA::is_nil( Session ) )
+ {
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::releaseSession...[ERROR]\n" ) );
+ throw ENW::EUnknownSession();
+ }
+
+ //CORBA::Long ident = Session->getIdent();
+ CORBA::Long ident = Ident;
+
+ if( ident <= 0 || ident > TSEC_SESSION_MAX_IDENT )
+ {
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::releaseSession...[ERROR]\n" ) );
+ return 0;;
+ }
+
+ TSEC_Session_impl* p_sessionImpl = 0;
+
+ {
+ //ACE_GUARD_RETURN( TMutex, guard, _mutex, FALSE );
+
+ p_sessionImpl = sessionVector[ident-1]._p_sessionImpl;
+ }
+
+ assert( p_sessionImpl );
+
+
+ if( !p_sessionImpl->isInUse() )
+ {
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::releaseSession...[ERROR]\n" ) );
+ return 0;
+ }
+
+ p_sessionImpl->isInUse( 0);
+
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::releaseSession...[DONE]\n" ) );
+
+ return 1;
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+ENW::CCM_ISessionService_ptr
+Impl::TSEC_CheckPoint_exec_i::get_sessionService
+(
+)
+{
+ return ENW::CCM_ISessionService::_duplicate( this );
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+void
+Impl::TSEC_CheckPoint_exec_i::set_session_context
+(
+ Components::SessionContext_ptr Ctx
+)
+{
+ ACE_DEBUG( ( LM_DEBUG,
+ "Impl::TSEC_CheckPoint_exec_i::set_session_context\n" ) );
+
+ this->_context =
+ ENW::CCM_TSEC_CheckPoint_Context::_narrow( Ctx
+ );
+
+ if( CORBA::is_nil( this->_context.in() ) )
+ {
+ throw CORBA::INTERNAL();
+ }
+
+ CIAO_ENW_TSEC_CheckPoint_Impl::TSEC_CheckPoint_Context* p_checkPoint_Context =
+ CIAO_ENW_TSEC_CheckPoint_Impl::TSEC_CheckPoint_Context::_narrow( Ctx );
+
+ if( !p_checkPoint_Context )
+ {
+ throw CORBA::INTERNAL();
+ }
+
+ this->_p_sessionContainer = dynamic_cast < ::CIAO::Session_Container*>(p_checkPoint_Context->_ciao_the_Container());
+
+ if( !_p_sessionContainer )
+ {
+ throw CORBA::INTERNAL();
+ }
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+void
+Impl::TSEC_CheckPoint_exec_i::push_lifeTokenIn
+(
+ ENW::ET_LifeToken* /* Event */
+)
+{
+ _awaitingLifeToken = false;
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+void
+Impl::TSEC_CheckPoint_exec_i::configuration_complete
+(
+)
+{
+ ACE_DEBUG( ( LM_DEBUG, "Impl::TSEC_CheckPoint_exec_i::configuration_complete\n" ) );
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+void
+Impl::TSEC_CheckPoint_exec_i::ccm_activate
+(
+)
+{
+ ACE_DEBUG( ( LM_DEBUG, "Impl::TSEC_CheckPoint_exec_i::ccm_activate\n" ) );
+
+ TSEC_Session_impl* p_sessionImpl = 0;
+
+ for( CORBA::Long i = 0; i < TSEC_SESSION_MAX_IDENT; ++i )
+ {
+ p_sessionImpl = new TSEC_Session_impl( *this, i + 1 );
+ PortableServer::ServantBase_var safe_servant( p_sessionImpl );
+ CORBA::Object_var obj = this->installServant( p_sessionImpl
+ );
+ ENW::TSession_var session =
+ ENW::TSession::_narrow ( obj.in () );
+ sessionVector[i] = TSEC_SessionEntry( p_sessionImpl, session.in () );
+ }
+
+ _isActivated = true;
+}
+
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+void
+Impl::TSEC_CheckPoint_exec_i::ccm_passivate
+(
+)
+{
+ ACE_DEBUG( ( LM_DEBUG, "Impl::TSEC_CheckPoint_exec_i::ccm_passivate\n" ) );
+ _isActivated = false;
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+void
+Impl::TSEC_CheckPoint_exec_i::ccm_remove
+(
+)
+{
+ ACE_DEBUG( ( LM_DEBUG, "Impl::TSEC_CheckPoint_exec_i::ccm_remove\n" ) );
+ _isActivated = false;
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+Impl::TSEC_CheckPointHome_exec_i::TSEC_CheckPointHome_exec_i()
+{
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+Impl::TSEC_CheckPointHome_exec_i::~TSEC_CheckPointHome_exec_i()
+{
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+::Components::EnterpriseComponent_ptr
+Impl::TSEC_CheckPointHome_exec_i::new_TSEC_CheckPoint
+(
+ const char* Version
+ )
+{
+ return new Impl::TSEC_CheckPoint_exec_i( Version );
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+::Components::EnterpriseComponent_ptr
+Impl::TSEC_CheckPointHome_exec_i::create
+(
+)
+{
+
+ return new Impl::TSEC_CheckPoint_exec_i();
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+extern "C" TSEC_CHECKPOINT_EXEC_Export ::Components::HomeExecutorBase_ptr
+createTSEC_CheckPointHome_Impl()
+{
+ return new Impl::TSEC_CheckPointHome_exec_i();
+}
+
diff --git a/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.h b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.h
new file mode 100644
index 00000000000..7f09543ea32
--- /dev/null
+++ b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.h
@@ -0,0 +1,244 @@
+//$Id$
+
+//===================================================================
+/**
+ * @file TSEC_CheckPoint_exec.h
+ *
+ * Header file for the Executor implementation.
+ */
+//===================================================================
+
+#ifndef TSEC_CheckPoint_EXEC_H
+#define TSEC_CheckPoint_EXEC_H
+
+//-------------------------------------------------------------------
+// Includes
+//-------------------------------------------------------------------
+
+#include "ace/Thread_Manager.h"
+#include "ace/Task.h"
+
+#include "tao/LocalObject.h"
+
+#include "ENWS.h"
+#include "TSEC_CheckPointEIC.h"
+#include "TSEC_CheckPoint_exec_export.h"
+
+
+//-------------------------------------------------------------------
+// Defines
+//-------------------------------------------------------------------
+
+#define TSEC_SESSION_ID_MAX 0xffffffff
+#define TSEC_SESSION_MAX_IDENT 2
+
+
+//-------------------------------------------------------------------
+// Type definitions
+//-------------------------------------------------------------------
+
+
+//-------------------------------------------------------------------
+// Forward declarations
+//-------------------------------------------------------------------
+
+
+//-------------------------------------------------------------------
+// Classes
+//-------------------------------------------------------------------
+
+namespace Impl
+{
+ typedef TAO_SYNCH_MUTEX TMutex;
+
+ class TSEC_CheckPoint_exec_i;
+
+ class TSEC_Session_impl :
+ public virtual POA_ENW::TSession,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+
+ TSEC_Session_impl
+ (
+ TSEC_CheckPoint_exec_i& Parent,
+ CORBA::Long Ident
+ );
+
+ virtual ~TSEC_Session_impl();
+
+ CORBA::Long getIdent();
+ CORBA::Boolean isInUse();
+ void isInUse( CORBA::Boolean Flag ) { _isInUse = Flag; }
+
+ protected:
+ CORBA::Boolean _isInUse;
+ CORBA::Long _ident;
+
+ TSEC_CheckPoint_exec_i& _parent;
+
+ CORBA::ULong hash
+ (
+ CORBA::ULong Maximum
+ );
+
+ TSEC_CheckPoint_exec_i& getParent() { return _parent; }
+
+ };
+
+ struct TSEC_SessionEntry
+ {
+ TSEC_SessionEntry();
+
+ TSEC_SessionEntry
+ (
+ TSEC_Session_impl* pSessionImpl,
+ ENW::TSession_ptr Session
+ );
+
+ TSEC_Session_impl* _p_sessionImpl;
+ ENW::TSession_var _session;
+ };
+
+ class TSEC_CHECKPOINT_EXEC_Export TSEC_CheckPoint_exec_i :
+ public virtual ENW::TSEC_CheckPoint_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ TSEC_CheckPoint_exec_i();
+ TSEC_CheckPoint_exec_i( const char* Version );
+
+ virtual ~TSEC_CheckPoint_exec_i();
+
+ // Attribute Operationen:
+ //
+
+
+ // Interface ISessionService
+ //
+
+ virtual ENW::CCM_ISessionService_ptr get_sessionService
+ (
+ );
+
+
+ virtual ENW::TSession_ptr createSession
+ (
+ );
+
+ virtual CORBA::Boolean destroySession
+ (
+ ENW::TSession_ptr Session
+ );
+
+ virtual ENW::TSession_ptr acquireSession
+ (
+ CORBA::Long Ident
+ );
+
+ virtual CORBA::Boolean releaseSession
+ (
+ CORBA::Long Ident,
+ ENW::TSession_ptr Session
+ );
+
+
+ // Events
+ //
+
+ virtual void push_lifeTokenIn
+ (
+ ENW::ET_LifeToken* Event
+ );
+
+
+ // 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
+ (
+ );
+
+ CORBA::Object_ptr getObjRef
+ (
+ PortableServer::Servant Servant
+ );
+
+ int init(
+ );
+
+ CORBA::Object_ptr installServant
+ (
+ PortableServer::Servant Servant
+ );
+
+ void uninstallServant
+ (
+ CORBA::Object_ptr ObjRef
+ );
+
+ TMutex& getMutex() { return _mutex; }
+
+ protected:
+ // Copmponent specific context
+
+ ENW::CCM_TSEC_CheckPoint_Context_var _context;
+ ::CIAO::Session_Container* _p_sessionContainer;
+ TMutex _mutex;
+ CORBA::ORB_var _orb;
+
+ private:
+ bool _awaitingLifeToken;
+ bool _isActivated;
+
+ //TSEC_Session_impl* sessionVector[TSEC_SESSION_MAX_IDENT];
+ TSEC_SessionEntry sessionVector[TSEC_SESSION_MAX_IDENT];
+ };
+
+ /**
+ * home executor implementation class.
+ */
+ class TSEC_CHECKPOINT_EXEC_Export TSEC_CheckPointHome_exec_i :
+ public virtual ENW::CCM_TSEC_CheckPointHome,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+
+ TSEC_CheckPointHome_exec_i();
+
+ virtual ~TSEC_CheckPointHome_exec_i();
+
+ // Explicit home operations.
+ virtual ::Components::EnterpriseComponent_ptr new_TSEC_CheckPoint
+ (
+ const char* Version
+ );
+
+ // Implicit home operations.
+ virtual ::Components::EnterpriseComponent_ptr create
+ (
+ );
+ };
+} // Impl
+
+extern "C" TSEC_CHECKPOINT_EXEC_Export ::Components::HomeExecutorBase_ptr
+createTSEC_CheckPointHome_Impl();
+
+#endif // TSEC_CheckPoint_EXEC_H
diff --git a/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/controller.cpp b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/controller.cpp
new file mode 100644
index 00000000000..8901cdbf20a
--- /dev/null
+++ b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/controller.cpp
@@ -0,0 +1,197 @@
+//$Id$
+
+
+/**
+ * @file controller.cpp
+ *
+ * This program interact with a TSEC_CheckPoint component, using its supported
+ * interface "ISessionService"
+ */
+
+
+//-------------------------------------------------------------------
+// Includes
+//-------------------------------------------------------------------
+
+#include "ace/streams.h"
+#include "ace/Get_Opt.h"
+
+#include "TSEC_CheckPointC.h"
+
+
+//-------------------------------------------------------------------
+// Defines
+//-------------------------------------------------------------------
+
+#define SEPARATION_LINE "----------------------------------------" \
+ "----------------------------------------\n"
+
+#define TESTCASE_NOT_DEFINED 0
+#define TESTCASE_ACQUIRE_RELEASE_SESSION 1
+#define TESTCASE_CREATE_DESTROY_SESSION 2
+
+
+//-------------------------------------------------------------------
+// Statics
+//-------------------------------------------------------------------
+
+static int _testcase = TESTCASE_NOT_DEFINED;
+static int _loop = 0;
+static int _ident = 1;
+static const ACE_TCHAR* _sessionService_ior = 0;
+
+
+//-------------------------------------------------------------------
+// Function
+//-------------------------------------------------------------------
+
+int
+parse_args
+(
+ int argc,
+ ACE_TCHAR* argv[]
+)
+{
+ ACE_Get_Opt get_opts( argc, argv, ACE_TEXT("i:k:l:t:") );
+ int c;
+
+ while( ( c = get_opts() ) != -1 )
+ {
+ switch( c )
+ {
+ case 'i':
+ _ident = ACE_OS::atoi( get_opts.opt_arg() );
+ break;
+
+ case 'k':
+ _sessionService_ior = get_opts.opt_arg();
+ break;
+
+ case 'l':
+ _loop = ACE_OS::atoi( get_opts.opt_arg() );
+ break;
+
+ case 't':
+ _testcase = ACE_OS::atoi( get_opts.opt_arg() );
+ break;
+
+ case '?': // display help for use of the server.
+ default:
+ ACE_ERROR_RETURN( ( LM_ERROR,
+ "usage: %s\n"
+ "-i <Ident> (default is 1)\n"
+ "-k <TSEC_CheckPoint IOR> (default is file://TSEC_CheckPoint.ior)\n"
+ "-t <testcase number> (default is 1)\n"
+ "\n",
+ argv[0] ),
+ -1 );
+ break;
+ }
+ }
+
+ if ( _sessionService_ior == 0 )
+ {
+ _sessionService_ior = ACE_TEXT("file://TSEC_CheckPoint.ior");
+ }
+
+ if( _testcase == 0 )
+ {
+ _testcase = TESTCASE_ACQUIRE_RELEASE_SESSION;
+ }
+
+ return 0;
+}
+
+
+//-------------------------------------------------------------------
+// Function
+//-------------------------------------------------------------------
+
+int
+ACE_TMAIN
+(
+ int argc,
+ ACE_TCHAR* argv[]
+)
+{
+ try
+ {
+ // Initialize orb
+ CORBA::ORB_var orb =
+ CORBA::ORB_init( argc, argv);
+
+ if( parse_args( argc, argv ) != 0 )
+ {
+ return -1;
+ }
+
+ CORBA::Object_var obj = orb->string_to_object( _sessionService_ior
+ );
+
+ ENW::ISessionService_var sessionService =
+ ENW::ISessionService::_narrow (obj.in () );
+
+ if( CORBA::is_nil( sessionService.in() ) )
+ {
+ ACE_ERROR_RETURN( ( LM_ERROR,
+ "Unable to acquire 'SessionService' objref\n" ),
+ -1 );
+ }
+
+ ACE_DEBUG( ( LM_DEBUG, SEPARATION_LINE ) );
+
+ for( int i = 0; i < _loop; ++i )
+ {
+ switch( _testcase )
+ {
+ case TESTCASE_ACQUIRE_RELEASE_SESSION:
+ {
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) Executing testcase acquire release session...[running]\n" ) );
+
+ ENW::TSession_var session = sessionService->acquireSession( _ident );
+ //CORBA::Long ident = session->getIdent();
+ sessionService->releaseSession( _ident, session.in () );
+
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) Executing testcase acquire release session...[ready]\n" ) );
+ }
+
+ break;
+
+ case TESTCASE_CREATE_DESTROY_SESSION:
+ {
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) Executing testcase create destroy session...[running]\n" ) );
+
+ ENW::TSession_var session = sessionService->createSession();
+ CORBA::Long ident = session->getIdent();
+ ACE_DEBUG(( LM_DEBUG, "(%P|%t@%T) Ident: %d\n", ident ) );
+
+ if( !sessionService->destroySession( session.in () ) )
+ {
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) Executing testcase create destroy session...[ERROR]\n" ) );
+ }
+
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) Executing testcase create destroy session...[ready]\n" ) );
+ }
+
+ break;
+
+ default:
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) Testcase is undefined!\n" ) );
+ break;
+
+ }
+ }
+
+ orb->destroy( );
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Who is the culprit\n");
+ cerr << "Uncaught CORBA exception" << endl;
+
+ return 1;
+ }
+
+ return 0;
+}
+
diff --git a/modules/CIAO/tests/Bug_2130_Regression/descriptors/DeploymentPlan.cdp b/modules/CIAO/tests/Bug_2130_Regression/descriptors/DeploymentPlan.cdp
new file mode 100644
index 00000000000..d814af11a50
--- /dev/null
+++ b/modules/CIAO/tests/Bug_2130_Regression/descriptors/DeploymentPlan.cdp
@@ -0,0 +1,117 @@
+<?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 Modified_Deployment.xsd">
+
+ <label>CheckPoint-DeploymentPlan</label>
+
+ <UUID>CheckPoint_Plan_UUID_0001</UUID>
+
+ <realizes>
+ <label>CheckPoint-realizes-cid</label>
+ <UUID>c0965470-7b83-11d9-9669-0800200c9a66</UUID>
+ <specificType/>
+ <supportedType>IDL:ENW/Sender:1.0</supportedType>
+ <port>
+ <name>read_message</name>
+ <specificType>IDL:ENW/ISessionService:1.0</specificType>
+ <supportedType>IDL:ENW/ISessionService:1.0</supportedType>
+ <provider>false</provider>
+ <exclusiveProvider>false</exclusiveProvider>
+ <exclusiveUser>true</exclusiveUser>
+ <optional>false</optional>
+ <kind>SimplexReceptacle</kind>
+ </port>
+ </realizes>
+
+ <implementation id="CheckPoint-TSEC_CheckPoint-mdd">
+ <name>CheckPoint-TSEC_CheckPoint-mdd</name>
+ <source><!-- @@ Don't know what goes here --></source>
+ <artifact>CheckPoint-TSEC_CheckPoint_exec</artifact>
+ <artifact>CheckPoint-TSEC_CheckPoint_svnt</artifact>
+ </implementation>
+
+ <instance id="CheckPoint-TSEC_CheckPoint-idd">
+ <name>CheckPoint-TSEC_CheckPoint-idd</name>
+ <node>CheckPointNode</node>
+ <source/>
+ <implementation>CheckPoint-TSEC_CheckPoint-mdd</implementation>
+ <configProperty>
+ <name>ComponentIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>TSEC_CheckPoint.ior</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <deployedResource>
+ <resourceUsage>InstanceUsesResource</resourceUsage>
+ <requirementName>CIAO:PolicySet</requirementName>
+ <resourceName>test_server_resource_id</resourceName>
+ <resourceValue>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>test_policy_set_id</string>
+ </value>
+ </resourceValue>
+ </deployedResource>
+ </instance>
+
+ <artifact id="CheckPoint-TSEC_CheckPoint_exec">
+ <name>TSEC_CheckPoint_exec</name>
+ <source/>
+ <node/>
+ <location>TSEC_CheckPoint_exec</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createTSEC_CheckPointHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact id="CheckPoint-TSEC_CheckPoint_svnt">
+ <name>TSEC_CheckPoint_svnt</name>
+ <source/>
+ <node/>
+ <location>TSEC_CheckPoint_svnt</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_ENW_TSEC_CheckPointHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <infoProperty>
+ <name>CIAOServerResources</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>rt-config-example.csr</string>
+ </value>
+ </value>
+ </infoProperty>
+
+</Deployment:deploymentPlan>
+
diff --git a/modules/CIAO/tests/Bug_2130_Regression/descriptors/TestNodeManagerMap.dat b/modules/CIAO/tests/Bug_2130_Regression/descriptors/TestNodeManagerMap.dat
new file mode 100644
index 00000000000..9ec03384ec9
--- /dev/null
+++ b/modules/CIAO/tests/Bug_2130_Regression/descriptors/TestNodeManagerMap.dat
@@ -0,0 +1 @@
+CheckPointNode corbaloc:iiop:localhost:30000/NodeManager \ No newline at end of file
diff --git a/modules/CIAO/tests/Bug_2130_Regression/descriptors/rt-config-example.csr b/modules/CIAO/tests/Bug_2130_Regression/descriptors/rt-config-example.csr
new file mode 100644
index 00000000000..e1d120352aa
--- /dev/null
+++ b/modules/CIAO/tests/Bug_2130_Regression/descriptors/rt-config-example.csr
@@ -0,0 +1,30 @@
+
+<CIAO:ServerResources
+ xmlns:CIAO="http://www.dre.vanderbilt.edu/ServerResources"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.dre.vanderbilt.edu/ServerResources CIAOServerResources.xsd"
+ id="test_server_resource_id">
+
+ <orbConfigs>
+ <resources>
+ <threadpool id="threadpool-1">
+ <stacksize>0</stacksize>
+ <static_threads>6</static_threads>
+ <dynamic_threads>0</dynamic_threads>
+ <default_priority>2</default_priority>
+ <allow_request_buffering>false</allow_request_buffering>
+ <max_buffered_requests>0</max_buffered_requests>
+ <max_request_buffered_size>0</max_request_buffered_size>
+ </threadpool>
+ </resources>
+
+ <policySet id="test_policy_set_id">
+ <priorityModel server_priority="2">
+ <priority_model>SERVER_DECLARED</priority_model>
+ </priorityModel>
+ <threadpool>threadpool-1</threadpool>
+ </policySet>
+
+ </orbConfigs>
+</CIAO:ServerResources> \ No newline at end of file
diff --git a/modules/CIAO/tests/Bug_2130_Regression/descriptors/run_test.pl b/modules/CIAO/tests/Bug_2130_Regression/descriptors/run_test.pl
new file mode 100755
index 00000000000..dccd19ae0d2
--- /dev/null
+++ b/modules/CIAO/tests/Bug_2130_Regression/descriptors/run_test.pl
@@ -0,0 +1,179 @@
+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;
+
+$DAnCE = "$ENV{'ACE_ROOT'}/TAO/CIAO/DAnCE";
+$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
+$TAO_ROOT = "$ENV{'TAO_ROOT'}";
+$daemons_running = 0;
+$em_running = 0;
+$daemons = 1;
+@ports = ( 30000 );
+@iorfiles = ( "NodeApp.ior" );
+$status = 0;
+$dat_file = "TestNodeManagerMap.dat";
+$cdp_file = "DeploymentPlan.cdp";
+$controller_exec = "../SEC_CheckPoint/controller";
+
+PerlACE::add_lib_path ('../SEC_CheckPoint');
+
+$E = 0;
+$EM = 0;
+
+# Delete if there are any .ior files.
+sub delete_ior_files {
+ for ($i = 0; $i < $daemons; ++$i) {
+ unlink $iorfiles[$i];
+ }
+ unlink PerlACE::LocalFile ("EM.ior");
+ unlink PerlACE::LocalFile ("TSEC_CheckPoint.ior");
+ unlink PerlACE::LocalFile ("DAM.ior");
+}
+
+sub kill_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i) {
+ $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1);
+ }
+}
+
+sub kill_open_processes {
+ if ($daemons_running == 1) {
+ kill_node_daemons ();
+ }
+
+ if ($em_running == 1) {
+ $EM->Kill ();
+ $EM->TimedWait (1);
+ }
+}
+
+sub run_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i)
+ {
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+
+ $iiop = "iiop://localhost:$port";
+ $node_app = "$CIAO_ROOT/bin/NodeApplication";
+
+ $d_cmd = "$DANCE_ROOT/bin/dance_node_manager";
+ $d_param = "-ORBEndpoint $iiop -s $node_app -o $iorfile -a \"-r\"";
+
+ $Daemons[$i] = new PerlACE::Process ($d_cmd, $d_param);
+
+
+ $result = $Daemons[$i]->Spawn ();
+ push(@processes, $Daemons[$i]);
+
+ if (PerlACE::waitforfile_timed ($iorfile,
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR
+ "ERROR: The ior file of node daemon $i could not be found\n";
+ for (; $i > 0; --$i) {
+ $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1);
+ }
+ return -1;
+ }
+ }
+ $daemons_running = 1;
+ return 0;
+}
+
+delete_ior_files ();
+
+
+# Invoke node daemons.
+print "Invoking node daemons\n";
+$status = run_node_daemons ();
+
+if ($status != 0) {
+ print STDERR "ERROR: Unable to execute the node daemons\n";
+ exit 1;
+}
+
+$ns_running = 1;
+
+# Invoke execution manager.
+print "Invoking execution manager\n";
+$EM = new PerlACE::Process ("$CIAO_ROOT/bin/Execution_Manager",
+ "-o EM.ior -i $dat_file");
+$EM->Spawn ();
+
+if (PerlACE::waitforfile_timed ("EM.ior",
+ $PerlACE::wait_interval_for_process_creation) == -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 - start the application -\n";
+$E =
+ new PerlACE::Process ("$CIAO_ROOT/bin/plan_launcher",
+ "-p DeploymentPlan.cdp -k file://EM.ior -o DAM.ior");
+
+$E->SpawnWaitKill (5000);
+
+
+if (PerlACE::waitforfile_timed ("TSEC_CheckPoint.ior",
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: The ior file of sender could not be found\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+print "Running testcase 1\n";
+
+$controller = new PerlACE::Process ("$controller_exec", "-i 1 -k file://TSEC_CheckPoint.ior -t 1 -l 100000");
+$result = $controller->SpawnWaitKill (3000);
+
+if ($result != 0) {
+ print STDERR "ERROR: The controller returned $result\n";
+ $status = 1;
+}
+
+
+print "Running testcase 2\n";
+
+$controller = new PerlACE::Process ("$controller_exec", "-i 2 -k file://TSEC_CheckPoint.ior -t 1 -l 100000");
+$result = $controller->SpawnWaitKill (3000);
+
+if ($result != 0) {
+ print STDERR "ERROR: The controller returned $result\n";
+ $status = 1;
+}
+
+print "Running testcase 3\n";
+
+$controller = new PerlACE::Process ("$controller_exec", "-k file://TSEC_CheckPoint.ior -t 2 -l 100000");
+$result = $controller->SpawnWaitKill (3000);
+
+if ($result != 0) {
+ print STDERR "ERROR: The controller returned $result\n";
+ $status = 1;
+}
+
+
+# Invoke executor - stop the application -.
+print "Invoking executor - stop the application -\n";
+$E =
+ new PerlACE::Process ("$CIAO_ROOT/bin/plan_launcher",
+ "-k file://EM.ior -i file://DAM.ior");
+$E->SpawnWaitKill (3000);
+
+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/tests/Bug_2130_Regression/interfaces/ENW.idl b/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW.idl
new file mode 100644
index 00000000000..f62febba8a3
--- /dev/null
+++ b/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW.idl
@@ -0,0 +1,52 @@
+//$Id$
+
+#ifndef ENW_IDL
+#define ENW_IDL
+
+#include <Components.idl>
+
+
+module ENW
+{
+ exception EUnknownIdent
+ {
+ };
+
+ exception EUnknownSession
+ {
+ };
+
+ eventtype ET_LifeToken
+ {
+ };
+
+ //////////////////////////////////////////////////////////////////////////////
+ //
+ // ICheckPoint-Interfaces
+ //
+
+ const long IdNotDefined = -1;
+
+ interface TSession
+ {
+ long getIdent();
+ boolean isInUse();
+ };
+
+ interface ISessionService
+ {
+ TSession createSession();
+ boolean destroySession( in TSession Session );
+
+ TSession acquireSession( in long Ident )
+ raises( EUnknownIdent );
+
+ boolean releaseSession( in long Ident,
+ in TSession Session )
+ raises( EUnknownSession );
+ };
+
+};
+
+
+#endif //ENW_IDL
diff --git a/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW.mpc b/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW.mpc
new file mode 100644
index 00000000000..940fc921321
--- /dev/null
+++ b/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW.mpc
@@ -0,0 +1,44 @@
+//$Id$
+
+project(ENW_stub): ccm_stub, event {
+ sharedname = ENW_stub
+ idlflags -= -GT
+ idlflags += -Wb,stub_export_macro=ENW_STUB_Export \
+ -Wb,stub_export_include=ENW_stub_export.h \
+ -Wb,skel_export_macro=ENW_SKEL_Export \
+ -Wb,skel_export_include=ENW_skel_export.h
+ dynamicflags = ENW_STUB_BUILD_DLL
+
+ IDL_Files {
+ ENW.idl
+ }
+
+ Source_Files {
+ ENWC.cpp
+ }
+}
+
+project(ENW_skel) : ciao_servant, event {
+ after += ENW_stub
+ sharedname = ENW_skel
+ libs += ENW_stub
+ idlflags -= -GT
+ idlflags += -Wb,stub_export_macro=ENW_STUB_Export \
+ -Wb,stub_export_include=ENW_stub_export.h \
+ -Wb,skel_export_macro=ENW_SKEL_Export \
+ -Wb,skel_export_include=ENW_skel_export.h
+
+ dynamicflags = ENW_SKEL_BUILD_DLL
+
+ IDL_Files {
+ ENW.idl
+ }
+
+ Source_Files {
+ ENWS.cpp
+ }
+}
+
+
+
+
diff --git a/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW_skel_export.h b/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW_skel_export.h
new file mode 100644
index 00000000000..eb90568f309
--- /dev/null
+++ b/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW_skel_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ENW_SKEL
+// ------------------------------
+#ifndef ENW_SKEL_EXPORT_H
+#define ENW_SKEL_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ENW_SKEL_HAS_DLL)
+# define ENW_SKEL_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ENW_SKEL_HAS_DLL */
+
+#if !defined (ENW_SKEL_HAS_DLL)
+# define ENW_SKEL_HAS_DLL 1
+#endif /* ! ENW_SKEL_HAS_DLL */
+
+#if defined (ENW_SKEL_HAS_DLL) && (ENW_SKEL_HAS_DLL == 1)
+# if defined (ENW_SKEL_BUILD_DLL)
+# define ENW_SKEL_Export ACE_Proper_Export_Flag
+# define ENW_SKEL_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ENW_SKEL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ENW_SKEL_BUILD_DLL */
+# define ENW_SKEL_Export ACE_Proper_Import_Flag
+# define ENW_SKEL_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ENW_SKEL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ENW_SKEL_BUILD_DLL */
+#else /* ENW_SKEL_HAS_DLL == 1 */
+# define ENW_SKEL_Export
+# define ENW_SKEL_SINGLETON_DECLARATION(T)
+# define ENW_SKEL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ENW_SKEL_HAS_DLL == 1 */
+
+// Set ENW_SKEL_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ENW_SKEL_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ENW_SKEL_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ENW_SKEL_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ENW_SKEL_NTRACE */
+
+#if (ENW_SKEL_NTRACE == 1)
+# define ENW_SKEL_TRACE(X)
+#else /* (ENW_SKEL_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ENW_SKEL_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ENW_SKEL_NTRACE == 1) */
+
+#endif /* ENW_SKEL_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW_stub_export.h b/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW_stub_export.h
new file mode 100644
index 00000000000..dd8f95cc1f5
--- /dev/null
+++ b/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ENW_STUB
+// ------------------------------
+#ifndef ENW_STUB_EXPORT_H
+#define ENW_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ENW_STUB_HAS_DLL)
+# define ENW_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ENW_STUB_HAS_DLL */
+
+#if !defined (ENW_STUB_HAS_DLL)
+# define ENW_STUB_HAS_DLL 1
+#endif /* ! ENW_STUB_HAS_DLL */
+
+#if defined (ENW_STUB_HAS_DLL) && (ENW_STUB_HAS_DLL == 1)
+# if defined (ENW_STUB_BUILD_DLL)
+# define ENW_STUB_Export ACE_Proper_Export_Flag
+# define ENW_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ENW_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ENW_STUB_BUILD_DLL */
+# define ENW_STUB_Export ACE_Proper_Import_Flag
+# define ENW_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ENW_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ENW_STUB_BUILD_DLL */
+#else /* ENW_STUB_HAS_DLL == 1 */
+# define ENW_STUB_Export
+# define ENW_STUB_SINGLETON_DECLARATION(T)
+# define ENW_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ENW_STUB_HAS_DLL == 1 */
+
+// Set ENW_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ENW_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ENW_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ENW_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ENW_STUB_NTRACE */
+
+#if (ENW_STUB_NTRACE == 1)
+# define ENW_STUB_TRACE(X)
+#else /* (ENW_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ENW_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ENW_STUB_NTRACE == 1) */
+
+#endif /* ENW_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/CIAO_ComponentServer/Activator/Activator.mpc b/modules/CIAO/tests/CIAO_ComponentServer/Activator/Activator.mpc
new file mode 100644
index 00000000000..df8ec43d6f2
--- /dev/null
+++ b/modules/CIAO/tests/CIAO_ComponentServer/Activator/Activator.mpc
@@ -0,0 +1,6 @@
+// $Id$
+project (Activator_CIAOComponentServer_Test) : ciao_componentserver_stub, ccm_configvalue, ciao_cs_client {
+ Source_Files {
+ client.cpp
+ }
+} \ No newline at end of file
diff --git a/modules/CIAO/tests/CIAO_ComponentServer/Activator/client.cpp b/modules/CIAO/tests/CIAO_ComponentServer/Activator/client.cpp
new file mode 100644
index 00000000000..1d5ae186911
--- /dev/null
+++ b/modules/CIAO/tests/CIAO_ComponentServer/Activator/client.cpp
@@ -0,0 +1,191 @@
+// $Id$
+
+#include "ace/Get_Opt.h"
+#include "ciao/ComponentServer/CIAO_CS_ClientS.h"
+#include "ciao/ComponentServer/CIAO_ComponentServerC.h"
+#include "ciao/ComponentServer/CIAO_ServerActivator_Impl.h"
+#include "ciao/ComponentServer/CIAO_ComponentInstallation_Impl.h"
+#include "ciao/Valuetype_Factories/ConfigValue.h"
+
+const ACE_TCHAR *cs_path = ACE_TEXT ("ciao_componentserver");
+CORBA::ULong spawn_delay = 30;
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, "s:d:");
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 's':
+ cs_path = get_opts.opt_arg ();
+ break;
+
+ case 'd':
+ spawn_delay = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s "
+ "-s <path> "
+ "-d <uint> "
+ "\n",
+ argv [0]),
+ -1);
+ }
+ // Indicates sucessful parsing of the command line
+ return 0;
+}
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR **argv)
+{
+ using namespace CIAO::Deployment;
+
+ try
+ {
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ if (parse_args (argc, argv) != 0)
+ return 1;
+
+ CORBA::Object_var object =
+ orb->resolve_initial_references ("RootPOA");
+
+ PortableServer::POA_var root_poa =
+ PortableServer::POA::_narrow (object.in ());
+
+ PortableServer::POAManager_var poa_manager =
+ root_poa->the_POAManager ();
+
+ poa_manager->activate ();
+
+ CIAO::Deployment::ComponentInstallation_Impl *tmp_ci;
+
+ ACE_NEW_THROW_EX (tmp_ci,
+ CIAO::Deployment::ComponentInstallation_Impl (),
+ CORBA::NO_MEMORY ());
+
+ PortableServer::ServantBase_var safe_servant = tmp_ci;
+
+ CIAO_ServerActivator_i *sa_tmp = new CIAO_ServerActivator_i (spawn_delay,
+ ACE_TEXT_ALWAYS_CHAR (cs_path),
+ 0,
+ false,
+ tmp_ci->_this (),
+ orb.in (),
+ root_poa.in ());
+ PortableServer::ServantBase_var safe = sa_tmp;
+
+ ServerActivator_var sa = sa_tmp->_this ();
+
+ // Make our configvalues
+ // ::Components::ConfigValues_var configs = new
+ ::Components::ConfigValues configs(2);
+ //ACE_DEBUG ((LM_DEBUG, "Attempting to create componentserver with no configvalues\n"));
+ // Make a componentserver with no configvalues
+ ComponentServer_var server1 (ComponentServer::_narrow (sa->create_component_server (configs)));
+ //ACE_DEBUG ((LM_DEBUG, "Componentserver with no configvalues created!\n"));
+
+ //ACE_DEBUG ((LM_DEBUG, "Attempting to create componentserver with UUID configvalues\n"));
+ CORBA::Any val;
+ val <<= "MyNameIsEarl";
+ configs.length (1);
+ ::Components::ConfigValue_var cv_tmp = new CIAO::ConfigValue_impl ("edu.vanderbilt.dre.ServerUUID", val);
+ configs[0] = cv_tmp._retn ();
+
+ ComponentServer_var server2 (ComponentServer::_narrow (sa->create_component_server (configs)));
+
+
+ // Initialize servant
+
+ if (CORBA::is_nil (server1.in ()) ||
+ CORBA::is_nil (server1.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Nil componentserver references"), -1);
+ }
+
+ Components::Deployment::Container_var tmp = server1->create_container (0);
+ Container_var cont1a = Container::_narrow (tmp.in ());
+ if (CORBA::is_nil (cont1a.in ()))
+ {
+ ACE_ERROR ((LM_ERROR, "Error: Got nil object reference from first create op on server 1 %u %u\n",
+ tmp.in (), cont1a.in ()));
+ return -1;
+ }
+ //ACE_DEBUG ((LM_DEBUG, "Got container from server 1a\n"));
+
+ Container_var cont1b = Container::_narrow (server1->create_container (0));
+ if (CORBA::is_nil (cont1b.in ()))
+ {
+ ACE_ERROR ((LM_ERROR, "Error: Got nil object reference from second create op on server 1\n"));
+ return -1;
+ }
+ //ACE_DEBUG ((LM_DEBUG, "Got container from server 1b\n"));
+
+ Container_var cont2a = Container::_narrow (server2->create_container (0));
+ if (CORBA::is_nil (cont2a.in ()))
+ {
+ ACE_ERROR ((LM_ERROR, "Error: Got nil object reference from first create op on server 2\n"));
+ return -1;
+ }
+ //ACE_DEBUG ((LM_DEBUG, "Got container from server 2a\n"));
+
+ try
+ {
+ server2->remove_container (cont1a);
+ ACE_ERROR ((LM_ERROR, "Error: remove_container removed a container not belonging to the component server\n"));
+ }
+ catch (::Components::RemoveFailure &)
+ {
+ //ACE_DEBUG ((LM_DEBUG, "Server 2 Refused to remove container it didn't own\n"));
+ // expected
+ }
+
+ ::Components::Deployment::Containers_var cses = server1->get_containers ();
+
+ if (cses->length () != 2)
+ ACE_ERROR ((LM_ERROR, "Error: get_containers returned the wrong number of containers, %u should be 2\n",
+ cses->length ()));
+ else //ACE_DEBUG ((LM_DEBUG, "Got %u containers\n", cses->length ()));
+
+ server1->remove_container (cont1a);
+ //ACE_DEBUG ((LM_DEBUG, "Successfully removed container 1a\n"));
+
+ cses = server1->get_containers ();
+
+ if (cses->length () != 1)
+ ACE_ERROR ((LM_ERROR, "Error: get_containers returned %u containers after removal, should be 1\n",
+ cses->length ()));
+
+ server2->remove_container (cont2a);
+ //ACE_DEBUG ((LM_DEBUG, "Successfully removed container 2a\n"));
+ server1->remove_container (cont1b);
+ //ACE_DEBUG ((LM_DEBUG, "Successfully removed container 1b\n"));
+
+ //ACE_DEBUG ((LM_DEBUG, "Removing component server\n"));
+ sa->remove_component_server (server1.in ());
+ sa->remove_component_server (server2.in ());
+ //ACE_DEBUG ((LM_DEBUG, "Componentserver removed\n"));
+
+ orb->destroy ();
+ }
+ catch (::Components::CreateFailure &)
+ {
+ ACE_ERROR ((LM_ERROR, "Error: Caught CreateFailure exception.\n"));
+ }
+ catch (::Components::RemoveFailure &)
+ {
+ ACE_ERROR ((LM_ERROR, "Error: Caught RemoveFailure exception.\n"));
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, "Error: Caught unknown exception\n"));
+ }
+ return 0;
+}
diff --git a/modules/CIAO/tests/CIAO_ComponentServer/Activator/run_test.pl b/modules/CIAO/tests/CIAO_ComponentServer/Activator/run_test.pl
new file mode 100755
index 00000000000..cf78cd053d0
--- /dev/null
+++ b/modules/CIAO/tests/CIAO_ComponentServer/Activator/run_test.pl
@@ -0,0 +1,35 @@
+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';
+$ciao_root = "$ENV{CIAO_ROOT}";
+
+foreach $i (@ARGV) {
+ if ($i eq '-debug') {
+ $debug_level = '10';
+ }
+}
+
+my $target = PerlACE::TestTarget::create_target ($PerlACE::TestConfig);
+
+$SV1 = $target->CreateProcess ("./client", "-s $ciao_root/bin/ciao_componentserver");
+
+$server1 = $SV1->SpawnWaitKill (300);
+
+if ($server1 != 0) {
+ $target->GetStderrLog();
+ print STDERR "ERROR: server1 returned $server\n";
+ exit 1;
+}
+
+$target->GetStderrLog();
+
+exit $status;
diff --git a/modules/CIAO/tests/CIAO_ComponentServer/Basic/Basic.mpc b/modules/CIAO/tests/CIAO_ComponentServer/Basic/Basic.mpc
new file mode 100644
index 00000000000..1de96195bb9
--- /dev/null
+++ b/modules/CIAO/tests/CIAO_ComponentServer/Basic/Basic.mpc
@@ -0,0 +1,6 @@
+// $Id$
+project (Basic_CIAOComponentServer_Test) : ciao_componentserver_stub {
+ Source_Files {
+ client.cpp
+ }
+} \ No newline at end of file
diff --git a/modules/CIAO/tests/CIAO_ComponentServer/Basic/client.cpp b/modules/CIAO/tests/CIAO_ComponentServer/Basic/client.cpp
new file mode 100644
index 00000000000..8d36037c8f2
--- /dev/null
+++ b/modules/CIAO/tests/CIAO_ComponentServer/Basic/client.cpp
@@ -0,0 +1,143 @@
+// $Id$
+
+#include "ace/Get_Opt.h"
+#include "ciao/ComponentServer/CIAO_ComponentServerC.h"
+
+const ACE_TCHAR *server_1 = ACE_TEXT("file://test1.ior");
+const ACE_TCHAR *server_2 = ACE_TEXT("file://test2.ior");
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("k:j:"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'k':
+ server_1 = get_opts.opt_arg ();
+ break;
+
+ case 'j':
+ server_2 = get_opts.opt_arg ();
+ break;
+
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s "
+ "-k <ior> "
+ "-j <ior> "
+ "\n",
+ argv [0]),
+ -1);
+ }
+ // Indicates sucessful parsing of the command line
+ return 0;
+}
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR **argv)
+{
+ using namespace CIAO::Deployment;
+
+ try
+ {
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ if (parse_args (argc, argv) != 0)
+ return 1;
+
+ CORBA::Object_var tmp1 = orb->string_to_object(server_1);
+ CORBA::Object_var tmp2 = orb->string_to_object(server_2);
+
+ ComponentServer_var server1 (ComponentServer::_narrow (tmp1)),
+ server2 (ComponentServer::_narrow (tmp2));
+
+ if (CORBA::is_nil (server1.in ()) ||
+ CORBA::is_nil (server1.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Nil componentserver references"), -1);
+ }
+
+ Components::Deployment::Container_var tmp = server1->create_container (0);
+ Container_var cont1a = Container::_narrow (tmp.in ());
+ if (CORBA::is_nil (cont1a.in ()))
+ {
+ ACE_ERROR ((LM_ERROR, "Error: Got nil object reference from first create op on server 1 %u %u\n",
+ tmp.in (), cont1a.in ()));
+ return -1;
+ }
+ ACE_ERROR ((LM_DEBUG, "Got container from server 1a\n"));
+
+ Container_var cont1b = Container::_narrow (server1->create_container (0));
+ if (CORBA::is_nil (cont1b.in ()))
+ {
+ ACE_ERROR ((LM_ERROR, "Error: Got nil object reference from second create op on server 1\n"));
+ return -1;
+ }
+ ACE_ERROR ((LM_DEBUG, "Got container from server 1b\n"));
+
+ Container_var cont2a = Container::_narrow (server2->create_container (0));
+ if (CORBA::is_nil (cont2a.in ()))
+ {
+ ACE_ERROR ((LM_ERROR, "Error: Got nil object reference from first create op on server 2\n"));
+ return -1;
+ }
+ ACE_ERROR ((LM_DEBUG, "Got container from server 2a\n"));
+
+ try
+ {
+ server2->remove_container (cont1a);
+ ACE_ERROR ((LM_ERROR, "Error: remove_container removed a container not belonging to the component server\n"));
+ }
+ catch (const ::Components::RemoveFailure &)
+ {
+ ACE_DEBUG ((LM_DEBUG, "Server 2 Refused to remove container it didn't own\n"));
+ // expected
+ }
+
+ ::Components::Deployment::Containers_var cses = server1->get_containers ();
+
+ if (cses->length () != 2)
+ ACE_ERROR ((LM_ERROR, "Error: get_containers returned the wrong number of containers, %u should be 2\n",
+ cses->length ()));
+ else ACE_DEBUG ((LM_DEBUG, "Got %u containers\n", cses->length ()));
+
+ server1->remove_container (cont1a);
+ ACE_DEBUG ((LM_DEBUG, "Successfully removed container 1a\n"));
+
+ cses = server1->get_containers ();
+
+ if (cses->length () != 1)
+ ACE_ERROR ((LM_ERROR, "Error: get_containers returned %u containers after removal, should be 1\n",
+ cses->length ()));
+
+ server2->remove_container (cont2a);
+ ACE_DEBUG ((LM_DEBUG, "Successfully removed container 2a\n"));
+ server1->remove_container (cont1b);
+ ACE_DEBUG ((LM_DEBUG, "Successfully removed container 1b\n"));
+
+ server1->remove ();
+ server1->shutdown ();
+ server2->remove ();
+ server2->shutdown ();
+
+ orb->destroy ();
+ }
+ catch (const ::Components::CreateFailure &)
+ {
+ ACE_ERROR ((LM_ERROR, "Error: Caught CreateFailure exception.\n"));
+ }
+ catch (const ::Components::RemoveFailure &)
+ {
+ ACE_ERROR ((LM_ERROR, "Error: Caught RemoveFailure exception.\n"));
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, "Error: Caught unknown exception\n"));
+ }
+ return 0;
+}
diff --git a/modules/CIAO/tests/CIAO_ComponentServer/Basic/run_test.pl b/modules/CIAO/tests/CIAO_ComponentServer/Basic/run_test.pl
new file mode 100755
index 00000000000..513023fa7fb
--- /dev/null
+++ b/modules/CIAO/tests/CIAO_ComponentServer/Basic/run_test.pl
@@ -0,0 +1,110 @@
+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';
+$ciao_root = "$ENV{CIAO_ROOT}";
+
+foreach $i (@ARGV) {
+ if ($i eq '-debug') {
+ $debug_level = '10';
+ }
+}
+
+my $target = PerlACE::TestTarget::create_target ($PerlACE::TestConfig);
+my $host = new PerlACE::TestTarget;
+
+$iorbase1 = "server1.ior";
+$iorbase2 = "server2.ior";
+
+$server_iorfile1 = $target->LocalFile ($iorbase1);
+$server_iorfile2 = $target->LocalFile ($iorbase2);
+
+$target->DeleteFile($iorbase1);
+$target->DeleteFile($iorbase2);
+
+$client_iorfile1 = $host->LocalFile ($iorbase1);
+$client_iorfile2 = $host->LocalFile ($iorbase2);
+
+$host->DeleteFile($iorbase1);
+$host->DeleteFile($iorbase2);
+
+$SV1 = $target->CreateProcess ("$ciao_root/bin/ciao_componentserver", "-ORBDebuglevel $debug_level -u $server_iorfile1 -o $server_iorfile1");
+$SV2 = $target->CreateProcess ("$ciao_root/bin/ciao_componentserver", "-ORBDebuglevel $debug_level -u $server_iorfile2 -o $server_iorfile2");
+
+$CL = $host->CreateProcess ("client", "-k file://$client_iorfile1 -j file://$client_iorfile2");
+
+$server_status1 = $SV1->Spawn ();
+$server_status2 = $SV2->Spawn ();
+
+if ($server_status1 != 0) {
+ print STDERR "ERROR: server1 returned $server_status1\n";
+ exit 1;
+}
+if ($server_status2 != 0) {
+ print STDERR "ERROR: server2 returned $server_status2\n";
+ exit 1;
+}
+
+if ($target->WaitForFileTimed ($iorbase1,
+ $target->ProcessStartWaitInterval ()) == -1) {
+ print STDERR "ERROR: cannot find file <$server_iorfile1>\n";
+ $SV1->Kill (); $SV1->TimedWait (1);
+ exit 1;
+}
+
+if ($target->WaitForFileTimed ($iorbase2,
+ $target->ProcessStartWaitInterval ()) == -1) {
+ print STDERR "ERROR: cannot find file <$server_iorfile2>\n";
+ $SV2->Kill (); $SV2->TimedWait (1);
+ exit 1;
+}
+
+if ($target->GetFile ($server_iorfile1, $iorbase) == -1) {
+ print STDERR "ERROR: cannot retrieve file <$iorfile1>\n";
+ $SV1->Kill (); $SV1->TimedWait (1);
+ exit 1;
+}
+
+if ($target->GetFile ($server_iorfile2, $iorbase) == -1) {
+ print STDERR "ERROR: cannot retrieve file <$iorfile2>\n";
+ $SV2->Kill (); $SV2->TimedWait (1);
+ exit 1;
+}
+
+$client_status = $CL->SpawnWaitKill (300);
+
+if ($client_status != 0) {
+ print STDERR "ERROR: client returned $client_status\n";
+ $status = 1;
+}
+
+$server_status1 = $SV1->WaitKill (10);
+$server_status2 = $SV2->WaitKill (10);
+
+if ($server_status1 != 0) {
+ print STDERR "ERROR: server1 returned $server_status1\n";
+ $status = 1;
+}
+
+if ($server_status2 != 0) {
+ print STDERR "ERROR: server2 returned $server_status2\n";
+ $status = 1;
+}
+
+$target->GetStderrLog();
+
+$target->DeleteFile($iorbase1);
+$target->DeleteFile($iorbase2);
+
+$host->DeleteFile($iorbase1);
+$host->DeleteFile($iorbase2);
+
+exit $status;
diff --git a/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.idl b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.idl
new file mode 100644
index 00000000000..dcf676fb276
--- /dev/null
+++ b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.idl
@@ -0,0 +1,21 @@
+//$Id$
+
+#include <Components.idl>
+
+module Foo
+{
+ interface Simple
+ {
+ void trigger ();
+ };
+
+ component SimpleComponent supports Simple
+ {
+ readonly attribute string creationtype_;
+ };
+
+ home SimpleHome manages SimpleComponent
+ {
+ };
+};
+
diff --git a/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.mpc b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.mpc
new file mode 100644
index 00000000000..cf6400373a5
--- /dev/null
+++ b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.mpc
@@ -0,0 +1,112 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl SimpleComponent"
+
+project(SimpleComponent_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=SIMPLECOMPONENT_STUB_Export \
+ -Wb,stub_export_include=SimpleComponent_stub_export.h \
+ -Wb,skel_export_macro=SIMPLECOMPONENT_SVNT_Export \
+ -Wb,skel_export_include=SimpleComponent_svnt_export.h \
+ -Wb,exec_export_macro=SIMPLECOMPONENT_EXEC_Export \
+ -Wb,exec_export_include=SimpleComponent_exec_export.h
+
+ IDL_Files {
+ SimpleComponent.idl
+ }
+}
+
+project(SimpleComponent_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ after += SimpleComponent_idl_gen
+ idlflags += -Wb,export_macro=SIMPLECOMPONENT_EXEC_Export \
+ -Wb,export_include=SimpleComponent_exec_export.h \
+ -SS
+
+ IDL_Files {
+ SimpleComponentE.idl
+ }
+}
+
+project(SimpleComponent_stub) : ccm_stub {
+ after += SimpleComponent_idl_gen
+
+ sharedname = SimpleComponent_stub
+ dynamicflags = SIMPLECOMPONENT_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleComponentC.cpp
+ }
+
+ Header_Files {
+ SimpleComponentC.h
+ SimpleComponent_stub_export.h
+ }
+
+ Inline_Files {
+ SimpleComponentC.inl
+ }
+}
+
+project(SimpleComponent_exec) : ciao_executor {
+ after += SimpleComponent_lem_gen SimpleComponent_stub
+ sharedname = SimpleComponent_exec
+ libs += SimpleComponent_stub
+
+ dynamicflags = SIMPLECOMPONENT_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleComponentEC.cpp
+ SimpleComponent_exec.cpp
+ }
+
+ Header_Files {
+ SimpleComponentEC.h
+ SimpleComponent_exec.h
+ SimpleComponent_exec_export.h
+ }
+
+ Inline_Files {
+ SimpleComponentEC.inl
+ }
+}
+
+
+project(SimpleComponent_svnt) : ciao_servant {
+ sharedname = SimpleComponent_svnt
+ libs += SimpleComponent_stub SimpleComponent_exec
+ after += SimpleComponent_stub SimpleComponent_exec
+ dynamicflags = SIMPLECOMPONENT_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+ Source_Files {
+ SimpleComponentS.cpp
+ SimpleComponent_svnt.cpp
+ }
+
+ Header_Files {
+ SimpleComponentS.h
+ SimpleComponent_svnt.h
+ SimpleComponent_svnt_export.h
+ }
+
+ Inline_Files {
+ SimpleComponentS.inl
+ }
+}
+
+project (SimpleComp_CIAOComponentServer_Tst) : ciao_componentserver_stub, ccm_configvalue, ciao_cs_client, ciao_logger {
+ after += SimpleComponent_stub SimpleComponent_svnt
+ libs += SimpleComponent_stub
+ IDL_Files {
+ }
+ Source_Files {
+ client.cpp
+ }
+}
diff --git a/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec.cpp b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec.cpp
new file mode 100644
index 00000000000..0c81e9ab1d6
--- /dev/null
+++ b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec.cpp
@@ -0,0 +1,131 @@
+// $Id$
+
+#include "SimpleComponent_exec.h"
+#include "ciao/Logger/Log_Macros.h"
+
+namespace CIAO_Foo_SimpleComponent_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: SimpleComponent_exec_i
+ //==================================================================
+
+ SimpleComponent_exec_i::SimpleComponent_exec_i (const char *type)
+ : type_ (CORBA::string_dup (type))
+ {
+ }
+
+ SimpleComponent_exec_i::~SimpleComponent_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ void
+ SimpleComponent_exec_i::trigger ()
+ {
+ ACE_DEBUG ((LM_EMERGENCY, "Hello, world!!!!!!!!\n"));
+ }
+
+ // Attribute operations.
+
+ char *
+ SimpleComponent_exec_i::creationtype_ ()
+ {
+ return CORBA::string_dup (this->type_.in ());
+ }
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ void
+ SimpleComponent_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::Foo::CCM_SimpleComponent_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ SimpleComponent_exec_i::configuration_complete ()
+ {
+ // Your code here.
+ }
+
+ void
+ SimpleComponent_exec_i::ccm_activate ()
+ {
+ // Your code here.
+ }
+
+ void
+ SimpleComponent_exec_i::ccm_passivate ()
+ {
+ // Your code here.
+ }
+
+ void
+ SimpleComponent_exec_i::ccm_remove ()
+ {
+ // Your code here.
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: SimpleHome_exec_i
+ //==================================================================
+
+ SimpleHome_exec_i::SimpleHome_exec_i (void)
+ {
+ CIAO_TRACE ("SimpleHome_exec_i::SimpleHome_exec_i");
+ CIAO_DEBUG ((LM_NOTICE, CLINFO "SimpleHome_exec_i::SimpleHome_exec_i - "
+ "Home constructed\n"));
+ }
+
+ SimpleHome_exec_i::~SimpleHome_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ SimpleHome_exec_i::create ()
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ SimpleComponent_exec_i ("HomeCreated"),
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" SIMPLECOMPONENT_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Foo_SimpleHome_Impl (void)
+ {
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ SimpleHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec.h b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec.h
new file mode 100644
index 00000000000..8c53fab0a15
--- /dev/null
+++ b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec.h
@@ -0,0 +1,108 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#ifndef CIAO_SIMPLECOMPONENT_EXEC_H
+#define CIAO_SIMPLECOMPONENT_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "SimpleComponentEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "SimpleComponent_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Foo_SimpleComponent_Impl
+{
+ class SIMPLECOMPONENT_EXEC_Export SimpleComponent_exec_i
+ : public virtual SimpleComponent_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleComponent_exec_i (const char *CreateType);
+ virtual ~SimpleComponent_exec_i (void);
+
+ // Supported or inherited operations.
+
+ virtual void
+ trigger ();
+
+ // Attribute operations.
+
+ virtual char *
+ creationtype_ ()
+ ;
+
+ // 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:
+ ::Foo::CCM_SimpleComponent_Context_var context_;
+
+ CORBA::String_var type_;
+
+ };
+
+ class SIMPLECOMPONENT_EXEC_Export SimpleHome_exec_i
+ : public virtual SimpleHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleHome_exec_i (void);
+ virtual ~SimpleHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" SIMPLECOMPONENT_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Foo_SimpleHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_SIMPLECOMPONENT_EXEC_H */
+
diff --git a/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/client.cpp b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/client.cpp
new file mode 100644
index 00000000000..bdcdf022d1a
--- /dev/null
+++ b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/client.cpp
@@ -0,0 +1,187 @@
+// $Id$
+
+#include "ace/Get_Opt.h"
+#include "ciao/ComponentServer/CIAO_CS_ClientS.h"
+#include "ciao/ComponentServer/CIAO_ComponentServerC.h"
+#include "ciao/ComponentServer/CIAO_ServerActivator_Impl.h"
+#include "ciao/ComponentServer/CIAO_ComponentInstallation_Impl.h"
+#include "ciao/ComponentServer/CIAO_PropertiesC.h"
+#include "ciao/Valuetype_Factories/ConfigValue.h"
+#include "ciao/Logger/Logger_Service.h"
+
+#include "SimpleComponentC.h"
+
+const char *cs_path = "ciao_componentserver";
+CORBA::ULong spawn_delay = 30;
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("s:d:"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 's':
+ cs_path = ACE_TEXT_ALWAYS_CHAR (get_opts.opt_arg ());
+ break;
+
+ case 'd':
+ spawn_delay = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s "
+ "-s <path> "
+ "-d <uint> "
+ "\n",
+ argv [0]),
+ -1);
+ }
+ // Indicates sucessful parsing of the command line
+ return 0;
+}
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR **argv)
+{
+ using namespace CIAO::Deployment;
+
+ CIAO::Logger_Service logger;
+
+ logger.init (argc, argv);
+ try
+ {
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+ if (parse_args (argc, argv) != 0)
+ return 1;
+
+ CORBA::Object_var object =
+ orb->resolve_initial_references ("RootPOA");
+
+ PortableServer::POA_var root_poa =
+ PortableServer::POA::_narrow (object.in ());
+
+ PortableServer::POAManager_var poa_manager =
+ root_poa->the_POAManager ();
+
+ poa_manager->activate ();
+ ACE_DEBUG ((LM_DEBUG, "foo\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;
+
+ root_poa->activate_object (tmp_ci);
+
+ CIAO_ServerActivator_i *sa_tmp = new CIAO_ServerActivator_i (spawn_delay,
+ cs_path,
+ 0,
+ false,
+ tmp_ci->_this (),
+ orb.in (),
+ root_poa.in ());
+
+ PortableServer::ServantBase_var safe = sa_tmp;
+
+ ServerActivator_var sa = sa_tmp->_this ();
+
+ //ACE_DEBUG ((LM_DEBUG, "Attempting to create componentserver with no configvalues\n"));
+ // Make a componentserver with no configvalues
+ ComponentServer_var server1 (ComponentServer::_narrow (sa->create_component_server (0)));
+
+ if (CORBA::is_nil (server1.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Nil componentserver references"), -1);
+ }
+
+ Components::Deployment::Container_var tmp = server1->create_container (0);
+ Container_var cont1a = Container::_narrow (tmp.in ());
+
+ if (CORBA::is_nil (cont1a.in ()))
+ {
+ ACE_ERROR ((LM_ERROR, "Error: Got nil object reference from first create op on server 1 %u %u\n",
+ tmp.in (), cont1a.in ()));
+ return -1;
+ }
+
+ // Make our configvalues
+ // ::Components::ConfigValues_var configs = new
+ CORBA::Any val;
+ ::Components::ConfigValues configs(3);
+ configs.length (3);
+
+ val <<= "create_Foo_SimpleHome_Servant";
+ configs[0] = new CIAO::ConfigValue_impl (CIAO::Deployment::SVNT_ENTRYPT,
+ val);
+ val <<= "SimpleComponent_svnt";
+ configs[1] = new CIAO::ConfigValue_impl (CIAO::Deployment::SVNT_ARTIFACT,
+ val);
+ tmp_ci->install ("SimpleComponent_svnt", "SimpleComponent_svnt");
+ val <<= "SimpleComponent_exec";
+ configs[2] = new CIAO::ConfigValue_impl (CIAO::Deployment::EXEC_ARTIFACT,
+ val);
+ tmp_ci->install ("SimpleComponent_exec", "SimpleComponent_exec");
+
+ // Install Home
+ Components::CCMHome_var home = cont1a->install_home ("MyNameIsEarl",
+ "create_Foo_SimpleHome_Impl",
+ configs);
+
+ if (CORBA::is_nil (home))
+ {
+ ACE_ERROR ((LM_ERROR, "Got back a nil home ref from install_home\n"));
+ return -1;
+ }
+
+ Foo::SimpleHome_var shome = Foo::SimpleHome::_narrow (home.in ());
+
+ if (CORBA::is_nil (shome))
+ {
+ ACE_ERROR ((LM_ERROR, "Narrow failed from CCM_Home to SimpleHome\n"));
+ return -1;
+ }
+
+
+ Foo::SimpleComponent_var sc = shome->create ();
+
+ if (CORBA::is_nil (sc))
+ {
+ ACE_ERROR ((LM_ERROR, "Home failed to make a component\n"));
+ return -1;
+ }
+
+ sc->trigger ();
+
+ cont1a->remove_home (home.in ());
+
+ server1->remove_container (cont1a.in ());
+
+ //ACE_DEBUG ((LM_DEBUG, "Removing component server\n"));
+ sa->remove_component_server (server1.in ());
+ //ACE_DEBUG ((LM_DEBUG, "Componentserver removed\n"));
+
+ orb->destroy ();
+ }
+ catch (::Components::CreateFailure &)
+ {
+ ACE_ERROR ((LM_ERROR, "Error: Caught CreateFailure exception.\n"));
+ }
+ catch (::Components::RemoveFailure &)
+ {
+ ACE_ERROR ((LM_ERROR, "Error: Caught RemoveFailure exception.\n"));
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, "Error: Caught unknown exception\n"));
+ }
+ return 0;
+}
diff --git a/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/run_test.pl b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/run_test.pl
new file mode 100755
index 00000000000..5d8a72f7694
--- /dev/null
+++ b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/run_test.pl
@@ -0,0 +1,33 @@
+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;
+$ciao_root = "$ENV{CIAO_ROOT}";
+
+foreach $i (@ARGV) {
+ if ($i eq '-debug') {
+ $ENV{"DANCE_TRACE_ENABLE"} = 1;
+ $ENV{"CIAO_TRACE_ENABLE"} = 1;
+ }
+}
+
+my $target = PerlACE::TestTarget::create_target ($PerlACE::TestConfig);
+
+$TG = $target->CreateProcess ("client", "-s $ciao_root/bin/ciao_componentserver -d 120");
+$server_status = $TG->SpawnWaitKill ($target->ProcessStartWaitInterval ());
+
+if ($server_status != 0) {
+ print STDERR "ERROR: process returned $server_status\n";
+ exit 1;
+}
+
+$target->GetStderrLog();
+
+exit $status;
diff --git a/modules/CIAO/tests/CIDL/CodeGen/Basic.idl b/modules/CIAO/tests/CIDL/CodeGen/Basic.idl
new file mode 100644
index 00000000000..9c86c4b7846
--- /dev/null
+++ b/modules/CIAO/tests/CIDL/CodeGen/Basic.idl
@@ -0,0 +1,65 @@
+// $Id$
+//=============================================================================
+/**
+ * @file Basic.idl
+ *
+ * Definition of events, and common interfaces used in the BasicSP module.
+ *
+ * @author Balachandran Natarajan <bala@dre.vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef CIAO_BASIC_IDL
+#define CIAO_BASIC_IDL
+
+#include <Components.idl>
+
+// @@NOTE: Do we need a pragma prefix. Anyway its broken now in TAO..
+
+module Extra
+{
+ exception NoReason {};
+ exception NoRhyme {};
+
+ struct UserDataQosPolicy {
+ sequence<octet> value;
+ };
+
+ struct key {
+ long value[3];
+ };
+
+ interface Superfluous
+ {
+ attribute string useless_attr;
+ long superfluous_op (in string empty_arg)
+ raises (NoReason);
+ };
+
+ interface Supernumerary
+ {
+ void supernumerary_op (out string dummy_arg)
+ raises (NoRhyme, NoReason);
+ };
+};
+
+// #pragma prefix ""
+
+module Basic
+{
+ interface ReadData : Extra::Superfluous
+ {
+ string get_data ();
+ };
+
+ interface AnalyzeData
+ {
+ void perform_analysis (inout string data);
+ attribute boolean fine_tooth_comb;
+ };
+
+ eventtype TimeOut {};
+ eventtype DataAvailable {};
+};
+
+#endif /*CIAO_BASIC_IDL*/
diff --git a/modules/CIAO/tests/CIDL/CodeGen/Basic.mpc b/modules/CIAO/tests/CIDL/CodeGen/Basic.mpc
new file mode 100644
index 00000000000..35f827366be
--- /dev/null
+++ b/modules/CIAO/tests/CIDL/CodeGen/Basic.mpc
@@ -0,0 +1,80 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Basic"
+
+project(Basic_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=BASIC_STUB_Export \
+ -Wb,stub_export_include=Basic_stub_export.h \
+ -Wb,skel_export_macro=BASIC_SKEL_Export \
+ -Wb,skel_export_include=Basic_skel_export.h
+
+ IDL_Files {
+ Basic.idl
+ }
+}
+
+project(Basic_lem_gen) : componentidldefaults {
+ custom_only = 1
+ after += Basic_idl_gen
+ idlflags += -Wb,stub_export_macro=BASIC_STUB_Export \
+ -Wb,stub_export_include=Basic_stub_export.h \
+ -Wb,skel_export_macro=BASIC_SKEL_Export \
+ -Wb,skel_export_include=Basic_skel_export.h
+
+ IDL_Files {
+ BasicE.idl
+ }
+}
+
+project(Basic_stub) : ccm_stub {
+ after += Basic_lem_gen
+ libs +=
+
+ sharedname = Basic_stub
+ dynamicflags = BASIC_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ BasicC.cpp
+ BasicEC.cpp
+ }
+
+ Header_Files {
+ BasicC.h
+ Basic_stub_export.h
+ }
+
+ Inline_Files {
+ BasicC.inl
+ }
+}
+
+
+project(Basic_skel) : ciao_executor {
+ after += Basic_stub
+ sharedname = Basic_skel
+ libs += Basic_stub
+
+
+ dynamicflags = BASIC_SKEL_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ BasicS.cpp
+ }
+
+ Header_Files {
+ BasicS.h
+ Basic_skel_export.h
+ }
+
+ Inline_Files {
+ BasicS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/tests/CIDL/CodeGen/CodeGen.idl b/modules/CIAO/tests/CIDL/CodeGen/CodeGen.idl
new file mode 100644
index 00000000000..224315de2b8
--- /dev/null
+++ b/modules/CIAO/tests/CIDL/CodeGen/CodeGen.idl
@@ -0,0 +1,46 @@
+//$Id$
+#include "Basic.idl"
+#include "BasicE.idl"
+
+module Basic
+{
+ component Base supports Extra::Supernumerary, Extra::Superfluous
+ {
+ provides ReadData data_read;
+ attribute boolean is_not_necessary;
+ };
+
+ component CodeGen : Base
+ {
+ provides ReadData data_out;
+ uses ReadData data_in;
+ publishes DataAvailable out_avail;
+ consumes DataAvailable in_avail;
+ provides AnalyzeData data_crunch;
+
+ readonly attribute boolean is_necessary;
+ };
+
+ home BaseHome supports Extra::Supernumerary manages Base
+ {
+ void base_do_nothing ();
+
+ factory create_no_base (in long fake_id)
+ raises (Extra::NoRhyme);
+
+ finder find_no_base ();
+
+ readonly attribute boolean is_useful;
+ };
+
+ home CodeGenHome : BaseHome manages CodeGen
+ {
+ factory create_no_derived ();
+
+ finder find_no_derived ();
+
+ attribute boolean is_not_useful;
+
+ string do_nothing ();
+ };
+};
diff --git a/modules/CIAO/tests/CIDL/CodeGen/CodeGen.mpc b/modules/CIAO/tests/CIDL/CodeGen/CodeGen.mpc
new file mode 100644
index 00000000000..70e490dea96
--- /dev/null
+++ b/modules/CIAO/tests/CIDL/CodeGen/CodeGen.mpc
@@ -0,0 +1,116 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p Basic CodeGen"
+//
+// NOTE: This MPC file has been hand edited so the executor files
+// will be autogenerated part of the build process. Excercise
+// caution when regenerating this file (that is, remember to
+// insert the logic for autogeneration of executor files).
+
+project(Basic_CodeGen_idl_gen) : componentidldefaults {
+ after += Basic_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=CODEGEN_STUB_Export \
+ -Wb,stub_export_include=CodeGen_stub_export.h \
+ -Wb,skel_export_macro=CODEGEN_SVNT_Export \
+ -Wb,skel_export_include=CodeGen_svnt_export.h \
+ -Wb,exec_export_macro=CODEGEN_EXEC_Export \
+ -Wb,exec_export_include=CodeGen_exec_export.h \
+ -Gex
+
+ IDL_Files {
+ CodeGen.idl
+ }
+}
+
+project(Basic_CodeGen_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ after += Basic_CodeGen_idl_gen
+ idlflags += -Wb,export_macro=CODEGEN_EXEC_Export \
+ -Wb,export_include=CodeGen_exec_export.h \
+ -SS
+ IDL_Files {
+ CodeGenE.idl
+ }
+}
+
+project(Basic_CodeGen_stub) : ccm_stub {
+ after += Basic_CodeGen_idl_gen Basic_stub
+ libs += Basic_stub
+
+ sharedname = CodeGen_stub
+ dynamicflags = CODEGEN_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ CodeGenC.cpp
+ }
+
+ Header_Files {
+ CodeGenC.h
+ CodeGen_stub_export.h
+ }
+
+ Inline_Files {
+ CodeGenC.inl
+ }
+}
+
+project(Basic_CodeGen_exec) : ciao_executor {
+ after += Basic_CodeGen_lem_gen Basic_CodeGen_stub
+ sharedname = CodeGen_exec
+ libs += CodeGen_stub Basic_stub
+
+ dynamicflags = CODEGEN_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ CodeGenEC.cpp
+ CodeGen_exec.cpp
+ }
+
+ Header_Files {
+ CodeGenEC.h
+ CodeGen_exec.h
+ CodeGen_exec_export.h
+ }
+
+ Inline_Files {
+ CodeGenEC.inl
+ }
+}
+
+
+project(Basic_CodeGen_svnt) : ciao_servant {
+ after += Basic_skel Basic_CodeGen_exec
+ sharedname = CodeGen_svnt
+ libs += CodeGen_exec \
+ CodeGen_stub \
+ Basic_skel \
+ Basic_stub
+
+ dynamicflags = CODEGEN_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ CodeGenS.cpp
+ CodeGen_svnt.cpp
+ }
+
+ Header_Files {
+ CodeGenS.h
+ CodeGen_svnt.h
+ CodeGen_svnt_export.h
+ }
+
+ Inline_Files {
+ CodeGenS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/tests/CIDL/CodeGen/README b/modules/CIAO/tests/CIDL/CodeGen/README
new file mode 100644
index 00000000000..da6e8f6ee90
--- /dev/null
+++ b/modules/CIAO/tests/CIDL/CodeGen/README
@@ -0,0 +1,40 @@
+
+Code Generation Test
+========================
+
+While the tests in CIAO_ROOT/tests/IDL3 target IDL3 support
+and IDL3-specific code generation in particular, the tests
+in CIAO_ROOT/CIDL target CIDL features and code generated
+from .cidl files. The test in this directory particularly
+stresses the code generation of the CIDL compiler. This
+code includes the executor mapping IDL, the servant code,
+and the executor implementation code. The latter is not
+fully generated of course, it's merely classes (one for
+each component executor, home executor, and facet executor)
+with the spec-defined operations filled in, but with the
+IDL-defined operations and attributes left blank.
+
+The IDL files in this test include most if not all of the
+IDL3 features that might cause a problem in code generation -
+catching operations and attributes for supported interfaces,
+operations and attributes for supported interface base
+classes, operations and attributes for inherited home
+classes, factory and finder operations for homes and those
+inherited from base homes - you get the idea. More stuff
+will be added as we think of it or a problem crops up.The object
+of this test is for all builds to complete successfully -
+there's no execution involved, since every build is a
+library, there's no executable to drive it.
+
+Please see the README file in CIAO_ROOT for info on how
+to set up builds with MPC. The builds in this test depend
+directly on CIAO_Container, CIAO_Servant and CIAO_Stub,
+and indirectly on everything those three depend on. There's
+a list in the above mentioned README file - to build those
+libraries, you'll of course need ACE (ACE_ROOT/ace), TAO
+(ACE_ROOT/TAO/tao) the IDL compiler (3 builds in
+ACE_ROOT/TAO/TAO_IDL) and gperf (ACE_ROOT/apps/gperf/src).
+
+Enjoy!
+
+Jeff \ No newline at end of file
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes.idl b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes.idl
new file mode 100644
index 00000000000..15c32fe82b3
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes.idl
@@ -0,0 +1,51 @@
+// $Id$
+/**
+ * @file Attributes.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ */
+
+#include <Components.idl>
+
+module Attributes
+{
+ component Foo
+ {
+ attribute float test;
+ attribute long testA, testB;
+ };
+
+ component Bar
+ {
+ readonly attribute float test1;
+ readonly attribute long testB, testC;
+ };
+
+ exception FooException
+ {
+ };
+
+ exception BarException
+ {
+ };
+
+ component FooRaises
+ {
+ attribute float test2 getraises (FooException);
+ };
+
+ component BarRaises
+ {
+ attribute float test3 setraises (BarException);
+ };
+
+ component FooBarRaises
+ {
+ attribute float test4
+ getraises (FooException) setraises (BarException);
+ };
+
+ component ROFooRaises
+ {
+ readonly attribute float test5 raises (FooException);
+ };
+};
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes.mpc b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes.mpc
new file mode 100644
index 00000000000..eea659666a3
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes.mpc
@@ -0,0 +1,17 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Attributes"
+
+project(Attributes_stub): ccm_stub {
+
+ sharedname = Attributes_stub
+ idlflags += -Wb,stub_export_macro=ATTRIBUTES_STUB_Export -Wb,stub_export_include=Attributes_stub_export.h -Wb,skel_export_macro=ATTRIBUTES_SVNT_Export -Wb,skel_export_include=Attributes_svnt_export.h
+ dynamicflags = ATTRIBUTES_STUB_BUILD_DLL
+
+ IDL_Files {
+ Attributes.idl
+ }
+
+ Source_Files {
+ AttributesC.cpp
+ }
+}
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes_stub_export.h b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes_stub_export.h
new file mode 100644
index 00000000000..dfa59c5b267
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ATTRIBUTES_STUB
+// ------------------------------
+#ifndef ATTRIBUTES_STUB_EXPORT_H
+#define ATTRIBUTES_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ATTRIBUTES_STUB_HAS_DLL)
+# define ATTRIBUTES_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ATTRIBUTES_STUB_HAS_DLL */
+
+#if !defined (ATTRIBUTES_STUB_HAS_DLL)
+# define ATTRIBUTES_STUB_HAS_DLL 1
+#endif /* ! ATTRIBUTES_STUB_HAS_DLL */
+
+#if defined (ATTRIBUTES_STUB_HAS_DLL) && (ATTRIBUTES_STUB_HAS_DLL == 1)
+# if defined (ATTRIBUTES_STUB_BUILD_DLL)
+# define ATTRIBUTES_STUB_Export ACE_Proper_Export_Flag
+# define ATTRIBUTES_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ATTRIBUTES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ATTRIBUTES_STUB_BUILD_DLL */
+# define ATTRIBUTES_STUB_Export ACE_Proper_Import_Flag
+# define ATTRIBUTES_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ATTRIBUTES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ATTRIBUTES_STUB_BUILD_DLL */
+#else /* ATTRIBUTES_STUB_HAS_DLL == 1 */
+# define ATTRIBUTES_STUB_Export
+# define ATTRIBUTES_STUB_SINGLETON_DECLARATION(T)
+# define ATTRIBUTES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ATTRIBUTES_STUB_HAS_DLL == 1 */
+
+// Set ATTRIBUTES_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ATTRIBUTES_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ATTRIBUTES_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ATTRIBUTES_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ATTRIBUTES_STUB_NTRACE */
+
+#if (ATTRIBUTES_STUB_NTRACE == 1)
+# define ATTRIBUTES_STUB_TRACE(X)
+#else /* (ATTRIBUTES_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ATTRIBUTES_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ATTRIBUTES_STUB_NTRACE == 1) */
+
+#endif /* ATTRIBUTES_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes_svnt_export.h b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes_svnt_export.h
new file mode 100644
index 00000000000..e641264d206
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ATTRIBUTES_SVNT
+// ------------------------------
+#ifndef ATTRIBUTES_SVNT_EXPORT_H
+#define ATTRIBUTES_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ATTRIBUTES_SVNT_HAS_DLL)
+# define ATTRIBUTES_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ATTRIBUTES_SVNT_HAS_DLL */
+
+#if !defined (ATTRIBUTES_SVNT_HAS_DLL)
+# define ATTRIBUTES_SVNT_HAS_DLL 1
+#endif /* ! ATTRIBUTES_SVNT_HAS_DLL */
+
+#if defined (ATTRIBUTES_SVNT_HAS_DLL) && (ATTRIBUTES_SVNT_HAS_DLL == 1)
+# if defined (ATTRIBUTES_SVNT_BUILD_DLL)
+# define ATTRIBUTES_SVNT_Export ACE_Proper_Export_Flag
+# define ATTRIBUTES_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ATTRIBUTES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ATTRIBUTES_SVNT_BUILD_DLL */
+# define ATTRIBUTES_SVNT_Export ACE_Proper_Import_Flag
+# define ATTRIBUTES_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ATTRIBUTES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ATTRIBUTES_SVNT_BUILD_DLL */
+#else /* ATTRIBUTES_SVNT_HAS_DLL == 1 */
+# define ATTRIBUTES_SVNT_Export
+# define ATTRIBUTES_SVNT_SINGLETON_DECLARATION(T)
+# define ATTRIBUTES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ATTRIBUTES_SVNT_HAS_DLL == 1 */
+
+// Set ATTRIBUTES_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ATTRIBUTES_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ATTRIBUTES_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ATTRIBUTES_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ATTRIBUTES_SVNT_NTRACE */
+
+#if (ATTRIBUTES_SVNT_NTRACE == 1)
+# define ATTRIBUTES_SVNT_TRACE(X)
+#else /* (ATTRIBUTES_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ATTRIBUTES_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ATTRIBUTES_SVNT_NTRACE == 1) */
+
+#endif /* ATTRIBUTES_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink.idl b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink.idl
new file mode 100644
index 00000000000..e07fa13a7d2
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink.idl
@@ -0,0 +1,29 @@
+// $Id$
+/**
+ * @file EventSink.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ */
+
+#include <Components.idl>
+
+module EventSink
+{
+ eventtype foo_event
+ {
+ };
+
+ eventtype bar_event
+ {
+ };
+
+ component Foo
+ {
+ consumes foo_event c_foo;
+ };
+
+ component Bar : Foo
+ {
+ consumes bar_event c_bar;
+ };
+
+};
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink.mpc b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink.mpc
new file mode 100644
index 00000000000..79ca1898fd6
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink.mpc
@@ -0,0 +1,18 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n EventSink"
+
+project(EventSink_stub): ccm_stub {
+
+ sharedname = EventSink_stub
+ idlflags += -Wb,stub_export_macro=EVENTSINK_STUB_Export -Wb,stub_export_include=EventSink_stub_export.h -Wb,skel_export_macro=EVENTSINK_SVNT_Export -Wb,skel_export_include=EventSink_svnt_export.h
+ dynamicflags = EVENTSINK_STUB_BUILD_DLL
+
+ IDL_Files {
+ EventSink.idl
+ }
+
+ Source_Files {
+ EventSinkC.cpp
+ }
+}
+
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink_stub_export.h b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink_stub_export.h
new file mode 100644
index 00000000000..e2a7f876165
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl EVENTSINK_STUB
+// ------------------------------
+#ifndef EVENTSINK_STUB_EXPORT_H
+#define EVENTSINK_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (EVENTSINK_STUB_HAS_DLL)
+# define EVENTSINK_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && EVENTSINK_STUB_HAS_DLL */
+
+#if !defined (EVENTSINK_STUB_HAS_DLL)
+# define EVENTSINK_STUB_HAS_DLL 1
+#endif /* ! EVENTSINK_STUB_HAS_DLL */
+
+#if defined (EVENTSINK_STUB_HAS_DLL) && (EVENTSINK_STUB_HAS_DLL == 1)
+# if defined (EVENTSINK_STUB_BUILD_DLL)
+# define EVENTSINK_STUB_Export ACE_Proper_Export_Flag
+# define EVENTSINK_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define EVENTSINK_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* EVENTSINK_STUB_BUILD_DLL */
+# define EVENTSINK_STUB_Export ACE_Proper_Import_Flag
+# define EVENTSINK_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define EVENTSINK_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* EVENTSINK_STUB_BUILD_DLL */
+#else /* EVENTSINK_STUB_HAS_DLL == 1 */
+# define EVENTSINK_STUB_Export
+# define EVENTSINK_STUB_SINGLETON_DECLARATION(T)
+# define EVENTSINK_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* EVENTSINK_STUB_HAS_DLL == 1 */
+
+// Set EVENTSINK_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (EVENTSINK_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define EVENTSINK_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define EVENTSINK_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !EVENTSINK_STUB_NTRACE */
+
+#if (EVENTSINK_STUB_NTRACE == 1)
+# define EVENTSINK_STUB_TRACE(X)
+#else /* (EVENTSINK_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define EVENTSINK_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (EVENTSINK_STUB_NTRACE == 1) */
+
+#endif /* EVENTSINK_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink_svnt_export.h b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink_svnt_export.h
new file mode 100644
index 00000000000..b30cb9768c2
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl EVENTSINK_SVNT
+// ------------------------------
+#ifndef EVENTSINK_SVNT_EXPORT_H
+#define EVENTSINK_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (EVENTSINK_SVNT_HAS_DLL)
+# define EVENTSINK_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && EVENTSINK_SVNT_HAS_DLL */
+
+#if !defined (EVENTSINK_SVNT_HAS_DLL)
+# define EVENTSINK_SVNT_HAS_DLL 1
+#endif /* ! EVENTSINK_SVNT_HAS_DLL */
+
+#if defined (EVENTSINK_SVNT_HAS_DLL) && (EVENTSINK_SVNT_HAS_DLL == 1)
+# if defined (EVENTSINK_SVNT_BUILD_DLL)
+# define EVENTSINK_SVNT_Export ACE_Proper_Export_Flag
+# define EVENTSINK_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define EVENTSINK_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* EVENTSINK_SVNT_BUILD_DLL */
+# define EVENTSINK_SVNT_Export ACE_Proper_Import_Flag
+# define EVENTSINK_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define EVENTSINK_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* EVENTSINK_SVNT_BUILD_DLL */
+#else /* EVENTSINK_SVNT_HAS_DLL == 1 */
+# define EVENTSINK_SVNT_Export
+# define EVENTSINK_SVNT_SINGLETON_DECLARATION(T)
+# define EVENTSINK_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* EVENTSINK_SVNT_HAS_DLL == 1 */
+
+// Set EVENTSINK_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (EVENTSINK_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define EVENTSINK_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define EVENTSINK_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !EVENTSINK_SVNT_NTRACE */
+
+#if (EVENTSINK_SVNT_NTRACE == 1)
+# define EVENTSINK_SVNT_TRACE(X)
+#else /* (EVENTSINK_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define EVENTSINK_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (EVENTSINK_SVNT_NTRACE == 1) */
+
+#endif /* EVENTSINK_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource.idl b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource.idl
new file mode 100644
index 00000000000..f5614d964e5
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource.idl
@@ -0,0 +1,24 @@
+// $Id$
+/**
+ * @file EventSource.idl
+ * @author Will Otte <wotte@dre.vanderblit.edu>
+ */
+
+#include <Components.idl>
+
+module PublishesEmits
+{
+ eventtype foo_event
+ {
+ };
+
+ component Foo
+ {
+ publishes foo_event p_foo;
+ };
+
+ component Bar
+ {
+ emits foo_event foo;
+ };
+};
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource.mpc b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource.mpc
new file mode 100644
index 00000000000..5f81314a9cf
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource.mpc
@@ -0,0 +1,17 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n EventSource"
+
+project(EventSource_stub): ccm_stub {
+
+ sharedname = EventSource_stub
+ idlflags += -Wb,stub_export_macro=EVENTSOURCE_STUB_Export -Wb,stub_export_include=EventSource_stub_export.h -Wb,skel_export_macro=EVENTSOURCE_SVNT_Export -Wb,skel_export_include=EventSource_svnt_export.h
+ dynamicflags = EVENTSOURCE_STUB_BUILD_DLL
+
+ IDL_Files {
+ EventSource.idl
+ }
+
+ Source_Files {
+ EventSourceC.cpp
+ }
+}
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource_stub_export.h b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource_stub_export.h
new file mode 100644
index 00000000000..a0cf71bbe6d
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl EVENTSOURCE_STUB
+// ------------------------------
+#ifndef EVENTSOURCE_STUB_EXPORT_H
+#define EVENTSOURCE_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (EVENTSOURCE_STUB_HAS_DLL)
+# define EVENTSOURCE_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && EVENTSOURCE_STUB_HAS_DLL */
+
+#if !defined (EVENTSOURCE_STUB_HAS_DLL)
+# define EVENTSOURCE_STUB_HAS_DLL 1
+#endif /* ! EVENTSOURCE_STUB_HAS_DLL */
+
+#if defined (EVENTSOURCE_STUB_HAS_DLL) && (EVENTSOURCE_STUB_HAS_DLL == 1)
+# if defined (EVENTSOURCE_STUB_BUILD_DLL)
+# define EVENTSOURCE_STUB_Export ACE_Proper_Export_Flag
+# define EVENTSOURCE_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define EVENTSOURCE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* EVENTSOURCE_STUB_BUILD_DLL */
+# define EVENTSOURCE_STUB_Export ACE_Proper_Import_Flag
+# define EVENTSOURCE_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define EVENTSOURCE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* EVENTSOURCE_STUB_BUILD_DLL */
+#else /* EVENTSOURCE_STUB_HAS_DLL == 1 */
+# define EVENTSOURCE_STUB_Export
+# define EVENTSOURCE_STUB_SINGLETON_DECLARATION(T)
+# define EVENTSOURCE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* EVENTSOURCE_STUB_HAS_DLL == 1 */
+
+// Set EVENTSOURCE_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (EVENTSOURCE_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define EVENTSOURCE_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define EVENTSOURCE_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !EVENTSOURCE_STUB_NTRACE */
+
+#if (EVENTSOURCE_STUB_NTRACE == 1)
+# define EVENTSOURCE_STUB_TRACE(X)
+#else /* (EVENTSOURCE_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define EVENTSOURCE_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (EVENTSOURCE_STUB_NTRACE == 1) */
+
+#endif /* EVENTSOURCE_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource_svnt_export.h b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource_svnt_export.h
new file mode 100644
index 00000000000..dd5eeacd906
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl EVENTSOURCE_SVNT
+// ------------------------------
+#ifndef EVENTSOURCE_SVNT_EXPORT_H
+#define EVENTSOURCE_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (EVENTSOURCE_SVNT_HAS_DLL)
+# define EVENTSOURCE_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && EVENTSOURCE_SVNT_HAS_DLL */
+
+#if !defined (EVENTSOURCE_SVNT_HAS_DLL)
+# define EVENTSOURCE_SVNT_HAS_DLL 1
+#endif /* ! EVENTSOURCE_SVNT_HAS_DLL */
+
+#if defined (EVENTSOURCE_SVNT_HAS_DLL) && (EVENTSOURCE_SVNT_HAS_DLL == 1)
+# if defined (EVENTSOURCE_SVNT_BUILD_DLL)
+# define EVENTSOURCE_SVNT_Export ACE_Proper_Export_Flag
+# define EVENTSOURCE_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define EVENTSOURCE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* EVENTSOURCE_SVNT_BUILD_DLL */
+# define EVENTSOURCE_SVNT_Export ACE_Proper_Import_Flag
+# define EVENTSOURCE_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define EVENTSOURCE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* EVENTSOURCE_SVNT_BUILD_DLL */
+#else /* EVENTSOURCE_SVNT_HAS_DLL == 1 */
+# define EVENTSOURCE_SVNT_Export
+# define EVENTSOURCE_SVNT_SINGLETON_DECLARATION(T)
+# define EVENTSOURCE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* EVENTSOURCE_SVNT_HAS_DLL == 1 */
+
+// Set EVENTSOURCE_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (EVENTSOURCE_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define EVENTSOURCE_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define EVENTSOURCE_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !EVENTSOURCE_SVNT_NTRACE */
+
+#if (EVENTSOURCE_SVNT_NTRACE == 1)
+# define EVENTSOURCE_SVNT_TRACE(X)
+#else /* (EVENTSOURCE_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define EVENTSOURCE_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (EVENTSOURCE_SVNT_NTRACE == 1) */
+
+#endif /* EVENTSOURCE_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets.idl b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets.idl
new file mode 100644
index 00000000000..eedabcf3184
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets.idl
@@ -0,0 +1,46 @@
+// $Id$
+/**
+ * @file Facets.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * This IDL file tests Facets within components.
+ */
+
+#include <Components.idl>
+
+module Facets
+{
+ interface foo_interface
+ {
+ };
+
+ interface bar_interface
+ {
+ };
+
+ component Foo
+ {
+ provides foo_interface p_foo;
+ };
+
+ component Bar : Foo
+ {
+ provides bar_interface p_bar;
+ };
+
+ component FooFoo : Foo
+ {
+ provides foo_interface p_foofoo;
+ };
+
+ component FooBar
+ {
+ provides foo_interface foo;
+ provides bar_interface bar;
+ };
+
+ component ObjectProvider
+ {
+ provides Object foo_object;
+ };
+};
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets.mpc b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets.mpc
new file mode 100644
index 00000000000..ab3da28df3d
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets.mpc
@@ -0,0 +1,17 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Facets"
+
+project(Facets_stub): ccm_stub {
+
+ sharedname = Facets_stub
+ idlflags += -Wb,stub_export_macro=FACETS_STUB_Export -Wb,stub_export_include=Facets_stub_export.h -Wb,skel_export_macro=FACETS_SVNT_Export -Wb,skel_export_include=Facets_svnt_export.h
+ dynamicflags = FACETS_STUB_BUILD_DLL
+
+ IDL_Files {
+ Facets.idl
+ }
+
+ Source_Files {
+ FacetsC.cpp
+ }
+}
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets_stub_export.h b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets_stub_export.h
new file mode 100644
index 00000000000..025fc8215f2
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl FACETS_STUB
+// ------------------------------
+#ifndef FACETS_STUB_EXPORT_H
+#define FACETS_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (FACETS_STUB_HAS_DLL)
+# define FACETS_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && FACETS_STUB_HAS_DLL */
+
+#if !defined (FACETS_STUB_HAS_DLL)
+# define FACETS_STUB_HAS_DLL 1
+#endif /* ! FACETS_STUB_HAS_DLL */
+
+#if defined (FACETS_STUB_HAS_DLL) && (FACETS_STUB_HAS_DLL == 1)
+# if defined (FACETS_STUB_BUILD_DLL)
+# define FACETS_STUB_Export ACE_Proper_Export_Flag
+# define FACETS_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define FACETS_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* FACETS_STUB_BUILD_DLL */
+# define FACETS_STUB_Export ACE_Proper_Import_Flag
+# define FACETS_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define FACETS_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* FACETS_STUB_BUILD_DLL */
+#else /* FACETS_STUB_HAS_DLL == 1 */
+# define FACETS_STUB_Export
+# define FACETS_STUB_SINGLETON_DECLARATION(T)
+# define FACETS_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* FACETS_STUB_HAS_DLL == 1 */
+
+// Set FACETS_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (FACETS_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define FACETS_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define FACETS_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !FACETS_STUB_NTRACE */
+
+#if (FACETS_STUB_NTRACE == 1)
+# define FACETS_STUB_TRACE(X)
+#else /* (FACETS_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define FACETS_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (FACETS_STUB_NTRACE == 1) */
+
+#endif /* FACETS_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets_svnt_export.h b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets_svnt_export.h
new file mode 100644
index 00000000000..e4750de9b91
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl FACETS_SVNT
+// ------------------------------
+#ifndef FACETS_SVNT_EXPORT_H
+#define FACETS_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (FACETS_SVNT_HAS_DLL)
+# define FACETS_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && FACETS_SVNT_HAS_DLL */
+
+#if !defined (FACETS_SVNT_HAS_DLL)
+# define FACETS_SVNT_HAS_DLL 1
+#endif /* ! FACETS_SVNT_HAS_DLL */
+
+#if defined (FACETS_SVNT_HAS_DLL) && (FACETS_SVNT_HAS_DLL == 1)
+# if defined (FACETS_SVNT_BUILD_DLL)
+# define FACETS_SVNT_Export ACE_Proper_Export_Flag
+# define FACETS_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define FACETS_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* FACETS_SVNT_BUILD_DLL */
+# define FACETS_SVNT_Export ACE_Proper_Import_Flag
+# define FACETS_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define FACETS_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* FACETS_SVNT_BUILD_DLL */
+#else /* FACETS_SVNT_HAS_DLL == 1 */
+# define FACETS_SVNT_Export
+# define FACETS_SVNT_SINGLETON_DECLARATION(T)
+# define FACETS_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* FACETS_SVNT_HAS_DLL == 1 */
+
+// Set FACETS_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (FACETS_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define FACETS_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define FACETS_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !FACETS_SVNT_NTRACE */
+
+#if (FACETS_SVNT_NTRACE == 1)
+# define FACETS_SVNT_TRACE(X)
+#else /* (FACETS_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define FACETS_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (FACETS_SVNT_NTRACE == 1) */
+
+#endif /* FACETS_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles.idl b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles.idl
new file mode 100644
index 00000000000..bd0af99cd86
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles.idl
@@ -0,0 +1,68 @@
+// $Id$
+/**
+ * @file Receptacles.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Tests Receptacles within components.
+ */
+
+#include <Components.idl>
+
+module ReceptaclesSingle
+{
+ interface foo_interface
+ {
+ };
+
+ interface bar_interface
+ {
+ };
+
+ component Foo
+ {
+ uses foo_interface u_foo;
+ };
+
+ component Bar : Foo
+ {
+ uses bar_interface u_bar;
+ };
+
+ component FooBar
+ {
+ uses foo_interface foo;
+ uses bar_interface bar;
+ };
+
+ component ObjectFoo
+ {
+ uses Object foo;
+ };
+
+};
+
+module ReceptaclesMultiple
+{
+ interface foo_interface
+ {
+ };
+
+ interface bar_interface
+ {
+ };
+
+ component Foo
+ {
+ uses multiple foo_interface um_foo;
+ };
+
+ component Bar
+ {
+ uses multiple bar_interface um_bar;
+ };
+
+ component ObjectFoo
+ {
+ uses multiple Object foo;
+ };
+};
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles.mpc b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles.mpc
new file mode 100644
index 00000000000..401f8d0c5c1
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles.mpc
@@ -0,0 +1,21 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Receptacles"
+
+project(Receptacles_stub): ccm_stub {
+
+ sharedname = Receptacles_stub
+ idlflags += -Wb,stub_export_macro=RECEPTACLES_STUB_Export \
+ -Wb,stub_export_include=Receptacles_stub_export.h \
+ -Wb,skel_export_macro=RECEPTACLES_SVNT_Export \
+ -Wb,skel_export_include=Receptacles_svnt_export.h
+
+ dynamicflags = RECEPTACLES_STUB_BUILD_DLL
+
+ IDL_Files {
+ Receptacles.idl
+ }
+
+ Source_Files {
+ ReceptaclesC.cpp
+ }
+}
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles_stub_export.h b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles_stub_export.h
new file mode 100644
index 00000000000..15dedbc8a73
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl RECEPTACLES_STUB
+// ------------------------------
+#ifndef RECEPTACLES_STUB_EXPORT_H
+#define RECEPTACLES_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (RECEPTACLES_STUB_HAS_DLL)
+# define RECEPTACLES_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && RECEPTACLES_STUB_HAS_DLL */
+
+#if !defined (RECEPTACLES_STUB_HAS_DLL)
+# define RECEPTACLES_STUB_HAS_DLL 1
+#endif /* ! RECEPTACLES_STUB_HAS_DLL */
+
+#if defined (RECEPTACLES_STUB_HAS_DLL) && (RECEPTACLES_STUB_HAS_DLL == 1)
+# if defined (RECEPTACLES_STUB_BUILD_DLL)
+# define RECEPTACLES_STUB_Export ACE_Proper_Export_Flag
+# define RECEPTACLES_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define RECEPTACLES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* RECEPTACLES_STUB_BUILD_DLL */
+# define RECEPTACLES_STUB_Export ACE_Proper_Import_Flag
+# define RECEPTACLES_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define RECEPTACLES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* RECEPTACLES_STUB_BUILD_DLL */
+#else /* RECEPTACLES_STUB_HAS_DLL == 1 */
+# define RECEPTACLES_STUB_Export
+# define RECEPTACLES_STUB_SINGLETON_DECLARATION(T)
+# define RECEPTACLES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* RECEPTACLES_STUB_HAS_DLL == 1 */
+
+// Set RECEPTACLES_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (RECEPTACLES_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define RECEPTACLES_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define RECEPTACLES_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !RECEPTACLES_STUB_NTRACE */
+
+#if (RECEPTACLES_STUB_NTRACE == 1)
+# define RECEPTACLES_STUB_TRACE(X)
+#else /* (RECEPTACLES_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define RECEPTACLES_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (RECEPTACLES_STUB_NTRACE == 1) */
+
+#endif /* RECEPTACLES_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles_svnt_export.h b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles_svnt_export.h
new file mode 100644
index 00000000000..4a4a4f52dcd
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl RECEPTACLES_SVNT
+// ------------------------------
+#ifndef RECEPTACLES_SVNT_EXPORT_H
+#define RECEPTACLES_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (RECEPTACLES_SVNT_HAS_DLL)
+# define RECEPTACLES_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && RECEPTACLES_SVNT_HAS_DLL */
+
+#if !defined (RECEPTACLES_SVNT_HAS_DLL)
+# define RECEPTACLES_SVNT_HAS_DLL 1
+#endif /* ! RECEPTACLES_SVNT_HAS_DLL */
+
+#if defined (RECEPTACLES_SVNT_HAS_DLL) && (RECEPTACLES_SVNT_HAS_DLL == 1)
+# if defined (RECEPTACLES_SVNT_BUILD_DLL)
+# define RECEPTACLES_SVNT_Export ACE_Proper_Export_Flag
+# define RECEPTACLES_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define RECEPTACLES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* RECEPTACLES_SVNT_BUILD_DLL */
+# define RECEPTACLES_SVNT_Export ACE_Proper_Import_Flag
+# define RECEPTACLES_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define RECEPTACLES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* RECEPTACLES_SVNT_BUILD_DLL */
+#else /* RECEPTACLES_SVNT_HAS_DLL == 1 */
+# define RECEPTACLES_SVNT_Export
+# define RECEPTACLES_SVNT_SINGLETON_DECLARATION(T)
+# define RECEPTACLES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* RECEPTACLES_SVNT_HAS_DLL == 1 */
+
+// Set RECEPTACLES_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (RECEPTACLES_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define RECEPTACLES_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define RECEPTACLES_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !RECEPTACLES_SVNT_NTRACE */
+
+#if (RECEPTACLES_SVNT_NTRACE == 1)
+# define RECEPTACLES_SVNT_TRACE(X)
+#else /* (RECEPTACLES_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define RECEPTACLES_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (RECEPTACLES_SVNT_NTRACE == 1) */
+
+#endif /* RECEPTACLES_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent.idl b/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent.idl
new file mode 100644
index 00000000000..8b020a77e54
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent.idl
@@ -0,0 +1,96 @@
+// $Id$
+/**
+ * @file SimpleComponent.idl
+ *
+ * Tests simple component declarations.
+ */
+
+#include <Components.idl>
+
+module VerySimple
+{
+
+ component Foo
+ {
+ };
+
+ home FooHome manages Foo
+ {
+ };
+
+};
+
+module SupportsInterface
+{
+ interface foo_interface
+ {
+ };
+
+ component Foo supports foo_interface
+ {
+ };
+
+ home FooHome manages Foo
+ {
+ };
+
+};
+
+
+module SupportsMultiple
+{
+ interface foo_interface
+ {
+ };
+
+ interface bar_interface
+ {
+ };
+
+ component FooBar supports foo_interface, bar_interface
+ {
+ };
+
+ home FooBarHome manages FooBar
+ {
+ };
+};
+
+module Inheritance
+{
+ interface foo_interface
+ {
+ };
+
+ interface Bar_interface
+ {
+ };
+
+ component Foo supports foo_interface
+ {
+ };
+
+ component Bar : Foo
+ {
+ };
+
+ home FooHome manages Foo
+ {
+ };
+
+ home BarHome manages Bar
+ {
+ };
+
+
+};
+
+module Bug_2790_Regression
+{
+ // It is legal for a derived component to support an interface
+ interface Wibble {};
+ interface Wobble {};
+ component Bobble {};
+ component Bibble : Bobble supports Wibble, Wobble {};
+};
+
diff --git a/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent.mpc b/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent.mpc
new file mode 100644
index 00000000000..f2b44a8123e
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent.mpc
@@ -0,0 +1,21 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl SimpleComponent"
+
+project(SimpleComponent_stub_idl3): ccm_stub {
+
+ sharedname = SimpleComponent_stub
+ idlflags += -Wb,stub_export_macro=SIMPLECOMPONENT_STUB_Export \
+ -Wb,stub_export_include=SimpleComponent_stub_export.h \
+ -Wb,skel_export_macro=SIMPLECOMPONENT_SVNT_Export \
+ -Wb,skel_export_include=SimpleComponent_svnt_export.h
+
+ dynamicflags = SIMPLECOMPONENT_STUB_BUILD_DLL
+
+ IDL_Files {
+ SimpleComponent.idl
+ }
+
+ Source_Files {
+ SimpleComponentC.cpp
+ }
+}
diff --git a/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent_exec_export.h b/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent_exec_export.h
new file mode 100644
index 00000000000..add746da8f5
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent_exec_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl SIMPLECOMPONENT_EXEC
+// ------------------------------
+#ifndef SIMPLECOMPONENT_EXEC_EXPORT_H
+#define SIMPLECOMPONENT_EXEC_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (SIMPLECOMPONENT_EXEC_HAS_DLL)
+# define SIMPLECOMPONENT_EXEC_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && SIMPLECOMPONENT_EXEC_HAS_DLL */
+
+#if !defined (SIMPLECOMPONENT_EXEC_HAS_DLL)
+# define SIMPLECOMPONENT_EXEC_HAS_DLL 1
+#endif /* ! SIMPLECOMPONENT_EXEC_HAS_DLL */
+
+#if defined (SIMPLECOMPONENT_EXEC_HAS_DLL) && (SIMPLECOMPONENT_EXEC_HAS_DLL == 1)
+# if defined (SIMPLECOMPONENT_EXEC_BUILD_DLL)
+# define SIMPLECOMPONENT_EXEC_Export ACE_Proper_Export_Flag
+# define SIMPLECOMPONENT_EXEC_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define SIMPLECOMPONENT_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* SIMPLECOMPONENT_EXEC_BUILD_DLL */
+# define SIMPLECOMPONENT_EXEC_Export ACE_Proper_Import_Flag
+# define SIMPLECOMPONENT_EXEC_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define SIMPLECOMPONENT_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* SIMPLECOMPONENT_EXEC_BUILD_DLL */
+#else /* SIMPLECOMPONENT_EXEC_HAS_DLL == 1 */
+# define SIMPLECOMPONENT_EXEC_Export
+# define SIMPLECOMPONENT_EXEC_SINGLETON_DECLARATION(T)
+# define SIMPLECOMPONENT_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* SIMPLECOMPONENT_EXEC_HAS_DLL == 1 */
+
+// Set SIMPLECOMPONENT_EXEC_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (SIMPLECOMPONENT_EXEC_NTRACE)
+# if (ACE_NTRACE == 1)
+# define SIMPLECOMPONENT_EXEC_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define SIMPLECOMPONENT_EXEC_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !SIMPLECOMPONENT_EXEC_NTRACE */
+
+#if (SIMPLECOMPONENT_EXEC_NTRACE == 1)
+# define SIMPLECOMPONENT_EXEC_TRACE(X)
+#else /* (SIMPLECOMPONENT_EXEC_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define SIMPLECOMPONENT_EXEC_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (SIMPLECOMPONENT_EXEC_NTRACE == 1) */
+
+#endif /* SIMPLECOMPONENT_EXEC_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent_stub_export.h b/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent_stub_export.h
new file mode 100644
index 00000000000..eb8cb7a6c97
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl SIMPLECOMPONENT_STUB
+// ------------------------------
+#ifndef SIMPLECOMPONENT_STUB_EXPORT_H
+#define SIMPLECOMPONENT_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (SIMPLECOMPONENT_STUB_HAS_DLL)
+# define SIMPLECOMPONENT_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && SIMPLECOMPONENT_STUB_HAS_DLL */
+
+#if !defined (SIMPLECOMPONENT_STUB_HAS_DLL)
+# define SIMPLECOMPONENT_STUB_HAS_DLL 1
+#endif /* ! SIMPLECOMPONENT_STUB_HAS_DLL */
+
+#if defined (SIMPLECOMPONENT_STUB_HAS_DLL) && (SIMPLECOMPONENT_STUB_HAS_DLL == 1)
+# if defined (SIMPLECOMPONENT_STUB_BUILD_DLL)
+# define SIMPLECOMPONENT_STUB_Export ACE_Proper_Export_Flag
+# define SIMPLECOMPONENT_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define SIMPLECOMPONENT_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* SIMPLECOMPONENT_STUB_BUILD_DLL */
+# define SIMPLECOMPONENT_STUB_Export ACE_Proper_Import_Flag
+# define SIMPLECOMPONENT_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define SIMPLECOMPONENT_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* SIMPLECOMPONENT_STUB_BUILD_DLL */
+#else /* SIMPLECOMPONENT_STUB_HAS_DLL == 1 */
+# define SIMPLECOMPONENT_STUB_Export
+# define SIMPLECOMPONENT_STUB_SINGLETON_DECLARATION(T)
+# define SIMPLECOMPONENT_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* SIMPLECOMPONENT_STUB_HAS_DLL == 1 */
+
+// Set SIMPLECOMPONENT_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (SIMPLECOMPONENT_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define SIMPLECOMPONENT_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define SIMPLECOMPONENT_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !SIMPLECOMPONENT_STUB_NTRACE */
+
+#if (SIMPLECOMPONENT_STUB_NTRACE == 1)
+# define SIMPLECOMPONENT_STUB_TRACE(X)
+#else /* (SIMPLECOMPONENT_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define SIMPLECOMPONENT_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (SIMPLECOMPONENT_STUB_NTRACE == 1) */
+
+#endif /* SIMPLECOMPONENT_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent_svnt_export.h b/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent_svnt_export.h
new file mode 100644
index 00000000000..694af85e994
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl SIMPLECOMPONENT_SVNT
+// ------------------------------
+#ifndef SIMPLECOMPONENT_SVNT_EXPORT_H
+#define SIMPLECOMPONENT_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (SIMPLECOMPONENT_SVNT_HAS_DLL)
+# define SIMPLECOMPONENT_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && SIMPLECOMPONENT_SVNT_HAS_DLL */
+
+#if !defined (SIMPLECOMPONENT_SVNT_HAS_DLL)
+# define SIMPLECOMPONENT_SVNT_HAS_DLL 1
+#endif /* ! SIMPLECOMPONENT_SVNT_HAS_DLL */
+
+#if defined (SIMPLECOMPONENT_SVNT_HAS_DLL) && (SIMPLECOMPONENT_SVNT_HAS_DLL == 1)
+# if defined (SIMPLECOMPONENT_SVNT_BUILD_DLL)
+# define SIMPLECOMPONENT_SVNT_Export ACE_Proper_Export_Flag
+# define SIMPLECOMPONENT_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define SIMPLECOMPONENT_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* SIMPLECOMPONENT_SVNT_BUILD_DLL */
+# define SIMPLECOMPONENT_SVNT_Export ACE_Proper_Import_Flag
+# define SIMPLECOMPONENT_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define SIMPLECOMPONENT_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* SIMPLECOMPONENT_SVNT_BUILD_DLL */
+#else /* SIMPLECOMPONENT_SVNT_HAS_DLL == 1 */
+# define SIMPLECOMPONENT_SVNT_Export
+# define SIMPLECOMPONENT_SVNT_SINGLETON_DECLARATION(T)
+# define SIMPLECOMPONENT_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* SIMPLECOMPONENT_SVNT_HAS_DLL == 1 */
+
+// Set SIMPLECOMPONENT_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (SIMPLECOMPONENT_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define SIMPLECOMPONENT_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define SIMPLECOMPONENT_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !SIMPLECOMPONENT_SVNT_NTRACE */
+
+#if (SIMPLECOMPONENT_SVNT_NTRACE == 1)
+# define SIMPLECOMPONENT_SVNT_TRACE(X)
+#else /* (SIMPLECOMPONENT_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define SIMPLECOMPONENT_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (SIMPLECOMPONENT_SVNT_NTRACE == 1) */
+
+#endif /* SIMPLECOMPONENT_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Events/Abstract/Abstract.idl b/modules/CIAO/tests/IDL3/Events/Abstract/Abstract.idl
new file mode 100644
index 00000000000..15eb50971b3
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Events/Abstract/Abstract.idl
@@ -0,0 +1,38 @@
+// $Id$
+/**
+ * @file Abstract.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Tests the compilation of abstract events.
+ */
+
+#include <Components.idl>
+
+module AbstractEvents
+{
+ abstract eventtype foo_event
+ {
+ };
+
+ abstract eventtype InhFoo_event : foo_event
+ {
+ };
+
+ abstract eventtype bar_event
+ {
+ };
+
+ abstract eventtype foobar_event : foo_event, bar_event
+ {
+ };
+
+ // test event multiple inheretance
+
+ eventtype concrete_foo
+ {
+ };
+
+ eventtype concrete_foobar : concrete_foo, foo_event
+ {
+ };
+};
diff --git a/modules/CIAO/tests/IDL3/Events/Abstract/Abstract.mpc b/modules/CIAO/tests/IDL3/Events/Abstract/Abstract.mpc
new file mode 100644
index 00000000000..83d67de5f39
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Events/Abstract/Abstract.mpc
@@ -0,0 +1,17 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Abstract"
+
+project(Abstract_stub): ccm_stub {
+
+ sharedname = Abstract_stub
+ idlflags += -Wb,stub_export_macro=ABSTRACT_STUB_Export -Wb,stub_export_include=Abstract_stub_export.h -Wb,skel_export_macro=ABSTRACT_SVNT_Export -Wb,skel_export_include=Abstract_svnt_export.h
+ dynamicflags = ABSTRACT_STUB_BUILD_DLL
+
+ IDL_Files {
+ Abstract.idl
+ }
+
+ Source_Files {
+ AbstractC.cpp
+ }
+}
diff --git a/modules/CIAO/tests/IDL3/Events/Abstract/Abstract_stub_export.h b/modules/CIAO/tests/IDL3/Events/Abstract/Abstract_stub_export.h
new file mode 100644
index 00000000000..2ec86f36950
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Events/Abstract/Abstract_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ABSTRACT_STUB
+// ------------------------------
+#ifndef ABSTRACT_STUB_EXPORT_H
+#define ABSTRACT_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ABSTRACT_STUB_HAS_DLL)
+# define ABSTRACT_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ABSTRACT_STUB_HAS_DLL */
+
+#if !defined (ABSTRACT_STUB_HAS_DLL)
+# define ABSTRACT_STUB_HAS_DLL 1
+#endif /* ! ABSTRACT_STUB_HAS_DLL */
+
+#if defined (ABSTRACT_STUB_HAS_DLL) && (ABSTRACT_STUB_HAS_DLL == 1)
+# if defined (ABSTRACT_STUB_BUILD_DLL)
+# define ABSTRACT_STUB_Export ACE_Proper_Export_Flag
+# define ABSTRACT_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ABSTRACT_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ABSTRACT_STUB_BUILD_DLL */
+# define ABSTRACT_STUB_Export ACE_Proper_Import_Flag
+# define ABSTRACT_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ABSTRACT_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ABSTRACT_STUB_BUILD_DLL */
+#else /* ABSTRACT_STUB_HAS_DLL == 1 */
+# define ABSTRACT_STUB_Export
+# define ABSTRACT_STUB_SINGLETON_DECLARATION(T)
+# define ABSTRACT_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ABSTRACT_STUB_HAS_DLL == 1 */
+
+// Set ABSTRACT_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ABSTRACT_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ABSTRACT_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ABSTRACT_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ABSTRACT_STUB_NTRACE */
+
+#if (ABSTRACT_STUB_NTRACE == 1)
+# define ABSTRACT_STUB_TRACE(X)
+#else /* (ABSTRACT_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ABSTRACT_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ABSTRACT_STUB_NTRACE == 1) */
+
+#endif /* ABSTRACT_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Events/Abstract/Abstract_svnt_export.h b/modules/CIAO/tests/IDL3/Events/Abstract/Abstract_svnt_export.h
new file mode 100644
index 00000000000..890926fec22
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Events/Abstract/Abstract_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ABSTRACT_SVNT
+// ------------------------------
+#ifndef ABSTRACT_SVNT_EXPORT_H
+#define ABSTRACT_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ABSTRACT_SVNT_HAS_DLL)
+# define ABSTRACT_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ABSTRACT_SVNT_HAS_DLL */
+
+#if !defined (ABSTRACT_SVNT_HAS_DLL)
+# define ABSTRACT_SVNT_HAS_DLL 1
+#endif /* ! ABSTRACT_SVNT_HAS_DLL */
+
+#if defined (ABSTRACT_SVNT_HAS_DLL) && (ABSTRACT_SVNT_HAS_DLL == 1)
+# if defined (ABSTRACT_SVNT_BUILD_DLL)
+# define ABSTRACT_SVNT_Export ACE_Proper_Export_Flag
+# define ABSTRACT_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ABSTRACT_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ABSTRACT_SVNT_BUILD_DLL */
+# define ABSTRACT_SVNT_Export ACE_Proper_Import_Flag
+# define ABSTRACT_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ABSTRACT_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ABSTRACT_SVNT_BUILD_DLL */
+#else /* ABSTRACT_SVNT_HAS_DLL == 1 */
+# define ABSTRACT_SVNT_Export
+# define ABSTRACT_SVNT_SINGLETON_DECLARATION(T)
+# define ABSTRACT_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ABSTRACT_SVNT_HAS_DLL == 1 */
+
+// Set ABSTRACT_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ABSTRACT_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ABSTRACT_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ABSTRACT_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ABSTRACT_SVNT_NTRACE */
+
+#if (ABSTRACT_SVNT_NTRACE == 1)
+# define ABSTRACT_SVNT_TRACE(X)
+#else /* (ABSTRACT_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ABSTRACT_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ABSTRACT_SVNT_NTRACE == 1) */
+
+#endif /* ABSTRACT_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Events/Any/Any.mpc b/modules/CIAO/tests/IDL3/Events/Any/Any.mpc
new file mode 100644
index 00000000000..1d95ba0b319
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Events/Any/Any.mpc
@@ -0,0 +1,26 @@
+// $Id$
+
+project(EventAny_local): ccm_stub {
+ exename = EventAny
+ idlflags += -SS
+
+ IDL_Files {
+ EventAny.idl
+ }
+
+ Source_Files {
+ EventAnyC.cpp
+ main.cpp
+ }
+
+ Header_Files {
+ EventAnyC.h
+ }
+
+ Inline_Files {
+ EventAnyC.inl
+ }
+
+ Template_Files {
+ }
+}
diff --git a/modules/CIAO/tests/IDL3/Events/Any/EventAny.idl b/modules/CIAO/tests/IDL3/Events/Any/EventAny.idl
new file mode 100644
index 00000000000..d53ddf55c08
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Events/Any/EventAny.idl
@@ -0,0 +1,16 @@
+// $Id$
+/**
+ * @file EventAny.idl
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ *
+ * Tests Any insertion/extraction of event types,
+ * and (de)marshaling of such Anys.
+ */
+
+#include <Components.idl>
+
+eventtype StringMsg
+{
+ public string str_msg;
+};
+
diff --git a/modules/CIAO/tests/IDL3/Events/Any/README b/modules/CIAO/tests/IDL3/Events/Any/README
new file mode 100644
index 00000000000..7bf91be5776
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Events/Any/README
@@ -0,0 +1,35 @@
+
+Event Any Test
+=======================
+
+This test defines, instantiates, and initializes an IDL
+eventtype with a public string member, inserts it into
+an Any, marshals the Any, demarshals the Any, extracts
+the eventtype, and compares the resulting member string
+with the original. The purpose of the test is to ensure
+that (1) the demarshaling of the Any and (2) the
+extraction of the eventtype, are successful, since both
+these actions are done interpretively by traversing the
+eventtype's type code. The motivation for the test was
+the failure of these actions due to missing cases in
+the interpretive demarshaling code corresponding to
+the kind of the eventtype's type code (CORBA::tk_event).
+
+There are several places the test can fail:
+
+- marshaling of the Any
+- demarshaling of the Any
+- extraction from the Any
+- string compare of the sent and received eventtype members
+
+Note that the test code registers a valuetype factory
+with the orb, a necessary step in extracting the
+eventtype from the Any. In a real-world use case (such
+as an event channel) such a factory would have to
+be registered with the orb anywhere the eventtype is
+to be demarshaled from a CDR stream or extracted from
+an Any that was itself demarshaled.
+
+Jeff Parsons
+
+
diff --git a/modules/CIAO/tests/IDL3/Events/Any/main.cpp b/modules/CIAO/tests/IDL3/Events/Any/main.cpp
new file mode 100644
index 00000000000..4ce90923aa1
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Events/Any/main.cpp
@@ -0,0 +1,85 @@
+// $Id$
+
+#include "EventAnyC.h"
+#include "tao/AnyTypeCode/Any.h"
+#include "ace/Get_Opt.h"
+
+void
+insert_into_any (CORBA::Any& any, Components::EventBase* vb)
+{
+ any <<= vb;
+}
+
+void
+debug_msg (const char *msg)
+{
+ ACE_ERROR ((LM_ERROR, "Error: %s\n", msg));
+}
+
+int
+ACE_TMAIN(int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+ StringMsg_init *StringMsg_factory = new StringMsg_init;
+
+ orb->register_value_factory (StringMsg_factory->tao_repository_id (),
+ StringMsg_factory);
+ StringMsg_factory->_remove_ref (); // release ownership
+
+ const char *test_str = "a message";
+
+ StringMsg_var ev = new OBV_StringMsg;
+ ev->str_msg (test_str);
+
+ CORBA::Any in_any;
+ insert_into_any (in_any, ev.in ());
+
+ TAO_OutputCDR out;
+ CORBA::Boolean good = out << in_any;
+
+ if (!good)
+ {
+ debug_msg ("Any marshaling failed");
+ return -1;
+ }
+
+ TAO_InputCDR in (out);
+ CORBA::Any out_any;
+ good = in >> out_any;
+
+ if (!good)
+ {
+ debug_msg ("Any demarshaling failed");
+ return -1;
+ }
+
+ StringMsg *ev_out = 0;
+ good = out_any >>= ev_out;
+
+ if (!good)
+ {
+ debug_msg ("Any extraction failed");
+ return -1;
+ }
+
+ const char *result_str = ev_out->str_msg ();
+
+ if (result_str == 0 || ACE_OS::strcmp (result_str, test_str) != 0)
+ {
+ debug_msg ("Extracted member string null or incorrect");
+ return -1;
+ }
+
+ orb->destroy ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("caught exception:");
+ return 1;
+ }
+
+ return 0;
+}
+
diff --git a/modules/CIAO/tests/IDL3/Events/Any/run_test.pl b/modules/CIAO/tests/IDL3/Events/Any/run_test.pl
new file mode 100755
index 00000000000..f13f9726b5b
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Events/Any/run_test.pl
@@ -0,0 +1,31 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+# The first three lines above let this script run without specifying the
+# full path to perl, as long as it is in the user's PATH.
+# Taken from perlrun man page.
+
+# Do not use environment variables here since not all platforms use ACE_ROOT
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::Run_Test;
+use English;
+
+$status = 0;
+$exflags = "";
+
+# Run the test
+
+$EX = new PerlACE::Process ("EventAny");
+$EX->Arguments ($exflags);
+$test = $EX->SpawnWaitKill (10);
+
+if ($test != 0) {
+ print STDERR "ERROR: test error status $test\n";
+ $status = 1;
+}
+
+exit $status;
diff --git a/modules/CIAO/tests/IDL3/Events/Regular/Regular.idl b/modules/CIAO/tests/IDL3/Events/Regular/Regular.idl
new file mode 100644
index 00000000000..f9169026e88
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Events/Regular/Regular.idl
@@ -0,0 +1,44 @@
+// $Id$
+/**
+ * @file Regular.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Tests the compilation of regular event types.
+ */
+
+#include <Components.idl>
+
+module RegularEvents
+{
+ eventtype foo
+ {
+ };
+
+ eventtype bar
+ {
+ };
+
+ eventtype InhFoo : foo
+ {
+ };
+
+ /* @@
+ * TAO_IDL cannot handle custom yet.
+ custom eventtype custom_foo
+ {
+ };
+
+ custom eventtype custom_InhFoo : foo
+ {
+ };
+ */
+
+ eventtype Baz
+ {
+ long test_op ();
+ void test_op_a (in long foo, out float bar);
+ InhFoo test_op_b ();
+ };
+
+
+};
diff --git a/modules/CIAO/tests/IDL3/Events/Regular/Regular.mpc b/modules/CIAO/tests/IDL3/Events/Regular/Regular.mpc
new file mode 100644
index 00000000000..6186490384c
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Events/Regular/Regular.mpc
@@ -0,0 +1,20 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Regular"
+
+project(Regular_stub): ccm_stub {
+
+ sharedname = Regular_stub
+ idlflags += -Wb,stub_export_macro=REGULAR_STUB_Export \
+ -Wb,stub_export_include=Regular_stub_export.h \
+ -Wb,skel_export_macro=REGULAR_SVNT_Export \
+ -Wb,skel_export_include=Regular_svnt_export.h
+ dynamicflags = REGULAR_STUB_BUILD_DLL
+
+ IDL_Files {
+ Regular.idl
+ }
+
+ Source_Files {
+ RegularC.cpp
+ }
+}
diff --git a/modules/CIAO/tests/IDL3/Events/Regular/Regular_stub_export.h b/modules/CIAO/tests/IDL3/Events/Regular/Regular_stub_export.h
new file mode 100644
index 00000000000..7185b7d78b2
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Events/Regular/Regular_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl REGULAR_STUB
+// ------------------------------
+#ifndef REGULAR_STUB_EXPORT_H
+#define REGULAR_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (REGULAR_STUB_HAS_DLL)
+# define REGULAR_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && REGULAR_STUB_HAS_DLL */
+
+#if !defined (REGULAR_STUB_HAS_DLL)
+# define REGULAR_STUB_HAS_DLL 1
+#endif /* ! REGULAR_STUB_HAS_DLL */
+
+#if defined (REGULAR_STUB_HAS_DLL) && (REGULAR_STUB_HAS_DLL == 1)
+# if defined (REGULAR_STUB_BUILD_DLL)
+# define REGULAR_STUB_Export ACE_Proper_Export_Flag
+# define REGULAR_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define REGULAR_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* REGULAR_STUB_BUILD_DLL */
+# define REGULAR_STUB_Export ACE_Proper_Import_Flag
+# define REGULAR_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define REGULAR_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* REGULAR_STUB_BUILD_DLL */
+#else /* REGULAR_STUB_HAS_DLL == 1 */
+# define REGULAR_STUB_Export
+# define REGULAR_STUB_SINGLETON_DECLARATION(T)
+# define REGULAR_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* REGULAR_STUB_HAS_DLL == 1 */
+
+// Set REGULAR_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (REGULAR_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define REGULAR_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define REGULAR_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !REGULAR_STUB_NTRACE */
+
+#if (REGULAR_STUB_NTRACE == 1)
+# define REGULAR_STUB_TRACE(X)
+#else /* (REGULAR_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define REGULAR_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (REGULAR_STUB_NTRACE == 1) */
+
+#endif /* REGULAR_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Events/Regular/Regular_svnt_export.h b/modules/CIAO/tests/IDL3/Events/Regular/Regular_svnt_export.h
new file mode 100644
index 00000000000..05a2687b566
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Events/Regular/Regular_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl REGULAR_SVNT
+// ------------------------------
+#ifndef REGULAR_SVNT_EXPORT_H
+#define REGULAR_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (REGULAR_SVNT_HAS_DLL)
+# define REGULAR_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && REGULAR_SVNT_HAS_DLL */
+
+#if !defined (REGULAR_SVNT_HAS_DLL)
+# define REGULAR_SVNT_HAS_DLL 1
+#endif /* ! REGULAR_SVNT_HAS_DLL */
+
+#if defined (REGULAR_SVNT_HAS_DLL) && (REGULAR_SVNT_HAS_DLL == 1)
+# if defined (REGULAR_SVNT_BUILD_DLL)
+# define REGULAR_SVNT_Export ACE_Proper_Export_Flag
+# define REGULAR_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define REGULAR_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* REGULAR_SVNT_BUILD_DLL */
+# define REGULAR_SVNT_Export ACE_Proper_Import_Flag
+# define REGULAR_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define REGULAR_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* REGULAR_SVNT_BUILD_DLL */
+#else /* REGULAR_SVNT_HAS_DLL == 1 */
+# define REGULAR_SVNT_Export
+# define REGULAR_SVNT_SINGLETON_DECLARATION(T)
+# define REGULAR_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* REGULAR_SVNT_HAS_DLL == 1 */
+
+// Set REGULAR_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (REGULAR_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define REGULAR_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define REGULAR_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !REGULAR_SVNT_NTRACE */
+
+#if (REGULAR_SVNT_NTRACE == 1)
+# define REGULAR_SVNT_TRACE(X)
+#else /* (REGULAR_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define REGULAR_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (REGULAR_SVNT_NTRACE == 1) */
+
+#endif /* REGULAR_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes.idl b/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes.idl
new file mode 100644
index 00000000000..7dd338d871e
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes.idl
@@ -0,0 +1,54 @@
+// $Id$
+/**
+ * @file HomeAttributes.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Tests attributes in homes
+ */
+
+#include <Components.idl>
+
+module HomeAttributes
+{
+ interface foo_interface
+ {
+ };
+
+ component Foo supports foo_interface
+ {
+ };
+
+ home FooHome manages Foo
+ {
+ attribute float test;
+ attribute long testA, testB;
+ };
+
+ exception FooException
+ {
+ };
+
+ exception BarException
+ {
+ };
+
+ home ROFooHome manages Foo
+ {
+ readonly attribute float test1;
+ readonly attribute long testB, testC;
+ };
+
+ home FooRaisesHome manages Foo
+ {
+ attribute float test2 getraises (FooException);
+ attribute float test3 setraises (BarException);
+ attribute float test4
+ getraises (FooException) setraises (BarException);
+ };
+
+ home ROFooRaisesHome manages Foo
+ {
+ readonly attribute float test5 raises (FooException);
+ };
+
+};
diff --git a/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes.mpc b/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes.mpc
new file mode 100644
index 00000000000..063c212b83a
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes.mpc
@@ -0,0 +1,17 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n HomeAttributes"
+
+project(HomeAttributes_stub): ccm_stub {
+
+ sharedname = HomeAttributes_stub
+ idlflags += -Wb,stub_export_macro=HOMEATTRIBUTES_STUB_Export -Wb,stub_export_include=HomeAttributes_stub_export.h -Wb,skel_export_macro=HOMEATTRIBUTES_SVNT_Export -Wb,skel_export_include=HomeAttributes_svnt_export.h
+ dynamicflags = HOMEATTRIBUTES_STUB_BUILD_DLL
+
+ IDL_Files {
+ HomeAttributes.idl
+ }
+
+ Source_Files {
+ HomeAttributesC.cpp
+ }
+}
diff --git a/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes_stub_export.h b/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes_stub_export.h
new file mode 100644
index 00000000000..f347446a533
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl HOMEATTRIBUTES_STUB
+// ------------------------------
+#ifndef HOMEATTRIBUTES_STUB_EXPORT_H
+#define HOMEATTRIBUTES_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (HOMEATTRIBUTES_STUB_HAS_DLL)
+# define HOMEATTRIBUTES_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && HOMEATTRIBUTES_STUB_HAS_DLL */
+
+#if !defined (HOMEATTRIBUTES_STUB_HAS_DLL)
+# define HOMEATTRIBUTES_STUB_HAS_DLL 1
+#endif /* ! HOMEATTRIBUTES_STUB_HAS_DLL */
+
+#if defined (HOMEATTRIBUTES_STUB_HAS_DLL) && (HOMEATTRIBUTES_STUB_HAS_DLL == 1)
+# if defined (HOMEATTRIBUTES_STUB_BUILD_DLL)
+# define HOMEATTRIBUTES_STUB_Export ACE_Proper_Export_Flag
+# define HOMEATTRIBUTES_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define HOMEATTRIBUTES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* HOMEATTRIBUTES_STUB_BUILD_DLL */
+# define HOMEATTRIBUTES_STUB_Export ACE_Proper_Import_Flag
+# define HOMEATTRIBUTES_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define HOMEATTRIBUTES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* HOMEATTRIBUTES_STUB_BUILD_DLL */
+#else /* HOMEATTRIBUTES_STUB_HAS_DLL == 1 */
+# define HOMEATTRIBUTES_STUB_Export
+# define HOMEATTRIBUTES_STUB_SINGLETON_DECLARATION(T)
+# define HOMEATTRIBUTES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* HOMEATTRIBUTES_STUB_HAS_DLL == 1 */
+
+// Set HOMEATTRIBUTES_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (HOMEATTRIBUTES_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define HOMEATTRIBUTES_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define HOMEATTRIBUTES_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !HOMEATTRIBUTES_STUB_NTRACE */
+
+#if (HOMEATTRIBUTES_STUB_NTRACE == 1)
+# define HOMEATTRIBUTES_STUB_TRACE(X)
+#else /* (HOMEATTRIBUTES_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define HOMEATTRIBUTES_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (HOMEATTRIBUTES_STUB_NTRACE == 1) */
+
+#endif /* HOMEATTRIBUTES_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes_svnt_export.h b/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes_svnt_export.h
new file mode 100644
index 00000000000..f99dd7694f3
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl HOMEATTRIBUTES_SVNT
+// ------------------------------
+#ifndef HOMEATTRIBUTES_SVNT_EXPORT_H
+#define HOMEATTRIBUTES_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (HOMEATTRIBUTES_SVNT_HAS_DLL)
+# define HOMEATTRIBUTES_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && HOMEATTRIBUTES_SVNT_HAS_DLL */
+
+#if !defined (HOMEATTRIBUTES_SVNT_HAS_DLL)
+# define HOMEATTRIBUTES_SVNT_HAS_DLL 1
+#endif /* ! HOMEATTRIBUTES_SVNT_HAS_DLL */
+
+#if defined (HOMEATTRIBUTES_SVNT_HAS_DLL) && (HOMEATTRIBUTES_SVNT_HAS_DLL == 1)
+# if defined (HOMEATTRIBUTES_SVNT_BUILD_DLL)
+# define HOMEATTRIBUTES_SVNT_Export ACE_Proper_Export_Flag
+# define HOMEATTRIBUTES_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define HOMEATTRIBUTES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* HOMEATTRIBUTES_SVNT_BUILD_DLL */
+# define HOMEATTRIBUTES_SVNT_Export ACE_Proper_Import_Flag
+# define HOMEATTRIBUTES_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define HOMEATTRIBUTES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* HOMEATTRIBUTES_SVNT_BUILD_DLL */
+#else /* HOMEATTRIBUTES_SVNT_HAS_DLL == 1 */
+# define HOMEATTRIBUTES_SVNT_Export
+# define HOMEATTRIBUTES_SVNT_SINGLETON_DECLARATION(T)
+# define HOMEATTRIBUTES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* HOMEATTRIBUTES_SVNT_HAS_DLL == 1 */
+
+// Set HOMEATTRIBUTES_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (HOMEATTRIBUTES_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define HOMEATTRIBUTES_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define HOMEATTRIBUTES_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !HOMEATTRIBUTES_SVNT_NTRACE */
+
+#if (HOMEATTRIBUTES_SVNT_NTRACE == 1)
+# define HOMEATTRIBUTES_SVNT_TRACE(X)
+#else /* (HOMEATTRIBUTES_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define HOMEATTRIBUTES_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (HOMEATTRIBUTES_SVNT_NTRACE == 1) */
+
+#endif /* HOMEATTRIBUTES_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Homes/Basic/Basic.idl b/modules/CIAO/tests/IDL3/Homes/Basic/Basic.idl
new file mode 100644
index 00000000000..3d9f4c5162e
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Basic/Basic.idl
@@ -0,0 +1,31 @@
+// $Id$
+/**
+ * @file Basic.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Tests the compileability of basic Home types.
+ */
+
+#include <Components.idl>
+
+module BasicHomes
+{
+
+ interface foo_interface {};
+
+ component Foo supports foo_interface {};
+
+ home FooHome manages Foo
+ {
+ };
+
+
+ interface bar_interface {};
+
+ component Bar supports bar_interface {};
+
+ home BarHome supports foo_interface manages Bar
+ {
+ };
+
+};
diff --git a/modules/CIAO/tests/IDL3/Homes/Basic/Basic.mpc b/modules/CIAO/tests/IDL3/Homes/Basic/Basic.mpc
new file mode 100644
index 00000000000..f676e9d9b70
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Basic/Basic.mpc
@@ -0,0 +1,17 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Basic"
+
+project(IDL3_Basic_stub): ccm_stub {
+
+ sharedname = Homes_Basic_stub
+ idlflags += -Wb,stub_export_macro=BASIC_STUB_Export -Wb,stub_export_include=Basic_stub_export.h -Wb,skel_export_macro=BASIC_SVNT_Export -Wb,skel_export_include=Basic_svnt_export.h
+ dynamicflags = BASIC_STUB_BUILD_DLL
+
+ IDL_Files {
+ Basic.idl
+ }
+
+ Source_Files {
+ BasicC.cpp
+ }
+}
diff --git a/modules/CIAO/tests/IDL3/Homes/Basic/Basic_stub_export.h b/modules/CIAO/tests/IDL3/Homes/Basic/Basic_stub_export.h
new file mode 100644
index 00000000000..469d1f6827c
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Basic/Basic_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl BASIC_STUB
+// ------------------------------
+#ifndef BASIC_STUB_EXPORT_H
+#define BASIC_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (BASIC_STUB_HAS_DLL)
+# define BASIC_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && BASIC_STUB_HAS_DLL */
+
+#if !defined (BASIC_STUB_HAS_DLL)
+# define BASIC_STUB_HAS_DLL 1
+#endif /* ! BASIC_STUB_HAS_DLL */
+
+#if defined (BASIC_STUB_HAS_DLL) && (BASIC_STUB_HAS_DLL == 1)
+# if defined (BASIC_STUB_BUILD_DLL)
+# define BASIC_STUB_Export ACE_Proper_Export_Flag
+# define BASIC_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define BASIC_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* BASIC_STUB_BUILD_DLL */
+# define BASIC_STUB_Export ACE_Proper_Import_Flag
+# define BASIC_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define BASIC_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* BASIC_STUB_BUILD_DLL */
+#else /* BASIC_STUB_HAS_DLL == 1 */
+# define BASIC_STUB_Export
+# define BASIC_STUB_SINGLETON_DECLARATION(T)
+# define BASIC_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* BASIC_STUB_HAS_DLL == 1 */
+
+// Set BASIC_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (BASIC_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define BASIC_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define BASIC_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !BASIC_STUB_NTRACE */
+
+#if (BASIC_STUB_NTRACE == 1)
+# define BASIC_STUB_TRACE(X)
+#else /* (BASIC_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define BASIC_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (BASIC_STUB_NTRACE == 1) */
+
+#endif /* BASIC_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Homes/Basic/Basic_svnt_export.h b/modules/CIAO/tests/IDL3/Homes/Basic/Basic_svnt_export.h
new file mode 100644
index 00000000000..569fe626ebc
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Basic/Basic_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl BASIC_SVNT
+// ------------------------------
+#ifndef BASIC_SVNT_EXPORT_H
+#define BASIC_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (BASIC_SVNT_HAS_DLL)
+# define BASIC_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && BASIC_SVNT_HAS_DLL */
+
+#if !defined (BASIC_SVNT_HAS_DLL)
+# define BASIC_SVNT_HAS_DLL 1
+#endif /* ! BASIC_SVNT_HAS_DLL */
+
+#if defined (BASIC_SVNT_HAS_DLL) && (BASIC_SVNT_HAS_DLL == 1)
+# if defined (BASIC_SVNT_BUILD_DLL)
+# define BASIC_SVNT_Export ACE_Proper_Export_Flag
+# define BASIC_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define BASIC_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* BASIC_SVNT_BUILD_DLL */
+# define BASIC_SVNT_Export ACE_Proper_Import_Flag
+# define BASIC_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define BASIC_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* BASIC_SVNT_BUILD_DLL */
+#else /* BASIC_SVNT_HAS_DLL == 1 */
+# define BASIC_SVNT_Export
+# define BASIC_SVNT_SINGLETON_DECLARATION(T)
+# define BASIC_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* BASIC_SVNT_HAS_DLL == 1 */
+
+// Set BASIC_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (BASIC_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define BASIC_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define BASIC_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !BASIC_SVNT_NTRACE */
+
+#if (BASIC_SVNT_NTRACE == 1)
+# define BASIC_SVNT_TRACE(X)
+#else /* (BASIC_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define BASIC_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (BASIC_SVNT_NTRACE == 1) */
+
+#endif /* BASIC_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Homes/Factory/Factory.idl b/modules/CIAO/tests/IDL3/Homes/Factory/Factory.idl
new file mode 100644
index 00000000000..c9520b11c0a
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Factory/Factory.idl
@@ -0,0 +1,35 @@
+// $Id$
+/**
+ * @file Factory.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Tests the compilation of Homes with Factorys.
+ */
+
+#include <Components.idl>
+
+module FactoryHomes
+{
+ exception foo_exception
+ {
+ };
+
+ interface foo_interface
+ {
+ };
+
+ component Foo supports foo_interface
+ {
+ };
+
+ home FooHome manages Foo
+ {
+ factory FooFactory (in string foo, in short bar) raises (foo_exception);
+ };
+
+ eventtype food
+ {
+ };
+
+
+};
diff --git a/modules/CIAO/tests/IDL3/Homes/Factory/Factory.mpc b/modules/CIAO/tests/IDL3/Homes/Factory/Factory.mpc
new file mode 100644
index 00000000000..90aed185da2
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Factory/Factory.mpc
@@ -0,0 +1,17 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Factory"
+
+project(Factory_stub): ccm_stub {
+
+ sharedname = Factory_stub
+ idlflags += -Wb,stub_export_macro=FACTORY_STUB_Export -Wb,stub_export_include=Factory_stub_export.h -Wb,skel_export_macro=FACTORY_SVNT_Export -Wb,skel_export_include=Factory_svnt_export.h
+ dynamicflags = FACTORY_STUB_BUILD_DLL
+
+ IDL_Files {
+ Factory.idl
+ }
+
+ Source_Files {
+ FactoryC.cpp
+ }
+}
diff --git a/modules/CIAO/tests/IDL3/Homes/Factory/Factory_stub_export.h b/modules/CIAO/tests/IDL3/Homes/Factory/Factory_stub_export.h
new file mode 100644
index 00000000000..4a5cbf3ac4e
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Factory/Factory_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl FACTORY_STUB
+// ------------------------------
+#ifndef FACTORY_STUB_EXPORT_H
+#define FACTORY_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (FACTORY_STUB_HAS_DLL)
+# define FACTORY_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && FACTORY_STUB_HAS_DLL */
+
+#if !defined (FACTORY_STUB_HAS_DLL)
+# define FACTORY_STUB_HAS_DLL 1
+#endif /* ! FACTORY_STUB_HAS_DLL */
+
+#if defined (FACTORY_STUB_HAS_DLL) && (FACTORY_STUB_HAS_DLL == 1)
+# if defined (FACTORY_STUB_BUILD_DLL)
+# define FACTORY_STUB_Export ACE_Proper_Export_Flag
+# define FACTORY_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define FACTORY_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* FACTORY_STUB_BUILD_DLL */
+# define FACTORY_STUB_Export ACE_Proper_Import_Flag
+# define FACTORY_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define FACTORY_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* FACTORY_STUB_BUILD_DLL */
+#else /* FACTORY_STUB_HAS_DLL == 1 */
+# define FACTORY_STUB_Export
+# define FACTORY_STUB_SINGLETON_DECLARATION(T)
+# define FACTORY_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* FACTORY_STUB_HAS_DLL == 1 */
+
+// Set FACTORY_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (FACTORY_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define FACTORY_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define FACTORY_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !FACTORY_STUB_NTRACE */
+
+#if (FACTORY_STUB_NTRACE == 1)
+# define FACTORY_STUB_TRACE(X)
+#else /* (FACTORY_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define FACTORY_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (FACTORY_STUB_NTRACE == 1) */
+
+#endif /* FACTORY_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Homes/Factory/Factory_svnt_export.h b/modules/CIAO/tests/IDL3/Homes/Factory/Factory_svnt_export.h
new file mode 100644
index 00000000000..3bfb6c71d9e
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Factory/Factory_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl FACTORY_SVNT
+// ------------------------------
+#ifndef FACTORY_SVNT_EXPORT_H
+#define FACTORY_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (FACTORY_SVNT_HAS_DLL)
+# define FACTORY_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && FACTORY_SVNT_HAS_DLL */
+
+#if !defined (FACTORY_SVNT_HAS_DLL)
+# define FACTORY_SVNT_HAS_DLL 1
+#endif /* ! FACTORY_SVNT_HAS_DLL */
+
+#if defined (FACTORY_SVNT_HAS_DLL) && (FACTORY_SVNT_HAS_DLL == 1)
+# if defined (FACTORY_SVNT_BUILD_DLL)
+# define FACTORY_SVNT_Export ACE_Proper_Export_Flag
+# define FACTORY_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define FACTORY_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* FACTORY_SVNT_BUILD_DLL */
+# define FACTORY_SVNT_Export ACE_Proper_Import_Flag
+# define FACTORY_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define FACTORY_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* FACTORY_SVNT_BUILD_DLL */
+#else /* FACTORY_SVNT_HAS_DLL == 1 */
+# define FACTORY_SVNT_Export
+# define FACTORY_SVNT_SINGLETON_DECLARATION(T)
+# define FACTORY_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* FACTORY_SVNT_HAS_DLL == 1 */
+
+// Set FACTORY_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (FACTORY_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define FACTORY_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define FACTORY_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !FACTORY_SVNT_NTRACE */
+
+#if (FACTORY_SVNT_NTRACE == 1)
+# define FACTORY_SVNT_TRACE(X)
+#else /* (FACTORY_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define FACTORY_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (FACTORY_SVNT_NTRACE == 1) */
+
+#endif /* FACTORY_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Homes/Finder/Finder.idl b/modules/CIAO/tests/IDL3/Homes/Finder/Finder.idl
new file mode 100644
index 00000000000..5057b162fc3
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Finder/Finder.idl
@@ -0,0 +1,30 @@
+// $Id$
+/**
+ * @file Finder.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Tests the compilation of Homes with Factorys.
+ */
+
+#include <Components.idl>
+
+module FactoryHomes
+{
+ exception foo_exception
+ {
+ };
+
+ interface foo_interface
+ {
+ };
+
+ component Foo supports foo_interface
+ {
+ };
+
+ home FooHome manages Foo
+ {
+ factory FooFinder (in string foo, in short bar) raises (foo_exception);
+ };
+
+};
diff --git a/modules/CIAO/tests/IDL3/Homes/Finder/Finder.mpc b/modules/CIAO/tests/IDL3/Homes/Finder/Finder.mpc
new file mode 100644
index 00000000000..ce99a021e6f
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Finder/Finder.mpc
@@ -0,0 +1,17 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Finder"
+
+project(Finder_stub): ccm_stub {
+
+ sharedname = Finder_stub
+ idlflags += -Wb,stub_export_macro=FINDER_STUB_Export -Wb,stub_export_include=Finder_stub_export.h -Wb,skel_export_macro=FINDER_SVNT_Export -Wb,skel_export_include=Finder_svnt_export.h
+ dynamicflags = FINDER_STUB_BUILD_DLL
+
+ IDL_Files {
+ Finder.idl
+ }
+
+ Source_Files {
+ FinderC.cpp
+ }
+}
diff --git a/modules/CIAO/tests/IDL3/Homes/Finder/Finder_stub_export.h b/modules/CIAO/tests/IDL3/Homes/Finder/Finder_stub_export.h
new file mode 100644
index 00000000000..4d9cd68fe15
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Finder/Finder_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl FINDER_STUB
+// ------------------------------
+#ifndef FINDER_STUB_EXPORT_H
+#define FINDER_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (FINDER_STUB_HAS_DLL)
+# define FINDER_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && FINDER_STUB_HAS_DLL */
+
+#if !defined (FINDER_STUB_HAS_DLL)
+# define FINDER_STUB_HAS_DLL 1
+#endif /* ! FINDER_STUB_HAS_DLL */
+
+#if defined (FINDER_STUB_HAS_DLL) && (FINDER_STUB_HAS_DLL == 1)
+# if defined (FINDER_STUB_BUILD_DLL)
+# define FINDER_STUB_Export ACE_Proper_Export_Flag
+# define FINDER_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define FINDER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* FINDER_STUB_BUILD_DLL */
+# define FINDER_STUB_Export ACE_Proper_Import_Flag
+# define FINDER_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define FINDER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* FINDER_STUB_BUILD_DLL */
+#else /* FINDER_STUB_HAS_DLL == 1 */
+# define FINDER_STUB_Export
+# define FINDER_STUB_SINGLETON_DECLARATION(T)
+# define FINDER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* FINDER_STUB_HAS_DLL == 1 */
+
+// Set FINDER_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (FINDER_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define FINDER_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define FINDER_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !FINDER_STUB_NTRACE */
+
+#if (FINDER_STUB_NTRACE == 1)
+# define FINDER_STUB_TRACE(X)
+#else /* (FINDER_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define FINDER_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (FINDER_STUB_NTRACE == 1) */
+
+#endif /* FINDER_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Homes/Finder/Finder_svnt_export.h b/modules/CIAO/tests/IDL3/Homes/Finder/Finder_svnt_export.h
new file mode 100644
index 00000000000..87a52c9df52
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Finder/Finder_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl FINDER_SVNT
+// ------------------------------
+#ifndef FINDER_SVNT_EXPORT_H
+#define FINDER_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (FINDER_SVNT_HAS_DLL)
+# define FINDER_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && FINDER_SVNT_HAS_DLL */
+
+#if !defined (FINDER_SVNT_HAS_DLL)
+# define FINDER_SVNT_HAS_DLL 1
+#endif /* ! FINDER_SVNT_HAS_DLL */
+
+#if defined (FINDER_SVNT_HAS_DLL) && (FINDER_SVNT_HAS_DLL == 1)
+# if defined (FINDER_SVNT_BUILD_DLL)
+# define FINDER_SVNT_Export ACE_Proper_Export_Flag
+# define FINDER_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define FINDER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* FINDER_SVNT_BUILD_DLL */
+# define FINDER_SVNT_Export ACE_Proper_Import_Flag
+# define FINDER_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define FINDER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* FINDER_SVNT_BUILD_DLL */
+#else /* FINDER_SVNT_HAS_DLL == 1 */
+# define FINDER_SVNT_Export
+# define FINDER_SVNT_SINGLETON_DECLARATION(T)
+# define FINDER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* FINDER_SVNT_HAS_DLL == 1 */
+
+// Set FINDER_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (FINDER_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define FINDER_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define FINDER_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !FINDER_SVNT_NTRACE */
+
+#if (FINDER_SVNT_NTRACE == 1)
+# define FINDER_SVNT_TRACE(X)
+#else /* (FINDER_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define FINDER_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (FINDER_SVNT_NTRACE == 1) */
+
+#endif /* FINDER_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance.idl b/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance.idl
new file mode 100644
index 00000000000..e1bce50fc2f
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance.idl
@@ -0,0 +1,33 @@
+// $Id$
+/**
+ * @file Inheritance.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Tests the compilation of Home inheritance.
+ */
+
+#include <Components.idl>
+
+module HomeInheritance
+{
+ interface foo_interface
+ {
+ };
+
+ component Foo supports foo_interface
+ {
+ };
+
+ home FooHome manages Foo
+ {
+ };
+
+ component Bar
+ {
+ };
+
+ home BarHome : FooHome manages Bar
+ {
+ };
+
+};
diff --git a/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance.mpc b/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance.mpc
new file mode 100644
index 00000000000..cd467329b2c
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance.mpc
@@ -0,0 +1,17 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Inheritance"
+
+project(Inheritance_stub): ccm_stub {
+
+ sharedname = Inheritance_stub
+ idlflags += -Wb,stub_export_macro=INHERITANCE_STUB_Export -Wb,stub_export_include=Inheritance_stub_export.h -Wb,skel_export_macro=INHERITANCE_SVNT_Export -Wb,skel_export_include=Inheritance_svnt_export.h
+ dynamicflags = INHERITANCE_STUB_BUILD_DLL
+
+ IDL_Files {
+ Inheritance.idl
+ }
+
+ Source_Files {
+ InheritanceC.cpp
+ }
+}
diff --git a/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance_stub_export.h b/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance_stub_export.h
new file mode 100644
index 00000000000..8850bb78150
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl INHERITANCE_STUB
+// ------------------------------
+#ifndef INHERITANCE_STUB_EXPORT_H
+#define INHERITANCE_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (INHERITANCE_STUB_HAS_DLL)
+# define INHERITANCE_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && INHERITANCE_STUB_HAS_DLL */
+
+#if !defined (INHERITANCE_STUB_HAS_DLL)
+# define INHERITANCE_STUB_HAS_DLL 1
+#endif /* ! INHERITANCE_STUB_HAS_DLL */
+
+#if defined (INHERITANCE_STUB_HAS_DLL) && (INHERITANCE_STUB_HAS_DLL == 1)
+# if defined (INHERITANCE_STUB_BUILD_DLL)
+# define INHERITANCE_STUB_Export ACE_Proper_Export_Flag
+# define INHERITANCE_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define INHERITANCE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* INHERITANCE_STUB_BUILD_DLL */
+# define INHERITANCE_STUB_Export ACE_Proper_Import_Flag
+# define INHERITANCE_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define INHERITANCE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* INHERITANCE_STUB_BUILD_DLL */
+#else /* INHERITANCE_STUB_HAS_DLL == 1 */
+# define INHERITANCE_STUB_Export
+# define INHERITANCE_STUB_SINGLETON_DECLARATION(T)
+# define INHERITANCE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* INHERITANCE_STUB_HAS_DLL == 1 */
+
+// Set INHERITANCE_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (INHERITANCE_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define INHERITANCE_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define INHERITANCE_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !INHERITANCE_STUB_NTRACE */
+
+#if (INHERITANCE_STUB_NTRACE == 1)
+# define INHERITANCE_STUB_TRACE(X)
+#else /* (INHERITANCE_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define INHERITANCE_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (INHERITANCE_STUB_NTRACE == 1) */
+
+#endif /* INHERITANCE_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance_svnt_export.h b/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance_svnt_export.h
new file mode 100644
index 00000000000..083c201538a
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl INHERITANCE_SVNT
+// ------------------------------
+#ifndef INHERITANCE_SVNT_EXPORT_H
+#define INHERITANCE_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (INHERITANCE_SVNT_HAS_DLL)
+# define INHERITANCE_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && INHERITANCE_SVNT_HAS_DLL */
+
+#if !defined (INHERITANCE_SVNT_HAS_DLL)
+# define INHERITANCE_SVNT_HAS_DLL 1
+#endif /* ! INHERITANCE_SVNT_HAS_DLL */
+
+#if defined (INHERITANCE_SVNT_HAS_DLL) && (INHERITANCE_SVNT_HAS_DLL == 1)
+# if defined (INHERITANCE_SVNT_BUILD_DLL)
+# define INHERITANCE_SVNT_Export ACE_Proper_Export_Flag
+# define INHERITANCE_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define INHERITANCE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* INHERITANCE_SVNT_BUILD_DLL */
+# define INHERITANCE_SVNT_Export ACE_Proper_Import_Flag
+# define INHERITANCE_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define INHERITANCE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* INHERITANCE_SVNT_BUILD_DLL */
+#else /* INHERITANCE_SVNT_HAS_DLL == 1 */
+# define INHERITANCE_SVNT_Export
+# define INHERITANCE_SVNT_SINGLETON_DECLARATION(T)
+# define INHERITANCE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* INHERITANCE_SVNT_HAS_DLL == 1 */
+
+// Set INHERITANCE_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (INHERITANCE_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define INHERITANCE_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define INHERITANCE_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !INHERITANCE_SVNT_NTRACE */
+
+#if (INHERITANCE_SVNT_NTRACE == 1)
+# define INHERITANCE_SVNT_TRACE(X)
+#else /* (INHERITANCE_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define INHERITANCE_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (INHERITANCE_SVNT_NTRACE == 1) */
+
+#endif /* INHERITANCE_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/All/README b/modules/CIAO/tests/IDL3/ImpliedIDL/All/README
new file mode 100644
index 00000000000..2f4e09eaf3c
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/All/README
@@ -0,0 +1,88 @@
+ Converting IDL3 to IDL2
+ =======================
+
+Introduction
+============
+
+This directory contains a test for the executable
+tao_idl3_to_idl2, which inputs a single IDL file and
+outputs a single IDL file which has the IDL3 declarations
+from the input file converted to the corresponding 'implied
+IDL' declarations specificed by the mapping in the CCM
+document.
+
+This utility can be used in conjunction with some IDL compiler
+that does not support IDL3 keywords and syntax. The output of
+the utility can be processed by such a compiler, yielding code
+in the target programming language equivalent to that which
+would have been generated in one step by a CCM-aware IDL compiler.
+
+The tao_idl3_to_idl2 executable itself is built in
+CIAO_ROOT/tools/IDL3_to_IDL2. It uses the TAO IDL compiler
+front end parsing engine and the TAO IDL compiler driver
+files, so it depends on ACE. The IDL generation is
+accomplished by a custom backend library.
+
+Other Features Tested
+=====================
+
+The IDL file keyword_clash.idl contains many identifiers that
+are either escaped (to avoid a clash with IDL keywords) or
+are C++ keywords. Coverting this file, then generatin and
+compiling C++ from it, tests the ability of the conversion
+tool to preserve these identifiers correctly when mapping
+from IDL to IDL.
+
+The IDL file raw_include.idl is intentionaly left out of
+conversion processing. It contains no IDL with 'implied IDL'
+mapping. Since it is included in pass_through.idl, it
+must be included in pass_through_IDL2.idl, but without itself
+having the '_IDL2' suffix added. This type of 'raw' inclusion
+is necessary in some cases, and the MPC file adds a command
+line option to the processing of pass_through.idl to make
+sure the raw_include.idl is processed in this way.
+
+Running The Test
+================
+
+This test is only to determine that the generated IDL files
+are valid. So once the converted IDL file (having the
+extension _IDL2.idl) is generated by tao_idl3_to_idl2, the
+TAO IDL compiler is executed on the generated IDL file and
+the resulting C++ files compiled. If the compilation is
+successful for all such files, the test is a success.
+
+Notable Build Features
+======================
+
+Two features of the MPC file for this test are of interest:
+
+1.
+Two of the three IDL files in the test, pass_through.idl and
+include.idl, contain no IDL3 constructs, but merely test the
+executable's regeneration of IDL2 constructs. Since one IDL
+file is included in the other, there is a dependency that
+requires both IDL files to be processed before running the
+IDL compiler on pass_through_IDL2.idl. The line
+
+ pass_through_IDL2.idl << include_IDL2.idl
+
+indicates this dependency to the MPC tool, ensuring the correct
+order of execution.
+
+2.
+The -Sm option passed to the IDL compiler must be used when
+processing an IDL file resulting from the execution of
+tao_idl3_to_idl2. This option disables the action of the
+tao_idl backend 'preprocessor' (which is 'on' by default)
+that adds implied IDL nodes to the Abstract Syntax Tree
+for subsequent C++ code generation. In the case of an eventtype,
+the CCM spec requires additional code generation for a corresponding
+implied 'event consumer' IDL interface, as well as for the
+eventtype itself. The tao_idl3_to_idl2 executable adds this
+interface explicitly to the generated IDL file, along with the
+original eventtype. Without the -Sm option, the event consumer
+interface would appear redundantly in both explicit and implied
+IDL, resulting in a name clash. Since the IDL compiler cannot
+know the origin of the IDL file it is processing, the -Sm
+option encapsulates that knowledge. \ No newline at end of file
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/All/all.mpc b/modules/CIAO/tests/IDL3/ImpliedIDL/All/all.mpc
new file mode 100644
index 00000000000..19a43493818
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/All/all.mpc
@@ -0,0 +1,37 @@
+// -*- MPC -*-
+// $Id$
+
+project(ConvertIDL3) : taoidl3toidl2defaults, ciao_executor {
+ avoids += mfc
+ idlflags += -Sm
+
+ IDL3TOIDL2_Files {
+ convert.idl
+ include.idl
+ keyword_clash.idl
+ pass_through.idl
+ }
+
+ IDL_Files {
+ convert_IDL2.idl
+ include.idl
+ include_IDL2.idl
+ keyword_clash_IDL2.idl
+ pass_through_IDL2.idl << keyword_clash_IDL2C.h
+ raw_include.idl
+ }
+
+ Source_Files {
+ convert_IDL2C.cpp
+ convert_IDL2S.cpp
+ include_IDL2C.cpp
+ include_IDL2S.cpp
+ keyword_clash_IDL2C.cpp
+ keyword_clash_IDL2S.cpp
+ pass_through_IDL2C.cpp << includeC.h raw_includeC.h keyword_clash_IDL2C.h
+ pass_through_IDL2S.cpp
+ raw_includeC.cpp
+ raw_includeS.cpp
+ }
+}
+
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/All/convert.idl b/modules/CIAO/tests/IDL3/ImpliedIDL/All/convert.idl
new file mode 100644
index 00000000000..68600a619b3
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/All/convert.idl
@@ -0,0 +1,53 @@
+// $Id$
+/**
+ * @file convert.idl
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ *
+ * Tests all conversions of IDL3 constructs to IDL2.
+ */
+
+#include <Components.idl>
+
+eventtype eattype;
+interface sface {};
+interface pface {};
+interface uface {};
+interface umface {};
+
+valuetype pkey : Components::PrimaryKeyBase
+{
+ public string info;
+};
+
+valuetype pubtype_base {};
+eventtype pubtype : pubtype_base {};
+eventtype emitype : pubtype {};
+eventtype eattype {};
+
+component CompBase supports sface
+{
+};
+
+component CompDerived : CompBase
+{
+ provides pface pface_provider;
+ uses uface uface_user;
+ uses multiple umface umface_umuser;
+ publishes pubtype pubtype_publisher;
+ emits emitype emitype_emitter;
+ consumes eattype eattype_consumer;
+};
+
+home CompBaseHome supports sface manages CompBase
+{
+};
+
+home CompDerivedHome : CompBaseHome manages CompDerived primarykey pkey
+{
+ exception ch_except {};
+ void ch_op () raises (ch_except);
+ factory def_init ();
+ finder kitchen_sink (in string uid, in pkey key, in boolean all)
+ raises (ch_except);
+};
+
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/All/include.idl b/modules/CIAO/tests/IDL3/ImpliedIDL/All/include.idl
new file mode 100644
index 00000000000..848d4128b6e
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/All/include.idl
@@ -0,0 +1,35 @@
+// $Id$
+/**
+ * @file include.idl
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ *
+ * Tests tool's regeneration of IDL2 constructs, which
+ * should be basically unchanged.
+ */
+
+#ifndef INCLUDE_IDL
+#define INCLUDE_IDL
+
+module pre_mod
+{
+ typedef long longarray[3][14][7];
+
+ exception wrong
+ {
+ sequence<sequence<long> > longseqseq;
+ string reasons[4][2];
+ wstring<3> why;
+ };
+
+ enum which
+ {
+ ZERO,
+ ONE,
+ TWO
+ };
+};
+
+const pre_mod::which which_one = pre_mod::ONE;
+
+#endif /* INCLUDE_IDL */
+
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/All/keyword_clash.idl b/modules/CIAO/tests/IDL3/ImpliedIDL/All/keyword_clash.idl
new file mode 100644
index 00000000000..987077bc185
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/All/keyword_clash.idl
@@ -0,0 +1,89 @@
+// $Id$
+/**
+ * @file keyword_clash.idl
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ *
+ * Tests handling of C++ keywords and escaped identifiers (IDL
+ * keywords) in mapping IDL3 to IDL2, and mapping the resulting
+ * IDL2 to C++.
+ */
+
+#ifndef CONVERTIDL3_KEYWORD_CLASH_IDL
+#define CONVERTIDL3_KEYWORD_CLASH_IDL
+
+#include "Components.idl"
+
+module _interface
+{
+ interface _attribute
+ {
+ exception _inout {};
+ };
+};
+
+module static
+{
+ module _readonly
+ {
+ module protected
+ {
+ interface virtual
+ {
+ };
+
+ eventtype _eventtype
+ {
+ private virtual _public;
+ };
+ };
+ };
+};
+
+eventtype _eventtype
+{
+ factory friend (in string _wstring);
+};
+
+interface _oneway {};
+
+module _component
+{
+ component _out supports static::_readonly::protected::virtual
+ {
+ provides _interface::_attribute _local;
+ provides _oneway else;
+ provides static::_readonly::protected::virtual while;
+
+ attribute long _abstract;
+
+ uses multiple _interface::_attribute if;
+ uses multiple _oneway mutable;
+ uses multiple static::_readonly::protected::virtual register;
+
+ uses _interface::_attribute _union;
+ uses _oneway _struct;
+ uses static::_readonly::protected::virtual volatile;
+
+ publishes _eventtype _object;
+ publishes static::_readonly::protected::_eventtype do;
+
+ consumes _eventtype _const;
+ consumes static::_readonly::protected::_eventtype const_cast;
+
+ emits _eventtype class;
+ emits static::_readonly::protected::_eventtype delete;
+ };
+
+ home new manages _out
+ {
+ static::_readonly::protected::virtual
+ catch (
+ inout static::_readonly::protected::_eventtype try)
+ raises (_interface::_attribute::_inout);
+
+ finder continue (in _interface::_attribute _inout);
+ };
+};
+
+#endif /* CONVERTIDL3_KEYWORD_CLASH_IDL */
+
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/All/pass_through.idl b/modules/CIAO/tests/IDL3/ImpliedIDL/All/pass_through.idl
new file mode 100644
index 00000000000..97d05edffe8
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/All/pass_through.idl
@@ -0,0 +1,94 @@
+// $Id$
+/**
+ * @file pass_through.idl
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ *
+ * Tests tool's regeneration of IDL2 constructs, which
+ * should be basically unchanged.
+ */
+
+#ifndef PASS_THROUGH_IDL
+#define PASS_THROUGH_IDL
+
+#pragma prefix "glooby"
+
+#include "include.idl"
+#include "raw_include.idl"
+
+module pre_mod
+{
+ module inner
+ {
+ typedef long fork;
+ };
+
+ union uke switch (which)
+ {
+ case ONE:
+ case ZERO: string str_mem;
+ default: short s_mem;
+ };
+};
+
+module mod
+{
+ typeid mod "rama:lama/ding:dong";
+
+ interface base
+ {
+ readonly attribute unsigned long long ull_attr
+ raises (pre_mod::wrong);
+ };
+
+ interface foo
+ {
+ typeprefix foo "preefy";
+
+ exception wrongety_wrong
+ {
+ base unrelated;
+ string explanation;
+ };
+
+ attribute base base_attr
+ getraises (wrongety_wrong)
+ setraises (pre_mod::wrong, wrongety_wrong);
+ };
+
+ interface bleep;
+
+ abstract interface bar
+ {
+ base bar_op (in base inarg);
+ };
+
+ interface bleep : base, foo
+ {
+ oneway void oneway_op (in string strarg, in any anyarg);
+ bleep get_me ();
+ pre_mod::uke get_uke (out boolean success)
+ raises (pre_mod::wrong, foo::wrongety_wrong);
+ void throw_something ()
+ raises (pre_mod::wrong);
+ };
+
+ abstract valuetype vt_abase
+ {
+ };
+
+ valuetype vt_cbase
+ {
+ private bleep priv_bleep;
+ public string pub_str;
+ factory vt_init (in bleep bleeparg, in string stringarg)
+ raises (pre_mod::wrong);
+ };
+
+ valuetype vt : vt_cbase, vt_abase supports foo, bar
+ {
+ factory vt_default ();
+ };
+};
+
+#endif /* PASS_THROUGH_IDL */
+
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/All/raw_include.idl b/modules/CIAO/tests/IDL3/ImpliedIDL/All/raw_include.idl
new file mode 100644
index 00000000000..b3aed65f2df
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/All/raw_include.idl
@@ -0,0 +1,27 @@
+// $Id$
+/**
+ * @file raw_include.idl
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ *
+ * Tests tool's 'excluded file' feature, which allows the user
+ * to specifcy the generation of an #include for this file, in
+ * an IDL2 file corresponding to the IDL3 file this one is
+ * included in unchanged, without the '_IDL2' suffix.
+ */
+
+#ifndef RAW_INCLUDE_IDL
+#define RAW_INCLUDE_IDL
+
+module carnsarn
+{
+ typedef boolean t_or_f;
+
+ struct one
+ {
+ short shortshort;
+ string along;
+ wstring<3> trinity;
+ };
+};
+
+#endif /* RAW_INCLUDE_IDL */
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.idl b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.idl
new file mode 100644
index 00000000000..a5d5897f8cc
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.idl
@@ -0,0 +1,25 @@
+// $Id$
+/**
+ * @file ICBasic.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Tests implied idl functionality of basic components.
+ */
+
+#include <Components.idl>
+
+module Basic
+{
+ component Foo
+ {
+ };
+
+ interface Bar
+ {
+ Foo test_op_1 ();
+ void test_op_2 (in Foo f);
+ void test_op_3 (out Foo f);
+ };
+
+
+};
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.mpc b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.mpc
new file mode 100644
index 00000000000..854538563d0
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.mpc
@@ -0,0 +1,17 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n ICBasic"
+
+project(ICBasic_stub): ccm_stub {
+
+ sharedname = ICBasic_stub
+ idlflags += -Wb,stub_export_macro=ICBASIC_STUB_Export -Wb,stub_export_include=ICBasic_stub_export.h -Wb,skel_export_macro=ICBASIC_SVNT_Export -Wb,skel_export_include=ICBasic_svnt_export.h
+ dynamicflags = ICBASIC_STUB_BUILD_DLL
+
+ IDL_Files {
+ ICBasic.idl
+ }
+
+ Source_Files {
+ ICBasicC.cpp
+ }
+}
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic_stub_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic_stub_export.h
new file mode 100644
index 00000000000..b58cac3acfc
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ICBASIC_STUB
+// ------------------------------
+#ifndef ICBASIC_STUB_EXPORT_H
+#define ICBASIC_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ICBASIC_STUB_HAS_DLL)
+# define ICBASIC_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ICBASIC_STUB_HAS_DLL */
+
+#if !defined (ICBASIC_STUB_HAS_DLL)
+# define ICBASIC_STUB_HAS_DLL 1
+#endif /* ! ICBASIC_STUB_HAS_DLL */
+
+#if defined (ICBASIC_STUB_HAS_DLL) && (ICBASIC_STUB_HAS_DLL == 1)
+# if defined (ICBASIC_STUB_BUILD_DLL)
+# define ICBASIC_STUB_Export ACE_Proper_Export_Flag
+# define ICBASIC_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ICBASIC_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ICBASIC_STUB_BUILD_DLL */
+# define ICBASIC_STUB_Export ACE_Proper_Import_Flag
+# define ICBASIC_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ICBASIC_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ICBASIC_STUB_BUILD_DLL */
+#else /* ICBASIC_STUB_HAS_DLL == 1 */
+# define ICBASIC_STUB_Export
+# define ICBASIC_STUB_SINGLETON_DECLARATION(T)
+# define ICBASIC_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ICBASIC_STUB_HAS_DLL == 1 */
+
+// Set ICBASIC_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ICBASIC_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ICBASIC_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ICBASIC_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ICBASIC_STUB_NTRACE */
+
+#if (ICBASIC_STUB_NTRACE == 1)
+# define ICBASIC_STUB_TRACE(X)
+#else /* (ICBASIC_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ICBASIC_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ICBASIC_STUB_NTRACE == 1) */
+
+#endif /* ICBASIC_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic_svnt_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic_svnt_export.h
new file mode 100644
index 00000000000..de3714a6c75
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ICBASIC_SVNT
+// ------------------------------
+#ifndef ICBASIC_SVNT_EXPORT_H
+#define ICBASIC_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ICBASIC_SVNT_HAS_DLL)
+# define ICBASIC_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ICBASIC_SVNT_HAS_DLL */
+
+#if !defined (ICBASIC_SVNT_HAS_DLL)
+# define ICBASIC_SVNT_HAS_DLL 1
+#endif /* ! ICBASIC_SVNT_HAS_DLL */
+
+#if defined (ICBASIC_SVNT_HAS_DLL) && (ICBASIC_SVNT_HAS_DLL == 1)
+# if defined (ICBASIC_SVNT_BUILD_DLL)
+# define ICBASIC_SVNT_Export ACE_Proper_Export_Flag
+# define ICBASIC_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ICBASIC_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ICBASIC_SVNT_BUILD_DLL */
+# define ICBASIC_SVNT_Export ACE_Proper_Import_Flag
+# define ICBASIC_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ICBASIC_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ICBASIC_SVNT_BUILD_DLL */
+#else /* ICBASIC_SVNT_HAS_DLL == 1 */
+# define ICBASIC_SVNT_Export
+# define ICBASIC_SVNT_SINGLETON_DECLARATION(T)
+# define ICBASIC_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ICBASIC_SVNT_HAS_DLL == 1 */
+
+// Set ICBASIC_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ICBASIC_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ICBASIC_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ICBASIC_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ICBASIC_SVNT_NTRACE */
+
+#if (ICBASIC_SVNT_NTRACE == 1)
+# define ICBASIC_SVNT_TRACE(X)
+#else /* (ICBASIC_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ICBASIC_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ICBASIC_SVNT_NTRACE == 1) */
+
+#endif /* ICBASIC_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.idl b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.idl
new file mode 100644
index 00000000000..7bf8f83c98c
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.idl
@@ -0,0 +1,27 @@
+// $Id$
+/**
+ * @file ICEventSink.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Tests implied idl features of event sinks
+ */
+
+#include <Components.idl>
+
+module ImpliedEventSink
+{
+ eventtype foo_event
+ {
+ };
+
+ component Foo
+ {
+ consumes foo_event c_foo;
+ };
+ /*
+ interface test
+ {
+ ImpliedEventSink::FooEventConsumers::foo_eventConsumer test_a ();
+ };
+ */
+};
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.mpc b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.mpc
new file mode 100644
index 00000000000..e9381d014b2
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.mpc
@@ -0,0 +1,17 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n ICEventSink"
+
+project(ICEventSink_stub): ccm_stub {
+
+ sharedname = ICEventSink_stub
+ idlflags += -Wb,stub_export_macro=ICEVENTSINK_STUB_Export -Wb,stub_export_include=ICEventSink_stub_export.h -Wb,skel_export_macro=ICEVENTSINK_SVNT_Export -Wb,skel_export_include=ICEventSink_svnt_export.h
+ dynamicflags = ICEVENTSINK_STUB_BUILD_DLL
+
+ IDL_Files {
+ ICEventSink.idl
+ }
+
+ Source_Files {
+ ICEventSinkC.cpp
+ }
+}
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink_stub_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink_stub_export.h
new file mode 100644
index 00000000000..c773bbcf313
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ICEVENTSINK_STUB
+// ------------------------------
+#ifndef ICEVENTSINK_STUB_EXPORT_H
+#define ICEVENTSINK_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ICEVENTSINK_STUB_HAS_DLL)
+# define ICEVENTSINK_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ICEVENTSINK_STUB_HAS_DLL */
+
+#if !defined (ICEVENTSINK_STUB_HAS_DLL)
+# define ICEVENTSINK_STUB_HAS_DLL 1
+#endif /* ! ICEVENTSINK_STUB_HAS_DLL */
+
+#if defined (ICEVENTSINK_STUB_HAS_DLL) && (ICEVENTSINK_STUB_HAS_DLL == 1)
+# if defined (ICEVENTSINK_STUB_BUILD_DLL)
+# define ICEVENTSINK_STUB_Export ACE_Proper_Export_Flag
+# define ICEVENTSINK_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ICEVENTSINK_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ICEVENTSINK_STUB_BUILD_DLL */
+# define ICEVENTSINK_STUB_Export ACE_Proper_Import_Flag
+# define ICEVENTSINK_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ICEVENTSINK_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ICEVENTSINK_STUB_BUILD_DLL */
+#else /* ICEVENTSINK_STUB_HAS_DLL == 1 */
+# define ICEVENTSINK_STUB_Export
+# define ICEVENTSINK_STUB_SINGLETON_DECLARATION(T)
+# define ICEVENTSINK_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ICEVENTSINK_STUB_HAS_DLL == 1 */
+
+// Set ICEVENTSINK_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ICEVENTSINK_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ICEVENTSINK_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ICEVENTSINK_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ICEVENTSINK_STUB_NTRACE */
+
+#if (ICEVENTSINK_STUB_NTRACE == 1)
+# define ICEVENTSINK_STUB_TRACE(X)
+#else /* (ICEVENTSINK_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ICEVENTSINK_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ICEVENTSINK_STUB_NTRACE == 1) */
+
+#endif /* ICEVENTSINK_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink_svnt_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink_svnt_export.h
new file mode 100644
index 00000000000..10eed510dea
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ICEVENTSINK_SVNT
+// ------------------------------
+#ifndef ICEVENTSINK_SVNT_EXPORT_H
+#define ICEVENTSINK_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ICEVENTSINK_SVNT_HAS_DLL)
+# define ICEVENTSINK_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ICEVENTSINK_SVNT_HAS_DLL */
+
+#if !defined (ICEVENTSINK_SVNT_HAS_DLL)
+# define ICEVENTSINK_SVNT_HAS_DLL 1
+#endif /* ! ICEVENTSINK_SVNT_HAS_DLL */
+
+#if defined (ICEVENTSINK_SVNT_HAS_DLL) && (ICEVENTSINK_SVNT_HAS_DLL == 1)
+# if defined (ICEVENTSINK_SVNT_BUILD_DLL)
+# define ICEVENTSINK_SVNT_Export ACE_Proper_Export_Flag
+# define ICEVENTSINK_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ICEVENTSINK_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ICEVENTSINK_SVNT_BUILD_DLL */
+# define ICEVENTSINK_SVNT_Export ACE_Proper_Import_Flag
+# define ICEVENTSINK_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ICEVENTSINK_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ICEVENTSINK_SVNT_BUILD_DLL */
+#else /* ICEVENTSINK_SVNT_HAS_DLL == 1 */
+# define ICEVENTSINK_SVNT_Export
+# define ICEVENTSINK_SVNT_SINGLETON_DECLARATION(T)
+# define ICEVENTSINK_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ICEVENTSINK_SVNT_HAS_DLL == 1 */
+
+// Set ICEVENTSINK_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ICEVENTSINK_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ICEVENTSINK_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ICEVENTSINK_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ICEVENTSINK_SVNT_NTRACE */
+
+#if (ICEVENTSINK_SVNT_NTRACE == 1)
+# define ICEVENTSINK_SVNT_TRACE(X)
+#else /* (ICEVENTSINK_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ICEVENTSINK_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ICEVENTSINK_SVNT_NTRACE == 1) */
+
+#endif /* ICEVENTSINK_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.idl b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.idl
new file mode 100644
index 00000000000..578efbed7e4
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.idl
@@ -0,0 +1,38 @@
+// $Id$
+/**
+ * @file ICEventSource.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Tests implied IDL of event sources.
+ */
+
+#include <Components.idl>
+
+module ImpliedSources
+{
+ eventtype foo_event
+ {
+ };
+
+ eventtype bar_event
+ {
+ };
+
+ component Foo
+ {
+ publishes foo_event p_foo;
+ };
+
+ component Bar
+ {
+ emits bar_event e_bar;
+ };
+ /*
+ interface test
+ {
+ ImpliedSources::FooEventConsumers::foo_eventConsumer test_op ();
+ ImpliedSources::BarEventConsumers::bar_eventConsumer test_op_1 ();
+ };
+ */
+};
+
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.mpc b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.mpc
new file mode 100644
index 00000000000..123083e4d3f
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.mpc
@@ -0,0 +1,17 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n ICEventSource"
+
+project(ICEventSource_stub): ccm_stub {
+
+ sharedname = ICEventSource_stub
+ idlflags += -Wb,stub_export_macro=ICEVENTSOURCE_STUB_Export -Wb,stub_export_include=ICEventSource_stub_export.h -Wb,skel_export_macro=ICEVENTSOURCE_SVNT_Export -Wb,skel_export_include=ICEventSource_svnt_export.h
+ dynamicflags = ICEVENTSOURCE_STUB_BUILD_DLL
+
+ IDL_Files {
+ ICEventSource.idl
+ }
+
+ Source_Files {
+ ICEventSourceC.cpp
+ }
+}
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource_stub_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource_stub_export.h
new file mode 100644
index 00000000000..f28d2ba2d3a
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ICEVENTSOURCE_STUB
+// ------------------------------
+#ifndef ICEVENTSOURCE_STUB_EXPORT_H
+#define ICEVENTSOURCE_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ICEVENTSOURCE_STUB_HAS_DLL)
+# define ICEVENTSOURCE_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ICEVENTSOURCE_STUB_HAS_DLL */
+
+#if !defined (ICEVENTSOURCE_STUB_HAS_DLL)
+# define ICEVENTSOURCE_STUB_HAS_DLL 1
+#endif /* ! ICEVENTSOURCE_STUB_HAS_DLL */
+
+#if defined (ICEVENTSOURCE_STUB_HAS_DLL) && (ICEVENTSOURCE_STUB_HAS_DLL == 1)
+# if defined (ICEVENTSOURCE_STUB_BUILD_DLL)
+# define ICEVENTSOURCE_STUB_Export ACE_Proper_Export_Flag
+# define ICEVENTSOURCE_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ICEVENTSOURCE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ICEVENTSOURCE_STUB_BUILD_DLL */
+# define ICEVENTSOURCE_STUB_Export ACE_Proper_Import_Flag
+# define ICEVENTSOURCE_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ICEVENTSOURCE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ICEVENTSOURCE_STUB_BUILD_DLL */
+#else /* ICEVENTSOURCE_STUB_HAS_DLL == 1 */
+# define ICEVENTSOURCE_STUB_Export
+# define ICEVENTSOURCE_STUB_SINGLETON_DECLARATION(T)
+# define ICEVENTSOURCE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ICEVENTSOURCE_STUB_HAS_DLL == 1 */
+
+// Set ICEVENTSOURCE_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ICEVENTSOURCE_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ICEVENTSOURCE_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ICEVENTSOURCE_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ICEVENTSOURCE_STUB_NTRACE */
+
+#if (ICEVENTSOURCE_STUB_NTRACE == 1)
+# define ICEVENTSOURCE_STUB_TRACE(X)
+#else /* (ICEVENTSOURCE_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ICEVENTSOURCE_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ICEVENTSOURCE_STUB_NTRACE == 1) */
+
+#endif /* ICEVENTSOURCE_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource_svnt_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource_svnt_export.h
new file mode 100644
index 00000000000..b7269a38b47
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ICEVENTSOURCE_SVNT
+// ------------------------------
+#ifndef ICEVENTSOURCE_SVNT_EXPORT_H
+#define ICEVENTSOURCE_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ICEVENTSOURCE_SVNT_HAS_DLL)
+# define ICEVENTSOURCE_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ICEVENTSOURCE_SVNT_HAS_DLL */
+
+#if !defined (ICEVENTSOURCE_SVNT_HAS_DLL)
+# define ICEVENTSOURCE_SVNT_HAS_DLL 1
+#endif /* ! ICEVENTSOURCE_SVNT_HAS_DLL */
+
+#if defined (ICEVENTSOURCE_SVNT_HAS_DLL) && (ICEVENTSOURCE_SVNT_HAS_DLL == 1)
+# if defined (ICEVENTSOURCE_SVNT_BUILD_DLL)
+# define ICEVENTSOURCE_SVNT_Export ACE_Proper_Export_Flag
+# define ICEVENTSOURCE_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ICEVENTSOURCE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ICEVENTSOURCE_SVNT_BUILD_DLL */
+# define ICEVENTSOURCE_SVNT_Export ACE_Proper_Import_Flag
+# define ICEVENTSOURCE_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ICEVENTSOURCE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ICEVENTSOURCE_SVNT_BUILD_DLL */
+#else /* ICEVENTSOURCE_SVNT_HAS_DLL == 1 */
+# define ICEVENTSOURCE_SVNT_Export
+# define ICEVENTSOURCE_SVNT_SINGLETON_DECLARATION(T)
+# define ICEVENTSOURCE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ICEVENTSOURCE_SVNT_HAS_DLL == 1 */
+
+// Set ICEVENTSOURCE_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ICEVENTSOURCE_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ICEVENTSOURCE_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ICEVENTSOURCE_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ICEVENTSOURCE_SVNT_NTRACE */
+
+#if (ICEVENTSOURCE_SVNT_NTRACE == 1)
+# define ICEVENTSOURCE_SVNT_TRACE(X)
+#else /* (ICEVENTSOURCE_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ICEVENTSOURCE_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ICEVENTSOURCE_SVNT_NTRACE == 1) */
+
+#endif /* ICEVENTSOURCE_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.idl b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.idl
new file mode 100644
index 00000000000..7af66e50e8c
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.idl
@@ -0,0 +1,28 @@
+// $Id$
+/**
+ * @file ICReceptacles.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Tests equivalent idl for receptacles.
+ */
+#include <Components.idl>
+
+module EquivReceptacles
+{
+ interface foo_interface
+ {
+ };
+
+ component Foo
+ {
+ uses multiple foo_interface foo_recep;
+ };
+
+ /**
+ interface bar
+ {
+ Foo::foo_recepConnections get_seq ();
+ Foo::foo_recepConnection get_struct ();
+ };
+ */
+};
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.mpc b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.mpc
new file mode 100644
index 00000000000..cc1f610892c
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.mpc
@@ -0,0 +1,18 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n ICReceptacles"
+
+project(ICReceptacles_stub): ccm_stub {
+
+ sharedname = ICReceptacles_stub
+ idlflags += -Wb,stub_export_macro=ICRECEPTACLES_STUB_Export -Wb,stub_export_include=ICReceptacles_stub_export.h -Wb,skel_export_macro=ICRECEPTACLES_SVNT_Export -Wb,skel_export_include=ICReceptacles_svnt_export.h
+ dynamicflags = ICRECEPTACLES_STUB_BUILD_DLL
+
+ IDL_Files {
+ ICReceptacles.idl
+ }
+
+ Source_Files {
+ ICReceptaclesC.cpp
+ }
+}
+
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles_stub_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles_stub_export.h
new file mode 100644
index 00000000000..2571741be01
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ICRECEPTACLES_STUB
+// ------------------------------
+#ifndef ICRECEPTACLES_STUB_EXPORT_H
+#define ICRECEPTACLES_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ICRECEPTACLES_STUB_HAS_DLL)
+# define ICRECEPTACLES_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ICRECEPTACLES_STUB_HAS_DLL */
+
+#if !defined (ICRECEPTACLES_STUB_HAS_DLL)
+# define ICRECEPTACLES_STUB_HAS_DLL 1
+#endif /* ! ICRECEPTACLES_STUB_HAS_DLL */
+
+#if defined (ICRECEPTACLES_STUB_HAS_DLL) && (ICRECEPTACLES_STUB_HAS_DLL == 1)
+# if defined (ICRECEPTACLES_STUB_BUILD_DLL)
+# define ICRECEPTACLES_STUB_Export ACE_Proper_Export_Flag
+# define ICRECEPTACLES_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ICRECEPTACLES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ICRECEPTACLES_STUB_BUILD_DLL */
+# define ICRECEPTACLES_STUB_Export ACE_Proper_Import_Flag
+# define ICRECEPTACLES_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ICRECEPTACLES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ICRECEPTACLES_STUB_BUILD_DLL */
+#else /* ICRECEPTACLES_STUB_HAS_DLL == 1 */
+# define ICRECEPTACLES_STUB_Export
+# define ICRECEPTACLES_STUB_SINGLETON_DECLARATION(T)
+# define ICRECEPTACLES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ICRECEPTACLES_STUB_HAS_DLL == 1 */
+
+// Set ICRECEPTACLES_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ICRECEPTACLES_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ICRECEPTACLES_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ICRECEPTACLES_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ICRECEPTACLES_STUB_NTRACE */
+
+#if (ICRECEPTACLES_STUB_NTRACE == 1)
+# define ICRECEPTACLES_STUB_TRACE(X)
+#else /* (ICRECEPTACLES_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ICRECEPTACLES_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ICRECEPTACLES_STUB_NTRACE == 1) */
+
+#endif /* ICRECEPTACLES_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles_svnt_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles_svnt_export.h
new file mode 100644
index 00000000000..d826479eeaa
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ICRECEPTACLES_SVNT
+// ------------------------------
+#ifndef ICRECEPTACLES_SVNT_EXPORT_H
+#define ICRECEPTACLES_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ICRECEPTACLES_SVNT_HAS_DLL)
+# define ICRECEPTACLES_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ICRECEPTACLES_SVNT_HAS_DLL */
+
+#if !defined (ICRECEPTACLES_SVNT_HAS_DLL)
+# define ICRECEPTACLES_SVNT_HAS_DLL 1
+#endif /* ! ICRECEPTACLES_SVNT_HAS_DLL */
+
+#if defined (ICRECEPTACLES_SVNT_HAS_DLL) && (ICRECEPTACLES_SVNT_HAS_DLL == 1)
+# if defined (ICRECEPTACLES_SVNT_BUILD_DLL)
+# define ICRECEPTACLES_SVNT_Export ACE_Proper_Export_Flag
+# define ICRECEPTACLES_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ICRECEPTACLES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ICRECEPTACLES_SVNT_BUILD_DLL */
+# define ICRECEPTACLES_SVNT_Export ACE_Proper_Import_Flag
+# define ICRECEPTACLES_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ICRECEPTACLES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ICRECEPTACLES_SVNT_BUILD_DLL */
+#else /* ICRECEPTACLES_SVNT_HAS_DLL == 1 */
+# define ICRECEPTACLES_SVNT_Export
+# define ICRECEPTACLES_SVNT_SINGLETON_DECLARATION(T)
+# define ICRECEPTACLES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ICRECEPTACLES_SVNT_HAS_DLL == 1 */
+
+// Set ICRECEPTACLES_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ICRECEPTACLES_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ICRECEPTACLES_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ICRECEPTACLES_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ICRECEPTACLES_SVNT_NTRACE */
+
+#if (ICRECEPTACLES_SVNT_NTRACE == 1)
+# define ICRECEPTACLES_SVNT_TRACE(X)
+#else /* (ICRECEPTACLES_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ICRECEPTACLES_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ICRECEPTACLES_SVNT_NTRACE == 1) */
+
+#endif /* ICRECEPTACLES_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events.idl b/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events.idl
new file mode 100644
index 00000000000..62092c9e958
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events.idl
@@ -0,0 +1,22 @@
+// $Id$
+/**
+ * @file Events.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Tests implied IDL for event types.
+ */
+
+#include <Components.idl>
+
+module ImpliedEvent
+{
+ eventtype foo
+ {
+ };
+ /*
+ interface test_foo
+ {
+ fooConsumer test_op ();
+ };
+ */
+};
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events.mpc b/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events.mpc
new file mode 100644
index 00000000000..4200e384e0a
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events.mpc
@@ -0,0 +1,17 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Events"
+
+project(Events_stub): ccm_stub {
+
+ sharedname = Events_stub
+ idlflags += -Wb,stub_export_macro=EVENTS_STUB_Export -Wb,stub_export_include=Events_stub_export.h -Wb,skel_export_macro=EVENTS_SVNT_Export -Wb,skel_export_include=Events_svnt_export.h
+ dynamicflags = EVENTS_STUB_BUILD_DLL
+
+ IDL_Files {
+ Events.idl
+ }
+
+ Source_Files {
+ EventsC.cpp
+ }
+}
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events_stub_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events_stub_export.h
new file mode 100644
index 00000000000..be696db1402
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl EVENTS_STUB
+// ------------------------------
+#ifndef EVENTS_STUB_EXPORT_H
+#define EVENTS_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (EVENTS_STUB_HAS_DLL)
+# define EVENTS_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && EVENTS_STUB_HAS_DLL */
+
+#if !defined (EVENTS_STUB_HAS_DLL)
+# define EVENTS_STUB_HAS_DLL 1
+#endif /* ! EVENTS_STUB_HAS_DLL */
+
+#if defined (EVENTS_STUB_HAS_DLL) && (EVENTS_STUB_HAS_DLL == 1)
+# if defined (EVENTS_STUB_BUILD_DLL)
+# define EVENTS_STUB_Export ACE_Proper_Export_Flag
+# define EVENTS_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define EVENTS_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* EVENTS_STUB_BUILD_DLL */
+# define EVENTS_STUB_Export ACE_Proper_Import_Flag
+# define EVENTS_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define EVENTS_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* EVENTS_STUB_BUILD_DLL */
+#else /* EVENTS_STUB_HAS_DLL == 1 */
+# define EVENTS_STUB_Export
+# define EVENTS_STUB_SINGLETON_DECLARATION(T)
+# define EVENTS_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* EVENTS_STUB_HAS_DLL == 1 */
+
+// Set EVENTS_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (EVENTS_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define EVENTS_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define EVENTS_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !EVENTS_STUB_NTRACE */
+
+#if (EVENTS_STUB_NTRACE == 1)
+# define EVENTS_STUB_TRACE(X)
+#else /* (EVENTS_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define EVENTS_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (EVENTS_STUB_NTRACE == 1) */
+
+#endif /* EVENTS_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events_svnt_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events_svnt_export.h
new file mode 100644
index 00000000000..bca88a9a54a
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl EVENTS_SVNT
+// ------------------------------
+#ifndef EVENTS_SVNT_EXPORT_H
+#define EVENTS_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (EVENTS_SVNT_HAS_DLL)
+# define EVENTS_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && EVENTS_SVNT_HAS_DLL */
+
+#if !defined (EVENTS_SVNT_HAS_DLL)
+# define EVENTS_SVNT_HAS_DLL 1
+#endif /* ! EVENTS_SVNT_HAS_DLL */
+
+#if defined (EVENTS_SVNT_HAS_DLL) && (EVENTS_SVNT_HAS_DLL == 1)
+# if defined (EVENTS_SVNT_BUILD_DLL)
+# define EVENTS_SVNT_Export ACE_Proper_Export_Flag
+# define EVENTS_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define EVENTS_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* EVENTS_SVNT_BUILD_DLL */
+# define EVENTS_SVNT_Export ACE_Proper_Import_Flag
+# define EVENTS_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define EVENTS_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* EVENTS_SVNT_BUILD_DLL */
+#else /* EVENTS_SVNT_HAS_DLL == 1 */
+# define EVENTS_SVNT_Export
+# define EVENTS_SVNT_SINGLETON_DECLARATION(T)
+# define EVENTS_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* EVENTS_SVNT_HAS_DLL == 1 */
+
+// Set EVENTS_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (EVENTS_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define EVENTS_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define EVENTS_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !EVENTS_SVNT_NTRACE */
+
+#if (EVENTS_SVNT_NTRACE == 1)
+# define EVENTS_SVNT_TRACE(X)
+#else /* (EVENTS_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define EVENTS_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (EVENTS_SVNT_NTRACE == 1) */
+
+#endif /* EVENTS_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes.idl b/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes.idl
new file mode 100644
index 00000000000..3440458b4b2
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes.idl
@@ -0,0 +1,28 @@
+// $Id$
+/**
+ * @file Homes.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Tests equivalent IDL semantics for Homes
+ */
+
+#include <Components.idl>
+
+module ImplicitHomes
+{
+ component Foo
+ {
+ };
+
+ home FooHome manages Foo
+ {
+ };
+ /*
+ interface test
+ {
+ FooHomeExplicit test_op ();
+ FooHomeImplicit test_op_1 ();
+ FooHome test_op_2 ();
+ };
+ */
+};
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes.mpc b/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes.mpc
new file mode 100644
index 00000000000..bb6b96ca281
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes.mpc
@@ -0,0 +1,18 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Homes"
+
+project(Homes_stub): ccm_stub {
+
+ sharedname = Homes_stub
+ idlflags += -Wb,stub_export_macro=HOMES_STUB_Export -Wb,stub_export_include=Homes_stub_export.h -Wb,skel_export_macro=HOMES_SVNT_Export -Wb,skel_export_include=Homes_svnt_export.h
+ dynamicflags = HOMES_STUB_BUILD_DLL
+
+ IDL_Files {
+ Homes.idl
+ }
+
+ Source_Files {
+ HomesC.cpp
+ }
+}
+
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes_stub_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes_stub_export.h
new file mode 100644
index 00000000000..e7ba466797c
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl HOMES_STUB
+// ------------------------------
+#ifndef HOMES_STUB_EXPORT_H
+#define HOMES_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (HOMES_STUB_HAS_DLL)
+# define HOMES_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && HOMES_STUB_HAS_DLL */
+
+#if !defined (HOMES_STUB_HAS_DLL)
+# define HOMES_STUB_HAS_DLL 1
+#endif /* ! HOMES_STUB_HAS_DLL */
+
+#if defined (HOMES_STUB_HAS_DLL) && (HOMES_STUB_HAS_DLL == 1)
+# if defined (HOMES_STUB_BUILD_DLL)
+# define HOMES_STUB_Export ACE_Proper_Export_Flag
+# define HOMES_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define HOMES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* HOMES_STUB_BUILD_DLL */
+# define HOMES_STUB_Export ACE_Proper_Import_Flag
+# define HOMES_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define HOMES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* HOMES_STUB_BUILD_DLL */
+#else /* HOMES_STUB_HAS_DLL == 1 */
+# define HOMES_STUB_Export
+# define HOMES_STUB_SINGLETON_DECLARATION(T)
+# define HOMES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* HOMES_STUB_HAS_DLL == 1 */
+
+// Set HOMES_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (HOMES_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define HOMES_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define HOMES_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !HOMES_STUB_NTRACE */
+
+#if (HOMES_STUB_NTRACE == 1)
+# define HOMES_STUB_TRACE(X)
+#else /* (HOMES_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define HOMES_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (HOMES_STUB_NTRACE == 1) */
+
+#endif /* HOMES_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes_svnt_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes_svnt_export.h
new file mode 100644
index 00000000000..16fc4127d94
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl HOMES_SVNT
+// ------------------------------
+#ifndef HOMES_SVNT_EXPORT_H
+#define HOMES_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (HOMES_SVNT_HAS_DLL)
+# define HOMES_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && HOMES_SVNT_HAS_DLL */
+
+#if !defined (HOMES_SVNT_HAS_DLL)
+# define HOMES_SVNT_HAS_DLL 1
+#endif /* ! HOMES_SVNT_HAS_DLL */
+
+#if defined (HOMES_SVNT_HAS_DLL) && (HOMES_SVNT_HAS_DLL == 1)
+# if defined (HOMES_SVNT_BUILD_DLL)
+# define HOMES_SVNT_Export ACE_Proper_Export_Flag
+# define HOMES_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define HOMES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* HOMES_SVNT_BUILD_DLL */
+# define HOMES_SVNT_Export ACE_Proper_Import_Flag
+# define HOMES_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define HOMES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* HOMES_SVNT_BUILD_DLL */
+#else /* HOMES_SVNT_HAS_DLL == 1 */
+# define HOMES_SVNT_Export
+# define HOMES_SVNT_SINGLETON_DECLARATION(T)
+# define HOMES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* HOMES_SVNT_HAS_DLL == 1 */
+
+// Set HOMES_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (HOMES_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define HOMES_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define HOMES_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !HOMES_SVNT_NTRACE */
+
+#if (HOMES_SVNT_NTRACE == 1)
+# define HOMES_SVNT_TRACE(X)
+#else /* (HOMES_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define HOMES_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (HOMES_SVNT_NTRACE == 1) */
+
+#endif /* HOMES_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Lookup/README b/modules/CIAO/tests/IDL3/Lookup/README
new file mode 100644
index 00000000000..a92531070a6
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Lookup/README
@@ -0,0 +1,21 @@
+
+Lookup Test
+=======================
+
+This test is for IDL compiler handling of references using local
+names to declarations in base interfaces, components, valuetypes
+and homes, and in supported interfaces. This type of reference
+is legal IDL.
+
+The primary point of the test is that the IDL compiler outputs
+no errors in processing the IDL file, and the secondary point
+is that the generated code compiles successfully. Therefore,
+we have no need for export files, export macros, or *_BUILD_DLL
+flags.
+
+Thanks to Boris Kolpackov <boris@dre.vanderbilt.edu> for the
+original example IDL file, which has been slightly modified
+for use in this test.
+
+
+Jeff Parsons \ No newline at end of file
diff --git a/modules/CIAO/tests/IDL3/Lookup/lookup_test.idl b/modules/CIAO/tests/IDL3/Lookup/lookup_test.idl
new file mode 100644
index 00000000000..74d9b85de22
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Lookup/lookup_test.idl
@@ -0,0 +1,76 @@
+// $Id$
+/**
+ * @file lookup_test.idl
+ * @authors Boris Kolpackov <boris@dre.vanderbilt.edu>
+ * Jeff Parsons <j.parsons@vanderbilt.edu>
+ *
+ * Tests IDL compiler lookup when local names are used
+ * to reference declarations in supported interfaces,
+ * base valuetypes, base components, and base homes.
+ */
+
+
+#ifndef IDL3_LOOKUP_TEST_IDL
+#define IDL3_LOOKUP_TEST_IDL
+
+#include <Components.idl>
+
+module M
+{
+ interface IB
+ {
+ exception Ex {};
+ typedef long Foo;
+ };
+
+ interface I : IB
+ {
+ void f (in Foo bar) raises (Ex);
+ };
+
+ valuetype VB
+ {
+ typedef long Bar;
+ };
+
+ valuetype V : VB supports IB
+ {
+ void f (in Bar foo) raises (Ex);
+ };
+
+ valuetype EB
+ {
+ typedef long Bar;
+ };
+
+ valuetype E : EB supports IB
+ {
+ void f (in Bar foo) raises (Ex);
+ };
+
+ interface T
+ {
+ typedef long Bar;
+ };
+
+ component CB supports T
+ {
+ };
+
+ component C : CB
+ {
+ attribute Bar baz;
+ };
+
+ home HB supports IB manages CB
+ {
+ typedef long Bar;
+ };
+
+ home H : HB manages C
+ {
+ void f (in Bar b) raises (Ex);
+ };
+};
+
+#endif /* IDL3_LOOKUP_TEST_IDL */
diff --git a/modules/CIAO/tests/IDL3/Lookup/lookup_test.mpc b/modules/CIAO/tests/IDL3/Lookup/lookup_test.mpc
new file mode 100644
index 00000000000..d257f0ccd9b
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Lookup/lookup_test.mpc
@@ -0,0 +1,18 @@
+// $Id$
+
+project(LookupTest_stub): ccm_stub {
+
+ sharedname = LookupTest_stub
+
+ IDL_Files {
+ lookup_test.idl
+ }
+
+ Source_Files {
+ lookup_testC.cpp
+ }
+
+ Header_Files {
+ lookup_testC.h
+ }
+}
diff --git a/modules/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/run_test.pl b/modules/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/run_test.pl
new file mode 100755
index 00000000000..77597dae053
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/run_test.pl
@@ -0,0 +1,56 @@
+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;
+
+my $target = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
+
+my $idl = "test.idl";
+my $dtd = "../XMI.dtd";
+my $xmi = "generated.xmi";
+my $target_idl = $target->LocalFile ($idl);
+my $target_dtd = $target->LocalFile ($dtd);
+my $target_xmi = $target->LocalFile ($xmi);
+$target->DeleteFile($xmi);
+unlink $xmi;
+
+$I2X = $target->CreateProcess ("$ENV{'CIAO_ROOT'}/bin/tao_idl3_to_xmi",
+ "-f -xd $target_dtd -of $target_xmi $target_idl");
+
+$target_status = $I2X->SpawnWaitKill ($target->ProcessStartWaitInterval());
+
+if ($target_status != 0) {
+ print STDERR "ERROR: tao_idl3_to_xmi returned $target_status\n";
+ exit 1;
+}
+
+if ($target->GetFile ($xmi) == -1) {
+ print STDERR "ERROR: cannot retrieve file <$xmi>\n";
+ exit 1;
+}
+
+# search for right tag in generated xmi
+open (DAT, $xmi) || die ("ERROR: Could not open file <$xmi>!");
+@data=<DAT>;
+close (DAT);
+
+$num = grep (/<UML:Attribute/, @data);
+if ($num == 2) {
+ print "TEST OK. Correct tags in there.\n";
+} else {
+ print STDERR "ERROR: generated XMI does not contain a brace of UML:Attribute tags !\n\nXMI is:\n\n";
+ print "@data\n\n";
+ $status = 1;
+}
+
+$target->DeleteFile($xmi);
+unlink $xmi;
+
+exit $status;
diff --git a/modules/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/test.idl b/modules/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/test.idl
new file mode 100644
index 00000000000..58c9017b595
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/test.idl
@@ -0,0 +1,11 @@
+// $Id$
+
+#ifndef FOO_IDL
+#define FOO_IDL
+
+struct Foo
+{
+ long bar[5];
+};
+
+#endif
diff --git a/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/IDL2XMI_Test.mpc b/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/IDL2XMI_Test.mpc
new file mode 100644
index 00000000000..4db76128d4c
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/IDL2XMI_Test.mpc
@@ -0,0 +1,14 @@
+// -*- MPC -*-
+// $Id$
+
+project(*IDL2XMI_Test) : taoexe, ciao_xml_utils, xerces {
+ exename = xmlvalidator
+
+ Source_Files {
+ XML_Helper.cpp
+ xmlvalidator.cpp
+ }
+
+ IDL_Files {
+ }
+}
diff --git a/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.cpp b/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.cpp
new file mode 100644
index 00000000000..8f3454e7d2c
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.cpp
@@ -0,0 +1,103 @@
+// $Id$
+
+#include "XML_Helper.h"
+#include "ace/Log_Msg.h"
+
+#include "xercesc/dom/DOM.hpp"
+#include "xercesc/parsers/XercesDOMParser.hpp"
+
+#include "XML/XercesString.h"
+
+namespace Test
+{
+ namespace XML
+ {
+ Helper::Helper (CIAO::XML::XML_Error_Handler &eh)
+ : impl_ (0)
+ , parser_ (0)
+ , e_handler_ (eh)
+ {
+ this->init_parser ();
+ }
+
+ Helper::~Helper (void)
+ {
+ this->terminate_parser ();
+ }
+
+ void
+ Helper::init_parser (void)
+ {
+ // Initialize the Xerces run-time
+ XERCES_CPP_NAMESPACE::XMLPlatformUtils::Initialize();
+
+ // Instantiate the DOM parser.
+ static const XMLCh gLS[] = { XERCES_CPP_NAMESPACE::chLatin_L,
+ XERCES_CPP_NAMESPACE::chLatin_S,
+ XERCES_CPP_NAMESPACE::chNull };
+
+ // Get an implementation of the Load-Store (LS) interface
+ // and cache it for later use
+ impl_ =
+ XERCES_CPP_NAMESPACE::DOMImplementationRegistry::getDOMImplementation(gLS);
+ }
+
+ int
+ Helper::validate_dom (const ACE_TCHAR *url)
+ {
+ if (url == 0)
+ return 0;
+
+ try
+ {
+ if (this->parser_ == 0)
+ this->parser_ = new XERCES_CPP_NAMESPACE::XercesDOMParser ();
+
+ // Discard comment nodes in the document
+ this->parser_->setCreateCommentNodes (false);
+
+ // Do not create EntityReference nodes in the DOM tree. No
+ // EntityReference nodes will be created, only the nodes
+ // corresponding to their fully expanded sustitution text will be
+ // created.
+ this->parser_->setCreateEntityReferenceNodes (false);
+
+ // Perform Validation
+ this->parser_->setValidationScheme (
+ XERCES_CPP_NAMESPACE::AbstractDOMParser::Val_Always);
+
+ // Do not include ignorable whitespace in the DOM tree.
+ this->parser_->setIncludeIgnorableWhitespace (false);
+
+ // Enable full schema constraint checking, including checking which
+ // may be time-consuming or memory intensive. Currently, particle
+ // unique attribution constraint checking and particle derivation
+ // restriction checking are controlled by this option.
+ this->parser_->setValidationSchemaFullChecking (true);
+
+ this->parser_->setErrorHandler (&e_handler_);
+
+ this->parser_->parse (ACE_TEXT_ALWAYS_CHAR (url));
+
+ if (e_handler_.getErrors ())
+ return 1;
+
+ return 0;
+ }
+ catch (...)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "(%P|%t) Caught an unknown exception\n"));
+ throw;
+ }
+
+ return 0;
+ }
+
+ void
+ Helper::terminate_parser (void)
+ {
+ XERCES_CPP_NAMESPACE::XMLPlatformUtils::Terminate ();
+ }
+ }
+}
diff --git a/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.h b/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.h
new file mode 100644
index 00000000000..869742e2274
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.h
@@ -0,0 +1,67 @@
+// $Id$
+//============================================================
+/**
+ * @file XML_Helper.h
+ *
+ * @brief Some helper functions for XML
+ *
+ * @author Bala Natarajan <bala@dre.vanderbilt.edu>
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ */
+//============================================================
+
+#ifndef CIAO_XML_HELPER_H
+#define CIAO_XML_HELPER_H
+#include /**/ "ace/pre.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "XML/XML_Error_Handler.h"
+
+#include "xercesc/util/XercesDefs.hpp"
+
+namespace XERCES_CPP_NAMESPACE
+{
+ class DOMImplementation;
+ class XercesDOMParser;
+}
+
+namespace Test
+{
+ namespace XML
+ {
+ /**
+ * @class Helper
+ *
+ * @brief Helper class for some routine XML stuff.
+ */
+ class Helper
+ {
+ public:
+ // Initialize the resolver we should use.
+ Helper (CIAO::XML::XML_Error_Handler &eh);
+
+ ~Helper (void);
+
+ int validate_dom (const ACE_TCHAR *uri);
+
+ protected:
+ /// Intialize the parser
+ void init_parser (void);
+
+ /// Terminate the parser
+ void terminate_parser (void);
+
+ private:
+ XERCES_CPP_NAMESPACE::DOMImplementation *impl_;
+ XERCES_CPP_NAMESPACE::XercesDOMParser *parser_;
+
+ CIAO::XML::XML_Error_Handler &e_handler_;
+ };
+ }
+}
+
+#include /**/ "ace/post.h"
+#endif/*CIAO_XML_HELPER_H*/
diff --git a/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/run_test.pl b/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/run_test.pl
new file mode 100755
index 00000000000..57b96125210
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/run_test.pl
@@ -0,0 +1,59 @@
+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;
+
+$I2X = new PerlACE::Process ("$ENV{'CIAO_ROOT'}/bin/tao_idl3_to_xmi");
+#$VAL = new PerlACE::Process ("/usr/bin/xmlstarlet");
+$VAL = new PerlACE::Process ("xmlvalidator");
+
+my $idl_tests_dir = "$ENV{'TAO_ROOT'}/tests/IDL_Test";
+opendir(DIR, $idl_tests_dir) || die "can't opendir $idl_tests_dir: $!";
+
+my @idls = grep { /\.idl$/ && -f "$idl_tests_dir/$_" } readdir(DIR);
+foreach my $idl_file (@idls) {
+ my $idl = "$idl_tests_dir/$idl_file";
+ my $dtd = "../XMI.dtd";
+ (my $xmi = $idl_file) =~ s/\.idl$/.xmi/;
+ unlink $xmi;
+
+ $I2X->Arguments ("-I$idl_tests_dir -xd $dtd -of $xmi $idl");
+
+ $target_status = $I2X->SpawnWaitKill (30);
+
+ if ($target_status != 0) {
+ print STDERR "ERROR: tao_idl3_to_xmi returned $target_status\n";
+ $status = 1;
+ }
+
+ if (! -f $xmi) {
+ print STDERR "ERROR: tao_idl3_to_xmi didn't produce XMI\n";
+ print "\n";
+ next;
+ }
+
+ #$VAL->Arguments ("val -d $dtd $xmi");
+ $VAL->Arguments ("-i $xmi");
+
+ $target_status = $VAL->SpawnWaitKill (30);
+
+ if ($target_status != 0) {
+ print STDERR "ERROR: xmlvalidator returned $target_status\n";
+ $status = 1;
+ }
+
+ unlink $xmi;
+
+ print "\n";
+}
+
+closedir DIR;
+
+exit $status;
diff --git a/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/xmlvalidator.cpp b/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/xmlvalidator.cpp
new file mode 100644
index 00000000000..2603fb30403
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/xmlvalidator.cpp
@@ -0,0 +1,64 @@
+// $Id$
+
+#include "ace/Get_Opt.h"
+#include "ace/OS_NS_stdio.h"
+
+#include "XML_Helper.h"
+
+ACE_RCSID (IDL2XMI_Test,
+ xmlvalidator,
+ "$Id$")
+
+const ACE_TCHAR *inp_file = ACE_TEXT ("");
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("i:"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'i':
+ inp_file = get_opts.opt_arg ();
+ break;
+
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("usage: %s ")
+ ACE_TEXT ("-i <inputfile>")
+ ACE_TEXT ("\n"),
+ argv [0]),
+ -1);
+ }
+ // Indicates sucessful parsing of the command line
+ return 0;
+}
+
+int
+ACE_TMAIN(int argc, ACE_TCHAR *argv[])
+{
+ if (parse_args (argc, argv) != 0)
+ {
+ return 1;
+ }
+
+ CIAO::XML::XML_Error_Handler handler;
+ Test::XML::Helper helper (handler);
+
+ if (0 != helper.validate_dom (inp_file))
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("%s - invalid xml\n"),
+ inp_file));
+ return 1;
+ }
+
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("%s - valid xml\n"),
+ inp_file));
+
+ return 0;
+}
diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI.dtd b/modules/CIAO/tests/IDL3_to_XMI/XMI.dtd
new file mode 100644
index 00000000000..c8cf164befd
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/XMI.dtd
@@ -0,0 +1,6384 @@
+<!-- ===================================================================== -->
+<!--
+ This file is the same for all the XMI tests.
+ This is XMI 1.1 RTF UML DTD which can be found at
+ http://www.omg.org/cgi-bin/apps/doc?ad/99-10-05.dtd
+-->
+<!-- ===================================================================== -->
+<!-- Generated by: XMI Framework 1.0 -->
+<!-- Date: Fri Oct 22 14:31:09 PDT 1999 -->
+
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- This section of the DTD contains XML declarations required by -->
+<!-- XMI. -->
+<!-- _______________________________________________________________ -->
+
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- XMI is the top-level XML element for XMI transfer text -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT XMI (XMI.header?, XMI.content?, XMI.difference*,
+ XMI.extensions*) >
+<!ATTLIST XMI
+ xmi.version CDATA #FIXED "1.1"
+ timestamp CDATA #IMPLIED
+ verified (true | false) #IMPLIED
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- XMI.header contains documentation and identifies the model, -->
+<!-- metamodel, and metametamodel -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT XMI.header (XMI.documentation?, XMI.model*, XMI.metamodel*,
+ XMI.metametamodel*, XMI.import*) >
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- documentation for transfer data -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT XMI.documentation (#PCDATA | XMI.owner | XMI.contact |
+ XMI.longDescription | XMI.shortDescription |
+ XMI.exporter | XMI.exporterVersion |
+ XMI.notice)* >
+<!ELEMENT XMI.owner ANY >
+<!ELEMENT XMI.contact ANY >
+<!ELEMENT XMI.longDescription ANY >
+<!ELEMENT XMI.shortDescription ANY >
+<!ELEMENT XMI.exporter ANY >
+<!ELEMENT XMI.exporterVersion ANY >
+<!ELEMENT XMI.exporterID ANY >
+<!ELEMENT XMI.notice ANY >
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- XMI.element.att defines the attributes that each XML element -->
+<!-- that corresponds to a metamodel class must have to conform to -->
+<!-- the XMI specification. -->
+<!-- _______________________________________________________________ -->
+
+
+<!ENTITY % XMI.element.att
+ 'xmi.id ID #IMPLIED xmi.label CDATA #IMPLIED xmi.uuid
+ CDATA #IMPLIED ' >
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- XMI.link.att defines the attributes that each XML element that -->
+<!-- corresponds to a metamodel class must have to enable it to -->
+<!-- function as a simple XLink as well as refer to model -->
+<!-- constructs within the same XMI file. -->
+<!-- _______________________________________________________________ -->
+
+
+<!ENTITY % XMI.link.att
+ 'href CDATA #IMPLIED xmi.idref IDREF #IMPLIED xml:link
+ CDATA #IMPLIED xlink:inline (true | false) #IMPLIED
+ xlink:actuate (show | user) #IMPLIED xlink:content-role
+ CDATA #IMPLIED xlink:title CDATA #IMPLIED xlink:show
+ (embed | replace | new) #IMPLIED xlink:behavior CDATA
+ #IMPLIED' >
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- XMI.model identifies the model(s) being transferred -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT XMI.model ANY >
+<!ATTLIST XMI.model
+ %XMI.link.att;
+ xmi.name CDATA #REQUIRED
+ xmi.version CDATA #IMPLIED
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- XMI.metamodel identifies the metamodel(s) for the transferred -->
+<!-- data -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT XMI.metamodel ANY >
+<!ATTLIST XMI.metamodel
+ %XMI.link.att;
+ xmi.name CDATA #REQUIRED
+ xmi.version CDATA #IMPLIED
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- XMI.metametamodel identifies the metametamodel(s) for the -->
+<!-- transferred data -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT XMI.metametamodel ANY >
+<!ATTLIST XMI.metametamodel
+ %XMI.link.att;
+ xmi.name CDATA #REQUIRED
+ xmi.version CDATA #IMPLIED
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- XMI.metametamodel identifies other files associated with the -->
+<!-- transferred data -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT XMI.import ANY >
+<!ATTLIST XMI.import
+ %XMI.link.att;
+ xmi.name CDATA #REQUIRED
+ xmi.version CDATA #IMPLIED
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- XMI.content is the actual data being transferred -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT XMI.content ANY >
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- XMI.extensions contains data to transfer that does not conform -->
+<!-- to the metamodel(s) in the header -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT XMI.extensions ANY >
+<!ATTLIST XMI.extensions
+ xmi.extender CDATA #REQUIRED
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- extension contains information related to a specific model -->
+<!-- construct that is not defined in the metamodel(s) in the header -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT XMI.extension ANY >
+<!ATTLIST XMI.extension
+ %XMI.element.att;
+ %XMI.link.att;
+ xmi.extender CDATA #REQUIRED
+ xmi.extenderID CDATA #IMPLIED
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- XMI.difference holds XML elements representing differences to a -->
+<!-- base model -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT XMI.difference (XMI.difference | XMI.delete | XMI.add |
+ XMI.replace)* >
+<!ATTLIST XMI.difference
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- XMI.delete represents a deletion from a base model -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT XMI.delete EMPTY >
+<!ATTLIST XMI.delete
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- XMI.add represents an addition to a base model -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT XMI.add ANY >
+<!ATTLIST XMI.add
+ %XMI.element.att;
+ %XMI.link.att;
+ xmi.position CDATA "-1"
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- XMI.replace represents the replacement of a model construct -->
+<!-- with another model construct in a base model -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT XMI.replace ANY >
+<!ATTLIST XMI.replace
+ %XMI.element.att;
+ %XMI.link.att;
+ xmi.position CDATA "-1"
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- XMI.reference may be used to refer to data types not defined in -->
+<!-- the metamodel -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT XMI.reference ANY >
+<!ATTLIST XMI.reference
+ %XMI.link.att;
+>
+
+<!ATTLIST XMI
+ xmlns:UML CDATA #IMPLIED
+>
+
+
+<!ELEMENT UML:Binding.argument (UML:ModelElement | UML:Comment |
+ UML:Namespace | UML:GeneralizableElement |
+ UML:Feature | UML:Parameter |
+ UML:Constraint | UML:Dependency |
+ UML:Generalization | UML:AssociationEnd |
+ UML:Request | UML:ActionSequence |
+ UML:Action | UML:Link | UML:LinkEnd |
+ UML:Instance | UML:AttributeLink |
+ UML:MessageInstance | UML:Interaction |
+ UML:Message | UML:StateMachine |
+ UML:Guard | UML:StateVertex |
+ UML:Transition | UML:Event |
+ UML:Partition | UML:Collaboration |
+ UML:Classifier | UML:Association |
+ UML:Stereotype | UML:Package |
+ UML:Signal | UML:Node | UML:Component |
+ UML:Interface | UML:Class | UML:DataType |
+ UML:Subsystem | UML:ClassifierRole |
+ UML:Actor | UML:UseCase |
+ UML:ClassifierInState |
+ UML:AssociationClass | UML:Enumeration |
+ UML:Primitive | UML:Structure |
+ UML:AssociationRole | UML:Model |
+ UML:Exception | UML:StructuralFeature |
+ UML:BehavioralFeature | UML:Attribute |
+ UML:Operation | UML:Method |
+ UML:Reception | UML:Refinement |
+ UML:Usage | UML:Trace | UML:Binding |
+ UML:AssociationEndRole |
+ UML:CreateAction | UML:CallAction |
+ UML:LocalInvocation | UML:ReturnAction |
+ UML:SendAction | UML:UninterpretedAction |
+ UML:TerminateAction | UML:DestroyAction |
+ UML:LinkObject | UML:Object |
+ UML:DataValue | UML:UseCaseInstance |
+ UML:ActivityModel | UML:PseudoState |
+ UML:State | UML:CompositeState |
+ UML:SimpleState | UML:SubmachineState |
+ UML:ActionState | UML:ObjectFlowState |
+ UML:ActivityState | UML:SignalEvent |
+ UML:CallEvent | UML:TimeEvent |
+ UML:ChangeEvent)* >
+
+
+<!ELEMENT UML:ModelElement.taggedValue (UML:TaggedValue)* >
+
+
+<!ELEMENT UML:Namespace.ownedElement (UML:ModelElement | UML:Comment |
+ UML:Namespace |
+ UML:GeneralizableElement |
+ UML:Feature | UML:Parameter |
+ UML:Constraint | UML:Dependency |
+ UML:Generalization |
+ UML:AssociationEnd | UML:Request |
+ UML:ActionSequence | UML:Action |
+ UML:Link | UML:LinkEnd |
+ UML:Instance | UML:AttributeLink |
+ UML:MessageInstance |
+ UML:Interaction | UML:Message |
+ UML:StateMachine | UML:Guard |
+ UML:StateVertex | UML:Transition |
+ UML:Event | UML:Partition |
+ UML:Collaboration | UML:Classifier |
+ UML:Association | UML:Stereotype |
+ UML:Package | UML:Signal |
+ UML:Node | UML:Component |
+ UML:Interface | UML:Class |
+ UML:DataType | UML:Subsystem |
+ UML:ClassifierRole | UML:Actor |
+ UML:UseCase |
+ UML:ClassifierInState |
+ UML:AssociationClass |
+ UML:Enumeration | UML:Primitive |
+ UML:Structure |
+ UML:AssociationRole | UML:Model |
+ UML:Exception |
+ UML:StructuralFeature |
+ UML:BehavioralFeature |
+ UML:Attribute | UML:Operation |
+ UML:Method | UML:Reception |
+ UML:Refinement | UML:Usage |
+ UML:Trace | UML:Binding |
+ UML:AssociationEndRole |
+ UML:CreateAction | UML:CallAction |
+ UML:LocalInvocation |
+ UML:ReturnAction | UML:SendAction |
+ UML:UninterpretedAction |
+ UML:TerminateAction |
+ UML:DestroyAction | UML:LinkObject |
+ UML:Object | UML:DataValue |
+ UML:UseCaseInstance |
+ UML:ActivityModel |
+ UML:PseudoState | UML:State |
+ UML:CompositeState |
+ UML:SimpleState |
+ UML:SubmachineState |
+ UML:ActionState |
+ UML:ObjectFlowState |
+ UML:ActivityState |
+ UML:SignalEvent | UML:CallEvent |
+ UML:TimeEvent | UML:ChangeEvent)* >
+
+
+<!ELEMENT UML:Classifier.feature (UML:Feature | UML:StructuralFeature |
+ UML:BehavioralFeature | UML:Attribute |
+ UML:Operation | UML:Method |
+ UML:Reception)* >
+
+
+<!ELEMENT UML:BehavioralFeature.parameter (UML:Parameter)* >
+
+
+<!ELEMENT UML:Dependency.subDependencies (UML:Dependency |
+ UML:Refinement | UML:Usage |
+ UML:Trace | UML:Binding)* >
+
+
+<!ELEMENT UML:AssociationEnd.qualifier (UML:Attribute)* >
+
+
+<!ELEMENT UML:Association.connection (UML:AssociationEnd |
+ UML:AssociationEndRole)* >
+
+
+<!ELEMENT UML:Stereotype.requiredTag (UML:TaggedValue)* >
+
+
+<!ELEMENT UML:Enumeration.literal (UML:EnumerationLiteral)* >
+
+
+<!ELEMENT UML:Signal.parameter (UML:Parameter)* >
+
+
+<!ELEMENT UML:ActionSequence.action (UML:Action | UML:CreateAction |
+ UML:CallAction |
+ UML:LocalInvocation |
+ UML:ReturnAction | UML:SendAction |
+ UML:UninterpretedAction |
+ UML:TerminateAction |
+ UML:DestroyAction)* >
+
+
+<!ELEMENT UML:Action.actualArgument (UML:Argument)* >
+
+
+<!ELEMENT UML:Link.linkRole (UML:LinkEnd)* >
+
+
+<!ELEMENT UML:Instance.slot (UML:AttributeLink)* >
+
+
+<!ELEMENT UML:Collaboration.interaction (UML:Interaction)* >
+
+
+<!ELEMENT UML:Interaction.message (UML:Message)* >
+
+
+<!ELEMENT UML:StateMachine.top (UML:State | UML:CompositeState |
+ UML:SimpleState | UML:SubmachineState |
+ UML:ActionState | UML:ObjectFlowState |
+ UML:ActivityState)* >
+
+<!ELEMENT UML:StateMachine.transitions (UML:Transition)* >
+
+
+<!ELEMENT UML:Transition.guard (UML:Guard)* >
+
+<!ELEMENT UML:Transition.effect (UML:ActionSequence)* >
+
+
+<!ELEMENT UML:State.internalTransition (UML:Transition)* >
+
+<!ELEMENT UML:State.entry (UML:ActionSequence)* >
+
+<!ELEMENT UML:State.exit (UML:ActionSequence)* >
+
+
+<!ELEMENT UML:CompositeState.substate (UML:StateVertex |
+ UML:PseudoState | UML:State |
+ UML:CompositeState |
+ UML:SimpleState |
+ UML:SubmachineState |
+ UML:ActionState |
+ UML:ObjectFlowState |
+ UML:ActivityState)* >
+
+
+<!ELEMENT UML:ActivityModel.partition (UML:Partition)* >
+
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Refinement -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Refinement.mapping (UML:Mapping) >
+
+<!ELEMENT UML:Refinement (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Dependency.description |
+ UML:Refinement.mapping | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Dependency.owningDependency |
+ UML:Dependency.client |
+ UML:Dependency.supplier |
+ UML:ModelElement.taggedValue |
+ UML:Dependency.subDependencies)* >
+<!ATTLIST UML:Refinement
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ description CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owningDependency IDREFS #IMPLIED
+ client IDREFS #IMPLIED
+ supplier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Usage -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Usage (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Dependency.description | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Dependency.owningDependency |
+ UML:Dependency.client | UML:Dependency.supplier |
+ UML:ModelElement.taggedValue |
+ UML:Dependency.subDependencies)* >
+<!ATTLIST UML:Usage
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ description CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owningDependency IDREFS #IMPLIED
+ client IDREFS #IMPLIED
+ supplier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Trace -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Trace (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Dependency.description | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Dependency.owningDependency |
+ UML:Dependency.client | UML:Dependency.supplier |
+ UML:ModelElement.taggedValue |
+ UML:Dependency.subDependencies)* >
+<!ATTLIST UML:Trace
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ description CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owningDependency IDREFS #IMPLIED
+ client IDREFS #IMPLIED
+ supplier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Binding -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Binding (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Dependency.description | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Dependency.owningDependency |
+ UML:Dependency.client | UML:Dependency.supplier |
+ UML:ModelElement.taggedValue |
+ UML:Dependency.subDependencies |
+ UML:Binding.argument)* >
+<!ATTLIST UML:Binding
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ description CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owningDependency IDREFS #IMPLIED
+ client IDREFS #IMPLIED
+ supplier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Node -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Node.component (UML:Component)* >
+
+<!ELEMENT UML:Node (UML:ModelElement.name | UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract | XMI.extension |
+ UML:ModelElement.binding | UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:Node.component | UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Node
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ component IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Component -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Component.deployment (UML:Node)* >
+
+<!ELEMENT UML:Component.implements (UML:ModelElement)* >
+
+<!ELEMENT UML:Component (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:Component.deployment |
+ UML:Component.implements |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Component
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ deployment IDREFS #IMPLIED
+ implements IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Comment -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Comment (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Comment
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.ViewElement -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ViewElement.model (UML:ModelElement)* >
+
+<!ELEMENT UML:ViewElement.presentation (UML:Presentation)* >
+
+<!ELEMENT UML:ViewElement (XMI.extension | UML:ViewElement.model |
+ UML:ViewElement.presentation)* >
+<!ATTLIST UML:ViewElement
+ model IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Presentation -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Presentation.geometry (UML:Geometry) >
+
+<!ELEMENT UML:Presentation.style (UML:GraphicMarker) >
+
+<!ELEMENT UML:Presentation.model (UML:ModelElement)* >
+
+<!ELEMENT UML:Presentation.viewElement (UML:ViewElement)* >
+
+<!ELEMENT UML:Presentation (UML:Presentation.geometry |
+ UML:Presentation.style | XMI.extension |
+ UML:Presentation.model |
+ UML:Presentation.viewElement)* >
+<!ATTLIST UML:Presentation
+ model IDREFS #IMPLIED
+ viewElement IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Element -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Element (XMI.extension)* >
+<!ATTLIST UML:Element
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.ModelElement -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ModelElement.name (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:ModelElement.visibility EMPTY >
+<!ATTLIST UML:ModelElement.visibility
+ xmi.value (public | protected | private) #REQUIRED
+>
+
+<!ELEMENT UML:ModelElement.binding (UML:Binding)* >
+
+<!ELEMENT UML:ModelElement.template (UML:ModelElement)* >
+
+<!ELEMENT UML:ModelElement.templateParameter (UML:ModelElement)* >
+
+<!ELEMENT UML:ModelElement.implementation (UML:Component)* >
+
+<!ELEMENT UML:ModelElement.view (UML:ViewElement)* >
+
+<!ELEMENT UML:ModelElement.presentation (UML:Presentation)* >
+
+<!ELEMENT UML:ModelElement.namespace (UML:Namespace)* >
+
+<!ELEMENT UML:ModelElement.constraint (UML:Constraint)* >
+
+<!ELEMENT UML:ModelElement.requirement (UML:Dependency)* >
+
+<!ELEMENT UML:ModelElement.provision (UML:Dependency)* >
+
+<!ELEMENT UML:ModelElement.stereotype (UML:Stereotype)* >
+
+<!ELEMENT UML:ModelElement.elementReference (UML:ElementReference)* >
+
+<!ELEMENT UML:ModelElement.collaboration (UML:Collaboration)* >
+
+<!ELEMENT UML:ModelElement.behavior (UML:StateMachine)* >
+
+<!ELEMENT UML:ModelElement.partition (UML:Partition)* >
+
+<!ELEMENT UML:ModelElement (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:ModelElement
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Namespace -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Namespace (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement)* >
+<!ATTLIST UML:Namespace
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.GeneralizableElement -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:GeneralizableElement.isRoot EMPTY >
+<!ATTLIST UML:GeneralizableElement.isRoot
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:GeneralizableElement.isLeaf EMPTY >
+<!ATTLIST UML:GeneralizableElement.isLeaf
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:GeneralizableElement.isAbstract EMPTY >
+<!ATTLIST UML:GeneralizableElement.isAbstract
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:GeneralizableElement.generalization
+ (UML:Generalization)* >
+
+<!ELEMENT UML:GeneralizableElement.specialization
+ (UML:Generalization)* >
+
+<!ELEMENT UML:GeneralizableElement (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement)* >
+<!ATTLIST UML:GeneralizableElement
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Classifier -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Classifier.parameter (UML:Parameter)* >
+
+<!ELEMENT UML:Classifier.structuralFeature (UML:StructuralFeature)* >
+
+<!ELEMENT UML:Classifier.specification (UML:Classifier)* >
+
+<!ELEMENT UML:Classifier.realization (UML:Classifier)* >
+
+<!ELEMENT UML:Classifier.associationEnd (UML:AssociationEnd)* >
+
+<!ELEMENT UML:Classifier.participant (UML:AssociationEnd)* >
+
+<!ELEMENT UML:Classifier.createAction (UML:CreateAction)* >
+
+<!ELEMENT UML:Classifier.instance (UML:Instance)* >
+
+<!ELEMENT UML:Classifier.collaboration (UML:Collaboration)* >
+
+<!ELEMENT UML:Classifier.classifierRole (UML:ClassifierRole)* >
+
+<!ELEMENT UML:Classifier.classifierInState (UML:ClassifierInState)* >
+
+<!ELEMENT UML:Classifier (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Classifier
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Interface -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Interface (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Interface
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Class -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Class.isActive EMPTY >
+<!ATTLIST UML:Class.isActive
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:Class (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:Class.isActive | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Class
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ isActive (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.DataType -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:DataType (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:DataType
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Feature -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Feature.ownerScope EMPTY >
+<!ATTLIST UML:Feature.ownerScope
+ xmi.value (classifier | instance) #REQUIRED
+>
+
+<!ELEMENT UML:Feature.owner (UML:Classifier)* >
+
+<!ELEMENT UML:Feature.classifierRole (UML:ClassifierRole)* >
+
+<!ELEMENT UML:Feature (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Feature
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.StructuralFeature -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:StructuralFeature.multiplicity (#PCDATA |
+ XMI.reference)* >
+
+<!ELEMENT UML:StructuralFeature.changeable EMPTY >
+<!ATTLIST UML:StructuralFeature.changeable
+ xmi.value (none | frozen | addOnly) #REQUIRED
+>
+
+<!ELEMENT UML:StructuralFeature.targetScope EMPTY >
+<!ATTLIST UML:StructuralFeature.targetScope
+ xmi.value (classifier | instance) #REQUIRED
+>
+
+<!ELEMENT UML:StructuralFeature.type (UML:Classifier)* >
+
+<!ELEMENT UML:StructuralFeature (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope |
+ UML:StructuralFeature.multiplicity |
+ UML:StructuralFeature.changeable |
+ UML:StructuralFeature.targetScope |
+ XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:StructuralFeature.type |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:StructuralFeature
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ multiplicity CDATA #IMPLIED
+ changeable (none | frozen | addOnly) #IMPLIED
+ targetScope (classifier | instance) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ type IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.BehavioralFeature -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:BehavioralFeature.isQuery EMPTY >
+<!ATTLIST UML:BehavioralFeature.isQuery
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:BehavioralFeature.raisedException (UML:Exception)* >
+
+<!ELEMENT UML:BehavioralFeature (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope |
+ UML:BehavioralFeature.isQuery |
+ XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:BehavioralFeature.raisedException |
+ UML:ModelElement.taggedValue |
+ UML:BehavioralFeature.parameter)* >
+<!ATTLIST UML:BehavioralFeature
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ isQuery (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ raisedException IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Operation -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Operation.specification (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Operation.isPolymorphic EMPTY >
+<!ATTLIST UML:Operation.isPolymorphic
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:Operation.concurrency EMPTY >
+<!ATTLIST UML:Operation.concurrency
+ xmi.value (sequential | guarded | concurrent) #REQUIRED
+>
+
+<!ELEMENT UML:Operation.method (UML:Method)* >
+
+<!ELEMENT UML:Operation.collaboration (UML:Collaboration)* >
+
+<!ELEMENT UML:Operation.occurrence (UML:CallEvent)* >
+
+<!ELEMENT UML:Operation (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope |
+ UML:BehavioralFeature.isQuery |
+ UML:Operation.specification |
+ UML:Operation.isPolymorphic |
+ UML:Operation.concurrency | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:BehavioralFeature.raisedException |
+ UML:Request.action |
+ UML:Request.messageInstance |
+ UML:Operation.method |
+ UML:Operation.collaboration |
+ UML:Operation.occurrence |
+ UML:ModelElement.taggedValue |
+ UML:BehavioralFeature.parameter)* >
+<!ATTLIST UML:Operation
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ isQuery (false | true) #IMPLIED
+ specification CDATA #IMPLIED
+ isPolymorphic (false | true) #IMPLIED
+ concurrency (sequential | guarded | concurrent) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ raisedException IDREFS #IMPLIED
+ action IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ method IDREFS #IMPLIED
+ Operation.collaboration IDREFS #IMPLIED
+ occurrence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Method -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Method.body (UML:ProcedureExpression) >
+
+<!ELEMENT UML:Method.specification (UML:Operation)* >
+
+<!ELEMENT UML:Method (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope |
+ UML:BehavioralFeature.isQuery | UML:Method.body |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:BehavioralFeature.raisedException |
+ UML:Method.specification |
+ UML:ModelElement.taggedValue |
+ UML:BehavioralFeature.parameter)* >
+<!ATTLIST UML:Method
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ isQuery (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ raisedException IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Parameter -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Parameter.defaultValue (UML:Expression |
+ UML:ProcedureExpression |
+ UML:ObjectSetExpression |
+ UML:TimeExpression |
+ UML:BooleanExpression) >
+
+<!ELEMENT UML:Parameter.kind EMPTY >
+<!ATTLIST UML:Parameter.kind
+ xmi.value (in | inout | out | return) #REQUIRED
+>
+
+<!ELEMENT UML:Parameter.behavioralFeature (UML:BehavioralFeature)* >
+
+<!ELEMENT UML:Parameter.type (UML:Classifier)* >
+
+<!ELEMENT UML:Parameter.signal (UML:Signal)* >
+
+<!ELEMENT UML:Parameter (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Parameter.defaultValue | UML:Parameter.kind |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Parameter.behavioralFeature |
+ UML:Parameter.type | UML:Parameter.signal |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Parameter
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ kind (in | inout | out | return) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ behavioralFeature IDREFS #IMPLIED
+ type IDREFS #IMPLIED
+ signal IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Constraint -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Constraint.body (UML:BooleanExpression) >
+
+<!ELEMENT UML:Constraint.constrainedElement (UML:ModelElement)* >
+
+<!ELEMENT UML:Constraint.constrainedStereotype (UML:Stereotype)* >
+
+<!ELEMENT UML:Constraint (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Constraint.body | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Constraint.constrainedElement |
+ UML:Constraint.constrainedStereotype |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Constraint
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ constrainedElement IDREFS #IMPLIED
+ constrainedStereotype IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Dependency -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Dependency.description (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Dependency.owningDependency (UML:Dependency)* >
+
+<!ELEMENT UML:Dependency.client (UML:ModelElement)* >
+
+<!ELEMENT UML:Dependency.supplier (UML:ModelElement)* >
+
+<!ELEMENT UML:Dependency (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Dependency.description | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Dependency.owningDependency |
+ UML:Dependency.client |
+ UML:Dependency.supplier |
+ UML:ModelElement.taggedValue |
+ UML:Dependency.subDependencies)* >
+<!ATTLIST UML:Dependency
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ description CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owningDependency IDREFS #IMPLIED
+ client IDREFS #IMPLIED
+ supplier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Generalization -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Generalization.discriminator (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Generalization.subtype (UML:GeneralizableElement)* >
+
+<!ELEMENT UML:Generalization.supertype (UML:GeneralizableElement)* >
+
+<!ELEMENT UML:Generalization (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Generalization.discriminator |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Generalization.subtype |
+ UML:Generalization.supertype |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Generalization
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ discriminator CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ subtype IDREFS #IMPLIED
+ supertype IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.AssociationEnd -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:AssociationEnd.isNavigable EMPTY >
+<!ATTLIST UML:AssociationEnd.isNavigable
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:AssociationEnd.isOrdered EMPTY >
+<!ATTLIST UML:AssociationEnd.isOrdered
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:AssociationEnd.aggregation EMPTY >
+<!ATTLIST UML:AssociationEnd.aggregation
+ xmi.value (none | shared | composite) #REQUIRED
+>
+
+<!ELEMENT UML:AssociationEnd.multiplicity (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:AssociationEnd.changeable EMPTY >
+<!ATTLIST UML:AssociationEnd.changeable
+ xmi.value (none | frozen | addOnly) #REQUIRED
+>
+
+<!ELEMENT UML:AssociationEnd.targetScope EMPTY >
+<!ATTLIST UML:AssociationEnd.targetScope
+ xmi.value (classifier | instance) #REQUIRED
+>
+
+<!ELEMENT UML:AssociationEnd.type (UML:Classifier)* >
+
+<!ELEMENT UML:AssociationEnd.specification (UML:Classifier)* >
+
+<!ELEMENT UML:AssociationEnd.association (UML:Association)* >
+
+<!ELEMENT UML:AssociationEnd.linkEnd (UML:LinkEnd)* >
+
+<!ELEMENT UML:AssociationEnd.associationEndRole
+ (UML:AssociationEndRole)* >
+
+<!ELEMENT UML:AssociationEnd (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:AssociationEnd.isNavigable |
+ UML:AssociationEnd.isOrdered |
+ UML:AssociationEnd.aggregation |
+ UML:AssociationEnd.multiplicity |
+ UML:AssociationEnd.changeable |
+ UML:AssociationEnd.targetScope |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:AssociationEnd.type |
+ UML:AssociationEnd.specification |
+ UML:AssociationEnd.association |
+ UML:AssociationEnd.linkEnd |
+ UML:AssociationEnd.associationEndRole |
+ UML:ModelElement.taggedValue |
+ UML:AssociationEnd.qualifier)* >
+<!ATTLIST UML:AssociationEnd
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isNavigable (false | true) #IMPLIED
+ isOrdered (false | true) #IMPLIED
+ aggregation (none | shared | composite) #IMPLIED
+ multiplicity CDATA #IMPLIED
+ changeable (none | frozen | addOnly) #IMPLIED
+ targetScope (classifier | instance) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ type IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ association IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ associationEndRole IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Association -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Association.link (UML:Link)* >
+
+<!ELEMENT UML:Association.associationEnd (UML:AssociationRole)* >
+
+<!ELEMENT UML:Association (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Association.link |
+ UML:Association.associationEnd |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Association.connection)* >
+<!ATTLIST UML:Association
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ link IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.AssociationClass -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:AssociationClass (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:Class.isActive | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:Association.link |
+ UML:Association.associationEnd |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature |
+ UML:Association.connection)* >
+<!ATTLIST UML:AssociationClass
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ isActive (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ Classifier.associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ link IDREFS #IMPLIED
+ Association.associationEnd IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Attribute -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Attribute.initialValue (UML:Expression |
+ UML:ProcedureExpression |
+ UML:ObjectSetExpression |
+ UML:TimeExpression |
+ UML:BooleanExpression) >
+
+<!ELEMENT UML:Attribute.associationEnd (UML:AssociationEnd)* >
+
+<!ELEMENT UML:Attribute.attributeLink (UML:AttributeLink)* >
+
+<!ELEMENT UML:Attribute (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope |
+ UML:StructuralFeature.multiplicity |
+ UML:StructuralFeature.changeable |
+ UML:StructuralFeature.targetScope |
+ UML:Attribute.initialValue | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:StructuralFeature.type |
+ UML:Attribute.associationEnd |
+ UML:Attribute.attributeLink |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Attribute
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ multiplicity CDATA #IMPLIED
+ changeable (none | frozen | addOnly) #IMPLIED
+ targetScope (classifier | instance) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ type IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ attributeLink IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Extension_Mechanisms.TaggedValue -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:TaggedValue.tag (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:TaggedValue.value (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:TaggedValue.modelElement (UML:ModelElement)* >
+
+<!ELEMENT UML:TaggedValue.stereotype (UML:Stereotype)* >
+
+<!ELEMENT UML:TaggedValue (UML:TaggedValue.tag | UML:TaggedValue.value |
+ XMI.extension | UML:TaggedValue.modelElement |
+ UML:TaggedValue.stereotype)* >
+<!ATTLIST UML:TaggedValue
+ tag CDATA #IMPLIED
+ value CDATA #IMPLIED
+ modelElement IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Extension_Mechanisms.Stereotype -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Stereotype.icon (UML:Geometry) >
+
+<!ELEMENT UML:Stereotype.baseClass (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Stereotype.extendedElement (UML:ModelElement)* >
+
+<!ELEMENT UML:Stereotype.stereotypeConstraint (UML:Constraint)* >
+
+<!ELEMENT UML:Stereotype (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:Stereotype.icon | UML:Stereotype.baseClass |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Stereotype.extendedElement |
+ UML:Stereotype.stereotypeConstraint |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Stereotype.requiredTag)* >
+<!ATTLIST UML:Stereotype
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ baseClass CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ extendedElement IDREFS #IMPLIED
+ stereotypeConstraint IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.Enumeration -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Enumeration (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature |
+ UML:Enumeration.literal)* >
+<!ATTLIST UML:Enumeration
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.EnumerationLiteral -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:EnumerationLiteral.name (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:EnumerationLiteral.enumeration (UML:Enumeration)* >
+
+<!ELEMENT UML:EnumerationLiteral (UML:EnumerationLiteral.name |
+ XMI.extension |
+ UML:EnumerationLiteral.enumeration)* >
+<!ATTLIST UML:EnumerationLiteral
+ name CDATA #IMPLIED
+ enumeration IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.Primitive -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Primitive (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Primitive
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.Structure -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Structure (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Structure
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.MultiplicityRange -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:MultiplicityRange.lower (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:MultiplicityRange.upper (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:MultiplicityRange (UML:MultiplicityRange.lower |
+ UML:MultiplicityRange.upper |
+ XMI.extension)* >
+<!ATTLIST UML:MultiplicityRange
+ lower CDATA #IMPLIED
+ upper CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.Geometry -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Geometry.body (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Geometry (UML:Geometry.body | XMI.extension)* >
+<!ATTLIST UML:Geometry
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.GraphicMarker -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:GraphicMarker.body (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:GraphicMarker (UML:GraphicMarker.body | XMI.extension)* >
+<!ATTLIST UML:GraphicMarker
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.Mapping -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Mapping.body (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Mapping (UML:Mapping.body | XMI.extension)* >
+<!ATTLIST UML:Mapping
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.Expression -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Expression.language (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Expression.body (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Expression (UML:Expression.language | UML:Expression.body |
+ XMI.extension)* >
+<!ATTLIST UML:Expression
+ language CDATA #IMPLIED
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.ProcedureExpression -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ProcedureExpression (UML:Expression.language |
+ UML:Expression.body | XMI.extension)* >
+<!ATTLIST UML:ProcedureExpression
+ language CDATA #IMPLIED
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.ObjectSetExpression -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ObjectSetExpression (UML:Expression.language |
+ UML:Expression.body | XMI.extension)* >
+<!ATTLIST UML:ObjectSetExpression
+ language CDATA #IMPLIED
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.TimeExpression -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:TimeExpression (UML:Expression.language |
+ UML:Expression.body | XMI.extension)* >
+<!ATTLIST UML:TimeExpression
+ language CDATA #IMPLIED
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.BooleanExpression -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:BooleanExpression (UML:Expression.language |
+ UML:Expression.body | XMI.extension)* >
+<!ATTLIST UML:BooleanExpression
+ language CDATA #IMPLIED
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Model_Management.Package -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Package.elementReference (UML:ElementReference)* >
+
+<!ELEMENT UML:Package (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Package.elementReference |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement)* >
+<!ATTLIST UML:Package
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ ModelElement.elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ Package.elementReference IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Model_Management.Subsystem -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Subsystem.isInstantiable EMPTY >
+<!ATTLIST UML:Subsystem.isInstantiable
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:Subsystem (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:Subsystem.isInstantiable | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:Package.elementReference |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Subsystem
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ isInstantiable (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ ModelElement.elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ Package.elementReference IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Model_Management.Model -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Model (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Package.elementReference |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement)* >
+<!ATTLIST UML:Model
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ ModelElement.elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ Package.elementReference IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Model_Management.ElementReference -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ElementReference.visibility EMPTY >
+<!ATTLIST UML:ElementReference.visibility
+ xmi.value (public | protected | private) #REQUIRED
+>
+
+<!ELEMENT UML:ElementReference.alias (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:ElementReference.referencedElement (UML:ModelElement)* >
+
+<!ELEMENT UML:ElementReference.package (UML:Package)* >
+
+<!ELEMENT UML:ElementReference (UML:ElementReference.visibility |
+ UML:ElementReference.alias |
+ XMI.extension |
+ UML:ElementReference.referencedElement |
+ UML:ElementReference.package)* >
+<!ATTLIST UML:ElementReference
+ visibility (public | protected | private) #IMPLIED
+ alias CDATA #IMPLIED
+ referencedElement IDREFS #IMPLIED
+ package IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Request -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Request.action (UML:Action)* >
+
+<!ELEMENT UML:Request.messageInstance (UML:MessageInstance)* >
+
+<!ELEMENT UML:Request (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Request.action |
+ UML:Request.messageInstance |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Request
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ action IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Signal -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Signal.reception (UML:Reception)* >
+
+<!ELEMENT UML:Signal.occurrence (UML:SignalEvent)* >
+
+<!ELEMENT UML:Signal (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Request.action | UML:Request.messageInstance |
+ UML:Signal.reception | UML:Signal.occurrence |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Signal.parameter)* >
+<!ATTLIST UML:Signal
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ action IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ reception IDREFS #IMPLIED
+ occurrence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Exception -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Exception.context (UML:BehavioralFeature)* >
+
+<!ELEMENT UML:Exception (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Request.action |
+ UML:Request.messageInstance |
+ UML:Signal.reception | UML:Signal.occurrence |
+ UML:Exception.context |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Signal.parameter)* >
+<!ATTLIST UML:Exception
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ action IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ reception IDREFS #IMPLIED
+ occurrence IDREFS #IMPLIED
+ context IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Reception -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Reception.isPolymorphic EMPTY >
+<!ATTLIST UML:Reception.isPolymorphic
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:Reception.specification (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Reception.signal (UML:Signal)* >
+
+<!ELEMENT UML:Reception (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope |
+ UML:BehavioralFeature.isQuery |
+ UML:Reception.isPolymorphic |
+ UML:Reception.specification | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:BehavioralFeature.raisedException |
+ UML:Reception.signal |
+ UML:ModelElement.taggedValue |
+ UML:BehavioralFeature.parameter)* >
+<!ATTLIST UML:Reception
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ isQuery (false | true) #IMPLIED
+ isPolymorphic (false | true) #IMPLIED
+ specification CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ raisedException IDREFS #IMPLIED
+ signal IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Argument -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Argument.value (UML:Expression | UML:ProcedureExpression |
+ UML:ObjectSetExpression |
+ UML:TimeExpression |
+ UML:BooleanExpression) >
+
+<!ELEMENT UML:Argument.action (UML:Action)* >
+
+<!ELEMENT UML:Argument (UML:Argument.value | XMI.extension |
+ UML:Argument.action)* >
+<!ATTLIST UML:Argument
+ action IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.ActionSequence -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ActionSequence.transition (UML:Transition)* >
+
+<!ELEMENT UML:ActionSequence.state (UML:State)* >
+
+<!ELEMENT UML:ActionSequence.state2 (UML:State)* >
+
+<!ELEMENT UML:ActionSequence (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:ActionSequence.transition |
+ UML:ActionSequence.state |
+ UML:ActionSequence.state2 |
+ UML:ModelElement.taggedValue |
+ UML:ActionSequence.action)* >
+<!ATTLIST UML:ActionSequence
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ state2 IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Action -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Action.recurrence (UML:Expression |
+ UML:ProcedureExpression |
+ UML:ObjectSetExpression |
+ UML:TimeExpression |
+ UML:BooleanExpression) >
+
+<!ELEMENT UML:Action.target (UML:ObjectSetExpression) >
+
+<!ELEMENT UML:Action.isAsynchronous EMPTY >
+<!ATTLIST UML:Action.isAsynchronous
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:Action.script (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Action.request (UML:Request)* >
+
+<!ELEMENT UML:Action.message (UML:Message)* >
+
+<!ELEMENT UML:Action.actionSequence (UML:ActionSequence)* >
+
+<!ELEMENT UML:Action (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous | UML:Action.script |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Action.request |
+ UML:Action.message | UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:Action
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.CreateAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:CreateAction.instantiation (UML:Classifier)* >
+
+<!ELEMENT UML:CreateAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous |
+ UML:Action.script | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:CreateAction.instantiation |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:CreateAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ instantiation IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.CallAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:CallAction.mode EMPTY >
+<!ATTLIST UML:CallAction.mode
+ xmi.value (synchronous | asynchronous) #REQUIRED
+>
+
+<!ELEMENT UML:CallAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous | UML:Action.script |
+ UML:CallAction.mode | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:CallAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ mode (synchronous | asynchronous) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.LocalInvocation -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:LocalInvocation (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous |
+ UML:Action.script | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:LocalInvocation
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.ReturnAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ReturnAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous |
+ UML:Action.script | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:ReturnAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.SendAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:SendAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous | UML:Action.script |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:SendAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.UninterpretedAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:UninterpretedAction.body (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:UninterpretedAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence |
+ UML:Action.target |
+ UML:Action.isAsynchronous |
+ UML:Action.script |
+ UML:UninterpretedAction.body |
+ XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request |
+ UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:UninterpretedAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ body CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.TerminateAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:TerminateAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous |
+ UML:Action.script | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:TerminateAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.DestroyAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:DestroyAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous |
+ UML:Action.script | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:DestroyAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Link -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Link.association (UML:Association)* >
+
+<!ELEMENT UML:Link (UML:ModelElement.name | UML:ModelElement.visibility |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Link.association |
+ UML:ModelElement.taggedValue | UML:Link.linkRole)* >
+<!ATTLIST UML:Link
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ association IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.LinkEnd -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:LinkEnd.link (UML:Link)* >
+
+<!ELEMENT UML:LinkEnd.associationEnd (UML:AssociationEnd)* >
+
+<!ELEMENT UML:LinkEnd.instance (UML:Instance)* >
+
+<!ELEMENT UML:LinkEnd (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:LinkEnd.link |
+ UML:LinkEnd.associationEnd | UML:LinkEnd.instance |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:LinkEnd
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ link IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Instance -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Instance.linkEnd (UML:LinkEnd)* >
+
+<!ELEMENT UML:Instance.messageInstance3 (UML:MessageInstance)* >
+
+<!ELEMENT UML:Instance.messageInstance2 (UML:MessageInstance)* >
+
+<!ELEMENT UML:Instance.messageInstance (UML:MessageInstance)* >
+
+<!ELEMENT UML:Instance.attributeLink (UML:AttributeLink)* >
+
+<!ELEMENT UML:Instance.classifier (UML:Classifier)* >
+
+<!ELEMENT UML:Instance (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Instance.linkEnd |
+ UML:Instance.messageInstance3 |
+ UML:Instance.messageInstance2 |
+ UML:Instance.messageInstance |
+ UML:Instance.attributeLink |
+ UML:Instance.classifier |
+ UML:ModelElement.taggedValue |
+ UML:Instance.slot)* >
+<!ATTLIST UML:Instance
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ messageInstance3 IDREFS #IMPLIED
+ messageInstance2 IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ attributeLink IDREFS #IMPLIED
+ classifier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.AttributeLink -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:AttributeLink.instance (UML:Instance)* >
+
+<!ELEMENT UML:AttributeLink.attribute (UML:Attribute)* >
+
+<!ELEMENT UML:AttributeLink.value (UML:Instance)* >
+
+<!ELEMENT UML:AttributeLink (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:AttributeLink.instance |
+ UML:AttributeLink.attribute |
+ UML:AttributeLink.value |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:AttributeLink
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ attribute IDREFS #IMPLIED
+ value IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Object -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Object (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Instance.linkEnd |
+ UML:Instance.messageInstance3 |
+ UML:Instance.messageInstance2 |
+ UML:Instance.messageInstance |
+ UML:Instance.attributeLink |
+ UML:Instance.classifier |
+ UML:ModelElement.taggedValue | UML:Instance.slot)* >
+<!ATTLIST UML:Object
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ messageInstance3 IDREFS #IMPLIED
+ messageInstance2 IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ attributeLink IDREFS #IMPLIED
+ classifier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.DataValue -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:DataValue (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Instance.linkEnd |
+ UML:Instance.messageInstance3 |
+ UML:Instance.messageInstance2 |
+ UML:Instance.messageInstance |
+ UML:Instance.attributeLink |
+ UML:Instance.classifier |
+ UML:ModelElement.taggedValue |
+ UML:Instance.slot)* >
+<!ATTLIST UML:DataValue
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ messageInstance3 IDREFS #IMPLIED
+ messageInstance2 IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ attributeLink IDREFS #IMPLIED
+ classifier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.LinkObject -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:LinkObject (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Instance.linkEnd |
+ UML:Instance.messageInstance3 |
+ UML:Instance.messageInstance2 |
+ UML:Instance.messageInstance |
+ UML:Instance.attributeLink |
+ UML:Instance.classifier | UML:Link.association |
+ UML:ModelElement.taggedValue |
+ UML:Instance.slot | UML:Link.linkRole)* >
+<!ATTLIST UML:LinkObject
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ messageInstance3 IDREFS #IMPLIED
+ messageInstance2 IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ attributeLink IDREFS #IMPLIED
+ classifier IDREFS #IMPLIED
+ association IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.MessageInstance -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:MessageInstance.specification (UML:Request)* >
+
+<!ELEMENT UML:MessageInstance.sender (UML:Instance)* >
+
+<!ELEMENT UML:MessageInstance.receiver (UML:Instance)* >
+
+<!ELEMENT UML:MessageInstance.argument (UML:Instance)* >
+
+<!ELEMENT UML:MessageInstance (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:MessageInstance.specification |
+ UML:MessageInstance.sender |
+ UML:MessageInstance.receiver |
+ UML:MessageInstance.argument |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:MessageInstance
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ sender IDREFS #IMPLIED
+ receiver IDREFS #IMPLIED
+ argument IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Collaborations.Collaboration -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Collaboration.representedClassifier (UML:Classifier)* >
+
+<!ELEMENT UML:Collaboration.representedOperation (UML:Operation)* >
+
+<!ELEMENT UML:Collaboration.constrainingElement (UML:ModelElement)* >
+
+<!ELEMENT UML:Collaboration (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Collaboration.representedClassifier |
+ UML:Collaboration.representedOperation |
+ UML:Collaboration.constrainingElement |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Collaboration.interaction)* >
+<!ATTLIST UML:Collaboration
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ representedClassifier IDREFS #IMPLIED
+ representedOperation IDREFS #IMPLIED
+ constrainingElement IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Collaborations.Interaction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Interaction.context (UML:Collaboration)* >
+
+<!ELEMENT UML:Interaction (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Interaction.context |
+ UML:ModelElement.taggedValue |
+ UML:Interaction.message)* >
+<!ATTLIST UML:Interaction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ context IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Collaborations.AssociationRole -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:AssociationRole.multiplicity (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:AssociationRole.base (UML:Association)* >
+
+<!ELEMENT UML:AssociationRole.namespace (UML:Collaboration)* >
+
+<!ELEMENT UML:AssociationRole (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:AssociationRole.multiplicity |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Association.link |
+ UML:Association.associationEnd |
+ UML:AssociationRole.base |
+ UML:AssociationRole.namespace |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Association.connection)* >
+<!ATTLIST UML:AssociationRole
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ multiplicity CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ ModelElement.namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ link IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ base IDREFS #IMPLIED
+ AssociationRole.namespace IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Collaborations.AssociationEndRole -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:AssociationEndRole.associationRole
+ (UML:AssociationRole)* >
+
+<!ELEMENT UML:AssociationEndRole.base (UML:AssociationEnd)* >
+
+<!ELEMENT UML:AssociationEndRole (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:AssociationEnd.isNavigable |
+ UML:AssociationEnd.isOrdered |
+ UML:AssociationEnd.aggregation |
+ UML:AssociationEnd.multiplicity |
+ UML:AssociationEnd.changeable |
+ UML:AssociationEnd.targetScope |
+ XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:AssociationEnd.type |
+ UML:AssociationEnd.specification |
+ UML:AssociationEnd.association |
+ UML:AssociationEnd.linkEnd |
+ UML:AssociationEnd.associationEndRole |
+ UML:AssociationEndRole.associationRole |
+ UML:AssociationEndRole.base |
+ UML:ModelElement.taggedValue |
+ UML:AssociationEnd.qualifier)* >
+<!ATTLIST UML:AssociationEndRole
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isNavigable (false | true) #IMPLIED
+ isOrdered (false | true) #IMPLIED
+ aggregation (none | shared | composite) #IMPLIED
+ multiplicity CDATA #IMPLIED
+ changeable (none | frozen | addOnly) #IMPLIED
+ targetScope (classifier | instance) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ type IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ association IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ associationEndRole IDREFS #IMPLIED
+ associationRole IDREFS #IMPLIED
+ base IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Collaborations.Message -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Message.interaction (UML:Interaction)* >
+
+<!ELEMENT UML:Message.predecessor (UML:Message)* >
+
+<!ELEMENT UML:Message.message2 (UML:Message)* >
+
+<!ELEMENT UML:Message.message (UML:Message)* >
+
+<!ELEMENT UML:Message.activator (UML:Message)* >
+
+<!ELEMENT UML:Message.action (UML:Action)* >
+
+<!ELEMENT UML:Message.receiver (UML:ClassifierRole)* >
+
+<!ELEMENT UML:Message.sender (UML:ClassifierRole)* >
+
+<!ELEMENT UML:Message (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Message.interaction | UML:Message.predecessor |
+ UML:Message.message2 | UML:Message.message |
+ UML:Message.activator | UML:Message.action |
+ UML:Message.receiver | UML:Message.sender |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Message
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ interaction IDREFS #IMPLIED
+ predecessor IDREFS #IMPLIED
+ message2 IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ activator IDREFS #IMPLIED
+ action IDREFS #IMPLIED
+ receiver IDREFS #IMPLIED
+ sender IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Collaborations.ClassifierRole -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ClassifierRole.multiplicity (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:ClassifierRole.associationEndRole
+ (UML:AssociationEndRole)* >
+
+<!ELEMENT UML:ClassifierRole.namespace (UML:Collaboration)* >
+
+<!ELEMENT UML:ClassifierRole.message2 (UML:Message)* >
+
+<!ELEMENT UML:ClassifierRole.message (UML:Message)* >
+
+<!ELEMENT UML:ClassifierRole.base (UML:Classifier)* >
+
+<!ELEMENT UML:ClassifierRole.availableFeature (UML:Feature)* >
+
+<!ELEMENT UML:ClassifierRole (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:ClassifierRole.multiplicity |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ClassifierRole.associationEndRole |
+ UML:ClassifierRole.namespace |
+ UML:ClassifierRole.message2 |
+ UML:ClassifierRole.message |
+ UML:ClassifierRole.base |
+ UML:ClassifierRole.availableFeature |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:ClassifierRole
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ multiplicity CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ ModelElement.namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ associationEndRole IDREFS #IMPLIED
+ ClassifierRole.namespace IDREFS #IMPLIED
+ message2 IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ base IDREFS #IMPLIED
+ availableFeature IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Use_Cases.Actor -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Actor (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Actor
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Use_Cases.UseCase -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:UseCase.extensionPoint (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:UseCase (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:UseCase.extensionPoint | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:UseCase
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ extensionPoint CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Use_Cases.UseCaseInstance -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:UseCaseInstance (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Instance.linkEnd |
+ UML:Instance.messageInstance3 |
+ UML:Instance.messageInstance2 |
+ UML:Instance.messageInstance |
+ UML:Instance.attributeLink |
+ UML:Instance.classifier |
+ UML:ModelElement.taggedValue |
+ UML:Instance.slot)* >
+<!ATTLIST UML:UseCaseInstance
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ messageInstance3 IDREFS #IMPLIED
+ messageInstance2 IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ attributeLink IDREFS #IMPLIED
+ classifier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.StateMachine -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:StateMachine.context (UML:ModelElement)* >
+
+<!ELEMENT UML:StateMachine.submachineState (UML:SubmachineState)* >
+
+<!ELEMENT UML:StateMachine (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateMachine.context |
+ UML:StateMachine.submachineState |
+ UML:ModelElement.taggedValue |
+ UML:StateMachine.top |
+ UML:StateMachine.transitions)* >
+<!ATTLIST UML:StateMachine
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ context IDREFS #IMPLIED
+ submachineState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.Guard -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Guard.expression (UML:BooleanExpression) >
+
+<!ELEMENT UML:Guard.transition (UML:Transition)* >
+
+<!ELEMENT UML:Guard (UML:ModelElement.name |
+ UML:ModelElement.visibility | UML:Guard.expression |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Guard.transition |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Guard
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.StateVertex -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:StateVertex.outgoing (UML:Transition)* >
+
+<!ELEMENT UML:StateVertex.incoming (UML:Transition)* >
+
+<!ELEMENT UML:StateVertex.parent (UML:CompositeState)* >
+
+<!ELEMENT UML:StateVertex (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:StateVertex
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.Transition -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Transition.source (UML:StateVertex)* >
+
+<!ELEMENT UML:Transition.target (UML:StateVertex)* >
+
+<!ELEMENT UML:Transition.statemachine (UML:StateMachine)* >
+
+<!ELEMENT UML:Transition.state (UML:State)* >
+
+<!ELEMENT UML:Transition.trigger (UML:Event)* >
+
+<!ELEMENT UML:Transition (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Transition.source | UML:Transition.target |
+ UML:Transition.statemachine |
+ UML:Transition.state | UML:Transition.trigger |
+ UML:ModelElement.taggedValue |
+ UML:Transition.guard | UML:Transition.effect)* >
+<!ATTLIST UML:Transition
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ source IDREFS #IMPLIED
+ target IDREFS #IMPLIED
+ statemachine IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ trigger IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.PseudoState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:PseudoState.kind EMPTY >
+<!ATTLIST UML:PseudoState.kind
+ xmi.value (initial | deepHistory | shallowHistory | join | fork | branch | final) #REQUIRED
+>
+
+<!ELEMENT UML:PseudoState (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:PseudoState.kind | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:PseudoState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ kind (initial | deepHistory | shallowHistory | join | fork | branch | final) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.State -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:State.stateMachine (UML:StateMachine)* >
+
+<!ELEMENT UML:State.deferredEvent (UML:Event)* >
+
+<!ELEMENT UML:State.classifierInState (UML:ClassifierInState)* >
+
+<!ELEMENT UML:State (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing | UML:StateVertex.incoming |
+ UML:StateVertex.parent | UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition | UML:State.entry |
+ UML:State.exit)* >
+<!ATTLIST UML:State
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.CompositeState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:CompositeState.isConcurrent EMPTY >
+<!ATTLIST UML:CompositeState.isConcurrent
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:CompositeState (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:CompositeState.isConcurrent |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition |
+ UML:State.entry | UML:State.exit |
+ UML:CompositeState.substate)* >
+<!ATTLIST UML:CompositeState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isConcurrent (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.SimpleState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:SimpleState (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition |
+ UML:State.entry | UML:State.exit)* >
+<!ATTLIST UML:SimpleState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.SubmachineState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:SubmachineState.stateMachine (UML:StateMachine)* >
+
+<!ELEMENT UML:SubmachineState (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:SubmachineState.stateMachine |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition |
+ UML:State.entry | UML:State.exit)* >
+<!ATTLIST UML:SubmachineState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ State.stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ SubmachineState.stateMachine IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.Event -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Event.state (UML:State)* >
+
+<!ELEMENT UML:Event.transition (UML:Transition)* >
+
+<!ELEMENT UML:Event (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Event.state |
+ UML:Event.transition |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Event
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.SignalEvent -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:SignalEvent.signal (UML:Signal)* >
+
+<!ELEMENT UML:SignalEvent (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Event.state |
+ UML:Event.transition | UML:SignalEvent.signal |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:SignalEvent
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ signal IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.CallEvent -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:CallEvent.operation (UML:Operation)* >
+
+<!ELEMENT UML:CallEvent (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Event.state |
+ UML:Event.transition | UML:CallEvent.operation |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:CallEvent
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ operation IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.TimeEvent -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:TimeEvent.duration (UML:TimeExpression) >
+
+<!ELEMENT UML:TimeEvent (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:TimeEvent.duration | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Event.state |
+ UML:Event.transition |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:TimeEvent
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.ChangeEvent -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ChangeEvent.changeExpression (UML:BooleanExpression) >
+
+<!ELEMENT UML:ChangeEvent (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:ChangeEvent.changeExpression |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Event.state |
+ UML:Event.transition |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:ChangeEvent
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.ActivityModel -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ActivityModel (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateMachine.context |
+ UML:StateMachine.submachineState |
+ UML:ModelElement.taggedValue |
+ UML:StateMachine.top |
+ UML:StateMachine.transitions |
+ UML:ActivityModel.partition)* >
+<!ATTLIST UML:ActivityModel
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ context IDREFS #IMPLIED
+ submachineState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.Partition -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Partition.contents (UML:ModelElement)* >
+
+<!ELEMENT UML:Partition.activityModel (UML:ActivityModel)* >
+
+<!ELEMENT UML:Partition (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Partition.contents |
+ UML:Partition.activityModel |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Partition
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ contents IDREFS #IMPLIED
+ activityModel IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.ActionState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ActionState (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition |
+ UML:State.entry | UML:State.exit)* >
+<!ATTLIST UML:ActionState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.ObjectFlowState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ObjectFlowState.typeState (UML:ClassifierInState)* >
+
+<!ELEMENT UML:ObjectFlowState (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:ObjectFlowState.typeState |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition |
+ UML:State.entry | UML:State.exit)* >
+<!ATTLIST UML:ObjectFlowState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ typeState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.ClassifierInState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ClassifierInState.objectFlowState (UML:ObjectFlowState)* >
+
+<!ELEMENT UML:ClassifierInState.inState (UML:State)* >
+
+<!ELEMENT UML:ClassifierInState.type (UML:Classifier)* >
+
+<!ELEMENT UML:ClassifierInState (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ClassifierInState.objectFlowState |
+ UML:ClassifierInState.inState |
+ UML:ClassifierInState.type |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:ClassifierInState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ objectFlowState IDREFS #IMPLIED
+ inState IDREFS #IMPLIED
+ type IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.ActivityState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ActivityState (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:SubmachineState.stateMachine |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition |
+ UML:State.entry | UML:State.exit)* >
+<!ATTLIST UML:ActivityState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ State.stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ SubmachineState.stateMachine IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Foundation (UML:Auxiliary_Elements | UML:Core |
+ UML:Extension_Mechanisms | UML:Data_Types)* >
+<!ATTLIST UML:Foundation
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Auxiliary_Elements (UML:Refinement | UML:Usage |
+ UML:Trace | UML:Binding | UML:Node |
+ UML:Component | UML:Comment |
+ UML:ViewElement | UML:Presentation)* >
+<!ATTLIST UML:Auxiliary_Elements
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Core (UML:Element | UML:ModelElement | UML:Namespace |
+ UML:GeneralizableElement | UML:Classifier |
+ UML:Interface | UML:Class | UML:DataType |
+ UML:Feature | UML:StructuralFeature |
+ UML:BehavioralFeature | UML:Operation | UML:Method |
+ UML:Parameter | UML:Constraint | UML:Dependency |
+ UML:Generalization | UML:AssociationEnd |
+ UML:Association | UML:AssociationClass |
+ UML:Attribute)* >
+<!ATTLIST UML:Core
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Extension_Mechanisms (UML:TaggedValue | UML:Stereotype)* >
+<!ATTLIST UML:Extension_Mechanisms
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Data_Types (UML:Enumeration | UML:EnumerationLiteral |
+ UML:Primitive | UML:Structure |
+ UML:MultiplicityRange | UML:Geometry |
+ UML:GraphicMarker | UML:Mapping |
+ UML:Expression | UML:ProcedureExpression |
+ UML:ObjectSetExpression | UML:TimeExpression |
+ UML:BooleanExpression)* >
+<!ATTLIST UML:Data_Types
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Model_Management (UML:Package | UML:Subsystem | UML:Model |
+ UML:ElementReference)* >
+<!ATTLIST UML:Model_Management
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Behavioral_Elements (UML:Common_Behavior |
+ UML:Collaborations | UML:Use_Cases |
+ UML:State_Machines)* >
+<!ATTLIST UML:Behavioral_Elements
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Common_Behavior (UML:Request | UML:Signal | UML:Exception |
+ UML:Reception | UML:Argument |
+ UML:ActionSequence | UML:Action |
+ UML:CreateAction | UML:CallAction |
+ UML:LocalInvocation | UML:ReturnAction |
+ UML:SendAction | UML:UninterpretedAction |
+ UML:TerminateAction | UML:DestroyAction |
+ UML:Link | UML:LinkEnd | UML:Instance |
+ UML:AttributeLink | UML:Object |
+ UML:DataValue | UML:LinkObject |
+ UML:MessageInstance)* >
+<!ATTLIST UML:Common_Behavior
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Collaborations (UML:Collaboration | UML:Interaction |
+ UML:AssociationRole |
+ UML:AssociationEndRole | UML:Message |
+ UML:ClassifierRole)* >
+<!ATTLIST UML:Collaborations
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Use_Cases (UML:Actor | UML:UseCase |
+ UML:UseCaseInstance)* >
+<!ATTLIST UML:Use_Cases
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:State_Machines (UML:StateMachine | UML:Guard |
+ UML:StateVertex | UML:Transition |
+ UML:PseudoState | UML:State |
+ UML:CompositeState | UML:SimpleState |
+ UML:SubmachineState | UML:Event |
+ UML:SignalEvent | UML:CallEvent |
+ UML:TimeEvent | UML:ChangeEvent |
+ UML:ActivityModel | UML:Partition |
+ UML:ActionState | UML:ObjectFlowState |
+ UML:ClassifierInState |
+ UML:ActivityState)* >
+<!ATTLIST UML:State_Machines
+ %XMI.element.att;
+ %XMI.link.att;
+>
diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Array/run_test.pl b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Array/run_test.pl
new file mode 100755
index 00000000000..e619e3616cd
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Array/run_test.pl
@@ -0,0 +1,56 @@
+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;
+
+my $target = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
+
+my $idl = "test.idl";
+my $dtd = "../XMI.dtd";
+my $xmi = "generated.xmi";
+my $target_idl = $target->LocalFile ($idl);
+my $target_dtd = $target->LocalFile ($dtd);
+my $target_xmi = $target->LocalFile ($xmi);
+$target->DeleteFile($xmi);
+unlink $xmi;
+
+$I2X = $target->CreateProcess ("$ENV{'CIAO_ROOT'}/bin/tao_idl3_to_xmi",
+ "-f -xd $target_dtd -of $target_xmi $target_idl");
+
+$target_status = $I2X->SpawnWaitKill ($target->ProcessStartWaitInterval());
+
+if ($target_status != 0) {
+ print STDERR "ERROR: tao_idl3_to_xmi returned $target_status\n";
+ exit 1;
+}
+
+if ($target->GetFile ($xmi) == -1) {
+ print STDERR "ERROR: cannot retrieve file <$xmi>\n";
+ exit 1;
+}
+
+# search for right tag in generated xmi
+open (DAT, $xmi) || die ("ERROR: Could not open file <$xmi>!");
+@data=<DAT>;
+close (DAT);
+
+$num = grep (/<UML:Attribute/, @data);
+if ($num == 6) {
+ print "TEST OK. Correct tags in there.\n";
+} else {
+ print STDERR "ERROR: generated XMI does not contain a brace of UML:Attribute tags !\n\nXMI is:\n\n";
+ print "@data\n\n";
+ $status = 1;
+}
+
+$target->DeleteFile($xmi);
+unlink $xmi;
+
+exit $status;
diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Array/test.idl b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Array/test.idl
new file mode 100644
index 00000000000..548c7aa2073
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Array/test.idl
@@ -0,0 +1,20 @@
+// $Id$
+
+#ifndef TEST_IDL
+#define TEST_IDL
+
+module TestXMIArray {
+ typedef char CharArray [4][5];
+
+ struct A
+ {
+ CharArray bar;
+ };
+
+ struct B
+ {
+ char bar[3][2];
+ };
+};
+
+#endif // TEST_IDL
diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/File1.idl b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/File1.idl
new file mode 100644
index 00000000000..4c3659f4f48
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/File1.idl
@@ -0,0 +1,15 @@
+// $Id$
+
+#ifndef File_1_
+#define File_1_
+
+module File1 {
+
+ typedef sequence <short> Seq1;
+
+ typedef string type2;
+ typedef sequence <type2> Seq2;
+
+};
+
+#endif
diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/File2.idl b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/File2.idl
new file mode 100644
index 00000000000..f8c3106e352
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/File2.idl
@@ -0,0 +1,20 @@
+// $Id$
+
+#ifndef FILE_2_
+#define FILE_2_
+
+#include <File1.idl>
+
+module File2 {
+
+ interface Test {
+
+ void op1(in File1::Seq1 s1);
+
+ void op2(in File1::Seq2 s2);
+
+ };
+
+};
+
+#endif // FILE_2_
diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/run_test.pl b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/run_test.pl
new file mode 100755
index 00000000000..73300c2ccec
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/run_test.pl
@@ -0,0 +1,56 @@
+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;
+
+my $target = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
+
+my $idl = "File2.idl";
+my $dtd = "../XMI.dtd";
+my $xmi = "generated.xmi";
+my $target_idl = $target->LocalFile ($idl);
+my $target_dtd = $target->LocalFile ($dtd);
+my $target_xmi = $target->LocalFile ($xmi);
+$target->DeleteFile($xmi);
+unlink $xmi;
+
+$I2X = $target->CreateProcess ("$ENV{'CIAO_ROOT'}/bin/tao_idl3_to_xmi",
+ "-f -xd $target_dtd -of $target_xmi $target_idl");
+
+$target_status = $I2X->SpawnWaitKill ($target->ProcessStartWaitInterval());
+
+if ($target_status != 0) {
+ print STDERR "ERROR: tao_idl3_to_xmi returned $target_status\n";
+ exit 1;
+}
+
+if ($target->GetFile ($xmi) == -1) {
+ print STDERR "ERROR: cannot retrieve file <$xmi>\n";
+ exit 1;
+}
+
+# search for right tag in generated xmi
+open (DAT, $xmi) || die ("ERROR: Could not open file <$xmi>!");
+@data=<DAT>;
+close (DAT);
+
+$num = grep (/<UML:Attribute/, @data);
+if ($num == 2) {
+ print "TEST OK. Correct tags in there.\n";
+} else {
+ print STDERR "ERROR: generated XMI does not contain a brace of UML:Attribute tags !\n\nXMI is:\n\n";
+ print "@data\n\n";
+ $status = 1;
+}
+
+$target->DeleteFile($xmi);
+unlink $xmi;
+
+exit $status;
diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Module_Reopen/run_test.pl b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Module_Reopen/run_test.pl
new file mode 100755
index 00000000000..011b44803f4
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Module_Reopen/run_test.pl
@@ -0,0 +1,79 @@
+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;
+
+my $target = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
+
+my $idl = "test.idl";
+my $dtd = "../XMI.dtd";
+my $xmi = "generated.xmi";
+my $target_idl = $target->LocalFile ($idl);
+my $target_dtd = $target->LocalFile ($dtd);
+my $target_xmi = $target->LocalFile ($xmi);
+$target->DeleteFile($xmi);
+unlink $xmi;
+
+$I2X = $target->CreateProcess ("$ENV{'CIAO_ROOT'}/bin/tao_idl3_to_xmi",
+ "-f -xd $target_dtd -of $target_xmi $target_idl");
+
+$target_status = $I2X->SpawnWaitKill ($target->ProcessStartWaitInterval());
+
+if ($target_status != 0) {
+ print STDERR "ERROR: tao_idl3_to_xmi returned $target_status\n";
+ exit 1;
+}
+
+if ($target->GetFile ($xmi) == -1) {
+ print STDERR "ERROR: cannot retrieve file <$xmi>\n";
+ exit 1;
+}
+
+$A_occurs = 0;
+$A_indent = "";
+$A_line = "";
+$A_xmiid = "one";
+$B_occurs = 0;
+$B_indent = "";
+$B_line = "";
+$B_ns = "two";
+@data = ();
+
+# search for right tag in generated xmi
+open (DAT, $xmi) || die ("ERROR: Could not open file <$xmi>!");
+while ($line = <DAT>) {
+ push @data, $line;
+ if ($line =~ /(\s*)<UML:Package name=\"A\".*xmi\.id=\"([^\"]*)\"/) {
+ ++$A_occurs;
+ $A_indent = $1;
+ $A_xmiid = $2 unless ($2 eq "");
+ $A_line = $line;
+ } elsif ($line =~ /(\s*)<UML:Package name=\"B\".*namespace=\"([^\"]*)\"/) {
+ ++$B_occurs;
+ $B_indent = $1;
+ $B_ns = $2 unless ($2 eq "");
+ $B_line = $line;
+ }
+}
+close (DAT);
+
+if ($A_occurs == 1 && $B_occurs == 1 && $A_xmiid eq $B_ns &&
+ length ($A_indent) < length ($B_indent)) {
+ print "TEST OK. Correct tags are there.\n$A_line$B_line";
+} else {
+ print STDERR "ERROR: generated XMI does is not correct!\n\nXMI is:\n\n";
+ print "@data\n\n";
+ $status = 1;
+}
+
+$target->DeleteFile($xmi);
+unlink $xmi;
+
+exit $status;
diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Module_Reopen/test.idl b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Module_Reopen/test.idl
new file mode 100644
index 00000000000..9ec8562abb9
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Module_Reopen/test.idl
@@ -0,0 +1,43 @@
+// $Id$
+
+#ifndef TEST_IDL
+#define TEST_IDL
+
+module A {
+ module C {
+ interface B_itf {
+ };
+
+ interface C_itf {
+ };
+
+ eventtype E_evt {
+ };
+
+ eventtype F_evt {
+ };
+
+ component B_comp {
+ provides C_itf c_facet;
+ consumes E_evt e_consumer;
+ };
+ };
+};
+
+module A {
+ module B {
+ module C {
+ module D {
+ component A_comp : ::A::C::B_comp {
+ provides ::A::C::B_itf a_facet;
+ consumes ::A::C::F_evt f_consumer;
+ };
+
+ home A_home manages ::A::B::C::D::A_comp {
+ };
+ };
+ };
+ };
+};
+
+#endif // TEST_IDL
diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Native/run_test.pl b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Native/run_test.pl
new file mode 100755
index 00000000000..112c65967cd
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Native/run_test.pl
@@ -0,0 +1,63 @@
+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;
+
+my $target = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
+
+my $idl = "test.idl";
+my $dtd = "../XMI.dtd";
+my $xmi = "generated.xmi";
+my $target_idl = $target->LocalFile ($idl);
+my $target_dtd = $target->LocalFile ($dtd);
+my $target_xmi = $target->LocalFile ($xmi);
+$target->DeleteFile($xmi);
+unlink $xmi;
+
+$I2X = $target->CreateProcess ("$ENV{'CIAO_ROOT'}/bin/tao_idl3_to_xmi",
+ "-f -xd $target_dtd -of $target_xmi $target_idl");
+
+$target_status = $I2X->SpawnWaitKill ($target->ProcessStartWaitInterval());
+
+if ($target_status != 0) {
+ print STDERR "ERROR: tao_idl3_to_xmi returned $target_status\n";
+ exit 1;
+}
+
+if ($target->GetFile ($xmi) == -1) {
+ print STDERR "ERROR: cannot retrieve file <$xmi>\n";
+ exit 1;
+}
+
+$native_correct = 0;
+@data = ();
+
+# search for right tag in generated xmi
+open (DAT, $xmi) || die ("ERROR: Could not open file <$xmi>!");
+while ($line = <DAT>) {
+ push @data, $line;
+ if ($line =~ /name\s*=\s*\"CORBAnative\"/) {
+ $native_correct = 1;
+ }
+}
+close (DAT);
+
+if ($native_correct) {
+ print "TEST OK. Correct tags are there.\n";
+} else {
+ print STDERR "ERROR: generated XMI is not correct!\n\nXMI is:\n\n";
+ print "@data\n\n";
+ $status = 1;
+}
+
+$target->DeleteFile($xmi);
+unlink $xmi;
+
+exit $status;
diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Native/test.idl b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Native/test.idl
new file mode 100644
index 00000000000..f3d97257e7e
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Native/test.idl
@@ -0,0 +1,6 @@
+// $Id$
+
+#ifndef TEST_IDL
+#define TEST_IDL
+
+#endif // TEST_IDL
diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/run_test.pl b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/run_test.pl
new file mode 100755
index 00000000000..0285c156fbb
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/run_test.pl
@@ -0,0 +1,56 @@
+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;
+
+my $target = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
+
+my $idl = "test.idl";
+my $dtd = "../XMI.dtd";
+my $xmi = "generated.xmi";
+my $target_idl = $target->LocalFile ($idl);
+my $target_dtd = $target->LocalFile ($dtd);
+my $target_xmi = $target->LocalFile ($xmi);
+$target->DeleteFile($xmi);
+unlink $xmi;
+
+$I2X = $target->CreateProcess ("$ENV{'CIAO_ROOT'}/bin/tao_idl3_to_xmi",
+ "-f -xd $target_dtd -of $target_xmi $target_idl");
+
+$target_status = $I2X->SpawnWaitKill ($target->ProcessStartWaitInterval());
+
+if ($target_status != 0) {
+ print STDERR "ERROR: tao_idl3_to_xmi returned $target_status\n";
+ exit 1;
+}
+
+if ($target->GetFile ($xmi) == -1) {
+ print STDERR "ERROR: cannot retrieve file <$xmi>\n";
+ exit 1;
+}
+
+# search for right tag in generated xmi
+open (DAT, $xmi) || die ("ERROR: Could not open file <$xmi>!");
+@data=<DAT>;
+close (DAT);
+
+$num = grep (/<UML:Attribute/, @data);
+if ($num == 8) {
+ print "TEST OK. Correct tags in there.\n";
+} else {
+ print STDERR "ERROR: generated XMI does not contain a brace of UML:Attribute tags !\n\nXMI is:\n\n";
+ print "@data\n\n";
+ $status = 1;
+}
+
+$target->DeleteFile($xmi);
+unlink $xmi;
+
+exit $status;
diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/test.idl b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/test.idl
new file mode 100644
index 00000000000..1fced580bc2
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/test.idl
@@ -0,0 +1,25 @@
+// $Id$
+
+#ifndef TEST_IDL
+#define TEST_IDL
+
+module TestXMISequence {
+ typedef sequence<char> SeqChar;
+ typedef sequence<char, 10> SeqChar10;
+
+ struct A {
+ sequence<char> field;
+ };
+ struct A10 {
+ sequence<char, 10> field;
+ };
+
+ struct B {
+ SeqChar field;
+ };
+ struct B10 {
+ SeqChar10 field;
+ };
+};
+
+#endif // TEST_IDL
diff --git a/modules/CIAO/tests/IDL_Test/Cornucopia/Cornucopia.idl b/modules/CIAO/tests/IDL_Test/Cornucopia/Cornucopia.idl
new file mode 100644
index 00000000000..f94418f9fe7
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Cornucopia/Cornucopia.idl
@@ -0,0 +1,134 @@
+// $Id$
+/**
+ * @file Cornucopia.idl
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ *
+ * Tests TAO_IDL generation of CIAO servant, executor IDL
+ * and executor implementation stencil for a variety of
+ * IDL3 constructs.
+ */
+
+#include <Components.idl>
+
+module Supported
+{
+ interface IfacePawPaw
+ {
+ long paw_paw_op (out short spew);
+ attribute boolean inbred;
+ };
+
+ interface IfaceMom : IfacePawPaw
+ {
+ readonly attribute wchar uni_tag;
+ IfacePawPaw get_paw_paw ();
+ };
+
+ interface IfaceDad : IfacePawPaw
+ {
+ attribute string msg;
+ long long get_big_int (in IfacePawPaw genealogy);
+ };
+
+ interface Iface : IfaceMom, IfaceDad
+ {
+ attribute wstring uni_uuid;
+ void supported_op (inout unsigned long index);
+ };
+};
+
+interface pface {};
+interface uface {};
+interface umface {};
+
+abstract interface IfAb
+{
+ long op (out long value);
+};
+
+interface IfConcr : IfAb
+{
+ long concr_op (out long value);
+};
+
+valuetype pkey : Components::PrimaryKeyBase
+{
+ public string info;
+};
+
+eventtype pubtype {};
+eventtype emittype {};
+eventtype eattype {};
+
+exception BadGet {};
+exception BadSet {};
+exception Whatever {};
+
+module BaseMod
+{
+component CompBase supports Supported::Iface
+ {
+ attribute octet the_byte
+ getraises (BadGet, Whatever) setraises (BadSet);
+ };
+};
+
+enum Color
+{
+ RED,
+ WHITE,
+ BLUE
+};
+
+module DerivedMod
+{
+ porttype CombinedPort
+ {
+ provides pface pface_provider;
+ uses uface uface_user;
+ uses multiple umface umface_umuser;
+ };
+
+ component CompCombinedPort
+ {
+ port CombinedPort cc;
+ };
+
+ component MirrorCompCombinedPort
+ {
+ mirrorport CombinedPort cc;
+ };
+
+ component CompDerived : BaseMod::CompBase
+ {
+ attribute Color stripe;
+ provides pface pface_provider;
+ uses uface uface_user;
+ uses multiple umface umface_umuser;
+ publishes pubtype pubtype_publisher;
+ emits emittype emittype_emitter;
+ consumes eattype eattype_consumer;
+ };
+};
+
+module HomeMod
+{
+ home CompBaseHome supports Supported::Iface manages BaseMod::CompBase
+ {
+ readonly attribute Color shade;
+ pface fetch_managed_ports (out uface recep);
+ factory base_init (in string id, in unsigned short uni_raw)
+ raises (Whatever);
+ finder bathroom_sink ();
+ };
+
+ home CompDerivedHome : CompBaseHome manages DerivedMod::CompDerived
+ {
+ exception ch_except {};
+ void ch_op () raises (ch_except);
+ factory def_init ();
+ finder kitchen_sink (in string uid, in pkey key, in boolean all)
+ raises (ch_except);
+ };
+};
+
diff --git a/modules/CIAO/tests/IDL_Test/Cornucopia/Cornucopia.mpc b/modules/CIAO/tests/IDL_Test/Cornucopia/Cornucopia.mpc
new file mode 100644
index 00000000000..5053203513f
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Cornucopia/Cornucopia.mpc
@@ -0,0 +1,129 @@
+// $Id$
+
+project(Cornucopia_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=CORNUCOPIA_STUB_Export \
+ -Wb,stub_export_include=Cornucopia_stub_export.h \
+ -Wb,skel_export_macro=CORNUCOPIA_SKEL_Export \
+ -Wb,skel_export_include=Cornucopia_skel_export.h \
+ -Wb,svnt_export_macro=CORNUCOPIA_SVNT_Export \
+ -Wb,svnt_export_include=Cornucopia_svnt_export.h \
+ -Wb,exec_export_macro=CORNUCOPIA_EXEC_Export \
+ -Wb,exec_export_include=Cornucopia_exec_export.h \
+ -Gex -Gxhst -Gxhsk -Gxhsv -Gxhex
+
+ IDL_Files {
+ Cornucopia.idl >> Cornucopia_stub_export.h Cornucopia_skel_export.h Cornucopia_svnt_export.h Cornucopia_exec_export.h
+ }
+}
+
+project(Cornucopia_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ after += Cornucopia_idl_gen
+ idlflags += -Wb,export_macro=CORNUCOPIA_EXEC_Export \
+ -Wb,export_include=Cornucopia_exec_export.h \
+ -SS
+
+ IDL_Files {
+ CornucopiaE.idl
+ }
+}
+
+project(Cornucopia_stub) : ccm_stub {
+ after += Cornucopia_idl_gen
+
+ sharedname = Cornucopia_stub
+ dynamicflags = CORNUCOPIA_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ CornucopiaC.cpp
+ }
+
+ Header_Files {
+ CornucopiaC.h
+ Cornucopia_stub_export.h
+ }
+
+ Inline_Files {
+ CornucopiaC.inl
+ }
+}
+
+project(Cornucopia_exec) : ciao_executor {
+ after += Cornucopia_lem_gen Cornucopia_stub
+ sharedname = Cornucopia_exec
+ libs += Cornucopia_stub
+
+ dynamicflags = CORNUCOPIA_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ CornucopiaEC.cpp
+ Cornucopia_exec.cpp
+ }
+
+ Header_Files {
+ CornucopiaEC.h
+ Cornucopia_exec.h
+ Cornucopia_exec_export.h
+ }
+
+ Inline_Files {
+ CornucopiaEC.inl
+ }
+}
+
+project(Cornucopia_skel) : ccm_svnt {
+ after += Cornucopia_stub
+ sharedname = Cornucopia_skel
+ libs += Cornucopia_stub
+
+ dynamicflags = CORNUCOPIA_SKEL_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ CornucopiaS.cpp
+ }
+
+ Header_Files {
+ CornucopiaS.h
+ Cornucopia_skel_export.h
+ }
+
+ Inline_Files {
+ CornucopiaS.inl
+ }
+}
+
+project(Cornucopia_svnt) : ciao_servant {
+ after += Cornucopia_exec Cornucopia_skel Cornucopia_stub
+ sharedname = Cornucopia_svnt
+ libs += Cornucopia_exec \
+ Cornucopia_skel \
+ Cornucopia_stub
+
+ dynamicflags = CORNUCOPIA_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Cornucopia_svnt.cpp
+ }
+
+ Header_Files {
+ Cornucopia_svnt.h
+ Cornucopia_svnt_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
diff --git a/modules/CIAO/tests/IDL_Test/Cornucopia/README b/modules/CIAO/tests/IDL_Test/Cornucopia/README
new file mode 100644
index 00000000000..476030cd33d
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Cornucopia/README
@@ -0,0 +1,30 @@
+
+Cornucopia Code Generation Test
+===============================
+
+This test is for correct code generation, the various
+artifacts compile and link, but there is no executable.
+
+The IDL file in this directory was put together to have
+a wide variety of IDL3 constructs, and some features
+not yet present in other CIAO tests and examples:
+
+- inheritance of operations and attributes in:
+ - facet interfaces
+ - supported interfaces
+ - homes
+ - components (attributes only)
+
+- inheritance of factory and finder operations
+
+- raises, getraises and setraises constructs
+
+- separate scoping for supported interfaces,
+ port interfaces, derived components, and homes
+
+- skeleton and servant generated files in separate
+ builds/libraries
+
+
+Jeff Parsons
+June 16, 2009
diff --git a/modules/CIAO/tests/IDL_Test/Included_Component/IC_Bar.idl b/modules/CIAO/tests/IDL_Test/Included_Component/IC_Bar.idl
new file mode 100644
index 00000000000..57dff3e58b0
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Included_Component/IC_Bar.idl
@@ -0,0 +1,8 @@
+// $Id$
+
+#include "IC_Foo.idl"
+#include "IC_FooE.idl"
+
+component Bar
+{
+};
diff --git a/modules/CIAO/tests/IDL_Test/Included_Component/IC_Bar.mpc b/modules/CIAO/tests/IDL_Test/Included_Component/IC_Bar.mpc
new file mode 100644
index 00000000000..f8ce62bac16
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Included_Component/IC_Bar.mpc
@@ -0,0 +1,105 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl IC_Bar"
+
+project(IC_Bar_idl_gen) : componentidldefaults {
+ after += IC_Foo_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=IC_BAR_STUB_Export \
+ -Wb,stub_export_include=IC_Bar_stub_export.h \
+ -Wb,skel_export_macro=IC_BAR_SVNT_Export \
+ -Wb,skel_export_include=IC_Bar_svnt_export.h \
+ -Wb,exec_export_macro=IC_BAR_EXEC_Export \
+ -Wb,exec_export_include=IC_Bar_exec_export.h
+
+ IDL_Files {
+ IC_Bar.idl
+ }
+}
+
+project(IC_Bar_lem_gen) : ciaoidldefaults {
+ after += IC_Bar_idl_gen
+ custom_only = 1
+ idlflags += -Wb,export_macro=IC_BAR_EXEC_Export \
+ -Wb,export_include=IC_Bar_exec_export.h \
+ -SS
+
+ IDL_Files {
+ IC_BarE.idl
+ }
+}
+
+project(IC_Bar_stub) : ccm_stub {
+ after += IC_Bar_idl_gen IC_Foo_lem_gen
+ libs +=
+
+ sharedname = IC_Bar_stub
+ dynamicflags = IC_BAR_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ IC_BarC.cpp
+ }
+
+ Header_Files {
+ IC_BarC.h
+ IC_Bar_stub_export.h
+ }
+
+ Inline_Files {
+ IC_BarC.inl
+ }
+}
+
+project(IC_Bar_exec) : ciao_executor {
+ sharedname = IC_Bar_exec
+ after += IC_Bar_lem_gen IC_Bar_stub
+ libs += IC_Bar_stub
+
+ dynamicflags = IC_BAR_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ IC_BarEC.cpp
+ }
+
+ Header_Files {
+ IC_BarEC.h
+ IC_Bar_exec_export.h
+ }
+
+ Inline_Files {
+ IC_BarEC.inl
+ }
+}
+
+project(IC_Bar_svnt) : ciao_servant {
+ sharedname = IC_Bar_svnt
+ after += IC_Bar_exec IC_Foo_exec IC_Bar_stub IC_Foo_svnt IC_Foo_stub
+ libs += IC_Bar_exec IC_Foo_exec IC_Bar_stub IC_Foo_svnt IC_Foo_stub
+
+ dynamicflags = IC_BAR_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ IC_BarS.cpp
+ IC_Bar_svnt.cpp
+ }
+
+ Header_Files {
+ IC_BarS.h
+ IC_Bar_svnt.h
+ IC_Bar_svnt_export.h
+ }
+
+ Inline_Files {
+ IC_BarS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/tests/IDL_Test/Included_Component/IC_Foo.idl b/modules/CIAO/tests/IDL_Test/Included_Component/IC_Foo.idl
new file mode 100644
index 00000000000..13d2785b3d2
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Included_Component/IC_Foo.idl
@@ -0,0 +1,12 @@
+// $Id$
+#ifndef IC_Foo_IDL
+#define IC_Foo_IDL
+
+#include <Components.idl>
+
+component Foo
+{
+};
+
+
+#endif
diff --git a/modules/CIAO/tests/IDL_Test/Included_Component/IC_Foo.mpc b/modules/CIAO/tests/IDL_Test/Included_Component/IC_Foo.mpc
new file mode 100644
index 00000000000..7ab7e183409
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Included_Component/IC_Foo.mpc
@@ -0,0 +1,104 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl IC_Foo"
+
+project(IC_Foo_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=IC_FOO_STUB_Export \
+ -Wb,stub_export_include=IC_Foo_stub_export.h \
+ -Wb,skel_export_macro=IC_FOO_SVNT_Export \
+ -Wb,skel_export_include=IC_Foo_svnt_export.h \
+ -Wb,exec_export_macro=IC_FOO_EXEC_Export \
+ -Wb,exec_export_include=IC_Foo_exec_export.h
+
+ IDL_Files {
+ IC_Foo.idl
+ }
+}
+
+project(IC_Foo_lem_gen) : ciaoidldefaults {
+ after += IC_Foo_idl_gen
+ custom_only = 1
+ idlflags += -Wb,export_macro=IC_FOO_EXEC_Export \
+ -Wb,export_include=IC_Foo_exec_export.h \
+ -SS
+
+ IDL_Files {
+ IC_FooE.idl
+ }
+}
+
+project(IC_Foo_stub) : ccm_stub {
+ after += IC_Foo_idl_gen
+ libs +=
+
+ sharedname = IC_Foo_stub
+ dynamicflags = IC_FOO_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ IC_FooC.cpp
+ }
+
+ Header_Files {
+ IC_FooC.h
+ IC_Foo_stub_export.h
+ }
+
+ Inline_Files {
+ IC_FooC.inl
+ }
+}
+
+project(IC_Foo_exec) : ciao_executor {
+ sharedname = IC_Foo_exec
+ after += IC_Foo_lem_gen IC_Foo_stub
+ libs += IC_Foo_stub
+
+ dynamicflags = IC_FOO_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ IC_FooEC.cpp
+ }
+
+ Header_Files {
+ IC_FooEC.h
+ IC_Foo_exec_export.h
+ }
+
+ Inline_Files {
+ IC_FooEC.inl
+ }
+}
+
+project(IC_Foo_svnt) : ciao_servant {
+ sharedname = IC_Foo_svnt
+ after += IC_Foo_exec
+ libs += IC_Foo_stub IC_Foo_exec
+
+ dynamicflags = IC_FOO_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ IC_FooS.cpp
+ IC_Foo_svnt.cpp
+ }
+
+ Header_Files {
+ IC_FooS.h
+ IC_Foo_svnt.h
+ IC_Foo_svnt_export.h
+ }
+
+ Inline_Files {
+ IC_FooS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Bar.idl b/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Bar.idl
new file mode 100644
index 00000000000..94804cd867b
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Bar.idl
@@ -0,0 +1,9 @@
+// $Id$
+
+#include <Components.idl>
+#include "IhC_Foo.idl"
+#include "IhC_FooE.idl"
+
+component Bar : Foo
+{
+};
diff --git a/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Bar.mpc b/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Bar.mpc
new file mode 100644
index 00000000000..2e73abdfef6
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Bar.mpc
@@ -0,0 +1,137 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p IhC_Foo IhC_Bar"
+
+project(IhC_Foo_IhC_Bar_idl_gen) : componentidldefaults {
+ requires += dummy_label
+ custom_only = 1
+ after += IhC_Foo_idl_gen
+ idlflags += -Wb,stub_export_macro=IHC_BAR_STUB_Export \
+ -Wb,stub_export_include=IhC_Bar_stub_export.h \
+ -Wb,skel_export_macro=IHC_BAR_SVNT_Export \
+ -Wb,skel_export_include=IhC_Bar_svnt_export.h \
+ -Wb,exec_export_macro=IHC_BAR_EXEC_Export \
+ -Wb,exec_export_include=IhC_Bar_exec_export.h
+
+ IDL_Files {
+ IhC_Bar.idl
+ }
+}
+
+project(IhC_Foo_IhC_Bar_lem_gen) : ciaoidldefaults {
+ requires += dummy_label
+ after += IhC_Foo_IhC_Bar_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=IHC_BAR_LEM_STUB_Export \
+ -Wb,stub_export_include=IhC_Bar_lem_stub_export.h \
+ -SS -Gxhst
+
+ IDL_Files {
+ IhC_BarE.idl
+ }
+}
+
+project(IhC_Foo_IhC_Bar_lem_stub) : ccm_svnt {
+ requires += dummy_label
+ after += IhC_Foo_IhC_Bar_lem_gen IhC_Foo_IhC_Bar_stub IhC_Foo_stub
+ libs += IhC_Foo_stub IhC_Bar_stub
+
+ sharedname = IhC_Bar_lem_stub
+ dynamicflags = IHC_BAR_LEM_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ IhC_BarEC.cpp
+ }
+
+ Header_Files {
+ IhC_BarEC.h
+ IhC_Bar_lem_stub_export.h
+ }
+
+ Inline_Files {
+ IhC_BarEC.inl
+ }
+}
+
+project(IhC_Foo_IhC_Bar_stub) : ccm_stub {
+ requires += dummy_label
+ after += IhC_Foo_IhC_Bar_idl_gen IhC_Foo_stub
+ libs += IhC_Foo_stub
+
+ sharedname = IhC_Bar_stub
+ dynamicflags = IHC_BAR_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ IhC_BarC.cpp
+ }
+
+ Header_Files {
+ IhC_BarC.h
+ IhC_Bar_stub_export.h
+ }
+
+ Inline_Files {
+ IhC_BarC.inl
+ }
+}
+
+project(IhC_Foo_IhC_Bar_exec) : ciao_executor {
+ requires += dummy_label
+ after += IhC_Foo_IhC_Bar_lem_stub IhC_Foo_IhC_Bar_stub
+ sharedname = IhC_Bar_exec
+ libs += IhC_Bar_stub IhC_Bar_lem_stub IhC_Foo_stub
+
+ dynamicflags = IHC_BAR_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ IhC_Bar_exec.cpp
+ }
+
+ Header_Files {
+ IhC_Bar_exec.h
+ IhC_Bar_exec_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+
+project(IhC_Foo_IhC_Bar_svnt) : ciao_servant {
+ requires += dummy_label
+ after += IhC_Foo_skel IhC_Foo_IhC_Bar_lem_stub
+ sharedname = IhC_Bar_svnt
+ libs += IhC_Bar_stub IhC_Bar_lem_stub \
+ IhC_Foo_skel \
+ IhC_Foo_stub
+
+ dynamicflags = IHC_BAR_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ IhC_BarS.cpp
+ IhC_Bar_svnt.cpp
+ }
+
+ Header_Files {
+ IhC_BarS.h
+ IhC_Bar_svnt.h
+ IhC_Bar_svnt_export.h
+ }
+
+ Inline_Files {
+ IhC_BarS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Foo.idl b/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Foo.idl
new file mode 100644
index 00000000000..34a547ccde9
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Foo.idl
@@ -0,0 +1,13 @@
+// $Id$
+
+#include <Components.idl>
+
+interface foo_intf
+{
+};
+
+
+component Foo
+{
+ provides foo_intf foo_port;
+};
diff --git a/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Foo.mpc b/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Foo.mpc
new file mode 100644
index 00000000000..133b5352e00
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Foo.mpc
@@ -0,0 +1,132 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl IhC_Foo"
+
+project(IhC_Foo_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=IHC_FOO_STUB_Export \
+ -Wb,stub_export_include=IhC_Foo_stub_export.h \
+ -Wb,skel_export_macro=IHC_FOO_SVNT_Export \
+ -Wb,skel_export_include=IhC_Foo_svnt_export.h \
+ -Wb,exec_export_macro=IHC_FOO_EXEC_Export \
+ -Wb,exec_export_include=IhC_Foo_exec_export.h -Gex
+
+ IDL_Files {
+ IhC_Foo.idl
+ }
+}
+
+project(IhC_Foo_lem_gen) : ciaoidldefaults {
+ after += IhC_Foo_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=IHC_FOO_LEM_STUB_Export \
+ -Wb,stub_export_include=IhC_Foo_lem_stub_export.h \
+ -SS -Gxhst
+
+ IDL_Files {
+ IhC_FooE.idl
+ }
+}
+
+project(IhC_Foo_lem_stub) : ccm_svnt {
+ after += IhC_Foo_lem_gen IhC_Foo_stub
+ libs += IhC_Foo_stub
+
+
+ sharedname = IhC_Foo_lem_stub
+ dynamicflags = IHC_FOO_LEM_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ IhC_FooEC.cpp
+ }
+
+ Header_Files {
+ IhC_FooEC.h
+ IhC_Foo_lem_stub_export.h
+ }
+
+ Inline_Files {
+ IhC_FooEC.inl
+ }
+}
+
+project(IhC_Foo_stub) : ccm_stub {
+ after += IhC_Foo_idl_gen
+ libs +=
+
+
+ sharedname = IhC_Foo_stub
+ dynamicflags = IHC_FOO_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ IhC_FooC.cpp
+ }
+
+ Header_Files {
+ IhC_FooC.h
+ IhC_Foo_stub_export.h
+ }
+
+ Inline_Files {
+ IhC_FooC.inl
+ }
+}
+
+project(IhC_Foo_exec) : ciao_executor {
+ after += IhC_Foo_lem_stub IhC_Foo_stub
+ sharedname = IhC_Foo_exec
+ libs += IhC_Foo_stub IhC_Foo_lem_stub
+
+
+ dynamicflags = IHC_FOO_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ IhC_Foo_exec.cpp
+ }
+
+ Header_Files {
+ IhC_Foo_exec.h
+ IhC_Foo_exec_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+
+project(IhC_Foo_svnt) : ciao_servant {
+ after += IhC_Foo_lem_stub
+ sharedname = IhC_Foo_svnt
+ libs += IhC_Foo_stub IhC_Foo_lem_stub
+
+
+ dynamicflags = IHC_FOO_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ IhC_FooS.cpp
+ IhC_Foo_svnt.cpp
+ }
+
+ Header_Files {
+ IhC_FooS.h
+ IhC_Foo_svnt.h
+ IhC_Foo_svnt_export.h
+ }
+
+ Inline_Files {
+ IhC_FooS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/tests/IDL_Test/Keywords/Keyword_Clash.idl b/modules/CIAO/tests/IDL_Test/Keywords/Keyword_Clash.idl
new file mode 100644
index 00000000000..d78b200cddd
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Keywords/Keyword_Clash.idl
@@ -0,0 +1,110 @@
+// $Id$
+/**
+ * @file Keyword_Clash.idl
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ *
+ * Tests handling of C++ keywords and escaped identifiers (IDL
+ * keywords) in generating CIAO servant code and executor IDL.
+ */
+
+#ifndef KEYWORD_CLASH_IDL
+#define KEYWORD_CLASH_IDL
+
+#include "Components.idl"
+
+module _interface
+{
+ interface _attribute
+ {
+ exception _inout {};
+ };
+};
+
+module static
+{
+ module _readonly
+ {
+ module protected
+ {
+ interface virtual
+ {
+ };
+
+ interface _port
+ {
+ };
+
+ interface _alias
+ {
+ };
+
+ interface _mirrorport
+ {
+ };
+
+ interface _porttype
+ {
+ };
+
+ interface _connector
+ {
+ };
+
+ eventtype _eventtype
+ {
+ private virtual _public;
+ };
+ };
+ };
+};
+
+eventtype _eventtype
+{
+ public string _factory;
+ private string friend;
+ public string _wstring;
+};
+
+interface _oneway {};
+
+module _component
+{
+ component _out supports static::_readonly::protected::virtual
+ {
+ provides _interface::_attribute _local;
+ provides _oneway else;
+ provides static::_readonly::protected::virtual while;
+
+ attribute long _abstract;
+
+ uses multiple _interface::_attribute if;
+ uses multiple _oneway mutable;
+ uses multiple static::_readonly::protected::virtual register;
+
+ uses _interface::_attribute _union;
+ uses _oneway _struct;
+ uses static::_readonly::protected::virtual volatile;
+
+ publishes _eventtype _object;
+ publishes static::_readonly::protected::_eventtype do;
+
+ consumes _eventtype _const;
+ consumes static::_readonly::protected::_eventtype const_cast;
+
+ emits _eventtype class;
+ emits static::_readonly::protected::_eventtype delete;
+ };
+
+ home new manages _out
+ {
+ static::_readonly::protected::virtual
+ catch (
+ inout static::_readonly::protected::_eventtype try)
+ raises (_interface::_attribute::_inout);
+
+ finder continue (in _interface::_attribute _inout);
+ };
+};
+
+#endif /* KEYWORD_CLASH_IDL */
+
diff --git a/modules/CIAO/tests/IDL_Test/Keywords/Keywords.mpc b/modules/CIAO/tests/IDL_Test/Keywords/Keywords.mpc
new file mode 100644
index 00000000000..5778561bf53
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Keywords/Keywords.mpc
@@ -0,0 +1,109 @@
+// -*- MPC -*-
+// $Id$
+
+project(Keyword_Clash_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=KEYWORD_CLASH_STUB_Export \
+ -Wb,stub_export_include=Keyword_Clash_stub_export.h \
+ -Wb,skel_export_macro=KEYWORD_CLASH_SVNT_Export \
+ -Wb,skel_export_include=Keyword_Clash_svnt_export.h \
+ -Wb,exec_export_macro=KEYWORD_CLASH_EXEC_Export \
+ -Wb,exec_export_include=Keyword_Clash_exec_export.h \
+ -Gex -Gxhst -Gxhsk -Gxhex
+
+ IDL_Files {
+ Keyword_Clash.idl
+ }
+}
+
+project(Keyword_Clash_lem_gen) : ciaoidldefaults {
+ after += Keyword_Clash_idl_gen
+ custom_only = 1
+ idlflags += -Wb,export_macro=KEYWORD_CLASH_EXEC_Export \
+ -Wb,export_include=Keyword_Clash_exec_export.h \
+ -SS
+
+ IDL_Files {
+ Keyword_ClashE.idl
+ }
+}
+
+project(Keyword_Clash_stub) : ccm_stub {
+ avoids += mfc
+ after += Keyword_Clash_idl_gen
+ sharedname = Keyword_Clash_stub
+ dynamicflags = KEYWORD_CLASH_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Keyword_ClashC.cpp
+ }
+
+ Header_Files {
+ Keyword_ClashC.h
+ Keyword_Clash_stub_export.h
+ }
+
+ Inline_Files {
+ Keyword_ClashC.inl
+ }
+}
+
+project(Keyword_Clash_exec) : ciao_executor {
+ avoids += mfc
+ after += Keyword_Clash_lem_gen Keyword_Clash_stub
+ sharedname = Keyword_Clash_exec
+ libs += Keyword_Clash_stub
+
+ dynamicflags = KEYWORD_CLASH_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Keyword_ClashEC.cpp
+ Keyword_Clash_exec.cpp
+ }
+
+ Header_Files {
+ Keyword_ClashEC.h
+ Keyword_Clash_exec.h
+ Keyword_Clash_exec_export.h
+ }
+
+ Inline_Files {
+ Keyword_ClashEC.inl
+ }
+}
+
+project(Keyword_Clash_svnt) : ciao_servant {
+ avoids += mfc
+ after += Keyword_Clash_exec
+ sharedname = Keyword_Clash_svnt
+ libs += Keyword_Clash_exec \
+ Keyword_Clash_stub
+
+ dynamicflags = KEYWORD_CLASH_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Keyword_ClashS.cpp
+ Keyword_Clash_svnt.cpp
+ }
+
+ Header_Files {
+ Keyword_ClashS.h
+ Keyword_Clash_svnt.h
+ Keyword_Clash_svnt_export.h
+ }
+
+ Inline_Files {
+ Keyword_ClashS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export.idl b/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export.idl
new file mode 100644
index 00000000000..28248068aff
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export.idl
@@ -0,0 +1,8 @@
+
+// $Id$
+
+#include <Components.idl>
+
+component Foo
+{
+};
diff --git a/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export.mpc b/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export.mpc
new file mode 100644
index 00000000000..a5eeaa65369
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export.mpc
@@ -0,0 +1,128 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl Lem_Export"
+
+project(Lem_Export_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=LEM_EXPORT_STUB_Export \
+ -Wb,stub_export_include=Lem_Export_stub_export.h \
+ -Wb,skel_export_macro=LEM_EXPORT_SVNT_Export \
+ -Wb,skel_export_include=Lem_Export_svnt_export.h \
+ -Wb,exec_export_macro=LEM_EXPORT_EXEC_Export \
+ -Wb,exec_export_include=Lem_Export_exec_export.h
+
+ IDL_Files {
+ Lem_Export.idl
+ }
+}
+
+project(Lem_Export_lem_gen) : ciaoidldefaults {
+ after += Lem_Export_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=LEM_EXPORT_LEM_STUB_Export \
+ -Wb,stub_export_include=Lem_Export_lem_stub_export.h \
+ -SS -Gxhst
+
+ IDL_Files {
+ Lem_ExportE.idl
+ }
+}
+
+project(Lem_Export_stub) : ccm_stub {
+ after += Lem_Export_idl_gen
+ libs +=
+
+ sharedname = Lem_Export_stub
+ dynamicflags = LEM_EXPORT_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Lem_ExportC.cpp
+ }
+
+ Header_Files {
+ Lem_ExportC.h
+ Lem_Export_stub_export.h
+ }
+
+ Inline_Files {
+ Lem_ExportC.inl
+ }
+}
+
+project(Lem_Export_lem_stub) : ccm_svnt {
+ after += Lem_Export_lem_gen
+ libs +=
+
+ sharedname = Lem_Export_lem_stub
+ dynamicflags = LEM_EXPORT_LEM_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Lem_ExportEC.cpp
+ }
+
+ Header_Files {
+ Lem_ExportEC.h
+ Lem_Export_lem_stub_export.h
+ }
+
+ Inline_Files {
+ Lem_ExportEC.inl
+ }
+}
+
+project(Lem_Export_exec) : ciao_executor {
+ after += Lem_Export_lem_stub Lem_Export_stub
+ sharedname = Lem_Export_exec
+ libs += Lem_Export_stub Lem_Export_lem_stub
+
+ dynamicflags = LEM_EXPORT_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Lem_Export_exec.cpp
+ }
+
+ Header_Files {
+ Lem_Export_exec.h
+ Lem_Export_exec_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+
+project(Lem_Export_svnt) : ciao_servant {
+ after += Lem_Export_lem_stub Lem_Export_stub
+ sharedname = Lem_Export_svnt
+ libs += Lem_Export_stub Lem_Export_lem_stub
+
+ dynamicflags = LEM_EXPORT_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Lem_ExportS.cpp
+ Lem_Export_svnt.cpp
+ }
+
+ Header_Files {
+ Lem_ExportS.h
+ Lem_Export_svnt.h
+ Lem_Export_svnt_export.h
+ }
+
+ Inline_Files {
+ Lem_ExportS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export_exec.cpp b/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export_exec.cpp
new file mode 100644
index 00000000000..d9d5eaf0928
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export_exec.cpp
@@ -0,0 +1,106 @@
+// -*- 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:1278
+
+#include "Lem_Export_exec.h"
+
+namespace CIAO_Foo_Impl
+{
+ //============================================================
+ // Component Executor Implementation Class: Foo_exec_i
+ //============================================================
+
+ Foo_exec_i::Foo_exec_i (void)
+ {
+ }
+
+ Foo_exec_i::~Foo_exec_i (void)
+ {
+ }
+
+ // Supported operations and attributes.
+
+ // Component attributes.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent.
+
+ void
+ Foo_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::CCM_Foo_Context::_narrow (ctx);
+
+ if ( ::CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Foo_exec_i::configuration_complete (void)
+ {
+ /* Your code here. */
+ }
+
+ void
+ Foo_exec_i::ccm_activate (void)
+ {
+ /* Your code here. */
+ }
+
+ void
+ Foo_exec_i::ccm_passivate (void)
+ {
+ /* Your code here. */
+ }
+
+ void
+ Foo_exec_i::ccm_remove (void)
+ {
+ /* Your code here. */
+ }
+
+ extern "C" LEM_EXPORT_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Foo_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ Foo_exec_i,
+ ::Components::EnterpriseComponent::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export_exec.h b/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export_exec.h
new file mode 100644
index 00000000000..a60906d3aa5
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export_exec.h
@@ -0,0 +1,84 @@
+// -*- 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:1217
+
+#ifndef CIAO_LEM_EXPORT_EXEC_H_
+#define CIAO_LEM_EXPORT_EXEC_H_
+
+#include /**/ "ace/pre.h"
+
+#include "Lem_ExportEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include /**/ "Lem_Export_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Foo_Impl
+{
+ class LEM_EXPORT_EXEC_Export Foo_exec_i
+ : public virtual Foo_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Foo_exec_i (void);
+ virtual ~Foo_exec_i (void);
+
+ // Supported operations and attributes.
+
+ // Component attributes.
+
+ // 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:
+ ::CCM_Foo_Context_var context_;
+ };
+
+ extern "C" LEM_EXPORT_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Foo_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* ifndef */
+
diff --git a/modules/CIAO/tests/IDL_Test/PIDL_Include/PIDLInclude.idl b/modules/CIAO/tests/IDL_Test/PIDL_Include/PIDLInclude.idl
new file mode 100644
index 00000000000..b56142dbf2d
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/PIDL_Include/PIDLInclude.idl
@@ -0,0 +1,14 @@
+// $Id$
+
+#include <Components.idl>
+#include "tao/StringSeq.pidl"
+
+interface foo_intf
+{
+ typedef sequence<string> MyStringSeq;
+};
+
+component Foo
+{
+ provides foo_intf foo_port;
+};
diff --git a/modules/CIAO/tests/IDL_Test/PIDL_Include/PIDLInclude.mpc b/modules/CIAO/tests/IDL_Test/PIDL_Include/PIDLInclude.mpc
new file mode 100644
index 00000000000..c790417197e
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/PIDL_Include/PIDLInclude.mpc
@@ -0,0 +1,131 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl PIDLInclude"
+
+project(PIDLInclude_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=PIDLINCLUDE_STUB_Export \
+ -Wb,stub_export_include=PIDLInclude_stub_export.h \
+ -Wb,skel_export_macro=PIDLINCLUDE_SVNT_Export \
+ -Wb,skel_export_include=PIDLInclude_svnt_export.h \
+ -Wb,exec_export_macro=PIDLINCLUDE_EXEC_Export \
+ -Wb,exec_export_include=PIDLInclude_exec_export.h -Gex
+
+ IDL_Files {
+ PIDLInclude.idl
+ }
+}
+
+project(PIDLInclude_lem_gen) : ciaoidldefaults {
+ after += PIDLInclude_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=PIDLINCLUDE_LEM_STUB_Export \
+ -Wb,stub_export_include=PIDLInclude_lem_stub_export.h \
+ -SS -Gxhst
+
+ IDL_Files {
+ PIDLIncludeE.idl
+ }
+}
+
+project(PIDLInclude_lem_stub) : ccm_svnt {
+ after += PIDLInclude_lem_gen PIDLInclude_stub
+ libs += PIDLInclude_stub
+
+ sharedname = PIDLInclude_lem_stub
+ dynamicflags = PIDLINCLUDE_LEM_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ PIDLIncludeEC.cpp
+ }
+
+ Header_Files {
+ PIDLIncludeEC.h
+ PIDLInclude_lem_stub_export.h
+ }
+
+ Inline_Files {
+ PIDLIncludeEC.inl
+ }
+}
+
+project(PIDLInclude_stub) : ccm_stub {
+ after += PIDLInclude_idl_gen
+ libs +=
+
+
+ sharedname = PIDLInclude_stub
+ dynamicflags = PIDLINCLUDE_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ PIDLIncludeC.cpp
+ }
+
+ Header_Files {
+ PIDLIncludeC.h
+ PIDLInclude_stub_export.h
+ }
+
+ Inline_Files {
+ PIDLIncludeC.inl
+ }
+}
+
+project(PIDLInclude_exec) : ciao_executor {
+ after += PIDLInclude_lem_stub PIDLInclude_stub
+ sharedname = PIDLInclude_exec
+ libs += PIDLInclude_stub PIDLInclude_lem_stub
+
+
+ dynamicflags = PIDLINCLUDE_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ PIDLInclude_exec.cpp
+ }
+
+ Header_Files {
+ PIDLInclude_exec.h
+ PIDLInclude_exec_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+
+project(PIDLInclude_svnt) : ciao_servant {
+ after += PIDLInclude_lem_stub
+ sharedname = PIDLInclude_svnt
+ libs += PIDLInclude_stub PIDLInclude_lem_stub
+
+
+ dynamicflags = PIDLINCLUDE_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ PIDLIncludeS.cpp
+ PIDLInclude_svnt.cpp
+ }
+
+ Header_Files {
+ PIDLIncludeS.h
+ PIDLInclude_svnt.h
+ PIDLInclude_svnt_export.h
+ }
+
+ Inline_Files {
+ PIDLIncludeS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/Basic.idl b/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/Basic.idl
new file mode 100644
index 00000000000..4e686a47fab
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/Basic.idl
@@ -0,0 +1,54 @@
+// $Id$
+//=============================================================================
+/**
+ * @file Basic.idl
+ *
+ * Definition of events, and common interfaces used in the BasicSP module.
+ *
+ * @author Balachandran Natarajan <bala@dre.vanderbilt.edu>
+ * Jeff Parsons <j.parsons@vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef CIAO_BASIC_IDL
+#define CIAO_BASIC_IDL
+
+#include <Components.idl>
+
+module Extra
+{
+ exception NoReason {};
+ exception NoRhyme {};
+
+ interface Superfluous
+ {
+ attribute string useless_attr;
+ long superfluous_op (in string empty_arg)
+ raises (NoReason);
+ };
+
+ interface Supernumerary
+ {
+ void supernumerary_op (out string dummy_arg)
+ raises (NoRhyme, NoReason);
+ };
+};
+
+module Basic
+{
+ interface ReadData : Extra::Superfluous
+ {
+ string get_data ();
+ };
+
+ interface AnalyzeData
+ {
+ void perform_analysis (inout string data);
+ attribute boolean fine_tooth_comb;
+ };
+
+ eventtype TimeOut {};
+ eventtype DataAvailable {};
+};
+
+#endif /* CIAO_BASIC_IDL */
diff --git a/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/Basic.mpc b/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/Basic.mpc
new file mode 100644
index 00000000000..4e70cbe8ac3
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/Basic.mpc
@@ -0,0 +1,82 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Basic"
+
+project(Reused_Facet_Interface_Basic_idl_gen) : ciaoidldefaults, anytypecode {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=BASIC_STUB_Export \
+ -Wb,stub_export_include=Basic_stub_export.h \
+ -Wb,skel_export_macro=BASIC_SKEL_Export \
+ -Wb,skel_export_include=Basic_skel_export.h \
+ -Gxhst -Gxhsk -Glem
+
+ IDL_Files {
+ Basic.idl
+ }
+}
+
+project(Reused_Facet_Interface_Basic_lem_gen) : ciaoidldefaults, anytypecode {
+ custom_only = 1
+ after += Reused_Facet_Interface_Basic_idl_gen
+ idlflags += -Wb,stub_export_macro=BASIC_STUB_Export \
+ -Wb,stub_export_include=Basic_stub_export.h \
+ -Wb,skel_export_macro=BASIC_SKEL_Export \
+ -Wb,skel_export_include=Basic_skel_export.h \
+ -Gxhst
+
+ IDL_Files {
+ BasicE.idl
+ }
+}
+
+project(Reused_Facet_Interface_Basic_stub) : ccm_stub {
+ after += Reused_Facet_Interface_Basic_lem_gen
+ libs +=
+
+ sharedname = Basic_stub
+ dynamicflags = BASIC_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ BasicC.cpp
+ BasicEC.cpp
+ }
+
+ Header_Files {
+ BasicC.h
+ Basic_stub_export.h
+ }
+
+ Inline_Files {
+ BasicC.inl
+ }
+}
+
+
+project(Reused_Facet_Interface_Basic_skel) : ciao_executor {
+ after += Reused_Facet_Interface_Basic_stub
+ sharedname = Basic_skel
+ libs += Basic_stub
+
+
+ dynamicflags = BASIC_SKEL_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ BasicS.cpp
+ }
+
+ Header_Files {
+ BasicS.h
+ Basic_skel_export.h
+ }
+
+ Inline_Files {
+ BasicS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/CodeGen.idl b/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/CodeGen.idl
new file mode 100644
index 00000000000..b55848abaa8
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/CodeGen.idl
@@ -0,0 +1,47 @@
+//$Id$
+
+#include "Basic.idl"
+#include "BasicE.idl"
+
+module Basic
+{
+ component Base supports Extra::Supernumerary, Extra::Superfluous
+ {
+ provides ReadData data_read;
+ attribute boolean is_not_necessary;
+ };
+
+ component CodeGen : Base
+ {
+ provides ReadData data_out;
+ uses ReadData data_in;
+ publishes DataAvailable out_avail;
+ consumes DataAvailable in_avail;
+ provides AnalyzeData data_crunch;
+
+ readonly attribute boolean is_necessary;
+ };
+
+ home BaseHome supports Extra::Supernumerary manages Base
+ {
+ void base_do_nothing ();
+
+ factory create_no_base (in long fake_id)
+ raises (Extra::NoRhyme);
+
+ finder find_no_base ();
+
+ readonly attribute boolean is_useful;
+ };
+
+ home CodeGenHome : BaseHome manages CodeGen
+ {
+ factory create_no_derived ();
+
+ finder find_no_derived ();
+
+ attribute boolean is_not_useful;
+
+ string do_nothing ();
+ };
+};
diff --git a/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/README b/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/README
new file mode 100644
index 00000000000..b25ef8cfd1a
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/README
@@ -0,0 +1,12 @@
+
+Reused Facet Interface Test
+===========================
+
+This test uses IDL that contains a variety of port, attribute,
+operation, factory and finder definitions, some inherited. The
+main focus of the test, however, is the reuse of the same
+interface for two different facet ports. The facet servant class,
+and facet executor IDL interface must be generated only once.
+
+Jeff Parsons
+June 16, 2009 \ No newline at end of file
diff --git a/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/Reused_Facet_Interface.mpc b/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/Reused_Facet_Interface.mpc
new file mode 100644
index 00000000000..fdb07b403ca
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/Reused_Facet_Interface.mpc
@@ -0,0 +1,112 @@
+// $Id$
+//
+
+project(Reused_Facet_Interface_idl_gen) : componentidldefaults {
+ after += Reused_Facet_Interface_Basic_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=CODEGEN_STUB_Export \
+ -Wb,stub_export_include=CodeGen_stub_export.h \
+ -Wb,skel_export_macro=CODEGEN_SVNT_Export \
+ -Wb,skel_export_include=CodeGen_svnt_export.h \
+ -Wb,exec_export_macro=CODEGEN_EXEC_Export \
+ -Wb,exec_export_include=CodeGen_exec_export.h \
+ -Gex
+
+ IDL_Files {
+ CodeGen.idl
+ }
+}
+
+project(Reused_Facet_Interface_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ after += Reused_Facet_Interface_idl_gen
+ idlflags += -Wb,export_macro=CODEGEN_EXEC_Export \
+ -Wb,export_include=CodeGen_exec_export.h \
+ -SS
+
+ IDL_Files {
+ CodeGenE.idl
+ }
+}
+
+project(Reused_Facet_Interface_stub) : ccm_stub {
+ after += Reused_Facet_Interface_idl_gen Reused_Facet_Interface_Basic_stub
+ libs += Basic_stub
+
+ sharedname = CodeGen_stub
+ dynamicflags = CODEGEN_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ CodeGenC.cpp
+ }
+
+ Header_Files {
+ CodeGenC.h
+ CodeGen_stub_export.h
+ }
+
+ Inline_Files {
+ CodeGenC.inl
+ }
+}
+
+project(Reused_Facet_Interface_exec) : ciao_executor {
+ after += Reused_Facet_Interface_lem_gen Reused_Facet_Interface_stub
+ sharedname = CodeGen_exec
+ libs += CodeGen_stub Basic_stub
+
+ dynamicflags = CODEGEN_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ CodeGenEC.cpp
+ CodeGen_exec.cpp
+ }
+
+ Header_Files {
+ CodeGenEC.h
+ CodeGen_exec.h
+ CodeGen_exec_export.h
+ }
+
+ Inline_Files {
+ CodeGenEC.inl
+ }
+}
+
+
+project(Reused_Facet_Interface_svnt) : ciao_servant {
+ after += Reused_Facet_Interface_Basic_skel Reused_Facet_Interface_exec
+ sharedname = CodeGen_svnt
+ libs += CodeGen_exec \
+ CodeGen_stub \
+ Basic_skel \
+ Basic_stub
+
+ dynamicflags = CODEGEN_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ CodeGenS.cpp
+ CodeGen_svnt.cpp
+ }
+
+ Header_Files {
+ CodeGenS.h
+ CodeGen_svnt.h
+ CodeGen_svnt_export.h
+ }
+
+ Inline_Files {
+ CodeGenS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base.idl b/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base.idl
new file mode 100644
index 00000000000..e82cb0066a8
--- /dev/null
+++ b/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base.idl
@@ -0,0 +1,17 @@
+//$Id$:
+
+#ifndef CIAO_MINIMUM_IDL
+#define CIAO_MINIMUM_IDL
+
+#include <Components.idl>
+
+module Minimum
+{
+ interface ReadMessage
+ {
+ void foo ();
+ };
+
+};
+
+#endif /* CIAO_MINIMUM_IDL */
diff --git a/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base.mpc b/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base.mpc
new file mode 100644
index 00000000000..afa77118760
--- /dev/null
+++ b/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base.mpc
@@ -0,0 +1,65 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Minimum_Base"
+
+project(Minimum_Base_idl_gen) : ciaoidldefaults, anytypecode, ccm {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=MINIMUM_BASE_STUB_Export \
+ -Wb,stub_export_include=Minimum_Base_stub_export.h \
+ -Wb,skel_export_macro=MINIMUM_BASE_SKEL_Export \
+ -Wb,skel_export_include=Minimum_Base_skel_export.h
+
+ IDL_Files {
+ Minimum_Base.idl
+ }
+}
+
+project(Minimum_Base_stub) : ccm_stub {
+ after += Minimum_Base_idl_gen
+ libs +=
+
+ sharedname = Minimum_Base_stub
+ dynamicflags = MINIMUM_BASE_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Minimum_BaseC.cpp
+ }
+
+ Header_Files {
+ Minimum_BaseC.h
+ Minimum_Base_stub_export.h
+ }
+
+ Inline_Files {
+ Minimum_BaseC.inl
+ }
+}
+
+project(Minimum_Base_skel) : ccm_stub, portableserver {
+ after += Minimum_Base_stub
+ sharedname = Minimum_Base_skel
+ libs += Minimum_Base_stub
+
+
+ dynamicflags = MINIMUM_BASE_SKEL_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Minimum_BaseS.cpp
+ }
+
+ Header_Files {
+ Minimum_BaseS.h
+ Minimum_Base_skel_export.h
+ }
+
+ Inline_Files {
+ Minimum_BaseS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base_skel_export.h b/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base_skel_export.h
new file mode 100644
index 00000000000..48d7cd0979b
--- /dev/null
+++ b/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base_skel_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl MINIMUM_BASE_SVNT
+// ------------------------------
+#ifndef MINIMUM_BASE_SKEL_EXPORT_H
+#define MINIMUM_BASE_SKEL_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (MINIMUM_BASE_SKEL_HAS_DLL)
+# define MINIMUM_BASE_SKEL_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && MINIMUM_BASE_SKEL_HAS_DLL */
+
+#if !defined (MINIMUM_BASE_SKEL_HAS_DLL)
+# define MINIMUM_BASE_SKEL_HAS_DLL 1
+#endif /* ! MINIMUM_BASE_SKEL_HAS_DLL */
+
+#if defined (MINIMUM_BASE_SKEL_HAS_DLL) && (MINIMUM_BASE_SKEL_HAS_DLL == 1)
+# if defined (MINIMUM_BASE_SKEL_BUILD_DLL)
+# define MINIMUM_BASE_SKEL_Export ACE_Proper_Export_Flag
+# define MINIMUM_BASE_SKEL_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define MINIMUM_BASE_SKEL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* MINIMUM_BASE_SKEL_BUILD_DLL */
+# define MINIMUM_BASE_SKEL_Export ACE_Proper_Import_Flag
+# define MINIMUM_BASE_SKEL_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define MINIMUM_BASE_SKEL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* MINIMUM_BASE_SKEL_BUILD_DLL */
+#else /* MINIMUM_BASE_SKEL_HAS_DLL == 1 */
+# define MINIMUM_BASE_SKEL_Export
+# define MINIMUM_BASE_SKEL_SINGLETON_DECLARATION(T)
+# define MINIMUM_BASE_SKEL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* MINIMUM_BASE_SKEL_HAS_DLL == 1 */
+
+// Set MINIMUM_BASE_SKEL_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (MINIMUM_BASE_SKEL_NTRACE)
+# if (ACE_NTRACE == 1)
+# define MINIMUM_BASE_SKEL_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define MINIMUM_BASE_SKEL_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !MINIMUM_BASE_SKEL_NTRACE */
+
+#if (MINIMUM_BASE_SKEL_NTRACE == 1)
+# define MINIMUM_BASE_SKEL_TRACE(X)
+#else /* (MINIMUM_BASE_SKEL_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define MINIMUM_BASE_SKEL_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (MINIMUM_BASE_SKEL_NTRACE == 1) */
+
+#endif /* MINIMUM_BASE_SKEL_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base_stub_export.h b/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base_stub_export.h
new file mode 100644
index 00000000000..99c1d64369b
--- /dev/null
+++ b/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl MINIMUM_BASE_STUB
+// ------------------------------
+#ifndef MINIMUM_BASE_STUB_EXPORT_H
+#define MINIMUM_BASE_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (MINIMUM_BASE_STUB_HAS_DLL)
+# define MINIMUM_BASE_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && MINIMUM_BASE_STUB_HAS_DLL */
+
+#if !defined (MINIMUM_BASE_STUB_HAS_DLL)
+# define MINIMUM_BASE_STUB_HAS_DLL 1
+#endif /* ! MINIMUM_BASE_STUB_HAS_DLL */
+
+#if defined (MINIMUM_BASE_STUB_HAS_DLL) && (MINIMUM_BASE_STUB_HAS_DLL == 1)
+# if defined (MINIMUM_BASE_STUB_BUILD_DLL)
+# define MINIMUM_BASE_STUB_Export ACE_Proper_Export_Flag
+# define MINIMUM_BASE_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define MINIMUM_BASE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* MINIMUM_BASE_STUB_BUILD_DLL */
+# define MINIMUM_BASE_STUB_Export ACE_Proper_Import_Flag
+# define MINIMUM_BASE_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define MINIMUM_BASE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* MINIMUM_BASE_STUB_BUILD_DLL */
+#else /* MINIMUM_BASE_STUB_HAS_DLL == 1 */
+# define MINIMUM_BASE_STUB_Export
+# define MINIMUM_BASE_STUB_SINGLETON_DECLARATION(T)
+# define MINIMUM_BASE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* MINIMUM_BASE_STUB_HAS_DLL == 1 */
+
+// Set MINIMUM_BASE_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (MINIMUM_BASE_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define MINIMUM_BASE_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define MINIMUM_BASE_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !MINIMUM_BASE_STUB_NTRACE */
+
+#if (MINIMUM_BASE_STUB_NTRACE == 1)
+# define MINIMUM_BASE_STUB_TRACE(X)
+#else /* (MINIMUM_BASE_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define MINIMUM_BASE_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (MINIMUM_BASE_STUB_NTRACE == 1) */
+
+#endif /* MINIMUM_BASE_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/Minimum/Receiver/Receiver.idl b/modules/CIAO/tests/Minimum/Receiver/Receiver.idl
new file mode 100644
index 00000000000..219baec17d0
--- /dev/null
+++ b/modules/CIAO/tests/Minimum/Receiver/Receiver.idl
@@ -0,0 +1,18 @@
+//$Id$:
+
+#ifndef RECEIVER_IDL
+#define RECEIVER_IDL
+
+#include "../Minimum_Base/Minimum_Base.idl"
+
+module Minimum
+{
+ component Receiver
+ {
+ };
+
+ home ReceiverHome manages Receiver
+ {
+ };
+};
+#endif /*RECEIVER_IDL*/
diff --git a/modules/CIAO/tests/Minimum/Receiver/Receiver.mpc b/modules/CIAO/tests/Minimum/Receiver/Receiver.mpc
new file mode 100644
index 00000000000..0bd74e3971f
--- /dev/null
+++ b/modules/CIAO/tests/Minimum/Receiver/Receiver.mpc
@@ -0,0 +1,134 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p Minimum_Base Receiver"
+
+project(Minimum_Base_Receiver_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=RECEIVER_STUB_Export \
+ -Wb,stub_export_include=Receiver_stub_export.h \
+ -Wb,skel_export_macro=RECEIVER_SVNT_Export \
+ -Wb,skel_export_include=Receiver_svnt_export.h \
+ -Wb,exec_export_macro=RECEIVER_EXEC_Export \
+ -Wb,exec_export_include=Receiver_exec_export.h
+
+ IDL_Files {
+ Receiver.idl
+ }
+}
+
+project(Minimum_Base_Receiver_lem_gen) : ciaoidldefaults {
+ after += Minimum_Base_Receiver_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=RECEIVER_LEM_STUB_Export \
+ -Wb,stub_export_include=Receiver_lem_stub_export.h \
+ -SS -Gxhst
+
+ IDL_Files {
+ ReceiverE.idl
+ }
+}
+
+project(Minimum_Base_Receiver_lem_stub) : ccm_svnt {
+ after += Minimum_Base_Receiver_lem_gen Minimum_Base_Receiver_stub Minimum_Base_stub
+ libs += Minimum_Base_stub Receiver_stub
+ libpaths += ../Minimum_Base
+
+ sharedname = Receiver_lem_stub
+ dynamicflags = RECEIVER_LEM_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ReceiverEC.cpp
+ }
+
+ Header_Files {
+ ReceiverEC.h
+ Receiver_lem_stub_export.h
+ }
+
+ Inline_Files {
+ ReceiverEC.inl
+ }
+}
+
+project(Minimum_Base_Receiver_stub) : ccm_stub {
+ after += Minimum_Base_Receiver_idl_gen Minimum_Base_stub
+ libs += Minimum_Base_stub
+ libpaths += ../Minimum_Base
+
+ sharedname = Receiver_stub
+ dynamicflags = RECEIVER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ReceiverC.cpp
+ }
+
+ Header_Files {
+ ReceiverC.h
+ Receiver_stub_export.h
+ }
+
+ Inline_Files {
+ ReceiverC.inl
+ }
+}
+
+project(Minimum_Base_Receiver_exec) : ciao_executor {
+ after += Minimum_Base_Receiver_lem_stub Minimum_Base_Receiver_stub
+ sharedname = Receiver_exec
+ libs += Receiver_stub Receiver_lem_stub Minimum_Base_stub
+ libpaths += ../Minimum_Base
+
+ dynamicflags = RECEIVER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Receiver_exec.cpp
+ }
+
+ Header_Files {
+ Receiver_exec.h
+ Receiver_exec_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+
+project(Minimum_Base_Receiver_svnt) : ciao_servant {
+ after += Minimum_Base_skel Minimum_Base_Receiver_lem_stub
+ sharedname = Receiver_svnt
+ libs += Receiver_stub Receiver_lem_stub \
+ Minimum_Base_skel \
+ Minimum_Base_stub
+ libpaths += ../Minimum_Base
+
+ dynamicflags = RECEIVER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ReceiverS.cpp
+ Receiver_svnt.cpp
+ }
+
+ Header_Files {
+ ReceiverS.h
+ Receiver_svnt.h
+ Receiver_svnt_export.h
+ }
+
+ Inline_Files {
+ ReceiverS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/tests/Minimum/Receiver/Receiver_exec.cpp b/modules/CIAO/tests/Minimum/Receiver/Receiver_exec.cpp
new file mode 100644
index 00000000000..19d56a21b0b
--- /dev/null
+++ b/modules/CIAO/tests/Minimum/Receiver/Receiver_exec.cpp
@@ -0,0 +1,132 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#include "Receiver_exec.h"
+
+namespace CIAO_Minimum_Receiver_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: Receiver_exec_i
+ //==================================================================
+
+ Receiver_exec_i::Receiver_exec_i (void)
+ {
+ }
+
+ Receiver_exec_i::~Receiver_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ void
+ Receiver_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::Minimum::CCM_Receiver_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Receiver_exec_i::configuration_complete ()
+ {
+ // Your code here.
+ }
+
+ void
+ Receiver_exec_i::ccm_activate ()
+ {
+ // Your code here.
+ }
+
+ void
+ Receiver_exec_i::ccm_passivate ()
+ {
+ // Your code here.
+ }
+
+ void
+ Receiver_exec_i::ccm_remove ()
+ {
+ // Your code here.
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: ReceiverHome_exec_i
+ //==================================================================
+
+ ReceiverHome_exec_i::ReceiverHome_exec_i (void)
+ {
+ }
+
+ ReceiverHome_exec_i::~ReceiverHome_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ ReceiverHome_exec_i::create ()
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ Receiver_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" RECEIVER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Minimum_ReceiverHome_Impl (void)
+ {
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ ReceiverHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/tests/Minimum/Receiver/Receiver_exec.h b/modules/CIAO/tests/Minimum/Receiver/Receiver_exec.h
new file mode 100644
index 00000000000..b8e7b3fae39
--- /dev/null
+++ b/modules/CIAO/tests/Minimum/Receiver/Receiver_exec.h
@@ -0,0 +1,98 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#ifndef CIAO_RECEIVER_EXEC_H
+#define CIAO_RECEIVER_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "ReceiverEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "Receiver_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Minimum_Receiver_Impl
+{
+ class RECEIVER_EXEC_Export Receiver_exec_i
+ : public virtual Receiver_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Receiver_exec_i (void);
+ virtual ~Receiver_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:
+ ::Minimum::CCM_Receiver_Context_var context_;
+ };
+
+ class RECEIVER_EXEC_Export ReceiverHome_exec_i
+ : public virtual ReceiverHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ ReceiverHome_exec_i (void);
+ virtual ~ReceiverHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" RECEIVER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Minimum_ReceiverHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_RECEIVER_EXEC_H */
+
diff --git a/modules/CIAO/tests/Minimum/Sender/Sender.idl b/modules/CIAO/tests/Minimum/Sender/Sender.idl
new file mode 100644
index 00000000000..74b9bf76f9a
--- /dev/null
+++ b/modules/CIAO/tests/Minimum/Sender/Sender.idl
@@ -0,0 +1,28 @@
+//$Id$
+
+#ifndef CIAO_SENDER_IDL
+#define CIAO_SENDER_IDL
+
+
+#include "../Minimum_Base/Minimum_Base.idl"
+
+module Minimum
+{
+ /* This is a Sender specific interface which will be used to get the
+ * process start.
+ */
+
+ interface trigger
+ {
+ void bar ();
+ };
+
+ component Sender supports trigger
+ {
+ };
+
+ home SenderHome manages Sender
+ {
+ };
+};
+#endif /*CIAO_SENDER_IDL*/
diff --git a/modules/CIAO/tests/Minimum/Sender/Sender.mpc b/modules/CIAO/tests/Minimum/Sender/Sender.mpc
new file mode 100644
index 00000000000..3e1aea88bac
--- /dev/null
+++ b/modules/CIAO/tests/Minimum/Sender/Sender.mpc
@@ -0,0 +1,113 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p Minimum_Base Sender"
+
+project(Minimum_Base_Sender_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=SENDER_STUB_Export \
+ -Wb,stub_export_include=Sender_stub_export.h \
+ -Wb,skel_export_macro=SENDER_SVNT_Export \
+ -Wb,skel_export_include=Sender_svnt_export.h \
+ -Wb,exec_export_macro=SENDER_EXEC_Export \
+ -Wb,exec_export_include=Sender_exec_export.h \
+
+ IDL_Files {
+ Sender.idl
+ }
+}
+
+project(Minimum_Base_Sender_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ after += Minimum_Base_Sender_idl_gen
+ idlflags += -Wb,export_macro=SENDER_EXEC_Export \
+ -Wb,export_include=Sender_exec_export.h \
+ -SS
+
+ IDL_Files {
+ SenderE.idl
+ }
+}
+
+project(Minimum_Base_Sender_stub) : ccm_stub {
+ after += Minimum_Base_Sender_idl_gen Minimum_Base_stub
+ libs += Minimum_Base_stub
+ libpaths += ../Minimum_Base
+
+ sharedname = Sender_stub
+ dynamicflags = SENDER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SenderC.cpp
+ }
+
+ Header_Files {
+ SenderC.h
+ Sender_stub_export.h
+ }
+
+ Inline_Files {
+ SenderC.inl
+ }
+}
+
+project(Minimum_Base_Sender_exec) : ciao_executor {
+ after += Minimum_Base_Sender_lem_gen Minimum_Base_Sender_stub
+ sharedname = Sender_exec
+ libs += Sender_stub Minimum_Base_stub
+ libpaths += ../Minimum_Base
+
+ dynamicflags = SENDER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SenderEC.cpp
+ Sender_exec.cpp
+ }
+
+ Header_Files {
+ SenderEC.h
+ Sender_exec.h
+ Sender_exec_export.h
+ }
+
+ Inline_Files {
+ SenderEC.inl
+ }
+}
+
+
+project(Minimum_Base_Sender_svnt) : ciao_servant {
+ after += Minimum_Base_skel Minimum_Base_Sender_exec
+ sharedname = Sender_svnt
+ libs += Sender_exec \
+ Sender_stub \
+ Minimum_Base_skel \
+ Minimum_Base_stub
+ libpaths += ../Minimum_Base
+
+ dynamicflags = SENDER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SenderS.cpp
+ Sender_svnt.cpp
+ }
+
+ Header_Files {
+ SenderS.h
+ Sender_svnt.h
+ Sender_svnt_export.h
+ }
+
+ Inline_Files {
+ SenderS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/tests/Minimum/Sender/Sender_exec.cpp b/modules/CIAO/tests/Minimum/Sender/Sender_exec.cpp
new file mode 100644
index 00000000000..3e05bf6987c
--- /dev/null
+++ b/modules/CIAO/tests/Minimum/Sender/Sender_exec.cpp
@@ -0,0 +1,138 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#include "Sender_exec.h"
+
+namespace CIAO_Minimum_Sender_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: Sender_exec_i
+ //==================================================================
+
+ Sender_exec_i::Sender_exec_i (void)
+ {
+ }
+
+ Sender_exec_i::~Sender_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ void
+ Sender_exec_i::bar ()
+ {
+ // Your code here.
+ }
+
+ // Attribute operations.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ void
+ Sender_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::Minimum::CCM_Sender_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Sender_exec_i::configuration_complete ()
+ {
+ // Your code here.
+ }
+
+ void
+ Sender_exec_i::ccm_activate ()
+ {
+ // Your code here.
+ }
+
+ void
+ Sender_exec_i::ccm_passivate ()
+ {
+ // Your code here.
+ }
+
+ void
+ Sender_exec_i::ccm_remove ()
+ {
+ // Your code here.
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: SenderHome_exec_i
+ //==================================================================
+
+ SenderHome_exec_i::SenderHome_exec_i (void)
+ {
+ }
+
+ SenderHome_exec_i::~SenderHome_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ SenderHome_exec_i::create ()
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ Sender_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" SENDER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Minimum_SenderHome_Impl (void)
+ {
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ SenderHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/tests/Minimum/Sender/Sender_exec.h b/modules/CIAO/tests/Minimum/Sender/Sender_exec.h
new file mode 100644
index 00000000000..bbabf471aae
--- /dev/null
+++ b/modules/CIAO/tests/Minimum/Sender/Sender_exec.h
@@ -0,0 +1,101 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#ifndef CIAO_SENDER_EXEC_H
+#define CIAO_SENDER_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "SenderEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "Sender_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Minimum_Sender_Impl
+{
+ class SENDER_EXEC_Export Sender_exec_i
+ : public virtual Sender_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Sender_exec_i (void);
+ virtual ~Sender_exec_i (void);
+
+ // Supported or inherited operations.
+
+ virtual void
+ bar ();
+
+ // 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:
+ ::Minimum::CCM_Sender_Context_var context_;
+ };
+
+ class SENDER_EXEC_Export SenderHome_exec_i
+ : public virtual SenderHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SenderHome_exec_i (void);
+ virtual ~SenderHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" SENDER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Minimum_SenderHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_SENDER_EXEC_H */
+
diff --git a/modules/CIAO/tests/tests.mwc b/modules/CIAO/tests/tests.mwc
new file mode 100644
index 00000000000..6479880bd23
--- /dev/null
+++ b/modules/CIAO/tests/tests.mwc
@@ -0,0 +1,9 @@
+// -*- MPC -*-
+// $Id$
+
+workspace {
+ exclude {
+ RTCCM
+ }
+
+} \ No newline at end of file
diff --git a/modules/CIAO/tools/Config_Handlers/ADD_Handler.cpp b/modules/CIAO/tools/Config_Handlers/ADD_Handler.cpp
new file mode 100644
index 00000000000..e4106b4b70f
--- /dev/null
+++ b/modules/CIAO/tools/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)
+ {
+ CIAO_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)
+ {
+ CIAO_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)
+ {
+ CIAO_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/tools/Config_Handlers/ADD_Handler.h b/modules/CIAO/tools/Config_Handlers/ADD_Handler.h
new file mode 100644
index 00000000000..063093a7038
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/Any_Handler.cpp b/modules/CIAO/tools/Config_Handlers/Any_Handler.cpp
new file mode 100644
index 00000000000..e1b2bc4d0ec
--- /dev/null
+++ b/modules/CIAO/tools/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 "ciao/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)
+ {
+ CIAO_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)
+ {
+ CIAO_TRACE("Any_Handler::extract_into_any - reverse");
+
+ return DYNANY_HANDLER->extract_from_dynany (src);
+ }
+ }
+}
+#include /**/ "ace/post.h"
diff --git a/modules/CIAO/tools/Config_Handlers/Any_Handler.h b/modules/CIAO/tools/Config_Handlers/Any_Handler.h
new file mode 100644
index 00000000000..03f99722034
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/Basic_Deployment_Data.cpp b/modules/CIAO/tools/Config_Handlers/Basic_Deployment_Data.cpp
new file mode 100644
index 00000000000..1e07c6cbfa2
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/Basic_Deployment_Data.hpp b/modules/CIAO/tools/Config_Handlers/Basic_Deployment_Data.hpp
new file mode 100644
index 00000000000..50b1ec3283a
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/CCD_Handler.cpp b/modules/CIAO/tools/Config_Handlers/CCD_Handler.cpp
new file mode 100644
index 00000000000..9f596cdcdeb
--- /dev/null
+++ b/modules/CIAO/tools/Config_Handlers/CCD_Handler.cpp
@@ -0,0 +1,181 @@
+// $Id$
+
+#include "tao/AnyTypeCode/AnyTypeCode_methods.h"
+
+#include "ciao/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)
+ {
+ CIAO_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)
+ {
+ CIAO_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/tools/Config_Handlers/CCD_Handler.h b/modules/CIAO/tools/Config_Handlers/CCD_Handler.h
new file mode 100644
index 00000000000..b3e8292f038
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/CEPE_Handler.cpp b/modules/CIAO/tools/Config_Handlers/CEPE_Handler.cpp
new file mode 100644
index 00000000000..a3d76c50ef0
--- /dev/null
+++ b/modules/CIAO/tools/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 "ciao/Logger/Log_Macros.h"
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ void
+ CEPE_Handler::external_port_endpoints (
+ const PlanConnectionDescription &src,
+ ::Deployment::ComponentExternalPortEndpoints &dest)
+ {
+ CIAO_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)
+ {
+ CIAO_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)
+ {
+ CIAO_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/tools/Config_Handlers/CEPE_Handler.h b/modules/CIAO/tools/Config_Handlers/CEPE_Handler.h
new file mode 100644
index 00000000000..b3b0938b8c2
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/CPD_Handler.cpp b/modules/CIAO/tools/Config_Handlers/CPD_Handler.cpp
new file mode 100644
index 00000000000..afad9712eed
--- /dev/null
+++ b/modules/CIAO/tools/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 "ciao/Logger/Log_Macros.h"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ void
+ CPD_Handler::handle_component_port_description (
+ const ComponentPortDescription& desc,
+ Deployment::ComponentPortDescription& toconfig)
+ {
+ CIAO_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)
+ {
+ CIAO_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/tools/Config_Handlers/CPD_Handler.h b/modules/CIAO/tools/Config_Handlers/CPD_Handler.h
new file mode 100644
index 00000000000..445d2c5f329
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/CRDD_Handler.cpp b/modules/CIAO/tools/Config_Handlers/CRDD_Handler.cpp
new file mode 100644
index 00000000000..226ab86d70e
--- /dev/null
+++ b/modules/CIAO/tools/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 "ciao/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)
+ {
+ CIAO_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)
+ {
+ CIAO_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/tools/Config_Handlers/CRDD_Handler.h b/modules/CIAO/tools/Config_Handlers/CRDD_Handler.h
new file mode 100644
index 00000000000..8f5c964aab4
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/Common.h b/modules/CIAO/tools/Config_Handlers/Common.h
new file mode 100644
index 00000000000..dec8f4b497a
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/ComponentPropertyDescription_Handler.cpp b/modules/CIAO/tools/Config_Handlers/ComponentPropertyDescription_Handler.cpp
new file mode 100644
index 00000000000..e9941254093
--- /dev/null
+++ b/modules/CIAO/tools/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 "ciao/Logger/Log_Macros.h"
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ void
+ ComponentPropertyDescription_Handler::component_property_description (
+ const ComponentPropertyDescription& desc,
+ ::Deployment::ComponentPropertyDescription& toconfig)
+ {
+ CIAO_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)
+ {
+ CIAO_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/tools/Config_Handlers/ComponentPropertyDescription_Handler.h b/modules/CIAO/tools/Config_Handlers/ComponentPropertyDescription_Handler.h
new file mode 100644
index 00000000000..f87edc7fcea
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/Config_Handlers.mpc b/modules/CIAO/tools/Config_Handlers/Config_Handlers.mpc
new file mode 100644
index 00000000000..03ad9ffae78
--- /dev/null
+++ b/modules/CIAO/tools/Config_Handlers/Config_Handlers.mpc
@@ -0,0 +1,139 @@
+//$Id$
+
+project (XSC_XML_Generation) : xscdefaults {
+ requires += xsc
+
+ xscflags += --cxx-banner-file $(CIAO_ROOT)/docs/schema/xsc-banner.cpp
+ xscflags += --cxx-header-banner-file $(CIAO_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 "$(CIAO_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, ciao_lib, ciao_xml_utils {
+ sharedname += XSC_XML_Handlers
+ dynamicflags = XSC_XML_HANDLERS_BUILD_DLL
+ macros += XML_USE_PTHREADS
+ includes += $(CIAO_ROOT)/tools/Config_Handlers $(CIAO_ROOT)/tools
+ 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, ciao_config_handlers_base, ciao_lib, dance {
+ 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
+
+ includes += $(CIAO_ROOT)/ciao
+
+ 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, ciao_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
+ }
+}
+project (XSC_Config_Handlers_Tests) : dance_deployment_stub, ciao_config_handlers, ifr_client {
+ requires += dummy_label
+ includes += $(CIAO_ROOT)/tools/Config_Handlers
+ exename = test
+ macros += XML_USE_PTHREADS
+
+ Source_Files {
+ test.cpp
+ }
+}
+
+
diff --git a/modules/CIAO/tools/Config_Handlers/Config_Handlers_Common_Export.h b/modules/CIAO/tools/Config_Handlers/Config_Handlers_Common_Export.h
new file mode 100644
index 00000000000..f1583c7e71d
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/Config_Handlers_Export.h b/modules/CIAO/tools/Config_Handlers/Config_Handlers_Export.h
new file mode 100644
index 00000000000..64dec8bdfa5
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/DD_Handler.cpp b/modules/CIAO/tools/Config_Handlers/DD_Handler.cpp
new file mode 100644
index 00000000000..41c6db742c7
--- /dev/null
+++ b/modules/CIAO/tools/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 "ciao/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)
+ {
+ CIAO_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)
+ {
+ CIAO_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 ()
+ {
+ CIAO_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/tools/Config_Handlers/DD_Handler.h b/modules/CIAO/tools/Config_Handlers/DD_Handler.h
new file mode 100644
index 00000000000..f3a9e0c60c9
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/DP_Handler.cpp b/modules/CIAO/tools/Config_Handlers/DP_Handler.cpp
new file mode 100644
index 00000000000..d649e6ee06a
--- /dev/null
+++ b/modules/CIAO/tools/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)
+ {
+ CIAO_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)
+ {
+ CIAO_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/tools/Config_Handlers/DP_Handler.h b/modules/CIAO/tools/Config_Handlers/DP_Handler.h
new file mode 100644
index 00000000000..82d93aaa62f
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/DP_PCD_Handler.cpp b/modules/CIAO/tools/Config_Handlers/DP_PCD_Handler.cpp
new file mode 100644
index 00000000000..ba0b88a2bf7
--- /dev/null
+++ b/modules/CIAO/tools/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 "ciao/Logger/Log_Macros.h"
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ void
+ DP_PCD_Handler::plan_connection_descrs (
+ const DeploymentPlan &src,
+ Deployment::PlanConnectionDescriptions& dest)
+ {
+ CIAO_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)
+ {
+ CIAO_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)
+ {
+ CIAO_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/tools/Config_Handlers/DP_PCD_Handler.h b/modules/CIAO/tools/Config_Handlers/DP_PCD_Handler.h
new file mode 100644
index 00000000000..eceb6f03bb6
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/DataType_Handler.cpp b/modules/CIAO/tools/Config_Handlers/DataType_Handler.cpp
new file mode 100644
index 00000000000..6020c40727f
--- /dev/null
+++ b/modules/CIAO/tools/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 "ciao/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)
+ {
+ CIAO_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)
+ {
+ CIAO_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/tools/Config_Handlers/DataType_Handler.h b/modules/CIAO/tools/Config_Handlers/DataType_Handler.h
new file mode 100644
index 00000000000..b2a3240fbec
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/Deployment.cpp b/modules/CIAO/tools/Config_Handlers/Deployment.cpp
new file mode 100644
index 00000000000..cce77ace34b
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/Deployment.hpp b/modules/CIAO/tools/Config_Handlers/Deployment.hpp
new file mode 100644
index 00000000000..2a039912b19
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/DnC_Dump.cpp b/modules/CIAO/tools/Config_Handlers/DnC_Dump.cpp
new file mode 100644
index 00000000000..3bee947afd3
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/DnC_Dump.h b/modules/CIAO/tools/Config_Handlers/DnC_Dump.h
new file mode 100644
index 00000000000..4cddf38cc31
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/DnC_Dump_T.cpp b/modules/CIAO/tools/Config_Handlers/DnC_Dump_T.cpp
new file mode 100644
index 00000000000..0f95945fb0f
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/DnC_Dump_T.h b/modules/CIAO/tools/Config_Handlers/DnC_Dump_T.h
new file mode 100644
index 00000000000..88a5c55f3cd
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/Dump_Obj.cpp b/modules/CIAO/tools/Config_Handlers/Dump_Obj.cpp
new file mode 100644
index 00000000000..b2cc34fd089
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/Dump_Obj.h b/modules/CIAO/tools/Config_Handlers/Dump_Obj.h
new file mode 100644
index 00000000000..babffe43bac
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/DynAny_Handler.mpc b/modules/CIAO/tools/Config_Handlers/DynAny_Handler.mpc
new file mode 100644
index 00000000000..c5cc64b7a34
--- /dev/null
+++ b/modules/CIAO/tools/Config_Handlers/DynAny_Handler.mpc
@@ -0,0 +1,22 @@
+// $Id$
+
+project (XSC_DynAny_Handler) : xerces, dynamicany, typecodefactory, dance_deployment_stub, \
+ ciao_config_handlers_base, ciao_lib, dance, ifr_client {
+ after += XSC_XML_Handlers
+ libs += XSC_XML_Handlers
+ dynamicflags += DYNANY_HANDLER_BUILD_DLL
+ macros += XML_USE_PTHREADS
+ includes += $(CIAO_ROOT)/tools/Config_Handlers
+
+ Source_Files {
+ DynAny_Handler/DynAny_Handler.cpp
+ DynAny_Handler/DynEnum_Handler.cpp
+ DynAny_Handler/DynSequence_Handler.cpp
+ DynAny_Handler/DynStruct_Handler.cpp
+ DynAny_Handler/DynAlias_Handler.cpp
+ }
+
+ Header_Files {
+ DynAny_Handler_Export.h
+ }
+}
diff --git a/modules/CIAO/tools/Config_Handlers/DynAny_Handler/DataType_Handler.cpp b/modules/CIAO/tools/Config_Handlers/DynAny_Handler/DataType_Handler.cpp
new file mode 100644
index 00000000000..0e2bfe0e411
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/DynAny_Handler/DataType_Handler.h b/modules/CIAO/tools/Config_Handlers/DynAny_Handler/DataType_Handler.h
new file mode 100644
index 00000000000..c16b4b21fe3
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/DynAny_Handler/DynAlias_Handler.cpp b/modules/CIAO/tools/Config_Handlers/DynAny_Handler/DynAlias_Handler.cpp
new file mode 100644
index 00000000000..a16e5c882c1
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/DynAny_Handler/DynAlias_Handler.h b/modules/CIAO/tools/Config_Handlers/DynAny_Handler/DynAlias_Handler.h
new file mode 100644
index 00000000000..b5bca3c7377
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp b/modules/CIAO/tools/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp
new file mode 100644
index 00000000000..151591af591
--- /dev/null
+++ b/modules/CIAO/tools/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp
@@ -0,0 +1,379 @@
+// $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")));
+
+ 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/tools/Config_Handlers/DynAny_Handler/DynAny_Handler.h b/modules/CIAO/tools/Config_Handlers/DynAny_Handler/DynAny_Handler.h
new file mode 100644
index 00000000000..d0cf66e9c32
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/DynAny_Handler/DynAny_Handler_Export.h b/modules/CIAO/tools/Config_Handlers/DynAny_Handler/DynAny_Handler_Export.h
new file mode 100644
index 00000000000..78a3ee57b77
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/DynAny_Handler/DynEnum_Handler.cpp b/modules/CIAO/tools/Config_Handlers/DynAny_Handler/DynEnum_Handler.cpp
new file mode 100644
index 00000000000..2b01a870ba6
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/DynAny_Handler/DynEnum_Handler.h b/modules/CIAO/tools/Config_Handlers/DynAny_Handler/DynEnum_Handler.h
new file mode 100644
index 00000000000..8eaa1f11897
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/DynAny_Handler/DynSequence_Handler.cpp b/modules/CIAO/tools/Config_Handlers/DynAny_Handler/DynSequence_Handler.cpp
new file mode 100644
index 00000000000..6da77d30e75
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/DynAny_Handler/DynSequence_Handler.h b/modules/CIAO/tools/Config_Handlers/DynAny_Handler/DynSequence_Handler.h
new file mode 100644
index 00000000000..7d6a5b6ba6c
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/DynAny_Handler/DynStruct_Handler.cpp b/modules/CIAO/tools/Config_Handlers/DynAny_Handler/DynStruct_Handler.cpp
new file mode 100644
index 00000000000..b075d418e7b
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/DynAny_Handler/DynStruct_Handler.h b/modules/CIAO/tools/Config_Handlers/DynAny_Handler/DynStruct_Handler.h
new file mode 100644
index 00000000000..554912378c6
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/DynAny_Handler/dynany_test.idl b/modules/CIAO/tools/Config_Handlers/DynAny_Handler/dynany_test.idl
new file mode 100644
index 00000000000..0ffecc5c757
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/DynAny_Handler/test.cpp b/modules/CIAO/tools/Config_Handlers/DynAny_Handler/test.cpp
new file mode 100644
index 00000000000..e03f21236b1
--- /dev/null
+++ b/modules/CIAO/tools/Config_Handlers/DynAny_Handler/test.cpp
@@ -0,0 +1,291 @@
+// $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 ("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/tools/Config_Handlers/DynAny_Handler/test.mpc b/modules/CIAO/tools/Config_Handlers/DynAny_Handler/test.mpc
new file mode 100644
index 00000000000..55ce7ca31ec
--- /dev/null
+++ b/modules/CIAO/tools/Config_Handlers/DynAny_Handler/test.mpc
@@ -0,0 +1,16 @@
+// $Id$
+project (XSC_DynAny_Test) : ciao_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/tools/Config_Handlers/ERE_Handler.cpp b/modules/CIAO/tools/Config_Handlers/ERE_Handler.cpp
new file mode 100644
index 00000000000..916601b7052
--- /dev/null
+++ b/modules/CIAO/tools/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 "ciao/Logger/Log_Macros.h"
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ void
+ ERE_Handler::external_ref_endpoints (
+ const PlanConnectionDescription &src,
+ Deployment::ExternalReferenceEndpoints &dest)
+ {
+ CIAO_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)
+ {
+ CIAO_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)
+ {
+ CIAO_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/tools/Config_Handlers/ERE_Handler.h b/modules/CIAO/tools/Config_Handlers/ERE_Handler.h
new file mode 100644
index 00000000000..5e4d1e1054e
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/ESD_Handler.cpp b/modules/CIAO/tools/Config_Handlers/ESD_Handler.cpp
new file mode 100644
index 00000000000..5e1647f93b9
--- /dev/null
+++ b/modules/CIAO/tools/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)
+ {
+ CIAO_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)
+ {
+ CIAO_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)
+ {
+ CIAO_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/tools/Config_Handlers/ESD_Handler.h b/modules/CIAO/tools/Config_Handlers/ESD_Handler.h
new file mode 100644
index 00000000000..b20828a9713
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/IDD_Handler.cpp b/modules/CIAO/tools/Config_Handlers/IDD_Handler.cpp
new file mode 100644
index 00000000000..152dee8c078
--- /dev/null
+++ b/modules/CIAO/tools/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)
+ {
+ CIAO_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)
+ {
+ CIAO_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)
+ {
+ CIAO_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/tools/Config_Handlers/IDD_Handler.h b/modules/CIAO/tools/Config_Handlers/IDD_Handler.h
new file mode 100644
index 00000000000..313b7d9e6b2
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/IDREF_Base.cpp b/modules/CIAO/tools/Config_Handlers/IDREF_Base.cpp
new file mode 100644
index 00000000000..4df3c5863c7
--- /dev/null
+++ b/modules/CIAO/tools/Config_Handlers/IDREF_Base.cpp
@@ -0,0 +1,111 @@
+// $Id$
+
+#ifndef IDREF_BASE_CPP
+#define IDREF_BASE_CPP
+
+#include "ciao/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)
+ {
+ CIAO_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.
+ CIAO_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)
+ {
+ CIAO_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)
+ {
+ CIAO_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)
+ {
+ CIAO_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/tools/Config_Handlers/IDREF_Base.h b/modules/CIAO/tools/Config_Handlers/IDREF_Base.h
new file mode 100644
index 00000000000..3707f66142d
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/ID_Handler.cpp b/modules/CIAO/tools/Config_Handlers/ID_Handler.cpp
new file mode 100644
index 00000000000..463aa2e7bcc
--- /dev/null
+++ b/modules/CIAO/tools/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 "ciao/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)
+ {
+
+ CIAO_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)
+ {
+ CIAO_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/tools/Config_Handlers/ID_Handler.h b/modules/CIAO/tools/Config_Handlers/ID_Handler.h
new file mode 100644
index 00000000000..bea6ec2b1a6
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/IRDD_Handler.cpp b/modules/CIAO/tools/Config_Handlers/IRDD_Handler.cpp
new file mode 100644
index 00000000000..6b3fe17d249
--- /dev/null
+++ b/modules/CIAO/tools/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 "ciao/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)
+ {
+ CIAO_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)
+ {
+ CIAO_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/tools/Config_Handlers/IRDD_Handler.h b/modules/CIAO/tools/Config_Handlers/IRDD_Handler.h
new file mode 100644
index 00000000000..dc4955988ee
--- /dev/null
+++ b/modules/CIAO/tools/Config_Handlers/IRDD_Handler.h
@@ -0,0 +1,74 @@
+//==============================================================
+/**
+* @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/tools/Config_Handlers/MDD_Handler.cpp b/modules/CIAO/tools/Config_Handlers/MDD_Handler.cpp
new file mode 100644
index 00000000000..5e3466351a9
--- /dev/null
+++ b/modules/CIAO/tools/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)
+ {
+ CIAO_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)
+ {
+ CIAO_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/tools/Config_Handlers/MDD_Handler.h b/modules/CIAO/tools/Config_Handlers/MDD_Handler.h
new file mode 100644
index 00000000000..c36efe6885b
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/PCD_Handler.cpp b/modules/CIAO/tools/Config_Handlers/PCD_Handler.cpp
new file mode 100644
index 00000000000..899b388211e
--- /dev/null
+++ b/modules/CIAO/tools/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 "ciao/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)
+ {
+ CIAO_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)
+ {
+ CIAO_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/tools/Config_Handlers/PCD_Handler.h b/modules/CIAO/tools/Config_Handlers/PCD_Handler.h
new file mode 100644
index 00000000000..3813fa2badc
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/PL_Handler.cpp b/modules/CIAO/tools/Config_Handlers/PL_Handler.cpp
new file mode 100644
index 00000000000..d7258893f30
--- /dev/null
+++ b/modules/CIAO/tools/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 "ciao/Logger/Log_Macros.h"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ void
+ PL_Handler::get_PlanLocality (const PlanLocality &desc,
+ Deployment::PlanLocality &toconfig)
+ {
+ CIAO_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/tools/Config_Handlers/PL_Handler.h b/modules/CIAO/tools/Config_Handlers/PL_Handler.h
new file mode 100644
index 00000000000..0511b81be48
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/PSPE_Handler.cpp b/modules/CIAO/tools/Config_Handlers/PSPE_Handler.cpp
new file mode 100644
index 00000000000..28d29bf8f34
--- /dev/null
+++ b/modules/CIAO/tools/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)
+ {
+ CIAO_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)
+ {
+ CIAO_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
+ CIAO_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/tools/Config_Handlers/PSPE_Handler.h b/modules/CIAO/tools/Config_Handlers/PSPE_Handler.h
new file mode 100644
index 00000000000..aeb92da9eb0
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/Package_Handlers/CAD_Handler.cpp b/modules/CIAO/tools/Config_Handlers/Package_Handlers/CAD_Handler.cpp
new file mode 100644
index 00000000000..28df2abe65f
--- /dev/null
+++ b/modules/CIAO/tools/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)
+ {
+ CIAO_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)
+ {
+ CIAO_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)
+ {
+ CIAO_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)
+ {
+ CIAO_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)
+ {
+ CIAO_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)
+ {
+ CIAO_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)
+ {
+ CIAO_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)
+ {
+ CIAO_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)
+ {
+ CIAO_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*/)
+ {
+ CIAO_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/tools/Config_Handlers/Package_Handlers/CAD_Handler.h b/modules/CIAO/tools/Config_Handlers/Package_Handlers/CAD_Handler.h
new file mode 100644
index 00000000000..b42f13dcdc3
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/Package_Handlers/CID_Handler.cpp b/modules/CIAO/tools/Config_Handlers/Package_Handlers/CID_Handler.cpp
new file mode 100644
index 00000000000..c30ac8e0ae7
--- /dev/null
+++ b/modules/CIAO/tools/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)
+ {
+ CIAO_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)
+ {
+ CIAO_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)
+ {
+ CIAO_TRACE ("IR_Handler::get_ir");
+
+ if (desc.resourceUsage_p ())
+ {
+ switch (desc.resourceUsage ().integral ())
+ {
+ case ResourceUsageKind::None_l:
+ toconfig.resourceUsage = Deployment::None;
+ break;
+
+ case ResourceUsageKind::InstanceUsesResource_l:
+ toconfig.resourceUsage = Deployment::InstanceUsesResource;
+ break;
+
+ case ResourceUsageKind::ResourceUsesInstance_l:
+ toconfig.resourceUsage = Deployment::ResourceUsesInstance;
+ break;
+
+ case ResourceUsageKind::PortUsesResource_l:
+ toconfig.resourceUsage = Deployment::PortUsesResource;
+ break;
+
+ case ResourceUsageKind::ResourceUsesPort_l:
+ toconfig.resourceUsage = Deployment::ResourceUsesPort;
+ break;
+
+ default:
+ throw Config_Error (desc.name (),
+ 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)
+ {
+ CIAO_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)
+ {
+ CIAO_TRACE ("MID_Handler::get_mid");
+
+ toconfig.nodeExecParameter.length (desc.count_nodeExecParameter ());
+ std::for_each (desc.begin_nodeExecParameter (),
+ desc.end_nodeExecParameter (),
+ Property_Functor (toconfig.nodeExecParameter));
+
+ toconfig.componentExecParameter.length (desc.count_componentExecParameter ());
+ std::for_each (desc.begin_componentExecParameter (),
+ desc.end_componentExecParameter (),
+ Property_Functor (toconfig.componentExecParameter));
+
+ toconfig.deployRequirement.length (desc.count_deployRequirement ());
+ while (0)
+ {
+ IR_Handler::handle_ir (*(*desc.begin_deployRequirement ()),
+ toconfig.deployRequirement[0]);
+ }
+ std::for_each (desc.begin_deployRequirement (),
+ desc.end_deployRequirement (),
+ IR_Functor (toconfig.deployRequirement));
+
+ toconfig.primaryArtifact.length (desc.count_primaryArtifact ());
+ SEQ_HAND_GCC_BUG_WORKAROUND (NIA_Handler::handle_nia,
+ (*desc.begin_primaryArtifact ()),
+ toconfig.primaryArtifact);
+ std::for_each (desc.begin_primaryArtifact (),
+ desc.end_primaryArtifact (),
+ NIA_Functor (toconfig.primaryArtifact));
+ }
+
+ static MonolithicImplementationDescription
+ get_mid (const ::Deployment::MonolithicImplementationDescription &/*src*/)
+ {
+ CIAO_TRACE ("MID_Handler::get_mid - reverse");
+
+ MonolithicImplementationDescription retval;
+#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)
+ {
+ CIAO_TRACE ("CID_Handler::component_impl_descr");
+
+ const ComponentImplementationDescription *cid = 0;
+ std::auto_ptr <ComponentImplementationDescription> xsc_cid;
+
+ if (desc.href_p ())
+ {
+ xsc_cid.reset (CID_Handler::resolve_cid ((desc.href ().c_str ())));
+ cid = xsc_cid.get ();
+ }
+ else
+ cid = &desc;
+
+ if (cid->label_p ())
+ toconfig.label = 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)
+ {
+ CIAO_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)
+ {
+ CIAO_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/tools/Config_Handlers/Package_Handlers/CID_Handler.h b/modules/CIAO/tools/Config_Handlers/Package_Handlers/CID_Handler.h
new file mode 100644
index 00000000000..d00304d8cfe
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/Package_Handlers/CPD_Handler.cpp b/modules/CIAO/tools/Config_Handlers/Package_Handlers/CPD_Handler.cpp
new file mode 100644
index 00000000000..885e76b005a
--- /dev/null
+++ b/modules/CIAO/tools/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)
+ {
+ CIAO_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)
+ {
+ CIAO_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)
+ {
+ CIAO_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)
+ {
+ CIAO_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)
+ {
+ CIAO_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/tools/Config_Handlers/Package_Handlers/CPD_Handler.h b/modules/CIAO/tools/Config_Handlers/Package_Handlers/CPD_Handler.h
new file mode 100644
index 00000000000..049b2a72cb2
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.cpp b/modules/CIAO/tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.cpp
new file mode 100644
index 00000000000..424985705d8
--- /dev/null
+++ b/modules/CIAO/tools/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 "tools/Config_Handlers/CPD_Handler.h"
+#include "ciao/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)
+ {
+ CIAO_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)
+ {
+ CIAO_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)
+ {
+ CIAO_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)
+ {
+ CIAO_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)
+ {
+ CIAO_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/tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.h b/modules/CIAO/tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.h
new file mode 100644
index 00000000000..4655edfa97b
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/Package_Handlers/IAD_Handler.cpp b/modules/CIAO/tools/Config_Handlers/Package_Handlers/IAD_Handler.cpp
new file mode 100644
index 00000000000..0ef8e6bda5f
--- /dev/null
+++ b/modules/CIAO/tools/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 "ciao/Logger/Log_Macros.h"
+
+namespace CIAO
+{
+ namespace Config_Handlers
+ {
+ namespace Packaging
+ {
+
+ void
+ IAD_Handler::impl_artifact_descr (const ImplementationArtifactDescription &desc,
+ ::Deployment::ImplementationArtifactDescription &toconfig)
+ {
+ CIAO_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)
+ {
+ CIAO_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)
+ {
+ CIAO_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/tools/Config_Handlers/Package_Handlers/IAD_Handler.h b/modules/CIAO/tools/Config_Handlers/Package_Handlers/IAD_Handler.h
new file mode 100644
index 00000000000..89fdab073bf
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/Package_Handlers/NIA_Handler.h b/modules/CIAO/tools/Config_Handlers/Package_Handlers/NIA_Handler.h
new file mode 100644
index 00000000000..923104dc27b
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp b/modules/CIAO/tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp
new file mode 100644
index 00000000000..f1faaf68295
--- /dev/null
+++ b/modules/CIAO/tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp
@@ -0,0 +1,165 @@
+// $Id$
+#include "tao/AnyTypeCode/AnyTypeCode_methods.h"
+#include "ciao/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)
+ {
+ CIAO_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)
+ {
+ CIAO_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/tools/Config_Handlers/Package_Handlers/PCD_Handler.h b/modules/CIAO/tools/Config_Handlers/Package_Handlers/PCD_Handler.h
new file mode 100644
index 00000000000..b1a0c377d9d
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/Package_Handlers/PC_Intf.cpp b/modules/CIAO/tools/Config_Handlers/Package_Handlers/PC_Intf.cpp
new file mode 100644
index 00000000000..19125aebb92
--- /dev/null
+++ b/modules/CIAO/tools/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 "ciao/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)
+ {
+ CIAO_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/tools/Config_Handlers/Package_Handlers/PC_Intf.h b/modules/CIAO/tools/Config_Handlers/Package_Handlers/PC_Intf.h
new file mode 100644
index 00000000000..c15ae0389b9
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/Package_Handlers/Package_Handlers.mpc b/modules/CIAO/tools/Config_Handlers/Package_Handlers/Package_Handlers.mpc
new file mode 100644
index 00000000000..0f898981ef3
--- /dev/null
+++ b/modules/CIAO/tools/Config_Handlers/Package_Handlers/Package_Handlers.mpc
@@ -0,0 +1,52 @@
+// $Id$
+
+project (Package_Config_Handlers) : acelib, dance_deployment_stub, ciao_config_handlers_base, dance, typecodefactory, ciao_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
+ }
+
+}
+
+project (Package_Config_Handlers_Tests) : dance_deployment_stub, ciao_config_handlers, ifr_client {
+ exename = test
+ macros += XML_USE_PTHREADS
+ requires += dummy_label
+
+ Source_Files {
+ test.cpp
+ }
+}
diff --git a/modules/CIAO/tools/Config_Handlers/Package_Handlers/Packaging_Handlers_Export.h b/modules/CIAO/tools/Config_Handlers/Package_Handlers/Packaging_Handlers_Export.h
new file mode 100644
index 00000000000..86193a1a664
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/Package_Handlers/SID_Handler.cpp b/modules/CIAO/tools/Config_Handlers/Package_Handlers/SID_Handler.cpp
new file mode 100644
index 00000000000..a9947281202
--- /dev/null
+++ b/modules/CIAO/tools/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)
+ {
+ CIAO_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)
+ {
+ CIAO_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/tools/Config_Handlers/Package_Handlers/SID_Handler.h b/modules/CIAO/tools/Config_Handlers/Package_Handlers/SID_Handler.h
new file mode 100644
index 00000000000..2083b91b9b6
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/Package_Handlers/test.cpp b/modules/CIAO/tools/Config_Handlers/Package_Handlers/test.cpp
new file mode 100644
index 00000000000..c107fed4a77
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/Property_Handler.cpp b/modules/CIAO/tools/Config_Handlers/Property_Handler.cpp
new file mode 100644
index 00000000000..0f81f8c6d82
--- /dev/null
+++ b/modules/CIAO/tools/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 "ciao/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)
+ {
+ CIAO_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)
+ {
+ CIAO_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/tools/Config_Handlers/Property_Handler.h b/modules/CIAO/tools/Config_Handlers/Property_Handler.h
new file mode 100644
index 00000000000..422aa1d4a44
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/RDD_Handler.cpp b/modules/CIAO/tools/Config_Handlers/RDD_Handler.cpp
new file mode 100644
index 00000000000..de4c06368d1
--- /dev/null
+++ b/modules/CIAO/tools/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 "ciao/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)
+ {
+ CIAO_TRACE("RDD_Handler::resource_deployment_descr");
+
+ dest.requirementName = ACE_TEXT_ALWAYS_CHAR ( src.requirementName ().c_str ());
+
+ dest.resourceName= ACE_TEXT_ALWAYS_CHAR (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)
+ {
+ CIAO_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/tools/Config_Handlers/RDD_Handler.h b/modules/CIAO/tools/Config_Handlers/RDD_Handler.h
new file mode 100644
index 00000000000..e0d19c58ee2
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/Req_Handler.cpp b/modules/CIAO/tools/Config_Handlers/Req_Handler.cpp
new file mode 100644
index 00000000000..3d0b4f47ea5
--- /dev/null
+++ b/modules/CIAO/tools/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 "ciao/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)
+ {
+ CIAO_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)
+ {
+ CIAO_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/tools/Config_Handlers/Req_Handler.h b/modules/CIAO/tools/Config_Handlers/Req_Handler.h
new file mode 100644
index 00000000000..3955b85a55f
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/STD_CID_Handler.cpp b/modules/CIAO/tools/Config_Handlers/STD_CID_Handler.cpp
new file mode 100644
index 00000000000..d0bd4e92904
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/STD_CID_Handler.h b/modules/CIAO/tools/Config_Handlers/STD_CID_Handler.h
new file mode 100644
index 00000000000..c875d05edba
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/STD_CPD_Handler.cpp b/modules/CIAO/tools/Config_Handlers/STD_CPD_Handler.cpp
new file mode 100644
index 00000000000..c9fa40f0258
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/STD_CPD_Handler.h b/modules/CIAO/tools/Config_Handlers/STD_CPD_Handler.h
new file mode 100644
index 00000000000..654fb0155ca
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/STD_IAD_Handler.cpp b/modules/CIAO/tools/Config_Handlers/STD_IAD_Handler.cpp
new file mode 100644
index 00000000000..020396582d3
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/STD_IAD_Handler.h b/modules/CIAO/tools/Config_Handlers/STD_IAD_Handler.h
new file mode 100644
index 00000000000..3523526f5be
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/STD_PCD_Handler.cpp b/modules/CIAO/tools/Config_Handlers/STD_PCD_Handler.cpp
new file mode 100644
index 00000000000..5a65826f340
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/STD_PCD_Handler.h b/modules/CIAO/tools/Config_Handlers/STD_PCD_Handler.h
new file mode 100644
index 00000000000..8c65f6eb6f3
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/STD_PC_Intf.cpp b/modules/CIAO/tools/Config_Handlers/STD_PC_Intf.cpp
new file mode 100644
index 00000000000..4a865f19603
--- /dev/null
+++ b/modules/CIAO/tools/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 "ciao/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)
+ {
+ CIAO_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/tools/Config_Handlers/STD_PC_Intf.h b/modules/CIAO/tools/Config_Handlers/STD_PC_Intf.h
new file mode 100644
index 00000000000..2e07e1922eb
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/SatisfierProperty_Handler.cpp b/modules/CIAO/tools/Config_Handlers/SatisfierProperty_Handler.cpp
new file mode 100644
index 00000000000..7cac0b919ea
--- /dev/null
+++ b/modules/CIAO/tools/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 "ciao/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)
+ {
+ CIAO_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)
+ {
+ CIAO_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/tools/Config_Handlers/SatisfierProperty_Handler.h b/modules/CIAO/tools/Config_Handlers/SatisfierProperty_Handler.h
new file mode 100644
index 00000000000..e166b341d9f
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/Utils/Exceptions.h b/modules/CIAO/tools/Config_Handlers/Utils/Exceptions.h
new file mode 100644
index 00000000000..63b3563c879
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/Utils/Functors.h b/modules/CIAO/tools/Config_Handlers/Utils/Functors.h
new file mode 100644
index 00000000000..41121241572
--- /dev/null
+++ b/modules/CIAO/tools/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__ == 0x564)
+ 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/tools/Config_Handlers/XMI.cpp b/modules/CIAO/tools/Config_Handlers/XMI.cpp
new file mode 100644
index 00000000000..66c0ee02f0e
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XMI.hpp b/modules/CIAO/tools/Config_Handlers/XMI.hpp
new file mode 100644
index 00000000000..143691b8d4a
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XMLSchema/Traversal.hpp b/modules/CIAO/tools/Config_Handlers/XMLSchema/Traversal.hpp
new file mode 100644
index 00000000000..24fa7a9eb6e
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XMLSchema/Traversal.ipp b/modules/CIAO/tools/Config_Handlers/XMLSchema/Traversal.ipp
new file mode 100644
index 00000000000..a5c614182a3
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XMLSchema/Traversal.tpp b/modules/CIAO/tools/Config_Handlers/XMLSchema/Traversal.tpp
new file mode 100644
index 00000000000..d79c13630fb
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XMLSchema/TypeInfo.hpp b/modules/CIAO/tools/Config_Handlers/XMLSchema/TypeInfo.hpp
new file mode 100644
index 00000000000..e4fa52dbb9c
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XMLSchema/TypeInfo.ipp b/modules/CIAO/tools/Config_Handlers/XMLSchema/TypeInfo.ipp
new file mode 100644
index 00000000000..5b9422f38c8
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XMLSchema/TypeInfo.tpp b/modules/CIAO/tools/Config_Handlers/XMLSchema/TypeInfo.tpp
new file mode 100644
index 00000000000..918197937b7
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XMLSchema/Types.hpp b/modules/CIAO/tools/Config_Handlers/XMLSchema/Types.hpp
new file mode 100644
index 00000000000..9f4ea91f3c4
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XMLSchema/Types.ipp b/modules/CIAO/tools/Config_Handlers/XMLSchema/Types.ipp
new file mode 100644
index 00000000000..6b749260f55
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XMLSchema/Types.tpp b/modules/CIAO/tools/Config_Handlers/XMLSchema/Types.tpp
new file mode 100644
index 00000000000..4a8bddcf597
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XMLSchema/Writer.hpp b/modules/CIAO/tools/Config_Handlers/XMLSchema/Writer.hpp
new file mode 100644
index 00000000000..4a0c1603efa
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XMLSchema/Writer.ipp b/modules/CIAO/tools/Config_Handlers/XMLSchema/Writer.ipp
new file mode 100644
index 00000000000..2b7c9a4b939
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XMLSchema/Writer.tpp b/modules/CIAO/tools/Config_Handlers/XMLSchema/Writer.tpp
new file mode 100644
index 00000000000..6c57de04d81
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XMLSchema/id_map.hpp b/modules/CIAO/tools/Config_Handlers/XMLSchema/id_map.hpp
new file mode 100644
index 00000000000..a2843d44693
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XML_File_Intf.cpp b/modules/CIAO/tools/Config_Handlers/XML_File_Intf.cpp
new file mode 100644
index 00000000000..e6c514eebad
--- /dev/null
+++ b/modules/CIAO/tools/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 "ciao/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)
+ {
+ CIAO_TRACE("XML_File_Intf::read_process_file");
+
+ try
+ {
+ if (!XML_Helper::XML_HELPER.is_initialized ())
+ return false;
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO "XML_File_Intf::read_process_file - "
+ "Constructing DOM\n"));
+ XERCES_CPP_NAMESPACE::DOMDocument *dom =
+ XML_Helper::XML_HELPER.create_dom ((file));
+
+ if (dom == 0)
+ {
+ CIAO_DEBUG ((LM_TRACE, CLINFO "XML_File_Intf::read_process_file - "
+ "Failed to open file %s\n", file));
+ return false;
+ }
+
+ XERCES_CPP_NAMESPACE::DOMElement *foo = dom->getDocumentElement ();
+ CIAO_DEBUG ((LM_TRACE, CLINFO "XML_File_Intf::read_process_file - "
+ "DOMElement pointer: %u\n", foo));
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO "XML_File_Intf::read_process_file - "
+ "Parsing XML file with XSC\n"));
+ deploymentPlan dp =
+ CIAO::Config_Handlers::reader::DeploymentPlan (dom);
+
+ CIAO_DEBUG ((LM_TRACE, CLINFO "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)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "XML_File_Intf::error at %C: %C\n",
+ ex.name_.c_str (), ex.error_.c_str ()));
+ }
+ catch (...)
+ {
+ CIAO_ERROR ((LM_ERROR, CLINFO "XML_File_Intf::caught - "
+ "Unexpected exception whilst parsing XML into IDL.\n"));
+ }
+
+ return false;
+ }
+
+ ::Deployment::DeploymentPlan const *
+ XML_File_Intf::get_plan (void)
+ {
+ CIAO_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)
+ {
+ CIAO_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/tools/Config_Handlers/XML_File_Intf.h b/modules/CIAO/tools/Config_Handlers/XML_File_Intf.h
new file mode 100644
index 00000000000..fd086836b78
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XML_Typedefs.cpp b/modules/CIAO/tools/Config_Handlers/XML_Typedefs.cpp
new file mode 100644
index 00000000000..9d57ac17e92
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XML_Typedefs.h b/modules/CIAO/tools/Config_Handlers/XML_Typedefs.h
new file mode 100644
index 00000000000..f0054df2e57
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XSCRT/Elements.hpp b/modules/CIAO/tools/Config_Handlers/XSCRT/Elements.hpp
new file mode 100644
index 00000000000..0c8b6979282
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XSCRT/Elements.ipp b/modules/CIAO/tools/Config_Handlers/XSCRT/Elements.ipp
new file mode 100644
index 00000000000..414f03eb031
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XSCRT/Elements.tpp b/modules/CIAO/tools/Config_Handlers/XSCRT/Elements.tpp
new file mode 100644
index 00000000000..7539a36d75f
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XSCRT/ExtendedTypeInfo.hpp b/modules/CIAO/tools/Config_Handlers/XSCRT/ExtendedTypeInfo.hpp
new file mode 100644
index 00000000000..e2ab4b64956
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XSCRT/ExtendedTypeInfo.ipp b/modules/CIAO/tools/Config_Handlers/XSCRT/ExtendedTypeInfo.ipp
new file mode 100644
index 00000000000..6c4fba2cf88
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XSCRT/Parser.hpp b/modules/CIAO/tools/Config_Handlers/XSCRT/Parser.hpp
new file mode 100644
index 00000000000..5fa1e827f8d
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XSCRT/Parser.ipp b/modules/CIAO/tools/Config_Handlers/XSCRT/Parser.ipp
new file mode 100644
index 00000000000..f7de09602ae
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XSCRT/Parser.tpp b/modules/CIAO/tools/Config_Handlers/XSCRT/Parser.tpp
new file mode 100644
index 00000000000..75b9f48eb1f
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XSCRT/Traversal.hpp b/modules/CIAO/tools/Config_Handlers/XSCRT/Traversal.hpp
new file mode 100644
index 00000000000..482d5fc77e1
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XSCRT/Traversal.ipp b/modules/CIAO/tools/Config_Handlers/XSCRT/Traversal.ipp
new file mode 100644
index 00000000000..bc2a462334a
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XSCRT/Traversal.tpp b/modules/CIAO/tools/Config_Handlers/XSCRT/Traversal.tpp
new file mode 100644
index 00000000000..51889c0fb9b
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XSCRT/Writer.hpp b/modules/CIAO/tools/Config_Handlers/XSCRT/Writer.hpp
new file mode 100644
index 00000000000..6fdd82f6f3e
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XSCRT/Writer.ipp b/modules/CIAO/tools/Config_Handlers/XSCRT/Writer.ipp
new file mode 100644
index 00000000000..caa9fc99235
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XSCRT/Writer.tpp b/modules/CIAO/tools/Config_Handlers/XSCRT/Writer.tpp
new file mode 100644
index 00000000000..8593004687f
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XSCRT/XML.hpp b/modules/CIAO/tools/Config_Handlers/XSCRT/XML.hpp
new file mode 100644
index 00000000000..d0fdd30affe
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XSCRT/XML.ipp b/modules/CIAO/tools/Config_Handlers/XSCRT/XML.ipp
new file mode 100644
index 00000000000..4a7b83efd1c
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XSCRT/XML.tpp b/modules/CIAO/tools/Config_Handlers/XSCRT/XML.tpp
new file mode 100644
index 00000000000..63023a05d28
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XSCRT/XMLSchema.hpp b/modules/CIAO/tools/Config_Handlers/XSCRT/XMLSchema.hpp
new file mode 100644
index 00000000000..95575267eee
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/XSC_XML_Handlers_Export.h b/modules/CIAO/tools/Config_Handlers/XSC_XML_Handlers_Export.h
new file mode 100644
index 00000000000..82272eb6c05
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/ccd.cpp b/modules/CIAO/tools/Config_Handlers/ccd.cpp
new file mode 100644
index 00000000000..8ed4163970b
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/ccd.hpp b/modules/CIAO/tools/Config_Handlers/ccd.hpp
new file mode 100644
index 00000000000..7bb0245ead6
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/cdd.cpp b/modules/CIAO/tools/Config_Handlers/cdd.cpp
new file mode 100644
index 00000000000..4dc1a9d9915
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/cdd.hpp b/modules/CIAO/tools/Config_Handlers/cdd.hpp
new file mode 100644
index 00000000000..37cf50be3db
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/cdp.cpp b/modules/CIAO/tools/Config_Handlers/cdp.cpp
new file mode 100644
index 00000000000..f1e8538a788
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/cdp.hpp b/modules/CIAO/tools/Config_Handlers/cdp.hpp
new file mode 100644
index 00000000000..9b1e5f0bc9e
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/cid.cpp b/modules/CIAO/tools/Config_Handlers/cid.cpp
new file mode 100644
index 00000000000..32e9bb6b924
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/cid.hpp b/modules/CIAO/tools/Config_Handlers/cid.hpp
new file mode 100644
index 00000000000..dbf48c94913
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/cpd.cpp b/modules/CIAO/tools/Config_Handlers/cpd.cpp
new file mode 100644
index 00000000000..14774d2a6f0
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/cpd.hpp b/modules/CIAO/tools/Config_Handlers/cpd.hpp
new file mode 100644
index 00000000000..a6a295393bb
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/iad.cpp b/modules/CIAO/tools/Config_Handlers/iad.cpp
new file mode 100644
index 00000000000..a3fbba62363
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/iad.hpp b/modules/CIAO/tools/Config_Handlers/iad.hpp
new file mode 100644
index 00000000000..e26a5a4e1fb
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/pcd.cpp b/modules/CIAO/tools/Config_Handlers/pcd.cpp
new file mode 100644
index 00000000000..6418d0172dc
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/pcd.hpp b/modules/CIAO/tools/Config_Handlers/pcd.hpp
new file mode 100644
index 00000000000..8d8d6828bab
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/test.cdp b/modules/CIAO/tools/Config_Handlers/test.cdp
new file mode 100644
index 00000000000..2430859601b
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/test.cpp b/modules/CIAO/tools/Config_Handlers/test.cpp
new file mode 100644
index 00000000000..fd50374aa7e
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/toplevel.cpp b/modules/CIAO/tools/Config_Handlers/toplevel.cpp
new file mode 100644
index 00000000000..a59893146bb
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/Config_Handlers/toplevel.hpp b/modules/CIAO/tools/Config_Handlers/toplevel.hpp
new file mode 100644
index 00000000000..e88d2625e26
--- /dev/null
+++ b/modules/CIAO/tools/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/tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc b/modules/CIAO/tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc
new file mode 100644
index 00000000000..1b001b04943
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc
@@ -0,0 +1,66 @@
+// -*- MPC -*-
+// $Id$
+
+project(TAO_IDL3_TO_IDL2_BE) : acelib, install, ciao_output, crosscompile, tao_idl_fe {
+ sharedname = TAO_IDL3_TO_IDL2_BE
+ dynamicflags = TAO_IDL3_TO_IDL2_BE_BUILD_DLL
+
+ // This is necessary for MPC to pull in rules.ciao.GNU
+ includes += $(CIAO_ROOT)
+
+ Source_Files {
+ basic_visitor.cpp
+ be_global.cpp
+ be_helper.cpp
+ be_init.cpp
+ be_produce.cpp
+ be_sunsoft.cpp
+ checking_visitor.cpp
+ identifier_helper.cpp
+ idl3_to_idl2_visitor.cpp
+ }
+
+ Header_Files {
+ basic_visitor.h
+ be_extern.h
+ be_global.h
+ be_helper.h
+ be_sunsoft.h
+ checking_visitor.h
+ identifier_helper.h
+ idl3_to_idl2_visitor.h
+ TAO_IDL3_TO_IDL2_BE_Export.h
+ }
+}
+
+project(TAO_IDL3_TO_IDL2_EXE) : aceexe, install, ciao_output, crosscompile, tao_idl_mcpp, tao_idl_fe {
+ after += TAO_IDL3_TO_IDL2_BE
+ exename = tao_idl3_to_idl2
+ libs += TAO_IDL3_TO_IDL2_BE
+ includes += $(TAO_ROOT)
+ exeout = $(CIAO_ROOT)/bin
+
+ // Adding a strict ordering dependency with TAO_IDL_EXE. It appears on some systems, there
+ // can be a race between these two projects for tao_idl.cpp, causing some erroors.
+ after += TAO_IDL_EXE
+
+ // This is necessary for MPC to pull in rules.ciao.GNU
+ includes += $(CIAO_ROOT) .
+
+ verbatim(gnuace, local) {
+ ifeq ($(TAO_IDL_PREPROCESSOR),)
+ CPPFLAGS += -DTAO_IDL_PREPROCESSOR=\\\"$(strip $(CXX))\\\"
+ else
+ CPPFLAGS += -DTAO_IDL_PREPROCESSOR=\\\"$(subst \\,\\,$(TAO_IDL_PREPROCESSOR))\\\"
+ endif
+ }
+
+ Source_Files {
+ $(TAO_ROOT)/TAO_IDL/driver/drv_args.cpp
+ $(TAO_ROOT)/TAO_IDL/tao_idl.cpp
+ }
+
+ Header_Files {
+ $(TAO_ROOT)/TAO_IDL/include/drv_extern.h
+ }
+}
diff --git a/modules/CIAO/tools/IDL3_to_IDL2/README b/modules/CIAO/tools/IDL3_to_IDL2/README
new file mode 100644
index 00000000000..b0732e2c304
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_IDL2/README
@@ -0,0 +1,140 @@
+
+ IDL3 To IDL2 Converter
+
+A pluggable back end used with the IDL compiler parser
+and command line processor, this tool converts CCM-related
+IDL constructs into their corresponding IDL2 equivalents,
+in a new IDL file. For more information about CIAO, please see
+
+$CIAO_ROOT/docs/releasenotes/index.html
+
+COMPILING:
+
+Use the provided .mpc file to generate a project or makefile to
+compile the pluggable back end library and the executable.
+Make sure the TAO IDL compiler front end is already built.
+
+EXECUTABLE NAME:
+
+tao_idl3_to_idl2
+
+COMMAND LINE OPTIONS:
+
+All the usual front-end command line options that apply to the IDL compiler
+(such as path includes) work with this tool as well, since the IDL compiler
+front end is simply reused. The options -? or -h will display a usage
+message, including both front end and back end options. For a complete
+list of IDL compiler command line options and a description of each, see
+TAO/docs/compiler.html.
+
+BACKEND OPTIONS:
+
+-o <path> Also works the same as with the IDL compiler, setting the
+output directory, overriding the default, which is the directory of
+execution.
+
+-e Generates a file foo_IDL2.idl from foo.idl that simply includes
+foo.idl instead of generating its IDL declarations. Note that this
+option takes effect only if foo.idl contains no 'IDL3' declarations,
+otherwise it's a no-op.
+
+Note that the original -x <filename> option (which manually excludes
+an included IDL file from being transformed to an include of the
+'_IDL2' decorated corresponding file) has been eliminated. This
+option was intended for included IDL files that contained no IDL3
+constructs, and therefore didn't need processing by this tool.
+Detection of such included files is now automatic, and the processed
+include filename will appear accordingly.
+
+CAVEAT:
+
+When using the TAO IDL compiler on files that are generated by this tool,
+use the command line option -Sm on the IDL compiler, which will disable
+the internal generation of equivalent IDL nodes in the AST. You'll notice
+from the example below that the only ones that remain are eventtypes.
+The -Sm option will prevent the IDL compiler from trying to create the
+corresponding xxxConsumer interface, which now already exists explicitly
+in IDL.
+
+EXAMPLE CONVERSION:
+
+
+// test.idl
+
+#include <Components.idl>
+
+interface Foo {};
+
+eventtype Ev {};
+
+component Bar
+{
+ uses multiple Foo needs_foo;
+ publishes Ev ev_pub;
+};
+
+home BarHome manages Bar
+{
+};
+
+
+Typing
+
+tao_idl3_to_idl2 -I<CIAO_ROOT>/ciao -I<TAO_ROOT> test.idl
+
+will generate
+
+
+
+// test_IDL2.idl
+
+#include "Components.idl"
+
+interface Foo {};
+
+eventtype Ev {};
+
+interface EvConsumer : Components::EventConsumerBase
+{
+ void push_Ev (in Ev the_Ev);
+};
+
+interface Bar : Components::CCMObject
+{
+ struct needs_fooConnection
+ {
+ Foo objref;
+ Components::Cookie ck;
+ };
+
+ typedef sequence<needs_fooConnection> needs_fooConnections;
+
+ Components::Cookie connect_needs_foo (in Foo connection)
+ raises (Components::ExceededConnectionLimit, Components::InvalidConnection);
+
+ Foo disconnect_needs_foo (in Components::Cookie ck)
+ raises (Components::InvalidConnection);
+
+ needs_fooConnections get_connections_needs_foo ();
+
+ Components::Cookie subscribe_ev_pub (in EvConsumer consumer)
+ raises (Components::ExceededConnectionLimit);
+
+ EvConsumer unsubscribe_ev_pub (in Components::Cookie ck)
+ raises (Components::InvalidConnection);
+};
+
+interface BarHomeExplicit : Components::CCMHome
+{
+};
+
+interface BarHomeImplicit : Components::KeylessCCMHome
+{
+ Bar create ()
+ raises (Components::CreateFailure);
+};
+
+interface BarHome : BarHomeExplicit, BarHomeImplicit
+{
+};
+
diff --git a/modules/CIAO/tools/IDL3_to_IDL2/TAO_IDL3_TO_IDL2_BE_Export.h b/modules/CIAO/tools/IDL3_to_IDL2/TAO_IDL3_TO_IDL2_BE_Export.h
new file mode 100644
index 00000000000..7b54e254326
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_IDL2/TAO_IDL3_TO_IDL2_BE_Export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl TAO_IDL3_TO_IDL2_BE
+// ------------------------------
+#ifndef TAO_IDL3_TO_IDL2_BE_EXPORT_H
+#define TAO_IDL3_TO_IDL2_BE_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (TAO_IDL3_TO_IDL2_BE_HAS_DLL)
+# define TAO_IDL3_TO_IDL2_BE_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && TAO_IDL3_TO_IDL2_BE_HAS_DLL */
+
+#if !defined (TAO_IDL3_TO_IDL2_BE_HAS_DLL)
+# define TAO_IDL3_TO_IDL2_BE_HAS_DLL 1
+#endif /* ! TAO_IDL3_TO_IDL2_BE_HAS_DLL */
+
+#if defined (TAO_IDL3_TO_IDL2_BE_HAS_DLL) && (TAO_IDL3_TO_IDL2_BE_HAS_DLL == 1)
+# if defined (TAO_IDL3_TO_IDL2_BE_BUILD_DLL)
+# define TAO_IDL3_TO_IDL2_BE_Export ACE_Proper_Export_Flag
+# define TAO_IDL3_TO_IDL2_BE_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define TAO_IDL3_TO_IDL2_BE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* TAO_IDL3_TO_IDL2_BE_BUILD_DLL */
+# define TAO_IDL3_TO_IDL2_BE_Export ACE_Proper_Import_Flag
+# define TAO_IDL3_TO_IDL2_BE_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define TAO_IDL3_TO_IDL2_BE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* TAO_IDL3_TO_IDL2_BE_BUILD_DLL */
+#else /* TAO_IDL3_TO_IDL2_BE_HAS_DLL == 1 */
+# define TAO_IDL3_TO_IDL2_BE_Export
+# define TAO_IDL3_TO_IDL2_BE_SINGLETON_DECLARATION(T)
+# define TAO_IDL3_TO_IDL2_BE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* TAO_IDL3_TO_IDL2_BE_HAS_DLL == 1 */
+
+// Set TAO_IDL3_TO_IDL2_BE_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (TAO_IDL3_TO_IDL2_BE_NTRACE)
+# if (ACE_NTRACE == 1)
+# define TAO_IDL3_TO_IDL2_BE_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define TAO_IDL3_TO_IDL2_BE_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !TAO_IDL3_TO_IDL2_BE_NTRACE */
+
+#if (TAO_IDL3_TO_IDL2_BE_NTRACE == 1)
+# define TAO_IDL3_TO_IDL2_BE_TRACE(X)
+#else /* (TAO_IDL3_TO_IDL2_BE_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define TAO_IDL3_TO_IDL2_BE_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (TAO_IDL3_TO_IDL2_BE_NTRACE == 1) */
+
+#endif /* TAO_IDL3_TO_IDL2_BE_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tools/IDL3_to_IDL2/basic_visitor.cpp b/modules/CIAO/tools/IDL3_to_IDL2/basic_visitor.cpp
new file mode 100644
index 00000000000..3dcbce5c4c1
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_IDL2/basic_visitor.cpp
@@ -0,0 +1,1211 @@
+/* -*- c++ -*- */
+// $Id$
+
+#include "basic_visitor.h"
+#include "identifier_helper.h"
+#include "be_sunsoft.h"
+#include "be_extern.h"
+
+#include "ast_argument.h"
+#include "ast_array.h"
+#include "ast_attribute.h"
+#include "ast_enum.h"
+#include "ast_enum_val.h"
+#include "ast_exception.h"
+#include "ast_factory.h"
+#include "ast_field.h"
+#include "ast_operation.h"
+#include "ast_root.h"
+#include "ast_sequence.h"
+#include "ast_string.h"
+#include "ast_structure_fwd.h"
+#include "ast_union.h"
+#include "ast_union_branch.h"
+#include "ast_union_fwd.h"
+#include "ast_union_label.h"
+#include "ast_valuebox.h"
+#include "ast_valuetype.h"
+#include "ast_valuetype_fwd.h"
+#include "ast_native.h"
+#include "utl_exceptlist.h"
+#include "utl_idlist.h"
+#include "utl_identifier.h"
+#include "nr_extern.h"
+
+basic_visitor::basic_visitor (void)
+ : os (0),
+ disc_type_ (0)
+{
+}
+
+basic_visitor::~basic_visitor (void)
+{
+ delete this->os;
+ this->os = 0;
+}
+
+int
+basic_visitor::visit_decl (AST_Decl *)
+{
+ return 0;
+}
+
+int
+basic_visitor::visit_scope (UTL_Scope *node)
+{
+ for (UTL_ScopeActiveIterator si (node, UTL_Scope::IK_decls);
+ !si.is_done ();
+ si.next ())
+ {
+ AST_Decl *d = si.item ();
+
+ if (this->scope_skip_type (d))
+ {
+ continue;
+ }
+
+ AST_Decl::NodeType nt = d->node_type ();
+
+ // Want to skip the uses_xxxConnection structs added by uses
+ // multiple ports.
+ // @@@ (JP) This will go away when the visitor is finished, since
+ // those uses_xxxConnection structs will not be added to the AST.
+ if (ScopeAsDecl (node)->node_type () == AST_Decl::NT_component
+ && (nt == AST_Decl::NT_struct
+ || nt == AST_Decl::NT_sequence
+ || nt == AST_Decl::NT_typedef))
+ {
+ continue;
+ }
+
+ if (d->ast_accept (this) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "idl3_to_idl2_visitor::visit_scope - "
+ "codegen for scope failed\n"),
+ -1);
+ }
+ }
+
+ return 0;
+}
+
+int
+basic_visitor::visit_type (AST_Type *)
+{
+ return 0;
+}
+
+int
+basic_visitor::visit_predefined_type (AST_PredefinedType *)
+{
+ return 0;
+}
+
+int
+basic_visitor::visit_interface_fwd (AST_InterfaceFwd *node)
+{
+ if (node->imported ())
+ {
+ return 0;
+ }
+
+ *os << be_nl << be_nl;
+
+ if (node->is_local ())
+ {
+ *os << "local ";
+ }
+
+ if (node->is_abstract ())
+ {
+ *os << "abstract ";
+ }
+
+ *os << "interface "
+ << IdentifierHelper::try_escape (node->original_local_name ()).c_str ()
+ << ";";
+
+ return 0;
+}
+
+int
+basic_visitor::visit_template_interface (AST_Template_Interface *)
+{
+ return 0;
+}
+
+int
+basic_visitor::visit_valuebox (AST_ValueBox *node)
+{
+ if (node->imported ())
+ {
+ return 0;
+ }
+
+ *os << be_nl << be_nl
+ << "valuetype "
+ << IdentifierHelper::try_escape (node->original_local_name ()).c_str ();
+
+ AST_Type *bt = node->boxed_type ();
+
+ // Keep output statements separate because of side effects.
+
+ if (bt->node_type () == AST_Decl::NT_array)
+ {
+ this->gen_anonymous_array (bt, node);
+ }
+ else
+ {
+ *os << this->type_name (bt);
+ }
+
+ *os << ";";
+
+ this->check_id_and_version (node);
+
+ return 0;
+}
+
+int
+basic_visitor::visit_valuetype (AST_ValueType *node)
+{
+ if (node->imported ())
+ {
+ return 0;
+ }
+
+ *os << be_nl << be_nl;
+
+ if (node->is_abstract ())
+ {
+ *os << "abstract ";
+ }
+
+ if (node->custom ())
+ {
+ *os << "custom ";
+ }
+
+ *os << "valuetype "
+ << IdentifierHelper::try_escape (node->original_local_name ()).c_str ();
+
+ AST_Decl::NodeType nt = node->node_type ();
+ AST_Interface **parents = node->inherits ();
+ long ninherits = node->n_inherits ();
+
+ long i = 0;
+ for (i = 0; i < ninherits; ++i)
+ {
+ if (i == 0)
+ {
+ *os << " : ";
+ }
+ else
+ {
+ *os << ", ";
+ }
+
+ *os << IdentifierHelper::orig_sn (parents[i]->name ()).c_str ();
+ }
+
+ if (nt == AST_Decl::NT_eventtype)
+ {
+ *os << (ninherits == 0 ? " : " : ", ")
+ << "Components::EventBase";
+ }
+
+ AST_Interface **supports = node->supports ();
+
+ for (i = 0; i < node->n_supports (); ++i)
+ {
+ if (i == 0)
+ {
+ *os << " supports ";
+ }
+ else
+ {
+ *os << ", ";
+ }
+
+ if (i == 0 && node->supports_concrete () != 0)
+ {
+ supports[i] = node->supports_concrete ();
+ }
+
+ AST_Interface *supported = supports[i];
+
+ *os << IdentifierHelper::orig_sn (supported->name ()).c_str ();
+ }
+
+ *os << be_nl
+ << "{" << be_idt;
+
+ this->check_id_and_version (node);
+ this->check_prefix (node);
+
+ if (this->visit_scope (node) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "idl3_to_idl2_visitor::visit_valuetype - "
+ "codegen for scope failed\n"),
+ -1);
+ }
+
+ *os << be_uidt_nl
+ << "};";
+
+ return 0;
+}
+
+int
+basic_visitor::visit_valuetype_fwd (AST_ValueTypeFwd *node)
+{
+ if (node->imported ())
+ {
+ return 0;
+ }
+
+ *os << be_nl << be_nl;
+
+ if (node->is_abstract ())
+ {
+ *os << "abstract ";
+ }
+
+ (void) node->node_type ();
+
+ *os << "valuetype "
+ << IdentifierHelper::try_escape (node->original_local_name ()).c_str ()
+ << ";";
+
+ return 0;
+}
+
+int
+basic_visitor::visit_porttype (AST_PortType *)
+{
+ return 0;
+}
+
+int
+basic_visitor::visit_provides (AST_Provides *)
+{
+ return 0;
+}
+
+int
+basic_visitor::visit_uses (AST_Uses *)
+{
+ return 0;
+}
+
+int
+basic_visitor::visit_publishes (AST_Publishes *)
+{
+ return 0;
+}
+
+int
+basic_visitor::visit_emits (AST_Emits *)
+{
+ return 0;
+}
+
+int
+basic_visitor::visit_consumes (AST_Consumes *)
+{
+ return 0;
+}
+
+int
+basic_visitor::visit_factory (AST_Factory *node)
+{
+ if (node->imported ())
+ {
+ return 0;
+ }
+
+ *os << be_nl;
+
+ *os << "factory "
+ << IdentifierHelper::try_escape (node->original_local_name ()).c_str ()
+ << " (";
+
+ this->gen_params (node, node->argument_count ());
+
+ *os << ")";
+
+ this->gen_exception_list (node->exceptions ());
+
+ *os << ";";
+
+ this->check_id_and_version (node);
+
+ return 0;
+}
+
+int
+basic_visitor::visit_structure (AST_Structure *node)
+{
+ if (node->imported ())
+ {
+ return 0;
+ }
+
+ *os << be_nl << be_nl;
+
+ *os << "struct "
+ << IdentifierHelper::try_escape (node->original_local_name ()).c_str ()
+ << be_nl
+ << "{" << be_idt;
+
+ this->check_id_and_version (node);
+
+ if (this->visit_scope (node) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "idl3_to_idl2_visitor::visit_structure - "
+ "codegen for scope failed\n"),
+ -1);
+ }
+
+ *os << be_uidt_nl
+ << "};";
+
+ return 0;
+}
+
+int
+basic_visitor::visit_structure_fwd (AST_StructureFwd *node)
+{
+ if (node->imported ())
+ {
+ return 0;
+ }
+
+ *os << be_nl << be_nl;
+
+ *os << "struct "
+ << IdentifierHelper::try_escape (node->original_local_name ()).c_str ()
+ << ";";
+
+ return 0;
+}
+
+int
+basic_visitor::visit_exception (AST_Exception *node)
+{
+ if (node->imported ())
+ {
+ return 0;
+ }
+
+ *os << be_nl << be_nl;
+
+ *os << "exception "
+ << IdentifierHelper::try_escape (node->original_local_name ()).c_str ()
+ << be_nl
+ << "{" << be_idt;
+
+ this->check_id_and_version (node);
+
+ if (this->visit_scope (node) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "idl3_to_idl2_visitor::visit_exception - "
+ "codegen for scope failed\n"),
+ -1);
+ }
+
+ *os << be_uidt_nl
+ << "};";
+
+ return 0;
+}
+
+int
+basic_visitor::visit_expression (AST_Expression *)
+{
+ return 0;
+}
+
+int
+basic_visitor::visit_enum (AST_Enum *node)
+{
+ if (node->imported ())
+ {
+ return 0;
+ }
+
+ *os << be_nl << be_nl;
+
+ *os << "enum "
+ << IdentifierHelper::try_escape (node->original_local_name ()).c_str ()
+ << be_nl
+ << "{" << be_idt;
+
+ for (UTL_ScopeActiveIterator i (node, UTL_Scope::IK_decls);
+ !i.is_done ();)
+ {
+ *os << be_nl;
+
+ AST_EnumVal *ev = AST_EnumVal::narrow_from_decl (i.item ());
+
+ *os << IdentifierHelper::try_escape (ev->original_local_name ()).c_str ();
+
+ // Advance here so the check below will work.
+ i.next ();
+
+ if (!i.is_done ())
+ {
+ *os << ",";
+ }
+ }
+
+ *os << be_uidt_nl
+ << "};";
+
+ this->check_id_and_version (node);
+
+ return 0;
+}
+
+int
+basic_visitor::visit_operation (AST_Operation *node)
+{
+ this->gen_operation (node);
+ this->check_id_and_version (node);
+
+ return 0;
+}
+
+int
+basic_visitor::visit_field (AST_Field *node)
+{
+ AST_Field::Visibility v = node->visibility ();
+
+ *os << be_nl
+ << (v == AST_Field::vis_PUBLIC
+ ? "public "
+ : (v == AST_Field::vis_PRIVATE ? "private " : ""));
+
+ AST_Type *ft = node->field_type ();
+
+ if (ft->node_type () == AST_Decl::NT_array)
+ {
+ this->gen_anonymous_array (ft, node);
+ }
+ else
+ {
+ // Keep these statements separate because of side effects.
+ *os << this->type_name (ft);
+ *os << " "
+ << IdentifierHelper::try_escape (node->original_local_name ()).c_str ();
+ }
+
+ *os << ";";
+
+ return 0;
+}
+
+int
+basic_visitor::visit_argument (AST_Argument *node)
+{
+ *os << be_nl;
+
+ switch (node->direction ())
+ {
+ case AST_Argument::dir_IN:
+ *os << "in ";
+ break;
+ case AST_Argument::dir_INOUT:
+ *os << "inout ";
+ break;
+ case AST_Argument::dir_OUT:
+ *os << "out ";
+ break;
+ default:
+ return -1;
+ }
+
+ *os << this->type_name (node->field_type ())
+ << " "
+ << IdentifierHelper::try_escape (node->original_local_name ()).c_str ();
+
+ return 0;
+}
+
+int
+basic_visitor::visit_attribute (AST_Attribute *node)
+{
+ this->gen_attribute (node);
+ this->check_id_and_version (node);
+
+ return 0;
+}
+
+int
+basic_visitor::visit_union (AST_Union *node)
+{
+ if (node->imported ())
+ {
+ return 0;
+ }
+
+ this->disc_type_ = node->disc_type ()->unaliased_type ();
+
+ *os << be_nl << be_nl
+ << "union "
+ << IdentifierHelper::try_escape (node->original_local_name ()).c_str ()
+ << " switch (";
+
+ *os << this->type_name (node->disc_type ())
+ << ")" << be_nl
+ << "{" << be_idt;
+
+ this->check_id_and_version (node);
+
+ if (this->visit_scope (node) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "idl3_to_idl2_visitor::visit_union - "
+ "codegen for scope failed\n"),
+ -1);
+ }
+
+ *os << be_uidt_nl
+ << "};";
+
+ return 0;
+}
+
+int
+basic_visitor::visit_union_fwd (AST_UnionFwd *node)
+{
+ if (node->imported ())
+ {
+ return 0;
+ }
+
+ *os << be_nl << be_nl
+ << "union "
+ << IdentifierHelper::try_escape (node->original_local_name ()).c_str ()
+ << ";";
+
+ return 0;
+}
+
+int
+basic_visitor::visit_union_branch (AST_UnionBranch *node)
+{
+ for (unsigned long i = 0; i < node->label_list_length (); ++i)
+ {
+ if (this->visit_union_label (node->label (i)) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "idl3_to_idl2_visitor::visit_union_branch - "
+ "codegen for label failed\n"),
+ -1);
+ }
+ }
+
+ AST_Type *ft = node->field_type ();
+
+ if (ft->node_type () == AST_Decl::NT_array)
+ {
+ this->gen_anonymous_array (ft, node);
+ }
+ else
+ {
+ *os << this->type_name (ft);
+ *os << " "
+ << IdentifierHelper::try_escape (node->original_local_name ()).c_str ();
+ }
+
+ *os << ";";
+
+ return 0;
+}
+
+int
+basic_visitor::visit_union_label (AST_UnionLabel *node)
+{
+ *os << be_nl;
+
+ if (node->label_kind () == AST_UnionLabel::UL_default)
+ {
+ *os << "default: ";
+ }
+ else
+ {
+ *os << "case ";
+ this->gen_label_value (node);
+ *os << ": ";
+ }
+
+ return 0;
+}
+
+int
+basic_visitor::visit_constant (AST_Constant *node)
+{
+ if (node->imported ())
+ {
+ return 0;
+ }
+
+ *os << be_nl << be_nl;
+
+ *os << "const ";
+
+ switch (node->et ())
+ {
+ case AST_Expression::EV_short:
+ *os << "short";
+ break;
+ case AST_Expression::EV_ushort:
+ *os << "unsigned short";
+ break;
+ case AST_Expression::EV_long:
+ *os << "long";
+ break;
+ case AST_Expression::EV_ulong:
+ *os << "unsigned long";
+ break;
+ case AST_Expression::EV_longlong:
+ *os << "long long";
+ break;
+ case AST_Expression::EV_ulonglong:
+ *os << "unsigned long long";
+ break;
+ case AST_Expression::EV_char:
+ *os << "char";
+ break;
+ case AST_Expression::EV_wchar:
+ *os << "wchar";
+ break;
+ case AST_Expression::EV_bool:
+ *os << "boolean";
+ break;
+ case AST_Expression::EV_octet:
+ *os << "octet";
+ break;
+ case AST_Expression::EV_float:
+ *os << "float";
+ break;
+ case AST_Expression::EV_double:
+ *os << "double";
+ break;
+ case AST_Expression::EV_longdouble:
+ *os << "long double";
+ break;
+ case AST_Expression::EV_string:
+ *os << "string";
+ break;
+ case AST_Expression::EV_wstring:
+ *os << "wstring";
+ break;
+ case AST_Expression::EV_enum:
+ *os << IdentifierHelper::orig_sn (node->enum_full_name ()).c_str ();
+ break;
+ default:
+ break;
+ }
+
+ *os << " "
+ << IdentifierHelper::try_escape (node->original_local_name ()).c_str ()
+ << " = " << node->constant_value () << ";";
+
+ this->check_id_and_version (node);
+
+ return 0;
+}
+
+int
+basic_visitor::visit_enum_val (AST_EnumVal *)
+{
+ return 0;
+}
+
+int
+basic_visitor::visit_array (AST_Array *node)
+{
+ *os << IdentifierHelper::orig_sn (node->base_type ()->name ()).c_str ();
+
+ for (unsigned long i = 0; i < node->n_dims (); ++i)
+ {
+ *os << "[" << node->dims ()[i] << "]";
+ }
+
+ return 0;
+}
+
+int
+basic_visitor::visit_sequence (AST_Sequence *node)
+{
+ // Keep output statements separate because of side effects.
+ *os << "sequence<";
+ *os << this->type_name (node->base_type ());
+
+ if (!node->unbounded ())
+ {
+ *os << ", " << node->max_size ()->ev ()->u.ulval;
+ }
+
+ *os << "> ";
+
+ return 0;
+}
+
+int
+basic_visitor::visit_string (AST_String *node)
+{
+ *os << (node->width () > 1 ? "w" : "") << "string";
+
+ unsigned long bound = node->max_size ()->ev ()->u.ulval;
+
+ if (bound > 0)
+ {
+ *os << "<" << bound << ">";
+ }
+
+ return 0;
+}
+
+int
+basic_visitor::visit_typedef (AST_Typedef *node)
+{
+ if (node->imported ())
+ {
+ return 0;
+ }
+
+ *os << be_nl << be_nl
+ << "typedef ";
+
+ AST_Type *bt = node->base_type ();
+
+ // Keep output statements separate because of side effects.
+
+ if (bt->node_type () == AST_Decl::NT_array)
+ {
+ this->gen_anonymous_array (bt, node);
+ }
+ else
+ {
+ *os << this->type_name (bt);
+ *os << " "
+ << IdentifierHelper::try_escape (node->original_local_name ()).c_str ();
+ }
+
+ *os << ";";
+
+ this->check_id_and_version (node);
+
+ return 0;
+}
+
+int
+basic_visitor::visit_native (AST_Native *node)
+{
+ if (node->imported ())
+ {
+ return 0;
+ }
+
+ *os << be_nl << be_nl;
+
+ *os << "native "
+ << IdentifierHelper::try_escape (node->original_local_name ()).c_str ()
+ << ";";
+
+ return 0;
+}
+
+//========================================================
+
+void
+basic_visitor::check_prefix (AST_Decl *d)
+{
+ if (d->typeid_set ())
+ {
+ return;
+ }
+
+ const char *the_prefix = d->prefix ();
+ AST_Decl *p = ScopeAsDecl (d->defined_in ());
+
+ if (ACE_OS::strcmp (the_prefix, p->prefix ()) != 0)
+ {
+ *os << be_nl
+ << "typeprefix "
+ << IdentifierHelper::try_escape (d->original_local_name ()).c_str ()
+ << " \"" << the_prefix << "\";";
+ }
+}
+
+void
+basic_visitor::check_id_and_version (AST_Decl *d)
+{
+ if (d->typeid_set ())
+ {
+ *os << be_nl
+ << "typeid "
+ << IdentifierHelper::try_escape (d->original_local_name ()).c_str ()
+ << " \"" << d->repoID () << "\";";
+
+ return;
+ }
+
+ const char *the_version = d->version ();
+ AST_Decl *p = ScopeAsDecl (d->defined_in ());
+
+ if (ACE_OS::strcmp (the_version, p->version ()) != 0)
+ {
+ *os << "\n"
+ << "#pragma version "
+ << IdentifierHelper::try_escape (d->original_local_name ()).c_str ()
+ << " " << the_version;
+ }
+}
+
+const char *
+basic_visitor::type_name (AST_Type *t)
+{
+ AST_PredefinedType *pdt = 0;
+
+ switch (t->node_type ())
+ {
+ case AST_Decl::NT_wstring:
+ case AST_Decl::NT_string:
+ case AST_Decl::NT_sequence:
+ // This causes side effects so output statements
+ // sending us here should not be concatenated.
+ (void) t->ast_accept (this);
+ return "";
+ case AST_Decl::NT_pre_defined:
+ pdt = AST_PredefinedType::narrow_from_decl (t);
+
+ switch (pdt->pt ())
+ {
+ case AST_PredefinedType::PT_pseudo:
+ return t->full_name ();
+ case AST_PredefinedType::PT_object:
+ return "Object";
+ case AST_PredefinedType::PT_any:
+ return "any";
+ case AST_PredefinedType::PT_long:
+ return "long";
+ case AST_PredefinedType::PT_ulong:
+ return "unsigned long";
+ case AST_PredefinedType::PT_longlong:
+ return "long long";
+ case AST_PredefinedType::PT_ulonglong:
+ return "unsigned long long";
+ case AST_PredefinedType::PT_short:
+ return "short";
+ case AST_PredefinedType::PT_ushort:
+ return "unsigned short";
+ case AST_PredefinedType::PT_float:
+ return "float";
+ case AST_PredefinedType::PT_double:
+ return "double";
+ case AST_PredefinedType::PT_longdouble:
+ return "long double";
+ case AST_PredefinedType::PT_char:
+ return "char";
+ case AST_PredefinedType::PT_wchar:
+ return "wchar";
+ case AST_PredefinedType::PT_boolean:
+ return "boolean";
+ case AST_PredefinedType::PT_octet:
+ return "octet";
+ case AST_PredefinedType::PT_void:
+ return "void";
+ default:
+ break;
+ }
+ default:
+ this->tmp_retval_ = IdentifierHelper::orig_sn (t->name ()).c_str ();
+ return this->tmp_retval_.c_str ();
+ }
+}
+
+void
+basic_visitor::gen_anonymous_array (AST_Type *a,
+ AST_Decl *wrapper)
+{
+ AST_Array *array = AST_Array::narrow_from_decl (a);
+ AST_Type *bt = array->base_type ();
+
+ *os << this->type_name (bt);
+ *os << " "
+ << IdentifierHelper::try_escape (wrapper->original_local_name ()).c_str ();
+
+ for (unsigned long i = 0; i < array->n_dims (); ++i)
+ {
+ *os << "[" << array->dims ()[i]->ev ()->u.ulval << "]";
+ }
+}
+
+void
+basic_visitor::gen_params (UTL_Scope *s, int arg_count)
+{
+ if (arg_count > 0)
+ {
+ *os << be_idt << be_idt;
+
+ for (UTL_ScopeActiveIterator si (s, UTL_Scope::IK_decls);
+ !si.is_done ();)
+ {
+ if (si.item ()->ast_accept (this) != 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ "idl3_to_idl2_visitor::gen_params - "
+ "codegen for parameters failed\n"));
+ }
+
+ si.next ();
+
+ if (!si.is_done ())
+ {
+ *os << ",";
+ }
+ }
+
+ *os << be_uidt_nl << be_uidt;
+ }
+}
+
+void
+basic_visitor::gen_exception_list (UTL_ExceptList *exceptions,
+ const char *prefix,
+ bool closed)
+{
+ if (exceptions != 0 && exceptions->length () > 0)
+ {
+ *os << be_idt_nl
+ << prefix << "raises (";
+
+ for (UTL_ExceptlistActiveIterator ei (exceptions);
+ !ei.is_done ();)
+ {
+ *os << IdentifierHelper::orig_sn (ei.item ()->name ()).c_str ();
+
+ ei.next ();
+
+ if (!ei.is_done () || !closed)
+ {
+ *os << ", ";
+ }
+ }
+
+ if (closed)
+ {
+ *os << ")" << be_uidt;
+ }
+ }
+}
+
+void
+basic_visitor::gen_operation (AST_Operation *node)
+{
+ *os << be_nl << be_nl;
+
+ if (node->flags () == AST_Operation::OP_oneway)
+ {
+ *os << "oneway ";
+ }
+
+ *os << this->type_name (node->return_type ());
+
+ *os << " "
+ << IdentifierHelper::try_escape (node->original_local_name ()).c_str ()
+ << " (";
+
+ this->gen_params (node, node->argument_count ());
+
+ *os << ")";
+
+ this->gen_exception_list (node->exceptions ());
+
+ *os << ";";
+}
+
+void
+basic_visitor::gen_attribute (AST_Attribute *node)
+{
+ bool rd_only = node->readonly ();
+
+ // Keep output statements separate because of side effects.
+ // No need to check for anonymous array - anonymous types not
+ // accepted by parser for attributes.
+ *os << be_nl << be_nl
+ << (rd_only ? "readonly " : "") << "attribute ";
+ *os << this->type_name (node->field_type ());
+ *os << " "
+ << IdentifierHelper::try_escape (node->original_local_name ()).c_str ();
+
+ this->gen_exception_list (node->get_get_exceptions (),
+ rd_only ? "" : "get");
+
+ this->gen_exception_list (node->get_set_exceptions (),
+ "set");
+
+ *os << ";";
+}
+
+void
+basic_visitor::gen_label_value (AST_UnionLabel *node)
+{
+ AST_Expression *val = node->label_val ();
+ AST_Expression::AST_ExprValue *ev = val->ev ();
+
+ if (this->disc_type_->node_type () == AST_Decl::NT_enum)
+ {
+ UTL_Scope *s = this->disc_type_->defined_in ();
+
+ if (s == 0)
+ {
+ *os << IdentifierHelper::orig_sn (val->n ()).c_str ();
+ }
+ else
+ {
+ *os << IdentifierHelper::orig_sn (ScopeAsDecl (s)->name ()).c_str ()
+ << "::";
+
+ Identifier *id =
+ IdentifierHelper::original_local_name (val->n ()->last_component ());
+
+ *os << IdentifierHelper::try_escape (id).c_str ();
+
+ id->destroy ();
+ delete id;
+ id = 0;
+ }
+
+ return;
+ }
+
+ switch (ev->et)
+ {
+ case AST_Expression::EV_short:
+ *os << ev->u.sval;
+ break;
+ case AST_Expression::EV_ushort:
+ *os << ev->u.usval;
+ break;
+ case AST_Expression::EV_long:
+ *os << ev->u.lval;
+ break;
+ case AST_Expression::EV_ulong:
+ *os << ev->u.ulval;
+ break;
+ case AST_Expression::EV_longlong:
+#if ! defined (ACE_LACKS_LONGLONG_T)
+ this->os->print ("%lld", ev->u.llval);
+#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
+ break;
+ case AST_Expression::EV_ulonglong:
+#if ! defined (ACE_LACKS_LONGLONG_T)
+ *os << "ACE_UINT64_LITERAL (";
+ this->os->print (ACE_UINT64_FORMAT_SPECIFIER_ASCII, ev->u.ullval);
+ *os << ")";
+#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
+ break;
+ case AST_Expression::EV_char:
+ *os << ev->u.cval;
+ break;
+ case AST_Expression::EV_wchar:
+ *os << ev->u.wcval;
+ break;
+ case AST_Expression::EV_bool:
+ *os << (ev->u.bval ? "TRUE" : "FALSE");
+ break;
+ case AST_Expression::EV_enum:
+ *os << IdentifierHelper::orig_sn (val->n ()).c_str ();
+ break;
+ default:
+ break;
+ }
+}
+
+bool
+basic_visitor::scope_skip_type (AST_Decl *d)
+{
+ return (d->node_type () == AST_Decl::NT_pre_defined);
+}
+
+bool
+basic_visitor::can_skip_module (AST_Module *m)
+{
+ for (UTL_ScopeActiveIterator si (m, UTL_Scope::IK_decls);
+ !si.is_done ();
+ si.next ())
+ {
+ AST_Decl *d = si.item ();
+ AST_Decl::NodeType nt = d->node_type ();
+
+ switch (nt)
+ {
+ case AST_Decl::NT_interface:
+ case AST_Decl::NT_interface_fwd:
+ case AST_Decl::NT_component:
+ case AST_Decl::NT_component_fwd:
+ case AST_Decl::NT_eventtype:
+ case AST_Decl::NT_eventtype_fwd:
+ case AST_Decl::NT_home:
+ if (d->is_abstract () || d->is_local ())
+ {
+ break;
+ }
+
+ return false;
+ case AST_Decl::NT_module:
+ if (!this->can_skip_module (AST_Module::narrow_from_decl (d)))
+ {
+ return false;
+ }
+
+ break;
+ default:
+ break;
+ }
+ }
+
+ return true;
+}
+
+bool
+basic_visitor::match_excluded_file (const char *raw_filename)
+{
+ ACE_CString::size_type p = 0;
+
+ // If this included IDL file matches one of the 'excluded' files,
+ // generate the include without tacking on the suffix.
+ while (p != ACE_CString::npos)
+ {
+ ACE_CString::size_type cursor = p;
+ p = be_global->excluded_filenames ().find (' ', cursor);
+
+ ACE_CString one_filename =
+ be_global->excluded_filenames ().substr (cursor, p - cursor);
+
+ if (one_filename == raw_filename)
+ {
+ return true;
+ }
+
+ // Skip the whitespace.
+ if (p != ACE_CString::npos)
+ {
+ while (be_global->excluded_filenames ()[p] == ' ')
+ {
+ p++;
+ }
+ }
+ }
+
+ return false;
+}
diff --git a/modules/CIAO/tools/IDL3_to_IDL2/basic_visitor.h b/modules/CIAO/tools/IDL3_to_IDL2/basic_visitor.h
new file mode 100644
index 00000000000..29e5b9d25f1
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_IDL2/basic_visitor.h
@@ -0,0 +1,129 @@
+// $Id$
+
+/* -*- c++ -*- */
+// ============================================================================
+//
+// = LIBRARY
+// TAO_IDL3_TO_IDL2_BE_DLL
+//
+// = FILENAME
+// basic_visitor.h
+//
+// = DESCRIPTION
+// Base class for other visitors in this backend.
+//
+// ============================================================================
+
+#ifndef TAO_BASIC_VISITOR_H
+#define TAO_BASIC_VISITOR_H
+
+#include "ast_visitor.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "TAO_IDL3_TO_IDL2_BE_Export.h"
+
+#include "ace/SString.h"
+
+class TAO_OutStream;
+class UTL_ExceptList;
+
+class TAO_IDL3_TO_IDL2_BE_Export basic_visitor : public ast_visitor
+{
+ //
+ // = TITLE
+ // basic_visitor.
+ //
+ // = DESCRIPTION
+ // Base class for visitors in this backend and others.
+ //
+public:
+ basic_visitor (void);
+ virtual ~basic_visitor (void);
+
+ virtual int visit_decl (AST_Decl *d);
+ virtual int visit_scope (UTL_Scope *node);
+ virtual int visit_type (AST_Type *node);
+ virtual int visit_predefined_type (AST_PredefinedType *node);
+ virtual int visit_module (AST_Module *node) = 0;
+ virtual int visit_interface (AST_Interface *node) = 0;
+ virtual int visit_interface_fwd (AST_InterfaceFwd *node);
+ virtual int visit_template_interface (AST_Template_Interface *node);
+ virtual int visit_valuebox (AST_ValueBox *node);
+ virtual int visit_valuetype (AST_ValueType *node);
+ virtual int visit_valuetype_fwd (AST_ValueTypeFwd *node);
+ virtual int visit_component (AST_Component *node) = 0;
+ virtual int visit_component_fwd (AST_ComponentFwd *node) = 0;
+ virtual int visit_porttype (AST_PortType *node);
+ virtual int visit_provides (AST_Provides *node);
+ virtual int visit_uses (AST_Uses *node);
+ virtual int visit_publishes (AST_Publishes *node);
+ virtual int visit_emits (AST_Emits *node);
+ virtual int visit_consumes (AST_Consumes *node);
+ virtual int visit_extended_port (AST_Extended_Port *node) = 0;
+ virtual int visit_mirror_port (AST_Mirror_Port *node) = 0;
+ virtual int visit_connector (AST_Connector *node) = 0;
+ virtual int visit_instantiated_connector (
+ AST_Instantiated_Connector *node) = 0;
+ virtual int visit_tmpl_port (AST_Tmpl_Port *node) = 0;
+ virtual int visit_tmpl_mirror_port (
+ AST_Tmpl_Mirror_Port *node) = 0;
+ virtual int visit_eventtype (AST_EventType *node) = 0;
+ virtual int visit_eventtype_fwd (AST_EventTypeFwd *node) = 0;
+ virtual int visit_home (AST_Home *node) = 0;
+ virtual int visit_factory (AST_Factory *node);
+ virtual int visit_structure (AST_Structure *node);
+ virtual int visit_structure_fwd (AST_StructureFwd *node);
+ virtual int visit_exception (AST_Exception *node);
+ virtual int visit_expression (AST_Expression *node);
+ virtual int visit_enum (AST_Enum *node);
+ virtual int visit_operation (AST_Operation *node);
+ virtual int visit_field (AST_Field *node);
+ virtual int visit_argument (AST_Argument *node);
+ virtual int visit_attribute (AST_Attribute *node);
+ virtual int visit_union (AST_Union *node);
+ virtual int visit_union_fwd (AST_UnionFwd *node);
+ virtual int visit_union_branch (AST_UnionBranch *node);
+ virtual int visit_union_label (AST_UnionLabel *node);
+ virtual int visit_constant (AST_Constant *node);
+ virtual int visit_enum_val (AST_EnumVal *node);
+ virtual int visit_array (AST_Array *node);
+ virtual int visit_sequence (AST_Sequence *node);
+ virtual int visit_string (AST_String *node);
+ virtual int visit_typedef (AST_Typedef *node);
+ virtual int visit_root (AST_Root *node) = 0;
+ virtual int visit_native (AST_Native *node);
+
+protected:
+ void check_prefix (AST_Decl *d);
+ void check_id_and_version (AST_Decl *d);
+ const char *type_name (AST_Type *t);
+ void gen_anonymous_array (AST_Type *array, AST_Decl *wrapper);
+ void gen_params (UTL_Scope *s, int arg_count);
+ void gen_exception_list (UTL_ExceptList *exceptions,
+ const char *prefix = "",
+ bool closed = true);
+ void gen_operation (AST_Operation *node);
+ void gen_attribute (AST_Attribute *node);
+ void gen_label_value (AST_UnionLabel *node);
+
+ // Overrides allow common code for visit_scope().
+ virtual bool scope_skip_type (AST_Decl *d);
+
+ // Used by derived visitors to avoid generating an empty IDL module.
+ bool can_skip_module (AST_Module *m);
+
+ // Used by derived visitors to check for special include handling.
+ bool match_excluded_file (const char *raw_filename);
+
+protected:
+ TAO_OutStream *os;
+ AST_Type *disc_type_;
+
+private:
+ ACE_CString tmp_retval_;
+};
+
+#endif // TAO_BASIC_VISITOR_H
diff --git a/modules/CIAO/tools/IDL3_to_IDL2/be_extern.h b/modules/CIAO/tools/IDL3_to_IDL2/be_extern.h
new file mode 100644
index 00000000000..c7dc3daaf41
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_IDL2/be_extern.h
@@ -0,0 +1,86 @@
+// This may look like C, but it's really -*- C++ -*-
+// $Id$
+/*
+
+COPYRIGHT
+
+Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United
+States of America. All Rights Reserved.
+
+This product is protected by copyright and distributed under the following
+license restricting its use.
+
+The Interface Definition Language Compiler Front End (CFE) is made
+available for your use provided that you include this license and copyright
+notice on all media and documentation and the software program in which
+this product is incorporated in whole or part. You may copy and extend
+functionality (but may not remove functionality) of the Interface
+Definition Language CFE without charge, but you are not authorized to
+license or distribute it to anyone else except as part of a product or
+program developed by you or with the express written consent of Sun
+Microsystems, Inc. ("Sun").
+
+The names of Sun Microsystems, Inc. and any of its subsidiaries or
+affiliates may not be used in advertising or publicity pertaining to
+distribution of Interface Definition Language CFE as permitted herein.
+
+This license is effective until terminated by Sun for failure to comply
+with this license. Upon termination, you shall destroy or return all code
+and documentation for the Interface Definition Language CFE.
+
+INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED AS IS WITH NO WARRANTIES OF
+ANY KIND INCLUDING THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS
+FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR ARISING FROM A COURSE OF
+DEALING, USAGE OR TRADE PRACTICE.
+
+INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT
+ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES
+TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT.
+
+SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH
+RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY
+INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF.
+
+IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES BE LIABLE FOR
+ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND CONSEQUENTIAL
+DAMAGES, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+Use, duplication, or disclosure by the government is subject to
+restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in
+Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR
+52.227-19.
+
+Sun, Sun Microsystems and the Sun logo are trademarks or registered
+trademarks of Sun Microsystems, Inc.
+
+SunSoft, Inc.
+2550 Garcia Avenue
+Mountain View, California 94043
+
+NOTE:
+
+SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are
+trademarks or registered trademarks of Sun Microsystems, Inc.
+
+*/
+
+#ifndef TAO_IFR_BE_EXTERN_H
+#define TAO_IFR_BE_EXTERN_H
+
+#include "TAO_IDL3_TO_IDL2_BE_Export.h"
+#include "be_global.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+extern TAO_IDL3_TO_IDL2_BE_Export BE_GlobalData *be_global;
+
+extern TAO_IDL3_TO_IDL2_BE_Export int BE_init (int &, ACE_TCHAR*[]);
+extern TAO_IDL3_TO_IDL2_BE_Export void BE_post_init (char *[], long);
+extern TAO_IDL3_TO_IDL2_BE_Export void BE_version (void);
+extern TAO_IDL3_TO_IDL2_BE_Export void BE_produce (void);
+extern TAO_IDL3_TO_IDL2_BE_Export void BE_cleanup (void);
+extern TAO_IDL3_TO_IDL2_BE_Export void BE_abort (void);
+
+#endif /* TAO_IFR_BE_EXTERN_H */
diff --git a/modules/CIAO/tools/IDL3_to_IDL2/be_global.cpp b/modules/CIAO/tools/IDL3_to_IDL2/be_global.cpp
new file mode 100644
index 00000000000..eafef8eaa45
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_IDL2/be_global.cpp
@@ -0,0 +1,197 @@
+// $Id$
+
+// ============================================================================
+//
+//
+// = LIBRARY
+// TAO_IDL3_TO_IDL2L_BE_DLL
+//
+// = FILENAME
+// be_global.cpp
+//
+// = DESCRIPTION
+// Stores global data specific to the compiler back end.
+//
+// = AUTHOR
+// Jeff Parsons <j.parsons@vanderbilt.edu>
+//
+// ============================================================================
+
+#include "be_global.h"
+#include "be_sunsoft.h"
+#include "ast_generator.h"
+#include "global_extern.h"
+#include "idl_defines.h"
+#include "utl_string.h"
+#include "idl3_to_idl2_visitor.h"
+
+#include "ace/OS_NS_stdio.h"
+
+TAO_IDL3_TO_IDL2_BE_Export BE_GlobalData *be_global = 0;
+
+BE_GlobalData::BE_GlobalData (void)
+ : gen_copyright_ (true),
+ filename_ (0),
+ output_dir_ (0),
+ encapsulate_idl2_ (false)
+{
+}
+
+BE_GlobalData::~BE_GlobalData (void)
+{
+}
+
+const char*
+BE_GlobalData::output_dir (void) const
+{
+ return this->output_dir_;
+}
+
+void
+BE_GlobalData::output_dir (const char* s)
+{
+ delete [] this->output_dir_;
+ this->output_dir_ = ACE::strnew (s);
+}
+
+bool
+BE_GlobalData::encapsulate_idl2 (void) const
+{
+ return this->encapsulate_idl2_;
+}
+
+ACE_CString &
+BE_GlobalData::excluded_filenames (void)
+{
+ return this->excluded_filenames_;
+}
+
+void
+BE_GlobalData::set_excluded_filenames (const char *filenames)
+{
+ this->excluded_filenames_ = filenames;
+}
+
+bool
+BE_GlobalData::gen_copyright (void) const
+{
+ return this->gen_copyright_;
+}
+
+void
+BE_GlobalData::parse_args (long &i, char **av)
+{
+ switch (av[i][1])
+ {
+ // Directory where the generated file is to
+ // be kept. Default is the current directory from which
+ // <tao_idl3_to_idl2> is called.
+ case 'o':
+ if (av[i][2] == '\0')
+ {
+ this->output_dir (av [i + 1]);
+ i++;
+ }
+ else
+ {
+ this->output_dir (av[i] + 2);
+ }
+ break;
+ case 'e':
+ this->encapsulate_idl2_ = true;
+ break;
+ default:
+ ACE_ERROR ((
+ LM_ERROR,
+ ACE_TEXT ("IDL: I don't understand the '%s' option\n"),
+ av[i]
+ ));
+
+ idl_global->set_compile_flags (idl_global->compile_flags ()
+ | IDL_CF_ONLY_USAGE);
+ break;
+ }
+}
+
+// Prepare an argument for a BE.
+void
+BE_GlobalData::prep_be_arg (char *)
+{
+}
+
+void
+BE_GlobalData::arg_post_proc (void)
+{
+}
+
+void
+BE_GlobalData::usage (void) const
+{
+ ACE_DEBUG ((
+ LM_DEBUG,
+ ACE_TEXT (" -o <dir>\t\tOutput directory for the generated file.")
+ ACE_TEXT (" Default is current directory\n")
+ ));
+ ACE_DEBUG ((
+ LM_DEBUG,
+ ACE_TEXT (" -e\t\t\tGenerate just an include of original IDL file")
+ ACE_TEXT (" if no IDL3 declarations are found\n")
+ ));
+}
+
+AST_Generator *
+BE_GlobalData::generator_init (void)
+{
+ AST_Generator *gen = 0;
+ ACE_NEW_RETURN (gen,
+ AST_Generator,
+ 0);
+ return gen;
+}
+
+int
+BE_GlobalData::outfile_init (TAO_OutStream *& os,
+ const char *file_prefix,
+ const char *file_suffix,
+ const char *guard_prefix,
+ const char *guard_suffix)
+{
+ ACE_NEW_RETURN (os,
+ TAO_SunSoft_OutStream,
+ -1);
+
+ ACE_CString fn (idl_global->stripped_filename ()->get_string ());
+ fn = fn.substr (0, fn.rfind ('.'));
+ fn += file_suffix;
+
+ const char *path = be_global->output_dir ();
+ ACE_CString target_name;
+
+ if (path != 0)
+ {
+ target_name = path;
+ target_name += "/";
+ }
+
+ target_name += file_prefix;
+ target_name += fn;
+
+ if (os->open (target_name.c_str ()) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Failed to open file %s for writing.\n",
+ target_name.c_str ()),
+ -1);
+ }
+
+ *os << be_nl;
+
+ os->gen_ifndef_string (fn.c_str (), guard_prefix, guard_suffix);
+
+ return 0;
+}
+
+void
+BE_GlobalData::destroy (void)
+{
+}
diff --git a/modules/CIAO/tools/IDL3_to_IDL2/be_global.h b/modules/CIAO/tools/IDL3_to_IDL2/be_global.h
new file mode 100644
index 00000000000..1db2c35fd1f
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_IDL2/be_global.h
@@ -0,0 +1,116 @@
+/* -*- c++ -*- */
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO_IFR_BE_DLL
+//
+// = FILENAME
+// be_global.h
+//
+// = DESCRIPTION
+// Header file for class containing compiler back end global data.
+//
+// = AUTHOR
+// Jeff Parsons <parsons@cs.wustl.edu>
+//
+// ============================================================================
+
+#ifndef TAO_IFR_BE_GLOBAL_H
+#define TAO_IFR_BE_GLOBAL_H
+
+#include "TAO_IDL3_TO_IDL2_BE_Export.h"
+#include "idl_defines.h"
+#include "ace/SString.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+class AST_Generator;
+class TAO_OutStream;
+
+// Defines a class containing all back end global data.
+
+class TAO_IDL3_TO_IDL2_BE_Export BE_GlobalData
+{
+public:
+ // = TITLE
+ // BE_GlobalData
+ //
+ // = DESCRIPTION
+ // Storage of global data specific to the compiler back end
+ //
+ BE_GlobalData (void);
+ // Constructor.
+
+ virtual ~BE_GlobalData (void);
+ // Destructor.
+
+ //=======================================
+
+ // Data accessors.
+ const char* output_dir (void) const;
+ void output_dir (const char* s);
+
+ bool encapsulate_idl2 (void) const;
+
+ ACE_CString & excluded_filenames (void);
+
+ void set_excluded_filenames (const char *filenames);
+
+ bool gen_copyright (void) const;
+
+ //=========================================
+
+ virtual void parse_args (long &i, char **av);
+ // Parse args that affect this backend.
+
+ void prep_be_arg (char *s);
+ // Special BE arg call factored out of DRV_args.
+
+ void arg_post_proc (void);
+ // Checks made after parsing args.
+
+ virtual void usage (void) const;
+ // Usage message for backend options.
+
+ AST_Generator *generator_init (void);
+ // Create an AST node generator.
+
+ int outfile_init (TAO_OutStream *&,
+ const char *file_prefix,
+ const char *file_suffix,
+ const char *guard_prefix,
+ const char *guard_suffix);
+ // Create the output file, the associated stream, and
+ // generate the initial #ifndef.
+
+ void destroy (void);
+ // Cleanup.
+
+protected:
+ bool gen_copyright_;
+ // So it can be turned off in backends that inherit from this one.
+
+private:
+ char *filename_;
+ // Name of the IDL file we are processing.
+
+ char *output_dir_;
+ // Directory where the generated file is to be
+ // kept. Default value is 0 for this string which means the current
+ // directory from which the <tao_picml> is called.
+
+ bool encapsulate_idl2_;
+ // Have the generated file just include the original file if
+ // no IDL3 declarations are found by the checking visitor.
+
+ ACE_CString excluded_filenames_;
+ // Whitespace-separated list of included IDL files
+ // to be passed to the output IDL file without
+ // adding the '_IDL2" suffix.
+};
+
+#endif /* TAO_IFR_BE_GLOBAL_H */
diff --git a/modules/CIAO/tools/IDL3_to_IDL2/be_helper.cpp b/modules/CIAO/tools/IDL3_to_IDL2/be_helper.cpp
new file mode 100644
index 00000000000..db3968af3c5
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_IDL2/be_helper.cpp
@@ -0,0 +1,435 @@
+// $Id$
+
+// ============================================================================
+//
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// be_helper.cpp
+//
+// = DESCRIPTION
+// Provides helper classes to print generated code to the output
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// Improvements by Carlos O'Ryan
+//
+// ============================================================================
+
+#include "be_helper.h"
+#include "be_extern.h"
+#include "idl_defines.h"
+#include "ace/OS_NS_stdio.h"
+#include "ace/OS_NS_string.h"
+#include "ace/OS_NS_ctype.h"
+
+ACE_RCSID (be,
+ be_helper,
+ "$Id$")
+
+static const char copyright[] =
+"// -*- C++ -*-\n"
+"//\n"
+"// $I" "d$\n\n"
+"// **** Code generated by the The Component Integrated ACE ORB (CIAO)"
+" IDL3 to IDL2 Compiler ****\n"
+"// CIAO and this tool have been developed by:\n"
+"// Center for Distributed Object Computing\n"
+"// Washington University\n"
+"// St. Louis, MO\n"
+"// USA\n"
+"// http://www.cs.wustl.edu/~schmidt/doc-center.html\n"
+"// and\n"
+"// Distributed Object Computing Laboratory\n"
+"// University of California at Irvine\n"
+"// Irvine, CA\n"
+"// USA\n"
+"// http://doc.ece.uci.edu/\n"
+"// and\n"
+"// Institute for Software Integrated Systems\n"
+"// Vanderbilt University\n"
+"// Nashville, TN\n"
+"// USA\n"
+"// http://www.isis.vanderbilt.edu/\n"
+"//\n"
+"// Information about CIAO is available at:\n"
+"// http://www.cs.wustl.edu/~schmidt/CIAO.html";
+
+TAO_NL::TAO_NL (void)
+{
+}
+
+TAO_INDENT::TAO_INDENT (int do_now)
+ : do_now_ (do_now)
+{
+}
+
+TAO_UNINDENT::TAO_UNINDENT (int do_now)
+ : do_now_ (do_now)
+{
+}
+
+const TAO_NL be_nl;
+const TAO_INDENT be_idt;
+const TAO_INDENT be_idt_nl (1);
+const TAO_UNINDENT be_uidt;
+const TAO_UNINDENT be_uidt_nl (1);
+
+// Methods of the TAO_OutStream class.
+
+TAO_OutStream::TAO_OutStream (void)
+ : fp_ (0),
+ indent_level_ (0)
+{
+}
+
+TAO_OutStream::~TAO_OutStream (void)
+{
+ // Close the underlying I/O handle only if it exists.
+ if (this->fp_ != 0)
+ {
+ ACE_OS::fclose (this->fp_);
+ this->fp_ = 0;
+ }
+
+ indent_level_ = 0;
+}
+
+int
+TAO_OutStream::open (const char *fname)
+{
+ if (fname != 0)
+ {
+ // File name exists, open an I/O file handle.
+ this->fp_ = ACE_OS::fopen (fname, "w");
+
+ if (this->fp_ != 0)
+ {
+ if (be_global->gen_copyright ())
+ {
+ // Put the copyright notice.
+ ACE_OS::fprintf (this->fp_,
+ "%s\n",
+ copyright);
+
+ ACE_OS::fflush (this->fp_);
+ }
+
+ return 0;
+ }
+ else
+ {
+ return -1;
+ }
+ }
+ else
+ {
+ return -1;
+ }
+}
+
+// Return the underlying lowlevel file pointer.
+// indentation.
+FILE *
+TAO_OutStream::file (void)
+{
+ return this->fp_;
+}
+
+int
+TAO_OutStream::incr_indent (unsigned short flag)
+{
+ indent_level_++;
+
+ if (flag != 0)
+ {
+ return this->indent ();
+ }
+ else
+ {
+ // Do not indent output.
+ return 0;
+ }
+}
+
+// Indentation
+int
+TAO_OutStream::decr_indent (unsigned short flag)
+{
+ this->indent_level_--;
+ // Just in case somebody gets "unindent happy".
+ if (this->indent_level_ < 0)
+ {
+ // ACE_DEBUG ((LM_DEBUG, "negative indentation?\n"));
+ this->indent_level_ = 0;
+ }
+ if (flag != 0)
+ {
+ return this->indent ();
+ }
+ else
+ {
+ // Do not indent output.
+ return 0;
+ }
+}
+
+int
+TAO_OutStream::reset (void)
+{
+ this->indent_level_ = 0;
+ return 0;
+}
+
+// Indented print.
+int
+TAO_OutStream::indent (void)
+{
+ // Based on the current indentation level, leave appropriate number of blank
+ // spaces in the output.
+ if (this->indent_level_ > 0)
+ {
+ for (int i = 0; i < this->indent_level_; i++)
+ {
+ ACE_OS::fprintf (this->fp_, " ");
+ ACE_OS::fflush (this->fp_);
+ }
+ }
+
+ return 0;
+}
+
+int
+TAO_OutStream::nl (void)
+{
+ ACE_OS::fprintf (this->fp_, "\n");
+ this->indent ();
+ return 0;
+}
+
+// Printf style variable argument print.
+int
+TAO_OutStream::print (const char *format, ...)
+{
+ int result = 0;
+ va_list ap;
+ va_start (ap, format);
+ ACE_OSCALL (::vfprintf (this->fp_,
+ format,
+ ap),
+ int,
+ -1,
+ result);
+
+ ACE_OS::fflush (this->fp_);
+ va_end (ap);
+
+ return result;
+}
+
+void
+TAO_OutStream::gen_ifndef_string (const char *fname,
+ const char *prefix,
+ const char *suffix)
+{
+ static char macro_name [NAMEBUFSIZE];
+
+ ACE_OS::memset (macro_name,
+ '\0',
+ NAMEBUFSIZE);
+
+ const char *extension = ACE_OS::strrchr (fname, '.');
+
+ if (extension == 0)
+ {
+ // File seems to have no extension, so let us take the name
+ // as it is.
+ extension = fname;
+ }
+
+ ACE_OS::sprintf (macro_name, prefix);
+
+ size_t offset = ACE_OS::strlen (prefix);
+
+ // Convert letters in fname to upper case.
+ for (int i = 0; i < (extension - fname); i++)
+ {
+ if (ACE_OS::ace_isalpha (fname [i]))
+ {
+ macro_name[i + offset] = (char) ACE_OS::ace_toupper (fname [i]);
+ }
+ else if (ACE_OS::ace_isdigit (fname [i]))
+ {
+ macro_name[i + offset] = fname[i];
+ }
+ else
+ {
+ macro_name[i + offset] = '_';
+ }
+ }
+
+ ACE_OS::strcat (macro_name, suffix);
+
+ // Generate the #ifndef ... #define statements.
+ this->print ("#ifndef %s\n",
+ macro_name);
+ this->print ("#define %s",
+ macro_name);
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (const char *str)
+{
+ ACE_OS::fprintf (this->fp_, "%s", str);
+ ACE_OS::fflush (this->fp_);
+ return *this;
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (const ACE_CDR::UShort num)
+{
+ ACE_OS::fprintf (this->fp_,
+ "%hu",
+ num);
+
+ ACE_OS::fflush (this->fp_);
+
+ return *this;
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (const ACE_CDR::Short num)
+{
+ ACE_OS::fprintf (this->fp_,
+ "%hd",
+ num);
+
+ ACE_OS::fflush (this->fp_);
+
+ return *this;
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (const ACE_CDR::ULong num)
+{
+ ACE_OS::fprintf (this->fp_,
+ "%lu",
+ (unsigned long) num);
+
+ ACE_OS::fflush (this->fp_);
+
+ return *this;
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (const ACE_CDR::Long num)
+{
+ ACE_OS::fprintf (this->fp_,
+ "%ld",
+ (long) num);
+
+ ACE_OS::fflush (this->fp_);
+
+ return *this;
+}
+
+#if defined (ACE_WIN64)
+TAO_OutStream &
+TAO_OutStream::operator<< (const ACE_CDR::ULongLong num)
+{
+ ACE_OS::fprintf (this->fp_,
+ ACE_UINT64_FORMAT_SPECIFIER,
+ num);
+
+ ACE_OS::fflush (this->fp_);
+
+ return *this;
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (const ACE_CDR::LongLong num)
+{
+ ACE_OS::fprintf (this->fp_,
+ ACE_INT64_FORMAT_SPECIFIER,
+ num);
+
+ ACE_OS::fflush (this->fp_);
+
+ return *this;
+}
+#endif /* ACE_WIN64 */
+
+TAO_OutStream &
+TAO_OutStream::operator<< (const unsigned long num)
+{
+ ACE_OS::fprintf (this->fp_,
+ "%lu",
+ num);
+
+ ACE_OS::fflush (this->fp_);
+
+ return *this;
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (const long num)
+{
+ ACE_OS::fprintf (this->fp_,
+ "%ld",
+ num);
+
+ ACE_OS::fflush (this->fp_);
+
+ return *this;
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (const TAO_NL&)
+{
+ ACE_OS::fprintf (this->fp_ ,
+ "\n");
+ this->indent ();
+
+ return *this;
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (const TAO_INDENT& i)
+{
+ this->incr_indent (0);
+
+ if (i.do_now_)
+ {
+ this->nl ();
+ }
+
+ return *this;
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (const TAO_UNINDENT& i)
+{
+ this->decr_indent (0);
+
+ if (i.do_now_)
+ {
+ this->nl ();
+ }
+
+ return *this;
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (Identifier *id)
+{
+ return this->print (id);
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (AST_Expression *expr)
+{
+ return this->print (expr);
+}
diff --git a/modules/CIAO/tools/IDL3_to_IDL2/be_helper.h b/modules/CIAO/tools/IDL3_to_IDL2/be_helper.h
new file mode 100644
index 00000000000..7fab4e04347
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_IDL2/be_helper.h
@@ -0,0 +1,180 @@
+/* -*- c++ -*- */
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// be_helper.h
+//
+// = DESCRIPTION
+// Defines the abstract class for outputting the C++ mapping. This is a
+// helper class to the singleton TAO_CodeGen class
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// Improvements by Carlos O'Ryan
+//
+// ============================================================================
+
+#ifndef TAO_BE_OUTSTRM_H
+#define TAO_BE_OUTSTRM_H
+
+#include "ace/CDR_Base.h"
+
+#include "TAO_IDL3_TO_IDL2_BE_Export.h"
+
+class Identifier;
+class UTL_IdList;
+class AST_Expression;
+
+// a dummy structure to inform TAO_OutStream's << operator to put a newline
+// and use the current indentation for the succeeding line
+struct TAO_IDL3_TO_IDL2_BE_Export TAO_NL
+{
+public:
+ TAO_NL (void);
+};
+
+struct TAO_IDL3_TO_IDL2_BE_Export TAO_INDENT
+{
+ // = TITLE
+ // Operates like a manipulator, increasing the indentation level.
+ //
+ // = DESCRIPTION
+ // Increase the indentation level, if the "do_now" parameter is
+ // not zero then the <indent> method is called on the stream.
+ //
+ TAO_INDENT (int do_now = 0);
+
+ const int do_now_;
+};
+
+struct TAO_IDL3_TO_IDL2_BE_Export TAO_UNINDENT
+{
+ // = TITLE
+ // Operates like a manipulator, decreasing the indentation level.
+ //
+ // = DESCRIPTION
+ // Decrease the indentation level, if the "do_now" parameter is
+ // not zero then the <indent> method is called on the stream.
+ //
+ TAO_UNINDENT (int do_now = 0);
+
+ const int do_now_;
+};
+
+extern TAO_IDL3_TO_IDL2_BE_Export const TAO_NL be_nl;
+extern TAO_IDL3_TO_IDL2_BE_Export const TAO_INDENT be_idt;
+extern TAO_IDL3_TO_IDL2_BE_Export const TAO_INDENT be_idt_nl;
+extern TAO_IDL3_TO_IDL2_BE_Export const TAO_UNINDENT be_uidt;
+extern TAO_IDL3_TO_IDL2_BE_Export const TAO_UNINDENT be_uidt_nl;
+
+class TAO_IDL3_TO_IDL2_BE_Export TAO_OutStream
+{
+ // =TITLE
+ // TAO_OutStream
+ //
+ // =DESCRIPTION
+ // Defines an interface by which the backend code generator can
+ // print its output to the underlying I/O handle. This is a
+ // helper class that will be used by the TAO_CodeGen
+ // class. However, this is an abstract class and classes that
+ // understand specific front ends must derive from this class.
+public:
+ TAO_OutStream (void);
+ // constructor.
+
+ virtual ~TAO_OutStream (void);
+ // destructor.
+
+ int open (const char *fname);
+ // open the underlying low-level handle for output.
+
+
+ FILE *file (void);
+ // Return the underlying lowlevel file pointer.
+
+ int incr_indent (unsigned short flag = 1);
+ // increment the indentation level and by default actually indent the output
+ // accordingly
+
+ int decr_indent (unsigned short flag = 1);
+ // decrease the indentation level and by default actually indent the output
+ // accordingly
+
+ int reset (void);
+ // reset indentation level to 0
+
+ int indent (void);
+ // indent starting next line
+
+ int nl (void);
+ // put a newline and indent on the next line
+
+ int print (const char *format, ...);
+ // "printf" style variable argument print
+
+ void gen_ifndef_string (const char *fname,
+ const char *prefix,
+ const char *suffix);
+
+ // =overloaded operators
+
+ TAO_OutStream &operator<< (const char *str);
+ // output the char string and return a reference to ourselves
+
+ TAO_OutStream &operator<< (const ACE_CDR::UShort num);
+ // output the integer and return a reference to ourselves
+
+ TAO_OutStream &operator<< (const ACE_CDR::Short num);
+ // output the integer and return a reference to ourselves
+
+ TAO_OutStream &operator<< (const ACE_CDR::ULong num);
+ // output the integer and return a reference to ourselves
+
+ TAO_OutStream &operator<< (const ACE_CDR::Long num);
+ // output the integer and return a reference to ourselves
+
+#if defined (ACE_WIN64)
+ TAO_OutStream &operator<< (const ACE_CDR::ULongLong num);
+ // output the integer and return a reference to ourselves
+
+ TAO_OutStream &operator<< (const ACE_CDR::LongLong num);
+ // output the integer and return a reference to ourselves
+#endif /* ACE_WIN64 */
+
+ TAO_OutStream &operator<< (const unsigned long num);
+ // output the integer and return a reference to ourselves
+
+ TAO_OutStream &operator<< (const long num);
+ // output the integer and return a reference to ourselves
+
+ // = MANIPULATORS
+
+ TAO_OutStream &operator<< (const TAO_NL& nl);
+ TAO_OutStream &operator<< (const TAO_INDENT& i);
+ TAO_OutStream &operator<< (const TAO_UNINDENT& i);
+
+ // The following will be provided by specialized classes.
+
+ TAO_OutStream &operator<< (Identifier *id);
+ TAO_OutStream &operator<< (AST_Expression *expr);
+
+ // Provided by specialized classes.
+ virtual TAO_OutStream &print (Identifier *id) = 0;
+
+ virtual TAO_OutStream &print (AST_Expression *idl) = 0;
+
+protected:
+ FILE *fp_;
+ // The underlying low-level I/O handle.
+
+ int indent_level_;
+ // indentation level
+};
+
+#endif // if !defined
diff --git a/modules/CIAO/tools/IDL3_to_IDL2/be_init.cpp b/modules/CIAO/tools/IDL3_to_IDL2/be_init.cpp
new file mode 100644
index 00000000000..fe111e60a47
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_IDL2/be_init.cpp
@@ -0,0 +1,32 @@
+// $Id$
+
+#include "global_extern.h"
+#include "be_extern.h"
+#include "../../ciao/Version.h"
+
+TAO_IDL3_TO_IDL2_BE_Export void
+BE_version (void)
+{
+ ACE_DEBUG ((LM_DEBUG,
+ "%s %s\n",
+ ACE_TEXT ("TAO_ID3_TO_IDL2_BE, version"),
+ ACE_TEXT (CIAO_VERSION)));
+}
+
+TAO_IDL3_TO_IDL2_BE_Export int
+BE_init (int & /* argc */, ACE_TCHAR * /*argv */ [])
+{
+ // Initialize BE global data object.
+ ACE_NEW_RETURN (be_global,
+ BE_GlobalData,
+ -1);
+
+ idl_global->pass_orb_idl (true);
+ return 0;
+}
+
+TAO_IDL3_TO_IDL2_BE_Export void
+BE_post_init (char * /* files */ [], long /* nfiles */)
+{
+}
+
diff --git a/modules/CIAO/tools/IDL3_to_IDL2/be_produce.cpp b/modules/CIAO/tools/IDL3_to_IDL2/be_produce.cpp
new file mode 100644
index 00000000000..94619136efc
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_IDL2/be_produce.cpp
@@ -0,0 +1,168 @@
+// $Id$
+
+/*
+
+COPYRIGHT
+
+Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United
+States of America. All Rights Reserved.
+
+This product is protected by copyright and distributed under the following
+license restricting its use.
+
+The Interface Definition Language Compiler Front End (CFE) is made
+available for your use provided that you include this license and copyright
+notice on all media and documentation and the software program in which
+this product is incorporated in whole or part. You may copy and extend
+functionality (but may not remove functionality) of the Interface
+Definition Language CFE without charge, but you are not authorized to
+license or distribute it to anyone else except as part of a product or
+program developed by you or with the express written consent of Sun
+Microsystems, Inc. ("Sun").
+
+The names of Sun Microsystems, Inc. and any of its subsidiaries or
+affiliates may not be used in advertising or publicity pertaining to
+distribution of Interface Definition Language CFE as permitted herein.
+
+This license is effective until terminated by Sun for failure to comply
+with this license. Upon termination, you shall destroy or return all code
+and documentation for the Interface Definition Language CFE.
+
+INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED AS IS WITH NO WARRANTIES OF
+ANY KIND INCLUDING THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS
+FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR ARISING FROM A COURSE OF
+DEALING, USAGE OR TRADE PRACTICE.
+
+INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT
+ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES
+TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT.
+
+SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH
+RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY
+INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF.
+
+IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES BE LIABLE FOR
+ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND CONSEQUENTIAL
+DAMAGES, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+Use, duplication, or disclosure by the government is subject to
+restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in
+Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR
+52.227-19.
+
+Sun, Sun Microsystems and the Sun logo are trademarks or registered
+trademarks of Sun Microsystems, Inc.
+
+SunSoft, Inc.
+2550 Garcia Avenue
+Mountain View, California 94043
+
+NOTE:
+
+SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are
+trademarks or registered trademarks of Sun Microsystems, Inc.
+
+ */
+
+#include "TAO_IDL3_TO_IDL2_BE_Export.h"
+#include "global_extern.h"
+#include "be_extern.h"
+#include "be_helper.h"
+#include "fe_extern.h"
+#include "utl_string.h"
+#include "ast_root.h"
+#include "checking_visitor.h"
+#include "idl3_to_idl2_visitor.h"
+
+// Clean up before exit, whether successful or not.
+TAO_IDL3_TO_IDL2_BE_Export void
+BE_cleanup (void)
+{
+ idl_global->destroy ();
+}
+
+// Abort this run of the BE.
+TAO_IDL3_TO_IDL2_BE_Export void
+BE_abort (void)
+{
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Fatal Error - Aborting\n")));
+
+ // BE_cleanup will be called after the exception is caught.
+ throw Bailout ();
+}
+
+// Do the work of this BE. This is the starting point for code generation.
+TAO_IDL3_TO_IDL2_BE_Export void
+BE_produce (void)
+{
+ // Get the root node.
+ AST_Decl *d = idl_global->root ();
+ AST_Root *ast_root = AST_Root::narrow_from_decl (d);
+
+ if (ast_root == 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%N:%l) BE_produce - ")
+ ACE_TEXT ("No Root\n")));
+ BE_abort ();
+ }
+
+ checking_visitor c_visitor;
+
+ if (c_visitor.visit_root (ast_root) == -1)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%N:%l) BE_produce - failed")
+ ACE_TEXT (" to accept checking visitor\n")));
+
+ BE_abort ();
+ }
+
+ // Create and launch the 'equivalent IDL' visitor only if IDL3
+ // declarations were seen by the checking visitor, or if we
+ // are not just including an IDL2-only original file in a new file.
+ if (c_visitor.is_idl3 () || !be_global->encapsulate_idl2 ())
+ {
+ idl3_to_idl2_visitor visitor;
+
+ if (visitor.visit_root (ast_root) == -1)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%N:%l) BE_produce - failed to")
+ ACE_TEXT (" accept idl3_to_idl2 visitor\n")));
+ }
+ }
+ else
+ {
+ TAO_OutStream *os = 0;
+ int status = be_global->outfile_init (os,
+ "",
+ "_IDL2.idl",
+ "_TAO_IDL_",
+ "_IDL_");
+
+ if (status == -1)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%N:%l) BE_produce - ")
+ ACE_TEXT ("failed to initialize output file\n")));
+
+ delete os;
+ os = 0;
+ BE_abort ();
+ }
+
+ *os << be_nl << be_nl
+ << "#include \""
+ << idl_global->stripped_filename ()->get_string ()
+ << "\"" << be_nl << be_nl
+ << "#endif /* ifndef */" << be_nl;
+
+ delete os;
+ os = 0;
+ }
+
+ // Clean up.
+ BE_cleanup ();
+}
diff --git a/modules/CIAO/tools/IDL3_to_IDL2/be_sunsoft.cpp b/modules/CIAO/tools/IDL3_to_IDL2/be_sunsoft.cpp
new file mode 100644
index 00000000000..e924ccea47d
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_IDL2/be_sunsoft.cpp
@@ -0,0 +1,157 @@
+// $Id$
+
+#include "be_sunsoft.h"
+#include "identifier_helper.h"
+
+#include "ast_expression.h"
+#include "utl_identifier.h"
+#include "utl_idlist.h"
+#include "utl_string.h"
+
+#include "ace/OS_NS_stdio.h"
+#include "ace/OS_NS_string.h"
+#include "ace/OS_NS_ctype.h"
+
+ACE_RCSID (be,
+ be_sunsoft,
+ "$Id$")
+
+TAO_SunSoft_OutStream::TAO_SunSoft_OutStream (void)
+ : TAO_OutStream ()
+{
+}
+
+TAO_SunSoft_OutStream::~TAO_SunSoft_OutStream (void)
+{
+}
+
+TAO_OutStream &
+TAO_SunSoft_OutStream::print (Identifier *id)
+{
+ ACE_OS::fprintf (this->fp_,
+ id->get_string ());
+
+ return *this;
+}
+
+TAO_OutStream&
+TAO_SunSoft_OutStream::print (AST_Expression *expr)
+{
+ AST_Expression::AST_ExprValue *ev = expr->ev ();
+
+ if (ev)
+ {
+ switch (ev->et)
+ {
+ case AST_Expression::EV_short:
+ this->TAO_OutStream::print (ACE_INT32_FORMAT_SPECIFIER_ASCII, ev->u.sval);
+ break;
+ case AST_Expression::EV_ushort:
+ this->TAO_OutStream::print (ACE_INT32_FORMAT_SPECIFIER_ASCII "%c", ev->u.usval, 'U');
+ break;
+ case AST_Expression::EV_long:
+ this->TAO_OutStream::print (ACE_INT32_FORMAT_SPECIFIER_ASCII, ev->u.lval);
+ break;
+ case AST_Expression::EV_ulong:
+ this->TAO_OutStream::print (ACE_UINT32_FORMAT_SPECIFIER_ASCII "%c", ev->u.ulval, 'U');
+ break;
+ // The ACE_LACKS_LONGLONG_T guards have been removed around
+ // the next 2 cases since the macros now used should work
+ // whether native 64-bit integers are defined or not.
+ case AST_Expression::EV_longlong:
+ this->TAO_OutStream::print ("ACE_INT64_LITERAL (");
+ this->TAO_OutStream::print (ACE_INT64_FORMAT_SPECIFIER_ASCII,
+ ev->u.llval);
+ this->TAO_OutStream::print (")");
+ break;
+ case AST_Expression::EV_ulonglong:
+ this->TAO_OutStream::print ("ACE_UINT64_LITERAL (");
+ this->TAO_OutStream::print (ACE_UINT64_FORMAT_SPECIFIER_ASCII,
+ ev->u.ullval);
+ this->TAO_OutStream::print (")");
+ break;
+ case AST_Expression::EV_float:
+ this->TAO_OutStream::print ("%f%c", ev->u.fval, 'F');
+ break;
+ case AST_Expression::EV_double:
+ this->TAO_OutStream::print ("%24.16G", ev->u.dval);
+ break;
+ case AST_Expression::EV_longdouble:
+ break;
+ case AST_Expression::EV_char:
+ // isprint() sees \ and ' as printable characters
+ // so we have to test for them first.
+ if (ev->u.cval == '\\')
+ this->TAO_OutStream::print ("'\\\\'");
+ else if (ev->u.cval == '\'')
+ this->TAO_OutStream::print ("'\\''");
+
+ // This handles hex and octal escape sequences
+ // that would print out either as weird characters
+ // or as an unsigned number too large for a char.
+ else if ((unsigned char) ev->u.cval > ACE_CHAR_MAX)
+ this->TAO_OutStream::print ("%hd", ev->u.cval);
+ else if (ACE_OS::ace_isprint (ev->u.cval))
+ this->TAO_OutStream::print ("'%c'", ev->u.cval);
+ else if (ACE_OS::ace_iscntrl (ev->u.cval))
+ switch (ev->u.cval)
+ {
+ case '\n':
+ this->TAO_OutStream::print ("'\\n'");
+ break;
+ case '\t':
+ this->TAO_OutStream::print ("'\\t'");
+ break;
+ case '\r':
+ this->TAO_OutStream::print ("'\\r'");
+ break;
+ case '\v':
+ this->TAO_OutStream::print ("'\\v'");
+ break;
+ case '\f':
+ this->TAO_OutStream::print ("'\\f'");
+ break;
+ case '\b':
+ this->TAO_OutStream::print ("'\\b'");
+ break;
+ case '\a':
+ this->TAO_OutStream::print ("'\\a'");
+ break;
+ case '\?':
+ this->TAO_OutStream::print ("'?'");
+ break;
+ default:
+ this->TAO_OutStream::print ("'\\x%x'", ev->u.cval);
+ }
+ else
+ this->TAO_OutStream::print ("'\\x%x'", ev->u.cval);
+ break;
+ case AST_Expression::EV_wchar:
+ this->TAO_OutStream::print ("L'%lc'", ev->u.wcval);
+ break;
+ case AST_Expression::EV_octet:
+ this->TAO_OutStream::print ("%d", ev->u.oval);
+ break;
+ case AST_Expression::EV_bool:
+ this->TAO_OutStream::print ("%s", ev->u.bval ? "true" : "false");
+ break;
+ case AST_Expression::EV_string:
+ this->TAO_OutStream::print ("\"%s\"", ev->u.strval->get_string ());
+ break;
+ case AST_Expression::EV_wstring:
+ this->TAO_OutStream::print ("L\"%s\"", ev->u.wstrval);
+ break;
+ case AST_Expression::EV_enum:
+ *this << IdentifierHelper::orig_sn (expr->n ()).c_str ();
+ break;
+ default:
+ break;
+ }
+ }
+ else
+ {
+ // XXXASG: need to add code here
+ }
+
+ return *this;
+}
diff --git a/modules/CIAO/tools/IDL3_to_IDL2/be_sunsoft.h b/modules/CIAO/tools/IDL3_to_IDL2/be_sunsoft.h
new file mode 100644
index 00000000000..c269c8c3bc8
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_IDL2/be_sunsoft.h
@@ -0,0 +1,45 @@
+/* -*- c++ -*- */
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// be_sunsoft.h
+//
+// = DESCRIPTION
+// SunSoft specific backend output generation
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#ifndef TAO_BE_HELPER_H
+#define TAO_BE_HELPER_H
+
+#include "be_helper.h"
+
+class TAO_IDL3_TO_IDL2_BE_Export TAO_SunSoft_OutStream : public TAO_OutStream
+{
+ // =TITLE
+ // TAO_SunSoft_OutStream
+ // =DESCRIPTION
+ // Backend specific to SunSoft AST nodes
+public:
+ TAO_SunSoft_OutStream (void);
+ // constructor
+
+ ~TAO_SunSoft_OutStream (void);
+ // destuctor
+
+ virtual TAO_OutStream &print (Identifier *id);
+ // output the SunSoft IDL Identifier Node
+
+ virtual TAO_OutStream &print (AST_Expression *expr);
+ // output the contents of the AST_Expression node
+};
+
+#endif // if !defined
diff --git a/modules/CIAO/tools/IDL3_to_IDL2/checking_visitor.cpp b/modules/CIAO/tools/IDL3_to_IDL2/checking_visitor.cpp
new file mode 100644
index 00000000000..d0ff78e8707
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_IDL2/checking_visitor.cpp
@@ -0,0 +1,461 @@
+/* -*- c++ -*- */
+// $Id$
+
+#include "checking_visitor.h"
+#include "identifier_helper.h"
+#include "be_extern.h"
+
+#include "ast_component.h"
+#include "ast_component_fwd.h"
+#include "ast_eventtype.h"
+#include "ast_eventtype_fwd.h"
+#include "ast_home.h"
+#include "ast_root.h"
+#include "global_extern.h"
+#include "nr_extern.h"
+
+checking_visitor::checking_visitor (void)
+ : is_idl3_ (false)
+{
+}
+
+checking_visitor::~checking_visitor (void)
+{
+}
+
+int
+checking_visitor::visit_decl (AST_Decl *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_scope (UTL_Scope *node)
+{
+ for (UTL_ScopeActiveIterator si (node, UTL_Scope::IK_decls);
+ !si.is_done ();
+ si.next ())
+ {
+ AST_Decl *d = si.item ();
+ AST_Decl::NodeType nt = d->node_type ();
+
+ if (nt == AST_Decl::NT_typedef || nt == AST_Decl::NT_pre_defined)
+ {
+ continue;
+ }
+
+ // Want to skip the uses_xxxConnection structs added by uses
+ // multiple ports.
+ // @@@ (JP) This will go away when the visitor is finished, since
+ // those uses_xxxConnection structs will not be added to the AST.
+ if (ScopeAsDecl (node)->node_type () == AST_Decl::NT_component
+ && nt != AST_Decl::NT_attr)
+ {
+ continue;
+ }
+
+ if (d->ast_accept (this) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "checking_visitor::visit_scope - "
+ "codegen for scope failed\n"),
+ -1);
+ }
+ }
+
+ return 0;
+}
+
+int
+checking_visitor::visit_type (AST_Type *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_predefined_type (AST_PredefinedType *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_module (AST_Module *node)
+{
+ if (this->visit_scope (node) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "checking_visitor::visit_module - "
+ "codegen for scope failed\n"),
+ -1);
+ }
+
+ return 0;
+}
+
+int
+checking_visitor::visit_interface (AST_Interface *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_interface_fwd (AST_InterfaceFwd *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_template_interface (AST_Template_Interface *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_valuebox (AST_ValueBox *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_valuetype (AST_ValueType *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_valuetype_fwd (AST_ValueTypeFwd *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_component (AST_Component *node)
+{
+ this->is_idl3_ = true;
+ this->remove_idl2_only_filename (node->file_name ());
+ return 0;
+}
+
+int
+checking_visitor::visit_component_fwd (AST_ComponentFwd *node)
+{
+ this->is_idl3_ = true;
+ this->remove_idl2_only_filename (node->file_name ());
+ return 0;
+}
+
+int
+checking_visitor::visit_porttype (AST_PortType *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_provides (AST_Provides *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_uses (AST_Uses *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_publishes (AST_Publishes *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_emits (AST_Emits *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_consumes (AST_Consumes *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_extended_port (AST_Extended_Port *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_mirror_port (AST_Mirror_Port *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_connector (AST_Connector *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_instantiated_connector (
+ AST_Instantiated_Connector *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_tmpl_port (AST_Tmpl_Port *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_tmpl_mirror_port (
+ AST_Tmpl_Mirror_Port *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_eventtype (AST_EventType *node)
+{
+ this->is_idl3_ = true;
+ this->remove_idl2_only_filename (node->file_name ());
+ return 0;
+}
+
+int
+checking_visitor::visit_eventtype_fwd (AST_EventTypeFwd *node)
+{
+ this->is_idl3_ = true;
+ this->remove_idl2_only_filename (node->file_name ());
+ return 0;
+}
+
+int
+checking_visitor::visit_home (AST_Home *node)
+{
+ this->is_idl3_ = true;
+ this->remove_idl2_only_filename (node->file_name ());
+ return 0;
+}
+
+
+int
+checking_visitor::visit_factory (AST_Factory *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_structure (AST_Structure *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_structure_fwd (AST_StructureFwd *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_exception (AST_Exception *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_expression (AST_Expression *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_enum (AST_Enum *)
+{
+ return 0;
+}
+
+
+int
+checking_visitor::visit_union (AST_Union *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_union_fwd (AST_UnionFwd *)
+{
+ return 0;
+}
+
+
+int
+checking_visitor::visit_constant (AST_Constant *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_enum_val (AST_EnumVal *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_root (AST_Root *node)
+{
+ // Populate this list with all included filenames. They will be
+ // removed as IDL3 constructs are found in them.
+ for (size_t i = 0; i < idl_global->n_included_idl_files (); ++i)
+ {
+ if (! this->idl2_only_files_.empty ())
+ {
+ this->idl2_only_files_ += " ";
+ }
+
+ this->idl2_only_files_ += idl_global->included_idl_files ()[i];
+ }
+
+ if (this->visit_scope (node) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "checking_visitor::visit_root - "
+ "codegen for scope failed\n"),
+ -1);
+ }
+
+ // Append the remaining names in this list to the excluded
+ // filenames list. If a filename ends up appearing twice, it
+ // shouldn't matter.
+ be_global->set_excluded_filenames (this->idl2_only_files_.c_str ());
+
+ return 0;
+}
+
+int
+checking_visitor::visit_native (AST_Native *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_operation (AST_Operation *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_field (AST_Field *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_argument (AST_Argument *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_attribute (AST_Attribute *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_union_branch (AST_UnionBranch *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_union_label (AST_UnionLabel *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_array (AST_Array *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_sequence (AST_Sequence *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_string (AST_String *)
+{
+ return 0;
+}
+
+int
+checking_visitor::visit_typedef (AST_Typedef *)
+{
+ return 0;
+}
+
+bool
+checking_visitor::is_idl3 (void) const
+{
+ return this->is_idl3_;
+}
+
+void
+checking_visitor::remove_idl2_only_filename (ACE_CString filename)
+{
+ if (this->idl2_only_files_.empty ())
+ {
+ return;
+ }
+
+ ACE_CString::size_type p = 0;
+ ACE_CString raw_local_fname (filename);
+
+ ACE_CString::size_type pos = raw_local_fname.rfind ('/');
+
+ if (pos != ACE_CString::npos)
+ {
+ raw_local_fname =
+ raw_local_fname.substr (pos + 1);
+ }
+
+ while (p != ACE_CString::npos)
+ {
+ ACE_CString::size_type cursor = p;
+
+ if (cursor >= this->idl2_only_files_.length ())
+ {
+ break;
+ }
+
+ p = this->idl2_only_files_.find (' ', cursor);
+
+ ACE_CString one_filename =
+ this->idl2_only_files_.substr (cursor, p - cursor);
+
+ // Skip the whitespace.
+ if (p != ACE_CString::npos)
+ {
+ while (this->idl2_only_files_[p] == ' ')
+ {
+ p++;
+ }
+ }
+
+ if (one_filename == raw_local_fname)
+ {
+ this->idl2_only_files_ =
+ this->idl2_only_files_.substr (0, cursor)
+ + this->idl2_only_files_.substr (p);
+ }
+ }
+}
+
diff --git a/modules/CIAO/tools/IDL3_to_IDL2/checking_visitor.h b/modules/CIAO/tools/IDL3_to_IDL2/checking_visitor.h
new file mode 100644
index 00000000000..ade99005e81
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_IDL2/checking_visitor.h
@@ -0,0 +1,113 @@
+// $Id$
+
+/* -*- c++ -*- */
+// ============================================================================
+//
+// = LIBRARY
+// TAO_IDL3_TO_IDL2_BE_DLL
+//
+// = FILENAME
+// checking_visitor.h
+//
+// = DESCRIPTION
+// Visitor that checks input IDL3 in a separate pass.
+//
+// = AUTHOR
+// Jeff Parsons <j.parsons@vanderbilt.edu>
+//
+// ============================================================================
+
+#ifndef TAO_IDL_CHECKING_VISITOR_H
+#define TAO_IDL_CHECKING_VISITOR_H
+
+#include "ace/SString.h"
+
+#include "ast_visitor.h"
+#include "utl_scoped_name.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "TAO_IDL3_TO_IDL2_BE_Export.h"
+
+class UTL_ExceptList;
+
+class TAO_IDL3_TO_IDL2_BE_Export checking_visitor : public ast_visitor
+{
+ //
+ // = TITLE
+ // checking_visitor.
+ //
+ // = DESCRIPTION
+ // Checks input IDL3 and sets flags used by subsequent
+ // equivalent IDL generating visitor.
+ //
+public:
+ checking_visitor (void);
+ virtual ~checking_visitor (void);
+
+ virtual int visit_decl (AST_Decl *d);
+ virtual int visit_scope (UTL_Scope *node);
+ virtual int visit_type (AST_Type *node);
+ virtual int visit_predefined_type (AST_PredefinedType *node);
+ virtual int visit_module (AST_Module *node);
+ virtual int visit_interface (AST_Interface *node);
+ virtual int visit_interface_fwd (AST_InterfaceFwd *node);
+ virtual int visit_template_interface (AST_Template_Interface *node);
+ virtual int visit_valuebox (AST_ValueBox *node);
+ virtual int visit_valuetype (AST_ValueType *node);
+ virtual int visit_valuetype_fwd (AST_ValueTypeFwd *node);
+ virtual int visit_component (AST_Component *node);
+ virtual int visit_component_fwd (AST_ComponentFwd *node);
+ virtual int visit_porttype (AST_PortType *node);
+ virtual int visit_provides (AST_Provides *node);
+ virtual int visit_uses (AST_Uses *node);
+ virtual int visit_publishes (AST_Publishes *node);
+ virtual int visit_emits (AST_Emits *node);
+ virtual int visit_consumes (AST_Consumes *node);
+ virtual int visit_extended_port (AST_Extended_Port *node);
+ virtual int visit_mirror_port (AST_Mirror_Port *node);
+ virtual int visit_connector (AST_Connector *node);
+ virtual int visit_instantiated_connector (
+ AST_Instantiated_Connector *node);
+ virtual int visit_tmpl_port (AST_Tmpl_Port *node);
+ virtual int visit_tmpl_mirror_port (
+ AST_Tmpl_Mirror_Port *node);
+ virtual int visit_eventtype (AST_EventType *node);
+ virtual int visit_eventtype_fwd (AST_EventTypeFwd *node);
+ virtual int visit_home (AST_Home *node);
+ virtual int visit_factory (AST_Factory *node);
+ virtual int visit_structure (AST_Structure *node);
+ virtual int visit_structure_fwd (AST_StructureFwd *node);
+ virtual int visit_exception (AST_Exception *node);
+ virtual int visit_expression (AST_Expression *node);
+ virtual int visit_enum (AST_Enum *node);
+ virtual int visit_operation (AST_Operation *node);
+ virtual int visit_field (AST_Field *node);
+ virtual int visit_argument (AST_Argument *node);
+ virtual int visit_attribute (AST_Attribute *node);
+ virtual int visit_union (AST_Union *node);
+ virtual int visit_union_fwd (AST_UnionFwd *node);
+ virtual int visit_union_branch (AST_UnionBranch *node);
+ virtual int visit_union_label (AST_UnionLabel *node);
+ virtual int visit_constant (AST_Constant *node);
+ virtual int visit_enum_val (AST_EnumVal *node);
+ virtual int visit_array (AST_Array *node);
+ virtual int visit_sequence (AST_Sequence *node);
+ virtual int visit_string (AST_String *node);
+ virtual int visit_typedef (AST_Typedef *node);
+ virtual int visit_root (AST_Root *node);
+ virtual int visit_native (AST_Native *node);
+
+ bool is_idl3 (void) const;
+
+private:
+ void remove_idl2_only_filename (ACE_CString filename);
+
+private:
+ bool is_idl3_;
+ ACE_CString idl2_only_files_;
+};
+
+#endif /* TAO_IDL_CHECKING_VISITOR_H */
diff --git a/modules/CIAO/tools/IDL3_to_IDL2/identifier_helper.cpp b/modules/CIAO/tools/IDL3_to_IDL2/identifier_helper.cpp
new file mode 100644
index 00000000000..9b8a255b9c5
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_IDL2/identifier_helper.cpp
@@ -0,0 +1,123 @@
+/* -*- c++ -*- */
+// $Id$
+
+#include "identifier_helper.h"
+#include "utl_identifier.h"
+#include "utl_string.h"
+#include "fe_private.h"
+#include "global_extern.h"
+
+Identifier *
+IdentifierHelper::original_local_name (Identifier * local_name)
+{
+ Identifier * id = 0;
+ const char *lname = local_name->get_string ();
+
+ // Remove _cxx_ if:
+ // 1. it occurs and
+ // 2. it occurs at the beginning of the string and
+ // 3. the rest of the string is a C++ keyword
+ if (ACE_OS::strstr (lname, "_cxx_") == lname)
+ {
+ TAO_IDL_CPP_Keyword_Table cpp_key_tbl;
+
+ unsigned int len =
+ static_cast<unsigned int> (ACE_OS::strlen (lname + 5));
+
+ const TAO_IDL_CPP_Keyword_Entry *entry =
+ cpp_key_tbl.lookup (lname + 5, len);
+
+ if (entry != 0)
+ {
+ // Remove _cxx_ and assign to the Identifier variable.
+ ACE_NEW_RETURN (id,
+ Identifier (lname + 5),
+ 0);
+ }
+ }
+
+ if (id == 0)
+ {
+ id = local_name->copy ();
+ }
+
+ return id;
+}
+
+ACE_CString
+IdentifierHelper::orig_sn (UTL_IdList * sn, bool appended_to)
+{
+ ACE_CString retval;
+ bool first = true;
+ bool second = false;
+ Identifier *id = 0;
+
+ for (UTL_IdListActiveIterator i (sn); !i.is_done ();)
+ {
+ if (!first)
+ {
+ retval += "::";
+ }
+ else if (second)
+ {
+ first = second = false;
+ }
+
+ id = IdentifierHelper::original_local_name (i.item ());
+ i.next ();
+
+ // Append the identifier.
+ retval +=
+ appended_to && i.is_done ()
+ ? id->get_string ()
+ : IdentifierHelper::try_escape (id).c_str ();
+
+ if (first)
+ {
+ if (ACE_OS::strcmp (id->get_string (), "") != 0)
+ {
+ // Does not start with a "".
+ first = false;
+ }
+ else
+ {
+ second = true;
+ }
+ }
+
+ id->destroy ();
+ delete id;
+ id = 0;
+ }
+
+ return retval;
+}
+
+bool
+IdentifierHelper::is_idl_keyword (Identifier * local_name)
+{
+ UTL_String utl_tmp (local_name->get_string ());
+ ACE_CString ext_id (utl_tmp.get_canonical_rep (),
+ 0,
+ false);
+
+ int status = idl_global->idl_keywords ().find (ext_id);
+ utl_tmp.destroy ();
+
+ return status == 0;
+}
+
+ACE_CString
+IdentifierHelper::try_escape (Identifier * local_name)
+{
+ ACE_CString s_local_name (local_name->get_string ());
+
+ if (IdentifierHelper::is_idl_keyword (local_name))
+ {
+ return "_" + s_local_name;
+ }
+ else
+ {
+ return s_local_name;
+ }
+}
diff --git a/modules/CIAO/tools/IDL3_to_IDL2/identifier_helper.h b/modules/CIAO/tools/IDL3_to_IDL2/identifier_helper.h
new file mode 100644
index 00000000000..a6a6fcc88df
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_IDL2/identifier_helper.h
@@ -0,0 +1,66 @@
+// $Id$
+
+/* -*- c++ -*- */
+// ============================================================================
+//
+// = LIBRARY
+// TAO_IDL3_TO_IDL2_BE_DLL
+//
+// = FILENAME
+// identifier_helper.h
+//
+// = DESCRIPTION
+// Utilities associated with UTL_Identifier.
+//
+// = AUTHOR
+// Jeff Parsons <j.parsons@vanderbilt.edu>
+//
+// ============================================================================
+
+#ifndef IDENTIFIER_HELPER_H
+#define IDENTIFIER_HELPER_H
+
+#include "utl_scoped_name.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "TAO_IDL3_TO_IDL2_BE_Export.h"
+#include "ace/SString.h"
+
+class Identifier;
+
+struct TAO_IDL3_TO_IDL2_BE_Export IdentifierHelper
+{
+ //
+ // = TITLE
+ // IdentifierHelper.
+ //
+ // = DESCRIPTION
+ // 1) keeps escape (leading underscore character in generated
+ // identifier in IDL
+ // 2) removes the '_' escape character when the identifier is
+ // part of another identifier such as in provides_XXX
+ // 3) removes any '_cxx_' in generated IDL
+
+ static Identifier *
+ original_local_name (Identifier * local_name);
+
+ // Removes '_cxx_ from segments of a scoped name, and optionally
+ // de-escape the last segment, if it's to be appended to.
+ static ACE_CString
+ orig_sn (UTL_ScopedName * scoped_name, bool appended_to = false);
+
+ // Detects case-insensitive match with IDL keyword.
+ static bool
+ is_idl_keyword (Identifier * local_name);
+
+ // Preserves the 'escape' (leading underscore) in a
+ // generated identifier if necessary.
+ static ACE_CString
+ try_escape (Identifier * local_name);
+};
+
+#endif /* IDENTIFIER_HELPER_H */
+
diff --git a/modules/CIAO/tools/IDL3_to_IDL2/idl3_to_idl2_visitor.cpp b/modules/CIAO/tools/IDL3_to_IDL2/idl3_to_idl2_visitor.cpp
new file mode 100644
index 00000000000..209c5a8e716
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_IDL2/idl3_to_idl2_visitor.cpp
@@ -0,0 +1,779 @@
+/* -*- c++ -*- */
+// $Id$
+
+#include "idl3_to_idl2_visitor.h"
+#include "identifier_helper.h"
+#include "be_sunsoft.h"
+#include "be_extern.h"
+
+#include "ast_component_fwd.h"
+#include "ast_provides.h"
+#include "ast_uses.h"
+#include "ast_publishes.h"
+#include "ast_emits.h"
+#include "ast_consumes.h"
+#include "ast_eventtype.h"
+#include "ast_eventtype_fwd.h"
+#include "ast_home.h"
+#include "ast_operation.h"
+#include "ast_root.h"
+#include "utl_exceptlist.h"
+#include "utl_identifier.h"
+#include "global_extern.h"
+#include "nr_extern.h"
+
+idl3_to_idl2_visitor::idl3_to_idl2_visitor (void)
+ : basic_visitor ()
+{
+}
+
+idl3_to_idl2_visitor::~idl3_to_idl2_visitor (void)
+{
+}
+
+int
+idl3_to_idl2_visitor::visit_module (AST_Module *node)
+{
+ if (node->imported ())
+ {
+ return 0;
+ }
+
+ *os << be_nl << be_nl;
+
+ ACE_CString name =
+ IdentifierHelper::try_escape (node->original_local_name ());
+
+ *os << "module " << name.c_str () << be_nl
+ << "{" << be_idt;
+
+ this->check_id_and_version (node);
+ this->check_prefix (node);
+
+ if (this->visit_scope (node) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "idl3_to_idl2_visitor::visit_module - "
+ "codegen for scope failed\n"),
+ -1);
+ }
+
+ *os << be_uidt_nl
+ << "}; // end of module " << name.c_str ();
+
+ return 0;
+}
+
+int
+idl3_to_idl2_visitor::visit_interface (AST_Interface *node)
+{
+ if (node->imported ())
+ {
+ return 0;
+ }
+
+ *os << be_nl << be_nl;
+
+ if (node->is_local ())
+ {
+ *os << "local ";
+ }
+
+ if (node->is_abstract ())
+ {
+ *os << "abstract ";
+ }
+
+ *os << "interface "
+ << IdentifierHelper::try_escape (node->original_local_name ()).c_str ();
+
+ AST_Interface **parents = node->inherits ();
+
+ for (long i = 0; i < node->n_inherits (); ++i)
+ {
+ if (i == 0)
+ {
+ *os << " : ";
+ }
+ else
+ {
+ *os << ", ";
+ }
+
+ *os << IdentifierHelper::orig_sn (parents[i]->name ()).c_str ();
+ }
+
+ *os << be_nl
+ << "{" << be_idt;
+
+ this->check_id_and_version (node);
+ this->check_prefix (node);
+
+ if (this->visit_scope (node) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "idl3_to_idl2_visitor::visit_interface - "
+ "codegen for scope failed\n"),
+ -1);
+ }
+
+ *os << be_uidt_nl
+ << "};";
+
+ return 0;
+}
+
+int
+idl3_to_idl2_visitor::visit_component (AST_Component *node)
+{
+ if (node->imported ())
+ {
+ return 0;
+ }
+
+ *os << be_nl << be_nl
+ << "interface "
+ << IdentifierHelper::try_escape (node->original_local_name ()).c_str ();
+
+ AST_Component *base = node->base_component ();
+ long nsupports = node->n_supports ();
+
+ *os << " : "
+ << (base != 0
+ ? IdentifierHelper::orig_sn (base->name ()).c_str ()
+ : "Components::CCMObject");
+
+ for (long i = 0; i < nsupports; ++i)
+ {
+ *os << ", "
+ << IdentifierHelper::orig_sn (node->supports ()[i]->name ()).c_str ();
+ }
+
+ *os << be_nl
+ << "{" << be_idt;
+
+ this->check_id_and_version (node);
+
+ if (this->visit_scope (node) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "idl3_to_idl2_visitor::visit_component - "
+ "codegen for scope failed\n"),
+ -1);
+ }
+
+ *os << be_uidt_nl
+ << "};";
+
+ return 0;
+}
+
+int
+idl3_to_idl2_visitor::visit_component_fwd (AST_ComponentFwd *node)
+{
+ if (node->imported ())
+ {
+ return 0;
+ }
+
+ *os << be_nl << be_nl
+ << "component "
+ << IdentifierHelper::try_escape (node->original_local_name ()).c_str ()
+ << ";";
+
+ return 0;
+}
+
+int
+idl3_to_idl2_visitor::visit_provides (AST_Provides *node)
+{
+ Identifier *orig_id =
+ IdentifierHelper::original_local_name (node->local_name ());
+
+ UTL_ScopedName *n = node->provides_type ()->name ();
+ ACE_CString impl_name =
+ IdentifierHelper::orig_sn (n);
+
+ *os << be_nl << be_nl
+ << impl_name.c_str () << " provide_" << orig_id << " ();";
+
+ orig_id->destroy ();
+ delete orig_id;
+ orig_id = 0;
+
+ return 0;
+}
+
+int
+idl3_to_idl2_visitor::visit_uses (AST_Uses *node)
+{
+ *os << be_nl << be_nl;
+
+ Identifier *orig_id =
+ IdentifierHelper::original_local_name (node->local_name ());
+
+ UTL_ScopedName *n = node->uses_type ()->name ();
+ ACE_CString impl_name =
+ IdentifierHelper::orig_sn (n);
+
+ if (node->is_multiple ())
+ {
+ *os << "struct " << orig_id << "Connection" << be_nl
+ << "{" << be_idt_nl
+ << impl_name.c_str () << " objref;" << be_nl
+ << "Components::Cookie ck;" << be_uidt_nl
+ << "};" << be_nl << be_nl
+ << "typedef sequence<" << orig_id << "Connection> "
+ << orig_id << "Connections;"
+ << be_nl << be_nl
+ << "Components::Cookie connect_" << orig_id << " (in "
+ << impl_name.c_str () << " connection)" << be_idt_nl
+ << "raises (Components::ExceededConnectionLimit, "
+ << "Components::InvalidConnection);" << be_uidt_nl << be_nl
+ << impl_name.c_str () << " disconnect_" << orig_id
+ << " (in Components::Cookie ck)" << be_idt_nl
+ << "raises (Components::InvalidConnection);"
+ << be_uidt_nl << be_nl
+ << orig_id << "Connections get_connections_" << orig_id
+ << " ();";
+ }
+ else
+ {
+ *os << "void connect_" << orig_id << " (in "
+ << impl_name.c_str () << " conxn)" << be_idt_nl
+ << "raises (Components::AlreadyConnected, "
+ << "Components::InvalidConnection);" << be_uidt_nl << be_nl
+ << impl_name.c_str () << " disconnect_" << orig_id
+ << " ()" << be_idt_nl
+ << "raises (Components::NoConnection);" << be_uidt_nl << be_nl
+ << impl_name.c_str () << " get_connection_" << orig_id
+ << " ();";
+ }
+
+ orig_id->destroy ();
+ delete orig_id;
+ orig_id = 0;
+
+ return 0;
+}
+
+int
+idl3_to_idl2_visitor::visit_publishes (AST_Publishes *node)
+{
+ Identifier *orig_id =
+ IdentifierHelper::original_local_name (node->local_name ());
+
+ UTL_ScopedName *n = node->publishes_type ()->name ();
+ ACE_CString impl_name =
+ IdentifierHelper::orig_sn (n, true);
+
+ *os << be_nl << be_nl
+ << "Components::Cookie subscribe_" << orig_id
+ << " (in "
+ << impl_name.c_str () << "Consumer consumer)"
+ << be_idt_nl
+ << "raises (Components::ExceededConnectionLimit);"
+ << be_uidt_nl << be_nl
+ << impl_name.c_str () << "Consumer unsubscribe_" << orig_id
+ << " (in Components::Cookie ck)" << be_idt_nl
+ << "raises (Components::InvalidConnection);" << be_uidt;
+
+ orig_id->destroy ();
+ delete orig_id;
+ orig_id = 0;
+
+ return 0;
+}
+
+int
+idl3_to_idl2_visitor::visit_emits (AST_Emits *node)
+{
+ Identifier *orig_id =
+ IdentifierHelper::original_local_name (node->local_name ());
+
+ UTL_ScopedName *n = node->emits_type ()->name ();
+ ACE_CString impl_name =
+ IdentifierHelper::orig_sn (n, true);
+
+ *os << be_nl << be_nl
+ << "void connect_" << orig_id
+ << " (in "
+ << impl_name.c_str () << "Consumer consumer)" << be_idt_nl
+ << "raises (Components::AlreadyConnected);"
+ << be_uidt_nl << be_nl
+ << impl_name.c_str () << "Consumer disconnect_" << orig_id
+ << " ()" << be_idt_nl
+ << "raises (Components::NoConnection);" << be_uidt;
+
+ orig_id->destroy ();
+ delete orig_id;
+ orig_id = 0;
+
+ return 0;
+}
+
+int
+idl3_to_idl2_visitor::visit_consumes (AST_Consumes *node)
+{
+ Identifier *orig_id =
+ IdentifierHelper::original_local_name (node->local_name ());
+
+ UTL_ScopedName *n = node->consumes_type ()->name ();
+ ACE_CString impl_name =
+ IdentifierHelper::orig_sn (n, true);
+
+ *os << be_nl << be_nl
+ << impl_name.c_str () << "Consumer get_consumer_" << orig_id
+ << " ();";
+
+ orig_id->destroy ();
+ delete orig_id;
+ orig_id = 0;
+
+ return 0;
+}
+
+int
+idl3_to_idl2_visitor::visit_extended_port (AST_Extended_Port *)
+{
+ return 0;
+}
+
+int
+idl3_to_idl2_visitor::visit_mirror_port (AST_Mirror_Port *)
+{
+ return 0;
+}
+
+int
+idl3_to_idl2_visitor::visit_connector (AST_Connector *)
+{
+ return 0;
+}
+
+int
+idl3_to_idl2_visitor::visit_instantiated_connector (
+ AST_Instantiated_Connector *)
+{
+ return 0;
+}
+
+int
+idl3_to_idl2_visitor::visit_tmpl_port (AST_Tmpl_Port *)
+{
+ return 0;
+}
+
+int
+idl3_to_idl2_visitor::visit_tmpl_mirror_port (
+ AST_Tmpl_Mirror_Port *)
+{
+ return 0;
+}
+
+int
+idl3_to_idl2_visitor::visit_eventtype (AST_EventType *node)
+{
+ if (node->imported ())
+ {
+ return 0;
+ }
+
+ if (this->visit_valuetype (node) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "idl3_to_idl2_visitor::visit_eventtype - "
+ "codegen for valuetype failed\n"),
+ -1);
+ }
+
+ *os << be_nl << be_nl
+ << "interface " << node->original_local_name () << "Consumer : ";
+
+ AST_Interface *parent = 0;
+ AST_Decl::NodeType nt = AST_Decl::NT_native;
+
+ if (node->n_inherits () > 0)
+ {
+ parent = node->inherits ()[0];
+ AST_Type *ut = parent->unaliased_type ();
+ nt = ut->node_type ();
+ }
+
+ if (node->n_inherits () == 0 || nt == AST_Decl::NT_valuetype)
+ {
+ *os << "Components::EventConsumerBase";
+ }
+ else
+ {
+ *os << IdentifierHelper::orig_sn (node->inherits ()[0]->name (), true).c_str ()
+ << "Consumer";
+ }
+
+ *os << be_nl
+ << "{" << be_idt_nl
+ << "void push_" << node->original_local_name () << " (in "
+ << IdentifierHelper::try_escape (node->original_local_name ()).c_str ()
+ << " the_"
+ << node->original_local_name () << ");" << be_uidt_nl
+ << "};";
+
+ return 0;
+}
+
+int
+idl3_to_idl2_visitor::visit_eventtype_fwd (AST_EventTypeFwd *node)
+{
+ if (node->imported ())
+ {
+ return 0;
+ }
+
+ if (this->visit_valuetype_fwd (node) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "idl3_to_idl2_visitor::visit_eventtype_fwd - "
+ "codegen for valuetype_fwd failed\n"),
+ -1);
+ }
+
+ *os << be_nl
+ << "interface " << node->original_local_name () << "Consumer;";
+
+ return 0;
+}
+
+int
+idl3_to_idl2_visitor::visit_home (AST_Home *node)
+{
+ if (node->imported ())
+ {
+ return 0;
+ }
+
+ ACE_CString explicit_name = node->original_local_name ()->get_string ();
+ explicit_name += "Explicit";
+
+ *os << be_nl << be_nl
+ << "interface " << explicit_name.c_str () << " : ";
+
+ AST_Home *base = node->base_home ();
+
+ if (base == 0)
+ {
+ *os << "Components::CCMHome";
+ }
+ else
+ {
+ *os << IdentifierHelper::orig_sn (base->name (), true).c_str ()
+ << "Explicit";
+ }
+
+ *os << be_nl
+ << "{" << be_idt;
+
+ this->check_id_and_version (node);
+
+ // Create a temporary interface node corresponding to the one we
+ // just generated above for the home explicit interface.
+ UTL_ScopedName *sn =
+ this->create_scoped_name (0,
+ explicit_name.c_str (),
+ 0,
+ ScopeAsDecl (node->defined_in ()));
+
+ AST_Interface xplicit (sn,
+ 0,
+ 0,
+ 0,
+ 0,
+ false,
+ false);
+ xplicit.set_defined_in (node->defined_in ());
+
+ // Reset the home's decls to be defined in the explicit home interface.
+ this->tranfer_scope_elements (node, xplicit);
+
+ this->gen_factories (node, xplicit);
+ this->gen_finders (node, xplicit);
+
+ *os << be_uidt_nl
+ << "};" << be_nl << be_nl;
+
+ xplicit.destroy ();
+ sn->destroy ();
+ delete sn;
+ sn = 0;
+
+ AST_ValueType *key = node->primary_key ();
+ ACE_CString mng_name =
+ IdentifierHelper::orig_sn (node->managed_component ()->name ());
+ ACE_CString key_name;
+
+ // Generate the implicit home interface and its operations.
+ *os << "interface " << node->original_local_name () << "Implicit"
+ << (key == 0 ? " : Components::KeylessCCMHome" : "") << be_nl
+ << "{" << be_idt_nl
+ << mng_name.c_str () << " create (";
+
+ if (key != 0)
+ {
+ key_name =
+ IdentifierHelper::orig_sn (key->name ());
+
+ *os << "in " << key_name.c_str () << " key";
+ }
+
+ *os << ")" << be_idt_nl
+ << "raises (Components::CreateFailure";
+
+ if (key != 0)
+ {
+ *os << ", Components::InvalidKey, Components::DuplicateKeyValue";
+ }
+
+ *os << ");" << be_uidt;
+
+ if (key != 0)
+ {
+ *os << be_nl << be_nl
+ << mng_name.c_str ()
+ << " find_by_primary_key (in " << key_name.c_str ()
+ << " key)" << be_idt_nl
+ << "raises (Components::InvalidKey, Components::UnknownKeyValue, "
+ << "Components::FinderFailure);" << be_uidt;
+
+ *os << be_nl << be_nl
+ << "void remove (in " << key_name.c_str () << " key)" << be_idt_nl
+ << "raises (Components::InvalidKey, Components::UnknownKeyValue, "
+ << "Components::RemoveFailure);" << be_uidt;
+
+ *os << be_nl << be_nl
+ << key_name.c_str () << " get_primary_key (in "
+ << mng_name.c_str () << " comp);";
+ }
+
+ *os << be_uidt_nl
+ << "};";
+
+ // Create equivalent interface.
+ *os << be_nl << be_nl
+ << "interface "
+ << IdentifierHelper::try_escape (node->original_local_name ()).c_str ()
+ << " : "
+ << node->original_local_name () << "Explicit, "
+ << node->original_local_name () << "Implicit" << be_nl
+ << "{" << be_nl
+ << "};";
+
+ return 0;
+}
+
+int
+idl3_to_idl2_visitor::visit_root (AST_Root *node)
+{
+ int status = be_global->outfile_init (this->os,
+ "",
+ "_IDL2.idl",
+ "_TAO_IDL_",
+ "_IDL_");
+
+ if (status == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("idl3_to_idl2_visitor::visit_root - ")
+ ACE_TEXT ("failed to initialize output file\n")),
+ -1);
+ }
+
+ ACE_CString filename;
+
+ for (size_t i = 0; i < idl_global->n_included_idl_files (); ++i)
+ {
+ if (i == 0)
+ {
+ *os << be_nl;
+ }
+
+ ACE_CString raw_filename = idl_global->included_idl_files ()[i];
+ bool excluded_file_found =
+ this->match_excluded_file (raw_filename.c_str ());
+
+ if (raw_filename.find (".pidl") != ACE_CString::npos
+ || raw_filename == "orb.idl"
+ || raw_filename == "Components.idl"
+ || excluded_file_found)
+ {
+ filename = raw_filename;
+ }
+ else
+ {
+ filename =
+ raw_filename.substr (0, raw_filename.rfind ('.')) + "_IDL2.idl";
+ }
+
+ *os << be_nl
+ << "#include \"" << filename.c_str () << "\"";
+ }
+
+ const char *pfix = node->prefix ();
+
+ if (ACE_OS::strcmp (pfix, "") != 0)
+ {
+ *os << be_nl << be_nl
+ << "#pragma prefix \"" << pfix << "\"";
+ }
+
+ if (this->visit_scope (node) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("idl3_to_idl2_visitor::visit_root - ")
+ ACE_TEXT ("codegen for scope failed\n")),
+ -1);
+ }
+
+ *os << be_nl << be_nl
+ << "#endif /* ifndef */" << be_nl << be_nl;
+
+ return 0;
+}
+
+UTL_ScopedName *
+idl3_to_idl2_visitor::create_scoped_name (const char *prefix,
+ const char *local_name,
+ const char *suffix,
+ AST_Decl *parent)
+{
+ ACE_CString local_string (prefix,
+ 0,
+ false);
+ local_string += local_name;
+ local_string += suffix;
+ Identifier *local_id = 0;
+ ACE_NEW_RETURN (local_id,
+ Identifier (local_string.fast_rep ()),
+ 0);
+ UTL_ScopedName *last_segment = 0;
+ ACE_NEW_RETURN (last_segment,
+ UTL_ScopedName (local_id,
+ 0),
+ 0);
+ UTL_ScopedName *full_name =
+ static_cast<UTL_ScopedName *> (parent->name ()->copy ());
+ full_name->nconc (last_segment);
+ return full_name;
+}
+
+void
+idl3_to_idl2_visitor::tranfer_scope_elements (AST_Home *src,
+ AST_Interface &dst)
+{
+ // Transfer the elements of the home's scope to the temporary
+ // explicit home interface.
+ for (UTL_ScopeActiveIterator src_iter (src, UTL_Scope::IK_decls);
+ ! src_iter.is_done ();
+ src_iter.next ())
+ {
+ AST_Decl *d = src_iter.item ();
+ d->set_defined_in (&dst);
+ UTL_ScopedName *new_name =
+ this->create_scoped_name (0,
+ d->local_name ()->get_string (),
+ 0,
+ &dst);
+ d->set_name (new_name);
+ dst.add_to_scope (d);
+ }
+
+ // Visit the transferred scope elements normally to generate the IDL.
+ // This way referenced items will have the interface's name in the
+ // scoped name instead of the home's name.
+ for (UTL_ScopeActiveIterator dst_iter (&dst, UTL_Scope::IK_decls);
+ ! dst_iter.is_done ();
+ dst_iter.next ())
+ {
+ if (dst_iter.item ()->ast_accept (this) != 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ "idl3_to_idl2_visitor::tranfer_scope_elements - "
+ "codegen for destination scope failed\n"));
+ }
+ }
+}
+
+void
+idl3_to_idl2_visitor::gen_factories (AST_Home *node,
+ AST_Interface &)
+{
+ AST_Operation **item = 0;
+
+ for (ACE_Unbounded_Queue_Iterator<AST_Operation *> i (node->factories ());
+ ! i.done ();
+ i.advance ())
+ {
+ i.next (item);
+
+ *os << be_nl << be_nl
+ << IdentifierHelper::orig_sn (node->managed_component ()->name ()).c_str ()
+ << " "
+ << IdentifierHelper::try_escape ((*item)->original_local_name ()).c_str ()
+ << " (";
+
+ this->gen_params (*item, (*item)->argument_count ());
+
+ *os << ")";
+
+ UTL_ExceptList *exceps = (*item)->exceptions ();
+
+ if (exceps != 0 && exceps->length () > 0)
+ {
+ this->gen_exception_list (exceps, "", false);
+ }
+ else
+ {
+ *os << be_idt_nl
+ << "raises (";
+ }
+
+ *os << "Components::CreateFailure);" << be_uidt;
+ }
+}
+
+void
+idl3_to_idl2_visitor::gen_finders (AST_Home *node,
+ AST_Interface &)
+{
+ AST_Operation **item = 0;
+
+ for (ACE_Unbounded_Queue_Iterator<AST_Operation *> i (node->finders ());
+ ! i.done ();
+ i.advance ())
+ {
+ i.next (item);
+
+ *os << be_nl << be_nl
+ << IdentifierHelper::orig_sn (node->managed_component ()->name ()).c_str ()
+ << " "
+ << IdentifierHelper::try_escape( (*item)->original_local_name ()).c_str ()
+ << " (";
+
+ this->gen_params (*item, (*item)->argument_count ());
+
+ *os << ")";
+
+ UTL_ExceptList *exceps = (*item)->exceptions ();
+
+ if (exceps != 0 && exceps->length () > 0)
+ {
+ this->gen_exception_list (exceps, "", false);
+ }
+ else
+ {
+ *os << be_idt_nl
+ << "raises (";
+ }
+
+ *os << "Components::FinderFailure);" << be_uidt;
+ }
+}
+
diff --git a/modules/CIAO/tools/IDL3_to_IDL2/idl3_to_idl2_visitor.h b/modules/CIAO/tools/IDL3_to_IDL2/idl3_to_idl2_visitor.h
new file mode 100644
index 00000000000..b489a8b3cd9
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_IDL2/idl3_to_idl2_visitor.h
@@ -0,0 +1,79 @@
+// $Id$
+
+/* -*- c++ -*- */
+// ============================================================================
+//
+// = LIBRARY
+// TAO_IDL3_TO_IDL2_BE_DLL
+//
+// = FILENAME
+// idl3_to_idl2_visitor.h
+//
+// = DESCRIPTION
+// Generates equivalent IDL2 from IDL3.
+//
+// = AUTHOR
+// Jeff Parsons <j.parsons@vanderbilt.edu>
+//
+// ============================================================================
+
+#ifndef TAO_IDL3_TO_IDL2_VISITOR_H
+#define TAO_IDL3_TO_IDL2_VISITOR_H
+
+#include "basic_visitor.h"
+#include "utl_scoped_name.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "TAO_IDL3_TO_IDL2_BE_Export.h"
+
+class TAO_IDL3_TO_IDL2_BE_Export idl3_to_idl2_visitor : public basic_visitor
+{
+ //
+ // = TITLE
+ // idl3_to_idl2_visitor.
+ //
+ // = DESCRIPTION
+ // IDL3 to IDL2 conversion visitor. The methods are
+ // not pure virtual to facilitate the implementation of some
+ // derived visitors that override only a few.
+ //
+public:
+ idl3_to_idl2_visitor (void);
+ virtual ~idl3_to_idl2_visitor (void);
+
+ virtual int visit_module (AST_Module *node);
+ virtual int visit_interface (AST_Interface *node);
+ virtual int visit_component (AST_Component *node);
+ virtual int visit_component_fwd (AST_ComponentFwd *node);
+ virtual int visit_provides (AST_Provides *node);
+ virtual int visit_uses (AST_Uses *node);
+ virtual int visit_publishes (AST_Publishes *node);
+ virtual int visit_emits (AST_Emits *node);
+ virtual int visit_consumes (AST_Consumes *node);
+ virtual int visit_extended_port (AST_Extended_Port *node);
+ virtual int visit_mirror_port (AST_Mirror_Port *node);
+ virtual int visit_connector (AST_Connector *node);
+ virtual int visit_instantiated_connector (
+ AST_Instantiated_Connector *node);
+ virtual int visit_tmpl_port (AST_Tmpl_Port *node);
+ virtual int visit_tmpl_mirror_port (
+ AST_Tmpl_Mirror_Port *node);
+ virtual int visit_eventtype (AST_EventType *node);
+ virtual int visit_eventtype_fwd (AST_EventTypeFwd *node);
+ virtual int visit_home (AST_Home *node);
+ virtual int visit_root (AST_Root *node);
+
+private:
+ UTL_ScopedName *create_scoped_name (const char *prefix,
+ const char *local_name,
+ const char *suffix,
+ AST_Decl *parent);
+ void tranfer_scope_elements (AST_Home *src, AST_Interface &dst);
+ void gen_factories (AST_Home *node, AST_Interface &xplicit);
+ void gen_finders (AST_Home *node, AST_Interface &xplicit);
+};
+
+#endif /* TAO_IDL3_TO_IDL2_VISITOR_H */
diff --git a/modules/CIAO/tools/IDL3_to_XMI/CIAO_IDL3_TO_XMI_Export.h b/modules/CIAO/tools/IDL3_to_XMI/CIAO_IDL3_TO_XMI_Export.h
new file mode 100644
index 00000000000..d34de5bdfd3
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_XMI/CIAO_IDL3_TO_XMI_Export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl CIAO_IDL3_TO_XMI
+// ------------------------------
+#ifndef CIAO_IDL3_TO_XMI_EXPORT_H
+#define CIAO_IDL3_TO_XMI_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (CIAO_IDL3_TO_XMI_HAS_DLL)
+# define CIAO_IDL3_TO_XMI_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && CIAO_IDL3_TO_XMI_HAS_DLL */
+
+#if !defined (CIAO_IDL3_TO_XMI_HAS_DLL)
+# define CIAO_IDL3_TO_XMI_HAS_DLL 1
+#endif /* ! CIAO_IDL3_TO_XMI_HAS_DLL */
+
+#if defined (CIAO_IDL3_TO_XMI_HAS_DLL) && (CIAO_IDL3_TO_XMI_HAS_DLL == 1)
+# if defined (CIAO_IDL3_TO_XMI_BUILD_DLL)
+# define CIAO_IDL3_TO_XMI_Export ACE_Proper_Export_Flag
+# define CIAO_IDL3_TO_XMI_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define CIAO_IDL3_TO_XMI_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* CIAO_IDL3_TO_XMI_BUILD_DLL */
+# define CIAO_IDL3_TO_XMI_Export ACE_Proper_Import_Flag
+# define CIAO_IDL3_TO_XMI_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define CIAO_IDL3_TO_XMI_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* CIAO_IDL3_TO_XMI_BUILD_DLL */
+#else /* CIAO_IDL3_TO_XMI_HAS_DLL == 1 */
+# define CIAO_IDL3_TO_XMI_Export
+# define CIAO_IDL3_TO_XMI_SINGLETON_DECLARATION(T)
+# define CIAO_IDL3_TO_XMI_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* CIAO_IDL3_TO_XMI_HAS_DLL == 1 */
+
+// Set CIAO_IDL3_TO_XMI_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (CIAO_IDL3_TO_XMI_NTRACE)
+# if (ACE_NTRACE == 1)
+# define CIAO_IDL3_TO_XMI_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define CIAO_IDL3_TO_XMI_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !CIAO_IDL3_TO_XMI_NTRACE */
+
+#if (CIAO_IDL3_TO_XMI_NTRACE == 1)
+# define CIAO_IDL3_TO_XMI_TRACE(X)
+#else /* (CIAO_IDL3_TO_XMI_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define CIAO_IDL3_TO_XMI_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (CIAO_IDL3_TO_XMI_NTRACE == 1) */
+
+#endif /* CIAO_IDL3_TO_XMI_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tools/IDL3_to_XMI/IDL3_TO_XMI.mpc b/modules/CIAO/tools/IDL3_to_XMI/IDL3_TO_XMI.mpc
new file mode 100644
index 00000000000..8a927291c91
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_XMI/IDL3_TO_XMI.mpc
@@ -0,0 +1,65 @@
+// -*- MPC -*-
+// $Id$
+
+project(CIAO_IDL3_TO_XMI_BE) : acelib, install, ciao_output, crosscompile, ciao_xml_utils, tao_idl_fe {
+ sharedname = CIAO_IDL3_TO_XMI_BE
+ dynamicflags = CIAO_IDL3_TO_XMI_BUILD_DLL
+
+ // This is necessary for MPC to pull in rules.ciao.GNU
+ includes += $(CIAO_ROOT)
+
+ Source_Files {
+ be_global.cpp
+ be_helper.cpp
+ be_init.cpp
+ be_produce.cpp
+ be_sunsoft.cpp
+ IDL3_to_XMI_visitor.cpp
+ IR_Simulator_visitor.cpp
+ Literals.cpp
+ identifier_helper.cpp
+ }
+
+ Header_Files {
+ be_extern.h
+ be_global.h
+ be_helper.h
+ be_sunsoft.h
+ IDL3_to_XMI_visitor.h
+ CIAO_IDL3_TO_XMI_Export.h
+ }
+}
+
+project(CIAO_IDL3_TO_XMI_EXE) : aceexe, install, ciao_output, crosscompile, ciao_xml_utils, tao_idl_mcpp, xerces, tao_idl_fe {
+ after += CIAO_IDL3_TO_XMI_BE
+ exename = tao_idl3_to_xmi
+ libs += CIAO_IDL3_TO_XMI_BE
+ includes += $(TAO_ROOT) .
+ exeout = $(CIAO_ROOT)/bin
+
+ // Adding a strict ordering dependency with TAO_IDL_EXE. It appears on some systems, there
+ // can be a race between these two projects for tao_idl.cpp, causing some errors.
+ after += TAO_IDL_EXE
+
+ // This is necessary for MPC to pull in rules.ciao.GNU
+ includes += $(CIAO_ROOT)
+
+ verbatim(gnuace, local) {
+ ifeq ($(TAO_IDL_PREPROCESSOR),)
+ CPPFLAGS += -DTAO_IDL_PREPROCESSOR=\\\"$(strip $(CXX))\\\"
+ else
+ CPPFLAGS += -DTAO_IDL_PREPROCESSOR=\\\"$(subst \\,\\,$(TAO_IDL_PREPROCESSOR))\\\"
+ endif
+
+ VPATH = $(TAO_ROOT)/TAO_IDL $(TAO_ROOT)/TAO_IDL/driver
+ }
+
+ Source_Files {
+ $(TAO_ROOT)/TAO_IDL/driver/drv_args.cpp
+ $(TAO_ROOT)/TAO_IDL/tao_idl.cpp
+ }
+
+ Header_Files {
+ $(TAO_ROOT)/TAO_IDL/include/drv_extern.h
+ }
+}
diff --git a/modules/CIAO/tools/IDL3_to_XMI/IDL3_to_XMI_visitor.cpp b/modules/CIAO/tools/IDL3_to_XMI/IDL3_to_XMI_visitor.cpp
new file mode 100644
index 00000000000..900e1086f8e
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_XMI/IDL3_to_XMI_visitor.cpp
@@ -0,0 +1,2688 @@
+// $Id$
+
+#include "IDL3_to_XMI_visitor.h"
+#include "identifier_helper.h"
+
+#include "be_sunsoft.h"
+#include "be_extern.h"
+
+#include "ast_argument.h"
+#include "ast_array.h"
+#include "ast_attribute.h"
+#include "ast_component_fwd.h"
+#include "ast_provides.h"
+#include "ast_uses.h"
+#include "ast_publishes.h"
+#include "ast_emits.h"
+#include "ast_consumes.h"
+#include "ast_enum.h"
+#include "ast_enum_val.h"
+#include "ast_eventtype.h"
+#include "ast_eventtype_fwd.h"
+#include "ast_exception.h"
+#include "ast_factory.h"
+#include "ast_field.h"
+#include "ast_home.h"
+#include "ast_operation.h"
+#include "ast_root.h"
+#include "ast_sequence.h"
+#include "ast_string.h"
+#include "ast_structure_fwd.h"
+#include "ast_union.h"
+#include "ast_union_branch.h"
+#include "ast_union_fwd.h"
+#include "ast_union_label.h"
+#include "ast_valuebox.h"
+#include "ast_valuetype_fwd.h"
+#include "ast_native.h"
+#include "utl_exceptlist.h"
+#include "utl_identifier.h"
+#include "utl_idlist.h"
+#include "utl_string.h"
+#include "global_extern.h"
+#include "nr_extern.h"
+#include "ace/OS_NS_stdio.h"
+#include "ace/OS_NS_sys_time.h"
+#include "ace/ACE.h"
+
+#include "Literals.h"
+#include "XML/XercesString.h"
+
+#include <iostream>
+#include <limits>
+#include <sstream>
+
+#include "xercesc/dom/DOM.hpp"
+#include "xercesc/util/XMLChar.hpp"
+
+#include "XML/XML_Helper.h"
+
+using XERCES_CPP_NAMESPACE::DOMDocument;
+using XERCES_CPP_NAMESPACE::DOMAttr;
+using XERCES_CPP_NAMESPACE::DOMElement;
+using XERCES_CPP_NAMESPACE::DOMText;
+using XERCES_CPP_NAMESPACE::DOMDocumentType;
+using XERCES_CPP_NAMESPACE::XMLChar1_1;
+using CIAO::XML::XStr;
+
+#if 0
+struct Foo {
+ std::string foo_;
+ Foo (const char *foo) : foo_ (foo)
+ {
+ std::cout << "Entering " << foo_ << std::endl;
+ }
+ ~Foo ()
+ {
+ std::cout << "Leaving " << foo_ << std::endl;
+ }
+};
+
+#define XMI_TRACE(X) Foo _foobarbaz (X);
+#else
+#define XMI_TRACE(X)
+#endif
+
+namespace CIAO
+{
+ namespace XMI
+ {
+ size_t idl3_to_xmi_visitor::current_id_ = 0;
+
+ template <typename T>
+ ACE_TCHAR *
+ idl3_to_xmi_visitor::number_to_string (T val)
+ {
+ std::stringstream str;
+
+ str << val;
+
+ return ACE::strnew (ACE_TEXT_CHAR_TO_TCHAR (str.str ().c_str ()));
+ }
+
+ template <>
+ ACE_TCHAR *
+ idl3_to_xmi_visitor::number_to_string (bool val)
+ {
+ if (val)
+ return ACE::strnew (LITERALS[CAPS_TRUE]);
+ else
+ return ACE::strnew (LITERALS[CAPS_FALSE]);
+ }
+
+ template <>
+ ACE_TCHAR *
+ idl3_to_xmi_visitor::number_to_string (char val)
+ {
+ // There is no way to convert any char to xml encoding nicely
+ // so we convert it to a decimal integer. This will preserve at
+ // least a correct char value instead of some non-printable xml.
+ std::stringstream str;
+
+ str << static_cast<unsigned int>(static_cast<unsigned char> (val));
+
+ return ACE::strnew (ACE_TEXT_CHAR_TO_TCHAR (str.str ().c_str ()));
+ }
+
+ template <>
+ ACE_TCHAR *
+ idl3_to_xmi_visitor::number_to_string (wchar_t val)
+ {
+ // There is no way to convert any char to xml encoding nicely
+ // so we convert it to a decimal integer. This will preserve at
+ // least a correct char value instead of some non-printable xml.
+ std::stringstream str;
+
+ str << static_cast<unsigned long>(static_cast<wchar_t> (val));
+
+ return ACE::strnew (ACE_TEXT_CHAR_TO_TCHAR (str.str ().c_str ()));
+ }
+
+ idl3_to_xmi_visitor::idl3_to_xmi_visitor (bool skip_imported)
+ : dom_ (0),
+ root_ (0),
+ generalizations_ (0),
+ associations_ (0),
+ base_id_ (idl3_to_xmi_visitor::gen_xmi_id ()),
+ skip_imported_ (skip_imported),
+ visiting_enum_ (false),
+ union_disc_ (0)
+ {
+ }
+
+ idl3_to_xmi_visitor::~idl3_to_xmi_visitor (void)
+ {
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_decl (AST_Decl *)
+ {
+ XMI_TRACE ("got a decl");
+ return 0;
+ }
+
+ char *
+ copy_scoped_name (UTL_ScopedName *name)
+ {
+ ACE_CString fullname;
+ for (UTL_ScopedNameActiveIterator si (name);
+ !si.is_done ();
+ si.next ())
+ {
+ Identifier *item = si.item ();
+ fullname += item->get_string ();
+ }
+
+ return fullname.rep ();
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_scope (UTL_Scope *node)
+ {
+ XMI_TRACE ("got a scope");
+
+ this->order_ = 0;
+
+ for (UTL_ScopeActiveIterator si (node, UTL_Scope::IK_decls);
+ !si.is_done ();
+ si.next ())
+ {
+ AST_Decl *d = si.item ();
+ d->ast_accept (this);
+ ++this->order_;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_type (AST_Type *)
+ {
+ XMI_TRACE ("got a type");
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_predefined_type (AST_PredefinedType *node)
+ {
+ XMI_TRACE ("predef type");
+
+ char const *local_name = 0;
+ switch (node->pt ())
+ {
+ case AST_PredefinedType::PT_pseudo:
+ // Only a limited number of predefined pseudo types
+ // needs our attention.
+ local_name = node->original_local_name ()->get_string ();
+ if (ACE_OS::strcmp (local_name, "TypeCode") == 0)
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+ this->gen_common_elements (node, LITERALS[ST_TC]);
+ }
+ default:
+ break;
+ }
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_module (AST_Module *node)
+ {
+ XMI_TRACE ("module");
+
+ try
+ {
+ ElementContext ec;
+ if (this->repo_id_map_.find (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), ec) == 0)
+ {
+ // If the module is reopened then put it on the stack.
+ NS_Guard ns_guard (ec.ns_.c_str (), this);
+ ES_Guard owned_guard (ec.elem_, this);
+ this->visit_scope (node);
+ // And don't do anything more.
+ return 0;
+ }
+
+ ES_Guard package_guard (LITERALS[PACKAGE_TAG], this);
+ this->gen_common_elements (node, LITERALS[ST_MODULE]);
+
+ {
+ NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), this);
+ ES_Guard owned_guard (LITERALS[OWNEDELEMENT_TAG], this);
+
+ // Save ownedElement to add to it later if the module
+ // will be reopened.
+ this->stack_.top (ec.elem_);
+ // Same save namespace string.
+ this->namespace_.top (ec.ns_);
+ this->repo_id_map_.bind (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), ec);
+
+ this->visit_scope (node);
+ }
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_interface (AST_Interface *node)
+ {
+ XMI_TRACE ("interface");
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ this->visit_scope (node);
+ return 0;
+ }
+
+ try
+ {
+ ElementContext ec;
+ if (this->repo_id_map_.find (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), ec) != 0)
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+ this->gen_common_elements (node, LITERALS[ST_INTF]);
+ NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), this);
+
+ // Save in order not to generate same element later.
+ this->stack_.top (ec.elem_);
+ this->namespace_.top (ec.ns_);
+ this->repo_id_map_.bind (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), ec);
+ }
+
+ ES_Guard class_guard (ec.elem_, this);
+ NS_Guard ns_guard (ec.ns_.c_str (), this);
+
+ { // Operations.
+ ES_Guard owned_guard (LITERALS[OWNEDELEMENT_TAG], this);
+ this->cached_type_ = node;
+ this->visit_scope (node);
+ this->cached_type_ = 0;
+ }
+
+ // Inheritance
+ for (long i = 0; i < node->n_inherits (); ++i)
+ {
+ XStr xid (this->add_generalization (
+ ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ ACE_TEXT_CHAR_TO_TCHAR (node->inherits ()[i]->repoID ())));
+ }
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_interface_fwd (AST_InterfaceFwd *node)
+ {
+ XMI_TRACE ("interface_fwd");
+
+ try
+ {
+ ElementContext ec;
+ if (this->repo_id_map_.find (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), ec) != 0)
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+ this->gen_common_elements (node, LITERALS[ST_INTF]);
+ NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), this);
+
+ // Save in order not to generate same element later.
+ this->stack_.top (ec.elem_);
+ this->namespace_.top (ec.ns_);
+ this->repo_id_map_.bind (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), ec);
+ }
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_template_interface (
+ AST_Template_Interface *)
+ {
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_valuebox (AST_ValueBox *node)
+ {
+ XMI_TRACE ("valuebox");
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ return 0;
+ }
+
+ try
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+ this->gen_common_elements (node, LITERALS[ST_BOXVALUE]);
+
+ // add a generalization for the value we box
+ XStr xid (this->add_generalization (
+ ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ ACE_TEXT_CHAR_TO_TCHAR (node->boxed_type ()->repoID ())));
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ void
+ idl3_to_xmi_visitor::visit_valuetype_impl (AST_ValueType *node)
+ {
+ try
+ {
+ // isAbstract
+ if (node->is_abstract ())
+ {
+ this->set_attribute (LITERALS[ABSTRACT], LITERALS[_TRUE]);
+ }
+ else
+ {
+ this->set_attribute (LITERALS[ABSTRACT], LITERALS[_FALSE]);
+ }
+
+ if (node->inherits_concrete () != 0)
+ {
+ XStr xid (this->add_generalization (
+ ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ ACE_TEXT_CHAR_TO_TCHAR (node->inherits_concrete ()->repoID ())));
+ }
+
+ for (long i = 0; i < node->n_supports (); ++i)
+ {
+ XStr xid (this->add_generalization (
+ ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ ACE_TEXT_CHAR_TO_TCHAR (node->supports ()[i]->repoID ())));
+ }
+
+ /* NOTE: CDMW XMI generator ignores supports specifications.
+ // Supports
+ if (node->n_supports () != 0)
+ throw Error ("ValueTypes which support are not currently supported.", node);
+ */
+
+ ES_Guard oe_guard (LITERALS[OWNEDELEMENT_TAG], this);
+
+ this->cached_type_ = node;
+ this->visit_scope (node);
+ this->cached_type_ = 0;
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_valuetype (AST_ValueType *node)
+ {
+ XMI_TRACE ("valuetype");
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ this->visit_scope (node);
+ return 0;
+ }
+
+ try
+ {
+ ElementContext ec;
+ if (this->repo_id_map_.find (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), ec) != 0)
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+ this->gen_common_elements (node, LITERALS[ST_VALUE]);
+ NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), this);
+
+ // Save in order not to generate same element later.
+ this->stack_.top (ec.elem_);
+ this->namespace_.top (ec.ns_);
+ this->repo_id_map_.bind (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), ec);
+ }
+
+ ES_Guard class_guard (ec.elem_, this);
+ NS_Guard ns_guard (ec.ns_.c_str (), this);
+
+ this->visit_valuetype_impl (node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_valuetype_fwd (AST_ValueTypeFwd *node)
+ {
+ XMI_TRACE ("valuetype_fwd");
+
+ try
+ {
+ ElementContext ec;
+ if (this->repo_id_map_.find (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), ec) != 0)
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+ this->gen_common_elements (node, LITERALS[ST_VALUE]);
+ NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), this);
+
+ // Save in order not to generate same element later.
+ this->stack_.top (ec.elem_);
+ this->namespace_.top (ec.ns_);
+ this->repo_id_map_.bind (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), ec);
+ }
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_eventtype (AST_EventType *node)
+ {
+ XMI_TRACE ("eventtype");
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ this->visit_scope (node);
+ return 0;
+ }
+
+ try
+ {
+ ElementContext ec;
+ if (this->repo_id_map_.find (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), ec) != 0)
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+ this->gen_common_elements (node, LITERALS[ST_EVENT]);
+ NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), this);
+
+ // Save in order not to generate same element later.
+ this->stack_.top (ec.elem_);
+ this->namespace_.top (ec.ns_);
+ this->repo_id_map_.bind (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), ec);
+ }
+
+ ES_Guard class_guard (ec.elem_, this);
+ NS_Guard ns_guard (ec.ns_.c_str (), this);
+
+ this->visit_valuetype_impl (node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_eventtype_fwd (AST_EventTypeFwd *node)
+ {
+ XMI_TRACE ("eventtype_fwd");
+
+ try
+ {
+ ElementContext ec;
+ if (this->repo_id_map_.find (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), ec) != 0)
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+ this->gen_common_elements (node, LITERALS[ST_EVENT]);
+ NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), this);
+
+ // Save in order not to generate same element later.
+ this->stack_.top (ec.elem_);
+ this->namespace_.top (ec.ns_);
+ this->repo_id_map_.bind (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), ec);
+ }
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_component (AST_Component *node)
+ {
+ XMI_TRACE ("component");
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ this->visit_scope (node);
+ return 0;
+ }
+
+ try
+ {
+ ElementContext ec;
+ if (this->repo_id_map_.find (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), ec) != 0)
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+ this->gen_common_elements (node, LITERALS[ST_COMP]);
+ NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), this);
+
+ // Save in order not to generate same element later.
+ this->stack_.top (ec.elem_);
+ this->namespace_.top (ec.ns_);
+ this->repo_id_map_.bind (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), ec);
+ }
+
+ ES_Guard class_guard (ec.elem_, this);
+ NS_Guard ns_guard (ec.ns_.c_str (), this);
+
+ for (long i = 0; i < node->n_supports (); ++i)
+ {
+ XStr xid (this->add_generalization (
+ ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ ACE_TEXT_CHAR_TO_TCHAR (node->supports ()[i]->repoID ())));
+
+ }
+
+ if (node->base_component () != 0)
+ {
+ XStr xid (this->add_generalization (
+ ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ ACE_TEXT_CHAR_TO_TCHAR (node->base_component ()->repoID ())));
+ }
+
+ ES_Guard oe_guard (LITERALS[OWNEDELEMENT_TAG], this);
+
+ this->cached_type_ = node;
+ this->visit_scope (node);
+ this->cached_type_ = 0;
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_component_fwd (AST_ComponentFwd *node)
+ {
+ XMI_TRACE ("component_fwd");
+
+ try
+ {
+ ElementContext ec;
+ if (this->repo_id_map_.find (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), ec) != 0)
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+ this->gen_common_elements (node, LITERALS[ST_COMP]);
+ NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), this);
+
+ // Save in order not to generate same element later.
+ this->stack_.top (ec.elem_);
+ this->namespace_.top (ec.ns_);
+ this->repo_id_map_.bind (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), ec);
+ }
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_provides (AST_Provides *node)
+ {
+ this->add_port (LITERALS[ST_PROVIDES], node);
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_uses (AST_Uses *node)
+ {
+ this->add_port (LITERALS[ST_USES], node);
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_publishes (AST_Publishes *node)
+ {
+ this->add_port (LITERALS[ST_PUBLISH], node);
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_emits (AST_Emits *node)
+ {
+ this->add_port (LITERALS[ST_EMITS], node);
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_consumes (AST_Consumes *node)
+ {
+ this->add_port (LITERALS[ST_CONSUMES], node);
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_porttype (AST_PortType *)
+ {
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_extended_port (AST_Extended_Port *)
+ {
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_mirror_port (AST_Mirror_Port *)
+ {
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_connector (AST_Connector *)
+ {
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_instantiated_connector (
+ AST_Instantiated_Connector *)
+ {
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_tmpl_port (AST_Tmpl_Port *)
+ {
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_tmpl_mirror_port (
+ AST_Tmpl_Mirror_Port *)
+ {
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_home (AST_Home *node)
+ {
+ XMI_TRACE ("home");
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ this->visit_scope (node);
+ return 0;
+ }
+
+ try
+ {
+ ES_Guard es_guard (LITERALS[CLASS_TAG], this);
+ this->gen_common_elements (node, LITERALS[ST_HOME]);
+ NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), this);
+
+ for (long i = 0; i < node->n_supports (); ++i)
+ {
+ XStr xid (this->add_generalization (
+ ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ ACE_TEXT_CHAR_TO_TCHAR (node->supports ()[i]->repoID ())));
+ }
+
+ if (node->base_home () != 0)
+ {
+ XStr xid (this->add_generalization (
+ ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ ACE_TEXT_CHAR_TO_TCHAR (node->base_home ()->repoID ())));
+ }
+
+ if (node->factories ().size () != 0)
+ {
+ ES_Guard noe_guard (LITERALS[OWNEDELEMENT_TAG], this);
+
+ for (size_t i = 0; i < node->factories ().size (); ++i)
+ {
+ AST_Operation **op = 0;
+ node->factories ().get (op, i);
+ this->visit_operation_impl (*op, LITERALS[ST_HFACT]);
+ }
+ }
+
+ if (node->finders () .size () != 0)
+ {
+ throw Error ("home finders not supported", node);
+ }
+
+ this->add_managed_component (
+ ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ ACE_TEXT_CHAR_TO_TCHAR (node->managed_component ()->repoID ()));
+
+ ES_Guard noe_guard (LITERALS[OWNEDELEMENT_TAG], this);
+
+ // attributes in scope.
+ this->cached_type_ = node;
+ this->visit_scope (node);
+ this->cached_type_ = 0;
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_factory (AST_Factory *node)
+ {
+ XMI_TRACE ("factory");
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ return 0;
+ }
+
+ throw Error ("Factories not supported", node);
+
+ return 0;
+ }
+
+ void
+ idl3_to_xmi_visitor::visit_struct_impl (AST_Structure *node)
+ {
+ try
+ {
+ ES_Guard ns_oe_guard (LITERALS[OWNEDELEMENT_TAG], this);
+ this->visit_scope (node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_structure (AST_Structure *node)
+ {
+ XMI_TRACE ("structure");
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ this->visit_scope (node);
+ return 0;
+ }
+
+ try
+ {
+ ElementContext ec;
+ if (this->repo_id_map_.find (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), ec) != 0)
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+ this->gen_common_elements (node, LITERALS[ST_STRUCT]);
+ NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), this);
+
+ // Save in order not to generate same element later.
+ this->stack_.top (ec.elem_);
+ this->namespace_.top (ec.ns_);
+ this->repo_id_map_.bind (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), ec);
+ }
+
+ ES_Guard class_guard (ec.elem_, this);
+ NS_Guard ns_guard (ec.ns_.c_str (), this);
+
+ this->visit_struct_impl (node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_structure_fwd (AST_StructureFwd *node)
+ {
+ XMI_TRACE ("structure_fwd");
+
+ try
+ {
+ ElementContext ec;
+ if (this->repo_id_map_.find (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), ec) != 0)
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+ this->gen_common_elements (node, LITERALS[ST_STRUCT]);
+ NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), this);
+
+ // Save in order not to generate same element later.
+ this->stack_.top (ec.elem_);
+ this->namespace_.top (ec.ns_);
+ this->repo_id_map_.bind (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), ec);
+ }
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_exception (AST_Exception *node)
+ {
+ XMI_TRACE ("exception");
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ this->visit_scope (node);
+ return 0;
+ }
+
+ try
+ {
+ ElementContext ec;
+ if (this->repo_id_map_.find (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), ec) != 0)
+ {
+ ES_Guard class_guard (LITERALS[EXCEPTION_TAG], this);
+ this->gen_common_elements (node, LITERALS[ST_EX]);
+ NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), this);
+
+ // Save in order not to generate same element later.
+ this->stack_.top (ec.elem_);
+ this->namespace_.top (ec.ns_);
+ this->repo_id_map_.bind (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), ec);
+ }
+
+ ES_Guard class_guard (ec.elem_, this);
+ NS_Guard ns_guard (ec.ns_.c_str (), this);
+
+ this->visit_struct_impl (node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_expression (AST_Expression *)
+ {
+ XMI_TRACE ("expression");
+
+ // we don't particularly care about expressions.
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_enum (AST_Enum *node)
+ {
+ XMI_TRACE ("enum");
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ this->visit_scope (node);
+ return 0;
+ }
+
+ try
+ {
+ ES_Guard es_guard (LITERALS[CLASS_TAG], this);
+ this->gen_common_elements (node, LITERALS[ST_ENUM]);
+
+ NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), this);
+ ES_Guard oe_guard (LITERALS[OWNEDELEMENT_TAG], this);
+
+ this->visiting_enum_ = true;
+ this->visit_scope (node);
+ this->visiting_enum_ = false;
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ void
+ idl3_to_xmi_visitor::visit_operation_impl (AST_Operation *op,
+ const ACE_TCHAR *stereotype)
+ {
+ XMI_TRACE ("operation");
+
+ if (this->skip_imported_ && op->imported ())
+ {
+ this->visit_scope (op);
+ return;
+ }
+
+ // This is a mess because the operation has so many special cases....
+ try
+ {
+ ES_Guard op_guard (LITERALS[OP_TAG], this);
+
+ // name and visiblity
+ this->set_attribute (
+ LITERALS[NAME],
+ ACE_TEXT_CHAR_TO_TCHAR (op->original_local_name ()->get_string ()));
+
+ this->set_attribute (LITERALS[VISIBIL], LITERALS[PUBLIC]);
+
+ this->set_containing_element (LITERALS[OWNER]);
+
+ // If we have a stereotype, set it
+ if (stereotype != 0)
+ {
+ this->find_and_set_xid_as_attr (LITERALS[STEREO_ATTR],
+ stereotype);
+ }
+
+ // XMI ID
+ this->create_and_store_xmi_id (op);
+
+ // while not strictly a namespace, the repo id goes on the
+ // namespace stack as the owner of contained elements.
+ NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (op->repoID ()), this);
+
+ { // we need to generate the tagged value in a custom way here
+ ES_Guard me_guard (LITERALS[ME_TV_TAG], this);
+
+ {
+ ES_Guard tv_guard (LITERALS[TV_TAG], this);
+ this->set_attribute (LITERALS[TAG], LITERALS[TYPEID]);
+ this->set_attribute (LITERALS[VALUE],
+ ACE_TEXT_CHAR_TO_TCHAR (op->repoID ()));
+ }
+
+ UTL_ExceptList *exceptions = op->exceptions ();
+
+ if (exceptions != 0 && exceptions->length () > 0)
+ {
+ for (UTL_ExceptlistActiveIterator ei (exceptions);
+ !ei.is_done ();
+ ei.next ())
+ {
+ ES_Guard tv_guard (LITERALS[TV_TAG], this);
+ this->set_attribute (LITERALS[TAG], LITERALS[RAISES]);
+ this->set_attribute (
+ LITERALS[VALUE],
+ ACE_TEXT_CHAR_TO_TCHAR (ei.item ()->full_name ()));
+ }
+ }
+ }
+
+ ES_Guard bfp_guard (LITERALS[BFP_TAG], this);
+
+ // return value
+ {
+ ES_Guard param_guard (LITERALS[PARAM_TAG], this);
+
+ // I don't think anything else can refer to the parameter by
+ // xid, so I won't store it.
+ XStr xid = this->gen_xmi_id (op);
+
+ this->set_attribute (LITERALS[XMI_ID], xid);
+
+ this->set_attribute (LITERALS[KIND], LITERALS[RETURN]);
+
+ this->set_containing_element (LITERALS[BFEATURE]);
+
+ xid = this->lookup_type_xid (op->return_type ());
+ this->set_attribute (LITERALS[TYPE],
+ xid);
+ }
+
+ if (op->argument_count () != 0)
+ {
+ // Visit arguments
+ for (UTL_ScopeActiveIterator si (op, UTL_Scope::IK_decls);
+ !si.is_done ();)
+ {
+ si.item ()->ast_accept (this);
+ si.next ();
+ }
+ }
+ }
+ catch (Error &err)
+ {
+ err.node (op);
+ throw;
+ }
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_operation (AST_Operation *op)
+ {
+ XMI_TRACE ("operation");
+
+ this->visit_operation_impl (op, 0);
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_field (AST_Field *node)
+ {
+ XMI_TRACE ("field");
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ return 0;
+ }
+
+ try
+ {
+ ES_Guard attr_guard (LITERALS[ATTR_TAG], this);
+
+ if (node->field_type ()->node_type () == AST_Decl::NT_sequence)
+ {
+ AST_Sequence* sequence =
+ AST_Sequence::narrow_from_decl (node->field_type ());
+ sequence->ast_accept (this);
+ // There is no need to proceed any further.
+ return 0;
+ }
+ else if (node->field_type ()->node_type () == AST_Decl::NT_array)
+ {
+ AST_Array* array =
+ AST_Array::narrow_from_decl (node->field_type ());
+ array->ast_accept (this);
+ // There is no need to proceed any further.
+ return 0;
+ }
+
+ // I don't think anything else can refer to the parameter by
+ // xid, so I won't store it.
+ XStr xid = this->gen_xmi_id (node);
+ this->set_attribute (LITERALS[XMI_ID], xid);
+
+ this->set_attribute (
+ LITERALS[NAME],
+ ACE_TEXT_CHAR_TO_TCHAR (node->original_local_name ()->get_string ()));
+
+ switch (node->visibility ())
+ {
+ case AST_Field::vis_NA:
+ case AST_Field::vis_PUBLIC:
+ this->set_attribute (LITERALS[VISIBIL], LITERALS[PUBLIC]);
+ break;
+ case AST_Field::vis_PRIVATE:
+ this->set_attribute (LITERALS[VISIBIL], LITERALS[_PRIVATE]);
+ break;
+ default:
+ throw Error ("unknown visibility type detected.", node);
+ }
+
+ // I think this is fixed.
+ this->set_attribute (LITERALS[MULT], LITERALS[MULT_OTO]);
+
+ this->set_containing_element (LITERALS[OWNER]);
+
+ xid = this->lookup_type_xid (node->field_type ());
+ this->set_attribute (LITERALS[TYPE],
+ xid);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_argument (AST_Argument *node)
+ {
+ XMI_TRACE ("argument");
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ return 0;
+ }
+
+ try
+ {
+ ES_Guard param_guard (LITERALS[PARAM_TAG], this);
+
+ this->set_attribute (
+ LITERALS[NAME],
+ ACE_TEXT_CHAR_TO_TCHAR (node->original_local_name ()->get_string ()));
+
+ // I don't think anything else can refer to the parameter by
+ // xid, so I won't store it.
+ XStr xid = this->gen_xmi_id (node);
+ this->set_attribute (LITERALS[XMI_ID], xid);
+
+ // kind
+ switch (node->direction ())
+ {
+ case AST_Argument::dir_IN:
+ this->set_attribute (LITERALS[KIND], LITERALS[_IN]);
+ break;
+
+ case AST_Argument::dir_INOUT:
+ this->set_attribute (LITERALS[KIND], LITERALS[INOUT]);
+ break;
+
+ case AST_Argument::dir_OUT:
+ this->set_attribute (LITERALS[KIND], LITERALS[_OUT]);
+ break;
+
+ default:
+ throw Error ("Unknown argument direction", node);
+ }
+
+ this->set_containing_element (LITERALS[BFEATURE]);
+
+ xid = this->lookup_type_xid (node->field_type ());
+ this->set_attribute (LITERALS[TYPE],
+ xid);
+
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_attribute (AST_Attribute *node)
+ {
+ XMI_TRACE ("attribute");
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ return 0;
+ }
+
+ if (this->cached_type_ == 0)
+ {
+ ACE_ERROR ((LM_ERROR, "Zounds! %d\n",
+ this->cached_type_));
+ throw Error ("Internal error - attribute expected "
+ "to have a cached type, but didn't");
+ }
+
+ try
+ {
+ // ***
+ NS_Guard global_ns (ACE_TEXT ("::"), this);
+ ES_Guard assoc_group (this->associations_, this);
+ ES_Guard assoc_g (LITERALS[ASSOC_TAG], this);
+
+ // I don't think anything else can refer to the attribute by
+ // xid, so I won't store it.
+ XStr xid = this->gen_xmi_id (node);
+ this->set_attribute (LITERALS[XMI_ID], xid);
+ this->set_attribute (LITERALS[VISIBIL], LITERALS[PUBLIC]);
+ this->set_containing_element (LITERALS[NS]);
+
+ if (node->readonly ())
+ {
+ this->find_and_set_xid_as_attr (LITERALS[STEREO_ATTR],
+ LITERALS[ST_RO]);
+ }
+
+ ES_Guard assoc_conn (LITERALS[ASSOC_CONN_TAG], this);
+
+ { // Containing type
+ ES_Guard assoc_end (LITERALS[ASSOC_END_TAG], this);
+ this->set_attribute (LITERALS[MULT], ACE_TEXT ("1"));
+ this->find_and_set_xid_as_attr (
+ LITERALS[TYPE],
+ ACE_TEXT_CHAR_TO_TCHAR (this->cached_type_->repoID ()));
+ }
+
+ {
+ ES_Guard assoc_end (LITERALS[ASSOC_END_TAG], this);
+ this->set_attribute (
+ LITERALS[NAME],
+ ACE_TEXT_CHAR_TO_TCHAR (node->original_local_name ()->get_string ()));
+ this->set_attribute (LITERALS[MULT], ACE_TEXT ("1"));
+ xid = this->lookup_type_xid (node->field_type ());
+ this->set_attribute (LITERALS[TYPE], xid);
+ }
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_union (AST_Union *node)
+ {
+ XMI_TRACE ("union");
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ return 0;
+ }
+
+ try
+ {
+ ElementContext ec;
+ if (this->repo_id_map_.find (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), ec) != 0)
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+ this->gen_common_elements (node, LITERALS[ST_UNION]);
+ NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), this);
+
+ // Save in order not to generate same element later.
+ this->stack_.top (ec.elem_);
+ this->namespace_.top (ec.ns_);
+ this->repo_id_map_.bind (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), ec);
+ }
+
+ ES_Guard class_guard (ec.elem_, this);
+ NS_Guard ns_guard (ec.ns_.c_str (), this);
+ ES_Guard oe_guard (LITERALS[OWNEDELEMENT_TAG], this);
+
+ // Set discriminator type
+ this->union_disc_ = node->disc_type ();
+ this->visit_scope (node);
+ this->union_disc_ = 0;
+ }
+ catch (Error &err)
+ {
+ this->union_disc_ = 0;
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_union_fwd (AST_UnionFwd *node)
+ {
+ XMI_TRACE ("union_fwd");
+
+ try
+ {
+ ElementContext ec;
+ if (this->repo_id_map_.find (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), ec) != 0)
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+ this->gen_common_elements (node, LITERALS[ST_UNION]);
+ NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), this);
+
+ // Save in order not to generate same element later.
+ this->stack_.top (ec.elem_);
+ this->namespace_.top (ec.ns_);
+ this->repo_id_map_.bind (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), ec);
+ }
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_union_branch (AST_UnionBranch *node)
+ {
+ XMI_TRACE ("union_branch");
+
+ try
+ {
+ ES_Guard attr_guard (LITERALS[ATTR_TAG], this);
+
+ // I don't think anything else can refer to the parameter by
+ // xid, so I won't store it.
+ XStr xid = this->gen_xmi_id (node);
+ this->set_attribute (LITERALS[XMI_ID], xid);
+
+ // name
+ this->set_attribute (
+ LITERALS[NAME],
+ ACE_TEXT_CHAR_TO_TCHAR (node->original_local_name ()->get_string ()));
+
+ // visiblity
+ this->set_attribute (LITERALS[VISIBIL], LITERALS[PUBLIC]);
+
+ this->set_containing_element (LITERALS[OWNER]);
+
+ // I think this is fixed.
+ this->set_attribute (LITERALS[MULT], LITERALS[MULT_ZTO]);
+
+ xid = this->lookup_type_xid (node->field_type ());
+ this->set_attribute (LITERALS[TYPE],
+ xid);
+
+ {
+ ES_Guard me_tv_guard (LITERALS[ME_TV_TAG], this);
+
+ {
+ ES_Guard tv_guard (LITERALS[TV_TAG], this);
+ this->set_attribute (LITERALS[TAG], LITERALS[IDLORDER]);
+
+ // convert the order value to a string
+ // need a buffer, with a little safety padding
+ ACE_Auto_Basic_Array_Ptr<ACE_TCHAR> buffer
+ (this->number_to_string (this->order_));
+
+ this->set_attribute (LITERALS[VALUE], buffer.get ());
+ }
+
+ for (unsigned long i = 0; i < node->label_list_length (); ++i)
+ {
+ this->visit_union_label (node->label (i));
+ }
+
+ }
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ ACE_TCHAR *
+ idl3_to_xmi_visitor::union_label_value (AST_Expression *exp)
+ {
+ ACE_Auto_Basic_Array_Ptr<ACE_TCHAR> buffer;
+
+ // @@TODO: Yuck, there has got to be a better way....
+ AST_Expression::AST_ExprValue *ev = exp->ev ();
+
+ if (exp->ec () != AST_Expression::EC_symbol ||
+ this->union_disc_->node_type () == AST_Decl::NT_typedef ||
+ this->union_disc_->node_type () == AST_Decl::NT_pre_defined)
+ {
+ /*AST_Expression::ExprType type;
+
+ if (this->union_disc_->node_type () == AST_Decl::NT_typedef)
+ {
+ AST_Typedef *td (AST_Typedef::narrow_from_decl (this->union_disc_));
+ type = td->base_type ()->node_type ();
+ }
+ else type = ev->et;*/
+
+ // Decode the type
+ switch (ev->et)
+ {
+ case AST_Expression::EV_long:
+ buffer.reset (this->number_to_string (ev->u.lval));
+ break;
+ case AST_Expression::EV_ulong:
+ buffer.reset (this->number_to_string (ev->u.ulval));
+ break;
+ case AST_Expression::EV_short:
+ buffer.reset (this->number_to_string (ev->u.sval));
+ break;
+ case AST_Expression::EV_ushort:
+ buffer.reset (this->number_to_string (ev->u.usval));
+ break;
+ case AST_Expression::EV_bool:
+ buffer.reset (this->number_to_string (ev->u.bval));
+ break;
+ case AST_Expression::EV_char:
+ buffer.reset (this->number_to_string (ev->u.cval));
+ break;
+ default:
+ throw Error ("Unknown union union label type");
+ }
+ }
+ else
+ {
+ AST_Enum *desc (0);
+
+ if ((desc = AST_Enum::narrow_from_decl (this->union_disc_)) == 0)
+ {
+ throw Error ("Descriminator type is not an enum");
+ }
+
+ AST_Decl *ev_decl =
+ desc->lookup_by_name (exp->n (), 1);
+
+ if (ev_decl == 0)
+ {
+ throw Error ("Couldn't look up enum name");
+ }
+
+ AST_EnumVal *ev = AST_EnumVal::narrow_from_decl (ev_decl);
+
+ if (ev == 0)
+ {
+ throw Error ("Couldn't look up enum name");
+ }
+
+ buffer.reset (ACE::strnew (ACE_TEXT_CHAR_TO_TCHAR (ev->full_name ())));
+ //const char *name = desc->lookup_by_value (exp)->full_name ();
+ // const char *name = exp->n ();
+ //buffer.reset (copy_scoped_name (exp->n ()));
+ }
+
+ if (buffer.get () == 0)
+ {
+ throw Error ("Unable to parse union label");
+ }
+
+ return buffer.release ();
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_union_label (AST_UnionLabel *node)
+ {
+ XMI_TRACE ("union_label");
+
+ ES_Guard tv_guard (LITERALS[TV_TAG], this);
+ this->set_attribute (LITERALS[TAG], LITERALS[CASE]);
+
+ if (node->label_kind () == AST_UnionLabel::UL_default)
+ {
+ this->set_attribute (LITERALS[VALUE],
+ LITERALS[DEFAULT_UNION]);
+ }
+ else
+ {
+ ACE_Auto_Basic_Array_Ptr<ACE_TCHAR> buffer (
+ this->union_label_value (node->label_val ()));
+
+ this->set_attribute (LITERALS[VALUE], buffer.get ());
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_constant (AST_Constant *node)
+ {
+ XMI_TRACE ("constant");
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ return 0;
+ }
+
+ try
+ {
+ ES_Guard attr_guard (LITERALS[ATTR_TAG], this);
+
+ this->set_attribute (LITERALS[OWNER_SCOPE], LITERALS[CLASSIFIER]);
+ this->set_attribute (LITERALS[CHANGEABLE], LITERALS[FROZEN]);
+ this->gen_common_elements (node, LITERALS[ST_CONST]);
+
+ // Constant type
+ const ACE_TCHAR *exprtype (0);
+ AST_Expression::AST_ExprValue *val
+ (node->constant_value ()->ev ());
+
+ ACE_Auto_Basic_Array_Ptr<ACE_TCHAR> str_value;
+
+ switch (node->et ())
+ {
+ case AST_Expression::EV_short:
+ exprtype = LITERALS[ST_SHORT];
+ str_value.reset (this->number_to_string (val->u.sval));
+ break;
+ case AST_Expression::EV_ushort:
+ exprtype = LITERALS[ST_US];
+ str_value.reset (this->number_to_string (val->u.usval));
+ break;
+ case AST_Expression::EV_long:
+ exprtype = LITERALS[ST_LONG];
+ str_value.reset (this->number_to_string (val->u.lval));
+ break;
+ case AST_Expression::EV_ulong:
+ exprtype = LITERALS[ST_UL];
+ str_value.reset (this->number_to_string (val->u.ulval));
+ break;
+ case AST_Expression::EV_longlong:
+ exprtype = LITERALS[ST_LL];
+ str_value.reset (this->number_to_string (val->u.llval));
+ case AST_Expression::EV_ulonglong:
+ exprtype = LITERALS[ST_ULL];
+ str_value.reset (this->number_to_string (val->u.ullval));
+ break;
+ case AST_Expression::EV_float:
+ exprtype = LITERALS[ST_FLOAT];
+ str_value.reset (this->number_to_string (val->u.fval));
+ break;
+ case AST_Expression::EV_double:
+ exprtype = LITERALS[ST_DOUBLE];
+ str_value.reset (this->number_to_string (val->u.dval));
+ break;
+ case AST_Expression::EV_longdouble:
+ exprtype = LITERALS[ST_LD];
+ str_value.reset (this->number_to_string (val->u.dval));
+ break;
+ case AST_Expression::EV_char:
+ exprtype = LITERALS[ST_CHAR];
+ str_value.reset (this->number_to_string (val->u.cval));
+ break;
+ case AST_Expression::EV_wchar:
+ exprtype = LITERALS[ST_WCHAR];
+ str_value.reset (this->number_to_string (val->u.wcval));
+ break;
+ case AST_Expression::EV_octet:
+ exprtype = LITERALS[ST_OCTET];
+ str_value.reset (this->number_to_string (val->u.dval));
+ break;
+ case AST_Expression::EV_bool:
+ exprtype = LITERALS[ST_BOOL];
+ str_value.reset (this->number_to_string (val->u.bval));
+ break;
+ case AST_Expression::EV_string:
+ exprtype = LITERALS[ST_STR];
+ str_value.reset (ACE::strnew (
+ ACE_TEXT_CHAR_TO_TCHAR (val->u.strval->get_string ())));
+ break;
+ case AST_Expression::EV_wstring:
+ exprtype = LITERALS[ST_WSTR];
+ str_value.reset (ACE::strnew (
+ ACE_TEXT_CHAR_TO_TCHAR (val->u.wstrval)));
+ break;
+ case AST_Expression::EV_enum:
+ {
+ UTL_Scope *s = node->defined_in ();
+ AST_Decl *d =
+ s->lookup_by_name (node->constant_value ()->n (), 1);
+ exprtype = ACE_TEXT_CHAR_TO_TCHAR (
+ ScopeAsDecl (d->defined_in ())->repoID ());
+ str_value.reset (ACE::strnew (
+ ACE_TEXT_CHAR_TO_TCHAR (d->full_name ())));
+ }
+ break;
+
+ default:
+ throw Error ("Unsupported constant type", node);
+ }
+
+ // type attribute
+ XStr xid (this->lookup_xid (exprtype));
+ this->set_attribute (LITERALS[TYPE],
+ xid);
+
+ {
+ ES_Guard me_tv (LITERALS[ME_TV_TAG], this);
+ {
+ ES_Guard tv (LITERALS[TV_TAG], this);
+ this->set_attribute (LITERALS[TAG], LITERALS[INIT_VAL]);
+ this->set_attribute (LITERALS[VALUE], str_value.get ());
+ }
+ }
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_enum_val (AST_EnumVal *node)
+ {
+ XMI_TRACE ("enum val");
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ return 0;
+ }
+
+ if (!this->visiting_enum_)
+ {
+ // It makes sence only to process enumvals in enum "scope".
+ return 0;
+ }
+
+ try
+ {
+ ES_Guard att_guard (LITERALS[ATTR_TAG], this);
+
+ this->create_and_store_xmi_id (
+ ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ node);
+ this->set_attribute (
+ LITERALS[NAME],
+ ACE_TEXT_CHAR_TO_TCHAR (node->original_local_name ()->get_string ()));
+
+ // I think this is fixed.
+ this->set_attribute (LITERALS[MULT], LITERALS[MULT_OTO]);
+ this->set_containing_element (LITERALS[OWNER]);
+
+ ES_Guard me_guard (LITERALS[ME_TV_TAG], this);
+ ES_Guard tv_guard (LITERALS[TV_TAG], this);
+
+ this->set_attribute (LITERALS[TAG], LITERALS[IDLORDER]);
+
+ // convert the enum value to a string
+ // need a buffer, with a little safety padding
+
+ ACE_Auto_Basic_Array_Ptr<ACE_TCHAR> buffer
+ (this->number_to_string (node->constant_value ()->ev ()->u.eval));
+
+ this->set_attribute (LITERALS[VALUE], buffer.get ());
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_array (AST_Array *node)
+ {
+ XMI_TRACE ("array val");
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ return 0;
+ }
+
+ try
+ {
+ this->gen_common_elements (node,
+ LITERALS[ST_ARR]);
+
+ this->gen_array_associations (node, node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ void
+ idl3_to_xmi_visitor::gen_array_associations (AST_Decl *node,
+ AST_Array *array)
+ {
+ // <UML:Namespace.ownedElement>
+ NS_Guard global_ns (ACE_TEXT ("::"), this);
+
+ // <UML:Association xmi.id="xmi.1210085542354"
+ // visibility="public" namespace="xmi.1210085542350">
+ ES_Guard assoc_group (this->associations_, this);
+ ES_Guard assoc_g (LITERALS[ASSOC_TAG], this);
+
+ XStr xid = this->gen_xmi_id (node);
+ this->set_attribute (LITERALS[XMI_ID], xid);
+ this->set_attribute (LITERALS[VISIBIL], LITERALS[PUBLIC]);
+ this->set_containing_element (LITERALS[NS]);
+
+ // <UML:Association.connection>
+ ES_Guard assoc_conn (LITERALS[ASSOC_CONN_TAG], this);
+
+ {
+ // <UML:AssociationEnd multiplicity="0..1" type="xmi.1210085542353">
+ ES_Guard assocend (LITERALS[ASSOC_END_TAG], this);
+
+ this->set_attribute (LITERALS[MULT], LITERALS[MULT_ZTO]);
+
+ xid = this->lookup_xid (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()));
+ this->set_attribute (LITERALS[TYPE], xid);
+
+ // <UML:AssociationEnd.qualifier>
+ ES_Guard assoc_qual (LITERALS[ASSOC_END_QUAL_TAG], this);
+
+ for (unsigned long i = 0;
+ array != 0 && i < array->n_dims ();
+ ++i)
+ {
+ // <UML:Attribute xmi.id="xmi.1210085542355"
+ // name="index0" type='xmi.1210085542329'>
+ // N.B. that type is long.
+ ES_Guard attr (LITERALS[ATTR_TAG], this);
+
+ xid = this->gen_xmi_id (node);
+ this->set_attribute (LITERALS[XMI_ID], xid);
+
+ std::stringstream str;
+ str << LITERALS[INDEX];
+ str << i;
+
+ this->set_attribute (
+ LITERALS[NAME],
+ ACE_TEXT_CHAR_TO_TCHAR (str.str ().c_str ()));
+ xid = this->lookup_xid (LITERALS[ST_LONG]);
+ this->set_attribute (LITERALS[TYPE], xid);
+
+ // <UML:ModelElement.constraint>
+ ES_Guard me_c (LITERALS[ME_CONS_TAG], this);
+
+ // <UML:Constraint xmi.id="xmi.1210085542356">
+ ES_Guard cons (LITERALS[CONSTRAINT], this);
+
+ xid = this->gen_xmi_id (node);
+ this->set_attribute (LITERALS[XMI_ID], xid);
+
+ // <UML:ModelElement.taggedValue>
+ ES_Guard me_tv (LITERALS[ME_TV_TAG], this);
+
+ // <UML:TaggedValue tag="constraintUpperValue" value="4"/>
+ ES_Guard tv (LITERALS[TV_TAG], this);
+
+ this->set_attribute (LITERALS[TAG], LITERALS[CONST_UPPER]);
+
+ ACE_Auto_Basic_Array_Ptr<ACE_TCHAR> buffer (
+ this->number_to_string (array->dims ()[i]->ev ()->u.ulval));
+
+ this->set_attribute (LITERALS[VALUE], buffer.get ());
+ }
+ }
+
+ // <UML:AssociationEnd multiplicity="1..1"
+ // type="xmi.1210085542346"/> - type is Char for this IDL
+ ES_Guard assoc_end (LITERALS[ASSOC_END_TAG], this);
+ this->set_attribute (LITERALS[MULT], LITERALS[MULT_OTO]);
+
+ XStr arr_type = this->lookup_type_xid (array->base_type ());
+ this->set_attribute (LITERALS[TYPE], arr_type);
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_sequence (AST_Sequence *node)
+ {
+ XMI_TRACE ("sequence val");
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ return 0;
+ }
+
+ try
+ {
+ this->gen_common_elements (node,
+ LITERALS[ST_SEQ]);
+
+ // Generate the bounds and type on the sequence, which is an
+ // association in the association tree.
+ this->gen_sequence_associations (node, node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ void
+ idl3_to_xmi_visitor::gen_sequence_associations (AST_Decl *node,
+ AST_Sequence *sequence)
+ {
+ // <UML:Namespace.ownedElement>
+ NS_Guard global_ns (ACE_TEXT ("::"), this);
+
+ // <UML:Association xmi.id="xmi.1210085542354"
+ // visibility="public" namespace="xmi.1210085542350">
+ ES_Guard assoc_group (this->associations_, this);
+ ES_Guard assoc_g (LITERALS[ASSOC_TAG], this);
+
+ XStr xid = this->gen_xmi_id (node);
+ this->set_attribute (LITERALS[XMI_ID], xid);
+ this->set_attribute (LITERALS[VISIBIL], LITERALS[PUBLIC]);
+ this->set_containing_element (LITERALS[NS]);
+
+ // <UML:Association.connection>
+ ES_Guard assoc_conn (LITERALS[ASSOC_CONN_TAG], this);
+
+ {
+ // <UML:AssociationEnd multiplicity="0..1" type="xmi.1210085542353">
+ ES_Guard assocend (LITERALS[ASSOC_END_TAG], this);
+
+ this->set_attribute (LITERALS[MULT], LITERALS[MULT_ZTO]);
+
+ xid = this->lookup_xid (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()));
+ this->set_attribute (LITERALS[TYPE], xid);
+
+ // <UML:AssociationEnd.qualifier>
+ ES_Guard assoc_qual (LITERALS[ASSOC_END_QUAL_TAG], this);
+
+ ES_Guard attr (LITERALS[ATTR_TAG], this);
+
+ xid = this->gen_xmi_id (node);
+ this->set_attribute (LITERALS[XMI_ID], xid);
+ this->set_attribute (LITERALS[NAME], LITERALS[INDEX]);
+ xid = this->lookup_xid (LITERALS[ST_LONG]);
+ this->set_attribute (LITERALS[TYPE], xid);
+
+ ES_Guard me_c (LITERALS[ME_CONS_TAG], this);
+ ES_Guard cons (LITERALS[CONSTRAINT], this);
+ ES_Guard me_tv (LITERALS[ME_TV_TAG], this);
+ ES_Guard tv (LITERALS[TV_TAG], this);
+
+ this->set_attribute (LITERALS[TAG], LITERALS[CONST_UPPER]);
+
+ // @@TODO: need to extract bound from node.
+ if (sequence->unbounded ())
+ {
+ this->set_attribute (LITERALS[VALUE],
+ LITERALS[UNBOUNDED_SEQ]);
+ }
+ else
+ { // bounded sequence
+ // convert the array bound to a string
+ // need a buffer, with a little safety padding
+ ACE_Auto_Basic_Array_Ptr<ACE_TCHAR> buffer (
+ this->number_to_string (sequence->max_size ()->ev ()->u.ulval));
+
+ this->set_attribute (LITERALS[VALUE], buffer.get ());
+ }
+ }
+
+ // <UML:AssociationEnd multiplicity="1..1"
+ // type="xmi.1210085542346"/> - type is Char for this IDL
+ ES_Guard assoc_end (LITERALS[ASSOC_END_TAG], this);
+ this->set_attribute (LITERALS[MULT], LITERALS[MULT_OTO]);
+
+ XStr seq_type = this->lookup_type_xid (sequence->base_type ());
+ this->set_attribute (LITERALS[TYPE], seq_type);
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_string (AST_String *)
+ {
+ XMI_TRACE ("string");
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_typedef (AST_Typedef *node)
+ {
+ XMI_TRACE ("typedef");
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ return 0;
+ }
+
+ try
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+
+ // Anonymous Sequences and arrays appear to be a special case
+ AST_Decl *base (node->base_type ());
+ if (base->node_type () == AST_Decl::NT_sequence)
+ {
+ this->gen_common_elements (node, LITERALS[ST_SEQ]);
+
+ AST_Sequence* sequence =
+ AST_Sequence::narrow_from_decl (base);
+ this->gen_sequence_associations (node, sequence);
+ }
+ else if (base->node_type () == AST_Decl::NT_array)
+ {
+ this->gen_common_elements (node, LITERALS[ST_ARR]);
+
+ AST_Array* array =
+ AST_Array::narrow_from_decl (base);
+ this->gen_array_associations (node, array);
+ }
+ else
+ {
+ this->gen_common_elements (node,
+ LITERALS[ST_TYPEDEF]);
+
+ // Generalization. Assignment required for memory management.
+ XStr xid = this->add_generalization (node,
+ node->base_type ());
+ ACE_UNUSED_ARG (xid);
+ }
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_root (AST_Root *node)
+ {
+ XMI_TRACE ("root");
+ try
+ {
+ ACE_CString fn;
+
+ if ((fn = be_global->filename ()) == "")
+ {
+ fn = idl_global->stripped_filename ()->get_string ();
+ fn = fn.substr (0, fn.rfind ('.'));
+ fn += ".xmi";
+ }
+
+ const char *path = be_global->output_dir ();
+ ACE_CString target_name;
+
+ if (path != 0)
+ {
+ target_name = path;
+ target_name += "/";
+ }
+
+ target_name += fn;
+
+ CIAO::XML::NoOp_Resolver res_func;
+ CIAO::XML::XML_Schema_Resolver<> resolver (res_func);
+ CIAO::XML::XML_Error_Handler handler;
+ CIAO::XML::XML_Helper<> helper (resolver, handler);
+
+ // Create XML document
+ std::auto_ptr<DOMDocumentType> doctype (
+ helper.create_doctype (ACE_TEXT("XMI"),
+ 0,
+ ACE_TEXT_CHAR_TO_TCHAR (be_global->dtd ())));
+
+ if ((this->dom_ = helper.create_dom (ACE_TEXT("XMI"),
+ ACE_TEXT(""),
+ doctype.get ())) == 0)
+ ACE_ERROR_RETURN ((LM_ERROR, "Unable to create XML document."), -1);
+
+ this->root_ = this->dom_->getDocumentElement ();
+
+ this->stack_.push (this->root_);
+
+ this->set_attribute (LITERALS[VERSION_TAG],
+ LITERALS[VERSION_VALUE]);
+
+ this->set_attribute (LITERALS[NS_TAG],
+ LITERALS[NS_VALUE]);
+
+ DOMElement *tmp = 0;
+
+ // Pregenerate stereotypes to cache xmi.ids.
+ DOMElement *stereotypes = this->generate_stereotypes ();
+
+ // Create XMI header
+ {
+ ES_Guard ht_g (LITERALS[HEADER_TAG], this);
+ ES_Guard d_t (LITERALS[DOC_TAG], this);
+ ES_Guard e_t (LITERALS[EXPORTER_TAG], this);
+ this->add_text (LITERALS[EXPORTER_VALUE]);
+ }
+
+ this->stack_.push (this->create_element (LITERALS[CONTENT_TAG]));
+ this->stack_.push (this->create_element (LITERALS[MODEL_TAG]));
+
+ // Store the base model xid
+ this->set_attribute (LITERALS[XMI_ID], this->base_id_);
+ this->id_map_.bind (ACE_TEXT ("::"), this->base_id_);
+
+
+ // Global namespace
+ this->stack_.push (this->create_element (LITERALS[OWNEDELEMENT_TAG]));
+ this->namespace_.push (ACE_TEXT ("::"));
+
+ // Create generalizations and associations elements, but don't join
+ // them to the tree yet
+ this->associations_ =
+ this->dom_->createElement (XStr (LITERALS[OWNEDELEMENT_TAG]));
+ this->generalizations_ =
+ this->dom_->createElement (XStr (LITERALS[OWNEDELEMENT_TAG]));
+
+ if (this->visit_scope (node) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "idl3_to_idl2_visitor::visit_root - "
+ "codegen for scope failed\n"),
+ -1);
+ }
+
+ this->stack_.pop (tmp);
+
+ this->stack_.top (tmp);
+
+ tmp->appendChild (this->generalizations_);
+ tmp->appendChild (this->associations_);
+ tmp->appendChild (stereotypes);
+
+ helper.write_DOM (this->dom_,
+ ACE_TEXT_CHAR_TO_TCHAR (target_name.c_str ()));
+ }
+ catch (const Error &ex)
+ {
+ if (ex.node_ != 0)
+ ACE_ERROR ((LM_ERROR, "%s:%d:error: %s\n",
+ ex.node_->file_name ().c_str (),
+ ex.node_->line (),
+ ex.diag_.c_str ()));
+ else
+ ACE_ERROR ((LM_ERROR, "::error:%s\n",
+ ex.diag_.c_str ()));
+
+ return -1;
+ }
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_native (AST_Native *node)
+ {
+ XMI_TRACE ("native");
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ return 0;
+ }
+
+ try
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+
+ this->gen_common_elements (node, LITERALS[ST_NATIVE]);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ void
+ idl3_to_xmi_visitor::set_attribute (const ACE_TCHAR *name,
+ const ACE_TCHAR *value)
+ {
+ DOMElement *ele = 0;
+ this->stack_.top (ele);
+
+ ele->setAttribute (XStr (name), XStr (value));
+ }
+
+
+ void
+ idl3_to_xmi_visitor::set_attribute (const ACE_TCHAR *name,
+ const XMLCh *value)
+ {
+ DOMElement *ele = 0;
+ this->stack_.top (ele);
+
+ ele->setAttribute (XStr (name), value);
+ }
+
+ void
+ idl3_to_xmi_visitor::add_text (const ACE_TCHAR *text)
+ {
+ DOMElement *ele = 0;
+ this->stack_.top (ele);
+
+ DOMText *node = this->dom_->createTextNode (XStr (text));
+ ele->appendChild (node);
+ }
+
+ DOMElement *
+ idl3_to_xmi_visitor::create_element (const ACE_TCHAR *name)
+ {
+ DOMElement *ele = 0;
+ this->stack_.top (ele);
+
+ DOMElement *node = this->dom_->createElement (XStr (name));
+
+ ele->appendChild (node);
+
+ return node;
+ }
+
+ DOMElement *
+ idl3_to_xmi_visitor::generate_stereotypes (void)
+ {
+ DOMElement *retval =
+ this->dom_->createElement (XStr (LITERALS[OWNEDELEMENT_TAG]));
+
+ // put it on the stack to subsequent create_element calls refer to it.
+ this->stack_.push (retval);
+
+ this->add_stereotype (ST_CONSUMES, ASSOC);
+ this->add_stereotype (ST_ANON_SEQ, CLASS);
+ this->add_stereotype (ST_PRINC, DATATYPE);
+ this->add_stereotype (ST_UNION, CLASS);
+ this->add_stereotype (ST_USES, ASSOC);
+ this->add_stereotype (ST_SEQ, CLASS);
+ this->add_stereotype (ST_ROE, __NULL);
+ this->add_stereotype (ST_RO, __NULL);
+ this->add_stereotype (ST_OBJ, DATATYPE);
+ this->add_stereotype (ST_STR, DATATYPE);
+ this->add_stereotype (ST_LD, DATATYPE);
+ this->add_stereotype (ST_ANON_ARR, CLASS);
+ this->add_stereotype (ST_ALIAS, CLASS);
+ this->add_stereotype (ST_NULL, DATATYPE);
+ this->add_stereotype (ST_VALUE, CLASS);
+ this->add_stereotype (ST_VOID, DATATYPE);
+ this->add_stereotype (ST_EX, CLASS);
+ this->add_stereotype (ST_OCTET, DATATYPE);
+ this->add_stereotype (ST_MANAGES, ASSOC);
+ this->add_stereotype (ST_WSTR, DATATYPE);
+ this->add_stereotype (ST_FLOAT, DATATYPE);
+ this->add_stereotype (ST_ENUM, CLASS);
+ this->add_stereotype (ST_VAL_SUP, CLASS);
+ this->add_stereotype (ST_MODULE, PACKAGE);
+ this->add_stereotype (ST_HFINDER, CLASS);
+ this->add_stereotype (ST_DOUBLE, DATATYPE);
+ this->add_stereotype (ST_LL, DATATYPE);
+ this->add_stereotype (ST_HFACT, CLASS);
+ this->add_stereotype (ST_ARR, CLASS);
+ this->add_stereotype (ST_COMP, CLASS);
+ this->add_stereotype (ST_SHORT, DATATYPE);
+ this->add_stereotype (ST_TYPEDEF, CLASS);
+ this->add_stereotype (ST_ULL, DATATYPE);
+ this->add_stereotype (ST_LONG, DATATYPE);
+ this->add_stereotype (ST_TC, DATATYPE);
+ this->add_stereotype (ST_HOME, CLASS);
+ this->add_stereotype (ST_STRUCT, CLASS);
+ this->add_stereotype (ST_FIXED, DATATYPE);
+ this->add_stereotype (ST_US, DATATYPE);
+ this->add_stereotype (ST_EMITS, ASSOC);
+ this->add_stereotype (ST_BOXVALUE, CLASS);
+ this->add_stereotype (ST_BOOL, DATATYPE);
+ this->add_stereotype (ST_CONST, ATTR);
+ this->add_stereotype (ST_PUBLISH, ASSOC);
+ this->add_stereotype (ST_CONSTANTS, CLASS);
+ this->add_stereotype (ST_PROVIDES, ASSOC);
+ this->add_stereotype (ST_WCHAR, DATATYPE);
+ this->add_stereotype (ST_UL, DATATYPE);
+ this->add_stereotype (ST_VAL_FACT, CLASS);
+ this->add_stereotype (ST_EVENT, CLASS);
+ this->add_stereotype (ST_CHAR, DATATYPE);
+ this->add_stereotype (ST_INTF, CLASS);
+ this->add_stereotype (ST_PRI_KEY, CLASS);
+ this->add_stereotype (ST_ANY, DATATYPE);
+ this->add_stereotype (ST_NATIVE, CLASS);
+
+ this->stack_.pop (retval);
+
+ return retval;
+ }
+
+ void
+ idl3_to_xmi_visitor::add_stereotype (const LITERAL_T name,
+ const LITERAL_T bc)
+ {
+ // Generate our xmi.id
+ XStr xid (this->gen_xmi_id ());
+
+ // Bind the id in the map
+ this->id_map_.bind (LITERALS[name], xid);
+
+ DOMElement *ele = this->create_element (LITERALS[STEREOTYPE_TAG]);
+ ele->setAttribute (XStr (LITERALS[XMI_ID]), xid);
+ ele->setAttribute (XStr (LITERALS[NAME]), XStr (LITERALS[name]));
+ ele->setAttribute (XStr (LITERALS[BASEC]), XStr (LITERALS[bc]));
+
+ return;
+ }
+
+ XMLCh *
+ idl3_to_xmi_visitor::gen_xmi_id (const ACE_TCHAR *name, long line)
+ {
+ if (current_id_ == 0)
+ {
+ ACE_OS::srand (ACE_OS::gettimeofday ().msec ());
+ current_id_ = rand ();
+ }
+ std::stringstream str;
+ // Skip all characters that cannot be a first name char in xmi.id.
+ while (name && *name && !XMLChar1_1::isFirstNameChar(*name)) ++name;
+ // Since we use a file path as name then let's change all non-name
+ // chars for '_'.
+ while (name && *name)
+ {
+ if (XMLChar1_1::isNameChar (*name))
+ {
+ str << *name;
+ }
+ else
+ {
+ str << '_';
+ }
+ ++name;
+ }
+ str << ':' << line << '.' << current_id_++;
+
+ XStr retval (ACE_TEXT_CHAR_TO_TCHAR (str.str ().c_str ()));
+ return retval.release ();
+ }
+
+ XMLCh *
+ idl3_to_xmi_visitor::gen_xmi_id (AST_Decl *node)
+ {
+ if (current_id_ == 0)
+ {
+ ACE_OS::srand (ACE_OS::gettimeofday ().msec ());
+ current_id_ = rand ();
+ }
+
+ // we want these IDs to be unique, but the CDMW
+ // code generator sometimes depends
+ // on the order these things were declared in IDL,
+ // so for cases like that,
+ // we generate an ID that will sort to the order it
+ // was declared in IDL,
+ // no matter which order we visit the nodes.
+ if (node != 0)
+ {
+ return
+ gen_xmi_id (
+ ACE_TEXT_CHAR_TO_TCHAR (node->file_name ().c_str ()),
+ node->line ());
+ }
+
+ std::stringstream str;
+
+ str << "xmi." << current_id_++;
+ XStr retval (ACE_TEXT_CHAR_TO_TCHAR (str.str ().c_str ()));
+ return retval.release ();
+ }
+
+ void
+ idl3_to_xmi_visitor::set_containing_element (
+ const ACE_TCHAR *cont_name)
+ {
+ ACE_TString tmp;
+ XStr xid;
+
+ this->namespace_.top (tmp);
+ this->id_map_.find (tmp, xid);
+ this->set_attribute (cont_name, xid);
+ }
+
+ void
+ idl3_to_xmi_visitor::create_and_store_xmi_id (AST_Decl *node)
+ {
+ try
+ {
+ this->create_and_store_xmi_id (
+ ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), node);
+ }
+ catch (Error &ex)
+ {
+ ex.node (node);
+ throw;
+ }
+ }
+
+ void
+ idl3_to_xmi_visitor::create_and_store_xmi_id (
+ const ACE_TCHAR *name, AST_Decl *node)
+ {
+ XStr xid = this->gen_xmi_id (node);
+
+ // store xmi_id
+ if (this->id_map_.trybind (name, xid) == -1)
+ throw Error ("error binding in the XMI ID map");
+
+ this->set_attribute (LITERALS[XMI_ID], xid);
+ }
+
+ XMLCh *
+ idl3_to_xmi_visitor::lookup_xid (const ACE_TCHAR *name)
+ {
+ XStr tmp;
+ if (this->id_map_.find (name, tmp) == -1)
+ {
+ ACE_CString err ("unknown XMI ID requested for ");
+ err += ACE_TEXT_ALWAYS_CHAR (name);
+ throw Error (err.c_str ());
+ }
+
+ return tmp.release ();
+ }
+
+ XMLCh *
+ idl3_to_xmi_visitor::lookup_type_xid (AST_Type *node)
+ {
+ AST_PredefinedType *pdt = 0;
+
+ switch (node->node_type ())
+ {
+ case AST_Decl::NT_string:
+ return this->lookup_xid (LITERALS[ST_STR]);
+ case AST_Decl::NT_wstring:
+ return this->lookup_xid (LITERALS[ST_WSTR]);
+
+ case AST_Decl::NT_pre_defined:
+ pdt = AST_PredefinedType::narrow_from_decl (node);
+
+ switch (pdt->pt ())
+ {
+ case AST_PredefinedType::PT_pseudo:
+ return this->lookup_xid (ACE_TEXT_CHAR_TO_TCHAR (pdt->repoID ()));
+ case AST_PredefinedType::PT_object:
+ return this->lookup_xid (LITERALS[ST_OBJ]);
+ case AST_PredefinedType::PT_any:
+ return this->lookup_xid (LITERALS[ST_ANY]);
+ case AST_PredefinedType::PT_long:
+ return this->lookup_xid (LITERALS[ST_LONG]);
+ case AST_PredefinedType::PT_ulong:
+ return this->lookup_xid (LITERALS[ST_UL]);
+ case AST_PredefinedType::PT_longlong:
+ return this->lookup_xid (LITERALS[ST_LL]);
+ case AST_PredefinedType::PT_ulonglong:
+ return this->lookup_xid (LITERALS[ST_ULL]);
+ case AST_PredefinedType::PT_short:
+ return this->lookup_xid (LITERALS[ST_SHORT]);
+ case AST_PredefinedType::PT_ushort:
+ return this->lookup_xid (LITERALS[ST_US]);
+ case AST_PredefinedType::PT_float:
+ return this->lookup_xid (LITERALS[ST_FLOAT]);
+ case AST_PredefinedType::PT_double:
+ return this->lookup_xid (LITERALS[ST_DOUBLE]);
+ case AST_PredefinedType::PT_longdouble:
+ return this->lookup_xid (LITERALS[ST_LD]);
+ case AST_PredefinedType::PT_char:
+ return this->lookup_xid (LITERALS[ST_CHAR]);
+ case AST_PredefinedType::PT_wchar:
+ return this->lookup_xid (LITERALS[ST_WCHAR]);
+ case AST_PredefinedType::PT_boolean:
+ return this->lookup_xid (LITERALS[ST_BOOL]);
+ case AST_PredefinedType::PT_octet:
+ return this->lookup_xid (LITERALS[ST_OCTET]);
+ case AST_PredefinedType::PT_void:
+ return this->lookup_xid (LITERALS[ST_VOID]);
+ default:
+ throw Error ("Unknown or unsupported predefined type",
+ pdt);
+ }
+ default:
+ return this->lookup_xid (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()));
+ }
+ }
+
+ void
+ idl3_to_xmi_visitor::find_and_set_xid_as_attr (const ACE_TCHAR *attr_name,
+ const ACE_TCHAR *xid_name)
+ {
+ XStr tmp;
+
+ if (this->id_map_.find (xid_name, tmp) == -1)
+ {
+ ACE_CString err ("unknown XMI ID when looking up ");
+ err += ACE_TEXT_ALWAYS_CHAR (xid_name);
+ throw Error (err.c_str ());
+ }
+
+ this->set_attribute (attr_name, tmp);
+ }
+
+ void
+ idl3_to_xmi_visitor::gen_tagged_value (AST_Decl *node)
+ {
+ ES_Guard me_guard (LITERALS[ME_TV_TAG], this);
+ ES_Guard tv_guard (LITERALS[TV_TAG], this);
+
+ this->set_attribute (LITERALS[TAG], LITERALS[TYPEID]);
+ this->set_attribute (LITERALS[VALUE],
+ ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()));
+ }
+
+ XMLCh *
+ idl3_to_xmi_visitor::add_generalization (const ACE_TCHAR *sub,
+ const ACE_TCHAR *super)
+ {
+ return this->add_generalization (XStr (this->lookup_xid (sub)),
+ XStr (this->lookup_xid (super)));
+ }
+
+ XMLCh *
+ idl3_to_xmi_visitor::add_generalization (AST_Type *sub, AST_Type *super)
+ {
+ return this->add_generalization (XStr (this->lookup_type_xid (sub)),
+ XStr (this->lookup_type_xid (super)));
+ }
+
+ XMLCh *
+ idl3_to_xmi_visitor::add_generalization (const XMLCh *sub,
+ const XMLCh *super)
+ {
+ // Generate XMI ID
+ XStr xid (this->gen_xmi_id ());
+
+ { // add generalization to the 'generalizations' set
+ ES_Guard es_guard (this->generalizations_, this);
+ NS_Guard ns_guard (ACE_TEXT ("::"), this);
+
+ ES_Guard gen_guard (LITERALS[GEN_TAG], this);
+
+ this->set_attribute (LITERALS[XMI_ID], xid);
+
+ this->set_containing_element (LITERALS[NS]);
+
+ { // subtype
+ ES_Guard st_guard (LITERALS[GEN_SUB_TAG], this);
+ ES_Guard element_guard (LITERALS[GEN_ELEMENT_TAG], this);
+
+ this->set_attribute (LITERALS[IDREF], sub);
+ }
+
+ { // subtype
+ ES_Guard st_guard (LITERALS[GEN_SUPER_TAG], this);
+ ES_Guard element_guard (LITERALS[GEN_ELEMENT_TAG], this);
+
+ this->set_attribute (LITERALS[IDREF], super);
+ }
+ }
+
+ { // Reference generalization in the calling element.
+ ES_Guard et_g (LITERALS[GEN_ELEMENT_GEN_TAG], this);
+ ES_Guard g_g (LITERALS[GEN_TAG], this);
+ this->set_attribute (LITERALS[IDREF], xid);
+ }
+
+ return xid.release ();
+ }
+
+ void
+ idl3_to_xmi_visitor::add_port (const ACE_TCHAR *port_kind,
+ AST_Field *port_node)
+ {
+ if (port_node->node_type () == AST_Decl::NT_uses)
+ {
+ AST_Uses *u = AST_Uses::narrow_from_decl (port_node);
+
+ if (u->is_multiple ())
+ {
+ throw Error ("uses multiple not yet supported.");
+ }
+ }
+
+ ES_Guard es_guard (this->associations_, this);
+ NS_Guard ns_guard (ACE_TEXT ("::"), this);
+
+ ES_Guard assoc_guard (LITERALS[ASSOC_TAG], this);
+
+ // Generate XMI ID
+ XStr xid (this->gen_xmi_id (port_node));
+ this->set_attribute (LITERALS[XMI_ID], xid);
+ this->set_attribute (LITERALS[VISIBIL], LITERALS[PUBLIC]);
+ this->find_and_set_xid_as_attr (LITERALS[STEREO_ATTR], port_kind);
+ this->set_containing_element (LITERALS[NS]);
+
+ ES_Guard conn_guard (LITERALS[ASSOC_CONN_TAG], this);
+
+ { // component end
+ ES_Guard end_guard (LITERALS[ASSOC_END_TAG], this);
+ this->set_attribute (LITERALS[MULT], ACE_TEXT ("1"));
+ this->find_and_set_xid_as_attr (
+ LITERALS[TYPE],
+ ACE_TEXT_CHAR_TO_TCHAR (this->cached_type_->repoID ()));
+ }
+
+ { // component end
+ ES_Guard end_guard (LITERALS[ASSOC_END_TAG], this);
+
+ Identifier *id =
+ IdentifierHelper::original_local_name (
+ port_node->local_name ());
+
+ this->set_attribute (LITERALS[NAME], id->get_string ());
+ this->set_attribute (LITERALS[MULT], ACE_TEXT ("1"));
+
+ this->find_and_set_xid_as_attr (
+ LITERALS[TYPE],
+ port_node->field_type ()->repoID ());
+
+ id->destroy ();
+ delete id;
+ id = 0;
+ }
+ }
+
+ void
+ idl3_to_xmi_visitor::add_managed_component (const ACE_TCHAR *home,
+ const ACE_TCHAR *component)
+ {
+ ES_Guard es_guard (this->associations_, this);
+ NS_Guard ns_guard (ACE_TEXT ("::"), this);
+
+ ES_Guard assoc_guard (LITERALS[ASSOC_TAG], this);
+
+ // Generate XMI ID
+ XStr xid (this->gen_xmi_id ());
+ this->set_attribute (LITERALS[XMI_ID], xid);
+ this->set_attribute (LITERALS[VISIBIL], LITERALS[PUBLIC]);
+ this->find_and_set_xid_as_attr (LITERALS[STEREO_ATTR],
+ LITERALS[ST_MANAGES]);
+ this->set_containing_element (LITERALS[NS]);
+
+ ES_Guard conn_guard (LITERALS[ASSOC_CONN_TAG], this);
+
+ { // home end
+ ES_Guard end_guard (LITERALS[ASSOC_END_TAG], this);
+ this->find_and_set_xid_as_attr (LITERALS[STEREO_ATTR],
+ LITERALS[ST_HOME]);
+ this->find_and_set_xid_as_attr (LITERALS[TYPE], home);
+ }
+
+ { // component end
+ ES_Guard end_guard (LITERALS[ASSOC_END_TAG], this);
+ this->find_and_set_xid_as_attr (LITERALS[STEREO_ATTR],
+ LITERALS[ST_COMP]);
+ this->find_and_set_xid_as_attr (LITERALS[TYPE], component);
+ }
+ }
+
+ void
+ idl3_to_xmi_visitor::gen_common_elements (AST_Decl *node,
+ const ACE_TCHAR *stereotype)
+ {
+ this->create_and_store_xmi_id (node);
+ this->set_attribute (
+ LITERALS[NAME],
+ ACE_TEXT_CHAR_TO_TCHAR (node->original_local_name ()->get_string ()));
+ this->set_attribute (LITERALS[VISIBIL], LITERALS[PUBLIC]);
+ this->set_containing_element (LITERALS[NS]);
+ this->find_and_set_xid_as_attr (LITERALS[STEREO_ATTR],
+ stereotype);
+
+ NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), this);
+ this->gen_tagged_value (node);
+ }
+
+ idl3_to_xmi_visitor::ES_Guard::ES_Guard (const ACE_TCHAR *name,
+ idl3_to_xmi_visitor *vis)
+ : vis_ (*vis)
+ {
+ if (vis_.stack_.push (vis_.create_element (name)))
+ throw Error ("element stack error");
+ }
+
+ idl3_to_xmi_visitor::ES_Guard::ES_Guard (DOMElement *ele,
+ idl3_to_xmi_visitor *vis)
+ : vis_ (*vis)
+ {
+ if (vis_.stack_.push (ele) != 0)
+ throw Error ("element stack error");
+ }
+
+ idl3_to_xmi_visitor::ES_Guard::~ES_Guard (void)
+ {
+ DOMElement *tmp;
+ if (vis_.stack_.pop (tmp) != 0)
+ {
+ vis_.output_dirty_ = true;
+ ACE_ERROR ((LM_ERROR, "error: element stack underflow."));
+ }
+ }
+
+ idl3_to_xmi_visitor::NS_Guard::NS_Guard (const ACE_TCHAR *name,
+ idl3_to_xmi_visitor *vis)
+ : vis_ (*vis)
+ {
+ int res = vis_.namespace_.push (name);
+
+ if (res == 0) return;
+ throw Error ("stack error");
+ }
+
+ idl3_to_xmi_visitor::NS_Guard::~NS_Guard (void)
+ {
+ ACE_TString tmp;
+ if (vis_.namespace_.pop (tmp) != 0)
+ {
+ vis_.output_dirty_ = true;
+ ACE_ERROR ((LM_ERROR, "error:namespace stack underflow"));
+ }
+ }
+ }
+}
diff --git a/modules/CIAO/tools/IDL3_to_XMI/IDL3_to_XMI_visitor.h b/modules/CIAO/tools/IDL3_to_XMI/IDL3_to_XMI_visitor.h
new file mode 100644
index 00000000000..8b88ae6bacb
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_XMI/IDL3_to_XMI_visitor.h
@@ -0,0 +1,325 @@
+/**
+ * @file IDL3_to_XMI_visitor.h
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * $Id$
+ * Implements a visitor that generates XMI for the CARDAMOM
+ * code generation facility.
+ *
+ * This IDL->XMI mapping appears to be based on a IDL->UML->XMI
+ * mapping, and should be valid XMI version 1.1
+ */
+
+#ifndef CIAO_XMI_VISITOR_H
+#define CIAO_XMI_VISITOR_H
+
+#include "ace/Containers.h"
+#include "ace/Hash_Map_Manager.h"
+#include "ace/Null_Mutex.h"
+#include "ace/SString.h"
+
+#include "xercesc/util/XercesDefs.hpp"
+
+#include "ast_visitor.h"
+#include "ast_component.h"
+#include "ast_concrete_type.h"
+
+#include "utl_scoped_name.h"
+#include "Literals.h"
+#include "XML/XercesString.h"
+#include "CIAO_IDL3_TO_XMI_Export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+class TAO_OutStream;
+class UTL_ExceptList;
+
+namespace XERCES_CPP_NAMESPACE
+{
+ class DOMDocument;
+ class DOMElement;
+}
+
+namespace CIAO
+{
+ namespace XMI
+ {
+
+ /**
+ * @class idl3_to_xmi_visitor
+ * @brief Visitor that generates XMI for the CARDAMOM code
+ * generation facilities.
+ */
+ class CIAO_IDL3_TO_XMI_Export idl3_to_xmi_visitor : public ast_visitor
+ {
+ public:
+ idl3_to_xmi_visitor (bool skip_imported);
+ virtual ~idl3_to_xmi_visitor (void);
+
+ virtual int visit_decl (AST_Decl *d);
+ virtual int visit_scope (UTL_Scope *node);
+ virtual int visit_type (AST_Type *node);
+ virtual int visit_predefined_type (AST_PredefinedType *node);
+ virtual int visit_module (AST_Module *node);
+ virtual int visit_interface (AST_Interface *node);
+ virtual int visit_interface_fwd (AST_InterfaceFwd *node);
+ virtual int visit_template_interface (AST_Template_Interface *node);
+ virtual int visit_valuebox (AST_ValueBox *node);
+ virtual int visit_valuetype (AST_ValueType *node);
+ virtual int visit_valuetype_fwd (AST_ValueTypeFwd *node);
+ virtual int visit_eventtype (AST_EventType *node);
+ virtual int visit_eventtype_fwd (AST_EventTypeFwd *node);
+ virtual int visit_component (AST_Component *node);
+ virtual int visit_component_fwd (AST_ComponentFwd *node);
+ virtual int visit_provides (AST_Provides *node);
+ virtual int visit_uses (AST_Uses *node);
+ virtual int visit_publishes (AST_Publishes *node);
+ virtual int visit_emits (AST_Emits *node);
+ virtual int visit_consumes (AST_Consumes *node);
+ virtual int visit_porttype (AST_PortType *node);
+ virtual int visit_extended_port (AST_Extended_Port *node);
+ virtual int visit_mirror_port (AST_Mirror_Port *node);
+ virtual int visit_connector (AST_Connector *node);
+ virtual int visit_instantiated_connector (
+ AST_Instantiated_Connector *node);
+ virtual int visit_tmpl_port (AST_Tmpl_Port *node);
+ virtual int visit_tmpl_mirror_port (
+ AST_Tmpl_Mirror_Port *node);
+ virtual int visit_home (AST_Home *node);
+ virtual int visit_factory (AST_Factory *node);
+ virtual int visit_structure (AST_Structure *node);
+ virtual int visit_structure_fwd (AST_StructureFwd *node);
+ virtual int visit_exception (AST_Exception *node);
+ virtual int visit_expression (AST_Expression *node);
+ virtual int visit_enum (AST_Enum *node);
+ virtual int visit_operation (AST_Operation *node);
+ virtual int visit_field (AST_Field *node);
+ virtual int visit_argument (AST_Argument *node);
+ virtual int visit_attribute (AST_Attribute *node);
+ virtual int visit_union (AST_Union *node);
+ virtual int visit_union_fwd (AST_UnionFwd *node);
+ virtual int visit_union_branch (AST_UnionBranch *node);
+ virtual int visit_union_label (AST_UnionLabel *node);
+ virtual int visit_constant (AST_Constant *node);
+ virtual int visit_enum_val (AST_EnumVal *node);
+ virtual int visit_array (AST_Array *node);
+ virtual int visit_sequence (AST_Sequence *node);
+ virtual int visit_string (AST_String *node);
+ virtual int visit_typedef (AST_Typedef *node);
+ virtual int visit_root (AST_Root *node);
+ virtual int visit_native (AST_Native *node);
+
+ struct Error
+ {
+ Error (const ACE_CString &diag, AST_Decl *node = 0)
+ : diag_ (diag),
+ node_ (node)
+ {}
+
+ void node (AST_Decl *node) { if (node_ == 0) node_ = node; }
+
+ const ACE_CString diag_;
+ AST_Decl *node_;
+ };
+
+ private:
+ /// Generates several elements common to most XMI elements.
+ /// Generates the following attributes: xmi.id, name, visibility, namespace, stereotype
+ /// and the tagged value grouping.
+ /// @param stereotype The stereotype this element should be associated with.
+ void gen_common_elements (AST_Decl *node, const ACE_TCHAR *stereotype);
+
+ /// Converts a number into a string representation.
+ /// Caller responsible for memory.
+ template <typename T>
+ ACE_TCHAR * number_to_string (T val);
+
+ /// Common elements of operation XMI generation
+ void visit_operation_impl (AST_Operation *node, const ACE_TCHAR *stereotype);
+
+ /// implementation for elements common to both eventtypes
+ /// and valuetypes
+ void visit_valuetype_impl (AST_ValueType *node);
+
+ /// implementation of elements common to exceptions and structures.
+ void visit_struct_impl (AST_Structure *node);
+
+ /// Generation of common associations of anonymous and typedefed arrays.
+ void gen_array_associations (AST_Decl *node, AST_Array *array);
+
+ /// Generation of common associations of anonymous and typedefed sequences.
+ void gen_sequence_associations (AST_Decl *node, AST_Sequence *sequence);
+
+ /// sets an attribute on the element at the top of the stack.
+ void set_attribute (const ACE_TCHAR *name,
+ const ACE_TCHAR *value);
+
+
+ /// sets an attribute on the element at the top of the stack
+ void set_attribute (const ACE_TCHAR *name,
+ const XMLCh *value);
+
+ /// Adds a text child to the element at the top of the stack
+ void add_text (const ACE_TCHAR *text);
+
+ /// Greates a new element as a child of the current stack element
+ XERCES_CPP_NAMESPACE::DOMElement * create_element (const ACE_TCHAR *name);
+
+ /// Generate stereotypes for XMI document
+ XERCES_CPP_NAMESPACE::DOMElement * generate_stereotypes (void);
+
+ /// Helper method which creates new stereotype elements
+ void add_stereotype (const LITERAL_T name,
+ const LITERAL_T bc);
+
+ /// Generates an XMI ID.
+ /// @param node If passed, the file name and line number will be
+ /// generated as part of the ID.
+ static XMLCh * gen_xmi_id (AST_Decl * node = 0);
+
+ /// Generates an XMI ID with file_name and line as part of the id.
+ static XMLCh * gen_xmi_id (const ACE_TCHAR *file_name, long line);
+
+ /// Used to store the next ID for generation
+ static size_t current_id_;
+
+ /// Generates the tagged value grouping common to most XMI elements
+ void gen_tagged_value (AST_Decl *);
+
+ /// Sets an attribute with name containment_name whose value is the
+ /// ID of the top of the namespace stack.
+ void set_containing_element (const ACE_TCHAR *containment_name);
+
+ /// Looks up the xmi:id assoviated with xid_name and sets it as an
+ /// attribute
+ void find_and_set_xid_as_attr (const ACE_TCHAR *attr_name, const ACE_TCHAR *xid_name);
+
+ /// Creates a XMI ID based on node, and sets its value to
+ /// the xmi.id attribute of the current top of element stack.
+ void create_and_store_xmi_id (AST_Decl *node);
+
+ /// Creates a XMI ID based on node, and sets its value to
+ /// the name attribute of the current top of element stack.
+ void create_and_store_xmi_id (const ACE_TCHAR *name, AST_Decl *node = 0);
+
+ /// Finds and returns the xmi.id associated with name.
+ XMLCh * lookup_xid (const ACE_TCHAR *name);
+
+ /// Finds and returns the xmi.id associated with the provided type.
+ XMLCh * lookup_type_xid (AST_Type *);
+
+ /// Used to add generalizations - most commonly used for supports
+ /// relationships. in component foo supports bar, foo is the sub,
+ /// bar is the super.
+ XMLCh * add_generalization (const ACE_TCHAR *sub, const ACE_TCHAR *super);
+ XMLCh * add_generalization (AST_Type *sub, AST_Type *super);
+
+ XMLCh * add_generalization (const XMLCh *sub, const XMLCh *super);
+
+ /// @param component Repository ID of component
+ /// @param port_kind text of port stereotype from LITERALS
+ /// @param port_type Repository ID of port type (ie, interface type for facet)
+ /// @param name The name of the port
+ /// @param is_multiple The multiplicity of the port (ie, uses multiple.)
+ void add_port (const ACE_TCHAR *port_kind,
+ AST_Field *port_node);
+
+ void add_managed_component (const ACE_TCHAR *home, const ACE_TCHAR *component);
+
+
+ ACE_TCHAR * union_label_value (AST_Expression *exp);
+
+ typedef ACE_Hash_Map_Manager_Ex< ACE_TString,
+ CIAO::XML::XStr,
+ ACE_Hash <ACE_TString>,
+ ACE_Equal_To <ACE_TString>,
+ ACE_Null_Mutex > XMI_ID_MAP;
+
+ /// Stores xmi.ids for elements, indexed by repoId.
+ XMI_ID_MAP id_map_;
+
+ typedef ACE_Unbounded_Stack<XERCES_CPP_NAMESPACE::DOMElement *> ELEMENT_STACK;
+
+ /// Stores elements we are currently generating XMI. Top of stack is the current
+ /// element.
+ ELEMENT_STACK stack_;
+
+ struct ElementContext {
+ ACE_TString ns_;
+ XERCES_CPP_NAMESPACE::DOMElement *elem_;
+ };
+
+ typedef ACE_Hash_Map_Manager_Ex< ACE_TString,
+ ElementContext,
+ ACE_Hash <ACE_TString>,
+ ACE_Equal_To <ACE_TString>,
+ ACE_Null_Mutex > REPO_ID_MAP;
+
+ /// Stores elements that were forward declared. Also stores modules that can
+ /// be reopened.
+ REPO_ID_MAP repo_id_map_;
+
+ /// Provides a "protected" push that is popped when the current scope
+ /// is exited.
+ struct ES_Guard
+ {
+ ES_Guard (const ACE_TCHAR *name, idl3_to_xmi_visitor *);
+ ES_Guard (XERCES_CPP_NAMESPACE::DOMElement *ele,
+ idl3_to_xmi_visitor *);
+ ~ES_Guard (void);
+
+ idl3_to_xmi_visitor &vis_;
+ };
+
+ friend struct ES_Guard;
+
+ typedef ACE_Unbounded_Stack< ACE_TString > STRING_STACK;
+
+ /// Stores namespaces associated with our current scope.
+ STRING_STACK namespace_;
+
+ /// Provides a protected push for the namespace stack that
+ /// pops when the current scope is exited.
+ struct NS_Guard
+ {
+ NS_Guard (const ACE_TCHAR *name, idl3_to_xmi_visitor *);
+ ~NS_Guard (void);
+
+ idl3_to_xmi_visitor &vis_;
+ };
+
+ friend struct NS_Guard;
+
+ XERCES_CPP_NAMESPACE::DOMDocument *dom_;
+
+ XERCES_CPP_NAMESPACE::DOMElement *root_;
+
+ XERCES_CPP_NAMESPACE::DOMElement *generalizations_;
+
+ XERCES_CPP_NAMESPACE::DOMElement *associations_;
+
+ const CIAO::XML::XStr base_id_;
+
+ /// true if for some reason the generated output is bad
+ /// and shouldn't be written.
+ bool output_dirty_;
+
+ bool skip_imported_;
+
+ /// true if we are in enum "scope".
+ bool visiting_enum_;
+
+ /// Used to determine IDL ordering of union labels.
+ size_t order_;
+
+ /// USed to cache the type of union descriminators
+ AST_ConcreteType *union_disc_;
+
+ /// Used to cache the type whose scope we are currently in.
+ AST_Decl *cached_type_;
+ };
+ }
+}
+
+#endif
diff --git a/modules/CIAO/tools/IDL3_to_XMI/IR_Simulator_visitor.cpp b/modules/CIAO/tools/IDL3_to_XMI/IR_Simulator_visitor.cpp
new file mode 100644
index 00000000000..397c825227a
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_XMI/IR_Simulator_visitor.cpp
@@ -0,0 +1,1175 @@
+// $Id$
+
+#include "IR_Simulator_visitor.h"
+
+#include "be_sunsoft.h"
+#include "be_extern.h"
+
+#include "ast_argument.h"
+#include "ast_array.h"
+#include "ast_attribute.h"
+#include "ast_component_fwd.h"
+#include "ast_provides.h"
+#include "ast_uses.h"
+#include "ast_publishes.h"
+#include "ast_emits.h"
+#include "ast_consumes.h"
+#include "ast_enum.h"
+#include "ast_enum_val.h"
+#include "ast_eventtype.h"
+#include "ast_eventtype_fwd.h"
+#include "ast_exception.h"
+#include "ast_factory.h"
+#include "ast_field.h"
+#include "ast_home.h"
+#include "ast_operation.h"
+#include "ast_root.h"
+#include "ast_sequence.h"
+#include "ast_string.h"
+#include "ast_structure_fwd.h"
+#include "ast_union.h"
+#include "ast_union_branch.h"
+#include "ast_union_fwd.h"
+#include "ast_union_label.h"
+#include "ast_valuebox.h"
+#include "ast_valuetype_fwd.h"
+#include "ast_native.h"
+#include "utl_exceptlist.h"
+#include "utl_identifier.h"
+#include "utl_idlist.h"
+#include "utl_string.h"
+#include "global_extern.h"
+#include "nr_extern.h"
+#include "ace/OS_NS_stdio.h"
+
+
+#include <iostream>
+#include <limits>
+
+#if 0
+#define XMI_TRACE(X) std::cout << X << std::endl
+#else
+#define XMI_TRACE(X)
+#endif
+
+namespace CIAO
+{
+ namespace XMI
+ {
+ struct Incr_Guard
+ {
+ public:
+ Incr_Guard (size_t &subject, bool arm = false)
+ : subject_ (subject),
+ armed_ (arm)
+ {
+ }
+
+ ~Incr_Guard (void)
+ {
+ if (this->armed_)
+ --subject_;
+ }
+ void arm (void)
+ {
+ this->armed_ = true;
+ ++subject_;
+ }
+
+ private:
+ size_t &subject_;
+ bool armed_;
+ };
+
+ ir_simulator_visitor::ir_simulator_visitor (void)
+ : associating_ (false)
+ {
+ }
+
+ ir_simulator_visitor::~ir_simulator_visitor (void)
+ {
+ }
+
+ int
+ ir_simulator_visitor::visit_decl (AST_Decl *)
+ {
+ XMI_TRACE ("got a decl");
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_scope (UTL_Scope *node)
+ {
+ XMI_TRACE ("got a scope");
+
+ for (UTL_ScopeActiveIterator si (node, UTL_Scope::IK_decls);
+ !si.is_done ();
+ si.next ())
+ {
+ AST_Decl *d = si.item ();
+
+ if (d->ast_accept (this) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "ir_simulator_visitor::visit_scope - "
+ "codegen for scope failed\n"),
+ -1);
+ }
+ }
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_type (AST_Type *)
+ {
+ XMI_TRACE ("got a type");
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_predefined_type (AST_PredefinedType *)
+ {
+ XMI_TRACE ("predef type");
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_module (AST_Module *node)
+ {
+ XMI_TRACE ("module");
+
+ if (!this->do_i_care (node))
+ {
+ return 0;
+ }
+
+ Incr_Guard guard (this->associating_);
+
+ if (!this->associating_)
+ {
+ // not associating, imported, not my concern
+ if (node->imported ())
+ {
+ return 0;
+ }
+ // not imported, but not associating, need to set the guard
+ else
+ {
+ guard.arm ();
+ }
+ }
+ // associating, import
+ else
+ {
+ node->set_imported (false);
+ }
+
+ try
+ {
+ if (this->visit_scope (node) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "idl3_to_idl2_visitor::visit_module - "
+ "codegen for scope failed\n"),
+ -1);
+ }
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_interface (AST_Interface *node)
+ {
+ XMI_TRACE ("interface");
+
+ if (!this->do_i_care (node))
+ {
+ return 0;
+ }
+
+ Incr_Guard guard (this->associating_);
+
+ if (!this->associating_)
+ {
+ // not associating, imported, not my concern
+ if (node->imported ())
+ {
+ return 0;
+ }
+ // not imported, but not associating, need to set the guard
+ else
+ {
+ guard.arm ();
+ }
+ }
+ // associating, import
+ else
+ {
+ node->set_imported (false);
+ }
+
+ try
+ {
+ // Inheritance
+ for (long i = 0; i < node->n_inherits (); ++i)
+ {
+ this->visit_interface (node->inherits ()[i]);
+ }
+
+ if (this->visit_scope (node) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "idl3_to_idl2_visitor::visit_interface - "
+ "codegen for scope failed\n"),
+ -1);
+ }
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_interface_fwd (AST_InterfaceFwd *node)
+ {
+ XMI_TRACE ("interface_fwd");
+
+ // won't hurt to import the fwd interface
+ node->set_imported (false);
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_template_interface (
+ AST_Template_Interface *)
+ {
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_valuebox (AST_ValueBox *node)
+ {
+ XMI_TRACE ("valuebox");
+
+ if (!this->do_i_care (node))
+ {
+ return 0;
+ }
+
+ Incr_Guard guard (this->associating_);
+
+ if (!this->associating_)
+ {
+ // not associating, imported, not my concern
+ if (node->imported ()) return 0;
+ // not imported, but not associating, need to set the guard
+ else guard.arm ();
+ }
+ // associating, import
+ else
+ {
+ node->set_imported (false);
+ }
+
+ try
+ {
+ // **** need to visit type we are boxing?
+ node->boxed_type ()->ast_accept (this);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_valuetype (AST_ValueType *node)
+ {
+ XMI_TRACE ("valuetype");
+
+ try
+ {
+ this->visit_valuetype_impl (node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ }
+
+ return 0;
+ }
+
+ void
+ ir_simulator_visitor::visit_valuetype_impl (AST_ValueType *node)
+ {
+ Incr_Guard guard (this->associating_);
+
+ if (!this->do_i_care (node))
+ {
+ return;
+ }
+
+ if (!this->associating_)
+ {
+ // not associating, imported, not my concern
+ if (node->imported ())
+ {
+ return;
+ }
+ // not imported, but not associating, need to set the guard
+ else
+ {
+ guard.arm ();
+ }
+ }
+ // associating, import
+ else
+ {
+ node->set_imported (false);
+ }
+
+ try
+ {
+ if (node->inherits_concrete () != 0)
+ {
+ this->visit_valuetype_impl (node->inherits_concrete ());
+ }
+
+ long lim = node->n_supports ();
+ AST_Interface **sppts = node->supports ();
+
+ for (long i = 0; i < lim; ++i)
+ {
+ sppts[i]->ast_accept (this);
+ }
+
+ this->visit_scope (node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+ }
+
+ int
+ ir_simulator_visitor::visit_valuetype_fwd (AST_ValueTypeFwd *node)
+ {
+ XMI_TRACE ("valuetype_fwd");
+
+ try
+ {
+ // no harm from importing a fwd interface
+ // node->is_imported (false);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ }
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_component (AST_Component *node)
+ {
+ XMI_TRACE ("component");
+
+ if (!this->do_i_care (node))
+ {
+ return 0;
+ }
+
+ Incr_Guard guard (this->associating_);
+
+ if (!this->associating_)
+ {
+ // not associating, imported, not my concern
+ if (node->imported ())
+ {
+ return 0;
+ }
+ // not imported, but not associating, need to set the guard
+ else
+ {
+ guard.arm ();
+ }
+ }
+ // associating, import
+ else
+ {
+ node->set_imported (false);
+ }
+
+ try
+ {
+ if (node->base_component () != 0)
+ {
+ node->base_component ()->ast_accept (this);
+ }
+
+ long len = node->n_supports ();
+ AST_Interface **sppts = node->supports ();
+
+ for (long i = 0; i < len; ++i)
+ {
+ sppts[i]->ast_accept (this);
+ }
+
+ this->visit_scope (node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ }
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_component_fwd (AST_ComponentFwd *node)
+ {
+ XMI_TRACE ("component_fwd");
+
+ try
+ {
+ // no harm from importing a fwd interface
+ // node->is_imported (false);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ }
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_provides (AST_Provides *node)
+ {
+ return node->provides_type ()->ast_accept (this);
+ }
+
+ int
+ ir_simulator_visitor::visit_uses (AST_Uses *node)
+ {
+ return node->uses_type ()->ast_accept (this);
+ }
+
+ int
+ ir_simulator_visitor::visit_publishes (AST_Publishes *node)
+ {
+ return node->publishes_type ()->ast_accept (this);
+ }
+
+ int
+ ir_simulator_visitor::visit_emits (AST_Emits *node)
+ {
+ return node->emits_type ()->ast_accept (this);
+ }
+
+ int
+ ir_simulator_visitor::visit_consumes (AST_Consumes *node)
+ {
+ return node->consumes_type ()->ast_accept (this);
+ }
+
+ int
+ ir_simulator_visitor::visit_porttype (AST_PortType *)
+ {
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_extended_port (AST_Extended_Port *)
+ {
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_mirror_port (AST_Mirror_Port *)
+ {
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_connector (AST_Connector *)
+ {
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_instantiated_connector (
+ AST_Instantiated_Connector *)
+ {
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_tmpl_port (AST_Tmpl_Port *)
+ {
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_tmpl_mirror_port (
+ AST_Tmpl_Mirror_Port *)
+ {
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_eventtype (AST_EventType *node)
+ {
+ XMI_TRACE ("eventtype");
+
+ try
+ {
+ this->visit_valuetype_impl (node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ }
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_eventtype_fwd (AST_EventTypeFwd *node)
+ {
+ XMI_TRACE ("eventtype_fwd");
+
+ this->visit_valuetype_fwd (node);
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_home (AST_Home *node)
+ {
+ XMI_TRACE ("home");
+
+ if (!this->do_i_care (node))
+ {
+ return 0;
+ }
+
+ Incr_Guard guard (this->associating_);
+
+ if (!this->associating_)
+ {
+ // not associating, imported, not my concern
+ if (node->imported ())
+ {
+ return 0;
+ }
+ // not imported, but not associating, need to set the guard
+ else
+ {
+ guard.arm ();
+ }
+ }
+ // associating, import
+ else
+ {
+ node->set_imported (false);
+ }
+
+ try
+ {
+ // **** supported interfaces
+ long len = node->n_supports ();
+ AST_Interface **sppts = node->supports ();
+
+ for (long i = 0; i < len; ++i)
+ {
+ sppts[i]->ast_accept (this);
+ }
+
+ if (node->base_home ())
+ {
+ node->base_home ()->ast_accept (this);
+ }
+
+ if (node->managed_component ())
+ {
+ node->managed_component ()->ast_accept (this);
+ }
+
+ if (node->primary_key ())
+ {
+ node->primary_key ()->ast_accept (this);
+ }
+
+ for (size_t i = 0; i < node->factories ().size (); ++i)
+ {
+ AST_Operation **op = 0;
+ node->factories ().get (op, i);
+ (*op)->ast_accept (this);
+ }
+
+ for (size_t i = 0; i < node->finders ().size (); ++i)
+ {
+ AST_Operation **op = 0;
+ node->finders ().get (op, i);
+ (*op)->ast_accept (this);
+ }
+
+ this->visit_scope (node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ }
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_factory (AST_Factory *node)
+ {
+ XMI_TRACE ("factory");
+
+ throw Error ("Factories not supported", node);
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_structure (AST_Structure *node)
+ {
+ XMI_TRACE ("structure");
+
+ try
+ {
+ this->visit_struct_impl (node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ void
+ ir_simulator_visitor::visit_struct_impl (AST_Structure *node)
+ {
+ if (!this->do_i_care (node))
+ {
+ return;
+ }
+
+ Incr_Guard guard (this->associating_);
+
+ if (!this->associating_)
+ {
+ // not associating, imported, not my concern
+ if (node->imported ())
+ {
+ return;
+ }
+ // not imported, but not associating, need to set the guard
+ else
+ {
+ guard.arm ();
+ }
+ }
+ // associating, import
+ else
+ {
+ node->set_imported (false);
+ }
+
+ try
+ {
+ this->visit_scope (node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+ }
+
+ int
+ ir_simulator_visitor::visit_structure_fwd (AST_StructureFwd *node)
+ {
+ XMI_TRACE ("structure_fwd");
+
+ try
+ {
+ node->set_imported (false);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ }
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_exception (AST_Exception *node)
+ {
+ XMI_TRACE ("exception");
+
+
+ try
+ {
+ this->visit_struct_impl (node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_expression (AST_Expression *)
+ {
+ XMI_TRACE ("expression");
+
+ /* Incr_Guard guard (this->associating_);
+
+ if (!this->associating_)
+ {
+ // not associating, imported, not my concern
+ if (node->imported ()) return;
+ // not imported, but not associating, need to set the guard
+ else guard.arm ();
+ }
+ // associating, import
+ else node->set_imported (false);
+ */
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_enum (AST_Enum *node)
+ {
+ XMI_TRACE ("enum");
+
+ if (!this->do_i_care (node))
+ {
+ return 0;
+ }
+
+ Incr_Guard guard (this->associating_);
+
+ if (!this->associating_)
+ {
+ // not associating, imported, not my concern
+ if (node->imported ())
+ {
+ return 0;
+ }
+ // not imported, but not associating, need to set the guard
+ else
+ {
+ guard.arm ();
+ }
+ }
+ // associating, import
+ else
+ {
+ node->set_imported (false);
+ }
+
+ try
+ {
+ this->visit_scope (node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_operation (AST_Operation *node)
+ {
+ XMI_TRACE ("operation");
+
+ Incr_Guard guard (this->associating_);
+
+ if (!this->associating_)
+ {
+ // not associating, imported, not my concern
+ if (node->imported ())
+ {
+ return 0;
+ }
+ // not imported, but not associating, need to set the guard
+ else
+ {
+ guard.arm ();
+ }
+ }
+ // associating, import
+ else
+ {
+ node->set_imported (false);
+ }
+
+ try
+ {
+ // ACE_DEBUG ((LM_DEBUG, "foo"));
+
+ if (node->return_type ())
+ {
+ // ACE_DEBUG ((LM_DEBUG, "bar"));
+ node->return_type ()->ast_accept (this);
+ }
+
+ // **** arguments
+ // **** exceptions
+ UTL_ExceptList *exceptions = node->exceptions ();
+
+ if (exceptions != 0 && exceptions->length () > 0)
+ {
+ for (UTL_ExceptlistActiveIterator ei (exceptions);
+ !ei.is_done ();
+ ei.next ())
+ {
+ ei.item ()->ast_accept (this);
+ }
+ }
+
+ this->visit_scope (node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ }
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_field (AST_Field *node)
+ {
+ XMI_TRACE ("field");
+
+ if (node == 0)
+ {
+ ACE_DEBUG ((LM_DEBUG, "null field?\n"));
+ return 0;
+ }
+
+ Incr_Guard guard (this->associating_);
+
+ if (!this->associating_)
+ {
+ // not associating, imported, not my concern
+ if (node->imported ())
+ {
+ return 0;
+ }
+ // not imported, but not associating, need to set the guard
+ else
+ {
+ guard.arm ();
+ }
+ }
+ // associating, import
+ else
+ {
+ node->set_imported (false);
+ }
+
+ try
+ {
+ if (node->field_type ())
+ {
+ node->field_type ()->ast_accept (this);
+ }
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ }
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_argument (AST_Argument *node)
+ {
+ XMI_TRACE ("argument");
+
+ this->visit_field (node);
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_attribute (AST_Attribute *node)
+ {
+ XMI_TRACE ("attribute");
+
+ return this->visit_field (node);
+ }
+
+ int
+ ir_simulator_visitor::visit_union (AST_Union *node)
+ {
+ XMI_TRACE ("union");
+
+ if (!this->do_i_care (node))
+ {
+ return 0;
+ }
+
+ Incr_Guard guard (this->associating_);
+
+ if (!this->associating_)
+ {
+ // not associating, imported, not my concern
+ if (node->imported ())
+ {
+ return 0;
+ }
+ // not imported, but not associating, need to set the guard
+ else
+ {
+ guard.arm ();
+ }
+ }
+ // associating, import
+ else
+ {
+ node->set_imported (false);
+ }
+
+ if (node->disc_type ())
+ {
+ this->visit_type (node->disc_type ());
+ }
+
+ return this->visit_scope (node);
+ }
+
+ int
+ ir_simulator_visitor::visit_union_fwd (AST_UnionFwd *node)
+ {
+ XMI_TRACE ("union_fwd");
+ node->set_imported (false);
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_union_branch (AST_UnionBranch *node)
+ {
+ XMI_TRACE ("union_branch");
+ this->visit_field (node);
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_union_label (AST_UnionLabel *node)
+ {
+ XMI_TRACE ("union_label");
+
+ if (node->label_val ())
+ {
+ node->label_val ()->ast_accept (this);
+ }
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_constant (AST_Constant *)
+ {
+ XMI_TRACE ("constant");
+
+ // CDMW XMI generator does not generate XMI for constants.
+ // it, in
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_enum_val (AST_EnumVal *)
+ {
+ XMI_TRACE ("enum val");
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_array (AST_Array *node)
+ {
+ XMI_TRACE ("array val");
+
+ if (!this->do_i_care (node))
+ {
+ return 0;
+ }
+
+ Incr_Guard guard (this->associating_);
+
+ if (!this->associating_)
+ {
+ // not associating, imported, not my concern
+ if (node->imported ())
+ {
+ return 0;
+ }
+ // not imported, but not associating, need to set the guard
+ else
+ {
+ guard.arm ();
+ }
+ }
+ // associating, import
+ else
+ {
+ node->set_imported (false);
+ }
+
+ return node->base_type ()->ast_accept (this);
+ }
+
+ int
+ ir_simulator_visitor::visit_sequence (AST_Sequence *node)
+ {
+ XMI_TRACE ("sequence val");
+
+ try
+ {
+ Incr_Guard guard (this->associating_);
+
+ if (!this->associating_)
+ {
+ // not associating, imported, not my concern
+ if (node->imported ())
+ {
+ return 0;
+ }
+ // not imported, but not associating, need to set the guard
+ else
+ {
+ guard.arm ();
+ }
+ }
+ // associating, import
+ else
+ {
+ node->set_imported (false);
+ }
+
+ node->base_type ()->ast_accept (this);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_string (AST_String *)
+ {
+ XMI_TRACE ("string");
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_typedef (AST_Typedef *node)
+ {
+ XMI_TRACE ("typedef");
+
+ Incr_Guard guard (this->associating_);
+
+ if (!this->associating_)
+ {
+ // not associating, imported, not my concern
+ if (node->imported ())
+ {
+ return 0;
+ }
+ // not imported, but not associating, need to set the guard
+ else
+ {
+ guard.arm ();
+ }
+ }
+ // associating, import
+ else
+ {
+ node->set_imported (false);
+ }
+
+ return node->base_type ()->ast_accept (this);
+ }
+
+ int
+ ir_simulator_visitor::visit_root (AST_Root *node)
+ {
+ XMI_TRACE ("root");
+
+ try
+ {
+ this->visit_scope (node);
+ }
+ catch (const Error &ex)
+ {
+ if (ex.node_ != 0)
+ {
+ ACE_ERROR ((LM_ERROR, "%s:%d:error: %s\n",
+ ex.node_->file_name ().c_str (),
+ ex.node_->line (),
+ ex.diag_.c_str ()));
+ }
+ else
+ {
+ ACE_ERROR ((LM_ERROR, "::error:%s\n",
+ ex.diag_.c_str ()));
+ }
+
+ return -1;
+ }
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_native (AST_Native *)
+ {
+ XMI_TRACE ("native");
+ return 0;
+ }
+
+ bool
+ ir_simulator_visitor::do_i_care (AST_Decl *node)
+ {
+ std::string name (node->repoID ());
+
+ return this->seen_types_.insert (name).second;
+ }
+ }
+}
diff --git a/modules/CIAO/tools/IDL3_to_XMI/IR_Simulator_visitor.h b/modules/CIAO/tools/IDL3_to_XMI/IR_Simulator_visitor.h
new file mode 100644
index 00000000000..2425921041b
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_XMI/IR_Simulator_visitor.h
@@ -0,0 +1,132 @@
+/**
+ * @file IR_Simulator_visitor.h
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * $Id$
+ * Implements a visitor that generates XMI for the CARDAMOM
+ * code generation facility.
+ *
+ * This IDL->XMI mapping appears to be based on a IDL->UML->XMI
+ * mapping, and should be valid XMI version 1.1
+ */
+
+#ifndef CIAO_IR_SIMULATOR_VISITOR_H
+#define CIAO_IR_SIMULATOR_VISITOR_H
+
+#include "ace/Containers.h"
+#include "ace/Hash_Map_Manager.h"
+#include "ace/Null_Mutex.h"
+#include "ace/SString.h"
+
+#include "xercesc/util/XercesDefs.hpp"
+
+#include "ast_visitor.h"
+#include "ast_component.h"
+#include "utl_scoped_name.h"
+#include "Literals.h"
+#include "XML/XercesString.h"
+#include "CIAO_IDL3_TO_XMI_Export.h"
+
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+class TAO_OutStream;
+class UTL_ExceptList;
+
+#include <set>
+#include <string>
+
+namespace CIAO
+{
+ namespace XMI
+ {
+
+ /**
+ * @class ir_simulator_visitor
+ * @brief Visitor that generates XMI for the CARDAMOM code
+ * generation facilities.
+ */
+ class CIAO_IDL3_TO_XMI_Export ir_simulator_visitor
+ : public ast_visitor
+ {
+ public:
+ ir_simulator_visitor (void);
+ virtual ~ir_simulator_visitor (void);
+
+ virtual int visit_decl (AST_Decl *d);
+ virtual int visit_scope (UTL_Scope *node);
+ virtual int visit_type (AST_Type *node);
+ virtual int visit_predefined_type (AST_PredefinedType *node);
+ virtual int visit_module (AST_Module *node);
+ virtual int visit_interface (AST_Interface *node);
+ virtual int visit_interface_fwd (AST_InterfaceFwd *node);
+ virtual int visit_template_interface (AST_Template_Interface *node);
+ virtual int visit_valuebox (AST_ValueBox *node);
+ virtual int visit_valuetype (AST_ValueType *node);
+ void visit_valuetype_impl (AST_ValueType *);
+ virtual int visit_valuetype_fwd (AST_ValueTypeFwd *node);
+ virtual int visit_component (AST_Component *node);
+ virtual int visit_component_fwd (AST_ComponentFwd *node);
+ virtual int visit_provides (AST_Provides *node);
+ virtual int visit_uses (AST_Uses *node);
+ virtual int visit_publishes (AST_Publishes *node);
+ virtual int visit_emits (AST_Emits *node);
+ virtual int visit_consumes (AST_Consumes *node);
+ virtual int visit_porttype (AST_PortType *node);
+ virtual int visit_extended_port (AST_Extended_Port *node);
+ virtual int visit_mirror_port (AST_Mirror_Port *node);
+ virtual int visit_connector (AST_Connector *node);
+ virtual int visit_instantiated_connector (
+ AST_Instantiated_Connector *node);
+ virtual int visit_tmpl_port (AST_Tmpl_Port *node);
+ virtual int visit_tmpl_mirror_port (
+ AST_Tmpl_Mirror_Port *node);
+ virtual int visit_eventtype (AST_EventType *node);
+ virtual int visit_eventtype_fwd (AST_EventTypeFwd *node);
+ virtual int visit_home (AST_Home *node);
+ virtual int visit_factory (AST_Factory *node);
+ virtual int visit_structure (AST_Structure *node);
+ void visit_struct_impl (AST_Structure *node);
+ virtual int visit_structure_fwd (AST_StructureFwd *node);
+ virtual int visit_exception (AST_Exception *node);
+ virtual int visit_expression (AST_Expression *node);
+ virtual int visit_enum (AST_Enum *node);
+ virtual int visit_operation (AST_Operation *node);
+ virtual int visit_field (AST_Field *node);
+ virtual int visit_argument (AST_Argument *node);
+ virtual int visit_attribute (AST_Attribute *node);
+ virtual int visit_union (AST_Union *node);
+ virtual int visit_union_fwd (AST_UnionFwd *node);
+ virtual int visit_union_branch (AST_UnionBranch *node);
+ virtual int visit_union_label (AST_UnionLabel *node);
+ virtual int visit_constant (AST_Constant *node);
+ virtual int visit_enum_val (AST_EnumVal *node);
+ virtual int visit_array (AST_Array *node);
+ virtual int visit_sequence (AST_Sequence *node);
+ virtual int visit_string (AST_String *node);
+ virtual int visit_typedef (AST_Typedef *node);
+ virtual int visit_root (AST_Root *node);
+ virtual int visit_native (AST_Native *node);
+
+ struct Error
+ {
+ Error (const ACE_CString &diag, AST_Decl *node = 0)
+ : diag_ (diag),
+ node_ (node)
+ {}
+
+ void node (AST_Decl *node) { if (node_ == 0) node_ = node; }
+
+ const ACE_CString diag_;
+ AST_Decl *node_;
+ };
+
+ private:
+ bool do_i_care (AST_Decl *node);
+ size_t associating_;
+ std::set <std::string> seen_types_;
+ };
+ }
+}
+#endif
diff --git a/modules/CIAO/tools/IDL3_to_XMI/Literals.cpp b/modules/CIAO/tools/IDL3_to_XMI/Literals.cpp
new file mode 100644
index 00000000000..2172bbeb075
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_XMI/Literals.cpp
@@ -0,0 +1,156 @@
+// $Id$
+
+#include "Literals.h"
+
+namespace CIAO
+{
+ namespace XMI
+ {
+
+ const ACE_TCHAR* const LITERALS[MAX_LITERAL] =
+ {
+ ACE_TEXT("xmi.version"), // VERSION_TAG
+ ACE_TEXT("1.1"), // VERSION_VALUE
+ ACE_TEXT("xmlns:UML"), // NS_TAG
+ ACE_TEXT("org.omg/UML1.3"), // NS_VALUE
+ ACE_TEXT("XMI.header"), // HEADER_TAG
+ ACE_TEXT("XMI.documentation"), // DOC_TAG
+ ACE_TEXT("XMI.exporter"), // EXPORTER_TAG
+ ACE_TEXT("DOC Group IDL to XMI converter"), // EXPORTER_VALUE
+ ACE_TEXT("XMI.content"), // CONTENT_TAG
+ ACE_TEXT("UML:Model"), // MODEL_TAG
+ ACE_TEXT("xmi.id"), // XMI_ID
+ ACE_TEXT("UML:Namespace.ownedElement"), // OWNEDELEMENT_TAG
+ ACE_TEXT("UML:Package"), // PACKAGE_TAG
+ ACE_TEXT("UML:ModelElement"), // MODELELEMENT_TAG
+ ACE_TEXT("UML:ModelElement.taggedValue"), // ME_TV_TAG
+ ACE_TEXT("UML:ModelElement.constraint"), // ME_CONS_TAG
+ ACE_TEXT("UML:Constraint"), // CONSTRAINT
+ ACE_TEXT("UML:TaggedValue"), // TV_TAG
+ ACE_TEXT("UML:Stereotype"), // STEREOTYPE_TAG
+ ACE_TEXT("UML:Class"), // CLASS_TAG
+ ACE_TEXT("UML:Operation"), // OP_TAG
+ ACE_TEXT("UML:BehavioralFeature.parameter"), // BFP_TAG
+ ACE_TEXT("UML:Parameter"), // PARAM_TAG
+ ACE_TEXT("UML:BehavioralFeature.raisedException"), // BF_RE_TAG
+ ACE_TEXT("UML:Exception"), // EXCEPT_TAG
+ ACE_TEXT("UML:Attribute"), // ATTR_TAG
+ ACE_TEXT("UML:Association"), // ASSOC_TAG
+ ACE_TEXT("UML:Association.connection"), // ASSOC_CONN_TAG
+ ACE_TEXT("UML:AssociationEnd"), // ASSOC_END_TAG
+ ACE_TEXT("UML:AssociationEnd.qualifier"), // ASSOC_END_QUAL_TAG
+ ACE_TEXT("UML:Generalization"), // GEN_TAG
+ ACE_TEXT("UML:Generalization.subtype"), // GEN_SUB_TAG
+ ACE_TEXT("UML:Generalization.supertype"), // GEN_SUPER_TAG
+ ACE_TEXT("UML:GeneralizableElement"), // GEN_ELEMENT_TAG
+ ACE_TEXT("UML:GeneralizableElement.generalization"),// GEN_ELEMENT_GEN_TAG
+ ACE_TEXT("UML:Exception"), // EXCEPTION_TAG
+
+ // ******* Attributes
+ ACE_TEXT("tag"), // TAG
+ ACE_TEXT("value"), // VALUE
+ ACE_TEXT("name"), // NAME
+ ACE_TEXT("baseClass"), // BASEC
+ ACE_TEXT("visibility"), // VISIBIL
+ ACE_TEXT("stereotype"), // STEREO_ATTR
+ ACE_TEXT("namespace"), // NS
+ ACE_TEXT("owner"), // OWNER
+ ACE_TEXT("kind"), // KIND
+ ACE_TEXT("behavioralFeature"), // BFEATURE
+ ACE_TEXT("type"), // TYPE
+ ACE_TEXT("isAbstract"), // ABSTRACT
+ ACE_TEXT("multiplicity"), // MULT
+ ACE_TEXT("xmi.idref"), // IDREF
+ ACE_TEXT("ownerScope"), // OWNER_SCOPE
+ ACE_TEXT("changeable"), // CHANGEABLE
+
+ // ******* Attribute values
+ ACE_TEXT("Association"), // ASSOC
+ ACE_TEXT("Class"), // CLASS
+ ACE_TEXT("DataType"), // DATATYPE
+ ACE_TEXT("Package"), // PACKAGE
+ ACE_TEXT("null"), // NULL
+ ACE_TEXT("Attribute"), // ATTR
+ ACE_TEXT("public"), // PUBLIC
+ ACE_TEXT("private"), // _PRIVATE
+ ACE_TEXT("typeid"), // TYPEID
+ ACE_TEXT("raises"), // RAISES
+ ACE_TEXT("return"), // RETURN
+ ACE_TEXT("in"), // _IN
+ ACE_TEXT("inout"), // INOUT
+ ACE_TEXT("out"), // _OUT
+ ACE_TEXT("true"), // _TRUE
+ ACE_TEXT("false"), // _FALSE
+ ACE_TEXT("TRUE"), // CAPS_TRUE
+ ACE_TEXT("FALSE"), // CAPS_FALSE
+ ACE_TEXT("1..1"), // MULT_OTO
+ ACE_TEXT("0..1"), // MULT_ZTO
+ ACE_TEXT("IDLOrder"), // IDLORDER
+ ACE_TEXT("index"), // INDEX
+ ACE_TEXT("constraintUpperValue"), // CONST_UPPER
+ ACE_TEXT("*"), // UNBOUNDED_SEQ
+ ACE_TEXT("Case"), // CASE
+ ACE_TEXT("default"), // DEFAULT_UNION
+ ACE_TEXT("classifier"), // CLASSIFIER
+ ACE_TEXT("frozen"), // FROZEN
+ ACE_TEXT("initialValue"), // INIT_VAL
+
+ //******** Stereotypes
+ ACE_TEXT("CCMConsumes"), // ST_CONSUMES
+ ACE_TEXT("CORBAAnonymousSequence"), // ST_ANON_SEQ
+ ACE_TEXT("CORBAPrincipal"), // ST_PRINC
+ ACE_TEXT("CORBAUnion"), // ST_UNION
+ ACE_TEXT("CCMUses"), // ST_USES
+ ACE_TEXT("CORBASequence"), // ST_SEQ
+ ACE_TEXT("readonlyEnd"), // ST_ROE
+ ACE_TEXT("readonly"), // ST_RO
+ ACE_TEXT("CORBAObject"), // ST_OBJ
+ ACE_TEXT("CORBAstring"), // ST_STR
+ ACE_TEXT("CORBAlongdouble"), // ST_LD
+ ACE_TEXT("CORBAAnonymousArray"), // ST_ANON_ARR
+ ACE_TEXT("CORBAAlias"), // ST_ALIAS
+ ACE_TEXT("null"), // ST_NULL
+ ACE_TEXT("CORBAValue"), // ST_VALUE
+ ACE_TEXT("void"), // ST_VOID
+ ACE_TEXT("CORBAException"), // ST_EX
+ ACE_TEXT("CORBAoctet"), // ST_OCTET
+ ACE_TEXT("CCMManages"), // ST_MANAGES
+ ACE_TEXT("CORBAwstring"), // ST_WSTR
+ ACE_TEXT("CORBAfloat"), // ST_FLOAT
+ ACE_TEXT("CORBAEnum"), // ST_ENUM
+ ACE_TEXT("CORBAValueSupports"), // ST_VAL_SUP
+ ACE_TEXT("CORBAModule"), // ST_MODULE
+ ACE_TEXT("CCMHomeFinder"), // ST_HFINDER
+ ACE_TEXT("CORBAdouble"), // ST_DOUBLE
+ ACE_TEXT("CORBAlonglong"), // ST_LL
+ ACE_TEXT("CCMHomeFactory"), // ST_HFACT
+ ACE_TEXT("CORBAArray"), // ST_ARR
+ ACE_TEXT("CCMComponent"), // ST_COMP
+ ACE_TEXT("CORBAshort"), // ST_SHORT
+ ACE_TEXT("CORBATypedef"), // ST_TYPEDEF
+ ACE_TEXT("CORBAunsignedlonglong"), // ST_ULL
+ ACE_TEXT("CORBAlong"), // ST_LONG
+ ACE_TEXT("CORBATypeCode"), // ST_TC
+ ACE_TEXT("CCMHome"), // ST_HOME
+ ACE_TEXT("CORBAStruct"), // ST_STRUCT
+ ACE_TEXT("CORBAFixed"), // ST_FIXED
+ ACE_TEXT("CORBAunsignedshort"), // ST_US
+ ACE_TEXT("CCMEmits"), // ST_EMITS
+ ACE_TEXT("CORBABoxedValue"), // ST_BOXVALUE
+ ACE_TEXT("CORBAboolean"), // ST_BOOL
+ ACE_TEXT("CORBAConstant"), // ST_CONST
+ ACE_TEXT("CCMPublishes"), // ST_PUBLISH
+ ACE_TEXT("CORBAConstants"), // ST_CONSTANTS
+ ACE_TEXT("CCMProvides"), // ST_PROVIDES
+ ACE_TEXT("CORBAwchar"), // ST_WCHAR
+ ACE_TEXT("CORBAunsignedlong"), // ST_UL
+ ACE_TEXT("CORBAValueFactory"), // ST_VAL_FACT
+ ACE_TEXT("CCMEvent"), // ST_EVENT
+ ACE_TEXT("CORBAchar"), // ST_CHAR
+ ACE_TEXT("CORBAInterface"), // ST_INTF
+ ACE_TEXT("CCMPrimaryKey"), // ST_PRI_KEY
+ ACE_TEXT("CORBAany"), // ST_ANY
+ ACE_TEXT("CORBAnative") // ST_NATIVE
+ };
+ }
+}
diff --git a/modules/CIAO/tools/IDL3_to_XMI/Literals.h b/modules/CIAO/tools/IDL3_to_XMI/Literals.h
new file mode 100644
index 00000000000..e8c36180b30
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_XMI/Literals.h
@@ -0,0 +1,170 @@
+/**
+ * @file Literals.h
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ *
+ * $Id$
+ *
+ */
+
+#ifndef XMI_LITERALS_H
+#define XMI_LITERALS_H
+
+#include "ace/config-lite.h"
+
+namespace CIAO
+{
+ namespace XMI
+ {
+ enum LITERAL_T
+ {
+ VERSION_TAG,
+ VERSION_VALUE,
+ NS_TAG,
+ NS_VALUE,
+ HEADER_TAG,
+ DOC_TAG,
+ EXPORTER_TAG,
+ EXPORTER_VALUE,
+ CONTENT_TAG,
+ MODEL_TAG,
+ XMI_ID,
+ OWNEDELEMENT_TAG,
+ PACKAGE_TAG,
+ MODELELEMENT_TAG,
+ ME_TV_TAG,
+ ME_CONS_TAG,
+ CONSTRAINT,
+ TV_TAG,
+ STEREOTYPE_TAG,
+ CLASS_TAG,
+ OP_TAG,
+ BFP_TAG,
+ PARAM_TAG,
+ BF_RE_TAG,
+ EXCEPT_TAG,
+ ATTR_TAG,
+ ASSOC_TAG,
+ ASSOC_CONN_TAG,
+ ASSOC_END_TAG,
+ ASSOC_END_QUAL_TAG,
+ GEN_TAG,
+ GEN_SUB_TAG,
+ GEN_SUPER_TAG,
+ GEN_ELEMENT_TAG,
+ GEN_ELEMENT_GEN_TAG,
+ EXCEPTION_TAG,
+
+ // Attributes
+ TAG,
+ VALUE,
+ NAME,
+ BASEC,
+ VISIBIL,
+ STEREO_ATTR,
+ NS,
+ OWNER,
+ KIND,
+ BFEATURE,
+ TYPE,
+ ABSTRACT,
+ MULT,
+ IDREF,
+ OWNER_SCOPE,
+ CHANGEABLE,
+
+ // attribute values
+ ASSOC,
+ CLASS,
+ DATATYPE,
+ PACKAGE,
+ __NULL,
+ ATTR,
+ PUBLIC,
+ _PRIVATE,
+ TYPEID,
+ RAISES,
+ RETURN,
+ _IN,
+ INOUT,
+ _OUT,
+ _TRUE,
+ _FALSE,
+ CAPS_TRUE,
+ CAPS_FALSE,
+ MULT_OTO,
+ MULT_ZTO,
+ IDLORDER,
+ INDEX,
+ CONST_UPPER,
+ UNBOUNDED_SEQ,
+ CASE,
+ DEFAULT_UNION,
+ CLASSIFIER,
+ FROZEN,
+ INIT_VAL,
+
+ // Stereotypes
+ ST_CONSUMES,
+ ST_ANON_SEQ,
+ ST_PRINC,
+ ST_UNION,
+ ST_USES,
+ ST_SEQ,
+ ST_ROE,
+ ST_RO,
+ ST_OBJ,
+ ST_STR,
+ ST_LD,
+ ST_ANON_ARR,
+ ST_ALIAS,
+ ST_NULL,
+ ST_VALUE,
+ ST_VOID,
+ ST_EX,
+ ST_OCTET,
+ ST_MANAGES,
+ ST_WSTR,
+ ST_FLOAT,
+ ST_ENUM,
+ ST_VAL_SUP,
+ ST_MODULE,
+ ST_HFINDER,
+ ST_DOUBLE,
+ ST_LL,
+ ST_HFACT,
+ ST_ARR,
+ ST_COMP,
+ ST_SHORT,
+ ST_TYPEDEF,
+ ST_ULL,
+ ST_LONG,
+ ST_TC,
+ ST_HOME,
+ ST_STRUCT,
+ ST_FIXED,
+ ST_US,
+ ST_EMITS,
+ ST_BOXVALUE,
+ ST_BOOL,
+ ST_CONST,
+ ST_PUBLISH,
+ ST_CONSTANTS,
+ ST_PROVIDES,
+ ST_WCHAR,
+ ST_UL,
+ ST_VAL_FACT,
+ ST_EVENT,
+ ST_CHAR,
+ ST_INTF,
+ ST_PRI_KEY,
+ ST_ANY,
+ ST_NATIVE,
+
+ MAX_LITERAL
+ };
+
+ extern const ACE_TCHAR* const LITERALS[MAX_LITERAL];
+ }
+}
+
+#endif /* XMI_LITERALS_H */
diff --git a/modules/CIAO/tools/IDL3_to_XMI/be_extern.h b/modules/CIAO/tools/IDL3_to_XMI/be_extern.h
new file mode 100644
index 00000000000..532b5ebe64e
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_XMI/be_extern.h
@@ -0,0 +1,86 @@
+// This may look like C, but it's really -*- C++ -*-
+// $Id$
+/*
+
+COPYRIGHT
+
+Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United
+States of America. All Rights Reserved.
+
+This product is protected by copyright and distributed under the following
+license restricting its use.
+
+The Interface Definition Language Compiler Front End (CFE) is made
+available for your use provided that you include this license and copyright
+notice on all media and documentation and the software program in which
+this product is incorporated in whole or part. You may copy and extend
+functionality (but may not remove functionality) of the Interface
+Definition Language CFE without charge, but you are not authorized to
+license or distribute it to anyone else except as part of a product or
+program developed by you or with the express written consent of Sun
+Microsystems, Inc. ("Sun").
+
+The names of Sun Microsystems, Inc. and any of its subsidiaries or
+affiliates may not be used in advertising or publicity pertaining to
+distribution of Interface Definition Language CFE as permitted herein.
+
+This license is effective until terminated by Sun for failure to comply
+with this license. Upon termination, you shall destroy or return all code
+and documentation for the Interface Definition Language CFE.
+
+INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED AS IS WITH NO WARRANTIES OF
+ANY KIND INCLUDING THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS
+FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR ARISING FROM A COURSE OF
+DEALING, USAGE OR TRADE PRACTICE.
+
+INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT
+ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES
+TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT.
+
+SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH
+RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY
+INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF.
+
+IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES BE LIABLE FOR
+ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND CONSEQUENTIAL
+DAMAGES, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+Use, duplication, or disclosure by the government is subject to
+restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in
+Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR
+52.227-19.
+
+Sun, Sun Microsystems and the Sun logo are trademarks or registered
+trademarks of Sun Microsystems, Inc.
+
+SunSoft, Inc.
+2550 Garcia Avenue
+Mountain View, California 94043
+
+NOTE:
+
+SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are
+trademarks or registered trademarks of Sun Microsystems, Inc.
+
+*/
+
+#ifndef TAO_IFR_BE_EXTERN_H
+#define TAO_IFR_BE_EXTERN_H
+
+#include "CIAO_IDL3_TO_XMI_Export.h"
+#include "be_global.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+extern CIAO_IDL3_TO_XMI_Export BE_GlobalData *be_global;
+
+extern CIAO_IDL3_TO_XMI_Export int BE_init (int &, ACE_TCHAR*[]);
+extern CIAO_IDL3_TO_XMI_Export void BE_post_init (char *[], long);
+extern CIAO_IDL3_TO_XMI_Export void BE_version (void);
+extern CIAO_IDL3_TO_XMI_Export void BE_produce (void);
+extern CIAO_IDL3_TO_XMI_Export void BE_cleanup (void);
+extern CIAO_IDL3_TO_XMI_Export void BE_abort (void);
+
+#endif /* TAO_IFR_BE_EXTERN_H */
diff --git a/modules/CIAO/tools/IDL3_to_XMI/be_global.cpp b/modules/CIAO/tools/IDL3_to_XMI/be_global.cpp
new file mode 100644
index 00000000000..ceeb3f56ed6
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_XMI/be_global.cpp
@@ -0,0 +1,222 @@
+// $Id$
+
+// ============================================================================
+//
+//
+// = LIBRARY
+// TAO_IDL3_TO_IDL2L_BE_DLL
+//
+// = FILENAME
+// be_global.cpp
+//
+// = DESCRIPTION
+// Stores global data specific to the compiler back end.
+//
+// = AUTHOR
+// Jeff Parsons <j.parsons@vanderbilt.edu>
+//
+// ============================================================================
+
+#include "be_global.h"
+#include "ast_generator.h"
+#include "global_extern.h"
+#include "idl_defines.h"
+#include "ace/OS_NS_stdio.h"
+
+CIAO_IDL3_TO_XMI_Export BE_GlobalData *be_global = 0;
+
+BE_GlobalData::BE_GlobalData (void)
+ : ir_filter_ (false),
+ filename_ (0),
+ output_dir_ (0),
+ dtd_ ("XMI.dtd"),
+ local_only_(true)
+{
+}
+
+BE_GlobalData::~BE_GlobalData (void)
+{
+}
+
+bool
+BE_GlobalData::ir_filter (void) const
+{
+ return this->ir_filter_;
+}
+
+void
+BE_GlobalData::ir_filter (bool flag)
+{
+ this->ir_filter_ = flag;
+}
+
+const char *
+BE_GlobalData::filename (void) const
+{
+ return this->filename_;
+}
+
+void
+BE_GlobalData::filename (char *fname)
+{
+ this->filename_ = fname;
+}
+
+const char*
+BE_GlobalData::output_dir (void) const
+{
+ return this->output_dir_;
+}
+
+void
+BE_GlobalData::output_dir (const char* s)
+{
+ delete [] this->output_dir_;
+ this->output_dir_ = ACE::strnew (s);
+}
+
+const char*
+BE_GlobalData::dtd (void) const
+{
+ return this->dtd_.c_str ();
+}
+
+void
+BE_GlobalData::dtd (const char* s)
+{
+ this->dtd_ = s;
+}
+
+bool
+BE_GlobalData::local_only (void) const
+{
+ return this->local_only_;
+}
+
+void
+BE_GlobalData::local_only (bool flag)
+{
+ this->local_only_ = flag;
+}
+
+void
+BE_GlobalData::parse_args (long &i, char **av)
+{
+ switch (av[i][1])
+ {
+ // Directory where the generated file is to
+ // be kept. Default is the current directory from which
+ // <tao_idl3_to_idl2> is called.
+ case 'f':
+ be_global->ir_filter (true);
+ break;
+
+ case 'o':
+ switch (av[i][2])
+ {
+ case 'd':
+ if (av[i][3] == '\0')
+ {
+ be_global->output_dir (av [i + 1]);
+ i++;
+ }
+ else
+ {
+ be_global->output_dir (av[i] + 3);
+ }
+ break;
+
+ case 'f':
+ if (av[i][3] == '\0')
+ {
+ be_global->filename (av [i + 1]);
+ i++;
+ }
+ else
+ {
+ be_global->filename (av[i] + 3);
+ }
+ break;
+ default:
+ idl_global->set_compile_flags (idl_global->compile_flags ()
+ | IDL_CF_ONLY_USAGE);
+ }
+ break;
+
+ case 'x':
+ if (av[i][3] == '\0')
+ {
+ be_global->dtd (av [i + 1]);
+ ++i;
+ }
+ else
+ {
+ be_global->dtd (av[i] + 3);
+ }
+ break;
+
+ case 'n':
+ be_global->local_only (false);
+ break;
+
+ default:
+ ACE_ERROR ((
+ LM_ERROR,
+ ACE_TEXT ("IDL: I don't understand the '%s' option\n"),
+ av[i]));
+
+ idl_global->set_compile_flags (idl_global->compile_flags ()
+ | IDL_CF_ONLY_USAGE);
+ break;
+ }
+}
+
+// Prepare an argument for a BE
+void
+BE_GlobalData::prep_be_arg (char *)
+{
+}
+
+void
+BE_GlobalData::arg_post_proc (void)
+{
+}
+
+void
+BE_GlobalData::usage (void) const
+{
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT (" -f\t\t\tsimulates IFR type filtering on included types\n")
+ ));
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT (" -od <dir>\t\toutput directory for the generated file ")
+ ACE_TEXT ("(default is current directory)\n")
+ ));
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT (" -of <dir>\t\toutput file for the generated XMI ")
+ ACE_TEXT ("(default for example.idl is example.xmi)\n")
+ ));
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT (" -xd <dtd_file>\t\tfull path to XMI dtd file to include in generated file ")
+ ACE_TEXT ("(default is XMI.dtd)\n")
+ ));
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT (" -n\t\t\texports XMI for non-local entities\n")
+ ));
+}
+
+AST_Generator *
+BE_GlobalData::generator_init (void)
+{
+ AST_Generator *gen = 0;
+ ACE_NEW_RETURN (gen,
+ AST_Generator,
+ 0);
+ return gen;
+}
+
+
+void
+BE_GlobalData::destroy (void)
+{
+}
diff --git a/modules/CIAO/tools/IDL3_to_XMI/be_global.h b/modules/CIAO/tools/IDL3_to_XMI/be_global.h
new file mode 100644
index 00000000000..2092587d94a
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_XMI/be_global.h
@@ -0,0 +1,103 @@
+/* -*- c++ -*- */
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO_IFR_BE_DLL
+//
+// = FILENAME
+// be_global.h
+//
+// = DESCRIPTION
+// Header file for class containing compiler back end global data.
+//
+// = AUTHOR
+// Jeff Parsons <parsons@cs.wustl.edu>
+//
+// ============================================================================
+
+#ifndef TAO_IFR_BE_GLOBAL_H
+#define TAO_IFR_BE_GLOBAL_H
+
+#include "CIAO_IDL3_TO_XMI_Export.h"
+#include "idl_defines.h"
+
+#include "ace/SString.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+class AST_Generator;
+
+// Defines a class containing all back end global data.
+
+class CIAO_IDL3_TO_XMI_Export BE_GlobalData
+{
+public:
+ // = TITLE
+ // BE_GlobalData
+ //
+ // = DESCRIPTION
+ // Storage of global data specific to the compiler back end
+ //
+ BE_GlobalData (void);
+ // Constructor.
+
+ virtual ~BE_GlobalData (void);
+ // Destructor.
+
+ // Data accessors.
+ bool ir_filter (void) const;
+ void ir_filter (bool flag);
+
+ const char *filename (void) const;
+ void filename (char *fname);
+
+ const char* output_dir (void) const;
+ void output_dir (const char* s);
+
+ const char * dtd (void) const;
+ void dtd (const char *s);
+
+ bool local_only (void) const;
+ void local_only (bool);
+
+ void parse_args (long &i, char **av);
+ // Parse args that affect the backend.
+
+ void prep_be_arg (char *s);
+ // Special BE arg call factored out of DRV_args.
+
+ void arg_post_proc (void);
+ // Checks made after parsing args.
+
+ void usage (void) const;
+ // Usage message for backend options.
+
+ AST_Generator *generator_init (void);
+ // Create an AST node generator.
+
+ void destroy (void);
+ // Cleanup.
+
+private:
+ bool ir_filter_;
+
+ char *filename_;
+ // Name of the IDL file we are processing.
+
+ char *output_dir_;
+ // Directory where the generated file is to be
+ // kept. Default value is 0 for this string which means the current
+ // directory from which the <tao_picml> is called.
+
+ /// full path to dtd to be used.
+ ACE_CString dtd_;
+
+ /// generate xmi for local entities only
+ bool local_only_;
+};
+
+#endif /* TAO_IFR_BE_GLOBAL_H */
diff --git a/modules/CIAO/tools/IDL3_to_XMI/be_helper.cpp b/modules/CIAO/tools/IDL3_to_XMI/be_helper.cpp
new file mode 100644
index 00000000000..4a7b28096c6
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_XMI/be_helper.cpp
@@ -0,0 +1,438 @@
+// $Id$
+
+// ============================================================================
+//
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// be_helper.cpp
+//
+// = DESCRIPTION
+// Provides helper classes to print generated code to the output
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// Improvements by Carlos O'Ryan
+//
+// ============================================================================
+
+#include "be_helper.h"
+#include "idl_defines.h"
+#include "ace/OS_NS_stdio.h"
+#include "ace/OS_NS_string.h"
+#include "ace/os_include/os_ctype.h"
+
+ACE_RCSID (be,
+ be_helper,
+ "$Id$")
+
+static const char copyright[] =
+" <--\n"
+" -*- XML -*-\n"
+"\n"
+" $I" "d$\n\n"
+" **** Code generated by the The ACE ORB (TAO) IDL Compiler ****\n"
+" TAO and the TAO IDL Compiler have been developed by:\n"
+" Center for Distributed Object Computing\n"
+" Washington University\n"
+" St. Louis, MO\n"
+" USA\n"
+" http:www.cs.wustl.edu/~schmidt/doc-center.html\n"
+" and\n"
+" Distributed Object Computing Laboratory\n"
+" University of California at Irvine\n"
+" Irvine, CA\n"
+" USA\n"
+" http:doc.ece.uci.edu/\n"
+" and\n"
+" Institute for Software Integrated Systems\n"
+" Vanderbilt University\n"
+" Nashville, TN\n"
+" USA\n"
+" http:www.isis.vanderbilt.edu/\n"
+"\n"
+" Information about TAO is available at:\n"
+" http:www.cs.wustl.edu/~schmidt/TAO.html\n"
+"-->";
+
+TAO_NL::TAO_NL (void)
+{
+}
+
+TAO_INDENT::TAO_INDENT (int do_now)
+ : do_now_ (do_now)
+{
+}
+
+TAO_UNINDENT::TAO_UNINDENT (int do_now)
+ : do_now_ (do_now)
+{
+}
+
+const TAO_NL be_nl;
+const TAO_INDENT be_idt;
+const TAO_INDENT be_idt_nl (1);
+const TAO_UNINDENT be_uidt;
+const TAO_UNINDENT be_uidt_nl (1);
+
+// Methods of the TAO_OutStream class.
+
+TAO_OutStream::TAO_OutStream (void)
+ : fp_ (0),
+ indent_level_ (0)
+{
+}
+
+TAO_OutStream::~TAO_OutStream (void)
+{
+ // Close the underlying I/O handle only if it exists.
+ if (this->fp_ != 0)
+ {
+ ACE_OS::fclose (this->fp_);
+ this->fp_ = 0;
+ }
+
+ indent_level_ = 0;
+}
+
+int
+TAO_OutStream::open (const char *fname)
+{
+ if (fname != 0)
+ {
+ // File name exists, open an I/O file handle.
+ this->fp_ = ACE_OS::fopen (fname, "w");
+
+ if (this->fp_ != 0)
+ {
+ // Put the copyright notice.
+ ACE_OS::fprintf (this->fp_,
+ "%s\n",
+ copyright);
+
+ ACE_OS::fflush (this->fp_);
+
+ return 0;
+ }
+ else
+ {
+ return -1;
+ }
+ }
+ else
+ {
+ return -1;
+ }
+}
+
+// Return the underlying lowlevel file pointer.
+// indentation.
+FILE *
+TAO_OutStream::file (void)
+{
+ return this->fp_;
+}
+
+int
+TAO_OutStream::incr_indent (unsigned short flag)
+{
+ indent_level_++;
+
+ if (flag != 0)
+ {
+ return this->indent ();
+ }
+ else
+ {
+ // Do not indent output.
+ return 0;
+ }
+}
+
+// Indentation
+int
+TAO_OutStream::decr_indent (unsigned short flag)
+{
+ this->indent_level_--;
+ // Just in case somebody gets "unindent happy".
+ if (this->indent_level_ < 0)
+ {
+ // ACE_DEBUG ((LM_DEBUG, "negative indentation?\n"));
+ this->indent_level_ = 0;
+ }
+ if (flag != 0)
+ {
+ return this->indent ();
+ }
+ else
+ {
+ // Do not indent output.
+ return 0;
+ }
+}
+
+int
+TAO_OutStream::reset (void)
+{
+ this->indent_level_ = 0;
+ return 0;
+}
+
+// Indented print.
+int
+TAO_OutStream::indent (void)
+{
+ // Based on the current indentation level, leave appropriate number of blank
+ // spaces in the output.
+ if (this->indent_level_ > 0)
+ {
+ for (int i = 0; i < this->indent_level_; i++)
+ {
+ ACE_OS::fprintf (this->fp_, " ");
+ ACE_OS::fflush (this->fp_);
+ }
+ }
+
+ return 0;
+}
+
+int
+TAO_OutStream::nl (void)
+{
+ ACE_OS::fprintf (this->fp_, "\n");
+ this->indent ();
+ return 0;
+}
+
+// Printf style variable argument print.
+int
+TAO_OutStream::print (const char *format, ...)
+{
+ int result = 0;
+ va_list ap;
+ va_start (ap, format);
+ ACE_OSCALL (::vfprintf (this->fp_,
+ format,
+ ap),
+ int,
+ -1,
+ result);
+
+ ACE_OS::fflush (this->fp_);
+ va_end (ap);
+
+ return result;
+}
+
+void
+TAO_OutStream::gen_ifndef_string (const char *fname,
+ const char *prefix,
+ const char *suffix)
+{
+ static char macro_name [NAMEBUFSIZE];
+
+ ACE_OS::memset (macro_name,
+ '\0',
+ NAMEBUFSIZE);
+
+ const char *extension = ACE_OS::strrchr (fname, '.');
+
+ if (extension == 0)
+ {
+ // File seems to have no extension, so let us take the name
+ // as it is.
+ extension = fname;
+ }
+
+ ACE_OS::sprintf (macro_name, prefix);
+
+ size_t offset = ACE_OS::strlen (prefix);
+
+ // Convert letters in fname to upper case.
+ for (int i = 0; i < (extension - fname); i++)
+ {
+ if (isalpha (fname [i]))
+ {
+ macro_name[i + offset] = (char) toupper (fname [i]);
+ }
+ else if (isdigit (fname [i]))
+ {
+ macro_name[i + offset] = fname[i];
+ }
+ else
+ {
+ macro_name[i + offset] = '_';
+ }
+ }
+
+ ACE_OS::strcat (macro_name, suffix);
+
+ // Generate the #ifndef ... #define statements.
+ this->print ("#ifndef %s\n",
+ macro_name);
+ this->print ("#define %s",
+ macro_name);
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (const char *str)
+{
+ ACE_OS::fprintf (this->fp_, "%s", str);
+ ACE_OS::fflush (this->fp_);
+ return *this;
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (const ACE_CDR::UShort num)
+{
+ ACE_OS::fprintf (this->fp_,
+ "%hu",
+ num);
+
+ ACE_OS::fflush (this->fp_);
+
+ return *this;
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (const ACE_CDR::Short num)
+{
+ ACE_OS::fprintf (this->fp_,
+ "%hd",
+ num);
+
+ ACE_OS::fflush (this->fp_);
+
+ return *this;
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (const ACE_CDR::ULong num)
+{
+ ACE_OS::fprintf (this->fp_,
+ "%lu",
+ (unsigned long) num);
+
+ ACE_OS::fflush (this->fp_);
+
+ return *this;
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (const ACE_CDR::Long num)
+{
+ ACE_OS::fprintf (this->fp_,
+ "%ld",
+ (long) num);
+
+ ACE_OS::fflush (this->fp_);
+
+ return *this;
+}
+
+#if defined (ACE_WIN64)
+TAO_OutStream &
+TAO_OutStream::operator<< (const ACE_CDR::ULongLong num)
+{
+ ACE_OS::fprintf (this->fp_,
+ ACE_UINT64_FORMAT_SPECIFIER,
+ num);
+
+ ACE_OS::fflush (this->fp_);
+
+ return *this;
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (const ACE_CDR::LongLong num)
+{
+ ACE_OS::fprintf (this->fp_,
+ ACE_INT64_FORMAT_SPECIFIER,
+ num);
+
+ ACE_OS::fflush (this->fp_);
+
+ return *this;
+}
+#endif /* ACE_WIN64 */
+
+TAO_OutStream &
+TAO_OutStream::operator<< (const unsigned long num)
+{
+ ACE_OS::fprintf (this->fp_,
+ "%lu",
+ num);
+
+ ACE_OS::fflush (this->fp_);
+
+ return *this;
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (const long num)
+{
+ ACE_OS::fprintf (this->fp_,
+ "%ld",
+ num);
+
+ ACE_OS::fflush (this->fp_);
+
+ return *this;
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (const TAO_NL&)
+{
+ ACE_OS::fprintf (this->fp_ ,
+ "\n");
+ this->indent ();
+
+ return *this;
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (const TAO_INDENT& i)
+{
+ this->incr_indent (0);
+
+ if (i.do_now_)
+ {
+ this->nl ();
+ }
+
+ return *this;
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (const TAO_UNINDENT& i)
+{
+ this->decr_indent (0);
+
+ if (i.do_now_)
+ {
+ this->nl ();
+ }
+
+ return *this;
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (Identifier *id)
+{
+ return this->print (id);
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (UTL_IdList *id)
+{
+ return this->print (id);
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (AST_Expression *expr)
+{
+ return this->print (expr);
+}
diff --git a/modules/CIAO/tools/IDL3_to_XMI/be_helper.h b/modules/CIAO/tools/IDL3_to_XMI/be_helper.h
new file mode 100644
index 00000000000..d8bbb3b1766
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_XMI/be_helper.h
@@ -0,0 +1,176 @@
+/* -*- c++ -*- */
+// $Id$
+
+/**
+ * @file be_helper.h
+ * @author Aniruddha Gokhale
+ * @author Carlos O'Ryan
+ *
+ * Defines the abstract class for outputting the C++ mapping. This is a
+ * helper class to the singleton TAO_CodeGen class
+ */
+
+#ifndef TAO_BE_OUTSTRM_H
+#define TAO_BE_OUTSTRM_H
+
+#include "ace/CDR_Base.h"
+
+class Identifier;
+class UTL_IdList;
+class AST_Expression;
+
+// a dummy structure to inform TAO_OutStream's << operator to put a newline
+// and use the current indentation for the succeeding line
+struct TAO_NL
+{
+public:
+ TAO_NL (void);
+};
+
+struct TAO_INDENT
+{
+ // = TITLE
+ // Operates like a manipulator, increasing the indentation level.
+ //
+ // = DESCRIPTION
+ // Increase the indentation level, if the "do_now" parameter is
+ // not zero then the <indent> method is called on the stream.
+ //
+ TAO_INDENT (int do_now = 0);
+
+ const int do_now_;
+};
+
+struct TAO_UNINDENT
+{
+ // = TITLE
+ // Operates like a manipulator, decreasing the indentation level.
+ //
+ // = DESCRIPTION
+ // Decrease the indentation level, if the "do_now" parameter is
+ // not zero then the <indent> method is called on the stream.
+ //
+ TAO_UNINDENT (int do_now = 0);
+
+ const int do_now_;
+};
+
+extern const TAO_NL be_nl;
+extern const TAO_INDENT be_idt;
+extern const TAO_INDENT be_idt_nl;
+extern const TAO_UNINDENT be_uidt;
+extern const TAO_UNINDENT be_uidt_nl;
+
+class TAO_OutStream
+{
+ // =TITLE
+ // TAO_OutStream
+ //
+ // =DESCRIPTION
+ // Defines an interface by which the backend code generator can
+ // print its output to the underlying I/O handle. This is a
+ // helper class that will be used by the TAO_CodeGen
+ // class. However, this is an abstract class and classes that
+ // understand specific front ends must derive from this class.
+public:
+ TAO_OutStream (void);
+ // constructor.
+
+ virtual ~TAO_OutStream (void);
+ // destructor.
+
+ int open (const char *fname);
+ // open the underlying low-level handle for output.
+
+
+ FILE *file (void);
+ // Return the underlying lowlevel file pointer.
+
+ int incr_indent (unsigned short flag = 1);
+ // increment the indentation level and by default actually indent the output
+ // accordingly
+
+ int decr_indent (unsigned short flag = 1);
+ // decrease the indentation level and by default actually indent the output
+ // accordingly
+
+ int reset (void);
+ // reset indentation level to 0
+
+ int indent (void);
+ // indent starting next line
+
+ int nl (void);
+ // put a newline and indent on the next line
+
+ int print (const char *format, ...);
+ // "printf" style variable argument print
+
+ void gen_ifndef_string (const char *fname,
+ const char *prefix,
+ const char *suffix);
+
+ // =overloaded operators
+
+ TAO_OutStream &operator<< (const char *str);
+ // output the char string and return a reference to ourselves
+
+ TAO_OutStream &operator<< (const ACE_CDR::UShort num);
+ // output the integer and return a reference to ourselves
+
+ TAO_OutStream &operator<< (const ACE_CDR::Short num);
+ // output the integer and return a reference to ourselves
+
+ TAO_OutStream &operator<< (const ACE_CDR::ULong num);
+ // output the integer and return a reference to ourselves
+
+ TAO_OutStream &operator<< (const ACE_CDR::Long num);
+ // output the integer and return a reference to ourselves
+
+#if defined (ACE_WIN64)
+ TAO_OutStream &operator<< (const ACE_CDR::ULongLong num);
+ // output the integer and return a reference to ourselves
+
+ TAO_OutStream &operator<< (const ACE_CDR::LongLong num);
+ // output the integer and return a reference to ourselves
+#endif /* ACE_WIN64 */
+
+ TAO_OutStream &operator<< (const unsigned long num);
+ // output the integer and return a reference to ourselves
+
+ TAO_OutStream &operator<< (const long num);
+ // output the integer and return a reference to ourselves
+
+ // = MANIPULATORS
+
+ TAO_OutStream &operator<< (const TAO_NL& nl);
+ TAO_OutStream &operator<< (const TAO_INDENT& i);
+ TAO_OutStream &operator<< (const TAO_UNINDENT& i);
+
+ // The following will be provided by specialized classes
+
+ TAO_OutStream &operator<< (Identifier *id);
+ // output an Identifier node
+
+ TAO_OutStream &operator<< (UTL_IdList *idl);
+ // output a scoped name
+
+ TAO_OutStream &operator<< (AST_Expression *expr);
+ // output an AST_Expression node
+
+ // provided by specialized classes
+ virtual TAO_OutStream &print (Identifier *id) = 0;
+
+ virtual TAO_OutStream &print (UTL_IdList *idl) = 0;
+
+ virtual TAO_OutStream &print (AST_Expression *idl) = 0;
+
+protected:
+ FILE *fp_;
+ // the underlying low-level I/O handle
+
+ int indent_level_;
+ // indentation level
+};
+
+#endif // if !defined
diff --git a/modules/CIAO/tools/IDL3_to_XMI/be_init.cpp b/modules/CIAO/tools/IDL3_to_XMI/be_init.cpp
new file mode 100644
index 00000000000..7863fcae9d8
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_XMI/be_init.cpp
@@ -0,0 +1,31 @@
+// $Id$
+
+#include "global_extern.h"
+#include "be_extern.h"
+#include "../../ciao/Version.h"
+
+CIAO_IDL3_TO_XMI_Export void
+BE_version (void)
+{
+ ACE_DEBUG ((LM_DEBUG,
+ "%s %s\n",
+ ACE_TEXT ("TAO_ID3_TO_IDL2_BE, version"),
+ ACE_TEXT (CIAO_VERSION)));
+}
+
+CIAO_IDL3_TO_XMI_Export int
+BE_init (int & /* argc */, ACE_TCHAR * /* argv */ [])
+{
+ // Initialize BE global data object.
+ ACE_NEW_RETURN (be_global,
+ BE_GlobalData,
+ -1);
+
+ idl_global->pass_orb_idl (true);
+ return 0;
+}
+
+CIAO_IDL3_TO_XMI_Export void
+BE_post_init (char * /* files */ [], long /* nfiles */)
+{
+}
diff --git a/modules/CIAO/tools/IDL3_to_XMI/be_produce.cpp b/modules/CIAO/tools/IDL3_to_XMI/be_produce.cpp
new file mode 100644
index 00000000000..7a66096bd32
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_XMI/be_produce.cpp
@@ -0,0 +1,139 @@
+// $Id$
+
+/*
+
+COPYRIGHT
+
+Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United
+States of America. All Rights Reserved.
+
+This product is protected by copyright and distributed under the following
+license restricting its use.
+
+The Interface Definition Language Compiler Front End (CFE) is made
+available for your use provided that you include this license and copyright
+notice on all media and documentation and the software program in which
+this product is incorporated in whole or part. You may copy and extend
+functionality (but may not remove functionality) of the Interface
+Definition Language CFE without charge, but you are not authorized to
+license or distribute it to anyone else except as part of a product or
+program developed by you or with the express written consent of Sun
+Microsystems, Inc. ("Sun").
+
+The names of Sun Microsystems, Inc. and any of its subsidiaries or
+affiliates may not be used in advertising or publicity pertaining to
+distribution of Interface Definition Language CFE as permitted herein.
+
+This license is effective until terminated by Sun for failure to comply
+with this license. Upon termination, you shall destroy or return all code
+and documentation for the Interface Definition Language CFE.
+
+INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED AS IS WITH NO WARRANTIES OF
+ANY KIND INCLUDING THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS
+FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR ARISING FROM A COURSE OF
+DEALING, USAGE OR TRADE PRACTICE.
+
+INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT
+ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES
+TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT.
+
+SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH
+RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY
+INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF.
+
+IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES BE LIABLE FOR
+ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND CONSEQUENTIAL
+DAMAGES, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+Use, duplication, or disclosure by the government is subject to
+restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in
+Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR
+52.227-19.
+
+Sun, Sun Microsystems and the Sun logo are trademarks or registered
+trademarks of Sun Microsystems, Inc.
+
+SunSoft, Inc.
+2550 Garcia Avenue
+Mountain View, California 94043
+
+NOTE:
+
+SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are
+trademarks or registered trademarks of Sun Microsystems, Inc.
+
+ */
+
+#include "CIAO_IDL3_TO_XMI_Export.h"
+#include "global_extern.h"
+#include "be_extern.h"
+#include "fe_extern.h"
+#include "ast_root.h"
+#include "IDL3_to_XMI_visitor.h"
+#include "IR_Simulator_visitor.h"
+#include <xercesc/util/PlatformUtils.hpp>
+
+// Clean up before exit, whether successful or not.
+CIAO_IDL3_TO_XMI_Export void
+BE_cleanup (void)
+{
+ idl_global->destroy ();
+}
+
+// Abort this run of the BE.
+CIAO_IDL3_TO_XMI_Export void
+BE_abort (void)
+{
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Fatal Error - Aborting\n")));
+
+ // BE_cleanup will be called after the exception is caught.
+ BE_cleanup ();
+}
+
+// Do the work of this BE. This is the starting point for code generation.
+CIAO_IDL3_TO_XMI_Export void
+BE_produce (void)
+{
+ // Get the root node.
+ AST_Decl *d = idl_global->root ();
+ AST_Root *ast_root = AST_Root::narrow_from_decl (d);
+
+ if (ast_root == 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%N:%l) BE_produce - ")
+ ACE_TEXT ("No Root\n")));
+ BE_abort ();
+ }
+
+ xercesc::XMLPlatformUtils::Initialize ();
+
+ if (be_global->ir_filter ())
+ {
+ CIAO::XMI::ir_simulator_visitor visitor;
+
+ if (visitor.visit_root (ast_root) == -1)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("error: an error occured in the ir_simulator visitor.")));
+ xercesc::XMLPlatformUtils::Terminate ();
+ BE_cleanup ();
+ return;
+ }
+ }
+
+ CIAO::XMI::idl3_to_xmi_visitor visitor (be_global->ir_filter ());
+
+ if (visitor.visit_root (ast_root) == -1)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%N:%l) BE_produce -")
+ ACE_TEXT (" failed to accept visitor\n")));
+ }
+
+ xercesc::XMLPlatformUtils::Terminate ();
+
+ // Clean up.
+ BE_cleanup ();
+}
diff --git a/modules/CIAO/tools/IDL3_to_XMI/be_sunsoft.cpp b/modules/CIAO/tools/IDL3_to_XMI/be_sunsoft.cpp
new file mode 100644
index 00000000000..30126f74451
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_XMI/be_sunsoft.cpp
@@ -0,0 +1,193 @@
+// $Id$
+
+#include "be_sunsoft.h"
+#include "ast_expression.h"
+#include "utl_identifier.h"
+#include "utl_idlist.h"
+#include "utl_string.h"
+#include "ace/OS_NS_stdio.h"
+#include "ace/OS_NS_string.h"
+#include "ace/OS_NS_ctype.h"
+
+ACE_RCSID (be,
+ be_sunsoft,
+ "$Id$")
+
+TAO_SunSoft_OutStream::TAO_SunSoft_OutStream (void)
+ : TAO_OutStream ()
+{
+}
+
+TAO_SunSoft_OutStream::~TAO_SunSoft_OutStream (void)
+{
+}
+
+TAO_OutStream &
+TAO_SunSoft_OutStream::print (Identifier *id)
+{
+ ACE_OS::fprintf (this->fp_,
+ id->get_string ());
+
+ return *this;
+}
+
+TAO_OutStream &
+TAO_SunSoft_OutStream::print (UTL_IdList *idl)
+{
+ long first = true;
+ long second = false;
+ Identifier *id = 0;
+
+ for (UTL_IdListActiveIterator i (idl); !i.is_done (); i.next ())
+ {
+ if (!first)
+ {
+ *this << "::";
+ }
+ else if (second)
+ {
+ first = second = false;
+ }
+
+ // Print the identifier.
+ id = i.item ();
+ *this << id;
+
+ if (first)
+ {
+ if (ACE_OS::strcmp (id->get_string (), "") != 0)
+ {
+ // Does not start with a "".
+ first = false;
+ }
+ else
+ {
+ second = true;
+ }
+ }
+ }
+
+ return *this;
+}
+
+TAO_OutStream&
+TAO_SunSoft_OutStream::print (AST_Expression *expr)
+{
+ AST_Expression::AST_ExprValue *ev = expr->ev ();
+
+ if (ev)
+ {
+ switch (ev->et)
+ {
+ case AST_Expression::EV_short:
+ this->TAO_OutStream::print (ACE_INT32_FORMAT_SPECIFIER_ASCII, ev->u.sval);
+ break;
+ case AST_Expression::EV_ushort:
+ this->TAO_OutStream::print (ACE_INT32_FORMAT_SPECIFIER_ASCII "%c", ev->u.usval, 'U');
+ break;
+ case AST_Expression::EV_long:
+ this->TAO_OutStream::print (ACE_INT32_FORMAT_SPECIFIER_ASCII, ev->u.lval);
+ break;
+ case AST_Expression::EV_ulong:
+ this->TAO_OutStream::print (ACE_UINT32_FORMAT_SPECIFIER_ASCII "%c", ev->u.ulval, 'U');
+ break;
+ // The ACE_LACKS_LONGLONG_T guards have been removed around
+ // the next 2 cases since the macros now used should work
+ // whether native 64-bit integers are defined or not.
+ case AST_Expression::EV_longlong:
+ this->TAO_OutStream::print ("ACE_INT64_LITERAL (");
+ this->TAO_OutStream::print (ACE_INT64_FORMAT_SPECIFIER_ASCII,
+ ev->u.llval);
+ this->TAO_OutStream::print (")");
+ break;
+ case AST_Expression::EV_ulonglong:
+ this->TAO_OutStream::print ("ACE_UINT64_LITERAL (");
+ this->TAO_OutStream::print (ACE_UINT64_FORMAT_SPECIFIER_ASCII,
+ ev->u.ullval);
+ this->TAO_OutStream::print (")");
+ break;
+ case AST_Expression::EV_float:
+ this->TAO_OutStream::print ("%f%c", ev->u.fval, 'F');
+ break;
+ case AST_Expression::EV_double:
+ this->TAO_OutStream::print ("%24.16G", ev->u.dval);
+ break;
+ case AST_Expression::EV_longdouble:
+ break;
+ case AST_Expression::EV_char:
+ // isprint() sees \ and ' as printable characters
+ // so we have to test for them first.
+ if (ev->u.cval == '\\')
+ this->TAO_OutStream::print ("'\\\\'");
+ else if (ev->u.cval == '\'')
+ this->TAO_OutStream::print ("'\\''");
+
+ // This handles hex and octal escape sequences
+ // that would print out either as weird characters
+ // or as an unsigned number too large for a char.
+ else if ((unsigned char) ev->u.cval > ACE_CHAR_MAX)
+ this->TAO_OutStream::print ("%hd", ev->u.cval);
+ else if (ACE_OS::ace_isprint (ev->u.cval))
+ this->TAO_OutStream::print ("'%c'", ev->u.cval);
+ else if (ACE_OS::ace_iscntrl (ev->u.cval))
+ switch (ev->u.cval)
+ {
+ case '\n':
+ this->TAO_OutStream::print ("'\\n'");
+ break;
+ case '\t':
+ this->TAO_OutStream::print ("'\\t'");
+ break;
+ case '\r':
+ this->TAO_OutStream::print ("'\\r'");
+ break;
+ case '\v':
+ this->TAO_OutStream::print ("'\\v'");
+ break;
+ case '\f':
+ this->TAO_OutStream::print ("'\\f'");
+ break;
+ case '\b':
+ this->TAO_OutStream::print ("'\\b'");
+ break;
+ case '\a':
+ this->TAO_OutStream::print ("'\\a'");
+ break;
+ case '\?':
+ this->TAO_OutStream::print ("'?'");
+ break;
+ default:
+ this->TAO_OutStream::print ("'\\x%x'", ev->u.cval);
+ }
+ else
+ this->TAO_OutStream::print ("'\\x%x'", ev->u.cval);
+ break;
+ case AST_Expression::EV_wchar:
+ this->TAO_OutStream::print ("L'%lc'", ev->u.wcval);
+ break;
+ case AST_Expression::EV_octet:
+ this->TAO_OutStream::print ("%d", ev->u.oval);
+ break;
+ case AST_Expression::EV_bool:
+ this->TAO_OutStream::print ("%s", ev->u.bval ? "true" : "false");
+ break;
+ case AST_Expression::EV_string:
+ this->TAO_OutStream::print ("\"%s\"", ev->u.strval->get_string ());
+ break;
+ case AST_Expression::EV_wstring:
+ this->TAO_OutStream::print ("L\"%s\"", ev->u.wstrval);
+ break;
+ case AST_Expression::EV_enum:
+ this->print (expr->n ());
+ break;
+ default:
+ break;
+ }
+ }
+ else
+ {
+ // XXXASG: need to add code here
+ }
+
+ return *this;
+}
diff --git a/modules/CIAO/tools/IDL3_to_XMI/be_sunsoft.h b/modules/CIAO/tools/IDL3_to_XMI/be_sunsoft.h
new file mode 100644
index 00000000000..5aef8a66d4d
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_XMI/be_sunsoft.h
@@ -0,0 +1,39 @@
+/* -*- c++ -*- */
+// $Id$
+
+/**
+ * @file be_sunsoft.h
+ *
+ * Sunsoft backend output generation.
+ */
+
+#ifndef TAO_BE_HELPER_H
+#define TAO_BE_HELPER_H
+
+#include "be_helper.h"
+
+class TAO_SunSoft_OutStream : public TAO_OutStream
+{
+ // =TITLE
+ // TAO_SunSoft_OutStream
+ // =DESCRIPTION
+ // Backend specific to SunSoft AST nodes
+public:
+ TAO_SunSoft_OutStream (void);
+ // constructor
+
+ ~TAO_SunSoft_OutStream (void);
+ // destuctor
+
+ virtual TAO_OutStream &print (Identifier *id);
+ // output the SunSoft IDL Identifier Node
+
+ virtual TAO_OutStream &print (UTL_IdList *idl);
+ // output the SunSoft IDL UTL_IdList Node which is usually used to maintain a
+ // scoped name
+
+ virtual TAO_OutStream &print (AST_Expression *expr);
+ // output the contents of the AST_Expression node
+};
+
+#endif // if !defined
diff --git a/modules/CIAO/tools/IDL3_to_XMI/identifier_helper.cpp b/modules/CIAO/tools/IDL3_to_XMI/identifier_helper.cpp
new file mode 100644
index 00000000000..dc540554f18
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_XMI/identifier_helper.cpp
@@ -0,0 +1,115 @@
+/* -*- c++ -*- */
+// $Id$
+
+#include "identifier_helper.h"
+#include "utl_identifier.h"
+#include "utl_string.h"
+#include "global_extern.h"
+
+Identifier *
+IdentifierHelper::original_local_name (Identifier * local_name)
+{
+ Identifier * id = 0;
+
+ // Remove _cxx_ if it is present.
+ if (ACE_OS::strstr (local_name->get_string (),
+ "_cxx_")
+ == local_name->get_string ())
+ {
+ // CString class is good to do this stuff.
+ ACE_CString name_str (local_name->get_string ());
+
+ // Remove _cxx_.
+ name_str = name_str.substr (ACE_OS::strlen ("_cxx_"));
+
+ // Assign to the Identifier variable.
+ ACE_NEW_RETURN (id,
+ Identifier (name_str.c_str ()),
+ 0);
+ }
+ else
+ {
+ id = local_name->copy ();
+ }
+
+ return id;
+}
+
+
+ACE_CString
+IdentifierHelper::orig_sn (UTL_IdList * sn, bool appended_to)
+{
+ ACE_CString retval;
+ bool first = true;
+ bool second = false;
+ Identifier *id = 0;
+
+ for (UTL_IdListActiveIterator i (sn); !i.is_done ();)
+ {
+ if (!first)
+ {
+ retval += "::";
+ }
+ else if (second)
+ {
+ first = second = false;
+ }
+
+ id = IdentifierHelper::original_local_name (i.item ());
+ i.next ();
+
+ // Append the identifier.
+ retval +=
+ appended_to && i.is_done ()
+ ? id->get_string ()
+ : IdentifierHelper::try_escape (id).c_str ();
+
+ if (first)
+ {
+ if (ACE_OS::strcmp (id->get_string (), "") != 0)
+ {
+ // Does not start with a "".
+ first = false;
+ }
+ else
+ {
+ second = true;
+ }
+ }
+
+ id->destroy ();
+ delete id;
+ id = 0;
+ }
+
+ return retval;
+}
+
+bool
+IdentifierHelper::is_idl_keyword (Identifier * local_name)
+{
+ UTL_String utl_tmp (local_name->get_string ());
+ ACE_CString ext_id (utl_tmp.get_canonical_rep (),
+ 0,
+ false);
+
+ int status = idl_global->idl_keywords ().find (ext_id);
+ utl_tmp.destroy ();
+
+ return status == 0;
+}
+
+ACE_CString
+IdentifierHelper::try_escape (Identifier * local_name)
+{
+ ACE_CString s_local_name (local_name->get_string ());
+
+ if (IdentifierHelper::is_idl_keyword (local_name))
+ {
+ return "_" + s_local_name;
+ }
+ else
+ {
+ return s_local_name;
+ }
+}
diff --git a/modules/CIAO/tools/IDL3_to_XMI/identifier_helper.h b/modules/CIAO/tools/IDL3_to_XMI/identifier_helper.h
new file mode 100644
index 00000000000..a414b8fadd5
--- /dev/null
+++ b/modules/CIAO/tools/IDL3_to_XMI/identifier_helper.h
@@ -0,0 +1,64 @@
+// $Id$
+
+/* -*- c++ -*- */
+// ============================================================================
+//
+// = LIBRARY
+// TAO_IDL3_TO_IDL2_BE_DLL
+//
+// = FILENAME
+// identifier_helper.h
+//
+// = DESCRIPTION
+// Utilities associated with UTL_Identifier.
+//
+// = AUTHOR
+// Jeff Parsons <j.parsons@vanderbilt.edu>
+//
+// ============================================================================
+
+#ifndef IDENTIFIER_HELPER_H
+#define IDENTIFIER_HELPER_H
+
+#include "utl_scoped_name.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/SString.h"
+
+class Identifier;
+
+struct IdentifierHelper
+{
+ //
+ // = TITLE
+ // IdentifierHelper.
+ //
+ // = DESCRIPTION
+ // 1) keeps escape (leading underscore character in generated
+ // identifier in IDL
+ // 2) removes the '_' escape character when the identifier is
+ // part of another identifier such as in provides_XXX
+ // 3) removes any '_cxx_' in generated IDL
+
+ static Identifier *
+ original_local_name (Identifier * local_name);
+
+ // Removes '_cxx_ from segments of a scoped name, and optionally
+ // de-escape the last segment, if it's to be appended to.
+ static ACE_CString
+ orig_sn (UTL_ScopedName * scoped_name, bool appended_to = false);
+
+ // Detects case-insensitive match with IDL keyword.
+ static bool
+ is_idl_keyword (Identifier * local_name);
+
+ // Preserves the 'escape' (leading underscore) in a
+ // generated identifier if necessary.
+ static ACE_CString
+ try_escape (Identifier * local_name);
+};
+
+#endif /* IDENTIFIER_HELPER_H */
diff --git a/modules/CIAO/tools/XML/CIAO_XML_Utils_Export.h b/modules/CIAO/tools/XML/CIAO_XML_Utils_Export.h
new file mode 100644
index 00000000000..f4f3ec3a1cd
--- /dev/null
+++ b/modules/CIAO/tools/XML/CIAO_XML_Utils_Export.h
@@ -0,0 +1,54 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl CIAO_XML_Utils
+// ------------------------------
+#ifndef CIAO_XML_UTILS_EXPORT_H
+#define CIAO_XML_UTILS_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if !defined (CIAO_XML_UTILS_HAS_DLL)
+# define CIAO_XML_UTILS_HAS_DLL 1
+#endif /* ! CIAO_XML_UTILS_HAS_DLL */
+
+#if defined (CIAO_XML_UTILS_HAS_DLL) && (CIAO_XML_UTILS_HAS_DLL == 1)
+# if defined (CIAO_XML_UTILS_BUILD_DLL)
+# define CIAO_XML_Utils_Export ACE_Proper_Export_Flag
+# define CIAO_XML_UTILS_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define CIAO_XML_UTILS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* CIAO_XML_UTILS_BUILD_DLL */
+# define CIAO_XML_Utils_Export ACE_Proper_Import_Flag
+# define CIAO_XML_UTILS_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define CIAO_XML_UTILS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* CIAO_XML_UTILS_BUILD_DLL */
+#else /* CIAO_XML_UTILS_HAS_DLL == 1 */
+# define CIAO_XML_Utils_Export
+# define CIAO_XML_UTILS_SINGLETON_DECLARATION(T)
+# define CIAO_XML_UTILS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* CIAO_XML_UTILS_HAS_DLL == 1 */
+
+// Set CIAO_XML_UTILS_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (CIAO_XML_UTILS_NTRACE)
+# if (ACE_NTRACE == 1)
+# define CIAO_XML_UTILS_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define CIAO_XML_UTILS_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !CIAO_XML_UTILS_NTRACE */
+
+#if (CIAO_XML_UTILS_NTRACE == 1)
+# define CIAO_XML_UTILS_TRACE(X)
+#else /* (CIAO_XML_UTILS_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define CIAO_XML_UTILS_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (CIAO_XML_UTILS_NTRACE == 1) */
+
+#endif /* CIAO_XML_UTILS_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tools/XML/XML.mpc b/modules/CIAO/tools/XML/XML.mpc
new file mode 100644
index 00000000000..398f2cfdd55
--- /dev/null
+++ b/modules/CIAO/tools/XML/XML.mpc
@@ -0,0 +1,13 @@
+// $Id$
+
+project (CIAO_XML_Utils) : acelib, xerces, ciao_lib {
+ sharedname += CIAO_XML_Utils
+ dynamicflags = CIAO_XML_UTILS_BUILD_DLL
+ includes += ..
+
+ Source_Files {
+ XML_Error_Handler.cpp
+ XercesString.cpp
+ XML_Schema_Resolver.cpp
+ }
+}
diff --git a/modules/CIAO/tools/XML/XML_Error_Handler.cpp b/modules/CIAO/tools/XML/XML_Error_Handler.cpp
new file mode 100644
index 00000000000..ba24b817649
--- /dev/null
+++ b/modules/CIAO/tools/XML/XML_Error_Handler.cpp
@@ -0,0 +1,70 @@
+// $Id$
+
+#include "XML_Error_Handler.h"
+#include "ace/Log_Msg.h"
+#include "ace/Auto_Ptr.h"
+#include <xercesc/util/XMLString.hpp>
+#include <xercesc/dom/DOMLocator.hpp>
+#include <xercesc/sax/SAXParseException.hpp>
+#include "XercesString.h"
+#include <iostream>
+
+using xercesc::SAXParseException;
+
+namespace CIAO
+{
+ namespace XML
+ {
+ XML_Error_Handler::XML_Error_Handler (void)
+ : errors_ (false)
+ {
+ }
+
+ XML_Error_Handler::~XML_Error_Handler()
+ {
+ }
+
+ void XML_Error_Handler::warning(const SAXParseException& toCatch)
+ {
+ XStr file (toCatch.getSystemId ());
+ XStr msg (toCatch.getMessage ());
+
+ std::cerr << "Warning: " << file << ':' << toCatch.getLineNumber ()
+ << ':' << toCatch.getColumnNumber () << " - "
+ << msg << std::endl;
+ }
+
+ void XML_Error_Handler::error(const SAXParseException& toCatch)
+ {
+ XStr file (toCatch.getSystemId ());
+ XStr msg (toCatch.getMessage ());
+
+ std::cerr << "Error: " << file << ':' << toCatch.getLineNumber ()
+ << ':' << toCatch.getColumnNumber () << " - "
+ << msg << std::endl;
+ this->errors_ = true;
+ }
+
+ void XML_Error_Handler::fatalError(const SAXParseException& toCatch)
+ {
+ XStr file (toCatch.getSystemId ());
+ XStr msg (toCatch.getMessage ());
+
+ std::cerr << "Fatal Error: " << file << ':' << toCatch.getLineNumber ()
+ << ':' << toCatch.getColumnNumber () << " - "
+ << msg << std::endl;
+ this->errors_ = true;
+ }
+
+ void XML_Error_Handler::resetErrors()
+ {
+ this->errors_ = false;
+ }
+
+ bool
+ XML_Error_Handler::getErrors (void) const
+ {
+ return this->errors_;
+ }
+ }
+}
diff --git a/modules/CIAO/tools/XML/XML_Error_Handler.h b/modules/CIAO/tools/XML/XML_Error_Handler.h
new file mode 100644
index 00000000000..7cc65bf86a1
--- /dev/null
+++ b/modules/CIAO/tools/XML/XML_Error_Handler.h
@@ -0,0 +1,63 @@
+//==============================================================
+/**
+ * @file XML_Error_Handler.h
+ *
+ * $Id$
+ *
+ * @brief Error handler for Xerces
+ *
+ * @author Bala Natarajan <bala@dre.vanderbilt.edu>
+ */
+//================================================================
+#ifndef CIAO_XML_ERROR_HANDLER_H
+#define CIAO_XML_ERROR_HANDLER_H
+
+#include /**/ "ace/pre.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "XML/CIAO_XML_Utils_Export.h"
+
+#include <xercesc/sax/ErrorHandler.hpp>
+
+using xercesc::SAXParseException;
+
+namespace CIAO
+{
+ namespace XML
+ {
+ /**
+ * @class XML_Error_Hander
+ *
+ * @brief Error handler for XERCES
+ *
+ */
+ class CIAO_XML_Utils_Export XML_Error_Handler
+ : public xercesc::ErrorHandler
+ {
+ public:
+
+ XML_Error_Handler (void);
+
+ ~XML_Error_Handler (void);
+
+ void warning(const SAXParseException& toCatch);
+ void error(const SAXParseException& toCatch);
+ void fatalError(const SAXParseException& toCatch);
+ void resetErrors();
+ bool getErrors (void) const;
+ private :
+ // Disallow copying
+ XML_Error_Handler (const XML_Error_Handler&);
+ XML_Error_Handler& operator= (const XML_Error_Handler&);
+
+ bool errors_;
+ };
+ }
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_XML_ERROR_HANDLER_H*/
diff --git a/modules/CIAO/tools/XML/XML_Helper.h b/modules/CIAO/tools/XML/XML_Helper.h
new file mode 100644
index 00000000000..69f887cbe40
--- /dev/null
+++ b/modules/CIAO/tools/XML/XML_Helper.h
@@ -0,0 +1,100 @@
+// $Id$
+//============================================================
+/**
+ * @file XML_Helper.h
+ *
+ * @brief Some helper functions for XML
+ *
+ * @author Bala Natarajan <bala@dre.vanderbilt.edu>
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ */
+//============================================================
+#ifndef CIAO_XML_HELPER_H
+#define CIAO_XML_HELPER_H
+#include /**/ "ace/pre.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+#include "XML/CIAO_XML_Utils_Export.h"
+#include "XML/XML_Error_Handler.h"
+#include "XML/XML_Schema_Resolver.h"
+
+#include "xercesc/util/XercesDefs.hpp"
+#include "xercesc/parsers/XercesDOMParser.hpp"
+
+#include <memory>
+
+namespace XERCES_CPP_NAMESPACE
+{
+ class DOMDocument;
+ class DOMWriter;
+ class DOMImplementation;
+ class DOMDocumentType;
+}
+
+namespace CIAO
+{
+ namespace XML
+ {
+ /**
+ * @class XML_Helper
+ *
+ * @brief Helper class for some routine XML stuff.
+ */
+ template <typename Resolver = XML_Schema_Resolver <>,
+ typename Error_Handler = XML_Error_Handler>
+ class XML_Helper
+ {
+ public:
+ // XML_Helper (void);
+
+ // Initialize the resolver we should use.
+ XML_Helper (Resolver &resolver, Error_Handler &eh);
+
+ ~XML_Helper (void);
+
+ /// Create a DOM tree
+ XERCES_CPP_NAMESPACE::DOMDocument *
+ create_dom (const ACE_TCHAR *uri) const;
+
+ XERCES_CPP_NAMESPACE::DOMDocument *
+ create_dom (const ACE_TCHAR *root,
+ const ACE_TCHAR *ns,
+ XERCES_CPP_NAMESPACE::DOMDocumentType * doctype = 0) const;
+
+ XERCES_CPP_NAMESPACE::DOMDocumentType *
+ create_doctype (const ACE_TCHAR *qn,
+ const ACE_TCHAR *pid,
+ const ACE_TCHAR *sid) const;
+
+ //Writes out a DOMDocument to an XML file
+ bool write_DOM (XERCES_CPP_NAMESPACE::DOMDocument *doc,
+ const ACE_TCHAR *file) const;
+
+ bool is_initialized (void) const;
+
+ protected:
+ /// Intialize the parser
+ void init_parser (void);
+
+ /// Terminate the parser
+ void terminate_parser (void);
+
+ private:
+ bool initialized_;
+ XERCES_CPP_NAMESPACE::DOMImplementation *impl_;
+ mutable std::auto_ptr<XERCES_CPP_NAMESPACE::XercesDOMParser> parser_;
+
+ Resolver &resolver_;
+ Error_Handler &e_handler_;
+ };
+
+
+ }
+}
+
+#include "XML_Helper.tpp"
+
+#include /**/ "ace/post.h"
+#endif/*CIAO_CONFIG_HANDLERS_XML_HELPER_H*/
diff --git a/modules/CIAO/tools/XML/XML_Helper.tpp b/modules/CIAO/tools/XML/XML_Helper.tpp
new file mode 100644
index 00000000000..a21ca5db698
--- /dev/null
+++ b/modules/CIAO/tools/XML/XML_Helper.tpp
@@ -0,0 +1,304 @@
+//$Id$
+#include "XML_Helper.h"
+#include "ace/Auto_Ptr.h"
+#include "ace/Log_Msg.h"
+//#include "ciao/Logger/Log_Macros.h"
+#include "xercesc/util/XMLUniDefs.hpp"
+#include "xercesc/dom/DOM.hpp"
+#include "XML_Error_Handler.h"
+#include "XML_Schema_Resolver.h"
+#include "xercesc/framework/LocalFileFormatTarget.hpp"
+#include "xercesc/dom/DOM.hpp"
+#include "XercesString.h"
+
+#if XERCES_VERSION_MAJOR == 3
+#include "xercesc/dom/DOMLSSerializer.hpp"
+#endif
+
+namespace CIAO
+{
+ namespace XML
+ {
+ using xercesc::XMLException;
+ using xercesc::XMLString;
+ using xercesc::DOMImplementation;
+ using xercesc::DOMImplementationRegistry;
+// using xercesc::DOMBuilder;
+ using xercesc::DOMImplementationLS;
+ using xercesc::XMLUni;
+ using xercesc::DOMDocument;
+ using xercesc::DOMException;
+ using xercesc::DOMDocumentType;
+ using xercesc::XercesDOMParser;
+/*
+ template <typename Resolver, typename Error>
+ XML_Helper<Resolver, Error>::XML_Helper (void)
+ : initialized_ (false)
+ {
+ this->init_parser ();
+ }
+*/
+ // TODO this is stub implementation
+ template <typename Resolver, typename Error>
+ XML_Helper<Resolver, Error>::XML_Helper (Resolver &resolver, Error &eh)
+ : initialized_ (false),
+ resolver_ (resolver),
+ e_handler_ (eh)
+ {
+ this->init_parser ();
+ }
+
+ template <typename Resolver, typename Error>
+ XML_Helper<Resolver, Error>::~XML_Helper (void)
+ {
+ this->terminate_parser ();
+ }
+
+ template <typename Resolver, typename Error>
+ bool
+ XML_Helper<Resolver, Error>::is_initialized (void) const
+ {
+ return this->initialized_ == true;
+ }
+
+ template <typename Resolver, typename Error>
+ void
+ XML_Helper<Resolver, Error>::init_parser (void)
+ {
+ if (this->initialized_)
+ return;
+
+ // CIAO_DEBUG ((LM_TRACE, CLINFO
+ //"XML_Helper<>::is_initialized - Initializing the Xerces runtime \n"));
+ // Initialize the Xerces run-time
+ try
+ {
+ xercesc::XMLPlatformUtils::Initialize();
+ }
+ catch (const XMLException& e)
+ {
+ char* message =
+ XMLString::transcode (e.getMessage());
+ ACE_Auto_Basic_Array_Ptr<char> cleanup_message (message);
+
+ throw;
+ }
+ catch (...)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "(%P|%t) Some other exception,"
+ " returning\n"));
+
+ return;
+ }
+
+ // Instantiate the DOM parser.
+ static const XMLCh gLS[] = { xercesc::chLatin_L,
+ xercesc::chLatin_S,
+ xercesc::chNull };
+
+ // Get an implementation of the Load-Store (LS) interface
+ // and cache it for later use
+ impl_ =
+ DOMImplementationRegistry::getDOMImplementation(gLS);
+
+ this->initialized_ = true;
+ return;
+ }
+
+ template <typename Resolver, typename Error>
+ XERCES_CPP_NAMESPACE::DOMDocument *
+ XML_Helper<Resolver, Error>::create_dom (const ACE_TCHAR *root,
+ const ACE_TCHAR *ns,
+ DOMDocumentType *doctype) const
+ {
+ if (root == 0 || ns == 0)
+ return 0;
+
+ return this->impl_->createDocument (XStr (ns),
+ XStr (root),
+ doctype);
+ }
+
+ template <typename Resolver, typename Error>
+ XERCES_CPP_NAMESPACE::DOMDocumentType *
+ XML_Helper<Resolver, Error>::create_doctype (const ACE_TCHAR *qn,
+ const ACE_TCHAR *pid,
+ const ACE_TCHAR *sid) const
+ {
+ return this->impl_->createDocumentType (XStr (qn),
+ XStr (pid),
+ XStr (sid));
+ }
+ template <typename Resolver, typename Error>
+ XERCES_CPP_NAMESPACE::DOMDocument *
+ XML_Helper<Resolver, Error>::create_dom (const ACE_TCHAR *url) const
+ {
+
+ if (url == 0)
+ return 0;
+
+ try
+ {
+ if (this->parser_.get () == 0)
+ this->parser_.reset ((new xercesc::XercesDOMParser ()));
+
+ // Perform Namespace processing.
+ this->parser_->setDoNamespaces (true);
+
+ // Discard comment nodes in the document
+ this->parser_->setCreateCommentNodes (false);
+
+ // Disable datatype normalization. The XML 1.0 attribute value
+ // normalization always occurs though.
+ // this->parser_->setFeature (XMLUni::fgDOMDatatypeNormalization, true);
+
+ // Do not create EntityReference nodes in the DOM tree. No
+ // EntityReference nodes will be created, only the nodes
+ // corresponding to their fully expanded sustitution text will be
+ // created.
+ this->parser_->setCreateEntityReferenceNodes (false);
+
+ // Perform Validation
+ this->parser_->setValidationScheme (xercesc::AbstractDOMParser::Val_Always);
+
+ // Do not include ignorable whitespace in the DOM tree.
+ this->parser_->setIncludeIgnorableWhitespace (false);
+
+ // Enable the parser's schema support.
+ this->parser_->setDoSchema (true);
+
+ // Enable full schema constraint checking, including checking which
+ // may be time-consuming or memory intensive. Currently, particle
+ // unique attribution constraint checking and particle derivation
+ // restriction checking are controlled by this option.
+ this->parser_->setValidationSchemaFullChecking (true);
+
+ // The parser will treat validation error as fatal and will exit.
+ this->parser_->setValidationConstraintFatal (true);
+
+ this->parser_->setErrorHandler (&e_handler_);
+
+ this->parser_->setEntityResolver (&resolver_);
+
+ this->parser_->parse (ACE_TEXT_ALWAYS_CHAR (url));
+
+ if (e_handler_.getErrors ())
+ return 0;
+
+ return this->parser_->getDocument ();
+ }
+ catch (const DOMException& e)
+ {
+ const unsigned int maxChars = 2047;
+ XMLCh errText[maxChars + 1];
+
+ if (DOMImplementation::loadDOMExceptionMsg (e.code,
+ errText,
+ maxChars))
+ {
+ char* message =
+ XMLString::transcode (errText);
+ ACE_Auto_Basic_Array_Ptr<char> cleanup_message (message);
+ }
+ return 0;
+
+ }
+ catch (const XMLException& e)
+ {
+ char* message = XMLString::transcode (e.getMessage());
+ ACE_Auto_Basic_Array_Ptr<char> cleanup_message (message);
+ throw 0;
+ }
+ catch (...)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "(%P|%t) Caught an unknown exception \n"));
+ throw;
+ }
+
+ return 0;
+ }
+
+ template <typename Resolver, typename Error>
+ void
+ XML_Helper<Resolver, Error>::terminate_parser (void)
+ {
+ try
+ {
+ xercesc::XMLPlatformUtils::Terminate();
+ }
+ catch (const XMLException& e)
+ {
+ char* message =
+ XMLString::transcode (e.getMessage());
+ ACE_Auto_Basic_Array_Ptr<char> cleanup_message (message);
+ throw;
+ }
+
+ this->initialized_ = false;
+ return;
+ }
+
+ template <typename Resolver, typename Error>
+ bool
+ XML_Helper<Resolver, Error>::write_DOM (XERCES_CPP_NAMESPACE::DOMDocument *doc,
+ const ACE_TCHAR *file) const
+ {
+ try
+ {
+ bool retn;
+#if XERCES_VERSION_MAJOR == 3
+ XERCES_CPP_NAMESPACE::DOMLSSerializer *serializer (impl_->createLSSerializer ());
+ XERCES_CPP_NAMESPACE::DOMConfiguration *ser_config (serializer->getDomConfig ());
+ XERCES_CPP_NAMESPACE::DOMLSOutput *output (impl_->createLSOutput ());
+
+ if (ser_config->canSetParameter(XMLUni::fgDOMWRTFormatPrettyPrint, true))
+ ser_config->setParameter(XMLUni::fgDOMWRTFormatPrettyPrint, true);
+
+ XMLFormatTarget *format_target = new XERCES_CPP_NAMESPACE::LocalFileFormatTarget (ACE_TEXT_ALWAYS_CHAR (file));
+
+ output->setByteStream (format_target);
+
+ retn = serializer->write (doc, output);
+
+ output->release ();
+ serializer->release ();
+ return retn;
+#else
+ std::auto_ptr <XERCES_CPP_NAMESPACE::DOMWriter> writer (impl_->createDOMWriter());
+
+ if (writer->canSetFeature (XMLUni::fgDOMWRTFormatPrettyPrint,
+ true))
+ writer->setFeature (XMLUni::fgDOMWRTFormatPrettyPrint, true);
+
+ std::auto_ptr <xercesc::XMLFormatTarget> ft (new xercesc::LocalFileFormatTarget(file));
+ retn = writer->writeNode(ft.get (), *doc);
+
+ return retn;
+#endif
+ }
+ catch (const xercesc::XMLException &e)
+ {
+ char* message =
+ XMLString::transcode (e.getMessage());
+ ACE_Auto_Basic_Array_Ptr<char> cleanup_message (message);
+
+ char* name =
+ XMLString::transcode (e.getType());
+ ACE_Auto_Basic_Array_Ptr<char> cleanup_name (name);
+
+ ACE_ERROR ((LM_ERROR, "Caught exception while serializing DOM to file.\n"
+ "Name: %s\n"
+ "Message: %s\n"
+ "SrcFile: %s\n"
+ "SrcLine: %d\n",
+ name,
+ message,
+ e.getSrcFile (),
+ e.getSrcLine ()));
+ return false;
+ }
+ }
+ }
+}
diff --git a/modules/CIAO/tools/XML/XML_Schema_Resolver.cpp b/modules/CIAO/tools/XML/XML_Schema_Resolver.cpp
new file mode 100644
index 00000000000..afa2ef14dc7
--- /dev/null
+++ b/modules/CIAO/tools/XML/XML_Schema_Resolver.cpp
@@ -0,0 +1,78 @@
+// $Id$
+#include "XML/XML_Schema_Resolver.h"
+
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/util/XercesDefs.hpp>
+
+#include "XML/XercesString.h"
+
+#include "ace/Env_Value_T.h"
+
+
+#include <iostream>
+
+namespace CIAO
+{
+ namespace XML
+ {
+ Basic_Resolver::Basic_Resolver (const ACE_TCHAR *path)
+ : path_ (path)
+ {
+ }
+
+ XMLCh *
+ Basic_Resolver::operator() (const XMLCh *const,
+ const XMLCh *const systemId) const
+ {
+ XStr path (path_);
+ path.append (systemId);
+ return path.release ();
+ }
+
+ Environment_Resolver::Environment_Resolver (const ACE_TCHAR *variable,
+ const ACE_TCHAR *relpath)
+ {
+ xercesc::XMLPlatformUtils::Initialize();
+ this->add_path (variable, relpath);
+ }
+
+ using xercesc::XMLPlatformUtils;
+
+ void
+ Environment_Resolver::add_path (const ACE_TCHAR *variable,
+ const ACE_TCHAR *relpath)
+ {
+ ACE_Env_Value <const ACE_TCHAR *> path_env (variable,
+ ACE_TEXT(""));
+
+ XStr xpath (path_env);
+ XStr xrelpath (relpath);
+
+ xpath.append (xrelpath);
+
+ paths_.push_back (xpath);
+ }
+
+ XMLCh *
+ Environment_Resolver::operator() (const XMLCh *const,
+ const XMLCh *const systemId) const
+ {
+ for (std::vector<XStr>::const_iterator i = this->paths_.begin ();
+ i != this->paths_.end ();
+ ++i)
+ {
+ XStr path (*i);
+ path.append(systemId);
+
+ FileHandle file (XMLPlatformUtils::openFile (path));
+
+ if (file != 0)
+ {
+ XMLPlatformUtils::closeFile (file);
+ return path.release ();
+ }
+ }
+ return 0;
+ }
+ }
+}
diff --git a/modules/CIAO/tools/XML/XML_Schema_Resolver.h b/modules/CIAO/tools/XML/XML_Schema_Resolver.h
new file mode 100644
index 00000000000..1826c8c1af6
--- /dev/null
+++ b/modules/CIAO/tools/XML/XML_Schema_Resolver.h
@@ -0,0 +1,109 @@
+/**
+ * @file XML_Schema_Resolver.h
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * $Id$
+ *
+ * Resolves schema locations.
+ */
+
+#ifndef CIAO_XML_SCHEMA_RESOLVER_H
+#define CIAO_XML_SCHEMA_RESOLVER_H
+#include /**/ "ace/pre.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "XML/CIAO_XML_Utils_Export.h"
+#include "XML/XercesString.h"
+
+#include <xercesc/sax/EntityResolver.hpp>
+#include <vector>
+#include <string>
+
+using namespace xercesc;
+
+namespace CIAO
+{
+ namespace XML
+ {
+ // forward decl.
+ struct NoOp_Resolver;
+
+ /**
+ * @class CIAO_Schema_Resolver
+ * @brief Resolves schema locations for CIAO.
+ *
+ * Template argument Resolver should be a functor with an operation
+ * const ACE_TCHAR * operator () (...arguments from resolveEntity...)
+ */
+ template <typename Resolver = NoOp_Resolver>
+ class XML_Schema_Resolver
+ : public virtual EntityResolver
+ {
+ public:
+ XML_Schema_Resolver (void);
+
+ XML_Schema_Resolver (Resolver &resolver);
+
+ /// This function is called by the Xerces infrastructure to
+ /// actually resolve the location of a schema.
+ virtual InputSource * resolveEntity (const XMLCh *const publicId,
+ const XMLCh *const systemId);
+
+ private:
+ XML_Schema_Resolver (XML_Schema_Resolver<Resolver> &);
+
+ Resolver &resolver_;
+ };
+
+ /**
+ * @class NoOp_Resolver
+ * @brief Resolver that does nothing.
+ */
+ struct NoOp_Resolver
+ {
+ const XMLCh* operator() (const XMLCh *const,
+ const XMLCh *const systemId) const
+ { return systemId; };
+ };
+
+ /**
+ * @class Basic_Resolver
+ * @brief Resolves a schema location from a fixed path.
+ */
+ struct Basic_Resolver
+ {
+ Basic_Resolver (const ACE_TCHAR *path);
+
+ XMLCh* operator() (const XMLCh *const publicId,
+ const XMLCh *const systemId) const;
+ XStr path_;
+ };
+
+ /**
+ * @class Environment_Resolver
+ * @brief Resolves a schema location from a path from an environment variable.
+ */
+ struct CIAO_XML_Utils_Export Environment_Resolver
+ {
+ Environment_Resolver (const ACE_TCHAR *variable = ACE_TEXT(""),
+ const ACE_TCHAR *path = ACE_TEXT("./"));
+
+ void add_path (const ACE_TCHAR *variable,
+ const ACE_TCHAR *path);
+
+ XMLCh* operator() (const XMLCh *const publicId,
+ const XMLCh *const systemId) const;
+
+ std::vector<XStr> paths_;
+ };
+ }
+}
+
+#include "XML/XML_Schema_Resolver.tpp"
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_XML_SCHEMA_RESOLVER_H */
diff --git a/modules/CIAO/tools/XML/XML_Schema_Resolver.tpp b/modules/CIAO/tools/XML/XML_Schema_Resolver.tpp
new file mode 100644
index 00000000000..22039e01f14
--- /dev/null
+++ b/modules/CIAO/tools/XML/XML_Schema_Resolver.tpp
@@ -0,0 +1,48 @@
+// $Id$
+#ifndef XML_SCHEMA_RESOLVER_TPP
+#define XML_SCHEMA_RESOLVER_TPP
+
+#include "XML/XML_Schema_Resolver.h"
+#include "XML/XercesString.h"
+
+#include <xercesc/framework/LocalFileInputSource.hpp>
+#include <xercesc/framework/Wrapper4InputSource.hpp>
+
+using xercesc::Wrapper4InputSource;
+using xercesc::LocalFileInputSource;
+
+
+namespace CIAO
+{
+ namespace XML
+ {
+ template<typename Resolver>
+ XML_Schema_Resolver<Resolver>::XML_Schema_Resolver (void)
+ : resolver_ ()
+ {
+ }
+
+ template<typename Resolver>
+ XML_Schema_Resolver<Resolver>::XML_Schema_Resolver (Resolver &res)
+ : resolver_ (res)
+ {
+ }
+
+ /// This function is called by the Xerces infrastructure to
+ /// actually resolve the location of a schema.
+ template<typename Resolver>
+ InputSource *
+ XML_Schema_Resolver<Resolver>::resolveEntity (const XMLCh *const publicId,
+ const XMLCh *const systemId)
+ {
+ XStr path = resolver_ (publicId, systemId);
+ if (path.begin () == 0)
+ return 0;
+
+ // Ownership of these objects is given to other people.
+ return /*new Wrapper4InputSource*/ (new LocalFileInputSource (path.begin ()));
+ }
+ }
+}
+
+#endif /*XML_SCHEMA_RESOLVER_TPP*/
diff --git a/modules/CIAO/tools/XML/XercesString.cpp b/modules/CIAO/tools/XML/XercesString.cpp
new file mode 100644
index 00000000000..8e56061948d
--- /dev/null
+++ b/modules/CIAO/tools/XML/XercesString.cpp
@@ -0,0 +1,151 @@
+// $Id$
+
+#include <ostream>
+#include <algorithm>
+
+#include "XercesString.h"
+using xercesc::XMLString;
+
+namespace CIAO
+{
+ namespace XML
+ {
+
+ XStr::XStr (const ACE_TCHAR* str)
+ : _wstr(0)
+ {
+ _wstr = XMLString::transcode(ACE_TEXT_ALWAYS_CHAR (str));
+ }
+
+ XStr::XStr (XMLCh *wstr)
+ : _wstr(wstr)
+ {
+
+ }
+
+ XStr::XStr (const XMLCh* wstr)
+ : _wstr(0)
+ {
+ _wstr = XMLString::replicate(wstr);
+ }
+
+ XStr::XStr (const XStr &right)
+ : _wstr(0)
+ {
+ _wstr = XMLString::replicate(right._wstr);
+ }
+
+ XStr& XStr::operator= (const XStr& rhs)
+ {
+ if (&rhs == this)
+ return *this;
+ XStr temp (rhs);
+ std::swap (this->_wstr, temp._wstr);
+ return *this;
+ }
+
+ XStr::~XStr ()
+ {
+ if (_wstr)
+ XMLString::release(&_wstr);
+ }
+
+ const XMLCh* XStr::begin () const
+ {
+ return _wstr;
+ }
+
+ const XMLCh* XStr::end () const
+ {
+ return _wstr + size();
+ }
+
+ bool XStr::append(const XMLCh *tail)
+ {
+ int iTailLen = XMLString::stringLen(tail);
+ int iWorkLen = XMLString::stringLen(_wstr);
+ XMLCh *result = new XMLCh[ iWorkLen + iTailLen + 1 ];
+ bool bOK = result != 0;
+ if (bOK)
+ {
+ XMLCh *target = result;
+ XMLString::moveChars(target, _wstr, iWorkLen);
+ target += iWorkLen;
+ XMLString::moveChars(target, tail, iTailLen);
+ target += iTailLen;
+ *target++ = 0;
+ XMLString::release(&_wstr);
+ _wstr = result;
+ }
+ return bOK;
+ }
+
+ bool XStr::erase(const XMLCh *head, const XMLCh *tail)
+ {
+ bool bOK = head <= tail && head >= begin() && tail <= end();
+ if (bOK)
+ {
+ XMLCh *result = new XMLCh[ size() - (tail - head) + 1 ];
+ XMLCh *target = result;
+ bOK = target != 0;
+ if (bOK)
+ {
+ const XMLCh *cursor = begin();
+
+ while (cursor != head) *target++ = *cursor++;
+ cursor = tail;
+ while ( cursor != end() ) *target++ = *cursor++;
+ *target ++ = 0;
+ XMLString::release(&_wstr);
+ _wstr = result;
+ }
+ }
+ return bOK;
+ }
+
+ int XStr::size () const
+ {
+ return XMLString::stringLen(_wstr);
+ }
+
+ XMLCh XStr::operator [] (const int i)
+ {
+ return _wstr[i];
+ }
+
+ XMLCh XStr::operator [] (const int i) const
+ {
+ return _wstr[i];
+ }
+
+ XMLCh * XStr::release (void)
+ {
+ XMLCh* tmp = _wstr;
+ this->_wstr = 0;
+ return tmp;
+ }
+
+ bool operator== (const XStr& lhs, const XStr& rhs)
+ {
+ return XMLString::compareIString (lhs,rhs) == 0;
+ }
+
+ bool operator!= (const XStr& lhs, const XStr& rhs)
+ {
+ return !operator==(lhs, rhs);
+ }
+
+
+ std::ostream&
+ operator<< (std::ostream& o, XStr const& str)
+ {
+ char* s = XMLString::transcode (str);
+
+ o << s;
+
+ XMLString::release (&s); // idiots?
+ return o;
+ }
+
+ }
+}
diff --git a/modules/CIAO/tools/XML/XercesString.h b/modules/CIAO/tools/XML/XercesString.h
new file mode 100644
index 00000000000..b0975462c59
--- /dev/null
+++ b/modules/CIAO/tools/XML/XercesString.h
@@ -0,0 +1,78 @@
+// $Id$
+
+#ifndef _XERCESSTRING_H
+#define _XERCESSTRING_H
+
+#include /**/ "ace/pre.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include <iosfwd>
+
+#ifdef __BORLANDC__
+using std::memcpy;
+#endif
+
+#include <xercesc/util/XMLString.hpp>
+
+// Utility class that provides a std::string like facade to XMLString.
+// Doesn't implement all of the methods of std::string.
+#include "XML/CIAO_XML_Utils_Export.h"
+
+namespace CIAO
+{
+ namespace XML
+ {
+ class CIAO_XML_Utils_Export XStr
+ {
+ public:
+ XStr() : _wstr(0L) { };
+
+ XStr (const ACE_TCHAR* str);
+
+ XStr (XMLCh* wstr);
+
+ XStr (const XMLCh* wstr);
+
+ XStr (const XStr& copy);
+
+ XStr& operator= (const XStr& rhs);
+
+ ~XStr();
+
+ const XMLCh* begin() const;
+
+ const XMLCh* end() const;
+
+ bool append(const XMLCh* tail);
+
+ bool erase (const XMLCh* head, const XMLCh* tail);
+
+ int size() const;
+
+ XMLCh operator [] (const int i);
+
+ XMLCh operator [] (const int i) const;
+
+ operator const XMLCh* () const { return _wstr; };
+
+ XMLCh * release (void);
+ private:
+
+ XMLCh* _wstr; // Internal representation
+
+ };
+
+ CIAO_XML_Utils_Export bool operator== (const XStr& lhs, const XStr& rhs);
+ CIAO_XML_Utils_Export bool operator!= (const XStr& lhs, const XStr& rhs);
+
+ CIAO_XML_Utils_Export std::ostream&
+ operator<< (std::ostream& o, XStr const& str);
+
+ }
+}
+#include /**/ "ace/post.h"
+
+#endif /* _XERCESSTRING_H */
diff --git a/modules/CIAO/tools/tools.mwc b/modules/CIAO/tools/tools.mwc
new file mode 100644
index 00000000000..ae28cfcba54
--- /dev/null
+++ b/modules/CIAO/tools/tools.mwc
@@ -0,0 +1,7 @@
+// -*- MPC -*-
+// $Id$
+
+workspace {
+ Config_Handlers
+ IDL3_to_IDL2
+} \ No newline at end of file