Home | History | Annotate | Download | only in surfaces
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef MOJO_SERVICES_SURFACES_SURFACES_SERVICE_IMPL_H_
      6 #define MOJO_SERVICES_SURFACES_SURFACES_SERVICE_IMPL_H_
      7 
      8 #include "base/macros.h"
      9 #include "mojo/services/public/interfaces/surfaces/surfaces_service.mojom.h"
     10 #include "mojo/services/surfaces/surfaces_impl.h"
     11 
     12 namespace cc {
     13 class SurfaceManager;
     14 }
     15 
     16 namespace mojo {
     17 
     18 class SurfacesServiceImpl : public InterfaceImpl<SurfacesService> {
     19  public:
     20   // The instances pointed to by |manager|, |next_id_namespace| and |client| are
     21   // owned by the caller and must outlive the SurfacesServiceImpl instance.
     22   SurfacesServiceImpl(cc::SurfaceManager* manager,
     23                       uint32_t* next_id_namespace,
     24                       SurfacesImpl::Client* client);
     25   virtual ~SurfacesServiceImpl();
     26 
     27   // InterfaceImpl<SurfacesService> implementation.
     28   virtual void CreateSurfaceConnection(const mojo::Callback<
     29       void(mojo::SurfacePtr, uint32_t)>& callback) OVERRIDE;
     30 
     31  private:
     32   cc::SurfaceManager* manager_;
     33   uint32_t* next_id_namespace_;
     34   SurfacesImpl::Client* client_;
     35 
     36   DISALLOW_COPY_AND_ASSIGN(SurfacesServiceImpl);
     37 };
     38 
     39 }  // namespace mojo
     40 
     41 #endif  // MOJO_SERVICES_SURFACES_SURFACES_SERVICE_IMPL_H_
     42