コード例 #1
0
        internal ClusterActorSystem(
            ClusterConfiguration configuration,
            Assembly[] assemblies,
            Action <IServiceCollection> di,
            ActorInvocationPipeline pipeline,
            IActorRefInvoker invoker)
            : base(invoker)
        {
            Pipeline = pipeline;

            using (Trace.Execution("Orleans silo initialization"))
            {
                var builder = new SiloHostBuilder()
                              .UseConfiguration(configuration)
                              .ConfigureServices(services =>
                {
                    services.AddSingleton <IActorSystem>(this);
                    services.AddSingleton(this);
                    services.TryAddSingleton <IActorActivator>(x => new DefaultActorActivator(x));
                    services.AddSingleton <Func <MethodInfo, InvokeMethodRequest, IGrain, string> >(DashboardIntegration.Format);

                    di?.Invoke(services);
                });

                builder.ConfigureApplicationParts(apm => apm
                                                  .AddFromAppDomain()
                                                  .WithCodeGeneration());

                Host = builder.Build();
            }

            Silo = Host.Services.GetRequiredService <Silo>();
            Initialize(Host.Services);
        }
コード例 #2
0
 internal ClientActorSystem(
     ClientConfiguration configuration,
     Assembly[] assemblies,
     Action <IServiceCollection> di,
     IActorRefInvoker invoker)
     : base(invoker)
 {
     this.configuration = configuration;
     this.assemblies    = assemblies;
     this.di            = di;
 }
コード例 #3
0
        /// <summary>
        /// Registers global <see cref="ActorRef"/> invoker (interceptor)
        /// </summary>
        /// <param name="invoker">The invoker.</param>
        public ClientConfigurator ActorRefInvoker(IActorRefInvoker invoker)
        {
            Requires.NotNull(invoker, nameof(invoker));

            if (this.invoker != null)
            {
                throw new InvalidOperationException("ActorRef invoker has been already registered");
            }

            this.invoker = invoker;
            return(this);
        }
コード例 #4
0
ファイル: ClusterActorSystem.cs プロジェクト: pkese/Orleankka
        internal ClusterActorSystem(ClusterConfiguration configuration, Action <IServiceCollection> di, ActorInvocationPipeline pipeline, IActorRefInvoker invoker)
            : base(invoker)
        {
            this.di  = di;
            Pipeline = pipeline;

            current = this;
            configuration.UseStartupType <Startup>();

            using (Trace.Execution("Orleans silo initialization"))
            {
                Host = new SiloHost(Dns.GetHostName(), configuration);
                Host.LoadOrleansConfig();
                Host.InitializeOrleansSilo();
            }

            Silo = Host.GetSilo();
            Initialize(Silo.GetServiceProvider());
        }
コード例 #5
0
ファイル: ActorRefInvoker.cs プロジェクト: pkese/Orleankka
 protected ActorRefInvoker(IActorRefInvoker next = null)
 {
     this.next = next ?? DefaultActorRefInvoker.Instance;
 }
コード例 #6
0
 protected ActorSystem(IActorRefInvoker invoker = null)
 {
     this.invoker = invoker ?? DefaultActorRefInvoker.Instance;
 }
コード例 #7
0
ファイル: ActorRef.cs プロジェクト: pkese/Orleankka
 internal ActorRef(ActorPath path, IActorEndpoint endpoint, IActorRefInvoker invoker)
     : this(path)
 {
     this.endpoint = endpoint;
     this.invoker  = invoker;
 }