Comparing version 0.9.9-3 to 0.9.9-4
@@ -261,78 +261,88 @@ var Connection = require('./connection').Connection, | ||
var startDate = new Date().getTime(); | ||
// Attempt to locate a callback instance | ||
// Callback instance | ||
var callbackInfo = null; | ||
var dbInstanceObject = null; | ||
// Locate a callback instance and remove any additional ones | ||
for(var i = 0; i < server.dbInstances.length; i++) { | ||
var dbInstanceObject = server.dbInstances[i]; | ||
// Locate the callback info | ||
var callbackInfo = dbInstanceObject._findHandler(mongoReply.responseTo.toString()); | ||
// Only execute callback if we have a caller | ||
if(callbackInfo.callback && Array.isArray(callbackInfo.info.chained)) { | ||
// Check if callback has already been fired (missing chain command) | ||
var chained = callbackInfo.info.chained; | ||
var numberOfFoundCallbacks = 0; | ||
var dbInstanceObjectTemp = server.dbInstances[i]; | ||
var hasHandler = dbInstanceObjectTemp._hasHandler(mongoReply.responseTo.toString()); | ||
// Assign the first one we find and remove any duplicate ones | ||
if(hasHandler && callbackInfo == null) { | ||
callbackInfo = dbInstanceObjectTemp._findHandler(mongoReply.responseTo.toString()); | ||
dbInstanceObject = dbInstanceObjectTemp; | ||
} else if(hasHandler) { | ||
dbInstanceObjectTemp._removeHandler(mongoReply.responseTo.toString()); | ||
} | ||
} | ||
// Only execute callback if we have a caller | ||
if(callbackInfo.callback && Array.isArray(callbackInfo.info.chained)) { | ||
// Check if callback has already been fired (missing chain command) | ||
var chained = callbackInfo.info.chained; | ||
var numberOfFoundCallbacks = 0; | ||
for(var i = 0; i < chained.length; i++) { | ||
if(dbInstanceObject._hasHandler(chained[i])) numberOfFoundCallbacks++; | ||
} | ||
// If we have already fired then clean up rest of chain and move on | ||
if(numberOfFoundCallbacks != chained.length) { | ||
for(var i = 0; i < chained.length; i++) { | ||
if(dbInstanceObject._hasHandler(chained[i])) numberOfFoundCallbacks++; | ||
dbInstanceObject._removeHandler(chained[i]); | ||
} | ||
// If we have already fired then clean up rest of chain and move on | ||
if(numberOfFoundCallbacks != chained.length) { | ||
for(var i = 0; i < chained.length; i++) { | ||
dbInstanceObject._removeHandler(chained[i]); | ||
// Just return from function | ||
return; | ||
} | ||
// Parse the body | ||
mongoReply.parseBody(message, connectionPool.bson, callbackInfo.info.raw, function(err) { | ||
var callbackInfo = dbInstanceObject._findHandler(mongoReply.responseTo.toString()); | ||
// If we have an error let's execute the callback and clean up all other | ||
// chained commands | ||
var firstResult = mongoReply && mongoReply.documents; | ||
// Check for an error, if we have one let's trigger the callback and clean up | ||
// The chained callbacks | ||
if(firstResult[0].err != null || firstResult[0].errmsg != null) { | ||
// Trigger the callback for the error | ||
dbInstanceObject._callHandler(mongoReply.responseTo, mongoReply, null); | ||
} else { | ||
var chainedIds = callbackInfo.info.chained; | ||
if(chainedIds.length > 0 && chainedIds[chainedIds.length - 1] == mongoReply.responseTo) { | ||
// Cleanup all other chained calls | ||
chainedIds.pop(); | ||
// Remove listeners | ||
for(var i = 0; i < chainedIds.length; i++) dbInstanceObject._removeHandler(chainedIds[i]); | ||
// Call the handler | ||
dbInstanceObject._callHandler(mongoReply.responseTo, callbackInfo.info.results.shift(), null); | ||
} else{ | ||
// Add the results to all the results | ||
for(var i = 0; i < chainedIds.length; i++) { | ||
var handler = dbInstanceObject._findHandler(chainedIds[i]); | ||
// Check if we have an object, if it's the case take the current object commands and | ||
// and add this one | ||
if(handler.info != null) { | ||
handler.info.results = Array.isArray(callbackInfo.info.results) ? callbackInfo.info.results : []; | ||
handler.info.results.push(mongoReply); | ||
} | ||
} | ||
} | ||
// Just return from function | ||
return; | ||
} | ||
// Parse the body | ||
mongoReply.parseBody(message, connectionPool.bson, callbackInfo.info.raw, function(err) { | ||
var callbackInfo = dbInstanceObject._findHandler(mongoReply.responseTo.toString()); | ||
// If we have an error let's execute the callback and clean up all other | ||
// chained commands | ||
var firstResult = mongoReply && mongoReply.documents; | ||
// Check for an error, if we have one let's trigger the callback and clean up | ||
// The chained callbacks | ||
if(firstResult[0].err != null || firstResult[0].errmsg != null) { | ||
// Trigger the callback for the error | ||
dbInstanceObject._callHandler(mongoReply.responseTo, mongoReply, null); | ||
} else { | ||
var chainedIds = callbackInfo.info.chained; | ||
if(chainedIds.length > 0 && chainedIds[chainedIds.length - 1] == mongoReply.responseTo) { | ||
// Cleanup all other chained calls | ||
chainedIds.pop(); | ||
// Remove listeners | ||
for(var i = 0; i < chainedIds.length; i++) dbInstanceObject._removeHandler(chainedIds[i]); | ||
// Call the handler | ||
dbInstanceObject._callHandler(mongoReply.responseTo, callbackInfo.info.results.shift(), null); | ||
} else{ | ||
// Add the results to all the results | ||
for(var i = 0; i < chainedIds.length; i++) { | ||
var handler = dbInstanceObject._findHandler(chainedIds[i]); | ||
// Check if we have an object, if it's the case take the current object commands and | ||
// and add this one | ||
if(handler.info != null) { | ||
handler.info.results = Array.isArray(callbackInfo.info.results) ? callbackInfo.info.results : []; | ||
handler.info.results.push(mongoReply); | ||
} | ||
} | ||
} | ||
} | ||
}); | ||
} else if(callbackInfo.callback) { | ||
// Parse the body | ||
mongoReply.parseBody(message, connectionPool.bson, callbackInfo.info.raw, function(err) { | ||
// Let's record the stats info if it's enabled | ||
if(server.recordQueryStats == true && server._state['runtimeStats'] != null | ||
&& server._state.runtimeStats['queryStats'] instanceof RunningStats) { | ||
// Add data point to the running statistics object | ||
server._state.runtimeStats.queryStats.push(new Date().getTime() - callbackInfo.info.start); | ||
} | ||
// Trigger the callback | ||
dbInstanceObject._callHandler(mongoReply.responseTo, mongoReply, null); | ||
}); | ||
} | ||
} | ||
}); | ||
} else if(callbackInfo.callback) { | ||
// Parse the body | ||
mongoReply.parseBody(message, connectionPool.bson, callbackInfo.info.raw, function(err) { | ||
// Let's record the stats info if it's enabled | ||
if(server.recordQueryStats == true && server._state['runtimeStats'] != null | ||
&& server._state.runtimeStats['queryStats'] instanceof RunningStats) { | ||
// Add data point to the running statistics object | ||
server._state.runtimeStats.queryStats.push(new Date().getTime() - callbackInfo.info.start); | ||
} | ||
// Trigger the callback | ||
dbInstanceObject._callHandler(mongoReply.responseTo, mongoReply, null); | ||
}); | ||
} | ||
} | ||
@@ -339,0 +349,0 @@ } catch (err) { |
@@ -275,3 +275,3 @@ /** | ||
server.dbInstances.push(newDbInstance); | ||
} | ||
} | ||
// Return new db object | ||
@@ -278,0 +278,0 @@ return newDbInstance; |
{ "name" : "mongodb" | ||
, "description" : "A node.js driver for MongoDB" | ||
, "keywords" : ["mongodb", "mongo", "driver", "db"] | ||
, "version" : "0.9.9-3" | ||
, "version" : "0.9.9-4" | ||
, "author" : "Christian Amor Kvalheim <christkv@gmail.com>" | ||
@@ -6,0 +6,0 @@ , "contributors" : [ "Aaron Heckmann", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No README
QualityPackage does not have a README. This may indicate a failed publish or a low quality package.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
13190
627224
54
1
0