Context for enabling access to objects after they have been incorporated into a processing graph.
Instances are nonmovable and must be handled by std::shared_ptr.
A context mediates external access to the state of individual objects (typically processors) within the processing graph. This is done by means of a tcspc::access_tracker object that is obtained from the context and embedded into the object. The tracker moves and is destroyed together with the tracked object, allowing the context to track how to access the object after being moved into the processing graph.
A name is associated with each tracked object. The name must be unique within a given context (and may not be reused even after destroying the corresponding tracker).
Actual access to object state is through an access object whose type is defined by the object and whose instances can be obtained from the context by name.
Inherits std::enable_shared_from_this< context >.