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

#include <InterfaceTableCanvasVisualizer.h>

Inheritance diagram for inet::visualizer::InterfaceTableCanvasVisualizer:
inet::visualizer::InterfaceTableVisualizerBase inet::visualizer::VisualizerBase

Classes

class  InterfaceCanvasVisualization
 

Protected Member Functions

virtual void initialize (int stage) override
 
virtual NetworkInterfacegetNetworkInterface (const InterfaceVisualization *interfaceVisualization)
 
virtual InterfaceVisualizationcreateInterfaceVisualization (cModule *networkNode, NetworkInterface *networkInterface) override
 
virtual void addInterfaceVisualization (const InterfaceVisualization *interfaceVisualization) override
 
virtual void removeInterfaceVisualization (const InterfaceVisualization *interfaceVisualization) override
 
virtual void refreshInterfaceVisualization (const InterfaceVisualization *interfaceVisualization, const NetworkInterface *networkInterface) override
 
- Protected Member Functions inherited from inet::visualizer::InterfaceTableVisualizerBase
virtual void handleParameterChange (const char *name) override
 
virtual void preDelete (cComponent *root) override
 
virtual void subscribe ()
 
virtual void unsubscribe ()
 
virtual cModule * getNetworkNode (const InterfaceVisualization *interfaceVisualization)
 
virtual cGate * getOutputGate (cModule *networkNode, NetworkInterface *networkInterface)
 
virtual cGate * getOutputGate (const InterfaceVisualization *interfaceVisualization)
 
virtual const InterfaceVisualizationgetInterfaceVisualization (cModule *networkNode, NetworkInterface *networkInterface)
 
virtual void addAllInterfaceVisualizations ()
 
virtual void removeAllInterfaceVisualizations ()
 
virtual void updateAllInterfaceVisualizations ()
 
virtual std::string getVisualizationText (const NetworkInterface *networkInterface)
 
- 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
 

Protected Attributes

double zIndex = NaN
 
ModuleRefByPar< NetworkNodeCanvasVisualizernetworkNodeVisualizer
 
- Protected Attributes inherited from inet::visualizer::InterfaceTableVisualizerBase
bool displayInterfaceTables = false
 
bool displayWiredInterfacesAtConnections = false
 
bool displayBackground = false
 
NetworkNodeFilter nodeFilter
 
InterfaceFilter interfaceFilter
 
StringFormat format
 
Placement placementHint
 
double placementPriority
 
cFigure::Font font
 
cFigure::Color textColor
 
cFigure::Color backgroundColor
 
double opacity = NaN
 
std::map< std::pair< int, int >, const InterfaceVisualization * > interfaceVisualizations
 
- Protected Attributes inherited from inet::visualizer::VisualizerBase
cModule * visualizationTargetModule = nullptr
 
cModule * visualizationSubjectModule = nullptr
 
const char * tags = nullptr
 

Additional Inherited Members

- Public Member Functions inherited from inet::visualizer::InterfaceTableVisualizerBase
virtual void receiveSignal (cComponent *source, simsignal_t signal, cObject *object, cObject *details) override
 

Member Function Documentation

◆ addInterfaceVisualization()

void inet::visualizer::InterfaceTableCanvasVisualizer::addInterfaceVisualization ( const InterfaceVisualization interfaceVisualization)
overrideprotectedvirtual

Reimplemented from inet::visualizer::InterfaceTableVisualizerBase.

80 {
82  auto interfaceCanvasVisualization = static_cast<const InterfaceCanvasVisualization *>(interfaceVisualization);
83  if (interfaceCanvasVisualization->figure == nullptr) {
84  auto gate = getOutputGate(interfaceVisualization);
85  if (gate != nullptr && gate->getChannel()) {
86  cDisplayString& displayString = gate->getDisplayString();
87  displayString.setTagArg("t", 0, getVisualizationText(getNetworkInterface(interfaceVisualization)).c_str());
88  displayString.setTagArg("t", 1, "l");
89  }
90  }
91  else
92  interfaceCanvasVisualization->networkNodeVisualization->addAnnotation(interfaceCanvasVisualization->figure, interfaceCanvasVisualization->figure->getBounds().getSize(), placementHint, placementPriority);
93 }

◆ createInterfaceVisualization()

