The Platform API is designed to allow easy porting of the Open Screen Library between platforms. This folder contains classes and logic used by Open Screen to access system resources and other common OS-level facilities, such as the clock and task runner.
api/ - contains the Platform API which is used by the Open Screen Library. Some of the public API may also include adapter code that acts as a small shim above the C functions to be implemented by the platform. The entire Open Screen repository can depend on files from api/, though classes defined in api/ can only depend on third_party or platform/base files.
base/ - contains declarations/definitions of API constructs. Classes homed here shall have no library dependencies.
impl/ - contains a default implementation of the platform API for building self-contained binaries and tests in libcast.
test/ - contains API implementations used for testing purposes, like the FakeClock or FakeTaskRunner.
posix/, linux/, and mac/ directories have been moved under impl/ with an OS-specific suffix (e.g. _mac, _posix).