All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.cj.kafka.rx.Committable.scala Maven / Gradle / Ivy

The newest version!
package com.cj.kafka.rx

trait Committable[V] {
  private[rx] def commitfn: Commit = defaultCommit
  def value: V
  def commit(offsetMerge: OffsetMerge): OffsetMap
  def commit(): OffsetMap = commit(defaultMerge)
  def derive[R](newValue: R): Committable[R] = {
    val origin = this
    new Committable[R] {
      def value: R = newValue
      def commit(offsetMerge: OffsetMerge): OffsetMap = origin.commit(offsetMerge)
      override def commitfn = origin.commitfn
      override def commit(): OffsetMap = origin.commit()
    }
  }
  def map[R](fn: (V) => R) : Committable[R] = {
    derive(fn(value))
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy