Index

Abstract base classes
Abstract Base Classes

Apply functions
apply() Functions

apply()
apply() Functions

B-Tree
disk based
Using Class RWBTreeOnDisk

Bag
overview
Bags Versus Sets Versus Hash Tables

begin()
Standard C++ Library Iterators

Binary files
Borland C++
Simple Example

binaryStoreSize()
Virtual Function binaryStoreSize()
Virtual Function binaryStoreSize()

Borland C++
binary mode
Simple Example

caseCompare
enum
Lexicographic Comparisons

clear()
Functions clear() and clearAndDestroy()

clearAndDestroy()
Functions clear() and clearAndDestroy()

Clipboard
Windows Clipboard and DDE Streambufs

collection class
iterator functions
Standard C++ Library Iterators

Collection classes
dictionary
Dictionaries
hashing
Hashing
persistence
Polymorphically Persisting Custom Collections
retrieving objects
Retrieving Objects in Collections
selection
Selection
Smalltalk-like
Smalltalk-Like Collection Classes
virtual functions
Virtual Functions Inherited From RWCollection

comparator
implementation
More on Total Ordering
total ordering
More on Total Ordering

comparators
Comparators

Compares equal
Retrieval Methods

compareTo()
Virtual Function compareTo()

Concrete classes
Concrete Classes

Constants
Typedefs and Macros

contains()
find() and Friends

Copy constructor
Copy on Write
Copying Reference-based Collection Classes

Copy on write
Copy on Write

create functions
A Note on the RWFactory

Currency
internationalization
Currency

Dates
internationalization
Dates

Daylight Savings Time
Time

DDE
Windows Clipboard and DDE Streambufs
example
DDE Example

Debugging
The Debug Version of Tools.h++

Deep copy
Copying Reference-based Collection Classes

default constructor
Define a Default Constructor

designing a class
isomorphic persistence
Designing Your Class to Use Isomorphic Persistence
troubleshooting
Check for Possible Problems

destructor
RWCollectable
Object Destruction

Dictionary
Dictionaries
template
example
Another Example

DLL
Dynamic Link Library

Eight-bit clean
Eight-bit Clean

Embedded nulls
Multibyte Strings

end()
Standard C++ Library Iterators

entries()
find() and Friends

Enumerations
Typedefs and Macros
Typedefs and Macros

equalitors
Hash Functors and Equalitors

Errors
Error Handling
changing the default handler
Error Handlers
external
External Errors
internal
Internal Errors
non-recoverable
Non-recoverable Internal Errors
recoverable
Recoverable Internal Errors

Exceptions
Exception Architecture
hierarchy
Exception Architecture

Extended UNIX Code
Multibyte Strings

FALSE
Typedefs and Macros

find()
find() and Friends

Gregorian calendar
Using Class RWDate

hash functor
Hash Functors and Equalitors

hash()
Hashing
Virtual Function hash()

Hashing collections
overview
Bags Versus Sets Versus Hash Tables
strategy
Hashing

Imbuing
RWLocale and RWZone

Indexing
Indexing

insert()
insert()

Internationalization
currency
Currency
dates
Dates
eight-bit clean
Eight-bit Clean
embedded nulls
Embedded Nulls
localizing messages
Localizing Messages
Numbers
Numbers
time
Time

iostream facility
Using Virtual Streams

isA()
Virtual Function isA( )

isEmpty()
find() and Friends

isEqual
Virtual Function isEqual()
Retrieval Methods

isomorphic persistence
Designing Your Class to Use Isomorphic Persistence
Isomorphic versus Simple Persistence
Isomorphic Persistence
example
Isomorphic Persistence of a Tools.h++ Class
Isomorphic Persistence of a User-designed Class

isSame
Retrieval Methods

iterator
typedef
Standard C++ Library Iterators

Iterators
Iterators in Collection Classes
Iterators
Standard C++ Library Iterators
reset()
Iterators in Collection Classes
validity
Iterators in Collection Classes

Localization
messages
Localizing Messages

Macros See Preprocessor macros
Typedefs and Macros

Memory allocation
responsibility
Memory Allocation and Deallocation

Messages
localizing
Localizing Messages

