chromeos-dbus-bindings: fix some stuff in README There were some typos in the example code, and I added a short explanation of why proxy methods always have a boolean return value and error out-argument. BUG=None TEST=md_browser Change-Id: Id589ea84f6075a7fa65be2e1249d1d60fb91db4a
diff --git a/README.md b/README.md index 2f14781..cc955eb 100644 --- a/README.md +++ b/README.md
@@ -248,7 +248,7 @@ dbus_object_.RegisterAsync(cb); } - // org::chromium::FrobinatorAdaptor overrides. + // org::chromium::FrobinatorInterface overrides. bool Frobinate(brillo::ErrorPtr* error, int32_t foo, const brillo::VariantDictionary& bar, @@ -300,10 +300,20 @@ dbus::Bus::Options options; options.bus_type = dbus::Bus::SYSTEM; scoped_refptr<dbus::Bus> bus(new dbus::Bus(options)); + auto frobinator = base::MakeUnique<org::chromium::FrobinatorProxy>(bus); -frobinator.Frobinate(42, {{ "qux", brillo::Any("squawk") }}); +brillo::ErrorPtr error; +if (!frobinator->Frobinate(42, {{ "qux", brillo::Any("squawk") }}, &error)) + LOG(WARNING) << "Frobinate failed: " << error->GetMessage(); + ``` +All methods on proxies are specified like `normal` kind methods on interfaces, +with the exception that the error argument appears at the end rather than the +beginning. Even if they are marked `simple` in the interface, there are other +possibilities for errors, such as timeouts, which need to be reported to the +client. + [D-Bus]: https://www.freedesktop.org/wiki/Software/dbus/ [libbrillo]: https://android.googlesource.com/platform/external/libbrillo/+/master/brillo/dbus/ [the introspection API]: https://dbus.freedesktop.org/doc/dbus-specification.html#introspection-format