]> git.meshlink.io Git - meshlink/blobdiff - src/meshlink.h
Add functions to get the amount of bytes in chanenl send and receive buffers.
[meshlink] / src / meshlink.h
index b4fb16c9f2f7edaec5051bc2a6417b8df8e91a4d..43d269cea76492134c08e4c8ffd9684a69502e52 100644 (file)
@@ -66,7 +66,7 @@ typedef enum {
        MESHLINK_EEXIST,    ///< Node already exists
        MESHLINK_EINTERNAL, ///< MeshLink internal error
        MESHLINK_ERESOLV,   ///< MeshLink could not resolve a hostname
-       MESHLINK_ESTORAGE,  ///< MeshLink coud not load or write data from/to disk
+       MESHLINK_ESTORAGE,  ///< MeshLink could not load or write data from/to disk
        MESHLINK_ENETWORK,  ///< MeshLink encountered a network error
        MESHLINK_EPEER,     ///< A peer caused an error
        MESHLINK_ENOTSUP,   ///< The operation is not supported in the current configuration of MeshLink
@@ -101,7 +101,7 @@ static const uint32_t MESHLINK_CHANNEL_UDP = 0;        // Select UDP semantics.
 /** This is a thread local variable that contains the error code of the most recent error
  *  encountered by a MeshLink API function called in the current thread.
  *  The variable is only updated when an error is encountered, and is not reset to MESHLINK_OK
- *  if a function returned succesfully.
+ *  if a function returned successfully.
  */
 extern __thread meshlink_errno_t meshlink_errno;
 
@@ -237,7 +237,7 @@ meshlink_submesh_t *meshlink_submesh_open(meshlink_handle_t  *mesh, const char *
  *
  *  @param mesh     A handle which represents an instance of MeshLink.
  *
- *  @return         This function will return true if MeshLink has succesfully started, false otherwise.
+ *  @return         This function will return true if MeshLink has successfully started, false otherwise.
  */
 extern bool meshlink_start(meshlink_handle_t *mesh);
 
@@ -273,7 +273,7 @@ extern void meshlink_close(meshlink_handle_t *mesh);
  *  @param confbase The directory in which MeshLink stores its configuration files.
  *                  After the function returns, the application is free to overwrite or free @a confbase.
  *
- *  @return         This function will return true if the MeshLink instance was succesfully destroyed, false otherwise.
+ *  @return         This function will return true if the MeshLink instance was successfully destroyed, false otherwise.
  */
 extern bool meshlink_destroy(const char *confbase);
 
@@ -697,7 +697,7 @@ extern int meshlink_get_port(meshlink_handle_t *mesh);
  *                       If the port is set to 0, then MeshLink will listen on a port
  *                       that is randomly assigned by the operating system every time meshlink_open() is called.
  *
- *  @return              This function returns true if the port was succesfully changed, false otherwise.
+ *  @return              This function returns true if the port was successfully changed, false otherwise.
  */
 
 extern bool meshlink_set_port(meshlink_handle_t *mesh, int port);
@@ -750,7 +750,7 @@ extern char *meshlink_invite(meshlink_handle_t *mesh, meshlink_submesh_t *submes
 /// Use an invitation to join a mesh.
 /** This function allows the local node to join an existing mesh using an invitation URL generated by another node.
  *  An invitation can only be used if the local node has never connected to other nodes before.
- *  After a succesfully accepted invitation, the name of the local node may have changed.
+ *  After a successfully accepted invitation, the name of the local node may have changed.
  *
  *  This function may only be called on a mesh that has not been started yet and which is not already part of an existing mesh.
  *
@@ -1021,6 +1021,28 @@ extern ssize_t meshlink_channel_send(meshlink_handle_t *mesh, meshlink_channel_t
  */
 extern uint32_t meshlink_channel_get_flags(meshlink_handle_t *mesh, meshlink_channel_t *channel);
 
+/// Get the amount of bytes in the send buffer.
+/** This returns the amount of bytes in the send buffer.
+ *  These bytes have not been received by the peer yet.
+ *
+ *  @param mesh         A handle which represents an instance of MeshLink.
+ *  @param channel      A handle for the channel.
+ *
+ *  @return             The amount of un-ACKed bytes in the send buffer.
+ */
+extern size_t meshlink_channel_get_sendq(meshlink_handle_t *mesh, meshlink_channel_t *channel);
+
+/// Get the amount of bytes in the receive buffer.
+/** This returns the amount of bytes in the receive buffer.
+ *  These bytes have not been processed by the application yet.
+ *
+ *  @param mesh         A handle which represents an instance of MeshLink.
+ *  @param channel      A handle for the channel.
+ *
+ *  @return             The amount of bytes in the receive buffer.
+ */
+extern size_t meshlink_channel_get_recvq(meshlink_handle_t *mesh, meshlink_channel_t *channel);
+
 /// Hint that a hostname may be found at an address
 /** This function indicates to meshlink that the given hostname is likely found
  *  at the given IP address and port.