-// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2019 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
#include <Python.h>
#include "SALOMESDS_PickelizedPyObjServer.hxx"
+#include "SALOMESDS_Sha1Keeper.hxx"
namespace SALOMESDS
{
- class PickelizedPyObjRdExtServer : public PickelizedPyObjServer, public virtual POA_SALOME::PickelizedPyObjRdExtServer
+ class PickelizedPyObjRdExtInitServer;
+
+ class PickelizedPyObjRdExtServer : public PickelizedPyObjServerModifiable, public virtual POA_SALOME::PickelizedPyObjRdExtServer
{
public:
- PickelizedPyObjRdExtServer(DataScopeServer *father, const std::string& varName, const SALOME::ByteVec& value);
- PickelizedPyObjRdExtServer(DataScopeServer *father, const std::string& varName, PyObject *obj);
- ~PickelizedPyObjRdExtServer();
+ PickelizedPyObjRdExtServer(DataScopeServerBase *father, const std::string& varName, const SALOME::ByteVec& value);
+ PickelizedPyObjRdExtServer(DataScopeServerBase *father, const std::string& varName, PyObject *obj);
+ virtual ~PickelizedPyObjRdExtServer();
SALOME::PickelizedPyObjRdExtServer_ptr invokePythonMethodOn(const char *method, const SALOME::ByteVec& args);
+ virtual PickelizedPyObjRdExtInitServer *buildInitInstanceFrom(const std::string& varName);
+ public:
+ std::string getAccessStr() const;
private:
void checkRdExtnessOf(const std::string& methodName, PyObject *argsPy);
void checkListRdExtnessOf(const std::string& methodName, PyObject *argsPy);
void checkDictRdExtnessOf(const std::string& methodName, PyObject *argsPy);
void checkDictSetitemRdExtness(PyObject *argsPy);
+ public:
+ static const char ACCESS_REPR[];
+ };
+
+ class PickelizedPyObjRdExtFreeStyleServer : public PickelizedPyObjRdExtServer, public Sha1Keeper
+ {
+ public:
+ PickelizedPyObjRdExtFreeStyleServer(DataScopeServerBase *father, const std::string& varName, const SALOME::ByteVec& value, std::string&& compareFuncContent, SALOME::AutoPyRef&& compareFunc):PickelizedPyObjRdExtServer(father,varName,value),Sha1Keeper(std::move(compareFuncContent),std::move(compareFunc)) { }
+ PickelizedPyObjRdExtFreeStyleServer(DataScopeServerBase *father, const std::string& varName, PyObject *obj, std::string&& compareFuncContent, SALOME::AutoPyRef&& compareFunc):PickelizedPyObjRdExtServer(father,varName,obj),Sha1Keeper(std::move(compareFuncContent),std::move(compareFunc)) { }
+ PickelizedPyObjRdExtInitServer *buildInitInstanceFrom(const std::string& varName) override;
};
}