Antidote/local_pod_repo/objcTox/Classes/Public/Wrapper/OCTToxOptions.h
2024-02-22 21:43:11 +02:00

104 lines
3.0 KiB
Objective-C

// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
#import <Foundation/Foundation.h>
#import "OCTToxConstants.h"
NS_ASSUME_NONNULL_BEGIN
/**
* After creation OCTToxOptions will have predefined default values.
*/
@interface OCTToxOptions : NSObject <NSCopying>
/**
* The type of socket to create.
*
* If this is set to false, an IPv4 socket is created, which subsequently
* only allows IPv4 communication.
* If it is set to true, an IPv6 socket is created, allowing both IPv4 and
* IPv6 communication.
*/
@property (nonatomic, assign) BOOL ipv6Enabled;
/**
* Enable the use of UDP communication when available.
*
* Setting this to false will force Tox to use TCP only. Communications will
* need to be relayed through a TCP relay node, potentially slowing them down.
* Disabling UDP support is necessary when using anonymous proxies or Tor.
*/
@property (nonatomic, assign) BOOL udpEnabled;
/**
* Enable local network peer discovery.
*
* Disabling this will cause Tox to not look for peers on the local network.
*/
@property (nonatomic, assign) BOOL localDiscoveryEnabled;
/**
* Pass communications through a proxy.
*/
@property (nonatomic, assign) OCTToxProxyType proxyType;
/**
* The IP address or DNS name of the proxy to be used.
*
* If used, this must be non-NULL and be a valid DNS name. The name must not
* exceed 255 characters.
*
* This member is ignored (it can be nil) if proxyType is OCTToxProxyTypeNone.
*/
@property (nonatomic, copy, nullable) NSString *proxyHost;
/**
* The port to use to connect to the proxy server.
*
* Ports must be in the range (1, 65535). The value is ignored if
* proxyType is OCTToxProxyTypeNone.
*/
@property (nonatomic, assign) uint16_t proxyPort;
/**
* The start port of the inclusive port range to attempt to use.
*
* If both start_port and end_port are 0, the default port range will be
* used: [33445, 33545].
*
* If either start_port or end_port is 0 while the other is non-zero, the
* non-zero port will be the only port in the range.
*
* Having start_port > end_port will yield the same behavior as if start_port
* and end_port were swapped.
*/
@property (nonatomic, assign) uint16_t startPort;
/**
* The end port of the inclusive port range to attempt to use.
*/
@property (nonatomic, assign) uint16_t endPort;
/**
* The port to use for the TCP server (relay). If 0, the TCP server is
* disabled.
*
* Enabling it is not required for Tox to function properly.
*
* When enabled, your Tox instance can act as a TCP relay for other Tox
* instance. This leads to increased traffic, thus when writing a client
* it is recommended to enable TCP server only if the user has an option
* to disable it.
*/
@property (nonatomic, assign) uint16_t tcpPort;
/**
* Enables or disables UDP hole-punching in toxcore. (Default: enabled).
*/
@property (nonatomic, assign) BOOL holePunchingEnabled;
@end
NS_ASSUME_NONNULL_END