torc-master
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PointerTypes.hpp
Go to the documentation of this file.
1 // Torc - Copyright 2011-2013 University of Southern California. All Rights Reserved.
2 // $HeadURL$
3 // $Id$
4 
5 // This program is free software: you can redistribute it and/or modify it under the terms of the
6 // GNU General Public License as published by the Free Software Foundation, either version 3 of the
7 // License, or (at your option) any later version.
8 //
9 // This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
10 // without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
11 // the GNU General Public License for more details.
12 //
13 // You should have received a copy of the GNU General Public License along with this program. If
14 // not, see <http://www.gnu.org/licenses/>.
15 
16 #ifndef TORC_GENERIC_POINTERTYPES_HPP
17 #define TORC_GENERIC_POINTERTYPES_HPP
18 
19 //BOOST
20 #include <boost/shared_ptr.hpp>
21 #include <boost/weak_ptr.hpp>
22 
23 namespace torc {
24 namespace generic {
25 
26 class Apply;
27 typedef boost::shared_ptr<Apply> ApplySharedPtr;
28 typedef boost::weak_ptr<Apply> ApplyWeakPtr;
29 
30 class Cell;
31 typedef boost::shared_ptr<Cell> CellSharedPtr;
32 typedef boost::weak_ptr<Cell> CellWeakPtr;
33 
34 class Design;
35 typedef boost::shared_ptr<Design> DesignSharedPtr;
36 typedef boost::weak_ptr<Design> DesignWeakPtr;
37 
38 class Error;
39 typedef boost::shared_ptr<Error> ErrorSharedPtr;
40 typedef boost::weak_ptr<Error> ErrorWeakPtr;
41 
42 class Event;
43 typedef boost::shared_ptr<Event> EventSharedPtr;
44 typedef boost::weak_ptr<Event> EventWeakPtr;
45 
47 typedef boost::shared_ptr<ForbiddenEvent> ForbiddenEventSharedPtr;
48 typedef boost::weak_ptr<ForbiddenEvent> ForbiddenEventWeakPtr;
49 
50 class View;
51 typedef boost::shared_ptr<View> ViewSharedPtr;
52 typedef boost::weak_ptr<View> ViewWeakPtr;
53 
54 class Root;
55 typedef boost::shared_ptr<Root> RootSharedPtr;
56 typedef boost::weak_ptr<Root> RootWeakPtr;
57 
58 class Library;
59 typedef boost::shared_ptr<Library> LibrarySharedPtr;
60 typedef boost::weak_ptr<Library> LibraryWeakPtr;
61 
63 typedef boost::shared_ptr<LogicValueAttributes> LogicValueAttributesSharedPtr;
64 typedef boost::weak_ptr<LogicValueAttributes> LogicValueAttributesWeakPtr;
65 
66 class LogicValue;
67 typedef boost::shared_ptr<LogicValue> LogicValueSharedPtr;
68 typedef boost::weak_ptr<LogicValue> LogicValueWeakPtr;
69 
71 typedef boost::shared_ptr<LogicElement> LogicElementSharedPtr;
72 typedef boost::weak_ptr<LogicElement> LogicElementWeakPtr;
73 
75 typedef boost::shared_ptr<LogicalResponse> LogicalResponseSharedPtr;
76 typedef boost::weak_ptr<LogicalResponse> LogicalResponseWeakPtr;
77 
78 class Instance;
79 typedef boost::shared_ptr<Instance> InstanceSharedPtr;
80 typedef boost::weak_ptr<Instance> InstanceWeakPtr;
81 
83 typedef boost::shared_ptr<SingleInstance> SingleInstanceSharedPtr;
84 typedef boost::weak_ptr<SingleInstance> SingleInstanceWeakPtr;
85 
87 typedef boost::shared_ptr<InstanceArray> InstanceArraySharedPtr;
88 typedef boost::weak_ptr<InstanceArray> InstanceArrayWeakPtr;
89 
91 typedef boost::shared_ptr<InstanceArrayMember> InstanceArrayMemberSharedPtr;
92 typedef boost::weak_ptr<InstanceArrayMember> InstanceArrayMemberWeakPtr;
93 
95 typedef boost::shared_ptr<InterfaceAttributes> InterfaceAttributesSharedPtr;
96 typedef boost::weak_ptr<InterfaceAttributes> InterfaceAttributesWeakPtr;
97 
98 class Net;
99 typedef boost::shared_ptr<Net> NetSharedPtr;
100 typedef boost::weak_ptr<Net> NetWeakPtr;
101 
103 typedef boost::shared_ptr<NetAttributes> NetAttributesSharedPtr;
104 typedef boost::weak_ptr<NetAttributes> NetAttributesWeakPtr;
105 
106 class NetReference;
107 typedef boost::shared_ptr<NetReference> NetReferenceSharedPtr;
108 typedef boost::weak_ptr<NetReference> NetReferenceWeakPtr;
109 
110 class ScalarNet;
111 typedef boost::shared_ptr<ScalarNet> ScalarNetSharedPtr;
112 typedef boost::weak_ptr<ScalarNet> ScalarNetWeakPtr;
113 
114 class VectorNet;
115 typedef boost::shared_ptr<VectorNet> VectorNetSharedPtr;
116 typedef boost::weak_ptr<VectorNet> VectorNetWeakPtr;
117 
119 typedef boost::shared_ptr<VectorNetBit> VectorNetBitSharedPtr;
120 typedef boost::weak_ptr<VectorNetBit> VectorNetBitWeakPtr;
121 
122 class NetBundle;
123 typedef boost::shared_ptr<NetBundle> NetBundleSharedPtr;
124 typedef boost::weak_ptr<NetBundle> NetBundleWeakPtr;
125 
127 typedef boost::shared_ptr<ObjectFactory> ObjectFactorySharedPtr;
128 typedef boost::weak_ptr<ObjectFactory> ObjectFactoryWeakPtr;
129 
130 class PathDelay;
131 typedef boost::shared_ptr<PathDelay> PathDelaySharedPtr;
132 typedef boost::weak_ptr<PathDelay> PathDelayWeakPtr;
133 
135 typedef boost::shared_ptr<Permutable> PermutableSharedPtr;
136 typedef boost::weak_ptr<Permutable> PermutableWeakPtr;
137 
138 class Port;
139 typedef boost::shared_ptr<Port> PortSharedPtr;
140 typedef boost::weak_ptr<Port> PortWeakPtr;
141 
143 typedef boost::shared_ptr<PortElement> PortElementSharedPtr;
144 typedef boost::weak_ptr<PortElement> PortElementWeakPtr;
145 
146 class PortList;
147 typedef boost::shared_ptr<PortList> PortListSharedPtr;
148 typedef boost::weak_ptr<PortList> PortListWeakPtr;
149 
151 typedef boost::shared_ptr<PortListAlias> PortListAliasSharedPtr;
152 typedef boost::weak_ptr<PortListAlias> PortListAliasWeakPtr;
153 
155 typedef boost::shared_ptr<PortAttributes> PortAttributesSharedPtr;
156 typedef boost::weak_ptr<PortAttributes> PortAttributesWeakPtr;
157 
159 typedef boost::shared_ptr<PortBundle> PortBundleSharedPtr;
160 typedef boost::weak_ptr<PortBundle> PortBundleWeakPtr;
161 
163 typedef boost::shared_ptr<PortBundleReference> PortBundleReferenceSharedPtr;
164 typedef boost::weak_ptr<PortBundleReference> PortBundleReferenceWeakPtr;
165 
167 typedef boost::shared_ptr<PortReference> PortReferenceSharedPtr;
168 typedef boost::weak_ptr<PortReference> PortReferenceWeakPtr;
169 
170 class Parameter;
171 typedef boost::shared_ptr<Parameter> ParameterSharedPtr;
172 typedef boost::weak_ptr<Parameter> ParameterWeakPtr;
173 
175 typedef boost::shared_ptr<SingleParameter> SingleParameterSharedPtr;
176 typedef boost::weak_ptr<SingleParameter> SingleParameterWeakPtr;
177 
179 typedef boost::shared_ptr<SimulationInfo> SimulationInfoSharedPtr;
180 typedef boost::weak_ptr<SimulationInfo> SimulationInfoWeakPtr;
181 
182 class Simulate;
183 typedef boost::shared_ptr<Simulate> SimulateSharedPtr;
184 typedef boost::weak_ptr<Simulate> SimulateWeakPtr;
185 
187 typedef boost::shared_ptr<ParameterArray> ParameterArraySharedPtr;
188 typedef boost::weak_ptr<ParameterArray> ParameterArrayWeakPtr;
189 
191 typedef boost::shared_ptr<ParameterArrayElement> ParameterArrayElementSharedPtr;
192 typedef boost::weak_ptr<ParameterArrayElement> ParameterArrayElementWeakPtr;
193 
195 typedef boost::shared_ptr<ParameterMap> ParameterMapSharedPtr;
196 typedef boost::weak_ptr<ParameterMap> ParameterMapWeakPtr;
197 
198 class Property;
199 typedef boost::shared_ptr<Property> PropertySharedPtr;
200 typedef boost::weak_ptr<Property> PropertyWeakPtr;
201 
203 typedef boost::shared_ptr<PropertyContainer> PropertyContainerSharedPtr;
204 typedef boost::weak_ptr<PropertyContainer> PropertyContainerWeakPtr;
205 
206 class ScalarNet;
207 typedef boost::shared_ptr<ScalarNet> ScalarNetSharedPtr;
208 typedef boost::weak_ptr<ScalarNet> ScalarNetWeakPtr;
209 
211 typedef boost::shared_ptr<ScalarPort> ScalarPortSharedPtr;
212 typedef boost::weak_ptr<ScalarPort> ScalarPortWeakPtr;
213 
215 typedef boost::shared_ptr<ScalarPortReference> ScalarPortReferenceSharedPtr;
216 typedef boost::weak_ptr<ScalarPortReference> ScalarPortReferenceWeakPtr;
217 
218 class SingleParameter;
219 typedef boost::shared_ptr<SingleParameter> SingleParameterSharedPtr;
220 typedef boost::weak_ptr<SingleParameter> SingleParameterWeakPtr;
221 
222 class SingleInstance;
223 typedef boost::shared_ptr<SingleInstance> SingleInstanceSharedPtr;
224 typedef boost::weak_ptr<SingleInstance> SingleInstanceWeakPtr;
225 
226 class Timing;
227 typedef boost::shared_ptr<Timing> TimingSharedPtr;
228 typedef boost::weak_ptr<Timing> TimingWeakPtr;
229 
230 class VectorNet;
231 typedef boost::shared_ptr<VectorNet> VectorNetSharedPtr;
232 typedef boost::weak_ptr<VectorNet> VectorNetWeakPtr;
233 
235 typedef boost::shared_ptr<VectorPort> VectorPortSharedPtr;
236 typedef boost::weak_ptr<VectorPort> VectorPortWeakPtr;
237 
239 typedef boost::shared_ptr<VectorPortReference> VectorPortReferenceSharedPtr;
240 typedef boost::weak_ptr<VectorPortReference> VectorPortReferenceWeakPtr;
241 
242 class ParameterArray;
243 typedef boost::shared_ptr<ParameterArray> ParameterArraySharedPtr;
244 typedef boost::weak_ptr<ParameterArray> ParameterArrayWeakPtr;
245 
246 class InstanceArray;
247 typedef boost::shared_ptr<InstanceArray> InstanceArraySharedPtr;
248 typedef boost::weak_ptr<InstanceArray> InstanceArrayWeakPtr;
249 
251 typedef boost::shared_ptr<VectorPortBit> VectorPortBitSharedPtr;
252 typedef boost::shared_ptr<VectorPortBit> VectorPortBitWeakPtr;
253 
255 typedef boost::shared_ptr<VectorPortBitReference> VectorPortBitReferenceSharedPtr;
256 typedef boost::shared_ptr<VectorPortBitReference> VectorPortBitReferenceWeakPtr;
257 
259 typedef boost::shared_ptr<UserDataContainer> UserDataContainerSharedPtr;
260 typedef boost::weak_ptr<UserDataContainer> UserDataContainerWeakPtr;
261 
262 class Status;
263 typedef boost::shared_ptr<Status> StatusSharedPtr;
264 typedef boost::weak_ptr<Status> StatusWeakPtr;
265 
267 typedef boost::shared_ptr<StatusContainer> StatusContainerSharedPtr;
268 typedef boost::weak_ptr<StatusContainer> StatusContainerWeakPtr;
269 
270 class WaveValue;
271 typedef boost::shared_ptr<WaveValue> WaveValueSharedPtr;
272 typedef boost::weak_ptr<WaveValue> WaveValueWeakPtr;
273 
274 class Written;
275 typedef boost::shared_ptr<Written> WrittenSharedPtr;
276 typedef boost::weak_ptr<Written> WrittenWeakPtr;
277 
279 typedef boost::shared_ptr<InterfaceJoinedInfo> InterfaceJoinedInfoSharedPtr;
280 typedef boost::weak_ptr<InterfaceJoinedInfo> InterfaceJoinedInfoWeakPtr;
281 
282 } // namespace generic
283 } // namespace torc
284 
285 #endif // TORC_GENERIC_POINTERTYPES_HPP
boost::weak_ptr< Simulate > SimulateWeakPtr
boost::shared_ptr< LogicValue > LogicValueSharedPtr
boost::weak_ptr< Root > RootWeakPtr
Represents an EDIF cell.
Definition: Cell.hpp:55
boost::weak_ptr< NetReference > NetReferenceWeakPtr
Represents attributes of a Port or PortReference object.
boost::weak_ptr< SimulationInfo > SimulationInfoWeakPtr
Represents a bit of a net array.
boost::shared_ptr< Instance > InstanceSharedPtr
boost::weak_ptr< Instance > InstanceWeakPtr
boost::shared_ptr< StatusContainer > StatusContainerSharedPtr
Represents areference to a standalone port.
boost::weak_ptr< Library > LibraryWeakPtr
Represents a reference to a port array.
Represents attributes of a Net object.
Represents an instantiation of a cell view in the view of another cell.
boost::weak_ptr< Error > ErrorWeakPtr
This class is used within simulate to describe input stimuli and expected responces over a certain ti...
Definition: Apply.hpp:37
boost::weak_ptr< Apply > ApplyWeakPtr
Represents a bundle of ports.
Definition: PortBundle.hpp:44
boost::shared_ptr< NetAttributes > NetAttributesSharedPtr
boost::shared_ptr< ParameterArray > ParameterArraySharedPtr
Represents the usable instance of a port of a cell in another cell.
boost::weak_ptr< PortReference > PortReferenceWeakPtr
boost::shared_ptr< ScalarPort > ScalarPortSharedPtr
boost::weak_ptr< Permutable > PermutableWeakPtr
boost::shared_ptr< WaveValue > WaveValueSharedPtr
Represents objects that have properties.
boost::weak_ptr< Net > NetWeakPtr
Represents and EDIF View.
Definition: View.hpp:61
boost::weak_ptr< PropertyContainer > PropertyContainerWeakPtr
boost::weak_ptr< Event > EventWeakPtr
Represents a bit of a port.
boost::shared_ptr< ScalarNet > ScalarNetSharedPtr
boost::shared_ptr< PropertyContainer > PropertyContainerSharedPtr
boost::weak_ptr< Design > DesignWeakPtr
boost::shared_ptr< LogicElement > LogicElementSharedPtr
boost::shared_ptr< PortBundle > PortBundleSharedPtr
boost::shared_ptr< VectorPortBitReference > VectorPortBitReferenceSharedPtr
boost::weak_ptr< PathDelay > PathDelayWeakPtr
Represents port element like port or port reference.
Definition: PortElement.hpp:32
Represents a member of an instance array.
boost::weak_ptr< WaveValue > WaveValueWeakPtr
boost::shared_ptr< VectorNetBit > VectorNetBitSharedPtr
boost::shared_ptr< Permutable > PermutableSharedPtr
boost::weak_ptr< LogicalResponse > LogicalResponseWeakPtr
Represents an EDIF Net.
Definition: generic/Net.hpp:58
An EDIF cell library.
Definition: Library.hpp:60
Permutable is used to describe a relationship in which ports are interchangeable. ...
Definition: Permutable.hpp:40
boost::weak_ptr< SingleInstance > SingleInstanceWeakPtr
boost::weak_ptr< Property > PropertyWeakPtr
boost::weak_ptr< LogicElement > LogicElementWeakPtr
boost::weak_ptr< Port > PortWeakPtr
boost::shared_ptr< Error > ErrorSharedPtr
boost::weak_ptr< ScalarPort > ScalarPortWeakPtr
boost::shared_ptr< Parameter > ParameterSharedPtr
boost::weak_ptr< PortBundleReference > PortBundleReferenceWeakPtr
Represents a single instance of the view of a cell.
This class is used to hold all information about the logic values used within a library.
boost::weak_ptr< InstanceArrayMember > InstanceArrayMemberWeakPtr
boost::shared_ptr< Written > WrittenSharedPtr
boost::weak_ptr< Timing > TimingWeakPtr
boost::shared_ptr< ObjectFactory > ObjectFactorySharedPtr
boost::shared_ptr< InstanceArray > InstanceArraySharedPtr
Represents class that can hold userData.
boost::shared_ptr< ScalarPortReference > ScalarPortReferenceSharedPtr
This class is used within simulationInfo construct to define a logic value to use for modeling in the...
Definition: LogicValue.hpp:42
boost::weak_ptr< ParameterMap > ParameterMapWeakPtr
boost::shared_ptr< InstanceArrayMember > InstanceArrayMemberSharedPtr
boost::shared_ptr< Simulate > SimulateSharedPtr
boost::shared_ptr< NetReference > NetReferenceSharedPtr
boost::shared_ptr< Design > DesignSharedPtr
boost::shared_ptr< PortAttributes > PortAttributesSharedPtr
boost::shared_ptr< VectorPortBit > VectorPortBitSharedPtr
boost::shared_ptr< VectorPort > VectorPortSharedPtr
boost::shared_ptr< VectorNet > VectorNetSharedPtr
Represents an information container relating to the writer of the EDIF file.
Definition: Written.hpp:33
Represents a parameter object in EDIF.
Definition: Parameter.hpp:38
The Error object thrown by different methods of EdifOM.
Definition: Error.hpp:41
boost::shared_ptr< LogicalResponse > LogicalResponseSharedPtr
Represents a port array.
Definition: VectorPort.hpp:45
boost::shared_ptr< Net > NetSharedPtr
Represents a parameter array.
boost::shared_ptr< Library > LibrarySharedPtr
boost::weak_ptr< LogicValueAttributes > LogicValueAttributesWeakPtr
boost::shared_ptr< PortElement > PortElementSharedPtr
boost::shared_ptr< PortReference > PortReferenceSharedPtr
Represents a net array.
Definition: VectorNet.hpp:42
boost::weak_ptr< PortListAlias > PortListAliasWeakPtr
boost::shared_ptr< SimulationInfo > SimulationInfoSharedPtr
Represents a standalone port.
Definition: ScalarPort.hpp:42
Represents the Interface joining information.
This class is used to provide a set of path delays or timing constrains (forbidden events) ...
Definition: Timing.hpp:40
boost::weak_ptr< View > ViewWeakPtr
boost::weak_ptr< ScalarPortReference > ScalarPortReferenceWeakPtr
boost::weak_ptr< UserDataContainer > UserDataContainerWeakPtr
Represents an array of instances.
boost::shared_ptr< ForbiddenEvent > ForbiddenEventSharedPtr
Represents a standalone net.
Definition: ScalarNet.hpp:42
boost::shared_ptr< PortList > PortListSharedPtr
boost::shared_ptr< Apply > ApplySharedPtr
boost::weak_ptr< InstanceArray > InstanceArrayWeakPtr
boost::weak_ptr< StatusContainer > StatusContainerWeakPtr
boost::weak_ptr< InterfaceJoinedInfo > InterfaceJoinedInfoWeakPtr
This class associates a delay with a specified chain of events. Delay contains the time from first ev...
Definition: PathDelay.hpp:36
boost::shared_ptr< VectorPortBit > VectorPortBitWeakPtr
ForbiddenEvent class lists events which are forbidden during a period of times which is specified by ...
Represents attributes of a view interface.
boost::shared_ptr< Event > EventSharedPtr
boost::shared_ptr< SingleParameter > SingleParameterSharedPtr
Represents different logic elements which holds array of logic values.
This class is used within simulationInfo construct to define a logic value to use for modeling...
boost::weak_ptr< ParameterArrayElement > ParameterArrayElementWeakPtr
boost::shared_ptr< InterfaceAttributes > InterfaceAttributesSharedPtr
boost::weak_ptr< Status > StatusWeakPtr
Represents an ordered list of port references with a name aliased.
Represents a reference to a bit of a port.
boost::weak_ptr< VectorPort > VectorPortWeakPtr
Represents an ordered list of port references.
Definition: PortList.hpp:43
boost::weak_ptr< SingleParameter > SingleParameterWeakPtr
boost::weak_ptr< NetAttributes > NetAttributesWeakPtr
Root of the EDIF Object Model.
Definition: Root.hpp:66
This class is used to model logicInput/logicOutput construct. This class holds information of logical...
boost::weak_ptr< NetBundle > NetBundleWeakPtr
boost::weak_ptr< PortList > PortListWeakPtr
boost::weak_ptr< PortBundle > PortBundleWeakPtr
This class is used within simulate to describe input stimuli and expected responces over a certain ti...
Definition: WaveValue.hpp:35
Represents a bundle of nets.
Definition: NetBundle.hpp:43
boost::weak_ptr< ParameterArray > ParameterArrayWeakPtr
Interface for an EDIF port object.
boost::weak_ptr< Written > WrittenWeakPtr
boost::shared_ptr< View > ViewSharedPtr
boost::shared_ptr< Cell > CellSharedPtr
Event is used to describe an event on a port or a net using logic state transitions. Events can also be described for unordered groups of ports or nets using portGroup or netGroup. An ordered list of ports may also be used using a portList.
Definition: Event.hpp:45
boost::shared_ptr< InterfaceJoinedInfo > InterfaceJoinedInfoSharedPtr
boost::shared_ptr< PortListAlias > PortListAliasSharedPtr
boost::shared_ptr< ParameterArrayElement > ParameterArrayElementSharedPtr
boost::shared_ptr< Port > PortSharedPtr
boost::shared_ptr< PathDelay > PathDelaySharedPtr
boost::shared_ptr< Property > PropertySharedPtr
boost::weak_ptr< ForbiddenEvent > ForbiddenEventWeakPtr
boost::shared_ptr< SingleInstance > SingleInstanceSharedPtr
boost::weak_ptr< VectorPortReference > VectorPortReferenceWeakPtr
boost::shared_ptr< LogicValueAttributes > LogicValueAttributesSharedPtr
boost::weak_ptr< VectorNetBit > VectorNetBitWeakPtr
boost::weak_ptr< ScalarNet > ScalarNetWeakPtr
boost::weak_ptr< Parameter > ParameterWeakPtr
Represents objects that have status.
boost::shared_ptr< Timing > TimingSharedPtr
boost::weak_ptr< InterfaceAttributes > InterfaceAttributesWeakPtr
boost::weak_ptr< PortElement > PortElementWeakPtr
boost::weak_ptr< ObjectFactory > ObjectFactoryWeakPtr
boost::weak_ptr< VectorNet > VectorNetWeakPtr
boost::shared_ptr< Status > StatusSharedPtr
boost::shared_ptr< VectorPortReference > VectorPortReferenceSharedPtr
boost::shared_ptr< NetBundle > NetBundleSharedPtr
This class is to model simulate construct which is a named collection of simulation stimulus and resp...
Definition: Simulate.hpp:46
boost::weak_ptr< Cell > CellWeakPtr
Represents EDIF status construct.
Definition: Status.hpp:42
boost::weak_ptr< PortAttributes > PortAttributesWeakPtr
Represents a reference to a bundle of ports.
boost::shared_ptr< VectorPortBitReference > VectorPortBitReferenceWeakPtr
boost::shared_ptr< UserDataContainer > UserDataContainerSharedPtr
boost::weak_ptr< LogicValue > LogicValueWeakPtr
boost::shared_ptr< Root > RootSharedPtr
boost::shared_ptr< ParameterMap > ParameterMapSharedPtr
boost::shared_ptr< PortBundleReference > PortBundleReferenceSharedPtr