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" |
| 8 |
7 namespace mojo { | 9 namespace mojo { |
8 namespace system { | 10 namespace system { |
9 | 11 |
| 12 STATIC_CONST_MEMBER_DEFINITION const uint32_t |
| 13 ChannelEndpointId::kRemotelyAllocatedFlag; |
| 14 STATIC_CONST_MEMBER_DEFINITION const uint32_t |
| 15 ChannelEndpointId::kLocallyAllocatedMask; |
| 16 |
10 ChannelEndpointId LocalChannelEndpointIdGenerator::GetNext() { | 17 ChannelEndpointId LocalChannelEndpointIdGenerator::GetNext() { |
11 ChannelEndpointId rv = next_channel_endpoint_id_; | 18 ChannelEndpointId rv = next_channel_endpoint_id_; |
12 next_channel_endpoint_id_.value_++; | 19 next_channel_endpoint_id_.value_ = (next_channel_endpoint_id_.value_ + 1) & |
| 20 ChannelEndpointId::kLocallyAllocatedMask; |
13 // Skip over the invalid value, in case we wrap. | 21 // Skip over the invalid value, in case we wrap. |
14 if (!next_channel_endpoint_id_.is_valid()) | 22 if (!next_channel_endpoint_id_.is_valid()) |
15 next_channel_endpoint_id_.value_++; | 23 next_channel_endpoint_id_.value_++; |
16 return rv; | 24 return rv; |
17 } | 25 } |
18 | 26 |
19 } // namespace system | 27 } // namespace system |
20 } // namespace mojo | 28 } // namespace mojo |
OLD | NEW |