tuple: update to make use of C++11
[chromium-blink-merge.git] / mojo / edk / system / channel_endpoint_id.cc
blobed00f6ade515cb4e32ef7aa6734deb76023dca50
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "mojo/edk/system/channel_endpoint_id.h"
7 #include "base/compiler_specific.h"
9 namespace mojo {
10 namespace system {
12 STATIC_CONST_MEMBER_DEFINITION const uint32_t ChannelEndpointId::kRemoteFlag;
14 ChannelEndpointId LocalChannelEndpointIdGenerator::GetNext() {
15 ChannelEndpointId rv = next_;
16 next_.value_ = (next_.value_ + 1) & ~ChannelEndpointId::kRemoteFlag;
17 // Skip over the invalid value, in case we wrap.
18 if (!next_.is_valid())
19 next_.value_++;
20 return rv;
23 ChannelEndpointId RemoteChannelEndpointIdGenerator::GetNext() {
24 ChannelEndpointId rv = next_;
25 next_.value_ = (next_.value_ + 1) | ChannelEndpointId::kRemoteFlag;
26 return rv;
29 } // namespace system
30 } // namespace mojo