123456789101112131415161718192021222324252627282930313233343536373839 |
- var Packet = require('../packets/packet');
- function TextRow(columns)
- {
- this.columns = columns || [];
- }
- TextRow.fromPacket = function(packet) {
- //packet.reset(); // set offset to starting point?
- var columns = [];
- while(packet.haveMoreData()) {
- columns.push(packet.readLengthCodedString());
- }
- return new TextRow(columns);
- };
- TextRow.toPacket = function(column) {
- var sequenceId = 0; // TODO remove, this is calculated now in connecton
- var buffer, packet;
- var length = 0;
- column.forEach(function(val) {
- if (val === null || typeof(val) == 'undefined') return ++length;
- var str = val.toString(10);
- length += Packet.lengthCodedNumberLength(str);
- length += str.length;
- });
- buffer = new Buffer(length+4);
- packet = new Packet(sequenceId, buffer, 0, length+4);
- packet.offset = 4;
- column.forEach(function(val) {
- if (val === null) return packet.writeNull();
- if (typeof val == 'undefined') return packet.writeInt8(0);
- packet.writeLengthCodedString(val.toString(10));
- });
- return packet;
- };
- module.exports = TextRow;
|