12#ifndef WSFCOMMPROTOCOLMULTICAST_HPP
13#define WSFCOMMPROTOCOLMULTICAST_HPP
15#include "wsf_export.h"
17#include <unordered_set>
65 std::vector<Address>
Routing(
double aSimTime,
66 const Address& aSendingInterface,
69 const Message& aMessage)
override;
74 void Setup()
override;
84 bool Receive(
double aSimTime,
const Address& aReceivingInterface,
Message& aMessage,
bool& aOverrideForward)
override;
86 bool Initialize(
double aSimTime)
override;
102 virtual bool ForwardMessage(
double aSimTime,
const Address& aReceivingInterface,
Message& aMessage);
#define WSF_DECLARE_COMPONENT_ROLE_TYPE(TYPE, ROLE)
Definition WsfComponentRoles.hpp:44
@ cWSF_COMPONENT_COMM_ROUTER_PROTOCOL_MULTICAST
Definition WsfComponentRoles.hpp:127
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
Definition WsfComponent.hpp:39
Definition WsfCommAddress.hpp:57
Definition WsfCommMessage.hpp:51
Definition WsfCommGraph.hpp:150
ProtocolInterface()=default
Definition WsfCommProtocolMulticast.hpp:49
ProtocolMulticast * Clone() const override
Definition WsfCommProtocolMulticast.cpp:67
void * QueryInterface(int aRole) override
Definition WsfCommProtocolMulticast.cpp:73
~ProtocolMulticast() override=default
static ProtocolMulticast * Find(const Router &aParent)
Definition WsfCommProtocolMulticast.cpp:30
static ProtocolMulticast * FindOrCreate(Router &aParent)
Definition WsfCommProtocolMulticast.cpp:37
graph::Graph * GetGraph() const override
Definition WsfCommProtocolMulticast.hpp:79
int GetPriority() const override
Definition WsfCommProtocolMulticast.cpp:88
bool ShouldPropagateTruth() const override
Definition WsfCommProtocolMulticast.hpp:78
const int * GetComponentRoles() const override
Definition WsfCommProtocolMulticast.cpp:57
ProtocolMulticast()=default
const char * GetScriptClassName() const override
Definition WsfCommProtocolMulticast.hpp:71
WsfComponent * CloneComponent() const override
Definition WsfCommProtocolMulticast.cpp:51
std::vector< Address > Routing(double aSimTime, const Address &aSendingInterface, size_t &aHopNumber, double &aCost, const Message &aMessage) override
Definition WsfCommProtocolMulticast.cpp:293
Definition WsfCommRouter.hpp:60
Definition WsfCommRouter.hpp:55
~ScriptProtocolClassMulticast() override=default
ScriptProtocolClassMulticast(const std::string &aClassName, UtScriptTypes *aTypesPtr)
Definition WsfCommProtocolMulticast.cpp:401
ScriptRouterProtocolClass(const std::string &aClassName, UtScriptTypes *aTypesPtr)
Definition WsfCommRouterProtocolInterface.cpp:22
std::vector< Address > AddressList
Definition WsfCommGraph.hpp:36
Definition WsfComm.hpp:36
Definition WsfComm.cpp:34
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32
A simple data structure to hold routing data.
Definition WsfCommProtocolMulticast.hpp:91
double mCost
Definition WsfCommProtocolMulticast.hpp:94
std::unordered_set< Address > mDestinationSet
Definition WsfCommProtocolMulticast.hpp:96
size_t mHops
Definition WsfCommProtocolMulticast.hpp:93
Address mNextHop
Definition WsfCommProtocolMulticast.hpp:92
graph::AddressList mFullPath
Definition WsfCommProtocolMulticast.hpp:95