private static TypeContainer GetTypeContainerFromCode() { TypeContainer tc = TypeContainer.Instance; ////register PlugIn libraries //register OPC receivers, converters tc.Register <ILogger, ConsoleLogger>(); tc.Register <IReceiver, OpcReceiver <IMessage> >(TELEMETRY_NAMESPACE); tc.Register <IConverter <object, Tag>, OpcTagToTagStateConverter>(TELEMETRY_NAMESPACE); //register IotHub sender tc.Register <IConverter <Tag, object>, ToIotHubMessageConverter>(TELEMETRY_NAMESPACE); tc.Register <ISender, IoTHubTelemetrySender <Tag> >(TELEMETRY_NAMESPACE); //register additional libraries from Azure Connector; we don't have to Dictionary<string, object>ally load them // as there are not expected to be changed by the PlugIn writers tc.Register <IServiceHost, TelemetryHost>(TELEMETRY_NAMESPACE); //Register IotHub command receiver tc.Register <IReceiver, IotHubCommandReceiver <Command> >(COMMAND_NAMESPACE); tc.Register <IConverter <string, Command>, FromIotHubCommandConverter>(COMMAND_NAMESPACE); tc.Register <ICommandExecutor <Command>, OpcUaCommandExecutor> (COMMAND_NAMESPACE); tc.Register <IServiceHost, CommandHost>(COMMAND_NAMESPACE); //the following generates XML to be used in reflection based ConsoleRunner. string xml = tc.GetRegistryAsXml(); return(tc); }
public SimulationManager(ISettings settings, UpdateHub updateHub) { mainLock = new object(); this.settings = settings; this.updateHub = updateHub; TypeContainer.Register <ExtensionLoader>(InstanceBehaviour.Singleton); TypeContainer.Register <IExtensionLoader, ExtensionLoader>(InstanceBehaviour.Singleton); TypeContainer.Register <IExtensionResolver, ExtensionLoader>(InstanceBehaviour.Singleton); TypeContainer.Register <DefinitionManager>(InstanceBehaviour.Singleton); TypeContainer.Register <IDefinitionManager, DefinitionManager>(InstanceBehaviour.Singleton); TypeContainer.Register <DiskPersistenceManager>(InstanceBehaviour.Singleton); TypeContainer.Register <IPersistenceManager, DiskPersistenceManager>(InstanceBehaviour.Singleton); TypeContainer.Register <ResourceManager>(InstanceBehaviour.Singleton); TypeContainer.Register <IResourceManager, ResourceManager>(InstanceBehaviour.Singleton); extensionLoader = TypeContainer.Get <ExtensionLoader>(); extensionLoader.LoadExtensions(); ResourceManager = TypeContainer.Get <ResourceManager>(); ResourceManager.InsertUpdateHub(updateHub); Service = new GameService(ResourceManager); simulation = new Simulation(ResourceManager, extensionLoader, Service) { IsServerSide = true }; backgroundThread = new Thread(SimulationLoop) { Name = "Simulation Loop", IsBackground = true }; }
public ServerHandler() { logger = (TypeContainer.GetOrNull <ILogger>() ?? NullLogger.Default).As(typeof(ServerHandler)); TypeContainer.Register <UpdateHub>(InstanceBehaviour.Singleton); TypeContainer.Register <IUpdateHub, UpdateHub>(InstanceBehaviour.Singleton); TypeContainer.Register <Server>(InstanceBehaviour.Singleton); TypeContainer.Register <SimulationManager>(InstanceBehaviour.Singleton); SimulationManager = TypeContainer.Get <SimulationManager>(); UpdateHub = TypeContainer.Get <IUpdateHub>(); server = TypeContainer.Get <Server>(); defaultManager = new DefaultCommandManager <ushort, CommandParameter, byte[]>(typeof(ServerHandler).Namespace + ".Commands"); }