LLVM  mainline
Classes | Public Types | Public Member Functions | Static Public Member Functions | Friends
llvm::ImmutableSet< ValT, ValInfo > Class Template Reference

#include <ImmutableSet.h>

List of all members.

Classes

class  Factory

Public Types

typedef ValInfo::value_type value_type
typedef ValInfo::value_type_ref value_type_ref
typedef ImutAVLTree< ValInfo > TreeTy
typedef ImutAVLValueIterator
< ImmutableSet
iterator

Public Member Functions

 ImmutableSet (TreeTy *R)
 Constructs a set from a pointer to a tree root.
 ImmutableSet (const ImmutableSet &X)
ImmutableSetoperator= (const ImmutableSet &X)
 ~ImmutableSet ()
bool contains (value_type_ref V) const
 Returns true if the set contains the specified value.
bool operator== (const ImmutableSet &RHS) const
bool operator!= (const ImmutableSet &RHS) const
TreeTygetRoot ()
TreeTygetRootWithoutRetain () const
bool isEmpty () const
 isEmpty - Return true if the set contains no elements.
bool isSingleton () const
 isSingleton - Return true if the set contains exactly one element.
template<typename Callback >
void foreach (Callback &C)
template<typename Callback >
void foreach ()
iterator begin () const
iterator end () const
unsigned getHeight () const
void Profile (FoldingSetNodeID &ID) const
void validateTree () const

Static Public Member Functions

static void Profile (FoldingSetNodeID &ID, const ImmutableSet &S)

Friends

class Factory

Detailed Description

template<typename ValT, typename ValInfo = ImutContainerInfo<ValT>>
class llvm::ImmutableSet< ValT, ValInfo >

Definition at line 958 of file ImmutableSet.h.


Member Typedef Documentation

template<typename ValT , typename ValInfo = ImutContainerInfo<ValT>>
typedef ImutAVLValueIterator<ImmutableSet> llvm::ImmutableSet< ValT, ValInfo >::iterator

Definition at line 1082 of file ImmutableSet.h.

template<typename ValT , typename ValInfo = ImutContainerInfo<ValT>>
typedef ImutAVLTree<ValInfo> llvm::ImmutableSet< ValT, ValInfo >::TreeTy

Definition at line 962 of file ImmutableSet.h.

template<typename ValT , typename ValInfo = ImutContainerInfo<ValT>>
typedef ValInfo::value_type llvm::ImmutableSet< ValT, ValInfo >::value_type

Definition at line 960 of file ImmutableSet.h.

template<typename ValT , typename ValInfo = ImutContainerInfo<ValT>>
typedef ValInfo::value_type_ref llvm::ImmutableSet< ValT, ValInfo >::value_type_ref

Definition at line 961 of file ImmutableSet.h.


Constructor & Destructor Documentation

template<typename ValT , typename ValInfo = ImutContainerInfo<ValT>>
llvm::ImmutableSet< ValT, ValInfo >::ImmutableSet ( TreeTy R) [inline, explicit]

Constructs a set from a pointer to a tree root.

In general one should use a Factory object to create sets instead of directly invoking the constructor, but there are cases where make this constructor public is useful.

Definition at line 972 of file ImmutableSet.h.

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

Referenced by llvm::ImmutableSet< ValT, ValInfo >::Factory::add(), llvm::ImmutableSet< ValT, ValInfo >::Factory::getEmptySet(), and llvm::ImmutableSet< ValT, ValInfo >::Factory::remove().

template<typename ValT , typename ValInfo = ImutContainerInfo<ValT>>
llvm::ImmutableSet< ValT, ValInfo >::ImmutableSet ( const ImmutableSet< ValT, ValInfo > &  X) [inline]

Definition at line 975 of file ImmutableSet.h.

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

template<typename ValT , typename ValInfo = ImutContainerInfo<ValT>>
llvm::ImmutableSet< ValT, ValInfo >::~ImmutableSet ( ) [inline]

Definition at line 986 of file ImmutableSet.h.

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


Member Function Documentation

template<typename ValT , typename ValInfo = ImutContainerInfo<ValT>>
iterator llvm::ImmutableSet< ValT, ValInfo >::begin ( ) const [inline]

