RaftLib  0.3a
C++ Stream Processing Template Library
Public Member Functions | Public Attributes | List of all members
PortInfo Struct Reference
Collaboration diagram for PortInfo:
[legend]

Public Member Functions

 PortInfo (const std::type_info &the_type)
 
 PortInfo (const std::type_info &the_type, void *const ptr, const std::size_t nitems, const std::size_t start_index)
 
 PortInfo (const PortInfo &other)
 
virtual ~PortInfo ()
 
FIFOgetFIFO ()
 
void setFIFO (FIFO *const in)
 

Public Attributes

FIFOfifo_a = nullptr
 
FIFOfifo_b = nullptr
 
std::type_index type
 
std::map< Type::RingBufferType, instr_map_t * > const_map
 
split_factory_t split_func = nullptr
 
join_factory_t join_func = nullptr
 
raft::kernelmy_kernel = nullptr
 
std::string my_name = ""
 
raft::kernelother_kernel = nullptr
 
std::string other_name = ""
 
bool use_my_allocator = false
 
bool out_of_order = false
 
void * existing_buffer = nullptr
 
std::size_t nitems = 0
 
std::size_t start_index = 0
 
std::size_t fixed_buffer_size = 0
 

Constructor & Destructor Documentation

PortInfo::~PortInfo ( )
virtual

alloc delete fifo object

Member Function Documentation

FIFO * PortInfo::getFIFO ( )

getFIFO - call this function to get a FIFO, lock free but checks to make sure an update isn't occuring. The ptr returned will be fine to use even if an update occurs while the ptr is in use since it won't be deleted from the receiving end until the FIFO is fully emptied.

Returns
FIFO*

Here is the caller graph for this function:

void PortInfo::setFIFO ( FIFO *const  in)

setFIFO - call this funciton to set a FIFO, updates both pointers at the same time as opposed to doing it manually

Parameters
in- valid FIFO*, must not be nullptr

Here is the caller graph for this function:

Member Data Documentation

std::map< Type::RingBufferType , instr_map_t* > PortInfo::const_map

const_map - stores "builder" objects for each of the currenty implemented ring buffer types so that when the mapper is allocating ring buffers it may allocate one with the proper type. The first key is self explanatory for the most part, storing the ring buffer type. The second internal map key is "instrumented" vs. not.

split_factory_t PortInfo::split_func = nullptr

NOTE: These are allocated by the run-time but not destroyed unless they're used...they'll of course be destroyed upon program termination.

std::type_index PortInfo::type

the type of the port. regardless of if the buffer itself is impplemented or not.

bool PortInfo::use_my_allocator = false

runtime settings


The documentation for this struct was generated from the following files: