Skip to content

Instantly share code, notes, and snippets.

View NMZivkovic's full-sized avatar

Nikola Živković NMZivkovic

View GitHub Profile
<configuration>
<configSections>
<section name="akka"
type="Akka.Configuration.Hocon.AkkaConfigurationSection, Akka" />
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
public class Message
{
public string Text { get; private set; }
public Message(string text)
{
Text = text;
}
}
public class MessageProcessor : ReceiveActor
{
public MessageProcessor()
{
Receive<Message>(message => Console.WriteLine("Received a message with text: {0}", message.Text));
}
}
public class Program
{
static void Main(string[] arg)
{
var system = ActorSystem.Create("ActorSystem");
var actor = system.ActorOf<MessageProcessor>("actor");
actor.Tell(new Message("This is first message!"));
Console.ReadLine();
public abstract class Message
{
public string User { get; private set; }
public string Article { get; private set; }
public Message(string user, string article)
{
User = user;
Article = article;
}
public class StartedReadingMessage : Message
{
public StartedReadingMessage(string user, string article)
: base(user, article) {}
}
class StopedReadingMessage : Message
{
public StopedReadingMessage(string user, string article)
: base (user, article) {}
static void Main(string[] args)
{
ActorSystem system = ActorSystem.Create("rubikscode");
IActorRef blogActor = system.ActorOf(Props.Create(typeof(BlogActor)), "blog");
blogActor.Tell(new StartedReadingMessage("NapoleonHill", "Tuples in .NET world and C# 7.0 improvements"));
// Used for simulation.
Thread.Sleep(1000);
public class BlogActor : ReceiveActor
{
private IActorRef _users;
private IActorRef _reporting;
public BlogActor()
{
_users = Context.ActorOf(Props.Create(typeof(UsersActor)), "users");
_reporting = Context.ActorOf(Props.Create(typeof(ReportActor)), "reporting");
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));
public class UserActor : ReceiveActor
{
private Stopwatch _stopwatch;
private bool _isAlreadyReading;
public UserActor()
{
_stopwatch = new Stopwatch();
Receive<StartedReadingMessage>(message => ReceivedStartMessage(message));
Receive<StopedReadingMessage>(message => ReceivedStopMessage(message));