SignatureTag
annotation which will specify:SignatureType.NOTIFICATION
for a service which is notified through the functionSignatureType.INVOCATION
for a service which is invoked through the functionSignatureType.REQUEST
for the invocation of a request-response Service request through the functionSignatureType.RESPONSE
for the notification of a response of a request-response Service through the functionSignatureType.CYCLIC_SERVICE
for a service which is invoked cyclically through the functionSignature | Type | Interface | Service |
---|---|---|---|
SignatureType.NOTIFICATION |
notification | subscribe eventReceived listen[1]
It is possible to listen to a request-response Service
|
publish Service event Service |
SignatureType.INVOCATION |
invocation | push eventSend |
publish Service event Service |
SignatureType.CYCLIC_SERVICE |
invocation | cyclic cyclicEvent |
publish Service event Service |
SignatureType.REQUEST |
invocation | requestSend[2]
This corresponds to the request datas for a subscriber of the service
|
request-response Service |
SignatureType.RESPONSE |
notification | requestSend[3]
This corresponds to the response datas for a subscriber of the service
|
request-response Service |
public interface CLibrary extends Library { @SignatureTag(type=SignatureType.NOTIFICATION, name="event") public void receive(boolean state); }Here we have a service named "http://my.namespace:event"[4]
public interface CLibrary extends Library { @SignatureTag(type=SignatureType.NOTIFICATION, name="event", uri="http://my.namespace") public void receive(boolean state); }
public interface CLibrary extends Library { @SignatureTag(type=SignatureType.INVOCATION, name="published") public void setInvoker(Invoker callback); public interface Invoker extends Callback { void invoke(int value); } }At initialization the framework will call the
setInvoker
function, which will give to the C library the pointer to the function to call.PublishModule
in the first tutorial: public interface CLibrary extends Library { @SignatureTag(type=SignatureType.NOTIFICATION, name="event") public void receive(boolean state); @SignatureTag(type=SignatureType.CYCLIC_SERVICE, name="published") public void publish(); @SignatureTag(type=SignatureType.INVOCATION, name="published") public void setInvoker(Invoker callback); public interface Invoker extends Callback { void invoke(int value); } }
Copyright 2017-2020 Dassault Aviation. All Rights Reserved. Documentation and source under the LGPL v3 licence