diff options
author | hashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-06 01:54:36 +0000 |
---|---|---|
committer | hashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-06 01:54:36 +0000 |
commit | 64e199254481d6132c3a7ccdf9b3a743bff86a88 (patch) | |
tree | c10cdf03cbde8439d1d8a7070a6c7f9fdf10f517 /chromeos/dbus/introspectable_client.h | |
parent | 81a476c9ce1088345db02cf1647399d0e673d487 (diff) | |
download | chromium_src-64e199254481d6132c3a7ccdf9b3a743bff86a88.zip chromium_src-64e199254481d6132c3a7ccdf9b3a743bff86a88.tar.gz chromium_src-64e199254481d6132c3a7ccdf9b3a743bff86a88.tar.bz2 |
Move files inside chrome/browser/chromeos/dbus to chromeos/dbus
Move files in chrome/browser/chromeos/dbus/ to chromeos/dbus
Add chromeos/dbus/DEPS
Add chromeos.gyp:chromeos_test_support and chromeos.gyp:chromeos_unittests
Add CHROMEOS_EXPORT to classes
Move power related proto targets to chromeos.gyp
Rewrite and sort #includes
BUG=119583
TEST=component chromeos build success, checkdeps success
Review URL: https://chromiumcodereview.appspot.com/9838085
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@131065 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chromeos/dbus/introspectable_client.h')
-rw-r--r-- | chromeos/dbus/introspectable_client.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/chromeos/dbus/introspectable_client.h b/chromeos/dbus/introspectable_client.h new file mode 100644 index 0000000..c21eb94 --- /dev/null +++ b/chromeos/dbus/introspectable_client.h @@ -0,0 +1,58 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROMEOS_DBUS_INTROSPECTABLE_CLIENT_H_ +#define CHROMEOS_DBUS_INTROSPECTABLE_CLIENT_H_ +#pragma once + +#include <string> +#include <vector> + +#include "base/callback.h" +#include "chromeos/chromeos_export.h" +#include "chromeos/dbus/dbus_client_implementation_type.h" +#include "dbus/object_path.h" + +namespace dbus { +class Bus; +} // namespace dbus + +namespace chromeos { + +// IntrospectableClient is used to retrieve the D-Bus introspection data +// from a remote object. +class CHROMEOS_EXPORT IntrospectableClient { + public: + virtual ~IntrospectableClient(); + + // The IntrospectCallback is used for the Introspect() method. It receives + // four arguments, the first two are the |service_name| and |object_path| + // of the remote object being introspected, the third is the |xml_data| of + // the object as described in + // http://dbus.freedesktop.org/doc/dbus-specification.html, the fourth + // |success| indicates whether the request succeeded. + typedef base::Callback<void(const std::string&, const dbus::ObjectPath&, + const std::string&, bool)> IntrospectCallback; + + // Retrieves introspection data from the remote object on service name + // |service_name| with object path |object_path|, calling |callback| with + // the XML-formatted data received. + virtual void Introspect(const std::string& service_name, + const dbus::ObjectPath& object_path, + const IntrospectCallback& callback) = 0; + + // Creates the instance + static IntrospectableClient* Create(DBusClientImplementationType type, + dbus::Bus* bus); + + protected: + IntrospectableClient(); + + private: + DISALLOW_COPY_AND_ASSIGN(IntrospectableClient); +}; + +} // namespace chromeos + +#endif // CHROMEOS_DBUS_INTROSPECTABLE_CLIENT_H_ |