宽窄优行-由【嘉易行】项目成品而来
younger_times
2023-04-06 a1ae6802080a22e6e6ce6d0935e95facb1daca5c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
//
//  RHSocketCodecProtocol.h
//  RHSocketKitDemo
//
//  Created by zhuruhong on 15/12/16.
//  Copyright © 2015年 zhuruhong. All rights reserved.
//
 
#import <Foundation/Foundation.h>
#import "RHSocketPacketContext.h"
 
#pragma mark - encoder output protocol
 
/**
 *  数据编码后,分发对象协议
 */
@protocol RHSocketEncoderOutputProtocol <NSObject>
 
@required
 
- (void)didEncode:(NSData *)encodedData timeout:(NSTimeInterval)timeout;
 
@end
 
#pragma mark - decoder output protocol
 
/**
 *  数据解码后,分发对象协议
 */
@protocol RHSocketDecoderOutputProtocol <NSObject>
 
@required
 
- (void)didDecode:(id<RHDownstreamPacket>)decodedPacket;
 
@end
 
#pragma mark - encoder protocol
 
/**
 *  编码器协议
 */
@protocol RHSocketEncoderProtocol <NSObject>
 
@required
 
/**
 *  编码器
 *
 *  @param upstreamPacket   待发送的数据包
 *  @param output           数据编码后,分发对象
 */
- (void)encode:(id<RHUpstreamPacket>)upstreamPacket output:(id<RHSocketEncoderOutputProtocol>)output;
 
@end
 
#pragma mark - decoder protocol
 
/**
 *  解码器协议
 *  先校验decodeData:output:方法,如果未实现,则走decode:output:方法
 */
@protocol RHSocketDecoderProtocol <NSObject>
 
@optional
 
/**
 *  解码器 2.3.0
 *
 *  @param downstreamData   接收到的原始数据
 *  @param output           数据解码后,分发对象
 *
 *  @return -1解码异常; 0数据不完整,等待数据包; >0解码正常,为已解码数据长度
 */
- (NSInteger)decodeData:(NSData *)downstreamData output:(id<RHSocketDecoderOutputProtocol>)output;
 
@required
 
/**
 *  解码器
 *
 *  @param downstreamPacket 接收到的原始数据
 *  @param output           数据解码后,分发对象
 *
 *  @return -1解码异常,断开连接; 0数据不完整,等待数据包; >0解码正常,为已解码数据长度
 */
- (NSInteger)decode:(id<RHDownstreamPacket>)downstreamPacket output:(id<RHSocketDecoderOutputProtocol>)output;//准备废弃 DEPRECATED_ATTRIBUTE
 
@end
 
#pragma mark -