Salome HOME
add method NameChanged to update title name
[modules/kernel.git] / src / SALOMESDS / SALOMESDS_Transaction.hxx
index 2bed22478a995c2aa0d7fdf2b272629a5b9539b0..c7fced70e0acedb42b34165b688d7742904156f4 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2015  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
@@ -34,6 +34,8 @@
 namespace SALOMESDS
 {
   class PickelizedPyObjServer;
+  class PickelizedPyObjRdWrServer;
+  class PickelizedPyObjRdExtServer;
 
   class SALOMESDS_EXPORT Transaction : public virtual POA_SALOME::Transaction, public POAHolder
   {
@@ -81,6 +83,13 @@ namespace SALOMESDS
     void perform();
   };
 
+  class TransactionRdExtInitVarCreate : public TransactionVarCreate
+  {
+  public:
+    TransactionRdExtInitVarCreate(DataScopeServerTransaction *dsct, const std::string& varName, const SALOME::ByteVec& constValue):TransactionVarCreate(dsct,varName,constValue) { }
+    void perform();
+  };
+
   class TransactionRdWrVarCreate : public TransactionVarCreate
   {
   public:
@@ -88,6 +97,16 @@ namespace SALOMESDS
     void perform();
   };
 
+  class TransactionKillVar : public Transaction
+  {
+  public:
+    TransactionKillVar(DataScopeServerTransaction *dsct, const std::string& varName);
+    void prepareRollBackInCaseOfFailure();
+    void perform();
+    void rollBack();
+    void notify();
+  };
+
   class PickelizedPyObjServer;
 
   class TransactionDictModify : public Transaction
@@ -138,6 +157,35 @@ namespace SALOMESDS
   private:
     PyObject *_key;
   };
+
+  class TransactionMorphRdWrIntoRdOnly : public Transaction, public virtual POA_SALOME::TransactionRdWrAccess
+  {
+  public:
+    TransactionMorphRdWrIntoRdOnly(DataScopeServerTransaction *dsct, const std::string& varName);
+  public:
+    SALOME::PickelizedPyObjRdWrServer_ptr getVar();
+  public:
+    void prepareRollBackInCaseOfFailure();
+    void perform();
+    void rollBack();
+    void notify();
+  };
+
+  /*!
+   * This transaction switch from RdExt to RdExtInit in constructor and when perform called RdExtInit to RdExt.
+   */
+  class TransactionMultiKeyAddSession : public Transaction, public virtual POA_SALOME::TransactionMultiKeyAddSession
+  {
+  public:
+    TransactionMultiKeyAddSession(DataScopeServerTransaction *dsct, const std::string& varName);
+  public://remotely callable
+    void addKeyValueInVarErrorIfAlreadyExistingNow(const SALOME::ByteVec& key, const SALOME::ByteVec& value);
+  public:
+    void prepareRollBackInCaseOfFailure();
+    void perform();
+    void rollBack();
+    void notify();
+  };
 }
 
 #endif