diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2016-12-20 14:41:39 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2016-12-20 15:50:29 +0100 |
commit | 51bc810507f2067ebd2646274d3cda5cb583a620 (patch) | |
tree | cbff1f6464262c2e6b3a622db93d044bab69a532 /searchsummary | |
parent | 530e52e17a85836d58cac58c89b71c189c6f9873 (diff) |
Further decouple some hpp files, config and the attributevector.
Diffstat (limited to 'searchsummary')
4 files changed, 43 insertions, 86 deletions
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/geoposdfw.cpp b/searchsummary/src/vespa/searchsummary/docsummary/geoposdfw.cpp index efc6af32396..b1c68c4ffff 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/geoposdfw.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/geoposdfw.cpp @@ -1,11 +1,11 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include "geoposdfw.h" -#include <vespa/searchlib/attribute/iattributemanager.h> #include <vespa/searchlib/common/documentlocations.h> #include <vespa/searchlib/common/location.h> #include <vespa/vespalib/util/jsonwriter.h> #include <vespa/vespalib/data/slime/cursor.h> +#include <vespa/vespalib/stllike/asciistream.h> #include <vespa/log/log.h> LOG_SETUP(".searchlib.docsummary.geoposdfw"); @@ -47,10 +47,8 @@ void fmtZcurve(int64_t zval, vespalib::JSONWriter json) json.endObject(); } -} // namespace <unnamed> - vespalib::asciistream -GeoPositionDFW::formatField(const IAttributeVector & attribute, uint32_t docid) +formatField(const IAttributeVector & attribute, uint32_t docid) { vespalib::asciistream target; vespalib::JSONWriter json(target); @@ -93,12 +91,11 @@ GeoPositionDFW::formatField(const IAttributeVector & attribute, uint32_t docid) return target; } +} + void -GeoPositionDFW::insertField(uint32_t docid, - GeneralResult *, - GetDocsumsState * dsState, - ResType, - vespalib::slime::Inserter &target) +GeoPositionDFW::insertField(uint32_t docid, GeneralResult *, GetDocsumsState * dsState, + ResType, vespalib::slime::Inserter &target) { using vespalib::slime::Cursor; using vespalib::slime::ObjectInserter; diff --git a/searchsummary/src/vespa/searchsummary/docsummary/geoposdfw.h b/searchsummary/src/vespa/searchsummary/docsummary/geoposdfw.h index 91d834d45a7..a36045f0268 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/geoposdfw.h +++ b/searchsummary/src/vespa/searchsummary/docsummary/geoposdfw.h @@ -12,23 +12,14 @@ namespace docsummary { **/ class GeoPositionDFW : public AttrDFW { -private: - vespalib::asciistream formatField(const attribute::IAttributeVector & v, uint32_t docid); public: typedef std::unique_ptr<GeoPositionDFW> UP; GeoPositionDFW(const vespalib::string & attrName); - virtual uint32_t WriteField(uint32_t docid, - GeneralResult * gres, - GetDocsumsState * state, - ResType type, - search::RawBuf * target); - virtual void insertField(uint32_t docid, - GeneralResult *gres, - GetDocsumsState *state, - ResType type, - vespalib::slime::Inserter &target); - static UP create(const char *attribute_name, - IAttributeManager *attribute_manager); + uint32_t WriteField(uint32_t docid, GeneralResult * gres, GetDocsumsState * state, + ResType type, search::RawBuf * target) override; + void insertField(uint32_t docid, GeneralResult *gres, GetDocsumsState *state, + ResType type, vespalib::slime::Inserter &target) override; + static UP create(const char *attribute_name, IAttributeManager *attribute_manager); }; } diff --git a/searchsummary/src/vespa/searchsummary/docsummary/positionsdfw.cpp b/searchsummary/src/vespa/searchsummary/docsummary/positionsdfw.cpp index 3ffa437dcfb..4835b41d21c 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/positionsdfw.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/positionsdfw.cpp @@ -1,11 +1,10 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -#include <vespa/fastos/fastos.h> #include "positionsdfw.h" -#include <cmath> #include "docsumstate.h" #include "idocsumenvironment.h" #include <vespa/searchlib/common/location.h> +#include <vespa/vespalib/stllike/asciistream.h> #include <vespa/log/log.h> LOG_SETUP(".searchlib.docsummary.positionsdfw"); @@ -20,12 +19,10 @@ using search::common::Location; AbsDistanceDFW::AbsDistanceDFW(const vespalib::string & attrName) : AttrDFW(attrName) -{ -} +{ } uint64_t -AbsDistanceDFW::findMinDistance(uint32_t docid, - GetDocsumsState *state) +AbsDistanceDFW::findMinDistance(uint32_t docid, GetDocsumsState *state) { search::common::Location &location = *state->_parsedLocation; const IAttributeVector & attribute(vec(*state)); @@ -68,11 +65,8 @@ AbsDistanceDFW::findMinDistance(uint32_t docid, } void -AbsDistanceDFW::insertField(uint32_t docid, - GeneralResult *, - GetDocsumsState *state, - ResType type, - vespalib::slime::Inserter &target) +AbsDistanceDFW::insertField(uint32_t docid, GeneralResult *, GetDocsumsState *state, + ResType type, vespalib::slime::Inserter &target) { bool forceEmpty = true; @@ -112,11 +106,8 @@ AbsDistanceDFW::insertField(uint32_t docid, uint32_t -AbsDistanceDFW::WriteField(uint32_t docid, - GeneralResult *gres, - GetDocsumsState *state, - ResType type, - search::RawBuf *target) +AbsDistanceDFW::WriteField(uint32_t docid, GeneralResult *gres, GetDocsumsState *state, + ResType type, search::RawBuf *target) { (void) gres; @@ -198,9 +189,9 @@ PositionsDFW::PositionsDFW(const vespalib::string & attrName) : { } +namespace { vespalib::asciistream -PositionsDFW::formatField(const attribute::IAttributeVector & attribute, uint32_t docid, ResType type) -{ +formatField(const attribute::IAttributeVector &attribute, uint32_t docid, ResType type) { vespalib::asciistream target; int32_t docx = 0; int32_t docy = 0; @@ -214,7 +205,7 @@ PositionsDFW::formatField(const attribute::IAttributeVector & attribute, uint32_ } LOG(debug, "docid=%d, numValues=%d", docid, numValues); - bool isShort = ! IsBinaryCompatible(type, RES_LONG_STRING); + bool isShort = !IDocsumFieldWriter::IsBinaryCompatible(type, RES_LONG_STRING); for (uint32_t i = 0; i < numValues; i++) { int64_t docxy(pos[i]); vespalib::geo::ZCurve::decode(docxy, &docx, &docy); @@ -222,9 +213,11 @@ PositionsDFW::formatField(const attribute::IAttributeVector & attribute, uint32_ LOG(spam, "skipping empty zcurve value"); continue; } - double degrees_ns = docy; degrees_ns /= 1000000.0; - double degrees_ew = docx; degrees_ew /= 1000000.0; - + double degrees_ns = docy; + degrees_ns /= 1000000.0; + double degrees_ew = docx; + degrees_ew /= 1000000.0; + target << "<position x=\"" << docx << "\" y=\"" << docy << "\""; target << " latlong=\""; target << vespalib::FloatSpec::fixed; @@ -247,14 +240,11 @@ PositionsDFW::formatField(const attribute::IAttributeVector & attribute, uint32_ } return target; } - +} uint32_t -PositionsDFW::WriteField(uint32_t docid, - GeneralResult *, - GetDocsumsState * dsState, - ResType type, - search::RawBuf *target) +PositionsDFW::WriteField(uint32_t docid, GeneralResult *, GetDocsumsState * dsState, + ResType type, search::RawBuf *target) { int str_len_ofs = target->GetUsedLen(); @@ -277,11 +267,8 @@ PositionsDFW::WriteField(uint32_t docid, void -PositionsDFW::insertField(uint32_t docid, - GeneralResult *, - GetDocsumsState * dsState, - ResType type, - vespalib::slime::Inserter &target) +PositionsDFW::insertField(uint32_t docid, GeneralResult *, GetDocsumsState * dsState, + ResType type, vespalib::slime::Inserter &target) { vespalib::asciistream val(formatField(vec(*dsState), docid, type)); target.insertString(vespalib::slime::Memory(val.c_str(), val.size())); diff --git a/searchsummary/src/vespa/searchsummary/docsummary/positionsdfw.h b/searchsummary/src/vespa/searchsummary/docsummary/positionsdfw.h index 301bf2ceecc..2140ea52a63 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/positionsdfw.h +++ b/searchsummary/src/vespa/searchsummary/docsummary/positionsdfw.h @@ -14,49 +14,31 @@ private: public: AbsDistanceDFW(const vespalib::string & attrName); - virtual bool IsGenerated() const { return true; } - virtual uint32_t WriteField(uint32_t docid, - GeneralResult *gres, - GetDocsumsState *state, - ResType type, - search::RawBuf *target); - virtual void insertField(uint32_t docid, - GeneralResult *gres, - GetDocsumsState *state, - ResType type, - vespalib::slime::Inserter &target); + bool IsGenerated() const override { return true; } + uint32_t WriteField(uint32_t docid, GeneralResult *gres, GetDocsumsState *state, + ResType type, search::RawBuf *target) override; + void insertField(uint32_t docid, GeneralResult *gres, GetDocsumsState *state, + ResType type, vespalib::slime::Inserter &target) override; }; //-------------------------------------------------------------------------- class PositionsDFW : public AttrDFW { -private: - vespalib::asciistream formatField(const attribute::IAttributeVector & v, uint32_t docid, ResType type); - public: typedef std::unique_ptr<PositionsDFW> UP; PositionsDFW(const vespalib::string & attrName); - virtual bool IsGenerated() const { return true; } - virtual uint32_t WriteField(uint32_t docid, - GeneralResult *gres, - GetDocsumsState *state, - ResType type, - search::RawBuf *target); - virtual void insertField(uint32_t docid, - GeneralResult *gres, - GetDocsumsState *state, - ResType type, - vespalib::slime::Inserter &target); + bool IsGenerated() const override { return true; } + uint32_t WriteField(uint32_t docid, GeneralResult *gres, GetDocsumsState *state, + ResType type, search::RawBuf *target) override; + void insertField(uint32_t docid, GeneralResult *gres, GetDocsumsState *state, + ResType type, vespalib::slime::Inserter &target) override ; }; -PositionsDFW::UP createPositionsDFW(const char *attribute_name, - IAttributeManager *index_man); - -AbsDistanceDFW::UP createAbsDistanceDFW(const char *attribute_name, - IAttributeManager *index_man); +PositionsDFW::UP createPositionsDFW(const char *attribute_name, IAttributeManager *index_man); +AbsDistanceDFW::UP createAbsDistanceDFW(const char *attribute_name, IAttributeManager *index_man); } // namespace docsummary } // namespace search |