LLVM API Documentation

llvm::ImmutableMap< KeyT, ValT, ValInfo > Class Template Reference

#include <ImmutableMap.h>

Collaboration diagram for llvm::ImmutableMap< KeyT, ValT, ValInfo >:
[legend]

List of all members.

Public Types

typedef ValInfo::value_type value_type
typedef ValInfo::value_type_ref value_type_ref
typedef ValInfo::key_type key_type
typedef ValInfo::key_type_ref key_type_ref
typedef ValInfo::data_type data_type
typedef ValInfo::data_type_ref data_type_ref
typedef ImutAVLTree< ValInfo > TreeTy

Public Member Functions

 ImmutableMap (const TreeTy *R)
bool contains (key_type_ref K) const
bool operator== (ImmutableMap RHS) const
bool operator!= (ImmutableMap RHS) const
TreeTy * getRoot () const
bool isEmpty () const
template<typename Callback>
void foreach (Callback &C)
template<typename Callback>
void foreach ()
void verify () const
iterator begin () const
iterator end () const
data_type * lookup (key_type_ref K) const
unsigned getHeight () const
void Profile (FoldingSetNodeID &ID) const

Static Public Member Functions

static void Profile (FoldingSetNodeID &ID, const ImmutableMap &M)

Friends

class Factory

Classes

struct  CBWrapper
struct  CBWrapperRef
class  Factory
class  iterator


Detailed Description

template<typename KeyT, typename ValT, typename ValInfo = ImutKeyValueInfo<KeyT,ValT>>
class llvm::ImmutableMap< KeyT, ValT, ValInfo >

Definition at line 61 of file ImmutableMap.h.


Member Typedef Documentation

template<typename KeyT, typename ValT, typename ValInfo = ImutKeyValueInfo<KeyT,ValT>>
typedef ValInfo::value_type llvm::ImmutableMap< KeyT, ValT, ValInfo >::value_type

Definition at line 63 of file ImmutableMap.h.

template<typename KeyT, typename ValT, typename ValInfo = ImutKeyValueInfo<KeyT,ValT>>
typedef ValInfo::value_type_ref llvm::ImmutableMap< KeyT, ValT, ValInfo >::value_type_ref

Definition at line 64 of file ImmutableMap.h.

template<typename KeyT, typename ValT, typename ValInfo = ImutKeyValueInfo<KeyT,ValT>>
typedef ValInfo::key_type llvm::ImmutableMap< KeyT, ValT, ValInfo >::key_type

Definition at line 65 of file ImmutableMap.h.

template<typename KeyT, typename ValT, typename ValInfo = ImutKeyValueInfo<KeyT,ValT>>
typedef ValInfo::key_type_ref llvm::ImmutableMap< KeyT, ValT, ValInfo >::key_type_ref

Definition at line 66 of file ImmutableMap.h.

template<typename KeyT, typename ValT, typename ValInfo = ImutKeyValueInfo<KeyT,ValT>>
typedef ValInfo::data_type llvm::ImmutableMap< KeyT, ValT, ValInfo >::data_type

Definition at line 67 of file ImmutableMap.h.

template<typename KeyT, typename ValT, typename ValInfo = ImutKeyValueInfo<KeyT,ValT>>
typedef ValInfo::data_type_ref llvm::ImmutableMap< KeyT, ValT, ValInfo >::data_type_ref

Definition at line 68 of file ImmutableMap.h.

template<typename KeyT, typename ValT, typename ValInfo = ImutKeyValueInfo<KeyT,ValT>>
typedef ImutAVLTree<ValInfo> llvm::ImmutableMap< KeyT, ValT, ValInfo >::TreeTy

Definition at line 69 of file ImmutableMap.h.


Constructor & Destructor Documentation

template<typename KeyT, typename ValT, typename ValInfo = ImutKeyValueInfo<KeyT,ValT>>
llvm::ImmutableMap< KeyT, ValT, ValInfo >::ImmutableMap ( const TreeTy *  R  )  [inline, explicit]

Constructs a map from a pointer to a tree root. In general one should use a Factory object to create maps instead of directly invoking the constructor, but there are cases where make this constructor public is useful.

Definition at line 79 of file ImmutableMap.h.

Referenced by llvm::ImmutableMap< KeyT, ValT, ValInfo >::Factory::Add(), llvm::ImmutableMap< KeyT, ValT, ValInfo >::Factory::GetEmptyMap(), and llvm::ImmutableMap< KeyT, ValT, ValInfo >::Factory::Remove().


Member Function Documentation

template<typename KeyT, typename ValT, typename ValInfo = ImutKeyValueInfo<KeyT,ValT>>
bool llvm::ImmutableMap< KeyT, ValT, ValInfo >::contains ( key_type_ref  K  )  const [inline]

