|
WSF
|
#include <WsfCommProtocolLegacy.hpp>


Public Member Functions | |
| ProtocolLegacy ()=default | |
| ~ProtocolLegacy () override=default | |
| Public Member Functions inherited from wsf::comm::router::ProtocolInterface | |
| ProtocolInterface ()=default | |
| ~ProtocolInterface () override=default | |
| const char * | GetScriptClassName () const override |
| WsfStringId | GetComponentName () const override final |
| bool | ProcessInput (UtInput &aInput) override |
| bool | operator< (const ProtocolInterface &aRhs) const |
| virtual bool | Receive (double aSimTime, const Address &aReceivingInterface, Message &aMessage, bool &aOverrideForward) |
| virtual void | PerfectCommAdded (double aSimTime, Comm *aCommPtr) |
| virtual void | PerfectCommRemoved (double aSimTime, Comm *aCommPtr) |
| virtual void | PerfectNetworkAdded (double aSimTime, Network *aNetworkPtr) |
| virtual void | PerfectNetworkRemoved (double aSimTime, Network *aNetworkPtr) |
| virtual void | PerfectCommEnabled (double aSimTime, Comm *aCommPtr) |
| virtual void | PerfectCommDisabled (double aSimTime, Comm *aCommPtr) |
| virtual void | PerfectConnectionAdded (double aSimTime, const Address &aSourceAddress, const Address &aDestinationAddress) |
| virtual void | PerfectConnectionRemoved (double aSimTime, const Address &aSourceAddress, const Address &aDestinationAddress) |
| virtual void | PerfectConnectionEnabled (double aSimTime, const Address &aSourceAddress, const Address &aDestinationAddress) |
| virtual void | PerfectConnectionDisabled (double aSimTime, const Address &aSourceAddress, const Address &aDestinationAddress) |
| Public Member Functions inherited from wsf::comm::router::RouterComponent | |
| RouterComponent ()=default | |
| ~RouterComponent () override=default | |
| Router * | GetRouter () const |
| WsfSimulation * | GetSimulation () const |
| NetworkManager * | GetNetworkManager () const |
| virtual void | PendingStart () |
| virtual bool | Initialize (double aSimTime) |
| virtual bool | Initialize2 (double aSimTime) |
| virtual bool | PreInitialize (double aSimTime) |
| virtual bool | ProcessInput (UtInput &aInput) |
| Public Member Functions inherited from WsfComponentT< Router > | |
| 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 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 () |
| Public Member Functions inherited from WsfObject | |
| WsfObject () | |
| This is the constructor for the WsfObject class. | |
| ~WsfObject () override | |
| This is the destructor for the WsfObject class. | |
| const char * | GetScriptClassName () const override |
| const std::string & | GetType () const |
| WsfStringId | GetTypeId () const |
| Get the string ID of the 'type' of the object. | |
| void | SetType (WsfStringId aType) |
| const std::string & | GetBaseType () const |
| WsfStringId | GetBaseTypeId () const |
| const TypeList & | GetTypeList () const |
| bool | IsA_TypeOf (WsfStringId aType) const |
| WsfObject & | operator= (const WsfObject &aRhs) |
| Assignment operator. | |
| template<typename T> | |
| void | Serialize (T &aBuff) |
| For XIO (de)serialization. | |
| const std::string & | GetName () const |
| WsfStringId | GetNameId () const |
| void | SetName (WsfStringId aName) |
Static Public Member Functions | |
| static ProtocolLegacy * | Find (const Router &aParent) |
| static ProtocolLegacy * | FindOrCreate (Router &aParent) |
Graph methods | |
This protocol uses truth, via the network manager, at all times. We don't propagate the truth, because we aren't keeping a local copy and using the network manager's graph directly. We don't callbacks acting on this graph, because this graph is the same one pushing the notifications, and has already been updated. | |
| bool | ShouldPropagateTruth () const override |
| graph::Graph * | GetGraph () const override |
| bool | Initialize (double aSimTime) override |
Required ProtocolInterface interface. | |
| WsfComponent * | CloneComponent () const override |
| const int * | GetComponentRoles () const override |
| void * | QueryInterface (int aRole) override |
| int | GetPriority () const override |
| ProtocolLegacy * | Clone () const override |
| bool | Send (double aSimTime, Router::SendData &aData) override |
| std::vector< Address > | Routing (double aSimTime, const Address &aSendingInterface, size_t &aHopNumber, double &aCost, const Message &aMessage) override |
| const char * | GetScriptClassName () const override |
| void | Setup () override |
Additional Inherited Members | |
| Public Types inherited from WsfComponentT< Router > | |
| typedef Router | ParentType |
| This is needed to support the WsfComponentList template. | |
| Public Types inherited from WsfObject | |
| typedef std::vector< WsfStringId > | TypeList |
| The list of types returned by GetTypeList. | |
| WsfObject (const WsfObject &aSrc) | |
| Copy constructor (for Clone()). | |
|
default |
Referenced by Clone(), CloneComponent(), Find(), FindOrCreate(), and ~ProtocolLegacy().
|
overridedefault |
References Clone(), CloneComponent(), GetComponentRoles(), GetPriority(), ProtocolLegacy(), QueryInterface(), Routing(), and Send().
|
overridevirtual |
Return a copy of this object. Must be implemented by all derived types. If cloning is impossible, a WsfUncloneableException should be thrown.
Implements wsf::comm::router::ProtocolInterface.
References ProtocolLegacy().
Referenced by ~ProtocolLegacy().
|
overridevirtual |
Clones a component. May return null if component does not support clone.
Implements wsf::comm::router::ProtocolInterface.
References ProtocolLegacy().
Referenced by ~ProtocolLegacy().
|
static |
References WsfComponentList::GetComponent(), wsf::comm::router::Router::GetComponents(), and ProtocolLegacy().
Referenced by FindOrCreate().
|
static |
|
overridevirtual |
Returns a zero-terminated array of component roles. Note that the array should be in decreasing order of specificity and should generally the inheritance hierarchy. The first entry should be the components 'primary' role. For example a sensor would do the following:
Implements wsf::comm::router::ProtocolInterface.
References cWSF_COMPONENT_COMM_ROUTER_PROTOCOL, cWSF_COMPONENT_COMM_ROUTER_PROTOCOL_LEGACY, and cWSF_COMPONENT_NULL.
Referenced by ~ProtocolLegacy().
|
inlineoverridevirtual |
Implements wsf::comm::router::ProtocolInterface.
Referenced by Initialize(), and Routing().
|
overridevirtual |
Required query for protocol priority. Protocols are evaluated in order based on their assigned priorities. A lower value indicates a higher priority.
Implements wsf::comm::router::ProtocolInterface.
References wsf::comm::cLEGACY.
Referenced by ~ProtocolLegacy().
|
inlineoverride |
|
overridevirtual |
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. |
Set the graph now, if not already set.
Reimplemented from wsf::comm::router::ProtocolInterface.
References WsfSimulation::GetCommNetworkManager(), wsf::comm::NetworkManager::GetGraph(), GetGraph(), and wsf::comm::router::RouterComponent::GetSimulation().
|
overridevirtual |
Requests a component's role interface. A component can support one or more roles.
| aRole | The role whose interface is to be returned. |
Implements wsf::comm::router::ProtocolInterface.
References cWSF_COMPONENT_COMM_ROUTER_PROTOCOL, cWSF_COMPONENT_COMM_ROUTER_PROTOCOL_LEGACY, and wsf::comm::router::ProtocolInterface::ProtocolInterface().
Referenced by ~ProtocolLegacy().
|
overridevirtual |
The routing method is used by the router to determine the route based on the protocol defined routing algorithm. A return of an empty vector indicates that no path was found. The router will utilize any of its available interfaces to find a valid path.
Short circuit immediately if the incremented number of hops (possible due to recursive calls) exceeds the allowable number of hops set by the originating router call.
Implements wsf::comm::router::ProtocolInterface.
References wsf::comm::graph::Graph::FindPath(), GetGraph(), wsf::comm::router::RouterComponent::GetRouter(), and wsf::comm::Message::SourceMessage().
Referenced by Send(), and ~ProtocolLegacy().
|
overridevirtual |
Reimplemented from wsf::comm::router::ProtocolInterface.
References wsf::comm::Comm::GetAddress(), wsf::comm::router::Router::SendData::GetMessages(), wsf::comm::router::Router::SendData::GetXmtr(), Routing(), and wsf::comm::router::Router::SendData::SetAbortProcessing().
Referenced by ~ProtocolLegacy().
|
overridevirtual |
Reimplemented from wsf::comm::router::RouterComponent.
References WsfSimulation::GetCommNetworkManager(), wsf::comm::NetworkManager::GetGraph(), and wsf::comm::router::RouterComponent::GetSimulation().
|
inlineoverridevirtual |
Implements wsf::comm::router::ProtocolInterface.