1 #pragma once
2 
3 #include <cstdint>
4 #include <string>
5 
6 namespace pldm
7 {
8 namespace responder
9 {
10 namespace utils
11 {
12 
13 /** @brief Setup UNIX socket
14  *  This function creates listening socket in non-blocking mode and allows only
15  *  one socket connection. returns accepted socket after accepting connection
16  *  from peer.
17  *
18  *  @param[in] socketInterface - unix socket path
19  *  @return   on success returns accepted socket fd
20  *            on failure returns -1
21  */
22 int setupUnixSocket(const std::string& socketInterface);
23 
24 /** @brief Write data on UNIX socket
25  *  This function writes given data to a non-blocking socket.
26  *  Irrespective of block size, this function make sure of writing given data
27  *  on unix socket.
28  *
29  *  @param[in] sock - unix socket
30  *  @param[in] buf -  data buffer
31  *  @param[in] blockSize - size of data to write
32  *  @return   on success retruns  0
33  *            on failure returns -1
34 
35  */
36 int writeToUnixSocket(const int sock, const char* buf,
37                       const uint64_t blockSize);
38 
39 /** @brief Method to check if the logical bit is set
40  *
41  *  @param[containerId] - container id of the entity
42  *
43  *  @return true or false based on the logic bit set
44  * */
45 bool checkIfLogicalBitSet(const uint16_t& containerId);
46 } // namespace utils
47 } // namespace responder
48 } // namespace pldm
49