moved all buffers into external file

This commit is contained in:
brianc 2010-10-08 23:10:13 -05:00
parent ad8b6b018c
commit 2fc0d1124a
2 changed files with 74 additions and 21 deletions

View File

@ -7,15 +7,8 @@ var PARSE = function(buffer) {
var authOkBuffer = buffers.authenticationOk();
var paramStatusBuffer = buffers.parameterStatus('client_encoding', 'UTF8');
var readyForQueryBuffer = buffers.readyForQuery();
var backendKeyDataBuffer = new BufferList()
.addInt32(1)
.addInt32(2)
.join(true,'K');
var commandCompleteBuffer = new BufferList()
.addCString("SELECT 3")
.join(true,'C');
var backendKeyDataBuffer = buffers.backendKeyData(1,2);
var commandCompleteBuffer = buffers.commandComplete("SELECT 3");
var addRow = function(bufferList, name, offset) {
return bufferList.addCString(name) //field name
@ -27,30 +20,42 @@ var addRow = function(bufferList, name, offset) {
.addInt16(0) //format code, 0 => text
};
var row1 = {
name: 'id',
tableID: 1,
attributeNumber: 2,
dataTypeID: 3,
dataTypeSize: 4,
typeModifier: 5,
formatCode: 0
};
var oneRowDescBuff = new buffers.rowDescription([row1]);
row1.name = 'bang';
var oneRowDescBuff = new BufferList()
.addInt16(1);
oneRowDescBuff = addRow(oneRowDescBuff, 'id', 1)
.join(true,'T');
var twoRowDesc = new BufferList()
.addInt16(2);
twoRowDesc = addRow(twoRowDesc, 'bang', 1);
twoRowDesc = addRow(twoRowDesc, 'whoah', 10);
twoRowBuf = twoRowDesc.join(true, 'T');
var twoRowBuf = new buffers.rowDescription([row1,{
name: 'whoah',
tableID: 10,
attributeNumber: 11,
dataTypeID: 12,
dataTypeSize: 13,
typeModifier: 14,
formatCode: 0
}])
var emptyRowFieldBuf = new BufferList()
.addInt16(0)
.join(true, 'D');
var emptyRowFieldBuf = buffers.dataRow();
var oneFieldBuf = new BufferList()
.addInt16(1) //number of fields
.addInt32(5) //length of bytes of fields
.addCString('test')
.join(true, 'D');
var oneFieldBuf = buffers.dataRow(['test\0']);
var expectedAuthenticationOkayMessage = {

View File

@ -18,7 +18,55 @@ buffers.parameterStatus = function(name, value) {
.addCString(name)
.addCString(value)
.join(true, 'S');
};
buffers.backendKeyData = function(processID, secretKey) {
return new BufferList()
.addInt32(processID)
.addInt32(secretKey)
.join(true, 'K');
};
buffers.commandComplete = function(string) {
return new BufferList()
.addCString(string)
.join(true, 'C');
};
buffers.rowDescription = function(fields) {
fields = fields || [];
var buf = new BufferList();
buf.addInt16(fields.length);
fields.forEach(function(field) {
buf.addCString(field.name)
.addInt32(field.tableID || 0)
.addInt16(field.attributeNumber || 0)
.addInt32(field.dataTypeID || 0)
.addInt16(field.dataTypeSize || 0)
.addInt32(field.typeModifier || 0)
.addInt16(field.formatCode || 0)
});
return buf.join(true, 'T');
};
buffers.dataRow = function(columns) {
columns = columns || [];
var buf = new BufferList();
buf.addInt16(columns.length);
columns.forEach(function(col) {
if(col == null) {
buf.writeInt32(-1);
} else {
var strBuf = new Buffer(col, 'utf8');
buf.addInt32(strBuf.length);
buf.add(strBuf);
}
});
return buf.join(true, 'D');
};
module.exports = buffers;