blob: 9f76314dd4068d74de4138def656b14aa80e8be2 [file] [log] [blame]
Andreas Huberc9410c72016-07-28 12:18:40 -07001#ifndef VECTOR_TYPE_H_
2
3#define VECTOR_TYPE_H_
4
5#include "Type.h"
6
7namespace android {
8
9struct VectorType : public Type {
10 VectorType(Type *elementType);
11
Andreas Huber881227d2016-08-02 14:20:21 -070012 std::string getCppType(StorageMode mode, std::string *extra) const override;
13
Andreas Huber2831d512016-08-15 09:33:47 -070014 std::string getJavaType() const override;
15 std::string getJavaSuffix() const override;
16
Andreas Huber881227d2016-08-02 14:20:21 -070017 void emitReaderWriter(
18 Formatter &out,
19 const std::string &name,
20 const std::string &parcelObj,
21 bool parcelObjIsPointer,
22 bool isReader,
23 ErrorMode mode) const override;
24
25 void emitReaderWriterEmbedded(
26 Formatter &out,
27 const std::string &name,
28 bool nameIsPointer,
29 const std::string &parcelObj,
30 bool parcelObjIsPointer,
31 bool isReader,
32 ErrorMode mode,
33 const std::string &parentName,
34 const std::string &offsetText) const override;
35
36 bool needsEmbeddedReadWrite() const override;
37 bool resultNeedsDeref() const override;
38
Zhuoyao Zhang5158db42016-08-10 10:25:20 -070039 status_t emitVtsTypeDeclarations(Formatter &out) const override;
Zhuoyao Zhang864c7712016-08-16 15:35:28 -070040 status_t emitVtsAttributeType(Formatter &out) const override;
Zhuoyao Zhang5158db42016-08-10 10:25:20 -070041
Andreas Huber70a59e12016-08-16 12:57:01 -070042 bool isJavaCompatible() const override;
43
Zhuoyao Zhang5158db42016-08-10 10:25:20 -070044 private:
Andreas Huberc9410c72016-07-28 12:18:40 -070045 Type *mElementType;
46
47 DISALLOW_COPY_AND_ASSIGN(VectorType);
48};
49
50} // namespace android
51
52#endif // VECTOR_TYPE_H_
53