A Discrete-Event Network Simulator
API
connection-manager.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2007,2008,2009 INRIA, UDcast
4  *
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;
8  *
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.
13  *
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
17  *
18  * Authors: Jahanzeb Farooq <jahanzeb.farooq@sophia.inria.fr>
19  * Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
20  * <amine.ismail@UDcast.com>
21  */
22 
23 #ifndef CONNECTION_MANAGER_H
24 #define CONNECTION_MANAGER_H
25 
26 #include <stdint.h>
27 #include "cid.h"
28 #include "wimax-connection.h"
29 #include "ns3/mac48-address.h"
30 
31 namespace ns3 {
32 
33 class CidFactory;
34 class SSRecord;
35 class RngRsp;
36 class WimaxNetDevice;
37 class SubscriberStationNetDevice;
38 
44 class ConnectionManager : public Object
45 {
46 public:
51  static TypeId GetTypeId (void);
52  ConnectionManager (void);
53  ~ConnectionManager (void);
54  void DoDispose (void);
59  void SetCidFactory (CidFactory *cidFactory);
65  void AllocateManagementConnections (SSRecord *ssRecord, RngRsp *rngrsp);
77  void AddConnection (Ptr<WimaxConnection> connection, Cid::Type type);
87  std::vector<Ptr<WimaxConnection> > GetConnections (Cid::Type type) const;
94  uint32_t GetNPackets (Cid::Type type, ServiceFlow::SchedulingType schedulingType) const;
98  bool HasPackets (void) const;
99 private:
100  std::vector<Ptr<WimaxConnection> > m_basicConnections;
101  std::vector<Ptr<WimaxConnection> > m_primaryConnections;
102  std::vector<Ptr<WimaxConnection> > m_transportConnections;
103  std::vector<Ptr<WimaxConnection> > m_multicastConnections;
104  // only for BS
106 };
107 
108 } // namespace ns3
109 
110 #endif /* CONNECTION_MANAGER_H */
111 
Ptr< WimaxConnection > GetConnection(Cid cid)
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:73
The same connection manager class serves both for BS and SS though some functions are exclusive to on...
This class implements the ranging response message described by "IEEE Standard for Local and metropol...
Definition: mac-messages.h:121
Type
Type enumeration.
Definition: cid.h:41
void DoDispose(void)
Destructor implementation.
static TypeId GetTypeId(void)
Get the type ID.
SchedulingType
section 11.13.11 Service flow scheduling type, page 701
Definition: service-flow.h:58
std::vector< Ptr< WimaxConnection > > m_primaryConnections
primary connections
std::vector< Ptr< WimaxConnection > > m_multicastConnections
multicast connections
void AddConnection(Ptr< WimaxConnection > connection, Cid::Type type)
add a connection to the list of managed connections
Every class exported by the ns3 library is enclosed in the ns3 namespace.
std::vector< Ptr< WimaxConnection > > m_basicConnections
basic connections
Cid class.
Definition: cid.h:37
std::vector< Ptr< WimaxConnection > > m_transportConnections
transport connections
CidFactory * m_cidFactory
the factory
void AllocateManagementConnections(SSRecord *ssRecord, RngRsp *rngrsp)
allocates the management connection for an ss record.
Ptr< WimaxConnection > CreateConnection(Cid::Type type)
create a connection of type type
uint32_t GetNPackets(Cid::Type type, ServiceFlow::SchedulingType schedulingType) const
get number of packets
void SetCidFactory(CidFactory *cidFactory)
Set CID factory.
This class is used by the base station to store some information related to subscriber station in the...
Definition: ss-record.h:43
A base class which provides memory management and object aggregation.
Definition: object.h:87
This class is used exclusively by the BS to allocate CIDs to new connections.
Definition: cid-factory.h:45
std::vector< Ptr< WimaxConnection > > GetConnections(Cid::Type type) const
a unique identifier for an interface.
Definition: type-id.h:58