32 #include "portbase.hpp"
33 #include "graphtools.hpp"
34 #include "ringbuffertypes.hpp"
36 #include "port_info.hpp"
37 #include "ringbuffer.tcc"
38 #include "port_info_types.hpp"
39 #include "portmap_t.hpp"
40 #include "portiterator.hpp"
85 bool addPort(
const std::string port_name )
95 pi.my_name = port_name;
96 (
this)->initializeConstMap<T>( pi );
97 const auto ret_val(
portmap.map.insert( std::make_pair( port_name,
99 return( ret_val.second );
111 T *existing_buff_t( reinterpret_cast< T* >(
alloc_ptr ) );
113 const std::size_t inc( length / n_ports );
114 const std::size_t adder( length % n_ports );
116 for( std::size_t index( 0 ); index < n_ports; index++ )
118 const std::size_t start_index( index * inc );
120 (
void*)&( existing_buff_t[ start_index ] ) ,
121 inc + ( index == (n_ports - 1) ? adder : 0 ),
124 const std::string name( std::to_string( index ) );
126 (
this)->initializeConstMap< T >( pi );
127 portmap.map.insert( std::make_pair( name, pi ) );
142 const std::type_index&
getPortType(
const std::string port_name );
189 std::make_pair( Type::Heap ,
new instr_map_t() ) );
192 std::make_pair(
false ,
193 RingBuffer< T, Type::Heap, false >::make_new_fifo ) );
195 std::make_pair(
true ,
196 RingBuffer< T, Type::Heap, true >::make_new_fifo ) );
198 pi.
const_map.insert( std::make_pair( Type::SharedMemory,
new instr_map_t() ) );
199 pi.
const_map[ Type::SharedMemory ]->insert(
200 std::make_pair(
false ,
201 RingBuffer< T, Type::SharedMemory >::make_new_fifo ) );
const std::size_t alloc_ptr_length
Definition: port.hpp:244
void initializeConstMap(PortInfo &pi)
Definition: port.hpp:186
virtual FIFO & operator[](const std::string port_name)
Definition: port.cpp:68
PortInfo & getPortInfoFor(const std::string port_name)
Definition: port.cpp:104
std::map< Type::RingBufferType, instr_map_t * > const_map
Definition: port_info.hpp:135
PortInfo & getPortInfo()
Definition: port.cpp:117
Port(raft::kernel *k)
Definition: port.cpp:33
Definition: mapbase.hpp:98
const std::type_index & getPortType(const std::string port_name)
Definition: port.cpp:57
raft::kernel * kernel
Definition: port.hpp:231
virtual PortIterator begin()
Definition: port.cpp:86
portmap_t portmap
Definition: port.hpp:226
void *const alloc_ptr
Definition: port.hpp:238
Definition: portbase.hpp:28
virtual bool hasPorts()
Definition: port.cpp:80
virtual ~Port()
Definition: port.cpp:48
std::size_t count()
Definition: port.cpp:98
Definition: port_info.hpp:39
virtual PortIterator end()
Definition: port.cpp:92
Definition: kernel.hpp:48
bool addPort(const std::string port_name)
Definition: port.hpp:85
Definition: globalmap.cpp:3
Definition: portiterator.hpp:32
bool addPorts(const std::size_t n_ports=0)
Definition: port.hpp:109
Definition: portmap_t.hpp:28