[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#249201: ITP: libfactory++ -- C++ template factory framework

martin f krafft wrote:
Package: wnpp
Severity: wishlist

* Package name    : libfactory++
  Version         : 0.1.0
  Upstream Author : Martin F. Krafft <krafft@ailab.ch>
* URL             : http://cvs.ailab.ch/cgi-bin/viewcvs.cgi/libfactory%2B%2B
* License         : Artistic
  Description     : C++ template factory framework

 libfactory++ is a C++ template framework for run-time dynamic type
 instantiation. You can register single classes or whole hierarchies, and then
 tell libfactory++ to instantiate objects using the registration key. For
 instance, if you register class A with key 1 and a child class A::B with key
 2, then you could say create(1) to obtain a pointer to a newly allocated and
 constructed A object, or create(2) to return an A* containing a new instance
 of A::B.
 libfactory++ differs from other factory approaches mainly in its flexibility.
 For one, libfactory++ can use any constructor a type supports, and allows you
 to choose (and configure) the constructor to use for each call to create().
 Second, it supports custom allocators, allowing you to use e.g. a memory pool
 rather than continuous invocations of 'new'.
 Note that the library is not (yet) complete and it's not thoroughly tested.
 However, given the effort and grief I went through in writing it, I would
 like to make it available to folks, get people to test it, and hopefully have
 some peeps submit improvements.
 It's not yet documented, although the usage should be fairly straight
 forward. I am hoping to find someone else to document it as I suck at
 documentation and as the author, it's exceptionally difficult to stay
 didactically correct.
 libfactory++ only exists as a -dev package as it's only a bunch of C++ header
 files. Therefore, no static or shared library is necessary, allowing for
 ultimate flexibility.

How much work has been done on this library?  Any examples in use yet?

-- Dan Weber

Reply to: