File indexing completed on 2023-05-30 11:30:51
0001 /** 0002 * Copyright (C) 2003 Maksim Orlovich <maksim.orlovich@kdemail.net> 0003 * 0004 * This program is free software; you can redistribute it and/or modify it under 0005 * the terms of the GNU General Public License as published by the Free Software 0006 * Foundation; either version 2 of the License, or (at your option) any later 0007 * version. 0008 * 0009 * This program is distributed in the hope that it will be useful, but WITHOUT ANY 0010 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 0011 * PARTICULAR PURPOSE. See the GNU General Public License for more details. 0012 * 0013 * You should have received a copy of the GNU General Public License along with 0014 * this program. If not, see <http://www.gnu.org/licenses/>. 0015 */ 0016 0017 #ifndef STRING_SHARE_H 0018 #define STRING_SHARE_H 0019 0020 class QString; 0021 0022 /** 0023 * This class attempts to normalize repeated occurrences of strings to use 0024 *the same shared object, if possible, by using a small hash 0025 */ 0026 class StringShare 0027 { 0028 struct Data; 0029 public: 0030 static QString tryShare(const QString& in); 0031 static unsigned numHits(); 0032 static unsigned numAttempts(); 0033 0034 private: 0035 static Data* data(); 0036 }; 0037 0038 #endif 0039 0040 // vim: set et sw=4 tw=0 sta: