15#include "wsf_export.h"
50 using LinkPair = std::vector<std::pair<std::string, std::string>>;
97 const int* GetComponentRoles()
const override;
98 void* QueryInterface(
int aRole)
override;
111 void Update(
double aSimTime)
override;
112 virtual void Setup();
121 void TurnOff(
double aSimTime)
override;
122 void TurnOn(
double aSimTime)
override;
129 virtual void AddLink(
const std::string& aPlatformName,
const std::string& aCommName)
131 mLinks.emplace_back(aPlatformName, aCommName);
140 void SetGateway(
const Address& aAddress);
152 virtual bool CanSendTo(
double aSimTime,
Comm* aRcvrPtr,
Message* aMessagePtr =
nullptr);
162 virtual bool Receive(
double aSimTime,
Comm* aXmtrPtr,
Message& aMessage);
163 virtual bool Send(
double aSimTime, std::unique_ptr<WsfMessage> aMessagePtr,
const Address& aAddress);
167 virtual bool Send(
double aSimTime,
const WsfMessage& aMessage,
const Address& aAddress)
final;
172 virtual bool ProcessLayerMessage(
double aSimTime,
size_t aLayerIndex,
layer::Message aLayerMessage,
Message* aCommMessagePtr);
212 void SetNetwork(
const std::string& aNetwork) { mNetwork = aNetwork; }
215 virtual std::string GetFullName()
const;
221 virtual bool CanSend()
const {
return mTransmitEnabled; }
237 void SetRouterName(
const std::string& aRouterName) { mRouterName = aRouterName; }
243 std::vector<ProtocolInterface*> GetSortedProtocols()
const;
253 virtual void SetMulticastLevel();
275 virtual bool SendSetup(
double aSimTime,
Message& aMessage,
const Address& aAddress);
277 virtual bool ReceiveSetup(
double aSimTime,
Comm* aXmtrPtr,
Message& aMessage);
285 virtual bool SendActions(
double aSimTime,
bool aSendStatus,
Message& aMessage);
287 virtual bool ReceiveActions(
double aSimTime,
bool aReceiveStatus,
Comm* aXmtrPtr,
Message& aMessage);
291 virtual void PrintDebugReception(
double aSimTime,
const Message& aMessage)
const;
306 virtual bool ValidateGateway();
341 bool mReceiveEnabled;
342 bool mTransmitEnabled;
355 std::string mNetwork;
376 std::string mRouterName;
@ cWSF_INITIALIZE_ORDER_COMM
Definition WsfComponentRoles.hpp:176
#define WSF_DECLARE_COMPONENT_ROLE_TYPE(TYPE, ROLE)
Definition WsfComponentRoles.hpp:44
@ cWSF_COMPONENT_COMM
A 'comm' component (WsfComm).
Definition WsfComponentRoles.hpp:102
@ cWSF_COMPONENT_COMM_MEDIUM_CONTAINER_COMM
Definition WsfComponentRoles.hpp:129
wsf::comm::Comm Comm
Definition WsfScriptCommRouterClass.cpp:28
aObjectPtr Update(simTime)
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
WsfArticulatedPart(const WsfScenario &aScenario, int aPartType)
Definition WsfArticulatedPart.cpp:29
A component list that stores only components of a specified type.
Definition WsfComponentList.hpp:343
Definition WsfComponent.hpp:39
A base class for messages sent among simulation communication objects, processors and sensors.
Definition WsfMessage.hpp:33
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
const Address & GetInputAddress() const
Returns the user indicated interface address.
Definition WsfComm.hpp:187
const Address & GetInputNetworkAddress() const
Returns the user indicated network membership in address format.
Definition WsfComm.hpp:201
void SetUpdateInterval(double aInterval) override
Definition WsfComm.hpp:298
bool Initialize2(double aSimTime) override
Definition WsfComm.cpp:196
void PartBroken(double aSimTime) override
Definition WsfComm.cpp:343
const LinkAddress & GetLinkAddresses() const
Returns the user suppled interface linkage in address format.
Definition WsfComm.hpp:204
const ProtocolStack & GetProtocolStack() const
Definition WsfComm.hpp:259
WsfComponent * CloneComponent() const override
Definition WsfComm.hpp:96
bool PreInitialize(double aSimTime) override
Definition WsfComm.cpp:150
ProtocolStack mProtocolStack
Protocol stack used by this comm device.
Definition WsfComm.hpp:309
bool ProcessInput(UtInput &aInput) override
Definition WsfComm.cpp:222
Comm * Clone() const override
Standard Clone() method.
Definition WsfComm.cpp:143
void SetTransmitEnabled(bool aIsEnabled)
Definition WsfComm.hpp:226
const std::string & GetRouterName() const
Definition WsfComm.hpp:236
const std::string & GetNetwork() const
Definition WsfComm.hpp:191
Comm(const WsfScenario &aScenario, CommType aCommType=cCT_XMT_RCV)
Definition WsfComm.cpp:37
CommType GetCommType() const
Returns the comm device's true type as was intended on construction.
Definition WsfComm.hpp:176
const char * GetScriptClassName() const override
void SetRouterName(const std::string &aRouterName)
Definition WsfComm.hpp:237
friend class Event
Definition WsfComm.hpp:44
void SetNetwork(const std::string &aNetwork)
Definition WsfComm.hpp:212
const std::string & GetGatewayRemotePlatform() const
Definition WsfComm.hpp:138
virtual void AddLinkAddress(const Address &aAddress)
Definition WsfComm.hpp:128
const LinkPair & GetLinkPairs() const
Returns the user supplied interface linkage in platform/comm name format.
Definition WsfComm.hpp:207
size_t mNumChannels
Definition WsfComm.hpp:330
bool Initialize(double aSimTime) override
Definition WsfComm.cpp:168
virtual void PendingStart()
Definition WsfComm.cpp:585
ComponentList & GetComponents()
Definition WsfComm.hpp:90
const Address & GetGateway() const
Definition WsfComm.hpp:137
virtual void AddLink(const std::string &aPlatformName, const std::string &aCommName)
Definition WsfComm.hpp:129
std::vector< std::pair< std::string, std::string > > LinkPair
Definition WsfComm.hpp:50
void SetAddress(const Address &aAddress)
Definition WsfComm.hpp:211
WsfComponentListT< WsfComponentT< Comm > > ComponentList
Definition WsfComm.hpp:89
const std::string & GetGatewayRemoteComm() const
Definition WsfComm.hpp:139
Comm & operator=(const Comm &aRhs)=delete
void TurnOff(double aSimTime) override
Definition WsfComm.cpp:377
CommType
Definition WsfComm.hpp:53
@ cCT_XMT_RCV
Transmit and receive.
Definition WsfComm.hpp:56
@ cCT_RCV_ONLY
Receive only.
Definition WsfComm.hpp:55
@ cCT_XMT_ONLY
Transmit only.
Definition WsfComm.hpp:54
ProtocolStack & GetProtocolStack()
Accessor/mutator for protocol stack.
Definition WsfComm.hpp:258
std::vector< wsf::comm::Address > LinkAddress
Definition WsfComm.hpp:49
MulticastConformanceLevel
Definition WsfComm.hpp:65
virtual bool CanReceive() const
Definition WsfComm.hpp:220
const ComponentList & GetComponents() const
Definition WsfComm.hpp:91
int GetComponentInitializationOrder() const override
Definition WsfComm.hpp:99
const Address & GetAddress() const
Definition WsfComm.hpp:184
void TurnOn(double aSimTime) override
Definition WsfComm.cpp:397
void SetReceiveEnabled(bool aIsEnabled)
Definition WsfComm.hpp:225
double GetUpdateInterval() const override
Definition WsfComm.hpp:299
std::string mInputNetwork
A user supplied network, for indicating which network this interface should join.
Definition WsfComm.hpp:320
size_t GetNumChannels() const
Definition WsfComm.hpp:195
void SetNonOperational(double aSimTime) override
Definition WsfComm.cpp:354
virtual bool CanSend() const
Definition WsfComm.hpp:221
void SetOperational(double aSimTime) override
Definition WsfComm.cpp:365
void PreInput() override
Definition WsfComm.cpp:215
Address mInputNetworkAddress
A user supplied network address, for indicating which network this interface should join.
Definition WsfComm.hpp:323
Address mInputAddress
A user supplied address indicated for use with this interface. May be null if not specified.
Definition WsfComm.hpp:317
WsfStringId GetClassId() const
Definition WsfComm.hpp:180
virtual void Setup()
Definition WsfComm.cpp:559
MulticastConformanceLevel GetMulticastLevel() const
Definition WsfComm.hpp:247
router::Router * GetRouter() const
Definition WsfComm.hpp:234
void SetClassId(WsfStringId aClassId)
Definition WsfComm.hpp:303
const std::string & GetInputNetwork() const
Returns the user indicated network membership.
Definition WsfComm.hpp:198
Definition WsfCommMessage.hpp:51
Definition WsfCommProtocolInterface.hpp:37
This class represents a communication devices protocol stack.
Definition WsfCommProtocolStack.hpp:37
Definition WsfCommLayerMessage.hpp:36
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
Definition WsfComm.hpp:76
std::string mCommName
Definition WsfComm.hpp:79
Address mAddress
Definition WsfComm.hpp:77
std::string mPlatformName
Definition WsfComm.hpp:78