Panda3D
 All Classes Functions Variables Enumerations
Public Member Functions | Static Public Member Functions | Friends | List of all members
PandaSystem Class Reference

This class is used as a namespace to group several global properties of Panda. More...

#include "pandaSystem.h"

Public Member Functions

void add_system (const string &system)
 Intended for use by each subsystem to register itself at startup. More...
 
int get_num_systems () const
 Returns the number of Panda subsystems that have registered themselves. More...
 
string get_system (int n) const
 Returns the nth Panda subsystem that has registered itself. More...
 
string get_system_tag (const string &system, const string &tag) const
 Returns the value associated with the indicated tag for the given system. More...
 
bool has_system (const string &system) const
 Returns true if the current version of Panda claims to have the indicated subsystem installed, false otherwise. More...
 
bool heap_trim (size_t pad)
 Attempts to release memory back to the system, if possible. More...
 
 MAKE_SEQ (get_systems, get_num_systems, get_system)
 
void output (ostream &out) const
 
void set_system_tag (const string &system, const string &tag, const string &value)
 Intended for use by each subsystem to register its set of capabilities at startup. More...
 
void write (ostream &out) const
 

Static Public Member Functions

static string get_build_date ()
 Returns a string representing the date and time at which this version of Panda (or at least dtool) was compiled, if available. More...
 
static TypeHandle get_class_type ()
 
static string get_compiler ()
 Returns a string representing the compiler that was used to generate this version of Panda, if it is available, or "unknown" if it is not. More...
 
static string get_distributor ()
 Returns the string defined by the distributor of this version of Panda, or "homebuilt" if this version was built directly from the sources by the end-user. More...
 
static string get_git_commit ()
 Returns a string representing the git commit hash that this source tree is based on, or the empty string if it has not been specified at build time. More...
 
static PandaSystemget_global_ptr ()
 Returns the global PandaSystem object. More...
 
static int get_major_version ()
 Returns the major version number of the current version of Panda. More...
 
static int get_minor_version ()
 Returns the minor version number of the current version of Panda. More...
 
static string get_p3d_coreapi_version_string ()
 Returns the current version of Panda's Core API, expressed as a string of dot-delimited integers. More...
 
static string get_package_host_url ()
 Returns the URL of the download server that provides the Panda3D distributable package currently running. More...
 
static string get_package_version_string ()
 Returns the version of the Panda3D distributable package that provides this build of Panda. More...
 
static string get_platform ()
 Returns a string representing the runtime platform that we are currently running on. More...
 
static int get_sequence_version ()
 Returns the sequence version number of the current version of Panda. More...
 
static string get_version_string ()
 Returns the current version of Panda, expressed as a string, e.g. More...
 
static void init_type ()
 
static bool is_official_version ()
 Returns true if current version of Panda claims to be an "official" version, that is, one that was compiled by an official distributor of Panda using a specific version of the panda source tree. More...
 

Friends

class ConfigPageManager
 

Detailed Description

This class is used as a namespace to group several global properties of Panda.

Application developers can use this class to query the runtime version or capabilities of the current Panda environment.

Definition at line 29 of file pandaSystem.h.

Member Function Documentation

void PandaSystem::add_system ( const string &  system)

Intended for use by each subsystem to register itself at startup.

Definition at line 413 of file pandaSystem.cxx.

string PandaSystem::get_build_date ( )
static

Returns a string representing the date and time at which this version of Panda (or at least dtool) was compiled, if available.

Definition at line 296 of file pandaSystem.cxx.

string PandaSystem::get_compiler ( )
static

Returns a string representing the compiler that was used to generate this version of Panda, if it is available, or "unknown" if it is not.

Definition at line 251 of file pandaSystem.cxx.

string PandaSystem::get_distributor ( )
static

Returns the string defined by the distributor of this version of Panda, or "homebuilt" if this version was built directly from the sources by the end-user.

This is a completely arbitrary string.

Definition at line 239 of file pandaSystem.cxx.

string PandaSystem::get_git_commit ( )
static

Returns a string representing the git commit hash that this source tree is based on, or the empty string if it has not been specified at build time.

Definition at line 308 of file pandaSystem.cxx.

PandaSystem * PandaSystem::get_global_ptr ( )
static

Returns the global PandaSystem object.

Definition at line 503 of file pandaSystem.cxx.

Referenced by get_package_host_url(), and get_package_version_string().

int PandaSystem::get_major_version ( )
static

Returns the major version number of the current version of Panda.

This is the first number of the dotted triple returned by get_version_string(). It changes very rarely.

Definition at line 176 of file pandaSystem.cxx.

int PandaSystem::get_minor_version ( )
static

