1
0
mirror of https://github.com/facebookincubator/mvfst.git synced 2025-04-18 17:24:03 +03:00
mvfst/quic/client/QuicClientAsyncTransport.cpp
Hani Damlaj 2660a288b3 Update Company Name
Summary: - as title

Reviewed By: lnicco

Differential Revision: D33513410

fbshipit-source-id: 282b6f512cf83b9abb7990402661135b658f7bd1
2022-01-13 12:07:48 -08:00

62 lines
1.8 KiB
C++

/*
* Copyright (c) Meta Platforms, Inc. and 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