AcceleratorConnections, Accelerators, and Manifests must all share a context.
void disconnectAll()
Disconnect from all accelerators associated with this context.
std::optional< const Type * > getType(Type::ID id) const
Resolve a type id to the type.
std::vector< std::unique_ptr< AcceleratorConnection > > connections
AcceleratorConnection * connect(std::string backend, std::string connection)
Connect to an accelerator backend.
std::map< Type::ID, std::unique_ptr< Type > > TypeCache
void setLogger(std::unique_ptr< Logger > logger)
Register a logger with the accelerator. Assumes ownership of the logger.
std::unique_ptr< Logger > logger
void registerType(Type *type)
Register a type with the context. Takes ownership of the pointer type.
static std::unique_ptr< Context > withLogger(Args &&...args)
Create a context with a specific logger type.