#pragma once

#include <vector>

#include "core/models/RawBusMessage.h"

namespace softbus::message_bus::pipeline::stages::framers
{

class IFramer
{
public:
    virtual ~IFramer() = default;

    /// Consumes `chunkIn` (StreamChunk 语义)；仅在 `completeFramesOut` 中追加 CompleteFrame。
    virtual void feed(softbus::core::models::RawBusMessage&           chunkIn,
                      std::vector<softbus::core::models::RawBusMessage>& completeFramesOut) = 0;
};

} // namespace softbus::message_bus::pipeline::stages::framers
