33#include <unordered_map>
35#include <pdi/pdi_fwd.h>
36#include <pdi/data_descriptor.h>
37#include <pdi/datatype_template.h>
38#include <pdi/ref_any.h>
51 std::unordered_map<std::string, std::unique_ptr<Data_descriptor>>::iterator m_data;
52 Iterator(
const std::unordered_map<std::string, std::unique_ptr<Data_descriptor>>::iterator& data);
53 Iterator(std::unordered_map<std::string, std::unique_ptr<Data_descriptor>>::iterator&& data);
58 Iterator& operator++ ();
59 bool operator!= (
const Iterator&);
60 bool operator== (
const Iterator&);
68 Iterator get_iterator(
const std::unordered_map<std::string, std::unique_ptr<Data_descriptor>>::iterator& data);
109 virtual void event(
const char* name) = 0;
131 virtual std::function<void()>
on_init(
const std::function<
void()>& callback) = 0;
140 virtual std::function<void()>
on_data(
const std::function<
void(
const std::string&,
Ref)>& callback,
const std::string& name = {}) = 0;
149 virtual std::function<void()>
on_data_remove(
const std::function<
void(
const std::string&,
Ref)>& callback,
const std::string& name = {}) = 0;
158 virtual std::function<void()>
on_event(
const std::function<
void(
const std::string&)>& callback,
const std::string& name = {}) = 0;
167 virtual std::function<void()>
on_missing_data(
const std::function<
void(
const std::string&)>& callback,
const std::string& name = {}) = 0;
181 const std::string m_plugin_name;
197using TimerEventHandler [[deprecated(
"use Timer_event_handler instead")]] =
Timer_event_handler;
An iterator used to go through the descriptor store.
Definition context.h:48
friend class Context
Definition context.h:49
Data_descriptor * operator->()
virtual Data_descriptor & desc(const char *name)=0
Accesses the descriptor for a specific name.
Iterator get_iterator(std::unordered_map< std::string, std::unique_ptr< Data_descriptor > >::iterator &&data)
virtual Iterator find(const std::string &name)=0
Find the Data_descriptor corresponding to a given name.
virtual Data_descriptor & desc(const std::string &name)=0
Accesses the descriptor for a specific name.
virtual Datatype_template_sptr datatype(PC_tree_t node)=0
Creates a new datatype template from a paraconf-style config.
Iterator get_iterator(const std::unordered_map< std::string, std::unique_ptr< Data_descriptor > >::iterator &data)
virtual void add_datatype(const std::string &name, Datatype_template_parser parser)=0
Adds new datatype parser to the context.
virtual std::function< void()> on_data_remove(const std::function< void(const std::string &, Ref)> &callback, const std::string &name={})=0
Adds new data remove callback to context.
std::function< Datatype_template_sptr(Context &, PC_tree_t)> Datatype_template_parser
A function that parses a PC_tree_t to create a datatype_template.
Definition context.h:65
virtual std::function< void()> on_init(const std::function< void()> &callback)=0
Adds new init callback to context.
virtual std::function< void()> on_data(const std::function< void(const std::string &, Ref)> &callback, const std::string &name={})=0
Adds new data callback to context.
virtual Iterator end()=0
Returns an iterator past the last descriptor.
virtual std::function< void()> on_missing_data(const std::function< void(const std::string &)> &callback, const std::string &name={})=0
Adds new empty desc access callback to context.
virtual std::function< void()> on_event(const std::function< void(const std::string &)> &callback, const std::string &name={})=0
Adds new event callback to context.
virtual Iterator begin()=0
Returns an iterator on the first descriptor.
virtual void event(const char *name)=0
Triggers a PDI "event".
Definition data_descriptor.h:39
A scoped timer for a plugin operation.
Definition context.h:177
~Timer_event_handler()
Triggers the stop event of the timer.
Timer_event_handler(Context &ctx, const std::string &plugin_name)
Triggers the start event of the timer.
Definition array_datatype.h:38
std::shared_ptr< const Datatype_template > Datatype_template_sptr
Definition pdi_fwd.h:79
Ref_any< false, false > Ref
Definition pdi_fwd.h:99