diff options
author | Mathias Stearn <mathias@10gen.com> | 2012-06-21 18:10:49 -0400 |
---|---|---|
committer | Mathias Stearn <mathias@10gen.com> | 2012-06-29 13:41:23 -0400 |
commit | 22ec5a0e0fc388b2226d51b41b1657367f5f1438 (patch) | |
tree | c224622799baf97fb4d417b3e7dead14c27e5912 /src/mongo/db/pipeline/accumulator_push.cpp | |
parent | eb7e375dd3c6331f0cc30a42fb6cb86d557b68ac (diff) | |
download | mongo-22ec5a0e0fc388b2226d51b41b1657367f5f1438.tar.gz |
Convert to unix line endings
Sorry about the huge diff, but it is just line-ending changes so you can skip it
Diffstat (limited to 'src/mongo/db/pipeline/accumulator_push.cpp')
-rwxr-xr-x | src/mongo/db/pipeline/accumulator_push.cpp | 146 |
1 files changed, 73 insertions, 73 deletions
diff --git a/src/mongo/db/pipeline/accumulator_push.cpp b/src/mongo/db/pipeline/accumulator_push.cpp index 932ca6361cd..b097894cb4e 100755 --- a/src/mongo/db/pipeline/accumulator_push.cpp +++ b/src/mongo/db/pipeline/accumulator_push.cpp @@ -1,73 +1,73 @@ -/**
- * Copyright (c) 2011 10gen Inc.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "pch.h"
-#include "accumulator.h"
-
-#include "db/pipeline/expression_context.h"
-#include "db/pipeline/value.h"
-
-namespace mongo {
- intrusive_ptr<const Value> AccumulatorPush::evaluate(
- const intrusive_ptr<Document> &pDocument) const {
- verify(vpOperand.size() == 1);
- intrusive_ptr<const Value> prhs(vpOperand[0]->evaluate(pDocument));
-
- if (prhs->getType() == Undefined)
- ; /* nothing to add to the array */
- else if (!pCtx->getInRouter())
- vpValue.push_back(prhs);
- else {
- /*
- If we're in the router, we need to take apart the arrays we
- receive and put their elements into the array we are collecting.
- If we didn't, then we'd get an array of arrays, with one array
- from each shard that responds.
- */
- verify(prhs->getType() == Array);
-
- intrusive_ptr<ValueIterator> pvi(prhs->getArray());
- while(pvi->more()) {
- intrusive_ptr<const Value> pElement(pvi->next());
- vpValue.push_back(pElement);
- }
- }
-
- return Value::getNull();
- }
-
- intrusive_ptr<const Value> AccumulatorPush::getValue() const {
- return Value::createArray(vpValue);
- }
-
- AccumulatorPush::AccumulatorPush(
- const intrusive_ptr<ExpressionContext> &pTheCtx):
- Accumulator(),
- vpValue(),
- pCtx(pTheCtx) {
- }
-
- intrusive_ptr<Accumulator> AccumulatorPush::create(
- const intrusive_ptr<ExpressionContext> &pCtx) {
- intrusive_ptr<AccumulatorPush> pAccumulator(
- new AccumulatorPush(pCtx));
- return pAccumulator;
- }
-
- const char *AccumulatorPush::getOpName() const {
- return "$push";
- }
-}
+/** + * Copyright (c) 2011 10gen Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "pch.h" +#include "accumulator.h" + +#include "db/pipeline/expression_context.h" +#include "db/pipeline/value.h" + +namespace mongo { + intrusive_ptr<const Value> AccumulatorPush::evaluate( + const intrusive_ptr<Document> &pDocument) const { + verify(vpOperand.size() == 1); + intrusive_ptr<const Value> prhs(vpOperand[0]->evaluate(pDocument)); + + if (prhs->getType() == Undefined) + ; /* nothing to add to the array */ + else if (!pCtx->getInRouter()) + vpValue.push_back(prhs); + else { + /* + If we're in the router, we need to take apart the arrays we + receive and put their elements into the array we are collecting. + If we didn't, then we'd get an array of arrays, with one array + from each shard that responds. + */ + verify(prhs->getType() == Array); + + intrusive_ptr<ValueIterator> pvi(prhs->getArray()); + while(pvi->more()) { + intrusive_ptr<const Value> pElement(pvi->next()); + vpValue.push_back(pElement); + } + } + + return Value::getNull(); + } + + intrusive_ptr<const Value> AccumulatorPush::getValue() const { + return Value::createArray(vpValue); + } + + AccumulatorPush::AccumulatorPush( + const intrusive_ptr<ExpressionContext> &pTheCtx): + Accumulator(), + vpValue(), + pCtx(pTheCtx) { + } + + intrusive_ptr<Accumulator> AccumulatorPush::create( + const intrusive_ptr<ExpressionContext> &pCtx) { + intrusive_ptr<AccumulatorPush> pAccumulator( + new AccumulatorPush(pCtx)); + return pAccumulator; + } + + const char *AccumulatorPush::getOpName() const { + return "$push"; + } +} |