X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FSALOMESDS%2FSALOMESDS_PickelizedPyObjRdWrServer.cxx;h=9efb00b44238c6b6c1fb4c8f229315613c08e1ef;hb=4d57f98cebfdeb55bfcc1a73b698bfe7a36abb4e;hp=848cefc1626fff6723ab74869ebc0848f81090ed;hpb=09dcd16dea7c5439cdd708de6824237ea4382fb9;p=modules%2Fkernel.git diff --git a/src/SALOMESDS/SALOMESDS_PickelizedPyObjRdWrServer.cxx b/src/SALOMESDS/SALOMESDS_PickelizedPyObjRdWrServer.cxx index 848cefc16..9efb00b44 100644 --- a/src/SALOMESDS/SALOMESDS_PickelizedPyObjRdWrServer.cxx +++ b/src/SALOMESDS/SALOMESDS_PickelizedPyObjRdWrServer.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2014 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 @@ -27,16 +27,18 @@ 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) { } @@ -52,9 +54,6 @@ void PickelizedPyObjRdWrServer::setSerializedContent(const SALOME::ByteVec& newV setSerializedContentInternal(newValue); } -/*! - * Called remotely -> to protect against throw - */ SALOME::PickelizedPyObjRdWrServer_ptr PickelizedPyObjRdWrServer::invokePythonMethodOn(const char *method, const SALOME::ByteVec& args) { if(!_self) @@ -99,7 +98,7 @@ SALOME::PickelizedPyObjRdWrServer_ptr PickelizedPyObjRdWrServer::invokePythonMet } 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)); @@ -108,3 +107,15 @@ SALOME::PickelizedPyObjRdWrServer_ptr PickelizedPyObjRdWrServer::invokePythonMet 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); +}