Package org.nuxeo.lib.stream.log
Interface LogAppender<M extends Externalizable>
- All Known Subinterfaces:
CloseableLogAppender<M>
- All Known Implementing Classes:
KafkaLogAppender
,MemLogAppender
public interface LogAppender<M extends Externalizable>
An appender is used to append message into a Log. Implementations must be thread safe.
- Since:
- 9.3
-
Method Summary
Modifier and TypeMethodDescriptionAppend a message into a partition, returnsLogOffset
position of the message.default LogOffset
Same asappend(int, Externalizable)
, the queue is chosen using a hash of parameters "key".boolean
closed()
Returnstrue
if the appender has been closed by the manager.getCodec()
Returns the codec used to write record.name()
Returns the Log's name.int
size()
Returns the number of partitions in the Log.boolean
Wait for consumer to process a message up to the offset.
-
Method Details
-
name
Name name()Returns the Log's name. -
size
int size()Returns the number of partitions in the Log. -
append
Append a message into a partition, returnsLogOffset
position of the message. This method is thread safe, a queue can be shared by multiple producers.- Parameters:
partition
- index lower thansize()
-
append
Same asappend(int, Externalizable)
, the queue is chosen using a hash of parameters "key". -
waitFor
Wait for consumer to process a message up to the offset. The message is processed if a consumer of the group commits a greater or equals offset. Returntrue
if the message has been consumed,false
in case of timeout.- Throws:
InterruptedException
-
closed
boolean closed()Returnstrue
if the appender has been closed by the manager. -
getCodec
Returns the codec used to write record. A null codec is the default legacy encoding.- Since:
- 10.2
-