migration
Migration Guide: For Users of Previous Versions of Tools.h++

morphology
Simple Persistence

Multi-thread
Multithread Safe

Multibyte character sets
Localizing Alphabets with RWCString and RWWString
and RWCStrings
Multibyte Strings

Multiple inheritance
Multiple Inheritance
Retrieval Methods

new
Memory Allocation and Deallocation

newSpecies()
Virtual Function newSpecies()

Null pointer
persistence
More on Storing and Retrieving RWCollectables

Numbers
internationalization
Numbers

occurrencesOf()
find() and Friends

operator<<
polymorphic persistence
Operators

operator>>
Operators

Persistence
Persistence
Persistence
choosing the operator
Choosing Which Persistence Operator to Use
isomorphic persistence
Isomorphic Persistence
multiply-referenced objects
Multiply-referenced Objects
nil pointer
More on Storing and Retrieving RWCollectables
simple persistence
Simple Persistence
technical discussion
More on Storing and Retrieving RWCollectables
to RWFiles
Recap
troubleshooting
A Few Friendly Warnings

polymorphic persistence
Why Design an RWCollectable Class?
Polymorphic Persistence
example
Polymorphic Persistence Example
how to add
How to Add Polymorphic Persistence
operator<<
Operators
operator>>
Operators

Postconditions
The Debug Version of Tools.h++

Preconditions
The Debug Version of Tools.h++

Preprocessor
macros
Typedefs and Macros

previous version of Tools.h++
Migration Guide: For Users of Previous Versions of Tools.h++

recursiveStoreSize()
Virtual Function binaryStoreSize()

Reference counting
Copy on Write

reference semantics
Value vs. Reference Semantics in Templates
Copying Reference-based Collection Classes

Regular expressions
Extended Regular Expressions
Simple Regular Expressions

remove()
remove() Functions

removeAndDestroy()
remove() Functions

reRestoreGuts()
defining
Guidelines for Writing rwRestoreGuts

restore table
Isomorphic versus Simple Persistence

restoreGuts()
How to Add Polymorphic Persistence
defining
Virtual Functions restoreGuts(RWFile&) and restoreGuts(RWvistream&)

RW_NPOS
Typedefs and Macros
Pattern Matching
Indexing

RWapplyCollectable
Typedefs and Macros

RWapplyGeneric
Typedefs and Macros

RWapplyKeyAndValue
Typedefs and Macros

RWBag
Bags Versus Sets Versus Hash Tables

RWBinaryTree
Example

RWbistream
example
Simple Example

RWBoolean
Typedefs and Macros

RWbostream
example
Simple Example

RWBoundsErr
Exception Architecture

RWClassID
Typedefs and Macros
reserved numbers
Virtual Function isA( )

RWCollectable
and multiple inheritance
Multiple Inheritance
default constructor
Define a Default Constructor
designing
Designing an RWCollectable Class
destructor
Object Destruction
virtual functions
Add Definitions for Virtual Functions

RWCollectableString
Example

RWCString
caseCompare
Lexicographic Comparisons
embedded nulls
Multibyte Strings
input / output
String I/O
multibyte strings
Multibyte Strings
pattern matching
Pattern Matching
substrings
Substrings

RWCSubString
Substrings

RWCTokenizer
Tokenizer

RWDDEstreambuf
example
DDE Example

RWDEBUG
The Debug Version of Tools.h++

RWDECLARE_COLLECTABLE( )
Add RWDECLARE_COLLECTABLE() to your Class Declaration

RWDECLARE_PERSISTABLE
Add RWDECLARE_PERSISTABLE to Your Header File

RWDefCArgs(T)
Keeping the Standard C++ Library in Mind for Portability

RWDefHArgs(T)
Keeping the Standard C++ Library in Mind for Portability

RWDEFINE_COLLECTABLE()
A Note on the RWFactory

RWDEFINE_PERSISTABLE
Add RWDEFINE_PERSISTABLE to One Source File

RWDEFINITION_MACRO
A Note on the RWFactory

RWdiskTreeCompare
Typedefs and Macros

RWExternalErr
Exception Architecture

RWFactory
A Note on the RWFactory

