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