File indexing completed on 2024-06-16 05:00:54
0001 /* 0002 * Copyright (C) 2015 Christian Mollekopf <chrigi_1@fastmail.fm> 0003 * 0004 * This program is free software; you can redistribute it and/or modify 0005 * it under the terms of the GNU General Public License as published by 0006 * the Free Software Foundation; either version 2 of the License, or 0007 * (at your option) any later version. 0008 * 0009 * This program is distributed in the hope that it will be useful, 0010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 0011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0012 * GNU General Public License for more details. 0013 * 0014 * You should have received a copy of the GNU General Public License 0015 * along with this program; if not, write to the 0016 * Free Software Foundation, Inc., 0017 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 0018 */ 0019 #include "fulltextindexer.h" 0020 0021 #include "typeindex.h" 0022 #include "fulltextindex.h" 0023 #include "log.h" 0024 #include "utils.h" 0025 0026 using namespace Sink; 0027 using namespace Sink::ApplicationDomain; 0028 0029 0030 void FulltextIndexer::add(const ApplicationDomain::ApplicationDomainType &entity) 0031 { 0032 if (!index) { 0033 index.reset(new FulltextIndex{mResourceInstanceIdentifier, Storage::DataStore::ReadWrite}); 0034 } 0035 index->add(Sink::Storage::Identifier::fromDisplayByteArray(entity.identifier()), entity.getProperty("index").value<QList<QPair<QString, QString>>>(), entity.getProperty("indexDate").value<QDateTime>()); 0036 } 0037 0038 void FulltextIndexer::remove(const ApplicationDomain::ApplicationDomainType &entity) 0039 { 0040 if (!index) { 0041 index.reset(new FulltextIndex{mResourceInstanceIdentifier, Storage::DataStore::ReadWrite}); 0042 } 0043 index->remove(Sink::Storage::Identifier::fromDisplayByteArray(entity.identifier())); 0044 } 0045 0046 void FulltextIndexer::commitTransaction() 0047 { 0048 if (index) { 0049 index->commitTransaction(); 0050 } 0051 } 0052 0053 void FulltextIndexer::abortTransaction() 0054 { 0055 if (index) { 0056 index->abortTransaction(); 0057 } 0058 } 0059 0060 QMap<QByteArray, int> FulltextIndexer::databases() 0061 { 0062 return {}; 0063 } 0064