blob: 3e44fe4e1ebe967555c1f573b1726b316da08e07 [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
14 void dump(Formatter &out) const override;
15
Andreas Huber881227d2016-08-02 14:20:21 -070016 std::string getCppType(StorageMode mode, std::string *extra) const override;
17
18 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 Huberc9410c72016-07-28 12:18:40 -070039private:
40 Type *mElementType;
41 std::string mDimension;
42
43 DISALLOW_COPY_AND_ASSIGN(ArrayType);
44};
45
46} // namespace android
47
48#endif // ARRAY_TYPE_H_
49