Skip to content

Instantly share code, notes, and snippets.

@pjazdzewski1990
Created May 15, 2015 11:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pjazdzewski1990/23a185b6552b379da22c to your computer and use it in GitHub Desktop.
Save pjazdzewski1990/23a185b6552b379da22c to your computer and use it in GitHub Desktop.
class EventPublisherActor extends ActorPublisher[GameEvent] {
var eventCache: List[GameEvent] = Nil
context.system.eventStream.subscribe(self, classOf[GameEvent])
override def receive = {
case Request(n) =>
while (isActive && totalDemand > 0 && eventCache.nonEmpty) {
val (head :: tail) = eventCache
onNext(head)
eventCache = tail
}
case event: GameEvent =>
if (isActive && totalDemand > 0)
onNext(event)
else
eventCache :+= event
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment