Panda3D
pStatView.h
Go to the documentation of this file.
1 /**
2  * PANDA 3D SOFTWARE
3  * Copyright (c) Carnegie Mellon University. All rights reserved.
4  *
5  * All use of this software is subject to the terms of the revised BSD
6  * license. You should have received a copy of this license along
7  * with this source code in a file named "LICENSE."
8  *
9  * @file pStatView.h
10  * @author drose
11  * @date 2000-07-10
12  */
13 
14 #ifndef PSTATVIEW_H
15 #define PSTATVIEW_H
16 
17 #include "pandatoolbase.h"
18 
19 #include "pStatClientData.h"
20 #include "pStatThreadData.h"
21 #include "pStatViewLevel.h"
22 #include "pmap.h"
23 #include "pointerTo.h"
24 
25 /**
26  * A View boils down the frame data to a linear list of times spent in a
27  * number of different Collectors, within a particular thread. This
28  * automatically accounts for overlapping start/stop times and nested
29  * Collectors in a sensible way.
30  */
31 class PStatView {
32 public:
33  PStatView();
34  ~PStatView();
35 
36  void constrain(int collector, bool show_level);
37  void unconstrain();
38 
39  void set_thread_data(const PStatThreadData *thread_data);
40  INLINE const PStatThreadData *get_thread_data();
41  INLINE const PStatClientData *get_client_data();
42 
43  void set_to_frame(const PStatFrameData &frame_data);
44  INLINE void set_to_frame(int frame_number);
45  INLINE void set_to_time(double time);
46 
47  bool all_collectors_known() const;
48  double get_net_value() const;
49 
51 
52  bool has_level(int collector) const;
53  PStatViewLevel *get_level(int collector);
54 
55  INLINE bool get_show_level() const;
56  INLINE int get_level_index() const;
57 
58 private:
59  void update_time_data(const PStatFrameData &frame_data);
60  void update_level_data(const PStatFrameData &frame_data);
61 
62  void clear_levels();
63  bool reset_level(PStatViewLevel *level);
64 
65  int _constraint;
66  bool _show_level;
67  bool _all_collectors_known;
68 
70  Levels _levels;
71 
72  int _level_index;
73 
74  CPT(PStatClientData) _client_data;
75  CPT(PStatThreadData) _thread_data;
76 };
77 
78 #include "pStatView.I"
79 
80 #endif
const PStatViewLevel * get_top_level()
Returns a pointer to the level that corresponds to the Collector we've constrained to.
Definition: pStatView.cxx:239
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
void set_to_frame(const PStatFrameData &frame_data)
Supplies the View with the data for the current frame.
Definition: pStatView.cxx:194
The data associated with a particular client, but not with any one particular frame or thread: the li...
void unconstrain()
Restores the view to the full frame.
Definition: pStatView.cxx:168
double get_net_value() const
Returns the total value accounted for by the frame (or by whatever Collector we are constrained to).
Definition: pStatView.cxx:222
void set_to_time(double time)
Sets to the frame that occurred at the indicated time (or the nearest available frame),...
Definition: pStatView.I:49
const PStatClientData * get_client_data()
Returns the current PStatClientData associated with the view.
Definition: pStatView.I:28
This is a single level value, or band of color, within a View.
Contains the raw timing and level data for a single frame.
A View boils down the frame data to a linear list of times spent in a number of different Collectors,...
Definition: pStatView.h:31
bool all_collectors_known() const
After a call to set_to_frame(), this returns true if all collectors in the FrameData are known by the...
Definition: pStatView.cxx:212
A collection of FrameData structures for recently-received frames within a particular thread.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
const PStatThreadData * get_thread_data()
Returns the current PStatThreadData associated with the view.
Definition: pStatView.I:19
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
void constrain(int collector, bool show_level)
Changes the focus of the View.
Definition: pStatView.cxx:157
int get_level_index() const
Returns an index number that can be used to determine when the set of known levels has changed.
Definition: pStatView.I:68
bool get_show_level() const
Returns true if we are showing level data, false if time data.
Definition: pStatView.I:57
bool has_level(int collector) const
Returns true if there is a level defined for the particular collector, false otherwise.
Definition: pStatView.cxx:248
PStatViewLevel * get_level(int collector)
Returns a pointer to the level that corresponds to the indicated Collector.
Definition: pStatView.cxx:260