Package rst.communicationpatterns

Not documented

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/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation" TITLE="Message rst.communicationpatterns.ResourceAllocation" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/message-sandbox.svg"></IMG></TD><TD ALIGN="left">ResourceAllocation</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-__rosetta-ASCII-STRING.html#ASCII-STRING" TITLE="Fundamental ASCII-STRING" TARGET="_parent">ASCII-STRING</TD><TD ALIGN="left" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.id" TITLE="Field rst.communicationpatterns.ResourceAllocation.id" TARGET="_parent" PORT="id">id</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.State" TITLE="Enum rst.communicationpatterns.ResourceAllocation.State" TARGET="_parent">State</TD><TD ALIGN="left" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.state" TITLE="Field rst.communicationpatterns.ResourceAllocation.state" TARGET="_parent" PORT="state">state</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.Priority" TITLE="Enum rst.communicationpatterns.ResourceAllocation.Priority" TARGET="_parent">Priority</TD><TD ALIGN="left" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.priority" TITLE="Field rst.communicationpatterns.ResourceAllocation.priority" TARGET="_parent" PORT="priority">priority</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/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.importance" TITLE="Field rst.communicationpatterns.ResourceAllocation.importance" TARGET="_parent" PORT="importance">importance</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.Initiator" TITLE="Enum rst.communicationpatterns.ResourceAllocation.Initiator" TARGET="_parent">Initiator</TD><TD ALIGN="left" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.initiator" TITLE="Field rst.communicationpatterns.ResourceAllocation.initiator" TARGET="_parent" PORT="initiator">initiator</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.Policy" TITLE="Enum rst.communicationpatterns.ResourceAllocation.Policy" TARGET="_parent">Policy</TD><TD ALIGN="left" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.policy" TITLE="Field rst.communicationpatterns.ResourceAllocation.policy" TARGET="_parent" PORT="policy">policy</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-timing.html#rst.timing.Interval" TITLE="Message rst.timing.Interval" TARGET="_parent">Interval</TD><TD ALIGN="left" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.slot" TITLE="Field rst.communicationpatterns.ResourceAllocation.slot" TARGET="_parent" PORT="slot">slot</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-timing.html#rst.timing.Interval" TITLE="Message rst.timing.Interval" TARGET="_parent">Interval</TD><TD ALIGN="left" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.constraints" TITLE="Field rst.communicationpatterns.ResourceAllocation.constraints" TARGET="_parent" PORT="constraints">constraints</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-__rosetta-ASCII-STRING.html#ASCII-STRING" TITLE="Fundamental ASCII-STRING" TARGET="_parent">ASCII-STRING</TD><TD ALIGN="left" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.resource_ids" TITLE="Field rst.communicationpatterns.ResourceAllocation.resource_ids" TARGET="_parent" PORT="resource_ids">resource_ids</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-__rosetta-ASCII-STRING.html#ASCII-STRING" TITLE="Fundamental ASCII-STRING" TARGET="_parent">ASCII-STRING</TD><TD ALIGN="left" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.description" TITLE="Field rst.communicationpatterns.ResourceAllocation.description" TARGET="_parent" PORT="description">description</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "6" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-timing.html#rst.timing.Interval" TITLE="Message rst.timing.Interval" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/message.svg"></IMG></TD><TD ALIGN="left">Interval</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-timing.html#rst.timing.Timestamp" TITLE="Message rst.timing.Timestamp" TARGET="_parent">Timestamp</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-timing.html#rst.timing.Interval.begin" TITLE="Field rst.timing.Interval.begin" TARGET="_parent" PORT="begin">begin</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-timing.html#rst.timing.Timestamp" TITLE="Message rst.timing.Timestamp" TARGET="_parent">Timestamp</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-timing.html#rst.timing.Interval.end" TITLE="Field rst.timing.Interval.end" TARGET="_parent" PORT="end">end</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "7" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-timing.html#rst.timing.Timestamp" TITLE="Message rst.timing.Timestamp" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/message.svg"></IMG></TD><TD ALIGN="left">Timestamp</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-__rosetta-UINT64.html#UINT64" TITLE="Fundamental UINT64" TARGET="_parent">UINT64</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-timing.html#rst.timing.Timestamp.time" TITLE="Field rst.timing.Timestamp.time" TARGET="_parent" PORT="time">time</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "5" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.Policy" TITLE="Enum rst.communicationpatterns.ResourceAllocation.Policy" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/enum-sandbox.svg"></IMG></TD><TD ALIGN="left">Policy</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.Policy.PRESERVE" TITLE="Value rst.communicationpatterns.ResourceAllocation.Policy.PRESERVE" TARGET="_parent">PRESERVE</TD><TD ALIGN="right" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.Policy.PRESERVE" TITLE="Value rst.communicationpatterns.ResourceAllocation.Policy.PRESERVE" TARGET="_parent">0</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.Policy.MAXIMUM" TITLE="Value rst.communicationpatterns.ResourceAllocation.Policy.MAXIMUM" TARGET="_parent">MAXIMUM</TD><TD ALIGN="right" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.Policy.MAXIMUM" TITLE="Value rst.communicationpatterns.ResourceAllocation.Policy.MAXIMUM" TARGET="_parent">10</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.Policy.FIRST" TITLE="Value rst.communicationpatterns.ResourceAllocation.Policy.FIRST" TARGET="_parent">FIRST</TD><TD ALIGN="right" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.Policy.FIRST" TITLE="Value rst.communicationpatterns.ResourceAllocation.Policy.FIRST" TARGET="_parent">20</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "4" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.Initiator" TITLE="Enum rst.communicationpatterns.ResourceAllocation.Initiator" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/enum-sandbox.svg"></IMG></TD><TD ALIGN="left">Initiator</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.Initiator.SYSTEM" TITLE="Value rst.communicationpatterns.ResourceAllocation.Initiator.SYSTEM" TARGET="_parent">SYSTEM</TD><TD ALIGN="right" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.Initiator.SYSTEM" TITLE="Value rst.communicationpatterns.ResourceAllocation.Initiator.SYSTEM" TARGET="_parent">0</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.Initiator.HUMAN" TITLE="Value rst.communicationpatterns.ResourceAllocation.Initiator.HUMAN" TARGET="_parent">HUMAN</TD><TD ALIGN="right" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.Initiator.HUMAN" TITLE="Value rst.communicationpatterns.ResourceAllocation.Initiator.HUMAN" TARGET="_parent">10</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "3" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.Priority" TITLE="Enum rst.communicationpatterns.ResourceAllocation.Priority" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/enum-sandbox.svg"></IMG></TD><TD ALIGN="left">Priority</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.Priority.NO" TITLE="Value rst.communicationpatterns.ResourceAllocation.Priority.NO" TARGET="_parent">NO</TD><TD ALIGN="right" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.Priority.NO" TITLE="Value rst.communicationpatterns.ResourceAllocation.Priority.NO" TARGET="_parent">0</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.Priority.LOW" TITLE="Value rst.communicationpatterns.ResourceAllocation.Priority.LOW" TARGET="_parent">LOW</TD><TD ALIGN="right" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.Priority.LOW" TITLE="Value rst.communicationpatterns.ResourceAllocation.Priority.LOW" TARGET="_parent">1</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.Priority.NORMAL" TITLE="Value rst.communicationpatterns.ResourceAllocation.Priority.NORMAL" TARGET="_parent">NORMAL</TD><TD ALIGN="right" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.Priority.NORMAL" TITLE="Value rst.communicationpatterns.ResourceAllocation.Priority.NORMAL" TARGET="_parent">2</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.Priority.HIGH" TITLE="Value rst.communicationpatterns.ResourceAllocation.Priority.HIGH" TARGET="_parent">HIGH</TD><TD ALIGN="right" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.Priority.HIGH" TITLE="Value rst.communicationpatterns.ResourceAllocation.Priority.HIGH" TARGET="_parent">3</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.Priority.URGENT" TITLE="Value rst.communicationpatterns.ResourceAllocation.Priority.URGENT" TARGET="_parent">URGENT</TD><TD ALIGN="right" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.Priority.URGENT" TITLE="Value rst.communicationpatterns.ResourceAllocation.Priority.URGENT" TARGET="_parent">4</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.Priority.EMERGENCY" TITLE="Value rst.communicationpatterns.ResourceAllocation.Priority.EMERGENCY" TARGET="_parent">EMERGENCY</TD><TD ALIGN="right" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.Priority.EMERGENCY" TITLE="Value rst.communicationpatterns.ResourceAllocation.Priority.EMERGENCY" TARGET="_parent">5</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "2" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.State" TITLE="Enum rst.communicationpatterns.ResourceAllocation.State" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/enum-sandbox.svg"></IMG></TD><TD ALIGN="left">State</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.State.REQUESTED" TITLE="Value rst.communicationpatterns.ResourceAllocation.State.REQUESTED" TARGET="_parent">REQUESTED</TD><TD ALIGN="right" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.State.REQUESTED" TITLE="Value rst.communicationpatterns.ResourceAllocation.State.REQUESTED" TARGET="_parent">10</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.State.SCHEDULED" TITLE="Value rst.communicationpatterns.ResourceAllocation.State.SCHEDULED" TARGET="_parent">SCHEDULED</TD><TD ALIGN="right" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.State.SCHEDULED" TITLE="Value rst.communicationpatterns.ResourceAllocation.State.SCHEDULED" TARGET="_parent">20</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.State.REJECTED" TITLE="Value rst.communicationpatterns.ResourceAllocation.State.REJECTED" TARGET="_parent">REJECTED</TD><TD ALIGN="right" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.State.REJECTED" TITLE="Value rst.communicationpatterns.ResourceAllocation.State.REJECTED" TARGET="_parent">30</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.State.CANCELLED" TITLE="Value rst.communicationpatterns.ResourceAllocation.State.CANCELLED" TARGET="_parent">CANCELLED</TD><TD ALIGN="right" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.State.CANCELLED" TITLE="Value rst.communicationpatterns.ResourceAllocation.State.CANCELLED" TARGET="_parent">40</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.State.ALLOCATED" TITLE="Value rst.communicationpatterns.ResourceAllocation.State.ALLOCATED" TARGET="_parent">ALLOCATED</TD><TD ALIGN="right" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.State.ALLOCATED" TITLE="Value rst.communicationpatterns.ResourceAllocation.State.ALLOCATED" TARGET="_parent">50</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.State.ABORTED" TITLE="Value rst.communicationpatterns.ResourceAllocation.State.ABORTED" TARGET="_parent">ABORTED</TD><TD ALIGN="right" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.State.ABORTED" TITLE="Value rst.communicationpatterns.ResourceAllocation.State.ABORTED" TARGET="_parent">60</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.State.RELEASED" TITLE="Value rst.communicationpatterns.ResourceAllocation.State.RELEASED" TARGET="_parent">RELEASED</TD><TD ALIGN="right" HREF="../generated/sandbox/package-rst-communicationpatterns.html#rst.communicationpatterns.ResourceAllocation.State.RELEASED" TITLE="Value rst.communicationpatterns.ResourceAllocation.State.RELEASED" TARGET="_parent">70</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "1" -> "5"[dir=both,arrowtail=odiamond]; "1" -> "4"[dir=both,arrowtail=odiamond]; "1" -> "3"[dir=both,arrowtail=odiamond]; "1" -> "2"[dir=both,arrowtail=odiamond]; "1":constraints -> "6"[]; "1":slot -> "6"[]; "1":policy -> "5"[]; "1":initiator -> "4"[]; "1":priority -> "3"[]; "1":state -> "2"[]; "6":end -> "7"[]; "6":begin -> "7"[]; }

