-// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2024 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
using namespace SALOMESDS;
-PickelizedPyObjRdWrServer::PickelizedPyObjRdWrServer(DataScopeServer *father, const std::string& typeName, const std::string& varName):PickelizedPyObjServer(father,varName,CreateDftObjFromType(father->getGlobals(),typeName))
+const char PickelizedPyObjRdWrServer::ACCESS_REPR[]="RdWr";
+
+PickelizedPyObjRdWrServer::PickelizedPyObjRdWrServer(DataScopeServerBase *father, const std::string& typeName, const std::string& varName):PickelizedPyObjServerModifiable(father,varName,CreateDftObjFromType(father->getGlobals(),typeName))
{
}
-PickelizedPyObjRdWrServer::PickelizedPyObjRdWrServer(DataScopeServer *father, const std::string& varName, const SALOME::ByteVec& value):PickelizedPyObjServer(father,varName,value)
+PickelizedPyObjRdWrServer::PickelizedPyObjRdWrServer(DataScopeServerBase *father, const std::string& varName, const SALOME::ByteVec& value):PickelizedPyObjServerModifiable(father,varName,value)
{
}
//! obj is consumed
-PickelizedPyObjRdWrServer::PickelizedPyObjRdWrServer(DataScopeServer *father, const std::string& varName, PyObject *obj):PickelizedPyObjServer(father,varName,obj)
+PickelizedPyObjRdWrServer::PickelizedPyObjRdWrServer(DataScopeServerBase *father, const std::string& varName, PyObject *obj):PickelizedPyObjServerModifiable(father,varName,obj)
{
}
setSerializedContentInternal(newValue);
}
-/*!
- * Called remotely -> to protect against throw
- */
SALOME::PickelizedPyObjRdWrServer_ptr PickelizedPyObjRdWrServer::invokePythonMethodOn(const char *method, const SALOME::ByteVec& args)
{
if(!_self)
if(errTyp)
{
PyObject *ob(PyObject_Str(errTyp));
- oss2 << " type : \"" << (const char *)PyString_AsString(ob) << "\"";
+ oss2 << " type : \"" << (const char *)PyUnicode_AsUTF8(ob) << "\"";
Py_XDECREF(ob); Py_XDECREF(errTyp);
}
if(errValue)
{
PyObject *ob(PyObject_Str(errValue));
- oss2 << " value : \"" << (const char *)PyString_AsString(ob) << "\"";
+ oss2 << " value : \"" << (const char *)PyUnicode_AsUTF8(ob) << "\"";
Py_XDECREF(ob); Py_XDECREF(errValue);
}
oss2 << " )";
if(errTB)
{
PyObject *ob(PyObject_Str(errTB));
- oss2 << "( traceback : \"" << (const char *)PyString_AsString(ob) << "\"";
+ oss2 << "( traceback : \"" << (const char *)PyUnicode_AsUTF8(ob) << "\"";
Py_XDECREF(ob); Py_XDECREF(errTB);
}
oss2 << " )";
PyErr_Clear();
- oss << "PickelizedPyObjRdWrServer::invokePythonMethodOn : Problem during invokation serverside of Method \"" << method << "\" ! Details are : " << oss2.str() << "\n\n" << "TraceBack is : " << oss3.str();
+ oss << "PickelizedPyObjRdWrServer::invokePythonMethodOn : Problem during invocation serverside of Method \"" << method << "\" ! Details are : " << oss2.str() << "\n\n" << "TraceBack is : " << oss3.str();
throw Exception(oss.str());
}
PickelizedPyObjRdWrServer *ret(new PickelizedPyObjRdWrServer(_father,DataScopeServer::BuildTmpVarNameFrom(getVarNameCpp()),res));
CORBA::Object_var obj(poa->id_to_reference(id));
return SALOME::PickelizedPyObjRdWrServer::_narrow(obj);
}
+
+void PickelizedPyObjRdWrServer::addKeyValueHard(PyObject *key, PyObject *value)
+{
+ bool isOK(PyDict_SetItem(_self,key,value)==0);
+ if(!isOK)
+ throw Exception("PickelizedPyObjRdWrServer::addKeyValueHard : error when trying to add key,value to dict !");
+}
+
+std::string PickelizedPyObjRdWrServer::getAccessStr() const
+{
+ return std::string(ACCESS_REPR);
+}