OpenAssetIO
An abstract API for generalising interactions between a host application and an asset management system
openassetio::v1 Namespace Reference

Namespaces

 access
 Access modes available for API operations.
 
 constants
 Constants used throughout the OpenAssetIO API.
 
 errors
 This namespace contains types related to error handling.
 
 hostApi
 This namespace contains code relevant to anyone wanting to add support for a host application.
 
 internal
 Contains private internal implementation details.
 
 log
 This namespace contains code relevant to message logging within the API.
 
 managerApi
 This namespace contains code relevant to anyone wanting to add support for an asset management system.
 
 pluginSystem
 
 python
 Utilities for bridging from C++ to Python.
 
 trait
 Comprises concrete trait views wrapping TraitsData instances.
 
 utils
 

Classes

class  Context
 The Context object is used to convey information about the calling environment to a manager. More...
 
class  EntityReference
 EntityReference forms a strongly typed wrapper around arbitrary strings to ensure they have been validated by the target manager before being used as an Entity Reference in the various entity related API calls. More...
 

Typedefs

using ContextPtr = std::shared_ptr< Context >
 
using ContextConstPtr = std::shared_ptr< const Context >
 
using EntityReferences = std::vector< EntityReference >
 A list of entity references, used or batch-first functions. More...
 
using InfoDictionaryValue = std::variant< Bool, Int, Float, Str >
 Types available as values in a InfoDictionary. More...
 
using InfoDictionary = std::unordered_map< Str, InfoDictionaryValue >
 Dictionary type used for ManagerInterface.info. More...
 
Primitive Types

These types are used throughout OpenAssetIO, especially within dictionary-like types such as TraitsData or InfoDictionary.

OpenAssetIO must be able to bridge disparate platforms, including serialization of data. It is therefore useful to ensure that our core primitive types are as predictable and portable as possible.

The following type list aims to standardise on types that share a common binary layout across platforms.

This also gives us a single point to change should we need to switch to a different primitive representation in future, or to switch conditionally for a particular platform. Therefore all use of primitive types by OpenAssetIO hosts and plugins should use these typedefs where possible, to reduce potential find-and-replace pain later.

using Bool = bool
 Boolean value type. More...
 
using Int = int64_t
 Integer value type. More...
 
using Float = double
 Real value type. More...
 
using Str = std::string
 String value type. More...
 
using StrMap = std::unordered_map< Str, Str >
 Map/Dict of string to string. More...
 
Identifiers

Both hosts and managers must have a unique identifier.

The following aliases ensure that a consistent type is used for these identifiers, and allows semantic documentation of an identifier as a parameter/return type.

using Identifier = Str
 A host or manager identifier. More...
 
using Identifiers = std::vector< Identifier >
 A list of identifiers. More...
 

Functions

OPENASSETIO_CORE_EXPORT std::ostream & operator<< (std::ostream &out, const EntityReference &formattable)
 Insertion operator for use with ostreams. More...
 
OPENASSETIO_CORE_EXPORT std::ostream & operator<< (std::ostream &out, const EntityReferences &formattable)
 Insertion operator for use with ostreams. More...
 
OPENASSETIO_CORE_EXPORT std::ostream & operator<< (std::ostream &out, const ContextPtr &formattable)
 Insertion operator for use with ostreams. More...
 
OPENASSETIO_CORE_EXPORT std::ostream & operator<< (std::ostream &out, const ContextConstPtr &formattable)
 Insertion operator for use with ostreams. More...
 
OPENASSETIO_CORE_EXPORT std::ostream & operator<< (std::ostream &out, const Context &formattable)
 Insertion operator for use with ostreams. More...
 

Typedef Documentation

using Bool = bool

Boolean value type.

typedef std::shared_ptr< const Context > ContextConstPtr
typedef std::shared_ptr< Context > ContextPtr
typedef std::vector< EntityReference > EntityReferences

A list of entity references, used or batch-first functions.

using Float = double

Real value type.

using Identifier = Str

A host or manager identifier.

using Identifiers = std::vector<Identifier>

A list of identifiers.

using InfoDictionary = std::unordered_map<Str, InfoDictionaryValue>

Dictionary type used for ManagerInterface.info.

using InfoDictionaryValue = std::variant<Bool, Int, Float, Str>

Types available as values in a InfoDictionary.

using Int = int64_t

Integer value type.

using Str = std::string

String value type.

This type is guaranteed to be API compatible with std::string.

using StrMap = std::unordered_map<Str, Str>

Map/Dict of string to string.

Function Documentation

OPENASSETIO_CORE_EXPORT std::ostream& openassetio::v1::operator<< ( std::ostream &  out,
const EntityReference formattable 
)

Insertion operator for use with ostreams.

Formats as "an_entity_reference".

OPENASSETIO_CORE_EXPORT std::ostream& openassetio::v1::operator<< ( std::ostream &  out,
const EntityReferences formattable 
)

Insertion operator for use with ostreams.

Formats as "['an_entity_reference_1', 'an_entity_reference_2']".

OPENASSETIO_CORE_EXPORT std::ostream& openassetio::v1::operator<< ( std::ostream &  out,
const ContextPtr formattable 
)

Insertion operator for use with ostreams.

Formats as "{'locale': {'aTrait': {'aProperty': propertyVal}}, 'managerState': memoryAddress}".

OPENASSETIO_CORE_EXPORT std::ostream& openassetio::v1::operator<< ( std::ostream &  out,
const ContextConstPtr formattable 
)

Insertion operator for use with ostreams.

Formats as "{'locale': {'aTrait': {'aProperty': propertyVal}}, 'managerState': memoryAddress}".

OPENASSETIO_CORE_EXPORT std::ostream& openassetio::v1::operator<< ( std::ostream &  out,
const Context formattable 
)

Insertion operator for use with ostreams.

Formats as "{'locale': {'aTrait': {'aProperty': propertyVal}}, 'managerState': memoryAddress}".