Index: webrtc/examples/objc/AppRTCDemo/third_party/SocketRocket/SRWebSocket.h |
diff --git a/webrtc/examples/objc/AppRTCDemo/third_party/SocketRocket/SRWebSocket.h b/webrtc/examples/objc/AppRTCDemo/third_party/SocketRocket/SRWebSocket.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5cce725a348aabfbd00be80ccebb41dae500079c |
--- /dev/null |
+++ b/webrtc/examples/objc/AppRTCDemo/third_party/SocketRocket/SRWebSocket.h |
@@ -0,0 +1,132 @@ |
+// |
+// Copyright 2012 Square Inc. |
+// |
+// 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> |
+#import <Security/SecCertificate.h> |
+ |
+typedef enum { |
+ SR_CONNECTING = 0, |
+ SR_OPEN = 1, |
+ SR_CLOSING = 2, |
+ SR_CLOSED = 3, |
+} SRReadyState; |
+ |
+typedef enum SRStatusCode : NSInteger { |
+ SRStatusCodeNormal = 1000, |
+ SRStatusCodeGoingAway = 1001, |
+ SRStatusCodeProtocolError = 1002, |
+ SRStatusCodeUnhandledType = 1003, |
+ // 1004 reserved. |
+ SRStatusNoStatusReceived = 1005, |
+ // 1004-1006 reserved. |
+ SRStatusCodeInvalidUTF8 = 1007, |
+ SRStatusCodePolicyViolated = 1008, |
+ SRStatusCodeMessageTooBig = 1009, |
+} SRStatusCode; |
+ |
+@class SRWebSocket; |
+ |
+extern NSString *const SRWebSocketErrorDomain; |
+extern NSString *const SRHTTPResponseErrorKey; |
+ |
+#pragma mark - SRWebSocketDelegate |
+ |
+@protocol SRWebSocketDelegate; |
+ |
+#pragma mark - SRWebSocket |
+ |
+@interface SRWebSocket : NSObject <NSStreamDelegate> |
+ |
+@property (nonatomic, weak) id <SRWebSocketDelegate> delegate; |
+ |
+@property (nonatomic, readonly) SRReadyState readyState; |
+@property (nonatomic, readonly, retain) NSURL *url; |
+ |
+// This returns the negotiated protocol. |
+// It will be nil until after the handshake completes. |
+@property (nonatomic, readonly, copy) NSString *protocol; |
+ |
+// Protocols should be an array of strings that turn into Sec-WebSocket-Protocol. |
+- (id)initWithURLRequest:(NSURLRequest *)request protocols:(NSArray *)protocols; |
+- (id)initWithURLRequest:(NSURLRequest *)request; |
+ |
+// Some helper constructors. |
+- (id)initWithURL:(NSURL *)url protocols:(NSArray *)protocols; |
+- (id)initWithURL:(NSURL *)url; |
+ |
+// Delegate queue will be dispatch_main_queue by default. |
+// You cannot set both OperationQueue and dispatch_queue. |
+- (void)setDelegateOperationQueue:(NSOperationQueue*) queue; |
+- (void)setDelegateDispatchQueue:(dispatch_queue_t) queue; |
+ |
+// By default, it will schedule itself on +[NSRunLoop SR_networkRunLoop] using defaultModes. |
+- (void)scheduleInRunLoop:(NSRunLoop *)aRunLoop forMode:(NSString *)mode; |
+- (void)unscheduleFromRunLoop:(NSRunLoop *)aRunLoop forMode:(NSString *)mode; |
+ |
+// SRWebSockets are intended for one-time-use only. Open should be called once and only once. |
+- (void)open; |
+ |
+- (void)close; |
+- (void)closeWithCode:(NSInteger)code reason:(NSString *)reason; |
+ |
+// Send a UTF8 String or Data. |
+- (void)send:(id)data; |
+ |
+// Send Data (can be nil) in a ping message. |
+- (void)sendPing:(NSData *)data; |
+ |
+@end |
+ |
+#pragma mark - SRWebSocketDelegate |
+ |
+@protocol SRWebSocketDelegate <NSObject> |
+ |
+// message will either be an NSString if the server is using text |
+// or NSData if the server is using binary. |
+- (void)webSocket:(SRWebSocket *)webSocket didReceiveMessage:(id)message; |
+ |
+@optional |
+ |
+- (void)webSocketDidOpen:(SRWebSocket *)webSocket; |
+- (void)webSocket:(SRWebSocket *)webSocket didFailWithError:(NSError *)error; |
+- (void)webSocket:(SRWebSocket *)webSocket didCloseWithCode:(NSInteger)code reason:(NSString *)reason wasClean:(BOOL)wasClean; |
+- (void)webSocket:(SRWebSocket *)webSocket didReceivePong:(NSData *)pongPayload; |
+ |
+@end |
+ |
+#pragma mark - NSURLRequest (CertificateAdditions) |
+ |
+@interface NSURLRequest (CertificateAdditions) |
+ |
+@property (nonatomic, retain, readonly) NSArray *SR_SSLPinnedCertificates; |
+ |
+@end |
+ |
+#pragma mark - NSMutableURLRequest (CertificateAdditions) |
+ |
+@interface NSMutableURLRequest (CertificateAdditions) |
+ |
+@property (nonatomic, retain) NSArray *SR_SSLPinnedCertificates; |
+ |
+@end |
+ |
+#pragma mark - NSRunLoop (SRWebSocket) |
+ |
+@interface NSRunLoop (SRWebSocket) |
+ |
++ (NSRunLoop *)SR_networkRunLoop; |
+ |
+@end |