functional-dag
Loading...
Searching...
No Matches
dag_interface.hpp
1#pragma once
2// ---------------------------------------------
3// ___ .___
4// |_ \ __| _/____ ____
5// / \ ______ / __ |\__ \ / ___\
6// / /\ \ /_____/ / /_/ | / __ \_/ /_/ >
7// /_/ \__\ \____ |(____ /\___ /
8// \/ \//_____/
9// ---------------------------------------------
10// @author ndepalma@alum.mit.edu
11
12namespace fn_dag {
18 template<typename Out>
19 class dag_source {
20 public:
23 virtual ~dag_source() = default;
24
28 virtual Out *update() = 0;
29 };
30
38 template<typename In, typename Out>
39 class dag_node {
40 public:
41
44 virtual ~dag_node() = default;
45
54 virtual Out *update(const In *_data) = 0;
55 };
56}
Interface for all external "mapping" lambdas.
Definition dag_interface.hpp:39
virtual ~dag_node()=default
Default constructor.
virtual Out * update(const In *_data)=0
Translator function.
Interface for all external generator lambdas.
Definition dag_interface.hpp:19
virtual ~dag_source()=default
Default constructor.
virtual Out * update()=0
Generator function to implement by the user.