blob: 0a245f8a47b7f324a4da6c0eddec46f45279dd84 [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
Andreas Huberc9410c72016-07-28 12:18:40 -070045private:
46 Type *mElementType;
47 std::string mDimension;
48
49 DISALLOW_COPY_AND_ASSIGN(ArrayType);
50};
51
52} // namespace android
53
54#endif // ARRAY_TYPE_H_
55