Exemplo n.º 1
0
 void set_is_offset(bool x) {
   if (x) {
     GRN_DAT_DEBUG_THROW_IF(is_offset());
     value_ |= IS_OFFSET_FLAG;
   } else {
     GRN_DAT_DEBUG_THROW_IF(!is_offset());
     value_ &= ~IS_OFFSET_FLAG;
   }
 }
Exemplo n.º 2
0
 // To reject a transition to an incomplete node, set_is_phantom() invalidates
 // its label and links when it becomes non-phantom.
 void set_is_phantom(bool x) {
   if (x) {
     GRN_DAT_DEBUG_THROW_IF(is_phantom());
     value_ |= IS_PHANTOM_FLAG;
   } else {
     GRN_DAT_DEBUG_THROW_IF(!is_phantom());
     value_ = (value_ & IS_OFFSET_FLAG) | (INVALID_LABEL << CHILD_SHIFT) |
         (INVALID_LABEL << SIBLING_SHIFT) | INVALID_LABEL;
   }
 }
Exemplo n.º 3
0
  // This function returns an integer as follows:
  // - a negative value if *this < rhs,
  // - zero if *this == rhs,
  // - a positive value if *this > rhs,
  // but if the offset is too large, the result is undefined.
  int compare(const String &rhs, UInt32 offset = 0) const {
    GRN_DAT_DEBUG_THROW_IF(offset > length());
    GRN_DAT_DEBUG_THROW_IF(offset > rhs.length());

    for (UInt32 i = offset; i < length(); ++i) {
      if (i >= rhs.length()) {
        return 1;
      } else if ((*this)[i] != rhs[i]) {
        return (*this)[i] - rhs[i];
      }
    }
    return (length() == rhs.length()) ? 0 : -1;
  }
Exemplo n.º 4
0
 UInt32 ith_leader(UInt32 i) const {
   GRN_DAT_DEBUG_THROW_IF(i > MAX_BLOCK_LEVEL);
   return leaders_[i];
 }
Exemplo n.º 5
0
 Array(void *ptr, UInt32 size) : ptr_(static_cast<T *>(ptr)), size_(size) {
   GRN_DAT_DEBUG_THROW_IF((ptr == NULL) && (size != 0));
 }
Exemplo n.º 6
0
 void set_file_size(UInt64 x) {
   GRN_DAT_DEBUG_THROW_IF(x > MAX_FILE_SIZE);
   file_size_ = x;
 }
Exemplo n.º 7
0
 const Block &ith_block(UInt32 i) const {
   GRN_DAT_DEBUG_THROW_IF(i >= num_blocks());
   return blocks_[i];
 }
Exemplo n.º 8
0
 void set_offset(UInt32 x) {
     GRN_DAT_DEBUG_THROW_IF((x & IS_LINKER_FLAG) != 0);
     GRN_DAT_DEBUG_THROW_IF(x > MAX_OFFSET);
     value_ = x;
 }
Exemplo n.º 9
0
 const UInt8 &operator[](UInt32 i) const {
   GRN_DAT_DEBUG_THROW_IF(i >= length_);
   return ptr_[i];
 }
Exemplo n.º 10
0
 void set_num_zombies(UInt32 x) {
   GRN_DAT_DEBUG_THROW_IF(x > max_num_nodes());
   num_zombies_ = x;
 }
Exemplo n.º 11
0
 UInt32 offset() const {
     GRN_DAT_DEBUG_THROW_IF(is_linker());
     return value_;
 }
Exemplo n.º 12
0
 void set_max_num_keys(UInt32 x) {
   GRN_DAT_DEBUG_THROW_IF(x > MAX_NUM_KEYS);
   max_num_keys_ = x;
 }
Exemplo n.º 13
0
 void set_num_phantoms(UInt32 x) {
   GRN_DAT_DEBUG_THROW_IF(x > max_num_nodes());
   num_phantoms_ = x;
 }
Exemplo n.º 14
0
 void set_max_key_id(UInt32 x) {
   GRN_DAT_DEBUG_THROW_IF(x > MAX_KEY_ID);
   max_key_id_ = x;
 }
Exemplo n.º 15
0
 void set_next_key_id(UInt32 x) {
   GRN_DAT_DEBUG_THROW_IF((x - 1) > MAX_KEY_ID);
   next_key_id_ = x;
 }
Exemplo n.º 16
0
 void set_total_key_length(UInt32 x) {
   GRN_DAT_DEBUG_THROW_IF(x > MAX_TOTAL_KEY_LENGTH);
   total_key_length_ = x;
 }
Exemplo n.º 17
0
 T &operator[](UInt32 i) {
   GRN_DAT_DEBUG_THROW_IF(i >= size_);
   return ptr_[i];
 }
Exemplo n.º 18
0
 void set_num_blocks(UInt32 x) {
   GRN_DAT_DEBUG_THROW_IF(x > max_num_blocks());
   num_blocks_ = x;
 }
Exemplo n.º 19
0
 void assign(void *ptr, UInt32 size) {
   GRN_DAT_DEBUG_THROW_IF((ptr == NULL) && (size != 0));
   ptr_ = static_cast<T *>(ptr);
   size_ = size;
 }
Exemplo n.º 20
0
 void set_max_num_blocks(UInt32 x) {
   GRN_DAT_DEBUG_THROW_IF(x > MAX_NUM_BLOCKS);
   max_num_blocks_ = x;
 }
Exemplo n.º 21
0
 UInt32 key_pos() const {
     GRN_DAT_DEBUG_THROW_IF(!is_linker());
     return value_ & ~IS_LINKER_FLAG;
 }
Exemplo n.º 22
0
 T &operator[](UInt32 i) {
   GRN_DAT_DEBUG_THROW_IF(i >= size());
   return buf_[i];
 }
Exemplo n.º 23
0
 void set_key_pos(UInt32 x) {
     GRN_DAT_DEBUG_THROW_IF((x & IS_LINKER_FLAG) != 0);
     GRN_DAT_DEBUG_THROW_IF(x > MAX_OFFSET);
     value_ = IS_LINKER_FLAG | x;
 }
Exemplo n.º 24
0
 T &back() {
   GRN_DAT_DEBUG_THROW_IF(empty());
   return buf_[size() - 1];
 }
Exemplo n.º 25
0
 void set_next_key_pos(UInt32 x) {
   GRN_DAT_DEBUG_THROW_IF(x > key_buf_size());
   next_key_pos_ = x;
 }
Exemplo n.º 26
0
 const Entry &ith_entry(UInt32 i) const {
   GRN_DAT_DEBUG_THROW_IF(i < min_key_id());
   GRN_DAT_DEBUG_THROW_IF(i > max_key_id());
   return entries_[i];
 }
Exemplo n.º 27
0
 T &front() {
   GRN_DAT_DEBUG_THROW_IF(empty());
   return buf_[0];
 }
Exemplo n.º 28
0
 void set_key_buf_size(UInt32 x) {
   GRN_DAT_DEBUG_THROW_IF(x > MAX_KEY_BUF_SIZE);
   key_buf_size_ = x;
 }
Exemplo n.º 29
0
 void pop_back() {
   GRN_DAT_DEBUG_THROW_IF(empty());
   back().~T();
   --size_;
 }
Exemplo n.º 30
0
 void set_ith_leader(UInt32 i, UInt32 x) {
   GRN_DAT_DEBUG_THROW_IF(i > MAX_BLOCK_LEVEL);
   GRN_DAT_DEBUG_THROW_IF((x != INVALID_LEADER) && (x >= num_blocks()));
   leaders_[i] = x;
 }