43 if (strcmp(clname,
"TBufferFile") == 0) {
72 if (className ==
"TBufferFile") {
75 if (className.find(
"__cppyy_internal::Dispatcher") == 0) {
76 PyErr_Format(PyExc_IOError,
77 "generic streaming of Python objects whose class derives from a C++ class is not supported. "
78 "Please refer to the Python pickle documentation for instructions on how to define "
79 "a custom __reduce__ method for the derived Python class");
88 PyErr_Format(PyExc_IOError,
"could not stream object of type %s",
103 PyTuple_SetItem(result, 0, s_expand);
104 PyTuple_SetItem(result, 1, res2);
PyObject * op_reduce(PyObject *self, PyObject *)
PyROOT object proxy pickle support Turn the object proxy instance into a character stream and return ...
#define PyBytes_FromString
#define PyBytes_FromStringAndSize
The concrete implementation of TBuffer for writing/reading to/from a ROOT file or socket.
void WriteFastArray(const Bool_t *b, Long64_t n) override
Write array of n bools into the I/O buffer.
void * ReadObjectAny(const TClass *cast) override
Read object from I/O buffer.
void Reset() override
Reset buffer object. Resets map and buffer offset.
Int_t WriteObjectAny(const void *obj, const TClass *ptrClass, Bool_t cacheReuse=kTRUE) override
Write object to I/O buffer.
static TClass * GetClass(const char *name, Bool_t load=kTRUE, Bool_t silent=kFALSE)
Static method returning pointer to TClass of the specified class name.
CPYCPPYY_EXTERN PyObject * Instance_FromVoidPtr(void *addr, const std::string &classname, bool python_owns=false)
CPYCPPYY_EXTERN void Instance_SetReduceMethod(PyCFunction reduceMethod)
CPYCPPYY_EXTERN std::string Instance_GetScopedFinalName(PyObject *pyobject)
CPYCPPYY_EXTERN void * Instance_AsVoidPtr(PyObject *pyobject)
PyObject * AddCPPInstancePickling(PyObject *self, PyObject *args)
Set reduce attribute for CPPInstance objects.
PyObject * CPPInstanceExpand(PyObject *self, PyObject *args)
Deserialize pickled objects.