AbstractController.hh revision 6285
12810SN/A 211375Sandreas.hansson@arm.com#ifndef ABSTRACTCONTROLLER_H 38856Sandreas.hansson@arm.com#define ABSTRACTCONTROLLER_H 48856Sandreas.hansson@arm.com 58856Sandreas.hansson@arm.com#include "mem/ruby/common/Consumer.hh" 68856Sandreas.hansson@arm.com#include "mem/protocol/MachineType.hh" 78856Sandreas.hansson@arm.com 88856Sandreas.hansson@arm.comclass MessageBuffer; 98856Sandreas.hansson@arm.comclass Network; 108856Sandreas.hansson@arm.com 118856Sandreas.hansson@arm.comclass AbstractController : public Consumer { 128856Sandreas.hansson@arm.compublic: 138856Sandreas.hansson@arm.com AbstractController() {} 142810SN/A virtual void init(Network* net_ptr, const vector<string> & argv) = 0; 152810SN/A 162810SN/A // returns the number of controllers created of the specific subtype 172810SN/A // virtual int getNumberOfControllers() const = 0; 182810SN/A virtual MessageBuffer* getMandatoryQueue() const = 0; 192810SN/A virtual const int & getVersion() const = 0; 202810SN/A virtual const string toString() const = 0; // returns text version of controller type 212810SN/A virtual const string getName() const = 0; // return instance name 222810SN/A virtual const MachineType getMachineType() const = 0; 232810SN/A 242810SN/A virtual void print(ostream & out) const = 0; 252810SN/A virtual void printStats(ostream & out) const = 0; 262810SN/A virtual void printConfig(ostream & out) const = 0; 272810SN/A virtual void wakeup() = 0; 282810SN/A // virtual void dumpStats(ostream & out) = 0; 292810SN/A virtual void clearStats() = 0; 302810SN/A 312810SN/A}; 322810SN/A 332810SN/A#endif 342810SN/A