From 2bc1689dbda69b1388cef473a65b13a46ff679f4 Mon Sep 17 00:00:00 2001 From: "mike@reedtribe.org" Date: Sun, 12 Aug 2012 19:34:07 +0000 Subject: privatize SkPtrRecorder.h git-svn-id: http://skia.googlecode.com/svn/trunk@5047 2bbb7eff-a529-9590-31e7-b0007b416f81 --- include/core/SkPtrRecorder.h | 147 ------------------------------------------- 1 file changed, 147 deletions(-) delete mode 100644 include/core/SkPtrRecorder.h (limited to 'include') diff --git a/include/core/SkPtrRecorder.h b/include/core/SkPtrRecorder.h deleted file mode 100644 index 8a48325298..0000000000 --- a/include/core/SkPtrRecorder.h +++ /dev/null @@ -1,147 +0,0 @@ - -/* - * Copyright 2008 The Android Open Source Project - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - - -#ifndef SkPtrSet_DEFINED -#define SkPtrSet_DEFINED - -#include "SkRefCnt.h" -#include "SkFlattenable.h" -#include "SkTDArray.h" - -/** - * Maintains a set of ptrs, assigning each a unique ID [1...N]. Duplicate ptrs - * return the same ID (since its a set). Subclasses can override inPtr() - * and decPtr(). incPtr() is called each time a unique ptr is added ot the - * set. decPtr() is called on each ptr when the set is destroyed or reset. - */ -class SkPtrSet : public SkRefCnt { -public: - SK_DECLARE_INST_COUNT(SkPtrSet) - - /** - * Search for the specified ptr in the set. If it is found, return its - * 32bit ID [1..N], or if not found, return 0. Always returns 0 for NULL. - */ - uint32_t find(void*) const; - - /** - * Add the specified ptr to the set, returning a unique 32bit ID for it - * [1...N]. Duplicate ptrs will return the same ID. - * - * If the ptr is NULL, it is not added, and 0 is returned. - */ - uint32_t add(void*); - - /** - * Return the number of (non-null) ptrs in the set. - */ - int count() const { return fList.count(); } - - /** - * Copy the ptrs in the set into the specified array (allocated by the - * caller). The ptrs are assgined to the array based on their corresponding - * ID. e.g. array[ptr.ID - 1] = ptr. - * - * incPtr() and decPtr() are not called during this operation. - */ - void copyToArray(void* array[]) const; - - /** - * Call decPtr() on each ptr in the set, and the reset the size of the set - * to 0. - */ - void reset(); - -protected: - virtual void incPtr(void* ptr) {} - virtual void decPtr(void* ptr) {} - -private: - struct Pair { - void* fPtr; // never NULL - uint32_t fIndex; // 1...N - }; - - // we store the ptrs in sorted-order (using Cmp) so that we can efficiently - // detect duplicates when add() is called. Hence we need to store the - // ptr and its ID/fIndex explicitly, since the ptr's position in the array - // is not related to its "index". - SkTDArray fList; - - static int Cmp(const Pair* a, const Pair* b); - - typedef SkRefCnt INHERITED; -}; - -/** - * Templated wrapper for SkPtrSet, just meant to automate typecasting - * parameters to and from void* (which the base class expects). - */ -template class SkTPtrSet : public SkPtrSet { -public: - uint32_t find(T ptr) { - return this->INHERITED::find((void*)ptr); - } - uint32_t add(T ptr) { - return this->INHERITED::add((void*)ptr); - } - - void copyToArray(T* array) const { - this->INHERITED::copyToArray((void**)array); - } - -private: - typedef SkPtrSet INHERITED; -}; - -/** - * Subclass of SkTPtrSet specialed to call ref() and unref() when the - * base class's incPtr() and decPtr() are called. This makes it a valid owner - * of each ptr, which is released when the set is reset or destroyed. - */ -class SkRefCntSet : public SkTPtrSet { -public: - virtual ~SkRefCntSet(); - -protected: - // overrides - virtual void incPtr(void*); - virtual void decPtr(void*); -}; - -class SkFactorySet : public SkTPtrSet {}; - -/** - * Similar to SkFactorySet, but only allows Factorys that have registered names. - * Also has a function to return the next added Factory's name. - */ -class SkNamedFactorySet : public SkRefCnt { -public: - SkNamedFactorySet(); - - /** - * Find the specified Factory in the set. If it is not already in the set, - * and has registered its name, add it to the set, and return its index. - * If the Factory has no registered name, return 0. - */ - uint32_t find(SkFlattenable::Factory); - - /** - * If new Factorys have been added to the set, return the name of the first - * Factory added after the Factory name returned by the last call to this - * function. - */ - const char* getNextAddedFactoryName(); -private: - int fNextAddedFactory; - SkFactorySet fFactorySet; - SkTDArray fNames; -}; - -#endif -- cgit v1.2.3