void Database::add_record(db_data data) { Hash hash = get_hash(data.sha256); if (!hash.is_valid()) { hash = addHashEntry(data.sha256, data.pHash); } if(entryExists(data)) { LOG4CPLUS_DEBUG(logger, "Entry for " << data.filePath << " already exists, discarding..."); recordsWritten--; return; } try{ transaction t(orm_db->begin()); ImageRecord ir = ImageRecord(data.filePath.string(), &hash); orm_db->persist(ir); t.commit(); } catch (const odb::exception &e) { LOG4CPLUS_ERROR(logger, "Failed to add ImageRecord for path " << data.filePath << " : " << e.what()); } }
bool Database::sha_exists(std::string sha) { Hash hash = get_hash(sha); return hash.is_valid(); }