29 #ifndef __MEM_RUBY_SLICC_INTERFACE_MESSAGE_HH__
30 #define __MEM_RUBY_SLICC_INTERFACE_MESSAGE_HH__
37 #include "mem/protocol/MessageSizeType.hh"
41 typedef std::shared_ptr<Message>
MsgPtr;
62 virtual void print(std::ostream& out)
const = 0;
65 {
panic(
"MessageSizeType() called on wrong message!"); }
67 {
panic(
"MessageSizeType() called on wrong message!"); }
97 {
panic(
"getDestination() called on wrong message!"); }
99 {
panic(
"getDestination() called on wrong message!"); }
137 #endif // __MEM_RUBY_SLICC_INTERFACE_MESSAGE_HH__
virtual const MessageSizeType & getMessageSize() const
virtual const NetDest & getDestination() const
Tick getLastEnqueueTime() const
virtual void print(std::ostream &out) const =0
virtual NetDest & getDestination()
std::shared_ptr< Message > MsgPtr
virtual bool functionalRead(Packet *pkt)=0
The two functions below are used for reading / writing the message functionally.
bool operator>(const MsgPtr &lhs, const MsgPtr &rhs)
void setIncomingLink(int link)
Tick getDelayedTicks() const
void setMsgCounter(uint64_t c)
virtual bool functionalWrite(Packet *pkt)=0
uint64_t Tick
Tick count type.
virtual MsgPtr clone() const =0
virtual MessageSizeType & getMessageSize()
A Packet is used to encapsulate a transfer between two objects in the memory system (e...
int getIncomingLink() const
Declaration of the Packet class.
uint64_t getMsgCounter() const
void updateDelayedTicks(Tick curTime)
Update the delay this message has experienced so far.
std::ostream & operator<<(std::ostream &out, const Message &obj)
Message(const Message &other)
void setLastEnqueueTime(const Tick &time)