Browse Source

EAGLESIX-812 Add create to Geo and Cursor

Chris Sexton 11 years ago
parent
commit
c6b4ab4da1

+ 13 - 9
lib/pipeline/documentSources/CursorDocumentSource.js

@@ -30,6 +30,10 @@ var CursorDocumentSource = module.exports = CursorDocumentSource = function Curs
 
 klass.MaxDocumentsToReturnToClientAtOnce = 150; //DEVIATION: we are using documents instead of bytes
 
+klass.create = function create(ns, runner, expCtx) {
+	return new CursorDocumentSource(ns, runner, expCtx);
+};
+
 proto._currentBatch = [];
 proto._currentBatchIndex = 0;
 
@@ -80,7 +84,7 @@ proto.getNext = function getNext(callback) {
 	if (this.expCtx && this.expCtx.checkForInterrupt && this.expCtx.checkForInterrupt()){
 		return callback(new Error('Interrupted'));
 	}
-	
+
 	var self = this;
 	if (self._currentBatchIndex >= self._currentBatch.length) {
 		self._currentBatchIndex = 0;
@@ -89,7 +93,7 @@ proto.getNext = function getNext(callback) {
 			if (err) return callback(err);
 			if (self._currentBatch.length === 0)
 				return callback(null, null);
-			
+
 			return callback(null, self._currentBatch[self._currentBatchIndex++]);
 		});
 	}
@@ -126,10 +130,10 @@ proto.coalesce = function coalesce(nextSource) {
 /**
  * Record the query that was specified for the cursor this wraps, if
  * any.
- * 
+ *
  * This should be captured after any optimizations are applied to
  * the pipeline so that it reflects what is really used.
- * 
+ *
  * This gets used for explain output.
  *
  * @method	setQuery
@@ -142,10 +146,10 @@ proto.setQuery = function setQuery(query) {
 /**
  * Record the sort that was specified for the cursor this wraps, if
  * any.
- * 
+ *
  * This should be captured after any optimizations are applied to
  * the pipeline so that it reflects what is really used.
- * 
+ *
  * This gets used for explain output.
  *
  * @method	setSort
@@ -195,7 +199,7 @@ proto.serialize = function serialize(explain) {
 
 /**
  * returns -1 for no limit
- * 
+ *
  * @method getLimit
 **/
 proto.getLimit = function getLimit() {
@@ -204,7 +208,7 @@ proto.getLimit = function getLimit() {
 
 /**
  * Load a batch of documents from the Runner into the internal array
- * 
+ *
  * @method loadBatch
 **/
 proto.loadBatch = function loadBatch(callback) {
@@ -212,7 +216,7 @@ proto.loadBatch = function loadBatch(callback) {
 		this.dispose();
 		return callback;
 	}
-	
+
 	this._runner.restoreState();
 
 	var self = this,

+ 4 - 0
lib/pipeline/documentSources/GeoNearDocumentSource.js

@@ -25,6 +25,10 @@ var GeoNearDocumentSource = module.exports = function GeoNearDocumentSource(ctx)
 
 klass.geoNearName = "$geoNear";
 
+klass.create = function create(expCtx) {
+	return new GeoNearDocumentSource(expCtx);
+};
+
 proto.getSourceName = function() {
 	return klass.geoNearName;
 };