author | Tom Henderson <tomh@tomh.org> |
Mon, 28 Sep 2015 20:27:25 -0700 | |
changeset 11676 | 05ea1489e509 |
parent 11266 | 89c5b82364d5 |
permissions | -rw-r--r-- |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1 |
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
2 |
/* |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
3 |
* Copyright (c) 2008 INESC Porto |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
4 |
* |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
5 |
* This program is free software; you can redistribute it and/or modify |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
6 |
* it under the terms of the GNU General Public License version 2 as |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
7 |
* published by the Free Software Foundation; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
8 |
* |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
9 |
* This program is distributed in the hope that it will be useful, |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
10 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
11 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
12 |
* GNU General Public License for more details. |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
13 |
* |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
14 |
* You should have received a copy of the GNU General Public License |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
15 |
* along with this program; if not, write to the Free Software |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
16 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
17 |
* |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
18 |
* Author: Gustavo Carneiro <gjc@inescporto.pt> |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
19 |
*/ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
20 |
|
9063
32755d0516f4
Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents:
8847
diff
changeset
|
21 |
#include <cstdlib> |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
22 |
#include "pyviz.h" |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
23 |
#include "ns3/simulator.h" |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
24 |
#include "ns3/config.h" |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
25 |
#include "ns3/node-list.h" |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
26 |
#include "ns3/wifi-net-device.h" |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
27 |
#include "ns3/ppp-header.h" |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
28 |
#include "ns3/wifi-mac-header.h" |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
29 |
#include "ns3/ethernet-header.h" |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
30 |
#include "ns3/log.h" |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
31 |
#include "ns3/abort.h" |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
32 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
33 |
#include "visual-simulator-impl.h" |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
34 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
35 |
#include <sstream> |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
36 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
37 |
NS_LOG_COMPONENT_DEFINE ("PyViz"); |
10968
2d29fee2b7b8
[Bug 1551] Redux: NS_LOG_COMPONENT_DEFINE inside or outside of ns3 namespace?
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents:
9063
diff
changeset
|
38 |
|
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
39 |
#define NUM_LAST_PACKETS 10 |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
40 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
41 |
static |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
42 |
std::vector<std::string> |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
43 |
PathSplit (std::string str) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
44 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
45 |
std::vector<std::string> results; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
46 |
size_t cutAt; |
7256
b04ba6772f8c
rerun check-style.py at default level to enforce space after function name
Tom Henderson <tomh@tomh.org>
parents:
7252
diff
changeset
|
47 |
while ((cutAt = str.find_first_of ('/')) != str.npos) |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
48 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
49 |
if(cutAt > 0) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
50 |
{ |
7256
b04ba6772f8c
rerun check-style.py at default level to enforce space after function name
Tom Henderson <tomh@tomh.org>
parents:
7252
diff
changeset
|
51 |
results.push_back (str.substr (0,cutAt)); |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
52 |
} |
7256
b04ba6772f8c
rerun check-style.py at default level to enforce space after function name
Tom Henderson <tomh@tomh.org>
parents:
7252
diff
changeset
|
53 |
str = str.substr (cutAt+1); |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
54 |
} |
7256
b04ba6772f8c
rerun check-style.py at default level to enforce space after function name
Tom Henderson <tomh@tomh.org>
parents:
7252
diff
changeset
|
55 |
if (str.length () > 0) |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
56 |
{ |
7256
b04ba6772f8c
rerun check-style.py at default level to enforce space after function name
Tom Henderson <tomh@tomh.org>
parents:
7252
diff
changeset
|
57 |
results.push_back (str); |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
58 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
59 |
return results; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
60 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
61 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
62 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
63 |
namespace ns3 { |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
64 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
65 |
static PyViz* g_visualizer = NULL; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
66 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
67 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
68 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
69 |
struct PyVizPacketTag : public Tag |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
70 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
71 |
static TypeId GetTypeId (void); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
72 |
virtual TypeId GetInstanceTypeId (void) const; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
73 |
virtual uint32_t GetSerializedSize (void) const; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
74 |
virtual void Serialize (TagBuffer buf) const; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
75 |
virtual void Deserialize (TagBuffer buf); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
76 |
virtual void Print (std::ostream &os) const; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
77 |
PyVizPacketTag (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
78 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
79 |
uint32_t m_packetId; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
80 |
}; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
81 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
82 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
83 |
TypeId |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
84 |
PyVizPacketTag::GetTypeId (void) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
85 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
86 |
static TypeId tid = TypeId ("ns3::PyVizPacketTag") |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
87 |
.SetParent<Tag> () |
11266
89c5b82364d5
SetGroupName for visualizer module
Tommaso Pecorella <tommaso.pecorella@unifi.it>
parents:
10968
diff
changeset
|
88 |
.SetGroupName ("Visualizer") |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
89 |
.AddConstructor<PyVizPacketTag> () |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
90 |
; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
91 |
return tid; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
92 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
93 |
TypeId |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
94 |
PyVizPacketTag::GetInstanceTypeId (void) const |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
95 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
96 |
return GetTypeId (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
97 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
98 |
uint32_t |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
99 |
PyVizPacketTag::GetSerializedSize (void) const |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
100 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
101 |
return 4; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
102 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
103 |
void |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
104 |
PyVizPacketTag::Serialize (TagBuffer buf) const |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
105 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
106 |
buf.WriteU32 (m_packetId); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
107 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
108 |
void |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
109 |
PyVizPacketTag::Deserialize (TagBuffer buf) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
110 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
111 |
m_packetId = buf.ReadU32 (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
112 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
113 |
void |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
114 |
PyVizPacketTag::Print (std::ostream &os) const |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
115 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
116 |
os << "PacketId=" << m_packetId; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
117 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
118 |
PyVizPacketTag::PyVizPacketTag () |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
119 |
: Tag () |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
120 |
{ |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
121 |
} |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
122 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
123 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
124 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
125 |
PyViz::PyViz () |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
126 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
127 |
NS_LOG_FUNCTION_NOARGS (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
128 |
NS_ASSERT (g_visualizer == NULL); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
129 |
g_visualizer = this; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
130 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
131 |
Config::Connect ("/NodeList/*/DeviceList/*/$ns3::WifiNetDevice/Mac/MacTx", |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
132 |
MakeCallback (&PyViz::TraceNetDevTxWifi, this)); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
133 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
134 |
Config::Connect ("/NodeList/*/DeviceList/*/$ns3::WifiNetDevice/Mac/MacRx", |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
135 |
MakeCallback (&PyViz::TraceNetDevRxWifi, this)); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
136 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
137 |
Config::Connect ("/NodeList/*/DeviceList/*/$ns3::CsmaNetDevice/MacTx", |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
138 |
MakeCallback (&PyViz::TraceNetDevTxCsma, this)); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
139 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
140 |
Config::Connect ("/NodeList/*/DeviceList/*/$ns3::CsmaNetDevice/MacRx", |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
141 |
MakeCallback (&PyViz::TraceNetDevRxCsma, this)); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
142 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
143 |
Config::Connect ("/NodeList/*/DeviceList/*/$ns3::CsmaNetDevice/MacPromiscRx", |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
144 |
MakeCallback (&PyViz::TraceNetDevPromiscRxCsma, this)); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
145 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
146 |
Config::Connect ("/NodeList/*/DeviceList/*/TxQueue/Drop", |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
147 |
MakeCallback (&PyViz::TraceDevQueueDrop, this)); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
148 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
149 |
Config::Connect ("/NodeList/*/$ns3::Ipv4L3Protocol/Drop", |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
150 |
MakeCallback (&PyViz::TraceIpv4Drop, this)); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
151 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
152 |
Config::Connect ("/NodeList/*/DeviceList/*/$ns3::PointToPointNetDevice/MacTx", |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
153 |
MakeCallback (&PyViz::TraceNetDevTxPointToPoint, this)); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
154 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
155 |
Config::Connect ("/NodeList/*/DeviceList/*/$ns3::PointToPointNetDevice/MacRx", |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
156 |
MakeCallback (&PyViz::TraceNetDevRxPointToPoint, this)); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
157 |
|
7727
a5343120babe
Bug 1179 - Add LTE trace hooks for supporting visualizer
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
7256
diff
changeset
|
158 |
// WiMax |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
159 |
Config::Connect ("/NodeList/*/DeviceList/*/$ns3::WimaxNetDevice/Tx", |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
160 |
MakeCallback (&PyViz::TraceNetDevTxWimax, this)); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
161 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
162 |
Config::Connect ("/NodeList/*/DeviceList/*/$ns3::WimaxNetDevice/Rx", |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
163 |
MakeCallback (&PyViz::TraceNetDevRxWimax, this)); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
164 |
|
7727
a5343120babe
Bug 1179 - Add LTE trace hooks for supporting visualizer
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
7256
diff
changeset
|
165 |
// LTE |
a5343120babe
Bug 1179 - Add LTE trace hooks for supporting visualizer
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
7256
diff
changeset
|
166 |
Config::Connect ("/NodeList/*/DeviceList/*/$ns3::LteNetDevice/Tx", |
a5343120babe
Bug 1179 - Add LTE trace hooks for supporting visualizer
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
7256
diff
changeset
|
167 |
MakeCallback (&PyViz::TraceNetDevTxLte, this)); |
a5343120babe
Bug 1179 - Add LTE trace hooks for supporting visualizer
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
7256
diff
changeset
|
168 |
|
a5343120babe
Bug 1179 - Add LTE trace hooks for supporting visualizer
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
7256
diff
changeset
|
169 |
Config::Connect ("/NodeList/*/DeviceList/*/$ns3::LteNetDevice/Rx", |
a5343120babe
Bug 1179 - Add LTE trace hooks for supporting visualizer
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
7256
diff
changeset
|
170 |
MakeCallback (&PyViz::TraceNetDevRxLte, this)); |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
171 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
172 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
173 |
void |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
174 |
PyViz::RegisterCsmaLikeDevice (std::string const &deviceTypeName) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
175 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
176 |
TypeId::LookupByName (deviceTypeName); // this will assert if the type name is invalid |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
177 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
178 |
std::ostringstream sstream; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
179 |
sstream << "/NodeList/*/DeviceList/*/$" << deviceTypeName << "/MacTx"; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
180 |
Config::Connect (sstream.str (), MakeCallback (&PyViz::TraceNetDevTxCsma, this)); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
181 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
182 |
sstream.str (""); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
183 |
sstream << "/NodeList/*/DeviceList/*/$" << deviceTypeName << "/Rx"; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
184 |
Config::Connect (sstream.str (), MakeCallback (&PyViz::TraceNetDevRxCsma, this)); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
185 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
186 |
sstream.str (""); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
187 |
sstream << "/NodeList/*/DeviceList/*/$" << deviceTypeName << "/PromiscRx"; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
188 |
Config::Connect (sstream.str (), MakeCallback (&PyViz::TraceNetDevPromiscRxCsma, this)); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
189 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
190 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
191 |
void |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
192 |
PyViz::RegisterWifiLikeDevice (std::string const &deviceTypeName) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
193 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
194 |
TypeId::LookupByName (deviceTypeName); // this will assert if the type name is invalid |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
195 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
196 |
std::ostringstream sstream; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
197 |
sstream << "/NodeList/*/DeviceList/*/$" << deviceTypeName << "/Tx"; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
198 |
Config::Connect (sstream.str (), MakeCallback (&PyViz::TraceNetDevTxWifi, this)); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
199 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
200 |
sstream.str (""); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
201 |
sstream <<"/NodeList/*/DeviceList/*/$" << deviceTypeName << "/Rx"; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
202 |
Config::Connect (sstream.str (), MakeCallback (&PyViz::TraceNetDevRxWifi, this)); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
203 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
204 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
205 |
void |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
206 |
PyViz::RegisterPointToPointLikeDevice (std::string const &deviceTypeName) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
207 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
208 |
TypeId::LookupByName (deviceTypeName); // this will assert if the type name is invalid |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
209 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
210 |
std::ostringstream sstream; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
211 |
sstream << "/NodeList/*/DeviceList/*/$" << deviceTypeName << "/TxQueue/Dequeue"; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
212 |
Config::Connect (sstream.str (), MakeCallback (&PyViz::TraceNetDevTxPointToPoint, this)); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
213 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
214 |
sstream.str (""); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
215 |
sstream << "/NodeList/*/DeviceList/*/$" << deviceTypeName << "/Rx"; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
216 |
Config::Connect (sstream.str (), MakeCallback (&PyViz::TraceNetDevRxPointToPoint, this)); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
217 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
218 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
219 |
void |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
220 |
PyViz::SetPacketCaptureOptions (uint32_t nodeId, PacketCaptureOptions options) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
221 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
222 |
NS_LOG_DEBUG (" SetPacketCaptureOptions " << nodeId |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
223 |
<< " PacketCaptureOptions (headers size = " << options.headers.size () |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
224 |
<< " mode = " << options.mode << " numLastPackets = " << options.numLastPackets |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
225 |
<< ")"); |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
226 |
m_packetCaptureOptions[nodeId] = options; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
227 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
228 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
229 |
void |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
230 |
PyViz::RegisterDropTracePath (std::string const &tracePath) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
231 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
232 |
Config::Connect (tracePath, MakeCallback (&PyViz::TraceDevQueueDrop, this)); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
233 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
234 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
235 |
PyViz::~PyViz () |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
236 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
237 |
NS_LOG_FUNCTION_NOARGS (); |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
238 |
|
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
239 |
NS_ASSERT (g_visualizer == this); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
240 |
g_visualizer = NULL; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
241 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
242 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
243 |
void PyViz::DoPause (std::string const &message) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
244 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
245 |
m_pauseMessages.push_back (message); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
246 |
m_stop = true; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
247 |
NS_LOG_LOGIC (Simulator::Now ().GetSeconds () << ": Have " |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
248 |
<< g_visualizer->m_pauseMessages.size () << " pause messages"); |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
249 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
250 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
251 |
void PyViz::Pause (std::string const &message) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
252 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
253 |
NS_ASSERT (g_visualizer); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
254 |
g_visualizer->DoPause (message); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
255 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
256 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
257 |
std::vector<std::string> |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
258 |
PyViz::GetPauseMessages () const |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
259 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
260 |
NS_LOG_LOGIC (Simulator::Now ().GetSeconds () << ": GetPauseMessages: have " |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
261 |
<< g_visualizer->m_pauseMessages.size () << " pause messages"); |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
262 |
return m_pauseMessages; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
263 |
} |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
264 |
|
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
265 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
266 |
void |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
267 |
PyViz::CallbackStopSimulation () |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
268 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
269 |
NS_LOG_FUNCTION_NOARGS (); |
8847
1b229b79d37d
Bug 1410 - Assert in DefaultSimulatorImpl breaks Visualizer module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
7727
diff
changeset
|
270 |
if (m_runUntil <= Simulator::Now ()) |
1b229b79d37d
Bug 1410 - Assert in DefaultSimulatorImpl breaks Visualizer module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
7727
diff
changeset
|
271 |
{ |
1b229b79d37d
Bug 1410 - Assert in DefaultSimulatorImpl breaks Visualizer module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
7727
diff
changeset
|
272 |
Simulator::Stop (Seconds (0)); // Stop right now |
1b229b79d37d
Bug 1410 - Assert in DefaultSimulatorImpl breaks Visualizer module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
7727
diff
changeset
|
273 |
m_stop = true; |
1b229b79d37d
Bug 1410 - Assert in DefaultSimulatorImpl breaks Visualizer module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
7727
diff
changeset
|
274 |
} |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
275 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
276 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
277 |
void |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
278 |
PyViz::SimulatorRunUntil (Time time) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
279 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
280 |
NS_LOG_LOGIC ("SimulatorRunUntil " << time << " (now is " << Simulator::Now () << ")"); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
281 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
282 |
m_pauseMessages.clear (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
283 |
m_transmissionSamples.clear (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
284 |
m_packetDrops.clear (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
285 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
286 |
Time expirationTime = Simulator::Now () - Seconds (10); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
287 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
288 |
// Clear very old transmission records |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
289 |
for (std::map<TxRecordKey, TxRecordValue>::iterator iter = m_txRecords.begin (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
290 |
iter != m_txRecords.end ();) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
291 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
292 |
if (iter->second.time < expirationTime) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
293 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
294 |
m_txRecords.erase (iter++); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
295 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
296 |
else |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
297 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
298 |
iter++; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
299 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
300 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
301 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
302 |
// Clear very old packets of interest |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
303 |
for (std::map<uint32_t, Time>::iterator iter = m_packetsOfInterest.begin (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
304 |
iter != m_packetsOfInterest.end ();) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
305 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
306 |
if (iter->second < expirationTime) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
307 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
308 |
m_packetsOfInterest.erase (iter++); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
309 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
310 |
else |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
311 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
312 |
iter++; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
313 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
314 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
315 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
316 |
if (Simulator::Now () >= time) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
317 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
318 |
return; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
319 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
320 |
// Schedule a dummy callback function for the target time, to make |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
321 |
// sure we stop at the right time. Otherwise, simulations with few |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
322 |
// events just appear to "jump" big chunks of time. |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
323 |
NS_LOG_LOGIC ("Schedule dummy callback to be called in " << (time - Simulator::Now ())); |
8847
1b229b79d37d
Bug 1410 - Assert in DefaultSimulatorImpl breaks Visualizer module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
7727
diff
changeset
|
324 |
m_runUntil = time; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
325 |
m_stop = false; |
8847
1b229b79d37d
Bug 1410 - Assert in DefaultSimulatorImpl breaks Visualizer module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
7727
diff
changeset
|
326 |
Simulator::ScheduleWithContext (0xffffffff, time - Simulator::Now (), &PyViz::CallbackStopSimulation, this); |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
327 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
328 |
Ptr<SimulatorImpl> impl = Simulator::GetImplementation (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
329 |
Ptr<VisualSimulatorImpl> visualImpl = DynamicCast<VisualSimulatorImpl> (impl); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
330 |
if (visualImpl) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
331 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
332 |
visualImpl->RunRealSimulator (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
333 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
334 |
else |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
335 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
336 |
impl->Run (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
337 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
338 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
339 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
340 |
bool PyViz::TransmissionSampleKey::operator < (PyViz::TransmissionSampleKey const &other) const |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
341 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
342 |
if (this->transmitter < other.transmitter) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
343 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
344 |
return true; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
345 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
346 |
if (this->transmitter != other.transmitter) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
347 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
348 |
return false; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
349 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
350 |
if (this->receiver < other.receiver) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
351 |
{ |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
352 |
return true; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
353 |
} |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
354 |
if (this->receiver != other.receiver) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
355 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
356 |
return false; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
357 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
358 |
if (this->channel < other.channel) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
359 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
360 |
return true; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
361 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
362 |
else |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
363 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
364 |
return false; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
365 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
366 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
367 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
368 |
bool PyViz::TransmissionSampleKey::operator == (PyViz::TransmissionSampleKey const &other) const |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
369 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
370 |
bool retval = (transmitter == other.transmitter) && |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
371 |
(receiver == other.receiver) && |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
372 |
(channel == other.channel); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
373 |
return retval; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
374 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
375 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
376 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
377 |
PyViz::NetDeviceStatistics & |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
378 |
PyViz::FindNetDeviceStatistics (int node, int interface) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
379 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
380 |
std::map<uint32_t, std::vector<NetDeviceStatistics> >::iterator nodeStatsIter = m_nodesStatistics.find (node); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
381 |
std::vector<NetDeviceStatistics> *stats; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
382 |
if (nodeStatsIter == m_nodesStatistics.end ()) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
383 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
384 |
stats = &m_nodesStatistics[node]; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
385 |
stats->resize (NodeList::GetNode (node)->GetNDevices ()); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
386 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
387 |
else |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
388 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
389 |
stats = &(nodeStatsIter->second); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
390 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
391 |
NetDeviceStatistics &devStats = (*stats)[interface]; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
392 |
return devStats; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
393 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
394 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
395 |
bool PyViz::GetPacketCaptureOptions (uint32_t nodeId, const PacketCaptureOptions **outOptions) const |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
396 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
397 |
std::map<uint32_t, PacketCaptureOptions>::const_iterator iter = m_packetCaptureOptions.find (nodeId); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
398 |
if (iter == m_packetCaptureOptions.end ()) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
399 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
400 |
return false; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
401 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
402 |
else |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
403 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
404 |
*outOptions = &iter->second; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
405 |
return true; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
406 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
407 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
408 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
409 |
bool PyViz::FilterPacket (Ptr<const Packet> packet, const PacketCaptureOptions &options) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
410 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
411 |
switch (options.mode) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
412 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
413 |
case PACKET_CAPTURE_DISABLED: |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
414 |
return false; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
415 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
416 |
case PACKET_CAPTURE_FILTER_HEADERS_OR: |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
417 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
418 |
PacketMetadata::ItemIterator metadataIterator = packet->BeginItem (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
419 |
while (metadataIterator.HasNext ()) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
420 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
421 |
PacketMetadata::Item item = metadataIterator.Next (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
422 |
if (options.headers.find (item.tid) != options.headers.end ()) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
423 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
424 |
return true; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
425 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
426 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
427 |
return false; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
428 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
429 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
430 |
case PACKET_CAPTURE_FILTER_HEADERS_AND: |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
431 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
432 |
std::set<TypeId> missingHeaders (options.headers); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
433 |
PacketMetadata::ItemIterator metadataIterator = packet->BeginItem (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
434 |
while (metadataIterator.HasNext ()) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
435 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
436 |
PacketMetadata::Item item = metadataIterator.Next (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
437 |
std::set<TypeId>::iterator missingIter = missingHeaders.find (item.tid); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
438 |
if (missingIter != missingHeaders.end ()) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
439 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
440 |
missingHeaders.erase (missingIter); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
441 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
442 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
443 |
if (missingHeaders.size () == 0) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
444 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
445 |
return true; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
446 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
447 |
else |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
448 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
449 |
return false; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
450 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
451 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
452 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
453 |
default: |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
454 |
NS_FATAL_ERROR ("should not be reached"); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
455 |
return false; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
456 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
457 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
458 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
459 |
void |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
460 |
PyViz::TraceDevQueueDrop (std::string context, Ptr<const Packet> packet) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
461 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
462 |
NS_LOG_FUNCTION (context << packet->GetUid ()); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
463 |
std::vector<std::string> splitPath = PathSplit (context); |
9063
32755d0516f4
Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents:
8847
diff
changeset
|
464 |
int nodeIndex = std::atoi (splitPath[1].c_str ()); |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
465 |
Ptr<Node> node = NodeList::GetNode (nodeIndex); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
466 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
467 |
if (m_nodesOfInterest.find (nodeIndex) == m_nodesOfInterest.end ()) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
468 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
469 |
// if the transmitting node is not "of interest", we still |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
470 |
// record the transmission if it is a packet of interest. |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
471 |
if (m_packetsOfInterest.find (packet->GetUid ()) == m_packetsOfInterest.end ()) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
472 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
473 |
NS_LOG_DEBUG ("Packet " << packet->GetUid () << " is not of interest"); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
474 |
return; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
475 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
476 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
477 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
478 |
// ---- "last packets" |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
479 |
const PacketCaptureOptions *captureOptions; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
480 |
if (GetPacketCaptureOptions (nodeIndex, &captureOptions) && FilterPacket (packet, *captureOptions)) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
481 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
482 |
LastPacketsSample &last = m_lastPackets[nodeIndex]; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
483 |
PacketSample lastPacket; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
484 |
lastPacket.time = Simulator::Now (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
485 |
lastPacket.packet = packet->Copy (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
486 |
lastPacket.device = NULL; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
487 |
last.lastDroppedPackets.push_back (lastPacket); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
488 |
while (last.lastDroppedPackets.size () > captureOptions->numLastPackets) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
489 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
490 |
last.lastDroppedPackets.erase (last.lastDroppedPackets.begin ()); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
491 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
492 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
493 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
494 |
std::map<Ptr<Node>, uint32_t>::iterator iter = m_packetDrops.find (node); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
495 |
if (iter == m_packetDrops.end ()) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
496 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
497 |
m_packetDrops[node] = packet->GetSize (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
498 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
499 |
else |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
500 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
501 |
iter->second += packet->GetSize (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
502 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
503 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
504 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
505 |
void |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
506 |
PyViz::TraceIpv4Drop (std::string context, ns3::Ipv4Header const &hdr, Ptr<const Packet> packet, |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
507 |
ns3::Ipv4L3Protocol::DropReason reason, Ptr<Ipv4> dummy_ipv4, uint32_t interface) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
508 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
509 |
Ptr<Packet> packetCopy = packet->Copy (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
510 |
packetCopy->AddHeader (hdr); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
511 |
TraceDevQueueDrop (context, packetCopy); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
512 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
513 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
514 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
515 |
// --------- TX device tracing ------------------- |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
516 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
517 |
void |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
518 |
PyViz::TraceNetDevTxCommon (std::string const &context, Ptr<const Packet> packet, |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
519 |
Mac48Address const &destinationAddress) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
520 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
521 |
NS_LOG_FUNCTION (context << packet->GetUid () << *packet); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
522 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
523 |
std::vector<std::string> splitPath = PathSplit (context); |
9063
32755d0516f4
Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents:
8847
diff
changeset
|
524 |
int nodeIndex = std::atoi (splitPath[1].c_str ()); |
32755d0516f4
Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents:
8847
diff
changeset
|
525 |
int devIndex = std::atoi (splitPath[3].c_str ()); |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
526 |
Ptr<Node> node = NodeList::GetNode (nodeIndex); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
527 |
Ptr<NetDevice> device = node->GetDevice (devIndex); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
528 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
529 |
// ---- statistics |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
530 |
NetDeviceStatistics &stats = FindNetDeviceStatistics (nodeIndex, devIndex); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
531 |
++stats.transmittedPackets; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
532 |
stats.transmittedBytes += packet->GetSize (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
533 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
534 |
// ---- "last packets" |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
535 |
const PacketCaptureOptions *captureOptions; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
536 |
if (GetPacketCaptureOptions (nodeIndex, &captureOptions) && FilterPacket (packet, *captureOptions)) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
537 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
538 |
LastPacketsSample &last = m_lastPackets[nodeIndex]; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
539 |
TxPacketSample lastPacket; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
540 |
lastPacket.time = Simulator::Now (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
541 |
lastPacket.packet = packet->Copy (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
542 |
lastPacket.device = device; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
543 |
lastPacket.to = destinationAddress; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
544 |
last.lastTransmittedPackets.push_back (lastPacket); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
545 |
while (last.lastTransmittedPackets.size () > captureOptions->numLastPackets) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
546 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
547 |
last.lastTransmittedPackets.erase (last.lastTransmittedPackets.begin ()); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
548 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
549 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
550 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
551 |
// ---- transmissions records |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
552 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
553 |
if (m_nodesOfInterest.find (nodeIndex) == m_nodesOfInterest.end ()) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
554 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
555 |
// if the transmitting node is not "of interest", we still |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
556 |
// record the transmission if it is a packet of interest. |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
557 |
if (m_packetsOfInterest.find (packet->GetUid ()) == m_packetsOfInterest.end ()) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
558 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
559 |
NS_LOG_DEBUG ("Packet " << packet->GetUid () << " is not of interest"); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
560 |
return; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
561 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
562 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
563 |
else |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
564 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
565 |
// We will follow this packet throughout the network. |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
566 |
m_packetsOfInterest[packet->GetUid ()] = Simulator::Now (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
567 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
568 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
569 |
TxRecordValue record = { Simulator::Now (), node, false }; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
570 |
if (destinationAddress == device->GetBroadcast ()) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
571 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
572 |
record.isBroadcast = true; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
573 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
574 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
575 |
m_txRecords[TxRecordKey (device->GetChannel (), packet->GetUid ())] = record; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
576 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
577 |
PyVizPacketTag tag; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
578 |
//packet->RemovePacketTag (tag); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
579 |
tag.m_packetId = packet->GetUid (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
580 |
packet->AddByteTag (tag); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
581 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
582 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
583 |
void |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
584 |
PyViz::TraceNetDevTxWifi (std::string context, Ptr<const Packet> packet) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
585 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
586 |
NS_LOG_FUNCTION (context << packet->GetUid () << *packet); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
587 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
588 |
/* |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
589 |
* To DS From DS Address 1 Address 2 Address 3 Address 4 |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
590 |
*---------------------------------------------------------------------- |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
591 |
* 0 0 Destination Source BSSID N/A |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
592 |
* 0 1 Destination BSSID Source N/A |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
593 |
* 1 0 BSSID Source Destination N/A |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
594 |
* 1 1 Receiver Transmitter Destination Source |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
595 |
*/ |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
596 |
WifiMacHeader hdr; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
597 |
NS_ABORT_IF (packet->PeekHeader (hdr) == 0); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
598 |
Mac48Address destinationAddress; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
599 |
if (hdr.IsToDs () && !hdr.IsFromDs ()) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
600 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
601 |
destinationAddress = hdr.GetAddr3 (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
602 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
603 |
else if (!hdr.IsToDs () && hdr.IsFromDs ()) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
604 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
605 |
destinationAddress = hdr.GetAddr1 (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
606 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
607 |
else if (!hdr.IsToDs () && !hdr.IsFromDs ()) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
608 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
609 |
destinationAddress = hdr.GetAddr1 (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
610 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
611 |
else |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
612 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
613 |
destinationAddress = hdr.GetAddr3 (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
614 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
615 |
TraceNetDevTxCommon (context, packet, destinationAddress); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
616 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
617 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
618 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
619 |
void |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
620 |
PyViz::TraceNetDevTxCsma (std::string context, Ptr<const Packet> packet) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
621 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
622 |
EthernetHeader ethernetHeader; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
623 |
NS_ABORT_IF (packet->PeekHeader (ethernetHeader) == 0); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
624 |
TraceNetDevTxCommon (context, packet, ethernetHeader.GetDestination ()); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
625 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
626 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
627 |
void |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
628 |
PyViz::TraceNetDevTxPointToPoint (std::string context, Ptr<const Packet> packet) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
629 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
630 |
TraceNetDevTxCommon (context, packet, Mac48Address ()); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
631 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
632 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
633 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
634 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
635 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
636 |
// --------- RX device tracing ------------------- |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
637 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
638 |
void |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
639 |
PyViz::TraceNetDevRxCommon (std::string const &context, Ptr<const Packet> packet, Mac48Address const &from) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
640 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
641 |
uint32_t uid; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
642 |
PyVizPacketTag tag; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
643 |
if (packet->FindFirstMatchingByteTag (tag)) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
644 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
645 |
uid = tag.m_packetId; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
646 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
647 |
else |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
648 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
649 |
//NS_ASSERT (0); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
650 |
NS_LOG_WARN ("Packet has no byte tag; wimax link?"); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
651 |
uid = packet->GetUid (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
652 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
653 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
654 |
NS_LOG_FUNCTION (context << uid); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
655 |
std::vector<std::string> splitPath = PathSplit (context); |
9063
32755d0516f4
Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents:
8847
diff
changeset
|
656 |
int nodeIndex = std::atoi (splitPath[1].c_str ()); |
32755d0516f4
Bug 1237 - code cleanups related to includes
Vedran Miletić <rivanvx@gmail.com>
parents:
8847
diff
changeset
|
657 |
int devIndex = std::atoi (splitPath[3].c_str ()); |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
658 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
659 |
// ---- statistics |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
660 |
NetDeviceStatistics &stats = FindNetDeviceStatistics (nodeIndex, devIndex); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
661 |
++stats.receivedPackets; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
662 |
stats.receivedBytes += packet->GetSize (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
663 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
664 |
Ptr<Node> node = NodeList::GetNode (nodeIndex); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
665 |
Ptr<NetDevice> device = node->GetDevice (devIndex); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
666 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
667 |
// ---- "last packets" |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
668 |
const PacketCaptureOptions *captureOptions; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
669 |
if (GetPacketCaptureOptions (nodeIndex, &captureOptions) && FilterPacket (packet, *captureOptions)) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
670 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
671 |
LastPacketsSample &last = m_lastPackets[nodeIndex]; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
672 |
RxPacketSample lastPacket; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
673 |
lastPacket.time = Simulator::Now (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
674 |
lastPacket.packet = packet->Copy (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
675 |
lastPacket.device = device; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
676 |
lastPacket.from = from; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
677 |
last.lastReceivedPackets.push_back (lastPacket); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
678 |
while (last.lastReceivedPackets.size () > captureOptions->numLastPackets) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
679 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
680 |
last.lastReceivedPackets.erase (last.lastReceivedPackets.begin ()); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
681 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
682 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
683 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
684 |
// ---- transmissions |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
685 |
if (m_packetsOfInterest.find (uid) == m_packetsOfInterest.end ()) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
686 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
687 |
NS_LOG_DEBUG ("RX Packet " << uid << " is not of interest"); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
688 |
return; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
689 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
690 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
691 |
Ptr<Channel> channel = device->GetChannel (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
692 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
693 |
std::map<TxRecordKey, TxRecordValue>::iterator recordIter = |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
694 |
m_txRecords.find (TxRecordKey (channel, uid)); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
695 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
696 |
if (recordIter == m_txRecords.end ()) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
697 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
698 |
NS_LOG_DEBUG ("RX Packet " << uid << " was not transmitted?!"); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
699 |
return; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
700 |
} |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
701 |
|
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
702 |
TxRecordValue &record = recordIter->second; |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
703 |
|
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
704 |
if (record.srcNode == node) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
705 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
706 |
NS_LOG_WARN ("Node " << node->GetId () << " receiving back the same packet (UID=" << uid |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
707 |
<< ") it had previously transmitted, on the same channel!"); |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
708 |
return; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
709 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
710 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
711 |
TransmissionSampleKey key = { record.srcNode, node, channel }; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
712 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
713 |
#ifdef NS3_LOG_ENABLE |
7256
b04ba6772f8c
rerun check-style.py at default level to enforce space after function name
Tom Henderson <tomh@tomh.org>
parents:
7252
diff
changeset
|
714 |
NS_LOG_DEBUG ("m_transmissionSamples begin:"); |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
715 |
if (g_log.IsEnabled (ns3::LOG_DEBUG)) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
716 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
717 |
for (std::map<TransmissionSampleKey,TransmissionSampleValue>::const_iterator iter |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
718 |
= m_transmissionSamples.begin (); iter != m_transmissionSamples.end (); iter++) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
719 |
{ |
7256
b04ba6772f8c
rerun check-style.py at default level to enforce space after function name
Tom Henderson <tomh@tomh.org>
parents:
7252
diff
changeset
|
720 |
NS_LOG_DEBUG (iter->first.transmitter<<"/"<<iter->first.transmitter->GetId () << ", " |
b04ba6772f8c
rerun check-style.py at default level to enforce space after function name
Tom Henderson <tomh@tomh.org>
parents:
7252
diff
changeset
|
721 |
<< iter->first.receiver<<"/"<<iter->first.receiver->GetId () |
b04ba6772f8c
rerun check-style.py at default level to enforce space after function name
Tom Henderson <tomh@tomh.org>
parents:
7252
diff
changeset
|
722 |
<< ", " << iter->first.channel << " => " << iter->second.bytes << " (@ " << &iter->second << ")"); |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
723 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
724 |
} |
7256
b04ba6772f8c
rerun check-style.py at default level to enforce space after function name
Tom Henderson <tomh@tomh.org>
parents:
7252
diff
changeset
|
725 |
NS_LOG_DEBUG ("m_transmissionSamples end."); |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
726 |
#endif |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
727 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
728 |
std::map<TransmissionSampleKey,TransmissionSampleValue>::iterator |
7252
c8200621e252
rerun check-style.py with uncrustify-0.58
Tom Henderson <tomh@tomh.org>
parents:
7194
diff
changeset
|
729 |
iter = m_transmissionSamples.find (key); |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
730 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
731 |
if (iter == m_transmissionSamples.end ()) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
732 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
733 |
TransmissionSampleValue sample = { packet->GetSize () }; |
7256
b04ba6772f8c
rerun check-style.py at default level to enforce space after function name
Tom Henderson <tomh@tomh.org>
parents:
7252
diff
changeset
|
734 |
NS_LOG_DEBUG ("RX: from " << key.transmitter<<"/"<<key.transmitter->GetId () << " to " |
b04ba6772f8c
rerun check-style.py at default level to enforce space after function name
Tom Henderson <tomh@tomh.org>
parents:
7252
diff
changeset
|
735 |
<< key.receiver<<"/"<<key.receiver->GetId () |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
736 |
<< " channel " << channel << ": " << packet->GetSize () |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
737 |
<< " bytes more. => new sample with " << packet->GetSize () << " bytes."); |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
738 |
m_transmissionSamples[key] = sample; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
739 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
740 |
else |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
741 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
742 |
TransmissionSampleValue &sample = iter->second; |
7256
b04ba6772f8c
rerun check-style.py at default level to enforce space after function name
Tom Henderson <tomh@tomh.org>
parents:
7252
diff
changeset
|
743 |
NS_LOG_DEBUG ("RX: from " << key.transmitter<<"/"<<key.transmitter->GetId () << " to " |
b04ba6772f8c
rerun check-style.py at default level to enforce space after function name
Tom Henderson <tomh@tomh.org>
parents:
7252
diff
changeset
|
744 |
<< key.receiver<<"/"<<key.receiver->GetId () |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
745 |
<< " channel " << channel << ": " << packet->GetSize () |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
746 |
<< " bytes more. => sample " << &sample << " with bytes " << sample.bytes); |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
747 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
748 |
sample.bytes += packet->GetSize (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
749 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
750 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
751 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
752 |
void |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
753 |
PyViz::TraceNetDevRxWifi (std::string context, Ptr<const Packet> packet) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
754 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
755 |
NS_LOG_FUNCTION (context << packet->GetUid ()); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
756 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
757 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
758 |
/* |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
759 |
* To DS From DS Address 1 Address 2 Address 3 Address 4 |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
760 |
*---------------------------------------------------------------------- |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
761 |
* 0 0 Destination Source BSSID N/A |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
762 |
* 0 1 Destination BSSID Source N/A |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
763 |
* 1 0 BSSID Source Destination N/A |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
764 |
* 1 1 Receiver Transmitter Destination Source |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
765 |
*/ |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
766 |
WifiMacHeader hdr; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
767 |
NS_ABORT_IF (packet->PeekHeader (hdr) == 0); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
768 |
Mac48Address sourceAddress; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
769 |
if (hdr.IsToDs () && !hdr.IsFromDs ()) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
770 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
771 |
sourceAddress = hdr.GetAddr2 (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
772 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
773 |
else if (!hdr.IsToDs () && hdr.IsFromDs ()) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
774 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
775 |
sourceAddress = hdr.GetAddr3 (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
776 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
777 |
else if (!hdr.IsToDs () && !hdr.IsFromDs ()) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
778 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
779 |
sourceAddress = hdr.GetAddr2 (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
780 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
781 |
else |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
782 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
783 |
sourceAddress = hdr.GetAddr4 (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
784 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
785 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
786 |
TraceNetDevRxCommon (context, packet, sourceAddress); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
787 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
788 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
789 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
790 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
791 |
void |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
792 |
PyViz::TraceNetDevRxCsma (std::string context, Ptr<const Packet> packet) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
793 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
794 |
EthernetHeader ethernetHeader; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
795 |
NS_ABORT_IF (packet->PeekHeader (ethernetHeader) == 0); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
796 |
TraceNetDevRxCommon (context, packet, ethernetHeader.GetSource ()); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
797 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
798 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
799 |
void |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
800 |
PyViz::TraceNetDevRxPointToPoint (std::string context, Ptr<const Packet> packet) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
801 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
802 |
TraceNetDevRxCommon (context, packet, Mac48Address ()); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
803 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
804 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
805 |
void |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
806 |
PyViz::TraceNetDevPromiscRxCsma (std::string context, Ptr<const Packet> packet) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
807 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
808 |
EthernetHeader ethernetHeader; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
809 |
NS_ABORT_IF (packet->PeekHeader (ethernetHeader) == 0); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
810 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
811 |
NetDevice::PacketType packetType = NetDevice::PACKET_OTHERHOST; // FIXME |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
812 |
|
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
813 |
// Other packet types are already being received by |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
814 |
// TraceNetDevRxCsma; we don't want to receive them twice. |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
815 |
if (packetType == NetDevice::PACKET_OTHERHOST) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
816 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
817 |
TraceNetDevRxCommon (context, packet, ethernetHeader.GetDestination ()); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
818 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
819 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
820 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
821 |
void |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
822 |
PyViz::TraceNetDevTxWimax (std::string context, Ptr<const Packet> packet, Mac48Address const &destination) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
823 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
824 |
NS_LOG_FUNCTION (context); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
825 |
TraceNetDevTxCommon (context, packet, destination); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
826 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
827 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
828 |
void |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
829 |
PyViz::TraceNetDevRxWimax (std::string context, Ptr<const Packet> packet, Mac48Address const &source) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
830 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
831 |
NS_LOG_FUNCTION (context); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
832 |
TraceNetDevRxCommon (context, packet, source); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
833 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
834 |
|
7727
a5343120babe
Bug 1179 - Add LTE trace hooks for supporting visualizer
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
7256
diff
changeset
|
835 |
void |
a5343120babe
Bug 1179 - Add LTE trace hooks for supporting visualizer
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
7256
diff
changeset
|
836 |
PyViz::TraceNetDevTxLte (std::string context, Ptr<const Packet> packet, Mac48Address const &destination) |
a5343120babe
Bug 1179 - Add LTE trace hooks for supporting visualizer
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
7256
diff
changeset
|
837 |
{ |
a5343120babe
Bug 1179 - Add LTE trace hooks for supporting visualizer
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
7256
diff
changeset
|
838 |
NS_LOG_FUNCTION (context); |
a5343120babe
Bug 1179 - Add LTE trace hooks for supporting visualizer
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
7256
diff
changeset
|
839 |
TraceNetDevTxCommon (context, packet, destination); |
a5343120babe
Bug 1179 - Add LTE trace hooks for supporting visualizer
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
7256
diff
changeset
|
840 |
} |
a5343120babe
Bug 1179 - Add LTE trace hooks for supporting visualizer
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
7256
diff
changeset
|
841 |
|
a5343120babe
Bug 1179 - Add LTE trace hooks for supporting visualizer
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
7256
diff
changeset
|
842 |
void |
a5343120babe
Bug 1179 - Add LTE trace hooks for supporting visualizer
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
7256
diff
changeset
|
843 |
PyViz::TraceNetDevRxLte (std::string context, Ptr<const Packet> packet, Mac48Address const &source) |
a5343120babe
Bug 1179 - Add LTE trace hooks for supporting visualizer
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
7256
diff
changeset
|
844 |
{ |
a5343120babe
Bug 1179 - Add LTE trace hooks for supporting visualizer
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
7256
diff
changeset
|
845 |
NS_LOG_FUNCTION (context); |
a5343120babe
Bug 1179 - Add LTE trace hooks for supporting visualizer
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
7256
diff
changeset
|
846 |
TraceNetDevRxCommon (context, packet, source); |
a5343120babe
Bug 1179 - Add LTE trace hooks for supporting visualizer
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
7256
diff
changeset
|
847 |
} |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
848 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
849 |
// --------------------- |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
850 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
851 |
PyViz::TransmissionSampleList |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
852 |
PyViz::GetTransmissionSamples () const |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
853 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
854 |
NS_LOG_DEBUG ("GetTransmissionSamples BEGIN"); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
855 |
TransmissionSampleList list; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
856 |
for (std::map<TransmissionSampleKey, TransmissionSampleValue>::const_iterator |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
857 |
iter = m_transmissionSamples.begin (); |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
858 |
iter != m_transmissionSamples.end (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
859 |
iter++) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
860 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
861 |
TransmissionSample sample; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
862 |
sample.transmitter = iter->first.transmitter; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
863 |
sample.receiver = iter->first.receiver; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
864 |
sample.channel = iter->first.channel; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
865 |
sample.bytes = iter->second.bytes; |
7256
b04ba6772f8c
rerun check-style.py at default level to enforce space after function name
Tom Henderson <tomh@tomh.org>
parents:
7252
diff
changeset
|
866 |
NS_LOG_DEBUG ("from " << sample.transmitter->GetId () << " to " << sample.receiver->GetId () |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
867 |
<< ": " << sample.bytes << " bytes."); |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
868 |
list.push_back (sample); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
869 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
870 |
NS_LOG_DEBUG ("GetTransmissionSamples END"); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
871 |
return list; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
872 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
873 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
874 |
PyViz::PacketDropSampleList |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
875 |
PyViz::GetPacketDropSamples () const |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
876 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
877 |
NS_LOG_DEBUG ("GetPacketDropSamples BEGIN"); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
878 |
PacketDropSampleList list; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
879 |
for (std::map<Ptr<Node>, uint32_t>::const_iterator |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
880 |
iter = m_packetDrops.begin (); |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
881 |
iter != m_packetDrops.end (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
882 |
iter++) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
883 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
884 |
PacketDropSample sample; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
885 |
sample.transmitter = iter->first; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
886 |
sample.bytes = iter->second; |
7256
b04ba6772f8c
rerun check-style.py at default level to enforce space after function name
Tom Henderson <tomh@tomh.org>
parents:
7252
diff
changeset
|
887 |
NS_LOG_DEBUG ("in " << sample.transmitter->GetId () |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
888 |
<< ": " << sample.bytes << " bytes dropped."); |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
889 |
list.push_back (sample); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
890 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
891 |
NS_LOG_DEBUG ("GetPacketDropSamples END"); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
892 |
return list; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
893 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
894 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
895 |
void |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
896 |
PyViz::SetNodesOfInterest (std::set<uint32_t> nodes) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
897 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
898 |
m_nodesOfInterest = nodes; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
899 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
900 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
901 |
std::vector<PyViz::NodeStatistics> |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
902 |
PyViz::GetNodesStatistics () const |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
903 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
904 |
std::vector<PyViz::NodeStatistics> retval; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
905 |
for (std::map<uint32_t, std::vector<NetDeviceStatistics> >::const_iterator iter = m_nodesStatistics.begin (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
906 |
iter != m_nodesStatistics.end (); iter++) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
907 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
908 |
NodeStatistics stats = { iter->first, iter->second }; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
909 |
retval.push_back (stats); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
910 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
911 |
return retval; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
912 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
913 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
914 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
915 |
PyViz::LastPacketsSample |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
916 |
PyViz::GetLastPackets (uint32_t nodeId) const |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
917 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
918 |
NS_LOG_DEBUG ("GetLastPackets: " << nodeId); |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
919 |
|
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
920 |
std::map<uint32_t, LastPacketsSample>::const_iterator |
7256
b04ba6772f8c
rerun check-style.py at default level to enforce space after function name
Tom Henderson <tomh@tomh.org>
parents:
7252
diff
changeset
|
921 |
iter = m_lastPackets.find (nodeId); |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
922 |
if (iter != m_lastPackets.end ()) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
923 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
924 |
return iter->second; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
925 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
926 |
else |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
927 |
{ |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
928 |
return LastPacketsSample (); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
929 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
930 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
931 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
932 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
933 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
934 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
935 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
936 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
937 |
namespace |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
938 |
{ |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
939 |
// Adapted from http://en.wikipedia.org/w/index.php?title=Line_clipping&oldid=248609574 |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
940 |
class FastClipping |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
941 |
{ |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
942 |
public: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
943 |
struct Vector2 |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
944 |
{ |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
945 |
double x; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
946 |
double y; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
947 |
}; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
948 |
|
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
949 |
Vector2 m_clipMin, m_clipMax; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
950 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
951 |
struct Line |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
952 |
{ |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
953 |
Vector2 start, end; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
954 |
double dx, dy; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
955 |
}; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
956 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
957 |
private: |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
958 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
959 |
void ClipStartTop (Line &line) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
960 |
{ |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
961 |
line.start.x += line.dx * (m_clipMin.y - line.start.y) / line.dy; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
962 |
line.start.y = m_clipMin.y; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
963 |
} |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
964 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
965 |
void ClipStartBottom (Line &line) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
966 |
{ |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
967 |
line.start.x += line.dx * (m_clipMax.y - line.start.y) / line.dy; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
968 |
line.start.y = m_clipMax.y; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
969 |
} |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
970 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
971 |
void ClipStartRight (Line &line) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
972 |
{ |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
973 |
line.start.y += line.dy * (m_clipMax.x - line.start.x) / line.dx; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
974 |
line.start.x = m_clipMax.x; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
975 |
} |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
976 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
977 |
void ClipStartLeft (Line &line) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
978 |
{ |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
979 |
line.start.y += line.dy * (m_clipMin.x - line.start.x) / line.dx; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
980 |
line.start.x = m_clipMin.x; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
981 |
} |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
982 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
983 |
void ClipEndTop (Line &line) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
984 |
{ |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
985 |
line.end.x += line.dx * (m_clipMin.y - line.end.y) / line.dy; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
986 |
line.end.y = m_clipMin.y; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
987 |
} |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
988 |
|
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
989 |
void ClipEndBottom (Line &line) { |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
990 |
line.end.x += line.dx * (m_clipMax.y - line.end.y) / line.dy; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
991 |
line.end.y = m_clipMax.y; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
992 |
} |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
993 |
|
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
994 |
void ClipEndRight (Line &line) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
995 |
{ |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
996 |
line.end.y += line.dy * (m_clipMax.x - line.end.x) / line.dx; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
997 |
line.end.x = m_clipMax.x; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
998 |
} |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
999 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1000 |
void ClipEndLeft (Line &line) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1001 |
{ |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1002 |
line.end.y += line.dy * (m_clipMin.x - line.end.x) / line.dx; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1003 |
line.end.x = m_clipMin.x; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1004 |
} |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1005 |
|
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1006 |
public: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1007 |
FastClipping (Vector2 clipMin, Vector2 clipMax) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1008 |
: m_clipMin (clipMin), m_clipMax (clipMax) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1009 |
{ |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1010 |
} |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1011 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1012 |
|
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1013 |
bool ClipLine (Line &line) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1014 |
{ |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1015 |
uint8_t lineCode = 0; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1016 |
|
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1017 |
if (line.end.y < m_clipMin.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1018 |
lineCode |= 8; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1019 |
else if (line.end.y > m_clipMax.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1020 |
lineCode |= 4; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1021 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1022 |
if (line.end.x > m_clipMax.x) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1023 |
lineCode |= 2; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1024 |
else if (line.end.x < m_clipMin.x) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1025 |
lineCode |= 1; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1026 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1027 |
if (line.start.y < m_clipMin.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1028 |
lineCode |= 128; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1029 |
else if (line.start.y > m_clipMax.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1030 |
lineCode |= 64; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1031 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1032 |
if (line.start.x > m_clipMax.x) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1033 |
lineCode |= 32; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1034 |
else if (line.start.x < m_clipMin.x) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1035 |
lineCode |= 16; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1036 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1037 |
// 9 - 8 - A |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1038 |
// | | | |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1039 |
// 1 - 0 - 2 |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1040 |
// | | | |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1041 |
// 5 - 4 - 6 |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1042 |
switch (lineCode) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1043 |
{ |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1044 |
// center |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1045 |
case 0x00: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1046 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1047 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1048 |
case 0x01: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1049 |
ClipEndLeft (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1050 |
return true; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1051 |
|
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1052 |
case 0x02: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1053 |
ClipEndRight (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1054 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1055 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1056 |
case 0x04: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1057 |
ClipEndBottom (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1058 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1059 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1060 |
case 0x05: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1061 |
ClipEndLeft (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1062 |
if (line.end.y > m_clipMax.y) |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1063 |
ClipEndBottom (line); |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1064 |
return true; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1065 |
|
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1066 |
case 0x06: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1067 |
ClipEndRight (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1068 |
if (line.end.y > m_clipMax.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1069 |
ClipEndBottom (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1070 |
return true; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1071 |
|
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1072 |
case 0x08: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1073 |
ClipEndTop (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1074 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1075 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1076 |
case 0x09: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1077 |
ClipEndLeft (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1078 |
if (line.end.y < m_clipMin.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1079 |
ClipEndTop (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1080 |
return true; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1081 |
|
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1082 |
case 0x0A: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1083 |
ClipEndRight (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1084 |
if (line.end.y < m_clipMin.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1085 |
ClipEndTop (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1086 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1087 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1088 |
// left |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1089 |
case 0x10: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1090 |
ClipStartLeft (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1091 |
return true; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1092 |
|
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1093 |
case 0x12: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1094 |
ClipStartLeft (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1095 |
ClipEndRight (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1096 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1097 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1098 |
case 0x14: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1099 |
ClipStartLeft (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1100 |
if (line.start.y > m_clipMax.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1101 |
return false; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1102 |
ClipEndBottom (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1103 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1104 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1105 |
case 0x16: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1106 |
ClipStartLeft (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1107 |
if (line.start.y > m_clipMax.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1108 |
return false; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1109 |
ClipEndBottom (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1110 |
if (line.end.x > m_clipMax.x) |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1111 |
ClipEndRight (line); |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1112 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1113 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1114 |
case 0x18: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1115 |
ClipStartLeft (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1116 |
if (line.start.y < m_clipMin.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1117 |
return false; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1118 |
ClipEndTop (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1119 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1120 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1121 |
case 0x1A: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1122 |
ClipStartLeft (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1123 |
if (line.start.y < m_clipMin.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1124 |
return false; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1125 |
ClipEndTop (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1126 |
if (line.end.x > m_clipMax.x) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1127 |
ClipEndRight (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1128 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1129 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1130 |
// right |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1131 |
case 0x20: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1132 |
ClipStartRight (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1133 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1134 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1135 |
case 0x21: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1136 |
ClipStartRight (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1137 |
ClipEndLeft (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1138 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1139 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1140 |
case 0x24: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1141 |
ClipStartRight (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1142 |
if (line.start.y > m_clipMax.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1143 |
return false; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1144 |
ClipEndBottom (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1145 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1146 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1147 |
case 0x25: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1148 |
ClipStartRight (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1149 |
if (line.start.y > m_clipMax.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1150 |
return false; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1151 |
ClipEndBottom (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1152 |
if (line.end.x < m_clipMin.x) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1153 |
ClipEndLeft (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1154 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1155 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1156 |
case 0x28: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1157 |
ClipStartRight (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1158 |
if (line.start.y < m_clipMin.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1159 |
return false; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1160 |
ClipEndTop (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1161 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1162 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1163 |
case 0x29: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1164 |
ClipStartRight (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1165 |
if (line.start.y < m_clipMin.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1166 |
return false; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1167 |
ClipEndTop (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1168 |
if (line.end.x < m_clipMin.x) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1169 |
ClipEndLeft (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1170 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1171 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1172 |
// bottom |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1173 |
case 0x40: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1174 |
ClipStartBottom (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1175 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1176 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1177 |
case 0x41: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1178 |
ClipStartBottom (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1179 |
if (line.start.x < m_clipMin.x) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1180 |
return false; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1181 |
ClipEndLeft (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1182 |
if (line.end.y > m_clipMax.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1183 |
ClipEndBottom (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1184 |
return true; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1185 |
|
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1186 |
case 0x42: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1187 |
ClipStartBottom (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1188 |
if (line.start.x > m_clipMax.x) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1189 |
return false; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1190 |
ClipEndRight (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1191 |
return true; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1192 |
|
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1193 |
case 0x48: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1194 |
ClipStartBottom (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1195 |
ClipEndTop (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1196 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1197 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1198 |
case 0x49: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1199 |
ClipStartBottom (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1200 |
if (line.start.x < m_clipMin.x) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1201 |
return false; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1202 |
ClipEndLeft (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1203 |
if (line.end.y < m_clipMin.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1204 |
ClipEndTop (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1205 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1206 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1207 |
case 0x4A: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1208 |
ClipStartBottom (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1209 |
if (line.start.x > m_clipMax.x) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1210 |
return false; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1211 |
ClipEndRight (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1212 |
if (line.end.y < m_clipMin.y) |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1213 |
ClipEndTop (line); |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1214 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1215 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1216 |
// bottom-left |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1217 |
case 0x50: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1218 |
ClipStartLeft (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1219 |
if (line.start.y > m_clipMax.y) |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1220 |
ClipStartBottom (line); |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1221 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1222 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1223 |
case 0x52: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1224 |
ClipEndRight (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1225 |
if (line.end.y > m_clipMax.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1226 |
return false; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1227 |
ClipStartBottom (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1228 |
if (line.start.x < m_clipMin.x) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1229 |
ClipStartLeft (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1230 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1231 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1232 |
case 0x58: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1233 |
ClipEndTop (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1234 |
if (line.end.x < m_clipMin.x) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1235 |
return false; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1236 |
ClipStartBottom (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1237 |
if (line.start.x < m_clipMin.x) |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1238 |
ClipStartLeft (line); |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1239 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1240 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1241 |
case 0x5A: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1242 |
ClipStartLeft (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1243 |
if (line.start.y < m_clipMin.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1244 |
return false; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1245 |
ClipEndRight (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1246 |
if (line.end.y > m_clipMax.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1247 |
return false; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1248 |
if (line.start.y > m_clipMax.y) |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1249 |
ClipStartBottom (line); |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1250 |
if (line.end.y < m_clipMin.y) |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1251 |
ClipEndTop (line); |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1252 |
return true; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1253 |
|
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1254 |
// bottom-right |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1255 |
case 0x60: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1256 |
ClipStartRight (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1257 |
if (line.start.y > m_clipMax.y) |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1258 |
ClipStartBottom (line); |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1259 |
return true; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1260 |
|
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1261 |
case 0x61: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1262 |
ClipEndLeft (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1263 |
if (line.end.y > m_clipMax.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1264 |
return false; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1265 |
ClipStartBottom (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1266 |
if (line.start.x > m_clipMax.x) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1267 |
ClipStartRight (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1268 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1269 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1270 |
case 0x68: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1271 |
ClipEndTop (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1272 |
if (line.end.x > m_clipMax.x) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1273 |
return false; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1274 |
ClipStartRight (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1275 |
if (line.start.y > m_clipMax.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1276 |
ClipStartBottom (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1277 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1278 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1279 |
case 0x69: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1280 |
ClipEndLeft (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1281 |
if (line.end.y > m_clipMax.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1282 |
return false; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1283 |
ClipStartRight (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1284 |
if (line.start.y < m_clipMin.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1285 |
return false; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1286 |
if (line.end.y < m_clipMin.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1287 |
ClipEndTop (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1288 |
if (line.start.y > m_clipMax.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1289 |
ClipStartBottom (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1290 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1291 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1292 |
// top |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1293 |
case 0x80: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1294 |
ClipStartTop (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1295 |
return true; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1296 |
|
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1297 |
case 0x81: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1298 |
ClipStartTop (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1299 |
if (line.start.x < m_clipMin.x) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1300 |
return false; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1301 |
ClipEndLeft (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1302 |
return true; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1303 |
|
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1304 |
case 0x82: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1305 |
ClipStartTop (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1306 |
if (line.start.x > m_clipMax.x) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1307 |
return false; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1308 |
ClipEndRight (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1309 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1310 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1311 |
case 0x84: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1312 |
ClipStartTop (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1313 |
ClipEndBottom (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1314 |
return true; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1315 |
|
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1316 |
case 0x85: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1317 |
ClipStartTop (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1318 |
if (line.start.x < m_clipMin.x) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1319 |
return false; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1320 |
ClipEndLeft (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1321 |
if (line.end.y > m_clipMax.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1322 |
ClipEndBottom (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1323 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1324 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1325 |
case 0x86: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1326 |
ClipStartTop (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1327 |
if (line.start.x > m_clipMax.x) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1328 |
return false; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1329 |
ClipEndRight (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1330 |
if (line.end.y > m_clipMax.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1331 |
ClipEndBottom (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1332 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1333 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1334 |
// top-left |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1335 |
case 0x90: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1336 |
ClipStartLeft (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1337 |
if (line.start.y < m_clipMin.y) |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1338 |
ClipStartTop (line); |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1339 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1340 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1341 |
case 0x92: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1342 |
ClipEndRight (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1343 |
if (line.end.y < m_clipMin.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1344 |
return false; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1345 |
ClipStartTop (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1346 |
if (line.start.x < m_clipMin.x) |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1347 |
ClipStartLeft (line); |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1348 |
return true; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1349 |
|
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1350 |
case 0x94: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1351 |
ClipEndBottom (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1352 |
if (line.end.x < m_clipMin.x) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1353 |
return false; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1354 |
ClipStartLeft (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1355 |
if (line.start.y < m_clipMin.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1356 |
ClipStartTop (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1357 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1358 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1359 |
case 0x96: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1360 |
ClipStartLeft (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1361 |
if (line.start.y > m_clipMax.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1362 |
return false; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1363 |
ClipEndRight (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1364 |
if (line.end.y < m_clipMin.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1365 |
return false; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1366 |
if (line.start.y < m_clipMin.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1367 |
ClipStartTop (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1368 |
if (line.end.y > m_clipMax.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1369 |
ClipEndBottom (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1370 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1371 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1372 |
// top-right |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1373 |
case 0xA0: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1374 |
ClipStartRight (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1375 |
if (line.start.y < m_clipMin.y) |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1376 |
ClipStartTop (line); |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1377 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1378 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1379 |
case 0xA1: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1380 |
ClipEndLeft (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1381 |
if (line.end.y < m_clipMin.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1382 |
return false; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1383 |
ClipStartTop (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1384 |
if (line.start.x > m_clipMax.x) |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1385 |
ClipStartRight (line); |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1386 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1387 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1388 |
case 0xA4: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1389 |
ClipEndBottom (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1390 |
if (line.end.x > m_clipMax.x) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1391 |
return false; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1392 |
ClipStartRight (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1393 |
if (line.start.y < m_clipMin.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1394 |
ClipStartTop (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1395 |
return true; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1396 |
|
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1397 |
case 0xA5: |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1398 |
ClipEndLeft (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1399 |
if (line.end.y < m_clipMin.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1400 |
return false; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1401 |
ClipStartRight (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1402 |
if (line.start.y > m_clipMax.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1403 |
return false; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1404 |
if (line.end.y > m_clipMax.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1405 |
ClipEndBottom (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1406 |
if (line.start.y < m_clipMin.y) |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1407 |
ClipStartTop (line); |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1408 |
return true; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1409 |
} |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1410 |
|
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1411 |
return false; |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1412 |
} |
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1413 |
}; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1414 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1415 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1416 |
void |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1417 |
PyViz::LineClipping (double boundsX1, double boundsY1, double boundsX2, double boundsY2, |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1418 |
double &lineX1, double &lineY1, double &lineX2, double &lineY2) |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1419 |
{ |
7194
d57648faced2
visualizer coding style changes
Josh Pelkey <jpelkey@gatech.edu>
parents:
6946
diff
changeset
|
1420 |
FastClipping::Vector2 clipMin = { boundsX1, boundsY1}, clipMax = { boundsX2, boundsY2}; |
6676
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1421 |
FastClipping::Line line = { { lineX1, lineY1 }, { lineX2, lineY2 }, (lineX2-lineX1), (lineY2-lineY1) }; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1422 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1423 |
FastClipping clipper (clipMin, clipMax); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1424 |
clipper.ClipLine (line); |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1425 |
lineX1 = line.start.x; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1426 |
lineX2 = line.end.x; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1427 |
lineY1 = line.start.y; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1428 |
lineY2 = line.end.y; |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1429 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1430 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1431 |
|
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1432 |
} |
8a57344a8d09
Codereview Issue 2692041: Add pyviz module
Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
parents:
diff
changeset
|
1433 |