blob: 2bd7caecc0b86c702337070db3a861100bf051f8 [file] [log] [blame]
Andreas Huberc9410c72016-07-28 12:18:40 -07001#ifndef SCALAR_TYPE_H_
2
3#define SCALAR_TYPE_H_
4
5#include "Type.h"
6
7namespace android {
8
9struct ScalarType : public Type {
10 enum Kind {
11 KIND_CHAR,
12 KIND_BOOL,
13 KIND_OPAQUE,
14 KIND_INT8,
15 KIND_UINT8,
16 KIND_INT16,
17 KIND_UINT16,
18 KIND_INT32,
19 KIND_UINT32,
20 KIND_INT64,
21 KIND_UINT64,
22 KIND_FLOAT,
23 KIND_DOUBLE,
24 };
25
26 ScalarType(Kind kind);
27
28 void dump(Formatter &out) const override;
29
Andreas Huber881227d2016-08-02 14:20:21 -070030 std::string getCppType(StorageMode mode, std::string *extra) const override;
31
32 void emitReaderWriter(
33 Formatter &out,
34 const std::string &name,
35 const std::string &parcelObj,
36 bool parcelObjIsPointer,
37 bool isReader,
38 ErrorMode mode) const override;
39
Andreas Huberc9410c72016-07-28 12:18:40 -070040private:
41 Kind mKind;
42
43 DISALLOW_COPY_AND_ASSIGN(ScalarType);
44};
45
46} // namespace android
47
48#endif // SCALAR_TYPE_H_