Mark jsonformatutils.h/isadetection.h internal

- Move jsonformatutils.h to internal/jsonformatutils.h (it is used by
document::print_json)
- Move isadetection.h to src/ (it is only used internally)
This commit is contained in:
John Keiser
2020-03-03 15:53:41 -08:00
parent f58a5d534e
commit eb147d9868
13 changed files with 42 additions and 47 deletions
+15 -18
View File
@@ -1,5 +1,5 @@
#include "simdjson/portability.h"
#include "simdjson/isadetection.h"
#include "isadetection.h"
#include "simdjson/implementation.h"
#include <initializer_list>
@@ -11,10 +11,10 @@
#include "haswell/implementation.h"
#include "westmere/implementation.h"
namespace simdjson {
const haswell::implementation haswell_singleton{};
const westmere::implementation westmere_singleton{};
constexpr const std::initializer_list<const implementation *> available_implementation_pointers { &haswell_singleton, &westmere_singleton };
namespace simdjson::internal {
const haswell::implementation haswell_singleton{};
const westmere::implementation westmere_singleton{};
constexpr const std::initializer_list<const implementation *> available_implementation_pointers { &haswell_singleton, &westmere_singleton };
}
#endif
@@ -23,19 +23,20 @@ namespace simdjson {
#include "arm64/implementation.h"
namespace simdjson {
const arm64::implementation arm64_singleton{};
constexpr const std::initializer_list<const implementation *> available_implementation_pointers { &arm64_singleton };
namespace simdjson::internal {
const arm64::implementation arm64_singleton{};
constexpr const std::initializer_list<const implementation *> available_implementation_pointers { &arm64_singleton };
}
#endif
namespace simdjson {
namespace simdjson::internal {
// So we can return UNSUPPORTED_ARCHITECTURE from the parser when there is no support
class unsupported_implementation final : public implementation {
public:
WARN_UNUSED virtual error_code parse(const uint8_t *, size_t, document::parser &) const noexcept final {
WARN_UNUSED error_code parse(const uint8_t *, size_t, document::parser &) const noexcept final {
return UNSUPPORTED_ARCHITECTURE;
}
WARN_UNUSED error_code stage1(const uint8_t *, size_t, document::parser &, bool) const noexcept final {
@@ -53,21 +54,19 @@ public:
const unsupported_implementation unsupported_singleton{};
namespace internal {
size_t available_implementation_list::size() const noexcept {
return available_implementation_pointers.size();
return internal::available_implementation_pointers.size();
}
const implementation * const *available_implementation_list::begin() const noexcept {
return available_implementation_pointers.begin();
return internal::available_implementation_pointers.begin();
}
const implementation * const *available_implementation_list::end() const noexcept {
return available_implementation_pointers.end();
return internal::available_implementation_pointers.end();
}
const implementation *available_implementation_list::detect_best_supported() const noexcept {
// They are prelisted in priority order, so we just go down the list
uint32_t supported_instruction_sets = detect_supported_architectures();
for (const implementation *impl : available_implementation_pointers) {
for (const implementation *impl : internal::available_implementation_pointers) {
uint32_t required_instruction_sets = impl->required_instruction_sets();
if ((supported_instruction_sets & required_instruction_sets) == required_instruction_sets) { return impl; }
}
@@ -78,6 +77,4 @@ const implementation *detect_best_supported_implementation_on_first_use::set_bes
return active_implementation = available_implementations.detect_best_supported();
}
} // namespace simdjson::internal
} // namespace simdjson