Files
firebase-ios-sdk/Firestore/Source/API/FIRPersistentCacheIndexManager+Internal.h
T

70 lines
2.3 KiB
Objective-C

/*
* Copyright 2023 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#import <Foundation/Foundation.h>
#include <memory>
#include "Firestore/core/src/api/persistent_cache_index_manager.h"
NS_ASSUME_NONNULL_BEGIN
// TODO(sum/avg) move the contents of this category to
// ../Public/FirebaseFirestore/FIRPersistentCacheIndexManager.h
/**
* A PersistentCacheIndexManager which you can config persistent cache indexes used for
* local query execution.
*/
NS_SWIFT_NAME(PersistentCacheIndexManager)
@interface FIRPersistentCacheIndexManager : NSObject
/** :nodoc: */
- (instancetype)init
__attribute__((unavailable("FIRPersistentCacheIndexManager cannot be created directly.")));
/**
* Enables SDK to create persistent cache indexes automatically for local query execution when SDK
* believes cache indexes can help improves performance.
*
* This feature is disabled by default.
*/
- (void)enableIndexAutoCreation NS_SWIFT_NAME(enableIndexAutoCreation());
/**
* Stops creating persistent cache indexes automatically for local query execution. The indexes
* which have been created by calling `enableIndexAutoCreation` still take effect.
*/
- (void)disableIndexAutoCreation NS_SWIFT_NAME(disableIndexAutoCreation());
/**
* Removes all persistent cache indexes. Please note this function will also deletes indexes
* generated by [[FIRFirestore firestore] setIndexConfigurationFromJSON] and [[FIRFirestore
* firestore] setIndexConfigurationFromStream], which are deprecated.
*/
- (void)deleteAllIndexes NS_SWIFT_NAME(deleteAllIndexes());
@end
@interface FIRPersistentCacheIndexManager (/* Init */)
- (instancetype)initWithPersistentCacheIndexManager:
(std::shared_ptr<const firebase::firestore::api::PersistentCacheIndexManager>)indexManager
NS_DESIGNATED_INITIALIZER;
@end
NS_ASSUME_NONNULL_END