• Skip to content
  • Skip to link menu
KDE 4.4 API Reference
  • KDE API Reference
  • KDevelop Platform Libraries
  • Sitemap
  • Contact Us
 

language/duchain

KDevelop::DUChainBase

KDevelop::DUChainBase Class Reference

Base class for definition-use chain objects. More...

#include <duchainbase.h>

Inheritance diagram for KDevelop::DUChainBase:
Inheritance graph
[legend]

List of all members.

Public Types

enum  { Identity = 1 }

Public Member Functions

 DUChainBase (DUChainBaseData &dd)
 DUChainBase (const SimpleRange &range)
virtual ~DUChainBase ()
void makeDynamic ()
virtual void setData (DocumentRangeObjectData *, bool constructorCalled=true)
virtual TopDUContext * topContext () const
virtual IndexedString url () const
const KSharedPtr
< DUChainPointerData > & 
weakPointer () const

Protected Member Functions

 DUChainBase (DUChainBaseData &dd, const SimpleRange &range)
 DUChainBase (DUChainBase &rhs)
void aboutToWriteData ()
virtual bool canWriteData () const
virtual void rebuildDynamicData (DUContext *parent, uint ownIndex)

Detailed Description

Base class for definition-use chain objects.

This class provides a thread safe pointer type to reference duchain objects while the DUChain mutex is not held (

See also:
DUChainPointer)

Definition at line 97 of file duchainbase.h.


Constructor & Destructor Documentation

KDevelop::DUChainBase::DUChainBase ( const SimpleRange &  range  ) 

Constructor.

Parameters:
url url of the document where this occurred
range range of the alias declaration's identifier

Definition at line 39 of file duchainbase.cpp.

KDevelop::DUChainBase::~DUChainBase (  )  [virtual]

Destructor.

Definition at line 77 of file duchainbase.cpp.

KDevelop::DUChainBase::DUChainBase ( DUChainBase &  rhs  )  [protected]

Creates a duchain object that uses the data of the given one, and will not delete it on destruction.

The data will be shared, and this object must be deleted before the given one is.

Definition at line 55 of file duchainbase.cpp.

KDevelop::DUChainBase::DUChainBase ( DUChainBaseData &  dd,
const SimpleRange &  range 
) [protected]

Constructor for copy constructors in subclasses.

Parameters:
dd data to use.
url document url in which this object is located.
range text range which this object covers.

Definition at line 45 of file duchainbase.cpp.


Member Function Documentation

void KDevelop::DUChainBase::makeDynamic (  ) 

After this was called, the data-pointer is dynamic. It is cloned if needed.

Definition at line 117 of file duchainbase.cpp.

void KDevelop::DUChainBase::rebuildDynamicData ( DUContext *  parent,
uint  ownIndex 
) [protected, virtual]

Called after loading to rebuild the dynamic data. If this is a context, this should recursively work on all sub-contexts.

Reimplemented in KDevelop::TopDUContext.

Definition at line 103 of file duchainbase.cpp.

void KDevelop::DUChainBase::setData ( DocumentRangeObjectData *  data,
bool  constructorCalled = true 
) [virtual]

This must only be used to change the storage-location or storage-kind(dynamic/constant) of the data, but the data must always be equal!

Reimplemented from KDevelop::DocumentRangeObject.

Definition at line 69 of file duchainbase.cpp.

TopDUContext * KDevelop::DUChainBase::topContext (  )  const [virtual]

Determine the top context to which this object belongs.

Reimplemented in KDevelop::Declaration, KDevelop::DUContext, KDevelop::ParsingEnvironmentFile, and KDevelop::TopDUContext.

Definition at line 86 of file duchainbase.cpp.

const KSharedPtr< DUChainPointerData > & KDevelop::DUChainBase::weakPointer (  )  const

Returns a special pointer that can be used to track the existence of a du-chain object across locking-cycles.

See also:
DUChainPointerData

Definition at line 91 of file duchainbase.cpp.


The documentation for this class was generated from the following files:
  • duchainbase.h
  • duchainbase.cpp

language/duchain

Skip menu "language/duchain"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

KDevelop Platform Libraries

Skip menu "KDevelop Platform Libraries"
  • interfaces
  • language
  •   codegen
  •   duchain
  •   editor
  • outputview
  • project
  • shell
  • sublime
  • util
  • vcs
Generated for KDevelop Platform Libraries by doxygen 1.5.9-20090814
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal