vfs: check userland buffers before reading them.
[haiku.git] / headers / private / debugger / value / value_nodes / AddressValueNode.h
blob009fb9207062407e959b034d9da9d7998721cdc7
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 ADDRESS_VALUE_NODE_H
7 #define ADDRESS_VALUE_NODE_H
10 #include "ValueNode.h"
13 class AddressValueNodeChild;
14 class AddressType;
17 class AddressValueNode : public ValueNode {
18 public:
19 AddressValueNode(ValueNodeChild* nodeChild,
20 AddressType* type);
21 virtual ~AddressValueNode();
23 virtual Type* GetType() const;
25 virtual status_t ResolvedLocationAndValue(
26 ValueLoader* valueLoader,
27 ValueLocation*& _location,
28 Value*& _value);
30 // locking required
32 virtual status_t CreateChildren(TeamTypeInformation* info);
33 virtual int32 CountChildren() const;
34 virtual ValueNodeChild* ChildAt(int32 index) const;
36 private:
37 AddressType* fType;
38 AddressValueNodeChild* fChild;
42 class AddressValueNodeChild : public ValueNodeChild {
43 public:
44 AddressValueNodeChild(AddressValueNode* parent,
45 const BString& name, Type* type);
46 virtual ~AddressValueNodeChild();
48 virtual const BString& Name() const;
49 virtual Type* GetType() const;
50 virtual ValueNode* Parent() const;
52 virtual status_t ResolveLocation(ValueLoader* valueLoader,
53 ValueLocation*& _location);
55 private:
56 AddressValueNode* fParent;
57 BString fName;
58 Type* fType;
62 #endif // ADDRESS_VALUE_NODE_H