CATCONTAINER__DEFINE Name
CatContainer Purpose
This is the most basic object in the Catalyst Library. It is actually a simple
wrapper around the IDL_CONTAINER object, adding get-by-name, reference counting,
and memory management. Reference counting is what assures that objects in the
Catalyst system are not destroyed until every other object in the system is done
using them. For the most part, users can completely ignore this feature of
the program and their programs will clean themselves up miraculously. To avoid
memory leaks, all you have to do is make sure you destroy all pointers and objects
you use to hold information in your program in your CLEANUP method. (And be *absolutely*
sure you call the superclass CLEANUP method.) But any objectyou add to another object is
destroyed automatically. This feature alone is worth the astronomical cost of the Catalyst Library!
Authors
FANNING SOFTWARE CONSULTING BURRIDGE COMPUTING
1645 Sheely Drive 18 The Green South
Fort Collins Warborough, Oxon
CO 80526 USA OX10 7DN, ENGLAND
Phone: 970-221-0438 Phone: +44 (0)1865 858279
E-mail: davidf@dfanning.com E-mail: davidb@burridgecomputing.co.uk
Superclasses
IDL_CONTAINER Syntax
catContainerObject = Obj_New('CatContainer')
Class Structure
struct = { CatContainer, $ ; The CatContainer object class name.
_autoDestroy : 0B, $ ; A flag denoting whether the object self destructs
when reference count reaches 0.
_name : "", $ ; The "name" of the object.
_parents : OBJ_NEW (), $ ; A list (container) of parent objects.
_memoryManagement : 0B, $ ; A flag to show if objects contained within this
object know about this object.
_indexed : 0B, $ ; A flag to specify whether the list is specifically indexed.
INHERITS IDL_CONTAINER $
}
Modification History
Written by: David Burridge, 12th March 2003
Added OCHILD and OSYBLING keywords to the GetProperty method. 24 June 2005. DWF.
Changed the AddParent method so that an object cannot have multiple, identical parent
objects. A parent object is only added to the parent container if that object is not
already a parent of the specified object. 30 August 2009. DWF.