mirror of
https://github.com/brianc/node-postgres.git
synced 2025-12-08 20:16:25 +00:00
moved buffer list to it's own file
This commit is contained in:
parent
3925f6fbb0
commit
5d006bc593
58
test/buffer-list.js
Normal file
58
test/buffer-list.js
Normal file
@ -0,0 +1,58 @@
|
||||
BufferList = function() {
|
||||
this.buffers = [];
|
||||
};
|
||||
|
||||
BufferList.prototype.add = function(buffer, front) {
|
||||
this.buffers[front ? "unshift" : "push"](buffer);
|
||||
return this;
|
||||
};
|
||||
|
||||
BufferList.prototype.addInt16 = function(val, front) {
|
||||
return this.add(Buffer([(val >>> 8),(val >>> 0)]),front);
|
||||
};
|
||||
|
||||
BufferList.prototype.getByteLength = function(initial) {
|
||||
return this.buffers.reduce(function(previous, current){
|
||||
return previous + current.length;
|
||||
},initial || 0);
|
||||
};
|
||||
|
||||
BufferList.prototype.addInt32 = function(val, first) {
|
||||
return this.add(Buffer([
|
||||
(val >>> 24),
|
||||
(val >>> 16),
|
||||
(val >>> 8),
|
||||
(val >>> 0)
|
||||
]),first);
|
||||
};
|
||||
|
||||
BufferList.prototype.addCString = function(val) {
|
||||
return this.add(Buffer(val + '\0','utf8'));
|
||||
};
|
||||
|
||||
BufferList.prototype.join = function(appendLength, char) {
|
||||
var length = this.getByteLength();
|
||||
if(appendLength) {
|
||||
this.addInt32(length+4, true);
|
||||
return this.join(false, char);
|
||||
}
|
||||
if(char) {
|
||||
this.buffers.unshift(Buffer(char,'utf8'));
|
||||
length++;
|
||||
}
|
||||
var result = Buffer(length);
|
||||
var index = 0;
|
||||
this.buffers.forEach(function(buffer) {
|
||||
buffer.copy(result, index, 0);
|
||||
index += buffer.length;
|
||||
});
|
||||
return result;
|
||||
};
|
||||
|
||||
BufferList.concat = function() {
|
||||
var total = new BufferList();
|
||||
for(var i = 0; i < arguments.length; i++) {
|
||||
total.add(arguments[i]);
|
||||
}
|
||||
return total.join();
|
||||
};
|
||||
@ -43,65 +43,6 @@ hexToString = function(hexArray) {
|
||||
return new Buffer(hexArray).toString('utf8');
|
||||
}
|
||||
|
||||
BufferList = function() {
|
||||
this.buffers = [];
|
||||
};
|
||||
|
||||
BufferList.prototype.add = function(buffer, front) {
|
||||
this.buffers[front ? "unshift" : "push"](buffer);
|
||||
return this;
|
||||
};
|
||||
|
||||
BufferList.prototype.addInt16 = function(val, front) {
|
||||
return this.add(Buffer([(val >>> 8),(val >>> 0)]),front);
|
||||
};
|
||||
|
||||
BufferList.prototype.getByteLength = function(initial) {
|
||||
return this.buffers.reduce(function(previous, current){
|
||||
return previous + current.length;
|
||||
},initial || 0);
|
||||
};
|
||||
|
||||
BufferList.prototype.addInt32 = function(val, first) {
|
||||
return this.add(Buffer([
|
||||
(val >>> 24),
|
||||
(val >>> 16),
|
||||
(val >>> 8),
|
||||
(val >>> 0)
|
||||
]),first);
|
||||
};
|
||||
|
||||
BufferList.prototype.addCString = function(val) {
|
||||
return this.add(Buffer(val + '\0','utf8'));
|
||||
};
|
||||
|
||||
BufferList.prototype.join = function(appendLength, char) {
|
||||
var length = this.getByteLength();
|
||||
if(appendLength) {
|
||||
this.addInt32(length+4, true);
|
||||
return this.join(false, char);
|
||||
}
|
||||
if(char) {
|
||||
this.buffers.unshift(Buffer(char,'utf8'));
|
||||
length++;
|
||||
}
|
||||
var result = Buffer(length);
|
||||
var index = 0;
|
||||
this.buffers.forEach(function(buffer) {
|
||||
buffer.copy(result, index, 0);
|
||||
index += buffer.length;
|
||||
});
|
||||
return result;
|
||||
};
|
||||
|
||||
BufferList.concat = function() {
|
||||
var total = new BufferList();
|
||||
for(var i = 0; i < arguments.length; i++) {
|
||||
total.add(arguments[i]);
|
||||
}
|
||||
return total.join();
|
||||
};
|
||||
|
||||
MemoryStream = function() {
|
||||
EventEmitter.call(this);
|
||||
this.packets = [];
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user