Hi, I'm trying to wrap the following class:
class Node { public: virtual ~Node(); virtual void compute(); void incRef(); void decRef(); private: unsigned _refCount }; As you can see, the class is reference counted. In most places in my code, I pass around Node* pointers. I rarely call incRef() and decRef() to avoid overhead. I only call incRef() and decRef() in places where they are absolutely needed. For instance: void addNode(Node* n) stores a pointer to n and calls n->incRef(). Likewise: void remNode() removes its copy of the Node pointer and calls n->decRef(). Finally: Node* getNode() Returns a pointer to the Node stored by addNode(). It does _not_ call n->incRef(). Now, let's say I wrapped the three functions above with Boost.Python. I'm looking for the following reference counting behavior when doing the following in Python: 0>> x = Node() # refs = 1 1>> addNode(x) # refs = 2 2>> y = getNode() # refs = 3 3>> del x # refs = 2 4>> del y # refs = 1 5>> remNode() # refs = 0 How do I wrap Node such that I get the reference counting behavior above? I took a look at: http://wiki.python.org/moin/boost.python/PointersAndSmartPointers but at first glance it doesn't appear to be what I want. I'm not using smart pointers, instead I'm manually incrementing and decrementing the reference count. Thanks in advance for any help. nathan _______________________________________________ Cplusplus-sig mailing list Cplusplus-sig@python.org http://mail.python.org/mailman/listinfo/cplusplus-sig