VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtJobSplitter.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
14 #include <tbb/tbb.h>
15 
16 namespace makVrv
17 {
18  // Forward declarations.
19  class DtDe;
20 
21 
27  {
29  : myData(0)
30  , jobFunction(0)
31  {
32  // intentional nop
33  }
34 
35  void* myData;
36  void(*jobFunction)(void* data);
37  };
38 
39 
45  {
46  public:
47 
48  DtJobSplitterTask(std::vector<DtJobSplitterJob*>& jobs);
49 
50  void operator()(const tbb::blocked_range<size_t>& r) const;
51 
52  protected:
53 
54  const std::vector<DtJobSplitterJob*>& myJobs;
55  };
56 
57 
65  {
66  public:
67 
69  DtJobSplitter();
70 
72  virtual ~DtJobSplitter();
73 
74  private:
75 
77  DtJobSplitter(const DtJobSplitter &other);
78 
80  DtJobSplitter &operator=(const DtJobSplitter &other);
81 
82  public:
83 
86  virtual void addJob(DtJobSplitterJob* job);
87 
89  virtual size_t jobCount();
90 
95  virtual void runJobs(int threshold);
96 
97  protected:
98 
99  std::vector<DtJobSplitterJob*> myJobs;
100  };
101 
102 
105  {
106  public:
109 
111  virtual ~DtJobSplitterCreator();
112 
113  private:
117  DtJobSplitterCreator &operator=(const DtJobSplitterCreator& other);
118 
119  public:
121  virtual DtJobSplitter* create() const;
122 
125  static DtJobSplitterCreator& instance(DtDe& de);
126 
128  static const std::string& theClassName();
129  };
130 }
131 
132 
133 
134 
void * myData
Definition: DtJobSplitter.h:35
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
this class is used to split work up between threads.
Definition: DtJobSplitter.h:64
A class to define a task for use with tbb::parallel_for.
Definition: DtJobSplitter.h:44
Contains makVrv::DtVirtualBaseClass class.
const std::vector< DtJobSplitterJob * > & myJobs
Definition: DtJobSplitter.h:54
creator for DtJobSplitter
Definition: DtJobSplitter.h:104
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
DtJobSplitterJob()
Definition: DtJobSplitter.h:28
A generic structure to hold data for a job for use with DtJobSplitter.
Definition: DtJobSplitter.h:26
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
std::vector< DtJobSplitterJob * > myJobs
Definition: DtJobSplitter.h:99
Contains DLL export macros.

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)