- Table of Contents
- GLib Fundamentals
- Basic Types — standard GLib types, defined for ease-of-use and portability.
- Limits of Basic Types — portable method of determining the limits of the standard types.
- Standard Macros — commonly-used macros.
- Type Conversion Macros — Portably storing integers in pointer variables.
- Byte Order Macros — a portable way to convert between different byte orders.
- Numerical Definitions — Mathematical constants, and floating point decomposition.
- Miscellaneous Macros — specialized macros which are not used often.
- GLib Core Application Support
- The Main Event Loop — manages all available sources of events.
- Threads — thread abstraction; including threads, different mutexes, conditions
and thread private data.
- Thread Pools — Pools of threads to execute work concurrently
- Asynchronous Queues — asynchronous communication between threads.
- Dynamic Loading of Modules — portable method for dynamically loading 'plug-ins'.
- Memory Allocation — general memory-handling.
- IO Channels — portable support for using files, pipes and sockets.
- Error Reporting — System for reporting errors
- Message Output and Debugging Functions — functions to output messages and help debug applications.
- Message Logging — versatile support for logging messages with different levels of importance.
- GLib Utilities
- String Utility Functions — various string-related functions.
- Character Set Conversion —
- Unicode Manipulation —
- Date and Time Functions — calendrical calculations and miscellaneous time stuff.
- Random Numbers — pseudo random number generator.
- Hook Functions — support for manipulating lists of hook functions.
- Miscellaneous Utility Functions — a selection of portable utility functions.
- Lexical Scanner — a general purpose lexical scanner.
- Automatic String Completion — support for automatic completion using a group of target strings.
- Timers — Keep track of elapsed time.
- Spawning Processes (fork/exec) —
- File Utilities —
- Shell-related Utilities —
- Glob-style pattern matching — Matches strings against patterns containing '*' (wildcard) and '?' (joker).
- Simple XML Subset Parser — Parses a subset of XML
- Windows Compatibility Functions —
- GLib Data Types
- Memory Chunks — efficient way to allocate groups of equal-sized chunks of memory.
- Doubly-Linked Lists — linked lists containing integer values or pointers to data, with the ability
to iterate over the list in both directions.
- Singly-Linked Lists — linked lists containing integer values or pointers to data, limited to
iterating over the list in one direction.
- Double-ended Queues — double-ended queue data structure
- Trash Stacks — maintain a stack of unused allocated memory chunks.
- Hash Tables — associations between keys and values so that given a key the value
can be found quickly.
- Strings — text buffers which grow automatically as text is added.
- String Chunks — efficient storage of groups of strings.
- Arrays — arrays of arbitrary elements which grow automatically as elements are added.
- Pointer Arrays — arrays of pointers to any type of data, which grow automatically as new
elements are added.
- Byte Arrays — arrays of bytes, which grow automatically as elements are added.
- Balanced Binary Trees — a sorted collection of key/value pairs optimised for searching
and traversing in order.
- N-ary Trees — trees of data with any number of branches.
- Quarks — a 2-way association between a string and a unique integer identifier.
- Keyed Data Lists — lists of data elements which are accessible by a string or GQuark identifier.
- Datasets — associate groups of data elements with particular memory locations.
- Relations and Tuples — tables of data which can be indexed on any number of fields.
- Caches — caches allow sharing of complex data structures to save resources.
- Memory Allocators — allocates chunks of memory for GList, GSList and GNode.