4 #include <unordered_map> 
    7 #ifndef JODA_HASHPROVIDER_H 
    8 #define JODA_HASHPROVIDER_H 
   15     std::string v = 
"[JODA]Nullval";
 
   16     hash_combine(hash, v);
 
   21     hash_combine(hash, b);
 
   26     hash_combine(hash, i);
 
   31     hash_combine(hash, i);
 
   36     hash_combine(hash, i);
 
   41     hash_combine(hash, i);
 
   46     hash_combine(hash, d);
 
   50   bool RawNumber(
const Ch *str, rapidjson::SizeType length, 
bool copy) {
 
   51     hash_combine(hash, std::string(str, length));
 
   55   bool String(
const Ch *str, rapidjson::SizeType length, 
bool copy) {
 
   56     hash_combine(hash, std::string(str, length));
 
   62   bool Key(
const Ch *str, rapidjson::SizeType length, 
bool copy) {
 
   63     hash_combine(hash, std::string(str, length));
 
   77   constexpr 
bool EndArray(rapidjson::SizeType elementCount) {
 
   94   inline void hash_combine(std::size_t &seed, T 
const &v) {
 
   96     seed ^= hasher(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2);
 
  105   static constexpr 
auto name = 
"HASH";
 
  110     accepter.
Accept(json, alloc, handler);
 
  115     if (ptr == 
nullptr) 
return RJValue();
 
  117     ptr->Accept(handler);
 
  122     if (vo == 
nullptr) 
return RJValue();
 
rapidjson::MemoryPoolAllocator< RJBaseAlloc > RJMemoryPoolAlloc
Definition: RJFwd.h:26
rapidjson::GenericValue< RJChar, RJMemoryPoolAlloc > RJValue
Definition: RJFwd.h:29
Definition: RapidJsonDocument.h:22
Definition: VirtualObject.h:13
bool Accept(Handler &handler) const
Definition: VirtualObject.h:74
Definition: UnaryPointerAcceptProvider.h:25
Definition: ValueAccepter.h:16
bool Accept(const RapidJsonDocument &json, RJMemoryPoolAlloc &alloc, Handler &h) const
Definition: ValueAccepter.h:32
Definition: HashProvider.h:100
static RJValue accept(const RapidJsonDocument &json, RJMemoryPoolAlloc &alloc, const ValueAccepter &accepter)
Definition: HashProvider.h:107
static constexpr IValueType inType
Definition: HashProvider.h:103
static constexpr IValueType retType
Definition: HashProvider.h:102
static RJValue virtualObject(const VirtualObject *vo)
Definition: HashProvider.h:121
static constexpr bool acceptAll
Definition: HashProvider.h:104
static constexpr auto name
Definition: HashProvider.h:105
static RJValue pointer(const RJValue *ptr)
Definition: HashProvider.h:114
Definition: HashProvider.h:10
char Ch
Definition: HashProvider.h:12
bool Bool(bool b)
Definition: HashProvider.h:20
constexpr bool EndArray(rapidjson::SizeType elementCount)
Definition: HashProvider.h:77
bool StartObject()
Definition: HashProvider.h:60
bool RawNumber(const Ch *str, rapidjson::SizeType length, bool copy)
Definition: HashProvider.h:50
bool Null()
Definition: HashProvider.h:14
bool EndObject(rapidjson::SizeType memberCount)
Definition: HashProvider.h:67
bool Key(const Ch *str, rapidjson::SizeType length, bool copy)
Definition: HashProvider.h:62
constexpr bool StartArray()
Definition: HashProvider.h:72
bool String(const Ch *str, rapidjson::SizeType length, bool copy)
Definition: HashProvider.h:55
bool Int64(int64_t i)
Definition: HashProvider.h:35
bool Uint(unsigned i)
Definition: HashProvider.h:30
bool Uint64(uint64_t i)
Definition: HashProvider.h:40
bool Double(double d)
Definition: HashProvider.h:45
void reset()
Definition: HashProvider.h:84
size_t getHash() const
Definition: HashProvider.h:82
bool Int(int i)
Definition: HashProvider.h:25
Definition: HashProvider.h:9
Definition: AttributeStatAggregator.h:12
IValueType
Definition: IValueProvider.h:33
@ IV_Number
Definition: IValueProvider.h:35
@ IV_Any
Definition: IValueProvider.h:39
UnaryPointerAcceptProvider< joda::query::providers::hash::HashCalculator > HashProvider
Definition: HashProvider.h:135