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/Interface.cpp b/Interface.cpp
index 10f6505..0fe7e87 100644
--- a/Interface.cpp
+++ b/Interface.cpp
@@ -260,6 +260,23 @@
     return OK;
 }
 
+
+bool Interface::hasOnewayMethods() const {
+    for (auto const &method : mMethods) {
+        if (method->isOneway()) {
+            return true;
+        }
+    }
+
+    const Interface* superClass = superType();
+
+    if (superClass != nullptr) {
+        return superClass->hasOnewayMethods();
+    }
+
+    return false;
+}
+
 bool Interface::isJavaCompatible() const {
     if (mIsJavaCompatibleInProgress) {
         // We're currently trying to determine if this Interface is