// Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CROS_DISKS_FORMAT_MANAGER_OBSERVER_INTERFACE_H_
#define CROS_DISKS_FORMAT_MANAGER_OBSERVER_INTERFACE_H_

#include <string>

#include <chromeos/dbus/service_constants.h>

namespace cros_disks {

// An interface class for observing events from the format manager.
// A derived class of this class should override the event methods
// that it would like to observe.
class FormatManagerObserverInterface {
 public:
  virtual ~FormatManagerObserverInterface() {}

  // This method is called when a formatting operation on a device has
  // completed. |error_type| indicates whether the operation succeeded
  // or failed with a particular error.
  virtual void OnFormatCompleted(const std::string& device_path,
                                 FormatErrorType error_type) = 0;
};

}  // namespace cros_disks

#endif  // CROS_DISKS_FORMAT_MANAGER_OBSERVER_INTERFACE_H_