Definition at line 108 of file ImmutableMap.h.

References Root.

template<typename KeyT, typename ValT, typename ValInfo = ImutKeyValueInfo<KeyT,ValT>>
bool llvm::ImmutableMap< KeyT, ValT, ValInfo >::operator== ( ImmutableMap< KeyT, ValT, ValInfo >  RHS  )  const [inline]

Definition at line 113 of file ImmutableMap.h.

References llvm::ImmutableMap< KeyT, ValT, ValInfo >::Root, and Root.

template<typename KeyT, typename ValT, typename ValInfo = ImutKeyValueInfo<KeyT,ValT>>
bool llvm::ImmutableMap< KeyT, ValT, ValInfo >::operator!= ( ImmutableMap< KeyT, ValT, ValInfo >  RHS  )  const [inline]

Definition at line 117 of file ImmutableMap.h.

References llvm::ImmutableMap< KeyT, ValT, ValInfo >::Root, and Root.

template<typename KeyT, typename ValT, typename ValInfo = ImutKeyValueInfo<KeyT,ValT>>
TreeTy* llvm::ImmutableMap< KeyT, ValT, ValInfo >::getRoot (  )  const [inline]

Definition at line 121 of file ImmutableMap.h.

References Root.

template<typename KeyT, typename ValT, typename ValInfo = ImutKeyValueInfo<KeyT,ValT>>
bool llvm::ImmutableMap< KeyT, ValT, ValInfo >::isEmpty (  )  const [inline]

Definition at line 123 of file ImmutableMap.h.

References Root.

template<typename KeyT, typename ValT, typename ValInfo = ImutKeyValueInfo<KeyT,ValT>>
template<typename Callback>
void llvm::ImmutableMap< KeyT, ValT, ValInfo >::foreach ( Callback &  C  )  [inline]

Definition at line 146 of file ImmutableMap.h.

References llvm::ImutAVLTree< ImutInfo >::foreach().

template<typename KeyT, typename ValT, typename ValInfo = ImutKeyValueInfo<KeyT,ValT>>
template<typename Callback>
void llvm::ImmutableMap< KeyT, ValT, ValInfo >::foreach (  )  [inline]

Definition at line 154 of file ImmutableMap.h.

References llvm::ImutAVLTree< ImutInfo >::foreach().

template<typename KeyT, typename ValT, typename ValInfo = ImutKeyValueInfo<KeyT,ValT>>
void llvm::ImmutableMap< KeyT, ValT, ValInfo >::verify (  )  const [inline]

Definition at line 165 of file ImmutableMap.h.

References llvm::ImutAVLTree< ImutInfo >::verify().

template<typename KeyT, typename ValT, typename ValInfo = ImutKeyValueInfo<KeyT,ValT>>
iterator llvm::ImmutableMap< KeyT, ValT, ValInfo >::begin (  )  const [inline]

Definition at line 194 of file ImmutableMap.h.

References Root.

template<typename KeyT, typename ValT, typename ValInfo = ImutKeyValueInfo<KeyT,ValT>>
iterator llvm::ImmutableMap< KeyT, ValT, ValInfo >::end (  )  const [inline]

Definition at line 195 of file ImmutableMap.h.

template<typename KeyT, typename ValT, typename ValInfo = ImutKeyValueInfo<KeyT,ValT>>
data_type* llvm::ImmutableMap< KeyT, ValT, ValInfo >::lookup ( key_type_ref  K  )  const [inline]

Definition at line 197 of file ImmutableMap.h.

References llvm::ImutAVLTree< ImutInfo >::getValue(), Root, and T.

template<typename KeyT, typename ValT, typename ValInfo = ImutKeyValueInfo<KeyT,ValT>>
unsigned llvm::ImmutableMap< KeyT, ValT, ValInfo >::getHeight (  )  const [inline]

Definition at line 210 of file ImmutableMap.h.

References Root.

template<typename KeyT, typename ValT, typename ValInfo = ImutKeyValueInfo<KeyT,ValT>>
static void llvm::ImmutableMap< KeyT, ValT, ValInfo >::Profile ( FoldingSetNodeID &  ID,
const ImmutableMap< KeyT, ValT, ValInfo > &  M 
) [inline, static]

template<typename KeyT, typename ValT, typename ValInfo = ImutKeyValueInfo<KeyT,ValT>>
void llvm::ImmutableMap< KeyT, ValT, ValInfo >::Profile ( FoldingSetNodeID &  ID  )  const [inline]


Friends And Related Function Documentation

template<typename KeyT, typename ValT, typename ValInfo = ImutKeyValueInfo<KeyT,ValT>>
friend class Factory [friend]

Definition at line 106 of file ImmutableMap.h.


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