[MediaWiki-commits] [Gerrit] Convert UUID length 'magic' numbers to named constants - change (mediawiki...Flow)

2013-12-31 Thread jenkins-bot (Code Review)
jenkins-bot has submitted this change and it was merged.

Change subject: Convert UUID length 'magic' numbers to named constants
..


Convert UUID length 'magic' numbers to named constants

Change-Id: Iece60d9c68bcd411899a1064f2d3f3e310fd3796
---
M includes/Model/UUID.php
1 file changed, 21 insertions(+), 12 deletions(-)

Approvals:
  Matthias Mullie: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/includes/Model/UUID.php b/includes/Model/UUID.php
index 4757ee2..1bf8a8e 100644
--- a/includes/Model/UUID.php
+++ b/includes/Model/UUID.php
@@ -12,9 +12,14 @@
protected $hexValue;
protected $timestamp;
 
+   // UUID length in hex
+   const HEX_LEN = 32;
+   // UUID length in binary
+   const BIN_LEN = 16;
+
function __construct( $binaryValue ) {
-   if ( strlen( $binaryValue ) !== 16 ) {
-   throw new InvalidInputException( 'Expected 16 char 
binary string, got: ' . $binaryValue, 'invalid-input' );
+   if ( strlen( $binaryValue ) !== self::BIN_LEN ) {
+   throw new InvalidInputException( 'Expected ' . 
self::BIN_LEN . ' char binary string, got: ' . $binaryValue, 'invalid-input' );
}
$this-binaryValue = $binaryValue;
}
@@ -32,20 +37,21 @@
} elseif ( $input === null ) {
return null;
} elseif ( $input === false ) {
-   $hexValue = str_pad( 
\UIDGenerator::newTimestampedUID128( 16 ), 32, '0', STR_PAD_LEFT );
-   $binaryValue = pack( 'H*', $hexValue );
+   $hexValue = str_pad( 
\UIDGenerator::newTimestampedUID128( 16 ), self::HEX_LEN, '0', STR_PAD_LEFT );
} elseif ( !is_string( $input )  !is_int( $input ) ) {
throw new InvalidInputException( 'Unknown input type to 
UUID class: ' . gettype( $input ), 'invalid-input' );
-   } elseif ( strlen( $input ) == 16 ) {
+   } elseif ( strlen( $input ) == self::BIN_LEN ) {
$binaryValue = $input;
-   } elseif ( strlen( $input ) == 32  preg_match( 
'/^[a-fA-F0-9]+$/', $input ) ) {
+   } elseif ( strlen( $input ) == self::HEX_LEN  preg_match( 
'/^[a-fA-F0-9]+$/', $input ) ) {
$hexValue = $input;
-   $binaryValue = pack( 'H*', $hexValue );
} elseif ( is_numeric( $input ) ) {
-   $hexValue = wfBaseConvert( $input, 10, 16, 32 );
-   $binaryValue = pack( 'H*', $hexValue );
+   $hexValue = wfBaseConvert( $input, 10, 16, 
self::HEX_LEN );
} else {
throw new InvalidInputException( 'Unknown input to UUID 
class', 'invalid-input' );
+   }
+
+   if ( $binaryValue === null  $hexValue !== null ) {
+   $binaryValue = pack( 'H*', $hexValue );
}
 
$uuid = new self( $binaryValue );
@@ -60,7 +66,7 @@
 
public function getHex() {
if ( $this-hexValue === null ) {
-   $this-hexValue = str_pad( bin2hex( $this-binaryValue 
), 32, '0', STR_PAD_LEFT );
+   $this-hexValue = str_pad( bin2hex( $this-binaryValue 
), self::HEX_LEN, '0', STR_PAD_LEFT );
}
return $this-hexValue;
}
@@ -130,9 +136,12 @@
// Easiest way to do this is to take the 46 MSBs of the UNIX 
timestamp * 1000
// and pad the remaining characters with zeroes.
$millitime = wfTimestamp( TS_UNIX, $ts ) * 1000;
+   // base 10 - base 2, taking 46 bits
$timestampBinary = wfBaseConvert( $millitime, 10, 2, 46 );
-   $uuidBase2 = str_pad( $timestampBinary, 16 * 8, '0', 
STR_PAD_RIGHT );
-   $uuidHex = wfBaseConvert( $uuidBase2, 2, 16, 32 );
+   // pad out the 46 bits to binary len with 0's
+   $uuidBase2 = str_pad( $timestampBinary, self::BIN_LEN * 8, '0', 
STR_PAD_RIGHT );
+   // base 2 - base 16
+   $uuidHex = wfBaseConvert( $uuidBase2, 2, 16, self::HEX_LEN );
 
return self::create( $uuidHex );
}

-- 
To view, visit https://gerrit.wikimedia.org/r/102584
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Iece60d9c68bcd411899a1064f2d3f3e310fd3796
Gerrit-PatchSet: 11
Gerrit-Project: mediawiki/extensions/Flow
Gerrit-Branch: master
Gerrit-Owner: EBernhardson ebernhard...@wikimedia.org
Gerrit-Reviewer: EBernhardson ebernhard...@wikimedia.org
Gerrit-Reviewer: Matthias Mullie mmul...@wikimedia.org
Gerrit-Reviewer: jenkins-bot

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org

[MediaWiki-commits] [Gerrit] Convert UUID length 'magic' numbers to named constants - change (mediawiki...Flow)

2013-12-18 Thread EBernhardson (Code Review)
EBernhardson has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/102584


Change subject: Convert UUID length 'magic' numbers to named constants
..

Convert UUID length 'magic' numbers to named constants

Change-Id: Iece60d9c68bcd411899a1064f2d3f3e310fd3796
---
M includes/Model/UUID.php
1 file changed, 16 insertions(+), 10 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Flow 
refs/changes/84/102584/1

diff --git a/includes/Model/UUID.php b/includes/Model/UUID.php
index 348e67c..bbd29df 100644
--- a/includes/Model/UUID.php
+++ b/includes/Model/UUID.php
@@ -12,9 +12,14 @@
protected $hexValue;
protected $timestamp;
 
+   // UUID length in hex
+   const HEX_LEN = 32;
+   // UUID length in binary
+   const BIN_LEN = 16;
+
function __construct( $binaryValue ) {
-   if ( strlen( $binaryValue ) !== 16 ) {
-   throw new \InvalidArgumentException( 'Expected 16 char 
binary string, got: ' . $binaryValue );
+   if ( strlen( $binaryValue ) !== self::BIN_LEN ) {
+   throw new \InvalidArgumentException( 'Expected ' . 
self::BIN_LEN . 'char binary string, got: ' . $binaryValue );
}
$this-binaryValue = $binaryValue;
}
@@ -32,20 +37,21 @@
} elseif ( $input === null ) {
return null;
} elseif ( $input === false ) {
-   $hexValue = str_pad( 
\UIDGenerator::newTimestampedUID128( 16 ), 32, '0', STR_PAD_LEFT );
-   $binaryValue = pack( 'H*', $hexValue );
+   $hexValue = str_pad( 
\UIDGenerator::newTimestampedUID128( 16 ), self::BIN_LEN, '0', STR_PAD_LEFT );
} elseif ( !is_string( $input )  !is_int( $input ) ) {
throw new \MWException( Unknown input type to UUID 
class:  . gettype( $input ) );
-   } elseif ( strlen( $input ) == 16 ) {
+   } elseif ( strlen( $input ) == self::BIN_LEN ) {
$binaryValue = $input;
-   } elseif ( strlen( $input ) == 32  preg_match( 
'/^[a-fA-F0-9]+$/', $input ) ) {
+   } elseif ( strlen( $input ) == self::HEX_LEN  preg_match( 
'/^[a-fA-F0-9]+$/', $input ) ) {
$hexValue = $input;
-   $binaryValue = pack( 'H*', $hexValue );
} elseif ( is_numeric( $input ) ) {
-   $hexValue = wfBaseConvert( $input, 10, 16, 32 );
-   $binaryValue = pack( 'H*', $hexValue );
+   $hexValue = wfBaseConvert( $input, 10, 16, 
self::BIN_LEN );
} else {
throw new \MWException( Unknown input to UUID class );
+   }
+
+   if ( $binaryValue === null  $hexValue !== null ) {
+   $binaryValue = pack( 'H*', $hexValue );
}
 
$uuid = new self( $binaryValue );
@@ -60,7 +66,7 @@
 
public function getHex() {
if ( $this-hexValue === null ) {
-   $this-hexValue = str_pad( bin2hex( $this-binaryValue 
), 32, '0', STR_PAD_LEFT );
+   $this-hexValue = str_pad( bin2hex( $this-binaryValue 
), self::BIN_LEN, '0', STR_PAD_LEFT );
}
return $this-hexValue;
}

-- 
To view, visit https://gerrit.wikimedia.org/r/102584
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iece60d9c68bcd411899a1064f2d3f3e310fd3796
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Flow
Gerrit-Branch: master
Gerrit-Owner: EBernhardson ebernhard...@wikimedia.org

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits