replace RefCountBase with SimpleRefCount<> to avoid duplicate refcounting implementations.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
3 * Copyright (c) 2009 IITP RAS
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation;
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 * Author: Pavel Boyko <boyko@iitp.ru>
21 #ifndef MESHWIFIINTERFACEMACPLUGIN_H_
22 #define MESHWIFIINTERFACEMACPLUGIN_H_
24 #include "ns3/wifi-mac-header.h"
25 #include "ns3/packet.h"
26 #include "ns3/mac48-address.h"
27 #include "ns3/mesh-wifi-beacon.h"
28 #include "ns3/simple-ref-count.h"
32 class MeshWifiInterfaceMac;
37 * \brief Common interface for mesh point interface MAC plugins
39 * TODO: plugins description
41 class MeshWifiInterfaceMacPlugin : public SimpleRefCount<MeshWifiInterfaceMacPlugin>
44 /// This is for subclasses
45 virtual ~MeshWifiInterfaceMacPlugin (){};
46 /// Each plugin must be installed on interface to work
47 virtual void SetParent (Ptr<MeshWifiInterfaceMac> parent) = 0;
49 * \brief Process received frame
51 * \return false if (and only if) frame should be dropped
52 * TODO define when MAC call this
54 virtual bool Receive (Ptr<Packet> packet, const WifiMacHeader & header) = 0;
56 * \brief Update frame before it will be forwarded down
58 * \return false if (and only if) frame should be dropped
59 * TODO define when MAC call this, preconditions & postconditions
61 virtual bool UpdateOutcomingFrame (Ptr<Packet> packet, WifiMacHeader & header, Mac48Address from, Mac48Address to) = 0;
63 * \brief Update beacon before it will be formed and sent
65 * TODO define when MAC call this
67 virtual void UpdateBeacon (MeshWifiBeacon & beacon) const = 0;
71 #endif /* MESHWIFIINTERFACEMACPLUGIN_H_ */