2 * Copyright 2012-2016, Rene Gollent, rene@gollent.com.
3 * Distributed under the terms of the MIT License.
5 #ifndef VALUE_NODE_MANAGER_H
6 #define VALUE_NODE_MANAGER_H
8 #include <Referenceable.h>
10 #include "ValueNodeContainer.h"
17 class ValueNodeManager
: public BReferenceable
,
18 private ValueNodeContainer::Listener
{
20 ValueNodeManager(bool addFrameNodes
= true);
21 virtual ~ValueNodeManager();
23 status_t
SetStackFrame(::Thread
* thread
,
27 ValueNodeContainer::Listener
* listener
);
29 ValueNodeContainer::Listener
* listener
);
31 virtual void ValueNodeChanged(ValueNodeChild
* nodeChild
,
32 ValueNode
* oldNode
, ValueNode
* newNode
);
33 virtual void ValueNodeChildrenCreated(ValueNode
* node
);
34 virtual void ValueNodeChildrenDeleted(ValueNode
* node
);
35 virtual void ValueNodeValueChanged(ValueNode
* node
);
37 ValueNodeContainer
* GetContainer() const { return fContainer
; };
39 status_t
AddChildNodes(ValueNodeChild
* nodeChild
);
42 typedef BObjectList
<ValueNodeContainer::Listener
> ListenerList
;
44 void _AddNode(Variable
* variable
);
45 status_t
_CreateValueNode(ValueNodeChild
* nodeChild
);
49 ValueNodeContainer
* fContainer
;
50 StackFrame
* fStackFrame
;
52 ListenerList fListeners
;
55 #endif // VALUE_NODE_MANAGER_H