clearer: should be made invisible via css

Message ResourceAllocation

class rst.communicationpatterns.ResourceAllocation

Allocate resources for exclusive access with a certain priority and estimated duration.

The type is meant to be exchanged between a scheduling component and its clients based on the current state in the allocations life cycle. Target resources can be specified by one or more string identifiers.

In order to allow a scheduling component to arbitrate between allocations, also an initiator (human or system), a numerical importance value and a conflict resolution strategy have to be specified.

Scheduling components are advised to evaluate information in the following order: i) Prefer a higher priority ii) Prefer a human initiator over a system initiator iii) Prefer a higher importance value

Code author: Patrick Holthaus <patrick.holthaus@uni-bielefeld.de>

id
Type:ASCII-STRING

Identifier of the current resource allocation attempt, i.e., not the resource itself.

state
Type:rst.communicationpatterns.ResourceAllocation.State

Current state of resource allocation.

priority
Type:rst.communicationpatterns.ResourceAllocation.Priority

Priority of resource allocation.

importance
Type:UINT32

Importance of resource allocation.

Higher importance values indicate that an allocation attempt should be preferred over attempts with lower importance if both have the same priority and initiator. If no importance value is specified, its value is assumed to be zero.

initiator
Type:rst.communicationpatterns.ResourceAllocation.Initiator

