clang API Documentation

Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes
clang::LazyGenerationalUpdatePtr< Owner, T, Update > Struct Template Reference

A lazy value (of type T) that is within an AST node of type Owner, where the value might change in later generations of the external AST source. More...

#include <ExternalASTSource.h>

Collaboration diagram for clang::LazyGenerationalUpdatePtr< Owner, T, Update >:
Collaboration graph
[legend]

List of all members.

Classes

struct  LazyData

Public Types

enum  NotUpdatedTag { NotUpdated }
typedef llvm::PointerUnion< T,
LazyData * > 
ValueType

Public Member Functions

 LazyGenerationalUpdatePtr (ValueType V)
 LazyGenerationalUpdatePtr (const ASTContext &Ctx, T Value=T())
 LazyGenerationalUpdatePtr (NotUpdatedTag, T Value=T())
void markIncomplete ()
 Forcibly set this pointer (which must be lazy) as needing updates.
void set (T NewValue)
 Set the value of this pointer, in the current generation.
void setNotUpdated (T NewValue)
 Set the value of this pointer, for this and all future generations.
get (Owner O)
 Get the value of this pointer, updating its owner if necessary.
getNotUpdated () const
 Get the most recently computed value of this pointer without updating it.
void * getOpaqueValue ()

Static Public Member Functions

static ValueType makeValue (const ASTContext &Ctx, T Value)
 Create the representation of a LazyGenerationalUpdatePtr.
static LazyGenerationalUpdatePtr getFromOpaqueValue (void *Ptr)

Public Attributes

ValueType Value

Detailed Description

template<typename Owner, typename T, void(ExternalASTSource::*)(Owner) Update>
struct clang::LazyGenerationalUpdatePtr< Owner, T, Update >

A lazy value (of type T) that is within an AST node of type Owner, where the value might change in later generations of the external AST source.

Definition at line 376 of file ExternalASTSource.h.


Member Typedef Documentation

template<typename Owner, typename T, void(ExternalASTSource::*)(Owner) Update>
typedef llvm::PointerUnion<T, LazyData*> clang::LazyGenerationalUpdatePtr< Owner, T, Update >::ValueType

Definition at line 388 of file ExternalASTSource.h.


Member Enumeration Documentation

template<typename Owner, typename T, void(ExternalASTSource::*)(Owner) Update>
enum clang::LazyGenerationalUpdatePtr::NotUpdatedTag

Create a pointer that is not potentially updated by later generations of the external AST source.

Enumerator:
NotUpdated 

Definition at line 402 of file ExternalASTSource.h.


Constructor & Destructor Documentation

template<typename Owner, typename T, void(ExternalASTSource::*)(Owner) Update>
clang::LazyGenerationalUpdatePtr< Owner, T, Update >::LazyGenerationalUpdatePtr ( ValueType  V) [inline]
template<typename Owner, typename T, void(ExternalASTSource::*)(Owner) Update>
clang::LazyGenerationalUpdatePtr< Owner, T, Update >::LazyGenerationalUpdatePtr ( const ASTContext Ctx,
Value = T() 
) [inline, explicit]

Definition at line 397 of file ExternalASTSource.h.

template<typename Owner, typename T, void(ExternalASTSource::*)(Owner) Update>
clang::LazyGenerationalUpdatePtr< Owner, T, Update >::LazyGenerationalUpdatePtr ( NotUpdatedTag  ,
Value = T() 
) [inline]

Definition at line 403 of file ExternalASTSource.h.


Member Function Documentation

template<typename Owner, typename T, void(ExternalASTSource::*)(Owner) Update>
T clang::LazyGenerationalUpdatePtr< Owner, T, Update >::get ( Owner  O) [inline]

Get the value of this pointer, updating its owner if necessary.

Definition at line 424 of file ExternalASTSource.h.

template<typename Owner, typename T, void(ExternalASTSource::*)(Owner) Update>
static LazyGenerationalUpdatePtr clang::LazyGenerationalUpdatePtr< Owner, T, Update >::getFromOpaqueValue ( void *  Ptr) [inline, static]
template<typename Owner, typename T, void(ExternalASTSource::*)(Owner) Update>
T clang::LazyGenerationalUpdatePtr< Owner, T, Update >::getNotUpdated ( ) const [inline]

Get the most recently computed value of this pointer without updating it.

Definition at line 436 of file ExternalASTSource.h.

template<typename Owner, typename T, void(ExternalASTSource::*)(Owner) Update>
void* clang::LazyGenerationalUpdatePtr< Owner, T, Update >::getOpaqueValue ( ) [inline]
template<typename Owner , typename T , void(clang::ExternalASTSource::*)(Owner) Update>
template clang::LazyGenerationalUpdatePtr< const Decl *, Decl *,&ExternalASTSource::CompleteRedeclChain >::ValueType clang::LazyGenerationalUpdatePtr< Owner, T, Update >::makeValue ( const ASTContext Ctx,
Value 
) [static]

Create the representation of a LazyGenerationalUpdatePtr.

Definition at line 2464 of file ASTContext.h.

References clang::ASTContext::getExternalSource().

template<typename Owner, typename T, void(ExternalASTSource::*)(Owner) Update>
void clang::LazyGenerationalUpdatePtr< Owner, T, Update >::markIncomplete ( ) [inline]

Forcibly set this pointer (which must be lazy) as needing updates.

Definition at line 407 of file ExternalASTSource.h.

template<typename Owner, typename T, void(ExternalASTSource::*)(Owner) Update>
void clang::LazyGenerationalUpdatePtr< Owner, T, Update >::set ( NewValue) [inline]

Set the value of this pointer, in the current generation.

Definition at line 412 of file ExternalASTSource.h.

Referenced by clang::Redeclarable< decl_type >::DeclLink::setLatest().

template<typename Owner, typename T, void(ExternalASTSource::*)(Owner) Update>
void clang::LazyGenerationalUpdatePtr< Owner, T, Update >::setNotUpdated ( NewValue) [inline]

Set the value of this pointer, for this and all future generations.

Definition at line 421 of file ExternalASTSource.h.


Member Data Documentation

template<typename Owner, typename T, void(ExternalASTSource::*)(Owner) Update>
ValueType clang::LazyGenerationalUpdatePtr< Owner, T, Update >::Value

Definition at line 389 of file ExternalASTSource.h.


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