BBANetworkQualityStatusManager+Private.h 2.13 KB
//
//  BBANetworkQualityStatusManager+Private.h
//  BBAAPIRequest
//
//  Created by liumuye on 2021/3/7.
//
//  Copyright © 2021年 baidu. All rights reserved.

#import <BBAAPIRequest/BBAAPIRequest.h>

NS_ASSUME_NONNULL_BEGIN

// 复合链路下移动4/5G链路网络质量监控监听器
@protocol BBAMobileNetworkQualityListener <NSObject>
/// 网络质量变化时会回调此方法
/// @param networkQuality 新的网络质量状态值
- (void)didNetworkQualityChange: (int)networkQuality;
@end

/// 网络质量管理(私有变量与方法整理)
@interface BBANetworkQualityStatusManager (Private)

/// 进入弱网状态
- (void)enterWeakState;

/// 离开弱网状态
- (void)leaveWeakState;

/// 更新当前网络下的网络质量
- (void)updateNetworkQuality:(int)newNetworkQuality;

/// 添加网络质量监听器
/// @param listener 要添加的网络质量监听器
- (void)addNetworkQualityListener:(id <BBANetworkQualityListener>_Nonnull)listener;

/// 移除网络质量监听器
/// @param listener 要移除的网络质量监听器
- (void)removeNetworkQualityListener:(id <BBANetworkQualityListener>_Nonnull)listener;

/// 通知监听器网络质量变化
/// @param networkQuality 新的网络质量
- (void)notifyNetworkQualityChange:(int)networkQuality;

/// 改变QUIC开启状态
/// @param quicStatus QUIC开启原因
- (void)changeQuicStatus:(APIRequestQuicStatus)quicStatus;

/// 返回网络质量对应的文字描述 (Debug使用)
/// @param netQuality 网络质量
+ (NSString *)netQualityName:(int)netQuality;

#pragma mark Multipath

/// 更新移动链路(4/5G)下得网络质量 (用于复合链路探测场景)
- (void)updateMobileNetworkQuality:(int)newNetworkQuality;

/// 移动链路(4/5G)进入好网状态
- (void)enterMobileNetworkGoodState;

/// 移动链路(4/5G)退出好网状态
- (void)leaveMobileNetworkGoodState;

/// 增加移动链路(4/5G)网络质量监听
- (void)addMobileNetworkQualityListener:(id<BBAMobileNetworkQualityListener>)listener;

/// 移除移动链路(4/5G)网络质量监听
- (void)removeMobileNetworkQualityListener:(id<BBAMobileNetworkQualityListener>)listener;

@end

NS_ASSUME_NONNULL_END