$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
From: Anand, Kumar (kanand_at_[hidden])
Date: 2006-05-17 13:29:54
Hi,
A class has static method to create and a static method to destroy. And
the constructors and destructor of the class is marked as private. How
do I expose such a class in Python?
Eg.
class A {
   private:
             static A* instance;
         A() { };
              ~A {};
   public:
           static A* create () 
{ 
     If(instance != 0)
                          instance = new A();
                     return instance;
                }
            static void destroy() 
            { 
                 delete instance;
                  instance = 0;
             }
};
In Boost Python, I tried the following but the code doesn't compile
unless I make the destructor of class A as public.
namespace bp = boost::python;
bp::class_<A> ("A", bp::no_init)
       .def("create", &A::create)
       .def("destroy", &A::destroy)
        .staticmethod("create")
        .staticmethod("destroy")
    ;
Any suggestions?
Thanks
Kumar