hidl-gen: clean up generateCpp.cpp and generateCppImpl.cpp
Test: hidl_test
Change-Id: I18a9e0b27d40d607dc8b277d9e04eaa6f529f225
diff --git a/AST.h b/AST.h
index f82a9ba..b4270f8 100644
--- a/AST.h
+++ b/AST.h
@@ -161,41 +161,26 @@
status_t generateTypeSource(
Formatter &out, const std::string &ifaceName) const;
- enum MethodLocation {
- PROXY_HEADER,
- STUB_HEADER,
- IMPL_HEADER,
- IMPL_SOURCE,
- PASSTHROUGH_HEADER
- };
+ // a method, and in which interface is it originally defined.
+ // be careful of the case where method.isHidlReserved(), where interface
+ // is effectively useless.
+ using MethodGenerator = std::function<status_t(const Method *, const Interface *)>;
status_t generateStubImplHeader(const std::string &outputPath) const;
status_t generateStubImplSource(const std::string &outputPath) const;
- status_t generateMethods(Formatter &out,
- const std::string &className,
- MethodLocation type,
- bool specifyNamespaces) const;
+ status_t generateMethods(Formatter &out, MethodGenerator gen) const;
status_t generateStubMethod(Formatter &out,
- const std::string &className,
- const Method *method,
- bool specifyNamespaces) const;
- status_t generateProxyDeclaration(Formatter &out,
- const std::string &className,
- const Method *method,
- bool specifyNamespaces) const;
- status_t generateStubImplDeclaration(Formatter &out,
- const std::string &className,
- const Method *method,
- bool specifyNamespaces) const;
+ const Method *method) const;
status_t generateStubImplMethod(Formatter &out,
const std::string &className,
- const Method *method,
- bool specifyNamespaces) const;
+ const Method *method) const;
status_t generatePassthroughMethod(Formatter &out,
+ const Method *method) const;
+ status_t generateProxyMethodSource(Formatter &out,
const std::string &className,
const Method *method,
- bool specifyNamespaces) const;
+ const Interface *superInterface) const;
void generateFetchSymbol(Formatter &out, const std::string &ifaceName) const;