27 static uint64_t getTimeMillis(boost::posix_time::ptime time);
30 static uint64_t currentTimeMillis();
36 static int32_t getNextSize(int32_t targetSize);
40 static int32_t getShrinkSize(int32_t currentSize, int32_t targetSize);
47 static int32_t bytesDifference(uint8_t* bytes1, int32_t len1, uint8_t* bytes2, int32_t len2);
49 template <
typename TYPE>
51 return type->hashCode();
54 template <
typename TYPE>
59 template <
typename ITER,
typename PRED>
60 static int32_t
hashCode(ITER first, ITER last, PRED pred) {
62 for (ITER hash = first; hash != last; ++hash) {
63 code = code * 31 + pred(*hash);
69 static int32_t hashCode(
const wchar_t* array, int32_t start, int32_t end);
72 static int32_t hashCode(
const uint8_t* array, int32_t start, int32_t end);
75 static int32_t hashCode(
bool value);
78 template <
typename SOURCE,
typename DEST>
79 static void arrayCopy(SOURCE source, int32_t sourceOffset, DEST dest, int32_t destOffset, int32_t length) {
80 std::copy(source + sourceOffset, source + sourceOffset + length, dest + destOffset);
84 template <
typename DEST,
typename FILL>
85 static void arrayFill(DEST dest, int32_t destFrom, int32_t destTo, FILL value) {
86 std::fill(dest + destFrom, dest + destTo, value);
91 static int32_t doubleToIntBits(
double value);
95 static int32_t doubleToRawIntBits(
double value);
99 static double intBitsToDouble(int32_t bits);
103 static int64_t doubleToLongBits(
double value);
107 static int64_t doubleToRawLongBits(
double value);
111 static double longBitsToDouble(int64_t bits);
114 static bool isInfinite(
double value);
117 static bool isNaN(
double value);
120 template <
typename TYPE>
122 return boost::dynamic_pointer_cast<TYPE>(object).
get() != NULL;
129 static int64_t unsignedShift(int64_t num, int64_t shift);
132 static int32_t unsignedShift(int32_t num, int32_t shift);
static const uint32_t SINGLE_EXPONENT_MASK
Definition: MiscUtils.h:16
boost::shared_ptr< LuceneObject > LuceneObjectPtr
Definition: LuceneTypes.h:539
static bool typeOf(const LuceneObjectPtr &object)
Return whether given Lucene object is of a specified type.
Definition: MiscUtils.h:121
static void arrayCopy(SOURCE source, int32_t sourceOffset, DEST dest, int32_t destOffset, int32_t length)
Copy elements from on buffer to another.
Definition: MiscUtils.h:79
Definition: MiscUtils.h:14
static const uint32_t SINGLE_MANTISSA_MASK
Definition: MiscUtils.h:17
static int32_t hashLucene(TYPE type)
Definition: MiscUtils.h:50
static const uint64_t DOUBLE_SIGN_MASK
Definition: MiscUtils.h:20
Definition: AbstractAllTermDocs.h:12
static void arrayFill(DEST dest, int32_t destFrom, int32_t destTo, FILL value)
Fill buffer with given element.
Definition: MiscUtils.h:85
static const uint64_t DOUBLE_NAN_BITS
Definition: MiscUtils.h:23
static int32_t hashCode(ITER first, ITER last, PRED pred)
Definition: MiscUtils.h:60
static const uint64_t DOUBLE_EXPONENT_MASK
Definition: MiscUtils.h:21
static int32_t hashNumeric(TYPE type)
Definition: MiscUtils.h:55
static const uint64_t DOUBLE_MANTISSA_MASK
Definition: MiscUtils.h:22
static const uint32_t SINGLE_NAN_BITS
Definition: MiscUtils.h:18