}
SALOMEDSImpl_TMPFile* SALOMEDS_Driver_i::Save(const SALOMEDSImpl_SComponent& theComponent,
- const std::string& theURL,
- long& theStreamLength,
- bool isMultiFile)
+ const std::string& theURL,
+ long& theStreamLength,
+ bool isMultiFile)
{
SALOMEDS::SComponent_var sco = SALOMEDS_SComponent_i::New (theComponent, _orb);
CORBA::String_var url = CORBA::string_dup(theURL.c_str());
SALOMEDSImpl_TMPFile* aTMPFile = new SALOMEDS_TMPFile_i(aStream._retn());
theStreamLength = aTMPFile->Size();
+
+ sco->UnRegister();
SALOMEDS::lock();
return aTMPFile;
SALOMEDSImpl_TMPFile* aTMPFile = new SALOMEDS_TMPFile_i(aStream._retn());
theStreamLength = aTMPFile->Size();
+
+ sco->UnRegister();
SALOMEDS::lock();
return aTMPFile;
if ( !CORBA::is_nil(_driver) )
isOk = _driver->Load(sco.in(), aStream.in(), url, isMultiFile);
+ sco->UnRegister();
SALOMEDS::lock();
return isOk;
}
if ( !CORBA::is_nil(_driver) )
isOk = _driver->LoadASCII(sco.in(), aStream.in(), url, isMultiFile);
+ sco->UnRegister();
SALOMEDS::lock();
return isOk;
}
SALOMEDS::unlock();
if ( !CORBA::is_nil(_driver) )
_driver->Close(sco.in());
+ sco->UnRegister();
SALOMEDS::lock();
}
}
std::string SALOMEDS_Driver_i::IORToLocalPersistentID(const SALOMEDSImpl_SObject& theSObject,
- const std::string& IORString,
- bool isMultiFile,
- bool isASCII)
+ const std::string& IORString,
+ bool isMultiFile,
+ bool isASCII)
{
SALOMEDS::SObject_var so = SALOMEDS_SObject_i::New (theSObject, _orb);
- CORBA::String_var ior = CORBA::string_dup(IORString.c_str());
-
SALOMEDS::unlock();
std::string pstr = "";
if ( !CORBA::is_nil(_driver) ) {
- CORBA::String_var pers_string =_driver->IORToLocalPersistentID(so.in(), ior.in(), isMultiFile, isASCII);
+ CORBA::String_var pers_string =_driver->IORToLocalPersistentID(so.in(), IORString.c_str(),
+ isMultiFile, isASCII);
pstr = pers_string;
}
+ so->UnRegister();
SALOMEDS::lock();
return pstr;
std::string SALOMEDS_Driver_i::LocalPersistentIDToIOR(const SALOMEDSImpl_SObject& theObject,
- const std::string& aLocalPersistentID,
- bool isMultiFile,
- bool isASCII)
+ const std::string& aLocalPersistentID,
+ bool isMultiFile,
+ bool isASCII)
{
SALOMEDS::SObject_var so = SALOMEDS_SObject_i::New (theObject, _orb);
CORBA::String_var pers_string = CORBA::string_dup(aLocalPersistentID.c_str());
CORBA::String_var IOR = _driver->LocalPersistentIDToIOR(so.in(), pers_string.in(), isMultiFile, isASCII);
ior = IOR;
}
-
+ so->UnRegister();
SALOMEDS::lock();
return ior;
}
SALOMEDSImpl_TMPFile* aTMPFile = new SALOMEDS_TMPFile_i(aStream._retn());
theStreamLength = aTMPFile->Size();
theObjectID = anObjectID;
+
+ so->UnRegister();
SALOMEDS::lock();
return aTMPFile;
}
std::string SALOMEDS_Driver_i::PasteInto(const unsigned char* theStream,
- const long theStreamLength,
- int theObjectID,
- const SALOMEDSImpl_SObject& theObject)
+ const long theStreamLength,
+ int theObjectID,
+ const SALOMEDSImpl_SObject& theObject)
{
SALOMEDS::SObject_var so = SALOMEDS_SObject_i::New (theObject, _orb);
CORBA::Octet* anOctetBuf = (CORBA::Octet*)theStream;
entry = ret_so->GetID();
}
+ so->UnRegister();
SALOMEDS::lock();
return entry;