diffusion
Version:
Diffusion JavaScript client
108 lines (85 loc) • 2.64 kB
JavaScript
var RECORD_DELIMITER = 0x1;
var FIELD_DELIMITER = 0x2;
var EMPTY_FIELD = 0x3;
var RECORD_MU = 0x4;
var FIELD_MU = 0x5;
module.exports.bytesToString = function(bytes, offset, length) {
var ret = "";
for (var i = offset; i < offset + length; ++i) {
switch (bytes[i]) {
case FIELD_DELIMITER :
ret += "<FD>";
break;
case RECORD_DELIMITER :
ret += "<RD>";
break;
case EMPTY_FIELD :
ret += "<EF>";
break;
case FIELD_MU :
ret += "<FM>";
break;
case RECORD_MU :
ret += "<RM>";
break;
default :
ret += String.fromCharCode(bytes[i]);
}
}
return ret;
};
module.exports.recordCount = function(bytes, offset, length) {
if (length === 0) {
return 0;
}
if (bytes[0] === RECORD_MU) {
return 1;
}
var count = 1;
for (var i = offset; i < offset + length; i++) {
if (bytes[i] === RECORD_DELIMITER) {
count++;
}
}
return count;
};
module.exports.fieldCount = function(bytes, offset, length) {
if (length === 0) {
return 0;
}
if (bytes[0] === FIELD_MU) {
return 1;
}
var count = 1;
for (var i = offset; i < offset + length; i++) {
if (bytes[i] === FIELD_DELIMITER) {
count++;
}
}
return count;
};
module.exports.findDelimiter = function(bytes, startIndex, endIndex, delimiter) {
var pos = startIndex;
for (; pos < endIndex; pos++) {
if (bytes[pos] === delimiter) {
break;
}
}
return pos;
};
module.exports.isSingleEmptyRecord = function(bytes, offset, length) {
return length === 1 && bytes[offset] === RECORD_MU;
};
module.exports.recordIsSingleEmptyField = function(bytes, offset, length) {
return length === 1 && (bytes[offset] === FIELD_MU || bytes[offset] === EMPTY_FIELD);
};
module.exports.RECORD_DELIMITER = RECORD_DELIMITER;
module.exports.RECORD_DELIMITER_STRING = String.fromCharCode(RECORD_DELIMITER);
module.exports.FIELD_DELIMITER = FIELD_DELIMITER;
module.exports.FIELD_DELIMITER_STRING = String.fromCharCode(FIELD_DELIMITER);
module.exports.EMPTY_FIELD = EMPTY_FIELD;
module.exports.EMPTY_FIELD_STRING = String.fromCharCode(EMPTY_FIELD);
module.exports.RECORD_MU = RECORD_MU;
module.exports.RECORD_MU_STRING = String.fromCharCode(RECORD_MU);
module.exports.FIELD_MU = FIELD_MU;
module.exports.FIELD_MU_STRING = String.fromCharCode(FIELD_MU);