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

#include <tango/common/tango_const.h>

#include <string>
#include <vector>

namespace Tango
{
/**
 * Base structure for pipe information
 *
 * @headerfile tango.h
 */
struct PipeInfo
{
    std::string name;                    ///< Pipe name
    std::string description;             ///< Pipe description
    std::string label;                   ///< Pipe label
    Tango::DispLevel disp_level;         ///< Display level
    Tango::PipeWriteType writable;       ///< Writable type (Read, Read-Write)
    std::vector<std::string> extensions; ///< For future extensions

    ///@privatesection
    friend std::ostream &operator<<(std::ostream &, const PipeInfo &);
    //    bool operator==(const _PipeInfo &);
};

// TODO: Pipe -> Change the type for writable to replace PIPE_READ, PIPE_READ_WRITE by READ, READ_WRITE (IDL limitation)

using PipeInfoList = std::vector<PipeInfo>;
} // namespace Tango
#endif
