- add sources.
[platform/framework/web/crosswalk.git] / src / webkit / child / web_discardable_memory_impl.h
1 // Copyright 2013 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 WEBKIT_CHILD_WEB_DISCARDABLE_MEMORY_IMPL_H_
6 #define WEBKIT_CHILD_WEB_DISCARDABLE_MEMORY_IMPL_H_
7
8 #include "base/basictypes.h"
9 #include "base/memory/discardable_memory.h"
10 #include "base/memory/scoped_ptr.h"
11 #include "third_party/WebKit/public/platform/WebDiscardableMemory.h"
12 #include "webkit/child/webkit_child_export.h"
13
14 namespace WebKit {
15 class WebDiscardableMemory;
16 }
17
18 namespace webkit_glue {
19
20 // Implementation of WebDiscardableMemory that is responsible for allocating
21 // discardable memory.
22 class WEBKIT_CHILD_EXPORT WebDiscardableMemoryImpl
23     : NON_EXPORTED_BASE(public WebKit::WebDiscardableMemory) {
24  public:
25   virtual ~WebDiscardableMemoryImpl();
26
27   static scoped_ptr<WebDiscardableMemoryImpl> CreateLockedMemory(size_t size);
28
29   // WebKit::WebDiscardableMemory:
30   virtual bool lock();
31   virtual void unlock();
32   virtual void* data();
33
34  private:
35   WebDiscardableMemoryImpl(scoped_ptr<base::DiscardableMemory> memory);
36
37   scoped_ptr<base::DiscardableMemory> discardable_;
38
39   DISALLOW_COPY_AND_ASSIGN(WebDiscardableMemoryImpl);
40 };
41
42 }  // namespace webkit_glue
43
44 #endif  // WEBKIT_CHILD_WEB_DISCARDABLE_MEMORY_IMPL_H_