xref: /aosp_15_r20/external/openscreen/platform/impl/socket_state.h (revision 3f982cf4871df8771c9d4abe6e9a6f8d829b2736)
1 // Copyright 2019 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef PLATFORM_IMPL_SOCKET_STATE_H_
6 #define PLATFORM_IMPL_SOCKET_STATE_H_
7 
8 #include <cstdint>
9 #include <memory>
10 #include <string>
11 
12 namespace openscreen {
13 
14 // TcpSocketState should be used by TCP and TLS sockets for indicating
15 // current state. NOTE: socket state transitions should only happen in
16 // the listed order. New states should be added in appropriate order.
17 enum class TcpSocketState {
18   // Socket is not connected.
19   kNotConnected = 0,
20 
21   // Socket is actively listening for incoming connections.
22   kListening,
23 
24   // Socket is currently being connected.
25   kConnecting,
26 
27   // Socket is actively connected to a remote address.
28   kConnected,
29 
30   // The socket connection has been terminated, either by Close() or
31   // by the remote side.
32   kClosed
33 };
34 
35 }  // namespace openscreen
36 
37 #endif  // PLATFORM_IMPL_SOCKET_STATE_H_
38