X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fmeshlink.h;h=2763ad8d214ff2d52d2ec3b0ec373c8a0cb12a07;hb=5f2e8877486869471041b0eca1aaed841c41a1a9;hp=13976266652296e67477447ff1dfb1e483a1dc1d;hpb=3febbb4453f5c6b0286e7e3c68a5dbcec975b6fd;p=meshlink diff --git a/src/meshlink.h b/src/meshlink.h index 13976266..2763ad8d 100644 --- a/src/meshlink.h +++ b/src/meshlink.h @@ -151,6 +151,7 @@ extern const char *meshlink_strerror(meshlink_errno_t err) __attribute__((__warn * After the function returns, the application is free to overwrite or free @a confbase. * @param name The name which this instance of the application will use in the mesh. * After the function returns, the application is free to overwrite or free @a name. + * If NULL is passed as the name, the name used last time the MeshLink instance was initialized is used. * @param appname The application name which will be used in the mesh. * After the function returns, the application is free to overwrite or free @a name. * @param devclass The device class which will be used in the mesh. @@ -228,6 +229,7 @@ extern struct meshlink_handle *meshlink_open_ex(const meshlink_open_params_t *pa * After the function returns, the application is free to overwrite or free @a confbase. * @param name The name which this instance of the application will use in the mesh. * After the function returns, the application is free to overwrite or free @a name. + * If NULL is passed as the name, the name used last time the MeshLink instance was initialized is used. * @param appname The application name which will be used in the mesh. * After the function returns, the application is free to overwrite or free @a name. * @param devclass The device class which will be used in the mesh. @@ -257,6 +259,7 @@ extern struct meshlink_handle *meshlink_open(const char *confbase, const char *n * After the function returns, the application is free to overwrite or free @a confbase. * @param name The name which this instance of the application will use in the mesh. * After the function returns, the application is free to overwrite or free @a name. + * If NULL is passed as the name, the name used last time the MeshLink instance was initialized is used. * @param appname The application name which will be used in the mesh. * After the function returns, the application is free to overwrite or free @a name. * @param devclass The device class which will be used in the mesh. @@ -1136,7 +1139,7 @@ extern bool meshlink_whitelist(struct meshlink_handle *mesh, struct meshlink_nod * * \memberof meshlink_node * @param mesh A handle which represents an instance of MeshLink. - * @param node A pointer to a struct meshlink_node describing the node to be whitelisted. + * @param name The name of the node to whitelist. * * @return This function returns true if the node has been whitelisted, false otherwise. */ @@ -1504,13 +1507,24 @@ extern size_t meshlink_channel_get_sendq(struct meshlink_handle *mesh, struct me */ extern size_t meshlink_channel_get_recvq(struct meshlink_handle *mesh, struct meshlink_channel *channel) __attribute__((__warn_unused_result__)); +/// Get the maximum segment size of a channel. +/** This returns the amount of bytes that can be sent at once for channels with UDP semantics. + * + * \memberof meshlink_channel + * @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_mss(struct meshlink_handle *mesh, struct meshlink_channel *channel) __attribute__((__warn_unused_result__)); + /// Set the connection timeout used for channels to the given node. /** This sets the timeout after which unresponsive channels will be reported as closed. * The timeout is set for all current and future channels to the given node. * * \memberof meshlink_node * @param mesh A handle which represents an instance of MeshLink. - * @param channel A handle for the channel. + * @param node A pointer to a struct meshlink_node describing the node to set the channel connection timeout for. * @param timeout The timeout in seconds after which unresponsive channels will be reported as closed. * The default is 60 seconds. */ @@ -1597,6 +1611,18 @@ extern void meshlink_set_inviter_commits_first(struct meshlink_handle *mesh, boo */ extern void meshlink_set_external_address_discovery_url(struct meshlink_handle *mesh, const char *url); +/// Set the scheduling granularity of the application +/** This should be set to the effective scheduling granularity for the application. + * This depends on the scheduling granularity of the operating system, the application's + * process priority and whether it is running as realtime or not. + * The default value is 10000 (10 milliseconds). + * + * \memberof meshlink_handle + * @param mesh A handle which represents an instance of MeshLink. + * @param granularity The scheduling granularity of the application in microseconds. + */ +extern void meshlink_set_scheduling_granularity(struct meshlink_handle *mesh, long granularity); + #ifdef __cplusplus } #endif