Definition at line 1084 of file ImmutableSet.h.

template<typename ValT , typename ValInfo = ImutContainerInfo<ValT>>
bool llvm::ImmutableSet< ValT, ValInfo >::contains ( value_type_ref  V) const [inline]

Returns true if the set contains the specified value.

Definition at line 1044 of file ImmutableSet.h.

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

template<typename ValT , typename ValInfo = ImutContainerInfo<ValT>>
iterator llvm::ImmutableSet< ValT, ValInfo >::end ( ) const [inline]

Definition at line 1085 of file ImmutableSet.h.

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

Definition at line 1073 of file ImmutableSet.h.

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

template<typename ValT , typename ValInfo = ImutContainerInfo<ValT>>
template<typename Callback >
void llvm::ImmutableSet< ValT, ValInfo >::foreach ( ) [inline]

Definition at line 1076 of file ImmutableSet.h.

References llvm::C, and llvm::ImutAVLTree< ImutInfo >::foreach().

template<typename ValT , typename ValInfo = ImutContainerInfo<ValT>>
unsigned llvm::ImmutableSet< ValT, ValInfo >::getHeight ( ) const [inline]
template<typename ValT , typename ValInfo = ImutContainerInfo<ValT>>
TreeTy* llvm::ImmutableSet< ValT, ValInfo >::getRoot ( ) [inline]

Definition at line 1056 of file ImmutableSet.h.

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

template<typename ValT , typename ValInfo = ImutContainerInfo<ValT>>
TreeTy* llvm::ImmutableSet< ValT, ValInfo >::getRootWithoutRetain ( ) const [inline]

Definition at line 1061 of file ImmutableSet.h.

template<typename ValT , typename ValInfo = ImutContainerInfo<ValT>>
bool llvm::ImmutableSet< ValT, ValInfo >::isEmpty ( ) const [inline]

isEmpty - Return true if the set contains no elements.

Definition at line 1066 of file ImmutableSet.h.

template<typename ValT , typename ValInfo = ImutContainerInfo<ValT>>
bool llvm::ImmutableSet< ValT, ValInfo >::isSingleton ( ) const [inline]

isSingleton - Return true if the set contains exactly one element.

This method runs in constant time.

Definition at line 1070 of file ImmutableSet.h.

References llvm::ImmutableSet< ValT, ValInfo >::getHeight().

template<typename ValT , typename ValInfo = ImutContainerInfo<ValT>>
bool llvm::ImmutableSet< ValT, ValInfo >::operator!= ( const ImmutableSet< ValT, ValInfo > &  RHS) const [inline]

Definition at line 1052 of file ImmutableSet.h.

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

template<typename ValT , typename ValInfo = ImutContainerInfo<ValT>>
ImmutableSet& llvm::ImmutableSet< ValT, ValInfo >::operator= ( const ImmutableSet< ValT, ValInfo > &  X) [inline]
template<typename ValT , typename ValInfo = ImutContainerInfo<ValT>>
bool llvm::ImmutableSet< ValT, ValInfo >::operator== ( const ImmutableSet< ValT, ValInfo > &  RHS) const [inline]

Definition at line 1048 of file ImmutableSet.h.

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

template<typename ValT , typename ValInfo = ImutContainerInfo<ValT>>
static void llvm::ImmutableSet< ValT, ValInfo >::Profile ( FoldingSetNodeID ID,
const ImmutableSet< ValT, ValInfo > &  S 
) [inline, static]

Definition at line 1093 of file ImmutableSet.h.

References llvm::FoldingSetNodeID::AddPointer().

template<typename ValT , typename ValInfo = ImutContainerInfo<ValT>>
void llvm::ImmutableSet< ValT, ValInfo >::Profile ( FoldingSetNodeID ID) const [inline]
template<typename ValT , typename ValInfo = ImutContainerInfo<ValT>>
void llvm::ImmutableSet< ValT, ValInfo >::validateTree ( ) const [inline]

Definition at line 1103 of file ImmutableSet.h.

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


Friends And Related Function Documentation

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

Definition at line 1041 of file ImmutableSet.h.


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