INET Framework for OMNeT++/OMNEST
inet::visualizer::PacketFlowCanvasVisualizer Class Reference

#include <PacketFlowCanvasVisualizer.h>

Inheritance diagram for inet::visualizer::PacketFlowCanvasVisualizer:
inet::visualizer::PathCanvasVisualizerBase inet::visualizer::PathVisualizerBase inet::visualizer::VisualizerBase

Protected Member Functions

virtual bool isPathStart (cModule *module) const override
 
virtual bool isPathEnd (cModule *module) const override
 
virtual bool isPathElement (cModule *module) const override
 
virtual const PathVisualizationcreatePathVisualization (const char *label, const std::vector< int > &path, cPacket *packet) const override
 
virtual void processPathElement (cModule *networkNode, const char *label, Packet *packet) override
 
- Protected Member Functions inherited from inet::visualizer::PathCanvasVisualizerBase
virtual void initialize (int stage) override
 
virtual void refreshDisplay () const override
 
virtual void addPathVisualization (const PathVisualization *pathVisualization) override
 
virtual void removePathVisualization (const PathVisualization *pathVisualization) override
 
virtual void setAlpha (const PathVisualization *pathVisualization, double alpha) const override
 
virtual void refreshPathVisualization (const PathVisualization *pathVisualization, cPacket *packet) override
 
- Protected Member Functions inherited from inet::visualizer::PathVisualizerBase
virtual void handleParameterChange (const char *name) override
 
virtual void preDelete (cComponent *root) override
 
virtual void subscribe ()
 
virtual void unsubscribe ()
 
virtual void processPathStart (cModule *networkNode, const char *label, Packet *packet)
 
virtual void processPathEnd (cModule *networkNode, const char *label, Packet *packet)
 
virtual const PathVisualizationgetPathVisualization (const std::vector< int > &path)
 
virtual void removeAllPathVisualizations ()
 
virtual const std::vector< int > * getIncompletePath (const std::string &label, int chunkId)
 
virtual void addToIncompletePath (const std::string &label, int chunkId, cModule *module)
 
virtual void removeIncompletePath (const std::string &label, int chunkId)
 
virtual std::string getPathVisualizationText (const PathVisualization *pathVisualization, cPacket *packet) const
 
- Protected Member Functions inherited from inet::visualizer::VisualizerBase
virtual int numInitStages () const override
 
virtual Coord getPosition (const cModule *networkNode) const
 
virtual Coord getContactPosition (const cModule *networkNode, const Coord &fromPosition, const char *contactMode, double contactSpacing) const
 
virtual Quaternion getOrientation (const cModule *networkNode) const
 
virtual void mapChunks (const Ptr< const Chunk > &chunk, const std::function< void(const Ptr< const Chunk > &, int)> &thunk) const
 

Additional Inherited Members

- Public Member Functions inherited from inet::visualizer::PathVisualizerBase
virtual void receiveSignal (cComponent *source, simsignal_t signal, cObject *object, cObject *details) override
 
- Protected Attributes inherited from inet::visualizer::PathCanvasVisualizerBase
double zIndex = NaN
 
const CanvasProjectioncanvasProjection = nullptr
 
cGroupFigure * pathGroup = nullptr
 
- Protected Attributes inherited from inet::visualizer::PathVisualizerBase
bool displayRoutes = false
 
NetworkNodeFilter nodeFilter
 
PacketFilter packetFilter
 
ColorSet lineColorSet
 
cFigure::LineStyle lineStyle
 
double lineWidth = NaN
 
bool lineSmooth = false
 
double lineShift = NaN
 
const char * lineShiftMode = nullptr
 
double lineContactSpacing = NaN
 
const char * lineContactMode = nullptr
 
StringFormat labelFormat
 
cFigure::Font labelFont
 
const char * labelColorAsString = nullptr
 
cFigure::Color labelColor
 
const char * fadeOutMode = nullptr
 
double fadeOutTime = NaN
 
double fadeOutAnimationSpeed = NaN
 
simsignal_t startPathSignal = -1
 
simsignal_t extendPathSignal = -1
 
simsignal_t endPathSignal = -1
 
LineManagerlineManager = nullptr
 
std::map< std::pair< std::string, int >, std::vector< int > > incompletePaths
 Maps path label and chunk id to module id vector. More...
 
