root/FalconView/trunk/public/fvw_core/GeodataDataSources/KMLDataLoader.h @ 2309

Revision 2309, 1.0 KB (checked in by gm78, 6 months ago)

The number of data loading threads for KML data has been upped to 4.

Line 
1// KMLDataLoader.h
2//
3
4#pragma once
5
6class CKMLResource;
7
8#define NUM_DATA_LOADING_THREADS 4
9
10class CKMLDataLoader
11{
12   static CKMLDataLoader* m_pInstance;
13
14   CKMLDataLoader();
15   ~CKMLDataLoader();
16
17   HANDLE m_hRequestQueueSemaphore;
18   CRITICAL_SECTION m_RequestQueueCs;
19   HANDLE m_hThread[NUM_DATA_LOADING_THREADS];
20   UINT m_uThreadId;
21   HANDLE m_TerminateThreadEvent;
22   HANDLE m_hThreadTerminatedEvent;
23
24   static unsigned int __stdcall KMLResourceLoadThread(void *pParam);
25   unsigned int Run();
26
27   std::queue<CKMLResource* > m_requestQueue;
28
29public:
30   static CKMLDataLoader* GetInstance()
31   {
32      if (m_pInstance == NULL)
33      {
34         m_pInstance = new CKMLDataLoader();
35         m_pInstance->Initialize();
36      }
37
38      return m_pInstance;
39   }
40   static void DestroyInstance()
41   {
42      delete m_pInstance;
43      m_pInstance = NULL;
44   }
45
46   void Initialize();
47   void AddLoadRequest(IFvDataSourceCallback* pDataSourceCallback, CKMLResource* pResource);
48};
Note: See TracBrowser for help on using the browser.