btrfs: [] on the end of a struct field is a variable length array.
[haiku.git] / headers / private / debugger / value / value_nodes / CompoundValueNode.h
blob51a705ceb6a07bd5334fb9f970b1fd3b7dc02932
1 /*
2 * Copyright 2015, Rene Gollent, rene@gollent.com.
3 * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
4 * Distributed under the terms of the MIT License.
5 */
6 #ifndef COMPOUND_VALUE_NODE_H
7 #define COMPOUND_VALUE_NODE_H
10 #include <ObjectList.h>
12 #include "ValueNode.h"
15 class CompoundType;
18 class CompoundValueNode : public ValueNode {
19 public:
20 CompoundValueNode(ValueNodeChild* nodeChild,
21 CompoundType* type);
22 virtual ~CompoundValueNode();
24 virtual Type* GetType() const;
26 virtual status_t ResolvedLocationAndValue(
27 ValueLoader* valueLoader,
28 ValueLocation*& _location,
29 Value*& _value);
31 // locking required
33 virtual status_t CreateChildren(TeamTypeInformation* info);
34 virtual int32 CountChildren() const;
35 virtual ValueNodeChild* ChildAt(int32 index) const;
37 private:
38 class Child;
39 class BaseTypeChild;
40 class MemberChild;
42 // for GCC2
43 friend class BaseTypeChild;
44 friend class MemberChild;
46 typedef BObjectList<Child> ChildList;
48 private:
49 CompoundType* fType;
50 ChildList fChildren;
54 #endif // ADDRESS_VALUE_NODE_H