public GrainTypeManager( ILocalSiloDetails siloDetails, ApplicationPartManager applicationPartManager, DefaultPlacementStrategy defaultPlacementStrategy, SerializationManager serializationManager, MultiClusterRegistrationStrategyManager multiClusterRegistrationStrategyManager, ILogger <GrainTypeManager> logger, IOptions <GrainClassOptions> grainClassOptions) { var localTestMode = siloDetails.SiloAddress.Endpoint.Address.Equals(IPAddress.Loopback); this.logger = logger; this.defaultPlacementStrategy = defaultPlacementStrategy.PlacementStrategy; this.serializationManager = serializationManager; this.multiClusterRegistrationStrategyManager = multiClusterRegistrationStrategyManager; grainInterfaceMap = new GrainInterfaceMap(localTestMode, this.defaultPlacementStrategy); ClusterGrainInterfaceMap = grainInterfaceMap; grainInterfaceMapsBySilo = new Dictionary <SiloAddress, GrainInterfaceMap>(); var grainClassFeature = applicationPartManager.CreateAndPopulateFeature <GrainClassFeature>(); this.grainTypes = CreateGrainTypeMap(grainClassFeature, grainClassOptions.Value); var grainInterfaceFeature = applicationPartManager.CreateAndPopulateFeature <GrainInterfaceFeature>(); this.invokers = CreateInvokerMap(grainInterfaceFeature); this.InitializeInterfaceMap(); }
/// <summary> /// Initializes a new instance of the <see cref="RoslynCodeGenerator"/> class. /// </summary> /// <param name="serializationManager">The serialization manager.</param> /// <param name="loggerFactory">logger factory to use</param> public RoslynCodeGenerator(SerializationManager serializationManager, ApplicationPartManager applicationPartManager, ILoggerFactory loggerFactory) { this.knownTypes = GetKnownTypes(); this.serializerGenerationManager = new SerializerGenerationManager(serializationManager, loggerFactory); Logger = new LoggerWrapper <RoslynCodeGenerator>(loggerFactory); HashSet <string> GetKnownTypes() { var serializerFeature = applicationPartManager.CreateAndPopulateFeature <SerializerFeature>(); var result = new HashSet <string>(); foreach (var kt in serializerFeature.KnownTypes) { result.Add(kt.Type); } foreach (var serializer in serializerFeature.SerializerTypes) { result.Add(RuntimeTypeNameFormatter.Format(serializer.Target)); result.Add(RuntimeTypeNameFormatter.Format(serializer.Serializer)); } foreach (var serializer in serializerFeature.SerializerDelegates) { result.Add(RuntimeTypeNameFormatter.Format(serializer.Target)); } return(result); } }
public TypeMetadataCache(ApplicationPartManager applicationPartManager) { var grainInterfaceFeature = applicationPartManager.CreateAndPopulateFeature <GrainInterfaceFeature>(); foreach (var grain in grainInterfaceFeature.Interfaces) { this.grainToInvokerMapping[grain.InterfaceType] = grain.InvokerType; this.grainToReferenceMapping[grain.InterfaceType] = grain.ReferenceType; } }
/// <summary> /// Constructors -- Registers Orleans system performance counters, /// plus any grain-specific activation counters that can be detected when this installer is run. /// </summary> public OrleansPerformanceCounterInstaller() { Trace.Listeners.Clear(); var loggerFactory = CreateDefaultLoggerFactory($"{this.GetType()}.log"); var parts = new ApplicationPartManager(); parts.ConfigureDefaults().AddFeatureProvider(new AssemblyAttributeFeatureProvider <GrainClassFeature>()); var grainClassFeature = parts.CreateAndPopulateFeature <GrainClassFeature>(); CrashUtils.GrainTypes = grainClassFeature.Classes.Select(metadata => TypeUtils.GetFullName(metadata.ClassType)).ToList(); consumer = new OrleansPerfCounterTelemetryConsumer(loggerFactory); this.logger = loggerFactory.CreateLogger <OrleansPerformanceCounterInstaller>(); }
public CounterControl(ILoggerFactory loggerFactory) { // Check user is Administrator and has granted UAC elevation permission to run this app var userIdent = WindowsIdentity.GetCurrent(); var userPrincipal = new WindowsPrincipal(userIdent); IsRunningAsAdministrator = userPrincipal.IsInRole(WindowsBuiltInRole.Administrator); var parts = new ApplicationPartManager(); parts.ConfigureDefaults() .AddFeatureProvider(new AssemblyAttributeFeatureProvider <GrainClassFeature>()); var grainClassFeature = parts.CreateAndPopulateFeature <GrainClassFeature>(); CrashUtils.GrainTypes = grainClassFeature.Classes.Select(metadata => TypeUtils.GetFullName(metadata.ClassType)).ToList(); perfCounterConsumer = new OrleansPerfCounterTelemetryConsumer(loggerFactory); this.logger = loggerFactory.CreateLogger <CounterControl>(); }
/// <summary> /// Constructors -- Registers Orleans system performance counters, /// plus any grain-specific activation counters that can be detected when this installer is run. /// </summary> public OrleansPerformanceCounterInstaller() { Trace.Listeners.Clear(); var cfg = new NodeConfiguration { TraceFilePattern = null }; var loggerFactory = CreateDefaultLoggerFactory(cfg.TraceFileName); var parts = new ApplicationPartManager(); parts.AddApplicationPartsFromAppDomain(); parts.AddApplicationPartsFromBasePath(); parts.AddFeatureProvider(new AssemblyAttributeFeatureProvider <GrainClassFeature>()); var grainClassFeature = parts.CreateAndPopulateFeature <GrainClassFeature>(); CrashUtils.GrainTypes = grainClassFeature.Classes.Select(metadata => TypeUtils.GetFullName(metadata.ClassType)).ToList(); consumer = new OrleansPerfCounterTelemetryConsumer(loggerFactory); this.logger = loggerFactory.CreateLogger <OrleansPerformanceCounterInstaller>(); }