X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSALOMESDS%2FSALOMESDS_PickelizedPyObjServer.hxx;h=365ac5bdb9f46910ffe677c5084f627a418d5786;hb=f6120c1bdb84ed1cc827ffab8284c0ac2709189f;hp=2b64906511f26c302cca5db7544495a6e205ed79;hpb=c52b6a2d91f19fe9d8481665a86cb02e2619dc2c;p=modules%2Fkernel.git diff --git a/src/SALOMESDS/SALOMESDS_PickelizedPyObjServer.hxx b/src/SALOMESDS/SALOMESDS_PickelizedPyObjServer.hxx index 2b6490651..365ac5bdb 100644 --- a/src/SALOMESDS/SALOMESDS_PickelizedPyObjServer.hxx +++ b/src/SALOMESDS/SALOMESDS_PickelizedPyObjServer.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2021 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 @@ -37,17 +37,19 @@ namespace SALOMESDS public: PickelizedPyObjServer(DataScopeServerBase *father, const std::string& varName, const SALOME::ByteVec& value); PickelizedPyObjServer(DataScopeServerBase *father, const std::string& varName, PyObject *obj); - ~PickelizedPyObjServer(); + virtual ~PickelizedPyObjServer(); void setSerializedContent(const SALOME::ByteVec& newValue); SALOME::ByteVec *fetchSerializedContent(); public: bool isDict(); void checkKeyNotAlreadyPresent(PyObject *key); void checkKeyPresent(PyObject *key); - void addKeyValueHard(PyObject *key, PyObject *value); - void addKeyValueErrorIfAlreadyExisting(PyObject *key, PyObject *value); - void removeKeyInVarErrorIfNotAlreadyExisting(PyObject *key); PyObject *getPyObj() const { return _self; } + public: + virtual void addKeyValueHard(PyObject *key, PyObject *value); + virtual void removeKeyInVarErrorIfNotAlreadyExisting(PyObject *key); + virtual void addKeyValueErrorIfAlreadyExisting(PyObject *key, PyObject *value) = 0; + virtual std::string getAccessStr() const = 0; public: static void FromByteSeqToCpp(const SALOME::ByteVec& bsToBeConv, std::string& ret); static void FromCppToByteSeq(const std::string& strToBeConv, SALOME::ByteVec& ret); @@ -68,6 +70,16 @@ namespace SALOMESDS PyObject *_self; PortableServer::POA_var _poa; }; + + class PickelizedPyObjServerModifiable : public PickelizedPyObjServer + { + public: + PickelizedPyObjServerModifiable(DataScopeServerBase *father, const std::string& varName, const SALOME::ByteVec& value); + PickelizedPyObjServerModifiable(DataScopeServerBase *father, const std::string& varName, PyObject *obj); + public: + void addKeyValueErrorIfAlreadyExisting(PyObject *key, PyObject *value); + void removeKeyInVarErrorIfNotAlreadyExisting(PyObject *key); + }; } #endif