コード例 #1
0
ファイル: pqueueindex.c プロジェクト: FikiHafana/ArangoDB
static uint64_t HashKeyPQIndex(TRI_associative_array_t* aa, void* key) {
  uint64_t hash;

  hash = TRI_FnvHashBlockInitial();
  hash = TRI_FnvHashBlock(hash, key, sizeof(void*));

  return  hash;
}
コード例 #2
0
ファイル: hash-array.c プロジェクト: aboleab/ArangoDB
static uint64_t HashKey (TRI_hash_array_t* array,
                         TRI_index_search_value_t* key) {
  uint64_t hash = TRI_FnvHashBlockInitial();
  size_t j;

  for (j = 0;  j < array->_numFields;  ++j) {

    // ignore the sid for hashing
    hash = TRI_FnvHashBlock(hash, key->_values[j]._data.data, key->_values[j]._data.length);
  }
  return hash;
}
コード例 #3
0
ファイル: pqueueindex.c プロジェクト: mokerjoke/ArangoDB
static uint64_t HashElementPQIndex(TRI_associative_array_t* aa, void* item) {
  PQIndexElement* element;
  uint64_t hash;
  
  element = (PQIndexElement*)(item);
  if (element == 0) {
    return 0;
  }
  
  hash = TRI_FnvHashBlockInitial();
  hash = TRI_FnvHashBlock(hash, element->data, sizeof(void*)); 
  
  return  hash;
}
コード例 #4
0
ファイル: pqueueindex.c プロジェクト: FikiHafana/ArangoDB
static uint64_t HashElementPQIndex(TRI_associative_array_t* aa, void* item) {
  TRI_pq_index_element_t* element;
  uint64_t hash;
  
  element = (TRI_pq_index_element_t*)(item);

  if (element == 0) {
    return 0;
  }

  hash = TRI_FnvHashBlockInitial();
  hash = TRI_FnvHashBlock(hash, (void*) element->_document, sizeof(void*)); 
  
  return  hash;
}
コード例 #5
0
ファイル: hash-array.c プロジェクト: aboleab/ArangoDB
static uint64_t HashElement (TRI_hash_array_t* array,
                             TRI_hash_index_element_t* element) {
  uint64_t hash = TRI_FnvHashBlockInitial();
  char* ptr;
  size_t j;

  for (j = 0;  j < array->_numFields;  j++) {

    // ignore the sid for hashing
    ptr = ((char*) element->_document->_data) + element->_subObjects[j]._offset;

    // only hash the data block
    hash = TRI_FnvHashBlock(hash, ptr, element->_subObjects[j]._length);
  }

  return hash;
}