
#pragma once

#include <zeek/plugin/Plugin.h>

namespace btest::plugin::Demo_Hooks {

class Plugin : public zeek::plugin::Plugin {
protected:
    std::pair<bool, zeek::ValPtr> HookFunctionCall(const zeek::Func* func, zeek::detail::Frame* frame,
                                                   zeek::Args* args) override;

    void MetaHookPre(zeek::plugin::HookType hook, const zeek::plugin::HookArgumentList& args) override;
    void MetaHookPost(zeek::plugin::HookType hook, const zeek::plugin::HookArgumentList& args,
                      zeek::plugin::HookArgument result) override;

    // Overridden from plugin::Plugin.
    zeek::plugin::Configuration Configure() override;
};

extern Plugin plugin;

} // namespace btest::plugin::Demo_Hooks
