4#ifndef PYROOT_TMEMORYREGULATOR_H
5#define PYROOT_TMEMORYREGULATOR_H
11#include <unordered_map>
48 typedef std::unordered_map< TObject*, PyObject* >
ObjectMap_t;
49 typedef std::unordered_map< PyObject*, ObjectMap_t::iterator >
WeakRefMap_t;
static Bool_t UnregisterObject(TObject *object)
stop tracking <object>, without notification
static Bool_t RegisterObject(ObjectProxy *pyobj, TObject *object)
start tracking <object> proxied by <pyobj>
virtual void RecursiveRemove(TObject *object)
Recursively remove this object from a list.
~TMemoryRegulator()
cleanup weakref cache
std::unordered_map< TObject *, PyObject * > ObjectMap_t
static ObjectMap_t * fgObjectTable
static PyObject * ObjectEraseCallback(PyObject *, PyObject *pyref)
void ClearProxiedObjects()
clean up all tracked objects
std::unordered_map< PyObject *, ObjectMap_t::iterator > WeakRefMap_t
static PyObject * RetrieveObject(TObject *object, Cppyy::TCppType_t klass)
lookup <object>, return old proxy if tracked
static WeakRefMap_t * fgWeakRefTable
Mother of all ROOT objects.