From 6803ee4faff6f288aac3d92c3c7b1de9e132cd77 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Thu, 8 Dec 2016 21:31:42 -0500 Subject: Use external binaryXRH instead of bundling a modified copy. --- docs/examples/assets/js/dependencies.js | 1 + jarmon/jarmon.js | 216 +------------------------------- jarmon/jarmon.test.js | 2 +- 3 files changed, 8 insertions(+), 211 deletions(-) diff --git a/docs/examples/assets/js/dependencies.js b/docs/examples/assets/js/dependencies.js index dfefa39..417c42c 100644 --- a/docs/examples/assets/js/dependencies.js +++ b/docs/examples/assets/js/dependencies.js @@ -5,6 +5,7 @@ // @code_url http://flot.googlecode.com/svn/trunk/jquery.flot.stack.js // @code_url http://flot.googlecode.com/svn/trunk/jquery.flot.selection.js // @code_url http://javascriptrrd.cvs.sourceforge.net/viewvc/javascriptrrd/v0/src/lib/rrdFile.js +// @code_url http://javascriptrrd.cvs.sourceforge.net/viewvc/javascriptrrd/v0/src/lib/binaryXHR.js // @code_url https://raw.github.com/jquerytools/jquerytools/dev/src/dateinput/dateinput.js // @code_url https://raw.github.com/jquerytools/jquerytools/dev/src/tabs/tabs.js // @code_url https://raw.github.com/jquerytools/jquerytools/dev/src/toolbox/toolbox.history.js diff --git a/jarmon/jarmon.js b/jarmon/jarmon.js index 4e58334..8594fda 100644 --- a/jarmon/jarmon.js +++ b/jarmon/jarmon.js @@ -9,7 +9,8 @@ * - http://collectd.org/ * * Requirements: - * - JavascriptRRD: http://javascriptrrd.sourceforge.net/ + * - javascriptrrd.rrdFile: http://javascriptrrd.sourceforge.net/docs/javascriptrrd_v1.1.1/doc/lib/rrdFile_js.html + * - javascriptrrd.binaryXHR: http://javascriptrrd.sourceforge.net/docs/javascriptrrd_v1.1.1/doc/lib/binaryXHR_js.html * - jQuery: http://jquery.com/ * - Flot: http://code.google.com/p/flot/ * @@ -26,207 +27,6 @@ if(typeof(jarmon) === 'undefined') { var jarmon = {}; } -// A VBScript and Javascript helper function to convert IE responseBody to a -// byte string. -// http://miskun.com/javascript/internet-explorer-and-binary-files-data-access/ -var IEBinaryToArray_ByteStr_Script = - "\r\n"+ - "\r\n"; -document.write(IEBinaryToArray_ByteStr_Script); - -jarmon.GetIEByteArray_ByteStr = function(IEByteArray) { - if(typeof(jarmon.ByteMapping) === 'undefined') { - jarmon.ByteMapping = {}; - for ( var i = 0; i < 256; i++ ) { - for ( var j = 0; j < 256; j++ ) { - jarmon.ByteMapping[ String.fromCharCode( i + j * 256 ) ] = - String.fromCharCode(i) + String.fromCharCode(j); - } - } - } - - var rawBytes = IEBinaryToArray_ByteStr(IEByteArray); - var lastChr = IEBinaryToArray_ByteStr_Last(IEByteArray); - return rawBytes.replace(/[\s\S]/g, - function( match ) { return jarmon.ByteMapping[match]; }) + lastChr; -}; - -/* - * BinaryFile over XMLHttpRequest - * Part of the javascriptRRD package - * Copyright (c) 2009 Frank Wuerthwein, fkw@ucsd.edu - * MIT License [http://www.opensource.org/licenses/mit-license.php] - * - * Original repository: http://javascriptrrd.sourceforge.net/ - * - * Based on: - * Binary Ajax 0.1.5 - * Copyright (c) 2008 Jacob Seidelin, cupboy@gmail.com, - * http://blog.nihilogic.dk/ - * MIT License [http://www.opensource.org/licenses/mit-license.php] - */ - -// ============================================================ -// Exception class -jarmon.InvalidBinaryFile = function(msg) { - this.message=msg; - this.name="Invalid BinaryFile"; -}; - -// pretty print -jarmon.InvalidBinaryFile.prototype.toString = function() { - return this.name + ': "' + this.message + '"'; -}; - -// ===================================================================== -// BinaryFile class -// Allows access to element inside a binary stream -jarmon.BinaryFile = function(strData, iDataOffset, iDataLength) { - - var data = strData; - var dataOffset = iDataOffset || 0; - var dataLength = 0; - // added - var doubleMantExpHi=Math.pow(2,-28); - var doubleMantExpLo=Math.pow(2,-52); - var doubleMantExpFast=Math.pow(2,-20); - - if (typeof strData === "string") { - dataLength = iDataLength || data.length; - } else { - throw new jarmon.InvalidBinaryFile( - "Unsupported type " + (typeof strData)); - } - - this.getRawData = function() { - return data; - }; - - this.getByteAt = function(iOffset) { - return data.charCodeAt(iOffset + dataOffset) & 0xFF; - }; - - this.getLength = function() { - return dataLength; - }; - - this.getSByteAt = function(iOffset) { - var iByte = this.getByteAt(iOffset); - if (iByte > 127) - return iByte - 256; - else - return iByte; - }; - - this.getShortAt = function(iOffset) { - var iShort = ( - this.getByteAt(iOffset + 1) << 8) + this.getByteAt(iOffset); - if (iShort < 0) iShort += 65536; - return iShort; - }; - this.getSShortAt = function(iOffset) { - var iUShort = this.getShortAt(iOffset); - if (iUShort > 32767) - return iUShort - 65536; - else - return iUShort; - }; - this.getLongAt = function(iOffset) { - var iByte1 = this.getByteAt(iOffset), - iByte2 = this.getByteAt(iOffset + 1), - iByte3 = this.getByteAt(iOffset + 2), - iByte4 = this.getByteAt(iOffset + 3); - - var iLong = (((((iByte4 << 8) + iByte3) << 8) + iByte2) << 8) + iByte1; - if (iLong < 0) iLong += 4294967296; - return iLong; - }; - this.getSLongAt = function(iOffset) { - var iULong = this.getLongAt(iOffset); - if (iULong > 2147483647) - return iULong - 4294967296; - else - return iULong; - }; - this.getStringAt = function(iOffset, iLength) { - var aStr = []; - for (var i=iOffset,j=0;i0);i++,j++) { - aStr[j] = String.fromCharCode(this.getByteAt(i)); - } - return aStr.join(""); - }; - - // Added - this.getDoubleAt = function(iOffset) { - var iByte1 = this.getByteAt(iOffset), - iByte2 = this.getByteAt(iOffset + 1), - iByte3 = this.getByteAt(iOffset + 2), - iByte4 = this.getByteAt(iOffset + 3), - iByte5 = this.getByteAt(iOffset + 4), - iByte6 = this.getByteAt(iOffset + 5), - iByte7 = this.getByteAt(iOffset + 6), - iByte8 = this.getByteAt(iOffset + 7); - var iSign=iByte8 >> 7; - var iExpRaw=((iByte8 & 0x7F)<< 4) + (iByte7 >> 4); - var iMantHi=((((((iByte7 & 0x0F) << 8) + iByte6) << 8) + iByte5) << 8) + iByte4; - var iMantLo=((((iByte3) << 8) + iByte2) << 8) + iByte1; - - if (iExpRaw===0) return 0.0; - if (iExpRaw===0x7ff) return undefined; - - var iExp=(iExpRaw & 0x7FF)-1023; - - var dDouble = ((iSign===1)?-1:1)*Math.pow(2,iExp)*(1.0 + iMantLo*doubleMantExpLo + iMantHi*doubleMantExpHi); - return dDouble; - }; - // added - // Extracts only 4 bytes out of 8, loosing in precision (20 bit mantissa) - this.getFastDoubleAt = function(iOffset) { - var iByte5 = this.getByteAt(iOffset + 4), - iByte6 = this.getByteAt(iOffset + 5), - iByte7 = this.getByteAt(iOffset + 6), - iByte8 = this.getByteAt(iOffset + 7); - var iSign=iByte8 >> 7; - var iExpRaw=((iByte8 & 0x7F)<< 4) + (iByte7 >> 4); - var iMant=((((iByte7 & 0x0F) << 8) + iByte6) << 8) + iByte5; - - if (iExpRaw===0) return 0.0; - if (iExpRaw===0x7ff) return undefined; - - var iExp=(iExpRaw & 0x7FF)-1023; - - var dDouble = ((iSign===1)?-1:1)*Math.pow(2,iExp)*(1.0 + iMant*doubleMantExpFast); - return dDouble; - }; - - this.getCharAt = function(iOffset) { - return String.fromCharCode(this.getByteAt(iOffset)); - }; -}; - jarmon.downloadBinary = function(url) { /** * Download a binary file asynchronously using the jQuery.ajax function @@ -253,15 +53,11 @@ jarmon.downloadBinary = function(url) { delete this._nativeXhr; }, success: function(data, textStatus, jqXHR) { - // In IE we return the responseBody - if(typeof(this._nativeXhr.responseBody) !== 'undefined') { - d.resolve( - new jarmon.BinaryFile( - jarmon.GetIEByteArray_ByteStr( - this._nativeXhr.responseBody))); - } else { - d.resolve(new jarmon.BinaryFile(data)); + var response = this._nativeXhr.responseBody // for IE + if (response==undefined) { + response=this._nativeXhr.responseText // for standards-compliant browsers } + d.resolve(new BinaryFile(response)); }, error: function(xhr, textStatus, errorThrown) { d.reject(new Error(textStatus + ':' + xhr.status)); diff --git a/jarmon/jarmon.test.js b/jarmon/jarmon.test.js index 8494406..5a56d5a 100644 --- a/jarmon/jarmon.test.js +++ b/jarmon/jarmon.test.js @@ -36,7 +36,7 @@ YUI({ logInclude: { TestRunner: true } }).use('console', 'test', function(Y) { d.always( function(ret) { self.resume(function() { - Y.Assert.isInstanceOf(jarmon.BinaryFile, ret); + Y.Assert.isInstanceOf(BinaryFile, ret); Y.Assert.areEqual( String.fromCharCode(0), ret.getCharAt(0)); }); -- cgit v1.2.3