]> SALOME platform Git repositories - modules/kernel.git/commitdiff
Salome HOME
Give possiblity to have access and data atomically in one shot for checkpoint/restart...
authorAnthony Geay <anthony.geay@edf.fr>
Thu, 22 Oct 2015 09:30:22 +0000 (11:30 +0200)
committerAnthony Geay <anthony.geay@edf.fr>
Thu, 22 Oct 2015 09:30:22 +0000 (11:30 +0200)
idl/SALOME_SDS.idl
src/SALOMESDS/SALOMESDS_DataScopeServer.cxx
src/SALOMESDS/SALOMESDS_DataScopeServer.hxx

index a01e1576c2114c777c4f66fff1919b8a695bab2e..43b5e25141dd6b7249c00d66e987d804c093ba7f 100644 (file)
@@ -115,6 +115,7 @@ module SALOME
   interface DataScopeServerTransaction : DataScopeServerBase
   {
     string getAccessOfVar(in string varName) raises (SALOME::SALOME_Exception);
+    void fetchAndGetAccessOfVar(in string varName, out string access, out ByteVec data) raises (SALOME::SALOME_Exception);
     Transaction createRdOnlyVarTransac(in string varName, in ByteVec constValue) raises (SALOME::SALOME_Exception);
     Transaction createRdExtVarTransac(in string varName, in ByteVec constValue) raises (SALOME::SALOME_Exception);
     Transaction createRdExtInitVarTransac(in string varName, in ByteVec constValue) raises (SALOME::SALOME_Exception);
index 76a78c8ee724e66b2a0b309f5001459a74306260..9d1fe0df89919f6854523210df513f3a9a4b2028 100644 (file)
@@ -515,6 +515,15 @@ char *DataScopeServerTransaction::getAccessOfVar(const char *varName)
   return CORBA::string_dup(ret.c_str());
 }
 
+/*!
+ * This method is here to retrieve atomically accessStr and picklization.
+ */
+void DataScopeServerTransaction::fetchAndGetAccessOfVar(const char *varName, CORBA::String_out access, SALOME::ByteVec_out data)
+{
+  access=getAccessOfVar(varName);
+  data=fetchSerializedContent(varName);
+}
+
 void DataScopeServerTransaction::createRdOnlyVarInternal(const std::string& varName, const SALOME::ByteVec& constValue)
 {
   checkNotAlreadyExistingVar(varName);
index 261b5ac00e1a3bbefbbd8ea1e7885e78bd456534..bdca97cf85ba39a81bd832ee17c98a636bfe0de4 100644 (file)
@@ -131,6 +131,7 @@ namespace SALOMESDS
     SALOME::ByteVec *waitForMonoThrRev(SALOME::KeyWaiter_ptr kw);
   public://remotely callable
     char *getAccessOfVar(const char *varName);
+    void fetchAndGetAccessOfVar(const char *varName, CORBA::String_out access, SALOME::ByteVec_out data);
     SALOME::Transaction_ptr createRdOnlyVarTransac(const char *varName, const SALOME::ByteVec& constValue);
     SALOME::Transaction_ptr createRdExtVarTransac(const char *varName, const SALOME::ByteVec& constValue);
     SALOME::Transaction_ptr createRdExtInitVarTransac(const char *varName, const SALOME::ByteVec& constValue);