std::map< int, int > numPaths
 Maps nodes to the number of paths that go through it. More...
 
std::multimap< std::pair< int, int >, const PathVisualization * > pathVisualizations
 Maps source/destination modules to multiple paths between them. More...
 
- Protected Attributes inherited from inet::visualizer::VisualizerBase
cModule * visualizationTargetModule = nullptr
 
cModule * visualizationSubjectModule = nullptr
 
const char * tags = nullptr
 

Member Function Documentation

◆ createPathVisualization()

const PathCanvasVisualizerBase::PathVisualization * inet::visualizer::PacketFlowCanvasVisualizer::createPathVisualization ( const char *  label,
const std::vector< int > &  path,
cPacket *  packet 
) const
overrideprotectedvirtual

Reimplemented from inet::visualizer::PathCanvasVisualizerBase.

61 {
62  auto pathVisualization = static_cast<const PathCanvasVisualization *>(PathCanvasVisualizerBase::createPathVisualization(label, path, packet));
63  pathVisualization->figure->setTags((std::string("transport_route ") + tags).c_str());
64  pathVisualization->figure->setTooltip("This polyline arrow represents a recently active packet flow route between two network nodes");
65  pathVisualization->shiftPriority = 4;
66  return pathVisualization;
67 }

◆ isPathElement()

bool inet::visualizer::PacketFlowCanvasVisualizer::isPathElement ( cModule *  module) const
overrideprotectedvirtual

Implements inet::visualizer::PathVisualizerBase.

41 {
42 #ifdef INET_WITH_ETHERNET
43  if (dynamic_cast<MacRelayUnit *>(module) != nullptr)
44  return true;
45 #endif
46 
47 #ifdef INET_WITH_IEEE8021D
48  if (dynamic_cast<Ieee8021dRelay *>(module) != nullptr)
49  return true;
50 #endif
51 
52 #ifdef INET_WITH_IPv4
53  if (dynamic_cast<Ipv4 *>(module) != nullptr)
54  return true;
55 #endif
56 
57  return false;
58 }

◆ isPathEnd()

bool inet::visualizer::PacketFlowCanvasVisualizer::isPathEnd ( cModule *  module) const
overrideprotectedvirtual

Implements inet::visualizer::PathVisualizerBase.

36 {
37  return true;
38 }

◆ isPathStart()

bool inet::visualizer::PacketFlowCanvasVisualizer::isPathStart ( cModule *  module) const
overrideprotectedvirtual

Implements inet::visualizer::PathVisualizerBase.

31 {
32  return true;
33 }

◆ processPathElement()

void inet::visualizer::PacketFlowCanvasVisualizer::processPathElement ( cModule *  networkNode,
const char *  label,
Packet packet 
)
overrideprotectedvirtual

Reimplemented from inet::visualizer::PathVisualizerBase.

70 {
71  packet->mapAllRegionTags<FlowTag>(b(0), packet->getTotalLength(), [&] (b offset, b length, const Ptr<const FlowTag>& flowTag) {
72  for (int i = 0; i < (int)flowTag->getNamesArraySize(); i++) {
73  auto label = flowTag->getNames(i);
74  mapChunks(packet->peekAt(b(0), packet->getTotalLength()), [&] (const Ptr<const Chunk>& chunk, int chunkId) {
75  auto path = getIncompletePath(label, chunkId);
76  if (path != nullptr) {
77  addToIncompletePath(label, chunkId, networkNode);
78  }
79  });
80  }
81  });
82 }

The documentation for this class was generated from the following files:
inet::units::values::b
value< int64_t, units::b > b
Definition: Units.h:1241
inet::visualizer::VisualizerBase::tags
const char * tags
Definition: VisualizerBase.h:27
inet::visualizer::VisualizerBase::mapChunks
virtual void mapChunks(const Ptr< const Chunk > &chunk, const std::function< void(const Ptr< const Chunk > &, int)> &thunk) const
Definition: VisualizerBase.cc:90
inet::visualizer::PathCanvasVisualizerBase::createPathVisualization
virtual const PathVisualization * createPathVisualization(const char *label, const std::vector< int > &path, cPacket *packet) const override
Definition: PathCanvasVisualizerBase.cc:134