class MultiOnDiskHashTable

Declaration

template <typename Info>
class MultiOnDiskHashTable { /* full declaration omitted */ };

Description

A collection of on-disk hash tables, merged when relevant for performance.

Declared at: clang/lib/Serialization/MultiOnDiskHashTable.h:40

Templates

Info

Member Variables

private clang::serialization::MultiOnDiskHashTable:: TableVector Tables
The current set of on-disk and merged tables. We manually store the opaque value of the Table because TinyPtrVector can't cope with holding a PointerUnion directly. There can be at most one MergedTable in this vector, and if present, it is the first table.
private llvm::TinyPtrVector<file_type> PendingOverrides
Files corresponding to overridden tables that we've not yet discarded.

Method Overview

  • public MultiOnDiskHashTable<Info>()
  • public MultiOnDiskHashTable<Info>(MultiOnDiskHashTable<Info> && O)
  • public void add(clang::serialization::MultiOnDiskHashTable::file_type File, clang::serialization::MultiOnDiskHashTable::storage_type Data, Info InfoObj = type-parameter-0-0())
  • private void clear()
  • private void condense()
  • public clang::serialization::MultiOnDiskHashTable::data_type find(const clang::serialization::MultiOnDiskHashTable::external_key_type & EKey)
  • public clang::serialization::MultiOnDiskHashTable::data_type findAll()
  • private clang::serialization::MultiOnDiskHashTable::MergedTable * getMergedTable() const
  • private void removeOverriddenTables()
  • private clang::serialization::MultiOnDiskHashTable::table_range tables()
  • public ~MultiOnDiskHashTable<Info>()

Methods

MultiOnDiskHashTable<Info>()

Declared at: clang/lib/Serialization/MultiOnDiskHashTable.h:176

MultiOnDiskHashTable<Info>(
    MultiOnDiskHashTable<Info>&& O)

Declared at: clang/lib/Serialization/MultiOnDiskHashTable.h:178

Parameters

MultiOnDiskHashTable<Info>&& O

void add(
    clang::serialization::MultiOnDiskHashTable::
        file_type File,
    clang::serialization::MultiOnDiskHashTable::
        storage_type Data,
    Info InfoObj = type - parameter - 0 - 0())

Description

Add the table \p Data loaded from file \p File.

Declared at: clang/lib/Serialization/MultiOnDiskHashTable.h:197

Parameters

clang::serialization::MultiOnDiskHashTable:: file_type File
clang::serialization::MultiOnDiskHashTable:: storage_type Data
Info InfoObj = type-parameter-0-0()

void clear()

Description

Delete all our current on-disk tables.

Declared at: clang/lib/Serialization/MultiOnDiskHashTable.h:120

void condense()

Declared at: clang/lib/Serialization/MultiOnDiskHashTable.h:145

clang::serialization::MultiOnDiskHashTable::
    data_type
    find(const clang::serialization::
             MultiOnDiskHashTable::
                 external_key_type& EKey)

Description

Find and read the lookup results for \p EKey.

Declared at: clang/lib/Serialization/MultiOnDiskHashTable.h:228

Parameters

const clang::serialization::MultiOnDiskHashTable:: external_key_type& EKey

clang::serialization::MultiOnDiskHashTable::
    data_type
    findAll()

Description

Read all the lookup results into a single value. This only makes sense if merging values across keys is meaningful.

Declared at: clang/lib/Serialization/MultiOnDiskHashTable.h:261

clang::serialization::MultiOnDiskHashTable::
    MergedTable*
    getMergedTable() const

Declared at: clang/lib/Serialization/MultiOnDiskHashTable.h:113

void removeOverriddenTables()

Declared at: clang/lib/Serialization/MultiOnDiskHashTable.h:128

clang::serialization::MultiOnDiskHashTable::
    table_range
    tables()

Description

The current set of on-disk tables.

Declared at: clang/lib/Serialization/MultiOnDiskHashTable.h:105

~MultiOnDiskHashTable<Info>()

Declared at: clang/lib/Serialization/MultiOnDiskHashTable.h:194