blob: bf418466a1fa1361b858a018145d56377438bcb0 [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
Andreas Huber85eabdb2016-08-25 11:24:49 -070036 void emitJavaFieldInitializer(
37 Formatter &out, const std::string &fieldName) const override;
38
39 void emitJavaFieldReaderWriter(
40 Formatter &out,
41 const std::string &blobName,
42 const std::string &fieldName,
43 const std::string &offset,
44 bool isReader) const override;
45
Andreas Huber881227d2016-08-02 14:20:21 -070046 bool needsEmbeddedReadWrite() const override;
47 bool resultNeedsDeref() const override;
48
Zhuoyao Zhang5158db42016-08-10 10:25:20 -070049 status_t emitVtsTypeDeclarations(Formatter &out) const override;
Zhuoyao Zhang864c7712016-08-16 15:35:28 -070050 status_t emitVtsAttributeType(Formatter &out) const override;
Zhuoyao Zhang5158db42016-08-10 10:25:20 -070051
Andreas Huber70a59e12016-08-16 12:57:01 -070052 bool isJavaCompatible() const override;
53
Andreas Huber85eabdb2016-08-25 11:24:49 -070054 void getAlignmentAndSize(size_t *align, size_t *size) const override;
55
Zhuoyao Zhang5158db42016-08-10 10:25:20 -070056 private:
Andreas Huberc9410c72016-07-28 12:18:40 -070057 Type *mElementType;
58
59 DISALLOW_COPY_AND_ASSIGN(VectorType);
60};
61
62} // namespace android
63
64#endif // VECTOR_TYPE_H_
65