blob: 1d8ec1f8c13425d942263ae11458cc0d3debec75 [file] [log] [blame]
Andreas Huberc9410c72016-07-28 12:18:40 -07001#ifndef ARRAY_TYPE_H_
2
3#define ARRAY_TYPE_H_
4
5#include "Type.h"
6
7#include <string>
8
9namespace android {
10
11struct ArrayType : public Type {
12 ArrayType(Type *elementType, const char *dimension);
13
Andreas Huber881227d2016-08-02 14:20:21 -070014 std::string getCppType(StorageMode mode, std::string *extra) const override;
15
Andreas Huber2831d512016-08-15 09:33:47 -070016 std::string getJavaType() const override;
17
Andreas Huber881227d2016-08-02 14:20:21 -070018 void emitReaderWriter(
19 Formatter &out,
20 const std::string &name,
21 const std::string &parcelObj,
22 bool parcelObjIsPointer,
23 bool isReader,
24 ErrorMode mode) const override;
25
26 void emitReaderWriterEmbedded(
27 Formatter &out,
28 const std::string &name,
29 bool nameIsPointer,
30 const std::string &parcelObj,
31 bool parcelObjIsPointer,
32 bool isReader,
33 ErrorMode mode,
34 const std::string &parentName,
35 const std::string &offsetText) const override;
36
37 bool needsEmbeddedReadWrite() const override;
38
Andreas Huber2831d512016-08-15 09:33:47 -070039 void emitJavaReaderWriter(
40 Formatter &out,
41 const std::string &parcelObj,
42 const std::string &argName,
43 bool isReader) const override;
44
Zhuoyao Zhang5158db42016-08-10 10:25:20 -070045 status_t emitVtsTypeDeclarations(Formatter &out) const override;
46
Andreas Huberc9410c72016-07-28 12:18:40 -070047private:
48 Type *mElementType;
49 std::string mDimension;
50
51 DISALLOW_COPY_AND_ASSIGN(ArrayType);
52};
53
54} // namespace android
55
56#endif // ARRAY_TYPE_H_
57