haiku/src/apps/debugger/value/value_nodes/BListValueNode.h
Rene Gollent fad00fb02a Add type handler and corresponding value node for BList.
- When a debugging libbe is present, and a BList is encountered,
  we now read its internal structure and expose it as if it were an
  array of pointers. Combined with typecasting, this means one can
  now easily inspect the content of such a list.
2012-12-02 15:26:19 -05:00

54 lines
1.1 KiB
C++

/*
* Copyright 2012, Rene Gollent, rene@gollent.com.
* Distributed under the terms of the MIT License.
*/
#ifndef BLIST_VALUE_NODE_H
#define BLIST_VALUE_NODE_H
#include <List.h>
#include <Variant.h>
#include <ObjectList.h>
#include "ValueLocation.h"
#include "ValueNode.h"
class CompoundType;
class BListValueNode : public ValueNode {
public:
BListValueNode(ValueNodeChild* nodeChild,
Type* type);
virtual ~BListValueNode();
virtual Type* GetType() const;
virtual status_t ResolvedLocationAndValue(
ValueLoader* valueLoader,
ValueLocation*& _location,
Value*& _value);
virtual bool ChildCreationNeedsValue() const
{ return true; }
virtual status_t CreateChildren();
virtual int32 CountChildren() const;
virtual ValueNodeChild* ChildAt(int32 index) const;
private:
class BListElementNodeChild;
typedef BObjectList<ValueNodeChild> ChildNodeList;
private:
Type* fType;
ChildNodeList fChildren;
ValueLoader* fLoader;
BVariant fDataLocation;
int32 fItemCount;
};
#endif // BLIST_VALUE_NODE_H