Line data Source code
1 : // Copyright (c) The Bitcoin Core developers
2 : // Distributed under the MIT software license, see the accompanying
3 : // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4 :
5 : //! @file ipc/types.h is a home for public enum and struct type definitions
6 : //! that are used internally by ipc code, but also used externally by wallet,
7 : //! mining or GUI code.
8 : //!
9 : //! This file is intended to define only simple types that do not have external
10 : //! dependencies. More complicated types should be defined in dedicated header
11 : //! files.
12 :
13 : #ifndef BITCOIN_IPC_TYPES_H
14 : #define BITCOIN_IPC_TYPES_H
15 :
16 : #include <cstddef>
17 : #include <string>
18 :
19 : namespace ipc {
20 :
21 : //! Default accepted client connection limit for each IPC listening socket.
22 : inline constexpr size_t DEFAULT_MAX_CONNECTIONS{16};
23 :
24 : //! Maximum accepted client connection limit for an IPC listening socket.
25 : //! This conservative bound leaves ample room for other file descriptor
26 : //! reservations.
27 : inline constexpr size_t MAX_CONNECTIONS{256};
28 :
29 60 : struct ListenAddress {
30 : //! Socket address passed to ipc::Process::bind(), with any -ipcbind socket
31 : //! options stripped.
32 : std::string address;
33 :
34 : //! Maximum simultaneous client connections accepted by this listener.
35 : size_t max_connections{DEFAULT_MAX_CONNECTIONS};
36 : };
37 :
38 : } // namespace ipc
39 :
40 : #endif // BITCOIN_IPC_TYPES_H
|