12#ifndef WSFCOMMROUTERPROTOCOLINTERFACE_HPP
13#define WSFCOMMROUTERPROTOCOLINTERFACE_HPP
15#include "wsf_export.h"
17#include "UtScriptTypes.hpp"
54 bool Initialize(
double aSimTime)
override {
return true; }
90 virtual std::vector<Address>
Routing(
double aSimTime,
91 const Address& aSendingInterface,
122 virtual bool Receive(
double aSimTime,
const Address& aReceivingInterface,
Message& aMessage,
bool& aOverrideForward)
#define WSF_DECLARE_COMPONENT_ROLE_TYPE(TYPE, ROLE)
Definition WsfComponentRoles.hpp:44
@ cWSF_COMPONENT_COMM_ROUTER_PROTOCOL
Definition WsfComponentRoles.hpp:123
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
Definition WsfComponent.hpp:39
WsfStringId GetNameId() const
Definition WsfObject.hpp:66
WsfObject()
This is the constructor for the WsfObject class.
Definition WsfObject.cpp:88
Definition WsfCommAddress.hpp:57
Definition WsfComm.hpp:43
Definition WsfCommMessage.hpp:51
Definition WsfCommNetwork.hpp:51
Definition WsfCommGraph.hpp:150
Definition WsfCommRouterProtocolInterface.hpp:33
virtual void PerfectConnectionDisabled(double aSimTime, const Address &aSourceAddress, const Address &aDestinationAddress)
Definition WsfCommRouterProtocolInterface.hpp:149
ProtocolInterface()=default
WsfComponent * CloneComponent() const override=0
virtual graph::Graph * GetGraph() const =0
bool operator<(const ProtocolInterface &aRhs) const
Definition WsfCommRouterProtocolInterface.hpp:60
virtual bool Receive(double aSimTime, const Address &aReceivingInterface, Message &aMessage, bool &aOverrideForward)
Definition WsfCommRouterProtocolInterface.hpp:122
WsfStringId GetComponentName() const override final
Definition WsfCommRouterProtocolInterface.hpp:42
virtual void PerfectNetworkRemoved(double aSimTime, Network *aNetworkPtr)
Definition WsfCommRouterProtocolInterface.hpp:137
ProtocolInterface * Clone() const override=0
virtual void PerfectCommAdded(double aSimTime, Comm *aCommPtr)
Definition WsfCommRouterProtocolInterface.hpp:134
~ProtocolInterface() override=default
bool ProcessInput(UtInput &aInput) override
Definition WsfCommRouterProtocolInterface.hpp:55
virtual void PerfectCommRemoved(double aSimTime, Comm *aCommPtr)
Definition WsfCommRouterProtocolInterface.hpp:135
virtual void PerfectConnectionEnabled(double aSimTime, const Address &aSourceAddress, const Address &aDestinationAddress)
Definition WsfCommRouterProtocolInterface.hpp:146
virtual int GetPriority() const =0
virtual bool ShouldPropagateTruth() const =0
const char * GetScriptClassName() const override
Definition WsfCommRouterProtocolInterface.hpp:37
virtual std::vector< Address > Routing(double aSimTime, const Address &aSendingInterface, size_t &aHopNumber, double &aCost, const Message &aMessage)=0
virtual void PerfectConnectionAdded(double aSimTime, const Address &aSourceAddress, const Address &aDestinationAddress)
Definition WsfCommRouterProtocolInterface.hpp:140
virtual void PerfectCommDisabled(double aSimTime, Comm *aCommPtr)
Definition WsfCommRouterProtocolInterface.hpp:139
virtual bool Send(double aSimTime, Router::SendData &aData)
Definition WsfCommRouterProtocolInterface.hpp:120
void * QueryInterface(int aRole) override=0
const int * GetComponentRoles() const override=0
virtual void PerfectConnectionRemoved(double aSimTime, const Address &aSourceAddress, const Address &aDestinationAddress)
Definition WsfCommRouterProtocolInterface.hpp:143
virtual void PerfectCommEnabled(double aSimTime, Comm *aCommPtr)
Definition WsfCommRouterProtocolInterface.hpp:138
bool Initialize(double aSimTime) override
Definition WsfCommRouterProtocolInterface.hpp:54
virtual void PerfectNetworkAdded(double aSimTime, Network *aNetworkPtr)
Definition WsfCommRouterProtocolInterface.hpp:136
RouterComponent()=default
Definition WsfCommRouter.hpp:60
~ScriptRouterProtocolClass() override=default
ScriptRouterProtocolClass(const std::string &aClassName, UtScriptTypes *aTypesPtr)
Definition WsfCommRouterProtocolInterface.cpp:22
Definition WsfComm.hpp:36
Definition WsfComm.cpp:34
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32