00001
00002 #ifndef CHANNEL_H
00003 #define CHANNEL_H
00004
00005 #include <boost/shared_ptr.hpp>
00006 #include <boost/utility.hpp>
00007
00008 class Signal;
00009 typedef boost::shared_ptr<Signal> SignalPtr;
00010 class PhysicalLayer;
00011 typedef boost::shared_ptr<PhysicalLayer> PhysicalLayerPtr;
00012 class SimTime;
00013
00021 class Channel : boost::noncopyable {
00022 public:
00024 typedef boost::shared_ptr<Channel> ChannelPtr;
00025
00027 virtual ~Channel();
00028
00036 virtual SimTime propagationDelay(const PhysicalLayer& sender,
00037 const PhysicalLayer& receiver) const;
00038
00039 protected:
00040
00044 Channel();
00045
00049 Channel(const Channel& rhs);
00050
00051 private:
00052
00053 Channel& operator= (const Channel& rhs);
00054
00055 };
00056 typedef boost::shared_ptr<Channel> ChannelPtr;
00057
00059
00061
00063
00065
00066 #endif // CHANNEL_H
00067