1 // Copyright 2020 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CHROME_UPDATER_APP_SERVER_MAC_UPDATE_SERVICE_WRAPPERS_H_ 6 #define CHROME_UPDATER_APP_SERVER_MAC_UPDATE_SERVICE_WRAPPERS_H_ 7 8 #import <Foundation/Foundation.h> 9 10 #include "base/sequenced_task_runner.h" 11 #import "chrome/updater/app/server/mac/service_protocol.h" 12 #include "chrome/updater/update_service.h" 13 14 using StateChangeCallback = 15 base::RepeatingCallback<void(updater::UpdateService::UpdateState)>; 16 17 @interface CRUUpdateStateObserver : NSObject <CRUUpdateStateObserving> 18 19 @property(readonly, nonatomic) StateChangeCallback callback; 20 21 - (instancetype)initWithRepeatingCallback:(StateChangeCallback)callback 22 callbackRunner: 23 (scoped_refptr<base::SequencedTaskRunner>) 24 callbackRunner; 25 26 @end 27 28 @interface CRUUpdateStateStateWrapper : NSObject <NSSecureCoding> 29 30 @property(readonly, nonatomic) 31 updater::UpdateService::UpdateState::State updateStateState; 32 33 - (instancetype)initWithUpdateStateState: 34 (updater::UpdateService::UpdateState::State)updateStateState; 35 36 @end 37 38 @interface CRUPriorityWrapper : NSObject <NSSecureCoding> 39 40 @property(readonly, nonatomic) updater::UpdateService::Priority priority; 41 42 - (instancetype)initWithPriority:(updater::UpdateService::Priority)priority; 43 44 @end 45 46 @interface CRUErrorCategoryWrapper : NSObject <NSSecureCoding> 47 48 @property(readonly, nonatomic) 49 updater::UpdateService::ErrorCategory errorCategory; 50 51 - (instancetype)initWithErrorCategory: 52 (updater::UpdateService::ErrorCategory)errorCategory; 53 54 @end 55 56 @interface CRUUpdateStateWrapper : NSObject <NSSecureCoding> 57 58 @property(readonly, nonatomic) updater::UpdateService::UpdateState updateState; 59 60 @property(readonly, nonatomic) NSString* appId; 61 @property(readonly, nonatomic) CRUUpdateStateStateWrapper* state; 62 @property(readonly, nonatomic) NSString* version; 63 @property(readonly, nonatomic) int64_t downloadedBytes; 64 @property(readonly, nonatomic) int64_t totalBytes; 65 @property(readonly, nonatomic) int installProgress; 66 @property(readonly, nonatomic) CRUErrorCategoryWrapper* errorCategory; 67 @property(readonly, nonatomic) int errorCode; 68 @property(readonly, nonatomic) int extraCode; 69 70 - (instancetype)initWithAppId:(NSString*)appId 71 state:(CRUUpdateStateStateWrapper*)state 72 version:(NSString*)version 73 downloadedBytes:(int64_t)downloadedBytes 74 totalBytes:(int64_t)totalBytes 75 installProgress:(int)installProgress 76 errorCategory:(CRUErrorCategoryWrapper*)errorCategory 77 errorCode:(int)errorCode 78 extraCode:(int)extraCode; 79 80 @end 81 82 #endif // CHROME_UPDATER_APP_SERVER_MAC_UPDATE_SERVICE_WRAPPERS_H_ 83