SystemC
Recoding Infrastructure for SystemC v0.6.0 derived from Accellera SystemC 2.3.1
Accellera SystemC proof-of-concept library
Main Page
Namespaces
Classes
Files
File List
File Members
sysc
kernel
sc_module_registry.h
Go to the documentation of this file.
1
/*****************************************************************************
2
3
The following code is derived, directly or indirectly, from the SystemC
4
source code Copyright (c) 1996-2014 by all Contributors.
5
All Rights reserved.
6
7
The contents of this file are subject to the restrictions and limitations
8
set forth in the SystemC Open Source License (the "License");
9
You may not use this file except in compliance with such restrictions and
10
limitations. You may obtain instructions on how to receive a copy of the
11
License at http://www.accellera.org/. Software distributed by Contributors
12
under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF
13
ANY KIND, either express or implied. See the License for the specific
14
language governing rights and limitations under the License.
15
16
*****************************************************************************/
17
18
/*****************************************************************************
19
20
sc_module_registry.h -- Registry for all modules.
21
FOR INTERNAL USE ONLY.
22
23
Original Author: Martin Janssen, Synopsys, Inc., 2001-05-21
24
25
CHANGE LOG AT THE END OF THE FILE
26
*****************************************************************************/
27
28
29
#ifndef SC_MODULE_REGISTRY_H
30
#define SC_MODULE_REGISTRY_H
31
32
33
namespace
sc_core {
34
35
class
sc_module;
36
class
sc_simcontext;
37
38
39
/**************************************************************************/
47
class
sc_module_registry
48
{
49
friend
class
sc_simcontext
;
50
51
public
:
52
53
void
insert
(
sc_module
& );
54
void
remove
(
sc_module
& );
55
56
int
size
()
const
57
{
return
m_module_vec.size(); }
58
59
private
:
60
61
// constructor
62
explicit
sc_module_registry
(
sc_simcontext
& simc_ );
63
64
// destructor
65
~
sc_module_registry
();
66
67
// called when construction is done
68
bool
construction_done();
69
70
// called when elaboration is done
71
void
elaboration_done();
72
73
// called before simulation begins
74
void
start_simulation();
75
76
// called after simulation ends
77
void
simulation_done();
78
79
80
private
:
81
82
int
m_construction_done;
83
std::vector<sc_module*> m_module_vec;
84
sc_simcontext
* m_simc;
85
86
private
:
87
88
// disabled
89
sc_module_registry
();
90
sc_module_registry
(
const
sc_module_registry
& );
91
sc_module_registry
& operator = (
const
sc_module_registry
& );
92
};
93
94
}
// namespace sc_core
95
96
#endif
97
98
// $Log: sc_module_registry.h,v $
99
// Revision 1.6 2011/08/26 20:46:10 acg
100
// Andy Goodrich: moved the modification log to the end of the file to
101
// eliminate source line number skew when check-ins are done.
102
//
103
// Revision 1.5 2011/05/09 04:07:49 acg
104
// Philipp A. Hartmann:
105
// (1) Restore hierarchy in all phase callbacks.
106
// (2) Ensure calls to before_end_of_elaboration.
107
//
108
// Revision 1.4 2011/02/18 20:27:14 acg
109
// Andy Goodrich: Updated Copyrights.
110
//
111
// Revision 1.3 2011/02/13 21:47:37 acg
112
// Andy Goodrich: update copyright notice.
113
//
114
// Revision 1.2 2008/05/22 17:06:26 acg
115
// Andy Goodrich: updated copyright notice to include 2008.
116
//
117
// Revision 1.1.1.1 2006/12/15 20:20:05 acg
118
// SystemC 2.3
119
//
120
// Revision 1.3 2006/01/13 18:44:30 acg
121
// Added $Log to record CVS changes into the source.
122
123
// Taf!
sc_core::sc_module_registry::size
int size() const
Definition:
sc_module_registry.h:56
sc_core::sc_module_registry
Registry for all modules.
Definition:
sc_module_registry.h:47
sc_core::sc_simcontext
The simulation context.
Definition:
sc_simcontext.h:328
sc_core::sc_module_registry::insert
void insert(sc_module &)
sc_core::sc_module
Base class for all structural entities.
Definition:
sc_module.h:83
Generated on Mon Sep 30 2019 13:16:44 for SystemC by
1.8.5