Index: media/mojo/services/service_factory_impl.h |
diff --git a/media/mojo/services/service_factory_impl.h b/media/mojo/services/service_factory_impl.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9ad5fbcea0f584af39e50debcdd8ccb25cee5fa3 |
--- /dev/null |
+++ b/media/mojo/services/service_factory_impl.h |
@@ -0,0 +1,54 @@ |
+// 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 MEDIA_MOJO_SERVICES_SERVICE_FACTORY_IMPL_H_ |
+#define MEDIA_MOJO_SERVICES_SERVICE_FACTORY_IMPL_H_ |
+ |
+#include "base/macros.h" |
+#include "media/mojo/interfaces/service_factory.mojom.h" |
+#include "media/mojo/services/mojo_cdm_service_context.h" |
+#include "mojo/public/cpp/bindings/strong_binding.h" |
+ |
+namespace mojo { |
+class ServiceProvider; |
+} |
+ |
+namespace media { |
+ |
+class CdmFactory; |
+class MediaLog; |
+class RendererFactory; |
+ |
+class ServiceFactoryImpl : public interfaces::ServiceFactory { |
+ public: |
+ ServiceFactoryImpl(mojo::InterfaceRequest<interfaces::ServiceFactory> request, |
+ mojo::ServiceProvider* service_provider, |
+ scoped_refptr<MediaLog> media_log); |
+ ~ServiceFactoryImpl() final; |
+ |
+ // interfaces::ServiceFactory implementation. |
+ void CreateRenderer( |
+ mojo::InterfaceRequest<interfaces::MediaRenderer> renderer) final; |
+ void CreateCdm( |
+ mojo::InterfaceRequest<interfaces::ContentDecryptionModule> cdm) final; |
+ |
+ private: |
+ RendererFactory* GetRendererFactory(); |
+ CdmFactory* GetCdmFactory(); |
+ |
+ MojoCdmServiceContext cdm_service_context_; |
+ |
+ mojo::StrongBinding<interfaces::ServiceFactory> binding_; |
+ mojo::ServiceProvider* service_provider_; |
+ scoped_refptr<MediaLog> media_log_; |
+ |
+ scoped_ptr<RendererFactory> renderer_factory_; |
+ scoped_ptr<CdmFactory> cdm_factory_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(ServiceFactoryImpl); |
+}; |
+ |
+} // namespace media |
+ |
+#endif // MEDIA_MOJO_SERVICES_SERVICE_FACTORY_IMPL_H_ |