36 lines
1.3 KiB
Plaintext
36 lines
1.3 KiB
Plaintext
|
|
C++ templates:
|
|
tsSLList.h - type safe single linked list template
|
|
tsDLList.h - type safe double linked list template
|
|
resourceLib.h - hash table template
|
|
tsFreeeList.h - free list allocator / deallocator
|
|
|
|
the test subdir contains examples
|
|
|
|
Since I am using templates the linked lists are type safe
|
|
(no casting of pointers ala ellList and dllList).
|
|
Also, the node class in embedded in the item on the
|
|
list (more efficient use of pool).
|
|
|
|
The file resourceLib.h provides a core hashing library
|
|
"resTable <itemClass, idClass>" where "itemClass" objects
|
|
are stored in the hash table and "idClass" is the data type
|
|
of the key for the hash table. The identifier class provides
|
|
the hash alg. I have provided simple string "stringId" and
|
|
unsigned integer "uintId" key types in resourceLib.h. It
|
|
is easy to implement a new key class.
|
|
|
|
There are examples under cxxTemplate/test. The list/hashing
|
|
templates all depend on a particular inheritance hierarchy.
|
|
If the inheritance hierarchy is wrong nothing will compile.
|
|
For instance, in tsDLList.h the template data type "T"
|
|
must derive from tsDLNode<T>. Likewise, in tsSLList.h
|
|
"T" must derive from tsSLNode<T>. Likewise, in resourceLib.h
|
|
class "T" (the type stored in the hash table) must derive
|
|
from class "ID" (the hash table key type) and also derive from
|
|
tsSLNode<T>.
|
|
|
|
|
|
|
|
|