aboutsummaryrefslogtreecommitdiffhomepage
path: root/Firestore/Source/Local
diff options
context:
space:
mode:
Diffstat (limited to 'Firestore/Source/Local')
-rw-r--r--Firestore/Source/Local/FSTLevelDB.h5
-rw-r--r--Firestore/Source/Local/FSTLevelDB.mm25
-rw-r--r--Firestore/Source/Local/FSTLevelDBMutationQueue.mm3
-rw-r--r--Firestore/Source/Local/FSTLocalStore.mm10
4 files changed, 27 insertions, 16 deletions
diff --git a/Firestore/Source/Local/FSTLevelDB.h b/Firestore/Source/Local/FSTLevelDB.h
index 520557a..77abb3d 100644
--- a/Firestore/Source/Local/FSTLevelDB.h
+++ b/Firestore/Source/Local/FSTLevelDB.h
@@ -19,9 +19,9 @@
#include <memory>
#import "Firestore/Source/Local/FSTPersistence.h"
+#include "Firestore/core/src/firebase/firestore/core/database_info.h"
#include "leveldb/db.h"
-@class FSTDatabaseInfo;
@class FSTLocalSerializer;
NS_ASSUME_NONNULL_BEGIN
@@ -50,7 +50,8 @@ NS_ASSUME_NONNULL_BEGIN
* will be created. Usually just +[FSTLevelDB documentsDir].
* @return A storage directory unique to the instance identified by databaseInfo.
*/
-+ (NSString *)storageDirectoryForDatabaseInfo:(FSTDatabaseInfo *)databaseInfo
++ (NSString *)storageDirectoryForDatabaseInfo:
+ (const firebase::firestore::core::DatabaseInfo &)databaseInfo
documentsDirectory:(NSString *)documentsDirectory;
/**
diff --git a/Firestore/Source/Local/FSTLevelDB.mm b/Firestore/Source/Local/FSTLevelDB.mm
index d163ed5..7fb3a66 100644
--- a/Firestore/Source/Local/FSTLevelDB.mm
+++ b/Firestore/Source/Local/FSTLevelDB.mm
@@ -19,18 +19,24 @@
#include <leveldb/db.h>
#import "FIRFirestoreErrors.h"
-#import "Firestore/Source/Core/FSTDatabaseInfo.h"
#import "Firestore/Source/Local/FSTLevelDBMigrations.h"
#import "Firestore/Source/Local/FSTLevelDBMutationQueue.h"
#import "Firestore/Source/Local/FSTLevelDBQueryCache.h"
#import "Firestore/Source/Local/FSTLevelDBRemoteDocumentCache.h"
#import "Firestore/Source/Local/FSTWriteGroup.h"
#import "Firestore/Source/Local/FSTWriteGroupTracker.h"
-#import "Firestore/Source/Model/FSTDatabaseID.h"
#import "Firestore/Source/Remote/FSTSerializerBeta.h"
#import "Firestore/Source/Util/FSTAssert.h"
#import "Firestore/Source/Util/FSTLogger.h"
+#include "Firestore/core/src/firebase/firestore/core/database_info.h"
+#include "Firestore/core/src/firebase/firestore/model/database_id.h"
+#include "Firestore/core/src/firebase/firestore/util/string_apple.h"
+
+namespace util = firebase::firestore::util;
+using firebase::firestore::core::DatabaseInfo;
+using firebase::firestore::model::DatabaseId;
+
NS_ASSUME_NONNULL_BEGIN
static NSString *const kReservedPathComponent = @"firestore";
@@ -89,7 +95,7 @@ using leveldb::WriteOptions;
#endif
}
-+ (NSString *)storageDirectoryForDatabaseInfo:(FSTDatabaseInfo *)databaseInfo
++ (NSString *)storageDirectoryForDatabaseInfo:(const DatabaseInfo &)databaseInfo
documentsDirectory:(NSString *)documentsDirectory {
// Use two different path formats:
//
@@ -99,11 +105,14 @@ using leveldb::WriteOptions;
// projectIDs are DNS-compatible names and cannot contain dots so there's
// no danger of collisions.
NSString *directory = documentsDirectory;
- directory = [directory stringByAppendingPathComponent:databaseInfo.persistenceKey];
-
- NSString *segment = databaseInfo.databaseID.projectID;
- if (![databaseInfo.databaseID isDefaultDatabase]) {
- segment = [NSString stringWithFormat:@"%@.%@", segment, databaseInfo.databaseID.databaseID];
+ directory = [directory
+ stringByAppendingPathComponent:util::WrapNSStringNoCopy(databaseInfo.persistence_key())];
+
+ NSString *segment = util::WrapNSStringNoCopy(databaseInfo.database_id().project_id());
+ if (!databaseInfo.database_id().IsDefaultDatabase()) {
+ segment = [NSString
+ stringWithFormat:@"%@.%@", segment,
+ util::WrapNSStringNoCopy(databaseInfo.database_id().database_id())];
}
directory = [directory stringByAppendingPathComponent:segment];
diff --git a/Firestore/Source/Local/FSTLevelDBMutationQueue.mm b/Firestore/Source/Local/FSTLevelDBMutationQueue.mm
index dbe58e8..85f163d 100644
--- a/Firestore/Source/Local/FSTLevelDBMutationQueue.mm
+++ b/Firestore/Source/Local/FSTLevelDBMutationQueue.mm
@@ -38,6 +38,7 @@
NS_ASSUME_NONNULL_BEGIN
+namespace util = firebase::firestore::util;
using Firestore::StringView;
using leveldb::DB;
using leveldb::Iterator;
@@ -162,7 +163,7 @@ static ReadOptions StandardReadOptions() {
while (moreUserIDs) {
// Compute the first key after the last mutation for nextUserID.
auto userEnd = [FSTLevelDBMutationKey keyPrefixWithUserID:nextUserID];
- userEnd = firebase::firestore::util::PrefixSuccessor(userEnd);
+ userEnd = util::PrefixSuccessor(userEnd);
// Seek to that key with the intent of finding the boundary between nextUserID's mutations
// and the one after that (if any).
diff --git a/Firestore/Source/Local/FSTLocalStore.mm b/Firestore/Source/Local/FSTLocalStore.mm
index fa77e37..d30177a 100644
--- a/Firestore/Source/Local/FSTLocalStore.mm
+++ b/Firestore/Source/Local/FSTLocalStore.mm
@@ -43,6 +43,8 @@
#include "Firestore/core/src/firebase/firestore/core/target_id_generator.h"
+using firebase::firestore::core::TargetIdGenerator;
+
NS_ASSUME_NONNULL_BEGIN
@interface FSTLocalStore ()
@@ -92,7 +94,7 @@ NS_ASSUME_NONNULL_BEGIN
@implementation FSTLocalStore {
/** Used to generate targetIDs for queries tracked locally. */
- firebase::firestore::core::TargetIdGenerator _targetIDGenerator;
+ TargetIdGenerator _targetIDGenerator;
}
- (instancetype)initWithPersistence:(id<FSTPersistence>)persistence
@@ -115,8 +117,7 @@ NS_ASSUME_NONNULL_BEGIN
_targetIDs = [NSMutableDictionary dictionary];
_heldBatchResults = [NSMutableArray array];
- _targetIDGenerator =
- firebase::firestore::core::TargetIdGenerator::LocalStoreTargetIdGenerator(0);
+ _targetIDGenerator = TargetIdGenerator::LocalStoreTargetIdGenerator(0);
}
return self;
}
@@ -154,8 +155,7 @@ NS_ASSUME_NONNULL_BEGIN
[self.queryCache start];
FSTTargetID targetID = [self.queryCache highestTargetID];
- _targetIDGenerator =
- firebase::firestore::core::TargetIdGenerator::LocalStoreTargetIdGenerator(targetID);
+ _targetIDGenerator = TargetIdGenerator::LocalStoreTargetIdGenerator(targetID);
FSTListenSequenceNumber sequenceNumber = [self.queryCache highestListenSequenceNumber];
self.listenSequence = [[FSTListenSequence alloc] initStartingAfter:sequenceNumber];
}