A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Documentation ▼
Installation
Manual
Models
Contributing
Wiki
Development ▼
API Docs
Issue Tracker
Merge Requests
API
Loading...
Searching...
No Matches
energy-harvester-helper.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2014 Wireless Communications and Networking Group (WCNG),
3
* University of Rochester, Rochester, NY, USA.
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: Cristiano Tapparello <cristiano.tapparello@rochester.edu>
19
*/
20
21
#ifndef ENERGY_HARVESTER_HELPER_H
22
#define ENERGY_HARVESTER_HELPER_H
23
24
#include "
energy-harvester-container.h
"
25
#include "
energy-source-container.h
"
26
27
#include "ns3/attribute.h"
28
#include "ns3/energy-harvester.h"
29
#include "ns3/energy-source.h"
30
#include "ns3/node-container.h"
31
#include "ns3/object-factory.h"
32
#include "ns3/ptr.h"
33
34
namespace
ns3
35
{
36
37
/**
38
* \ingroup energy
39
* \brief Creates EnergyHarvester objects.
40
*
41
* This class creates and installs energy harvesters onto network nodes.
42
*
43
*/
44
class
EnergyHarvesterHelper
45
{
46
public
:
47
virtual
~EnergyHarvesterHelper
();
48
49
/**
50
* \param name Name of attribute to set.
51
* \param v Value of the attribute.
52
*
53
* Sets one of the attributes of underlying EnergyHarvester.
54
*/
55
virtual
void
Set
(std::string name,
const
AttributeValue
& v) = 0;
56
57
/**
58
* \param source Pointer to the energy source where EnergyHarvester will be installed.
59
* \returns An EnergyHarvesterContainer which contains all the EnergyHarvesters.
60
*
61
* This function installs an EnergyHarvester onto an energy source.
62
*/
63
energy::EnergyHarvesterContainer
Install
(
Ptr<energy::EnergySource>
source)
const
;
64
65
/**
66
* \param sourceContainer List of nodes where EnergyHarvester will be installed.
67
* \returns An EnergyHarvesterContainer which contains all the EnergyHarvester.
68
*
69
* This function installs an EnergyHarvester onto a list of energy sources.
70
*/
71
energy::EnergyHarvesterContainer
Install
(
energy::EnergySourceContainer
sourceContainer)
const
;
72
73
/**
74
* \param sourceName Name of node where EnergyHarvester will be installed.
75
* \returns An EnergyHarvesterContainer which contains all the EnergyHarvesters.
76
*
77
* This function installs an EnergyHarvester onto a node.
78
*/
79
energy::EnergyHarvesterContainer
Install
(std::string sourceName)
const
;
80
81
private
:
82
/**
83
* \param source Pointer to node where the energy harvester is to be installed.
84
* \returns Pointer to the created EnergyHarvester.
85
*
86
* Child classes of EnergyHarvesterHelper only have to implement this function,
87
* to create and aggregate an EnergyHarvester object onto a single node. Rest of
88
* the installation process (eg. installing EnergyHarvester on set of nodes) is
89
* implemented in the EnergyHarvesterHelper base class.
90
*/
91
virtual
Ptr<energy::EnergyHarvester>
DoInstall
(
Ptr<energy::EnergySource>
source)
const
= 0;
92
};
93
94
}
// namespace ns3
95
96
#endif
/* defined(ENERGY_HARVESTER_HELPER_H) */
ns3::AttributeValue
Hold a value for an Attribute.
Definition:
attribute.h:70
ns3::EnergyHarvesterHelper
Creates EnergyHarvester objects.
Definition:
energy-harvester-helper.h:45
ns3::EnergyHarvesterHelper::~EnergyHarvesterHelper
virtual ~EnergyHarvesterHelper()
Definition:
energy-harvester-helper.cc:32
ns3::EnergyHarvesterHelper::DoInstall
virtual Ptr< energy::EnergyHarvester > DoInstall(Ptr< energy::EnergySource > source) const =0
ns3::EnergyHarvesterHelper::Set
virtual void Set(std::string name, const AttributeValue &v)=0
ns3::EnergyHarvesterHelper::Install
energy::EnergyHarvesterContainer Install(Ptr< energy::EnergySource > source) const
Definition:
energy-harvester-helper.cc:37
ns3::Ptr
Smart pointer class similar to boost::intrusive_ptr.
Definition:
ptr.h:77
ns3::energy::EnergyHarvesterContainer
Holds a vector of ns3::EnergyHarvester pointers.
Definition:
energy-harvester-container.h:49
ns3::energy::EnergySourceContainer
Holds a vector of ns3::EnergySource pointers.
Definition:
energy-source-container.h:48
energy-harvester-container.h
energy-source-container.h
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
src
energy
helper
energy-harvester-helper.h
Generated on Tue May 28 2024 23:35:16 for ns-3 by
1.9.6