3. SDK reference

3.1. Special namespaces

The Proximie SDK adopts some namespace conventions to clearly separate the formal public APIs from other internal or experimental implementation. These special namespaces always occur “within” the official public Proximie SDK namespaces described below (i.e. under Proximie and it’s sub-namespaces).

3.1.1. detail namespace

A common requirement for C++ libraries using templates is the need to add implementation details into public headers to facilitate template compilation. A common practice for this is to use a namespace called detail; any SDK content included in a sub-namespace called detail is not considered part of the public API, and should not be referenced or used directly by SDK users. Any content contained within the detail namespace may be changed without notice in future releases of the SDK.

3.1.2. experimental namespace

When the SDK is developing new features or functionality, it can be useful to make them available for early access to developers, for experimentation or feedback. These features will be contained within a sub-namespace called experimental. Experimental features may not be fully tested or documented, may be incomplete, and may radically change or possibly be removed in future SDK releases. Before using any experimental features, its advisable to check with the Proximie team and review any available documentation and release notes.

3.2. SDK namespaces

namespace Proximie

The Proximie SDK is split into a number of supporting C++ namespaces, all under the top-level namespace Proximie. The top-level Proximie namespace also has commonly used types defined.

See the Proximie common types for details.

namespace PxCore

The PxCore namespace contains fundamental types, definitions and classes used throughout the Proximie SDK.

See the Proximie::PxCore reference for details.

namespace PxUtility

The PxUtility namespace, as the name suggests, contains utility classes and helpers for various tasks and systems used by the Proximie SDK and SDK applications. These utility elements are chiefly stand-alone components agnostic to the details of the Proximie systems and implementation: e.g. logging, REST/HTTP support, serialization etc.

See the Proximie::PxUtility reference for details.

namespace PxRestApi

The PxRestApi namespace provides support for various common Proximie REST APIs, typically used to work with Proximie services.

The core class in this namespace is ProximieServices, which is used to make REST requests.

Whilst the REST APIs themselves use JSON payloads, PxRestApi support uses typed C++ structures. These payload structures are available in the PxRestApi namespace.

Note that the full REST APIs are extensive, and this namespace implements a smaller subset pertinent to functions typically required by SDK applications.

See the Proximie::PxRestApi reference for details.

namespace PxMedia

The PxMedia namespace implements the core media streaming functionality provided the SDK. This includes audio and video feeds being between the host applications and other participants in a media session.

See the Proximie::PxMedia reference for details.