OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "mojo/edk/system/channel_endpoint_id.h" | 5 #include "mojo/edk/system/channel_endpoint_id.h" |
6 | 6 |
7 #include "base/compiler_specific.h" | 7 #include "base/compiler_specific.h" |
8 | 8 |
9 namespace mojo { | 9 namespace mojo { |
10 namespace system { | 10 namespace system { |
11 | 11 |
12 STATIC_CONST_MEMBER_DEFINITION const uint32_t | 12 STATIC_CONST_MEMBER_DEFINITION const uint32_t ChannelEndpointId::kRemoteFlag; |
13 ChannelEndpointId::kRemotelyAllocatedFlag; | |
14 STATIC_CONST_MEMBER_DEFINITION const uint32_t | |
15 ChannelEndpointId::kLocallyAllocatedMask; | |
16 | 13 |
17 ChannelEndpointId LocalChannelEndpointIdGenerator::GetNext() { | 14 ChannelEndpointId LocalChannelEndpointIdGenerator::GetNext() { |
18 ChannelEndpointId rv = next_channel_endpoint_id_; | 15 ChannelEndpointId rv = next_; |
19 next_channel_endpoint_id_.value_ = (next_channel_endpoint_id_.value_ + 1) & | 16 next_.value_ = (next_.value_ + 1) & ~ChannelEndpointId::kRemoteFlag; |
20 ChannelEndpointId::kLocallyAllocatedMask; | |
21 // Skip over the invalid value, in case we wrap. | 17 // Skip over the invalid value, in case we wrap. |
22 if (!next_channel_endpoint_id_.is_valid()) | 18 if (!next_.is_valid()) |
23 next_channel_endpoint_id_.value_++; | 19 next_.value_++; |
24 return rv; | 20 return rv; |
25 } | 21 } |
26 | 22 |
| 23 ChannelEndpointId RemoteChannelEndpointIdGenerator::GetNext() { |
| 24 ChannelEndpointId rv = next_; |
| 25 next_.value_ = (next_.value_ + 1) | ChannelEndpointId::kRemoteFlag; |
| 26 return rv; |
| 27 } |
| 28 |
27 } // namespace system | 29 } // namespace system |
28 } // namespace mojo | 30 } // namespace mojo |
OLD | NEW |