
#ifndef PLS_DATAFLOW_DATAFLOW_H_
#define PLS_DATAFLOW_DATAFLOW_H_

#include "internal/graph.h"
#include "internal/function_node.h"
#include "internal/merge_node.h"
#include "internal/switch_node.h"
#include "internal/split_node.h"

#include "internal/inputs.h"
#include "internal/outputs.h"

namespace pls {
namespace dataflow {

template<typename INS, typename OUTS>
using graph = internal::graph<INS, OUTS>;
template<typename INS, typename OUTS, typename F>
using function_node = internal::function_node<INS, OUTS, F>;
template<typename I>
using merge_node = internal::merge_node<I>;
template<typename I>
using switch_node = internal::switch_node<I>;
template<typename I>
using split_node = internal::split_node<I>;

template<typename ...I>
using inputs = internal::inputs<I...>;
template<typename ...O>
using outputs = internal::outputs<O...>;

}
}

#endif //PLS_DATAFLOW_DATAFLOW_H_
