wireless_comm_signal.hpp

来自「RFID reader 语 tag 模拟器」· HPP 代码 · 共 139 行

HPP
139
字号
 #ifndef WIRELESS_COMM_SIGNAL_H #define WIRELESS_COMM_SIGNAL_H #include <boost/shared_ptr.hpp> #include "signal.hpp" #include "packet.hpp" class SimTime; class WirelessCommSignal : public Signal {    friend ostream& operator<< (ostream& s, const WirelessCommSignal& rhs); public:    typedef boost::shared_ptr<WirelessCommSignal> WirelessCommSignalPtr;    static inline WirelessCommSignalPtr create(       const Location& location, double dbStrength,       double wavelength, double transmitterGain,       PacketPtr packet);    static inline WirelessCommSignalPtr create(       const WirelessCommSignal& rhs);    inline PacketPtr getPacketPtr() const;    inline double getWavelength() const;    inline double getTransmitterGain() const;    SimTime getDuration() const;    inline void setChannelId(t_uint channelId);    inline t_uint getChannelId() const; protected:    WirelessCommSignal(const Location& location, double dbStrength,       double wavelength, double transmitterGain,       PacketPtr packet);    WirelessCommSignal(const WirelessCommSignal& rhs);    virtual SignalPtr clone() const; private:    static const t_uint m_DEFAULT_CHANNEL_ID = 0;    PacketPtr m_packetPtr;    double m_wavelength;    double m_transmitterGain;    t_uint m_channelId;    WirelessCommSignal& operator= (const WirelessCommSignal& rhs); }; typedef boost::shared_ptr<WirelessCommSignal> WirelessCommSignalPtr; typedef boost::shared_ptr<WirelessCommSignal const>    ConstWirelessCommSignalPtr; // Inline Functions inline WirelessCommSignalPtr WirelessCommSignal::create(    const Location& location, double dbStrength,    double wavelength, double transmitterGain,    PacketPtr packet) {    WirelessCommSignalPtr p(new WirelessCommSignal(location,       dbStrength, wavelength, transmitterGain, packet));    return p; } inline WirelessCommSignalPtr WirelessCommSignal::create(    const WirelessCommSignal& rhs) {    WirelessCommSignalPtr p =       boost::dynamic_pointer_cast<WirelessCommSignal>(rhs.clone());    // If the shared_ptr is empty, then the cast failed.    assert(p.get() != 0);    return p; } inline PacketPtr WirelessCommSignal::getPacketPtr() const {    return m_packetPtr; } inline double WirelessCommSignal::getWavelength() const {    return m_wavelength; } inline double WirelessCommSignal::getTransmitterGain() const {    return m_transmitterGain; } inline void WirelessCommSignal::setChannelId(t_uint channelId) {    m_channelId = channelId; } inline t_uint WirelessCommSignal::getChannelId() const {    return m_channelId; } // Overloaded Operators inline ostream& operator<< (ostream& s, const WirelessCommSignal& rhs) {    return s << "Wireless signal state (" <<       static_cast<Signal>(rhs) << "), packet=(" <<       *(rhs.m_packetPtr) << ")"; } // The assignment operator is now disabled via a private modifier. /* inline WirelessCommSignal& WirelessCommSignal::operator=    (const WirelessCommSignal& rhs) {    if(this == &rhs)       return *this;    Signal::operator=(rhs);    m_packetPtr = Packet::create(*rhs.m_packetPtr);    return *this; } */ #endif // WIRELESS_COMM_SIGNAL_H

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?