X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSALOMEDS%2FSALOMEDS_Driver_i.cxx;h=a5597708d55360c57223c485f13dfa8c23156dbf;hb=b741d9021836f43ec742959b06b0941e1a1da7c9;hp=8c704beefabd60e8a4f146e7e84028d81d24cb1e;hpb=e429ce02076e083051c6520e0d7113022bd67b18;p=modules%2Fkernel.git diff --git a/src/SALOMEDS/SALOMEDS_Driver_i.cxx b/src/SALOMEDS/SALOMEDS_Driver_i.cxx index 8c704beef..a5597708d 100644 --- a/src/SALOMEDS/SALOMEDS_Driver_i.cxx +++ b/src/SALOMEDS/SALOMEDS_Driver_i.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2020 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 @@ -28,6 +28,7 @@ #include "SALOMEDS_Study_i.hxx" #include "SALOMEDS.hxx" #include +#include #include #include CORBA_CLIENT_HEADER(SALOME_Session) @@ -79,7 +80,7 @@ SALOMEDSImpl_TMPFile* SALOMEDS_Driver_i::Save(const SALOMEDSImpl_SComponent& the aStream = _driver->Save(sco.in(), url, isMultiFile); SALOMEDSImpl_TMPFile* aTMPFile = new SALOMEDS_TMPFile_i(aStream._retn()); - theStreamLength = aTMPFile->Size(); + theStreamLength = (long)aTMPFile->Size(); //!< TODO: conversion from size_t to long sco->UnRegister(); SALOMEDS::lock(); @@ -102,7 +103,7 @@ SALOMEDSImpl_TMPFile* SALOMEDS_Driver_i::SaveASCII(const SALOMEDSImpl_SComponent aStream = _driver->SaveASCII(sco.in(), url, isMultiFile); SALOMEDSImpl_TMPFile* aTMPFile = new SALOMEDS_TMPFile_i(aStream._retn()); - theStreamLength = aTMPFile->Size(); + theStreamLength = (long)aTMPFile->Size(); //!< TODO: conversion from size_t to long sco->UnRegister(); SALOMEDS::lock(); @@ -187,7 +188,12 @@ std::string SALOMEDS_Driver_i::ComponentDataType() std::string SALOMEDS_Driver_i::Version() { - return !CORBA::is_nil( _engine ) ? _engine->getVersion() : std::string(""); + std::string ver; + if ( !CORBA::is_nil( _engine )) { + CORBA::String_var v = _engine->getVersion(); + ver = v; + } + return ver; } std::string SALOMEDS_Driver_i::IORToLocalPersistentID(const SALOMEDSImpl_SObject& theSObject, @@ -266,7 +272,7 @@ SALOMEDSImpl_TMPFile* SALOMEDS_Driver_i::CopyFrom(const SALOMEDSImpl_SObject& th aStream = _driver->CopyFrom(so.in(), anObjectID); SALOMEDSImpl_TMPFile* aTMPFile = new SALOMEDS_TMPFile_i(aStream._retn()); - theStreamLength = aTMPFile->Size(); + theStreamLength = (long)aTMPFile->Size(); //!< TODO: conversion from size_t to long theObjectID = anObjectID; so->UnRegister(); @@ -316,25 +322,21 @@ std::string SALOMEDS_Driver_i::PasteInto(const unsigned char* theStream, return entry; } -SALOMEDSImpl_TMPFile* SALOMEDS_Driver_i::DumpPython(SALOMEDSImpl_Study* theStudy, - bool isPublished, +SALOMEDSImpl_TMPFile* SALOMEDS_Driver_i::DumpPython(bool isPublished, bool isMultiFile, bool& isValidScript, long& theStreamLength) { - SALOMEDS_Study_i * st_servant = SALOMEDS_Study_i::GetStudyServant(theStudy, _orb);//new SALOMEDS_Study_i (theStudy, _orb); - SALOMEDS::Study_var st = SALOMEDS::Study::_narrow(st_servant->_this()); - SALOMEDS::unlock(); Engines::TMPFile_var aStream; CORBA::Boolean aValidScript = true; // VSR: maybe should be false by default ??? if ( !CORBA::is_nil( _engine ) ) - aStream = _engine->DumpPython(st.in(), isPublished, isMultiFile, aValidScript); + aStream = _engine->DumpPython(isPublished, isMultiFile, aValidScript); SALOMEDSImpl_TMPFile* aTMPFile = new Engines_TMPFile_i(aStream._retn()); - theStreamLength = aTMPFile->Size(); + theStreamLength = (long)aTMPFile->Size(); //!< TODO: conversion from size_t to long isValidScript = aValidScript; SALOMEDS::lock(); @@ -346,12 +348,16 @@ SALOMEDSImpl_TMPFile* SALOMEDS_Driver_i::DumpPython(SALOMEDSImpl_Study* theStudy // SALOMEDS_DriverFactory //############################################################################################################### -SALOMEDS_DriverFactory_i::SALOMEDS_DriverFactory_i(CORBA::ORB_ptr theORB) +SALOMEDS_DriverFactory_i::SALOMEDS_DriverFactory_i(CORBA::ORB_ptr theORB, bool isNSAvail):_orb( CORBA::ORB::_duplicate(theORB) ) { - _orb = CORBA::ORB::_duplicate(theORB); - _name_service = new SALOME_NamingService(_orb); + if(isNSAvail) + _name_service = new SALOME_NamingService(_orb); } +SALOMEDS_DriverFactory_i::SALOMEDS_DriverFactory_i(CORBA::ORB_ptr theORB, SALOME_NamingService_Abstract *ns):_orb( CORBA::ORB::_duplicate(theORB) ) +{ + _name_service = ns->clone(); +} SALOMEDS_DriverFactory_i::~SALOMEDS_DriverFactory_i() { @@ -378,9 +384,9 @@ SALOMEDSImpl_Driver* SALOMEDS_DriverFactory_i::GetDriverByType(const std::string if (!CORBA::is_nil(obj)) { SALOME::Session_var session = SALOME::Session::_narrow(obj); if (!CORBA::is_nil(session)) { - Engines::EngineComponent_var anEngine = session->GetComponent(theComponentType.c_str()); - if (!CORBA::is_nil(anEngine)) - driver = new SALOMEDS_Driver_i(anEngine, _orb); + Engines::EngineComponent_var anEngine = session->GetComponent(theComponentType.c_str()); + if (!CORBA::is_nil(anEngine)) + driver = new SALOMEDS_Driver_i(anEngine, _orb); } } }