summaryrefslogtreecommitdiffstats
path: root/searchsummary
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2016-12-20 14:41:39 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2016-12-20 15:50:29 +0100
commit51bc810507f2067ebd2646274d3cda5cb583a620 (patch)
treecbff1f6464262c2e6b3a622db93d044bab69a532 /searchsummary
parent530e52e17a85836d58cac58c89b71c189c6f9873 (diff)
Further decouple some hpp files, config and the attributevector.
Diffstat (limited to 'searchsummary')
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/geoposdfw.cpp15
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/geoposdfw.h19
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/positionsdfw.cpp53
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/positionsdfw.h42
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