src/energy/model/energy-source.h
changeset 10882 75e256e51d9d
parent 9703 681f35b212ff
child 10883 d919e7194e23
--- a/src/energy/model/energy-source.h	Fri Sep 05 15:25:10 2014 -0700
+++ b/src/energy/model/energy-source.h	Fri Sep 05 15:38:55 2014 -0700
@@ -16,8 +16,14 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
  * Authors: Sidharth Nabar <snabar@uw.edu>, He Wu <mdzz@u.washington.edu>
+ *
+ * Copyright (c) 2014 Wireless Communications and Networking Group (WCNG),
+ * University of Rochester, Rochester, NY, USA.
+ *
+ * Modifications made by: Cristiano Tapparello <cristiano.tapparello@rochester.edu>
  */
 
+
 #ifndef ENERGY_SOURCE_H
 #define ENERGY_SOURCE_H
 
@@ -26,9 +32,10 @@
 #include "ns3/type-id.h"
 #include "ns3/node.h"
 #include "device-energy-model-container.h"  // #include "device-energy-model.h"
+#include "ns3/energy-harvester.h"
 
 namespace ns3 {
-
+  
 /**
  * \defgroup energy Energy Models
  *
@@ -68,6 +75,9 @@
  * energy in different units (eg. kWh), a simple converter function should
  * suffice.
  */
+  
+class EnergyHarvester;
+  
 class EnergySource : public Object
 {
 public:
@@ -158,6 +168,17 @@
    * here. Called by EnergySourceContainer, which is aggregated to the node.
    */
   void DisposeDeviceModels (void);
+  
+  /**
+   * \param energyHarvesterPtr Pointer to energy harvester.
+   *
+   * This function connect an energy harvester to the energy source. After the
+   * execution of this method, the pointer to the energy harvester is appended
+   * to the end of a vector of EnergyHarvester pointer.
+   * Note that the order in which different energy harvester are added to the
+   * energy source does not impact the simulation results.
+   */
+  void ConnectEnergyHarvester (Ptr<EnergyHarvester> energyHarvesterPtr);
 
 
 private:
@@ -180,6 +201,13 @@
    * sure device models are installed onto the corresponding node.
    */
   Ptr<Node> m_node;
+    
+  /**
+  * Vector of EnergyHarvester pointer connected to the same energy source.
+  * This vector is used by the CalculateTotalCurrent method to determine the
+  * total power provided by the energy harvesters connected to the energy source.
+  */
+  std::vector< Ptr<EnergyHarvester> > m_harvesters;
 
 
 protected: