Panda3D
|
This is an abstract class that presents the interface to any number of different front-ends for the stats monitor. More...
#include "pStatMonitor.h"
Public Member Functions | |
PStatMonitor (PStatServer *server) | |
void | bad_version (const string &hostname, const string &progname, int client_major, int client_minor, int server_major, int server_minor) |
Called shortly after startup time with the greeting from the client. More... | |
void | close () |
Closes the client connection if it is active. More... | |
const PStatClientData * | get_client_data () const |
Returns the client data associated with this monitor. More... | |
string | get_client_hostname () const |
Returns the hostname of the client we're connected to, if known. More... | |
string | get_client_progname () const |
Returns the program name of the client we're connected to, if known. More... | |
const LRGBColor & | get_collector_color (int collector_index) |
Returns the color associated with the indicated collector. More... | |
string | get_collector_name (int collector_index) |
Returns the name of the indicated collector, if it is known. More... | |
PStatView & | get_level_view (int collector_index, int thread_index) |
Returns a view on the level value (as opposed to elapsed time) for the given collector over the given thread. More... | |
virtual string | get_monitor_name ()=0 |
PStatServer * | get_server () |
Returns the server that owns this monitor. More... | |
PStatView & | get_view (int thread_index) |
Returns a view on the given thread index. More... | |
virtual void | got_bad_version (int client_major, int client_minor, int server_major, int server_minor) |
Like got_hello(), this is called when the "hello" message has been received from the client. More... | |
virtual void | got_hello () |
Called when the "hello" message has been received from the client. More... | |
virtual bool | has_idle () |
Should be redefined to return true if you want to redefine idle() and expect it to be called. More... | |
void | hello_from (const string &hostname, const string &progname) |
Called shortly after startup time with the greeting from the client. More... | |
virtual void | idle () |
If has_idle() returns true, this will be called periodically to allow the monitor to update its display or whatever it needs to do. More... | |
virtual void | initialized () |
Called after the monitor has been fully set up. More... | |
bool | is_alive () const |
Returns true if the client is alive and connected, false otherwise. More... | |
bool | is_client_known () const |
Returns true if we've yet received the "hello" message from the client indicating its name, etc. More... | |
virtual bool | is_thread_safe () |
Should be redefined to return true if this monitor class can handle running in a sub-thread. More... | |
virtual void | lost_connection () |
Called whenever the connection to the client has been lost. More... | |
virtual void | new_collector (int collector_index) |
Called whenever a new Collector definition is received from the client. More... | |
virtual void | new_data (int thread_index, int frame_number) |
Called as each frame's data is made available. More... | |
virtual void | new_thread (int thread_index) |
Called whenever a new Thread definition is received from the client. More... | |
void | set_client_data (PStatClientData *client_data) |
Called by the PStatServer at setup time to set the new data pointer for the first time. More... | |
virtual void | user_guide_bars_changed () |
Called when the user guide bars have been changed. More... | |
![]() | |
int | get_ref_count () const |
Returns the current reference count. More... | |
WeakReferenceList * | get_weak_list () const |
Returns the WeakReferenceList associated with this ReferenceCount object. More... | |
bool | has_weak_list () const |
Returns true if this particular ReferenceCount object has a WeakReferenceList created, false otherwise. More... | |
void | local_object () |
This function should be called, once, immediately after creating a new instance of some ReferenceCount-derived object on the stack. More... | |
void | ref () const |
Explicitly increments the reference count. More... | |
bool | test_ref_count_integrity () const |
Does some easy checks to make sure that the reference count isn't completely bogus. More... | |
bool | test_ref_count_nonzero () const |
Does some easy checks to make sure that the reference count isn't zero, or completely bogus. More... | |
virtual bool | unref () const |
Explicitly decrements the reference count. More... | |
void | weak_ref (WeakPointerToVoid *ptv) |
Adds the indicated PointerToVoid as a weak reference to this object. More... | |
void | weak_unref (WeakPointerToVoid *ptv) |
Removes the indicated PointerToVoid as a weak reference to this object. More... | |
Additional Inherited Members | |
![]() | |
static TypeHandle | get_class_type () |
static void | init_type () |
This is an abstract class that presents the interface to any number of different front-ends for the stats monitor.
One of these will be created by the PStatMonitor as each client is connected; this class is responsible for opening up a new strip-chart graph or whatever is appropriate. It defines a number of empty virtual functions that will be called as new data becomes available.
Definition at line 43 of file pStatMonitor.h.
void PStatMonitor::bad_version | ( | const string & | hostname, |
const string & | progname, | ||
int | client_major, | ||
int | client_minor, | ||
int | server_major, | ||
int | server_minor | ||
) |
Called shortly after startup time with the greeting from the client.
In this case, the client seems to have an incompatible version and will be automatically disconnected; the server should issue a message to that effect.
Definition at line 64 of file pStatMonitor.cxx.
References set_client_data().
Referenced by hello_from().
void PStatMonitor::close | ( | ) |
Closes the client connection if it is active.
Definition at line 107 of file pStatMonitor.cxx.
References get_collector_color().
Referenced by is_alive(), and GtkStatsMonitor::set_pause().
|
inline |
Returns the client data associated with this monitor.
Definition at line 32 of file pStatMonitor.I.
References get_collector_name().
Referenced by GtkStatsStripChart::clicked_label(), WinStatsStripChart::clicked_label(), get_server(), and WinStatsPianoRoll::set_horizontal_scale().
|
inline |
Returns the hostname of the client we're connected to, if known.
This may not be known immediately at creation time, but should be learned shortly thereafter when we receive the client's "hello" message. See is_client_known().
Definition at line 72 of file pStatMonitor.I.
References get_client_progname().
Referenced by is_client_known().
|
inline |
Returns the program name of the client we're connected to, if known.
This may not be known immediately at creation time, but should be learned shortly thereafter when we receive the client's "hello" message. See is_client_known().
Definition at line 86 of file pStatMonitor.I.
Referenced by get_client_hostname().
const LRGBColor & PStatMonitor::get_collector_color | ( | int | collector_index | ) |
Returns the color associated with the indicated collector.
If the collector has no associated color, or is unknown, a new color will be made up on the spot and associated with this collector for the rest of the session.
Definition at line 123 of file pStatMonitor.cxx.
References get_view(), and LVecBase3f::zero().
Referenced by GtkStatsGraph::clicked_label(), WinStatsGraph::clicked_label(), and close().
|
inline |
Returns the name of the indicated collector, if it is known.
Definition at line 43 of file pStatMonitor.I.
References is_client_known().
Referenced by get_client_data().
PStatView & PStatMonitor::get_level_view | ( | int | collector_index, |
int | thread_index | ||
) |
Returns a view on the level value (as opposed to elapsed time) for the given collector over the given thread.
If there is no such view already for the indicated thread, this will create one.
Definition at line 193 of file pStatMonitor.cxx.
References initialized().
Referenced by get_view().
|
inline |
Returns the server that owns this monitor.
Definition at line 22 of file pStatMonitor.I.
References get_client_data().
Referenced by TextMonitor::get_server().
PStatView & PStatMonitor::get_view | ( | int | thread_index | ) |
Returns a view on the given thread index.
If there is no such view already for the indicated thread, this will create one. This view can be used to examine the accumulated data for the given thread.
Definition at line 174 of file pStatMonitor.cxx.
References get_level_view().
Referenced by get_collector_color().
|
virtual |
Like got_hello(), this is called when the "hello" message has been received from the client.
At this time, the client's hostname and program name will be known. However, the client appears to be an incompatible version and the connection will be terminated; the monitor should issue a message to that effect.
Reimplemented in GtkStatsMonitor, WinStatsMonitor, and TextMonitor.
Definition at line 249 of file pStatMonitor.cxx.
References new_collector().
Referenced by got_hello().
|
virtual |
Called when the "hello" message has been received from the client.
At this time, the client's hostname and program name will be known.
Reimplemented in GtkStatsMonitor, WinStatsMonitor, and TextMonitor.
Definition at line 234 of file pStatMonitor.cxx.
References got_bad_version().
Referenced by initialized().
|
virtual |
Should be redefined to return true if you want to redefine idle() and expect it to be called.
Reimplemented in GtkStatsMonitor, and WinStatsMonitor.
Definition at line 327 of file pStatMonitor.cxx.
References is_thread_safe().
Referenced by idle().
void PStatMonitor::hello_from | ( | const string & | hostname, |
const string & | progname | ||
) |
Called shortly after startup time with the greeting from the client.
This indicates the client's reported hostname and program name.
Definition at line 47 of file pStatMonitor.cxx.
References bad_version().
|
virtual |
If has_idle() returns true, this will be called periodically to allow the monitor to update its display or whatever it needs to do.
Reimplemented in GtkStatsMonitor, and WinStatsMonitor.
Definition at line 317 of file pStatMonitor.cxx.
References has_idle().
Referenced by lost_connection(), and PStatPianoRoll::update().
|
virtual |
Called after the monitor has been fully set up.
At this time, it will have a valid _client_data pointer, and things like is_alive() and close() will be meaningful. However, we may not yet know who we're connected to (is_client_known() may return false), and we may not know anything about the threads or collectors we're about to get data on.
Reimplemented in GtkStatsMonitor, and WinStatsMonitor.
Definition at line 223 of file pStatMonitor.cxx.
References got_hello().
Referenced by get_level_view().
bool PStatMonitor::is_alive | ( | ) | const |
Returns true if the client is alive and connected, false otherwise.
Definition at line 93 of file pStatMonitor.cxx.
References close().
Referenced by set_client_data().
|
inline |
Returns true if we've yet received the "hello" message from the client indicating its name, etc.
Definition at line 58 of file pStatMonitor.I.
References get_client_hostname().
Referenced by get_collector_name().
|
virtual |
Should be redefined to return true if this monitor class can handle running in a sub-thread.
This is not related to the question of whether it can handle multiple different PStatThreadDatas; this is strictly a question of whether or not the monitor itself wants to run in a sub-thread.
Reimplemented in TextMonitor.
Definition at line 343 of file pStatMonitor.cxx.
References user_guide_bars_changed().
Referenced by has_idle().
|
virtual |
Called whenever the connection to the client has been lost.
This is a permanent state change. The monitor should update its display to represent this, and may choose to close down automatically.
Reimplemented in GtkStatsMonitor, WinStatsMonitor, and TextMonitor.
Definition at line 306 of file pStatMonitor.cxx.
References idle().
Referenced by new_data().
|
virtual |
Called whenever a new Collector definition is received from the client.
Generally, the client will send all of its collectors over shortly after connecting, but there's no guarantee that they will all be received before the first frames are received. The monitor should be prepared to accept new Collector definitions midstream.
Reimplemented in GtkStatsMonitor, and WinStatsMonitor.
Definition at line 264 of file pStatMonitor.cxx.
References new_thread().
Referenced by got_bad_version().
|
virtual |
Called as each frame's data is made available.
There is no guarantee the frames will arrive in order, or that all of them will arrive at all. The monitor should be prepared to accept frames received out-of-order or missing. The use of the PStatFrameData / PStatView objects to report the data will facilitate this.
Reimplemented in GtkStatsMonitor, WinStatsMonitor, and TextMonitor.
Definition at line 294 of file pStatMonitor.cxx.
References lost_connection().
Referenced by new_thread().
|
virtual |
Called whenever a new Thread definition is received from the client.
Generally, the client will send all of its threads over shortly after connecting, but there's no guarantee that they will all be received before the first frames are received. The monitor should be prepared to accept new Thread definitions midstream.
Reimplemented in GtkStatsMonitor, and WinStatsMonitor.
Definition at line 279 of file pStatMonitor.cxx.
References new_data().
Referenced by new_collector().
void PStatMonitor::set_client_data | ( | PStatClientData * | client_data | ) |
Called by the PStatServer at setup time to set the new data pointer for the first time.
Definition at line 81 of file pStatMonitor.cxx.
References is_alive().
Referenced by bad_version().
|
virtual |
Called when the user guide bars have been changed.
Reimplemented in GtkStatsMonitor, and WinStatsMonitor.
Definition at line 353 of file pStatMonitor.cxx.
Referenced by is_thread_safe().