Initiator of resource allocation.

policy
Type:rst.communicationpatterns.ResourceAllocation.Policy

Conflict resolution policy.

slot
Type:rst.timing.Interval

Expected starting point and end of resource allocation.

constraints
Type:rst.timing.Interval

In case of conflicts, outer limits for shifting the interval can be specified using a constraint interval.

resource_ids
Type:array of ASCII-STRING

Specifies the resources that are requested for allocation.

The collection must contain at least one element. Elements can be specified in an arbitrary order. Given resources are treated in their entirety, i.e., if one element causes a conflict, the whole allocation is affected.

description
Type:ASCII-STRING

A description of or reason for the resource allocation request.

Download this file

message ResourceAllocation {

    /**
     * Life cycle of a single allocation attempt.
     */
    enum State {

        /**
         * Initial state: Resource requested for allocation in by a
         * client component.
         */
        REQUESTED = 10;

        /**
         * Resource allocation scheduled by the server component when
         * being requested.
         */
        SCHEDULED = 20;

        /**
         * Resource allocation rejected by the server component when
         * being requested, e.g. if the resource is busy.
         */
        REJECTED = 30;

        /**
         * Resource allocation cancelled while scheduled (before
         * allocation) by either server or client.
         */
        CANCELLED = 40;

        /**
         * Resource is now allocated for the client at the server.
         */
        ALLOCATED = 50;

        /**
         * Resource allocation aborted abnormally (during allocation)
         * by either server or client.
         */
        ABORTED = 60;

        /**
         * Resource released normally (after allocation) by either
         * server or client.
         */
        RELEASED = 70;

    }

    /**
     * Priority ranking scheme for resource allocation when
     * interacting with humans.
     *
     * Greater numeric values indicate higher priority.
     */
    enum Priority {

        /**
         * No priority or unspecified.
         *
         * May be dismissed or cancelled at any time; dismiss if
         * resource busy.
         */
        NO = 0; //

        /**
         * Interaction not affected or no user interaction.
         *
         * Allowed to begin at later times.
         */
        LOW = 1;

        /**
         * Interaction affected non-critically.
         *
         * Subsequent interactions only affected marginally; should
         * start immediately.
         */
        NORMAL = 2;

        /**
         * Interaction severely affected.
         *
         * Has to be be completed to ensure intact communication and
         * common conceptions; start immediately.
         */
        HIGH = 3;

        /**
         * Required for continued interaction or system operation.
         *
         * Start immediately.
         */
        URGENT = 4;

        /**
         * Human or hardware safety threatened.
         *
         * Begin immediately; divert resources as necessary; overtime
         * may be authorized.
         */
        EMERGENCY = 5;

    }

    /**
     * Specifies the request's initiator.
     *
     * Automatically or periodically occurring allocations can
     * generally be considered system-initiated while e.g. routines
     * invoked from verbal interactions are initiated by a human.
     */
    enum Initiator {

        /**
         * Resource is required by a system component.
         */
        SYSTEM = 0;

        /**
         * Resource is requested by a human interaction partner.
         */
        HUMAN = 10;

    }

    /**
     * Specifies a request's conflict resolution policy.
     *
     * I.e., gives the scheduler a hint how it is allowed to modify
     * the request in case of conflicts.
     */
    enum Policy {

        /**
         * Only allocate as a single, unmodified interval.
         */
        PRESERVE = 0;

        /**
         * Allocate maximum amount of time available, shrink interval
         * if needed.
         */
        MAXIMUM = 10;

        /**
         * Allocate the first time slot available, shrink interval if
         * needed.
         */
        FIRST = 20;

    }

    /**
     * Identifier of the current resource allocation attempt, i.e., not the
     * resource itself.
     */
    required string id = 10;

    /**
     * Current state of resource allocation.
     */
    required State state = 20;

    /**
     * Priority of resource allocation.
     */
    required Priority priority = 30;

    /**
     * Importance of resource allocation.
     *
     * Higher importance values indicate that an allocation attempt should be
     * preferred over attempts with lower importance if both have the same
     * priority and initiator. If no importance value is specified, its value
     * is assumed to be zero.
     */
    optional uint32 importance = 45;

    /**
     * Initiator of resource allocation.
     */
    required Initiator initiator = 40;

    /**
     * Conflict resolution policy.
     */
    required Policy policy = 50;

    /**
     * Expected starting point and end of resource allocation.
     */
    required .rst.timing.Interval slot = 60;

    /**
     * In case of conflicts, outer limits for shifting the interval can be
     * specified using a constraint interval.
     */
    optional .rst.timing.Interval constraints = 70;

    /**
     * Specifies the resources that are requested for allocation.
     *
     * The collection must contain at least one element. Elements can
     * be specified in an arbitrary order. Given resources are treated
     * in their entirety, i.e., if one element causes a conflict, the
     * whole allocation is affected.
     */
    repeated string resource_ids = 80;

    /**
     *  A description of or reason for the resource allocation request.
     */
    optional string description = 90;

}

