SourcePro® API Reference Guide

 
Classes | Macros | Typedefs
RWCollectable-derived

Module Description

Classes in this group inherit from RWCollectable. These classes contain virtual functions for identifying, hashing, comparing, storing, and retrieving collectable objects.

Classes

class  RWBag
 Corresponds to the Smalltalk class Bag, representing a group of unordered elements not accessible by an external key. More...
 
class  RWBagConstIterator
 Iterator for class RWBag, which allows sequential access to all the elements of RWBag but allows no changes. More...
 
class  RWBagIterator
 Iterator for class RWBag, which allows sequential access to all the elements of RWBag. More...
 
class  RWBinaryTree
 Represents a group of ordered elements, as sorted by a comparison method, and allowing duplicates. More...
 
class  RWBinaryTreeConstIterator
 Iterator for class RWBinaryTree that allows no changes to the values in the binary tree. More...
 
class  RWBinaryTreeIterator
 Iterator for class RWBinaryTree. More...
 
class  RWBTree
 Represents a group of ordered elements not accessible by an external key, and for which duplicates are not allowed. More...
 
class  RWBTreeDictionary
 Represents a dictionary for the storage and retrieval of key-value pairs, and implemented as a B-tree. More...
 
class  RWCollectable
 Contains virtual functions for identifying, hashing, comparing, storing and retrieving collectable objects. More...
 
class  RWCollectableAssociation
 Associates a key with a value in the Essential Tools Module "dictionary" collection classes. More...
 
class  RWCollectableInt
 Provides a polymorphically persistable RWInteger. More...
 
class  RWCollectableString
 Provides a polymorphically persistable RWCString. More...
 
class  RWCollectableWString
 Provides a polymorphically persistable RWWString. More...
 
class  RWCollection
 Contains virtual functions for inserting and retrieving pointers to RWCollectable objects into the collection classes. More...
 
class  RWConstIterator
 Contains virtual functions for positioning and resetting the const iterator. More...
 
class  RWDlistCollectables
 Represents a group of ordered items, not accessible by an external key. More...
 
class  RWDlistCollectablesConstIterator
 Traverses the linked-list from the first (head) to the last (tail) item. More...
 
class  RWDlistCollectablesIterator
 Traverses the linked-list from the first (head) to the last (tail) item. More...
 
class  RWFactory
 Creates an instance of an RWCollectable object, given a class ID. More...
 
class  RWHashDictionary
 Represents a group of unordered values, accessible by external keys. More...
 
class  RWHashDictionaryConstIterator
 Allows sequential access to all the elements of RWHashDictionary and, as a const iterator, does not change anything in the underlying data structure. More...
 
class  RWHashDictionaryIterator
 Allows sequential access to all the elements of RWHashDictionary. More...
 
class  RWHashTable
 A simple hash table for objects inheriting from RWCollectable. Uses chaining (as implemented by class RWSlistCollectables) to resolve hash collisions. More...
 
class  RWHashTableConstIterator
 Allows sequential access to all the elements of RWHashTable and, as a const iterator, it does not change anything in the underlying data structure. More...
 
class  RWHashTableIterator
 Allows sequential access to all the elements of RWHashTable. More...
 
class  RWIdentityDictionary
 A hash table for key-value pairs. Items are found by requiring them to be identical. More...
 
class  RWIdentitySet
 Finds items that have the same address as the key. More...
 
class  RWInteger
 Useful as a base class for classes that use integers as keys in dictionaries, and so forth. More...
 
class  RWIterator
 Contains virtual functions for positioning and resetting the iterator. More...
 
class  RWOrdered
 Represents a group of ordered items, accessible by an index number, but not accessible by an external key. More...
 
class  RWOrderedConstIterator
 Traverses the collection from the first to the last item. More...
 
class  RWOrderedIterator
 Traverses the collection from the first to the last item. More...
 
class  RWSequenceable
 Abstract base class for collections that can be accessed by an index. More...
 
class  RWSet
 A group of unordered elements, not accessible by an external key, where duplicates are not allowed. More...
 
class  RWSetConstIterator
 Const iterator for class RWSet, to allow sequential access to all elements of RWSet. More...
 
class  RWSetIterator
 Iterator for class RWSet, allowing sequential access to all the elements of RWSet. More...
 
