Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(223)

Side by Side Diff: usage/lib/src/uuid.dart

Issue 1400473008: Roll Observatory packages and add a roll script (Closed) Base URL: git@github.com:dart-lang/observatory_pub_packages.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « usage/lib/src/usage_impl_io.dart ('k') | usage/lib/usage.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file.
4
5 /**
6 * A UUID generator library.
7 */
8 library usage.uuid;
9
10 import 'dart:math' show Random;
11
12 /**
13 * A UUID generator. This will generate unique IDs in the format:
14 *
15 * f47ac10b-58cc-4372-a567-0e02b2c3d479
16 *
17 * The generated uuids are 128 bit numbers encoded in a specific string format.
18 *
19 * For more information, see
20 * http://en.wikipedia.org/wiki/Universally_unique_identifier.
21 */
22 class Uuid {
23 Random _random = new Random();
24
25 /**
26 * Generate a version 4 (random) uuid. This is a uuid scheme that only uses
27 * random numbers as the source of the generated uuid.
28 */
29 String generateV4() {
30 // Generate xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx / 8-4-4-4-12.
31 int special = 8 + _random.nextInt(4);
32
33 return
34 '${_bitsDigits(16, 4)}${_bitsDigits(16, 4)}-'
35 '${_bitsDigits(16, 4)}-'
36 '4${_bitsDigits(12, 3)}-'
37 '${_printDigits(special, 1)}${_bitsDigits(12, 3)}-'
38 '${_bitsDigits(16, 4)}${_bitsDigits(16, 4)}${_bitsDigits(16, 4)}';
39 }
40
41 String _bitsDigits(int bitCount, int digitCount) =>
42 _printDigits(_generateBits(bitCount), digitCount);
43
44 int _generateBits(int bitCount) => _random.nextInt(1 << bitCount);
45
46 String _printDigits(int value, int count) =>
47 value.toRadixString(16).padLeft(count, '0');
48 }
OLDNEW
« no previous file with comments | « usage/lib/src/usage_impl_io.dart ('k') | usage/lib/usage.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698