react-native-tcp/ios/TcpSocketClient.h

88 lines
2.4 KiB
C
Raw Normal View History

2015-12-23 18:56:33 +00:00
/**
* Copyright (c) 2015-present, Peel Technologies, Inc.
* All rights reserved.
*/
#import <Foundation/Foundation.h>
#import "RCTBridgeModule.h"
2015-12-07 19:45:33 +00:00
extern NSString *const RCTTCPErrorDomain;
2015-12-07 19:45:33 +00:00
enum RCTTCPError
{
2015-12-07 19:45:33 +00:00
RCTTCPNoError = 0, // Never used
RCTTCPInvalidInvocationError,// Invalid method invocation
RCTTCPBadConfigError, // Invalid configuration
RCTTCPBadParamError, // Invalid parameter was passed
RCTTCPSendTimeoutError, // A send operation timed out
RCTTCPSendFailedError, // A send operation failed
RCTTCPClosedError, // The socket was closed
RCTTCPOtherError, // Description provided in userInfo
};
2015-12-07 19:45:33 +00:00
typedef enum RCTTCPError RCTTCPError;
@class TcpSocketClient;
@protocol SocketClientDelegate <NSObject>
2015-12-22 23:53:08 +00:00
- (void)onConnect:(TcpSocketClient*)client;
- (void)onConnection:(TcpSocketClient*)client toClient:(NSNumber *)clientID;
- (void)onData:(NSNumber *)clientID data:(NSData *)data;
- (void)onClose:(TcpSocketClient*)client withError:(NSError *)err;
- (void)onError:(TcpSocketClient*)client withError:(NSError *)err;
- (NSNumber*)generateRandomId;
@end
@interface TcpSocketClient : NSObject
@property (nonatomic, retain) NSNumber * id;
2015-12-22 23:53:08 +00:00
@property (nonatomic, weak) id<SocketClientDelegate> clientDelegate;
///---------------------------------------------------------------------------------------
/// @name Class Methods
///---------------------------------------------------------------------------------------
/**
2015-12-07 19:45:33 +00:00
* Initializes a new RCTTCPClient
*
* @param delegate The object holding the callbacks, usually 'self'.
*
2015-12-07 19:45:33 +00:00
* @return New RCTTCPClient
*/
+ (id)socketClientWithId:(NSNumber *)clientID andConfig:(id<SocketClientDelegate>) delegate;
///---------------------------------------------------------------------------------------
/// @name Instance Methods
///---------------------------------------------------------------------------------------
/**
* Binds to a host and port
*
* @param port
* @param host ip address
* @return true if bound, false if there was an error
*/
2015-12-15 00:16:45 +00:00
- (BOOL)connect:(NSString *)host port:(int)port withOptions:(NSDictionary *)options error:(NSError **)error;
2015-12-22 23:53:08 +00:00
- (BOOL)listen:(NSString *)host port:(int)port error:(NSError **)error;
/**
* write data
*
*/
- (void)writeData:(NSData*) data callback:(RCTResponseSenderBlock) callback;
/**
2015-12-15 00:16:45 +00:00
* end client
*/
2015-12-15 00:16:45 +00:00
- (void)end;
/**
* destroy client
*/
- (void)destroy;
@end