Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
script_inspector_port.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <chrono>
4#include <functional>
5#include <memory>
6#include <string>
7
9
10namespace pulp::view {
11
12class ScriptEngine;
13
23 public:
24 using EvaluationDeadline = std::chrono::steady_clock::time_point;
25
27
32 virtual void set_realm_capabilities(const CapabilitySet& /*granted*/) {}
33
35 virtual void attach(ScriptEngine* engine) = 0;
36
38 virtual void detach() = 0;
39
41 virtual bool pump() = 0;
42
45 virtual void
46 set_post_evaluation_reset(std::function<std::string(EvaluationDeadline)> reset) = 0;
47
50 virtual std::string run_pending_post_evaluation_reset() = 0;
51};
52
54using ScriptInspectorPortFactory = std::unique_ptr<ScriptInspectorPort> (*)();
55
61
62} // namespace pulp::view
A granted-capability set.
Definition reload_capabilities.hpp:74
Definition script_engine.hpp:22
The engine-thread half of a runtime inspector, as ScriptedUiSession drives it.
Definition script_inspector_port.hpp:22
virtual void set_post_evaluation_reset(std::function< std::string(EvaluationDeadline)> reset)=0
Install the realm reset a completed evaluation owes.
virtual bool pump()=0
Run at most one queued request. True when it changed realm state.
virtual void detach()=0
Release the engine; a blocked off-thread request wakes as detached.
virtual void set_realm_capabilities(const CapabilitySet &)
Tell the port which native capabilities the realm it is about to be attached to holds.
Definition script_inspector_port.hpp:32
std::chrono::steady_clock::time_point EvaluationDeadline
Definition script_inspector_port.hpp:24
virtual void attach(ScriptEngine *engine)=0
Point the port at engine, or at none with nullptr.
virtual std::string run_pending_post_evaluation_reset()=0
Run the owed reset if one is pending.
Hover-cursor tracking for platform window hosts.
Definition fwd.hpp:27
ScriptInspectorPortFactory script_inspector_port_factory() noexcept
void set_script_inspector_port_factory(ScriptInspectorPortFactory factory) noexcept
Process-wide: set before the sessions that should carry an inspector are constructed (sessions built ...
std::unique_ptr< ScriptInspectorPort >(*)() ScriptInspectorPortFactory
Builds the port every ScriptedUiSession constructed afterwards installs.
Definition script_inspector_port.hpp:54