Octopus Library

    The octopus is a design pattern that was codified in 2001 and first implemented in 2002.  It may or may not be unique to the HOOPLE libraries.  Each octopus has a collection of tentacle objects.  The tentacles are polymorphic objects that each know how to handle a particular type of request.  Requests are encapsulated in infoton objects, where an infoton is a fundamental particle for the Octopus pattern.  Presented with an infoton, an octopus will route it to the appropriate tentacle for handling or will destroy it if there are no handlers.



entity definitions group [h, cpp]

Defines what it means to be an entity known to an octopus (i.e., a client or a user of the services).  Also defines the request identifier type that tags an entity's infoton commands uniquely.

entity_data_bin class [h, cpp]

infoton class [h, cpp]

octopus class [h, cpp]

tentacle class [h, cpp]

Gets the real work done for an octopus by acting as its armature.  An octopus can have from zero to N tentacles that each handle from 1 to M types of infoton requests.  The matching rule that makes an octopus pass an infoton to a tentacle is this: the first tentacle whose group name is a prefix of the infoton's classifier will handle the infoton.  A tentacle can either be coded to handle its requests immediately or to handle them on a background thread.  This choice can be overridden by the octopus if the user constructs it to always process infotons immediately.



    Note that the software is distributed under the GNU Public License.  No warranty is made for it whatsoever.  We have done our best to ensure that this software is high quality and error-free, but cannot guarantee anything real about it due to potential legal culpability. 
    If you find bugs in this software or wish to contribute enhancements to it, please send them to the HOOPLE Administrator.