src/devices/wifi/wifi-net-device.h
changeset 2470 254581fb9e9c
parent 2284 14b682d28918
child 2503 e667dc0f350e
--- a/src/devices/wifi/wifi-net-device.h	Sun Feb 24 20:18:02 2008 +0100
+++ b/src/devices/wifi/wifi-net-device.h	Mon Feb 25 19:33:46 2008 +0100
@@ -98,14 +98,32 @@
    */
   virtual Ssid GetSsid (void) const = 0;
 
+  // inherited from NetDevice base class.
+  virtual void SetName(const std::string name);
+  virtual std::string GetName(void) const;
+  virtual void SetIfIndex(const uint32_t index);
+  virtual uint32_t GetIfIndex(void) const;
+  virtual Ptr<Channel> GetChannel (void) const;
+  virtual Address GetAddress (void) const;
+  virtual bool SetMtu (const uint16_t mtu);
+  virtual uint16_t GetMtu (void) const;
+  virtual bool IsLinkUp (void) const;
+  virtual void SetLinkChangeCallback (Callback<void> callback);
+  virtual bool IsBroadcast (void) const;
+  virtual Address GetBroadcast (void) const;
+  virtual bool IsMulticast (void) const;
+  virtual Address GetMulticast (void) const;
+  virtual Address MakeMulticastAddress (Ipv4Address multicastGroup) const;
+  virtual bool IsPointToPoint (void) const;
+  virtual bool Send(Ptr<Packet> packet, const Address& dest, uint16_t protocolNumber);
+  virtual Ptr<Node> GetNode (void) const;
+  virtual bool NeedsArp (void) const;
+  virtual void SetReceiveCallback (NetDevice::ReceiveCallback cb);
+
 private:
   class PhyListener;
   class NavListener;
 
-  // inherited from NetDevice
-  virtual bool DoNeedsArp (void) const;
-  virtual Ptr<Channel> DoGetChannel (void) const;
-  virtual bool SendTo (Ptr<Packet> packet, const Address &to, uint16_t protocolNumber);
   // inherited from Object
   virtual Ptr<TraceResolver> GetTraceResolver (void) const;
   // defined for children
@@ -117,10 +135,11 @@
   CallbackTraceSource<Ptr<const Packet>, Mac48Address> m_rxLogger;
   CallbackTraceSource<Ptr<const Packet>, Mac48Address> m_txLogger;
 protected:
-  WifiNetDevice (Ptr<Node> node);
   WifiNetDevice (Ptr<Node> node, Mac48Address self);
   void DoForwardUp (Ptr<Packet> packet, const Mac48Address &from);
   DcaTxop *CreateDca (uint32_t minCw, uint32_t maxCw, uint32_t aifsn) const;
+  void NotifyLinkUp (void);
+  void NotifyLinkDown (void);
   // inherited from Object
   virtual void DoDispose (void);
 
@@ -134,6 +153,15 @@
   DcfManager *m_manager;
   PhyListener *m_phyListener;
   NavListener *m_navListener;
+
+  Ptr<Node> m_node;
+  Mac48Address m_address;
+  NetDevice::ReceiveCallback m_rxCallback;
+  uint32_t m_ifIndex;
+  std::string m_name;
+  bool m_linkUp;
+  Callback<void> m_linkChangeCallback;
+  uint16_t m_mtu;
 };
 
 /**
@@ -144,7 +172,6 @@
  */
 class AdhocWifiNetDevice : public WifiNetDevice {
 public:
-  AdhocWifiNetDevice (Ptr<Node> node);
   AdhocWifiNetDevice (Ptr<Node> node, Mac48Address self);
   virtual ~AdhocWifiNetDevice ();
 
@@ -183,7 +210,6 @@
   /**
    * The ssid is initialized from \valueref{WifiSsid}.
    */
-  NqstaWifiNetDevice (Ptr<Node> node);
   NqstaWifiNetDevice (Ptr<Node> node, Mac48Address self);
   virtual ~NqstaWifiNetDevice ();