| Index: runtime/observatory/lib/src/repositories/notification.dart
|
| diff --git a/runtime/observatory/lib/src/repositories/notification.dart b/runtime/observatory/lib/src/repositories/notification.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..ffda4855c2d65888d6f854a023921a3909af7e28
|
| --- /dev/null
|
| +++ b/runtime/observatory/lib/src/repositories/notification.dart
|
| @@ -0,0 +1,43 @@
|
| +// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
|
| +// for details. All rights reserved. Use of this source code is governed by a
|
| +// BSD-style license that can be found in the LICENSE file
|
| +
|
| +part of repositories;
|
| +
|
| +class NotificationChangeEvent implements M.NotificationChangeEvent {
|
| + final NotificationRepository repository;
|
| + NotificationChangeEvent(this.repository);
|
| +}
|
| +
|
| +class NotificationRepository implements M.NotificationRepository {
|
| + final List<M.Notification> _list = new List<M.Notification>();
|
| +
|
| + final StreamController<M.NotificationChangeEvent> _onChange =
|
| + new StreamController<M.NotificationChangeEvent>.broadcast();
|
| + Stream<M.NotificationChangeEvent> get onChange => _onChange.stream;
|
| +
|
| + void add(M.Notification notification) {
|
| + _list.add(notification);
|
| + _notify();
|
| + }
|
| +
|
| + Iterable<M.Notification> list() => _list;
|
| +
|
| + void delete(M.Notification notification) {
|
| + if (_list.remove(notification))
|
| + _notify();
|
| + }
|
| +
|
| + void deleteAll() {
|
| + if (_list.isNotEmpty) {
|
| + _list.clear();
|
| + _notify();
|
| + }
|
| + }
|
| +
|
| + NotificationRepository();
|
| +
|
| + void _notify() {
|
| + _onChange.add(new NotificationChangeEvent(this));
|
| + }
|
| +}
|
|
|