|
WSF
|
#include <WsfCommComponent.hpp>


Public Member Functions | |
| Component ()=default | |
| ~Component () override=default | |
| Public Member Functions inherited from WsfComponentT< Comm > | |
| WsfComponentT () | |
| WsfComponentT & | operator= (const WsfComponentT &) noexcept |
| ~WsfComponentT () override=default | |
| virtual void | ComponentParentChanged (ParentType *aParentPtr) |
| ParentType * | GetComponentParent () const |
| void | SetComponentParent (ParentType *aParentPtr) |
| Public Member Functions inherited from WsfComponent | |
| virtual | ~WsfComponent ()=default |
| virtual WsfComponent * | CloneComponent () const =0 |
| virtual WsfStringId | GetComponentName () const =0 |
| virtual const int * | GetComponentRoles () const =0 |
| virtual void * | QueryInterface (int aRole)=0 |
| virtual int | GetComponentInitializationOrder () const |
| template<typename T> | |
| bool | QueryInterfaceT (T *&aRolePtr) |
| bool | ComponentHasRole (int aRole) |
| Returns true if the component has the specified role. | |
| virtual void | PreInput () |
Utility methods. | |
| Comm * | GetComm () const |
| WsfPlatform * | GetPlatform () const |
| WsfSimulation * | GetSimulation () const |
Generic methods. | |
Actual comm model implementations do not need to worry about calling these directly because they are required to call base class methods that end up calling these methods. (e.g. WsfCommXmtrRcvr::ProcessInput calls WsfComm::ProcessInput). These always have the same argument lists as the routine from which they are called. | |
| virtual void | TurnOn (double aSimTime) |
| virtual void | TurnOff (double aSimTime) |
| virtual void | Setup () |
| virtual void | PendingStart () |
| virtual bool | Initialize (double aSimTime) |
| virtual bool | Initialize2 (double aSimTime) |
| virtual bool | PreInitialize (double aSimTime) |
| virtual bool | ProcessInput (UtInput &aInput) |
Model-specific methods. | |
Actual comm models (e.g. WsfCommXmtrRcvr, WsfRadioXmtrRcvr, etc.) must place calls in their code because there is no common location from where these methods could be called. See the static wrapper methods below. | |
| virtual void | AttemptToTransmit (double aSimTime, Result &aResult) |
| virtual void | AttemptToReceive (double aSimTime, Result &aResult) |
| virtual bool | CanInteractWith (const Comm *aXmtrPtr) |
| virtual bool | Receive (double aSimTime, Comm *aXmtrPtr, Message &aMessage) |
| virtual bool | Send (double aSimTime, const WsfMessage &aMessage, const Address &aAddress) |
Model-specific wrapper methods. | |
These wrap the model-specific methods so specific models only need to have one line inserted into their code where component effects need to be evaluated. | |
| static void | AttemptToTransmit (Comm &aComm, double aSimTime, Result &aResult) |
| Called by model implementations when attempting to send a message. | |
| static void | AttemptToReceive (Comm &aComm, double aSimTime, Result &aResult) |
| Called by model implementations when attempting to receive a message. | |
| static bool | Receive (Comm &aComm, double aSimTime, Comm *aXmtrPtr, Message &aMessage) |
| static bool | Send (Comm &aComm, double aSimTime, const WsfMessage &aMessage, const Address &aAddress) |
Additional Inherited Members | |
| Public Types inherited from WsfComponentT< Comm > | |
| typedef Comm | ParentType |
| This is needed to support the WsfComponentList template. | |
A abstract base class for comm system extension components. Components can be added to implement additional functionality beyond what is provided by a specific model. The responsibilities of a derived class include: -) Implementing the 'required interface' methods as defined in WsfComponent. -) Implementing any desired 'common framework' methods defined in WsfComponent. -) Implementing any desired methods as defined below. -) Implementing the specific capabilities required by the derived class.
|
default |
|
overridedefault |
|
static |
Called by model implementations when attempting to receive a message.
References Component(), and wsf::comm::Comm::GetComponents().
|
inlinevirtual |
|
static |
Called by model implementations when attempting to send a message.
References Component(), and wsf::comm::Comm::GetComponents().
|
inlinevirtual |
|
virtual |
Reimplemented in wsf::comm::ComponentHW.
References wsf::comm::Comm::GetClassId(), and GetComm().
|
inline |
References WsfComponentT< Comm >::GetComponentParent().
Referenced by CanInteractWith(), wsf::comm::ComponentHW::CanInteractWith(), wsf::comm::ComponentHW_JTIDS::CanReceiveFrom(), wsf::comm::ComponentHW::CanSendTo(), wsf::comm::ComponentHW_LASER::CanSendTo(), wsf::comm::ComponentHW_Subsurface::CanSendTo(), wsf::comm::ProtocolIGMP::GetQuerier(), wsf::comm::ComponentHW::Initialize(), wsf::comm::ProtocolIGMP::Initialize(), wsf::comm::ProtocolIGMP::JoinGroup(), wsf::comm::ProtocolIGMP::LeaveGroup(), wsf::comm::ProtocolIGMP::NetworkReceive(), wsf::comm::ProtocolIGMP::NetworkSend(), wsf::comm::ProtocolIGMP::PhysicalReceive(), wsf::comm::ComponentHW::ProcessInput(), wsf::xio::CommComponent::Receive(), wsf::comm::ComponentHW::ScheduleAltFreqChange(), wsf::comm::ComponentHW::SelectAlternateFrequency(), wsf::comm::ComponentHW_Subsurface::SetSubmarineRadioValues(), wsf::comm::ProtocolIGMP::Setup(), wsf::comm::ComponentHW::TurnOff(), and wsf::comm::ComponentHW::TurnOn().
| WsfPlatform * wsf::comm::Component::GetPlatform | ( | ) | const |
| WsfSimulation * wsf::comm::Component::GetSimulation | ( | ) | const |
References WsfComponentT< Comm >::GetComponentParent(), and WsfPlatformPart::GetSimulation().
Referenced by wsf::comm::ComponentHW_Subsurface::CanSendTo(), wsf::comm::ComponentHW::AltFrequencyChangeEvent::Execute(), wsf::comm::ComponentHW::Initialize(), wsf::comm::ProtocolIGMP::JoinGroup(), wsf::comm::ProtocolIGMP::LeaveGroup(), wsf::comm::ComponentHW::ScheduleAltFreqChange(), and wsf::comm::ComponentHW::SelectAlternateFrequency().
|
virtual |
Perform phase 1 initialization. This is called by WsfPlatform::Initialize() during phase 1 initialization of the platform. The component should complete validation of input data that could not be done by ProcessInput, as well as any other functions to prepare for simulation use (subject to the next paragraph).
The order in which components are initialized is defined by GetComponentInitializationOrder. In general a component implementation of this method should not be dependent on the state of another component, i.e.: it should not assume that the other components Initialize() method has been called. If such a dependency exists one should use Initialize2() if possible, or specify a value GetComponentInitializationOrder to force things to initialize in a particular order.
| aSimTime | The current simulation time. |
Reimplemented from WsfComponent.
Reimplemented in wsf::comm::ComponentHW, wsf::comm::ComponentHW_JTIDS, wsf::comm::ProtocolIGMP, wsf::comm::ProtocolInterface, and WsfEW_CommComponent.
|
virtual |
Perform phase 2 initialization. This is called by WsfPlatform::Initialize() during phase 2 of platform initialization. This method is typically used when a component may have some dependency on another component having completed its phase 1 initialization. The component should be ready for use in the simulation upon completion of this method.
The order in which components are initialized is defined by GetComponentInitializationOrder.
| aSimTime | The current simulation time. |
Reimplemented from WsfComponent.
Reimplemented in WsfEW_CommComponent.
|
inlinevirtual |
|
virtual |
Perform pre-initializion function. This is called by WsfPlatform::Initialize prior to actually initializing the components on a platform (i.e.: calling Initialize and Initialize2 for each component). The primary reason for this method is to allow components to add other components that will then be subsequently initialized. The component may examine the component list and add components, but it must not assume ANYTHING about the actual state of the component.
| aSimTime | The current simulation time. |
Reimplemented from WsfComponent.
|
virtual |
Evaluate the current input command and determine if it is one processed by the component. The component should get the current command from the input stream and determine if it is one that it recognizes. If it does not recognize the command then it should leave the command in the input stream and return false. If it does recognize the command then it should process the command and return true. If invalid arguments are encountered then it should throw an exception.
| aInput | The input stream. |
| UtInput::ExceptionBase | if an invalid input was encountered. |
Reimplemented from WsfComponent.
Reimplemented in wsf::comm::ComponentHW, wsf::comm::ComponentHW_JTIDS, wsf::comm::ComponentHW_LASER, wsf::comm::ComponentHW_Subsurface, wsf::comm::ProtocolIGMP, wsf::comm::ProtocolInterface, and WsfEW_CommComponent.
Referenced by wsf::comm::ComponentHW::ProcessInput().
|
static |
References Component(), wsf::comm::Comm::GetComponents(), and ok.
|
inlinevirtual |
Reimplemented in wsf::xio::CommComponent.
Referenced by wsf::comm::Comm::Receive().
|
static |
References Component(), wsf::comm::Comm::GetComponents(), and ok.
|
inlinevirtual |
Referenced by wsf::comm::Comm::Send().
|
inlinevirtual |
Reimplemented in wsf::comm::ProtocolIGMP.
|
inlinevirtual |
Reimplemented in wsf::comm::ComponentHW.
|
inlinevirtual |
Reimplemented in wsf::comm::ComponentHW.