home *** CD-ROM | disk | FTP | other *** search
/ Xentax forum attachments archive / xentax.7z / 7662 / gttool_src_bin.7z / gttool / src / fileinfo_btree.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2014-02-20  |  1.1 KB  |  41 lines

  1. #include "fileinfo_btree.h"
  2.  
  3. int FileInfoBTree::key_equal_op(const Key* const key, const void* const data)
  4. {
  5.     const void* ptr = advance_pointer(data, 1);
  6.     const uint32_t entry_index = extract_value_and_advance(&ptr);
  7.     if (key->entry_index < entry_index)
  8.         return -1;
  9.     else if (key->entry_index > entry_index)
  10.         return 1;
  11.     return 0;
  12. }
  13.  
  14. int FileInfoBTree::key_less_than_op(const Key* const key, const void* const data)
  15. {
  16.     const void* ptr = data;
  17.     const uint32_t entry_index = extract_value_and_advance(&ptr);
  18.     if (key->entry_index < entry_index)
  19.         return -1;
  20.     else
  21.         return 1;
  22. }
  23.  
  24. const void* FileInfoBTree::skip_node_data(const void* const node) const
  25. {
  26.     return node;
  27. }
  28.  
  29. int FileInfoBTree::traverse_callback(const void* const data, void* const arg)
  30. {
  31.     const TraverseCallbackArgs<TraverseFileInfoCallback>* const args = static_cast<const TraverseCallbackArgs<TraverseFileInfoCallback>*>(arg);
  32.  
  33.     int action = kTRAVERSE_CONTINUE;
  34.  
  35.     FileInfo file_info;
  36.     if (file_info.parse(data) && args->callback)
  37.         action = (*args->callback)(&file_info, args->arg);
  38.  
  39.     return action;
  40. }
  41.