Merge pull request #2 from akkadotnet/dev

Dev
Merge pull request #133 from akkadotnet/dev

Akka.NET version v0.5.8
Merge branch 'dev'
Merge branch 'dev'
Merge pull request #150 from Aaronontheweb/master

Akka.NET v0.6 release
added an NLog adapter & modified build template
Merge pull request #151 from mmisztal1980/master

Akka.NLog adapter
Update README.md
Update README.md
Working on CircuitBreaker
Add AtomicBoolean and Switch
Merge pull request #154 from HCanber/atomicboolean-switch

Add AtomicBoolean and Switch
Fix Switch to use Akka.Tools.AtomicBoolean

This was due to me @hcanber adding Tools.AtomicBoolean and not seeing @rogeralsing just added one too.
Update README.md
Merge pull request #155 from HCanber/dev

Fix Switch to use Akka.Tools.AtomicBoolean

This was due to me @hcanber adding Tools.AtomicBoolean and not seeing @rogeralsing just added one too.
Moved atomicint/long to Tool namespace, altered CircuitBreaker to use this
Print more stats in the PingPong example

Now includes start time-the time to start the system and all actors, and a total time.
Merge pull request #158 from HCanber/pingpong

Print more stats in the PingPong example
Now includes start time=the time to start the system and all actors, and a total time:
Change Receive to work like Akka

The following changes are made:
Change Receive to bool Receive(object message) to mimic Akka's Receive which is a PartialFunction[Any, Unit]
In Akka this is the pseudo code for handling a message
if(receive.isDefinedAt(message))
  receive.apply(message)
else
  unhandled(message)

This commits implements it like:
if(!receive(message))
  unhandled(message)

Change ActorBase to behave like Akka
- OnReceive is pushed down to UntypedActor
- Introduce abstract bool Receive(object message)
- Introduce bool AroundReceive(Receive receive, object message)

Introduce IUntypedActorContext (corresponding to Akka's UntypedActorContext trait) and let ActorCell implement it.

UntypedActor's Receive() delegates to the new OnReceive() (just like Akka) and reimplements the Context property to return IUntypedActorContext.

Existing actors in Akka.Remote (ReliableDeliverySupervisor, TransportSupervisor, ActorTransportAdapterManager) and Akka.FSharp.FunActor now inherits UntypedActor instead of ActorBase. Someone with more knowledge of the code, should go through these and change to ActorBase (for guidance, see what was changed in FSMBase).

Change inheritors of ActorBase to override Receive instead of OnReceive.

When receiving DeathWatchNotification, only send Terminated to Self for watched actors
Merge branch 'HCanber-receive-like-akka' into dev

Change Receive to work like Akka

The following changes are made:
Change Receive to bool Receive(object message) to mimic Akka's Receive which is a PartialFunction[Any, Unit]
In Akka this is the pseudo code for handling a message
if(receive.isDefinedAt(message))
  receive.apply(message)
else
  unhandled(message)

This commits implements it like:
if(!receive(message))
  unhandled(message)

Change ActorBase to behave like Akka
- OnReceive is pushed down to UntypedActor
- Introduce abstract bool Receive(object message)
- Introduce bool AroundReceive(Receive receive, object message)

Introduce IUntypedActorContext (corresponding to Akka's UntypedActorContext trait) and let ActorCell implement it.

UntypedActor's Receive() delegates to the new OnReceive() (just like Akka) and reimplements the Context property to return IUntypedActorContext.

Existing actors in Akka.Remote (ReliableDeliverySupervisor, TransportSupervisor, ActorTransportAdapterManager) and Akka.FSharp.FunActor now inherits UntypedActor instead of ActorBase. Someone with more knowledge of the code, should go through these and change to ActorBase (for guidance, see what was changed in FSMBase).

Change inheritors of ActorBase to override Receive instead of OnReceive.

When receiving DeathWatchNotification, only send Terminated to Self for watched actors