ArrayType.h revision 85eabdbe56720dcdcf130e5ca83129d47b143768
1#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 std::string getCppType(StorageMode mode, std::string *extra) const override; 15 16 std::string getJavaType() 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 39 void emitJavaReaderWriter( 40 Formatter &out, 41 const std::string &parcelObj, 42 const std::string &argName, 43 bool isReader) const override; 44 45 void emitJavaFieldInitializer( 46 Formatter &out, const std::string &fieldName) const override; 47 48 void emitJavaFieldReaderWriter( 49 Formatter &out, 50 const std::string &blobName, 51 const std::string &fieldName, 52 const std::string &offset, 53 bool isReader) const override; 54 55 status_t emitVtsTypeDeclarations(Formatter &out) const override; 56 57 bool isJavaCompatible() const override; 58 59 void getAlignmentAndSize(size_t *align, size_t *size) const override; 60 61private: 62 Type *mElementType; 63 std::string mDimension; 64 65 DISALLOW_COPY_AND_ASSIGN(ArrayType); 66}; 67 68} // namespace android 69 70#endif // ARRAY_TYPE_H_ 71 72