private IHolonomicCalculator ConstructAndConfigureHolonomicCalculator(IRyuContainer ryu) { var calculator = new HolonomicCalculatorImpl(); HolonomicDriveTrainStatics.Calculator = calculator; return(calculator); }
public IDeviceRegistry ConstructAndPopulateDeviceRegistry(IRyuContainer ryu) { var deviceRegistry = new DefaultDeviceRegistry(); var deviceConfigurationLoader = ryu.GetOrThrow<DeviceConfigurationLoaderImpl>(); deviceConfigurationLoader.LoadDeviceConfiguration(deviceRegistry); return deviceRegistry; }
public object ActivateRyuType(IRyuContainer ryu, RyuType type) { if (type.Activator != null) { return type.Activator(ryu); } else { return ActivateActivatorlessType(ryu, type.Type); } }
public IDeviceRegistry ConstructAndPopulateDeviceRegistry(IRyuContainer ryu) { var deviceRegistry = new DefaultDeviceRegistry(); var deviceConfigurationLoader = ryu.GetOrThrow <DeviceConfigurationLoaderImpl>(); deviceConfigurationLoader.LoadDeviceConfiguration(deviceRegistry); return(deviceRegistry); }
public object ActivateActivatorlessType(IRyuContainer ryu, Type type) { try { var ctor = type.GetRyuConstructorOrThrow(); var parameters = ctor.GetParameters(); var arguments = parameters.Map(p => ryu.GetOrActivate(p.ParameterType)); var instance = ctor.Invoke(arguments); if (type.HasAttribute<InjectRequiredFields>()) { var bindingFlags = BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public; var fieldsToInitialize = type.GetFields(bindingFlags) .Where(f => f.IsInitOnly && !f.FieldType.IsValueType) .Where(f => f.GetValue(instance) == null); foreach (var field in fieldsToInitialize) { field.SetValue(instance, ryu.GetOrActivate(field.FieldType)); } } return instance; } catch (Exception e) { throw new RyuActivateException(type, e); } }
public CourierContainerFactory(IRyuContainer root) { this.root = root; }
public static CourierBuilder Create(IRyuContainer container) => new CourierBuilder(container);
private CourierBuilder(IRyuContainer parentContainer) { this.parentContainer = parentContainer; }
private IHolonomicCalculator ConstructAndConfigureHolonomicCalculator(IRyuContainer ryu) { var calculator = new HolonomicCalculatorImpl(); HolonomicDriveTrainStatics.Calculator = calculator; return calculator; }
public CourierContainerFactory(IRyuContainer root) { this.root = root; }
public static CourierBuilder Create(IRyuContainer container) => new CourierBuilder(container);
public PeerTable(IRyuContainer container, Func <PeerTable, Guid, PeerContext> peerContextFactory) { this.container = container; this.peerContextFactory = peerContextFactory; }
public RyuFacade(IRyuContainer container, IActivator activator) { this.container = container; this.activator = activator; }
public CourierFacade(IConcurrentSet <ITransport> transports, IRyuContainer container) { this.transports = transports; this.container = container; }
public PeerTable(IRyuContainer container, Func<PeerTable, Guid, PeerContext> peerContextFactory) { this.container = container; this.peerContextFactory = peerContextFactory; }
public CourierFacade(IConcurrentSet<ITransport> transports, IRyuContainer container) { this.transports = transports; this.container = container; }
private CourierBuilder(IRyuContainer parentContainer) { this.parentContainer = parentContainer; }