16#ifndef BIFROSTGRAPH_EXECUTOR_WORKSPACE_H
17#define BIFROSTGRAPH_EXECUTOR_WORKSPACE_H
19#include <BifrostGraph/Executor/internal/ExecutorExport.h>
20#include <BifrostGraph/Executor/internal/PropagateConstPtr.h>
45class WatchpointLayoutFactory;
48class IGraphContainerOwner;
49class IRestrictedWorkspaceServices;
117 virtual
bool isValid() const noexcept;
175 bool registerTypeTranslationsPlugins(
TypeTranslation::PluginHostData* hostData) const noexcept;
185 bool unregisterTypeTranslationsPlugins(
206 template <typename Functor>
212 owner = std::forward<Functor&&>(func)(getGraphContainerOwnerServices());
217 GraphContainer* container = validateAndAddGraphContainer(std::move(owner));
233 template <
typename T>
296 const
Amino::String& message) const noexcept;
306 Private::IGraphContainerOwner& getGraphContainerOwnerServices() noexcept;
341 const Private::IRestrictedWorkspaceServices& getRestrictedServices() const noexcept;
342 Private::IRestrictedWorkspaceServices& getRestrictedServices() noexcept;
355 friend class Private::WorkspaceImpl;
356 Internal::PropagateConstPtr<Private::WorkspaceImpl, Internal::Owned::kYes> m_impl;
Provide factory functions for Executor core classes.
BifrostGraph Executor GraphContainer.
BifrostGraph Executor Owner helper class.
BifrostGraph Executor TypeTranslation.
MessageSource
The source object of a reported message.
Uninitialized
Tag for explicitly specifying that a constructor should not initialize any data members,...
MessageCategory
The category of a reported message.
Define a Amino array of elements of type T.
The string class used by Amino.
The GraphContainer class that loads a graph to be executed and manages the Jobs that execute this gra...
static GraphContainer & getInvalid() noexcept
Get a statically allocated GraphContainer that is uninitialized, invalid and not owned by any Workspa...
A Library of types and node definitions that can be used by Bifrost.
The Owner<T> class template represents ownership of an object pointer. It indicates that the pointed ...
BifrostGraph Executor TypeTranslation.
BifrostGraph Executor Watchpoint.
Layout factory to build layouts for types and/or values.
The Workspace is the central element of the BifrostGraph Executor.
void(*)(T *p) DeleterFunc
The signature for the custom pointer deleter of a pointee p.
Workspace(Uninitialized uninitialized) noexcept
Constructor that leaves the Workspace in an uninitialized state.
GraphContainer & addGraphContainer() noexcept
Aliases for adding an instance of a GraphContainer base class, using an optional custom deleter funct...
Workspace(const Amino::String &name) noexcept
Construct a Workspace. The Workspace is initialized with a newly created BifrostGraph::Executor::Libr...
virtual ~Workspace() noexcept
Destructor.
EXECUTOR_DECLARE_MAKE_OWNER_FRIENDSHIP()
Allow the makeOwner<> factory functions to access the constructors of this class.
BifrostGraph Executor common types.