Mercurial > hg > orthanc
comparison Core/MultiThreading/ArrayFilledByThreads.h @ 479:0cd977e94479
initial commit of the c++ client
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 16 Jul 2013 09:08:09 +0200 |
parents | |
children | 0da078f3affc |
comparison
equal
deleted
inserted
replaced
478:888f8a778e70 | 479:0cd977e94479 |
---|---|
1 #pragma once | |
2 | |
3 #include <boost/thread.hpp> | |
4 | |
5 #include "../ICommand.h" | |
6 | |
7 namespace Orthanc | |
8 { | |
9 class ArrayFilledByThreads | |
10 { | |
11 public: | |
12 class IFiller | |
13 { | |
14 public: | |
15 virtual size_t GetFillerSize() = 0; | |
16 | |
17 virtual IDynamicObject* GetFillerItem(size_t index) = 0; | |
18 }; | |
19 | |
20 private: | |
21 IFiller& filler_; | |
22 boost::mutex mutex_; | |
23 std::vector<IDynamicObject*> array_; | |
24 bool filled_; | |
25 unsigned int threadCount_; | |
26 | |
27 class Command; | |
28 | |
29 void Clear(); | |
30 | |
31 void Update(); | |
32 | |
33 public: | |
34 ArrayFilledByThreads(IFiller& filler); | |
35 | |
36 ~ArrayFilledByThreads(); | |
37 | |
38 void Reload(); | |
39 | |
40 void Invalidate(); | |
41 | |
42 void SetThreadCount(unsigned int t); | |
43 | |
44 unsigned int GetThreadCount() const | |
45 { | |
46 return threadCount_; | |
47 } | |
48 | |
49 size_t GetSize(); | |
50 | |
51 IDynamicObject& GetItem(size_t index); | |
52 }; | |
53 } | |
54 |