Creator  - recreates catalog-managed objects from disk and
       instantiates component views from their class identifiers


SYNOPSIS

       #include <Unidraw/creator.h>


DESCRIPTION

       A creator object can reconstruct a catalog-managed  object
       from  disk  and  can  instantiate a component view given a
       class identifier.  Generally only the Catalog  class  uses
       the  creator  to reconstruct objects from disk, but it may
       be useful for other  classes  (e.g.,  the  Component  base
       class)  to  use  the  creator to create views of component
       subjects.

       Applications that derive new  catalog-managed  classes  or
       component  views  must  also  derive a subclass of Creator
       that extends the base class operations to support the  new
       classes.


PUBLIC OPERATIONS

       Creator()
              Instantiate  an  new  creator  object.  The Catalog
              constructor  requires  an  instance  of  a  creator
              object,  either  an  instance  of  the Creator base
              class or an  instance  of  an  application-specific
              Creator subclass.

       virtual void* Create(
           ClassId, istream& in, ObjectMap* objmap, int objid
       )
              Create  an  instance  of the class corresponding to
              the given class identifier.  Normally  this  opera-
              tion will be used by the Catalog class exclusively.
              This operation contains  a  switch  statement  that
              calls  a CREATE macro for each possible class iden-
              tifier.   The  CREATE  macro  takes  the   istream,
              ObjectMap,  and  int arguments as parameters; it is
              not important to  understand  how  the  macro  uses
              these  arguments.   For  example, the entry for the
              LineComp line component subject class is

              case  LINE_COMP:   CREATE(LineComp,   in,   objmap,
              objid);

              Derived  Creator  classes must redefine this opera-
              tion to include a switch statement for application-
              specific classes, with the default case calling the
              parent class's Create operation.

       virtual void* Create(ClassId id)
              Create an instance of the view class  corresponding
              ments of the form

              if  (id  ==  <identifier  name>)  return new <class
              name>;

              For example, the entry for the PostScript  external
              view class identifier for line components is

              if (id == PS_LINE) return new PSLine;

              Derived  Creator  classes must redefine this opera-
              tion to include if statements for  application-spe-
              cific  view classes, with the final statement being
              a call to the parent classes's Create operation.


SEE ALSO

       Catalog(3U), classes(3U), globals(3U)




































Man(1) output converted with man2html