A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
application-container.cc
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2008 INRIA
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: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
19  */
20 
21 #include "ns3/names.h"
22 #include "application-container.h"
23 
24 namespace ns3 {
25 
27 {
28 }
29 
31 {
32  m_applications.push_back (app);
33 }
34 
36 {
37  Ptr<Application> app = Names::Find<Application> (name);
38  m_applications.push_back (app);
39 }
40 
41 
42 ApplicationContainer::Iterator
44 {
45  return m_applications.begin ();
46 }
47 ApplicationContainer::Iterator
49 {
50  return m_applications.end ();
51 }
52 
53 uint32_t
55 {
56  return m_applications.size ();
57 }
59 ApplicationContainer::Get (uint32_t i) const
60 {
61  return m_applications[i];
62 }
63 void
65 {
66  for (Iterator i = other.Begin (); i != other.End (); i++)
67  {
68  m_applications.push_back (*i);
69  }
70 }
71 void
73 {
74  m_applications.push_back (application);
75 }
76 void
77 ApplicationContainer::Add (std::string name)
78 {
79  Ptr<Application> application = Names::Find<Application> (name);
80  m_applications.push_back (application);
81 }
82 
83 void
85 {
86  for (Iterator i = Begin (); i != End (); ++i)
87  {
88  Ptr<Application> app = *i;
89  app->SetStartTime (start);
90  }
91 }
92 void
94 {
95  for (Iterator i = Begin (); i != End (); ++i)
96  {
97  Ptr<Application> app = *i;
98  app->SetStopTime (stop);
99  }
100 }
101 
102 
103 } // namespace ns3
Iterator End(void) const
Get an iterator which indicates past-the-last Application in the container.
holds a vector of ns3::Application pointers.
keep track of time unit.
Definition: nstime.h:149
smart pointer class similar to boost::intrusive_ptr
Definition: ptr.h:59
void Add(ApplicationContainer other)
Append the contents of another ApplicationContainer to the end of this container. ...
uint32_t GetN(void) const
Get the number of Ptr<Application> stored in this container.
Iterator Begin(void) const
Get an iterator which refers to the first Application in the container.
void Start(Time start)
Arrange for all of the Applications in this container to Start() at the Time given as a parameter...
Ptr< Application > Get(uint32_t i) const
Get the Ptr<Application> stored in this container at a given index.
void Stop(Time stop)
Arrange for all of the Applications in this container to Stop() at the Time given as a parameter...