blob: 2598035de7170506266765783439f8b6f1beafa1 [file] [log] [blame]
// Copyright 2018 The Chromium 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 "chromeos/services/secure_channel/connection_details.h"
#include "base/logging.h"
#include "chromeos/components/multidevice/remote_device_ref.h"
namespace chromeos {
namespace secure_channel {
ConnectionDetails::ConnectionDetails(const std::string& device_id,
ConnectionMedium connection_medium)
: device_id_(device_id), connection_medium_(connection_medium) {
DCHECK(!device_id.empty());
}
ConnectionDetails::~ConnectionDetails() = default;
bool ConnectionDetails::operator==(const ConnectionDetails& other) const {
return device_id() == other.device_id() &&
connection_medium() == other.connection_medium();
}
bool ConnectionDetails::operator!=(const ConnectionDetails& other) const {
return !(*this == other);
}
bool ConnectionDetails::operator<(const ConnectionDetails& other) const {
if (device_id() != other.device_id())
return device_id() < other.device_id();
// Currently, there is only one ConnectionMedium type.
DCHECK(connection_medium() == other.connection_medium());
return false;
}
std::ostream& operator<<(std::ostream& stream,
const ConnectionDetails& details) {
stream << "{id: \""
<< multidevice::RemoteDeviceRef::TruncateDeviceIdForLogs(
details.device_id())
<< "\", medium: \"" << details.connection_medium() << "\"}";
return stream;
}
} // namespace secure_channel
} // namespace chromeos