[DMAAP-CLIENT] First sonar issues review part2
[dmaap/messagerouter/dmaapclient.git] / src / main / java / org / onap / dmaap / mr / client / MRConsumer.java
1 /*******************************************************************************
2  *  ============LICENSE_START=======================================================
3  *  org.onap.dmaap
4  *  ================================================================================
5  *  Copyright © 2017 AT&T Intellectual Property. All rights reserved.
6  *  ================================================================================
7  *  Modifications Copyright © 2021 Orange.
8  *  ================================================================================
9  *  Licensed under the Apache License, Version 2.0 (the "License");
10  *  you may not use this file except in compliance with the License.
11  *  You may obtain a copy of the License at
12  *        http://www.apache.org/licenses/LICENSE-2.0
13  *
14  *  Unless required by applicable law or agreed to in writing, software
15  *  distributed under the License is distributed on an "AS IS" BASIS,
16  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  *  See the License for the specific language governing permissions and
18  *  limitations under the License.
19  *  ============LICENSE_END=========================================================
20  *
21  *  ECOMP is a trademark and service mark of AT&T Intellectual Property.
22  *
23  *******************************************************************************/
24
25 package org.onap.dmaap.mr.client;
26
27 import java.io.IOException;
28 import org.onap.dmaap.mr.client.response.MRConsumerResponse;
29
30 public interface MRConsumer extends MRClient {
31     /**
32      * Fetch a set of messages. The consumer's timeout and message limit are used if set in the constructor call.
33      *
34      * @return a set of messages
35      * @throws IOException
36      */
37     Iterable<String> fetch() throws IOException, Exception;
38
39     /**
40      * Fetch a set of messages with an explicit timeout and limit for this call. These values
41      * override any set in the constructor call.
42      *
43      * @param timeoutMs The amount of time in milliseconds that the server should keep the connection
44      *                  open while waiting for message traffic. Use -1 for default timeout (controlled on the server-side).
45      * @param limit     A limit on the number of messages returned in a single call. Use -1 for no limit.
46      * @return a set messages
47      * @throws IOException if there's a problem connecting to the server
48      */
49     Iterable<String> fetch(int timeoutMs, int limit) throws IOException, Exception;
50
51     MRConsumerResponse fetchWithReturnConsumerResponse();
52
53
54     MRConsumerResponse fetchWithReturnConsumerResponse(int timeoutMs, int limit);
55 }