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.