ArrayType.h revision 881227d860c59471eee31d39946e96ce2daa35d6
1c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huber#ifndef ARRAY_TYPE_H_ 2c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huber 3c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huber#define ARRAY_TYPE_H_ 4c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huber 5c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huber#include "Type.h" 6c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huber 7c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huber#include <string> 8c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huber 9c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Hubernamespace android { 10c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huber 11c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huberstruct ArrayType : public Type { 12c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huber ArrayType(Type *elementType, const char *dimension); 13c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huber 14c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huber void dump(Formatter &out) const override; 15c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huber 16881227d860c59471eee31d39946e96ce2daa35d6Andreas Huber std::string getCppType(StorageMode mode, std::string *extra) const override; 17881227d860c59471eee31d39946e96ce2daa35d6Andreas Huber 18881227d860c59471eee31d39946e96ce2daa35d6Andreas Huber void emitReaderWriter( 19881227d860c59471eee31d39946e96ce2daa35d6Andreas Huber Formatter &out, 20881227d860c59471eee31d39946e96ce2daa35d6Andreas Huber const std::string &name, 21881227d860c59471eee31d39946e96ce2daa35d6Andreas Huber const std::string &parcelObj, 22881227d860c59471eee31d39946e96ce2daa35d6Andreas Huber bool parcelObjIsPointer, 23881227d860c59471eee31d39946e96ce2daa35d6Andreas Huber bool isReader, 24881227d860c59471eee31d39946e96ce2daa35d6Andreas Huber ErrorMode mode) const override; 25881227d860c59471eee31d39946e96ce2daa35d6Andreas Huber 26881227d860c59471eee31d39946e96ce2daa35d6Andreas Huber void emitReaderWriterEmbedded( 27881227d860c59471eee31d39946e96ce2daa35d6Andreas Huber Formatter &out, 28881227d860c59471eee31d39946e96ce2daa35d6Andreas Huber const std::string &name, 29881227d860c59471eee31d39946e96ce2daa35d6Andreas Huber bool nameIsPointer, 30881227d860c59471eee31d39946e96ce2daa35d6Andreas Huber const std::string &parcelObj, 31881227d860c59471eee31d39946e96ce2daa35d6Andreas Huber bool parcelObjIsPointer, 32881227d860c59471eee31d39946e96ce2daa35d6Andreas Huber bool isReader, 33881227d860c59471eee31d39946e96ce2daa35d6Andreas Huber ErrorMode mode, 34881227d860c59471eee31d39946e96ce2daa35d6Andreas Huber const std::string &parentName, 35881227d860c59471eee31d39946e96ce2daa35d6Andreas Huber const std::string &offsetText) const override; 36881227d860c59471eee31d39946e96ce2daa35d6Andreas Huber 37881227d860c59471eee31d39946e96ce2daa35d6Andreas Huber bool needsEmbeddedReadWrite() const override; 38881227d860c59471eee31d39946e96ce2daa35d6Andreas Huber 39c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huberprivate: 40c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huber Type *mElementType; 41c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huber std::string mDimension; 42c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huber 43c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huber DISALLOW_COPY_AND_ASSIGN(ArrayType); 44c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huber}; 45c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huber 46c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huber} // namespace android 47c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huber 48c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huber#endif // ARRAY_TYPE_H_ 49c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huber 50