summaryrefslogtreecommitdiff
path: root/api/franca/navigation/poiservice/POIContentAccess.fidl
blob: 29101a3f1cec05cef7546bd8426613d357c9ecfc (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
92
93
// SPDX-License-Identifier: MPL-2.0
// Copyright (C) 2014, PCA Peugeot Citro�n, 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.poiservice

import org.genivi.CommonTypes.* from "../../CommonTypes.fidl"
import org.genivi.navigation.poiservice.POIServiceTypes.* from "POIServiceTypes.fidl"


<** @description : This interface offers a set of common methods for Content Access Modules (CAM). The CAM provide and update POI and categories information from remote sources to the POIService modules.**>
interface POIContentAccess {
	version {
		major 4 
		minor 0
	}
    <** @description : Register to the POI provider module 
        When the CAM registers, it provides a name and then get a unique id. This id must be used everytime the CAM communicates with the POI service component.
        After the registration is done, the CAM can start to update POI categories and POI attributes as well as registers POI categories to search for.**>	
	method registerContentAccessModule {
		in {
			<** @description : The name of the CAM.**>
			String moduleName				
		}
		
		out {
			<** @description : Content access module unique id as known by the POI service component.**>
			ContentAccessModuleID camId
		}

	}
	<**	@description : Remove CAM from POI provider module.**>
	method unRegisterContentAccessModule {
		in {
			<** @description : Content access module unique id as known by the POI service component.**>
			ContentAccessModuleID camId				
		}
	}
	<**	@description : Register to the POI provider module the categories you can search for POI.
        The categories could be predifined one or customized ones. In order to register a customized category, you might need to create it before and add it to the POI service component.**>
	method registerPoiCategories {
		in {
			<** @description : Content access module unique id as known by the POI service component.**>
			ContentAccessModuleID camId		
			<**	@description : array[unique_id].
			List of POI categories to register.
			unique_id = Unique category id.
			**>
			CategoryID[] poiCategories		
		}
	}
	<**	@description : Update categories in the POI service component. It could be a predifined or a customed one.
        The CAM provides for each categories the list of attributes (mandatories like name or optional) it wants to update.
        Depending on the local database write policy, the CAM might only be able to update customized attributes for a category and not the predefined ones so some update could be rejected.**>
	method updateCategories {
		in {
			<** @description : Content access module unique id as known by the POI service component.**>
			ContentAccessModuleID camId		
			<**	@description : array[unique_id, attributes, sortOptions].**>
			CAMCategoryUpdate[] poiCategories		
		}
	}
	<**	@description : Add new categories to the POI service component.
        The CAM provides for each categories the name, the parent categories, the top level attribute, the list of attributes, the icons, ...  .**>
	method addCategories {
		in {
			<** @description : Content access module unique id as known by the POI service component.**>
			ContentAccessModuleID camId		
			<**	@description : List of details for all the POI categories.**>
			CAMCategory[] poiCategories
		}	
		out {
			<**	
			@description : array of unique POI categories as registered by the POI service component.
			Note: A POI category is a unique ID
			**>
			CategoryID[] poiCategoriesId			
		}
	}
	<**	@description : Remove categories from the POI service component. It could be a predifined or a customed one.
        Depending on the local database write policy, the CAM might only not be able to remove some categories.**>
	method removeCategories {
		in {
			<** @description : Content access module unique id as known by the POI service component.**>
			ContentAccessModuleID camId		
			<**	@description : array[unique_id].
			List of POI categories to remove.**>
			CategoryID[] poiCategories		
		}
	}
}