/* * ===============================LICENSE_START====================================== * dcae-analytics * ================================================================================ * Copyright © 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ============================LICENSE_END=========================================== */ package org.openecomp.dcae.apod.analytics.dmaap.service.publisher; import java.util.List; /** *

* DMaaP MR Publisher Queue handles back pressure in case DMaaP MR Publisher topic * is offline for some reason. It does so by having a recovery queue which keeps * messages in order in case there is temporary interruption in DMaaP Publisher *

* * @author Rajiv Singla . Creation Date: 11/1/2016. */ public interface DMaaPMRPublisherQueue { /** *

* Add batchMessages to Batch Queue *

* * @param batchMessages messages that needs to be added to batch queue * @return current size of batch queue. Throws {@link IllegalStateException} * if batch queue does not have enough space */ int addBatchMessages(List batchMessages); /** *

* Add recoverable messages to Recoverable Queue *

* * @param recoverableMessages messages that needs to be added to recoverable queue * @return current size of the recoverable queue. Throws {@link IllegalStateException} * if recoverable queue does not have enough space */ int addRecoverableMessages(List recoverableMessages); /** *

* Get messages that need to be published to DMaaP topic. Messages in recoverable * queue are appended if present. *

* * @return List of messages from both batch and recovery queue */ List getMessageForPublishing(); /** *

* Remaining capacity of Batch Queue *

* * @return Remaining Batch Queue Size */ int getBatchQueueRemainingSize(); /** *

* Remaining capacity of Recovery Queue *

* * @return Remaining Recovery Queue Size */ int getRecoveryQueueRemainingSize(); }