Home | History | Annotate | Download | only in android
      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 CONTENT_BROWSER_ANDROID_UI_RESOURCE_PROVIDER_IMPL_H_
      6 #define CONTENT_BROWSER_ANDROID_UI_RESOURCE_PROVIDER_IMPL_H_
      7 
      8 #include "base/containers/hash_tables.h"
      9 #include "content/public/browser/android/ui_resource_provider.h"
     10 
     11 namespace cc {
     12 class LayerTreeHost;
     13 }
     14 
     15 namespace content {
     16 
     17 class UIResourceClientAndroid;
     18 
     19 class UIResourceProviderImpl : public UIResourceProvider {
     20  public:
     21   UIResourceProviderImpl();
     22 
     23   virtual ~UIResourceProviderImpl();
     24 
     25   void SetLayerTreeHost(cc::LayerTreeHost* host);
     26 
     27   void UIResourcesAreInvalid();
     28 
     29   virtual cc::UIResourceId CreateUIResource(
     30       UIResourceClientAndroid* client) OVERRIDE;
     31 
     32   virtual void DeleteUIResource(cc::UIResourceId resource_id) OVERRIDE;
     33 
     34  private:
     35   typedef base::hash_map<cc::UIResourceId, UIResourceClientAndroid*>
     36       UIResourceClientMap;
     37   UIResourceClientMap ui_resource_client_map_;
     38 
     39   cc::LayerTreeHost* host_;
     40 
     41   DISALLOW_COPY_AND_ASSIGN(UIResourceProviderImpl);
     42 };
     43 
     44 }  // namespace content
     45 
     46 #endif  // CONTENT_BROWSER_ANDROID_UI_RESOURCE_PROVIDER_IMPL_H_
     47