Big lists are lists that are (or can be) too large to be transferred between the service and client. Instead the client must watch the list through an interface.
GTK+ uses the GListModel interface
We currently have no stakeholder representing HTML5 nor any specific web application framework.
Existing Big Lists in the GENIVI APIs
This is an (incomplete) list of big lists in the GENIVI compliance APIs.
- POI, navigation/blob/master/api/franca/navigation/poiservice/POISearch.fidl repository
- Radio, http://git.projects.genivi.org/?p=ivi-radio.git;a=blob;f=franca/Station.fidl
- Media Manager, https://github.com/Luxoft/media-manager-interfaces/blob/master/fidl/org/genivi/MediaManager/Indexer.fidl
get_item_type, returns the type of the items in the list
roleNames, the roles (attributes) available for each row
|get_n_items, returns the number of items in the list|
rowCount, the number of rows
canFetchMore / fetchMore, function pair used to dynamically add more data to the end of the list as the end is reached
get_item(position), returns an object representing the given item
For data changes inside an item, the view must connect to the notify signal of each item.
data(index, role), function to read out information about a given row
(signal) dataChanged(fromIndex, toIndex, roles), signal emitted when the a given range of data is changed
|(signal) items_changed(pos, removed, added), signal emitted when the list contents changes|
(signal) rowsInserted(first, last), signal emitted when are added
(signal) rowsRemoved(first, last), signal emitted when rows are removed
(signal) rowsMoved(start, end, destination), signal emitted when rows are moved
(signal) modelReset, signal emitted when the entire contents of the model is reset
The insert, remove, move and reset signals are preceded by a corresponding rowsAboutToBeXxx signal warning the view that a change is imminent.