};
// Interface
-class frame_producer : public monitor::observable, public interaction_sink
+class frame_producer : public interaction_sink
{
frame_producer(const frame_producer&);
frame_producer& operator=(const frame_producer&);
// Methods
virtual class draw_frame receive() = 0;
- virtual boost::unique_future<std::wstring> call(const std::vector<std::wstring>& params) = 0;
+ virtual std::future<std::wstring> call(const std::vector<std::wstring>& params) = 0;
virtual variable& get_variable(const std::wstring& name) = 0;
virtual const std::vector<std::wstring>& get_variables() const = 0;
// monitor::observable
- virtual void subscribe(const monitor::observable::observer_ptr& o) = 0;
- virtual void unsubscribe(const monitor::observable::observer_ptr& o) = 0;
+ virtual monitor::subject& monitor_output() = 0;
// interaction_sink
virtual void on_interaction(const interaction_event::ptr& event) override { }
// Methods
- virtual boost::unique_future<std::wstring> call(const std::vector<std::wstring>& params) override;
+ virtual std::future<std::wstring> call(const std::vector<std::wstring>& params) override;
virtual variable& get_variable(const std::wstring& name) override;
virtual const std::vector<std::wstring>& get_variables() const override;