Add docs for UDPC_no* functions
This commit is contained in:
parent
4887cc2ae5
commit
97f030a3a3
1 changed files with 187 additions and 0 deletions
187
src/UDPC.h
187
src/UDPC.h
|
@ -922,10 +922,197 @@ UDPC_EXPORT UDPC_IPV6_ADDR_TYPE UDPC_strtoa_link(const char *addrStr, uint32_t *
|
|||
UDPC_EXPORT UDPC_IPV6_ADDR_TYPE UDPC_a4toa6(uint32_t a4_be);
|
||||
|
||||
UDPC_EXPORT int UDPC_is_big_endian();
|
||||
|
||||
/*!
|
||||
* \brief Converts a 16-bit int into/from network byte order (big endian).
|
||||
*
|
||||
* Typically, if one is sending integers/floats through UDPC, it is strongly
|
||||
* recommended to use the UDPC_no* family of functions to convert to/back from
|
||||
* network byte order. In other words, the integers/floats should be converted
|
||||
* to network byte order prior to writing it into the buffer to send, and it
|
||||
* should be converted back to native byte order when reading it from the
|
||||
* received buffer.
|
||||
*
|
||||
* Note that on big-endian systems, this function has no effect. However, it is
|
||||
* recommended to use this function as shown so that the endianness of the
|
||||
* system is not a problem.
|
||||
*
|
||||
* \code{.c}
|
||||
* // Sending
|
||||
* uint16_t send_value = 13;
|
||||
* char buffer[2];
|
||||
* // to network byte order
|
||||
* send_value = UDPC_no16i(send_value);
|
||||
* memcpy(buffer, &value, 2);
|
||||
* // send buffer
|
||||
*
|
||||
* // Receiving
|
||||
* uint16_t receive_value;
|
||||
* memcpy(&receive_value, buffer, 2);
|
||||
* // to local byte order
|
||||
* receive_value = UDPC_no16i(receive_value);
|
||||
* // use receive_value
|
||||
* \endcode
|
||||
*
|
||||
* When using a signed integer:
|
||||
*
|
||||
* \code{.c}
|
||||
* int16_t send_value = 15000;
|
||||
* // network byte order
|
||||
* uint16_t *ptr = (uint16_t*)&send_value;
|
||||
* *ptr = UDPC_no16i(*ptr);
|
||||
* \endcode
|
||||
*/
|
||||
UDPC_EXPORT uint16_t UDPC_no16i(uint16_t i);
|
||||
|
||||
/*!
|
||||
* \brief Converts a 32-bit int into/from network byte order (big endian).
|
||||
*
|
||||
* Typically, if one is sending integers/floats through UDPC, it is strongly
|
||||
* recommended to use the UDPC_no* family of functions to convert to/back from
|
||||
* network byte order. In other words, the integers/floats should be converted
|
||||
* to network byte order prior to writing it into the buffer to send, and it
|
||||
* should be converted back to native byte order when reading it from the
|
||||
* received buffer.
|
||||
*
|
||||
* Note that on big-endian systems, this function has no effect. However, it is
|
||||
* recommended to use this function as shown so that the endianness of the
|
||||
* system is not a problem.
|
||||
*
|
||||
* \code{.c}
|
||||
* // Sending
|
||||
* uint32_t send_value = 123456;
|
||||
* char buffer[4];
|
||||
* // to network byte order
|
||||
* send_value = UDPC_no32i(send_value);
|
||||
* memcpy(buffer, &value, 4);
|
||||
* // send buffer
|
||||
*
|
||||
* // Receiving
|
||||
* uint32_t receive_value;
|
||||
* memcpy(&receive_value, buffer, 4);
|
||||
* // to local byte order
|
||||
* receive_value = UDPC_no32i(receive_value);
|
||||
* // use receive_value
|
||||
* \endcode
|
||||
*
|
||||
* When using a signed integer:
|
||||
*
|
||||
* \code{.c}
|
||||
* int32_t send_value = 123456;
|
||||
* // network byte order
|
||||
* uint32_t *ptr = (uint32_t*)&send_value;
|
||||
* *ptr = UDPC_no32i(*ptr);
|
||||
* \endcode
|
||||
*/
|
||||
UDPC_EXPORT uint32_t UDPC_no32i(uint32_t i);
|
||||
|
||||
/*!
|
||||
* \brief Converts a 64-bit int into/from network byte order (big endian).
|
||||
*
|
||||
* Typically, if one is sending integers/floats through UDPC, it is strongly
|
||||
* recommended to use the UDPC_no* family of functions to convert to/back from
|
||||
* network byte order. In other words, the integers/floats should be converted
|
||||
* to network byte order prior to writing it into the buffer to send, and it
|
||||
* should be converted back to native byte order when reading it from the
|
||||
* received buffer.
|
||||
*
|
||||
* Note that on big-endian systems, this function has no effect. However, it is
|
||||
* recommended to use this function as shown so that the endianness of the
|
||||
* system is not a problem.
|
||||
*
|
||||
* \code{.c}
|
||||
* // Sending
|
||||
* uint64_t send_value = 0xABCDEFABCDEFAAAA;
|
||||
* char buffer[8];
|
||||
* // to network byte order
|
||||
* send_value = UDPC_no64i(send_value);
|
||||
* memcpy(buffer, &value, 8);
|
||||
* // send buffer
|
||||
*
|
||||
* // Receiving
|
||||
* uint64_t receive_value;
|
||||
* memcpy(&receive_value, buffer, 8);
|
||||
* // to local byte order
|
||||
* receive_value = UDPC_no64i(receive_value);
|
||||
* // use receive_value
|
||||
* \endcode
|
||||
*
|
||||
* When using a signed integer:
|
||||
*
|
||||
* \code{.c}
|
||||
* int64_t send_value = 0x1111222233334444;
|
||||
* // network byte order
|
||||
* uint64_t *ptr = (uint64_t*)&send_value;
|
||||
* *ptr = UDPC_no64i(*ptr);
|
||||
* \endcode
|
||||
*/
|
||||
UDPC_EXPORT uint64_t UDPC_no64i(uint64_t i);
|
||||
|
||||
/*!
|
||||
* \brief Converts a 32-bit float into/from network byte order (big endian).
|
||||
*
|
||||
* Typically, if one is sending integers/floats through UDPC, it is strongly
|
||||
* recommended to use the UDPC_no* family of functions to convert to/back from
|
||||
* network byte order. In other words, the integers/floats should be converted
|
||||
* to network byte order prior to writing it into the buffer to send, and it
|
||||
* should be converted back to native byte order when reading it from the
|
||||
* received buffer.
|
||||
*
|
||||
* Note that on big-endian systems, this function has no effect. However, it is
|
||||
* recommended to use this function as shown so that the endianness of the
|
||||
* system is not a problem.
|
||||
*
|
||||
* \code{.c}
|
||||
* // Sending
|
||||
* float send_value = 0.123F;
|
||||
* char buffer[4];
|
||||
* // to network byte order
|
||||
* send_value = UDPC_no32f(send_value);
|
||||
* memcpy(buffer, &value, 4);
|
||||
* // send buffer
|
||||
*
|
||||
* // Receiving
|
||||
* float receive_value;
|
||||
* memcpy(&receive_value, buffer, 4);
|
||||
* // to local byte order
|
||||
* receive_value = UDPC_no32f(receive_value);
|
||||
* // use receive_value
|
||||
* \endcode
|
||||
*/
|
||||
UDPC_EXPORT float UDPC_no32f(float f);
|
||||
|
||||
/*!
|
||||
* \brief Converts a 64-bit float into/from network byte order (big endian).
|
||||
*
|
||||
* Typically, if one is sending integers/floats through UDPC, it is strongly
|
||||
* recommended to use the UDPC_no* family of functions to convert to/back from
|
||||
* network byte order. In other words, the integers/floats should be converted
|
||||
* to network byte order prior to writing it into the buffer to send, and it
|
||||
* should be converted back to native byte order when reading it from the
|
||||
* received buffer.
|
||||
*
|
||||
* Note that on big-endian systems, this function has no effect. However, it is
|
||||
* recommended to use this function as shown so that the endianness of the
|
||||
* system is not a problem.
|
||||
*
|
||||
* \code{.c}
|
||||
* // Sending
|
||||
* double send_value = 0.123456;
|
||||
* char buffer[8];
|
||||
* // to network byte order
|
||||
* send_value = UDPC_no64f(send_value);
|
||||
* memcpy(buffer, &value, 8);
|
||||
* // send buffer
|
||||
*
|
||||
* // Receiving
|
||||
* double receive_value;
|
||||
* memcpy(&receive_value, buffer, 8);
|
||||
* // to local byte order
|
||||
* receive_value = UDPC_no64f(receive_value);
|
||||
* // use receive_value
|
||||
* \endcode
|
||||
*/
|
||||
UDPC_EXPORT double UDPC_no64f(double f);
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
Loading…
Reference in a new issue