00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef TORC_GENERIC_OM_PATHDELAY_HPP
00017 #define TORC_GENERIC_OM_PATHDELAY_HPP
00018
00019 #include "torc/generic/om/PointerTypes.hpp"
00020 #include "torc/generic/om/Value.hpp"
00021 #include "torc/generic/om/SelfReferencing.hpp"
00022 #include "torc/generic/om/FactoryType.hpp"
00023
00024 #include <list>
00025
00026 namespace torc { namespace generic { class Event; } }
00027
00028 namespace torc {
00029
00030 namespace generic {
00031
00032
00033
00034
00035
00036
00037 class PathDelay
00038 : public SelfReferencing<PathDelay>
00039 {
00040 friend class FactoryType<PathDelay>;
00041
00042 public:
00043
00044
00045
00046 class Factory: public FactoryType<PathDelay>
00047 {
00048 public:
00049 using FactoryType<PathDelay>::create;
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060 PathDelaySharedPtr
00061 virtual newPathDelayPtr( const Value::MiNoMax & inDelay,
00062 const std::list< EventSharedPtr > & inEvents,
00063 const TimingSharedPtr & inTiming
00064 = TimingSharedPtr() ) throw(Error);
00065 };
00066
00067
00068
00069
00070
00071
00072 inline const Value::MiNoMax
00073 getDelay() const throw();
00074
00075
00076
00077
00078
00079
00080 void
00081 setDelay(const Value::MiNoMax & inSource) throw();
00082
00083
00084
00085
00086
00087
00088 inline void
00089 getEvents( std::list< EventSharedPtr > & outEvents ) const throw();
00090
00091
00092
00093
00094
00095
00096 void
00097 setEvents( const std::list< EventSharedPtr > & inEvents ) throw();
00098
00099
00100
00101
00102
00103
00104 void
00105 addEvent( const EventSharedPtr & inEvent ) throw(Error);
00106
00107 PathDelay();
00108
00109 ~PathDelay() throw();
00110
00111 private:
00112 PathDelay(const PathDelay & inSource);
00113
00114 PathDelay &
00115 operator =(const PathDelay & inSource) throw();
00116
00117 Value::MiNoMax mDelay;
00118 std::list< EventSharedPtr > mEvents;
00119
00120 };
00121
00122 inline const Value::MiNoMax
00123 PathDelay::getDelay() const throw() {
00124 return mDelay;
00125 }
00126
00127 inline void
00128 PathDelay::getEvents( std::list< EventSharedPtr > & outEvents ) const throw() {
00129 outEvents.insert( outEvents.end(),
00130 mEvents.begin(), mEvents.end() );
00131 }
00132
00133 }
00134
00135 }
00136 #endif // TORC_GENERIC_OM_PATHDELAY_HPP