All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
BuildWorkItem.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "WorkItem.h"
6 #include "MortonKey.h"
7 #include "IResourceBuilder.h"
8 #include "MortonKey.h"
9 #include "Tasks.h"
10 #include "Helpers.h"
11 #include "Resources.h"
12 #include "Streaming.h"
13 #include <vector>
14 
15 namespace Eegeo
16 {
17  namespace Streaming
18  {
20  {
21  private:
22  void* m_pBuildData;
23  Resources::IResourceBuilder *m_pBuilder;
24  MortonKey m_key;
25 
26  const std::vector<Byte>* m_resourceData;
27  bool m_useResourceData;
28 
30  PayloadBuildManager* m_pBuildManager;
31  Payload * m_payload;
32 
33  void Cleanup();
34 
35  protected:
36  void DoWork();
37  void DoFinalizeOnMainThread();
38  void DoWorkCancelled();
39 
40  public:
41  BuildWorkItem();
42  ~BuildWorkItem();
43 
44  void Setup(PayloadBuildManager& buildManager, Payload& payload, Concurrency::Tasks::Priority::Values priority);
45  Payload* GetPayload();
46 
47  Eegeo::Resources::BuilderTransition BuildResult() { return m_buildResult; }
48 
49  };
50  }
51 }