Salome HOME
[EDF27816] Management of double foreach and management of proxyfile lifecycle
[modules/yacs.git] / src / runtime / PythonNode.hxx
index 1d0ff6700777aed814e2976a3db0b81d40dd6b82..d83997cde3a257b07385da8baf77f41665dfa524 100644 (file)
@@ -34,6 +34,13 @@ namespace YACS
   {
     class YACSRUNTIMESALOME_EXPORT PythonEntry
     {
+    public:
+      static bool IsProxy( PyObject *ob );
+      /*! return true only if ob is a proxy and destroy flag set to true*/
+      static bool GetDestroyStatus( PyObject *ob );
+      static void DoNotTouchFileIfProxy( PyObject *ob );
+      static void UnlinkOnDestructorIfProxy( PyObject *ob );
+      static void IfProxyDoSomething( PyObject *ob, const char *meth );
     protected:
       PythonEntry();
       ~PythonEntry();
@@ -56,6 +63,7 @@ namespace YACS
       PyObject *_pyfuncSer;
       PyObject *_pyfuncUnser;
       PyObject *_pyfuncSimpleSer;
+      static PyObject *_pyClsBigObject;
       std::string _imposedResource;
       std::string _imposedContainer;
     public:
@@ -100,6 +108,8 @@ namespace YACS
       void setSqueezeStatus(bool sqStatus) { _autoSqueeze=sqStatus; }
       bool getSqueezeStatus() const { return _autoSqueeze; }
       void squeezeMemorySafe();
+    private:
+      void executeLocalInternal(const std::string& codeStr);
     protected:
       void squeezeMemory();
       void squeezeMemoryRemote();