Sources/AliNetworkDiagnosis/AliNetworkDiagnosis.framework/Headers/AliMTR.h (79 lines of code) (raw):
//
// AliMTR.h
// AliNetworkDiagnosis
//
// Created by colin on 2021/4/2.
//
#import <Foundation/Foundation.h>
#import <AliNetworkDiagnosis/AliProtocols.h>
#import <AliNetworkDiagnosis/AliDetectConfig.h>
#import <Foundation/Foundation.h>
// all
#define MTR_PROTOCOL_ALL 0
// icmp
#define MTR_PROTOCOL_ICMP 1
// udp
#define MTR_PROTOCOL_UDP 2
@interface AliMTRResult : NSObject
@property (readonly) NSInteger code;
@property (readonly) NSString* host;
@property (readonly) NSString* content;
@end
typedef void (^AliMTRCompleteHandler)(id context, NSString *traceID, AliMTRResult *result);
// results: AliMTRResult数组
typedef void (^AliMTRCombineCompleteHandler)(id context, NSString *traceID, NSMutableArray<AliMTRResult*> *results);
@interface AliMTRConfig : AliDetectConfig
@property NSInteger timeout;
@property AliMTRCompleteHandler complete;
@property AliMTRCombineCompleteHandler combineComplete;
@property NSInteger maxTtl;
@property NSInteger maxPaths;
@property NSInteger maxTimesEachIP;
@property int protocol;
@property BOOL parallel;
-(instancetype)init:(NSString*)host
maxTtl:(NSInteger)maxTtl
maxPaths:(NSInteger)maxPaths
maxTimeEachIP:(NSInteger)maxTimeEachIP
timeout:(NSInteger)timeout
interfaceType:(AliNetDiagNetworkInterfaceType)interfaceType
prefer:(NSInteger)prefer
context:(id)context
traceID:(NSString*)traceID
complete:(AliMTRCompleteHandler)complete
combineComplete:(AliMTRCombineCompleteHandler)combineComplete;
@end
@interface AliMTR : NSObject <AliStopDelegate>
// param desc:
// host: 必选,需要探测的目标IP或者域名
// context: 非必选,回调上下文,可以为空
// traceID: 非必选,本次任务唯一标识,如果传入nil,会自动生成,回调的时候返回
// output: 非必选,探测执行过程回调,快速返回部分探测结果
// complete: 必选,探测结果回调
// maxTtl: 探测最多跳数
// maxPaths: 探测最多的路径
// maxTimesEachIP: 每跳中的每个IP最多探测次数
// interfaceType: 使用蜂窝或者WiFi网络探测
+ (void)start:(NSString*)host
context:(id)context
traceID:(NSString*)traceID
output:(id<AliOutputDelegate>)output
complete:(AliMTRCompleteHandler)complete;
+ (void)start:(NSString*)host
maxTtl:(int)maxTtl
context:(id)context
traceID:(NSString*)traceID
output:(id<AliOutputDelegate>)output
complete:(AliMTRCompleteHandler)complete;
+ (void)start:(NSString*)host
maxTtl:(int)maxTtl
interfaceType:(AliNetDiagNetworkInterfaceType)interfaceType
maxPaths:(int)maxPaths
maxTimesEachIP:(int)maxTimesEachIP
timeout:(int)timeout
context:(id)context
traceID:(NSString*)traceID
output:(id<AliOutputDelegate>)output
complete:(AliMTRCompleteHandler)complete;
+ (void)start:(NSString*)host
maxTtl:(int)maxTtl
maxPaths:(int)maxPaths
maxTimesEachIP:(int)maxTimesEachIP
timeout:(int)timeout
context:(id)context
traceID:(NSString*)traceID
complete:(AliMTRCombineCompleteHandler)complete;
+ (NSArray<AliMTR*> *)startInstance:(NSString*)host
maxTtl:(int)maxTtl
interfaceType:(AliNetDiagNetworkInterfaceType)interfaceType
maxPaths:(int)maxPaths
maxTimesEachIP:(int)maxTimesEachIP
timeout:(int)timeout
context:(id)context
traceID:(NSString*)traceID
output:(id<AliOutputDelegate>)output
complete:(AliMTRCompleteHandler)complete;
- (void)stop;
+(void)execute:(AliMTRConfig*)config;
-(void)setExInfo:(NSDictionary*)info;
@end