/*
 * SPDX-FileCopyrightText: 2020 Copyright contributors to the cppTango project
 *
 * SPDX-License-Identifier: LGPL-3.0-or-later
 */

#ifndef TANGO_SERVER_ATTRIBUTEEVENTSUBSCRIPTIONSTATE_H
#define TANGO_SERVER_ATTRIBUTEEVENTSUBSCRIPTIONSTATE_H

#include <tango/server/EventDataKind.h>

#include <string>
#include <vector>

namespace Tango
{

struct AttributeEventSubscriptionState
{
    std::string attribute_name;

    EventDataKinds change_event_clients;
    EventDataKinds alarm_event_clients;
    EventDataKinds archive_event_clients;
    EventDataKinds periodic_event_clients;
    EventDataKinds user_event_clients;
    EventDataKinds attr_conf_event_clients;

    bool has_data_ready_event_clients = false;

    bool has_zmq_event_channel = false;
    bool has_notifd_event_channel = false;
};

using AttributeEventSubscriptionStates = std::vector<AttributeEventSubscriptionState>;

} // namespace Tango

#endif
