Merge "bumped the pom version"
[dmaap/messagerouter/msgrtr.git] / src / main / java / com / att / dmf / mr / backends / Consumer.java
1 /*******************************************************************************
2  *  ============LICENSE_START=======================================================
3  *  org.onap.dmaap
4  *  ================================================================================
5  *  Copyright © 2017 AT&T Intellectual Property. All rights reserved.
6  *  ================================================================================
7  *  Licensed under the Apache License, Version 2.0 (the "License");
8  *  you may not use this file except in compliance with the License.
9  *  You may obtain a copy of the License at
10  *        http://www.apache.org/licenses/LICENSE-2.0
11 *  
12  *  Unless required by applicable law or agreed to in writing, software
13  *  distributed under the License is distributed on an "AS IS" BASIS,
14  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  *  See the License for the specific language governing permissions and
16  *  limitations under the License.
17  *  ============LICENSE_END=========================================================
18  *  
19  *  ECOMP is a trademark and service mark of AT&T Intellectual Property.
20  *  
21  *******************************************************************************/
22 package com.att.dmf.mr.backends;
23
24 import java.util.ArrayList;
25
26 /**
27  * A consumer interface. Consumers pull the next message from a given topic.
28  * @author peter
29  */
30 public interface Consumer
31 {       
32         /**
33          * A message interface provide the offset and message
34          * @author nilanjana.maity
35          *
36          */
37         public interface Message
38         {       
39                 /**
40                  * returning the offset of that particular message 
41                  * @return long
42                  */
43                 long getOffset ();
44                 /**
45                  * returning the message 
46                  * @return message
47                  */
48                 String getMessage ();
49         }
50
51         /**
52          * Get this consumer's name
53          * @return name
54          */
55         String getName ();
56
57         /**
58          * Get creation time in ms
59          * @return
60          */
61         long getCreateTimeMs ();
62
63         /**
64          * Get last access time in ms
65          * @return
66          */
67         long getLastAccessMs ();
68         
69         /**
70          * Get the next message from this source. This method must not block.
71          * @return the next message, or null if none are waiting
72          */
73         Message nextMessage ();
74
75         /**
76          * Get the next message from this source. This method must not block.
77          * @param atOffset start with the next message at or after atOffset. -1 means next from last request
78          * @return the next message, or null if none are waiting
79          */
80
81
82         
83         /**
84          * Close/clean up this consumer
85          * @return 
86          */
87         boolean close();
88         
89         /**
90          * Commit the offset of the last consumed message
91          * 
92          */
93         void commitOffsets();
94         
95         /**
96          * Get the offset this consumer is currently at
97          * @return offset
98          */
99         long getOffset();
100         
101         void setOffset(long offset);
102         
103         
104         
105         
106 }