Created
September 28, 2017 10:48
-
-
Save NMZivkovic/84e7886aa69484be77a91c55d370dbac to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class UsersActor : ReceiveActor | |
{ | |
private Dictionary<string, IActorRef> _users; | |
public UsersActor() | |
{ | |
_users = new Dictionary<string, IActorRef>(); | |
Receive<StartedReadingMessage>(message => ReceivedStartMessage(message)); | |
Receive<StopedReadingMessage>(message => ReceivedStopMessage(message)); | |
} | |
private void ReceivedStartMessage(StartedReadingMessage message) | |
{ | |
IActorRef userActor; | |
if(!_users.TryGetValue(message.User, out userActor)) | |
{ | |
userActor = Context.ActorOf(Props.Create(typeof(UserActor)), message.User); | |
_users.Add(message.User, userActor); | |
} | |
userActor.Tell(message); | |
} | |
private void ReceivedStopMessage(StopedReadingMessage message) | |
{ | |
IActorRef userActor; | |
if (!_users.TryGetValue(message.User, out userActor)) | |
{ | |
throw new InvalidOperationException("User doesn't exists!"); | |
} | |
userActor.Tell(message); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment