Cmaid - manipulable and iteratable data types for C


Cmaid is a collection of different container data types. The interface and the actual implementation are sparated by using vtables. This makes it possible, for example, dead-simple to exchange one map implementation with another, by simply changing the contstructor. The rest of your code can stay as it was before.

The Iterators

Unlike in other ADT implementations, Cmaid's containers keep track of which iterators are currently attached to them. This has the greate advantage that you can iterator over a container, while you are manipulating it.

The Classes

As mention before the collection interfaces are separated from their implementation. Cmaid supports the following interfaces:

The Implementations

There are three different implemenations, some of them provide more then one implementation of classes. Internally they reuse the most of the implementation specific code to reduce.

Cmaid provides the following implementations

The Authors

Cmaid is written by:
Peter Wehrfritz <>
Nathan Ingersoll <>

The hash table implementation was taken from Ecore_Hash (fka Ewd_Hash):
	Nathan Ingersoll <>
	Sebastian Dransfeld <>
The tree implementation was taken from OpenBSD:
	Niels Provos <>

The string hash function was taken from Evas:
	Carsten Haitzler <>

The License

Cmaid is under a BSD-like license with advertising clause, also know as 3-clause BSD-license. Read here the full license text here. There is also a plain English copyright notice .

Generated on Wed Aug 5 00:20:49 2009 for Cmaid by  doxygen 1.5.8