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

#ifndef NXSignalManagerProtocol_h
#define NXSignalManagerProtocol_h
#import <NXSdwan/NXSignalPacket.h>


@protocol NXSignalHandlerProtocol <NSObject>

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

@end

@protocol NXSignalManagerDelegate <NSObject>


@end


@protocol NXSignalManager <NSObject>

- (BOOL) registerSignalHandler:(id<NXSignalHandlerProtocol>)handler forCategory:(NXSignalCategory)category;
- (void) sendSignal:(NXSignalPacket *)signal;
- (void) sendCustomSignal:(NXSignalPacket *)signal to:(int64_t)uid;

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

- (void) onLogout;

- (void) printSignalChannelStatistics;

@end

#endif /* NXSignalManagerProtocol_h */
