aboutsummaryrefslogtreecommitdiffstats
path: root/Vendor/UnittWebSocketClient/include/WebSocketFragment.h
diff options
context:
space:
mode:
Diffstat (limited to 'Vendor/UnittWebSocketClient/include/WebSocketFragment.h')
-rw-r--r--Vendor/UnittWebSocketClient/include/WebSocketFragment.h111
1 files changed, 111 insertions, 0 deletions
diff --git a/Vendor/UnittWebSocketClient/include/WebSocketFragment.h b/Vendor/UnittWebSocketClient/include/WebSocketFragment.h
new file mode 100644
index 0000000..857d293
--- /dev/null
+++ b/Vendor/UnittWebSocketClient/include/WebSocketFragment.h
@@ -0,0 +1,111 @@
+//
+// WebSocketFragment.h
+// UnittWebSocketClient
+//
+// Created by Josh Morris on 6/12/11.
+// Copyright 2011 UnitT Software. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may not
+// use this file except in compliance with the License. You may obtain a copy of
+// the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations under
+// the License.
+//
+
+#import <Foundation/Foundation.h>
+
+
+enum
+{
+ MessageOpCodeIllegal = -1,
+ MessageOpCodeContinuation = 0x0,
+ MessageOpCodeText = 0x1,
+ MessageOpCodeBinary = 0x2,
+ MessageOpCodeClose = 0x8,
+ MessageOpCodePing = 0x9,
+ MessageOpCodePong = 0xA
+};
+typedef NSInteger MessageOpCode;
+
+enum
+{
+ PayloadTypeUnknown = 0,
+ PayloadTypeText = 1,
+ PayloadTypeBinary = 2
+};
+typedef NSInteger PayloadType;
+
+enum
+{
+ PayloadLengthIllegal = -1,
+ PayloadLengthMinimum = 0,
+ PayloadLengthShort = 1,
+ PayloadLengthLong = 2
+};
+typedef NSInteger PayloadLength;
+
+
+@interface WebSocketFragment : NSObject
+{
+ BOOL isFinal;
+ int mask;
+ int payloadStart;
+ int payloadLength;
+ BOOL isRSV1;
+ BOOL isRSV2;
+ BOOL isRSV3;
+ PayloadType payloadType;
+ NSData* payloadData;
+ MessageOpCode opCode;
+ NSMutableData* fragment;
+}
+
+@property (nonatomic,assign) BOOL isFinal;
+@property (nonatomic,readonly) BOOL hasMask;
+@property (nonatomic,readonly) BOOL isControlFrame;
+@property (nonatomic,readonly) BOOL isDataFrame;
+@property (nonatomic,readonly) BOOL isValid;
+@property (nonatomic,readonly) BOOL canBeParsed;
+@property (nonatomic,readonly) BOOL isHeaderValid;
+@property (nonatomic,assign) BOOL isRSV1;
+@property (nonatomic,assign) BOOL isRSV2;
+@property (nonatomic,assign) BOOL isRSV3;
+@property (nonatomic,assign) int mask;
+@property (nonatomic,assign) MessageOpCode opCode;
+@property (nonatomic,retain) NSData* payloadData;
+@property (nonatomic,assign) PayloadType payloadType;
+@property (nonatomic,retain) NSMutableData* fragment;
+@property (nonatomic,readonly) NSUInteger messageLength;
+@property (nonatomic,readonly) int payloadLength;
+@property (nonatomic,readonly) int payloadStart;
+
+@property (nonatomic,readonly) BOOL isDataValid;
+
+- (int) generateMask;
+- (NSData*) mask:(int) aMask data:(NSData*) aData;
+- (NSData*) mask:(int) aMask data:(NSData*) aData range:(NSRange) aRange;
+- (void) maskInPlace:(int) aMask data:(NSMutableData*) aData range:(NSRange) aRange;
+- (NSData*) unmask:(int) aMask data:(NSData*) aData;
+- (NSData*) unmask:(int) aMask data:(NSData*) aData range:(NSRange) aRange;
+- (void) unmaskInPlace:(int) aMask data:(NSMutableData*) aData range:(NSRange) aRange;
+
+- (void) parseHeader;
+- (BOOL) parseHeader:(NSData*) aData from:(NSUInteger) aOffset;
+- (void) parseContent;
+
+- (BOOL) parseContent:(NSData*) aData;
+
+- (void) buildFragment;
+
++ (id) fragmentWithOpCode:(MessageOpCode) aOpCode isFinal:(BOOL) aIsFinal payload:(NSData*) aPayload;
++ (id) fragmentWithData:(NSData*) aData;
+- (id) initWithOpCode:(MessageOpCode) aOpCode isFinal:(BOOL) aIsFinal payload:(NSData*) aPayload;
+- (id) initWithData:(NSData*) aData;
+
+@end