| Index: mojo/services/view_manager/ids.h
 | 
| diff --git a/mojo/services/view_manager/ids.h b/mojo/services/view_manager/ids.h
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..90c31630986003a693cd3924fbe2e09f80d079f1
 | 
| --- /dev/null
 | 
| +++ b/mojo/services/view_manager/ids.h
 | 
| @@ -0,0 +1,62 @@
 | 
| +// 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.
 | 
| +
 | 
| +#ifndef SERVICES_VIEW_MANAGER_IDS_H_
 | 
| +#define SERVICES_VIEW_MANAGER_IDS_H_
 | 
| +
 | 
| +#include "third_party/mojo_services/src/view_manager/public/cpp/types.h"
 | 
| +#include "third_party/mojo_services/src/view_manager/public/cpp/util.h"
 | 
| +
 | 
| +namespace view_manager {
 | 
| +
 | 
| +// Connection id is used to indicate no connection. That is, no
 | 
| +// ViewManagerServiceImpl ever gets this id.
 | 
| +const mojo::ConnectionSpecificId kInvalidConnectionId = 0;
 | 
| +
 | 
| +// Adds a bit of type safety to view ids.
 | 
| +struct ViewId {
 | 
| +  ViewId(mojo::ConnectionSpecificId connection_id,
 | 
| +         mojo::ConnectionSpecificId view_id)
 | 
| +      : connection_id(connection_id), view_id(view_id) {}
 | 
| +  ViewId() : connection_id(0), view_id(0) {}
 | 
| +
 | 
| +  bool operator==(const ViewId& other) const {
 | 
| +    return other.connection_id == connection_id &&
 | 
| +        other.view_id == view_id;
 | 
| +  }
 | 
| +
 | 
| +  bool operator!=(const ViewId& other) const {
 | 
| +    return !(*this == other);
 | 
| +  }
 | 
| +
 | 
| +  mojo::ConnectionSpecificId connection_id;
 | 
| +  mojo::ConnectionSpecificId view_id;
 | 
| +};
 | 
| +
 | 
| +inline ViewId ViewIdFromTransportId(mojo::Id id) {
 | 
| +  return ViewId(mojo::HiWord(id), mojo::LoWord(id));
 | 
| +}
 | 
| +
 | 
| +inline mojo::Id ViewIdToTransportId(const ViewId& id) {
 | 
| +  return (id.connection_id << 16) | id.view_id;
 | 
| +}
 | 
| +
 | 
| +inline ViewId RootViewId() {
 | 
| +  return ViewId(kInvalidConnectionId, 1);
 | 
| +}
 | 
| +
 | 
| +// Returns a ViewId that is reserved to indicate no view. That is, no view will
 | 
| +// ever be created with this id.
 | 
| +inline ViewId InvalidViewId() {
 | 
| +  return ViewId(kInvalidConnectionId, 0);
 | 
| +}
 | 
| +
 | 
| +// All cloned views use this id.
 | 
| +inline ViewId ClonedViewId() {
 | 
| +  return ViewId(kInvalidConnectionId, 2);
 | 
| +}
 | 
| +
 | 
| +}  // namespace view_manager
 | 
| +
 | 
| +#endif  // SERVICES_VIEW_MANAGER_IDS_H_
 | 
| 
 |