예제 #1
0
void
FlattenDocsumWriter::onPrimitive(uint32_t, const Content & c)
{
    considerSeparator();
    const document::FieldValue & fv = c.getValue();
    if (fv.getClass().inherits(document::LiteralFieldValueB::classId)) {
        const document::LiteralFieldValueB & lfv = static_cast<const document::LiteralFieldValueB &>(fv);
        vespalib::stringref value = lfv.getValueRef();
        _output.put(value.data(), value.size());
    } else if (fv.getClass().inherits(document::NumericFieldValueBase::classId)) {
        vespalib::string value = fv.getAsString();
        _output.put(value.data(), value.size());
    } else {
        vespalib::string value = fv.toString();
        _output.put(value.data(), value.size());
    }
    _useSeparator = true;
}