Exemplo n.º 1
0
        private static void ManageHieararchy()
        {
            ColorConsole.WriteLineGray("Creating actor supervisor hierarchy");
            MovieStreamingActorSystem.ActorOf(Props.Create <PlaybackActor>(), Constants.ActorsNames.Playback);

            do
            {
                //ShortPause();
                Console.WriteLine();
                Console.ForegroundColor = ConsoleColor.White;
                ColorConsole.WriteLineGray("Enter a command (play/stop/exit) and hit Enter");
                var command = Console.ReadLine();

                if (command.StartsWith(Constants.Commands.Play, StringComparison.InvariantCultureIgnoreCase))
                {
                    var userId     = int.Parse(command.Split(',')[1]);
                    var movieTitle = command.Split(',')[2];
                    var message    = new PlayMovieMessage(movieTitle, userId);
                    MovieStreamingActorSystem.ActorSelection(Constants.ActorsSelectionPaths.UserCoordinator).Tell(message);
                }

                if (command.StartsWith(Constants.Commands.Stop, StringComparison.InvariantCultureIgnoreCase))
                {
                    var userId  = int.Parse(command.Split(',')[1]);
                    var message = new StopMovieMessage(userId);
                    MovieStreamingActorSystem.ActorSelection(Constants.ActorsSelectionPaths.UserCoordinator).Tell(message);
                }
                if (command.StartsWith(Constants.Commands.Exit, StringComparison.InvariantCultureIgnoreCase))
                {
                    TerminateActorSystem();
                    Console.ReadKey();
                    Environment.Exit(1);
                }
            } while (true);
        }
Exemplo n.º 2
0
        static async Task HierarchyMainAsync()
        {
            ColorConsole.WriteLineGray("Creating MovieStreamingActorSystem");
            MovieStreamingActorSystem = ActorSystem.Create("MovieStreamingActorSystem");

            ColorConsole.WriteLineGray("Creating actor supervisory hierarchy");
            MovieStreamingActorSystem.ActorOf(Props.Create <PlaybackActor>(), "Playback");


            do
            {
                await ShortPause();

                Console.WriteLine();
                Console.ForegroundColor = ConsoleColor.DarkGray;
                ColorConsole.WriteLineGray("enter a command and hit enter");

                var    command = Console.ReadLine();
                object message = null;

                if (command.StartsWith("play"))
                {
                    var commandParts = command.Split(',');
                    var userId       = int.Parse(commandParts[1]);
                    var movieTitle   = commandParts[2];

                    message = new PlayMovieMessage(movieTitle, userId);
                }

                if (command.StartsWith("stop"))
                {
                    var userId = int.Parse(command.Split(',')[1]);

                    message = new StopMovieMessage(userId);
                }

                if (message != null)
                {
                    MovieStreamingActorSystem.ActorSelection("/user/Playback/UserCoordinator").Tell(message);
                }

                if (command == "exit")
                {
                    await MovieStreamingActorSystem.Terminate();

                    await MovieStreamingActorSystem.WhenTerminated;
                    ColorConsole.WriteLineGray("Actor system shutdown");
                    Console.ReadKey();
                    Environment.Exit(1);
                }
            }while (true);
        }
Exemplo n.º 3
0
        static void Main(string[] args)
        {
            ColorConsole.WriteLineGray("Creating MovieStreamingActorSystem");
            MovieStreamingActorSystem = ActorSystem.Create("MovieStreamingActorSystem");

            ColorConsole.WriteLineGray("Creating actor supervisor hierarchy");
            MovieStreamingActorSystem.ActorOf(Props.Create <PlaybackActor>(), "Playback");

            do
            {
                ShortPause();

                Console.WriteLine();
                ColorConsole.WriteLineDarkGray("Input a command and hit Enter");

                string   command = Console.ReadLine();
                string[] split   = command.Split(",");
                string   action  = split[0];

                ActorSelection userCoordinatorActor    = MovieStreamingActorSystem.ActorSelection("/user/Playback/UserCoordinator");
                ActorSelection playbackStatisticsActor = MovieStreamingActorSystem.ActorSelection("/user/Playback/PlaybackStatistics");

                if (action.Equals("play"))
                {
                    int    userId     = int.Parse(split[1]);
                    string movieTitle = split[2];
                    var    message    = new PlayMovieMessage(movieTitle, userId);

                    userCoordinatorActor.Tell(message);
                    playbackStatisticsActor.Tell(message);
                }

                if (command.StartsWith("stop"))
                {
                    int userId  = int.Parse(split[1]);
                    var message = new StopMovieMessage(userId);

                    userCoordinatorActor.Tell(message);
                }

                if (command.StartsWith("exit"))
                {
                    MovieStreamingActorSystem.Terminate();
                    ColorConsole.WriteLineGray("Actor system shutdown");
                    Console.ReadKey();
                    Environment.Exit(1);
                }
            } while (true);
        }
