/* Copyright (c) 2003, 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ #ifndef DLC_HASHTABLE_HPP #define DLC_HASHTABLE_HPP #include #include "DLHashTable.hpp" // Adds "count" to DLHashTable template class DLCHashTable : public DLHashTable { public: // Ctor DLCHashTable(ArrayPool & thePool) : DLHashTable(thePool), m_count(0) {} // Get count Uint32 count() const { return m_count; } // Redefine methods which do add or remove void add(Ptr& ptr) { DLHashTable::add(ptr); m_count++; } void remove(Ptr& ptr, const T & key) { DLHashTable::remove(ptr, key); m_count--; } void remove(Uint32 i) { DLHashTable::remove(i); m_count--; } void remove(Ptr& ptr) { DLHashTable::remove(ptr); m_count--; } void removeAll() { DLHashTable::removeAll(); m_count = 0; } void release(Ptr& ptr, const T & key) { DLHashTable::release(ptr, key); m_count--; } void release(Uint32 i) { DLHashTable::release(i); m_count--; } void release(Ptr& ptr) { DLHashTable::release(ptr); m_count--; } private: Uint32 m_count; }; #endif