blob: 1de7c64e9fefa2c5d99f6b5a4431d78be277d1d0 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
<html>
<head>
<title>NVIDIA(R) PhysX(R) SDK 3.4 API Reference: physx::PxCpuDispatcher Class Reference</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<LINK HREF="NVIDIA.css" REL="stylesheet" TYPE="text/css">
</head>
<body bgcolor="#FFFFFF">
<div id="header">
<hr class="first">
<img alt="" src="images/PhysXlogo.png" align="middle"> <br>
<center>
<a class="qindex" href="main.html">Main Page</a>
<a class="qindex" href="hierarchy.html">Class Hierarchy</a>
<a class="qindex" href="annotated.html">Compound List</a>
<a class="qindex" href="functions.html">Compound Members</a>
</center>
<hr class="second">
</div>
<!-- Generated by Doxygen 1.5.8 -->
<div class="navpath"><a class="el" href="namespacephysx.html">physx</a>::<a class="el" href="classphysx_1_1PxCpuDispatcher.html">PxCpuDispatcher</a>
</div>
<div class="contents">
<h1>physx::PxCpuDispatcher Class Reference</h1><!-- doxytag: class="physx::PxCpuDispatcher" -->A CpuDispatcher is responsible for scheduling the execution of tasks passed to it by the SDK.
<a href="#_details">More...</a>
<p>
<code>#include <<a class="el" href="PxCpuDispatcher_8h-source.html">PxCpuDispatcher.h</a>></code>
<p>
<p>
<a href="classphysx_1_1PxCpuDispatcher-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classphysx_1_1PxCpuDispatcher.html#0030e67bed850b70d6725775e5c3ce3c">submitTask</a> (<a class="el" href="classphysx_1_1PxBaseTask.html">PxBaseTask</a> &task)=0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Called by the TaskManager when a task is to be queued for execution. <a href="#0030e67bed850b70d6725775e5c3ce3c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classphysx_1_1PxCpuDispatcher.html#55b03b2db9de4be06f5eace3e43f4ebc">getWorkerCount</a> () const =0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of available worker threads for this dispatcher. <a href="#55b03b2db9de4be06f5eace3e43f4ebc"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classphysx_1_1PxCpuDispatcher.html#973d20d06b2a14c05facd7b644c78088">~PxCpuDispatcher</a> ()</td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
A CpuDispatcher is responsible for scheduling the execution of tasks passed to it by the SDK.
<p>
A typical implementation would for example use a thread pool with the dispatcher pushing tasks onto worker thread queues or a global queue.<p>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classphysx_1_1PxBaseTask.html" title="Base class of all task types.">PxBaseTask</a> <p>
<a class="el" href="classphysx_1_1PxTask.html" title="A PxBaseTask implementation with deferred execution and full dependencies.">PxTask</a> <p>
<a class="el" href="classphysx_1_1PxTaskManager.html" title="The PxTaskManager interface.">PxTaskManager</a> </dd></dl>
<hr><h2>Constructor & Destructor Documentation</h2>
<a class="anchor" name="973d20d06b2a14c05facd7b644c78088"></a><!-- doxytag: member="physx::PxCpuDispatcher::~PxCpuDispatcher" ref="973d20d06b2a14c05facd7b644c78088" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual physx::PxCpuDispatcher::~PxCpuDispatcher </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td><code> [inline, virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="55b03b2db9de4be06f5eace3e43f4ebc"></a><!-- doxytag: member="physx::PxCpuDispatcher::getWorkerCount" ref="55b03b2db9de4be06f5eace3e43f4ebc" args="() const =0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual uint32_t physx::PxCpuDispatcher::getWorkerCount </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td> const<code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns the number of available worker threads for this dispatcher.
<p>
The SDK will use this count to control how many tasks are submitted. By matching the number of tasks with the number of execution units task overhead can be reduced.
</div>
</div><p>
<a class="anchor" name="0030e67bed850b70d6725775e5c3ce3c"></a><!-- doxytag: member="physx::PxCpuDispatcher::submitTask" ref="0030e67bed850b70d6725775e5c3ce3c" args="(PxBaseTask &task)=0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual void physx::PxCpuDispatcher::submitTask </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classphysx_1_1PxBaseTask.html">PxBaseTask</a> & </td>
<td class="paramname"> <em>task</em> </td>
<td> ) </td>
<td><code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Called by the TaskManager when a task is to be queued for execution.
<p>
Upon receiving a task, the dispatcher should schedule the task to run when resource is available. After the task has been run, it should call the release() method and discard it's pointer.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>task</em> </td><td>The task to be run.</td></tr>
</table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classphysx_1_1PxBaseTask.html" title="Base class of all task types.">PxBaseTask</a> </dd></dl>
</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="PxCpuDispatcher_8h-source.html">PxCpuDispatcher.h</a></ul>
</div>
<hr style="width: 100%; height: 2px;"><br>
Copyright © 2008-2018 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved. <a href="http://www.nvidia.com ">www.nvidia.com</a>
</body>
</html>
|