blob: c98db0ea40eec85a5f330cf0a97bb3a6f73428fa (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
ObjectiveLib provides two primary services: containers and algorithms. An
important part of the library that keeps everything moving is iterators.
Iterators perform two functions: they provide access to elements stored in
containers and they provide a way for generice algorithms to operate on
elements of almost any type of container. Algorithms take iterators as
arguments, and thus never have any knowledge of what type of container
they happen to be affecting.
ObjectiveLib is designed to offer the same functionality to Objective-C
programmers that the Standard Template Library offers to C++ programmers.
Therefore, anyone familiar with the STL will have no trouble using and
understanding the machinery of ObjectiveLib.
An important component used by all services of ObjectiveLib is the
memory allocator. All containers allocate memory using an associated
memory allocator. This includes memory used to store elements in the
container, iterators, and any temporary buffers that may be needed.
Algorithms also need to allocate memory, so there is an allocator
associated with the OLAlgorithm class. Though the algorithm allocator
appears static, in fact an allocator is associated with each thread.
Therefore, memory allocation when using algorithms is thread-safe.
|