Chromium Code Reviews| Index: src/core/SkDiscardableMemory.h |
| diff --git a/src/core/SkDiscardableMemory.h b/src/core/SkDiscardableMemory.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..6859f94b8cde59436ee56f3b2907b5c8dfc07ff4 |
| --- /dev/null |
| +++ b/src/core/SkDiscardableMemory.h |
| @@ -0,0 +1,54 @@ |
| +/* |
| + * Copyright 2013 Google Inc. |
| + * |
| + * Use of this source code is governed by a BSD-style license that can be |
| + * found in the LICENSE file. |
| + */ |
| + |
| +#ifndef SkDiscardableMemory_DEFINED |
| +#define SkDiscardableMemory_DEFINED |
| + |
| +#include "SkTypes.h" |
| + |
| +/** |
| + * Interface for discardable memory. Implementation is provided by the |
| + * embedder. |
| + */ |
| +class SkDiscardableMemory { |
| + |
| +public: |
| + /** |
| + * Factory method that creates, initializes and locks an SkDiscardableMemory |
| + * object. If either of these steps fails, a NULL pointer will be returned. |
| + */ |
| + static SkDiscardableMemory* create(size_t bytes); |
|
reed1
2013/08/15 21:19:06
nit: static methods in Skia are Capitalized.
e.g.
|
| + |
| + /** Must not be called while locked. |
| + */ |
| + virtual ~SkDiscardableMemory() {} |
| + |
| + /** |
| + * Locks the memory, prevent it from being discarded. Once locked. you may |
| + * obtain a pointer to that memory using the data() method. |
| + * |
| + * lock() may return false, indicating that the underlying memory was |
| + * discarded and that the lock failed. |
| + * |
| + * Nested calls to lock are not allowed. |
| + */ |
| + virtual bool lock() = 0; |
| + |
| + /** |
| + * Returns the current pointer for the discardable memory. This call is ONLY |
| + * valid when the discardable memory object is locked. |
| + */ |
| + virtual void* data() = 0; |
| + |
| + /** |
| + * Unlock the memory so that it can be purged by the system. Must be called |
| + * after every successful lock call. |
| + */ |
| + virtual void unlock() = 0; |
| +}; |
| + |
| +#endif |