SystemC 3.0.0
Accellera SystemC proof-of-concept library
sc_fxval_observer.h
Go to the documentation of this file.
1/*****************************************************************************
2
3 Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
4 more contributor license agreements. See the NOTICE file distributed
5 with this work for additional information regarding copyright ownership.
6 Accellera licenses this file to you under the Apache License, Version 2.0
7 (the "License"); you may not use this file except in compliance with the
8 License. You may obtain a copy of the License at
9
10 http://www.apache.org/licenses/LICENSE-2.0
11
12 Unless required by applicable law or agreed to in writing, software
13 distributed under the License is distributed on an "AS IS" BASIS,
14 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
15 implied. See the License for the specific language governing
16 permissions and limitations under the License.
17
18 *****************************************************************************/
19
20/*****************************************************************************
21
22 sc_fxval_observer.h -
23
24 Original Author: Martin Janssen, Synopsys, Inc.
25
26 *****************************************************************************/
27
28/*****************************************************************************
29
30 MODIFICATION LOG - modifiers, enter your name, affiliation, date and
31 changes you are making here.
32
33 Name, Affiliation, Date:
34 Description of Modification:
35
36 *****************************************************************************/
37
38// $Log: sc_fxval_observer.h,v $
39// Revision 1.1.1.1 2006/12/15 20:20:04 acg
40// SystemC 2.3
41//
42// Revision 1.3 2006/01/13 18:53:58 acg
43// Andy Goodrich: added $Log command so that CVS comments are reproduced in
44// the source.
45//
46
47#ifndef SC_FXVAL_OBSERVER_H
48#define SC_FXVAL_OBSERVER_H
49
50
52
53
54namespace sc_dt
55{
56
57// classes defined in this module
58class sc_fxval_observer;
59class sc_fxval_fast_observer;
60
61// forward class declarations
62class sc_fxval;
63class sc_fxval_fast;
64
65
66#ifdef SC_ENABLE_OBSERVERS
67
68#define SC_FXVAL_OBSERVER_CONSTRUCT_(object) \
69 SC_OBSERVER_(object,sc_fxval_observer*,construct)
70#define SC_FXVAL_OBSERVER_DESTRUCT_(object) \
71 SC_OBSERVER_(object,sc_fxval_observer*,destruct)
72#define SC_FXVAL_OBSERVER_READ_(object) \
73 SC_OBSERVER_(object,sc_fxval_observer*,read)
74#define SC_FXVAL_OBSERVER_WRITE_(object) \
75 SC_OBSERVER_(object,sc_fxval_observer*,write)
76#define SC_FXVAL_OBSERVER_DEFAULT_ \
77 SC_OBSERVER_DEFAULT_(sc_fxval_observer)
78
79#define SC_FXVAL_FAST_OBSERVER_CONSTRUCT_(object) \
80 SC_OBSERVER_(object,sc_fxval_fast_observer*,construct)
81#define SC_FXVAL_FAST_OBSERVER_DESTRUCT_(object) \
82 SC_OBSERVER_(object,sc_fxval_fast_observer*,destruct)
83#define SC_FXVAL_FAST_OBSERVER_READ_(object) \
84 SC_OBSERVER_(object,sc_fxval_fast_observer*,read)
85#define SC_FXVAL_FAST_OBSERVER_WRITE_(object) \
86 SC_OBSERVER_(object,sc_fxval_fast_observer*,write)
87#define SC_FXVAL_FAST_OBSERVER_DEFAULT_ \
88 SC_OBSERVER_DEFAULT_(sc_fxval_fast_observer)
89
90#else
91
92#define SC_FXVAL_OBSERVER_CONSTRUCT_(object)
93#define SC_FXVAL_OBSERVER_DESTRUCT_(object)
94#define SC_FXVAL_OBSERVER_READ_(object)
95#define SC_FXVAL_OBSERVER_WRITE_(object)
96#define SC_FXVAL_OBSERVER_DEFAULT_
97
98#define SC_FXVAL_FAST_OBSERVER_CONSTRUCT_(object)
99#define SC_FXVAL_FAST_OBSERVER_DESTRUCT_(object)
100#define SC_FXVAL_FAST_OBSERVER_READ_(object)
101#define SC_FXVAL_FAST_OBSERVER_WRITE_(object)
102#define SC_FXVAL_FAST_OBSERVER_DEFAULT_
103
104#endif
105
106
107// ----------------------------------------------------------------------------
108// CLASS : sc_fxval_observer
109//
110// Abstract base class for fixed-point value type observers;
111// arbitrary precision.
112// ----------------------------------------------------------------------------
113
115{
116
117protected:
118
121
122public:
123
124 virtual void construct( const sc_fxval& );
125 virtual void destruct( const sc_fxval& );
126 virtual void read( const sc_fxval& );
127 virtual void write( const sc_fxval& );
128
129 static sc_fxval_observer* (*default_observer) ();
130
131};
132
133
134// ----------------------------------------------------------------------------
135// CLASS : sc_fxval_fast_observer
136//
137// Abstract base class for fixed-point value type observers;
138// limited precision.
139// ----------------------------------------------------------------------------
140
142{
143
144protected:
145
148
149public:
150
151 virtual void construct( const sc_fxval_fast& );
152 virtual void destruct( const sc_fxval_fast& );
153 virtual void read( const sc_fxval_fast& );
154 virtual void write( const sc_fxval_fast& );
155
156 static sc_fxval_fast_observer* (*default_observer) ();
157
158};
159
160
161// IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
162
163// ----------------------------------------------------------------------------
164// CLASS : sc_fxval_observer
165//
166// Abstract base class for fixed-point value type observers;
167// arbitrary precision.
168// ----------------------------------------------------------------------------
169
170inline
171void
173{}
174
175inline
176void
178{}
179
180inline
181void
183{}
184
185inline
186void
188{}
189
190
191// ----------------------------------------------------------------------------
192// CLASS : sc_fxval_fast_observer
193//
194// Abstract base class for fixed-point value type observers;
195// limited precision.
196// ----------------------------------------------------------------------------
197
198inline
199void
201{}
202
203inline
204void
206{}
207
208inline
209void
211{}
212
213inline
214void
216{}
217
218} // namespace sc_dt
219
220
221#endif
222
223// Taf!
#define SC_API
Definition: sc_cmnhdr.h:148
virtual void construct(const sc_fxval &)
virtual void write(const sc_fxval &)
virtual void read(const sc_fxval &)
virtual void destruct(const sc_fxval &)
virtual void write(const sc_fxval_fast &)
virtual void construct(const sc_fxval_fast &)
virtual void destruct(const sc_fxval_fast &)
virtual void read(const sc_fxval_fast &)