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

#include <tango/client/EventData.h>
#include <tango/common/tango_const.h>
#include <tango/server/Attribute.h>

#include <zmq.hpp>

namespace Tango
{
class DeviceProxy;
class DeviceAttribute;

class FwdEventData : public EventData
{
  public:
    FwdEventData(Tango::DeviceProxy *,
                 const std::string &,
                 const std::string &,
                 Tango::DeviceAttribute *,
                 Tango::EventReason,
                 const DevErrorList &);
    FwdEventData(Tango::DeviceProxy *,
                 const std::string &,
                 const std::string &,
                 Tango::DeviceAttribute *,
                 Tango::EventReason,
                 const DevErrorList &,
                 zmq::message_t *);

    void set_av_5(const AttributeValue_5 *_p)
    {
        av_5 = _p;
    }

    const AttributeValue_5 *get_av_5()
    {
        return av_5;
    }

    zmq::message_t *get_zmq_mess_ptr()
    {
        return event_data;
    }

  private:
    const AttributeValue_5 *av_5{nullptr};
    zmq::message_t *event_data{nullptr};
};

} // namespace Tango

#endif // TANGO_CLIENT_FWDEVENTDATA_H
