Structured parcelables.
Example:
parcelable StructuredParcelable {
int[] shouldContainThreeFs;
int f;
@utf8InCpp String shouldBeJerry;
}
Bug: 110758329
Test: runtests.sh
Change-Id: I4af2317fba33a0024f354828ad0b310bf8fe8752
diff --git a/generate_cpp.h b/generate_cpp.h
index 1ffc681..2aa8341 100644
--- a/generate_cpp.h
+++ b/generate_cpp.h
@@ -29,10 +29,8 @@
namespace aidl {
namespace cpp {
-bool GenerateCpp(const CppOptions& options,
- const cpp::TypeNamespace& types,
- const AidlInterface& parsed_doc,
- const IoDelegate& io_delegate);
+bool GenerateCpp(const CppOptions& options, const cpp::TypeNamespace& types,
+ const AidlDefinedType& parsed_doc, const IoDelegate& io_delegate);
// These roughly correspond to the various class names in the C++ hierarchy:
enum class ClassNames {
@@ -45,7 +43,7 @@
// Generate the relative path to a header file. If |use_os_sep| we'll use the
// operating system specific path separator rather than C++'s expected '/' when
// including headers.
-std::string HeaderFile(const AidlInterface& interface, ClassNames class_type,
+std::string HeaderFile(const AidlDefinedType& defined_type, ClassNames class_type,
bool use_os_sep = true);
namespace internals {
@@ -61,6 +59,11 @@
const AidlInterface& parsed_doc);
std::unique_ptr<Document> BuildInterfaceHeader(const TypeNamespace& types,
const AidlInterface& parsed_doc);
+
+std::unique_ptr<Document> BuildParcelHeader(const TypeNamespace& types,
+ const AidlStructuredParcelable& parsed_doc);
+std::unique_ptr<Document> BuildParcelSource(const TypeNamespace& types,
+ const AidlStructuredParcelable& parsed_doc);
}
} // namespace cpp
} // namespace aidl