Initial commit
This commit is contained in:
557
local_pod_repo/objcTox/Classes/Public/Wrapper/OCTToxConstants.h
Normal file
557
local_pod_repo/objcTox/Classes/Public/Wrapper/OCTToxConstants.h
Normal file
@@ -0,0 +1,557 @@
|
||||
// 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>
|
||||
|
||||
typedef uint32_t OCTToxNoSpam;
|
||||
typedef uint16_t OCTToxPort;
|
||||
typedef int OCTToxFriendNumber;
|
||||
typedef int OCTToxMessageId;
|
||||
typedef uint32_t OCTToxFileNumber;
|
||||
typedef long long OCTToxFileSize;
|
||||
typedef uint64_t OCTToxCapabilities;
|
||||
|
||||
extern const OCTToxFriendNumber kOCTToxFriendNumberFailure;
|
||||
extern const OCTToxFileNumber kOCTToxFileNumberFailure;
|
||||
extern const OCTToxFileSize kOCTToxFileSizeUnknown;
|
||||
|
||||
extern NSString *const kOCTToxErrorDomain;
|
||||
|
||||
/**
|
||||
* Length of address. Address is hex string, has following format:
|
||||
* [publicKey (32 bytes, 64 characters)][nospam number (4 bytes, 8 characters)][checksum (2 bytes, 4 characters)]
|
||||
*/
|
||||
extern const NSUInteger kOCTToxAddressLength;
|
||||
|
||||
/**
|
||||
* Length of public key. It is hex string, 32 bytes, 64 characters.
|
||||
*/
|
||||
extern const NSUInteger kOCTToxPublicKeyLength;
|
||||
/**
|
||||
* Length of secret key. It is hex string, 32 bytes, 64 characters.
|
||||
*/
|
||||
extern const NSUInteger kOCTToxSecretKeyLength;
|
||||
|
||||
extern const NSUInteger kOCTToxMaxNameLength;
|
||||
extern const NSUInteger kOCTToxMaxStatusMessageLength;
|
||||
extern const NSUInteger kOCTToxMaxFriendRequestLength;
|
||||
extern const NSUInteger kOCTToxMaxMessageLength;
|
||||
extern const NSUInteger kOCTToxMaxCustomPacketSize;
|
||||
extern const NSUInteger kOCTToxMaxFileNameLength;
|
||||
|
||||
extern const NSUInteger kOCTToxHashLength;
|
||||
extern const NSUInteger kOCTToxFileIdLength;
|
||||
|
||||
typedef NS_ENUM(NSInteger, OCTToxProxyType) {
|
||||
OCTToxProxyTypeNone,
|
||||
OCTToxProxyTypeSocks5,
|
||||
OCTToxProxyTypeHTTP,
|
||||
};
|
||||
|
||||
typedef NS_ENUM(NSInteger, OCTToxConnectionStatus) {
|
||||
/**
|
||||
* There is no connection. This instance, or the friend the state change is about, is now offline.
|
||||
*/
|
||||
OCTToxConnectionStatusNone,
|
||||
|
||||
/**
|
||||
* A TCP connection has been established. For the own instance, this means it
|
||||
* is connected through a TCP relay, only. For a friend, this means that the
|
||||
* connection to that particular friend goes through a TCP relay.
|
||||
*/
|
||||
OCTToxConnectionStatusTCP,
|
||||
|
||||
/**
|
||||
* A UDP connection has been established. For the own instance, this means it
|
||||
* is able to send UDP packets to DHT nodes, but may still be connected to
|
||||
* a TCP relay. For a friend, this means that the connection to that
|
||||
* particular friend was built using direct UDP packets.
|
||||
*/
|
||||
OCTToxConnectionStatusUDP,
|
||||
};
|
||||
|
||||
typedef NS_ENUM(NSInteger, OCTToxUserStatus) {
|
||||
/**
|
||||
* User is online and available.
|
||||
*/
|
||||
OCTToxUserStatusNone,
|
||||
/**
|
||||
* User is away. Clients can set this e.g. after a user defined
|
||||
* inactivity time.
|
||||
*/
|
||||
OCTToxUserStatusAway,
|
||||
/**
|
||||
* User is busy. Signals to other clients that this client does not
|
||||
* currently wish to communicate.
|
||||
*/
|
||||
OCTToxUserStatusBusy,
|
||||
};
|
||||
|
||||
typedef NS_ENUM(NSInteger, OCTToxMessageType) {
|
||||
/**
|
||||
* Normal text message. Similar to PRIVMSG on IRC.
|
||||
*/
|
||||
OCTToxMessageTypeNormal,
|
||||
/**
|
||||
* A message describing an user action. This is similar to /me (CTCP ACTION)
|
||||
* on IRC.
|
||||
*/
|
||||
OCTToxMessageTypeAction,
|
||||
/**
|
||||
* msgV3 HIGH LEVEL ACK message.
|
||||
*/
|
||||
OCTToxMessageTypeHighlevelack,
|
||||
};
|
||||
|
||||
typedef NS_ENUM(NSInteger, OCTToxFileKind) {
|
||||
/**
|
||||
* Arbitrary file data. Clients can choose to handle it based on the file name
|
||||
* or magic or any other way they choose.
|
||||
*/
|
||||
OCTToxFileKindData,
|
||||
|
||||
/**
|
||||
* Avatar filename. This consists of toxHash(image).
|
||||
* Avatar data. This consists of the image data.
|
||||
*
|
||||
* Avatars can be sent at any time the client wishes. Generally, a client will
|
||||
* send the avatar to a friend when that friend comes online, and to all
|
||||
* friends when the avatar changed. A client can save some traffic by
|
||||
* remembering which friend received the updated avatar already and only send
|
||||
* it if the friend has an out of date avatar.
|
||||
*
|
||||
* Clients who receive avatar send requests can reject it (by sending
|
||||
* OCTToxFileControl before any other controls), or accept it (by
|
||||
* sending OCTToxFileControlResume). The fileId of length kOCTToxHashLength bytes
|
||||
* (same length as kOCTToxFileIdLength) will contain the hash. A client can compare
|
||||
* this hash with a saved hash and send OCTToxFileControlCancel to terminate the avatar
|
||||
* transfer if it matches.
|
||||
*
|
||||
* When fileSize is set to 0 in the transfer request it means that the client has no
|
||||
* avatar.
|
||||
*/
|
||||
OCTToxFileKindAvatar,
|
||||
};
|
||||
|
||||
typedef NS_ENUM(NSInteger, OCTToxFileControl) {
|
||||
/**
|
||||
* Sent by the receiving side to accept a file send request. Also sent after a
|
||||
* OCTToxFileControlPause command to continue sending or receiving.
|
||||
*/
|
||||
OCTToxFileControlResume,
|
||||
|
||||
/**
|
||||
* Sent by clients to pause the file transfer. The initial state of a file
|
||||
* transfer is always paused on the receiving side and running on the sending
|
||||
* side. If both the sending and receiving side pause the transfer, then both
|
||||
* need to send OCTToxFileControlResume for the transfer to resume.
|
||||
*/
|
||||
OCTToxFileControlPause,
|
||||
|
||||
/**
|
||||
* Sent by the receiving side to reject a file send request before any other
|
||||
* commands are sent. Also sent by either side to terminate a file transfer.
|
||||
*/
|
||||
OCTToxFileControlCancel,
|
||||
};
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Error Codes
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
/**
|
||||
* Error codes for init method.
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, OCTToxErrorInitCode) {
|
||||
OCTToxErrorInitCodeUnknown,
|
||||
/**
|
||||
* Was unable to allocate enough memory to store the internal structures for the Tox object.
|
||||
*/
|
||||
OCTToxErrorInitCodeMemoryError,
|
||||
|
||||
/**
|
||||
* Was unable to bind to a port. This may mean that all ports have already been bound,
|
||||
* e.g. by other Tox instances, or it may mean a permission error.
|
||||
*/
|
||||
OCTToxErrorInitCodePortAlloc,
|
||||
|
||||
/**
|
||||
* proxyType was invalid.
|
||||
*/
|
||||
OCTToxErrorInitCodeProxyBadType,
|
||||
|
||||
/**
|
||||
* proxyAddress had an invalid format or was nil (while proxyType was set).
|
||||
*/
|
||||
OCTToxErrorInitCodeProxyBadHost,
|
||||
|
||||
/**
|
||||
* proxyPort was invalid.
|
||||
*/
|
||||
OCTToxErrorInitCodeProxyBadPort,
|
||||
|
||||
/**
|
||||
* The proxy host passed could not be resolved.
|
||||
*/
|
||||
OCTToxErrorInitCodeProxyNotFound,
|
||||
|
||||
/**
|
||||
* The saved data to be loaded contained an encrypted save.
|
||||
*/
|
||||
OCTToxErrorInitCodeEncrypted,
|
||||
|
||||
/**
|
||||
* The data format was invalid. This can happen when loading data that was
|
||||
* saved by an older version of Tox, or when the data has been corrupted.
|
||||
* When loading from badly formatted data, some data may have been loaded,
|
||||
* and the rest is discarded. Passing an invalid length parameter also
|
||||
* causes this error.
|
||||
*/
|
||||
OCTToxErrorInitCodeLoadBadFormat,
|
||||
};
|
||||
|
||||
/**
|
||||
* Error codes for bootstrap and addTCPRelay methods.
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, OCTToxErrorBootstrapCode) {
|
||||
OCTToxErrorBootstrapCodeUnknown,
|
||||
|
||||
/**
|
||||
* The host could not be resolved to an IP address, or the IP address passed was invalid.
|
||||
*/
|
||||
OCTToxErrorBootstrapCodeBadHost,
|
||||
|
||||
/**
|
||||
* The port passed was invalid. The valid port range is (1, 65535).
|
||||
*/
|
||||
OCTToxErrorBootstrapCodeBadPort,
|
||||
};
|
||||
|
||||
/**
|
||||
* Common error codes for all methods that set a piece of user-visible client information.
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, OCTToxErrorSetInfoCode) {
|
||||
OCTToxErrorSetInfoCodeUnknow,
|
||||
|
||||
/**
|
||||
* Information length exceeded maximum permissible size.
|
||||
*/
|
||||
OCTToxErrorSetInfoCodeTooLong,
|
||||
};
|
||||
|
||||
/**
|
||||
* Error codes for addFriend method.
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, OCTToxErrorFriendAdd) {
|
||||
OCTToxErrorFriendAddUnknown,
|
||||
|
||||
/**
|
||||
* The length of the friend request message exceeded kOCTToxMaxFriendRequestLength.
|
||||
*/
|
||||
OCTToxErrorFriendAddTooLong,
|
||||
|
||||
/**
|
||||
* The friend request message was empty.
|
||||
*/
|
||||
OCTToxErrorFriendAddNoMessage,
|
||||
|
||||
/**
|
||||
* The friend address belongs to the sending client.
|
||||
*/
|
||||
OCTToxErrorFriendAddOwnKey,
|
||||
|
||||
/**
|
||||
* A friend request has already been sent, or the address belongs to a friend
|
||||
* that is already on the friend list.
|
||||
*/
|
||||
OCTToxErrorFriendAddAlreadySent,
|
||||
|
||||
/**
|
||||
* The friend address checksum failed.
|
||||
*/
|
||||
OCTToxErrorFriendAddBadChecksum,
|
||||
|
||||
/**
|
||||
* The friend was already there, but the nospam value was different.
|
||||
*/
|
||||
OCTToxErrorFriendAddSetNewNospam,
|
||||
|
||||
/**
|
||||
* A memory allocation failed when trying to increase the friend list size.
|
||||
*/
|
||||
OCTToxErrorFriendAddMalloc,
|
||||
};
|
||||
|
||||
/**
|
||||
* Error codes for deleteFriend method.
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, OCTToxErrorFriendDelete) {
|
||||
/**
|
||||
* There was no friend with the given friend number. No friends were deleted.
|
||||
*/
|
||||
OCTToxErrorFriendDeleteNotFound,
|
||||
};
|
||||
|
||||
/**
|
||||
* Error codes for friendNumberWithPublicKey
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, OCTToxErrorFriendByPublicKey) {
|
||||
OCTToxErrorFriendByPublicKeyUnknown,
|
||||
|
||||
/**
|
||||
* No friend with the given Public Key exists on the friend list.
|
||||
*/
|
||||
OCTToxErrorFriendByPublicKeyNotFound,
|
||||
};
|
||||
|
||||
/**
|
||||
* Error codes for publicKeyFromFriendNumber.
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, OCTToxErrorFriendGetPublicKey) {
|
||||
/**
|
||||
* No friend with the given number exists on the friend list.
|
||||
*/
|
||||
OCTToxErrorFriendGetPublicKeyFriendNotFound,
|
||||
};
|
||||
|
||||
/**
|
||||
* Error codes for last online methods.
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, OCTToxErrorFriendGetLastOnline) {
|
||||
/**
|
||||
* No friend with the given number exists on the friend list.
|
||||
*/
|
||||
OCTToxErrorFriendGetLastOnlineFriendNotFound,
|
||||
};
|
||||
|
||||
/**
|
||||
* Error codes for friend state query methods.
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, OCTToxErrorFriendQuery) {
|
||||
OCTToxErrorFriendQueryUnknown,
|
||||
|
||||
/**
|
||||
* The friendNumber did not designate a valid friend.
|
||||
*/
|
||||
OCTToxErrorFriendQueryFriendNotFound,
|
||||
};
|
||||
|
||||
/**
|
||||
* Error codes for changing isTyping.
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, OCTToxErrorSetTyping) {
|
||||
/**
|
||||
* The friend number did not designate a valid friend.
|
||||
*/
|
||||
OCTToxErrorSetTypingFriendNotFound,
|
||||
};
|
||||
|
||||
/**
|
||||
* Error codes for sending message.
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, OCTToxErrorFriendSendMessage) {
|
||||
OCTToxErrorFriendSendMessageUnknown,
|
||||
|
||||
/**
|
||||
* The friend number did not designate a valid friend.
|
||||
*/
|
||||
OCTToxErrorFriendSendMessageFriendNotFound,
|
||||
|
||||
/**
|
||||
* This client is currently not connected to the friend.
|
||||
*/
|
||||
OCTToxErrorFriendSendMessageFriendNotConnected,
|
||||
|
||||
/**
|
||||
* An allocation error occurred while increasing the send queue size.
|
||||
*/
|
||||
OCTToxErrorFriendSendMessageAlloc,
|
||||
|
||||
/**
|
||||
* Message length exceeded kOCTToxMaxMessageLength.
|
||||
*/
|
||||
OCTToxErrorFriendSendMessageTooLong,
|
||||
|
||||
/**
|
||||
* Attempted to send a zero-length message.
|
||||
*/
|
||||
OCTToxErrorFriendSendMessageEmpty,
|
||||
};
|
||||
|
||||
/**
|
||||
* Error codes for sending file control.
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, OCTToxErrorFileControl) {
|
||||
/**
|
||||
* The friendNumber passed did not designate a valid friend.
|
||||
*/
|
||||
OCTToxErrorFileControlFriendNotFound,
|
||||
|
||||
/**
|
||||
* This client is currently not connected to the friend.
|
||||
*/
|
||||
OCTToxErrorFileControlFriendNotConnected,
|
||||
|
||||
/**
|
||||
* No file transfer with the given file number was found for the given friend.
|
||||
*/
|
||||
OCTToxErrorFileControlNotFound,
|
||||
|
||||
/**
|
||||
* A OCTToxFileControlResume control was sent, but the file transfer is running normally.
|
||||
*/
|
||||
OCTToxErrorFileControlNotPaused,
|
||||
|
||||
/**
|
||||
* A OCTToxFileControlResume control was sent, but the file transfer was paused by the other
|
||||
* party. Only the party that paused the transfer can resume it.
|
||||
*/
|
||||
OCTToxErrorFileControlDenied,
|
||||
|
||||
/**
|
||||
* A OCTToxFileControlPause control was sent, but the file transfer was already paused.
|
||||
*/
|
||||
OCTToxErrorFileControlAlreadyPaused,
|
||||
|
||||
/**
|
||||
* Packet queue is full.
|
||||
*/
|
||||
OCTToxErrorFileControlSendq,
|
||||
};
|
||||
|
||||
/**
|
||||
* Error codes for file seek method.
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, OCTToxErrorFileSeek) {
|
||||
/**
|
||||
* The friendNumber passed did not designate a valid friend.
|
||||
*/
|
||||
OCTToxErrorFileSeekFriendNotFound,
|
||||
|
||||
/**
|
||||
* This client is currently not connected to the friend.
|
||||
*/
|
||||
OCTToxErrorFileSeekFriendNotConnected,
|
||||
|
||||
/**
|
||||
* No file transfer with the given file number was found for the given friend.
|
||||
*/
|
||||
OCTToxErrorFileSeekNotFound,
|
||||
|
||||
/**
|
||||
* File was not in a state where it could be seeked.
|
||||
*/
|
||||
OCTToxErrorFileSeekDenied,
|
||||
|
||||
/**
|
||||
* Seek position was invalid
|
||||
*/
|
||||
OCTToxErrorFileSeekInvalidPosition,
|
||||
|
||||
/**
|
||||
* Packet queue is full.
|
||||
*/
|
||||
OCTToxErrorFileSeekSendq,
|
||||
};
|
||||
|
||||
/**
|
||||
* Error codes for fileGetFileId method.
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, OCTToxErrorFileGet) {
|
||||
/**
|
||||
* Internal error.
|
||||
**/
|
||||
OCTToxErrorFileGetInternal,
|
||||
|
||||
/**
|
||||
* The friendNumber passed did not designate a valid friend.
|
||||
*/
|
||||
OCTToxErrorFileGetFriendNotFound,
|
||||
|
||||
/**
|
||||
* No file transfer with the given file number was found for the given friend.
|
||||
*/
|
||||
OCTToxErrorFileGetNotFound,
|
||||
|
||||
/**
|
||||
* One of the arguments to the function was NULL when it was not expected.
|
||||
*/
|
||||
OCTToxErrorFileGetNULL,
|
||||
};
|
||||
|
||||
/**
|
||||
* Error codes for fileSend method.
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, OCTToxErrorFileSend) {
|
||||
OCTToxErrorFileSendUnknown,
|
||||
|
||||
/**
|
||||
* The friendNumber passed did not designate a valid friend.
|
||||
*/
|
||||
OCTToxErrorFileSendFriendNotFound,
|
||||
|
||||
/**
|
||||
* This client is currently not connected to the friend.
|
||||
*/
|
||||
OCTToxErrorFileSendFriendNotConnected,
|
||||
|
||||
/**
|
||||
* Filename length exceeded kOCTToxMaxFileNameLength bytes.
|
||||
*/
|
||||
OCTToxErrorFileSendNameTooLong,
|
||||
|
||||
/**
|
||||
* Too many ongoing transfers. The maximum number of concurrent file transfers
|
||||
* is 256 per friend per direction (sending and receiving).
|
||||
*/
|
||||
OCTToxErrorFileSendTooMany,
|
||||
};
|
||||
|
||||
/**
|
||||
* Error codes for fileSendChunk method.
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, OCTToxErrorFileSendChunk) {
|
||||
OCTToxErrorFileSendChunkUnknown,
|
||||
|
||||
/**
|
||||
* The friendNumber passed did not designate a valid friend.
|
||||
*/
|
||||
OCTToxErrorFileSendChunkFriendNotFound,
|
||||
|
||||
/**
|
||||
* This client is currently not connected to the friend.
|
||||
*/
|
||||
OCTToxErrorFileSendChunkFriendNotConnected,
|
||||
|
||||
/**
|
||||
* No file transfer with the given file number was found for the given friend.
|
||||
*/
|
||||
OCTToxErrorFileSendChunkNotFound,
|
||||
|
||||
/**
|
||||
* File transfer was found but isn't in a transferring state: (paused, done,
|
||||
* broken, etc...) (happens only when not called from the request chunk callback).
|
||||
*/
|
||||
OCTToxErrorFileSendChunkNotTransferring,
|
||||
|
||||
/**
|
||||
* Attempted to send more or less data than requested. The requested data size is
|
||||
* adjusted according to maximum transmission unit and the expected end of
|
||||
* the file. Trying to send less or more than requested will return this error.
|
||||
*/
|
||||
OCTToxErrorFileSendChunkInvalidLength,
|
||||
|
||||
/**
|
||||
* Packet queue is full.
|
||||
*/
|
||||
OCTToxErrorFileSendChunkSendq,
|
||||
|
||||
/**
|
||||
* Position parameter was wrong.
|
||||
*/
|
||||
OCTToxErrorFileSendChunkWrongPosition,
|
||||
};
|
||||
Reference in New Issue
Block a user