libept
|
00001 #ifndef EPT_DEBTAGS_PKGIDINDEXER_H 00002 #define EPT_DEBTAGS_PKGIDINDEXER_H 00003 00009 /* 00010 * Copyright (C) 2003-2007 Enrico Zini <enrico@debian.org> 00011 * 00012 * This program is free software; you can redistribute it and/or modify 00013 * it under the terms of the GNU General Public License as published by 00014 * the Free Software Foundation; either version 2 of the License, or 00015 * (at your option) any later version. 00016 * 00017 * This program is distributed in the hope that it will be useful, 00018 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00019 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00020 * GNU General Public License for more details. 00021 * 00022 * You should have received a copy of the GNU General Public License 00023 * along with this program; if not, write to the Free Software 00024 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00025 */ 00026 00027 #include <ept/popcon/maint/sourcedir.h> 00028 #include <string> 00029 00030 namespace ept { 00031 namespace popcon { 00032 00033 struct InfoStruct 00034 { 00035 size_t submissions; 00036 }; 00037 00038 struct PopconIndexer 00039 { 00040 SourceDir mainSource; 00041 SourceDir userSource; 00042 time_t ts_main_src; 00043 time_t ts_user_src; 00044 time_t ts_main_sco; 00045 time_t ts_user_sco; 00046 time_t ts_main_idx; 00047 time_t ts_user_idx; 00048 00049 time_t sourceTimestamp() const 00050 { 00051 time_t res = ts_main_src; 00052 if (ts_user_src > res) res = ts_user_src; 00053 return res; 00054 00055 } 00056 bool needsRebuild() const; 00057 bool rebuild(const std::string& scofname, const std::string& idxfname); 00058 bool rebuildIfNeeded(); 00059 bool getUpToDatePopcon(std::string& scofname, std::string& idxfname); 00060 00061 bool userIndexIsRedundant() const; 00062 bool deleteRedundantUserIndex(); 00063 00064 void rescan(); 00065 00066 PopconIndexer(); 00067 00068 static bool obtainWorkingPopcon(std::string& scofname, std::string& idxfname); 00069 }; 00070 00071 } 00072 } 00073 00074 // vim:set ts=4 sw=4: 00075 #endif