SystemC 3.0.0
Accellera SystemC proof-of-concept library
sc_fxnum_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_fxnum_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_fxnum_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_FXNUM_OBSERVER_H
48#define SC_FXNUM_OBSERVER_H
49
50
52
53
54namespace sc_dt
55{
56
57// classes defined in this module
58class sc_fxnum_observer;
59class sc_fxnum_fast_observer;
60
61// forward class declarations
62class sc_fxnum;
63class sc_fxnum_fast;
64
65
66#ifdef SC_ENABLE_OBSERVERS
67
68#define SC_FXNUM_OBSERVER_CONSTRUCT_(object) \
69 SC_OBSERVER_(object,sc_fxnum_observer*,construct)
70#define SC_FXNUM_OBSERVER_DESTRUCT_(object) \
71 SC_OBSERVER_(object,sc_fxnum_observer*,destruct)
72#define SC_FXNUM_OBSERVER_READ_(object) \
73 SC_OBSERVER_(object,sc_fxnum_observer*,read)
74#define SC_FXNUM_OBSERVER_WRITE_(object) \
75 SC_OBSERVER_(object,sc_fxnum_observer*,write)
76#define SC_FXNUM_OBSERVER_DEFAULT_ \
77 SC_OBSERVER_DEFAULT_(sc_fxnum_observer)
78
79#define SC_FXNUM_FAST_OBSERVER_CONSTRUCT_(object) \
80 SC_OBSERVER_(object,sc_fxnum_fast_observer*,construct)
81#define SC_FXNUM_FAST_OBSERVER_DESTRUCT_(object) \
82 SC_OBSERVER_(object,sc_fxnum_fast_observer*,destruct)
83#define SC_FXNUM_FAST_OBSERVER_READ_(object) \
84 SC_OBSERVER_(object,sc_fxnum_fast_observer*,read)
85#define SC_FXNUM_FAST_OBSERVER_WRITE_(object) \
86 SC_OBSERVER_(object,sc_fxnum_fast_observer*,write)
87#define SC_FXNUM_FAST_OBSERVER_DEFAULT_ \
88 SC_OBSERVER_DEFAULT_(sc_fxnum_fast_observer)
89
90#else
91
92#define SC_FXNUM_OBSERVER_CONSTRUCT_(object)
93#define SC_FXNUM_OBSERVER_DESTRUCT_(object)
94#define SC_FXNUM_OBSERVER_READ_(object)
95#define SC_FXNUM_OBSERVER_WRITE_(object)
96#define SC_FXNUM_OBSERVER_DEFAULT_
97
98#define SC_FXNUM_FAST_OBSERVER_CONSTRUCT_(object)
99#define SC_FXNUM_FAST_OBSERVER_DESTRUCT_(object)
100#define SC_FXNUM_FAST_OBSERVER_READ_(object)
101#define SC_FXNUM_FAST_OBSERVER_WRITE_(object)
102#define SC_FXNUM_FAST_OBSERVER_DEFAULT_
103
104#endif
105
106
107// ----------------------------------------------------------------------------
108// CLASS : sc_fxnum_observer
109//
110// Abstract base class for fixed-point types observers; arbitrary precision.
111// ----------------------------------------------------------------------------
112
114{
115
116protected:
117
120
121public:
122
123 virtual void construct( const sc_fxnum& );
124 virtual void destruct( const sc_fxnum& );
125 virtual void read( const sc_fxnum& );
126 virtual void write( const sc_fxnum& );
127
128 static sc_fxnum_observer* (*default_observer) ();
129
130};
131
132
133// ----------------------------------------------------------------------------
134// CLASS : sc_fxnum_fast_observer
135//
136// Abstract base class for fixed-point types observers; limited precision.
137// ----------------------------------------------------------------------------
138
140{
141
142protected:
143
146
147public:
148
149 virtual void construct( const sc_fxnum_fast& );
150 virtual void destruct( const sc_fxnum_fast& );
151 virtual void read( const sc_fxnum_fast& );
152 virtual void write( const sc_fxnum_fast& );
153
154 static sc_fxnum_fast_observer* (*default_observer) ();
155
156};
157
158
159// IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
160
161// ----------------------------------------------------------------------------
162// CLASS : sc_fxnum_observer
163//
164// Abstract base class for fixed-point types observers; arbitrary precision.
165// ----------------------------------------------------------------------------
166
167inline
168void
170{}
171
172inline
173void
175{}
176
177inline
178void
180{}
181
182inline
183void
185{}
186
187
188// ----------------------------------------------------------------------------
189// CLASS : sc_fxnum_fast_observer
190//
191// Abstract base class for fixed-point types observers; limited precision.
192// ----------------------------------------------------------------------------
193
194inline
195void
197{}
198
199inline
200void
202{}
203
204inline
205void
207{}
208
209inline
210void
212{}
213
214} // namespace sc_dt
215
216
217#endif
218
219// Taf!
#define SC_API
Definition: sc_cmnhdr.h:148
virtual void read(const sc_fxnum &)
virtual void construct(const sc_fxnum &)
virtual void write(const sc_fxnum &)
virtual void destruct(const sc_fxnum &)
virtual void construct(const sc_fxnum_fast &)
virtual void read(const sc_fxnum_fast &)
virtual void destruct(const sc_fxnum_fast &)
virtual void write(const sc_fxnum_fast &)