Lines Matching defs:out

37 void AST::generateCppAdapterHeader(Formatter& out) const {
41 out << "#ifndef " << guard << "\n";
42 out << "#define " << guard << "\n\n";
45 generateCppPackageInclude(out, mPackage, getInterface()->localName());
47 enterLeaveNamespace(out, true /* enter */);
48 out.endl();
52 out << "class " << klassName << " : public " << mockName << " ";
53 out.block([&] {
54 out << "public:\n";
55 out << "typedef " << mockName << " Pure;\n";
57 out << klassName << "(::android::sp<" << mockName << "> impl);\n";
59 generateMethods(out, [&](const Method* method, const Interface* /* interface */) {
64 out << "virtual ";
65 method->generateCppSignature(out);
66 out << " override;\n";
68 out << "private:\n";
69 out << "::android::sp<" << mockName << "> mImpl;\n";
73 enterLeaveNamespace(out, false /* enter */);
75 out << "// no adapters for types.hal\n";
78 out << "#endif // " << guard << "\n";
81 void AST::generateCppAdapterSource(Formatter& out) const {
84 generateCppPackageInclude(out, mPackage, klassName);
87 out << "#include <hidladapter/HidlBinderAdapter.h>\n";
88 generateCppPackageInclude(out, mPackage, getInterface()->localName());
96 generateCppPackageInclude(out, item, item.getInterfaceAdapterName());
99 out.endl();
101 enterLeaveNamespace(out, true /* enter */);
102 out.endl();
106 out << klassName << "::" << klassName << "(::android::sp<" << mockName
109 generateMethods(out, [&](const Method* method, const Interface* /* interface */) {
110 generateAdapterMethod(out, method);
113 enterLeaveNamespace(out, false /* enter */);
114 out.endl();
116 out << "// no adapters for types.hal\n";
120 void AST::generateAdapterMethod(Formatter& out, const Method* method) const {
125 const auto adapt = [](Formatter& out, const std::string& var, const Type* type) {
127 out << var;
139 out << "static_cast<::android::sp<" << interface->fqName().cppName() << ">>("
149 method->generateCppSignature(out, klassName);
150 out.block([&] {
154 out << method->name() << "_cb _hidl_cb_wrapped = [&](";
155 method->emitCppResultSignature(out);
156 out << ") ";
157 out.block([&] {
158 out << "return _hidl_cb(\n";
159 out.indent([&]() {
160 out.join(method->results().begin(), method->results().end(), ",\n",
161 [&](auto arg) { adapt(out, arg->name(), arg->get()); });
163 out << ");\n";
165 out << ";\n";
168 out << "auto _hidl_out = mImpl->" << method->name() << "(\n";
169 out.indent([&]() {
170 out.join(method->args().begin(), method->args().end(), ",\n",
171 [&](auto arg) { adapt(out, arg->name(), arg->get()); });
174 out << ",\n";
176 out << "_hidl_cb_wrapped";
179 out << ");\n";
183 out.sIf("!_hidl_out.isOkUnchecked()", [&] { out << "return _hidl_out;\n"; });
184 out << "return ";
185 adapt(out, "_hidl_out", elidedCallback->get());
186 out << ";\n";
188 out << "return _hidl_out;\n";