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 VarNodeRegistryGetRegistry () const
 
virtual bool IsList () const
 
virtual bool IsObject () const
 
virtual ObjectTreeNodeAsObject ()
 
virtual const ObjectTreeNodeAsObject () const
 
virtual ListTreeNodeAsList ()
 
virtual const ListTreeNodeAsList () 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 VarTreeNodeGetParent () 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
 
VarTreeNodemParent = nullptr
 
VarNodeRegistrymRegistry
 
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: