SourcePro® 2022.1 |
SourcePro® API Reference Guide |
Creates an instance of an RWCollectable object, given a class ID. More...
#include <rw/factory.h>
Public Member Functions | |
RWFactory () | |
~RWFactory () | |
void | addFunction (RWuserCreator uc, RWClassID id) |
void | addFunction (RWuserCreator uc, RWClassID id, RWStringID sid) |
RWCollectable * | create (RWClassID id) const |
RWCollectable * | create (RWStringID sid) const |
RWClassID | getClassID (RWStringID sid) const |
RWuserCreator | getFunction (RWClassID id) const |
RWuserCreator | getFunction (RWStringID sid) const |
RWStringID | getStringID (RWClassID id) const |
bool | operator<= (const RWFactory &h) |
bool | operator<= (const RWSet &h) const |
bool | operator<= (const RWHashTable &h) const |
void | removeFunction (RWClassID id) |
void | removeFunction (RWStringID sid) |
Public Member Functions inherited from RWSet | |
RWSet () | |
RWSet (size_t n) | |
RWSet (const RWSet &h) | |
RWSet (RWSet &&h) | |
virtual | ~RWSet () |
virtual void | clearAndDestroy () |
virtual RWCollectable * | copy () const |
virtual RWCollectable * | insert (RWCollectable *c) |
void | intersectWith (const RWSet &h, RWSet &ret) const |
virtual RWClassID | isA () const |
virtual bool | isEqual (const RWCollectable *) const |
virtual RWConstIterator * | newConstIterator () const |
virtual RWIterator * | newIterator () |
virtual RWCollectable * | newSpecies () const |
virtual size_t | occurrencesOf (const RWCollectable *target) const |
RWSet & | operator*= (const RWSet &h) |
bool | operator< (const RWSet &h) const |
bool | operator<= (const RWSet &h) const |
RWSet & | operator= (const RWSet &h) |
RWSet & | operator= (RWSet &&h) |
Public Member Functions inherited from RWHashTable | |
RWHashTable () | |
RWHashTable (size_t N) | |
RWHashTable (const RWHashTable &t) | |
RWHashTable (RWHashTable &&t) | |
virtual void | apply (RWapplyCollectable ap, void *) |
virtual void | clear () |
virtual size_t | entries () const |
virtual RWCollectable * | find (const RWCollectable *) const |
virtual bool | isEmpty () const |
bool | operator!= (const RWHashTable &) const |
bool | operator<= (const RWHashTable &t) const |
RWHashTable & | operator= (const RWHashTable &t) |
RWHashTable & | operator= (RWHashTable &&t) |
bool | operator== (const RWHashTable &t) const |
virtual RWCollectable * | remove (const RWCollectable *) |
virtual void | resize (size_t n=0) |
void | swap (RWHashTable &t) |
Public Member Functions inherited from RWCollection | |
virtual | ~RWCollection () |
RWBag | asBag () const |
RWBinaryTree | asBinaryTree () const |
RWOrdered | asOrderedCollection () const |
RWSet | asSet () const |
RWBinaryTree | asSortedCollection () const |
virtual RWspace | binaryStoreSize () const |
virtual bool | contains (const RWCollectable *target) const |
void | operator+= (const RWCollection &c) |
void | operator-= (const RWCollection &c) |
virtual void | removeAndDestroy (const RWCollectable *target) |
virtual void | restoreGuts (RWvistream &) |
virtual void | restoreGuts (RWFile &) |
virtual void | saveGuts (RWvostream &) const |
virtual void | saveGuts (RWFile &) const |
RWCollection * | select (RWtestCollectable tst, void *vp) const |
Public Member Functions inherited from RWCollectable | |
virtual | ~RWCollectable () |
virtual int | compareTo (const RWCollectable *) const |
virtual unsigned | hash () const |
RWspace | recursiveStoreSize () const |
RWStringID | stringID () const |
Related Functions | |
(Note that these are not member functions.) | |
RWFactory * | getRWFactory () |
typedef RWCollectable *(* | RWuserCreator) () |
Related Functions inherited from RWCollection | |
typedef void(* | RWapplyCollectable) (RWCollectable *, void *) |
typedef bool(* | RWtestCollectable) (const RWCollectable *, const void *) |
typedef bool(* | RWtestCollectablePair) (const RWCollectable *, const RWCollectable *, const void *) |
Additional Inherited Members | |
Static Public Member Functions inherited from RWCollectable | |
static RWClassID | classID (const RWStringID &name) |
static RWClassID | classIsA () |
static bool | isAtom (RWClassID id) |
static RWspace | nilStoreSize () |
Static Public Attributes inherited from RWCollection | |
static size_t | DEFAULT_CAPACITY |
Class RWFactory can create an instance of an RWCollectable object, given a class ID. It does this by maintaining a table of class IDs and associated "creator functions." A creator function has the prototype:
This function creates an instance of a particular class. For a given RWClassID tag, the appropriate function is selected, invoked and the resultant pointer returned. Because any object created this way is created off the heap, you are responsible for deleting it when done.
A one-of-a-kind global RWFactory can be accessed using getRWFactory(). It is guaranteed to have creator functions in it for all classes referenced by your program. See the section in the Essential Tools Module User's Guide about RWFactory.
Program output:
RWFactory::RWFactory | ( | ) |
Constructs an RWFactory.
RWFactory::~RWFactory | ( | ) |
Calls clearAndDestroy(), which is inherited from RWSet.
void RWFactory::addFunction | ( | RWuserCreator | uc, |
RWClassID | id | ||
) |
void RWFactory::addFunction | ( | RWuserCreator | uc, |
RWClassID | id, | ||
RWStringID | sid | ||
) |
Adds to RWFactory the global function pointed to by uc, which creates an instance of an object with RWClassID id and RWStringID sid.
RWCollectable* RWFactory::create | ( | RWClassID | id | ) | const |
RWCollectable* RWFactory::create | ( | RWStringID | sid | ) | const |
Allocates a new instance of the class with RWStringID sid off the heap and returns a pointer to it. Returns rwnil if sid does not exist. Because this instance is allocated off the heap, you are responsible for deleting it when done.
RWClassID RWFactory::getClassID | ( | RWStringID | sid | ) | const |
Looks up the RWClassID associated with sid and returns it. If there is no such association, returns __RWUNKNOWN
.
RWuserCreator RWFactory::getFunction | ( | RWClassID | id | ) | const |
RWuserCreator RWFactory::getFunction | ( | RWStringID | sid | ) | const |
Returns from RWFactory a pointer to the global function associated with RWStringID sid. Returns rwnil if sid does not exist.
RWStringID RWFactory::getStringID | ( | RWClassID | id | ) | const |
Looks up the RWStringID associated with id and returns it. If there is no such association, returns RWStringID("NoID").
|
inline |
Returns true
if self is a subset of h, that is, every element of self has a counterpart in h which isEqual().
|
inline |
Returns true
if self is a subset of h, that is, every element of self has a counterpart in h which isEqual().
|
inline |
Returns true
if self is a subset of h, that is, every element of self has a counterpart in h which isEqual().
void RWFactory::removeFunction | ( | RWClassID | id | ) |
void RWFactory::removeFunction | ( | RWStringID | sid | ) |
Removes from RWFactory the global function associated with RWStringID sid. If sid does not exist in the factory, no action is taken.
|
related |
Returns a pointer to the global RWFactory object instance, creating it if necessary.
|
related |
A global function used to allocate a RWCollectable derived class for RWFactory. A creator function has prototype:
Copyright © 2022 Rogue Wave Software, Inc., a Perforce company. All Rights Reserved. |