Index: chrome/browser/media/router/media_sink.cc |
diff --git a/chrome/browser/media/router/media_sink.cc b/chrome/browser/media/router/media_sink.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..baad5ffebb889cca74d23d9a639e457e3e25beef |
--- /dev/null |
+++ b/chrome/browser/media/router/media_sink.cc |
@@ -0,0 +1,55 @@ |
+// Copyright 2014 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 "chrome/browser/media/router/media_sink.h" |
+ |
+#include "base/logging.h" |
+ |
+namespace media_router { |
+ |
+MediaSink::MediaSink(const MediaSinkId& sink_id, |
+ const std::string& name, |
+ const MediaRouteId& route_id, |
+ Status status) |
+ : sink_id_(sink_id), name_(name), route_id_(route_id), status_(status) { |
+ if (status == Status::ACTIVE) { |
+ DCHECK(!route_id_.empty()) << "Inactive sink cannot have route ID"; |
+ } else { |
+ DCHECK(route_id_.empty()) << "Active sinks have must route ID"; |
+ } |
+} |
+ |
+MediaSink::~MediaSink() { |
+} |
+ |
+std::string MediaSink::StatusAsString() const { |
+ switch (status_) { |
+ case MediaSink::IDLE: |
+ return "IDLE"; |
+ case MediaSink::ACTIVE: |
+ return "ACTIVE"; |
+ case MediaSink::REQUEST_PENDING: |
+ return "REQUEST_PENDING"; |
+ default: |
+ NOTREACHED(); |
+ return ""; |
+ } |
+} |
+ |
+bool MediaSink::HasRoute() const { |
+ return !route_id_.empty(); |
+} |
+ |
+bool MediaSink::operator==(const MediaSink& other) const { |
+ return sink_id_ == other.sink_id_ && |
+ name_ == other.name_ && |
+ status_ == other.status_ && |
+ route_id_ == other.route_id_; |
+} |
+ |
+bool MediaSink::operator!=(const MediaSink& other) const { |
+ return !(*this == other); |
+} |
+ |
+} // namespace media_router |