gem5  v20.1.0.0
Public Member Functions | Private Attributes | List of all members
Message Class Referenceabstract

#include <Message.hh>

Inheritance diagram for Message:
RubyRequest

Public Member Functions

 Message (Tick curTime)
 
 Message (const Message &other)
 
virtual ~Message ()
 
virtual MsgPtr clone () const =0
 
virtual void print (std::ostream &out) const =0
 
virtual const MessageSizeType & getMessageSize () const
 
virtual MessageSizeType & getMessageSize ()
 
virtual bool functionalRead (Packet *pkt)=0
 The two functions below are used for reading / writing the message functionally. More...
 
virtual bool functionalWrite (Packet *pkt)=0
 
void updateDelayedTicks (Tick curTime)
 Update the delay this message has experienced so far. More...
 
Tick getDelayedTicks () const
 
void setLastEnqueueTime (const Tick &time)
 
Tick getLastEnqueueTime () const
 
Tick getTime () const
 
void setMsgCounter (uint64_t c)
 
uint64_t getMsgCounter () const
 
virtual const NetDestgetDestination () const
 
virtual NetDestgetDestination ()
 
int getIncomingLink () const
 
void setIncomingLink (int link)
 
int getVnet () const
 
void setVnet (int net)
 

Private Attributes

Tick m_time
 
Tick m_LastEnqueueTime
 
Tick m_DelayedTicks
 
uint64_t m_msg_counter
 
int incoming_link
 
int vnet
 

Detailed Description

Definition at line 43 of file Message.hh.

Constructor & Destructor Documentation

◆ Message() [1/2]

Message::Message ( Tick  curTime)
inline

Definition at line 46 of file Message.hh.

◆ Message() [2/2]

Message::Message ( const Message other)
inline

Definition at line 52 of file Message.hh.

◆ ~Message()

virtual Message::~Message ( )
inlinevirtual

Definition at line 59 of file Message.hh.

Member Function Documentation

◆ clone()

virtual MsgPtr Message::clone ( ) const
pure virtual

Implemented in RubyRequest.

◆ functionalRead()

virtual bool Message::functionalRead ( Packet pkt)
pure virtual

The two functions below are used for reading / writing the message functionally.

The methods return true if the address in the packet matches the address / address range in the message. Each message class that can be potentially searched for the address needs to implement these methods.

Implemented in RubyRequest.

Referenced by MessageBuffer::functionalAccess().

◆ functionalWrite()

virtual bool Message::functionalWrite ( Packet pkt)
pure virtual

◆ getDelayedTicks()

Tick Message::getDelayedTicks ( ) const
inline

Definition at line 86 of file Message.hh.

References m_DelayedTicks.

◆ getDestination() [1/2]

virtual NetDest& Message::getDestination ( )
inlinevirtual

Definition at line 98 of file Message.hh.

References panic.

◆ getDestination() [2/2]

virtual const NetDest& Message::getDestination ( ) const
inlinevirtual

◆ getIncomingLink()

int Message::getIncomingLink ( ) const
inline

Definition at line 101 of file Message.hh.

References incoming_link.

◆ getLastEnqueueTime()

Tick Message::getLastEnqueueTime ( ) const
inline

Definition at line 89 of file Message.hh.

References m_LastEnqueueTime.

Referenced by MessageBuffer::enqueue().

◆ getMessageSize() [1/2]

virtual MessageSizeType& Message::getMessageSize ( )
inlinevirtual

Definition at line 66 of file Message.hh.

References panic.

◆ getMessageSize() [2/2]

virtual const MessageSizeType& Message::getMessageSize ( ) const
inlinevirtual

Definition at line 64 of file Message.hh.

References panic.

Referenced by NetworkInterface::flitisizeMessage(), network_message_to_size(), and Throttle::operateVnet().

◆ getMsgCounter()

uint64_t Message::getMsgCounter ( ) const
inline

Definition at line 93 of file Message.hh.

References m_msg_counter.

◆ getTime()

Tick Message::getTime ( ) const
inline

Definition at line 91 of file Message.hh.

References m_time.

◆ getVnet()

int Message::getVnet ( ) const
inline

Definition at line 103 of file Message.hh.

References vnet.

◆ print()

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

Implemented in RubyRequest.

Referenced by operator<<().

◆ setIncomingLink()

void Message::setIncomingLink ( int  link)
inline

Definition at line 102 of file Message.hh.

References incoming_link.

◆ setLastEnqueueTime()

void Message::setLastEnqueueTime ( const Tick time)
inline

Definition at line 88 of file Message.hh.

References m_LastEnqueueTime.

Referenced by WireBuffer::enqueue(), and MessageBuffer::enqueue().

◆ setMsgCounter()

void Message::setMsgCounter ( uint64_t  c)
inline

Definition at line 92 of file Message.hh.

References ArmISA::c, and m_msg_counter.

Referenced by MessageBuffer::enqueue().

◆ setVnet()

void Message::setVnet ( int  net)
inline

Definition at line 104 of file Message.hh.

References vnet.

◆ updateDelayedTicks()

void Message::updateDelayedTicks ( Tick  curTime)
inline

Update the delay this message has experienced so far.

Definition at line 80 of file Message.hh.

References m_DelayedTicks, and m_LastEnqueueTime.

Referenced by MessageBuffer::enqueue().

Member Data Documentation

◆ incoming_link

int Message::incoming_link
private

Definition at line 113 of file Message.hh.

Referenced by getIncomingLink(), and setIncomingLink().

◆ m_DelayedTicks

Tick Message::m_DelayedTicks
private

Definition at line 109 of file Message.hh.

Referenced by getDelayedTicks(), and updateDelayedTicks().

◆ m_LastEnqueueTime

Tick Message::m_LastEnqueueTime
private

Definition at line 108 of file Message.hh.

Referenced by getLastEnqueueTime(), setLastEnqueueTime(), and updateDelayedTicks().

◆ m_msg_counter

uint64_t Message::m_msg_counter
private

Definition at line 110 of file Message.hh.

Referenced by getMsgCounter(), and setMsgCounter().

◆ m_time

Tick Message::m_time
private

Definition at line 107 of file Message.hh.

Referenced by getTime().

◆ vnet

int Message::vnet
private

Definition at line 114 of file Message.hh.

Referenced by getVnet(), and setVnet().


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

Generated on Wed Sep 30 2020 14:02:27 for gem5 by doxygen 1.8.17