mirror of
https://github.com/firebase/firebase-ios-sdk
synced 2026-11-10 22:45:59 +05:45
* Libraries should save state if a completion block is requested Currently, the onComplete block of sendXEvent:onComplete: is invoked when the event bytes are written to disk. However, if the app crashes before a lifecycle event occurs (trigger GDTCORStorage to serialize to disk), that event if effectively lost because the metadata has all been lost. This change triggers the saving of state of GDTCORStorage and prioritizers (if they implement it) if an onComplete block has been given. * Remove flaky check * Update GDTCORStorage.m
52 lines
1.5 KiB
Objective-C
52 lines
1.5 KiB
Objective-C
/*
|
|
* Copyright 2018 Google
|
|
*
|
|
* 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>
|
|
|
|
#import <GoogleDataTransport/GDTCORLifecycle.h>
|
|
|
|
@class GDTCOREvent;
|
|
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
|
|
/** Manages the storage of events. This class is thread-safe. */
|
|
@interface GDTCORStorage : NSObject <NSSecureCoding, GDTCORLifecycleProtocol>
|
|
|
|
/** Creates and/or returns the storage singleton.
|
|
*
|
|
* @return The storage singleton.
|
|
*/
|
|
+ (instancetype)sharedInstance;
|
|
|
|
/** Stores event.dataObject into a shared on-device folder and tracks the event via
|
|
* a GDTCOREvent instance.
|
|
*
|
|
* @param event The event to store.
|
|
* @param completion A block to run when an event was written to disk or dropped.
|
|
*/
|
|
- (void)storeEvent:(GDTCOREvent *)event
|
|
onComplete:(void (^_Nullable)(BOOL wasWritten, NSError *error))completion;
|
|
|
|
/** Removes a set of events from storage specified by their hash.
|
|
*
|
|
* @param events The set of stored events to remove.
|
|
*/
|
|
- (void)removeEvents:(NSSet<GDTCOREvent *> *)events;
|
|
|
|
@end
|
|
|
|
NS_ASSUME_NONNULL_END
|