#pragma once

#include <vector>

#include "message_bus/pipeline/PipelineContext.h"

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

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

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

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