OpenASIP  2.0
Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
AssignmentQueue Class Reference

#include <AssignmentQueue.hh>

Collaboration diagram for AssignmentQueue:
Collaboration graph

Public Member Functions

 AssignmentQueue (int maxLatency)
 
 ~AssignmentQueue ()
 
void addAssignment (const SimValue &assignValue, SimValue *assignTarget, int latency)
 
void advanceClock ()
 

Private Types

typedef std::pair< SimValue, SimValue * > Assignment
 Type for the assignment: source value -> destination pointer. More...
 
typedef std::deque< std::deque< Assignment > > Assignments
 Type for the stored assignments. More...
 

Private Member Functions

 AssignmentQueue (const AssignmentQueue &)
 Copying not allowed. More...
 
AssignmentQueueoperator= (const AssignmentQueue &)
 Assignment not allowed. More...
 

Private Attributes

Assignments assignmentQueue_
 Our assignment queue. More...
 
int position_
 Position in the ring buffer. More...
 
int maxLatency_
 Maximum possible latency. More...
 

Detailed Description

This class is used for delayed assignments of SimValues to given targets.

The implementation uses std::vector for a simple ring buffer Buffer size is directly the maximum possible latency

Definition at line 48 of file AssignmentQueue.hh.

Member Typedef Documentation

◆ Assignment

typedef std::pair< SimValue, SimValue*> AssignmentQueue::Assignment
private

Type for the assignment: source value -> destination pointer.

Definition at line 66 of file AssignmentQueue.hh.

◆ Assignments

typedef std::deque< std::deque< Assignment > > AssignmentQueue::Assignments
private

Type for the stored assignments.

Definition at line 69 of file AssignmentQueue.hh.

Constructor & Destructor Documentation

◆ AssignmentQueue() [1/2]

AssignmentQueue::AssignmentQueue ( int  maxLatency)

The constructor

Definition at line 40 of file AssignmentQueue.cc.

40  :
41  position_(0), maxLatency_(maxLatency) {
43 }

References assignmentQueue_, and maxLatency_.

◆ ~AssignmentQueue()

AssignmentQueue::~AssignmentQueue ( )

The destructor

Definition at line 48 of file AssignmentQueue.cc.

48  {
49 }

◆ AssignmentQueue() [2/2]

AssignmentQueue::AssignmentQueue ( const AssignmentQueue )
private

Copying not allowed.

Member Function Documentation

◆ addAssignment()

void AssignmentQueue::addAssignment ( const SimValue assignValue,
SimValue assignTarget,
int  latency 
)
inline

◆ advanceClock()

void AssignmentQueue::advanceClock ( )
inline

◆ operator=()

AssignmentQueue& AssignmentQueue::operator= ( const AssignmentQueue )
private

Assignment not allowed.

Member Data Documentation

◆ assignmentQueue_

Assignments AssignmentQueue::assignmentQueue_
private

Our assignment queue.

Definition at line 72 of file AssignmentQueue.hh.

Referenced by AssignmentQueue().

◆ maxLatency_

int AssignmentQueue::maxLatency_
private

Maximum possible latency.

Definition at line 78 of file AssignmentQueue.hh.

Referenced by AssignmentQueue().

◆ position_

int AssignmentQueue::position_
private

Position in the ring buffer.

Definition at line 75 of file AssignmentQueue.hh.


The documentation for this class was generated from the following files:
AssignmentQueue::position_
int position_
Position in the ring buffer.
Definition: AssignmentQueue.hh:75
AssignmentQueue::maxLatency_
int maxLatency_
Maximum possible latency.
Definition: AssignmentQueue.hh:78
AssignmentQueue::assignmentQueue_
Assignments assignmentQueue_
Our assignment queue.
Definition: AssignmentQueue.hh:72