#pragma once

#include <softbus_core/models/RawPacket.h>
#include <softbus_core/plugin/PluginLoader.h>

#include <softbus_opcua/UaModelBinder.h>

#include <string>

namespace softbus::daemon {

class PipelineEngine {
public:
    PipelineEngine(softbus::core::PluginLoader* plugin, softbus::opcua::UaModelBinder* binder);

    void process(const softbus::core::RawPacket& packet);

private:
    softbus::core::PluginLoader* plugin_{nullptr};
    softbus::opcua::UaModelBinder* binder_{nullptr};
};

} // namespace softbus::daemon
