Oh, sweet -- ExtensibleBehavior looks enormously useful...

On Mon, Jul 10, 2017 at 9:29 AM, Konrad 'ktoso' Malawski <ktos...@gmail.com>
wrote:

> Once I wrote the response I though that for using the library directly
> you'll also want to know about the possibility to implement:
>
>
> /**
>  * Extension point for implementing custom behaviors in addition to the 
> existing
>  * set of behaviors available through the DSLs in 
> [[akka.typed.scaladsl.Actor]] and [[akka.typed.javadsl.Actor]]
>  */
> abstract class ExtensibleBehavior[T] extends Behavior[T] {
>   /**
>    * Process an incoming [[Signal]] and return the next behavior. This means
>    * that all lifecycle hooks, ReceiveTimeout, Terminated and Failed messages
>    * can initiate a behavior change.
>    *
>    * The returned behavior can in addition to normal behaviors be one of the
>    * canned special objects:
>    *
>    *  * returning `stopped` will terminate this Behavior
>    *  * returning `same` designates to reuse the current Behavior
>    *  * returning `unhandled` keeps the same Behavior and signals that the 
> message was not yet handled
>    *
>    * Code calling this method should use [[Behavior$]] `canonicalize` to 
> replace
>    * the special objects with real Behaviors.
>    */
>   @throws(classOf[Exception])
>   def receiveSignal(ctx: ActorContext[T], msg: Signal): Behavior[T]
>
>   /**
>    * Process an incoming message and return the next behavior.
>    *
>    * The returned behavior can in addition to normal behaviors be one of the
>    * canned special objects:
>    *
>    *  * returning `stopped` will terminate this Behavior
>    *  * returning `same` designates to reuse the current Behavior
>    *  * returning `unhandled` keeps the same Behavior and signals that the 
> message was not yet handled
>    *
>    * Code calling this method should use [[Behavior$]] `canonicalize` to 
> replace
>    * the special objects with real Behaviors.
>    */
>   @throws(classOf[Exception])
>   def receiveMessage(ctx: ActorContext[T], msg: T): Behavior[T]
>
> }
>
>
> In which way you should be able to "wrap" any other behaviour and to the
> MDC clear in the right place hm...
>
> Anyway, like I said, not a solved problem yet.
>
> -- Konrad
>
> --
> >>>>>>>>>> Read the docs: http://akka.io/docs/
> >>>>>>>>>> Check the FAQ: http://doc.akka.io/docs/akka/
> current/additional/faq.html
> >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
> ---
> You received this message because you are subscribed to the Google Groups
> "Akka User List" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to akka-user+unsubscr...@googlegroups.com.
> To post to this group, send email to akka-user@googlegroups.com.
> Visit this group at https://groups.google.com/group/akka-user.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
>>>>>>>>>>      Read the docs: http://akka.io/docs/
>>>>>>>>>>      Check the FAQ: 
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>>      Search the archives: https://groups.google.com/group/akka-user
--- 
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to akka-user+unsubscr...@googlegroups.com.
To post to this group, send email to akka-user@googlegroups.com.
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to