blob: e81e16ba5c26a38c92afd74c580d567ce6b8fe71 [file] [log] [blame]
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#pragma once
#include "src/connectivity/overnet/lib/protocol/stream_framer.h"
namespace overnet {
// Framer that transports packets on a reliable stream of bytes
class ReliableFramer final : public StreamFramer {
public:
ReliableFramer();
~ReliableFramer();
void Push(Slice data) override;
StatusOr<Optional<Slice>> Pop() override;
bool InputEmpty() const override;
Optional<Slice> SkipNoise() override;
Slice Frame(Slice data) override;
private:
Slice buffered_input_;
};
} // namespace overnet