コード例 #1
0
ファイル: DMModule.cs プロジェクト: HankKung/DiReCT
        public static void DMInit(object objectParameters)
        {
            moduleControlDataBlock
                = (ModuleControlDataBlock)objectParameters;
            threadParameters = moduleControlDataBlock.ThreadParameters;

            try
            {
                // Initialize Ready/Abort Event and threadpool
                ModuleReadyEvent = threadParameters.ModuleReadyEvent;
                ModuleAbortEvent = threadParameters.ModuleAbortEvent;
                moduleThreadPool = threadParameters.moduleThreadPool;
                ModuleReadyEvent.Set();

                Debug.WriteLine("DMInit complete Phase 1 Initialization");

                // Wait for core StartWork Signal
                ModuleStartWorkEvent = threadParameters.ModuleStartWorkEvent;
                ModuleStartWorkEvent.WaitOne();

                Debug.WriteLine("DMInit complete Phase 2 Initialization");

                //
                // Main Thread of DM module (begin)
                //
                // Initialize dictionary manager
                recordDictionaryManager = new RecordDictionaryManager();

                // Whenever the SaveRecord Event is called, DMSavingRecordWrapper
                // will be called
                RecordSavingTriggerd += new SaveRecordEventHanlder(
                    DMSavingRecordWrapper);


                Debug.WriteLine("DM module is working...");

                // Check ModuleAbortEvent periodically
                while (!ModuleAbortEvent
                       .WaitOne((int)TimeInterval.VeryVeryShortTime))
                {
                    // Does nothing and wait for abort event
                }

                Debug.WriteLine("DM module is aborting.");
                CleanupExit();
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
                Debug.WriteLine("DM module thread failed.");
                threadParameters.ModuleInitFailedEvent.Set();
                Debug.WriteLine("DM ModuleInitFailedEvent Set");
                CleanupExit();
            }
        }
コード例 #2
0
        public static void PrintDictionary(object obj)
        {
            dynamic[] or = RecordDictionaryManager.getAllCleanRecords();
            Debug.WriteLine("____________________________________________________________________");
            Debug.WriteLine("Current Count is " + or.Count());
            for (int i = 0; i < or.Length; i++)
            {
                if (or[i].GetType().ToString().Contains("Flood"))
                {
                    int    id  = or[i].RecordID;
                    int    wl  = (or[i]).waterLevel;
                    string cl  = or[i].currentLongitude;
                    string clt = or[i].currentLatitude;
                    string ct  = or[i].currentTimeStamp;

                    Debug.WriteLine("Flood Record:\n" +
                                    "ID :" + id +
                                    "\nWaterLevel: " + wl +
                                    "\nCurrent Latitude: " + cl +
                                    "\nCurrent Longitude: " + clt +
                                    "\nCurrent TimeStamp: " + ct +
                                    "\nPossible Cause:");

                    for (int j = 0; j < or[i].PossibleCauseOfDisaster.Count; j++)
                    {
                        string tempCause = or[i].PossibleCauseOfDisaster[j];
                        Debug.WriteLine(tempCause);
                    }
                    Debug.WriteLine("");
                }
                else
                {
                    int id = or[i].RecordID;

                    int dead   = or[i].deathTroll;
                    int injury = or[i].injuryTroll;

                    Debug.WriteLine("LandSlides Record:\n" +
                                    "ID :" + id +
                                    "\ndeathTroll: " + dead +
                                    "\ninjuryTroll: " + injury
                                    );
                }
            }
            Debug.WriteLine("____________________________________________________________________");
        }