// Copyright 2022 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef QUICHE_QUIC_CORE_CONNECTING_CLIENT_SOCKET_H_ #define QUICHE_QUIC_CORE_CONNECTING_CLIENT_SOCKET_H_ #include <string> #include "absl/status/status.h" #include "absl/status/statusor.h" #include "quiche/quic/core/quic_types.h" #include "quiche/quic/platform/api/quic_socket_address.h" #include "quiche/common/platform/api/quiche_export.h" #include "quiche/common/platform/api/quiche_mem_slice.h" namespace quic { // A client socket that provides connection-based send/receive. In the case of // protocols like UDP, may only be a pseudo-connection that doesn't actually // affect the underlying network protocol. // // Must not destroy a connected/connecting socket. If connected or connecting, // must call Disconnect() to disconnect or cancel the connection before // destruction. // // Warning regarding blocking calls: Code in the QUICHE library typically // handles IO on a single thread, so if making calls from that typical // environment, it would be problematic to make a blocking call and block that // single thread. class QUICHE_EXPORT ConnectingClientSocket { … }; } // namespace quic #endif // QUICHE_QUIC_CORE_CONNECTING_CLIENT_SOCKET_H_