A Discrete-Event Network Simulator
API
simple-device-energy-model.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2010 Andrea Sacco
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  * Author: Andrea Sacco <andrea.sacco85@gmail.com>
19  */
20 
21 #ifndef SIMPLE_DEVICE_ENERGY_MODEL_H
22 #define SIMPLE_DEVICE_ENERGY_MODEL_H
23 
24 #include "ns3/device-energy-model.h"
25 #include "ns3/nstime.h"
26 #include "ns3/traced-value.h"
27 
28 namespace ns3 {
29 
39 {
40 public:
45  static TypeId GetTypeId (void);
47  virtual ~SimpleDeviceEnergyModel ();
48 
56  virtual void SetNode (Ptr<Node> node);
57 
65  virtual Ptr<Node> GetNode (void) const;
66 
74  virtual void SetEnergySource (Ptr<EnergySource> source);
75 
81  virtual double GetTotalEnergyConsumption (void) const;
82 
88  virtual void ChangeState (int newState)
89  {
90  }
91 
97  virtual void HandleEnergyDepletion (void)
98  {
99  }
100 
106  virtual void HandleEnergyRecharged (void)
107  {
108  }
109 
115  virtual void HandleEnergyChanged (void)
116  {
117  }
118 
124  void SetCurrentA (double current);
125 private:
126  void DoDispose (void);
127 
133  virtual double DoGetCurrentA (void) const;
134 
140 };
141 
142 } // namespace ns3
143 
144 #endif /* SIMPLE_DEVICE_ENERGY_MODEL_H */
Base class for device energy models.
A simple device energy model where current drain can be set by the user.
virtual double DoGetCurrentA(void) const
virtual Ptr< Node > GetNode(void) const
Gets pointer to node.
TracedValue< double > m_totalEnergyConsumption
Total energy consumption trace.
static TypeId GetTypeId(void)
Get the type ID.
virtual void HandleEnergyRecharged(void)
Handles energy recharged.
virtual double GetTotalEnergyConsumption(void) const
virtual void HandleEnergyChanged(void)
Handles energy changed.
void DoDispose(void)
Destructor implementation.
virtual void HandleEnergyDepletion(void)
Handles energy depletion.
virtual void SetNode(Ptr< Node > node)
Sets pointer to node.
virtual void SetEnergySource(Ptr< EnergySource > source)
Sets pointer to EnergySouce installed on node.
double m_actualCurrentA
actual curred (in Ampere)
virtual void ChangeState(int newState)
Ptr< EnergySource > m_source
Energy source.
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:103
a unique identifier for an interface.
Definition: type-id.h:59
Every class exported by the ns3 library is enclosed in the ns3 namespace.