/* * Hibernate Search, full-text search for your domain model * * License: GNU Lesser General Public License (LGPL), version 2.1 or later * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. */ package org.hibernate.search.backend.impl.lucene; import java.util.List; import org.hibernate.search.backend.IndexingMonitor; import org.hibernate.search.backend.LuceneWork; /** * Defines the contract for async and synchronous processors to apply * batched of indexing work to the index. * * @author Sanne Grinovero (C) 2014 Red Hat Inc. * @since 5.0 */ interface WorkProcessor { /** * Prepare for the queue to be shut down. * Needs to flush pending work and shutdown any internal threads. */ void shutdown(); /** * Enqueues a new batch of indexing work to be applied. * @param workList the list of work * @param monitor any optional listener which needs to be notified for the work. */ void submit(List<LuceneWork> workList, IndexingMonitor monitor); /** * Only invoked when some dynamic parameters are reconfigured * @param resources the new instance to be used */ void updateResources(LuceneBackendResources resources); }