GNATColl Core Components ************************ * 1. Introduction to the GNAT Component Collection * 1.1. Bug reports * 2. Building GNATColl * 2.1. Configuring the build environment * 2.2. Building GNATColl * 2.3. Installing GNATColl * 3. **Scripts**: Embedding script languages * 3.1. Supported languages * 3.1.1. The Shell language * 3.1.2. Classes exported to all languages * 3.2. Scripts API * 3.2.1. Initializing the scripting module * 3.2.2. Creating interactive consoles * 3.2.3. Exporting classes and methods * 3.2.4. Executing startup scripts * 3.2.5. Multithreading applications and scripts * 3.2.6. Debugging scripts * 4. **Traces**: Logging information * 4.1. Configuring traces * 4.2. Using the traces module * 4.2.1. Logging unexpected exceptions * 4.2.2. Checking whether the handle is active * 4.3. Log decorators * 4.4. Defining custom stream types * 4.5. Logging to syslog * 4.6. Dynamically disabling features * 5. **Strings**: high-performance strings * 5.1. Small string optimization * 5.2. Character types * 5.3. Configuring the size of small strings * 5.4. Task safety * 5.5. Copy on write * 5.6. Growth strategy * 5.7. Substrings * 5.8. API * 6. **Memory**: Monitoring memory usage * 7. **Mmap**: Reading and Writing Files * 8. **Boyer-Moore**: Searching strings * 9. **Paragraph filling**: formatting text * 10. **Templates**: generating text * 11. **Email**: Processing email messages * 11.1. Message formats * 11.2. Parsing messages * 11.3. Parsing mailboxes * 11.4. Creating messages * 12. **Ravenscar**: patterns for multitasking * 12.1. Tasks * 12.2. Servers * 12.3. Timers * 13. **Storage Pools**: controlling memory management * 14. **VFS**: Manipulating Files * 14.1. Filesystems abstraction * 14.1.1. file names encoding * 14.2. Remote filesystems * 14.2.1. Filesystem factory * 14.2.2. Transport layer * 14.3. Virtual files * 15. **Tribooleans**: Three state logic * 16. **Geometry**: primitive geometric operations * 17. **Projects**: manipulating gpr files * 17.1. Defining a project with user-defined packages and reading them. * 18. **Refcount**: Reference counting * 19. **Config**: Parsing configuration files * 20. **Pools**: Controlling access to resources * 21. **JSON**: handling JSON data * 22. **SQL**: Database interface * 22.1. Database Abstraction Layers * 22.2. Database example * 22.3. Database schema * 22.4. Connecting to the database * 22.5. Loading initial data in the database * 22.6. Writing queries * 22.7. Executing queries * 22.8. Prepared queries * 22.9. Getting results * 22.10. Creating your own SQL types * 22.11. Query logs * 22.12. Writing your own cursors * 22.13. The Object-Relational Mapping layer (ORM) * 22.13.1. reverse relationships * 22.14. Modifying objects in the ORM * 22.15. Object factories in ORM * 23. **Terminal**: controlling the console * 23.1. Colors * 23.2. Cursors * 24. **Promises**: deferring work Indices and tables ****************** * Index This document may be copied, in whole or in part, in any form or by any means, as is or with alterations, provided that (1) alterations are clearly marked as alterations and (2) this copyright notice is included unmodified in any copy.