A Discrete-Event Network Simulator
API
device-energy-model-container.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2008 INRIA
3  * Copyright (c) 2010 Network Security Lab, University of Washington, Seattle.
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: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
19  * Sidharth Nabar <snabar@uw.edu>, He Wu <mdzz@u.washington.edu>
20  */
21 
22 #ifndef DEVICE_ENERGY_MODEL_CONTAINER_H
23 #define DEVICE_ENERGY_MODEL_CONTAINER_H
24 
25 #include "device-energy-model.h"
26 
27 #include <stdint.h>
28 #include <vector>
29 
30 namespace ns3
31 {
32 
45 {
46  public:
48  typedef std::vector<Ptr<DeviceEnergyModel>>::const_iterator Iterator;
49 
50  public:
55 
63 
71  DeviceEnergyModelContainer(std::string modelName);
72 
86 
106  Iterator Begin() const;
107 
127  Iterator End() const;
128 
134  uint32_t GetN() const;
135 
142  Ptr<DeviceEnergyModel> Get(uint32_t i) const;
143 
151 
157  void Add(Ptr<DeviceEnergyModel> model);
158 
165  void Add(std::string modelName);
166 
170  void Clear();
171 
172  private:
173  std::vector<Ptr<DeviceEnergyModel>> m_models;
174 };
175 
176 } // namespace ns3
177 
178 #endif /* DEVICE_ENERGY_MODEL_CONTAINER_H */
Holds a vector of ns3::DeviceEnergyModel pointers.
void Clear()
Removes all elements in the container.
DeviceEnergyModelContainer()
Creates an empty DeviceEnergyModelContainer.
uint32_t GetN() const
Get the number of Ptr<DeviceEnergyModel> stored in this container.
void Add(DeviceEnergyModelContainer container)
std::vector< Ptr< DeviceEnergyModel > >::const_iterator Iterator
Const iterator of DeviceEnergyModel container.
Iterator Begin() const
Get an iterator which refers to the first DeviceEnergyModel pointer in the container.
std::vector< Ptr< DeviceEnergyModel > > m_models
Container of Energy models.
Iterator End() const
Get an iterator which refers to the last DeviceEnergyModel pointer in the container.
Ptr< DeviceEnergyModel > Get(uint32_t i) const
Get the i-th Ptr<DeviceEnergyModel> stored in this container.
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:77
Every class exported by the ns3 library is enclosed in the ns3 namespace.