generate C++ interface header, proxy and stub headers and sources.
diff --git a/AST.h b/AST.h
index 497deb7..942b718 100644
--- a/AST.h
+++ b/AST.h
@@ -7,12 +7,14 @@
#include <utils/Vector.h>
#include "FQName.h"
+#include "Type.h"
namespace android {
struct Coordinator;
struct Formatter;
-struct Type;
+struct Method;
+struct TypedVar;
struct Scope;
struct AST {
@@ -45,6 +47,8 @@
void dump(Formatter &out) const;
+ status_t generateCpp() const;
+
private:
Coordinator *mCoordinator;
Vector<Scope *> mScopePath;
@@ -54,6 +58,41 @@
FQName mPackage;
+ void getPackageComponents(std::vector<std::string> *components) const;
+
+ void getPackageAndVersionComponents(
+ std::vector<std::string> *components, bool cpp_compatible) const;
+
+ std::string makeHeaderGuard(const std::string &baseName) const;
+ void enterLeaveNamespace(Formatter &out, bool enter) const;
+
+ status_t generateInterfaceHeader() const;
+ status_t generateStubHeader() const;
+ status_t generateProxyHeader() const;
+ status_t generateAllSource() const;
+
+ status_t generateTypeSource(
+ Formatter &out, const std::string &ifaceName) const;
+
+ status_t generateProxySource(
+ Formatter &out, const std::string &baseName) const;
+
+ status_t generateStubSource(
+ Formatter &out, const std::string &baseName) const;
+
+ status_t generateStubSourceForMethod(
+ Formatter &out, const Method *method) const;
+
+ void emitCppReaderWriter(
+ Formatter &out,
+ const std::string &parcelObj,
+ bool parcelObjIsPointer,
+ const TypedVar *arg,
+ bool isReader,
+ Type::ErrorMode mode) const;
+
+ status_t emitTypeDeclarations(Formatter &out) const;
+
DISALLOW_COPY_AND_ASSIGN(AST);
};