Oneway keyword behavior in passthrough mode.

Added BsFoo class to output. This acts as a proxy similar to BpFoo,
however instead of delegating tasks accross the binder interface, it
does so directly to the implementation. The only added behavior is using
doing queueing up these function calls on another thread so that
the asynchronous behavior will match the binderized case.

BUG: 31237398

Change-Id: I099824f0f754089c824b368a188f8125a111f840
diff --git a/AST.h b/AST.h
index 59fb62c..2950a6f 100644
--- a/AST.h
+++ b/AST.h
@@ -140,6 +140,7 @@
     status_t generateStubHeader(const std::string &outputPath) const;
     status_t generateProxyHeader(const std::string &outputPath) const;
     status_t generateAllSource(const std::string &outputPath) const;
+    status_t generatePassthroughHeader(const std::string &outputPath) const;
 
     status_t generateTypeSource(
             Formatter &out, const std::string &ifaceName) const;
@@ -148,7 +149,8 @@
         PROXY_HEADER,
         STUB_HEADER,
         IMPL_HEADER,
-        IMPL_SOURCE
+        IMPL_SOURCE,
+        PASSTHROUGH_HEADER
     };
 
     status_t generateStubImplHeader(const std::string &outputPath) const;
@@ -174,6 +176,10 @@
                                     const std::string &className,
                                     const Method *method,
                                     bool specifyNamespaces) const;
+    status_t generatePassthroughMethod(Formatter &out,
+                                       const std::string &className,
+                                       const Method *method,
+                                       bool specifyNamespaces) const;
 
     void generateFetchSymbol(Formatter &out, const std::string &ifaceName) const;
 
@@ -186,6 +192,8 @@
     status_t generateStubSourceForMethod(
             Formatter &out, const Interface *iface, const Method *method) const;
 
+    status_t generatePassthroughSource(Formatter &out) const;
+
     void declareCppReaderLocals(
             Formatter &out, const std::vector<TypedVar *> &arg) const;