1/*
2 * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef VARIABLE_H
6#define VARIABLE_H
7
8
9#include <String.h>
10
11#include <Referenceable.h>
12
13
14class CpuState;
15class ObjectID;
16class Type;
17class ValueLocation;
18
19
20class Variable : public BReferenceable {
21public:
22								Variable(ObjectID* id, const BString& name,
23									Type* type, ValueLocation* location,
24									CpuState* state = NULL);
25								~Variable();
26
27			ObjectID*			ID() const			{ return fID; }
28			const BString&		Name() const		{ return fName; }
29			Type*				GetType() const		{ return fType; }
30			ValueLocation*		Location() const	{ return fLocation; }
31			CpuState*			GetCpuState() const		{ return fCpuState; }
32
33private:
34			ObjectID*			fID;
35			BString				fName;
36			Type*				fType;
37			ValueLocation*		fLocation;
38			CpuState*			fCpuState;
39};
40
41
42#endif	// VARIABLE_H
43