Package rst.communicationpatterns

Data types related to communication at the integration level.

One example is TaskState which is used in the task state pattern.

See also

Corresponding data types in ROS
http://www.ros.org/wiki/actionlib_msgs

Messages

digraph message_graph { fontname="Arial"; fontsize=11; stylesheet="../_static/graphs.css"; node [fontsize=11,fontname="Arial"] edge [fontsize=11,fontname="Arial"] "1" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskStateCollection" TITLE="Structure rst.communicationpatterns.TaskStateCollection" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/message.svg"></IMG></TD><TD ALIGN="left">TaskStateCollection</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState" TITLE="Structure rst.communicationpatterns.TaskState" TARGET="_parent">TaskState</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskStateCollection.element" TITLE="Field rst.communicationpatterns.TaskStateCollection.element" TARGET="_parent" PORT="element">element</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "2" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState" TITLE="Structure rst.communicationpatterns.TaskState" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/message.svg"></IMG></TD><TD ALIGN="left">TaskState</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.Origin" TITLE="Enum rst.communicationpatterns.TaskState.Origin" TARGET="_parent">Origin</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.origin" TITLE="Field rst.communicationpatterns.TaskState.origin" TARGET="_parent" PORT="origin">origin</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.State" TITLE="Enum rst.communicationpatterns.TaskState.State" TARGET="_parent">State</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.state" TITLE="Field rst.communicationpatterns.TaskState.state" TARGET="_parent" PORT="state">state</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-UINT32.html#UINT32" TITLE="Fundamental UINT32" TARGET="_parent">UINT32</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.serial" TITLE="Field rst.communicationpatterns.TaskState.serial" TARGET="_parent" PORT="serial">serial</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-OCTET-VECTOR.html#OCTET-VECTOR" TITLE="Fundamental OCTET-VECTOR" TARGET="_parent">OCTET-VECTOR</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.wire_schema" TITLE="Field rst.communicationpatterns.TaskState.wire_schema" TARGET="_parent" PORT="wire_schema">wire_schema</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-OCTET-VECTOR.html#OCTET-VECTOR" TITLE="Fundamental OCTET-VECTOR" TARGET="_parent">OCTET-VECTOR</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.payload" TITLE="Field rst.communicationpatterns.TaskState.payload" TARGET="_parent" PORT="payload">payload</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "4" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.State" TITLE="Enum rst.communicationpatterns.TaskState.State" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/enum.svg"></IMG></TD><TD ALIGN="left">State</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.State.INITIATED" TITLE="Value rst.communicationpatterns.TaskState.State.INITIATED" TARGET="_parent">INITIATED</TD><TD ALIGN="right" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.State.INITIATED" TITLE="Value rst.communicationpatterns.TaskState.State.INITIATED" TARGET="_parent">0</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.State.ACCEPTED" TITLE="Value rst.communicationpatterns.TaskState.State.ACCEPTED" TARGET="_parent">ACCEPTED</TD><TD ALIGN="right" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.State.ACCEPTED" TITLE="Value rst.communicationpatterns.TaskState.State.ACCEPTED" TARGET="_parent">1</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.State.REJECTED" TITLE="Value rst.communicationpatterns.TaskState.State.REJECTED" TARGET="_parent">REJECTED</TD><TD ALIGN="right" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.State.REJECTED" TITLE="Value rst.communicationpatterns.TaskState.State.REJECTED" TARGET="_parent">2</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.State.UPDATE" TITLE="Value rst.communicationpatterns.TaskState.State.UPDATE" TARGET="_parent">UPDATE</TD><TD ALIGN="right" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.State.UPDATE" TITLE="Value rst.communicationpatterns.TaskState.State.UPDATE" TARGET="_parent">3</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.State.UPDATE_REJECTED" TITLE="Value rst.communicationpatterns.TaskState.State.UPDATE_REJECTED" TARGET="_parent">UPDATE_REJECTED</TD><TD ALIGN="right" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.State.UPDATE_REJECTED" TITLE="Value rst.communicationpatterns.TaskState.State.UPDATE_REJECTED" TARGET="_parent">4</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.State.ABORT" TITLE="Value rst.communicationpatterns.TaskState.State.ABORT" TARGET="_parent">ABORT</TD><TD ALIGN="right" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.State.ABORT" TITLE="Value rst.communicationpatterns.TaskState.State.ABORT" TARGET="_parent">5</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.State.ABORTED" TITLE="Value rst.communicationpatterns.TaskState.State.ABORTED" TARGET="_parent">ABORTED</TD><TD ALIGN="right" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.State.ABORTED" TITLE="Value rst.communicationpatterns.TaskState.State.ABORTED" TARGET="_parent">6</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.State.ABORT_FAILED" TITLE="Value rst.communicationpatterns.TaskState.State.ABORT_FAILED" TARGET="_parent">ABORT_FAILED</TD><TD ALIGN="right" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.State.ABORT_FAILED" TITLE="Value rst.communicationpatterns.TaskState.State.ABORT_FAILED" TARGET="_parent">7</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.State.RESULT_AVAILABLE" TITLE="Value rst.communicationpatterns.TaskState.State.RESULT_AVAILABLE" TARGET="_parent">RESULT_AVAILABLE</TD><TD ALIGN="right" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.State.RESULT_AVAILABLE" TITLE="Value rst.communicationpatterns.TaskState.State.RESULT_AVAILABLE" TARGET="_parent">8</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.State.COMPLETED" TITLE="Value rst.communicationpatterns.TaskState.State.COMPLETED" TARGET="_parent">COMPLETED</TD><TD ALIGN="right" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.State.COMPLETED" TITLE="Value rst.communicationpatterns.TaskState.State.COMPLETED" TARGET="_parent">9</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.State.FAILED" TITLE="Value rst.communicationpatterns.TaskState.State.FAILED" TARGET="_parent">FAILED</TD><TD ALIGN="right" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.State.FAILED" TITLE="Value rst.communicationpatterns.TaskState.State.FAILED" TARGET="_parent">10</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "3" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.Origin" TITLE="Enum rst.communicationpatterns.TaskState.Origin" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/enum.svg"></IMG></TD><TD ALIGN="left">Origin</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.Origin.SUBMITTER" TITLE="Value rst.communicationpatterns.TaskState.Origin.SUBMITTER" TARGET="_parent">SUBMITTER</TD><TD ALIGN="right" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.Origin.SUBMITTER" TITLE="Value rst.communicationpatterns.TaskState.Origin.SUBMITTER" TARGET="_parent">0</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.Origin.HANDLER" TITLE="Value rst.communicationpatterns.TaskState.Origin.HANDLER" TARGET="_parent">HANDLER</TD><TD ALIGN="right" HREF="../generated/stable/package-rst-communicationpatterns.html#rst.communicationpatterns.TaskState.Origin.HANDLER" TITLE="Value rst.communicationpatterns.TaskState.Origin.HANDLER" TARGET="_parent">1</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "1":element -> "2" []; "2" -> "3" []; "2" -> "4" []; "2":state -> "4" []; "2":origin -> "3" []; }

clearer: should be made invisible via css

Message TaskStateCollection

class rst.communicationpatterns.TaskStateCollection

Collection of TaskState instances.

Auto-generated.

element
Type:array of rst.communicationpatterns.TaskState

The individual elements of the collection.

Constraints regarding the empty collection, sorting, duplicated entries etc. are use case specific.

Download this file

message TaskStateCollection {

    /**
     * The individual elements of the collection.
     *
     * Constraints regarding the empty collection, sorting, duplicated
     * entries etc. are use case specific.
     */
    repeated TaskState element = 1;

}

Message TaskState

class rst.communicationpatterns.TaskState

Represents the initiation or update of a potentially long-running task.

The task is represented as a current state (state field) and a datum or “specification” (represented by the wire_schema and payload fields).

See also

A detailed description of the task state protocol
http://opensource.cit-ec.de/projects/xtt/wiki/TaskStateProtocol

Code author: Jan Moringen <jmoringe@techfak.uni-bielefeld.de>

@create_collection

origin
Type:rst.communicationpatterns.TaskState.Origin

Describes the origin of the update.

Has to be SUBMITTER when the task is being initiated.

state
Type:rst.communicationpatterns.TaskState.State

State to which the task should be updated.

Has to be INITIATED when the task is being initiated.

serial
Type:UINT32

TODO

wire_schema
Type:OCTET-VECTOR

Type of the payload blob.

This field and the payload field are intended to be processed by a (de)serialization mechanism that decodes/encodes the payload blob according to the type information in wireSchema.

Todo

type should be ascii-string

payload
Type:OCTET-VECTOR

See wire_schema.

Download this file

message TaskState {

    /**
     * Possible states of the task an update of which the @ref
     * .TaskState object represents.
     *
     * Initial task submission:
     *
     *   Applicable in states: none (since initial submission)
     *
     *   Possible values of @ref .state:
     *
     *   * @ref .INITIATED
     *   * @ref .ACCEPTED
     *   * @ref .REJECTED
     *
     * Updated of an accepted task:
     *
     *   Applicable in states: @ref .ACCEPTED
     *
     *   Possible values of @ref .state:
     *
     *   * @ref .UPDATE
     *   * @ref .UPDATE_REJECTED
     *
     * Aborting an accepted task:
     *
     *   Applicable in states: @ref .ACCEPTED
     *
     *   Possible values of @ref .state:
     *
     *   * @ref .ABORT
     *   * @ref .ABORTED
     *   * @ref .ABORT_FAILED
     *
     * Final states:
     *
     *   * @ref .RESULT_AVAILABLE
     *   * @ref .COMPLETED
     *   * @ref .FAILED
     *
     */
    enum State {

        /**
         * Client submits specification with @ref .INITIATED state.
         *
         * Server accepts or rejects task and publishes specification
         * with @ref .ACCEPTED or @ref .REJECTED state accordingly.
         */
        INITIATED                = 0;

        /**
         * See @ref .INITIATED.
         */
        ACCEPTED                 = 1;

        /**
         * See @ref .INITIATED.
         */
        REJECTED                 = 2;

        /**
         * Client publishes (modified) specification with @ref .UPDATE
         * state.
         *
         * Server accepts or rejects the update and publishes
         * specification with @ref .ACCEPTED or @ref .UPDATE_REJECTED
         * state accordingly.
         */
        UPDATE             = 3;

        /**
         * See @ref .UPDATE.
         */
        UPDATE_REJECTED    = 4;

        /**
         * Client publishes specification with @ref .ABORT state to
         * request execution of the task to be aborted.
         *
         * Server accept or rejects this and publishes specification
         * with @ref .ABORTED or @ref .ABORT_FAILED state accordingly.
         */
        ABORT                = 5;

        /**
         * See @ref .ABORT.
         */
        ABORTED              = 6;

        /**
         * See @ref .ABORT.
         */
        ABORT_FAILED         = 7;

        /**
         * @todo document
         */
        RESULT_AVAILABLE = 8;

        /**
         * See @ref .RESULT_AVAILABLE.
         */
        COMPLETED        = 9;

        /**
         * See @ref .RESULT_AVAILABLE.
         */
        FAILED           = 10;
    }

    /**
     * Describes the role of the component doing the update.
     */
    enum Origin {

        /**
         * The task state update is performed by the submitter.
         */
        SUBMITTER = 0;

        /**
         * The task state update is performed by the handler.
         */
        HANDLER   = 1;
    }

    /**
     * Describes the origin of the update.
     *
     * Has to be @ref .Origin.SUBMITTER when the task is being
     * initiated.
     */
    required Origin origin         = 1;

    /**
     * State to which the task should be updated.
     *
     * Has to be @ref .State.INITIATED when the task is being
     * initiated.
     */
    required State    state        = 2;

    /**
     * TODO
     */
    required uint32 serial         = 3;

    /**
     * Type of the payload blob.
     *
     * This field and the @ref .payload field are intended to be
     * processed by a (de)serialization mechanism that decodes/encodes
     * the payload blob according to the type information in
     * wireSchema.
     *
     * @todo "type should be ascii-string"
     */
    required bytes    wire_schema = 4;

    /**
     * See @ref .wire_schema.
     */
    required bytes    payload     = 5;

}

Message State

class rst.communicationpatterns.TaskState.State

Possible states of the task an update of which the TaskState object represents.

Initial task submission:

Applicable in states: none (since initial submission)

Possible values of state:

  • INITIATED
  • ACCEPTED
  • REJECTED

Updated of an accepted task:

Applicable in states: ACCEPTED

Possible values of state:

  • UPDATE
  • UPDATE_REJECTED

Aborting an accepted task:

Applicable in states: ACCEPTED

Possible values of state:

  • ABORT
  • ABORTED
  • ABORT_FAILED

Final states:

  • RESULT_AVAILABLE
  • COMPLETED
  • FAILED
INITIATED
= 0

Client submits specification with INITIATED state.

Server accepts or rejects task and publishes specification with ACCEPTED or REJECTED state accordingly.

ACCEPTED
= 1

See INITIATED.

REJECTED
= 2

See INITIATED.

UPDATE
= 3

Client publishes (modified) specification with UPDATE state.

Server accepts or rejects the update and publishes specification with ACCEPTED or UPDATE_REJECTED state accordingly.

UPDATE_REJECTED
= 4

See UPDATE.

ABORT
= 5

Client publishes specification with ABORT state to request execution of the task to be aborted.

Server accept or rejects this and publishes specification with ABORTED or ABORT_FAILED state accordingly.

ABORTED
= 6

See ABORT.

ABORT_FAILED
= 7

See ABORT.

RESULT_AVAILABLE
= 8

Todo

document

COMPLETED
= 9

See RESULT_AVAILABLE.

FAILED
= 10

See RESULT_AVAILABLE.

Download this file

    enum State {

        /**
         * Client submits specification with @ref .INITIATED state.
         *
         * Server accepts or rejects task and publishes specification
         * with @ref .ACCEPTED or @ref .REJECTED state accordingly.
         */
        INITIATED                = 0;

        /**
         * See @ref .INITIATED.
         */
        ACCEPTED                 = 1;

        /**
         * See @ref .INITIATED.
         */
        REJECTED                 = 2;

        /**
         * Client publishes (modified) specification with @ref .UPDATE
         * state.
         *
         * Server accepts or rejects the update and publishes
         * specification with @ref .ACCEPTED or @ref .UPDATE_REJECTED
         * state accordingly.
         */
        UPDATE             = 3;

        /**
         * See @ref .UPDATE.
         */
        UPDATE_REJECTED    = 4;

        /**
         * Client publishes specification with @ref .ABORT state to
         * request execution of the task to be aborted.
         *
         * Server accept or rejects this and publishes specification
         * with @ref .ABORTED or @ref .ABORT_FAILED state accordingly.
         */
        ABORT                = 5;

        /**
         * See @ref .ABORT.
         */
        ABORTED              = 6;

        /**
         * See @ref .ABORT.
         */
        ABORT_FAILED         = 7;

        /**
         * @todo document
         */
        RESULT_AVAILABLE = 8;

        /**
         * See @ref .RESULT_AVAILABLE.
         */
        COMPLETED        = 9;

        /**
         * See @ref .RESULT_AVAILABLE.
         */
        FAILED           = 10;
    }

Message Origin

class rst.communicationpatterns.TaskState.Origin

Describes the role of the component doing the update.

SUBMITTER
= 0

The task state update is performed by the submitter.

HANDLER
= 1

The task state update is performed by the handler.

Download this file

    enum Origin {

        /**
         * The task state update is performed by the submitter.
         */
        SUBMITTER = 0;

        /**
         * The task state update is performed by the handler.
         */
        HANDLER   = 1;
    }