1/*
2 * Copyright 2014, Rene Gollent, rene@gollent.com.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef SYNTHETIC_PRIMITIVE_TYPE_H
6#define SYNTHETIC_PRIMITIVE_TYPE_H
7
8
9#include "Type.h"
10
11#include <String.h>
12
13
14class SyntheticPrimitiveType : public PrimitiveType {
15public:
16								SyntheticPrimitiveType(uint32 typeConstant);
17	virtual						~SyntheticPrimitiveType();
18
19	virtual	uint32				TypeConstant() const;
20
21	virtual	image_id			ImageID() const;
22	virtual	const BString&		ID() const;
23	virtual	const BString&		Name() const;
24	virtual	type_kind			Kind() const;
25	virtual	target_size_t		ByteSize() const;
26
27	virtual	status_t			ResolveObjectDataLocation(
28									const ValueLocation& objectLocation,
29									ValueLocation*& _location);
30	virtual	status_t			ResolveObjectDataLocation(
31									target_addr_t objectAddress,
32									ValueLocation*& _location);
33
34private:
35	void						_Init();
36
37private:
38	uint32						fTypeConstant;
39	BString						fID;
40	BString						fName;
41};
42
43
44#endif // SYNTHETIC_PRIMITIVE_TYPE
45