From 566186f8bae6f050ce986be70fec3596e4762fb0 Mon Sep 17 00:00:00 2001 From: AJ ONeal Date: Tue, 9 Nov 2010 10:44:25 -0700 Subject: [PATCH] put psuedo-code for streaming in comments --- README.markdown => README.md | 0 mock-census/mock-census.js | 21 +++++++++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) rename README.markdown => README.md (100%) diff --git a/README.markdown b/README.md similarity index 100% rename from README.markdown rename to README.md diff --git a/mock-census/mock-census.js b/mock-census/mock-census.js index 72ae2e4..85a9ce3 100644 --- a/mock-census/mock-census.js +++ b/mock-census/mock-census.js @@ -1,4 +1,4 @@ -// TODO parse streaming +// TODO beef up AHR to allow streamed parsing "use strict"; (function (undefined) { var fs = require('fs'), @@ -86,7 +86,7 @@ stream, data = new Buffer(''); - stream = fs.createReadStream(file, { flags: 'r' }); + stream = fs.createReadStream(file, { flags: 'r', encoding: 'utf8' }); stream.on('error', function (err) { promise.fulfill(err, stream, data); }); @@ -150,6 +150,23 @@ console.log("Average height of male dependent of brown-haired male Heads of Household: " + (heights / count)); } + function parseChunk(chunk) { + /* + // TODO be more memory efficient + // by seeking into the buffer + data += chunk + while (true) { + index = data.indexOf('\n') + if (-1 === index) { + break; + } + line = data.substr(0, index); + data = data.substr(index + 1); + parseLine(line); + } + */ + } + function parseData(err, x, data) { var lines = data.split('\n'), heads = [],