RaftLib  0.3a
C++ Stream Processing Template Library
port_info.hpp
1 
20 #ifndef _PORT_INFO_HPP_
21 #define _PORT_INFO_HPP_ 1
22 #include <typeinfo>
23 #include <typeindex>
24 #include <string>
25 #include <map>
26 #include <functional>
27 #include <cstddef>
28 #include <memory>
29 #include <cassert>
30 
31 #include "ringbuffertypes.hpp"
32 #include "port_info_types.hpp"
33 #include "fifo.hpp"
34 
35 namespace raft{
36  class kernel;
37 }
38 
39 struct PortInfo
40 {
41  PortInfo();
42 
43  PortInfo( const std::type_info &the_type );
44 
45  PortInfo( const std::type_info &the_type,
46  void * const ptr,
47  const std::size_t nitems,
48  const std::size_t start_index );
49 
50  PortInfo( const PortInfo &other );
51 
52 
53  virtual ~PortInfo();
54 
63  FIFO* getFIFO();
64 
70  void setFIFO( FIFO * const in );
71 
72  FIFO *fifo_a = nullptr;
73  FIFO *fifo_b = nullptr;
78  std::type_index type;
79 
88  std::map< Type::RingBufferType , instr_map_t* > const_map;
89 
90 
96  split_factory_t split_func = nullptr;
97  join_factory_t join_func = nullptr;
98 
99  raft::kernel *my_kernel = nullptr;
100  std::string my_name = "";
101 
102  raft::kernel *other_kernel = nullptr;
103  std::string other_name = "";
104 
106  bool use_my_allocator= false;
107  bool out_of_order = false;
108  void *existing_buffer = nullptr;
109  std::size_t nitems = 0;
110  std::size_t start_index = 0;
111  std::size_t fixed_buffer_size = 0;
112 };
113 #endif /* END _PORT_INFO_HPP_ */
virtual ~PortInfo()
Definition: port_info.cpp:42
std::map< Type::RingBufferType, instr_map_t * > const_map
Definition: port_info.hpp:88
bool use_my_allocator
Definition: port_info.hpp:106
void setFIFO(FIFO *const in)
Definition: port_info.cpp:64
split_factory_t split_func
Definition: port_info.hpp:96
Definition: port_info.hpp:39
FIFO * getFIFO()
Definition: port_info.cpp:49
std::type_index type
Definition: port_info.hpp:78
Definition: kernel.hpp:57
Definition: globalmap.cpp:3
Definition: fifo.hpp:48