Thu, 15 Jan 2015 21:03:48 +0100
Integrate friendly tips from Tor colleagues to make (or not) 4.5 alpha 3;
This includes removal of overloaded (but unused) methods, and addition of
a overlooked call to DataStruct::SetData(nsISupports, uint32_t, bool.)
2 /*
3 * Copyright 2011 Google Inc.
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 */
8 #ifndef SkImageRefPool_DEFINED
9 #define SkImageRefPool_DEFINED
11 #include "SkTypes.h"
13 class SkImageRef;
14 class SkImageRef_GlobalPool;
16 class SkImageRefPool {
17 public:
18 SkImageRefPool();
19 ~SkImageRefPool();
21 size_t getRAMBudget() const { return fRAMBudget; }
22 void setRAMBudget(size_t);
24 size_t getRAMUsed() const { return fRAMUsed; }
25 void setRAMUsed(size_t limit);
27 void addToHead(SkImageRef*);
28 void addToTail(SkImageRef*);
29 void detach(SkImageRef*);
31 void dump() const;
33 private:
34 size_t fRAMBudget;
35 size_t fRAMUsed;
37 int fCount;
38 SkImageRef* fHead, *fTail;
40 int computeCount() const;
42 friend class SkImageRef_GlobalPool;
44 void justAddedPixels(SkImageRef*);
45 void canLosePixels(SkImageRef*);
46 void purgeIfNeeded();
47 };
49 #endif