示例#1
0
        private static void LoadModules()
        {
            modList = new List <BackendModule> ();
            List <BackendModule>  loadQueue       = new List <BackendModule> ();
            Queue <BackendModule> processingQueue = new Queue <BackendModule> ();

            httpModule = new HttpMonitor();
            userModule = new UserModule();

            loadQueue.Add(httpModule);
            loadQueue.Add(userModule);
            loadQueue.Add(new TcpConsole());
            loadQueue.Add(new MetaModule());
            loadQueue.Add(new PostsModule());

            GetCompatibleMods(loadQueue, modList, ref processingQueue);

            while (processingQueue.Count > 0)
            {
                while (processingQueue.Count > 0)
                {
                    BackendModule mod = processingQueue.Dequeue();
                    mod.Load();
                    modList.Add(mod);
                    loadQueue.Remove(mod);
                    Console.WriteLine("[I] Enabled " + mod.MODNAME);
                }
                GetCompatibleMods(loadQueue, modList, ref processingQueue);
            }
            if (loadQueue.Count > 0)
            {
                foreach (BackendModule mod in loadQueue)
                {
                    Console.WriteLine("[W] Disabled " + mod.MODNAME + " Reason: Missing or disabled dependency");
                }
            }


            Console.WriteLine("Started");
            httpModule.HttpStart();
        }