GNAT Component Collection
The GNAT Component Collection is a suite of reusable software components and utilities. It has been used by AdaCore in developing the GNAT tool set, the GPS Integrated Development Environment, and GNAT Tracker, its web-based customer support interface.
The GNAT Component Collection includes:
- Software that allows integration with scripting languages, such as python
- Database interfaces for APIs, such as postgresql, mysql, and sqlite
Ada packages supplying a variety of services, such as
- Module tracing
- Efficient file IO
- Efficient static string searching (Boyer-Moore algorithm)
- E-mail and mailbox manipulation
- Ravenscar tasking pattern examples
- Various predefined storage pool utilities
- Support for reading and writing JSON data. JSON is a frequently used format in web applications.
Among the elements of the GNAT Component Collection is an extensive set of templates for Ravenscar Profile examples. These include:
- Simple_Cyclic_Task: a simple cyclic task that executes a given operation at a constant frequency
- Simple_Sporadic_Task: a sporadic task released by software invocations with a constant minimum inter-release time (in the worst case, its behavior is identical to a cyclic task)
- Sporadic_Server: a sporadic server that buffers a single type of request (carrying input parameters) and executes it enforcing a constant minimum inter-release time
- Sporadic_Server_With_Callback: a pattern that demonstrates how to model an asynchronous call with “out” parameters in Ravenscar.
- Multiple_Queue_Sporadic_Server: a Sporadic_Server variant that accepts multiple kinds of requests
- Sporadic_Server_With_Timeout: a Sporadic_Server variant that provides for the automated release of the server, if it is not released within a given amount of time by an explicit software invocation.
SourcesThe GNATcoll sources are on github.