HDK
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
UT_PerfMonEvent.h
Go to the documentation of this file.
1
/*
2
* PROPRIETARY INFORMATION. This software is proprietary to
3
* Side Effects Software Inc., and is not to be reproduced,
4
* transmitted, or disclosed in any way without written permission.
5
*
6
* NAME: UT_PerfMonEvent.h (UT Library, C++)
7
*
8
* COMMENTS:
9
*
10
* Performance monitor generic event.
11
*/
12
13
#ifndef __UT_PerfMonEvent__
14
#define __UT_PerfMonEvent__
15
16
#include "
UT_API.h
"
17
18
#include <
SYS/SYS_Time.h
>
19
#include "
UT_Assert.h
"
20
#include "
UT_PerfMonTypes.h
"
21
#include "
UT_ValArray.h
"
22
#include "
UT_String.h
"
23
#include "
UT_StringHolder.h
"
24
#include "
UT_PerfMonUtils.h
"
25
#include "
UT_UniversalLogEntry.h
"
26
27
class
UT_PerfMonEvent
;
28
typedef
UT_ValArray<UT_PerfMonEvent *>
UT_PerfMonEventList
;
29
30
class
UT_API
UT_PerfMonEvent
31
{
32
public
:
33
UT_PerfMonEvent
(
34
int
id
,
35
const
UT_StringHolder
&
name
,
36
const
UT_StringHolder
&
object
,
37
bool
auto_nest_events,
38
UT_PerfMonCategory
category,
39
UT_PerfMonEventType
type
,
40
UT_PerfMonObjectType
object_type,
41
const
UT_StringHolder
&object_icon =
UT_StringHolder::theEmptyString
,
42
const
UT_StringHolder
&extra_info =
UT_StringHolder::theEmptyString
,
43
int
frame_num = UT_PERFORMANCE_INVALID_FRAME);
44
virtual
~
UT_PerfMonEvent
();
45
46
UT_PerfMonEvent
(
const
UT_PerfMonEvent
&) =
delete
;
47
UT_PerfMonEvent
&
operator=
(
const
UT_PerfMonEvent
&) =
delete
;
48
49
/// Return the unique id assigned by the performance monitor.
50
int
id
()
const
;
51
52
/// Return the frame number in which the event occured.
53
int
frameNum()
const
;
54
55
/// Return the event name.
56
const
char
*
name
()
const
;
57
58
/// Return the object that the event applies to.
59
const
char
*
object
()
const
;
60
61
/// Set the object that the event applies to.
62
void
setObject(
const
UT_StringHolder
&
object
);
63
64
/// Return the icon used for the object.
65
/// Return NULL if the object has no associated icon.
66
const
char
*objectIcon()
const
;
67
68
/// Return extra information about the event.
69
/// Return NULL if there is no extra information.
70
const
char
*extraInfo()
const
;
71
72
/// Set extra information that will be displayed with the event
73
/// in profile statistics and in the event log.
74
void
setExtraInfo(
75
const
UT_StringHolder
&extra_info);
76
77
/// Return the event type.
78
UT_PerfMonEventType
type
()
const
;
79
80
/// Return the event object type.
81
UT_PerfMonObjectType
objectType()
const
;
82
83
/// Return true if this event has automatic child event nesting enabled.
84
bool
isAutoNestEnabled()
const
;
85
86
/// Return the category.
87
UT_PerfMonCategory
category()
const
;
88
89
/// Return true if the event is a timed event.
90
virtual
bool
isTimedEvent
()
const
91
{
92
UT_ASSERT
(
93
myType !=
UT_PERFMON_TIMED_EVENT
94
);
95
return
false
;
96
}
97
98
/// Start the event. This puts the event in a running state.
99
/// Real work is performed in subclassStart_().
100
void
start
();
101
102
/// Stop the event. This removes the event from a running state.
103
/// Real work is performed in subclassStop_().
104
void
stop();
105
106
/// Return true if the event is in the running state.
107
/// Return false otherwise.
108
bool
isRunning()
const
;
109
110
/// Return the event value.
111
/// If no value has been set, then return 0.
112
fpreal
value
()
const
;
113
114
/// Return the event value minus the value of any of the descendant events.
115
/// If no self value has been calculated, then return 0.
116
fpreal
selfValue()
const
;
117
118
/// Set the event value.
119
void
setValue
(
fpreal
val
);
120
121
/// Override the event's value.
122
/// Handy when you know the event's value and not its starting
123
/// or stopping values.
124
void
overrideValue(
fpreal
value
);
125
126
/// Calculate the event's self value.
127
/// Do nothing if the event's main value has not been set.
128
/// This can be an expensive call since the values of the event's
129
/// descendants must be examined.
130
void
calculateSelfValue();
131
132
/// Add a child event.
133
void
appendChild(
UT_PerfMonEvent
*
event
);
134
135
/// Remove the given child event. Do nothing if the given event
136
/// is not actually a child of this event.
137
void
removeChild(
UT_PerfMonEvent
*
event
);
138
139
/// Remove all child events.
140
void
removeChildren();
141
142
/// Return the number of child events.
143
int
numChildren()
const
;
144
145
/// Return the child at the given index.
146
const
UT_PerfMonEvent
*getChild(
int
index
)
const
;
147
UT_PerfMonEvent
*getChild(
int
index
);
148
149
/// Add a parent event.
150
void
appendParent(
UT_PerfMonEvent
*
event
);
151
152
/// Remove the given parent event. Do nothing if the given event
153
/// is not actually a parent of this event.
154
void
removeParent(
UT_PerfMonEvent
*
event
);
155
156
/// Remove all parent events.
157
void
removeParents();
158
159
/// Return the number of parent events.
160
int
numParents()
const
;
161
162
/// Return the parent at the given index.
163
const
UT_PerfMonEvent
*
getParent
(
int
index
)
const
;
164
UT_PerfMonEvent
*
getParent
(
int
index
);
165
166
/// Format the event into a pretty string that can be outputted in a log.
167
virtual
void
getFormattedString(
168
UT_PerfMonLogTimeFormat
time_format,
169
UT_String
&str_event)
const
;
170
/// Format the event for the universal logging system
171
virtual
void
getUniversalLogEntry(
172
UT_UniversalLogEntry
&logentry)
const
;
173
174
protected
:
175
176
/// Return true if the value has been overridden.
177
bool
isValueOverridden_()
const
;
178
179
/// Perform work when the event is started.
180
virtual
void
subclassStart_();
181
182
/// Perform work when the event is stopped.
183
virtual
void
subclassStop_();
184
185
/// Perform work when the event's value has been overridden.
186
virtual
void
subclassOverrideValue_();
187
188
/// Perform work to calculate the event's self value.
189
/// Return the calculated self value.
190
virtual
fpreal
subclassCalculateSelfValue_();
191
192
/// Collect the data from the given child event and merge it into this
193
/// event's children data.
194
virtual
void
subclassCollectDataFromChild_(
195
const
UT_PerfMonEvent
*child);
196
197
/// Pass back a formatted string of this event's object path and extra info.
198
void
getFormattedObjectPathAndExtraInfo_(
199
bool
enclose_obj_path_in_parens,
200
UT_String
&object_path,
201
UT_String
&extra_info)
const
;
202
203
private
:
204
205
/// Collect the data from the given child event and merge it into this
206
/// event's children data.
207
void
collectDataFromChild_(
208
const
UT_PerfMonEvent
*child);
209
210
int
myId;
211
UT_StringHolder
myName;
212
UT_StringHolder
myObject;
213
UT_StringHolder
myObjectIcon;
214
UT_StringHolder
myExtraInfo;
215
bool
myIsAutoNestEnabled;
216
int
myFrameNum;
217
fpreal
myValue;
218
fpreal
mySelfValue;
219
bool
myIsValueSet;
220
bool
myIsSelfValueSet;
221
bool
myIsValueOverridden;
222
UT_PerfMonCategory
myCategory;
223
UT_PerfMonEventList
myChildren;
224
UT_PerfMonEventList
myParents;
225
UT_PerfMonEventType
myType;
226
UT_PerfMonObjectType
myObjectType;
227
228
bool
myIsRunning;
229
};
230
231
#endif
232
UT_PerfMonLogTimeFormat
UT_PerfMonLogTimeFormat
Definition:
UT_PerfMonTypes.h:141
UT_PerfMonEventType
UT_PerfMonEventType
Event types.
Definition:
UT_PerfMonTypes.h:39
start
GLuint start
Definition:
glcorearb.h:475
value
GLsizei const GLfloat * value
Definition:
glcorearb.h:824
UT_PerfMonUtils.h
UT_PerfMonEvent::isTimedEvent
virtual bool isTimedEvent() const
Return true if the event is a timed event.
Definition:
UT_PerfMonEvent.h:90
UT_API.h
UT_API
#define UT_API
Definition:
UT_API.h:14
UT_PerfMonEvent
Definition:
UT_PerfMonEvent.h:30
SYS_Time.h
nanovdb::setValue
__hostdev__ void setValue(uint32_t offset, bool v)
Definition:
NanoVDB.h:5750
Tf_MakePyConstructor::object
bp::object object
Definition:
makePyConstructor.h:189
UT_UniversalLogEntry.h
UT_PerfMonEventList
UT_ValArray< UT_PerfMonEvent * > UT_PerfMonEventList
Definition:
UT_PerfMonEvent.h:27
UT_ValArray< UT_PerfMonEvent * >
UT_Assert.h
GU_Hierarchy::getParent
GU_API GA_Offset getParent(const GU_Detail *gdp, const GA_Offset &node)
event
struct _cl_event * event
Definition:
glcorearb.h:2961
UT_String.h
UT_StringHolder
Definition:
UT_StringHolder.h:999
UT_PerfMonObjectType
UT_PerfMonObjectType
Object types.
Definition:
UT_PerfMonTypes.h:49
UT_ValArray.h
UT_StringHolder::theEmptyString
static const UT_StringHolder theEmptyString
Definition:
UT_StringHolder.h:1196
UT_PerfMonCategory
UT_PerfMonCategory
Categories.
Definition:
UT_PerfMonTypes.h:24
id
GLuint id
Definition:
glcorearb.h:655
name
GLuint const GLchar * name
Definition:
glcorearb.h:786
UT_PERFMON_TIMED_EVENT
Definition:
UT_PerfMonTypes.h:43
UT_StringHolder.h
fpreal
fpreal64 fpreal
Definition:
SYS_Types.h:277
nanovdb::operator=
LeafData & operator=(const LeafData &)=delete
index
GLuint index
Definition:
glcorearb.h:786
val
GLuint GLfloat * val
Definition:
glcorearb.h:1608
UT_String
Definition:
UT_String.h:73
UT_ASSERT
#define UT_ASSERT(ZZ)
Definition:
UT_Assert.h:156
value
Definition:
core.h:1131
UT_PerfMonTypes.h
UT_UniversalLogEntry
Simple object to hold the data associated with a single log entry event.
Definition:
UT_UniversalLogEntry.h:58
type
type
Definition:
core.h:1059
arg_id_kind::name
UT
UT_PerfMonEvent.h
Generated on Thu Nov 21 2024 02:46:08 for HDK by
1.8.6