class  RWSlistCollectables
 Represents a group of ordered elements without keyed access, where duplicates are allowed. More...
 
class  RWSlistCollectablesConstIterator
 Const iterator for class RWSlistCollectables that traverses the linked-list from the first to last item. More...
 
class  RWSlistCollectablesIterator
 Iterator for class RWSlistCollectables. Traverses the linked-list from the first to last item. More...
 
class  RWSlistCollectablesQueue
 A restricted interface to class RWSlistCollectables in order to implement a first in first out (FIFO) queue. More...
 
class  RWSlistCollectablesStack
 A restricted interface to class RWSlistCollectables to implement a last in first out (LIFO) stack. More...
 
class  RWSortedVector
 Represents a group of ordered items. More...
 
class  RWStringID
 An identifier for RWCollectable instances. More...
 

Macros

#define RW_DECLARE_ABSTRACT_COLLECTABLE_CLASS(libName, className)
 
#define RW_DECLARE_COLLECTABLE_CLASS(libName, className)
 
#define RW_DEFINE_ABSTRACT_COLLECTABLE_CLASS(libName, className)
 
#define RW_DEFINE_COLLECTABLE_CLASS_BY_ID(libName, className, id)
 
#define RW_DEFINE_COLLECTABLE_CLASS_BY_NAME(libName, className, str)
 

Typedefs

typedef unsigned short RWClassID
 

Macro Definition Documentation

#define RW_DECLARE_ABSTRACT_COLLECTABLE_CLASS (   libName,
  className 
)

The macro RW_DECLARE_ABSTRACT_COLLECTABLE_CLASS should be used in the declaration of any abstract class that derives from RWCollectable.

#define RW_DECLARE_COLLECTABLE_CLASS (   libName,
  className 
)

The macro RW_DECLARE_COLLECTABLE_CLASS should be used in the declaration of any class that derives from RWCollectable.

See also
RW_DEFINE_COLLECTABLE_CLASS_BY_ID
RW_DEFINE_COLLECTABLE_CLASS_BY_NAME
#define RW_DEFINE_ABSTRACT_COLLECTABLE_CLASS (   libName,
  className 
)

The macro RW_DEFINE_ABSTRACT_COLLECTABLE_CLASS should be used in the definition of any abstract class that derives from RWCollectable.

#define RW_DEFINE_COLLECTABLE_CLASS_BY_ID (   libName,
  className,
  id 
)

The macro RW_DEFINE_COLLECTABLE_CLASS_BY_ID should only be used when your class needs to have the same collectable ID or for compatibility with older versions of Tools.h++.

If you use this macro, you will be defining an RWClassID that is forever associated with your class.

Example
1 #include <rw/collect.h>
2 
3 // See the section in the Essential Tools Module User's Guide
4 // about exporting symbols for more information about this macro.
5 #define EXPORT
6 
7 class MyCollectable1 : public RWCollectable {
8  RW_DECLARE_COLLECTABLE_CLASS(EXPORT, MyCollectable1);
9 };
10 
11 RW_DEFINE_COLLECTABLE_CLASS_BY_ID(EXPORT,MyCollectable1,0x1000)
See also
RW_DECLARE_COLLECTABLE_CLASS
#define RW_DEFINE_COLLECTABLE_CLASS_BY_NAME (   libName,
  className,
  str 
)

The macro RW_DEFINE_COLLECTABLE_CLASS_BY_NAME should be used in the definition of any class that derives from RWCollectable that doesn't use RW_DEFINE_COLLECTABLE_CLASS_BY_ID.

If you use this macro, your class may have a different RWClassID with each run, but it will be forever associated with the given RWStringID.

Example
1 #include <rw/collect.h>
2 
3 // See the section in the Essential Tools Module User's Guide
4 // about exporting symbols for more information about this macro.
5 #define EXPORT
6 
7 class MyCollectable2 : public RWCollectable {
8  RW_DECLARE_COLLECTABLE_CLASS(EXPORT, MyCollectable2);
9 };
10 
11 RW_DEFINE_COLLECTABLE_CLASS_BY_NAME(EXPORT, MyCollectable2, "Second Collectable")
See also
RW_DECLARE_COLLECTABLE_CLASS

Typedef Documentation

typedef unsigned short RWClassID

A unique identifier for each class.

Copyright © 2023 Rogue Wave Software, Inc., a Perforce company. All Rights Reserved.