blob: 40e8d674dfd22acf4eef50f1ddbc46b8fa7efe8d [file] [log] [blame] [edit]
// Copyright 2024 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_MOQT_MOQT_FAILED_FETCH_H_
#define QUICHE_QUIC_MOQT_MOQT_FAILED_FETCH_H_
#include <utility>
#include "absl/status/status.h"
#include "quiche/quic/moqt/moqt_messages.h"
#include "quiche/quic/moqt/moqt_publisher.h"
namespace moqt {
// A fetch that starts out in the failed state.
class MoqtFailedFetch : public MoqtFetchTask {
public:
explicit MoqtFailedFetch(absl::Status status) : status_(std::move(status)) {}
GetNextObjectResult GetNextObject(PublishedObject&) override {
return kError;
}
absl::Status GetStatus() override { return status_; }
void SetObjectAvailableCallback(
ObjectsAvailableCallback /*callback*/) override {}
FullSequence GetLargestId() const override { return FullSequence(); }
private:
absl::Status status_;
};
} // namespace moqt
#endif // QUICHE_QUIC_MOQT_MOQT_FAILED_FETCH_H_