gem5  v21.0.0.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Member Functions | Private Member Functions | Private Attributes | List of all members
Consumer Class Referenceabstract

#include <Consumer.hh>

Inheritance diagram for Consumer:
AbstractController CrossbarSwitch InputUnit NetworkInterface NetworkLink OutputUnit PerfectSwitch Router SwitchAllocator Throttle

Public Member Functions

 Consumer (ClockedObject *_em)
 
virtual ~Consumer ()
 
virtual void wakeup ()=0
 
virtual void print (std::ostream &out) const =0
 
virtual void storeEventInfo (int info)
 
bool alreadyScheduled (Tick time)
 
ClockedObjectgetObject ()
 
void scheduleEventAbsolute (Tick timeAbs)
 
void scheduleEvent (Cycles timeDelta)
 

Private Member Functions

void scheduleNextWakeup ()
 
void processCurrentEvent ()
 

Private Attributes

std::set< Tickm_wakeup_ticks
 
EventFunctionWrapper m_wakeup_event
 
ClockedObjectem
 

Detailed Description

Definition at line 55 of file Consumer.hh.

Constructor & Destructor Documentation

◆ Consumer()

Consumer::Consumer ( ClockedObject _em)

Definition at line 43 of file Consumer.cc.

References processCurrentEvent().

◆ ~Consumer()

virtual Consumer::~Consumer ( )
inlinevirtual

Definition at line 61 of file Consumer.hh.

Member Function Documentation

◆ alreadyScheduled()

bool Consumer::alreadyScheduled ( Tick  time)
inline

Definition at line 69 of file Consumer.hh.

References m_wakeup_ticks.

Referenced by SwitchAllocator::check_for_wakeup().

◆ getObject()

ClockedObject* Consumer::getObject ( )
inline

Definition at line 75 of file Consumer.hh.

References em.

Referenced by NetworkBridge::scheduleFlit().

◆ print()

virtual void Consumer::print ( std::ostream &  out) const
pure virtual

◆ processCurrentEvent()

void Consumer::processCurrentEvent ( )
private

Definition at line 80 of file Consumer.cc.

References Clocked::clockEdge(), em, m_wakeup_ticks, scheduleNextWakeup(), and wakeup().

Referenced by Consumer().

◆ scheduleEvent()

void Consumer::scheduleEvent ( Cycles  timeDelta)

◆ scheduleEventAbsolute()

void Consumer::scheduleEventAbsolute ( Tick  timeAbs)

◆ scheduleNextWakeup()

void Consumer::scheduleNextWakeup ( )
private

◆ storeEventInfo()

virtual void Consumer::storeEventInfo ( int  info)
inlinevirtual

Reimplemented in PerfectSwitch.

Definition at line 66 of file Consumer.hh.

Referenced by MessageBuffer::enqueue().

◆ wakeup()

virtual void Consumer::wakeup ( )
pure virtual

Member Data Documentation

◆ em

ClockedObject* Consumer::em
private

◆ m_wakeup_event

EventFunctionWrapper Consumer::m_wakeup_event
private

Definition at line 85 of file Consumer.hh.

Referenced by scheduleNextWakeup().

◆ m_wakeup_ticks

std::set<Tick> Consumer::m_wakeup_ticks
private

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

Generated on Tue Mar 23 2021 19:41:34 for gem5 by doxygen 1.8.17