'git mv' rst resources to md
This is mainly intended to keep the git history as neat as possible. No actual conversion yet, so now both the rst and the paradox docs are broken, which will be fixed in the next commits.
This commit is contained in:
parent
5507147073
commit
a4a0d308ad
553 changed files with 0 additions and 0 deletions
|
|
@ -0,0 +1,60 @@
|
|||
/**
|
||||
* Copyright (C) 2009-2017 Lightbend Inc. <http://www.lightbend.com>
|
||||
*/
|
||||
|
||||
package docs.dispatcher
|
||||
|
||||
//#mailbox-implementation-example
|
||||
import akka.actor.ActorRef
|
||||
import akka.actor.ActorSystem
|
||||
import akka.dispatch.Envelope
|
||||
import akka.dispatch.MailboxType
|
||||
import akka.dispatch.MessageQueue
|
||||
import akka.dispatch.ProducesMessageQueue
|
||||
import com.typesafe.config.Config
|
||||
import java.util.concurrent.ConcurrentLinkedQueue
|
||||
import scala.Option
|
||||
|
||||
// Marker trait used for mailbox requirements mapping
|
||||
trait MyUnboundedMessageQueueSemantics
|
||||
|
||||
object MyUnboundedMailbox {
|
||||
// This is the MessageQueue implementation
|
||||
class MyMessageQueue extends MessageQueue
|
||||
with MyUnboundedMessageQueueSemantics {
|
||||
|
||||
private final val queue = new ConcurrentLinkedQueue[Envelope]()
|
||||
|
||||
// these should be implemented; queue used as example
|
||||
def enqueue(receiver: ActorRef, handle: Envelope): Unit =
|
||||
queue.offer(handle)
|
||||
def dequeue(): Envelope = queue.poll()
|
||||
def numberOfMessages: Int = queue.size
|
||||
def hasMessages: Boolean = !queue.isEmpty
|
||||
def cleanUp(owner: ActorRef, deadLetters: MessageQueue) {
|
||||
while (hasMessages) {
|
||||
deadLetters.enqueue(owner, dequeue())
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// This is the Mailbox implementation
|
||||
class MyUnboundedMailbox extends MailboxType
|
||||
with ProducesMessageQueue[MyUnboundedMailbox.MyMessageQueue] {
|
||||
|
||||
import MyUnboundedMailbox._
|
||||
|
||||
// This constructor signature must exist, it will be called by Akka
|
||||
def this(settings: ActorSystem.Settings, config: Config) = {
|
||||
// put your initialization code here
|
||||
this()
|
||||
}
|
||||
|
||||
// The create method is called to create the MessageQueue
|
||||
final override def create(
|
||||
owner: Option[ActorRef],
|
||||
system: Option[ActorSystem]): MessageQueue =
|
||||
new MyMessageQueue()
|
||||
}
|
||||
//#mailbox-implementation-example
|
||||
Loading…
Add table
Add a link
Reference in a new issue