diff options
author | Nilay Vaish <nilay@cs.wisc.edu> | 2013-09-06 16:21:35 -0500 |
---|---|---|
committer | Nilay Vaish <nilay@cs.wisc.edu> | 2013-09-06 16:21:35 -0500 |
commit | 90bfbd9793e64b29d09f4ca4ee610ee08f82ea75 (patch) | |
tree | e14b49f9632b25cde8a32b5e5787a36a376e6dff /src/mem/ruby/network/Network.hh | |
parent | e9ae8b7d29e83fa2cad55006d2c6dc58115965cc (diff) | |
download | gem5-90bfbd9793e64b29d09f4ca4ee610ee08f82ea75.tar.xz |
ruby: network: convert to gem5 style stats
Diffstat (limited to 'src/mem/ruby/network/Network.hh')
-rw-r--r-- | src/mem/ruby/network/Network.hh | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/src/mem/ruby/network/Network.hh b/src/mem/ruby/network/Network.hh index 400972020..33a3fc33f 100644 --- a/src/mem/ruby/network/Network.hh +++ b/src/mem/ruby/network/Network.hh @@ -88,8 +88,7 @@ class Network : public ClockedObject LinkDirection direction, const NetDest& routing_table_entry) = 0; - virtual void printStats(std::ostream& out) const = 0; - virtual void clearStats() = 0; + virtual void collateStats() = 0; virtual void print(std::ostream& out) const = 0; /* @@ -107,13 +106,30 @@ class Network : public ClockedObject Network(const Network& obj); Network& operator=(const Network& obj); - protected: - const std::string m_name; - int m_nodes; + uint32_t m_nodes; static uint32_t m_virtual_networks; Topology* m_topology_ptr; static uint32_t m_control_msg_size; static uint32_t m_data_msg_size; + + private: + //! Callback class used for collating statistics from all the + //! controller of this type. + class StatsCallback : public Callback + { + private: + Network *ctr; + + public: + virtual ~StatsCallback() {} + + StatsCallback(Network *_ctr) + : ctr(_ctr) + { + } + + void process() {ctr->collateStats();} + }; }; inline std::ostream& |