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

#ifndef TANGO_CLIENT_DBATTRIBUTE_H
#define TANGO_CLIENT_DBATTRIBUTE_H

#include <tango/client/DbDatum.h>

#include <string>

/** @defgroup DBase Database Client classes
 * @ingroup Client
 */

namespace Tango
{
class Database;

/**********************************************************************
 *                                                                    *
 *  DbAttribute - A database object for accessing attribute related   *
 *               information in the database                          *
 *                                                                    *
 **********************************************************************/
class DbAttribute
{
  private:
    std::string name;
    std::string device_name;
    Database *dbase;
    int db_ind;
    bool ext_dbase;

  public:
    DbAttribute(const std::string &, const std::string &);
    DbAttribute(const std::string &, const std::string &, Database *);
    DbAttribute(const std::string &, const std::string &, const std::string &, const std::string &);
    ~DbAttribute();
    //
    // methods
    //
    void get_property(DbData &);
    void put_property(const DbData &);
    void delete_property(const DbData &);
};
} // namespace Tango

#endif // TANGO_CLIENT_DBATTRIBUTE_H
