| // Copyright 2015 The Vanadium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| import 'dart:async'; |
| |
| import '../models/all.dart' as model; |
| |
| import 'store_factory.dart' as storeFactory; |
| |
| // Provides APIs for reading and writing app-related data. |
| abstract class Store { |
| static Store _singletonStore; |
| |
| factory Store.singleton() { |
| if (_singletonStore == null) { |
| _singletonStore = storeFactory.create(); |
| } |
| return _singletonStore; |
| } |
| |
| ////////////////////////////////////// |
| /// Decks |
| |
| // Returns all the existing decks. |
| Future<List<model.Deck>> getAllDecks(); |
| |
| // Adds a new deck. |
| Future addDeck(model.Deck deck); |
| |
| // Removed a deck given its key. |
| Future removeDeck(String key); |
| |
| // Event that fires when deck are added or removed. |
| // The up-to-date list of decks with be sent to listeners. |
| Stream<List<model.Deck>> get onDecksChange; |
| |
| ////////////////////////////////////// |
| /// Slides |
| |
| // Returns the list of all slides for a deck. |
| Future<List<model.Slide>> getAllSlides(String deckKey); |
| |
| // Sets the slides for a deck. |
| Future setSlides(String deckKey, List<model.Slide> slides); |
| } |