Panda3D
|
The data associated with a particular client, but not with any one particular frame or thread: the list of collectors and threads, for instance. More...
#include "pStatClientData.h"
Classes | |
class | Collector |
class | Thread |
Public Member Functions | |
PStatClientData (PStatReader *reader) | |
void | add_collector (PStatCollectorDef *def) |
Adds a new collector definition to the dataset. | |
void | close () |
Closes the client connection if it is open. | |
void | define_thread (int thread_index, const string &name=string()) |
Adds a new thread definition to the dataset. | |
int | get_child_distance (int parent, int child) const |
Returns the number of Collectors between the indicated parent and the child Collector in the relationship graph. | |
const PStatCollectorDef & | get_collector_def (int index) const |
Returns the nth collector definition. | |
string | get_collector_fullname (int index) const |
Returns the "full name" of the indicated collector. | |
bool | get_collector_has_level (int index, int thread_index) const |
Returns whether the given collector has level data (and consequently, whether it should appear on the Levels menu). | |
string | get_collector_name (int index) const |
Returns the name of the indicated collector. | |
int | get_major_version () const |
int | get_minor_version () const |
int | get_num_collectors () const |
Returns the total number of collectors the Data knows about. | |
int | get_num_threads () const |
Returns the total number of threads the Data knows about. | |
int | get_num_toplevel_collectors () const |
Returns the total number of collectors that are toplevel collectors. | |
int | get_ref_count () const |
Returns the current reference count. | |
const PStatThreadData * | get_thread_data (int index) const |
Returns the data associated with the indicated thread. | |
string | get_thread_name (int index) const |
Returns the name of the indicated thread. | |
int | get_toplevel_collector (int index) const |
Returns the collector index of the nth toplevel collector. | |
WeakReferenceList * | get_weak_list () const |
Returns the WeakReferenceList associated with this ReferenceCount object. | |
bool | has_collector (int index) const |
Returns true if the indicated collector has been defined by the client already, false otherwise. | |
bool | has_thread (int index) const |
Returns true if the indicated thread has been defined by the client already, false otherwise. | |
bool | has_weak_list () const |
Returns true if this particular ReferenceCount object has a WeakReferenceList created, false otherwise. | |
bool | is_alive () const |
Returns true if the data is actively getting filled by a connected client, or false if the client has terminated. | |
bool | is_at_least (int major_version, int minor_version) const |
Returns true if the client version is at least the indicated major/minor version number, false otherwise. | |
void | local_object () |
This function should be called, once, immediately after creating a new instance of some ReferenceCount-derived object on the stack. | |
void | operator delete (void *ptr) |
void | operator delete (void *ptr, void *) |
void | operator delete[] (void *ptr) |
void | operator delete[] (void *, void *) |
void * | operator new (size_t size) |
void * | operator new (size_t size, void *ptr) |
void * | operator new[] (size_t size) |
void * | operator new[] (size_t size, void *ptr) |
void | record_new_frame (int thread_index, int frame_number, PStatFrameData *frame_data) |
Makes room for and stores a new frame's worth of data associated with some particular thread (which may or may not have already been defined). | |
void | ref () const |
Explicitly increments the reference count. | |
bool | set_collector_has_level (int index, int thread_index, bool flag) |
Indicates whether the given collector has level data (and consequently, whether it should appear on the Levels menu). | |
void | set_version (int major_version, int minor_version) |
bool | test_ref_count_integrity () const |
Does some easy checks to make sure that the reference count isn't completely bogus. | |
bool | test_ref_count_nonzero () const |
Does some easy checks to make sure that the reference count isn't zero, or completely bogus. | |
virtual bool | unref () const |
Explicitly decrements the reference count. | |
void | weak_ref (WeakPointerToVoid *ptv) |
Adds the indicated PointerToVoid as a weak reference to this object. | |
void | weak_unref (WeakPointerToVoid *ptv) |
Removes the indicated PointerToVoid as a weak reference to this object. | |
Static Public Member Functions | |
static TypeHandle | get_class_type () |
static void | init_type () |
Protected Member Functions | |
bool | do_test_ref_count_integrity () const |
Does some easy checks to make sure that the reference count isn't completely bogus. | |
bool | do_test_ref_count_nonzero () const |
Returns true if the reference count is nonzero, false otherwise. | |
Friends | |
class | PStatReader |
The data associated with a particular client, but not with any one particular frame or thread: the list of collectors and threads, for instance.
Definition at line 38 of file pStatClientData.h.
void PStatClientData::add_collector | ( | PStatCollectorDef * | def | ) |
Adds a new collector definition to the dataset.
Presumably this is information just arrived from the client.
The pointer will become owned by the PStatClientData object and will be freed on destruction.
Definition at line 314 of file pStatClientData.cxx.
References BitArray::get_bit(), BitArray::get_num_bits(), and set_collector_has_level().
void PStatClientData::close | ( | ) |
Closes the client connection if it is open.
Definition at line 67 of file pStatClientData.cxx.
References PStatReader::close().
void PStatClientData::define_thread | ( | int | thread_index, |
const string & | name = string() |
||
) |
Adds a new thread definition to the dataset.
Presumably this is information just arrived from the client.
Definition at line 345 of file pStatClientData.cxx.
Referenced by record_new_frame().
bool ReferenceCount::do_test_ref_count_integrity | ( | ) | const [protected, inherited] |
Does some easy checks to make sure that the reference count isn't completely bogus.
Returns true if ok, false otherwise.
Reimplemented in NodeReferenceCount, CachedTypedWritableReferenceCount, and NodeCachedReferenceCount.
Definition at line 29 of file referenceCount.cxx.
Referenced by ReferenceCount::do_test_ref_count_nonzero(), and ReferenceCount::test_ref_count_integrity().
bool ReferenceCount::do_test_ref_count_nonzero | ( | ) | const [protected, inherited] |
Returns true if the reference count is nonzero, false otherwise.
Definition at line 56 of file referenceCount.cxx.
References ReferenceCount::do_test_ref_count_integrity().
Referenced by ReferenceCount::test_ref_count_nonzero().
int PStatClientData::get_child_distance | ( | int | parent, |
int | child | ||
) | const |
Returns the number of Collectors between the indicated parent and the child Collector in the relationship graph.
If child is the same as parent, returns zero. If child is an immediate child of parent, returns 1. If child is a grandchild of parent, returns 2, and so on. If child is not a descendant of parent at all, returns -1.
Definition at line 288 of file pStatClientData.cxx.
References get_collector_def(), and has_collector().
const PStatCollectorDef & PStatClientData::get_collector_def | ( | int | index | ) | const |
Returns the nth collector definition.
Definition at line 106 of file pStatClientData.cxx.
References has_collector().
Referenced by WinStatsStripChart::clicked_label(), GtkStatsStripChart::clicked_label(), get_child_distance(), PStatStripChart::get_title_text(), and PStatStripChart::set_default_vertical_scale().
string PStatClientData::get_collector_fullname | ( | int | index | ) | const |
Returns the "full name" of the indicated collector.
This will be the concatenation of all of the collector's parents' names (except Frame) and the collector's own name.
Definition at line 136 of file pStatClientData.cxx.
References has_collector().
Referenced by PStatStripChart::get_title_text(), and TextMonitor::new_data().
bool PStatClientData::get_collector_has_level | ( | int | index, |
int | thread_index | ||
) | const |
Returns whether the given collector has level data (and consequently, whether it should appear on the Levels menu).
Definition at line 193 of file pStatClientData.cxx.
Referenced by WinStatsChartMenu::do_update(), GtkStatsChartMenu::do_update(), and TextMonitor::new_data().
string PStatClientData::get_collector_name | ( | int | index | ) | const |
Returns the name of the indicated collector.
Definition at line 119 of file pStatClientData.cxx.
References has_collector().
int PStatClientData::get_num_collectors | ( | ) | const |
Returns the total number of collectors the Data knows about.
Definition at line 82 of file pStatClientData.cxx.
Referenced by PStatStripChart::update(), and PStatPianoRoll::update().
int PStatClientData::get_num_threads | ( | ) | const |
Returns the total number of threads the Data knows about.
Definition at line 231 of file pStatClientData.cxx.
Referenced by PStatStripChart::update(), and PStatPianoRoll::update().
int PStatClientData::get_num_toplevel_collectors | ( | ) | const |
Returns the total number of collectors that are toplevel collectors.
These are the collectors that are the children of "Frame", which is collector 0.
Definition at line 206 of file pStatClientData.cxx.
Referenced by WinStatsChartMenu::do_update(), GtkStatsChartMenu::do_update(), and TextMonitor::new_data().
int ReferenceCount::get_ref_count | ( | ) | const [inline, inherited] |
Returns the current reference count.
Definition at line 155 of file referenceCount.I.
References ReferenceCount::test_ref_count_integrity().
Referenced by TransformState::clear_cache(), RenderState::clear_cache(), RenderState::finalize(), RenderEffects::finalize(), RenderEffect::finalize(), RenderAttrib::finalize(), InternalName::finalize(), TransformState::get_num_unused_states(), RenderState::get_num_unused_states(), TransformState::list_cycles(), RenderState::list_cycles(), GeomVertexFormat::remove_column(), TransformState::unref(), RenderState::unref(), RenderState::~RenderState(), and TransformState::~TransformState().
const PStatThreadData * PStatClientData::get_thread_data | ( | int | index | ) | const |
Returns the data associated with the indicated thread.
This will create a thread definition if it does not already exist.
Definition at line 270 of file pStatClientData.cxx.
Referenced by WinStatsMonitor::idle(), GtkStatsMonitor::idle(), and PStatPianoRoll::update().
string PStatClientData::get_thread_name | ( | int | index | ) | const |
Returns the name of the indicated thread.
Definition at line 255 of file pStatClientData.cxx.
References has_thread().
Referenced by WinStatsChartMenu::add_to_menu_bar(), GtkStatsChartMenu::add_to_menu_bar(), PStatStripChart::get_title_text(), and TextMonitor::new_data().
int PStatClientData::get_toplevel_collector | ( | int | n | ) | const |
Returns the collector index of the nth toplevel collector.
Use this function to iterate through the n toplevel collectors indicated by get_num_toplevel_collectors().
Definition at line 219 of file pStatClientData.cxx.
Referenced by WinStatsChartMenu::do_update(), GtkStatsChartMenu::do_update(), and TextMonitor::new_data().
WeakReferenceList * ReferenceCount::get_weak_list | ( | ) | const [inline, inherited] |
Returns the WeakReferenceList associated with this ReferenceCount object.
If there has never been a WeakReferenceList associated with this object, creates one now.
Definition at line 307 of file referenceCount.I.
Referenced by ReferenceCount::weak_ref().
bool PStatClientData::has_collector | ( | int | index | ) | const |
Returns true if the indicated collector has been defined by the client already, false otherwise.
It is possible for the client to start streaming data before all of the collectors have been defined.
Definition at line 95 of file pStatClientData.cxx.
Referenced by WinStatsStripChart::clicked_label(), GtkStatsStripChart::clicked_label(), WinStatsChartMenu::do_update(), GtkStatsChartMenu::do_update(), get_child_distance(), get_collector_def(), get_collector_fullname(), get_collector_name(), PStatStripChart::get_title_text(), TextMonitor::new_data(), and PStatStripChart::set_default_vertical_scale().
bool PStatClientData::has_thread | ( | int | index | ) | const |
Returns true if the indicated thread has been defined by the client already, false otherwise.
It is possible for the client to start streaming data before all of the threads have been defined.
Definition at line 244 of file pStatClientData.cxx.
Referenced by get_thread_name(), and PStatStripChart::get_title_text().
bool ReferenceCount::has_weak_list | ( | ) | const [inline, inherited] |
Returns true if this particular ReferenceCount object has a WeakReferenceList created, false otherwise.
In general, this will be true if there was ever a WeakPointerTo created for this object (even if there is not any for it now).
Definition at line 294 of file referenceCount.I.
Referenced by ReferenceCount::weak_unref().
bool PStatClientData::is_alive | ( | ) | const |
Returns true if the data is actively getting filled by a connected client, or false if the client has terminated.
Definition at line 57 of file pStatClientData.cxx.
bool PStatClientVersion::is_at_least | ( | int | major_version, |
int | minor_version | ||
) | const [inline, inherited] |
Returns true if the client version is at least the indicated major/minor version number, false otherwise.
Definition at line 55 of file pStatClientVersion.I.
void ReferenceCount::local_object | ( | ) | [inline, inherited] |
This function should be called, once, immediately after creating a new instance of some ReferenceCount-derived object on the stack.
This allows the object to be passed to functions that will increment and decrement the object's reference count temporarily, and it will prevent the object from being deleted (inappropriately), when the reference count returns to zero. It actually achieves this by setting a large positive value in the reference count field.
Definition at line 276 of file referenceCount.I.
Referenced by PGTop::cull_callback(), BoundingSphere::extend_by_hexahedron(), AsyncTaskManager::find_task(), AsyncTaskManager::find_tasks(), and AsyncTaskManager::find_tasks_matching().
void PStatClientData::record_new_frame | ( | int | thread_index, |
int | frame_number, | ||
PStatFrameData * | frame_data | ||
) |
Makes room for and stores a new frame's worth of data associated with some particular thread (which may or may not have already been defined).
The pointer will become owned by the PStatThreadData object and will be freed on destruction.
Definition at line 375 of file pStatClientData.cxx.
References define_thread().
void ReferenceCount::ref | ( | ) | const [inline, inherited] |
Explicitly increments the reference count.
User code should avoid using ref() and unref() directly, which can result in missed reference counts. Instead, let a PointerTo object manage the reference counting automatically.
This function is const, even though it changes the object, because generally fiddling with an object's reference count isn't considered part of fiddling with the object. An object might be const in other ways, but we still need to accurately count the number of references to it.
Definition at line 179 of file referenceCount.I.
References ReferenceCount::test_ref_count_integrity().
Referenced by CachedTypedWritableReferenceCount::cache_ref(), TypedWritable::decode_raw_from_bam_stream(), NodeCachedReferenceCount::node_ref(), NodeReferenceCount::node_ref(), BamCacheRecord::set_data(), CullableObject::set_draw_callback(), and ModelRoot::set_reference().
bool PStatClientData::set_collector_has_level | ( | int | index, |
int | thread_index, | ||
bool | flag | ||
) |
Indicates whether the given collector has level data (and consequently, whether it should appear on the Levels menu).
The return value is true if anything changed, false otherwise.
Definition at line 160 of file pStatClientData.cxx.
Referenced by add_collector().
bool ReferenceCount::test_ref_count_integrity | ( | ) | const [inline, inherited] |
Does some easy checks to make sure that the reference count isn't completely bogus.
Returns true if ok, false otherwise.
Reimplemented in NodeReferenceCount, CachedTypedWritableReferenceCount, and NodeCachedReferenceCount.
Definition at line 236 of file referenceCount.I.
References ReferenceCount::do_test_ref_count_integrity().
Referenced by EggGroupNode::add_child(), InternalName::find_ancestor(), InternalName::get_ancestor(), ReferenceCount::get_ref_count(), InternalName::get_top(), ReferenceCount::ref(), EggVertex::test_gref_integrity(), EggVertex::test_pref_integrity(), EggNode::test_under_integrity(), EggPrimitive::test_vref_integrity(), EggGroup::test_vref_integrity(), MouseWatcher::throw_event_pattern(), ReferenceCount::unref(), and EggNode::update_under().
bool ReferenceCount::test_ref_count_nonzero | ( | ) | const [inline, inherited] |
Does some easy checks to make sure that the reference count isn't zero, or completely bogus.
Returns true if ok, false otherwise.
Definition at line 252 of file referenceCount.I.
References ReferenceCount::do_test_ref_count_nonzero().
Referenced by CopyOnWritePointer::test_ref_count_nonzero().
bool ReferenceCount::unref | ( | ) | const [inline, virtual, inherited] |
Explicitly decrements the reference count.
Note that the object will not be implicitly deleted by unref() simply because the reference count drops to zero. (Having a member function delete itself is problematic.) However, see the helper function unref_delete().
User code should avoid using ref() and unref() directly, which can result in missed reference counts. Instead, let a PointerTo object manage the reference counting automatically.
This function is const, even though it changes the object, because generally fiddling with an object's reference count isn't considered part of fiddling with the object. An object might be const in other ways, but we still need to accurately count the number of references to it.
The return value is true if the new reference count is nonzero, false if it is zero.
Reimplemented in GeomVertexArrayFormat, GeomVertexFormat, InternalName, RenderAttrib, RenderEffects, RenderState, and TransformState.
Definition at line 214 of file referenceCount.I.
References ReferenceCount::test_ref_count_integrity().
Referenced by CachedTypedWritableReferenceCount::cache_unref(), TypedWritable::decode_raw_from_bam_stream(), RenderEffect::finalize(), NodeCachedReferenceCount::node_unref(), NodeReferenceCount::node_unref(), TransformState::unref(), RenderState::unref(), RenderEffects::unref(), RenderAttrib::unref(), InternalName::unref(), GeomVertexFormat::unref(), and GeomVertexArrayFormat::unref().
void ReferenceCount::weak_ref | ( | WeakPointerToVoid * | ptv | ) | [inline, inherited] |
Adds the indicated PointerToVoid as a weak reference to this object.
Definition at line 321 of file referenceCount.I.
References WeakReferenceList::add_reference(), and ReferenceCount::get_weak_list().
void ReferenceCount::weak_unref | ( | WeakPointerToVoid * | ptv | ) | [inline, inherited] |
Removes the indicated PointerToVoid as a weak reference to this object.
It must have previously been added via a call to weak_ref().
Definition at line 334 of file referenceCount.I.
References WeakReferenceList::clear_reference(), and ReferenceCount::has_weak_list().