diff options
author | Tor Egge <Tor.Egge@broadpark.no> | 2018-04-04 23:28:10 +0200 |
---|---|---|
committer | Tor Egge <Tor.Egge@broadpark.no> | 2018-04-04 23:28:57 +0200 |
commit | d7d9b5c4c5e9b332767c6bd53ecfa6a03fdb97b7 (patch) | |
tree | e9b9e4ee7ae95d5fed154b806acc6f52f480ee0d /document | |
parent | 08bcb0eeffe5ebf9e94aea9d719abda2662bdaf1 (diff) |
Use forward declared DocumentTypeRepo.
Diffstat (limited to 'document')
20 files changed, 49 insertions, 9 deletions
diff --git a/document/src/tests/arrayfieldvaluetest.cpp b/document/src/tests/arrayfieldvaluetest.cpp index 8e1cbfafb43..74243ab1511 100644 --- a/document/src/tests/arrayfieldvaluetest.cpp +++ b/document/src/tests/arrayfieldvaluetest.cpp @@ -5,6 +5,7 @@ #include <vespa/vdstestlib/cppunit/macros.h> #include <vespa/vespalib/objects/nbostream.h> #include <vespa/document/util/bytebuffer.h> +#include <vespa/document/repo/documenttyperepo.h> using vespalib::nbostream; diff --git a/document/src/tests/documenttestcase.cpp b/document/src/tests/documenttestcase.cpp index c3f88ac3696..33d1a666d4a 100644 --- a/document/src/tests/documenttestcase.cpp +++ b/document/src/tests/documenttestcase.cpp @@ -7,6 +7,7 @@ #include <vespa/document/datatype/annotationreferencedatatype.h> #include <vespa/document/fieldvalue/iteratorhandler.h> #include <vespa/document/repo/configbuilder.h> +#include <vespa/document/repo/documenttyperepo.h> #include <vespa/document/serialization/vespadocumentdeserializer.h> #include <vespa/document/serialization/vespadocumentserializer.h> #include <vespa/vespalib/objects/nbostream.h> diff --git a/document/src/tests/documenttypetestcase.cpp b/document/src/tests/documenttypetestcase.cpp index 311a841e75e..d6707bc610a 100644 --- a/document/src/tests/documenttypetestcase.cpp +++ b/document/src/tests/documenttypetestcase.cpp @@ -3,6 +3,7 @@ #include <vespa/document/datatype/documenttype.h> #include <vespa/document/fieldvalue/fieldvalues.h> #include <vespa/document/repo/configbuilder.h> +#include <vespa/document/repo/documenttyperepo.h> #include <vespa/vdstestlib/cppunit/macros.h> #include <vespa/vespalib/testkit/test_kit.h> #include <vespa/vespalib/util/exceptions.h> diff --git a/document/src/tests/fieldpathupdatetestcase.cpp b/document/src/tests/fieldpathupdatetestcase.cpp index cade696e06c..89f9c0dab67 100644 --- a/document/src/tests/fieldpathupdatetestcase.cpp +++ b/document/src/tests/fieldpathupdatetestcase.cpp @@ -10,6 +10,7 @@ #include <vespa/document/update/documentupdate.h> #include <vespa/document/repo/configbuilder.h> +#include <vespa/document/repo/documenttyperepo.h> #include <vespa/vespalib/testkit/testapp.h> #include <vespa/document/serialization/vespadocumentserializer.h> #include <vespa/vespalib/objects/nbostream.h> diff --git a/document/src/tests/fieldsettest.cpp b/document/src/tests/fieldsettest.cpp index 3711ff05535..55bf480da8c 100644 --- a/document/src/tests/fieldsettest.cpp +++ b/document/src/tests/fieldsettest.cpp @@ -7,6 +7,7 @@ #include <vespa/document/datatype/annotationreferencedatatype.h> #include <vespa/document/repo/configbuilder.h> +#include <vespa/document/repo/documenttyperepo.h> #include <vespa/vespalib/objects/nbostream.h> #include <algorithm> diff --git a/document/src/tests/primitivefieldvaluetest.cpp b/document/src/tests/primitivefieldvaluetest.cpp index 3d74c9e539b..c4cdc16c3ba 100644 --- a/document/src/tests/primitivefieldvaluetest.cpp +++ b/document/src/tests/primitivefieldvaluetest.cpp @@ -5,6 +5,7 @@ #include <vespa/vdstestlib/cppunit/macros.h> #include <vespa/vespalib/objects/nbostream.h> #include <vespa/document/util/bytebuffer.h> +#include <vespa/document/repo/documenttyperepo.h> #include <limits> using vespalib::nbostream; diff --git a/document/src/tests/serialization/annotationserializer_test.cpp b/document/src/tests/serialization/annotationserializer_test.cpp index 317b090c671..fef5a3b31e5 100644 --- a/document/src/tests/serialization/annotationserializer_test.cpp +++ b/document/src/tests/serialization/annotationserializer_test.cpp @@ -9,6 +9,7 @@ #include <vespa/document/serialization/annotationserializer.h> #include <vespa/document/serialization/vespadocumentdeserializer.h> #include <vespa/document/serialization/vespadocumentserializer.h> +#include <vespa/document/repo/documenttyperepo.h> #include <vespa/vespalib/objects/nbostream.h> #include <vespa/vespalib/testkit/testapp.h> #include <vespa/fastos/file.h> diff --git a/document/src/tests/serialization/vespadocumentserializer_test.cpp b/document/src/tests/serialization/vespadocumentserializer_test.cpp index 57481666f28..c12a4966bcb 100644 --- a/document/src/tests/serialization/vespadocumentserializer_test.cpp +++ b/document/src/tests/serialization/vespadocumentserializer_test.cpp @@ -31,6 +31,7 @@ #include <vespa/document/predicate/predicate_slime_builder.h> #include <vespa/document/repo/configbuilder.h> #include <vespa/document/repo/fixedtyperepo.h> +#include <vespa/document/repo/documenttyperepo.h> #include <vespa/document/serialization/util.h> #include <vespa/document/serialization/vespadocumentdeserializer.h> #include <vespa/document/serialization/vespadocumentserializer.h> diff --git a/document/src/tests/struct_anno/struct_anno_test.cpp b/document/src/tests/struct_anno/struct_anno_test.cpp index 32d880c50c3..0b600fcb236 100644 --- a/document/src/tests/struct_anno/struct_anno_test.cpp +++ b/document/src/tests/struct_anno/struct_anno_test.cpp @@ -9,6 +9,7 @@ #include <vespa/document/serialization/annotationserializer.h> #include <vespa/document/serialization/vespadocumentdeserializer.h> #include <vespa/document/serialization/vespadocumentserializer.h> +#include <vespa/document/repo/documenttyperepo.h> #include <vespa/vespalib/objects/nbostream.h> #include <vespa/vespalib/testkit/testapp.h> #include <vespa/fastos/file.h> diff --git a/document/src/tests/structfieldvaluetest.cpp b/document/src/tests/structfieldvaluetest.cpp index 9fffe1d630f..0d78e7c0b5c 100644 --- a/document/src/tests/structfieldvaluetest.cpp +++ b/document/src/tests/structfieldvaluetest.cpp @@ -3,6 +3,7 @@ #include <vespa/document/fieldvalue/fieldvalues.h> #include <vespa/document/datatype/documenttype.h> #include <vespa/document/repo/configbuilder.h> +#include <vespa/document/repo/documenttyperepo.h> #include <vespa/document/serialization/vespadocumentdeserializer.h> #include <vespa/vdstestlib/cppunit/macros.h> #include <vespa/vespalib/objects/nbostream.h> diff --git a/document/src/tests/testxml.cpp b/document/src/tests/testxml.cpp index fc398eb28a2..76cb13c78e9 100644 --- a/document/src/tests/testxml.cpp +++ b/document/src/tests/testxml.cpp @@ -9,6 +9,7 @@ #include <vespa/document/update/removevalueupdate.h> #include <vespa/document/datatype/documenttype.h> #include <vespa/document/fieldvalue/fieldvalues.h> +#include <vespa/document/repo/documenttyperepo.h> #include <vespa/vespalib/text/stringtokenizer.h> #include <vespa/vespalib/testkit/test_kit.h> diff --git a/document/src/tests/weightedsetfieldvaluetest.cpp b/document/src/tests/weightedsetfieldvaluetest.cpp index 745bc2dfa67..b99dd07f5c5 100644 --- a/document/src/tests/weightedsetfieldvaluetest.cpp +++ b/document/src/tests/weightedsetfieldvaluetest.cpp @@ -6,6 +6,7 @@ #include <vespa/vdstestlib/cppunit/macros.h> #include <vespa/vespalib/objects/nbostream.h> #include <vespa/document/util/bytebuffer.h> +#include <vespa/document/repo/documenttyperepo.h> using vespalib::nbostream; diff --git a/document/src/vespa/document/base/testdocman.cpp b/document/src/vespa/document/base/testdocman.cpp index 206ac018248..0330a00c36a 100644 --- a/document/src/vespa/document/base/testdocman.cpp +++ b/document/src/vespa/document/base/testdocman.cpp @@ -3,6 +3,7 @@ #include "testdocman.h" #include "exceptions.h" #include <vespa/document/datatype/datatypes.h> +#include <vespa/document/repo/documenttyperepo.h> #include <boost/random.hpp> #include <sstream> diff --git a/document/src/vespa/document/fieldvalue/document.cpp b/document/src/vespa/document/fieldvalue/document.cpp index acbb2e800cb..47366b388a9 100644 --- a/document/src/vespa/document/fieldvalue/document.cpp +++ b/document/src/vespa/document/fieldvalue/document.cpp @@ -4,6 +4,7 @@ #include <vespa/document/datatype/documenttype.h> #include <vespa/vespalib/util/crc.h> #include <vespa/document/repo/fixedtyperepo.h> +#include <vespa/document/repo/documenttyperepo.h> #include <vespa/document/serialization/vespadocumentdeserializer.h> #include <vespa/document/serialization/vespadocumentserializer.h> #include <vespa/vespalib/objects/nbostream.h> diff --git a/document/src/vespa/document/fieldvalue/structfieldvalue.cpp b/document/src/vespa/document/fieldvalue/structfieldvalue.cpp index 2526976f69d..8f5e2d1dbe3 100644 --- a/document/src/vespa/document/fieldvalue/structfieldvalue.cpp +++ b/document/src/vespa/document/fieldvalue/structfieldvalue.cpp @@ -4,6 +4,7 @@ #include "fieldvaluewriter.h" #include "document.h" #include <vespa/document/repo/fixedtyperepo.h> +#include <vespa/document/repo/documenttyperepo.h> #include <vespa/document/serialization/vespadocumentdeserializer.h> #include <vespa/vespalib/objects/nbostream.h> #include <vespa/vespalib/util/crc.h> diff --git a/document/src/vespa/document/repo/fixedtyperepo.cpp b/document/src/vespa/document/repo/fixedtyperepo.cpp index cb27f81dd81..7644dddb64d 100644 --- a/document/src/vespa/document/repo/fixedtyperepo.cpp +++ b/document/src/vespa/document/repo/fixedtyperepo.cpp @@ -1,14 +1,38 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include "fixedtyperepo.h" +#include "documenttyperepo.h" #include <cassert> namespace document { +FixedTypeRepo::FixedTypeRepo(const DocumentTypeRepo &repo) + : _repo(&repo), _doc_type(repo.getDocumentType(DataType::T_DOCUMENT)) +{ +} + FixedTypeRepo::FixedTypeRepo(const DocumentTypeRepo &repo, const vespalib::string &type) : _repo(&repo), _doc_type(repo.getDocumentType(type)) { assert(_doc_type); } +const DataType * +FixedTypeRepo::getDataType(int32_t id) const +{ + return _repo->getDataType(*_doc_type, id); +} + +const DataType * +FixedTypeRepo::getDataType(const vespalib::string &name) const +{ + return _repo->getDataType(*_doc_type, name); +} + +const AnnotationType * +FixedTypeRepo::getAnnotationType(int32_t id) const +{ + return _repo->getAnnotationType(*_doc_type, id); +} + } // namespace document diff --git a/document/src/vespa/document/repo/fixedtyperepo.h b/document/src/vespa/document/repo/fixedtyperepo.h index e193945393d..eb8a5a328dd 100644 --- a/document/src/vespa/document/repo/fixedtyperepo.h +++ b/document/src/vespa/document/repo/fixedtyperepo.h @@ -2,11 +2,13 @@ #pragma once -#include "documenttyperepo.h" #include <vespa/document/datatype/datatype.h> namespace document { +class DocumentTypeRepo; +class AnnotationType; + // Combines a DocumentTypeRepo and a DocumentType to allow easy access // to the types contained in the DocumentType's namespace. class FixedTypeRepo { @@ -14,18 +16,14 @@ class FixedTypeRepo { const DocumentType *_doc_type; public: - explicit FixedTypeRepo(const DocumentTypeRepo &repo) - : _repo(&repo), _doc_type(repo.getDocumentType(DataType::T_DOCUMENT)) { } + explicit FixedTypeRepo(const DocumentTypeRepo &repo); FixedTypeRepo(const DocumentTypeRepo &repo, const DocumentType &doc_type) : _repo(&repo), _doc_type(&doc_type) {} FixedTypeRepo(const DocumentTypeRepo &repo, const vespalib::string &type); - const DataType *getDataType(int32_t id) const - { return _repo->getDataType(*_doc_type, id); } - const DataType *getDataType(const vespalib::string &name) const - { return _repo->getDataType(*_doc_type, name); } - const AnnotationType *getAnnotationType(int32_t id) const - { return _repo->getAnnotationType(*_doc_type, id); } + const DataType *getDataType(int32_t id) const; + const DataType *getDataType(const vespalib::string &name) const; + const AnnotationType *getAnnotationType(int32_t id) const; const DocumentTypeRepo &getDocumentTypeRepo() const { return *_repo; } const DocumentType &getDocumentType() const { return *_doc_type; } diff --git a/document/src/vespa/document/serialization/vespadocumentdeserializer.cpp b/document/src/vespa/document/serialization/vespadocumentdeserializer.cpp index 0439d16c25d..399cadb4c7d 100644 --- a/document/src/vespa/document/serialization/vespadocumentdeserializer.cpp +++ b/document/src/vespa/document/serialization/vespadocumentdeserializer.cpp @@ -18,6 +18,7 @@ #include <vespa/document/fieldvalue/weightedsetfieldvalue.h> #include <vespa/document/fieldvalue/tensorfieldvalue.h> #include <vespa/document/fieldvalue/referencefieldvalue.h> +#include <vespa/document/repo/documenttyperepo.h> #include <vespa/vespalib/data/slime/binary_format.h> #include <vespa/vespalib/data/slime/slime.h> #include <vespa/vespalib/stllike/asciistream.h> diff --git a/document/src/vespa/document/serialization/vespadocumentserializer.cpp b/document/src/vespa/document/serialization/vespadocumentserializer.cpp index 919f02a5fee..d8d18969070 100644 --- a/document/src/vespa/document/serialization/vespadocumentserializer.cpp +++ b/document/src/vespa/document/serialization/vespadocumentserializer.cpp @@ -21,6 +21,7 @@ #include <vespa/document/fieldvalue/tensorfieldvalue.h> #include <vespa/document/fieldvalue/referencefieldvalue.h> #include <vespa/document/datatype/weightedsetdatatype.h> +#include <vespa/document/repo/documenttyperepo.h> #include <vespa/document/update/updates.h> #include <vespa/document/update/fieldpathupdates.h> #include <vespa/vespalib/data/slime/binary_format.h> diff --git a/document/src/vespa/document/update/documentupdate.cpp b/document/src/vespa/document/update/documentupdate.cpp index 717df16e62c..fa289ab0bfa 100644 --- a/document/src/vespa/document/update/documentupdate.cpp +++ b/document/src/vespa/document/update/documentupdate.cpp @@ -9,6 +9,7 @@ #include <vespa/document/util/bufferexceptions.h> #include <vespa/document/base/exceptions.h> #include <vespa/document/datatype/documenttype.h> +#include <vespa/document/repo/documenttyperepo.h> #include <vespa/vespalib/util/xmlstream.h> using vespalib::IllegalArgumentException; |