//
//  YCKSignalManagerProtocol.h
//  YCKSdwan
//
//  Created by 徐家骏 on 2019/6/29.
//  Copyright © 2019 徐家骏. All rights reserved.
//

#ifndef YCKSignalManagerProtocol_h
#define YCKSignalManagerProtocol_h
#import <YCKSdwan/YCKSignalPacket.h>


@protocol YCKSignalHandlerProtocol <NSObject>

- (void) onReceivedSignalPacket:(YCKSignalPacket *)packet;

@end

@protocol YCKSignalManagerDelegate <NSObject>


@end


@protocol YCKSignalManager <NSObject>

- (BOOL) registerSignalHandler:(id<YCKSignalHandlerProtocol>)handler forCategory:(YCKSignalCategory)category;
- (void) sendSignal:(YCKSignalPacket *)signal;
- (void) sendCustomSignal:(YCKSignalPacket *)signal to:(int64_t)uid;

- (void) pushRegistry;
- (void) apnsRegistry;
- (void) registerApnsDeviceToken:(NSData *)deviceToken;
- (void) resetUdpSignalChannel;
- (void) resetUdpSignalChannelIfBackground;

- (void) onLogout;

- (void) printSignalChannelStatistics;

@end

#endif /* YCKSignalManagerProtocol_h */
