|
iterator | begin () |
| STL-like begin operation,.
|
|
iterator | end () |
| STL-like begin operation,.
|
|
const_iterator | begin () const |
| STL-like begin operation,.
|
|
const_iterator | end () const |
| STL-like begin operation,.
|
|
| Pipe (const Pipe< DataT > &)=delete |
| No copies.
|
|
Pipe & | operator= (const Pipe< DataT > &)=delete |
| No copies.
|
|
| Pipe (const std::string &name, uint32_t num_entries, const Clock *clk) |
| Construct a pipe, 0-size not supported.
|
|
void | resize (uint32_t new_size) |
| Resize the pipe immediately after construction.
|
|
void | performOwnUpdates () |
|
size_type | capacity () const |
| What is the capacity of the pipe? I.e. Entry count.
|
|
size_type | numValid () const |
|
size_type | size () const |
| Resturns numValid – useful for STL iteration.
|
|
bool | empty () const |
| Return whether the pipe is empty.
|
|
void | append (const DataT &data) |
| Append data to the beginning of the Pipe.
|
|
void | append (DataT &&data) |
| Append data to the beginning of the Pipe.
|
|
bool | isAppended () const |
| Is the pipe already appended data?
|
|
void | push_front (const DataT &data) |
| Append data to the beginning of the Pipe.
|
|
void | push_front (DataT &&data) |
| Append data to the beginning of the Pipe.
|
|
void | writePS (uint32_t stage, const DataT &data) |
| Append data to the specified stage. Will clobber what's there.
|
|
void | writePS (uint32_t stage, DataT &&data) |
| Append data to the specified stage. Will clobber what's there.
|
|
void | invalidatePS (uint32_t stage) |
|
void | clear () |
| Clear the pipe.
|
|
void | invalidateLastPS () |
|
void | flushPS (uint32_t stage) |
| Flush the item at the given stage, even if not valid.
|
|
void | flushAppend () |
| Flush the item that was appended.
|
|
void | flushAll () |
| Flush everything, RIGHT NOW.
|
|
void | flushIf (const DataT &criteria) |
| Flush any item that matches the given criteria.
|
|
void | flushIf (std::function< bool(const DataT &)> compare) |
| Flush any item that matches the given function.
|
|
const std::string & | getName () const |
| Name of this resource.
|
|
bool | isValid (uint32_t stage) const |
| See if there is something at the given stage.
|
|
bool | isAnyValid () const |
| Are any entries valid, including ones appended THIS cycle.
|
|
bool | isLastValid () const |
| Is the last entry valid?
|
|
const DataT & | read (uint32_t stage) const |
| Read the entry at the given stage.
|
|
DataT & | access (uint32_t stage) |
| Read the entry at the given stage (non-const)
|
|
const DataT & | readLast () const |
| Read the last entry.
|
|
const DataT & | readAppendedData () const |
|
void | update () |
| Update the pipe – shift data appended/invalidated.
|
|
bool | shiftAppend () |
|
template<sparta::SchedulingPhase phase = SchedulingPhase::Collection> |
void | enableCollection (TreeNode *parent) |
| Request that this queue begin collecting its contents for pipeline collection.
|
|
bool | isCollected () const |
| Check if pipe is collecting.
|
|
template<typename DataT>
class sparta::Pipe< DataT >
A very simple pipe, not part of the DES paradigm.
This is a very simple pipe that supports pipeline collection, present-state/next-state behavior and an unsafe "look anywhere" in the pipe read.
The user is expected to maintain this Pipe and it's forward progress. After appends/deletes, the user is expected to perform an update on the Pipe at specified time determined only by the user. For collection and pipeline behaviors, update() should be called every time the pipe being collected has changed state. Assuming this happens, the collector will manage writing transactions to the database.
Definition at line 44 of file Pipe.hpp.
template<typename DataT >
void sparta::Pipe< DataT >::flushIf |
( |
const DataT & |
criteria | ) |
|
|
inline |
Flush any item that matches the given criteria.
- Parameters
-
criteria | The criteria to compare; must respond to operator== |
This function does a raw '==' comparison between the criteria and the stashed items in the pipe. If matched, the item is flushed, even if not valid.
Definition at line 383 of file Pipe.hpp.