InterfaceTableVisualizerBase::InterfaceVisualization * inet::visualizer::InterfaceTableCanvasVisualizer::createInterfaceVisualization ( cModule *  networkNode,
NetworkInterface networkInterface 
)
overrideprotectedvirtual

Implements inet::visualizer::InterfaceTableVisualizerBase.

44 {
45  BoxedLabelFigure *figure = nullptr;
46  auto gate = getOutputGate(networkNode, networkInterface);
47  if (!displayWiredInterfacesAtConnections || gate == nullptr) {
48  figure = new BoxedLabelFigure("networkInterface");
49  figure->setTags((std::string("network_interface ") + tags).c_str());
50  figure->setTooltip("This label represents a network interface in a network node");
51  figure->setAssociatedObject(networkInterface);
52  figure->setZIndex(zIndex);
53  figure->setFont(font);
54  figure->setText(getVisualizationText(networkInterface).c_str());
55  figure->setLabelColor(textColor);
56  figure->setBackgroundColor(backgroundColor);
57  figure->setOpacity(opacity);
58  if (!displayBackground) {
59  figure->setInset(0);
60  figure->getRectangleFigure()->setVisible(false);
61  }
62  }
63  auto networkNodeVisualization = networkNodeVisualizer->getNetworkNodeVisualization(networkNode);
64  return new InterfaceCanvasVisualization(networkNodeVisualization, figure, networkNode->getId(), gate == nullptr ? -1 : gate->getId(), networkInterface->getInterfaceId());
65 }

◆ getNetworkInterface()

NetworkInterface * inet::visualizer::InterfaceTableCanvasVisualizer::getNetworkInterface ( const InterfaceVisualization interfaceVisualization)
protectedvirtual
68 {
69  L3AddressResolver addressResolver;
70  auto networkNode = getNetworkNode(interfaceVisualization);
71  if (networkNode == nullptr)
72  return nullptr;
73  auto interfaceTable = addressResolver.findInterfaceTableOf(networkNode);
74  if (interfaceTable == nullptr)
75  return nullptr;
76  return interfaceTable->getInterfaceById(interfaceVisualization->interfaceId);
77 }

Referenced by addInterfaceVisualization().

◆ initialize()

void inet::visualizer::InterfaceTableCanvasVisualizer::initialize ( int  stage)
overrideprotectedvirtual

Reimplemented from inet::visualizer::InterfaceTableVisualizerBase.

33 {
35  if (!hasGUI())
36  return;
37  if (stage == INITSTAGE_LOCAL) {
38  zIndex = par("zIndex");
39  networkNodeVisualizer.reference(this, "networkNodeVisualizerModule", true);
40  }
41 }

◆ refreshInterfaceVisualization()

void inet::visualizer::InterfaceTableCanvasVisualizer::refreshInterfaceVisualization ( const InterfaceVisualization interfaceVisualization,
const NetworkInterface networkInterface 
)
overrideprotectedvirtual

Implements inet::visualizer::InterfaceTableVisualizerBase.

109 {
110  auto interfaceCanvasVisualization = static_cast<const InterfaceCanvasVisualization *>(interfaceVisualization);
111  auto figure = interfaceCanvasVisualization->figure;
112  if (figure == nullptr) {
113  auto gate = getOutputGate(interfaceVisualization);
114  if (gate != nullptr && gate->getChannel()) {
115  cDisplayString& displayString = gate->getDisplayString();
116  displayString.setTagArg("t", 0, getVisualizationText(networkInterface).c_str());
117  displayString.setTagArg("t", 1, "l");
118  }
119  }
120  else {
121  figure->setText(getVisualizationText(networkInterface).c_str());
122  interfaceCanvasVisualization->networkNodeVisualization->setAnnotationSize(figure, figure->getBounds().getSize());
123  }
124 }

◆ removeInterfaceVisualization()

void inet::visualizer::InterfaceTableCanvasVisualizer::removeInterfaceVisualization ( const InterfaceVisualization interfaceVisualization)
overrideprotectedvirtual

Reimplemented from inet::visualizer::InterfaceTableVisualizerBase.

