1/*
2 * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef VARIABLES_VIEW_STATE_HISTORY_H
6#define VARIABLES_VIEW_STATE_HISTORY_H
7
8
9#include <util/OpenHashTable.h>
10
11
12class FunctionID;
13class VariablesViewState;
14
15
16class VariablesViewStateHistory {
17public:
18								VariablesViewStateHistory();
19	virtual						~VariablesViewStateHistory();
20
21			status_t			Init();
22
23			VariablesViewState*	GetState(thread_id threadID,
24									FunctionID* functionID) const;
25			VariablesViewState*	GetState(FunctionID* functionID) const;
26
27			status_t			SetState(thread_id threadID,
28									FunctionID* functionID,
29									VariablesViewState* state);
30
31private:
32			struct Key;
33			struct StateEntry;
34			struct StateEntryHashDefinition;
35
36			typedef BOpenHashTable<StateEntryHashDefinition> StateTable;
37
38private:
39			StateTable*			fStates;
40};
41
42
43#endif	// VARIABLES_VIEW_STATE_HISTORY_H
44