TypeDef.h revision bb797e4ba03e95cd0b20aa77b83717dcf8cc6287
1#ifndef TYPE_DEF_H_
2
3#define TYPE_DEF_H_
4
5#include "NamedType.h"
6
7namespace android {
8
9struct TypeDef : public NamedType {
10    TypeDef(Type *type);
11
12    const ScalarType *resolveToScalarType() const override;
13
14    const Type *referencedType() const;
15
16    bool isInterface() const override;
17
18    std::string getCppType(StorageMode mode, std::string *extra) const override;
19
20    void emitReaderWriter(
21            Formatter &out,
22            const std::string &name,
23            const std::string &parcelObj,
24            bool parcelObjIsPointer,
25            bool isReader,
26            ErrorMode mode) const override;
27
28    void emitReaderWriterEmbedded(
29            Formatter &out,
30            const std::string &name,
31            bool nameIsPointer,
32            const std::string &parcelObj,
33            bool parcelObjIsPointer,
34            bool isReader,
35            ErrorMode mode,
36            const std::string &parentName,
37            const std::string &offsetText) const override;
38
39    bool needsEmbeddedReadWrite() const override;
40    bool resultNeedsDeref() const override;
41
42private:
43    Type *mReferencedType;
44
45    DISALLOW_COPY_AND_ASSIGN(TypeDef);
46};
47
48}  // namespace android
49
50#endif  // TYPE_DEF_H_
51
52