%PDF- %PDF-
Direktori : /opt/cpanel/ea-ruby27/root/usr/share/passenger/node/vendor-copy/network-byte-order/lib/ |
Current File : //opt/cpanel/ea-ruby27/root/usr/share/passenger/node/vendor-copy/network-byte-order/lib/index.js |
/* Copyright 2010 Membase, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ 'use strict'; /*jshint node:true*/ /** * Convert a 16-bit quantity (short integer) from host byte order to network byte order (Little-Endian to Big-Endian). * * @param {Array|Buffer} b Array of octets or a nodejs Buffer * @param {number} i Zero-based index at which to write into b * @param {number} v Value to convert */ exports.htons = function(b, i, v) { b[i] = (0xff & (v >> 8)); b[i + 1] = (0xff & (v)); }; /** * Convert a 16-bit quantity (short integer) from network byte order to host byte order (Big-Endian to Little-Endian). * * @param {Array|Buffer} b Array of octets or a nodejs Buffer to read value from * @param {number} i Zero-based index at which to read from b * @returns {number} */ exports.ntohs = function(b, i) { return ((0xff & b[i]) << 8) | ((0xff & b[i + 1])); }; /** * Convert a 16-bit quantity (short integer) from network byte order to host byte order (Big-Endian to Little-Endian). * * @param {string} s String to read value from * @param {number} i Zero-based index at which to read from s * @returns {number} */ exports.ntohsStr = function(s, i) { return ((0xff & s.charCodeAt(i)) << 8) | ((0xff & s.charCodeAt(i + 1))); }; /** * Convert a 32-bit quantity (long integer) from host byte order to network byte order (Little-Endian to Big-Endian). * * @param {Array|Buffer} b Array of octets or a nodejs Buffer * @param {number} i Zero-based index at which to write into b * @param {number} v Value to convert */ exports.htonl = function(b, i, v) { b[i] = (0xff & (v >> 24)); b[i + 1] = (0xff & (v >> 16)); b[i + 2] = (0xff & (v >> 8)); b[i + 3] = (0xff & (v)); }; /** * Convert a 32-bit quantity (long integer) from network byte order to host byte order (Big-Endian to Little-Endian). * * @param {Array|Buffer} b Array of octets or a nodejs Buffer to read value from * @param {number} i Zero-based index at which to read from b * @returns {number} */ exports.ntohl = function(b, i) { return ((0xff & b[i]) << 24) | ((0xff & b[i + 1]) << 16) | ((0xff & b[i + 2]) << 8) | ((0xff & b[i + 3])); }; /** * Convert a 32-bit quantity (long integer) from network byte order to host byte order (Big-Endian to Little-Endian). * * @param {string} s String to read value from * @param {number} i Zero-based index at which to read from s * @returns {number} */ exports.ntohlStr = function(s, i) { return ((0xff & s.charCodeAt(i)) << 24) | ((0xff & s.charCodeAt(i + 1)) << 16) | ((0xff & s.charCodeAt(i + 2)) << 8) | ((0xff & s.charCodeAt(i + 3))); };