| // Copyright (c) 2014, 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. | |
| import 'dart:collection'; | |
| // dart:core is imported explicitly so it is available at top-level without | |
| // the `core` prefix defined below. | |
| import 'dart:core'; | |
| // Importing `dart:core` as `core` to allow access to `String` in `IdType` | |
| // without conflicts. | |
| import 'dart:core' as core; | |
| // ignore: deprecated_member_use | |
| import 'dart:mirrors' as mirrors; | |
| import 'package:meta/meta.dart'; | |
| import 'common.dart' show StreamFromPages; | |
| import 'datastore.dart' as ds; | |
| import 'service_scope.dart' as ss; | |
| part 'src/db/annotations.dart'; | |
| part 'src/db/db.dart'; | |
| part 'src/db/exceptions.dart'; | |
| part 'src/db/model_db.dart'; | |
| part 'src/db/model_db_impl.dart'; | |
| part 'src/db/models.dart'; | |
| const Symbol _dbKey = #gcloud.db; | |
| /// Access the [DatastoreDB] object available in the current service scope. | |
| /// | |
| /// The returned object will be the one which was previously registered with | |
| /// [registerDbService] within the current (or a parent) service scope. | |
| /// | |
| /// Accessing this getter outside of a service scope will result in an error. | |
| /// See the `package:gcloud/service_scope.dart` library for more information. | |
| DatastoreDB get dbService => ss.lookup(_dbKey) as DatastoreDB; | |
| /// Registers the [DatastoreDB] object within the current service scope. | |
| /// | |
| /// The provided `db` object will be available via the top-level `dbService` | |
| /// getter. | |
| /// | |
| /// Calling this function outside of a service scope will result in an error. | |
| /// Calling this function more than once inside the same service scope is not | |
| /// allowed. | |
| void registerDbService(DatastoreDB db) { | |
| ss.register(_dbKey, db); | |
| } |