gem5  v21.1.0.2
Public Member Functions | Private Member Functions | Private Attributes | List of all members
gem5::ruby::Consumer Class Referenceabstract

#include <Consumer.hh>

Inheritance diagram for gem5::ruby::Consumer:
gem5::ruby::AbstractController gem5::ruby::garnet::CrossbarSwitch gem5::ruby::garnet::InputUnit gem5::ruby::garnet::NetworkInterface gem5::ruby::garnet::NetworkLink gem5::ruby::garnet::OutputUnit gem5::ruby::garnet::Router gem5::ruby::garnet::SwitchAllocator gem5::ruby::PerfectSwitch gem5::ruby::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)
 
ClockedObject * getObject ()
 
void scheduleEventAbsolute (Tick timeAbs)
 
void scheduleEvent (Cycles timeDelta)
 

Private Member Functions

void scheduleNextWakeup ()
 
void processCurrentEvent ()
 

Private Attributes

std::set< Tick > m_wakeup_ticks
 
EventFunctionWrapper m_wakeup_event
 
ClockedObject * em
 

Detailed Description

Definition at line 61 of file Consumer.hh.

Constructor & Destructor Documentation

◆ Consumer()

gem5::ruby::Consumer::Consumer ( ClockedObject *  _em)

Definition at line 49 of file Consumer.cc.

References processCurrentEvent().

◆ ~Consumer()

virtual gem5::ruby::Consumer::~Consumer ( )
inlinevirtual

Definition at line 67 of file Consumer.hh.

Member Function Documentation

◆ alreadyScheduled()

bool gem5::ruby::Consumer::alreadyScheduled ( Tick  time)
inline

Definition at line 75 of file Consumer.hh.

References m_wakeup_ticks.

Referenced by gem5::ruby::garnet::SwitchAllocator::check_for_wakeup().

◆ getObject()

ClockedObject* gem5::ruby::Consumer::getObject ( )
inline

Definition at line 81 of file Consumer.hh.

References em.

Referenced by gem5::ruby::garnet::NetworkBridge::scheduleFlit().

◆ print()

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

◆ processCurrentEvent()

void gem5::ruby::Consumer::processCurrentEvent ( )
private

Definition at line 86 of file Consumer.cc.

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

Referenced by Consumer().

◆ scheduleEvent()

void gem5::ruby::Consumer::scheduleEvent ( Cycles  timeDelta)

◆ scheduleEventAbsolute()

void gem5::ruby::Consumer::scheduleEventAbsolute ( Tick  timeAbs)

◆ scheduleNextWakeup()

void gem5::ruby::Consumer::scheduleNextWakeup ( )
private

◆ storeEventInfo()

virtual void gem5::ruby::Consumer::storeEventInfo ( int  info)
inlinevirtual

Reimplemented in gem5::ruby::PerfectSwitch.

Definition at line 72 of file Consumer.hh.

Referenced by gem5::ruby::MessageBuffer::enqueue().

◆ wakeup()

virtual void gem5::ruby::Consumer::wakeup ( )
pure virtual

Member Data Documentation

◆ em

ClockedObject* gem5::ruby::Consumer::em
private

◆ m_wakeup_event

EventFunctionWrapper gem5::ruby::Consumer::m_wakeup_event
private

Definition at line 91 of file Consumer.hh.

Referenced by scheduleNextWakeup().

◆ m_wakeup_ticks

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

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

Generated on Tue Sep 21 2021 12:32:03 for gem5 by doxygen 1.8.17