diff --git a/docs/files/ILibAsyncSocket.md b/docs/files/ILibAsyncSocket.md index 3a45420..8b2caa2 100644 --- a/docs/files/ILibAsyncSocket.md +++ b/docs/files/ILibAsyncSocket.md @@ -5,3 +5,115 @@ ILibAsyncSocket provides the underyling TCP socket implementation for the Mesh A ### Functions +**ILibCreateAsyncSocketModule()** +**ILibCreateAsyncSocketModuleWithMemory()** +Creates an ILibAsyncSocket object, with an optional memory allocation for use by the user. + +**ILibAsyncSocket_IsUsingTls(token)** +Evaluates to true if the specified connection is a TLS connection + +**ILibAsyncSocket_SetReAllocateNotificationCallback(AsyncSocketToken, Callback)** +Triggers the specified callback when a realloc() results in the data buffer being moved to a different address. + +**ILibAsyncSocket_GetUser(socketModule)** +**ILibAsyncSocket_GetUser2(socketModule)** +**ILibAsyncSocket_GetUser3(socketModule)** +Sets a user object to the specified socket object + +**ILibAsyncSocket_SetUser(socketModule, user)** +**ILibAsyncSocket_SetUser2(socketModule, user)** +**ILibAsyncSocket_SetUser3(socketModule, user)** +Fetches the user object associated with the specified socket object + +**ILibAsyncSocket_UpdateOnData(module, OnData)** +Replaces the existing data handler with the specified OnData handler for the socket object + +**ILibAsyncSocket_UpdateCallbacks(module, OnData, OnConnect, OnDisconnect, OnSendOK)** +Replaces all the existing handlers with the specified handlers, for the specified socket object + +**ILibAsyncSocket_GetSocket(module)** +Fetches the internal socket descriptor for the specified socket object + +**ILibAsyncSocket_GetPendingBytesToSend(socketModule)** +Fetches the number of bytes pending to be sent by the socket object + +**ILibAsyncSocket_GetTotalBytesSent(socketModule)** +Fetches the total number of bytes that have been sent by the specified socket object + +**ILibAsyncSocket_ResetTotalBytesSent(socketModule)** +Resets the TotalBytesSent counter, for the specified socket object + +**ILibAsyncSocket_ConnectTo(socketModule, localInterface, remoteAddress, InterruptPtr, user)** +Connects the socket object to the specified address using the specified interface + +**ILibAsyncSocket_SendTo_MultiWrite(socketModule, remoteAddress, count, ...)** +Sends data to the specified address, specifying the number of triplets passed in the ellipses, where a triplet consists of **(buffer, length, userFree)** + +**ILibAsyncSocket_Disconnect(socketModule)** +Disconnects the specified socket object + +**ILibAsyncSocket_GetBuffer(socketModule, buffer, BeginPointer, EndPointer)** +Returns the buffer associated with an ILibAsyncSocket + +**ILibAsyncSocket_UseThisSocket(socketModule, UseThisSocket, InterruptPtr, user)** +Associates an already connected socket with the ILibAsyncSocket object + +**ILibAsyncSocket_SetSSLContext(socketModule, ssl_ctx, tlsMode)** +**ILibAsyncSocket_SetSSLContextEx(socketModule, ssl_ctx, tlsMode, hostname)** +Associate an OpenSSL Context Object with the specified ILibAsyncSocket object + +**ILibAsyncSocket_GetSSL(socketModule)** +**ILibAsyncSocket_GetSSLContext(socketModule)** +Fetches the OpenSSL Object and Context associated with the specified ILibAsyncSocket object + +**ILibAsyncSocket_SetRemoteAddress(socketModule, remoteAddress)** +Updates the remote address of the specified ILibAsyncSocket object + +**ILibAsyncSocket_GetRemoteInterface(socketModule, remoteAddress)** +Fetches the associated remote interface of the specified ILibAsyncSocket object, and writes it to **remoteAddress**, returning the number of bytes written. + +**ILibAsyncSocket_SetLocalInterface(module, localAddress)** +Updates the local interface of the specified ILibAsyncSocket object + +**ILibAsyncSocket_GetLocalInterface(socketModule, localAddress)** +Fetches the associated local interface of the specified ILibAsyncSocketObject, and writes it to **localAddress**, returning the number of bytes written. + +**ILibAsyncSocket_IsFree(socketModule)** +Returns non-zero if the specified ILibAsyncSocket object is in use + +**ILibAsyncSocket_IsConnected(socketModule)** +Returns non-zero if the specified ILibAsyncSocket object is connected + +int ILibAsyncSocket_IsDomainSocket(ILibAsyncSocket_SocketModule socketModule); +unsigned short ILibAsyncSocket_GetLocalPort(ILibAsyncSocket_SocketModule socketModule); + +**ILibAsyncSocket_Resume(socketModule)** +Resumes socket I/O of the specified ILibAsyncSocket object + +**ILibAsyncSocket_Pause(socketModule)** +Suspends the socket I/O of the specified ILibAsyncSocket object + +**ILibAsyncSocket_WasClosedBecauseBufferSizeExceeded(socketModule)** +Returns non-zero if the specified ILibAsyncSocket object was disconnected because the underlying buffer size was exceeded + +**ILibAsyncSocket_SetMaximumBufferSize(module, maxSize, OnBufferSizeExceededCallback, user)** +Sets a maximum buffer size for the specified ILibAsyncSocket object, triggering the specified handler if the buffer size is exceeded. + +**ILibAsyncSocket_SetSendOK(module, OnSendOK)** +Updates the OnSendOK handler, which is triggered whenever a pending write operation is completed. + +**ILibAsyncSocket_IsIPv6LinkLocal(LocalAddress)** +Returns non-zero if the specified address is an IPv6 Link Local Address + +**ILibAsyncSocket_IsModuleIPv6LinkLocal(module)** +Returns non-zero if the associated socket with the specified ILibAsyncSocket object is an IPv6 Link Local socket. + +**ILibAsyncSocket_SetTimeout(module, timeoutSeconds, timeoutHandler)** +**ILibAsyncSocket_SetTimeoutEx(module, timeoutMilliseconds, timeoutHandler)** +Sets an idle timeout handler for the specified ILibAsyncSocket object, which triggers after the specified amount of inactivity + +**ILibAsyncSocket_SslGetCert(socketModule)** +Returns the Peer's TLS Certificate, NULL if none was presented. Must call **X509_free()** when done with the certificate._ + +**ILibAsyncSocket_SslGetCerts(socketModule)** +Returns the Certificate Chain presented by the Peer. NULL if none was presented. **NOTE:** X509 Cert's Reference Count is not incremented.