1
0
mirror of https://github.com/facebookincubator/mvfst.git synced 2025-11-24 04:01:07 +03:00
Files
mvfst/quic/client/QuicClientAsyncTransport.cpp
Andres Suarez 05d07cbfd0 Apply clang-format update fixes
Reviewed By: igorsugak

Differential Revision: D25849213

fbshipit-source-id: a2a538230e769b2c328ae3dd0a19dfbfd693fe3b
2021-01-09 15:39:52 -08:00

62 lines
1.8 KiB
C++

/*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*/
#include <quic/client/QuicClientAsyncTransport.h>
#include <folly/Conv.h>
#include <folly/detail/SingletonStackTrace.h>
namespace quic {
QuicClientAsyncTransport::QuicClientAsyncTransport(
const std::shared_ptr<quic::QuicClientTransport>& clientSock) {
setSocket(clientSock);
clientSock->start(this);
}
void QuicClientAsyncTransport::onNewBidirectionalStream(
StreamId /*id*/) noexcept {
CHECK(false);
}
void QuicClientAsyncTransport::onNewUnidirectionalStream(
StreamId /*id*/) noexcept {
CHECK(false);
}
void QuicClientAsyncTransport::onStopSending(
StreamId /*id*/,
ApplicationErrorCode /*error*/) noexcept {}
void QuicClientAsyncTransport::onConnectionEnd() noexcept {
folly::AsyncSocketException ex(
folly::AsyncSocketException::UNKNOWN, "Quic connection ended");
// TODO: closeNow inside this callback may actually trigger gracefull close
closeNowImpl(std::move(ex));
}
void QuicClientAsyncTransport::onConnectionError(
std::pair<QuicErrorCode, std::string> code) noexcept {
folly::AsyncSocketException ex(
folly::AsyncSocketException::UNKNOWN,
folly::to<std::string>("Quic connection error", code.second));
// TODO: closeNow inside this callback may actually trigger gracefull close
closeNowImpl(std::move(ex));
}
void QuicClientAsyncTransport::onTransportReady() noexcept {
auto streamId = sock_->createBidirectionalStream();
if (!streamId) {
folly::AsyncSocketException ex(
folly::AsyncSocketException::UNKNOWN, "Quic failed to create stream");
closeNowImpl(std::move(ex));
}
setStreamId(streamId.value());
}
} // namespace quic