VL
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
vl::VarTreeNode Class Reference

#include <VLBackwardTraversable.h>

Inheritance diagram for vl::VarTreeNode:
vl::ListTreeNode vl::ObjectTreeNode

Public Member Functions

 VarTreeNode (VarNodeRegistry &registry, vl::AbstractVar *data, VarTreeNode *parent)
 
virtual ~VarTreeNode ()
 
const std::string & GetId () const
 
int GetIndex () const
 
std::string GetPath () const
 
const VarNodeRegistry & GetRegistry () const
 
virtual bool IsList () const
 
virtual bool IsObject () const
 
virtual ObjectTreeNode * AsObject ()
 
virtual const ObjectTreeNode * AsObject () const
 
virtual ListTreeNode * AsList ()
 
virtual const ListTreeNode * AsList () const
 
void Update (Observable *sender, vl::VarPtr info) override
 
virtual int ChildCount () const
 
const vl::Var * GetData () const
 
virtual VarTreeNodePtr SharedFromThis ()
 
bool IsRoot () const
 
const VarTreeNode * GetParent () const
 
const void * DataPtr () const
 

Protected Member Functions

bool ForeachChildren (const std::function< bool(VarTreeNode &)> &pred)
 
void SetParent (VarTreeNode *newParent)
 

Protected Attributes

vl::AbstractVar * mData = nullptr
 
const void * mDataPtr = nullptr
 
VarTreeNode * mParent = nullptr
 
VarNodeRegistry & mRegistry
 
bool mToBeReplaced = false
 

Friends

class VarNodeRegistry
 
class ListTreeNode
 
class ObjectTreeNode
 

Constructor & Destructor Documentation

◆ VarTreeNode()

vl::VarTreeNode::VarTreeNode ( vl::VarNodeRegistry &  registry,
vl::AbstractVar *  data,
VarTreeNode *  parent 
)

◆ ~VarTreeNode()

vl::VarTreeNode::~VarTreeNode ( )
virtual

Member Function Documentation

◆ AsList() [1/2]

vl::ListTreeNode * vl::VarTreeNode::AsList ( )
virtual

Reimplemented in vl::ListTreeNode.

◆ AsList() [2/2]

const vl::ListTreeNode * vl::VarTreeNode::AsList ( ) const
virtual

Reimplemented in vl::ListTreeNode.

◆ AsObject() [1/2]

vl::ObjectTreeNode * vl::VarTreeNode::AsObject ( )
virtual

Reimplemented in vl::ObjectTreeNode.

◆ AsObject() [2/2]

const vl::ObjectTreeNode * vl::VarTreeNode::AsObject ( ) const
virtual

Reimplemented in vl::ObjectTreeNode.

◆ ChildCount()

int vl::VarTreeNode::ChildCount ( ) const
virtual

Reimplemented in vl::ObjectTreeNode, and vl::ListTreeNode.

◆ DataPtr()

const void * vl::VarTreeNode::DataPtr ( ) const
inline

◆ ForeachChildren()

bool vl::VarTreeNode::ForeachChildren ( const std::function< bool(VarTreeNode &)> &  pred)
protected

◆ GetData()

const vl::Var * vl::VarTreeNode::GetData ( ) const
inline

◆ GetId()

const std::string & vl::VarTreeNode::GetId ( ) const

◆ GetIndex()

int vl::VarTreeNode::GetIndex ( ) const

◆ GetParent()

const VarTreeNode * vl::VarTreeNode::GetParent ( ) const
inline

◆ GetPath()

std::string vl::VarTreeNode::GetPath ( ) const

◆ GetRegistry()

const vl::VarNodeRegistry & vl::VarTreeNode::GetRegistry ( ) const

◆ IsList()

bool vl::VarTreeNode::IsList ( ) const
virtual

Reimplemented in vl::ListTreeNode.

◆ IsObject()

bool vl::VarTreeNode::IsObject ( ) const
virtual

Reimplemented in vl::ObjectTreeNode.

◆ IsRoot()

bool vl::VarTreeNode::IsRoot ( ) const
inline

◆ SetParent()

void vl::VarTreeNode::SetParent ( VarTreeNode *  newParent)
inlineprotected

◆ SharedFromThis()

vl::VarTreeNodePtr vl::VarTreeNode::SharedFromThis ( )
virtual

Reimplemented in vl::ObjectTreeNode, and vl::ListTreeNode.

◆ Update()

void vl::VarTreeNode::Update ( Observable *  sender,
vl::VarPtr  info 
)
override

Friends And Related Function Documentation

◆ ListTreeNode

friend class ListTreeNode
friend

◆ ObjectTreeNode

friend class ObjectTreeNode
friend

◆ VarNodeRegistry

friend class VarNodeRegistry
friend

Member Data Documentation

◆ mData

vl::AbstractVar* vl::VarTreeNode::mData = nullptr
protected

◆ mDataPtr

const void* vl::VarTreeNode::mDataPtr = nullptr
protected

◆ mParent

VarTreeNode* vl::VarTreeNode::mParent = nullptr
protected

◆ mRegistry

VarNodeRegistry& vl::VarTreeNode::mRegistry
protected

◆ mToBeReplaced

bool vl::VarTreeNode::mToBeReplaced = false
protected

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