File Modules Upgraded to Log on Console and handle ERR at callbacks.

This commit is contained in:
Luis Fernando Molina committed 2018-04-29 12:54:59 +02:00
1 parent 88db4a082c
commit 6cbe3774e0
8 files changed
+317 -37

No files matched your search

Binary file not shown.
+46 -4
View File
@@ -1,7 +1,12 @@
function newFile() {
let fileObject = {
const MODULE_NAME = "File";
const FULL_LOG = true;
const logger = newDebugLog();
logger.fileName = MODULE_NAME;
let thisObject = {
getFile: getFile,
initialize: initialize
}
@@ -9,10 +14,13 @@ function newFile() {
let fileCloud;
let file;
return fileObject;
return thisObject;
function initialize(pDevTeam, pBot, pProduct, pSet, pExchange, pMarket, callBackFunction) {
if (FULL_LOG === true) { logger.write("[INFO] initialize -> Entering function."); }
if (FULL_LOG === true) { logger.write("[INFO] initialize -> key = " + pDevTeam.codeName + "-" + pBot.codeName + "-" + pProduct.codeName); }
let exchange = ecosystem.getExchange(pProduct, pExchange);
if (pExchange !== undefined && exchange === undefined) { // We support no exchange as a parameter, but if provided, then it must be at the list of exchanges of that product.
@@ -28,18 +36,52 @@ function newFile() {
fileCloud.getFile(pDevTeam, pBot, pSet, exchange, pMarket, undefined, undefined, undefined, onFileReceived);
function onFileReceived(pFile) {
function onFileReceived(err, pFile) {
if (FULL_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> Entering function."); }
switch (err.result) {
case GLOBAL.DEFAULT_OK_RESPONSE.result: {
if (FULL_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> Received OK Response."); }
break;
}
case GLOBAL.DEFAULT_FAIL_RESPONSE.result: {
if (FULL_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> Received FAIL Response."); }
callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE);
return;
}
case GLOBAL.CUSTOM_FAIL_RESPONSE.result: {
if (FULL_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> Received CUSTOM FAIL Response."); }
if (FULL_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> err.message = " + err.message); }
callBackFunction(err);
return;
}
default: {
if (FULL_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> Received Unexpected Response."); }
callBackFunction(err);
return;
}
}
file = pFile;
callBackFunction();
}
}
function getFile() {
if (FULL_LOG === true) { logger.write("[INFO] getFile -> Entering function."); }
return file;
}
+51 -4
View File
@@ -1,7 +1,12 @@
function newFileCache() {
let fileCache = {
const MODULE_NAME = "File Cache";
const FULL_LOG = true;
const logger = newDebugLog();
logger.fileName = MODULE_NAME;
let thisObject = {
getFile: getFile,
getExpectedFiles: getExpectedFiles,
getFilesLoaded: getFilesLoaded,
@@ -14,10 +19,13 @@ function newFileCache() {
let files = new Map;
return fileCache;
return thisObject;
function initialize(pDevTeam, pBot, pProduct, pSet, pExchange, pMarket, callBackFunction) {
if (FULL_LOG === true) { logger.write("[INFO] initialize -> Entering function."); }
if (FULL_LOG === true) { logger.write("[INFO] initialize -> key = " + pDevTeam.codeName + "-" + pBot.codeName + "-" + pProduct.codeName); }
let exchange = ecosystem.getExchange(pProduct, pExchange);
if (exchange === undefined) {
@@ -40,13 +48,46 @@ function newFileCache() {
fileCloud.getFile(pDevTeam, pBot, pSet, exchange, pMarket, periodName, undefined, undefined, onFileReceived);
function onFileReceived(file) {
function onFileReceived(err, file) {
if (FULL_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> Entering function."); }
switch (err.result) {
case GLOBAL.DEFAULT_OK_RESPONSE.result: {
if (FULL_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> Received OK Response."); }
break;
}
case GLOBAL.DEFAULT_FAIL_RESPONSE.result: {
if (FULL_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> Received FAIL Response."); }
callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE);
return;
}
case GLOBAL.CUSTOM_FAIL_RESPONSE.result: {
if (FULL_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> Received CUSTOM FAIL Response."); }
if (FULL_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> err.message = " + err.message); }
callBackFunction(err);
return;
}
default: {
if (FULL_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> Received Unexpected Response."); }
callBackFunction(err);
return;
}
}
files.set(periodTime, file);
filesLoaded++;
callBackFunction(); // Note that the callback is called for every file loaded.
callBackFunction(GLOBAL.DEFAULT_OK_RESPONSE); // Note that the callback is called for every file loaded.
}
}
@@ -55,18 +96,24 @@ function newFileCache() {
function getFile(pPeriod) {
if (FULL_LOG === true) { logger.write("[INFO] getFile -> Entering function."); }
return files.get(pPeriod);
}
function getExpectedFiles() {
if (FULL_LOG === true) { logger.write("[INFO] getExpectedFiles -> Entering function."); }
return marketFilesPeriods.length;
}
function getFilesLoaded() {
if (FULL_LOG === true) { logger.write("[INFO] getFilesLoaded -> Entering function."); }
return filesLoaded;
}
+68 -9
View File
@@ -1,10 +1,15 @@
function newFileCursor() {
const MODULE_NAME = "File Cursor";
const FULL_LOG = true;
const logger = newDebugLog();
logger.fileName = MODULE_NAME;
let files = new Map;
let cursorDate;
let fileCursor = {
let thisObject = {
setDatetime: setDatetime,
setTimePeriod: setTimePeriod,
files: undefined,
@@ -12,7 +17,7 @@ function newFileCursor() {
initialize: initialize
}
fileCursor.files = files;
thisObject.files = files;
let minCursorSize = 10;
let maxCursorSize = 30;
@@ -26,10 +31,13 @@ function newFileCursor() {
let periodName;
let timePeriod;
return fileCursor;
return thisObject;
function initialize(pFileCloud, pDevTeam, pBot, pSet, pExchange, pMarket, pPeriodName, pTimePeriod, pCursorDate, pCurrentTimePeriod, callBackFunction) {
if (FULL_LOG === true) { logger.write("[INFO] initialize -> Entering function."); }
if (FULL_LOG === true) { logger.write("[INFO] initialize -> key = " + pDevTeam.codeName + "-" + pBot.codeName + "-" + pSet.codeName + "-" + pPeriodName); }
market = pMarket;
exchange = pExchange;
fileCloud = pFileCloud;
@@ -46,6 +54,8 @@ function newFileCursor() {
function setTimePeriod(pTimePeriod, pDatetime, callBackFunction) {
if (FULL_LOG === true) { logger.write("[INFO] setTimePeriod -> Entering function."); }
/*
We are implementing here an algorithm designed to save bandwidth, memory and processing power at the browser.
@@ -96,6 +106,8 @@ function newFileCursor() {
function enterSavingMode() {
if (FULL_LOG === true) { logger.write("[INFO] setTimePeriod -> enterSavingMode -> Entering function."); }
switch (timePeriod) {
case _45_MINUTES_IN_MILISECONDS:
@@ -170,6 +182,8 @@ function newFileCursor() {
function exitSavingMode() {
if (FULL_LOG === true) { logger.write("[INFO] setTimePeriod -> exitSavingMode -> Entering function."); }
switch (timePeriod) {
case _45_MINUTES_IN_MILISECONDS:
@@ -247,6 +261,8 @@ function newFileCursor() {
function setDatetime(pDatetime, callBackFunction) {
if (FULL_LOG === true) { logger.write("[INFO] setDatetime -> Entering function."); }
if (pDatetime === undefined) { return; }
cursorDate = pDatetime;
@@ -258,6 +274,8 @@ function newFileCursor() {
function getFiles(callBackFunction) {
if (FULL_LOG === true) { logger.write("[INFO] getFiles -> Entering function."); }
let i = 0;
let j = 0;
@@ -267,6 +285,8 @@ function newFileCursor() {
function getNextFile() {
if (FULL_LOG === true) { logger.write("[INFO] getFiles -> getNextFile -> Entering function."); }
let targetDate = new Date(cursorDate);
targetDate.setUTCDate(targetDate.getUTCDate() + j);
@@ -293,7 +313,7 @@ function newFileCursor() {
} else {
if (fileCursor.files.get(dateString) === undefined) { // We dont reload files we already have.
if (thisObject.files.get(dateString) === undefined) { // We dont reload files we already have.
fileCloud.getFile(devTeam, bot, thisSet, exchange, market, periodName, targetDate, undefined, onFileReceived);
@@ -306,9 +326,42 @@ function newFileCursor() {
}
function onFileReceived(file) {
function onFileReceived(err, file) {
fileCursor.files.set(dateString, file);
if (FULL_LOG === true) { logger.write("[INFO] getFiles -> onFileReceived -> Entering function."); }
switch (err.result) {
case GLOBAL.DEFAULT_OK_RESPONSE.result: {
if (FULL_LOG === true) { logger.write("[INFO] getFiles -> onFileReceived -> Received OK Response."); }
break;
}
case GLOBAL.DEFAULT_FAIL_RESPONSE.result: {
if (FULL_LOG === true) { logger.write("[INFO] getFiles -> onFileReceived -> Received FAIL Response."); }
callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE);
return;
}
case GLOBAL.CUSTOM_FAIL_RESPONSE.result: {
if (FULL_LOG === true) { logger.write("[INFO] getFiles -> onFileReceived -> Received CUSTOM FAIL Response."); }
if (FULL_LOG === true) { logger.write("[INFO] getFiles -> onFileReceived -> err.message = " + err.message); }
callBackFunction(err);
return;
}
default: {
if (FULL_LOG === true) { logger.write("[INFO] initialize -> onFileReceived -> Received Unexpected Response."); }
callBackFunction(err);
return;
}
}
thisObject.files.set(dateString, file);
controlLoop();
@@ -317,9 +370,11 @@ function newFileCursor() {
function controlLoop() {
if (FULL_LOG === true) { logger.write("[INFO] getFiles -> controlLoop -> Entering function."); }
if (callBackFunction !== undefined) {
callBackFunction();
callBackFunction(GLOBAL.DEFAULT_OK_RESPONSE);
}
@@ -336,18 +391,20 @@ function newFileCursor() {
function collectGarbage() {
if (FULL_LOG === true) { logger.write("[INFO] collectGarbage -> Entering function."); }
date = removeTime(cursorDate);
let minDate = date.valueOf() - maxCursorSize * ONE_DAY_IN_MILISECONDS / 2;
let maxDate = date.valueOf() + maxCursorSize * ONE_DAY_IN_MILISECONDS / 2;
for (let key of fileCursor.files.keys()) {
for (let key of thisObject.files.keys()) {
let keyDate = new Date(key);
if (keyDate.valueOf() < minDate || keyDate.valueOf() > maxDate) {
fileCursor.files.delete(key);
thisObject.files.delete(key);
}
@@ -357,6 +414,8 @@ function newFileCursor() {
function getExpectedFiles() {
if (FULL_LOG === true) { logger.write("[INFO] getExpectedFiles -> Entering function."); }
return minCursorSize;
}
+55 -14
View File
@@ -1,9 +1,12 @@
function newFileCursorCache() {
const CONSOLE_LOG = false;
const MODULE_NAME = "File Cursor Cache";
const FULL_LOG = true;
const logger = newDebugLog();
logger.fileName = MODULE_NAME;
let fileCursorCache = {
let thisObject = {
getFileCursor: getFileCursor,
setDatetime: setDatetime,
setTimePeriod: setTimePeriod,
@@ -22,10 +25,13 @@ function newFileCursorCache() {
let callBackWhenFileReceived;
return fileCursorCache;
return thisObject;
function initialize(pDevTeam, pBot, pProduct, pSet, pExchange, pMarket, pDatetime, pTimePeriod, callBackFunction) {
if (FULL_LOG === true) { logger.write("[INFO] initialize -> Entering function."); }
if (FULL_LOG === true) { logger.write("[INFO] initialize -> key = " + pDevTeam.codeName + "-" + pBot.codeName + "-" + pProduct.codeName); }
callBackWhenFileReceived = callBackFunction;
let exchange = ecosystem.getExchange(pProduct, pExchange);
@@ -59,23 +65,58 @@ function newFileCursorCache() {
}
}
function onFileReceived() {
function onFileReceived(err) {
console.log("FileCursorCache -> onFileReceived")
if (FULL_LOG === true) { logger.write("[INFO] onFileReceived -> Entering function."); }
switch (err.result) {
case GLOBAL.DEFAULT_OK_RESPONSE.result: {
if (FULL_LOG === true) { logger.write("[INFO] onFileReceived -> Received OK Response."); }
break;
}
case GLOBAL.DEFAULT_FAIL_RESPONSE.result: {
if (FULL_LOG === true) { logger.write("[INFO] onFileReceived -> Received FAIL Response."); }
callBackWhenFileReceived(GLOBAL.DEFAULT_FAIL_RESPONSE);
return;
}
case GLOBAL.CUSTOM_FAIL_RESPONSE.result: {
if (FULL_LOG === true) { logger.write("[INFO] onFileReceived -> Received CUSTOM FAIL Response."); }
if (FULL_LOG === true) { logger.write("[INFO] onFileReceived -> err.message = " + err.message); }
callBackWhenFileReceived(err);
return;
}
default: {
if (FULL_LOG === true) { logger.write("[INFO] onFileReceived -> Received Unexpected Response."); }
callBackWhenFileReceived(err);
return;
}
}
filesLoaded++;
callBackWhenFileReceived(); // Note that the call back is called for every file loaded at each cursor.
callBackWhenFileReceived(GLOBAL.DEFAULT_OK_RESPONSE); // Note that the call back is called for every file loaded at each cursor.
}
function getFileCursor(pPeriod) {
if (FULL_LOG === true) { logger.write("[INFO] getFileCursor -> Entering function."); }
return fileCursors.get(pPeriod);
}
function setDatetime(pDatetime) {
if (FULL_LOG === true) { logger.write("[INFO] setDatetime -> Entering function."); }
filesLoaded = 0;
expectedFiles = 0;
@@ -88,15 +129,14 @@ function newFileCursorCache() {
}
if (CONSOLE_LOG === true) {
if (FULL_LOG === true) { logger.write("[INFO] setDatetime -> expectedFiles = " + expectedFiles); }
console.log("FileCursorCache -> setDatetime -> expectedFiles = " + expectedFiles);
}
}
function setTimePeriod(pTimePeriod, pDatetime) {
if (FULL_LOG === true) { logger.write("[INFO] setTimePeriod -> Entering function."); }
filesLoaded = 0;
expectedFiles = 0;
@@ -109,21 +149,22 @@ function newFileCursorCache() {
}
if (CONSOLE_LOG === true) {
if (FULL_LOG === true) { logger.write("[INFO] setTimePeriod -> expectedFiles = " + expectedFiles); }
console.log("FileCursorCache -> setTimePeriod -> expectedFiles = " + expectedFiles);
}
}
function getExpectedFiles() {
if (FULL_LOG === true) { logger.write("[INFO] getExpectedFiles -> Entering function."); }
return expectedFiles;
}
function getFilesLoaded() {
if (FULL_LOG === true) { logger.write("[INFO] getFilesLoaded -> Entering function."); }
return filesLoaded;
}
+96 -3
View File
@@ -98,11 +98,42 @@ function newProductStorage(pName) {
break;
}
function onCacheFileReady() {
function onCacheFileReady(err) {
if (FULL_LOG === true) { logger.write("[INFO] initialize -> onCacheFileReady -> Entering function."); }
if (FULL_LOG === true) { logger.write("[INFO] initialize -> onCacheFileReady -> key = " + pDevTeam.codeName + "-" + pBot.codeName + "-" + pProduct.codeName); }
switch (err.result) {
case GLOBAL.DEFAULT_OK_RESPONSE.result: {
if (FULL_LOG === true) { logger.write("[INFO] initialize -> onCacheFileReady -> Received OK Response."); }
break;
}
case GLOBAL.DEFAULT_FAIL_RESPONSE.result: {
if (FULL_LOG === true) { logger.write("[INFO] initialize -> onCacheFileReady -> Received FAIL Response."); }
callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE);
return;
}
case GLOBAL.CUSTOM_FAIL_RESPONSE.result: {
if (FULL_LOG === true) { logger.write("[INFO] initialize -> onCacheFileReady -> Received CUSTOM FAIL Response."); }
if (FULL_LOG === true) { logger.write("[INFO] initialize -> onCacheFileReady -> err.message = " + err.message); }
callBackFunction(err);
return;
}
default: {
if (FULL_LOG === true) { logger.write("[INFO] initialize -> onCacheFileReady -> Received Unexpected Response."); }
callBackFunction(err);
return;
}
}
let event = {
totalValue: thisObject.fileCache.getExpectedFiles(),
currentValue: thisObject.fileCache.getFilesLoaded()
@@ -118,11 +149,42 @@ function newProductStorage(pName) {
}
}
function onFileCursorReady() {
function onFileCursorReady(err) {
if (FULL_LOG === true) { logger.write("[INFO] initialize -> onFileCursorReady -> Entering function."); }
if (FULL_LOG === true) { logger.write("[INFO] initialize -> onFileCursorReady -> key = " + pDevTeam.codeName + "-" + pBot.codeName + "-" + pProduct.codeName); }
switch (err.result) {
case GLOBAL.DEFAULT_OK_RESPONSE.result: {
if (FULL_LOG === true) { logger.write("[INFO] initialize -> onFileCursorReady -> Received OK Response."); }
break;
}
case GLOBAL.DEFAULT_FAIL_RESPONSE.result: {
if (FULL_LOG === true) { logger.write("[INFO] initialize -> onFileCursorReady -> Received FAIL Response."); }
callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE);
return;
}
case GLOBAL.CUSTOM_FAIL_RESPONSE.result: {
if (FULL_LOG === true) { logger.write("[INFO] initialize -> onFileCursorReady -> Received CUSTOM FAIL Response."); }
if (FULL_LOG === true) { logger.write("[INFO] initialize -> onFileCursorReady -> err.message = " + err.message); }
callBackFunction(err);
return;
}
default: {
if (FULL_LOG === true) { logger.write("[INFO] initialize -> onFileCursorReady -> Received Unexpected Response."); }
callBackFunction(err);
return;
}
}
let event = {
totalValue: thisObject.fileCursorCache.getExpectedFiles(),
currentValue: thisObject.fileCursorCache.getFilesLoaded()
@@ -138,11 +200,42 @@ function newProductStorage(pName) {
}
}
function onSingleFileReady() {
function onSingleFileReady(err) {
if (FULL_LOG === true) { logger.write("[INFO] initialize -> onSingleFileReady -> Entering function."); }
if (FULL_LOG === true) { logger.write("[INFO] initialize -> onSingleFileReady -> key = " + pDevTeam.codeName + "-" + pBot.codeName + "-" + pProduct.codeName); }
switch (err.result) {
case GLOBAL.DEFAULT_OK_RESPONSE.result: {
if (FULL_LOG === true) { logger.write("[INFO] initialize -> onSingleFileReady -> Received OK Response."); }
break;
}
case GLOBAL.DEFAULT_FAIL_RESPONSE.result: {
if (FULL_LOG === true) { logger.write("[INFO] initialize -> onSingleFileReady -> Received FAIL Response."); }
callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE);
return;
}
case GLOBAL.CUSTOM_FAIL_RESPONSE.result: {
if (FULL_LOG === true) { logger.write("[INFO] initialize -> onSingleFileReady -> Received CUSTOM FAIL Response."); }
if (FULL_LOG === true) { logger.write("[INFO] initialize -> onSingleFileReady -> err.message = " + err.message); }
callBackFunction(err);
return;
}
default: {
if (FULL_LOG === true) { logger.write("[INFO] initialize -> onSingleFileReady -> Received Unexpected Response."); }
callBackFunction(err);
return;
}
}
let event = {
totalValue: 1,
currentValue: 1
-2
View File
@@ -624,8 +624,6 @@
function tooTiny() {
if (FULL_LOG === true) { logger.write("[INFO] tooTiny -> Entering function."); }
if (viewPort.zoomLevel < Math.trunc(-28.25 * 100) / 100) {
return true;
} else {
+1 -1
View File
@@ -6,7 +6,7 @@ if (CONSOLE_LOG === true) {
}
const DEBUG_MODE = true; // This forces the server to read Plotters from the local drive.
const DEBUG_MODE = false; // This forces the server to read Plotters from the local drive.
if (CONSOLE_LOG === true && DEBUG_MODE === true) {