Message State

class rst.communicationpatterns.ResourceAllocation.State

Life cycle of a single allocation attempt.

REQUESTED
= 10

Initial state: Resource requested for allocation in by a client component.

SCHEDULED
= 20

Resource allocation scheduled by the server component when being requested.

REJECTED
= 30

Resource allocation rejected by the server component when being requested, e.g. if the resource is busy.

CANCELLED
= 40

Resource allocation cancelled while scheduled (before allocation) by either server or client.

ALLOCATED
= 50

Resource is now allocated for the client at the server.

ABORTED
= 60

Resource allocation aborted abnormally (during allocation) by either server or client.

RELEASED
= 70

Resource released normally (after allocation) by either server or client.

Download this file

    enum State {

        /**
         * Initial state: Resource requested for allocation in by a
         * client component.
         */
        REQUESTED = 10;

        /**
         * Resource allocation scheduled by the server component when
         * being requested.
         */
        SCHEDULED = 20;

        /**
         * Resource allocation rejected by the server component when
         * being requested, e.g. if the resource is busy.
         */
        REJECTED = 30;

        /**
         * Resource allocation cancelled while scheduled (before
         * allocation) by either server or client.
         */
        CANCELLED = 40;

        /**
         * Resource is now allocated for the client at the server.
         */
        ALLOCATED = 50;

        /**
         * Resource allocation aborted abnormally (during allocation)
         * by either server or client.
         */
        ABORTED = 60;

        /**
         * Resource released normally (after allocation) by either
         * server or client.
         */
        RELEASED = 70;

    }

