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