All Downloads are FREE. Search and download functionalities are using the official Maven repository.

joynr.Routing.fidl Maven / Gradle / Ivy

There is a newer version: 1.25.0
Show newest version
/*
 * #%L
 * %%
 * Copyright (C) 2011 - 2016 BMW Car IT GmbH
 * %%
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * #L%
 */
package system

typeCollection RoutingTypes {
	<** @description: Generic Address **>
	struct Address polymorphic {}

	<** @description: Channel Address **>
	struct ChannelAddress extends Address {
		<** @description: Url of HTTP-based message receiver **>
		String messagingEndpointUrl
		<** @description: Channel identification **>
		String channelId
	}

	<** @description: Mqtt Address **>
	struct MqttAddress extends Address {
		<** @description: Mqtt broker uri **>
		String brokerUri
		<** @description: MQTT topic identification **>
		String topic
	}

	<** @description: CommonApiDbus address **>
	struct CommonApiDbusAddress extends Address {
		<** @description: Domain name **>
		String domain

		<** @description: Name of service **>
		String serviceName

		<** @description: the ID of the target participant **>
		String participantId
	}

	<** @description: Browser address **>
	struct BrowserAddress extends Address {
		<** @description: the ID of the browser window **>
		String windowId
	}

	<** @description: Websocket protocol type **>
	enumeration WebSocketProtocol  {
		<** @description: Websocket (non-secure) **>
		WS

		<** @description: Websocket (secure) **>
		WSS
	}

	<** @description: Websocket address **>
	struct WebSocketAddress extends Address {
		<** @description: Websocket protocol type **>
		WebSocketProtocol protocol

		<** @description: Websocket host **>
		String host

		<** @description: Websocket port **>
		Int32 port

		<** @description: Websocket path **>
		String path
	}

	<** @description: MQTT protocol type **>
	enumeration MqttProtocol  {
		<** @description: MQTT (non-secure) **>
		MQTT

		<** @description: MQTT (secure) **>
		MQTTS
	}

	<** @description: Websocket client address **>
	struct WebSocketClientAddress extends Address {
		<** @description: Websocket client ID **>
		String id
	}
}

<**
	@description: The Routing interface is a joynr internal
		interface. joynr uses a hierarchy of MessageRouters to
		route messages from source to destination. The Routing
		interface is used to update routing information between parent and
		child MessageRouters.
**>
interface Routing {

	version {major 0 minor 1}

	<**
		@description: Adds a hop to the parent routing table.
			
The overloaded methods (one for each concrete Address type) is needed since polymorphism is currently not supported by joynr. **> method addNextHop { in { <** @description: the ID of the target participant **> String participantId <** @description: the messaging address of the next hop towards the corresponding participant ID **> RoutingTypes.ChannelAddress channelAddress } } <** @description: Adds a hop to the parent routing table.
The overloaded methods (one for each concrete Address type) is needed since polymorphism is currently not supported by joynr. **> method addNextHop { in { <** @description: the ID of the target participant **> String participantId <** @description: the messaging address of the next hop towards the corresponding participant ID **> RoutingTypes.MqttAddress mqttAddress } } <** @description: Adds a hop to the parent routing table.
The overloaded methods (one for each concrete Address type) is needed since polymorphism is currently not supported by joynr. **> method addNextHop { in { <** @description: the ID of the target participant **> String participantId <** @description: the messaging address of the next hop towards the corresponding participant ID **> RoutingTypes.CommonApiDbusAddress commonApiDbusAddress } } <** @description: Adds a hop to the parent routing table.
The overloaded methods (one for each concrete Address type) is needed since polymorphism is currently not supported by joynr. **> method addNextHop { in { <** @description: the ID of the target participant **> String participantId <** @description: the messaging address of the next hop towards the corresponding participant ID **> RoutingTypes.BrowserAddress browserAddress } } <** @description: Adds a hop to the parent routing table.
The overloaded methods (one for each concrete Address type) is needed since polymorphism is currently not supported by joynr. **> method addNextHop { in { <** @description: the ID of the target participant **> String participantId <** @description: the messaging address of the next hop towards the corresponding participant ID **> RoutingTypes.WebSocketAddress webSocketAddress } } <** @description: Adds a hop to the parent routing table.
The overloaded methods (one for each concrete Address type) is needed since polymorphism is currently not supported by joynr. **> method addNextHop { in { <** @description: the ID of the target participant **> String participantId <** @description: the messaging address of the next hop towards the corresponding participant ID **> RoutingTypes.WebSocketClientAddress webSocketClientAddress } } <** @description: Removes a hop from the parent routing table. **> method removeNextHop { in { <** @description: the ID of the target participant **> String participantId } } <** @description: Asks the parent routing table whether it is able to resolve the destination participant ID. **> method resolveNextHop { in { <** @description: the ID of the target participant to resolve **> String participantId } out { <** @description: true, if the participant ID could be resolved **> Boolean resolved } } <** @description: Adds a new receiver via their participant ID to for the identified multicasts. **> method addMulticastReceiver { in { <** @description: the multicast ID the receiver is interested in. **> String multicastId <** @description: the participant ID of the receiver. **> String subscriberParticipantId <** @description: the participant ID of the provider. **> String providerParticipantId } } <** @description: Removes a new receiver via their participant ID to for the identified multicasts which was previously added via addMulticastReceiver. **> method removeMulticastReceiver { in { <** @description: the multicast ID the receiver registered for. **> String multicastId <** @description: the participant ID of the receiver. **> String subscriberParticipantId <** @description: the participant ID of the provider. **> String providerParticipantId } } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy