| Index: chromeos/dbus/services/surface_service_provider.h
|
| diff --git a/chromeos/dbus/services/surface_service_provider.h b/chromeos/dbus/services/surface_service_provider.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..606c61e6c7ab45c67e6d2109cade02da8becbe66
|
| --- /dev/null
|
| +++ b/chromeos/dbus/services/surface_service_provider.h
|
| @@ -0,0 +1,73 @@
|
| +// Copyright 2015 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_SERVICES_SURFACE_SERVICE_PROVIDER_H_
|
| +#define CHROMEOS_DBUS_SERVICES_SURFACE_SERVICE_PROVIDER_H_
|
| +
|
| +#include <string>
|
| +
|
| +#include "base/files/scoped_file.h"
|
| +#include "base/memory/scoped_ptr.h"
|
| +#include "base/memory/weak_ptr.h"
|
| +#include "chromeos/chromeos_export.h"
|
| +#include "chromeos/dbus/services/cros_dbus_service.h"
|
| +#include "dbus/exported_object.h"
|
| +#include "ui/gfx/geometry/size.h"
|
| +
|
| +namespace chromeos {
|
| +
|
| +class CHROMEOS_EXPORT SurfaceServiceProvider
|
| + : public CrosDBusService::ServiceProviderInterface {
|
| + public:
|
| + class Delegate {
|
| + public:
|
| + using GraphicsBufferCreatedCallback = base::Callback<void(int32 buffer)>;
|
| +
|
| + virtual ~Delegate() {}
|
| +
|
| + // Functions for creating and destroying graphics buffers.
|
| + virtual void CreateGraphicsBufferFromUnixFd(
|
| + const gfx::Size& size,
|
| + base::ScopedFD fd,
|
| + int32 stride,
|
| + const GraphicsBufferCreatedCallback& callback) = 0;
|
| + virtual void DestroyGraphicsBuffer(int32 buffer) = 0;
|
| +
|
| + // Set contents of the test surface to |buffer|.
|
| + virtual void SetTestSurfaceContents(int32 buffer) = 0;
|
| + };
|
| +
|
| + explicit SurfaceServiceProvider(scoped_ptr<Delegate> delegate);
|
| + ~SurfaceServiceProvider() override;
|
| +
|
| + // CrosDBusService::ServiceProviderInterface overrides:
|
| + void Start(scoped_refptr<dbus::ExportedObject> exported_object) override;
|
| +
|
| + private:
|
| + void CreateGraphicsBufferFromUnixFd(
|
| + dbus::MethodCall* method_call,
|
| + dbus::ExportedObject::ResponseSender response_sender);
|
| + void DestroyGraphicsBuffer(
|
| + dbus::MethodCall* method_call,
|
| + dbus::ExportedObject::ResponseSender response_sender);
|
| + void SetTestSurfaceContents(
|
| + dbus::MethodCall* method_call,
|
| + dbus::ExportedObject::ResponseSender response_sender);
|
| +
|
| + // This method is called when a dbus method is exported. If the export of the
|
| + // method is successful, |success| will be true. It will be false
|
| + // otherwise.
|
| + void OnExported(const std::string& interface_name,
|
| + const std::string& method_name,
|
| + bool success);
|
| +
|
| + scoped_ptr<Delegate> delegate_;
|
| + base::WeakPtrFactory<SurfaceServiceProvider> weak_ptr_factory_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(SurfaceServiceProvider);
|
| +};
|
| +
|
| +} // namespace chromeos
|
| +
|
| +#endif // CHROMEOS_DBUS_SERVICES_SURFACE_SERVICE_PROVIDER_H_
|
|
|