ListManaged Component implements the urn:jaus:jss:mobility:ListManager service. More...
#include <ListManaged.h>
Inherits openjaus::core::Managed, and openjaus::mobility::ListManagerInterface.
Inherited by openjaus::mobility::GlobalPathSegmentDriver, openjaus::mobility::GlobalWaypointListDriver, openjaus::mobility::LocalPathSegmentDriver, and openjaus::mobility::LocalWaypointListDriver.
Public Member Functions | |
| ListManaged () | |
| virtual | ~ListManaged () |
| virtual mobility::ReportElement | getReportElement (QueryElement *queryElement) |
| Send a Report Element message with the requested element. | |
| virtual mobility::ReportElementList | getReportElementList (QueryElementList *queryElementList) |
| Send action for ReportElementList with input message QueryElementList. | |
| virtual mobility::ReportElementCount | getReportElementCount (QueryElementCount *queryElementCount) |
| Send action for ReportElementCount with input message QueryElementCount. | |
| virtual mobility::ConfirmElementRequest | getConfirmElementRequest (SetElement *setElement) |
| Send action for ConfirmElementRequest with input message SetElement. | |
| virtual mobility::ConfirmElementRequest | getConfirmElementRequest (DeleteElement *deleteElement) |
| Send action for ConfirmElementRequest with input message DeleteElement. | |
| virtual mobility::RejectElementRequest | getRejectElementRequest (SetElement *setElement) |
| Send action for RejectElementRequest with input message SetElement. | |
| virtual mobility::RejectElementRequest | getRejectElementRequest (DeleteElement *deleteElement) |
| Send action for RejectElementRequest with input message DeleteElement. | |
| virtual bool | setElement (SetElement *setElement) |
| Store the element(s) in the list with sequence specified by the previous and next element IDs. | |
| virtual bool | deleteElement (DeleteElement *deleteElement) |
| Remove the specified element(s) from the list. | |
| virtual bool | elementExists (QueryElement *queryElement) |
| True if the UID(s) specified in the message that triggered the transition exists in the list. | |
| virtual bool | elementExists (SetElement *setElement) |
| True if the UID(s) specified in the message that triggered the transition exists in the list. | |
| virtual bool | elementExists (DeleteElement *deleteElement) |
| True if the UID(s) specified in the message that triggered the transition exists in the list. | |
| virtual bool | isControllingListClient (SetElement *setElement) |
| isControllingListClient condition. | |
| virtual bool | isControllingListClient (DeleteElement *deleteElement) |
| isControllingListClient condition. | |
| virtual bool | isValidElementRequest (SetElement *setElement) |
| True if the resulting list will not be invalid as defined by the List Manager Service description and the receiving entity has sufficient memory to store the element(s). | |
| virtual bool | isElementSupported (SetElement *setElement) |
| False. | |
Protected Attributes | |
| ListManagerDefaultLoop | listManagerDefaultLoop |
| ListManagerControlledLoop | listManagerControlledLoop |
The ListManaged component provides an implementation of the following service(s). This component can be extended for customized functionality or used via instantiation.
The List Manager Service permits operations on a single ordered sequence of connected elements. It supports operations to add, replace or delete elements from the list, as well as querying the entire list or individual elements. Elements within the list are uniquely identified by the Element UID. The Element UID is used as an identifier only, and the value of the UID does not imply a sequence or order. When a new element is added to the list, the previous (parent) and next (child) elements are specified to denote sequencing, similar to a doubly linked list. Circular lists can be created when the last element in the list specifies the first element as a child. A list is considered valid when the following conditions are met: 1) A list must contain exactly one head element which is defined as having a previous (parent) identifier of zero (0). 2) For non-circular lists, the list must contain exactly one tail element which is defined as having a next (child) identifier of zero (0). 3) Each element must reference existing previous (parent) and next (child) elements, or zero. 4) Elements cannot be orphaned. An orphan is defined as an element that is not connected in any way to the other elements in the list. 5) The previous (parent) and next(child) reference for each element cannot point to itself. The list manager service is designed to be inherited, and is trivial on its own. Derived services should redefine isElementSupported condition as shown by example in the Global Waypoint List Driver.
URI: urn:jaus:jss:mobility:ListManager
Version: 1.0
| openjaus::mobility::ListManaged::ListManaged | ( | ) |
| openjaus::mobility::ListManaged::~ListManaged | ( | ) | [virtual] |
| bool openjaus::mobility::ListManaged::deleteElement | ( | DeleteElement * | deleteElement | ) | [virtual] |
The service should modify the NextUID of the previous element and/or the Previous UID of the next element to reflect the updated sequence. Remove the specified element(s) from the list. The service should modify the NextUID of the previous element and/or the Previous UID of the next element to reflect the updated sequence.
| [in] | deleteElement | - Input Trigger. |
Implements openjaus::mobility::ListManagerInterface.
| bool openjaus::mobility::ListManaged::elementExists | ( | QueryElement * | queryElement | ) | [virtual] |
True if the UID(s) specified in the message that triggered the transition exists in the list.
| [in] | queryElement | - Input Trigger. |
Implements openjaus::mobility::ListManagerInterface.
| bool openjaus::mobility::ListManaged::elementExists | ( | SetElement * | setElement | ) | [virtual] |
True if the UID(s) specified in the message that triggered the transition exists in the list.
| [in] | setElement | - Input Trigger. |
Implements openjaus::mobility::ListManagerInterface.
| bool openjaus::mobility::ListManaged::elementExists | ( | DeleteElement * | deleteElement | ) | [virtual] |
True if the UID(s) specified in the message that triggered the transition exists in the list.
| [in] | deleteElement | - Input Trigger. |
Implements openjaus::mobility::ListManagerInterface.
| mobility::ConfirmElementRequest openjaus::mobility::ListManaged::getConfirmElementRequest | ( | DeleteElement * | deleteElement | ) | [virtual] |
Send action for ConfirmElementRequest with input message DeleteElement.
| [in] | deleteElement | - Input Trigger. |
Implements openjaus::mobility::ListManagerInterface.
| mobility::ConfirmElementRequest openjaus::mobility::ListManaged::getConfirmElementRequest | ( | SetElement * | setElement | ) | [virtual] |
Send action for ConfirmElementRequest with input message SetElement.
| [in] | setElement | - Input Trigger. |
Implements openjaus::mobility::ListManagerInterface.
| mobility::RejectElementRequest openjaus::mobility::ListManaged::getRejectElementRequest | ( | SetElement * | setElement | ) | [virtual] |
Send action for RejectElementRequest with input message SetElement.
| [in] | setElement | - Input Trigger. |
Implements openjaus::mobility::ListManagerInterface.
| mobility::RejectElementRequest openjaus::mobility::ListManaged::getRejectElementRequest | ( | DeleteElement * | deleteElement | ) | [virtual] |
Send action for RejectElementRequest with input message DeleteElement.
| [in] | deleteElement | - Input Trigger. |
Implements openjaus::mobility::ListManagerInterface.
| mobility::ReportElement openjaus::mobility::ListManaged::getReportElement | ( | QueryElement * | queryElement | ) | [virtual] |
Send a Report Element message with the requested element.
| [in] | queryElement | - Input Trigger. |
Implements openjaus::mobility::ListManagerInterface.
| mobility::ReportElementCount openjaus::mobility::ListManaged::getReportElementCount | ( | QueryElementCount * | queryElementCount | ) | [virtual] |
Send action for ReportElementCount with input message QueryElementCount.
| [in] | queryElementCount | - Input Trigger. |
Implements openjaus::mobility::ListManagerInterface.
| mobility::ReportElementList openjaus::mobility::ListManaged::getReportElementList | ( | QueryElementList * | queryElementList | ) | [virtual] |
Send action for ReportElementList with input message QueryElementList.
| [in] | queryElementList | - Input Trigger. |
Implements openjaus::mobility::ListManagerInterface.
| bool openjaus::mobility::ListManaged::isControllingListClient | ( | DeleteElement * | deleteElement | ) | [virtual] |
isControllingListClient condition.
| [in] | deleteElement | - Input Trigger. |
Implements openjaus::mobility::ListManagerInterface.
| bool openjaus::mobility::ListManaged::isControllingListClient | ( | SetElement * | setElement | ) | [virtual] |
isControllingListClient condition.
| [in] | setElement | - Input Trigger. |
Implements openjaus::mobility::ListManagerInterface.
| bool openjaus::mobility::ListManaged::isElementSupported | ( | SetElement * | setElement | ) | [virtual] |
This condition must be overridden by derived services to allow the list to be populated. False. This condition must be overridden by derived services to allow the list to be populated.
| [in] | setElement | - Input Trigger. |
Implements openjaus::mobility::ListManagerInterface.
| bool openjaus::mobility::ListManaged::isValidElementRequest | ( | SetElement * | setElement | ) | [virtual] |
True if the resulting list will not be invalid as defined by the List Manager Service description and the receiving entity has sufficient memory to store the element(s).
| [in] | setElement | - Input Trigger. |
Implements openjaus::mobility::ListManagerInterface.
| bool openjaus::mobility::ListManaged::setElement | ( | SetElement * | setElement | ) | [virtual] |
If this action represents an insert or append into an existing list, the service should modify the NextUID of the previous element and/or the Previous UID of the next element to reflect the updated sequence. Store the element(s) in the list with sequence specified by the previous and next element IDs. If this action represents an insert or append into an existing list, the service should modify the NextUID of the previous element and/or the Previous UID of the next element to reflect the updated sequence.
| [in] | setElement | - Input Trigger. |
Implements openjaus::mobility::ListManagerInterface.
1.7.1