/* * AbstractMemOrCache.hh * * Description: * * */ #ifndef ABSTRACT_MEM_OR_CACHE_H #define ABSTRACT_MEM_OR_CACHE_H #include "mem/ruby/common/Global.hh" #include "mem/ruby/common/Address.hh" class AbstractMemOrCache { public: virtual ~AbstractMemOrCache() {}; virtual void setConsumer(Consumer* consumer_ptr) = 0; virtual Consumer* getConsumer() = 0; virtual void enqueue (const MsgPtr& message, int latency ) = 0; virtual void enqueueMemRef (MemoryNode& memRef) = 0; virtual void dequeue () = 0; virtual const Message* peek () = 0; virtual bool isReady () = 0; virtual MemoryNode peekNode () = 0; virtual bool areNSlotsAvailable (int n) = 0; virtual void printConfig (ostream& out) = 0; virtual void print (ostream& out) const = 0; virtual void setDebug (int debugFlag) = 0; private: }; #endif