Blame | Last modification | View Log | RSS feed
if(!dojo._hasResource["dojox.uuid.generateRandomUuid"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.dojo._hasResource["dojox.uuid.generateRandomUuid"] = true;dojo.provide("dojox.uuid.generateRandomUuid");dojox.uuid.generateRandomUuid = function(){// summary:// This function generates random UUIDs, meaning "version 4" UUIDs.// description:// A typical generated value would be something like this:// "3b12f1df-5232-4804-897e-917bf397618a"//// For more information about random UUIDs, see sections 4.4 and// 4.5 of RFC 4122: http://tools.ietf.org/html/rfc4122#section-4.4//// This generator function is designed to be small and fast,// but not necessarily good.//// Small: This generator has a small footprint. Once comments are// stripped, it's only about 25 lines of code, and it doesn't// dojo.require() any other modules.//// Fast: This generator can generate lots of new UUIDs fairly quickly// (at least, more quickly than the other dojo UUID generators).//// Not necessarily good: We use Math.random() as our source// of randomness, which may or may not provide much randomness.// examples:// var string = dojox.uuid.generateRandomUuid();var HEX_RADIX = 16;function _generateRandomEightCharacterHexString(){// Make random32bitNumber be a randomly generated floating point number// between 0 and (4,294,967,296 - 1), inclusive.var random32bitNumber = Math.floor( (Math.random() % 1) * Math.pow(2, 32) );var eightCharacterHexString = random32bitNumber.toString(HEX_RADIX);while(eightCharacterHexString.length < 8){eightCharacterHexString = "0" + eightCharacterHexString;}return eightCharacterHexString; // for example: "3B12F1DF"}var hyphen = "-";var versionCodeForRandomlyGeneratedUuids = "4"; // 8 == binary2hex("0100")var variantCodeForDCEUuids = "8"; // 8 == binary2hex("1000")var a = _generateRandomEightCharacterHexString();var b = _generateRandomEightCharacterHexString();b = b.substring(0, 4) + hyphen + versionCodeForRandomlyGeneratedUuids + b.substring(5, 8);var c = _generateRandomEightCharacterHexString();c = variantCodeForDCEUuids + c.substring(1, 4) + hyphen + c.substring(4, 8);var d = _generateRandomEightCharacterHexString();var returnValue = a + hyphen + b + hyphen + c + d;returnValue = returnValue.toLowerCase();return returnValue; // String};}