summaryrefslogtreecommitdiff
path: root/api/franca/navigation/mapviewer/Session.fidl
blob: 10432a46820677f139d51d7f44d46fe2d0616e03 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
// SPDX-License-Identifier: MPL-2.0
// Copyright (C) 2018, Groupe PSA, XS Embedded GmbH, TomTom International B.V., Continental Automotive GmbH, BMW Car IT GmbH,  Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD.,  Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation, Elektrobit Automotive GmbH
// This Source Code Form is subject to the terms of the
// Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
// this file, you can obtain one at http://mozilla.org/MPL/2.0/.

package org.genivi.navigation.mapviewer

import org.genivi.CommonTypes.* from "../../CommonTypes.fidl"
import org.genivi.navigation.NavigationTypes.* from "../NavigationTypes.fidl"


<** @description : This interface offers methods that implement the navigation core session functionality of a navigation system.**>
interface Session {
	version {
		major 4 
		minor 0
	}

	<**	@description : This method returns the API version .**>
	method getVersion {
		out {
			<** @description: .**>
			Version ^version				
		}	
	}	

	<** @description : createSession = This method creates a new session and retrieves a handle .
	**>
	method createSession {
		in {
			<**
				@description : client = name or identifier of the client application that requests a new session
          		The navigation core must internally associate this name to the returned session handle
          		This parameter can be used to identify the client application and determine if a given feature is enabled for it
          		NB: clientApp is used in place of client, due to a conflicting issue when build with CommonAPI
          	**>
			String clientApp
		}
		out {
			<**	@description : sessionHandle **>
			Handle sessionHandle
		}
		error {
			OK
			SESSION_ERROR_NOMORESESSIONHANDLES //no more session handles are available
		}
	}

	<** @description : deleteSession = This method deletes a session and its associated resources .
	**>
	method deleteSession {
		in {
			<**	@description : sessionHandle **>
			Handle sessionHandle
		}
		error {
			OK
			SESSION_ERROR_SESSIONNOTAVAILABLE //an application tries to delete a session handle that is not available
		}
	}

	<**	@description : This method returns whether a given session handle is available or not (for example because it was deleted) .**>
    method getSessionStatus {
		in {
			<**	@description : sessionHandle **>
			Handle sessionHandle			
		}   
		out {
			<**	@description : sessionStatus = enum(INVALID,AVAILABLE,NOT_AVAILABLE)**>
			SessionStatus sessionStatus			
		} 	
    }
    
	<**	@description : This method returns a list of all available sessions .**>
    method getAllSessions {
		out {
          <**	@description : sessionsList = array[struct(sessionHandle,clientApp)]
          clientApp = name or identifier of the client application that requested the sessionHandle .**>
			Session[] sessionsList
		}    	
    }
    
    <** @description : sessionDeleted = This signal is emitted when a session is deleted **>
	broadcast sessionDeleted {
		out {
			<**	@description : sessionHandle **>
			Handle sessionHandle			
		}
	}
}