diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2017-06-07 16:25:35 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2017-06-07 16:25:35 +0200 |
commit | 8a02cb588dfe81dff8b53c55020db7002de86cc6 (patch) | |
tree | a762bfb787c5a88e98d7917b09ace73f1c06507d /document | |
parent | bf1304b83127e145024bdd9e57be472909053959 (diff) |
Use 'enum class ModificationStatus', use constexpr enumRange.
Diffstat (limited to 'document')
10 files changed, 31 insertions, 40 deletions
diff --git a/document/src/tests/documenttestcase.cpp b/document/src/tests/documenttestcase.cpp index a9e7b1897b2..1aa6f5fcaa2 100644 --- a/document/src/tests/documenttestcase.cpp +++ b/document/src/tests/documenttestcase.cpp @@ -277,10 +277,10 @@ public: StringFieldValue* sfv = dynamic_cast<StringFieldValue*>(&fv); if (sfv != NULL) { *sfv = std::string("newvalue"); - return MODIFIED; + return ModificationStatus::MODIFIED; } - return NOT_MODIFIED; + return ModificationStatus::NOT_MODIFIED; }; bool onComplex(const Content&) override { diff --git a/document/src/tests/fieldpathupdatetestcase.cpp b/document/src/tests/fieldpathupdatetestcase.cpp index 4311e1059c2..2cf29e4cc53 100644 --- a/document/src/tests/fieldpathupdatetestcase.cpp +++ b/document/src/tests/fieldpathupdatetestcase.cpp @@ -275,7 +275,7 @@ struct TestFieldPathUpdate : FieldPathUpdate _str += ';'; } _str += ss.str(); - return NOT_MODIFIED; + return ModificationStatus::NOT_MODIFIED; } bool onComplex(const Content&) override { return false; } diff --git a/document/src/vespa/document/fieldvalue/arrayfieldvalue.cpp b/document/src/vespa/document/fieldvalue/arrayfieldvalue.cpp index 01df81db69b..b5b031d31da 100644 --- a/document/src/vespa/document/fieldvalue/arrayfieldvalue.cpp +++ b/document/src/vespa/document/fieldvalue/arrayfieldvalue.cpp @@ -265,9 +265,9 @@ ArrayFieldValue::onIterateNested(PathRange nested, IteratorHandler & handler) co } return iterateSubset(0, static_cast<int>(_array->size()) - 1, "", nested, handler); } else { - fieldvalue::ModificationStatus status = handler.modify(const_cast<ArrayFieldValue&>(*this)); + ModificationStatus status = handler.modify(const_cast<ArrayFieldValue&>(*this)); - if (status == fieldvalue::REMOVED) { + if (status == ModificationStatus::REMOVED) { return status; } diff --git a/document/src/vespa/document/fieldvalue/iteratorhandler.h b/document/src/vespa/document/fieldvalue/iteratorhandler.h index 8dc98b2107d..96290c1ec56 100644 --- a/document/src/vespa/document/fieldvalue/iteratorhandler.h +++ b/document/src/vespa/document/fieldvalue/iteratorhandler.h @@ -87,7 +87,7 @@ private: virtual void onCollectionEnd(const Content &fv) { (void) fv; } virtual void onStructStart(const Content &fv) { (void) fv; } virtual void onStructEnd(const Content &fv) { (void) fv; } - virtual ModificationStatus doModify(FieldValue &) { return NOT_MODIFIED; }; + virtual ModificationStatus doModify(FieldValue &) { return ModificationStatus::NOT_MODIFIED; }; // Scratchpad to store pass on weight. int getWeight() const { return _weight; } diff --git a/document/src/vespa/document/fieldvalue/modificationstatus.h b/document/src/vespa/document/fieldvalue/modificationstatus.h index 344a89338bb..9ea0c2fa3ae 100644 --- a/document/src/vespa/document/fieldvalue/modificationstatus.h +++ b/document/src/vespa/document/fieldvalue/modificationstatus.h @@ -4,7 +4,7 @@ namespace document::fieldvalue { -enum ModificationStatus { +enum class ModificationStatus { MODIFIED, REMOVED, NOT_MODIFIED diff --git a/document/src/vespa/document/fieldvalue/structuredfieldvalue.cpp b/document/src/vespa/document/fieldvalue/structuredfieldvalue.cpp index beef80ed2b0..8e30cba2052 100644 --- a/document/src/vespa/document/fieldvalue/structuredfieldvalue.cpp +++ b/document/src/vespa/document/fieldvalue/structuredfieldvalue.cpp @@ -109,7 +109,6 @@ StructuredFieldValue::onIterateNested(PathRange nested, IteratorHandler & handle const_cast<StructuredFieldValue&>(*this).setFieldValue(fpe.getFieldRef(), fpe.getFieldValueToSet()); return ModificationStatus::MODIFIED; } else { - LOG(spam, "field exists, status = %u", status); return status; } } else if (handler.createMissingPath()) { @@ -122,7 +121,7 @@ StructuredFieldValue::onIterateNested(PathRange nested, IteratorHandler & handle } } LOG(spam, "field did not exist, returning NOT_MODIFIED"); - return ModificationStatus ::NOT_MODIFIED; + return ModificationStatus::NOT_MODIFIED; } else { throw IllegalArgumentException("Illegal field path for struct value"); } diff --git a/document/src/vespa/document/select/result.h b/document/src/vespa/document/select/result.h index ace3f5f717e..fbaa8e35eb6 100644 --- a/document/src/vespa/document/select/result.h +++ b/document/src/vespa/document/select/result.h @@ -39,7 +39,7 @@ public: const Result& operator!() const; static const Result& get(bool b) { return (b ? True : False); } - static uint32_t enumRange() { return 3u; } + static constexpr uint32_t enumRange = 3u; uint32_t toEnum() const { if (this == &Result::Invalid) diff --git a/document/src/vespa/document/select/resultset.cpp b/document/src/vespa/document/select/resultset.cpp index f7fd3e95fbd..ddde4b366a3 100644 --- a/document/src/vespa/document/select/resultset.cpp +++ b/document/src/vespa/document/select/resultset.cpp @@ -2,9 +2,7 @@ #include "resultset.h" -namespace document { - -namespace select { +namespace document::select { std::vector<ResultSet> ResultSet::_ands; std::vector<ResultSet> ResultSet::_ors; @@ -15,9 +13,9 @@ std::vector<ResultSet> ResultSet::_nots; * inputs. */ void -ResultSet::preCalc(void) +ResultSet::preCalc() { - uint32_t erange = Result::enumRange(); + uint32_t erange = Result::enumRange; uint32_t range = illegalMask(); _ands.resize(range * range); _ors.resize(range * range); @@ -53,13 +51,12 @@ ResultSet::preCalc(void) } -namespace -{ +namespace { class Precalc { public: - Precalc(void) + Precalc() { ResultSet::preCalc(); } @@ -70,5 +67,4 @@ Precalc precalc; } -} // select -} // document +} diff --git a/document/src/vespa/document/select/resultset.h b/document/src/vespa/document/select/resultset.h index b3e4d8c4066..125582faba3 100644 --- a/document/src/vespa/document/select/resultset.h +++ b/document/src/vespa/document/select/resultset.h @@ -1,12 +1,10 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <string> -#include <vector> #include "result.h" +#include <vector> -namespace document { -namespace select { +namespace document::select { /* * Contains possible values of operations returning a Result. @@ -29,7 +27,7 @@ public: } static uint32_t illegalMask() { - return (1u << Result::enumRange()); + return (1u << Result::enumRange); } void add(const Result &rhs) { @@ -54,26 +52,24 @@ public: // calculcate set of results emitted by document selection and operator. ResultSet calcAnd(const ResultSet &rhs) const { - return _ands[(_val << Result::enumRange()) | rhs._val]; + return _ands[(_val << Result::enumRange) | rhs._val]; } // calculcate set of results emitted by document selection or operator. ResultSet calcOr(const ResultSet &rhs) const { - return _ors[(_val << Result::enumRange()) | rhs._val]; + return _ors[(_val << Result::enumRange) | rhs._val]; } // calculcate set of results emitted by document selection not operator. - ResultSet calcNot(void) const { return _nots[_val]; } + ResultSet calcNot() const { return _nots[_val]; } - void clear(void) { _val = 0; } - void fill(void) { _val = illegalMask() - 1; } - static void preCalc(void); + void clear() { _val = 0; } + void fill() { _val = illegalMask() - 1; } + static void preCalc(); private: // precalc helper methods void pcnext(void) { ++_val; } bool pcvalid(void) const { return _val < illegalMask(); } }; -} // select -} // document - +} diff --git a/document/src/vespa/document/update/assignfieldpathupdate.cpp b/document/src/vespa/document/update/assignfieldpathupdate.cpp index 3d67a589ea5..7ab0a43dbe1 100644 --- a/document/src/vespa/document/update/assignfieldpathupdate.cpp +++ b/document/src/vespa/document/update/assignfieldpathupdate.cpp @@ -134,10 +134,10 @@ AssignValueIteratorHandler::doModify(FieldValue& fv) { && _newValue.inherits(NumericFieldValueBase::classId) && static_cast<const NumericFieldValueBase&>(_newValue).getAsLong() == 0) { - return REMOVED; + return ModificationStatus::REMOVED; } fv.assign(_newValue); - return MODIFIED; + return ModificationStatus::MODIFIED; } ModificationStatus @@ -161,16 +161,16 @@ AssignExpressionIteratorHandler::doModify(FieldValue& fv) { try { double res = _calc.evaluate(_doc, std::move(varHolder)); if (_removeIfZero && static_cast<uint64_t>(res) == 0) { - return REMOVED; + return ModificationStatus::REMOVED; } else { fv.assign(DoubleFieldValue(res)); } } catch (const vespalib::IllegalArgumentException&) { // Divide by zero does not modify the document field - return NOT_MODIFIED; + return ModificationStatus::NOT_MODIFIED; } catch (const boost::bad_numeric_cast&) { // Underflow/overflow does not modify - return NOT_MODIFIED; + return ModificationStatus::NOT_MODIFIED; } } else { throw vespalib::IllegalArgumentException( @@ -178,7 +178,7 @@ AssignExpressionIteratorHandler::doModify(FieldValue& fv) { fv.toString().c_str(), fv.getDataType()->toString().c_str()), VESPA_STRLOC); } - return MODIFIED; + return ModificationStatus::MODIFIED; } } |