blob: 6b0145fbdfc344bb94de772ea88d3b9e1770e8c1 [file] [log] [blame]
// 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.
#include "cros-disks/device_event.h"
#include "cros-disks/quote.h"
namespace cros_disks {
std::ostream& operator<<(std::ostream& out, DeviceEvent::EventType t) {
switch (t) {
#define CROS_DISKS_PRINT(X) \
case DeviceEvent::X: \
return out << #X;
CROS_DISKS_PRINT(kIgnored)
CROS_DISKS_PRINT(kDeviceAdded)
CROS_DISKS_PRINT(kDeviceScanned)
CROS_DISKS_PRINT(kDeviceRemoved)
CROS_DISKS_PRINT(kDiskAdded)
CROS_DISKS_PRINT(kDiskChanged)
CROS_DISKS_PRINT(kDiskRemoved)
#undef CROS_DISKS_PRINT
}
return out << "EventType("
<< static_cast<std::underlying_type_t<DeviceEvent::EventType>>(t)
<< ")";
}
std::ostream& operator<<(std::ostream& out, const DeviceEvent& event) {
return out << "{type: " << event.event_type
<< ", path: " << quote(event.device_path) << "}";
}
bool DeviceEvent::operator==(const DeviceEvent& event) const {
return event.event_type == event_type && event.device_path == device_path;
}
bool DeviceEvent::IsDiskEvent() const {
switch (event_type) {
case kDiskAdded:
case kDiskChanged:
case kDiskRemoved:
return true;
default:
return false;
}
}
} // namespace cros_disks