RWFile
Recap

RWFileErr
Exception Architecture

RWFileManager
use with RWBTreeOnDisk
Using Class RWBTreeOnDisk

RWHashTable
Bags Versus Sets Versus Hash Tables

RWInternalErr
Exception Architecture

RWLocale
RWLocale and RWZone

rwnil
Typedefs and Macros
Typedefs and Macros

RWnilCollectable
insert()

RWoffset
Typedefs and Macros

rwRestoreGuts
Guidelines for Writing rwRestoreGuts
Define rwSaveGuts and rwRestoreGuts

rwSaveGuts
Guidelines for Writing rwSaveGuts
Define rwSaveGuts and rwRestoreGuts

rwSaveGuts()
defining
Guidelines for Writing rwSaveGuts

RWSequenceable
Sequenceable Classes
virtual functions
Virtual Functions Inherited from RWSequenceable

RWSet
Bags Versus Sets Versus Hash Tables

RWspace
Typedefs and Macros

RWstoredValue
Typedefs and Macros
Using Class RWBTreeOnDisk

RWStreamErr
Exception Architecture

RWtestCollectable
Typedefs and Macros

RWtestGeneric
Typedefs and Macros

RWTOOLS
Version

RWuserCreator
Typedefs and Macros

RWvios
Using Virtual Streams

RWvistream
Using Virtual Streams
inheriting from
Using Virtual Streams

RWvoid
Typedefs and Macros

RWvostream
Using Virtual Streams
inheriting from
Using Virtual Streams

RWWString
Wide Character Strings

RWxalloc
Exception Architecture

RWxmsg
Exception Architecture

RWZone
RWLocale and RWZone

save table
Isomorphic versus Simple Persistence

saveGuts()
How to Add Polymorphic Persistence
defining
Virtual Functions saveGuts(RWFile&) and saveGuts(RWvostream&)

select()
Selection

Sequenceable
Sequenceable Classes

Set
overview
Bags Versus Sets Versus Hash Tables

Shallow copy
Copying Reference-based Collection Classes

simple persistence
Simple Persistence
example
Example Two: Simple Persistence and Pointers
Example One: Simple Persisting Objects of Fundamental Type

Size
binary store
Store Size

Smalltalk
collection classes
Smalltalk-Like Collection Classes
typedefs
Typedefs and Macros

SortedCollection
Example

Standard C++ Library
Tools.h++ Templates and the Standard C++ Library
Harnessing the Standard
containers
The Standard C++ Library Containers
iterators
Standard C++ Library Iterators

Stream I/O
imbuing
RWLocale and RWZone
memory based
Windows Clipboard and DDE Streambufs

streambufs
Windows specializing
Windows Clipboard and DDE Streambufs

String
input / output
String I/O
regular expressions
Extended Regular Expressions
Simple Regular Expressions
searches
Pattern Matching
tokens
Tokenizer
wide character
Wide Character Strings
conversion
Wide Character Strings

strXForm()
Localizing Alphabets with RWCString and RWWString

templates
Introduction

theFactory
one of a kind global
A Note on the RWFactory

Time
Daylight Savings
Time
internationalization
Time

Time zone
setting
Setting the Time Zone

Tools.h++
Philosophy
Tools.h++ and the C++ Philosophy

Tools.h++ version 6
migration from
Migration Guide: For Users of Previous Versions of Tools.h++

troubleshooting
persistence
A Few Friendly Warnings

TRUE
Typedefs and Macros

Typedefs
Typedefs and Macros
Smalltalk
Typedefs and Macros

value semantics
Value vs. Reference Semantics in Templates
Copying Reference-based Collection Classes

Version
current
Version

virtual functions
How to Add Polymorphic Persistence
saveGuts() and restoreGuts()
How to Add Polymorphic Persistence

virtual streams
Using Virtual Streams
specializing
Specializing Virtual Streams
with DOS binary
Simple Example

Wide character
Localizing Alphabets with RWCString and RWWString

Windows
Clipboard
Windows Clipboard and DDE Streambufs
DDE
Windows Clipboard and DDE Streambufs
example
DDE Example

xalloc
Exception Architecture

xmsg
Exception Architecture