blob: 6ff74644c7a8e0d760b184ad8bd90dc767fb735a [file] [log] [blame]
Andreas Huberc9410c72016-07-28 12:18:40 -07001#ifndef HANDLE_TYPE_H_
2
3#define HANDLE_TYPE_H_
4
5#include "Type.h"
6
7namespace android {
8
9struct HandleType : public Type {
10 HandleType();
11
Andreas Huber881227d2016-08-02 14:20:21 -070012 std::string getCppType(StorageMode mode, std::string *extra) const override;
Andreas Huber2831d512016-08-15 09:33:47 -070013 std::string getJavaType() const override;
Andreas Huber881227d2016-08-02 14:20:21 -070014
15 void emitReaderWriter(
16 Formatter &out,
17 const std::string &name,
18 const std::string &parcelObj,
19 bool parcelObjIsPointer,
20 bool isReader,
21 ErrorMode mode) const override;
22
23 void emitReaderWriterEmbedded(
24 Formatter &out,
25 const std::string &name,
26 bool nameIsPointer,
27 const std::string &parcelObj,
28 bool parcelObjIsPointer,
29 bool isReader,
30 ErrorMode mode,
31 const std::string &parentName,
32 const std::string &offsetText) const override;
33
34 bool needsEmbeddedReadWrite() const override;
Andreas Huber70a59e12016-08-16 12:57:01 -070035
36 bool isJavaCompatible() const override;
Andreas Huber85eabdb2016-08-25 11:24:49 -070037
38 void getAlignmentAndSize(size_t *align, size_t *size) const override;
Andreas Huberc9410c72016-07-28 12:18:40 -070039};
40
41} // namespace android
42
43#endif // HANDLE_TYPE_H_
44