|
WSF
|
#include <type_traits>

Go to the source code of this file.
Classes | |
| struct | WsfComponentRole< T > |
| struct | WsfComponentRole< T >::always_false< U > |
| struct | cCOMPONENT_ROLE< T > |
Macros | |
| #define | WSF_DECLARE_COMPONENT_ROLE_TYPE(TYPE, ROLE) |
| #define WSF_DECLARE_COMPONENT_ROLE_TYPE | ( | TYPE, | |
| ROLE ) |
Helper macro to declare a component role for a type by specializing WsfComponentRole template. If TYPE is in a namespace, the macro has to be outside the namespace: namespace wsf { namespace comm { class Comm { ... }; ... } } WSF_DECLARE_COMPONENT_ROLE_TYPE(wsf::comm::Comm, cWSF_COMPONENT_COMM)
Referenced by WSF_DECLARE_COMPONENT_ROLE_TYPE(), and WSF_DECLARE_COMPONENT_ROLE_TYPE().
| anonymous enum |
The standard component roles.
Every component type has one or more 'roles', each of which is assigned a number. These numbers are defined by committee (much like DIS enumerations), with several guidelines as follows:
A component may have multiple roles that it returns in the method WsfComponent::GetComponentRoles. The first entry in the list is its 'primary' role while others are used represent other roles in the inheritance hierarchy of the component.
For instance, WsfSensor returns the following list:
The definitions of multiple roles allows one to invoke WsfComponent::QueryInterface to retrieve a pointer to a specific interface.
| Enumerator | |
|---|---|
| cWSF_COMPONENT_NULL | A special entry to indicate the end of the list of roles assumed by a component. |
| cWSF_COMPONENT_PLATFORM | The component is or derives from WsfPlatform. |
| cWSF_COMPONENT_PLATFORM_PART | The component derives from WsfPlatformPart. |
| cWSF_COMPONENT_ARTICULATED_PART | The component derives from WsfArticulatedPart. |
| cWSF_COMPONENT_MOVER | A 'mover' component (WsfMover). |
| cWSF_COMPONENT_FUEL | A 'fuel' component (WsfFuel). |
| cWSF_COMPONENT_COMM | A 'comm' component (WsfComm). |
| cWSF_COMPONENT_COMM_ROUTER | A 'router' component (WsfCommRouter). |
| cWSF_COMPONENT_PROCESSOR | A 'processor' component (WsfProcessor). |
| cWSF_COMPONENT_SENSOR | A 'sensor' component (WsfSensor). |
| cWSF_COMPONENT_VISUAL | A 'visual_part' component (WsfVisualPart). |
| cWSF_COMPONENT_TRACK_MANAGER | A 'track manager' component (WsfTrackManager). |
| cWSF_COMPONENT_NAVIGATION_ERRORS | A 'navigation_error' component (WsfNavigationErrors). |
| cWSF_COMPONENT_COMMAND_CHAIN | A 'command_chain' component (WsfCommandChain). |
| cWSF_COMPONENT_ZONE | A 'zone' component (WsfZone). |
| cWSF_COMPONENT_GEOPOINT | A 'geopoint' component (WsfGeoPoint). |
| cWSF_COMPONENT_CALLBACK | A 'callback' component (WsfCallback). |
| cWSF_COMPONENT_INTERSECT_MESH | A 'intersect_mesh" component (WsfIntersectMesh). |
| cWSF_COMPONENT_THERMAL_SYSTEM | A 'thermal system' component. |
| cWSF_COMPONENT_COMM_HW | |
| cWSF_COMPONENT_COMM_XIO | |
| cWSF_COMPONENT_COMM_PROTOCOL | |
| cWSF_COMPONENT_COMM_PROTOCOL_IGMP | |
| cWSF_COMPONENT_COMM_ROUTER_PROTOCOL | |
| cWSF_COMPONENT_COMM_ROUTER_PROTOCOL_LEGACY | |
| cWSF_COMPONENT_COMM_ROUTER_PROTOCOL_RIPv2 | |
| cWSF_COMPONENT_COMM_ROUTER_PROTOCOL_OSPF | |
| cWSF_COMPONENT_COMM_ROUTER_PROTOCOL_MULTICAST | |
| cWSF_COMPONENT_COMM_ROUTER_PROTOCOL_AD_HOC | |
| cWSF_COMPONENT_COMM_MEDIUM_CONTAINER_COMM | |
| cWSF_COMPONENT_COMM_MEDIUM_CONTAINER_ROUTER | |
| cWSF_COMPONENT_EM_XMTR | |
| cWSF_COMPONENT_EM_RCVR | WSFEM_Rcvr. |
| cWSF_COMPONENT_EM_INTERACTION | An extension to WsfEM_Interaction. |
| cWSF_COMPONENT_PROCESSOR_COMPONENT | An extension to WsfProcessor. |
| cWSF_COMPONENT_TASK_MANAGER | An extension to WsfTaskManager. |
| cWSF_COMPONENT_TASK_MANAGER_COMPONENT | A Component on a WsfTaskManager. |
| cWSF_COMPONENT_SENSOR_COMPONENT | A Component on a WsfSensor. |
| cWSF_COMPONENT_SENSOR_EXCLUSION | A Solar or lunar exclusion angle component. |
| cWSF_COMPONENT_SENSOR_MOON_LOS | A Component enabling Moon LOS checks. |
| cWSF_COMPONENT_SOLAR_ILLUMINATION | Solar Illumination command sensor component. |
| cWSF_COMPONENT_SOLAR_ELEVATION_AT_TARGET | A solar elevation from target sensor component. |
| anonymous enum |
These are some reference component initialization orders. Gaps are left so new components can reference these values and insert themselves where needed. Note that unless an order is assigned, all components with no order will be assigned a value of 0 and will be initialized in the order in the input file.
These are signed ints so they have values of about [-2 billion, +2 billion].