#ifndef CLUSTER_DUMMY_UPDATER_HH
# define CLUSTER_DUMMY_UPDATER_HH

# include "ValDB.hh"

class AbstractDevice;

/** @brief Device updating interface
 *
 * This class provide an abstract interface to update one device and
 * access to its values. It is used by AbstractDevice class to update
 * device values and get them. 
 *
 * @sa AbstractDevice
 *
 * @author Frederic Py <fpy@mbari.org>
 */
class dummyUpdater {
public:
  /** @brief Check for readyness
   *
   * This method is used to check if the subjacent
   * device is ready or not.
   *
   * @retval true if the device is ready
   * @retval false else
   */
  virtual bool ready() const =0;

protected:
  /** @brief Default constructor
   */
  dummyUpdater() {}
  /** @brief Destructor 
   */
  virtual ~dummyUpdater() {}

  /** @brief Declare symbolic associations.
   *
   * @param db A ValDB
   *
   * This method is used to declare symbolic associations to
   * device provided varaiables in @e db
   */
  virtual void fillDB(ValDB &db) =0;

  friend class AbstractDevice;
}; // dummyUpdater

#endif // CLUSTER_DUMMY_UPDATER_HH
