00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef TORC_GENERIC_OM_OBJECTFACTORY_HPP
00017 #define TORC_GENERIC_OM_OBJECTFACTORY_HPP
00018
00019 #include "torc/generic/om/Cell.hpp"
00020 #include "torc/generic/om/Design.hpp"
00021 #include "torc/generic/om/Library.hpp"
00022 #include "torc/generic/om/InstanceArray.hpp"
00023 #include "torc/generic/om/InstanceArrayMember.hpp"
00024 #include "torc/generic/om/Root.hpp"
00025 #include "torc/generic/om/NetBundle.hpp"
00026 #include "torc/generic/om/Property.hpp"
00027 #include "torc/generic/om/ParameterArray.hpp"
00028 #include "torc/generic/om/ParameterArrayElement.hpp"
00029 #include "torc/generic/om/PortBundle.hpp"
00030 #include "torc/generic/om/PortList.hpp"
00031 #include "torc/generic/om/PortBundleReference.hpp"
00032 #include "torc/generic/om/ScalarNet.hpp"
00033 #include "torc/generic/om/ScalarPort.hpp"
00034 #include "torc/generic/om/ScalarPortReference.hpp"
00035 #include "torc/generic/om/SingleInstance.hpp"
00036 #include "torc/generic/om/SingleParameter.hpp"
00037 #include "torc/generic/om/Status.hpp"
00038 #include "torc/generic/om/VectorNet.hpp"
00039 #include "torc/generic/om/VectorNetBit.hpp"
00040 #include "torc/generic/om/VectorPort.hpp"
00041 #include "torc/generic/om/VectorPortBit.hpp"
00042 #include "torc/generic/om/VectorPortReference.hpp"
00043 #include "torc/generic/om/VectorPortBitReference.hpp"
00044 #include "torc/generic/om/View.hpp"
00045 #include "torc/generic/om/Written.hpp"
00046 #include "torc/generic/om/Permutable.hpp"
00047 #include "torc/generic/om/InterfaceJoinedInfo.hpp"
00048 #include "torc/generic/om/LogicValue.hpp"
00049 #include "torc/generic/om/SimulationInfo.hpp"
00050 #include "torc/generic/om/Simulate.hpp"
00051 #include "torc/generic/om/Apply.hpp"
00052 #include "torc/generic/om/LogicalResponse.hpp"
00053 #include "torc/generic/om/LogicElement.hpp"
00054 #include "torc/generic/om/WaveValue.hpp"
00055 #include "torc/generic/om/Timing.hpp"
00056 #include "torc/generic/om/PathDelay.hpp"
00057 #include "torc/generic/om/Event.hpp"
00058 #include "torc/generic/om/ForbiddenEvent.hpp"
00059
00060 namespace torc {
00061
00062 namespace generic {
00063
00064
00065
00066
00067
00068
00069 class ObjectFactory :
00070 public Cell::Factory,
00071 public Design::Factory,
00072 public Library::Factory,
00073 public InstanceArray::Factory,
00074 public InstanceArrayMember::Factory,
00075 public NetBundle::Factory,
00076 public ParameterArray::Factory,
00077 public PortBundle::Factory,
00078 public PortBundleReference::Factory,
00079 public Property::Factory,
00080 public ParameterArrayElement::Factory,
00081 public PortList::Factory,
00082 public PortListAlias::Factory,
00083 public Root::Factory,
00084 public ScalarNet::Factory,
00085 public ScalarPort::Factory,
00086 public ScalarPortReference::Factory,
00087 public SingleInstance::Factory,
00088 public SingleParameter::Factory,
00089 public Status::Factory,
00090 public VectorNet::Factory,
00091 public VectorNetBit::Factory,
00092 public VectorPort::Factory,
00093 public VectorPortBit::Factory,
00094 public VectorPortReference::Factory,
00095 public VectorPortBitReference::Factory,
00096 public View::Factory,
00097 public Written::Factory,
00098 public Permutable::Factory,
00099 public InterfaceJoinedInfo::Factory,
00100 public LogicValue::Factory,
00101 public SimulationInfo::Factory,
00102 public Simulate::Factory,
00103 public Apply::Factory,
00104 public LogicalResponse::Factory,
00105 public LogicElement::Factory,
00106 public WaveValue::Factory,
00107 public Timing::Factory,
00108 public PathDelay::Factory,
00109 public Event::Factory,
00110 public ForbiddenEvent::Factory
00111 {
00112 public:
00113
00114 using Cell::Factory::create;
00115 using Design::Factory::create;
00116 using Library::Factory::create;
00117 using InstanceArray::Factory::create;
00118 using InstanceArrayMember::Factory::create;
00119 using NetBundle::Factory::create;
00120 using ParameterArray::Factory::create;
00121 using PortBundle::Factory::create;
00122 using PortBundleReference::Factory::create;
00123 using Property::Factory::create;
00124 using ParameterArrayElement::Factory::create;
00125 using PortList::Factory::create;
00126 using PortListAlias::Factory::create;
00127 using Root::Factory::create;
00128 using ScalarNet::Factory::create;
00129 using ScalarPort::Factory::create;
00130 using ScalarPortReference::Factory::create;
00131 using SingleInstance::Factory::create;
00132 using SingleParameter::Factory::create;
00133 using Status::Factory::create;
00134 using VectorNet::Factory::create;
00135 using VectorNetBit::Factory::create;
00136 using VectorPort::Factory::create;
00137 using VectorPortBit::Factory::create;
00138 using VectorPortReference::Factory::create;
00139 using VectorPortBitReference::Factory::create;
00140 using View::Factory::create;
00141 using Written::Factory::create;
00142 using Permutable::Factory::create;
00143 using InterfaceJoinedInfo::Factory::create;
00144 using LogicValue::Factory::create;
00145 using SimulationInfo::Factory::create;
00146 using Simulate::Factory::create;
00147 using Apply::Factory::create;
00148 using LogicalResponse::Factory::create;
00149 using LogicElement::Factory::create;
00150 using WaveValue::Factory::create;
00151 using Timing::Factory::create;
00152 using PathDelay::Factory::create;
00153 using Event::Factory::create;
00154 using ForbiddenEvent::Factory::create;
00155
00156 using Root::Factory::newRootPtr;
00157 using Library::Factory::newLibraryPtr;
00158 using Cell::Factory::newCellPtr;
00159 using Design::Factory::newDesignPtr;
00160 using View::Factory::newViewPtr;
00161 using ScalarNet::Factory::newScalarNetPtr;
00162 using VectorNet::Factory::newVectorNetPtr;
00163 using NetBundle::Factory::newNetBundlePtr;
00164 using ScalarPort::Factory::newScalarPortPtr;
00165 using VectorPort::Factory::newVectorPortPtr;
00166 using PortBundle::Factory::newPortBundlePtr;
00167 using ScalarPortReference::Factory::newScalarPortReferencePtr;
00168 using VectorPortReference::Factory::newVectorPortReferencePtr;
00169 using PortBundleReference::Factory::newPortBundleReferencePtr;
00170 using SingleInstance::Factory::newSingleInstancePtr;
00171 using InstanceArray::Factory::newInstanceArrayPtr;
00172 using SingleParameter::Factory::newSingleParameterPtr;
00173 using ParameterArray::Factory::newParameterArrayPtr;
00174 using Property::Factory::newPropertyPtr;
00175 using PortList::Factory::newPortListPtr;
00176 using Written::Factory::newWrittenPtr;
00177 using Status::Factory::newStatusPtr;
00178 using Permutable::Factory::newPermutablePtr;
00179 using InterfaceJoinedInfo::Factory::newInterfaceJoinedInfoPtr;
00180 using LogicValue::Factory::newLogicValuePtr;
00181 using SimulationInfo::Factory::newSimulationInfoPtr;
00182 using Simulate::Factory::newSimulatePtr;
00183 using Apply::Factory::newApplyPtr;
00184 using LogicalResponse::Factory::newLogicalResponsePtr;
00185 using LogicElement::Factory::newLogicElementPtr;
00186 using WaveValue::Factory::newWaveValuePtr;
00187 using Timing::Factory::newTimingPtr;
00188 using PathDelay::Factory::newPathDelayPtr;
00189 using Event::Factory::newEventPtr;
00190 using ForbiddenEvent::Factory::newForbiddenEventPtr;
00191
00192
00193 ObjectFactory();
00194
00195 virtual
00196 ~ObjectFactory() throw();
00197
00198 };
00199
00200 }
00201
00202 }
00203 #endif // TORC_GENERIC_OM_OBJECTFACTORY_HPP