ArrayType.h revision 70a59e1dc3dcf32f791d2dd7966111d4adf32eca
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 14881227d860c59471eee31d39946e96ce2daa35d6Andreas Huber std::string getCppType(StorageMode mode, std::string *extra) const override; 15881227d860c59471eee31d39946e96ce2daa35d6Andreas Huber 162831d5145675ead9f2fb767bf5fe4ae56b88349fAndreas Huber std::string getJavaType() const override; 172831d5145675ead9f2fb767bf5fe4ae56b88349fAndreas 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 392831d5145675ead9f2fb767bf5fe4ae56b88349fAndreas Huber void emitJavaReaderWriter( 402831d5145675ead9f2fb767bf5fe4ae56b88349fAndreas Huber Formatter &out, 412831d5145675ead9f2fb767bf5fe4ae56b88349fAndreas Huber const std::string &parcelObj, 422831d5145675ead9f2fb767bf5fe4ae56b88349fAndreas Huber const std::string &argName, 432831d5145675ead9f2fb767bf5fe4ae56b88349fAndreas Huber bool isReader) const override; 442831d5145675ead9f2fb767bf5fe4ae56b88349fAndreas Huber 455158db484e5ab302368f191d75d5b1334c270e52Zhuoyao Zhang status_t emitVtsTypeDeclarations(Formatter &out) const override; 465158db484e5ab302368f191d75d5b1334c270e52Zhuoyao Zhang 4770a59e1dc3dcf32f791d2dd7966111d4adf32ecaAndreas Huber bool isJavaCompatible() const override; 4870a59e1dc3dcf32f791d2dd7966111d4adf32ecaAndreas Huber 49c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huberprivate: 50c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huber Type *mElementType; 51c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huber std::string mDimension; 52c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huber 53c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huber DISALLOW_COPY_AND_ASSIGN(ArrayType); 54c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huber}; 55c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huber 56c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huber} // namespace android 57c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huber 58c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huber#endif // ARRAY_TYPE_H_ 59c9410c7e62a33fd7599b2f3e025093a2d171577eAndreas Huber 60