96 {
98  auto interfaceCanvasVisualization = static_cast<const InterfaceCanvasVisualization *>(interfaceVisualization);
99  if (interfaceCanvasVisualization->figure == nullptr) {
100  auto gate = getOutputGate(interfaceVisualization);
101  if (gate != nullptr && gate->getChannel())
102  gate->getDisplayString().setTagArg("t", 0, "");
103  }
104  else if (networkNodeVisualizer != nullptr)
105  interfaceCanvasVisualization->networkNodeVisualization->removeAnnotation(interfaceCanvasVisualization->figure);
106 }

Member Data Documentation

◆ networkNodeVisualizer

ModuleRefByPar<NetworkNodeCanvasVisualizer> inet::visualizer::InterfaceTableCanvasVisualizer::networkNodeVisualizer
protected

◆ zIndex

double inet::visualizer::InterfaceTableCanvasVisualizer::zIndex = NaN
protected

The documentation for this class was generated from the following files:
inet::visualizer::InterfaceTableVisualizerBase::displayBackground
bool displayBackground
Definition: InterfaceTableVisualizerBase.h:52
inet::visualizer::InterfaceTableVisualizerBase::textColor
cFigure::Color textColor
Definition: InterfaceTableVisualizerBase.h:59
inet::visualizer::InterfaceTableVisualizerBase::getNetworkNode
virtual cModule * getNetworkNode(const InterfaceVisualization *interfaceVisualization)
Definition: InterfaceTableVisualizerBase.cc:181
inet::visualizer::InterfaceTableVisualizerBase::backgroundColor
cFigure::Color backgroundColor
Definition: InterfaceTableVisualizerBase.h:60
inet::visualizer::InterfaceTableVisualizerBase::opacity
double opacity
Definition: InterfaceTableVisualizerBase.h:61
inet::visualizer::InterfaceTableVisualizerBase::removeInterfaceVisualization
virtual void removeInterfaceVisualization(const InterfaceVisualization *interfaceVisualization)
Definition: InterfaceTableVisualizerBase.cc:240
inet::visualizer::InterfaceTableVisualizerBase::displayWiredInterfacesAtConnections
bool displayWiredInterfacesAtConnections
Definition: InterfaceTableVisualizerBase.h:51
inet::visualizer::InterfaceTableCanvasVisualizer::networkNodeVisualizer
ModuleRefByPar< NetworkNodeCanvasVisualizer > networkNodeVisualizer
Definition: InterfaceTableCanvasVisualizer.h:36
inet::visualizer::InterfaceTableVisualizerBase::getOutputGate
virtual cGate * getOutputGate(cModule *networkNode, NetworkInterface *networkInterface)
Definition: InterfaceTableVisualizerBase.cc:186
inet::visualizer::InterfaceTableVisualizerBase::placementHint
Placement placementHint
Definition: InterfaceTableVisualizerBase.h:56
inet::visualizer::InterfaceTableVisualizerBase::font
cFigure::Font font
Definition: InterfaceTableVisualizerBase.h:58
inet::INITSTAGE_LOCAL
INET_API InitStage INITSTAGE_LOCAL
Initialization of local state that don't use or affect other modules includes:
inet::visualizer::InterfaceTableCanvasVisualizer::getNetworkInterface
virtual NetworkInterface * getNetworkInterface(const InterfaceVisualization *interfaceVisualization)
Definition: InterfaceTableCanvasVisualizer.cc:67
inet::visualizer::InterfaceTableVisualizerBase::initialize
virtual void initialize(int stage) override
Definition: InterfaceTableVisualizerBase.cc:123
inet::visualizer::InterfaceTableVisualizerBase::placementPriority
double placementPriority
Definition: InterfaceTableVisualizerBase.h:57
inet::visualizer::InterfaceTableCanvasVisualizer::zIndex
double zIndex
Definition: InterfaceTableCanvasVisualizer.h:35
inet::visualizer::InterfaceTableVisualizerBase::addInterfaceVisualization
virtual void addInterfaceVisualization(const InterfaceVisualization *interfaceVisualization)
Definition: InterfaceTableVisualizerBase.cc:214
inet::visualizer::VisualizerBase::tags
const char * tags
Definition: VisualizerBase.h:27
inet::visualizer::InterfaceTableVisualizerBase::getVisualizationText
virtual std::string getVisualizationText(const NetworkInterface *networkInterface)
Definition: InterfaceTableVisualizerBase.cc:263