MUDA
Loading...
Searching...
No Matches
host_node.h
1#pragma once
2#include <muda/graph/graph_base.h>
3
4namespace muda
5{
6class HostNode : public GraphNode
7{
8 public:
9 using this_type = HostNode;
10 friend class Graph;
11};
12
13template <typename T>
15{
16 cudaHostNodeParams m_parms;
17
18 public:
19 T hostData;
21 friend class Graph;
22 friend class std::shared_ptr<this_type>;
23 friend class std::unique_ptr<this_type>;
24 friend class std::weak_ptr<this_type>;
25
26 HostNodeParms(const T& f)
27 : hostData(f)
28 , m_parms({})
29 {
30 m_parms.userData = &hostData;
31 }
32 auto fn() const { return m_parms.fn; }
33 void fn(cudaHostFn_t fn) { m_parms.fn = fn; }
34 auto userdata() const { return m_parms.userData; }
35 void userdata(void* userdata) { m_parms.userData = userdata; }
36 const cudaHostNodeParams* handle() const { return &m_parms; }
37 cudaHostNodeParams* handle() { return &m_parms; }
38};
39} // namespace muda
Definition graph.h:18
Definition graph_base.h:27
Definition host_node.h:7
Definition host_node.h:15
Definition graph_base.h:20