Index: include/core/SkTSearch.h |
diff --git a/include/core/SkTSearch.h b/include/core/SkTSearch.h |
deleted file mode 100644 |
index 549bcfd7c844ef7e0e51f616b634fe8833f21dbd..0000000000000000000000000000000000000000 |
--- a/include/core/SkTSearch.h |
+++ /dev/null |
@@ -1,146 +0,0 @@ |
- |
-/* |
- * Copyright 2006 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 SkTSearch_DEFINED |
-#define SkTSearch_DEFINED |
- |
-#include "SkTypes.h" |
- |
-/** |
- * All of the SkTSearch variants want to return the index (0...N-1) of the |
- * found element, or the bit-not of where to insert the element. |
- * |
- * At a simple level, if the return value is negative, it was not found. |
- * |
- * For clients that want to insert the new element if it was not found, use |
- * the following logic: |
- * |
- * int index = SkTSearch(...); |
- * if (index >= 0) { |
- * // found at index |
- * } else { |
- * index = ~index; // now we are positive |
- * // insert at index |
- * } |
- */ |
- |
- |
-// The most general form of SkTSearch takes an array of T and a key of type K. A functor, less, is |
-// used to perform comparisons. It has two function operators: |
-// bool operator() (const T& t, const K& k) |
-// bool operator() (const K& t, const T& k) |
-template <typename T, typename K, typename LESS> |
-int SkTSearch(const T base[], int count, const K& key, size_t elemSize, LESS& less) |
-{ |
- SkASSERT(count >= 0); |
- if (count <= 0) { |
- return ~0; |
- } |
- |
- SkASSERT(base != NULL); // base may be NULL if count is zero |
- |
- int lo = 0; |
- int hi = count - 1; |
- |
- while (lo < hi) { |
- int mid = lo + ((hi - lo) >> 1); |
- const T* elem = (const T*)((const char*)base + mid * elemSize); |
- |
- if (less(*elem, key)) |
- lo = mid + 1; |
- else |
- hi = mid; |
- } |
- |
- const T* elem = (const T*)((const char*)base + hi * elemSize); |
- if (less(*elem, key)) { |
- hi += 1; |
- hi = ~hi; |
- } else if (less(key, *elem)) { |
- hi = ~hi; |
- } |
- return hi; |
-} |
- |
-// Adapts a less-than function to a functor. |
-template <typename T, bool (LESS)(const T&, const T&)> struct SkTLessFunctionToFunctorAdaptor { |
- bool operator()(const T& a, const T& b) { return LESS(a, b); } |
-}; |
- |
-// Specialization for case when T==K and the caller wants to use a function rather than functor. |
-template <typename T, bool (LESS)(const T&, const T&)> |
-int SkTSearch(const T base[], int count, const T& target, size_t elemSize) { |
- static SkTLessFunctionToFunctorAdaptor<T, LESS> functor; |
- return SkTSearch(base, count, target, elemSize, functor); |
-} |
- |
-// Adapts operator < to a functor. |
-template <typename T> struct SkTLessFunctor { |
- bool operator()(const T& a, const T& b) { return a < b; } |
-}; |
- |
-// Specialization for T==K, compare using op <. |
-template <typename T> |
-int SkTSearch(const T base[], int count, const T& target, size_t elemSize) { |
- static SkTLessFunctor<T> functor; |
- return SkTSearch(base, count, target, elemSize, functor); |
-} |
- |
-// Similar to SkLessFunctionToFunctorAdaptor but makes the functor interface take T* rather than T. |
-template <typename T, bool (LESS)(const T&, const T&)> struct SkTLessFunctionToPtrFunctorAdaptor { |
- bool operator() (const T* t, const T* k) { return LESS(*t, *k); } |
-}; |
- |
-// Specialization for case where domain is an array of T* and the key value is a T*, and you want |
-// to compare the T objects, not the pointers. |
-template <typename T, bool (LESS)(const T&, const T&)> |
-int SkTSearch(T* base[], int count, T* target, size_t elemSize) { |
- static SkTLessFunctionToPtrFunctorAdaptor<T, LESS> functor; |
- return SkTSearch(base, count, target, elemSize, functor); |
-} |
- |
-int SkStrSearch(const char*const* base, int count, const char target[], |
- size_t target_len, size_t elemSize); |
-int SkStrSearch(const char*const* base, int count, const char target[], |
- size_t elemSize); |
- |
-/** Like SkStrSearch, but treats target as if it were all lower-case. Assumes that |
- base points to a table of lower-case strings. |
-*/ |
-int SkStrLCSearch(const char*const* base, int count, const char target[], |
- size_t target_len, size_t elemSize); |
-int SkStrLCSearch(const char*const* base, int count, const char target[], |
- size_t elemSize); |
- |
-/** Helper class to convert a string to lower-case, but only modifying the ascii |
- characters. This makes the routine very fast and never changes the string |
- length, but it is not suitable for linguistic purposes. Normally this is |
- used for buiding and searching string tables. |
-*/ |
-class SkAutoAsciiToLC { |
-public: |
- SkAutoAsciiToLC(const char str[], size_t len = (size_t)-1); |
- ~SkAutoAsciiToLC(); |
- |
- const char* lc() const { return fLC; } |
- size_t length() const { return fLength; } |
- |
-private: |
- char* fLC; // points to either the heap or fStorage |
- size_t fLength; |
- enum { |
- STORAGE = 64 |
- }; |
- char fStorage[STORAGE+1]; |
-}; |
- |
-// Helper when calling qsort with a compare proc that has typed its arguments |
-#define SkCastForQSort(compare) reinterpret_cast<int (*)(const void*, const void*)>(compare) |
- |
-#endif |