A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
energy-harvester-helper.cc
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 * SPDX-License-Identifier: GPL-2.0-only
6 *
7 * Author: Cristiano Tapparello <cristiano.tapparello@rochester.edu>
8 */
9
11
12#include "ns3/config.h"
13#include "ns3/names.h"
14
15namespace ns3
16{
17
18/*
19 * EnergyHarvesterHelper
20 */
24
30
33{
35 for (auto i = sourceContainer.Begin(); i != sourceContainer.End(); ++i)
36 {
38 container.Add(harvester);
39 Ptr<Node> node = (*i)->GetNode();
40 /*
41 * Check if EnergyHarvesterContainer is already aggregated to target node. If
42 * not, create a new EnergyHarvesterContainer and aggregate it to the node.
43 */
45 node->GetObject<energy::EnergyHarvesterContainer>();
47 {
49 fac.SetTypeId("ns3::energy::EnergyHarvesterContainer");
52 node->AggregateObject(EnergyHarvesterContainerOnNode);
53 }
54 else
55 {
56 EnergyHarvesterContainerOnNode->Add(harvester); // append new EnergyHarvester
57 }
58 }
59 return container;
60}
61
64{
65 Ptr<energy::EnergySource> source = Names::Find<energy::EnergySource>(sourceName);
66 return Install(source);
67}
68
69} // namespace ns3
virtual Ptr< energy::EnergyHarvester > DoInstall(Ptr< energy::EnergySource > source) const =0
energy::EnergyHarvesterContainer Install(Ptr< energy::EnergySource > source) const
Instantiate subclasses of ns3::Object.
void SetTypeId(TypeId tid)
Set the TypeId of the Objects to be created by this factory.
Smart pointer class similar to boost::intrusive_ptr.
Definition ptr.h:66
Holds a vector of ns3::EnergyHarvester pointers.
void Add(EnergyHarvesterContainer container)
Holds a vector of ns3::EnergySource pointers.
Ptr< T > Create(Ts &&... args)
Create class instances by constructors with varying numbers of arguments and return them by Ptr.
Definition ptr.h:436
Every class exported by the ns3 library is enclosed in the ns3 namespace.