def load(page_idx, record)
      # The IDListPageRecord will tell us the actual number of values stored
      # in this page.
      values = []
      unless (entries = record.page_entries) == 0
        begin
          @f.seek(page_idx * @page_size * 8)
          values = @f.read(entries * 8).unpack("Q#{entries}")
        rescue IOError => e
          PEROBS.log.fatal "Cannot read cache file #{@file_name}: #{e.message}"
        end
      end

      # Create the IDListPage object with the given values.
      p = IDListPage.new(self, record, page_idx, values)
      @pages.insert(p, false)

      p
    end
def load(page_idx, record)
      # The IDListPageRecord will tell us the actual number of values stored
      # in this page.
      values = []
      unless (entries = record.page_entries) == 0
        begin
          @f.seek(page_idx * @page_size * 8)
          values = @f.read(entries * 8).unpack("Q#{entries}")
        rescue IOError => e
          PEROBS.log.fatal "Cannot read cache file #{@file_name}: #{e.message}"
        end
      end

      # Create the IDListPage object with the given values.
      p = IDListPage.new(self, record, page_idx, values)
      @pages.insert(p, false)

      p
    end
Create a new IDListPageFile object that uses the given file in the given
 directory as cache file.
 @param list [IDList] The IDList object that caches pages here
 @param dir [String] An existing directory
 @param name [String] A file name (without path)
 @param max_in_memory [Integer] Maximum number of pages to keep in memory
 @param page_size [Integer] The number of values in each page
 Load the IDListPage from the cache file.
 @param page_idx [Integer] The page index in the page file
 @param record [IDListPageRecord] the corresponding IDListPageRecord
 @return [IDListPage] The loaded values