publish
element. For example: <publish name="position" id="1" >
event
element. For example: <event name="directTo" id="1" >
. requestResponse
element. For example: <requestResponse name="computeFlightPlan" id="1" >
<publish name="position" id="1" >See also the identification article for the constraints on naming and identification. Note that the identification can be omitted. For example, the following definition is valid:
<publish name="position" >
namespace
element as a parent of the services declaration[3]
<services> <namespace uri="http://mydomain.com/aircraft" > <publish name="position" id="1" > ... </publish> <publish name="speed" > ... </publish> </namespace> </services>Note that services of a specified namespace can access types of the same namespace, or types with no namespace declaration.
invocationMode
attribute in the service definition:executorService
value, the framework will perform the invocation in a background Threadblocking
value, the framework will perform the invocation in the same Thread as the caller<publish name="position" invocationMode="blocking" > <data name="latitude" type="float" /> <data name="longitude" type="float" /> <data name="altitude" type="float" /> </publish>
dataChangeBehavior
attribute allows to specify how to detect that complex datas have changed sqince the last notification.<publish name="attitudes" dataChangeBehavior="unchanged" > <data name="position" type="position" /> <data name="speed" type="speed" /> </publish>There are three possible values for this attribute:
inherit
: the service will inherit the value specified in the framework propertieschanged
: the full graph of complex datas will be taken into account to detect if datas have changed after a service invocationunchanged
: complex datas will generally be considered as changed be taken into account to detect if datas have changed after a service invocation.<publish name="2DPosition" > <data name="latitude" type="float" /> <data name="longitude" type="float" /> </publish> <publish name="3DPosition" > <extends name="2DPosition" /> <data name="altitude" type="float" /> </publish>Here the definition is equivalent to:
<publish name="2DPosition" > <data name="latitude" type="float" /> <data name="longitude" type="float" /> </publish> <publish name="3DPosition" > <data name="latitude" type="float" /> <data name="longitude" type="float" /> <data name="altitude" type="float" /> </publish>
<publish name="2DPosition" isAbstract="true" > <data name="latitude" type="float" /> <data name="longitude" type="float" /> <data name="altitude" type="float" /> </publish> <publish name="3DPosition" > <extends name="2DPosition" /> <data name="altitude" type="float" /> </publish>
<publish name="position" > <data name="latitude" type="float" /> <data name="longitude" type="float" /> <data name="altitude" type="float" /> </publish>
<requestResponse name="computeFlightPlan" id="1" > <request> <data name="waypointList" type="arrayOfInt" /> </request> <response> <data name="flightPlan" type="arrayOfPosition" /> </response> </requestResponse>
Copyright 2017-2020 Dassault Aviation. All Rights Reserved. Documentation and source under the LGPL v3 licence