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); }
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); }
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); }
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); }
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); }
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);
private static void StartSystem() { ColorConsole.WriteLineGray("Creating MovieStreamActorSystem"); MovieStreamingActorSystem = ActorSystem.Create(Constants.ActorsNames.MovieStreamingActorSystem); }