]> SALOME platform Git repositories - modules/kernel.git/commitdiff
Salome HOME
*** empty log message ***
authortajchman <tajchman>
Tue, 6 Apr 2004 08:04:58 +0000 (08:04 +0000)
committertajchman <tajchman>
Tue, 6 Apr 2004 08:04:58 +0000 (08:04 +0000)
src/ModuleCatalog/SALOME_ModuleCatalog_Acomponent_impl.cxx
src/ModuleCatalog/SALOME_ModuleCatalog_Handler.cxx
src/ModuleCatalog/SALOME_ModuleCatalog_Parser_IO.cxx
src/ModuleCatalog/SALOME_ModuleCatalog_impl.cxx
src/ModuleCatalog/SALOME_ModuleCatalog_impl.hxx
src/ModuleCatalog/SALOME_TestModuleCatalog.py [new file with mode: 0644]

index 97c91870c570ae6c1a9e879417d245104cd5c98b..6213ef4a77d9c2747ac826f9d7bffbbf6e0dab97 100644 (file)
@@ -477,6 +477,7 @@ SALOME_ModuleCatalog_AcomponentImpl::_duplicate_service(SALOME_ModuleCatalog::Se
   SALOME_ModuleCatalog::Service_var _service = new SALOME_ModuleCatalog::Service;
 
   // service name
+  MESSAGE("service name : " << service.ServiceName);
   _service->ServiceName = CORBA::string_dup(service.ServiceName);
   // service by default
   _service->Servicebydefault = service.Servicebydefault;
index d0cb28226457c89eb3aaf4d1669b027c1c29fa78..4482b4c259844f35b8a1daee3bb5521c5a0601aa 100644 (file)
@@ -71,13 +71,13 @@ SALOME_ModuleCatalog_Handler::SALOME_ModuleCatalog_Handler()
   test_inDataStreamParameter_name="inParameter-name";
   test_inDataStreamParameter_dependency="inParameter-dependency";
   test_inDataStreamParameter="inParameter";
-  test_inDataStreamParameter_list="inDataStreamParameter-list";
+  test_inDataStreamParameter_list="DataStream-list";
 
   test_outDataStreamParameter_type="outParameter-type";
   test_outDataStreamParameter_name="outParameter-name";
   test_outDataStreamParameter_dependency="outParameter-dependency";
   test_outDataStreamParameter="outParameter";
-  test_outDataStreamParameter_list="outDataStreamParameter-list";
+  test_outDataStreamParameter_list="DataStream-list";
 
   test_service= "component-service";
   test_service_list="component-service-list";
@@ -293,10 +293,12 @@ bool SALOME_ModuleCatalog_Handler::endElement(const QString&,
 
    //tag test_inParameter_name
    if ((qName.compare(test_inParameter_name)==0)) {
+     SCRUTE(parent);
+     SCRUTE(grandparent);
      if (grandparent.compare(test_inDataStreamParameter_list) == 0)
        _inDataStreamParam.parserParamName = content ;
      else 
-        _inParam.parserParamName = content ;
+       _inParam.parserParamName = content ;
      return true;
    }
 
@@ -309,9 +311,9 @@ bool SALOME_ModuleCatalog_Handler::endElement(const QString&,
    //tag test_inParameter
   if ((qName.compare(test_inParameter)==0))
     {
-      SCRUTE(parent);
       if (parent.compare(test_inParameter_list)==0) {
        
+       MESSAGE("add inParameter : " << _inParam.parserParamName);
        _inParamList.push_back(_inParam) ; 
        
        // Empty temporary structures
@@ -319,8 +321,8 @@ bool SALOME_ModuleCatalog_Handler::endElement(const QString&,
        _inParam.parserParamName = "";
       }
       else if ((qName.compare(test_inDataStreamParameter)==0)) {
-       SCRUTE(parent);
        
+       MESSAGE("add inDataStreamParameter : " << _inDataStreamParam.parserParamName);
        _inDataStreamParamList.push_back(_inDataStreamParam) ; 
        
        // Empty temporary structures
@@ -334,6 +336,7 @@ bool SALOME_ModuleCatalog_Handler::endElement(const QString&,
    //tag test_inParameter_list
    if((qName.compare(test_inParameter_list)==0))
      {
+       SCRUTE(_inParamList.size());
        _aService.parserServiceInParameter = _inParamList;
        _inParamList.resize(0);
        return true;
@@ -342,12 +345,22 @@ bool SALOME_ModuleCatalog_Handler::endElement(const QString&,
    //tag test_inDataStreamParameter_list
    if((qName.compare(test_inDataStreamParameter_list)==0))
      {
+       SCRUTE(_inDataStreamParamList.size());
        _aService.parserServiceInDataStreamParameter = _inDataStreamParamList;
        _inDataStreamParamList.resize(0);
+     }
+   //tag test_outDataStreamParameter_list
+   if((qName.compare(test_outDataStreamParameter_list)==0))
+     {
+       SCRUTE(_outDataStreamParamList.size());
+       _aService.parserServiceOutDataStreamParameter = _outDataStreamParamList;
+       _outDataStreamParamList.resize(0);
        return true;
      }
 
+
    // Parameter out
+   SCRUTE(qName);
 
    // tag test_outParameter_type
    if ((qName.compare(test_outParameter_type)==0)) {
@@ -378,6 +391,8 @@ bool SALOME_ModuleCatalog_Handler::endElement(const QString&,
         
    //tag test_outDataStreamParameter_name
    if ((qName.compare(test_outDataStreamParameter_name)==0)) {
+     SCRUTE(grandparent);
+     SCRUTE(test_outDataStreamParameter_list);
      if (grandparent.compare(test_outDataStreamParameter_list) == 0)
        _outDataStreamParam.parserParamName = content ;
      else 
@@ -394,9 +409,9 @@ bool SALOME_ModuleCatalog_Handler::endElement(const QString&,
    //tag test_outParameter
   if ((qName.compare(test_outParameter)==0))
     {
-      SCRUTE(parent);
       if (parent.compare(test_outParameter_list)==0) {
        
+       MESSAGE("add outParameter : " << _outParam.parserParamName);
        _outParamList.push_back(_outParam) ; 
        
        // Empty temporary structures
@@ -404,8 +419,8 @@ bool SALOME_ModuleCatalog_Handler::endElement(const QString&,
        _outParam.parserParamName = "";
       }
       else if ((qName.compare(test_outDataStreamParameter)==0)) {
-       SCRUTE(parent);
        
+       MESSAGE("add outDataStreamParameter : " << _outDataStreamParam.parserParamName);
        _outDataStreamParamList.push_back(_outDataStreamParam) ; 
        
        // Empty temporary structures
@@ -419,20 +434,12 @@ bool SALOME_ModuleCatalog_Handler::endElement(const QString&,
    //tag test_outParameter_list
    if((qName.compare(test_outParameter_list)==0))
      {
+       SCRUTE(_outParamList.size());
        _aService.parserServiceOutParameter = _outParamList;
        _outParamList.resize(0);
        return true;
      }
   
-   //tag test_outDataStreamParameter_list
-   if((qName.compare(test_outDataStreamParameter_list)==0))
-     {
-       _aService.parserServiceOutDataStreamParameter = _outDataStreamParamList;
-       _outDataStreamParamList.resize(0);
-       return true;
-     }
-
-
    // tag   test_service
    if((qName.compare(test_service)==0))
      {
@@ -505,6 +512,7 @@ bool SALOME_ModuleCatalog_Handler::characters(const QString& chars)
 bool SALOME_ModuleCatalog_Handler::endDocument()
 {
   ofstream f("/tmp/logs/tajchman/xxx.log", std::ofstream::app);
+  f << "---------------------------------------------------------" << std::endl;
   BEGIN_OF("endDocument");
   //_pathlist
   for (unsigned int ind = 0; ind < _pathList.size(); ind++)
index ec9108b48349c96e30c3de32f0920586e3023efa..9266587c1895edffc87e89b49c6213edb61cff19 100644 (file)
@@ -22,7 +22,7 @@
 //
 //
 //
-//  File   : SALOME_ModuleCatalog_Handler.cxx
+//  File   : SALOME_ModuleCatalog_Parser_IO.cxx
 //  Author : Estelle Deville
 //  Module : SALOME
 //  $Header$
index b2337f486569784b83921df6d95cbc8666d74791..50e61e101158655cc0cb818fc8d4a5953c8efb96 100644 (file)
@@ -528,13 +528,28 @@ SALOME_ModuleCatalogImpl::_parse_xml_file(const char* file,
   reader.setErrorHandler( handler );
   reader.parse( source );
   xmlFile.close();
-  unsigned int ind;
-  for ( ind = 0; ind < _moduleList.size(); ind++)
-    modulelist.push_back(_moduleList[ind]) ;
+
+  unsigned int ind, j;
+  for ( ind = 0; ind < _moduleList.size(); ind++) {
+    for (j=0; j<modulelist.size(); j++)
+      if (modulelist[j].parserComponentName ==
+         _moduleList[ind].parserComponentName) {
+       modulelist[ind] = _moduleList[ind];
+      }
+    if (j == modulelist.size())
+      modulelist.push_back(_moduleList[ind]) ;
+  }
+
   for ( ind = 0; ind < _pathList.size(); ind++)
     pathList.push_back(_pathList[ind]) ;
 }
 
+void 
+SALOME_ModuleCatalogImpl::ImportXmlCatalogFile(const char* file)
+{
+  _parse_xml_file(file, _personal_module_list, _personal_path_list);
+}
+
 //----------------------------------------------------------------------
 // Function : duplicate_interfaces
 // Purpose  : create a list of interfaces from the parsing of the catalog
index 91938842b95634424ec6704a5a88762ab4b125cd..aa5c13990e363be5a4f3312ce5cb4cd7d892be43 100644 (file)
@@ -58,6 +58,12 @@ public:
  */
   virtual char* GetPathPrefix(const char* machinename);
 
+  //! method to read a XML file and import new components into the component list
+ /*! If the XML file doesn't exist or is not readable, the Notfound exception is thrown
+   \param  const char* xmlFileName 
+ */
+  virtual void ImportXmlFile(const char* xmlFileName);
+
   //! method to get a component list
   /*!
     \return a component list 
diff --git a/src/ModuleCatalog/SALOME_TestModuleCatalog.py b/src/ModuleCatalog/SALOME_TestModuleCatalog.py
new file mode 100644 (file)
index 0000000..553f833
--- /dev/null
@@ -0,0 +1,20 @@
+import batchmode_salome
+import SALOME_ModuleCatalog
+
+print "======================================================================"
+print "           Get Catalog "
+print "======================================================================"
+obj = batchmode_salome.naming_service.Resolve('Kernel/ModulCatalog')
+catalog = obj._narrow(SALOME_ModuleCatalog.ModuleCatalog)
+catalog.GetComponentList()
+
+C = catalog.GetComponent("AddComponent")
+print C
+
+print C.GetInterfaceList()
+
+#I = C.GetInterface("Adder")
+#print I
+
+#I = C.GetInterface("AddComponent")
+#print I