2 * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
3 * Distributed under the terms of the MIT License.
5 #ifndef STACK_FRAME_VALUE_INFOS_H
6 #define STACK_FRAME_VALUE_INFOS_H
9 #include <Referenceable.h>
10 #include <util/OpenHashTable.h>
16 class TypeComponentPath
;
20 class StackFrameValueInfos
: public BReferenceable
{
22 StackFrameValueInfos();
23 virtual ~StackFrameValueInfos();
27 bool GetInfo(ObjectID
* variable
,
28 const TypeComponentPath
* path
,
29 Type
** _type
, ValueLocation
** _location
)
32 inline bool GetInfo(ObjectID
* variable
,
33 const TypeComponentPath
& path
,
34 Type
** _type
, ValueLocation
** _location
)
37 bool HasInfo(ObjectID
* variable
,
38 const TypeComponentPath
* path
) const;
39 inline bool HasInfo(ObjectID
* variable
,
40 const TypeComponentPath
& path
) const;
41 status_t
SetInfo(ObjectID
* variable
,
42 TypeComponentPath
* path
, Type
* type
,
43 ValueLocation
* location
);
48 struct InfoEntryHashDefinition
;
50 typedef BOpenHashTable
<InfoEntryHashDefinition
> ValueTable
;
53 StackFrameValueInfos
& operator=(const StackFrameValueInfos
& other
);
63 StackFrameValueInfos::GetInfo(ObjectID
* variable
, const TypeComponentPath
& path
,
64 Type
** _type
, ValueLocation
** _location
) const
66 return GetInfo(variable
, &path
, _type
, _location
);
71 StackFrameValueInfos::HasInfo(ObjectID
* variable
, const TypeComponentPath
& path
)
74 return HasInfo(variable
, &path
);
78 #endif // STACK_FRAME_VALUE_INFOS_H