Sampa::TraceFifo Class Reference

Class to keep fifo indexes, and traces each push and pop operations. More...

#include <fifo.h>

Inheritance diagram for Sampa::TraceFifo:

Sampa::Object

List of all members.

Public Member Functions

 TraceFifo (const Name &name)
bool is_empty () const
 return true when the fifo is empty
bool is_full () const
 return true when the fifo is full
short peek () const
 return index where fifo can be read but don't increment it
short pop ()
 return index where fifo can be read and increment it
short push ()
 return index where fifo can be written and increment it
short pushable () const
 return true when the fifo can be added at least one element
short get_capacity () const
 return fifo depth
short get_size () const
 return fifo usage
const char * get_name () const
const char * get_full_name () const
 name can be ([^. ]+.)*[^. ]+
Objectget_parent () const
 return object containing this one
Objectget_sibling () const
 return next object with same parent or NULL if none
Objectget_first_child () const
 return first child object or NULL if none
int is_debug () const

Protected Types

enum  Severity { S_INFO, S_WARNING, S_ERROR, S_FATAL }

Protected Member Functions

void debug (const char *,...)
void error (Severity severity, const char *,...)
virtual void complete_restart ()


Detailed Description

Class to keep fifo indexes, and traces each push and pop operations.

This is not a templated class on purpose. Actually sometimes, the actual content of the Fifo doesn't matter, or it may be shared by several data structures. So this class only focus on maintaining read and write indexes. the depth of the fifo is given by a configuration parameter and is always rounded to a power of 2

depth, int, default 8, fifo capacity
debug, int, default 0, trace are activated when debug > 0

Definition at line 63 of file fifo.h.


Member Enumeration Documentation

enum Sampa::Object::Severity [protected, inherited]

Enumerator:
S_INFO 
S_WARNING 
S_ERROR 
S_FATAL 

Definition at line 48 of file object.h.


Constructor & Destructor Documentation

Sampa::TraceFifo::TraceFifo ( const Name name  ) 


Member Function Documentation

bool Sampa::TraceFifo::is_empty (  )  const [inline]

return true when the fifo is empty

Definition at line 66 of file fifo.h.

bool Sampa::TraceFifo::is_full (  )  const [inline]

return true when the fifo is full

Definition at line 67 of file fifo.h.

short Sampa::TraceFifo::peek (  )  const [inline]

return index where fifo can be read but don't increment it

Definition at line 68 of file fifo.h.

References get_capacity().

short Sampa::TraceFifo::pop (  ) 

return index where fifo can be read and increment it

short Sampa::TraceFifo::push (  ) 

return index where fifo can be written and increment it

short Sampa::TraceFifo::pushable (  )  const [inline]

return true when the fifo can be added at least one element

Definition at line 71 of file fifo.h.

short Sampa::TraceFifo::get_capacity (  )  const [inline]

return fifo depth

Definition at line 72 of file fifo.h.

Referenced by peek().

short Sampa::TraceFifo::get_size (  )  const [inline]

return fifo usage

Definition at line 73 of file fifo.h.

const char* Sampa::Object::get_name (  )  const [inherited]

returns the local name

const char* Sampa::Object::get_full_name (  )  const [inherited]

name can be ([^. ]+.)*[^. ]+

Object* Sampa::Object::get_parent (  )  const [inherited]

return object containing this one

Object* Sampa::Object::get_sibling (  )  const [inherited]

return next object with same parent or NULL if none

Object* Sampa::Object::get_first_child (  )  const [inherited]

return first child object or NULL if none

int Sampa::Object::is_debug (  )  const [inline, inherited]

Definition at line 44 of file object.h.

void Sampa::Object::debug ( const char *  ,
  ... 
) [protected, inherited]

void Sampa::Object::error ( Severity  severity,
const char *  ,
  ... 
) [protected, inherited]

virtual void Sampa::Object::complete_restart (  )  [protected, virtual, inherited]

is called to finalize restart. On restart, one shall update pointers, or reopen ressources (files, ...).

Most of pointers are restored by the thanks to the post++ library provided that the CLASSINFO() was correctly set.

However, some pointers are not relocated by the library. These are for example the method pointers used for the processes. Take a look at

See also:
Module::restart_process, to see how this is handled

Reimplemented in Sampa::Bridge, Sampa::Dma, Sampa::FixLatencySlave, Sampa::PeriodicTrafficGenerator, Sampa::TwoPortL1Cpu, and Sampa::StochasticCpu.


The documentation for this class was generated from the following file:
Generated on Sat Feb 16 16:23:20 2008 for Sampa by  doxygen 1.5.3