Binary/A
From CommonJS Spec Wiki
< Binary(Redirected from ServerJS/Binary/A)
Binary Data
JavaScript does not have a binary data type. However, in server-side scenarios, binary data needs to be often processed. That is why we need some working Binary() class.
Binary() object proposition
This is an interface of my proposed Binary object. I also created a sample implementation, see http://tmp.zarovi.cz/binary.js.
/** * Creates a new variable holding binary data. * @param {number} initialData Variable amount if initial arguments. Every number represents a byte. * @returns {Binary} */ function Binary(initialData) {}; /** * Returns the number of bytes stored in this structure. * This is intentionally named "getLength" instead of "length" to indicate a method (and not a property). * @returns {number} */ Binary.prototype.getLength = function() {}; /** * Converts the binary variable to string by UTF-8 encoding its contents. * @returns {string} */ Binary.prototype.toString = function() {}; /** * Returns a byte value from a given index. * @param {number} index * @returns {number} */ Binary.prototype.getByte = function(index) {}; /** * Sets a byte value at given index. * @param {number} index */ Binary.prototype.setByte = function(index, value) {}; /** * These are essentialy copied from the Array class. */ Binary.prototype.pop = function() {}; Binary.prototype.push = function() {}; Binary.prototype.shift = function() {}; Binary.prototype.unshift = function() {}; /** * Encodes the data in Base64 * @returns {string} */ Binary.prototype.base64encode = function() {}; /** * Calculates MD5 hash * @returns {string} */ Binary.prototype.md5 = function() {}; /** * Calculates SHA1 hash * @returns {string} */ Binary.prototype.sha1 = function() {}; /** * Decodes the Base64 encoded string * @returns {Binary} */ String.prototype.base64decode = function() {}; /** * Converts an UTF-8 encoded string into its binary (one byte per item) variant * @returns {Binary} */ String.prototype.toBinary = function() {}; [[User:Ondras|Ondras]] 08:24, 5 February 2009 (UTC)