Interfaces & Namespaces
Interfaces
The complete Courier public interfaces are covered by the namespaces Courier and Courier::Platform. All other sub namespaces of Courier denote private namespaces (like Courier::Internal, Courier::DataBindingPrivate, etc.), which are not recommended to be used in any application, as it is not guaranteed that these interfaces remain stable respectively exist in any future release. Changes in any of these private namespaces can be applied without any (prior) notifications.
Namespace Courier
Courier discloses its functionality with the namespace Courier. This namespace comprises the following modules:
In addition, an own Courier::Diagnostics namespace for error handling, logging and tracing purposes is available.
Namespace Courier::Platform
The Courier::Platform interfaces are also part of the public Courier interface. These interfaces define the access of Courier to platform dependent objects. The implementation of this platform dependent code is not part of Courier, though there are a few reference platforms, like SimulationPlatform (implemented basically for Win32) or GenericPlatform (providing generic respectively stub implementations), which can used as templates for the customer.
This platform interface can be seen as an official porting interface of Courier to any customer specific platform setup, which is the reason for outlining it in the separate namespace Courier::Platform.