diff options
Diffstat (limited to 'TAO/CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.cpp')
-rw-r--r-- | TAO/CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.cpp | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/TAO/CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.cpp b/TAO/CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.cpp index 476df857146..0def3f8ff68 100644 --- a/TAO/CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.cpp +++ b/TAO/CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.cpp @@ -30,11 +30,12 @@ #include "ace/Malloc_Allocator.h" //for ACE_New_Allocator //for the PackageConfiguration parsing -#include "Config_Handlers/STD_PC_Intf.h" +//#include "Config_Handlers/Package_Handlers/PC_Intf.h" #include "ciao/Deployment_DataC.h" #include "ciao/Packaging_DataC.h" #include "Config_Handlers/Utils/XML_Helper.h" -#include "xercesc/dom/DOM.hpp" +#include "Config_Handlers/Package_Handlers/PCD_Handler.h" +//#include "xercesc/dom/DOM.hpp" #include "RM_Helper.h" //to be able to externalize/internalize a PackageConfiguration #include "ace/Message_Block.h" //for ACE_Message_Block @@ -153,7 +154,7 @@ void CIAO_RepositoryManagerDaemon_i::installPackage ( //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 (0,0), CORBA::INTERNAL ()); + ACE_NEW_THROW_EX (mb, ACE_Message_Block (), CORBA::INTERNAL ()); ACE_CHECK_RETURN (0); //get the remote file @@ -169,6 +170,8 @@ void CIAO_RepositoryManagerDaemon_i::installPackage ( mb->release (); ACE_THROW (CORBA::INTERNAL ()); } + + mb->release (); } else { @@ -710,9 +713,8 @@ CIAO_RepositoryManagerDaemon_i::retrieve_PC_from_package (char* package) //parse the PCD to make sure that there are no package errors ACE_TRY { - CIAO::Config_Handlers::STD_PC_Intf intf (pcd_name.c_str ()); - - pc = intf.get_PC (); + //CIAO::Config_Handlers::STD_PC_Intf intf (pcd_name.c_str ()); + //pc = intf.get_PC (); } ACE_CATCHALL { @@ -789,9 +791,21 @@ CIAO_RepositoryManagerDaemon_i::retrieve_PC_from_descriptors (const char* pc_nam //parse the PCD to make sure that there are no package errors ACE_TRY { - CIAO::Config_Handlers::STD_PC_Intf intf (pc_name); + //CIAO::Config_Handlers::STD_PC_Intf intf (pc_name); + //pc = intf.get_PC (); + if (xercesc::DOMDocument *doc = CIAO::Config_Handlers::XML_HELPER->create_dom (pc_name)) + { + { + //Read in the XSC type structure from the DOMDocument - pc = intf.get_PC (); + //Convert the XSC to an IDL datatype + CIAO::Config_Handlers::Packaging::PCD_Handler::package_config (pc_name, pc); + std::cout << "Instance document import succeeded. Dumping contents to file\n"; + } + + //Cleanliness is next to Godliness + delete doc; + } } ACE_CATCHALL { |