Salome HOME
updated copyright message
[modules/kernel.git] / src / SALOMESDS / SALOMESDS_PickelizedPyObjRdExtServer.cxx
index 7a5cd58b76ca52859aff34bcf2b04133d64e8cab..c4e107c931707b48bc10ebfc20dc7a6996d2c5b7 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2023  CEA, EDF, OPEN CASCADE
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
@@ -19,6 +19,7 @@
 // Author : Anthony GEAY (EDF R&D)
 
 #include "SALOMESDS_PickelizedPyObjRdExtServer.hxx"
+#include "SALOMESDS_PickelizedPyObjRdExtInitServer.hxx"
 #include "SALOMESDS_DataScopeServer.hxx"
 #include "SALOMESDS_Exception.hxx"
 
@@ -65,7 +66,7 @@ SALOME::PickelizedPyObjRdExtServer_ptr PickelizedPyObjRdExtServer::invokePythonM
   Py_XDECREF(argsPy);
   if(!res)
     {
-      std::ostringstream oss; oss << "PickelizedPyObjRdExtServer::invokePythonMethodOn : Problem during invokation serverside of Method \"" << method << "\" !";
+      std::ostringstream oss; oss << "PickelizedPyObjRdExtServer::invokePythonMethodOn : Problem during invocation serverside of Method \"" << method << "\" !";
       throw Exception(oss.str());
     }
   PickelizedPyObjRdExtServer *ret(new PickelizedPyObjRdExtServer(_father,DataScopeServer::BuildTmpVarNameFrom(getVarNameCpp()),res));
@@ -75,6 +76,12 @@ SALOME::PickelizedPyObjRdExtServer_ptr PickelizedPyObjRdExtServer::invokePythonM
   return SALOME::PickelizedPyObjRdExtServer::_narrow(obj);
 }
 
+PickelizedPyObjRdExtInitServer *PickelizedPyObjRdExtServer::buildInitInstanceFrom(const std::string& varName)
+{
+  PyObject *pyobj(this->getPyObj()); Py_XINCREF(pyobj);
+  return new PickelizedPyObjRdExtInitServer(getFather(),varName,pyobj);
+}
+
 void PickelizedPyObjRdExtServer::checkRdExtnessOf(const std::string& methodName, PyObject *argsPy)
 {
   if(!_self)
@@ -82,7 +89,7 @@ void PickelizedPyObjRdExtServer::checkRdExtnessOf(const std::string& methodName,
       Py_XDECREF(argsPy);
       throw Exception("PickelizedPyObjRdExtServer::checkRdExtnessOf : self is NULL !");
     }
-  if(PyTuple_Check(_self)==1 || PyString_Check(_self)==1 || PyInt_Check(_self)==1 || PyBool_Check(_self)==1 || PyFloat_Check(_self)==1)
+  if(PyTuple_Check(_self)==1 || PyBytes_Check(_self)==1 || PyLong_Check(_self)==1 || PyBool_Check(_self)==1 || PyFloat_Check(_self)==1)
     return ;//_self is tuple, str, int or float -> immutable in python. So no method can break the RdExtness of _self.
   if(PyList_Check(_self)==1)
     checkListRdExtnessOf(methodName,argsPy);
@@ -142,3 +149,10 @@ std::string PickelizedPyObjRdExtServer::getAccessStr() const
 {
   return std::string(ACCESS_REPR);
 }
+
+
+PickelizedPyObjRdExtInitServer *PickelizedPyObjRdExtFreeStyleServer::buildInitInstanceFrom(const std::string& varName)
+{
+  PyObject *pyobj(this->getPyObj()); Py_XINCREF(pyobj);
+  return new PickelizedPyObjRdExtInitFreeStyleServer(getFather(),varName,pyobj,std::move(_cmp_func_content),std::move(_cmp_func));
+}