Returns the minor version number of the current version of Panda.

This is the second number of the dotted triple returned by get_version_string(). It changes with each release that introduces new features.

Definition at line 190 of file pandaSystem.cxx.

int PandaSystem::get_num_systems ( ) const

Returns the number of Panda subsystems that have registered themselves.

This can be used with get_system() to iterate through the entire list of available Panda subsystems.

Definition at line 353 of file pandaSystem.cxx.

string PandaSystem::get_p3d_coreapi_version_string ( )
static

Returns the current version of Panda's Core API, expressed as a string of dot-delimited integers.

There are usually four integers in this version, but this is not guaranteed.

The Core API is used during the runtime (plugin) environment only. This may be the empty string if the current version of Panda is not built to provide a particular Core API, which will be the normal case in a development SDK. However, you should not use this method to determine whether you are running in a runtime environment or not.

Definition at line 159 of file pandaSystem.cxx.

string PandaSystem::get_package_host_url ( )
static

Returns the URL of the download server that provides the Panda3D distributable package currently running.

This can be used, along with the get_package_version_string(), to uniquely identify the running version of Panda among distributable Panda versions.

See get_package_version_string() for more information.

This string is set explicitly at compilation time. Normally, it should be set to a nonempty string only when building a Panda3D package for distribution.

Definition at line 134 of file pandaSystem.cxx.

References get_global_ptr().

string PandaSystem::get_package_version_string ( )
static

Returns the version of the Panda3D distributable package that provides this build of Panda.

When the currently-executing version of Panda was loaded from a distributable package, such as via the browser plugin, then this string will be nonempty and will contain the corresponding version string. You can build applications that use this particular version of Panda by requesting it in the pdef file, using "panda3d", this version string, and the download host provided by get_package_host_url().

If this string is empty, then the currently-executing Panda was built independently, and is not part of a distributable package.

This string is set explicitly at compilation time. Normally, it should be set to a nonempty string only when building a Panda3D package for distribution.

Definition at line 109 of file pandaSystem.cxx.

References get_global_ptr().

string PandaSystem::get_platform ( )
static

Returns a string representing the runtime platform that we are currently running on.

This will be something like "win32" or "osx_i386" or "linux_amd64".

Definition at line 325 of file pandaSystem.cxx.

int PandaSystem::get_sequence_version ( )
static

Returns the sequence version number of the current version of Panda.

This is the third number of the dotted triple returned by get_version_string(). It changes with bugfix updates and very minor feature updates.

Definition at line 204 of file pandaSystem.cxx.

string PandaSystem::get_system ( int  n) const

Returns the nth Panda subsystem that has registered itself.

This list will be sorted in alphabetical order.

Definition at line 365 of file pandaSystem.cxx.

string PandaSystem::get_system_tag ( const string &  system,
const string &  tag 
) const

Returns the value associated with the indicated tag for the given system.

This provides a standard way to query each subsystem's advertised capabilities. The set of tags and values are per-system and implementation-defined.

The return value is the empty string if the indicated system is undefined or if does not define the indicated tag.

Definition at line 391 of file pandaSystem.cxx.

string PandaSystem::get_version_string ( )
static

Returns the current version of Panda, expressed as a string, e.g.

"1.0.0". The string will end in the letter "c" if this build does not represent an official version.

Definition at line 81 of file pandaSystem.cxx.

Referenced by ProgramBase::write_man_page().

bool PandaSystem::has_system ( const string &  system) const

Returns true if the current version of Panda claims to have the indicated subsystem installed, false otherwise.

The set of available subsystems is implementation defined.

Definition at line 338 of file pandaSystem.cxx.

bool PandaSystem::heap_trim ( size_t  pad)

Attempts to release memory back to the system, if possible.

The pad argument is the minimum amount of unused memory to keep in the heap (against future allocations). Any memory above that may be released to the system, reducing the memory size of this process. There is no guarantee that any memory may be released.

Returns true if any memory was actually released, false otherwise.

Definition at line 454 of file pandaSystem.cxx.

References MemoryHook::heap_trim().

bool PandaSystem::is_official_version ( )
static

Returns true if current version of Panda claims to be an "official" version, that is, one that was compiled by an official distributor of Panda using a specific version of the panda source tree.

If this is true, there will not be a "c" at the end of the version string returned by get_version_string().

Note that we must take the distributor's word for it here.

Definition at line 222 of file pandaSystem.cxx.

void PandaSystem::set_system_tag ( const string &  system,
const string &  tag,
const string &  value 
)

Intended for use by each subsystem to register its set of capabilities at startup.

Definition at line 427 of file pandaSystem.cxx.


The documentation for this class was generated from the following files: