001package ca.uhn.fhir.jpa.api.svc;
002
003/*-
004 * #%L
005 * HAPI FHIR JPA API
006 * %%
007 * Copyright (C) 2014 - 2021 Smile CDR, Inc.
008 * %%
009 * Licensed under the Apache License, Version 2.0 (the "License");
010 * you may not use this file except in compliance with the License.
011 * You may obtain a copy of the License at
012 *
013 *      http://www.apache.org/licenses/LICENSE-2.0
014 *
015 * Unless required by applicable law or agreed to in writing, software
016 * distributed under the License is distributed on an "AS IS" BASIS,
017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
018 * See the License for the specific language governing permissions and
019 * limitations under the License.
020 * #L%
021 */
022
023import ca.uhn.fhir.interceptor.model.RequestPartitionId;
024import ca.uhn.fhir.jpa.api.dao.IFhirResourceDao;
025import ca.uhn.fhir.rest.api.server.storage.ResourcePersistentId;
026import ca.uhn.fhir.jpa.searchparam.SearchParameterMap;
027import ca.uhn.fhir.rest.api.CacheControlDirective;
028import ca.uhn.fhir.rest.api.server.IBundleProvider;
029import ca.uhn.fhir.rest.api.server.RequestDetails;
030
031import javax.annotation.Nullable;
032import java.util.List;
033import java.util.Optional;
034
035public interface ISearchCoordinatorSvc {
036
037        void cancelAllActiveSearches();
038
039        List<ResourcePersistentId> getResources(String theUuid, int theFrom, int theTo, @Nullable RequestDetails theRequestDetails);
040
041        IBundleProvider registerSearch(IFhirResourceDao<?> theCallingDao, SearchParameterMap theParams, String theResourceType, CacheControlDirective theCacheControlDirective, @Nullable RequestDetails theRequestDetails, RequestPartitionId theRequestPartitionId);
042
043        /**
044         * Fetch the total number of search results for the given currently executing search, if one is currently executing and
045         * the total is known. Will return empty otherwise
046         */
047        Optional<Integer> getSearchTotal(String theUuid);
048
049}