Sampa::Fifo Class Reference

Class to keep fifo indexes. More...

#include <fifo.h>

Inheritance diagram for Sampa::Fifo:

Sampa::Object

List of all members.

Public Member Functions

 Fifo (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.

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.

Parameters -depth, int, default 8, fifo capacity that is always rounded to a power of 2 -debug, int, default 0.

Definition at line 35 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::Fifo::Fifo ( const Name name  ) 


Member Function Documentation

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

return true when the fifo is empty

Definition at line 38 of file fifo.h.

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

return true when the fifo is full

Definition at line 39 of file fifo.h.

References get_capacity().

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

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

Definition at line 40 of file fifo.h.

short Sampa::Fifo::pop (  )  [inline]

return index where fifo can be read and increment it

Definition at line 41 of file fifo.h.

short Sampa::Fifo::push (  )  [inline]

return index where fifo can be written and increment it

Definition at line 42 of file fifo.h.

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

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

Definition at line 43 of file fifo.h.

References get_capacity().

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

return fifo depth

Definition at line 44 of file fifo.h.

Referenced by is_full(), and pushable().

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

return fifo usage

Definition at line 45 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