On Jan 21, Arthur Corliss wrote: > Greetings: > > I previously submitted Object::BaseClass for consideration as part of CPAN. > I've spent the better part of this day reading pods for the Class::* modules, > and I believe that my module would probably be better classified here. > > I'm still requesting inclusion in CPAN based on the following reasons: > > --I haven't found a module on CPAN (correct me if I missed it) > that tracks parent<->child relationships (in terms of the > parent being a container for its children) and does an orderly > termination of objects as a result automatically
Be careful about your terminology here. "Parent" and "child" have well-established meanings in OO literature. They refer to the "is-a" relationship (inheritance), not the "has-a" relationship (containership). A base class has a well-established definition as a virtual class from which one inherits. This confusion may also be limiting your success in finding other classes that provide similar functionality. For example, Class::Container, Class::Composite::Container, Meta::Ds::Container, Class::UI::Container, Class::Class, Class::Struct::FIELDS, POE, and probably several other CPAN modules may hover around the functionality you're interested in. > --While some modules provide auto-accessor capabilities, they > don't do so in quite the same manner, nor do they combine > that capability for psuedo properties like state flag registers > --Most do not provide a psuedo event-handling mechanism, either > > A little background on methodology: > > This module is meant to be subclassed. A custom object would provide one > mandatory method which is called by the constructor. This method defines the > object's properties and flags, which consists of (optional) event handlers > for each flag, and read, write, or unified property accessors. A generic > accessor is provided and can work in any of the mentioned modes. All custom > handlers and accessors would account for the rest of the derived class. > > Both flags and properties are exposed directly in the interface as virtual > methods, with a standard interface. Flags and properties are handled > differently internally, but internal methods do all conform to a standard > method of invocation for each type. > > Events are triggered by manipulation of the state flag registers. > > So here's where you can tell me to go away, if need be. I believe that this > peculiar mix of functionality would be somewhat tedious to reproduce from the > existing modules, and hence, could be made available as a CPAN module. > > If you guys don't think I'm barking up the wrong tree, I would suggest that a > better name would be Class::Hybrid or Class::Generic. I would be happy to > hear any suggestions you have as well. The functionality you're trying to provide is clearly useful; I think that naming is really key to your module being *discovered and used* by the open source community. Mention containership, or static definition, or deterministic destruction, or declarative programming, or ownership hierarchy in the class name. - Kurt