All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
WebServiceCacheStoreWorkItemPool.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "Cache.h"
7 
8 #include <vector>
9 #include <deque>
10 
11 namespace Eegeo
12 {
13  namespace Web
14  {
15  namespace Cache
16  {
17  namespace WebRequestCacheTasks
18  {
20  {
21  public:
25  virtual void operator()(Cache::WebRequestCacheTasks::WebServiceCacheStoreWorkItem* cacheStoreWorkItem);
26  private:
27  TCallback m_callback;
29  };
30 
32  {
33  public:
34  WebServiceCacheStoreWorkItemPool(const int poolSize);
35 
37 
38  bool HasFreeItems() const;
39  bool IsCacheOperationInProgress() const;
40  int GetFreeItemCount() const;
42 
43  private:
44  void AsyncCacheStoreWorkItemCompleted(
46 
47  std::vector<Cache::WebRequestCacheTasks::WebServiceCacheStoreWorkItem*> m_cacheStoreWorkItemPool;
48  std::deque<Cache::WebRequestCacheTasks::WebServiceCacheStoreWorkItem*> m_cacheStoreWorkItemFreeList;
50  };
51  }
52  }
53  }
54 }