1 /*
2  * FreeRTOS V202212.00
3  * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a copy of
6  * this software and associated documentation files (the "Software"), to deal in
7  * the Software without restriction, including without limitation the rights to
8  * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9  * the Software, and to permit persons to whom the Software is furnished to do so,
10  * subject to the following conditions:
11  *
12  * The above copyright notice and this permission notice shall be included in all
13  * copies or substantial portions of the Software.
14  *
15  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17  * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18  * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21  *
22  * https://www.FreeRTOS.org
23  * https://github.com/FreeRTOS
24  *
25  */
26 
27 /**
28  * @file sockets_wrapper.h
29  * @brief FreeRTOS Sockets connect and disconnect function wrapper.
30  */
31 
32 #ifndef SOCKETS_WRAPPER_H
33 #define SOCKETS_WRAPPER_H
34 
35 /* FreeRTOS+TCP includes. */
36 #include "FreeRTOS_IP.h"
37 #include "FreeRTOS_Sockets.h"
38 #include "FreeRTOS_DNS.h"
39 
40 #define SOCKETS_INVALID_SOCKET    ( ( Socket_t ) ~0U )
41 
42 /**
43  * @brief Establish a connection to server.
44  *
45  * @param[out] pTcpSocket The output parameter to return the created socket descriptor.
46  * @param[in] pHostName Server hostname to connect to.
47  * @param[in] pServerInfo Server port to connect to.
48  * @param[in] receiveTimeoutMs Timeout (in milliseconds) for transport receive.
49  * @param[in] sendTimeoutMs Timeout (in milliseconds) for transport send.
50  *
51  * @note A timeout of 0 means infinite timeout.
52  *
53  * @return Non-zero value on error, 0 on success.
54  */
55 BaseType_t Sockets_Connect( Socket_t * pTcpSocket,
56                             const char * pHostName,
57                             uint16_t port,
58                             uint32_t receiveTimeoutMs,
59                             uint32_t sendTimeoutMs );
60 
61 /**
62  * @brief End connection to server.
63  *
64  * @param[in] tcpSocket The socket descriptor.
65  */
66 void Sockets_Disconnect( Socket_t tcpSocket );
67 
68 #endif /* ifndef SOCKETS_WRAPPER_H */
69