Message Priority

class rst.communicationpatterns.ResourceAllocation.Priority

Priority ranking scheme for resource allocation when interacting with humans.

Greater numeric values indicate higher priority.

NO
= 0

No priority or unspecified.

May be dismissed or cancelled at any time; dismiss if resource busy.

LOW
= 1

Interaction not affected or no user interaction.

Allowed to begin at later times.

NORMAL
= 2

Interaction affected non-critically.

Subsequent interactions only affected marginally; should start immediately.

HIGH
= 3

Interaction severely affected.

Has to be be completed to ensure intact communication and common conceptions; start immediately.

URGENT
= 4

Required for continued interaction or system operation.

Start immediately.

EMERGENCY
= 5

Human or hardware safety threatened.

Begin immediately; divert resources as necessary; overtime may be authorized.

Download this file

    enum Priority {

        /**
         * No priority or unspecified.
         *
         * May be dismissed or cancelled at any time; dismiss if
         * resource busy.
         */
        NO = 0; //

        /**
         * Interaction not affected or no user interaction.
         *
         * Allowed to begin at later times.
         */
        LOW = 1;

        /**
         * Interaction affected non-critically.
         *
         * Subsequent interactions only affected marginally; should
         * start immediately.
         */
        NORMAL = 2;

        /**
         * Interaction severely affected.
         *
         * Has to be be completed to ensure intact communication and
         * common conceptions; start immediately.
         */
        HIGH = 3;

        /**
         * Required for continued interaction or system operation.
         *
         * Start immediately.
         */
        URGENT = 4;

        /**
         * Human or hardware safety threatened.
         *
         * Begin immediately; divert resources as necessary; overtime
         * may be authorized.
         */
        EMERGENCY = 5;

    }

Message Initiator

class rst.communicationpatterns.ResourceAllocation.Initiator

Specifies the request’s initiator.

Automatically or periodically occurring allocations can generally be considered system-initiated while e.g. routines invoked from verbal interactions are initiated by a human.

SYSTEM
= 0

Resource is required by a system component.

HUMAN
= 10

Resource is requested by a human interaction partner.

Download this file

    enum Initiator {

        /**
         * Resource is required by a system component.
         */
        SYSTEM = 0;

        /**
         * Resource is requested by a human interaction partner.
         */
        HUMAN = 10;

    }

Message Policy

class rst.communicationpatterns.ResourceAllocation.Policy

Specifies a request’s conflict resolution policy.

I.e., gives the scheduler a hint how it is allowed to modify the request in case of conflicts.

PRESERVE
= 0

Only allocate as a single, unmodified interval.

MAXIMUM
= 10

Allocate maximum amount of time available, shrink interval if needed.

FIRST
= 20

Allocate the first time slot available, shrink interval if needed.

Download this file

    enum Policy {

        /**
         * Only allocate as a single, unmodified interval.
         */
        PRESERVE = 0;

        /**
         * Allocate maximum amount of time available, shrink interval
         * if needed.
         */
        MAXIMUM = 10;

        /**
         * Allocate the first time slot available, shrink interval if
         * needed.
         */
        FIRST = 20;

    }