VTK
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
dox
Common
ExecutionModel
vtkThreadedStreamingPipeline.h
Go to the documentation of this file.
1
/*=========================================================================
2
3
Program: Visualization Toolkit
4
Module: vtkThreadedStreamingPipeline.h
5
6
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7
All rights reserved.
8
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10
This software is distributed WITHOUT ANY WARRANTY; without even
11
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12
PURPOSE. See the above copyright notice for more information.
13
14
=========================================================================*/
15
/*-------------------------------------------------------------------------
16
Copyright (c) 2008, 2009 by SCI Institute, University of Utah.
17
18
This is part of the Parallel Dataflow System originally developed by
19
Huy T. Vo and Claudio T. Silva. For more information, see:
20
21
"Parallel Dataflow Scheme for Streaming (Un)Structured Data" by Huy
22
T. Vo, Daniel K. Osmari, Brian Summa, Joao L.D. Comba, Valerio
23
Pascucci and Claudio T. Silva, SCI Institute, University of Utah,
24
Technical Report #UUSCI-2009-004, 2009.
25
26
"Multi-Threaded Streaming Pipeline For VTK" by Huy T. Vo and Claudio
27
T. Silva, SCI Institute, University of Utah, Technical Report
28
#UUSCI-2009-005, 2009.
29
-------------------------------------------------------------------------*/
43
#ifndef __vtkThreadedStreamingPipeline_h
44
#define __vtkThreadedStreamingPipeline_h
45
46
#include "vtkCommonExecutionModelModule.h"
// For export macro
47
#include "
vtkCompositeDataPipeline.h
"
48
49
class
vtkComputingResources
;
50
class
vtkExecutionScheduler
;
51
class
vtkExecutiveCollection
;
52
53
class
VTKCOMMONEXECUTIONMODEL_EXPORT
vtkThreadedStreamingPipeline
:
public
vtkCompositeDataPipeline
54
{
55
public
:
56
static
vtkThreadedStreamingPipeline
*
New
();
57
vtkTypeMacro(
vtkThreadedStreamingPipeline
,
vtkCompositeDataPipeline
);
58
void
PrintSelf
(ostream &os,
vtkIndent
indent);
59
61
static
vtkInformationIntegerKey
* AUTO_PROPAGATE();
62
64
static
vtkInformationObjectBaseKey
* EXTRA_INFORMATION();
65
66
//BTX
68
70
enum
71
{
72
PROCESSING_UNIT_NONE = 0,
73
PROCESSING_UNIT_CPU = 1,
74
PROCESSING_UNIT_GPU = 2
75
};
76
//ETX
78
80
static
void
SetMultiThreadedEnabled(
bool
enabled
);
81
83
static
void
SetAutoPropagatePush(
bool
enabled
);
84
87
static
void
Pull(
vtkExecutiveCollection
*execs);
88
91
static
void
Pull(
vtkExecutiveCollection
*execs,
vtkInformation
*
info
);
92
95
static
void
Push(
vtkExecutiveCollection
*execs);
96
99
static
void
Push(
vtkExecutiveCollection
*execs,
vtkInformation
*
info
);
100
103
static
void
Pull(
vtkExecutive
*exec);
104
107
static
void
Pull(
vtkExecutive
*exec,
vtkInformation
*
info
);
108
111
static
void
Push(
vtkExecutive
*exec);
112
115
static
void
Push(
vtkExecutive
*exec,
vtkInformation
*
info
);
116
118
void
Pull();
119
121
void
Pull(
vtkInformation
*
info
);
122
124
void
Push();
125
127
void
Push(
vtkInformation
*
info
);
128
130
void
ReleaseInputs();
131
133
135
virtual
int
ProcessRequest
(
vtkInformation
* request,
136
vtkInformationVector
** inInfo,
137
vtkInformationVector
* outInfo);
139
141
int
ForceUpdateData(
int
processingUnit,
vtkInformation
*
info
);
142
144
void
UpdateRequestDataTimeFromSource();
145
147
vtkComputingResources
*GetResources();
148
149
float
LastDataRequestTime
;
150
float
LastDataRequestTimeFromSource
;
151
vtkInformation
*
ForceDataRequest
;
152
vtkComputingResources
*
Resources
;
153
vtkExecutionScheduler
*
Scheduler
;
154
155
protected
:
156
vtkThreadedStreamingPipeline
();
157
~
vtkThreadedStreamingPipeline
();
158
159
virtual
int
ForwardUpstream
(
vtkInformation
* request);
160
virtual
int
ForwardUpstream
(
int
i,
int
j,
vtkInformation
* request);
161
162
private
:
163
vtkThreadedStreamingPipeline
(
const
vtkThreadedStreamingPipeline
&);
// Not implemented.
164
void
operator=(
const
vtkThreadedStreamingPipeline
&);
// Not implemented.
165
};
166
167
#endif
Generated on Thu May 24 2012 22:22:13 for VTK by
1.8.1