1/* 2 * Copyright (c) 2009 Mark D. Hill and David A. Wood 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 42 unchanged lines hidden (view full) --- 51class AbstractController : public ClockedObject, public Consumer 52{ 53 public: 54 typedef RubyControllerParams Params; 55 AbstractController(const Params *p); 56 void init(); 57 const Params *params() const { return (const Params *)_params; } 58 |
59 const int & getVersion() const { return m_version; } 60 void initNetworkPtr(Network* net_ptr) { m_net_ptr = net_ptr; } 61 62 // return instance name 63 const std::string getName() const { return m_name; } 64 void blockOnQueue(Address, MessageBuffer*); 65 void unblock(Address); 66 |
67 virtual MessageBuffer* getMandatoryQueue() const = 0; |
68 virtual const std::string toString() const = 0; // returns text version of 69 // controller type |
70 virtual AccessPermission getAccessPermission(const Address& addr) = 0; 71 virtual DataBlock& getDataBlock(const Address& addr) = 0; 72 73 virtual void print(std::ostream & out) const = 0; 74 virtual void printStats(std::ostream & out) const = 0; 75 virtual void wakeup() = 0; 76 virtual void clearStats() = 0; 77 virtual void regStats() = 0; --- 112 unchanged lines hidden --- |