NS-3 based Named Data Networking (NDN) simulator
ndnSIM: NDN, CCN, CCNx, content centric networks
API Documentation
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Groups
Pages
ndn-app-helper.cc
1
/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright (c) 2011 University of California, Los Angeles
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: Ilya Moiseenko <iliamo@cs.ucla.edu>
19
*/
20
21
#include "ndn-app-helper.h"
22
#include "ns3/log.h"
23
#include "ns3/string.h"
24
#include "ns3/names.h"
25
#include "ns3/ndn-app.h"
26
27
#ifdef NS3_MPI
28
#include "ns3/mpi-interface.h"
29
#endif
30
31
NS_LOG_COMPONENT_DEFINE (
"ndn.AppHelper"
);
32
33
namespace
ns3 {
34
namespace
ndn {
35
36
AppHelper::AppHelper
(
const
std::string &app)
37
{
38
m_factory.SetTypeId (app);
39
}
40
41
void
42
AppHelper::SetPrefix
(
const
std::string &prefix)
43
{
44
m_factory.Set (
"Prefix"
, StringValue(prefix));
45
}
46
47
void
48
AppHelper::SetAttribute
(std::string name,
const
AttributeValue &value)
49
{
50
m_factory.Set (name, value);
51
}
52
53
ApplicationContainer
54
AppHelper::Install
(Ptr<Node> node)
55
{
56
ApplicationContainer apps;
57
Ptr<Application> app = InstallPriv (node);
58
if
(app != 0)
59
apps.Add (app);
60
61
return
apps;
62
}
63
64
ApplicationContainer
65
AppHelper::Install
(std::string nodeName)
66
{
67
Ptr<Node> node = Names::Find<Node> (nodeName);
68
return
Install
(node);
69
}
70
71
ApplicationContainer
72
AppHelper::Install
(NodeContainer c)
73
{
74
ApplicationContainer apps;
75
for
(NodeContainer::Iterator i = c.Begin (); i != c.End (); ++i)
76
{
77
Ptr<Application> app = InstallPriv (*i);
78
if
(app != 0)
79
apps.Add (app);
80
}
81
82
return
apps;
83
}
84
85
Ptr<Application>
86
AppHelper::InstallPriv (Ptr<Node> node)
87
{
88
#ifdef NS3_MPI
89
if
(MpiInterface::IsEnabled () &&
90
node->GetSystemId () != MpiInterface::GetSystemId ())
91
{
92
// don't create an app if MPI is enabled and node is not in the correct partition
93
return
0;
94
}
95
#endif
96
97
Ptr<Application> app = m_factory.Create<Application> ();
98
node->AddApplication (app);
99
100
return
app;
101
}
102
103
}
// namespace ndn
104
}
// namespace ns3
ns3::ndn::AppHelper::SetAttribute
void SetAttribute(std::string name, const AttributeValue &value)
Helper function used to set the underlying application attributes.
Definition:
ndn-app-helper.cc:48
ns3::ndn::AppHelper::AppHelper
AppHelper(const std::string &prefix)
Create an NdnAppHelper to make it easier to work with Ndn apps.
Definition:
ndn-app-helper.cc:36
ns3::ndn::AppHelper::Install
ApplicationContainer Install(NodeContainer c)
Install an ns3::NdnConsumer on each node of the input container configured with all the attributes se...
Definition:
ndn-app-helper.cc:72
ns3::ndn::AppHelper::SetPrefix
void SetPrefix(const std::string &prefix)
Set the prefix consumer will be requesting.
Definition:
ndn-app-helper.cc:42
ndnSIM
helper
ndn-app-helper.cc
Generated on Mon Jan 19 2015 11:27:03 for ndnSIM by
1.8.7