/*
 * SPDX-FileCopyrightText: 2024 Copyright contributors to the cppTango project
 *
 * SPDX-License-Identifier: LGPL-3.0-or-later
 */
#ifndef TANGO_TEST_CATCH2_UTILS_CALLBACK_MOCK_HELPERS_H
#define TANGO_TEST_CATCH2_UTILS_CALLBACK_MOCK_HELPERS_H

#include <tango/client/NamedDevFailedList.h>
#include <tango/tango.h>

#include <vector>

namespace TangoTest
{

class AttrReadEventCopyable
{
  public:
    AttrReadEventCopyable(Tango::AttrReadEvent *event);

    Tango::DeviceProxy *device;
    std::vector<std::string> attr_names;
    std::vector<Tango::DeviceAttribute> argout;
    bool err;
    Tango::DevErrorList errors;
};

class AttrWrittenEventCopyable
{
  public:
    AttrWrittenEventCopyable(Tango::AttrWrittenEvent *event);

    Tango::DeviceProxy *device;
    std::vector<std::string> attr_names;
    bool err;
    Tango::NamedDevFailedList errors;
};

class CmdDoneEventCopyable
{
  public:
    CmdDoneEventCopyable(Tango::CmdDoneEvent *event);

    Tango::DeviceProxy *device;
    std::string cmd_name;
    Tango::DeviceData argout;
    bool err;
    Tango::DevErrorList errors;
};

} // namespace TangoTest

#endif // TANGO_TEST_CATCH2_UTILS_CALLBACK_MOCK_HELPERS_H
