12#ifndef WSFCOMMPROTOCOLADHOC_HPP
13#define WSFCOMMPROTOCOLADHOC_HPP
15#include "wsf_export.h"
77 std::vector<Address>
Routing(
double aSimTime,
78 const Address& aSendingInterface,
81 const Message& aMessage)
override;
88 void Setup()
override;
133 std::unique_ptr<graph::Graph> mGraph{
nullptr};
134 std::unique_ptr<WsfScriptContext> mContextPtr{
nullptr};
141 UtScript* mOnCommAdded{
nullptr};
142 UtScript* mOnCommRemoved{
nullptr};
143 UtScript* mOnConnectionAdded{
nullptr};
144 UtScript* mOnConnectionRemoved{
nullptr};
145 UtScript* mOnMessageRouting{
nullptr};
147 std::shared_ptr<int> mEvents{std::make_shared<int>(0)};
#define WSF_DECLARE_COMPONENT_ROLE_TYPE(TYPE, ROLE)
Definition WsfComponentRoles.hpp:44
@ cWSF_COMPONENT_COMM_ROUTER_PROTOCOL_AD_HOC
Definition WsfComponentRoles.hpp:128
Definition WsfComponent.hpp:39
Definition WsfRandomVariable.hpp:33
@ cCONSTANT
The random values will always have a constant value.
Definition WsfRandomVariable.hpp:38
@ cNON_NEGATIVE
Value must be greater than or equal to zero.
Definition WsfRandomVariable.hpp:50
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
Definition WsfCommAddress.hpp:57
Definition WsfComm.hpp:43
Definition WsfCommMessage.hpp:51
Definition WsfCommGraph.hpp:150
Definition WsfCommProtocolAdHoc.hpp:58
void PerfectCommRemoved(double aSimTime, Comm *aCommPtr) override
Definition WsfCommProtocolAdHoc.cpp:502
const char * GetScriptClassName() const override
Definition WsfCommProtocolAdHoc.hpp:83
static ProtocolAdHoc * FindOrCreate(Router &aParent)
Definition WsfCommProtocolAdHoc.cpp:37
void Setup() override
Definition WsfCommProtocolAdHoc.cpp:140
bool ProcessInput(UtInput &aInput) override
Definition WsfCommProtocolAdHoc.cpp:146
int GetPriority() const override
Definition WsfCommProtocolAdHoc.cpp:116
void ExecuteOnConnectionRemoved(double aSimTime, const Address &aSourceAddress, const Address &aDestinationAddress)
Definition WsfCommProtocolAdHoc.cpp:422
Address ExecuteOnMessageRouting(double aSimTime, const Address &aInterface, const Message &aMessage)
Definition WsfCommProtocolAdHoc.cpp:457
void PerfectConnectionRemoved(double aSimTime, const Address &aSourceAddress, const Address &aDestinationAddress) override
Definition WsfCommProtocolAdHoc.cpp:553
void InitializeState()
Definition WsfCommProtocolAdHoc.cpp:594
~ProtocolAdHoc() override=default
WsfComponent * CloneComponent() const override
Definition WsfCommProtocolAdHoc.cpp:79
bool ValidNetwork(const Address &aAddress) const
Definition WsfCommProtocolAdHoc.cpp:578
bool Send(double aSimTime, Router::SendData &aData) override
Definition WsfCommProtocolAdHoc.cpp:226
std::vector< Address > Routing(double aSimTime, const Address &aSendingInterface, size_t &aHopNumber, double &aCost, const Message &aMessage) override
Definition WsfCommProtocolAdHoc.cpp:255
void ExecuteOnConnectionAdded(double aSimTime, const Address &aSourceAddress, const Address &aDestinationAddress)
Definition WsfCommProtocolAdHoc.cpp:387
void PerfectConnectionAdded(double aSimTime, const Address &aSourceAddress, const Address &aDestinationAddress) override
Definition WsfCommProtocolAdHoc.cpp:528
void ExecuteOnCommAdded(double aSimTime, const Address &aComm)
Definition WsfCommProtocolAdHoc.cpp:322
void PerfectCommAdded(double aSimTime, Comm *aCommPtr) override
Definition WsfCommProtocolAdHoc.cpp:476
const int * GetComponentRoles() const override
Definition WsfCommProtocolAdHoc.cpp:85
ProtocolAdHoc * Clone() const override
Definition WsfCommProtocolAdHoc.cpp:95
bool ShouldPropagateTruth() const override
Definition WsfCommProtocolAdHoc.hpp:92
ProtocolAdHoc(const WsfScenario &aScenario)
Definition WsfCommProtocolAdHoc.cpp:51
void * QueryInterface(int aRole) override
Definition WsfCommProtocolAdHoc.cpp:101
bool Initialize(double aSimTime) override
Definition WsfCommProtocolAdHoc.cpp:122
void ExecuteOnCommRemoved(double aSimTime, const Address &aComm)
Definition WsfCommProtocolAdHoc.cpp:351
graph::Graph * GetGraph() const override
Definition WsfCommProtocolAdHoc.hpp:93
static ProtocolAdHoc * Find(const Router &aParent)
Definition WsfCommProtocolAdHoc.cpp:30
ProtocolInterface()=default
Definition WsfCommRouter.hpp:60
Definition WsfCommRouter.hpp:55
Definition WsfComm.hpp:36
Definition WsfComm.cpp:34
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32