SystemC Library API Reference Manual
Reference documentation for the Simics SystemC Library.
 
Loading...
Searching...
No Matches
instance_counter.h
Go to the documentation of this file.
1/*
2 © 2014 Intel Corporation
3
4 This software and the related documents are Intel copyrighted materials, and
5 your use of them is governed by the express license under which they were
6 provided to you ("License"). Unless the License provides otherwise, you may
7 not use, modify, copy, publish, distribute, disclose or transmit this software
8 or the related documents without Intel's prior written permission.
9
10 This software and the related documents are provided as is, with no express or
11 implied warranties, other than those that are expressly stated in the License.
12*/
13
14#ifndef SIMICS_SYSTEMC_INSTANCE_COUNTER_H
15#define SIMICS_SYSTEMC_INSTANCE_COUNTER_H
16
17#include <systemc>
18#include <map>
19
20namespace simics {
21namespace systemc {
22
29template <class T>
31 public:
33 ++m_instances[sc_core::sc_curr_simcontext];
34 }
37 virtual ~InstanceCounter() {
38 --m_instances[sc_core::sc_curr_simcontext];
39 }
40 static int instances() {
41 return m_instances[sc_core::sc_curr_simcontext];
42 }
43
44 private:
45 static std::map<sc_core::sc_simcontext *, int> m_instances;
46};
47
48template<class T> std::map<sc_core::sc_simcontext *, int>
49 InstanceCounter<T>::m_instances;
50
51} // namespace systemc
52} // namespace simics
53
54#endif
Keeps track of (counts) the number of instances for this type of class.
Definition: instance_counter.h:30
static int instances()
Definition: instance_counter.h:40
InstanceCounter()
Definition: instance_counter.h:32
InstanceCounter & operator=(const InstanceCounter &)=delete
InstanceCounter(const InstanceCounter &)=delete
virtual ~InstanceCounter()
Definition: instance_counter.h:37
Definition: adapter.h:79