Exemplo n.º 4
0
        private static void Main(string[] args)
        {
            ColorConsole.WriteLineGray("Creating MovieStreamingActorSystem");
            MovieStreamingActorSystem = ActorSystem.Create("MovieStreamingActorSystem");

            ColorConsole.WriteLineGray("Creating actor supervisory hierarchy");
            MovieStreamingActorSystem.ActorOf(Props.Create <PlaybackActor>(), "Playback");


            do
            {
                ShortPause();

                Console.WriteLine();
                Console.ForegroundColor = ConsoleColor.DarkGray;
                ColorConsole.WriteLineGray("enter a command and hit enter");

                var command = Console.ReadLine();

                if (command.StartsWith("play"))
                {
                    int    userId     = int.Parse(command.Split(',')[1]);
                    string movieTitle = command.Split(',')[2];

                    var message = new PlayMovieMessage(movieTitle, userId);
                    MovieStreamingActorSystem.ActorSelection("/user/Playback/UserCoordinator").Tell(message);
                }

                if (command.StartsWith("stop"))
                {
                    int userId = int.Parse(command.Split(',')[1]);

                    var message = new StopMovieMessage(userId);
                    MovieStreamingActorSystem.ActorSelection("/user/Playback/UserCoordinator").Tell(message);
                }

                if (command == "exit")
                {
                    MovieStreamingActorSystem.Shutdown();
                    MovieStreamingActorSystem.AwaitTermination();
                    ColorConsole.WriteLineGray("Actor system shutdown");
                    Console.ReadKey();
                    Environment.Exit(1);
                }
            } while (true);
        }
        static void Main(string[] args)
        {
            var builder = new ContainerBuilder();

            builder.RegisterType <SimpleTrendingMovieAnalyzer>().As <ITrendingMovieAnalyzer>();
            builder.RegisterType <TrendingMoviesActor>();

            var container = builder.Build();

            MovieStreamingActorSystem = ActorSystem.Create("MovieStreamingActorSystem");

            IDependencyResolver resolver = new AutoFacDependencyResolver(container, MovieStreamingActorSystem);

            MovieStreamingActorSystem.ActorOf(Props.Create <PlaybackActor>(), "Playback");

            do
            {
                ShortPause();

                Console.WriteLine();
                Console.ForegroundColor = ConsoleColor.DarkGray;
                ColorConsole.WriteLineGray("enter a command and hit enter");

                var command = Console.ReadLine();

                if (command.StartsWith("play"))
                {
                    int    userId     = int.Parse(command.Split(',')[1]);
                    string movieTitle = command.Split(',')[2];

                    var message = new PlayMovieMessage(movieTitle, userId);
                    MovieStreamingActorSystem.ActorSelection("/user/Playback/UserCoordinator").Tell(message);
                }
                else if (command.StartsWith("stop"))
                {
                    int userId = int.Parse(command.Split(',')[1]);

                    var message = new StopMovieMessage(userId);
                    MovieStreamingActorSystem.ActorSelection("/user/Playback/UserCoordinator").Tell(message);
                }
                else if (command == "exit")
                {
                    Terminate();
                }
            } while (true);
        }
Exemplo n.º 6
0
        static void Main(string[] args)
        {
            MovieStreamingActorSystem = ActorSystem.Create("MovieStreamingActorSystem");
            Console.WriteLine("created");

            IActorRef userActorRef = MovieStreamingActorSystem.ActorOf(
                Props.Create <PlaybackActor>(), "Playback");

            do
            {
                ShortPause();

                Console.WriteLine();
                ColorConsole.WriteLineGray("enter a command and hit");

                var command = Console.ReadLine();

                if (command.StartsWith("play"))
                {
                    int    userId     = int.Parse(command.Split(',')[1]);
                    string movieTitle = command.Split(',')[2];

                    var message = new PlayMovieMessage(movieTitle, userId);
                    MovieStreamingActorSystem.ActorSelection("/user/Playback/UserCoordinator").Tell(message);
                }

                if (command.StartsWith("stop"))
                {
                    int userId = int.Parse(command.Split(',')[1]);

                    var message = new StopMovieMessage(userId);
                    MovieStreamingActorSystem.ActorSelection("/user/Playback/UserCoordinator").Tell(message);
                }

                if (command.StartsWith("exit"))
                {
                    MovieStreamingActorSystem.Terminate();
                    MovieStreamingActorSystem.WhenTerminated.Wait();

                    Console.WriteLine("Terminated");
                    Console.ReadKey();
                    Environment.Exit(1);
                }
            } while (true);
        }
Exemplo n.º 7
0
        static async Task Main(string[] args)
        {
            var system = new ActorSystem();

            Console.WriteLine("Actor system created");

            var props       = Props.FromProducer(() => new PlaybackActor());
            var playbackPid = system.Root.Spawn(props);

            var actorPidMessage = await system.Root.RequestAsync <ResponseActorPidMessage>(playbackPid, new RequestActorPidMessage());

            var userCoordinatorActorPid = actorPidMessage.Pid;

            do
            {
                ShortPause();

                Console.WriteLine();
                Console.ForegroundColor = ConsoleColor.DarkGray;
                ColorConsole.WriteLineGray("enter a command and hit enter");

                var command = Console.ReadLine();

                if (command != null)
                {
                    if (command.StartsWith("play"))
                    {
                        var userId     = int.Parse(command.Split(',')[1]);
                        var movieTitle = command.Split(',')[2];

                        system.Root.Send(userCoordinatorActorPid, new PlayMovieMessage(movieTitle, userId));
                    }
                    else if (command.StartsWith("stop"))
                    {
                        var userId = int.Parse(command.Split(',')[1]);

                        system.Root.Send(userCoordinatorActorPid, new StopMovieMessage(userId));
                    }
                    else if (command == "exit")
                    {
                        Terminate();
                    }
                }
            } while (true);
Exemplo n.º 8
0
 private static void StartSystem()
 {
     ColorConsole.WriteLineGray("Creating MovieStreamActorSystem");
     MovieStreamingActorSystem = ActorSystem.Create(Constants.ActorsNames.MovieStreamingActorSystem);
 }