summaryrefslogtreecommitdiff
path: root/src/mongo/db/pipeline/pipeline.h
diff options
context:
space:
mode:
authorWilliam Schultz <william.schultz@mongodb.com>2018-04-05 13:56:47 -0400
committerWilliam Schultz <william.schultz@mongodb.com>2018-04-05 13:59:27 -0400
commite88c6d85036607ddf86105234917b4adfffbd612 (patch)
tree43ff091111fec8836654b0ccc3dcaff6e3d2a518 /src/mongo/db/pipeline/pipeline.h
parentac6544a9194197b5ab10f563cf1a19dcdc42349c (diff)
downloadmongo-e88c6d85036607ddf86105234917b4adfffbd612.tar.gz
Revert "SERVER-33323 Use the IDL to serialize the ARM"
This reverts commit 7d09f278a2acf9791b36927d6af1d30347d60391.
Diffstat (limited to 'src/mongo/db/pipeline/pipeline.h')
-rw-r--r--src/mongo/db/pipeline/pipeline.h38
1 files changed, 12 insertions, 26 deletions
diff --git a/src/mongo/db/pipeline/pipeline.h b/src/mongo/db/pipeline/pipeline.h
index 04b5769792d..bcb7ee64521 100644
--- a/src/mongo/db/pipeline/pipeline.h
+++ b/src/mongo/db/pipeline/pipeline.h
@@ -39,8 +39,6 @@
#include "mongo/db/pipeline/value.h"
#include "mongo/db/query/explain_options.h"
#include "mongo/db/query/query_knobs.h"
-#include "mongo/executor/task_executor.h"
-#include "mongo/s/query/async_results_merger_params_gen.h"
#include "mongo/stdx/functional.h"
#include "mongo/util/intrusive_counter.h"
#include "mongo/util/timer.h"
@@ -270,34 +268,13 @@ public:
}
/**
- * Removes and returns the first stage of the pipeline. Returns nullptr if the pipeline is
- * empty.
- */
- boost::intrusive_ptr<DocumentSource> popFront();
-
- /**
- * Removes and returns the last stage of the pipeline. Returns nullptr if the pipeline is empty.
- */
- boost::intrusive_ptr<DocumentSource> popBack();
-
- /**
- * Adds the given stage to the end of the pipeline.
- */
- void pushBack(boost::intrusive_ptr<DocumentSource>);
-
- /**
- * Removes and returns the first stage of the pipeline if its name is 'targetStageName'.
- * Returns nullptr if there is no first stage with that name.
- */
- boost::intrusive_ptr<DocumentSource> popFrontWithName(StringData targetStageName);
-
- /**
* Removes and returns the first stage of the pipeline if its name is 'targetStageName' and the
* given 'predicate' function, if present, returns 'true' when called with a pointer to the
* stage. Returns nullptr if there is no first stage which meets these criteria.
*/
- boost::intrusive_ptr<DocumentSource> popFrontWithNameAndCriteria(
- StringData targetStageName, stdx::function<bool(const DocumentSource* const)> predicate);
+ boost::intrusive_ptr<DocumentSource> popFrontWithCriteria(
+ StringData targetStageName,
+ stdx::function<bool(const DocumentSource* const)> predicate = nullptr);
/**
* PipelineD is a "sister" class that has additional functionality for the Pipeline. It exists
@@ -309,6 +286,15 @@ public:
friend class PipelineD;
private:
+ class Optimizations {
+ public:
+ // This contains static functions that optimize pipelines in various ways.
+ // This is a class rather than a namespace so that it can be a friend of Pipeline.
+ // It is defined in pipeline_optimizations.h.
+ class Sharded;
+ };
+
+ friend class Optimizations::Sharded;
friend class PipelineDeleter;
/**