BBASMPMSError.h 2.87 KB
//
//  BBASMPMSError.h
//  SWAN
//
//  Created by baidu on 2018/10/27.
//  Copyright © 2018 baidu. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "BBASMPMSCommon.h"

extern NSString * const kBBASMPMSErrorDomain;
extern NSString * const BBASMPMSErrorMetaInfo;

/// PMS case
typedef NS_ENUM(NSUInteger, BBASMPMSErrorCase) {
    BBASMPMSErrorCaseCommon = 010,         ///< Appinfo error, parameter error, etc.
    BBASMPMSErrorCaseMainPackage = 011,    ///< Main package error.
    BBASMPMSErrorCaseSubPackage = 012,     ///< Sub package error.
    BBASMPMSErrorCaseFramework = 013,      ///< Swan core or game core error.
    BBASMPMSErrorCaseExtension = 014,      ///< Extension error.
    BBASMPMSErrorCasePlugin = 015          ///< Plugin error.
};

typedef NS_ENUM(NSUInteger, BBASMPMSErrorType) {
    // Error from server.
    BBASMPMSErrorSystemError = 1001,
    BBASMPMSErrorRequestProhibited = 1002,
    BBASMPMSErrorPublicParameterInvalid = 1003,
    BBASMPMSErrorQueryParameterInavalid = 1004,
    BBASMPMSErrorPackageIsTheLatest = 1010,
    BBASMPMSErrorAppNotExist = 1011,
    BBASMPMSErrorPackageNotExist = 1012,
    BBASMPMSErrorSDKVersionNeedToUpdate = 1013,
    BBASMPMSErrorFrameworkVersionNotFound = 1014,
    BBASMPMSErrorHostAppNotSupportTheApp = 1015,
    BBASMPMSErrorAppNoTSupportInHostApp = 1016,
    BBASMPMSErrorServerFatalError = 1020,
    
    // Error from pms module.
    BBASMPMSErrorRequestValueNUM = 2000,
    BBASMPMSErrorParameterInvalid = 2100,
    BBASMPMSErrorNetworkError = 2101,  // Network unavailable or timeout.
    BBASMPMSErrorDataMissed = 2102,
    BBASMPMSErrorResponseJSONInvalid = 2103,
    BBASMPMSErrorRequestFailed = 2104,  // Http request failed or very bad network.
    BBASMPMSErrorAppStatusNotAvailable = 2107,
    BBASMPMSErrorAppStatusWebDowngrade = 2108,   // web downgrade
    BBASMPMSErrorAppWebDowngradeError = 2109,    // web downgrade failed
    
    BBASMPMSErrorDownloadFailed = 2201,
    BBASMPMSErrorZipFileVerifyFailed = 2202,
    BBASMPMSErrorOutOfSpace = 2205,
    
    BBASMPMSErrorUnzipFailed = 2320,
    
    BBASMPMSErrorAppInfoMissed = 2904,
    BBASMPMSErrorAppPackageMissed = 2905,
    BBASMPMSErrorSaveDatabaseFailed = 2906,
    BBASMPMSErrorFrameworkUpdateFailed = 2907,
    BBASMPMSErrorExtensionUpdateFailed = 2908,
    
    BBASMPMSErrorPackageDownloadTooSlow = 2912  // 包下载过慢
};

@interface BBASMPMSError : NSObject
+ (NSError *)errorWithType:(BBASMPMSErrorType)type
               packageType:(BBASMPMSPackageType)packageType;

+ (NSError *)errorWithType:(BBASMPMSErrorType)type
               packageType:(BBASMPMSPackageType)packageType
                   message:(NSString *)errorMessage;

+ (NSError *)errorWithType:(BBASMPMSErrorType)type
               packageType:(BBASMPMSPackageType)packageType
                   message:(NSString *)errorMessage
                  metaInfo:(BBASMAppMetaInfo *)pmsErrorMetaInfo;

@end