Salome HOME
Fix TestExportToGEOM.py case in SSL mode
[modules/yacs.git] / src / SALOMEDS / SALOMEDS_Driver_i.hxx
index 1a61bc49603a6395a42e109a20c0e024aa7b2fc9..8ba6a897f98db7981733f99ba942338746a93b1b 100644 (file)
@@ -1,22 +1,25 @@
-// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// Copyright (C) 2007-2021  CEA/DEN, EDF R&D, OPEN CASCADE
+//
+// Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-// 
+//
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either 
-// version 2.1 of the License.
-// 
-// This library is distributed in the hope that it will be useful 
-// but WITHOUT ANY WARRANTY; without even the implied warranty of 
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 // Lesser General Public License for more details.
 //
-// You should have received a copy of the GNU Lesser General Public  
-// License along with this library; if not, write to the Free Software 
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 #ifndef __SALOMEDS_DRIVER_I_H__
 #define __SALOMEDS_DRIVER_I_H__
 
@@ -34,82 +37,71 @@ class Standard_EXPORT SALOMEDS_Driver_i :  public virtual SALOMEDSImpl_Driver
 {
 protected:
   SALOMEDS::Driver_var _driver;
+  Engines::EngineComponent_var _engine;
   CORBA::ORB_var _orb;
 
 public:
-
-  SALOMEDS_Driver_i(SALOMEDS::Driver_ptr theDriver, CORBA::ORB_ptr theORB) 
-    {
-      _driver = SALOMEDS::Driver::_duplicate(theDriver);
-      _orb = CORBA::ORB::_duplicate(theORB);        
-    }
-
+  SALOMEDS_Driver_i(Engines::EngineComponent_ptr theEngine, CORBA::ORB_ptr theORB);
+  SALOMEDS_Driver_i(SALOMEDS::Driver_ptr theDriver, CORBA::ORB_ptr theORB);
   ~SALOMEDS_Driver_i();
 
-  virtual std::string GetIOR() 
-    {
-      CORBA::String_var ior = _orb->object_to_string(_driver);
-      return std::string(ior);
-    }
+  virtual std::string GetIOR();
 
   virtual SALOMEDSImpl_TMPFile* Save(const SALOMEDSImpl_SComponent& theComponent,
-                                    const std::string& theURL,
-                                    long& theStreamLength,
-                                    bool isMultiFile);
+                                     const std::string& theURL,
+                                     long& theStreamLength,
+                                     bool isMultiFile);
 
   virtual SALOMEDSImpl_TMPFile* SaveASCII(const SALOMEDSImpl_SComponent& theComponent,
-                                         const std::string& theURL,
-                                         long& theStreamLength,
-                                         bool isMultiFile);
+                                          const std::string& theURL,
+                                          long& theStreamLength,
+                                          bool isMultiFile);
   
   virtual bool Load(const SALOMEDSImpl_SComponent& theComponent,
-                   const unsigned char* theStream,
-                   const long theStreamLength,
-                   const std::string& theURL,
-                   bool isMultiFile);
+                    const unsigned char* theStream,
+                    const long theStreamLength,
+                    const std::string& theURL,
+                    bool isMultiFile);
 
   virtual bool LoadASCII(const SALOMEDSImpl_SComponent& theComponent,
-                        const unsigned char* theStream,
-                        const long theStreamLength,
-                        const std::string& theURL,
-                        bool isMultiFile);
+                         const unsigned char* theStream,
+                         const long theStreamLength,
+                         const std::string& theURL,
+                         bool isMultiFile);
 
   virtual void Close(const SALOMEDSImpl_SComponent& theComponent);
  
-  virtual std::string ComponentDataType() 
-    {
-      CORBA::String_var ior = _driver->ComponentDataType();
-      return std::string(ior);
-    }
+  virtual std::string ComponentDataType();
 
+  virtual std::string Version();
 
   virtual std::string IORToLocalPersistentID(const SALOMEDSImpl_SObject& theSObject,
-                                            const std::string& IORString,
-                                            bool isMultiFile,
-                                            bool isASCII);
+                                             const std::string& IORString,
+                                             bool isMultiFile,
+                                             bool isASCII);
 
   virtual std::string LocalPersistentIDToIOR(const SALOMEDSImpl_SObject& theSObject,
-                                            const std::string& aLocalPersistentID,
-                                            bool isMultiFile,
-                                            bool isASCII);
+                                             const std::string& aLocalPersistentID,
+                                             bool isMultiFile,
+                                             bool isASCII);
 
   virtual bool CanCopy(const SALOMEDSImpl_SObject& theObject);
 
   virtual SALOMEDSImpl_TMPFile* CopyFrom(const SALOMEDSImpl_SObject& theObject, 
-                                        int& theObjectID,
-                                        long& theStreamLength);
+                                         int& theObjectID,
+                                         long& theStreamLength);
   
   virtual bool CanPaste(const std::string& theComponentName, int theObjectID);
 
   virtual std::string PasteInto(const unsigned char* theStream,
-                               const long theStreamLength,
-                               int theObjectID,
-                               const SALOMEDSImpl_SObject& theObject);
-
-  virtual SALOMEDSImpl_TMPFile* DumpPython(SALOMEDSImpl_Study* theStudy, 
-                                          bool isPublished, 
-                                          bool& isValidScript,
-                                          long& theStreamLength);
+                                const long theStreamLength,
+                                int theObjectID,
+                                const SALOMEDSImpl_SObject& theObject);
+
+  virtual SALOMEDSImpl_TMPFile* DumpPython(bool isPublished,
+                                           bool isMultiFile,
+                                           bool& isValidScript,
+                                           long& theStreamLength);
 };
 
 #include "SALOME_NamingService.hxx"
@@ -119,21 +111,17 @@ class SALOMEDS_DriverFactory_i : public virtual SALOMEDSImpl_DriverFactory
 {
 protected:  
   CORBA::ORB_var        _orb;
-  SALOME_NamingService* _name_service;
+  SALOME_NamingService_Abstract* _name_service = nullptr;
 
 public:
   
-  SALOMEDS_DriverFactory_i(CORBA::ORB_ptr theORB) 
-    {
-      _orb = CORBA::ORB::_duplicate(theORB);
-      _name_service = new SALOME_NamingService(_orb);
-    }
+  SALOMEDS_DriverFactory_i(CORBA::ORB_ptr theORB, bool isNSAvail = true);
+  
+  SALOMEDS_DriverFactory_i(CORBA::ORB_ptr theORB, SALOME_NamingService_Abstract *ns);
 
+  SALOME_NamingService_Abstract *getNS() const { return _name_service; }
 
-  ~SALOMEDS_DriverFactory_i() 
-  {
-    delete _name_service;
-  }
+  virtual ~SALOMEDS_DriverFactory_i();
    
   virtual SALOMEDSImpl_Driver* GetDriverByType(const std::string& theComponentType);