00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef TORC_GENERIC_OM_WAVEVALUE_HPP
00017 #define TORC_GENERIC_OM_WAVEVALUE_HPP
00018
00019 #include "torc/generic/om/PointerTypes.hpp"
00020 #include "torc/generic/om/Nameable.hpp"
00021 #include "torc/generic/om/FactoryType.hpp"
00022 #include "torc/generic/om/SelfReferencing.hpp"
00023 #include "torc/generic/om/VisitorType.hpp"
00024 #include "torc/generic/om/Value.hpp"
00025
00026 namespace torc { namespace generic { class LogicElement; } }
00027
00028 namespace torc {
00029
00030 namespace generic {
00031
00032
00033
00034
00035
00036 class WaveValue
00037 : public Nameable,
00038 public SelfReferencing<WaveValue>
00039 {
00040 friend class FactoryType<WaveValue>;
00041
00042 public:
00043
00044
00045
00046
00047 typedef VisitorType<WaveValue> Visitor;
00048
00049 virtual void
00050 accept(BaseVisitor & inoutVisitor) throw(Error);
00051
00052
00053
00054
00055 class Factory: public FactoryType<WaveValue>
00056 {
00057 public:
00058 using FactoryType<WaveValue>::create;
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071 WaveValueSharedPtr
00072 virtual newWaveValuePtr( const std::string & inName,
00073 const Value & inDeltaTimeDuration,
00074 const LogicElementSharedPtr inLogicWaveForm,
00075 const SimulateSharedPtr & inSimulate
00076 = SimulateSharedPtr() ) throw(Error);
00077 };
00078
00079
00080
00081
00082
00083 inline const Value
00084 getDeltaTimeDuration() const throw();
00085
00086
00087
00088
00089
00090 void
00091 setDeltaTimeDuration(const Value & value) throw();
00092
00093
00094
00095
00096
00097
00098 inline const LogicElementSharedPtr
00099 getLogicWaveform() const throw();
00100
00101
00102
00103
00104
00105
00106 void
00107 setLogicWaveform( const LogicElementSharedPtr & inSource ) throw();
00108
00109 ~WaveValue() throw();
00110
00111 protected:
00112 WaveValue();
00113
00114 private:
00115 WaveValue( const WaveValue & source ) throw();
00116
00117 WaveValue &
00118 operator=( const WaveValue & source ) throw();
00119
00120 Value mDeltaTimeDuration;
00121 LogicElementSharedPtr mLogicWaveform;
00122
00123 };
00124
00125
00126
00127
00128
00129 inline const Value
00130 WaveValue::getDeltaTimeDuration() const throw() {
00131 return mDeltaTimeDuration;
00132 }
00133
00134
00135
00136
00137
00138
00139 inline const LogicElementSharedPtr
00140 WaveValue::getLogicWaveform() const throw() {
00141 return mLogicWaveform;
00142 }
00143
00144 }
00145
00146 }
00147 #endif // TORC_GENERIC_OM_WAVEVALUE_HPP