X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fmeshlink.h;h=ffcf954753bbb871d878bfcf8efd99708e6ab55c;hb=fe7be9e345bcc652914ef6fc51302da13d4c9c8d;hp=13976266652296e67477447ff1dfb1e483a1dc1d;hpb=3febbb4453f5c6b0286e7e3c68a5dbcec975b6fd;p=meshlink diff --git a/src/meshlink.h b/src/meshlink.h index 13976266..ffcf9547 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. @@ -1504,6 +1507,17 @@ 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. @@ -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