LLVM 23.0.0git
llvm::cas::ReferenceBase Class Reference

Base class for references to things in ObjectStore. More...

#include "llvm/CAS/CASReference.h"

Inheritance diagram for llvm::cas::ReferenceBase:
[legend]

Classes

struct  DenseMapEmptyTag

Public Member Functions

uint64_t getInternalRef (const ObjectStore &ExpectedCAS) const
 Get an internal reference.
unsigned getDenseMapHash () const
 Helper functions for DenseMapInfo.
bool isDenseMapEmpty () const
bool isDenseMapTombstone () const
bool isDenseMapSentinel () const

Protected Member Functions

void print (raw_ostream &OS, const ObjectHandle &This) const
void print (raw_ostream &OS, const ObjectRef &This) const
bool hasSameInternalRef (const ReferenceBase &RHS) const
 ReferenceBase (const ObjectStore *CAS, uint64_t InternalRef, bool IsHandle)
 ReferenceBase (DenseMapEmptyTag)

Static Protected Member Functions

static constexpr uint64_t getDenseMapEmptyRef ()
static constexpr uint64_t getDenseMapTombstoneRef ()

Friends

class ObjectStore

Detailed Description

Base class for references to things in ObjectStore.

Definition at line 27 of file CASReference.h.

Constructor & Destructor Documentation

◆ ReferenceBase() [1/2]

llvm::cas::ReferenceBase::ReferenceBase ( const ObjectStore * CAS,
uint64_t InternalRef,
bool IsHandle )
inlineprotected

◆ ReferenceBase() [2/2]

llvm::cas::ReferenceBase::ReferenceBase ( DenseMapEmptyTag )
inlineexplicitprotected

Definition at line 78 of file CASReference.h.

References getDenseMapEmptyRef().

Member Function Documentation

◆ getDenseMapEmptyRef()

constexpr uint64_t llvm::cas::ReferenceBase::getDenseMapEmptyRef ( )
inlinestaticconstexprprotected

Definition at line 30 of file CASReference.h.

Referenced by isDenseMapEmpty(), ReferenceBase(), and ReferenceBase().

◆ getDenseMapHash()

unsigned llvm::cas::ReferenceBase::getDenseMapHash ( ) const
inline

Helper functions for DenseMapInfo.

Definition at line 43 of file CASReference.h.

References llvm::hash_value().

◆ getDenseMapTombstoneRef()

constexpr uint64_t llvm::cas::ReferenceBase::getDenseMapTombstoneRef ( )
inlinestaticconstexprprotected

Definition at line 31 of file CASReference.h.

Referenced by isDenseMapTombstone(), and ReferenceBase().

◆ getInternalRef()

uint64_t llvm::cas::ReferenceBase::getInternalRef ( const ObjectStore & ExpectedCAS) const
inline

Get an internal reference.

Definition at line 35 of file CASReference.h.

References assert(), and ObjectStore.

◆ hasSameInternalRef()

bool llvm::cas::ReferenceBase::hasSameInternalRef ( const ReferenceBase & RHS) const
inlineprotected

Definition at line 58 of file CASReference.h.

References assert(), isDenseMapSentinel(), ReferenceBase(), and RHS.

◆ isDenseMapEmpty()

bool llvm::cas::ReferenceBase::isDenseMapEmpty ( ) const
inline

Definition at line 46 of file CASReference.h.

References getDenseMapEmptyRef().

Referenced by isDenseMapSentinel().

◆ isDenseMapSentinel()

bool llvm::cas::ReferenceBase::isDenseMapSentinel ( ) const
inline

Definition at line 50 of file CASReference.h.

References isDenseMapEmpty(), and isDenseMapTombstone().

Referenced by hasSameInternalRef().

◆ isDenseMapTombstone()

bool llvm::cas::ReferenceBase::isDenseMapTombstone ( ) const
inline

Definition at line 47 of file CASReference.h.

References getDenseMapTombstoneRef().

Referenced by isDenseMapSentinel().

◆ print() [1/2]

void ReferenceBase::print ( raw_ostream & OS,
const ObjectHandle & This ) const
protected

Definition at line 44 of file ObjectStore.cpp.

References assert(), and printReferenceBase().

Referenced by llvm::cas::ObjectHandle::print(), and llvm::cas::ObjectRef::print().

◆ print() [2/2]

void ReferenceBase::print ( raw_ostream & OS,
const ObjectRef & This ) const
protected

Definition at line 49 of file ObjectStore.cpp.

References assert(), and printReferenceBase().

◆ ObjectStore

friend class ObjectStore
friend

Definition at line 68 of file CASReference.h.

References ObjectStore.

Referenced by getInternalRef(), ObjectStore, and ReferenceBase().


The documentation for this class was generated from the following files: